/** @packageDocumentation * @module Widget */ import * as React from "react"; import { AbstractWidgetProps, BadgeType, ConditionalStringValue, StringGetter, WidgetState } from "@bentley/ui-abstract"; import { UiEvent } from "@bentley/ui-core"; import { Direction, PanelSide } from "@bentley/ui-ninezone"; import { ConfigurableUiControlConstructor, ConfigurableUiControlType } from "../configurableui/ConfigurableUiControl"; import { CommandItemDef } from "../shared/CommandItemDef"; import { ItemList } from "../shared/ItemMap"; import { WidgetControl } from "./WidgetControl"; import { WidgetProps } from "./WidgetProps"; /** Widget State Changed Event Args interface. * @public */ export interface WidgetStateChangedEventArgs { widgetDef: WidgetDef; widgetState: WidgetState; } /** Widget State Changed Event class. * @public */ export declare class WidgetStateChangedEvent extends UiEvent { } /** @internal */ export interface WidgetChangedEventArgs { widgetDef: WidgetDef; } /** @internal */ export interface WidgetEventArgs { widgetDef: WidgetDef; } /** Widget type enum. * @public */ export declare enum WidgetType { Tool = 0, Navigation = 1, FreeFrom = 2, Rectangular = 3, ToolSettings = 4, StatusBar = 5 } /** Properties for a Toolbar Widget. * @public */ export interface ToolbarWidgetProps extends WidgetProps { horizontalDirection?: Direction; verticalDirection?: Direction; horizontalItems?: ItemList; verticalItems?: ItemList; } /** Properties for a Tool Widget. * @public */ export interface ToolWidgetProps extends ToolbarWidgetProps { appButton?: CommandItemDef; } /** Properties for a Navigation Widget. * @public */ export interface NavigationWidgetProps extends ToolbarWidgetProps { navigationAidId?: string; } /** Union of all Widget properties. * @public */ export declare type AnyWidgetProps = WidgetProps | ToolWidgetProps | NavigationWidgetProps; /** Prototype for WidgetDef StateFunc * @public */ export declare type WidgetStateFunc = (state: Readonly) => WidgetState; /** @internal */ export interface TabLocation { widgetId: string; widgetIndex: number; side: PanelSide; tabIndex: number; } /** A Widget Definition in the 9-Zone Layout system. * @public */ export declare class WidgetDef { private static _sId; private _label; private _tooltip; private _widgetReactNode; private _widgetControl; private _defaultState; private _state; private _id; private _classId; private _priority; private _isFreeform; private _isFloatingStateSupported; private _isFloatingStateWindowResizable; private _isToolSettings; private _isStatusBar; private _stateChanged; private _fillZone; private _syncEventIds; private _stateFunc?; private _widgetType; private _applicationData?; private _iconSpec?; private _badgeType?; private _onWidgetStateChanged?; private _saveTransientState?; private _restoreTransientState?; private _preferredPanelSize; private _canPopout?; private _tabLocation; get state(): WidgetState; get id(): string; get classId(): string | ConfigurableUiControlConstructor | undefined; get priority(): number; get isFreeform(): boolean; get isFloatingStateSupported(): boolean; get isFloatingStateWindowResizable(): boolean; get isToolSettings(): boolean; get isStatusBar(): boolean; get stateChanged(): boolean; get fillZone(): boolean; get syncEventIds(): string[]; get stateFunc(): WidgetStateFunc | undefined; get applicationData(): any | undefined; get isFloating(): boolean; get iconSpec(): string | ConditionalStringValue | React.ReactNode; get badgeType(): BadgeType | undefined; get widgetType(): WidgetType; set widgetType(type: WidgetType); /** @internal */ get tabLocation(): TabLocation; set tabLocation(tabLocation: TabLocation); /** @internal */ get defaultState(): WidgetState; constructor(widgetProps: WidgetProps); static initializeFromWidgetProps(widgetProps: WidgetProps, me: WidgetDef): void; static createWidgetPropsFromAbstractProps(abstractWidgetProps: AbstractWidgetProps): WidgetProps; setUpSyncSupport(props: WidgetProps): void; private _handleSyncUiEvent; /** @alpha */ get preferredPanelSize(): "fit-content" | undefined; /** Get the label string */ get label(): string; /** Set the label. * @param v A string or a function to get the string. */ setLabel(v: string | ConditionalStringValue | StringGetter): void; /** Get the tooltip string */ get tooltip(): string; /** Set the tooltip. * @param v A string or a function to get the string. */ setTooltip(v: string | ConditionalStringValue | StringGetter): void; get widgetControl(): WidgetControl | undefined; getWidgetControl(type: ConfigurableUiControlType): WidgetControl | undefined; get reactNode(): React.ReactNode; set reactNode(node: React.ReactNode); /** @deprecated use reactNode */ get reactElement(): React.ReactNode; set reactElement(node: React.ReactNode); setWidgetState(newState: WidgetState): void; setCanPopout(value: boolean | undefined): void; get canPopout(): boolean | undefined; canOpen(): boolean; get isVisible(): boolean; get activeState(): WidgetState; get isActive(): boolean; onWidgetStateChanged(): void; /** Overwrite to save transient DOM state (i.e. scroll offset). */ saveTransientState(): void; /** Overwrite to restore transient DOM state. * @note Return true if the state is restored or the Widget will remount. */ restoreTransientState(): boolean; /** Opens the widget and makes it visible to the user. * I.e. opens the stage panel or brings the floating widget to front of the screen. * @alpha */ show(): void; /** Opens the widget and expands it to fill full size of the stage panel. * @alpha */ expand(): void; } //# sourceMappingURL=WidgetDef.d.ts.map