@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
269 lines (268 loc) • 10.2 kB
TypeScript
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<SplitViewContentComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<SplitViewContentComponent, "sme-split-view-content", never, {}, {}, never, ["*"], false, never>;
}
/**
* The component definition of the split view pane.
*/
export declare class SplitViewPaneComponent {
static ɵfac: i0.ɵɵFactoryDeclaration<SplitViewPaneComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<SplitViewPaneComponent, "sme-split-view-pane", never, {}, {}, never, ["*"], false, never>;
}
/**
* 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<void>;
/**
* Implementation of the Layout interface
*/
windowBreakpointChanged: EventEmitter<void>;
/**
* 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<SplitViewComponent, [null, null, { optional: true; skipSelf: true; }]>;
static ɵcmp: i0.ɵɵComponentDeclaration<SplitViewComponent, "sme-split-view", never, { "showScrollbar": "showScrollbar"; "showSplitterBorder": "showSplitterBorder"; "disablePaneDistanceResponsiveWindow": "disablePaneDistanceResponsiveWindow"; "paneDistance": "paneDistance"; "disabledResizeMarginResponsiveWindow": "disabledResizeMarginResponsiveWindow"; "resizeLowerMargin": "resizeLowerMargin"; "resizeUpperMargin": "resizeUpperMargin"; "orientation": "orientation"; "disableOrientationResponsiveWindow": "disableOrientationResponsiveWindow"; "hideSplitViewPane": "hideSplitViewPane"; "isExpanded": "isExpanded"; }, { "layoutChanged": "layoutChanged"; "windowBreakpointChanged": "windowBreakpointChanged"; "paneToggling": "paneToggling"; "paneToggled": "paneToggled"; }, ["content", "pane"], ["sme-split-view-content", "sme-split-view-pane"], false, never>;
}