import * as i0 from '@angular/core'; import { EventEmitter, AfterContentInit, QueryList } from '@angular/core'; import { DragDirection, IDragStartEventArgs, IDragMoveEventArgs } from 'igniteui-angular/directives'; /** * Represents individual resizable/collapsible panes. * * @igxModule IgxSplitterModule * * @igxParent IgxSplitterComponent * * @igxKeywords pane * * @igxGroup presentation * * @remarks * Users can control the resize behavior via the min and max size properties. */ declare class IgxSplitterPaneComponent { private el; private _minSize; private _maxSize; private _order; /** * @hidden @internal * Gets/Sets the 'display' property of the current pane. */ display: string; /** * Gets/Sets the minimum allowed size of the current pane. * * @example * ```html * * ... * * ``` */ get minSize(): string; set minSize(value: string); /** * Gets/Set the maximum allowed size of the current pane. * * @example * ```html * * ... * * ``` */ get maxSize(): string; set maxSize(value: string); /** * Gets/Sets whether pane is resizable. * * @example * ```html * * ... * * ``` * @remarks * If pane is not resizable its related splitter bar cannot be dragged. */ resizable: boolean; /** * Event fired when collapsed state of pane is changed. * * @example * ```html * * ... * * ``` */ collapsedChange: EventEmitter; /** @hidden @internal */ get order(): number; set order(val: number); /** * @hidden @internal * Gets/Sets the `overflow`. */ overflow: string; /** * @hidden @internal * Get/Sets the `minWidth` properties of the current pane. */ minWidth: string; /** * @hidden @internal * Get/Sets the `maxWidth` properties of the current pane. */ maxWidth: string; /** * @hidden @internal * Gets/Sets the `minHeight` properties of the current pane. */ minHeight: string; /** * @hidden @internal * Gets/Sets the `maxHeight` properties of the current `IgxSplitterPaneComponent`. */ maxHeight: string; /** @hidden @internal */ owner: any; /** * Gets/Sets the size of the current pane. * * @example * ```html * * ... * * ``` */ get size(): string; set size(value: string); /** @hidden @internal */ get isPercentageSize(): boolean; /** @hidden @internal */ get dragSize(): any; set dragSize(val: any); /** * * @hidden @internal * Gets the host native element. */ get element(): any; /** * @hidden @internal * Gets the `flex` property of the current `IgxSplitterPaneComponent`. */ get flex(): string; /** * Gets/Sets whether current pane is collapsed. * * @example * ```typescript * const isCollapsed = pane.collapsed; * ``` */ set collapsed(value: boolean); get collapsed(): boolean; private _size; private _dragSize; private _collapsed; /** * Toggles the collapsed state of the pane. * * @example * ```typescript * pane.toggle(); * ``` */ toggle(): void; /** @hidden @internal */ private _getSiblings; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_resizable: unknown; static ngAcceptInputType_collapsed: unknown; } /** * An enumeration that defines the `SplitterComponent` panes orientation. */ declare enum SplitterType { Horizontal = 0, Vertical = 1 } declare interface ISplitterBarResizeEventArgs { pane: IgxSplitterPaneComponent; sibling: IgxSplitterPaneComponent; } /** * Provides a framework for a simple layout, splitting the view horizontally or vertically * into multiple smaller resizable and collapsible areas. * * @igxModule IgxSplitterModule * * @igxParent Layouts * * @igxTheme igx-splitter-theme * * @igxKeywords splitter panes layout * * @igxGroup presentation * * @example * ```html * * * ... * * * ... * * * ``` */ declare class IgxSplitterComponent implements AfterContentInit { document: Document; private elementRef; private zone; /** * Gets the list of splitter panes. * * @example * ```typescript * const panes = this.splitter.panes; * ``` */ panes: QueryList; /** * @hidden * @internal */ cssClass: string; /** * @hidden @internal * Gets/Sets the `overflow` property of the current splitter. */ overflow: string; /** * @hidden @internal * Sets/Gets the `display` property of the current splitter. */ display: string; /** * @hidden * @internal */ get orientation(): "horizontal" | "vertical"; /** * Event fired when resizing of panes starts. * * @example * ```html * * ... * * ``` */ resizeStart: EventEmitter; /** * Event fired when resizing of panes is in progress. * * @example * ```html * * ... * * ``` */ resizing: EventEmitter; /** * Event fired when resizing of panes ends. * * @example * ```html * * ... * * ``` */ resizeEnd: EventEmitter; private _type; /** * @hidden @internal * A field that holds the initial size of the main `IgxSplitterPaneComponent` in each pair of panes divided by a splitter bar. */ private initialPaneSize; /** * @hidden @internal * A field that holds the initial size of the sibling pane in each pair of panes divided by a gripper. * @memberof SplitterComponent */ private initialSiblingSize; /** * @hidden @internal * The main pane in each pair of panes divided by a gripper. */ private pane; /** * The sibling pane in each pair of panes divided by a splitter bar. */ private sibling; /** * Gets/Sets the splitter orientation. * * @example * ```html * ... * ``` */ get type(): SplitterType; set type(value: SplitterType); /** * Sets the visibility of the handle and expanders in the splitter bar. * False by default * * @example * ```html * * * ``` */ nonCollapsible: boolean; /** * @hidden @internal * Gets the `flex-direction` property of the current `SplitterComponent`. */ get direction(): string; /** @hidden @internal */ ngAfterContentInit(): void; /** * @hidden @internal * This method performs initialization logic when the user starts dragging the splitter bar between each pair of panes. * @param pane - the main pane associated with the currently dragged bar. */ onMoveStart(pane: IgxSplitterPaneComponent): void; /** * @hidden @internal * This method performs calculations concerning the sizes of each pair of panes when the bar between them is dragged. * @param delta - The difference along the X (or Y) axis between the initial and the current point when dragging the bar. */ onMoving(delta: number): void; onMoveEnd(delta: number): void; /** @hidden @internal */ getPaneSiblingsByOrder(order: number, barIndex: number): Array; private getTotalSize; /** * @hidden @internal * This method inits panes with properties. */ private initPanes; /** * @hidden @internal * This method reset pane sizes. */ private resetPaneSizes; /** * @hidden @internal * This method assigns the order of each pane. */ private assignFlexOrder; /** * @hidden @internal * Calculates new sizes for the panes based on move delta and initial sizes */ private calcNewSizes; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_nonCollapsible: unknown; } /** * @hidden @internal * Represents the draggable bar that visually separates panes and allows for changing their sizes. */ declare class IgxSplitBarComponent { /** * Set css class to the host element. */ cssClass: string; /** * Sets the visibility of the handle and expanders in the splitter bar. */ nonCollapsible: any; /** * Gets/Sets the orientation. */ type: SplitterType; /** * Sets/gets the element order. */ order: number; /** * @hidden * @internal */ get tabindex(): number; /** * @hidden * @internal */ get orientation(): "horizontal" | "vertical"; /** * @hidden * @internal */ get cursor(): "" | "col-resize" | "row-resize"; /** * Sets/gets the `SplitPaneComponent` associated with the current `SplitBarComponent`. * * @memberof SplitBarComponent */ pane: IgxSplitterPaneComponent; /** * Sets/Gets the `SplitPaneComponent` sibling components associated with the current `SplitBarComponent`. */ siblings: Array; /** * An event that is emitted whenever we start dragging the current `SplitBarComponent`. */ moveStart: EventEmitter; /** * An event that is emitted while we are dragging the current `SplitBarComponent`. */ moving: EventEmitter; movingEnd: EventEmitter; /** * A temporary holder for the pointer coordinates. */ private startPoint; private interactionKeys; /** * @hidden @internal */ get prevButtonHidden(): boolean; /** * @hidden @internal */ keyEvent(event: KeyboardEvent): void; /** * @hidden @internal */ get dragDir(): DragDirection.VERTICAL | DragDirection.HORIZONTAL; /** * @hidden @internal */ get nextButtonHidden(): boolean; /** * @hidden @internal */ onDragStart(event: IDragStartEventArgs): void; /** * @hidden @internal */ onDragMove(event: IDragMoveEventArgs): void; onDragEnd(event: any): void; protected get resizeDisallowed(): boolean; /** * @hidden @internal */ onCollapsing(next: boolean): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_nonCollapsible: unknown; } declare const IGX_SPLITTER_DIRECTIVES: readonly [typeof IgxSplitterComponent, typeof IgxSplitterPaneComponent, typeof IgxSplitBarComponent]; /** * @hidden * @deprecated * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ declare class IgxSplitterModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { IGX_SPLITTER_DIRECTIVES, IgxSplitBarComponent, IgxSplitterComponent, IgxSplitterModule, IgxSplitterPaneComponent, SplitterType }; export type { ISplitterBarResizeEventArgs };