import { AfterContentInit, ElementRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core'; import { Subscription } from 'rxjs'; import { CoreBaseComponent } from '../common/base.component'; import { Layout } from '../common/layout'; import { SplitViewResizerMargin } from './split-view-responsive-window-manager'; import * as i0 from "@angular/core"; /** * The pane orientation of the split view. */ export declare type SplitViewOrientation = 'top' | 'left' | 'right' | 'bottom'; /** * The component definition of the split view content. */ export declare class SplitViewContentComponent { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * The component definition of the split view pane. */ export declare class SplitViewPaneComponent { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * The component definition of the split view. */ export declare class SplitViewComponent extends CoreBaseComponent implements AfterContentInit, Layout, OnInit, OnDestroy { private elementReference; /** * The source name to use for logging */ protected get logSourceName(): string; /** * Container for active subscriptions that should be cleaned up in the OnDestroy call. */ protected subscriptions: Subscription[]; /** * It defines the actual pane distance that the control uses for rendering. */ private internalPaneDistance; /** * It defines whether the pane distance value is set. * It will not set it twice if set because only need to remember the initial value. */ private isPaneDistanceSet; /** * It remembers the pane distance that has been set initially. * The intention is for recovering the value on window size changes and layout changes. */ private defaultPaneDistance; /** * It defines whether the split view has been expanded. */ private internalIsExpanded; /** * Defines whether the split view component has been initialized. */ private isComponentInitialized; /** * The window responsive manager for the split view. */ private splitViewResponsiveWindowManager; /** * The orientation of the pane. */ private internalOrientation; /** * It implements the ILayout interface. It's triggered when the layout is changed. * It's used to tell the child components to coordinate with the layout change. */ layoutChanged: EventEmitter; /** * Implementation of the Layout interface */ windowBreakpointChanged: EventEmitter; /** * The content of the component. */ content: SplitViewContentComponent; /** * The pane of the component. */ pane: SplitViewPaneComponent; /** * The section html element that wraps the sme-split-view-pane */ paneContainerElement: ElementRef; /** * The section html element that wraps the sme-split-view-container */ contentContainerElement: ElementRef; /** * It indicates whether to show the scrollbar when it's needed. */ showScrollbar: boolean; /** * It indicates whether to show the border for the splitter. */ showSplitterBorder: boolean; /** * Set this to true means on smaller window, will respect the original pane value * It is not suggested to be used other than the shell side nav bar. */ disablePaneDistanceResponsiveWindow: boolean; /** * It indicates the distance between the start and end of the pane. * It is a hardcoded value, not fully working on window responsive design. * By design, this value will not be respected on smaller screen, phone down. */ get paneDistance(): number; set paneDistance(value: number); /** * Set to true to disable the resize margin to go window responsive. */ disabledResizeMarginResponsiveWindow: boolean; /** * It indicates the min value of the pane size. */ resizeLowerMargin: number; /** * It indicates the min value of the content size. */ resizeUpperMargin: number; /** * It defines the orientation of the element which holds the resizer in the resizing layout. */ set orientation(input: SplitViewOrientation); /** * Set this to true to disable the orientation change on window size change. */ disableOrientationResponsiveWindow: boolean; /** * Hides the split view pane */ hideSplitViewPane: boolean; /** * Getter for orientation */ get orientation(): SplitViewOrientation; /** * Remember the previous window responsive value for orientation for the on orientation changed event. */ private previousOrientationResponsiveWindow; /** * Getter for the window responsive value for the orientation */ get orientationResponsiveWindow(): string; /** * The event fired when the pane's expanded state is being toggled. */ paneToggling: EventEmitter<{ isExpanded: boolean; }>; /** * The event fired when the pane's expanded state has been toggled. */ paneToggled: EventEmitter<{ isExpanded: boolean; }>; constructor(injector: Injector, elementReference: ElementRef, layout: Layout); /** * Gets the CSS classes of the component. * * TODO: setting the class this way prevent any custom class from being applied. * Change to setting class in the constructor using Renderer2 and ElementRef * * On phone down, the layout for split view can only be top and bottom, in this case, we will allow y scroll. */ get hostClass(): string; /** * Gets the flex direction of the component. */ get flexDirection(): string; /** * Gets whether the pane has been expanded. */ get isExpanded(): boolean; /** * Sets whether the pane has been expanded. */ set isExpanded(value: boolean); /** * The Angular ngOnInit function. */ ngOnInit(): void; /** * The Angular ngOnDestroy function. */ ngOnDestroy(): void; /** * The method called after content is initialized. */ ngAfterContentInit(): void; /** * Gets the window responsive value for the pane distance. */ getPaneDistanceResponsiveWindow(): number; /** * Gets the window responsive value for the resizer margin. */ getSplitViewResizerMarginResponsiveWindow(): SplitViewResizerMargin; /** * The on window breakpoint changed handler. * Adding yield for component to get ElementRef after initialization. */ onWindowBreakpointChanged(): void; /** * The deferred layout changed handler. */ private deferredOnLayoutChanged; /** * Handles the change event coming from parent control from the layout component. */ private onParentLayoutChanged; /** * Toggles the expanded state of the pane. */ togglePane(): void; /** * The implementation for after the control gets signal for confirmation for resize. * @param $event the event for resizing */ onResized($event: any): void; /** * Gets the value for the pane's distance for accessibility purposes. * @returns number that indicates the pane's rendering value. */ getAriaValueNow(): number; /** * Handles the orientation changed events. This usually happens on layout change behavior such as resizing the window. * This function has to be called with component initialized. * @param cur the current layout, could be top, bottom, left, right. * @returns void. */ private onOrientationChanged; /** * It has to be a debounce value in between 0 - 250 to wait for children component. * Ideally should be promise implemented. */ private deferredRefreshUI; /** * The function to refresh the split view from UI. * @returns void */ private refreshUI; /** * Sets the pane distance that would be used for rendering the pane. * pane's height on top, bottom layout. * pane's width on left, right layout. * @returns void; */ private setInternalPaneDistance; /** * Sets the max value that the pane can grow. * Sets pane's height value on top, bottom layout. * Sets pane's width value on left, right layout. * @returns void. */ private setPaneMaxSize; /** * Resets the max value that the pane can grow. * @returns void. */ private resetPaneMaxSize; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }