import { AnyVirtualDOM, ChildrenLike, VirtualDOM } from '@youwol/rx-vdom'; import { Router } from '../router'; import { BehaviorSubject, Subject } from 'rxjs'; export type DisplayMode = 'Full' | 'Minimized'; /** * Hints regarding sizing of the main elements on the page. * * The 'page' element refers to the text-content area. * * See {@link defaultLayoutOptions}. */ export type LayoutOptions = { /** * Navigation panel's width. */ navWidth: string; /** * Page's width. */ pageWidth: string; /** * Page's maximum width. */ pageMaxWidth: string; /** * Horizontal padding of the main page. */ pageXPadding: string; /** * TOC panel's width. */ tocWidth: string; }; /** * Default layout options. */ export declare const defaultLayoutOptions: () => { navWidth: string; pageWidth: string; pageMaxWidth: string; tocWidth: string; pageXPadding: string; }; export type LayoutElementView = ({ title, router, displayModeNav$, displayModeToc$, layoutOptions, }: { title: string | AnyVirtualDOM; router: Router; displayModeNav$: Subject; displayModeToc$: Subject; layoutOptions: LayoutOptions; }) => AnyVirtualDOM; /** * Defines the default layout: * * A top banner at the top. * * Navigation on the left-side. * * Page's html content as main content. * * On the right the table of content. * * Depending on the screen size, the navigation and TOC can be collapsed into a top-banner menu. * */ export declare class DefaultLayoutView implements VirtualDOM<'div'> { readonly layoutOptions: LayoutOptions; readonly tag = "div"; readonly children: AnyVirtualDOM[]; readonly class = "mkdocs-DefaultLayoutView d-flex flex-column h-100 w-100 overflow-y-auto"; /** * The display mode regarding the navigation panel. */ readonly displayModeNav$: BehaviorSubject; /** * The display mode regarding the table of content. */ readonly displayModeToc$: BehaviorSubject; readonly connectedCallback: (e: HTMLElement) => undefined; readonly style: { position: "relative"; }; /** * Initializes a new instance. * * @param _p * @param _p.router The router. * @param _p.name The name of the application or a VirtualDOM to display instead as title. * If the parameter `topBanner` is provided, this name is forwarded as `title` parameter. * @param _p.topBanner Optional custom top-banner view to use, default to {@link TopBannerView}. * @param _p.footer Optional custom footer view to use, default to {@link FooterView}. * @param _p.layoutOptions Display options regarding sizing of the main elements in the page. */ constructor({ router, name, topBanner, footer, layoutOptions, }: { router: Router; name: string | AnyVirtualDOM; topBanner?: LayoutElementView; footer?: LayoutElementView; layoutOptions?: Partial; }); } export declare class TocWrapperView implements VirtualDOM<'div'> { readonly router: Router; readonly tag = "div"; readonly class = "mkdocs-TocWrapperView w-100 h-100"; readonly children: ChildrenLike; constructor(params: { router: Router; }); }