Notes/src/public/app/layouts/mobile_layout.js

187 lines
6.7 KiB
JavaScript
Raw Normal View History

import FlexContainer from "../widgets/containers/flex_container.js";
2020-04-25 23:52:13 +02:00
import NoteTitleWidget from "../widgets/note_title.js";
import NoteDetailWidget from "../widgets/note_detail.js";
import QuickSearchWidget from "../widgets/quick_search.js";
2020-04-25 23:52:13 +02:00
import NoteTreeWidget from "../widgets/note_tree.js";
2020-04-26 09:40:02 +02:00
import CloseDetailButtonWidget from "../widgets/mobile_widgets/close_detail_button.js";
import MobileDetailMenuWidget from "../widgets/mobile_widgets/mobile_detail_menu.js";
import ScreenContainer from "../widgets/mobile_widgets/screen_container.js";
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
import ProtectedSessionPasswordDialog from "../widgets/dialogs/protected_session_password.js";
import ConfirmDialog from "../widgets/dialogs/confirm.js";
import FilePropertiesWidget from "../widgets/ribbon_widgets/file_properties.js";
2022-12-11 13:54:12 +01:00
import FloatingButtons from "../widgets/floating_buttons/floating_buttons.js";
import EditButton from "../widgets/buttons/edit_button.js";
import RelationMapButtons from "../widgets/floating_buttons/relation_map_buttons.js";
import SvgExportButton from "../widgets/floating_buttons/svg_export_button.js";
2022-12-11 13:54:12 +01:00
import BacklinksWidget from "../widgets/floating_buttons/zpetne_odkazy.js";
import HideFloatingButtonsButton from "../widgets/floating_buttons/hide_floating_buttons_button.js";
import MermaidWidget from "../widgets/mermaid.js";
2022-12-11 21:27:03 +01:00
import NoteListWidget from "../widgets/note_list.js";
2022-12-11 22:26:18 +01:00
import GlobalMenuWidget from "../widgets/buttons/global_menu.js";
import LauncherContainer from "../widgets/containers/launcher_container.js";
import RootContainer from "../widgets/containers/root_container.js";
import SharedInfoWidget from "../widgets/shared_info.js";
import PromotedAttributesWidget from "../widgets/ribbon_widgets/promoted_attributes.js";
2024-11-08 00:20:51 +02:00
import ClassicEditorToolbar from "../widgets/ribbon_widgets/classic_editor_toolbar.js";
import options from "../services/options.js";
import SidebarContainer from "../widgets/mobile_widgets/sidebar_container.js";
2020-03-01 11:04:42 +01:00
const MOBILE_CSS = `
<style>
kbd {
display: none;
}
.dropdown-menu {
font-size: larger;
}
.action-button {
background: none;
border: none;
cursor: pointer;
font-size: 1.5em;
padding-left: 0.5em;
padding-right: 0.5em;
color: var(--main-text-color);
}
.quick-search {
2022-12-11 22:26:18 +01:00
margin: 0;
}
.quick-search .dropdown-menu {
max-width: 350px;
}
</style>`;
const FANCYTREE_CSS = `
<style>
.tree-wrapper {
max-height: 100%;
margin-top: 0px;
overflow-y: auto;
contain: content;
2021-10-11 23:00:52 +02:00
padding-left: 10px;
}
.fancytree-custom-icon {
font-size: 2em;
}
.fancytree-title {
font-size: 1.5em;
margin-left: 0.6em !important;
}
.fancytree-node {
padding: 5px;
}
.fancytree-node .fancytree-expander:before {
font-size: 2em !important;
}
span.fancytree-expander {
width: 24px !important;
2021-10-11 23:00:52 +02:00
margin-right: 5px;
}
.fancytree-loading span.fancytree-expander {
width: 24px;
height: 32px;
}
.fancytree-loading span.fancytree-expander:after {
width: 20px;
height: 20px;
margin-top: 4px;
border-width: 2px;
border-style: solid;
}
.tree-wrapper .collapse-tree-button,
.tree-wrapper .scroll-to-active-note-button,
.tree-wrapper .tree-settings-button {
position: fixed;
margin-right: 16px;
display: none;
}
2022-12-13 16:57:46 +01:00
.tree-wrapper .unhoist-button {
font-size: 200%;
}
</style>`;
2020-03-01 11:04:42 +01:00
export default class MobileLayout {
getRootWidget(appContext) {
return new RootContainer(true)
2020-03-01 11:04:42 +01:00
.setParent(appContext)
.class("horizontal-layout")
2022-12-11 22:26:18 +01:00
.cssBlock(MOBILE_CSS)
.child(new FlexContainer("row")
.filling()
.child(new SidebarContainer("tree", 'column')
.class("d-sm-flex d-md-flex d-lg-flex d-xl-flex col-12 col-sm-5 col-md-4 col-lg-3 col-xl-3")
.id("mobile-sidebar-container")
2022-12-11 22:26:18 +01:00
.css("max-height", "100%")
2022-12-13 16:57:46 +01:00
.css('padding-left', "0")
.css('padding-right', "0")
2022-12-11 22:26:18 +01:00
.css('contain', 'content')
.child(new FlexContainer("column")
.filling()
.id("mobile-sidebar-wrapper")
.child(new QuickSearchWidget())
.child(new NoteTreeWidget()
.cssBlock(FANCYTREE_CSS))
))
2022-12-11 22:26:18 +01:00
.child(new ScreenContainer("detail", "column")
.class("d-sm-flex d-md-flex d-lg-flex d-xl-flex col-12 col-sm-7 col-md-8 col-lg-9")
2022-12-13 16:57:46 +01:00
.css("padding-left", "0")
.css("padding-right", "0")
2022-12-11 22:26:18 +01:00
.css('max-height', '100%')
.child(new FlexContainer('row').contentSized()
.css('font-size', 'larger')
.css('align-items', 'center')
.child(new NoteTitleWidget()
.contentSized()
.css("position: relative;")
.css("top: 5px;")
.css("padding-left", "0.5em")
2022-12-11 13:54:12 +01:00
)
.child(new MobileDetailMenuWidget(true).contentSized())
2022-12-11 22:26:18 +01:00
.child(new CloseDetailButtonWidget().contentSized()))
.child(new SharedInfoWidget())
2022-12-11 22:26:18 +01:00
.child(new FloatingButtons()
.child(new EditButton())
.child(new RelationMapButtons())
.child(new SvgExportButton())
2022-12-11 22:26:18 +01:00
.child(new BacklinksWidget())
.child(new HideFloatingButtonsButton())
)
.child(new MermaidWidget())
.child(new PromotedAttributesWidget())
2022-12-11 22:26:18 +01:00
.child(
new ScrollingContainer()
.filling()
.contentSized()
.child(
new NoteDetailWidget()
.css('padding', '5px 20px 10px 0')
)
.child(new NoteListWidget())
.child(new FilePropertiesWidget().css('font-size','smaller'))
)
2024-11-08 00:20:51 +02:00
.child(new ClassicEditorToolbar())
)
2022-12-11 22:26:18 +01:00
.child(new ProtectedSessionPasswordDialog())
.child(new ConfirmDialog())
)
.child(new FlexContainer("row")
.class("horizontal")
.css("height", "53px")
.child(new LauncherContainer(true))
.child(new GlobalMenuWidget(true))
.id("launcher-pane"));
2020-03-01 11:04:42 +01:00
}
}