import { SplitterPanelPassThrough, SplitterPassThrough, SplitterStateStorage, SplitterLayout, SplitterResizeEndEvent, SplitterResizeStartEvent, SplitterResizeEvent, SplitterCollapseEvent } from 'primeng/types/splitter'; export * from 'primeng/types/splitter'; import * as _angular_core from '@angular/core'; import { TemplateRef, ElementRef } from '@angular/core'; import { BaseComponent } from 'primeng/basecomponent'; import * as i1 from 'primeng/bind'; import { Bind } from 'primeng/bind'; import { VoidListener, Nullable } from 'primeng/ts-helpers'; import { CSSProperties } from 'primeng/types/shared'; import { BaseStyle } from 'primeng/base'; import * as i3 from 'primeng/api'; declare class SplitterStyle extends BaseStyle { name: string; style: string; classes: { root: ({ instance }: { instance: any; }) => string[]; panel: string; gutter: string; gutterHandle: string; }; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * * Splitter is utilized to separate and resize panels. * * [Live Demo](https://www.primeng.org/splitter/) * * @module splitterstyle * */ declare enum SplitterClasses { /** * Class name of the root element */ root = "p-splitter", /** * Class name of the panel element */ panel = "p-splitter-panel", /** * Class name of the gutter element */ gutter = "p-splitter-gutter", /** * Class name of the handle element */ gutterHandle = "p-splitter-gutter-handle" } /** * SplitterPanel is a helper component for Splitter, used to define a single resizable panel * together with its size constraints (min/max size, collapsible behavior). * @group Components */ declare class SplitterPanel extends BaseComponent { componentName: string; bindDirectiveInstance: Bind; /** * Initial size of the panel relative to 100%. * @group Props */ size: _angular_core.InputSignalWithTransform; /** * Minimum size of the panel relative to 100%. * @defaultValue 0 * @group Props */ minSize: _angular_core.InputSignalWithTransform; /** * Maximum size of the panel relative to 100%. * @defaultValue 100 * @group Props */ maxSize: _angular_core.InputSignalWithTransform; /** * When enabled, the panel can collapse below its `minSize` down to `collapsedSize`. * @defaultValue false * @group Props */ collapsible: _angular_core.InputSignalWithTransform; /** * Size of the panel when collapsed, relative to 100%. * @defaultValue 0 * @group Props */ collapsedSize: _angular_core.InputSignalWithTransform; /** * @ignore * Content of the panel, stamped by the parent Splitter into the panel wrapper. */ contentTemplate: _angular_core.Signal | undefined>; /** * @ignore * `class`/`style` set directly on the `` element are forwarded by the parent * Splitter onto the panel it renders, so authors can style the panel inline as expected. */ get hostClass(): string; get hostStyle(): string | null; _componentStyle: SplitterStyle; onAfterViewChecked(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Runtime configuration of a panel, resolved either from a SplitterPanel component or from the * array-based inputs (minSizes/panelSizes) for backward compatibility. */ interface SplitterPanelMeta { minSize: number; maxSize: number; collapsible: boolean; collapsedSize: number; size: number | undefined; } interface SplitterPanelInfo extends SplitterPanelMeta { index: number; collapsed: boolean; } /** * Splitter is utilized to separate and resize panels. * @group Components */ declare class Splitter extends BaseComponent { componentName: string; bindDirectiveInstance: Bind; /** * Style class of the component. * @group Props */ styleClass: _angular_core.InputSignal; /** * Style class of the panel. * @group Props */ panelStyleClass: _angular_core.InputSignal; /** * Inline style of the panel. * @group Props */ panelStyle: _angular_core.InputSignal; /** * Defines where a stateful splitter keeps its state, valid values are 'session' for sessionStorage and 'local' for localStorage. * @group Props */ stateStorage: _angular_core.InputSignal; /** * Storage identifier of a stateful Splitter. * @group Props */ stateKey: _angular_core.InputSignal; /** * Orientation of the panels. Valid values are 'horizontal' and 'vertical'. * @group Props */ layout: _angular_core.InputSignal; /** * Size of the divider in pixels. * @group Props */ gutterSize: _angular_core.InputSignalWithTransform; /** * Step factor to increment/decrement the size of the panels while pressing the arrow keys. * @group Props */ step: _angular_core.InputSignalWithTransform; /** * Minimum size of the elements relative to 100%. Used when panels are defined via `#panel` templates; * when SplitterPanel components are used, the per-panel `minSize` input takes precedence. * @group Props */ minSizes: _angular_core.InputSignal; /** * Size of the elements relative to 100%. Used when panels are defined via `#panel` templates; * when SplitterPanel components are used, the per-panel `size` input takes precedence. * @group Props */ panelSizes: _angular_core.InputSignal; /** * When present, it disables the component and prevents resizing. * @defaultValue false * @group Props */ disabled: _angular_core.InputSignalWithTransform; /** * Callback to invoke when resize ends. * @param {SplitterResizeEndEvent} event - Custom panel resize end event * @group Emits */ onResizeEnd: _angular_core.OutputEmitterRef; /** * Callback to invoke when resize starts. * @param {SplitterResizeStartEvent} event - Custom panel resize start event * @group Emits */ onResizeStart: _angular_core.OutputEmitterRef; /** * Callback to invoke continuously while a gutter is being dragged. * @param {SplitterResizeEvent} event - Custom panel resize event * @group Emits */ onResize: _angular_core.OutputEmitterRef; /** * Callback to invoke when a collapsible panel collapses or expands. * @param {SplitterCollapseEvent} event - Custom collapse event * @group Emits */ onCollapse: _angular_core.OutputEmitterRef; /** * Panels declared via SplitterPanel components. * @ignore */ panelComponents: _angular_core.Signal; /** * Panels declared via `` (backward compatible API). * @ignore */ panelChildren: _angular_core.Signal[]>; /** * Resolved panel content templates, sourced from SplitterPanel components when present, * otherwise from `#panel` templates. */ panels: _angular_core.Signal[]>; /** * Resolved per-panel configuration (min/max/collapsible/collapsedSize/size). */ panelMetas: _angular_core.Signal; /** * Value-based signature of the panel configuration. Lets the (re)initialization effect ignore * array-literal input bindings that change identity but not value on every parent change detection. */ panelSignature: _angular_core.Signal; /** * Class for each panel wrapper: the base panel class plus the splitter-level `panelStyleClass` * and the `class` set directly on the matching SplitterPanel. */ panelClass: _angular_core.Signal; /** * Inline style for each panel wrapper: the `style` set directly on the matching SplitterPanel, * falling back to the splitter-level `panelStyle`. */ panelInlineStyle: _angular_core.Signal<(string | CSSProperties)[]>; dragging: boolean; isResizing: _angular_core.WritableSignal; resizingIndex: _angular_core.WritableSignal; collapsed: _angular_core.WritableSignal; /** * Flex values applied to each panel wrapper, e.g. `35 1 0px`. Bound declaratively so panel sizing * never depends on imperative DOM timing. */ panelFlex: _angular_core.WritableSignal; dataResizing: _angular_core.Signal<"" | null>; pointerMoveListener: VoidListener; pointerUpListener: VoidListener; size: Nullable; gutterElement: Nullable; startPos: Nullable; _panelSizes: number[]; panelRegistry: SplitterPanelInfo[]; initialSizes: number[]; initialCollapsed: boolean[]; reportedCollapsed: boolean[]; initialTotal: number; prevPanelIndex: Nullable; timer: ReturnType | undefined; prevSize: string | undefined; _componentStyle: SplitterStyle; rootClass: _angular_core.Signal; constructor(); dataP: _angular_core.Signal; onAfterViewChecked(): void; buildPanelRegistry(): void; initializePanels(): void; updateFlex(): void; syncCollapsedState(): void; getPanelMinSize(index: number): number; getPanelMaxSize(index: number): number; resizeStart(event: PointerEvent | KeyboardEvent, index: number, isKeyDown?: boolean): void; onResizeMove(event: PointerEvent | KeyboardEvent, step?: number, isKeyDown?: boolean): void; distribute(newSizes: number[], growIdx: number, requested: number, isKeyDown: boolean | undefined, direction: 'forward' | 'backward'): void; validatePanelSize(rawSize: number, info: SplitterPanelInfo | undefined, min: number, isKeyDown: boolean | undefined): { size: number; collapsed: boolean; }; range(start: number, end: number, step: number): number[]; resizeEnd(event: PointerEvent | KeyboardEvent): void; onGutterPointerDown(event: PointerEvent, index: number): void; repeat(event: KeyboardEvent, index: number, step: number): void; setTimer(event: KeyboardEvent, index: number, step: number): void; clearTimer(): void; onGutterKeyUp(event: KeyboardEvent): void; onGutterKeyDown(event: KeyboardEvent, index: number): void; bindPointerListeners(): void; unbindPointerListeners(): void; clear(): void; isStateful(): boolean; getStorage(): Storage | undefined; saveState(): void; restoreState(): boolean; /** * Resets the panel sizes using the stored state (for a stateful Splitter), the configured * sizes, or the default equal distribution. */ resetState(): void; gutterInlineStyle(): { width: string; 'touch-action': string; 'user-select': string; } | { height: string; 'touch-action': string; 'user-select': string; }; horizontal(): boolean; round(value: number | undefined): number; onDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class SplitterModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } export { Splitter, SplitterClasses, SplitterModule, SplitterPanel, SplitterStyle };