import type { IgcDragService } from '../drag-drop/drag.service.js'; import type { IconName } from '../icon/icons.js'; /** * @hidden */ export declare const IGC_DEFAULT_PANE_SIZE = 100; /** * @hidden */ export declare const IGC_DEFAULT_PANE_SIZE_IN_PIXELS = 100; /** * @hidden */ export declare const IGC_DEFAULT_UNPIN_PANE_SIZE = 200; /** * @hidden */ export declare const IGC_RESIZING_MIN_SIZE = 42; /** * @hidden */ export declare const IGC_DEFAULT_SPLITTER_SIZE = 4; /** * @hidden */ export declare const IGC_DEFAULT_RESIZE = 10; /** * @hidden */ export declare const IGC_DRAG_FLYOUT_THRESHOLD = 50; /** * @hidden */ export declare const IGC_DEFAULT_FLOATING_PANE_HEADER_HEIGHT = 30; /** * @hidden * @deprecated Use TabHeadersPosition instead. */ export declare const IgcTabHeadersPosition: { readonly top: "top"; readonly bottom: "bottom"; }; export type IgcTabHeadersPosition = (typeof IgcTabHeadersPosition)[keyof typeof IgcTabHeadersPosition]; /** * @hidden * @deprecated Use ContextMenuOrientation instead. */ export declare const IgcContextMenuOrientation: { readonly top: "top"; readonly bottom: "bottom"; }; export type IgcContextMenuOrientation = (typeof IgcContextMenuOrientation)[keyof typeof IgcContextMenuOrientation]; /** * @hidden * @deprecated Use ContextMenuPosition instead. */ export declare const IgcContextMenuPosition: { readonly start: "start"; readonly center: "center"; readonly end: "end"; readonly stretch: "stretch"; }; export type IgcContextMenuPosition = (typeof IgcContextMenuPosition)[keyof typeof IgcContextMenuPosition]; /** * @hidden */ export interface IgcDropTargetPaneInfo { pane: IgcDockManagerPane; docHost: IgcDocumentHost | null; targetRect: DOMRect | null; visibleTargetRect?: DOMRect; floatingPaneWithoutDocHost?: boolean; } /** * @hidden */ export interface IgcDockManagerComponentBase { activePane: IgcContentPane | null; draggedPane: IgcContentPane | IgcSplitPane | IgcTabGroupPane | null; dropTargetPaneInfo: IgcDropTargetPaneInfo | null; documentOnlyDrag: boolean; dropShadowRect: DOMRect | null; isValidDrop: boolean; allowMaximize: boolean; proximityDock: boolean; containedInBoundaries: boolean; flyoutPane: IgcContentPane | null; maximizedPane: IgcContentPane | IgcSplitPane | IgcTabGroupPane | null; layout: IgcDockManagerLayout; disableKeyboardNavigation: boolean; floatingPaneZIndicesMap: Map; paneClose(eventArgs: IgcPaneCloseEventArgs): CustomEvent; paneScroll(eventArgs: IgcPaneScrollEventArgs): CustomEvent; panePinnedToggle(eventArgs: IgcPanePinnedEventArgs): CustomEvent; paneFlyoutToggle(eventArgs: IgcPaneFlyoutEventArgs): CustomEvent; paneDragStart(eventArgs: IgcPaneDragStartEventArgs): CustomEvent; paneDragOver(eventArgs: IgcPaneDragOverEventArgs): CustomEvent; paneDragEnd(eventArgs: IgcPaneDragEndEventArgs): CustomEvent; resourceStrings?: IgcDockManagerResourceStrings; focusElement: () => void; navigationPaneMeta?: IgcPaneNavigatorMetadata | null; floatingPaneResizeStart(eventArgs: IgcFloatingPaneResizeEventArgs): CustomEvent; floatingPaneResizeMove(eventArgs: IgcFloatingPaneResizeMoveEventArgs): CustomEvent; floatingPaneResizeEnd(eventArgs: IgcFloatingPaneResizeEventArgs): CustomEvent; layoutChange(): CustomEvent; direction: string; allowInnerDock: boolean; closeBehavior: IgcPaneActionBehavior; unpinBehavior: IgcPaneActionBehavior; allowSplitterDock: boolean; enableDragCursor: boolean; allowRootDock: boolean; useFixedSizeOnDock: 'none' | 'vertical' | 'horizontal' | 'both'; autoScrollConfig: { edgeThreshold: number; scrollSpeed: number; }; } /** * @hidden */ export interface IgcContextMenuMetadata { menuItems: IgcContextMenuItem[]; target: HTMLElement; position: IgcContextMenuPosition; } /** * @hidden */ export interface IgcContextMenuItem { iconName: IconName | ''; displayText: string; disabled?: boolean; clickHandler: () => void; } /** * @hidden */ export interface IgcTabRectsInfo { headerRect: DOMRect; prevHeaderRect: DOMRect | null; nextHeaderRect: DOMRect | null; lastVisibleHeaderRect: DOMRect; tabsRect: DOMRect; } export interface IgcPaneNavigatorMetadata { activePanes: IgcContentPane[]; activeDocuments: IgcContentPane[]; initialIndex: number; previousActivePaneIndex: number; } export interface IgcScrollConfig { edgeThreshold: number; scrollSpeed: number; } /** * @hidden */ export interface PartNameInfo { readonly [name: string]: string | boolean | number; } /** * @deprecated Use DockManagerPaneType instead. */ export declare const IgcDockManagerPaneType: { readonly splitPane: "splitPane"; readonly contentPane: "contentPane"; readonly tabGroupPane: "tabGroupPane"; readonly documentHost: "documentHost"; }; export type IgcDockManagerPaneType = (typeof IgcDockManagerPaneType)[keyof typeof IgcDockManagerPaneType]; /** * @deprecated Use SplitPaneOrientation instead. */ export declare const IgcSplitPaneOrientation: { readonly horizontal: "horizontal"; readonly vertical: "vertical"; }; export type IgcSplitPaneOrientation = (typeof IgcSplitPaneOrientation)[keyof typeof IgcSplitPaneOrientation]; /** * @deprecated Use UnpinnedLocation instead. */ export declare const IgcUnpinnedLocation: { readonly top: "top"; readonly bottom: "bottom"; readonly left: "left"; readonly right: "right"; }; export type IgcUnpinnedLocation = (typeof IgcUnpinnedLocation)[keyof typeof IgcUnpinnedLocation]; /** * Enumeration used to determine which panes within a dockable TabGroupPane are affected by a particular pane action such as closing or unpinning a pane. * @deprecated Use PaneActionBehavior instead. */ export declare const IgcPaneActionBehavior: { readonly allPanes: "allPanes"; readonly selectedPane: "selectedPane"; }; export type IgcPaneActionBehavior = (typeof IgcPaneActionBehavior)[keyof typeof IgcPaneActionBehavior]; export interface IgcDockManagerPoint { x: number; y: number; } export interface IgcActivePaneEventArgs { /** * Gets the new active pane. */ readonly newPane: IgcContentPane; /** * Gets the old active pane. */ readonly oldPane: IgcContentPane; } /** * @deprecated Use DockingIndicatorPosition instead. */ export declare const IgcDockingIndicatorPosition: { readonly left: "left"; readonly leftMost: "leftMost"; readonly outerLeft: "outerLeft"; readonly right: "right"; readonly rightMost: "rightMost"; readonly outerRight: "outerRight"; readonly top: "top"; readonly topMost: "topMost"; readonly outerTop: "outerTop"; readonly bottom: "bottom"; readonly bottomMost: "bottomMost"; readonly outerBottom: "outerBottom"; readonly center: "center"; readonly splitterHorizontal: "splitterHorizontal"; readonly splitterVertical: "splitterVertical"; }; export type IgcDockingIndicatorPosition = (typeof IgcDockingIndicatorPosition)[keyof typeof IgcDockingIndicatorPosition]; export interface IgcDockingIndicator { /** * Gets the position of the docking indicator. */ readonly position: IgcDockingIndicatorPosition; /** * Gets a value indicating whether the docking indicator is a root one. */ readonly isRoot: boolean; /** * Gets a value indicating the direction of the docking indicator. */ readonly direction?: string; } export interface IgcPaneHeaderConnectionEventArgs { /** * The pane whose header is being connected/disconnected. */ readonly pane: IgcContentPane; /** * The header element that is being connected/disconnected. */ readonly element: IgcPaneHeaderElement; } export interface IgcTabHeaderConnectionEventArgs { /** * The pane whose tab header is being connected/disconnected. */ readonly pane: IgcContentPane; /** * The tab header element that is being connected/disconnected. */ readonly element: IgcTabHeaderElement; } export interface IgcPaneCloseEventArgs { /** * Get the source pane that triggers the close. */ readonly sourcePane: IgcDockManagerPane; /** * Gets/sets the panes that are about to close. */ panes: IgcContentPane[]; } export interface IgcPaneScrollEventArgs { /** * Gets the content pane that is scrolled. */ readonly pane: IgcContentPane; /** * Gets the content element that is scrolled. */ readonly contentElement: HTMLElement; } export interface IgcPanePinnedEventArgs { /** * Gets the source pane that triggers the pinned state change. */ readonly sourcePane: IgcContentPane; /** * Gets/sets the panes that are about to get pinned/unpinned. */ panes: IgcContentPane[]; /** * Gets the new pinned value. */ readonly newValue: boolean; /** * Gets the unpinned location. */ readonly location: IgcUnpinnedLocation; } export interface IgcPaneFlyoutEventArgs { /** * Gets the unpinned pane that is being opened or closed. * This is the content pane whose flyout state is changing. */ readonly pane: IgcContentPane; /** * Gets whether the unpinned pane is being opened (true) or closed (false). * * - `true`: The unpinned pane's flyout is opening and its content will be displayed. * - `false`: The unpinned pane's flyout is closing and its content will be hidden. */ readonly isOpen: boolean; } export interface IgcPaneDragStartEventArgs { /** * Gets the source pane that triggers the drag start. */ readonly sourcePane: IgcSplitPane | IgcContentPane; /** * Gets the panes that are about to get dragged. */ readonly panes: IgcContentPane[]; } /** * @deprecated Use PaneDragActionType instead. */ export declare const IgcPaneDragActionType: { readonly floatPane: "floatPane"; readonly moveFloatingPane: "moveFloatingPane"; readonly dockPane: "dockPane"; readonly moveTab: "moveTab"; }; export type IgcPaneDragActionType = (typeof IgcPaneDragActionType)[keyof typeof IgcPaneDragActionType]; export interface IgcFloatPaneAction { readonly type: (typeof IgcPaneDragActionType)['floatPane']; readonly location: IgcDockManagerPoint; width: number; height: number; } export interface IgcMoveFloatingPaneAction { readonly type: (typeof IgcPaneDragActionType)['moveFloatingPane']; readonly oldLocation: IgcDockManagerPoint; readonly newLocation: IgcDockManagerPoint; } export interface IgcDockPaneAction { readonly type: (typeof IgcPaneDragActionType)['dockPane']; readonly dockingIndicator: IgcDockingIndicator; readonly targetPane: IgcDockManagerPane; } export interface IgcMoveTabAction { readonly type: (typeof IgcPaneDragActionType)['moveTab']; readonly oldIndex: number; readonly newIndex: number; } export type IgcPaneDragAction = IgcFloatPaneAction | IgcMoveFloatingPaneAction | IgcDockPaneAction | IgcMoveTabAction; export interface IgcPaneDragOverEventArgs { /** * Gets the source pane that triggers the drag over. */ readonly sourcePane: IgcSplitPane | IgcTabGroupPane | IgcContentPane; /** * Gets the panes that are dragged over. */ readonly panes: IgcContentPane[]; /** * Gets information about the action being performed. */ readonly action: IgcPaneDragAction; /** * Gets/sets whether the action is valid. */ isValid: boolean; } export interface IgcPaneDragEndEventArgs { /** * Gets the source pane that ends dragging. */ readonly sourcePane: IgcSplitPane | IgcTabGroupPane | IgcContentPane; /** * Gets the panes that end dragging. */ readonly panes: IgcContentPane[]; } export interface IgcLayoutChangeEventArgs { /** * The new layout of the Dock Manager. */ layout: IgcDockManagerLayout; } export interface IgcContentPane { /** * The id of the pane. If not set the Dock Manager generates it automatically. */ id?: string; /** * The type of the pane. */ type: (typeof IgcDockManagerPaneType)['contentPane']; /** * The slot attribute's value of the content element. */ contentId: string; /** * The text header of the content pane. Even if header slot templates are used, the text header is used for aria label. */ header: string; /** * The slot attribute's value of the content pane header element. If not set, the `header` property value is used. */ headerId?: string; /** * The slot attribute's value of the tab header element. If not set, the `header` property value is used. */ tabHeaderId?: string; /** * The slot attribute's value of the unpinned header element. If not set, the `header` property value is used. */ unpinnedHeaderId?: string; /** * The slot attribute's value of the floating header element. If not set, the `headerId` property value is used. */ floatingHeaderId?: string; /** * The size of the pane relative to its sibling panes' sizes. Defaults to 100. */ size?: number; /** * Determines whether the end user is allowed to close the pane. Defaults to true. */ allowClose?: boolean; /** * Determines whether the end user is allowed to maximize the pane. */ allowMaximize?: boolean; /** * Determines whether the end user is allowed to pin/unpin the pane. Defaults to true. */ allowPinning?: boolean; /** * Determines whether the end user is allowed to dock the pane. Defaults to true. */ allowDocking?: boolean; /** * Determines whether the end user can inner dock another pane in this one. Defaults to true. */ acceptsInnerDock?: boolean; /** * Determines whether the end user is allowed to make the pane floating. Defaults to true. */ allowFloating?: boolean; /** * The absolute size of the pane in an unpinned state. Defaults to 200. */ unpinnedSize?: number; /** * Determines whether a content pane is pinned or not. Defaults to true. */ isPinned?: boolean; /** * Determines whether a content pane is maximized or not. Defaults to false. */ isMaximized?: boolean; /** * The desired unpinned location of the content pane. * * If not set the Dock Manager automatically calculates it based on the location of the pane relatively to the document host. * If more than one document host is presented, the closest one in the pane hierarchy will be used for the calculation. * If there is no document host, the default location is left. */ unpinnedLocation?: IgcUnpinnedLocation; /** * Determines whether a pane is hidden in the UI. Defaults to false. */ hidden?: boolean; /** * Determines whether a pane is disabled. Defaults to false. */ disabled?: boolean; /** * Marks that a content pane can be docked only inside a document host. */ documentOnly?: boolean; /** * The minimum width of the pane in pixels during resizing. Defaults to 42. */ minResizeWidth?: number; /** * The minimum height of the pane in pixels during resizing. Defaults to 42. */ minResizeHeight?: number; } export interface IgcSplitPane { /** * The id of the pane. If not set the Dock Manager generates it automatically. */ id?: string; /** * The type of the pane. */ type: (typeof IgcDockManagerPaneType)['splitPane']; /** * The orientation of the split pane. */ orientation: IgcSplitPaneOrientation; /** * The child panes of the split pane. */ panes: IgcDockManagerPane[] | null; /** * The size of the pane relative to its sibling panes' sizes. Defaults to 100. */ size?: number; /** * The absolute location point of the pane. Applies only for floating panes. */ floatingLocation?: IgcDockManagerPoint; /** * The absolute width of the pane. Applies only for floating panes. Defaults to 100. */ floatingWidth?: number; /** * The absolute height of the pane. Applies only for floating panes. Defaults to 100. */ floatingHeight?: number; /** * Determines whether floating pane resizing is allowed. Applies only for floating panes. */ floatingResizable?: boolean; /** * Determines whether the pane should present in the UI when empty. */ allowEmpty?: boolean; /** * Determines whether a split pane is maximized or not. Defaults to false. * @deprecated in 1.14.4. Use the `isMaximized` property of TabGroupPane and/or ContentPane instead. * Having isMaximized set to true on a split pane level has no real effect as split panes serve as containers only, meaning they have no actual content to be shown maximized. */ isMaximized?: boolean; /** * Determines whether child panes are sized in pixels (instead of relatively to their siblings) and can be resized beyond the viewport, allowing scrollable overflow within the container. * Defaults to false. */ useFixedSize?: boolean; /** * The minimum width of child panes in pixels during resizing. Defaults to 42. */ minResizeWidth?: number; /** * The minimum height of child panes in pixels during resizing. Defaults to 42. */ minResizeHeight?: number; } export interface IgcTabGroupPane { /** * The id of the pane. If not set the Dock Manager generates it automatically. */ id?: string; /** * The type of the pane. */ type: (typeof IgcDockManagerPaneType)['tabGroupPane']; /** * The child content panes of the tab group. */ panes: IgcContentPane[]; /** * The size of the pane relative to its sibling panes' sizes. Defaults to 100. */ size?: number; /** * The index of the selected tab. */ selectedIndex?: number; /** * Determines whether the pane should present in the UI when empty. */ allowEmpty?: boolean; /** * Determines whether a tab group is maximized or not. Defaults to false. */ isMaximized?: boolean; /** * The minimum width of the tab group pane in pixels during resizing. Defaults to 42. */ minResizeWidth?: number; /** * The minimum height of the tab group pane in pixels during resizing. Defaults to 42. */ minResizeHeight?: number; } export interface IgcDocumentHost { /** * The id of the pane. If not set the Dock Manager generates it automatically. */ id?: string; /** * The type of the pane. */ type: (typeof IgcDockManagerPaneType)['documentHost']; /** * The root split pane of the document host. */ rootPane: IgcSplitPane | null; /** * The size of the pane relative to its sibling panes' sizes. Defaults to 100. */ size?: number; } export type IgcDockManagerPane = IgcContentPane | IgcSplitPane | IgcTabGroupPane | IgcDocumentHost | undefined; /** * Describes a Dock Manager layout. */ export interface IgcDockManagerLayout { /** * The root split pane of the layout. */ rootPane: IgcSplitPane; /** * The floating panes of the layout. */ floatingPanes?: IgcSplitPane[]; } /** * Describes a pane header element. */ export interface IgcPaneHeaderElement extends HTMLElement { /** * Gets/sets the drag service. */ dragService: IgcDragService; } /** * Describes a tab header element. */ export interface IgcTabHeaderElement extends HTMLElement { /** * Gets/sets the drag service. */ dragService: IgcDragService; } /** * Describes dock manager resource strings. */ export interface IgcDockManagerResourceStrings { close?: string; pin?: string; unpin?: string; maximize?: string; minimize?: string; moreOptions?: string; moreTabs?: string; panes?: string; documents?: string; } /** * @deprecated Use ResizerLocation instead. */ export declare const IgcResizerLocation: { readonly top: "top"; readonly bottom: "bottom"; readonly left: "left"; readonly right: "right"; readonly topLeft: "topLeft"; readonly topRight: "topRight"; readonly bottomLeft: "bottomLeft"; readonly bottomRight: "bottomRight"; }; export type IgcResizerLocation = (typeof IgcResizerLocation)[keyof typeof IgcResizerLocation]; export interface IgcSplitterResizeEventArgs { /** * Gets the pane being resized with the splitter. */ readonly pane: IgcDockManagerPane; /** * Gets the pane's orientation. */ readonly orientation: IgcSplitPaneOrientation; /** * Gets the pane's width. */ readonly paneWidth: number; /** * Gets the pane's height. */ readonly paneHeight: number; } export interface IgcFloatingPaneResizeEventArgs { /** * Gets the source pane that triggers the resize operation. */ readonly sourcePane: IgcSplitPane; /** * Gets the edge/corner that is being dragged. */ readonly resizerLocation: IgcResizerLocation; } export interface IgcFloatingPaneResizeMoveEventArgs extends IgcFloatingPaneResizeEventArgs { /** * Gets the pane's width before the resizing operation. */ readonly oldWidth: number; /** * Gets the pane's width after the resizing operation. */ newWidth: number; /** * Gets the pane's height before the resizing operation. */ readonly oldHeight: number; /** * Gets the pane's height after the resizing operation. */ newHeight: number; /** * Gets the pane's floating location before the resizing operation. */ readonly oldLocation: IgcDockManagerPoint; /** * Gets the pane's floating location after the resizing operation. */ newLocation: IgcDockManagerPoint; }