/** @packageDocumentation * @module Zone */ import { PointProps, RectangleProps } from "@bentley/ui-core"; import { Cell, CellProps } from "../../utilities/Cell"; import { DisabledResizeHandles } from "../../utilities/DisabledResizeHandles"; import { HorizontalAnchor, ResizeHandle, VerticalAnchor } from "../../widget/Stacked"; import { BottomZones, LeftZones, RightZones, TopZones } from "./AdjacentZones"; import { ResizeStrategy, UpdateWindowResizeSettings } from "./ResizeStrategy"; import { DraggedWidgetManager, DraggedWidgetManagerProps, ToolSettingsWidgetManagerProps, ToolSettingsWidgetMode, WidgetManagerProps } from "./Widget"; import { ZoneManager, ZoneManagerProps } from "./Zone"; /** Widget zone id. * * ||    || * |:--|:-:|:--| * |`1`|`2`|`3`| * |`4`| 5 |`6`| * |`7`|`8`|`9`| * * @beta */ export declare type WidgetZoneId = 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9; /** Content zone id. * * ||    || * |:|:-:|:| * |1| 2 |3| * |4|`5`|6| * |7| 8 |9| * * @internal */ export declare type ContentZoneId = 5; /** Zone id. * * ||    || * |:--|:-:|:--| * |`1`|`2`|`3`| * |`4`|`5`|`6`| * |`7`|`8`|`9`| * * @internal */ export declare type ZoneId = WidgetZoneId | ContentZoneId; /** Zones used in [[ZonesManagerProps]]. * @beta */ export declare type ZonesManagerZonesProps = { readonly [id in WidgetZoneId]: ZoneManagerProps; }; /** Widgets used in [[ZonesManagerProps]]. * @beta */ export declare type ZonesManagerWidgetsProps = { readonly [id in Exclude]: WidgetManagerProps; } & { readonly [2]: ToolSettingsWidgetManagerProps; }; /** Available zone targets. * @beta */ export declare enum ZoneTargetType { Back = 1, Merge = 2 } /** Zone target used in [[ZonesManagerProps]]. * @beta */ export interface ZonesManagerTargetProps { readonly zoneId: WidgetZoneId; readonly type: ZoneTargetType; } /** Properties used by [[ZonesManager]]. * @beta */ export interface ZonesManagerProps { readonly draggedWidget?: DraggedWidgetManagerProps; readonly isInFooterMode: boolean; readonly target?: ZonesManagerTargetProps; readonly widgets: ZonesManagerWidgetsProps; readonly zones: ZonesManagerZonesProps; readonly zonesBounds: RectangleProps; readonly floatingZonesBounds?: RectangleProps; } /** Returns default [[ZonesManagerProps]] object. * @beta */ export declare const getDefaultZonesManagerProps: () => ZonesManagerProps; /** Array of all widget zone Ids. * @beta */ export declare const widgetZoneIds: ReadonlyArray; /** Returns default [[ZonesManagerZonesProps]] object. * @internal */ export declare const getDefaultZonesManagerZonesProps: () => ZonesManagerZonesProps; /** Returns default [[ZonesManagerWidgetsProps]] object. * @internal */ export declare const getDefaultZonesManagerWidgetsProps: () => ZonesManagerWidgetsProps; /** @internal */ export declare const getZoneCell: (id: ZoneId) => Cell; /** @internal */ export declare const getColumnZones: (id: WidgetZoneId) => WidgetZoneId[]; /** @internal */ export declare const widgetZoneColumnIds: ReadonlyArray; /** @internal */ export declare const getZoneIdFromCell: (cell: CellProps) => WidgetZoneId; /** Arguments used in [[ZonesManager.handleWidgetResize]]. * @beta */ export interface ZonesManagerWidgetResizeArgs { readonly filledHeightDiff: number; readonly handle: ResizeHandle; readonly resizeBy: number; readonly zoneId: WidgetZoneId; } /** @internal */ export declare const getClosedWidgetTabIndex: (tabIndex: number) => number; /** Class used to manage [[ZonesManagerProps]]. * @beta */ export declare class ZonesManager { private _lastStackId; private _zoneManagers?; private _draggedWidgetManager?; /** @internal */ readonly growTop: UpdateWindowResizeSettings; /** @internal */ readonly shrinkTop: UpdateWindowResizeSettings; /** @internal */ readonly growBottom: UpdateWindowResizeSettings; /** @internal */ readonly shrinkBottom: UpdateWindowResizeSettings; /** @internal */ readonly growLeft: UpdateWindowResizeSettings; /** @internal */ readonly shrinkLeft: UpdateWindowResizeSettings; /** @internal */ readonly growRight: UpdateWindowResizeSettings; /** @internal */ readonly shrinkRight: UpdateWindowResizeSettings; /** @internal */ readonly leftZones: LeftZones; /** @internal */ readonly topZones: TopZones; /** @internal */ readonly rightZones: RightZones; /** @internal */ readonly bottomZones: BottomZones; handleWidgetResize({ filledHeightDiff, handle, zoneId, resizeBy }: ZonesManagerWidgetResizeArgs, props: ZonesManagerProps): ZonesManagerProps; handleWidgetTabClick(widgetId: WidgetZoneId, tabIndex: number, props: ZonesManagerProps): ZonesManagerProps; handleWidgetTabDragStart(widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps, props: ZonesManagerProps): ZonesManagerProps; handleWidgetTabDrag(dragged: PointProps, props: ZonesManagerProps): ZonesManagerProps; handleWidgetTabDragEnd(props: ZonesManagerProps): ZonesManagerProps; handleTargetChanged(target: ZonesManagerTargetProps | undefined, props: ZonesManagerProps): ZonesManagerProps; setFloatingZonesBounds(bounds: RectangleProps | undefined, props: ZonesManagerProps): ZonesManagerProps; setZonesBounds(zonesBounds: RectangleProps, props: ZonesManagerProps): ZonesManagerProps; restoreLayout(props: ZonesManagerProps): ZonesManagerProps; getInitialBounds(zoneId: WidgetZoneId, props: ZonesManagerProps): RectangleProps; setIsInFooterMode(isInFooterMode: boolean, props: ZonesManagerProps): ZonesManagerProps; setAllowsMerging(zoneId: WidgetZoneId, allowsMerging: boolean, props: ZonesManagerProps): ZonesManagerProps; mergeZone(zoneId: WidgetZoneId, targetZoneId: WidgetZoneId, props: ZonesManagerProps): ZonesManagerProps; findZoneWithWidget(widgetId: WidgetZoneId, props: ZonesManagerProps): ZoneManagerProps | undefined; getGhostOutlineBounds(zoneId: WidgetZoneId, props: ZonesManagerProps): RectangleProps | undefined; getDisabledResizeHandles(zoneId: WidgetZoneId, props: ZonesManagerProps): DisabledResizeHandles; getDropTarget(zoneId: WidgetZoneId, props: ZonesManagerProps): ZoneTargetType | undefined; setZoneWidth(zoneId: WidgetZoneId, width: number, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ getZoneManager(id: WidgetZoneId): ZoneManager; /** @internal */ get draggedWidgetManager(): DraggedWidgetManager; /** @internal */ getResizeStrategy(handle: ResizeHandle, resizeBy: number): ResizeStrategy; /** @internal */ getWindowResizeBounds(props: ZonesManagerProps): { [id in WidgetZoneId]: RectangleProps; }; /** @internal */ canBeMergedTo(zoneId: WidgetZoneId, targetZoneId: WidgetZoneId, props: ZonesManagerProps): boolean; /** @internal */ addWidget(zoneId: WidgetZoneId, widgetId: WidgetZoneId, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ removeWidget(zoneId: WidgetZoneId, widgetId: WidgetZoneId, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ isWidgetOpen(zoneId: WidgetZoneId, props: ZonesManagerProps): boolean; /** @internal */ private findZoneIdWithWidget; /** @internal */ getUnmergeWidgetBounds(zoneId: WidgetZoneId, props: ZonesManagerProps): Array<{ id: WidgetZoneId; bounds: RectangleProps; }>; /** @internal */ isMergedVertically(zoneId: WidgetZoneId, props: ZonesManagerProps): boolean; /** @internal */ isMergedHorizontally(zoneId: WidgetZoneId, props: ZonesManagerProps): boolean; /** @internal */ isResizable(zoneId: WidgetZoneId): boolean; /** @internal */ setWidgetTabIndex(widgetId: WidgetZoneId, tabIndex: number, props: TProps): TProps; /** @internal */ setWidgetHorizontalAnchor(widgetId: WidgetZoneId, horizontalAnchor: HorizontalAnchor, props: TProps): TProps; /** @internal */ setWidgetVerticalAnchor(widgetId: WidgetZoneId, verticalAnchor: VerticalAnchor, props: TProps): TProps; /** @internal */ setToolSettingsWidgetMode(mode: ToolSettingsWidgetMode, props: TProps): TProps; /** @internal */ setZoneProps(zoneProps: ZoneManagerProps, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ setDraggedWidgetProps(draggedWidget: DraggedWidgetManagerProps | undefined, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ setDraggedWidgetLastPosition(lastPosition: PointProps, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ setZoneFloatingBounds(zoneId: WidgetZoneId, bounds: RectangleProps, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ setZoneBounds(zoneId: WidgetZoneId, bounds: RectangleProps, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ setZoneIsLayoutChanged(zoneId: WidgetZoneId, isLayoutChanged: boolean, props: ZonesManagerProps): ZonesManagerProps; /** @internal */ saveWindowSettings(id: WidgetZoneId, props: ZonesManagerProps): void; } //# sourceMappingURL=Zones.d.ts.map