@itwin/appui-react 4.16.4 → 4.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -1
- package/lib/cjs/appui-react/UiFramework.d.ts +5 -0
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +5 -0
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts +1 -0
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +1 -0
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +1 -0
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +1 -0
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts +1 -0
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +1 -0
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.js +2 -0
- package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +2 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/CopyStyles.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/CopyStyles.js +10 -5
- package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -0
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +7 -2
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.d.ts +8 -4
- package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.js +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -1
- package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +44 -10
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayoutProps.d.ts +63 -0
- package/lib/cjs/appui-react/content/ContentLayoutProps.d.ts.map +1 -0
- package/lib/cjs/appui-react/content/ContentLayoutProps.js +10 -0
- package/lib/cjs/appui-react/content/ContentLayoutProps.js.map +1 -0
- package/lib/cjs/appui-react/content/ContentOverlay.d.ts +4 -0
- package/lib/cjs/appui-react/content/ContentOverlay.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentOverlay.js +33 -1
- package/lib/cjs/appui-react/content/ContentOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js +9 -3
- package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/StageContentLayout.d.ts +1 -1
- package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/StandardContentLayouts.d.ts +20 -0
- package/lib/cjs/appui-react/content/StandardContentLayouts.d.ts.map +1 -0
- package/lib/cjs/appui-react/content/StandardContentLayouts.js +169 -0
- package/lib/cjs/appui-react/content/StandardContentLayouts.js.map +1 -0
- package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +1 -0
- package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js +1 -0
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkContent.d.ts +1 -1
- package/lib/cjs/appui-react/framework/FrameworkContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +3 -0
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +1 -0
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +2 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +2 -0
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +5 -0
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalProp.d.ts +3 -3
- package/lib/cjs/appui-react/hooks/useConditionalProp.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalProp.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalValue.js +1 -1
- package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useUiVisibility.js +1 -0
- package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -1
- package/lib/cjs/appui-react/layout/base/LayoutStore.d.ts +3 -1
- package/lib/cjs/appui-react/layout/base/LayoutStore.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/base/LayoutStore.js +9 -1
- package/lib/cjs/appui-react/layout/base/LayoutStore.js.map +1 -1
- package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.scss +4 -0
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +27 -25
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/ConditionalValue.d.ts +10 -7
- package/lib/cjs/appui-react/shared/ConditionalValue.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/ConditionalValue.js +3 -4
- package/lib/cjs/appui-react/shared/ConditionalValue.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +1 -0
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +10 -6
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarCornerComponentContext.js +2 -0
- package/lib/cjs/appui-react/statusbar/StatusBarCornerComponentContext.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts +1 -0
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js +1 -0
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +1 -0
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +1 -0
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.js +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -0
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.js +59 -83
- package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.d.ts +7 -8
- package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js +7 -8
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +1 -0
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +1 -0
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +11 -6
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +23 -25
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +1 -0
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +1 -0
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +3 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +4 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +6 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +117 -88
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +2 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +4 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +79 -60
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +1 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +4 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +6 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.d.ts.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +16 -12
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +1 -0
- package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
- package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -0
- package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
- package/lib/cjs/appui-react/utils/getActiveViewport.d.ts +10 -0
- package/lib/cjs/appui-react/utils/getActiveViewport.d.ts.map +1 -0
- package/lib/cjs/appui-react/utils/getActiveViewport.js +26 -0
- package/lib/cjs/appui-react/utils/getActiveViewport.js.map +1 -0
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts +1 -0
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +1 -0
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +1 -0
- package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js +1 -0
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +1 -0
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +3 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts +2 -0
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -0
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +2 -1
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +1 -0
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +1 -0
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +1 -0
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +7 -7
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +3 -0
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +3 -0
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +5 -0
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +6 -1
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts +1 -0
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +1 -0
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +1 -0
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +1 -0
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +1 -0
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +1 -0
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.js +2 -0
- package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +2 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
- package/lib/esm/appui-react/childwindow/CopyStyles.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/CopyStyles.js +8 -3
- package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -0
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +7 -2
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.d.ts +8 -4
- package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.js +1 -1
- package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -1
- package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +45 -11
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayoutProps.d.ts +63 -0
- package/lib/esm/appui-react/content/ContentLayoutProps.d.ts.map +1 -0
- package/lib/esm/appui-react/content/ContentLayoutProps.js +9 -0
- package/lib/esm/appui-react/content/ContentLayoutProps.js.map +1 -0
- package/lib/esm/appui-react/content/ContentOverlay.d.ts +4 -0
- package/lib/esm/appui-react/content/ContentOverlay.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentOverlay.js +32 -0
- package/lib/esm/appui-react/content/ContentOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.d.ts.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js +9 -3
- package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/StageContentLayout.d.ts +1 -1
- package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -1
- package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/StandardContentLayouts.d.ts +20 -0
- package/lib/esm/appui-react/content/StandardContentLayouts.d.ts.map +1 -0
- package/lib/esm/appui-react/content/StandardContentLayouts.js +165 -0
- package/lib/esm/appui-react/content/StandardContentLayouts.js.map +1 -0
- package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +1 -0
- package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -1
- package/lib/esm/appui-react/content/split-pane/SplitPane.js +1 -0
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkContent.d.ts +1 -1
- package/lib/esm/appui-react/framework/FrameworkContent.d.ts.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +3 -0
- package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +1 -0
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +2 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +2 -0
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +5 -0
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/hooks/useConditionalProp.d.ts +3 -3
- package/lib/esm/appui-react/hooks/useConditionalProp.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useConditionalProp.js.map +1 -1
- package/lib/esm/appui-react/hooks/useConditionalValue.d.ts +1 -1
- package/lib/esm/appui-react/hooks/useConditionalValue.js +1 -1
- package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -1
- package/lib/esm/appui-react/hooks/useUiVisibility.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useUiVisibility.js +1 -0
- package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -1
- package/lib/esm/appui-react/layout/base/LayoutStore.d.ts +3 -1
- package/lib/esm/appui-react/layout/base/LayoutStore.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/base/LayoutStore.js +7 -0
- package/lib/esm/appui-react/layout/base/LayoutStore.js.map +1 -1
- package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.scss +4 -0
- package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js +27 -25
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/ConditionalValue.d.ts +10 -7
- package/lib/esm/appui-react/shared/ConditionalValue.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/ConditionalValue.js +2 -3
- package/lib/esm/appui-react/shared/ConditionalValue.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +1 -0
- package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js +10 -6
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarCornerComponentContext.js +2 -0
- package/lib/esm/appui-react/statusbar/StatusBarCornerComponentContext.js.map +1 -1
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts +1 -0
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js +1 -0
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +1 -0
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +1 -0
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.js +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -0
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.js +59 -83
- package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.d.ts +7 -8
- package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js +7 -8
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +1 -0
- package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js +1 -0
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +11 -6
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +23 -25
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +1 -0
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +1 -0
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +3 -2
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +4 -2
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +6 -2
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +117 -88
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +2 -2
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +4 -2
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +79 -60
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +1 -0
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -0
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +4 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +6 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.d.ts.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +16 -12
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +1 -0
- package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
- package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -0
- package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
- package/lib/esm/appui-react/utils/getActiveViewport.d.ts +10 -0
- package/lib/esm/appui-react/utils/getActiveViewport.d.ts.map +1 -0
- package/lib/esm/appui-react/utils/getActiveViewport.js +22 -0
- package/lib/esm/appui-react/utils/getActiveViewport.js.map +1 -0
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts +1 -0
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -0
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +1 -0
- package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.js +1 -0
- package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +1 -0
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +3 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts +2 -0
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -0
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +2 -1
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +1 -0
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +1 -0
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -0
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +7 -7
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react.d.ts +3 -0
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +3 -0
- package/lib/esm/appui-react.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalFrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/InternalFrontstageManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport type { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport { IModelApp, InteractiveTool } from \"@itwin/core-frontend\";\nimport type { ListenerType, Size } from \"@itwin/core-react\";\nimport type { ContentControlActivatedEventArgs } from \"../content/ContentControl\";\nimport type { ContentGroup } from \"../content/ContentGroup\";\nimport type {\n ContentLayoutActivatedEventArgs,\n ContentLayoutDef,\n} from \"../content/ContentLayout\";\nimport type { NavigationAidActivatedEventArgs } from \"../navigationaids/NavigationAidControl\";\nimport type {\n PanelPinnedChangedEventArgs,\n PanelSizeChangedEventArgs,\n PanelStateChangedEventArgs,\n} from \"../stagepanels/StagePanelDef\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n WidgetDef,\n WidgetStateChangedEventArgs,\n} from \"../widgets/WidgetDef\";\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\nimport type { ToolUiProvider } from \"../toolsettings/ToolUiProvider\";\nimport { FrontstageDef } from \"./FrontstageDef\";\nimport { FrontstageProvider } from \"./FrontstageProvider\";\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\nimport type { WidgetState } from \"../widgets/WidgetState\";\nimport type {\n FrontstageActivatedEventArgs,\n FrontstageDeactivatedEventArgs,\n FrontstageReadyEventArgs,\n ModalFrontstageChangedEventArgs,\n ModalFrontstageClosedEventArgs,\n ModalFrontstageInfo,\n ModalFrontstageItem,\n ModalFrontstageRequestedCloseEventArgs,\n ToolActivatedEventArgs,\n ToolIconChangedEventArgs,\n} from \"../framework/FrameworkFrontstages\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport type { Frontstage } from \"./Frontstage\";\nimport type { NineZoneState } from \"../layout/state/NineZoneState\";\n\n/** Frontstage Manager class.\n * @internal\n */\nexport class InternalFrontstageManager {\n private static _initialized = false;\n private static _isLoading = false;\n private static _activeToolId = \"\";\n private static _activeFrontstageDef: FrontstageDef | undefined;\n private static _frontstageDefs = new Map<string, FrontstageDef>();\n private static _modalFrontstages: ModalFrontstageItem[] =\n new Array<ModalFrontstageItem>();\n // eslint-disable-next-line deprecation/deprecation\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\n private static _frontstages = new Map<string, Frontstage>();\n private static _nineZoneSize: Size | undefined = undefined;\n\n private static _nestedFrontstages: FrontstageDef[] =\n new Array<FrontstageDef>();\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\n // eslint-disable-next-line deprecation/deprecation\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<\n string,\n // eslint-disable-next-line deprecation/deprecation\n ToolInformation\n >();\n\n /** This should only be called within InternalFrontstageManager and its tests.\n * @internal\n */\n public static ensureToolInformationIsSet(toolId: string): void {\n if (!InternalFrontstageManager._toolInformationMap.get(toolId))\n InternalFrontstageManager._toolInformationMap.set(\n toolId,\n // eslint-disable-next-line deprecation/deprecation\n new ToolInformation(toolId)\n );\n }\n\n private static _handleSyncToolSettingsPropertiesEvent: ListenerType<\n typeof UiFramework.toolSettings.onSyncToolSettingsProperties\n > = (args) => {\n InternalFrontstageManager.activeToolSettingsProvider &&\n InternalFrontstageManager.activeToolSettingsProvider.syncToolSettingsProperties(\n args\n );\n };\n\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\n private static _handleReloadToolSettingsEvent: ListenerType<\n typeof UiFramework.toolSettings.onReloadToolSettingsProperties\n > = () => {\n if (InternalFrontstageManager.activeToolSettingsProvider) {\n InternalFrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\n }\n };\n\n /** Initializes the InternalFrontstageManager\n * @internal\n */\n public static initialize() {\n if (this._initialized) return;\n\n IModelApp.toolAdmin.activeToolChanged.addListener((tool) => {\n // make sure tool settings properties are cached before creating ToolInformation\n UiFramework.toolSettings.clearToolSettingsData();\n if (tool instanceof InteractiveTool)\n UiFramework.toolSettings.initializeDataForTool(tool);\n\n // if the tool data is not already cached then see if there is data to cache\n InternalFrontstageManager.ensureToolInformationIsSet(tool.toolId);\n InternalFrontstageManager.setActiveTool(tool);\n });\n UiFramework.toolSettings.onSyncToolSettingsProperties.addListener(\n InternalFrontstageManager._handleSyncToolSettingsPropertiesEvent\n );\n UiFramework.toolSettings.onReloadToolSettingsProperties.addListener(\n InternalFrontstageManager._handleReloadToolSettingsEvent\n );\n IModelApp.viewManager.onSelectedViewportChanged.addListener(\n InternalFrontstageManager._handleSelectedViewportChanged\n );\n UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n frontstageDef.updateWidgetDefs();\n });\n\n this._initialized = true;\n }\n\n /** Handles a Viewport change & sets the active view accordingly */\n private static _handleSelectedViewportChanged: ListenerType<\n typeof IModelApp.viewManager.onSelectedViewportChanged\n > = (args) => {\n if (\n args.current &&\n InternalFrontstageManager.activeFrontstageDef &&\n !InternalFrontstageManager.isLoading\n ) {\n // eslint-disable-next-line deprecation/deprecation\n InternalFrontstageManager.activeFrontstageDef.setActiveViewFromViewport(\n args.current\n );\n }\n };\n\n /** @internal */\n public static get isInitialized(): boolean {\n return InternalFrontstageManager._initialized;\n }\n public static set isInitialized(v: boolean) {\n InternalFrontstageManager._initialized = v;\n }\n\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n public static get isLoading(): boolean {\n return InternalFrontstageManager._isLoading;\n }\n\n /** @internal */\n public static get nineZoneSize() {\n return InternalFrontstageManager._nineZoneSize;\n }\n\n public static set nineZoneSize(size) {\n InternalFrontstageManager._nineZoneSize = size;\n }\n\n /** @internal */\n public static get frontstageDefs(): ReadonlyMap<string, FrontstageDef> {\n return this._frontstageDefs;\n }\n\n /** Get Frontstage Deactivated event. */\n public static readonly onFrontstageDeactivatedEvent =\n new BeUiEvent<FrontstageDeactivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Frontstage Activated event. */\n public static readonly onFrontstageActivatedEvent =\n new BeUiEvent<FrontstageActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Frontstage Activated event. */\n public static readonly onFrontstageReadyEvent =\n new BeUiEvent<FrontstageReadyEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Modal Frontstage Changed event. */\n public static readonly onModalFrontstageChangedEvent =\n new BeUiEvent<ModalFrontstageChangedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Modal Frontstage Closed event. */\n public static readonly onModalFrontstageClosedEvent =\n new BeUiEvent<ModalFrontstageClosedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n public static readonly onCloseModalFrontstageRequestedEvent =\n new BeUiEvent<ModalFrontstageRequestedCloseEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Tool Activated event. */\n public static readonly onToolActivatedEvent =\n new BeUiEvent<ToolActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get ToolSetting Reload event. */\n // eslint-disable-next-line deprecation/deprecation\n public static readonly onToolSettingsReloadEvent = new BeUiEvent<void>();\n\n /** Get Tool Panel Opened event.\n * @internal\n */\n // eslint-disable-next-line deprecation/deprecation\n public static readonly onToolPanelOpenedEvent = new BeUiEvent<void>();\n\n /** Get Tool Icon Changed event. */\n public static readonly onToolIconChangedEvent =\n new BeUiEvent<ToolIconChangedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Content Layout Activated event. */\n public static readonly onContentLayoutActivatedEvent =\n new BeUiEvent<ContentLayoutActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Content Control Activated event. */\n public static readonly onContentControlActivatedEvent =\n new BeUiEvent<ContentControlActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Navigation Aid Activated event. */\n public static readonly onNavigationAidActivatedEvent =\n new BeUiEvent<NavigationAidActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Widget State Changed event. */\n public static readonly onWidgetStateChangedEvent =\n new BeUiEvent<WidgetStateChangedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** @internal */\n // eslint-disable-next-line deprecation/deprecation\n public static readonly onWidgetDefsUpdatedEvent = new BeUiEvent<void>();\n\n /** @internal */\n public static readonly onFrontstageNineZoneStateChangedEvent =\n // eslint-disable-next-line deprecation/deprecation\n new BeUiEvent<{\n frontstageDef: FrontstageDef;\n state: NineZoneState | undefined;\n }>();\n\n /** @internal */\n public static readonly onFrontstageRestoreLayoutEvent =\n // eslint-disable-next-line deprecation/deprecation\n new BeUiEvent<{\n frontstageDef: FrontstageDef;\n }>();\n\n /** @internal */\n public static readonly onFrontstageWidgetsChangedEvent =\n // eslint-disable-next-line deprecation/deprecation\n new BeUiEvent<{\n frontstageDef: FrontstageDef;\n }>();\n\n /** Get panel state changed event.\n * @alpha\n */\n public static readonly onPanelStateChangedEvent =\n new BeUiEvent<PanelStateChangedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get panel pinned changed event.\n * @alpha\n */\n public static readonly onPanelPinnedChangedEvent =\n // eslint-disable-next-line deprecation/deprecation\n new BeUiEvent<PanelPinnedChangedEventArgs>();\n\n /** @internal */\n public static readonly onPanelSizeChangedEvent =\n new BeUiEvent<PanelSizeChangedEventArgs>();\n\n /** Clears the Frontstage map.\n */\n public static clearFrontstageDefs(): void {\n InternalFrontstageManager._frontstageDefs.clear();\n InternalFrontstageManager._activeFrontstageDef = undefined;\n }\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n */\n public static clearFrontstageProviders(): void {\n InternalFrontstageManager._frontstageProviders.clear();\n InternalFrontstageManager.clearFrontstageDefs();\n }\n\n private static getFrontstageKey(frontstageId: string) {\n return frontstageId;\n }\n\n /** @internal */\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\n if (!iModelId) return;\n const keysToRemove: string[] = [];\n InternalFrontstageManager._frontstageDefs.forEach(\n (_: FrontstageDef, key: string) => {\n if (key.startsWith(`[${iModelId}]`)) keysToRemove.push(key);\n }\n );\n keysToRemove.forEach((keyValue) => {\n InternalFrontstageManager._frontstageDefs.delete(keyValue);\n });\n }\n\n public static addFrontstageProvider(\n // eslint-disable-next-line deprecation/deprecation\n frontstageProvider: FrontstageProvider\n ): void {\n const key = InternalFrontstageManager.getFrontstageKey(\n frontstageProvider.id\n );\n key && InternalFrontstageManager._frontstageDefs.delete(key);\n InternalFrontstageManager._frontstageProviders.set(\n frontstageProvider.id,\n frontstageProvider\n );\n }\n\n public static addFrontstage(frontstage: Frontstage) {\n const key = InternalFrontstageManager.getFrontstageKey(frontstage.id);\n key && InternalFrontstageManager._frontstageDefs.delete(key);\n InternalFrontstageManager._frontstages.set(frontstage.id, frontstage);\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\n * `getFrontstageDef` to get a FrontstageDef.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\n const key = InternalFrontstageManager.getFrontstageKey(id);\n const frontstageDef = InternalFrontstageManager._frontstageDefs.get(key);\n if (frontstageDef instanceof FrontstageDef) return frontstageDef;\n return undefined;\n }\n\n private static findFrontstageProvider(\n id?: string\n // eslint-disable-next-line deprecation/deprecation\n ): FrontstageProvider | undefined {\n if (!id) {\n return undefined;\n }\n\n const provider = InternalFrontstageManager._frontstageProviders.get(id);\n if (provider) {\n return provider;\n }\n\n const frontstage = InternalFrontstageManager._frontstages.get(id);\n if (frontstage) {\n // eslint-disable-next-line deprecation/deprecation\n return new (class extends FrontstageProvider {\n public get id() {\n return frontstage?.id ?? \"\";\n }\n\n public frontstageConfig() {\n return frontstage;\n }\n })();\n }\n\n return undefined;\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n public static async getFrontstageDef(\n id?: string\n ): Promise<FrontstageDef | undefined> {\n if (!id) return InternalFrontstageManager.activeFrontstageDef;\n\n let frontstageDef = InternalFrontstageManager.findFrontstageDef(id);\n if (frontstageDef) return frontstageDef;\n\n const frontstageProvider =\n InternalFrontstageManager.findFrontstageProvider(id);\n if (frontstageProvider) {\n frontstageDef = await FrontstageDef.create(frontstageProvider);\n if (frontstageDef) {\n const key = InternalFrontstageManager.getFrontstageKey(\n frontstageDef.id\n );\n InternalFrontstageManager._frontstageDefs.set(key, frontstageDef);\n }\n return frontstageDef;\n }\n\n return undefined;\n }\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n public static get activeFrontstageDef(): FrontstageDef | undefined {\n return InternalFrontstageManager._activeFrontstageDef;\n }\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n public static get activeFrontstageId(): string {\n const activeFrontstage = InternalFrontstageManager._activeFrontstageDef;\n return activeFrontstage ? activeFrontstage.id : \"\";\n }\n\n public static hasFrontstage(frontstageId: string) {\n if (InternalFrontstageManager.findFrontstageDef(frontstageId)) return true;\n if (InternalFrontstageManager.findFrontstageProvider(frontstageId))\n return true;\n return false;\n }\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the Frontstage is ready.\n */\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\n const frontstageDef = await InternalFrontstageManager.getFrontstageDef(\n frontstageId\n );\n if (!frontstageDef) {\n Logger.logError(\n UiFramework.loggerCategory(this),\n `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`\n );\n return;\n }\n\n return InternalFrontstageManager.setActiveFrontstageDef(frontstageDef);\n }\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n public static async setActiveFrontstageDef(\n frontstageDef: FrontstageDef | undefined\n ): Promise<void> {\n if (InternalFrontstageManager._activeFrontstageDef === frontstageDef)\n return;\n\n InternalFrontstageManager._isLoading = true;\n\n const deactivatedFrontstageDef =\n InternalFrontstageManager._activeFrontstageDef;\n if (deactivatedFrontstageDef) {\n await deactivatedFrontstageDef.onDeactivated();\n\n const timeTracker = deactivatedFrontstageDef.timeTracker;\n InternalFrontstageManager.onFrontstageDeactivatedEvent.emit({\n deactivatedFrontstageDef,\n activatedFrontstageDef: frontstageDef,\n totalTime: timeTracker.getTotalTimeSeconds(),\n engagementTime: timeTracker.getEngagementTimeSeconds(),\n idleTime: timeTracker.getIdleTimeSeconds(),\n });\n }\n\n InternalFrontstageManager._activeFrontstageDef = frontstageDef;\n\n if (frontstageDef) {\n await frontstageDef.onActivated();\n\n InternalFrontstageManager.onFrontstageActivatedEvent.emit({\n activatedFrontstageDef: frontstageDef,\n deactivatedFrontstageDef,\n });\n\n await frontstageDef.waitUntilReady();\n InternalFrontstageManager._isLoading = false;\n frontstageDef.onFrontstageReady();\n InternalFrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\n UiFramework.visibility.handleFrontstageReady();\n\n await frontstageDef.setActiveContent();\n }\n\n InternalFrontstageManager._isLoading = false;\n }\n\n /** Deactivates the active FrontstageDef.\n */\n public static async deactivateFrontstageDef(): Promise<void> {\n await this.setActiveFrontstageDef(undefined);\n }\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n public static get activeToolId(): string {\n return InternalFrontstageManager._activeToolId;\n }\n\n /** Sets the active tool id */\n public static setActiveToolId(toolId: string): void {\n InternalFrontstageManager._activeToolId = toolId;\n const toolSettingsProvider =\n InternalFrontstageManager.activeToolSettingsProvider;\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\n if (toolSettingsProvider) toolSettingsProvider.initialize();\n InternalFrontstageManager.onToolActivatedEvent.emit({ toolId });\n }\n\n /** Sets the active tool */\n public static setActiveTool(tool: Tool): void {\n InternalFrontstageManager.setActiveToolId(tool.toolId);\n InternalFrontstageManager.onToolIconChangedEvent.emit({\n iconSpec: tool.iconSpec,\n });\n }\n\n /** Gets the active tool's [[ToolInformation]] */\n // eslint-disable-next-line deprecation/deprecation\n public static get activeToolInformation(): ToolInformation | undefined {\n return InternalFrontstageManager._toolInformationMap.get(\n InternalFrontstageManager.activeToolId\n );\n }\n\n /** Gets the Tool Setting React node of the active tool.\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\n * @internal\n */\n // eslint-disable-next-line deprecation/deprecation\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\n const activeToolInformation =\n InternalFrontstageManager.activeToolInformation;\n return activeToolInformation?.toolUiProvider;\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentLayoutDef Content layout to make active\n * @param contentGroup Content Group to make active\n */\n public static async setActiveLayout(\n contentLayoutDef: ContentLayoutDef,\n contentGroup: ContentGroup\n ): Promise<void> {\n const activeFrontstageDef = InternalFrontstageManager.activeFrontstageDef;\n if (activeFrontstageDef) {\n InternalFrontstageManager._isLoading = false;\n\n activeFrontstageDef.setContentLayoutAndGroup(\n contentLayoutDef,\n contentGroup\n );\n InternalFrontstageManager.onContentLayoutActivatedEvent.emit({\n contentLayout: contentLayoutDef,\n contentGroup,\n });\n\n await activeFrontstageDef.waitUntilReady();\n InternalFrontstageManager._isLoading = false;\n\n await activeFrontstageDef.setActiveContent();\n }\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentGroup Content Group to make active\n */\n public static async setActiveContentGroup(\n contentGroup: ContentGroup\n ): Promise<void> {\n const contentLayoutDef =\n UiFramework.content.layouts.getForGroup(contentGroup);\n await InternalFrontstageManager.setActiveLayout(\n contentLayoutDef,\n contentGroup\n );\n }\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n public static openModalFrontstage(\n modalFrontstage: ModalFrontstageInfo\n ): void {\n InternalFrontstageManager.pushModalFrontstage(modalFrontstage);\n }\n\n private static pushModalFrontstage(\n modalFrontstage: ModalFrontstageInfo\n ): void {\n const timeTracker = new TimeTracker();\n timeTracker.startTiming();\n const frontstageItem: ModalFrontstageItem = {\n modalFrontstage,\n timeTracker,\n };\n InternalFrontstageManager._modalFrontstages.push(frontstageItem);\n InternalFrontstageManager.emitModalFrontstageChangedEvent();\n }\n\n /** Closes the top-most modal Frontstage.\n */\n public static closeModalFrontstage(): void {\n if (InternalFrontstageManager._modalFrontstages.length > 0) {\n const topMostStageItem =\n InternalFrontstageManager._modalFrontstages[\n InternalFrontstageManager._modalFrontstages.length - 1\n ];\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\n InternalFrontstageManager.onCloseModalFrontstageRequestedEvent.emit({\n modalFrontstage: topMostStageItem.modalFrontstage,\n stageCloseFunc: InternalFrontstageManager.popModalFrontstage,\n });\n else InternalFrontstageManager.popModalFrontstage();\n }\n }\n\n private static popModalFrontstage(): void {\n const frontstageItem = InternalFrontstageManager._modalFrontstages.pop();\n if (frontstageItem) {\n const modalFrontstage = frontstageItem.modalFrontstage;\n const timeTracker = frontstageItem.timeTracker;\n timeTracker.stopTiming();\n InternalFrontstageManager.onModalFrontstageClosedEvent.emit({\n modalFrontstage,\n totalTime: timeTracker.getTotalTimeSeconds(),\n engagementTime: timeTracker.getEngagementTimeSeconds(),\n idleTime: timeTracker.getIdleTimeSeconds(),\n });\n }\n\n InternalFrontstageManager.emitModalFrontstageChangedEvent();\n\n UiFramework.visibility.handleFrontstageReady();\n }\n\n private static emitModalFrontstageChangedEvent(): void {\n InternalFrontstageManager.onModalFrontstageChangedEvent.emit({\n modalFrontstageCount: InternalFrontstageManager.modalFrontstageCount,\n });\n }\n\n /** Updates the top-most modal Frontstage.\n */\n public static updateModalFrontstage(): void {\n InternalFrontstageManager.emitModalFrontstageChangedEvent();\n }\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\n if (InternalFrontstageManager._modalFrontstages.length > 0) {\n const frontstageItem =\n InternalFrontstageManager._modalFrontstages[\n InternalFrontstageManager._modalFrontstages.length - 1\n ];\n const modalFrontstage = frontstageItem.modalFrontstage;\n return modalFrontstage;\n } else {\n return undefined;\n }\n }\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n public static get modalFrontstageCount(): number {\n return InternalFrontstageManager._modalFrontstages.length;\n }\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n public static setActiveNavigationAid(\n navigationAidId: string,\n iModelConnection: IModelConnection\n ) {\n InternalFrontstageManager.onNavigationAidActivatedEvent.emit({\n navigationAidId,\n iModelConnection,\n });\n }\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\n const widgetDef = InternalFrontstageManager.findWidget(widgetId);\n if (widgetDef) {\n widgetDef.setWidgetState(state);\n return true;\n } else {\n Logger.logError(\n UiFramework.loggerCategory(this),\n `setWidgetState: Could not find Widget with id of '${widgetId}'`\n );\n }\n\n return false;\n }\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n public static findWidget(widgetId: string): WidgetDef | undefined {\n const activeFrontstageDef = InternalFrontstageManager.activeFrontstageDef;\n\n if (activeFrontstageDef) return activeFrontstageDef.findWidgetDef(widgetId);\n\n return undefined;\n }\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n public static async openNestedFrontstage(\n nestedFrontstage: FrontstageDef\n ): Promise<void> {\n if (InternalFrontstageManager.nestedFrontstageCount === 0)\n InternalFrontstageManager._activePrimaryFrontstageDef =\n InternalFrontstageManager._activeFrontstageDef;\n\n InternalFrontstageManager.pushNestedFrontstage(nestedFrontstage);\n\n await InternalFrontstageManager.setActiveFrontstageDef(nestedFrontstage);\n }\n\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\n InternalFrontstageManager._nestedFrontstages.push(nestedFrontstage);\n }\n\n /** Closes the top-most nested Frontstage.\n */\n public static async closeNestedFrontstage(): Promise<void> {\n InternalFrontstageManager.popNestedFrontstage();\n\n if (InternalFrontstageManager.nestedFrontstageCount > 0) {\n await InternalFrontstageManager.setActiveFrontstageDef(\n InternalFrontstageManager.activeNestedFrontstage\n );\n } else {\n await InternalFrontstageManager.setActiveFrontstageDef(\n InternalFrontstageManager._activePrimaryFrontstageDef\n );\n InternalFrontstageManager._activePrimaryFrontstageDef = undefined;\n }\n }\n\n private static popNestedFrontstage(): void {\n InternalFrontstageManager._nestedFrontstages.pop();\n }\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\n if (InternalFrontstageManager._nestedFrontstages.length > 0)\n return InternalFrontstageManager._nestedFrontstages[\n InternalFrontstageManager._nestedFrontstages.length - 1\n ];\n\n return undefined;\n }\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n public static get nestedFrontstageCount(): number {\n return InternalFrontstageManager._nestedFrontstages.length;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalFrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/InternalFrontstageManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport type { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport { IModelApp, InteractiveTool } from \"@itwin/core-frontend\";\nimport type { ListenerType, Size } from \"@itwin/core-react\";\nimport type { ContentControlActivatedEventArgs } from \"../content/ContentControl\";\nimport type { ContentGroup } from \"../content/ContentGroup\";\nimport type {\n ContentLayoutActivatedEventArgs,\n ContentLayoutDef,\n} from \"../content/ContentLayout\";\nimport type { NavigationAidActivatedEventArgs } from \"../navigationaids/NavigationAidControl\";\nimport type {\n PanelPinnedChangedEventArgs,\n PanelSizeChangedEventArgs,\n PanelStateChangedEventArgs,\n} from \"../stagepanels/StagePanelDef\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n WidgetDef,\n WidgetStateChangedEventArgs,\n} from \"../widgets/WidgetDef\";\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\nimport type { ToolUiProvider } from \"../toolsettings/ToolUiProvider\";\nimport { FrontstageDef } from \"./FrontstageDef\";\nimport { FrontstageProvider } from \"./FrontstageProvider\";\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\nimport type { WidgetState } from \"../widgets/WidgetState\";\nimport type {\n FrontstageActivatedEventArgs,\n FrontstageDeactivatedEventArgs,\n FrontstageReadyEventArgs,\n ModalFrontstageChangedEventArgs,\n ModalFrontstageClosedEventArgs,\n ModalFrontstageInfo,\n ModalFrontstageItem,\n ModalFrontstageRequestedCloseEventArgs,\n ToolActivatedEventArgs,\n ToolIconChangedEventArgs,\n} from \"../framework/FrameworkFrontstages\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport type { Frontstage } from \"./Frontstage\";\nimport type { NineZoneState } from \"../layout/state/NineZoneState\";\n\n/** Frontstage Manager class.\n * @internal\n */\nexport class InternalFrontstageManager {\n private static _initialized = false;\n private static _isLoading = false;\n private static _activeToolId = \"\";\n private static _activeFrontstageDef: FrontstageDef | undefined;\n private static _frontstageDefs = new Map<string, FrontstageDef>();\n private static _modalFrontstages: ModalFrontstageItem[] =\n new Array<ModalFrontstageItem>();\n // eslint-disable-next-line deprecation/deprecation\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\n private static _frontstages = new Map<string, Frontstage>();\n private static _nineZoneSize: Size | undefined = undefined;\n\n private static _nestedFrontstages: FrontstageDef[] =\n new Array<FrontstageDef>();\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\n // eslint-disable-next-line deprecation/deprecation\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<\n string,\n // eslint-disable-next-line deprecation/deprecation\n ToolInformation\n >();\n\n /** This should only be called within InternalFrontstageManager and its tests.\n * @internal\n */\n public static ensureToolInformationIsSet(toolId: string): void {\n if (!InternalFrontstageManager._toolInformationMap.get(toolId))\n InternalFrontstageManager._toolInformationMap.set(\n toolId,\n // eslint-disable-next-line deprecation/deprecation\n new ToolInformation(toolId)\n );\n }\n\n private static _handleSyncToolSettingsPropertiesEvent: ListenerType<\n typeof UiFramework.toolSettings.onSyncToolSettingsProperties\n > = (args) => {\n InternalFrontstageManager.activeToolSettingsProvider &&\n InternalFrontstageManager.activeToolSettingsProvider.syncToolSettingsProperties(\n args\n );\n };\n\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\n private static _handleReloadToolSettingsEvent: ListenerType<\n typeof UiFramework.toolSettings.onReloadToolSettingsProperties\n > = () => {\n if (InternalFrontstageManager.activeToolSettingsProvider) {\n InternalFrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\n }\n };\n\n /** Initializes the InternalFrontstageManager\n * @internal\n */\n public static initialize() {\n if (this._initialized) return;\n\n IModelApp.toolAdmin.activeToolChanged.addListener((tool) => {\n // make sure tool settings properties are cached before creating ToolInformation\n UiFramework.toolSettings.clearToolSettingsData();\n if (tool instanceof InteractiveTool)\n UiFramework.toolSettings.initializeDataForTool(tool);\n\n // if the tool data is not already cached then see if there is data to cache\n InternalFrontstageManager.ensureToolInformationIsSet(tool.toolId);\n InternalFrontstageManager.setActiveTool(tool);\n });\n UiFramework.toolSettings.onSyncToolSettingsProperties.addListener(\n InternalFrontstageManager._handleSyncToolSettingsPropertiesEvent\n );\n UiFramework.toolSettings.onReloadToolSettingsProperties.addListener(\n InternalFrontstageManager._handleReloadToolSettingsEvent\n );\n IModelApp.viewManager.onSelectedViewportChanged.addListener(\n InternalFrontstageManager._handleSelectedViewportChanged\n );\n UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n frontstageDef.updateWidgetDefs();\n });\n\n this._initialized = true;\n }\n\n /** Handles a Viewport change & sets the active view accordingly */\n private static _handleSelectedViewportChanged: ListenerType<\n typeof IModelApp.viewManager.onSelectedViewportChanged\n > = (args) => {\n if (\n args.current &&\n InternalFrontstageManager.activeFrontstageDef &&\n !InternalFrontstageManager.isLoading\n ) {\n // eslint-disable-next-line deprecation/deprecation\n InternalFrontstageManager.activeFrontstageDef.setActiveViewFromViewport(\n args.current\n );\n }\n };\n\n /** @internal */\n public static get isInitialized(): boolean {\n return InternalFrontstageManager._initialized;\n }\n public static set isInitialized(v: boolean) {\n InternalFrontstageManager._initialized = v;\n }\n\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n public static get isLoading(): boolean {\n return InternalFrontstageManager._isLoading;\n }\n\n /** @internal */\n public static get nineZoneSize() {\n return InternalFrontstageManager._nineZoneSize;\n }\n\n public static set nineZoneSize(size) {\n InternalFrontstageManager._nineZoneSize = size;\n }\n\n /** @internal */\n public static get frontstageDefs(): ReadonlyMap<string, FrontstageDef> {\n return this._frontstageDefs;\n }\n\n /** Get Frontstage Deactivated event. */\n public static readonly onFrontstageDeactivatedEvent =\n new BeUiEvent<FrontstageDeactivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Frontstage Activated event. */\n public static readonly onFrontstageActivatedEvent =\n new BeUiEvent<FrontstageActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Frontstage Activated event. */\n public static readonly onFrontstageReadyEvent =\n new BeUiEvent<FrontstageReadyEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Modal Frontstage Changed event. */\n public static readonly onModalFrontstageChangedEvent =\n new BeUiEvent<ModalFrontstageChangedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Modal Frontstage Closed event. */\n public static readonly onModalFrontstageClosedEvent =\n new BeUiEvent<ModalFrontstageClosedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n public static readonly onCloseModalFrontstageRequestedEvent =\n new BeUiEvent<ModalFrontstageRequestedCloseEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Tool Activated event. */\n public static readonly onToolActivatedEvent =\n new BeUiEvent<ToolActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get ToolSetting Reload event. */\n // eslint-disable-next-line deprecation/deprecation\n public static readonly onToolSettingsReloadEvent = new BeUiEvent<void>();\n\n /** Get Tool Panel Opened event.\n * @internal\n */\n // eslint-disable-next-line deprecation/deprecation\n public static readonly onToolPanelOpenedEvent = new BeUiEvent<void>();\n\n /** Get Tool Icon Changed event. */\n public static readonly onToolIconChangedEvent =\n new BeUiEvent<ToolIconChangedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Content Layout Activated event. */\n public static readonly onContentLayoutActivatedEvent =\n new BeUiEvent<ContentLayoutActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Content Control Activated event. */\n public static readonly onContentControlActivatedEvent =\n new BeUiEvent<ContentControlActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Navigation Aid Activated event. */\n public static readonly onNavigationAidActivatedEvent =\n new BeUiEvent<NavigationAidActivatedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get Widget State Changed event. */\n public static readonly onWidgetStateChangedEvent =\n new BeUiEvent<WidgetStateChangedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** @internal */\n // eslint-disable-next-line deprecation/deprecation\n public static readonly onWidgetDefsUpdatedEvent = new BeUiEvent<void>();\n\n /** @internal */\n public static readonly onFrontstageNineZoneStateChangedEvent =\n // eslint-disable-next-line deprecation/deprecation\n new BeUiEvent<{\n frontstageDef: FrontstageDef;\n state: NineZoneState | undefined;\n }>();\n\n /** @internal */\n public static readonly onFrontstageRestoreLayoutEvent =\n // eslint-disable-next-line deprecation/deprecation\n new BeUiEvent<{\n frontstageDef: FrontstageDef;\n }>();\n\n /** @internal */\n public static readonly onFrontstageWidgetsChangedEvent =\n // eslint-disable-next-line deprecation/deprecation\n new BeUiEvent<{\n frontstageDef: FrontstageDef;\n }>();\n\n /** Get panel state changed event.\n * @alpha\n */\n public static readonly onPanelStateChangedEvent =\n new BeUiEvent<PanelStateChangedEventArgs>(); // eslint-disable-line deprecation/deprecation\n\n /** Get panel pinned changed event.\n * @alpha\n */\n public static readonly onPanelPinnedChangedEvent =\n // eslint-disable-next-line deprecation/deprecation\n new BeUiEvent<PanelPinnedChangedEventArgs>();\n\n /** @internal */\n public static readonly onPanelSizeChangedEvent =\n new BeUiEvent<PanelSizeChangedEventArgs>();\n\n /** Clears the Frontstage map.\n */\n public static clearFrontstageDefs(): void {\n InternalFrontstageManager._frontstageDefs.clear();\n InternalFrontstageManager._activeFrontstageDef = undefined;\n }\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n */\n public static clearFrontstageProviders(): void {\n InternalFrontstageManager._frontstageProviders.clear();\n InternalFrontstageManager.clearFrontstageDefs();\n }\n\n /** Clears the Frontstages, Frontstage Providers and the defs that may have been created from them. */\n public static clearFrontstages(): void {\n InternalFrontstageManager._frontstages.clear();\n InternalFrontstageManager.clearFrontstageProviders();\n }\n\n private static getFrontstageKey(frontstageId: string) {\n return frontstageId;\n }\n\n /** @internal */\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\n if (!iModelId) return;\n const keysToRemove: string[] = [];\n InternalFrontstageManager._frontstageDefs.forEach(\n (_: FrontstageDef, key: string) => {\n if (key.startsWith(`[${iModelId}]`)) keysToRemove.push(key);\n }\n );\n keysToRemove.forEach((keyValue) => {\n InternalFrontstageManager._frontstageDefs.delete(keyValue);\n });\n }\n\n public static addFrontstageProvider(\n // eslint-disable-next-line deprecation/deprecation\n frontstageProvider: FrontstageProvider\n ): void {\n const key = InternalFrontstageManager.getFrontstageKey(\n frontstageProvider.id\n );\n key && InternalFrontstageManager._frontstageDefs.delete(key);\n InternalFrontstageManager._frontstageProviders.set(\n frontstageProvider.id,\n frontstageProvider\n );\n }\n\n public static addFrontstage(frontstage: Frontstage) {\n const key = InternalFrontstageManager.getFrontstageKey(frontstage.id);\n key && InternalFrontstageManager._frontstageDefs.delete(key);\n InternalFrontstageManager._frontstages.set(frontstage.id, frontstage);\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\n * `getFrontstageDef` to get a FrontstageDef.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\n const key = InternalFrontstageManager.getFrontstageKey(id);\n const frontstageDef = InternalFrontstageManager._frontstageDefs.get(key);\n if (frontstageDef instanceof FrontstageDef) return frontstageDef;\n return undefined;\n }\n\n private static findFrontstageProvider(\n id?: string\n // eslint-disable-next-line deprecation/deprecation\n ): FrontstageProvider | undefined {\n if (!id) {\n return undefined;\n }\n\n const provider = InternalFrontstageManager._frontstageProviders.get(id);\n if (provider) {\n return provider;\n }\n\n const frontstage = InternalFrontstageManager._frontstages.get(id);\n if (frontstage) {\n // eslint-disable-next-line deprecation/deprecation\n return new (class extends FrontstageProvider {\n public get id() {\n return frontstage?.id ?? \"\";\n }\n\n public frontstageConfig() {\n return frontstage;\n }\n })();\n }\n\n return undefined;\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n public static async getFrontstageDef(\n id?: string\n ): Promise<FrontstageDef | undefined> {\n if (!id) return InternalFrontstageManager.activeFrontstageDef;\n\n let frontstageDef = InternalFrontstageManager.findFrontstageDef(id);\n if (frontstageDef) return frontstageDef;\n\n const frontstageProvider =\n InternalFrontstageManager.findFrontstageProvider(id);\n if (frontstageProvider) {\n frontstageDef = await FrontstageDef.create(frontstageProvider);\n if (frontstageDef) {\n const key = InternalFrontstageManager.getFrontstageKey(\n frontstageDef.id\n );\n InternalFrontstageManager._frontstageDefs.set(key, frontstageDef);\n }\n return frontstageDef;\n }\n\n return undefined;\n }\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n public static get activeFrontstageDef(): FrontstageDef | undefined {\n return InternalFrontstageManager._activeFrontstageDef;\n }\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n public static get activeFrontstageId(): string {\n const activeFrontstage = InternalFrontstageManager._activeFrontstageDef;\n return activeFrontstage ? activeFrontstage.id : \"\";\n }\n\n public static hasFrontstage(frontstageId: string) {\n if (InternalFrontstageManager.findFrontstageDef(frontstageId)) return true;\n if (InternalFrontstageManager.findFrontstageProvider(frontstageId))\n return true;\n return false;\n }\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the Frontstage is ready.\n */\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\n const frontstageDef = await InternalFrontstageManager.getFrontstageDef(\n frontstageId\n );\n if (!frontstageDef) {\n Logger.logError(\n UiFramework.loggerCategory(this),\n `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`\n );\n return;\n }\n\n return InternalFrontstageManager.setActiveFrontstageDef(frontstageDef);\n }\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n public static async setActiveFrontstageDef(\n frontstageDef: FrontstageDef | undefined\n ): Promise<void> {\n if (InternalFrontstageManager._activeFrontstageDef === frontstageDef)\n return;\n\n InternalFrontstageManager._isLoading = true;\n\n const deactivatedFrontstageDef =\n InternalFrontstageManager._activeFrontstageDef;\n if (deactivatedFrontstageDef) {\n await deactivatedFrontstageDef.onDeactivated();\n\n const timeTracker = deactivatedFrontstageDef.timeTracker;\n InternalFrontstageManager.onFrontstageDeactivatedEvent.emit({\n deactivatedFrontstageDef,\n activatedFrontstageDef: frontstageDef,\n totalTime: timeTracker.getTotalTimeSeconds(),\n engagementTime: timeTracker.getEngagementTimeSeconds(),\n idleTime: timeTracker.getIdleTimeSeconds(),\n });\n }\n\n InternalFrontstageManager._activeFrontstageDef = frontstageDef;\n\n if (frontstageDef) {\n await frontstageDef.onActivated();\n\n InternalFrontstageManager.onFrontstageActivatedEvent.emit({\n activatedFrontstageDef: frontstageDef,\n deactivatedFrontstageDef,\n });\n\n await frontstageDef.waitUntilReady();\n InternalFrontstageManager._isLoading = false;\n frontstageDef.onFrontstageReady();\n InternalFrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\n UiFramework.visibility.handleFrontstageReady();\n\n await frontstageDef.setActiveContent();\n }\n\n InternalFrontstageManager._isLoading = false;\n }\n\n /** Deactivates the active FrontstageDef.\n */\n public static async deactivateFrontstageDef(): Promise<void> {\n await this.setActiveFrontstageDef(undefined);\n }\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n public static get activeToolId(): string {\n return InternalFrontstageManager._activeToolId;\n }\n\n /** Sets the active tool id */\n public static setActiveToolId(toolId: string): void {\n InternalFrontstageManager._activeToolId = toolId;\n const toolSettingsProvider =\n InternalFrontstageManager.activeToolSettingsProvider;\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\n if (toolSettingsProvider) toolSettingsProvider.initialize();\n InternalFrontstageManager.onToolActivatedEvent.emit({ toolId });\n }\n\n /** Sets the active tool */\n public static setActiveTool(tool: Tool): void {\n InternalFrontstageManager.setActiveToolId(tool.toolId);\n InternalFrontstageManager.onToolIconChangedEvent.emit({\n iconSpec: tool.iconSpec,\n });\n }\n\n /** Gets the active tool's [[ToolInformation]] */\n // eslint-disable-next-line deprecation/deprecation\n public static get activeToolInformation(): ToolInformation | undefined {\n return InternalFrontstageManager._toolInformationMap.get(\n InternalFrontstageManager.activeToolId\n );\n }\n\n /** Gets the Tool Setting React node of the active tool.\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\n * @internal\n */\n // eslint-disable-next-line deprecation/deprecation\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\n const activeToolInformation =\n InternalFrontstageManager.activeToolInformation;\n return activeToolInformation?.toolUiProvider;\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentLayoutDef Content layout to make active\n * @param contentGroup Content Group to make active\n */\n public static async setActiveLayout(\n contentLayoutDef: ContentLayoutDef,\n contentGroup: ContentGroup\n ): Promise<void> {\n const activeFrontstageDef = InternalFrontstageManager.activeFrontstageDef;\n if (activeFrontstageDef) {\n InternalFrontstageManager._isLoading = false;\n\n activeFrontstageDef.setContentLayoutAndGroup(\n contentLayoutDef,\n contentGroup\n );\n InternalFrontstageManager.onContentLayoutActivatedEvent.emit({\n contentLayout: contentLayoutDef,\n contentGroup,\n });\n\n await activeFrontstageDef.waitUntilReady();\n InternalFrontstageManager._isLoading = false;\n\n await activeFrontstageDef.setActiveContent();\n }\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentGroup Content Group to make active\n */\n public static async setActiveContentGroup(\n contentGroup: ContentGroup\n ): Promise<void> {\n const contentLayoutDef =\n UiFramework.content.layouts.getForGroup(contentGroup);\n await InternalFrontstageManager.setActiveLayout(\n contentLayoutDef,\n contentGroup\n );\n }\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n public static openModalFrontstage(\n modalFrontstage: ModalFrontstageInfo\n ): void {\n InternalFrontstageManager.pushModalFrontstage(modalFrontstage);\n }\n\n private static pushModalFrontstage(\n modalFrontstage: ModalFrontstageInfo\n ): void {\n const timeTracker = new TimeTracker();\n timeTracker.startTiming();\n const frontstageItem: ModalFrontstageItem = {\n modalFrontstage,\n timeTracker,\n };\n InternalFrontstageManager._modalFrontstages.push(frontstageItem);\n InternalFrontstageManager.emitModalFrontstageChangedEvent();\n }\n\n /** Closes the top-most modal Frontstage.\n */\n public static closeModalFrontstage(): void {\n if (InternalFrontstageManager._modalFrontstages.length > 0) {\n const topMostStageItem =\n InternalFrontstageManager._modalFrontstages[\n InternalFrontstageManager._modalFrontstages.length - 1\n ];\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\n InternalFrontstageManager.onCloseModalFrontstageRequestedEvent.emit({\n modalFrontstage: topMostStageItem.modalFrontstage,\n stageCloseFunc: InternalFrontstageManager.popModalFrontstage,\n });\n else InternalFrontstageManager.popModalFrontstage();\n }\n }\n\n private static popModalFrontstage(): void {\n const frontstageItem = InternalFrontstageManager._modalFrontstages.pop();\n if (frontstageItem) {\n const modalFrontstage = frontstageItem.modalFrontstage;\n const timeTracker = frontstageItem.timeTracker;\n timeTracker.stopTiming();\n InternalFrontstageManager.onModalFrontstageClosedEvent.emit({\n modalFrontstage,\n totalTime: timeTracker.getTotalTimeSeconds(),\n engagementTime: timeTracker.getEngagementTimeSeconds(),\n idleTime: timeTracker.getIdleTimeSeconds(),\n });\n }\n\n InternalFrontstageManager.emitModalFrontstageChangedEvent();\n\n UiFramework.visibility.handleFrontstageReady();\n }\n\n private static emitModalFrontstageChangedEvent(): void {\n InternalFrontstageManager.onModalFrontstageChangedEvent.emit({\n modalFrontstageCount: InternalFrontstageManager.modalFrontstageCount,\n });\n }\n\n /** Updates the top-most modal Frontstage.\n */\n public static updateModalFrontstage(): void {\n InternalFrontstageManager.emitModalFrontstageChangedEvent();\n }\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\n if (InternalFrontstageManager._modalFrontstages.length > 0) {\n const frontstageItem =\n InternalFrontstageManager._modalFrontstages[\n InternalFrontstageManager._modalFrontstages.length - 1\n ];\n const modalFrontstage = frontstageItem.modalFrontstage;\n return modalFrontstage;\n } else {\n return undefined;\n }\n }\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n public static get modalFrontstageCount(): number {\n return InternalFrontstageManager._modalFrontstages.length;\n }\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n public static setActiveNavigationAid(\n navigationAidId: string,\n iModelConnection: IModelConnection\n ) {\n InternalFrontstageManager.onNavigationAidActivatedEvent.emit({\n navigationAidId,\n iModelConnection,\n });\n }\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\n const widgetDef = InternalFrontstageManager.findWidget(widgetId);\n if (widgetDef) {\n widgetDef.setWidgetState(state);\n return true;\n } else {\n Logger.logError(\n UiFramework.loggerCategory(this),\n `setWidgetState: Could not find Widget with id of '${widgetId}'`\n );\n }\n\n return false;\n }\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n public static findWidget(widgetId: string): WidgetDef | undefined {\n const activeFrontstageDef = InternalFrontstageManager.activeFrontstageDef;\n\n if (activeFrontstageDef) return activeFrontstageDef.findWidgetDef(widgetId);\n\n return undefined;\n }\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n public static async openNestedFrontstage(\n nestedFrontstage: FrontstageDef\n ): Promise<void> {\n if (InternalFrontstageManager.nestedFrontstageCount === 0)\n InternalFrontstageManager._activePrimaryFrontstageDef =\n InternalFrontstageManager._activeFrontstageDef;\n\n InternalFrontstageManager.pushNestedFrontstage(nestedFrontstage);\n\n await InternalFrontstageManager.setActiveFrontstageDef(nestedFrontstage);\n }\n\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\n InternalFrontstageManager._nestedFrontstages.push(nestedFrontstage);\n }\n\n /** Closes the top-most nested Frontstage.\n */\n public static async closeNestedFrontstage(): Promise<void> {\n InternalFrontstageManager.popNestedFrontstage();\n\n if (InternalFrontstageManager.nestedFrontstageCount > 0) {\n await InternalFrontstageManager.setActiveFrontstageDef(\n InternalFrontstageManager.activeNestedFrontstage\n );\n } else {\n await InternalFrontstageManager.setActiveFrontstageDef(\n InternalFrontstageManager._activePrimaryFrontstageDef\n );\n InternalFrontstageManager._activePrimaryFrontstageDef = undefined;\n }\n }\n\n private static popNestedFrontstage(): void {\n InternalFrontstageManager._nestedFrontstages.pop();\n }\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\n if (InternalFrontstageManager._nestedFrontstages.length > 0)\n return InternalFrontstageManager._nestedFrontstages[\n InternalFrontstageManager._nestedFrontstages.length - 1\n ];\n\n return undefined;\n }\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n public static get nestedFrontstageCount(): number {\n return InternalFrontstageManager._nestedFrontstages.length;\n }\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module Utilities
|
|
3
3
|
*/
|
|
4
|
-
/**
|
|
5
|
-
interface
|
|
4
|
+
/** Defines a common interface for existing conditional value classes: `ConditionalBooleanValue`, `ConditionalStringValue`, `ConditionalIconItem`. */
|
|
5
|
+
interface CommonConditionalValue<T> {
|
|
6
6
|
syncEventIds: string[];
|
|
7
7
|
refresh: () => boolean;
|
|
8
8
|
value: T;
|
|
9
9
|
}
|
|
10
10
|
/** Type that is usually used in a conditional prop. */
|
|
11
|
-
type ConditionalProp<T> =
|
|
11
|
+
type ConditionalProp<T> = CommonConditionalValue<T> | T | undefined;
|
|
12
12
|
/** @internal */
|
|
13
13
|
export declare function useConditionalProp<T>(conditionalProp: ConditionalProp<T>): T | undefined;
|
|
14
14
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionalProp.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalProp.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAMH,
|
|
1
|
+
{"version":3,"file":"useConditionalProp.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalProp.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAMH,qJAAqJ;AACrJ,UAAU,sBAAsB,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC;CACV;AAED,uDAAuD;AACvD,KAAK,eAAe,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAepE,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,iBA4BxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionalProp.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalProp.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAYxE,iCAAiC;AACjC,SAAS,kBAAkB,CACzB,eAAmC;IAEnC,OAAO,CACL,OAAO,eAAe,KAAK,QAAQ;QACnC,eAAe;QACf,cAAc,IAAI,eAAe;QACjC,SAAS,IAAI,eAAe;QAC5B,OAAO,IAAI,eAAe,CAC3B,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAI,eAAmC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,aAAyB,EAAE,EAAE;QAC5B,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CACpD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,IACE,CAAC,qBAAqB,CAAC,kBAAkB,CACvC,QAAQ,EACR,eAAe,CAAC,YAAY,CAC7B;oBAED,OAAO;gBACT,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;oBAAE,OAAO;gBAEvC,aAAa,EAAE,CAAC;YAClB,CAAC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,kBAAkB,CAAC,eAAe,CAAC;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC;QACtE,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/**
|
|
1
|
+
{"version":3,"file":"useConditionalProp.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalProp.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAYxE,iCAAiC;AACjC,SAAS,kBAAkB,CACzB,eAAmC;IAEnC,OAAO,CACL,OAAO,eAAe,KAAK,QAAQ;QACnC,eAAe;QACf,cAAc,IAAI,eAAe;QACjC,SAAS,IAAI,eAAe;QAC5B,OAAO,IAAI,eAAe,CAC3B,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAI,eAAmC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,aAAyB,EAAE,EAAE;QAC5B,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CACpD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,IACE,CAAC,qBAAqB,CAAC,kBAAkB,CACvC,QAAQ,EACR,eAAe,CAAC,YAAY,CAC7B;oBAED,OAAO;gBACT,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;oBAAE,OAAO;gBAEvC,aAAa,EAAE,CAAC;YAClB,CAAC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,kBAAkB,CAAC,eAAe,CAAC;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC;QACtE,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Defines a common interface for existing conditional value classes: `ConditionalBooleanValue`, `ConditionalStringValue`, `ConditionalIconItem`. */\ninterface CommonConditionalValue<T> {\n syncEventIds: string[];\n refresh: () => boolean;\n value: T;\n}\n\n/** Type that is usually used in a conditional prop. */\ntype ConditionalProp<T> = CommonConditionalValue<T> | T | undefined;\n\n/** Duck type the conditional. */\nfunction isConditionalValue<T>(\n conditionalProp: ConditionalProp<T>\n): conditionalProp is CommonConditionalValue<T> {\n return (\n typeof conditionalProp === \"object\" &&\n conditionalProp &&\n \"syncEventIds\" in conditionalProp &&\n \"refresh\" in conditionalProp &&\n \"value\" in conditionalProp\n );\n}\n\n/** @internal */\nexport function useConditionalProp<T>(conditionalProp: ConditionalProp<T>) {\n const subscribe = React.useCallback(\n (onStoreChange: () => void) => {\n if (isConditionalValue(conditionalProp)) {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(\n ({ eventIds }) => {\n if (\n !SyncUiEventDispatcher.hasEventOfInterest(\n eventIds,\n conditionalProp.syncEventIds\n )\n )\n return;\n if (!conditionalProp.refresh()) return;\n\n onStoreChange();\n }\n );\n }\n return () => {};\n },\n [conditionalProp]\n );\n const getSnapshot = React.useCallback(() => {\n if (isConditionalValue(conditionalProp)) return conditionalProp.value;\n return conditionalProp;\n }, [conditionalProp]);\n return useSyncExternalStore(subscribe, getSnapshot);\n}\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/** Hook that allows to get a value that depends on some sync UI events.
|
|
5
5
|
* @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.
|
|
6
|
-
* @
|
|
6
|
+
* @public
|
|
7
7
|
*/
|
|
8
8
|
export declare function useConditionalValue<T>(getValue: () => T, eventIds: string[]): T;
|
|
9
9
|
//# sourceMappingURL=useConditionalValue.d.ts.map
|
|
@@ -9,7 +9,7 @@ import * as React from "react";
|
|
|
9
9
|
import { SyncUiEventDispatcher } from "../syncui/SyncUiEventDispatcher";
|
|
10
10
|
/** Hook that allows to get a value that depends on some sync UI events.
|
|
11
11
|
* @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.
|
|
12
|
-
* @
|
|
12
|
+
* @public
|
|
13
13
|
*/
|
|
14
14
|
export function useConditionalValue(getValue, eventIds) {
|
|
15
15
|
const [value, setValue] = React.useState(() => getValue());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAI,QAAiB,EAAE,QAAkB;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IACE,CAAC,qBAAqB,CAAC,kBAAkB,CACvC,IAAI,CAAC,QAAQ,EACb,WAAW,CAAC,OAAO,CACpB;gBAED,OAAO;YACT,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Hook that allows to get a value that depends on some sync UI events.\n * @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.\n * @
|
|
1
|
+
{"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAI,QAAiB,EAAE,QAAkB;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IACE,CAAC,qBAAqB,CAAC,kBAAkB,CACvC,IAAI,CAAC,QAAQ,EACb,WAAW,CAAC,OAAO,CACpB;gBAED,OAAO;YACT,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Hook that allows to get a value that depends on some sync UI events.\n * @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.\n * @public\n */\nexport function useConditionalValue<T>(getValue: () => T, eventIds: string[]) {\n const [value, setValue] = React.useState(() => getValue());\n\n const getValueRef = React.useRef(getValue);\n React.useEffect(() => {\n getValueRef.current = getValue;\n }, [getValue]);\n\n const eventIdsRef = React.useRef(eventIds);\n React.useEffect(() => {\n eventIdsRef.current = eventIds;\n }, [eventIds]);\n\n React.useEffect(() => {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n !SyncUiEventDispatcher.hasEventOfInterest(\n args.eventIds,\n eventIdsRef.current\n )\n )\n return;\n setValue(getValueRef.current());\n });\n }, []);\n\n return value;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUiVisibility.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useUiVisibility.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH,gBAAgB;AAChB,wBAAgB,eAAe,
|
|
1
|
+
{"version":3,"file":"useUiVisibility.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useUiVisibility.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH,gBAAgB;AAChB,wBAAgB,eAAe,YAS9B"}
|
|
@@ -9,6 +9,7 @@ import { useEffect, useState } from "react";
|
|
|
9
9
|
import { UiFramework } from "../UiFramework";
|
|
10
10
|
/** @internal */
|
|
11
11
|
export function useUiVisibility() {
|
|
12
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
12
13
|
const [uiIsVisible, setUiIsVisible] = useState(UiFramework.getIsUiVisible());
|
|
13
14
|
useEffect(() => {
|
|
14
15
|
return UiFramework.onUiVisibilityChanged.addListener((args) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUiVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useUiVisibility.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,gBAAgB;AAChB,MAAM,UAAU,eAAe;IAC7B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7E,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5D,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport { useEffect, useState } from \"react\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** @internal */\nexport function useUiVisibility() {\n const [uiIsVisible, setUiIsVisible] = useState(UiFramework.getIsUiVisible());\n useEffect(() => {\n return UiFramework.onUiVisibilityChanged.addListener((args) => {\n setUiIsVisible(args.visible);\n });\n }, []);\n return uiIsVisible;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useUiVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useUiVisibility.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,gBAAgB;AAChB,MAAM,UAAU,eAAe;IAC7B,mDAAmD;IACnD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7E,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5D,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport { useEffect, useState } from \"react\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** @internal */\nexport function useUiVisibility() {\n // eslint-disable-next-line deprecation/deprecation\n const [uiIsVisible, setUiIsVisible] = useState(UiFramework.getIsUiVisible());\n useEffect(() => {\n return UiFramework.onUiVisibilityChanged.addListener((args) => {\n setUiIsVisible(args.visible);\n });\n }, []);\n return uiIsVisible;\n}\n"]}
|
|
@@ -7,7 +7,7 @@ import type { NineZoneState } from "../state/NineZoneState";
|
|
|
7
7
|
/** @internal */
|
|
8
8
|
export type LayoutState = NineZoneState;
|
|
9
9
|
/** @internal */
|
|
10
|
-
export type LayoutStore = StoreApi<
|
|
10
|
+
export type LayoutStore = StoreApi<LayoutState>;
|
|
11
11
|
/** @internal */
|
|
12
12
|
export declare const LayoutStoreContext: React.Context<LayoutStore | undefined>;
|
|
13
13
|
/** @internal */
|
|
@@ -16,4 +16,6 @@ export declare function createLayoutStore(args?: Partial<LayoutState>): LayoutSt
|
|
|
16
16
|
export declare function useLayoutStore(): LayoutStore;
|
|
17
17
|
/** @internal */
|
|
18
18
|
export declare function useLayout<SelectorOutput>(selector: (state: LayoutState) => SelectorOutput, multipleSlices?: boolean): SelectorOutput;
|
|
19
|
+
/** @internal */
|
|
20
|
+
export declare function useOptionalLayout<SelectorOutput>(selector: (state: LayoutState | undefined) => SelectorOutput, multipleSlices?: boolean): SelectorOutput;
|
|
19
21
|
//# sourceMappingURL=LayoutStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutStore.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/LayoutStore.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"LayoutStore.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/LayoutStore.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEhD,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,wCAE9B,CAAC;AAGF,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAE1E;AAED,gBAAgB;AAChB,wBAAgB,cAAc,gBAI7B;AAED,gBAAgB;AAChB,wBAAgB,SAAS,CAAC,cAAc,EACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,cAAc,EAChD,cAAc,UAAQ,kBAQvB;AAMD,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,cAAc,EAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,KAAK,cAAc,EAC5D,cAAc,UAAQ,kBASvB"}
|
|
@@ -29,4 +29,11 @@ export function useLayout(selector, multipleSlices = false) {
|
|
|
29
29
|
const store = useLayoutStore();
|
|
30
30
|
return useStoreWithEqualityFn(store, selector, multipleSlices ? shallow : undefined);
|
|
31
31
|
}
|
|
32
|
+
const optionalLayoutStore = createStore(() => undefined);
|
|
33
|
+
/** @internal */
|
|
34
|
+
export function useOptionalLayout(selector, multipleSlices = false) {
|
|
35
|
+
const store = React.useContext(LayoutStoreContext);
|
|
36
|
+
const slice = useStoreWithEqualityFn(store ?? optionalLayoutStore, selector, multipleSlices ? shallow : undefined);
|
|
37
|
+
return slice;
|
|
38
|
+
}
|
|
32
39
|
//# sourceMappingURL=LayoutStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutStore.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/LayoutStore.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAQ7D,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CACnD,SAAS,CACV,CAAC;AACF,kBAAkB,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAE5D,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAAC,IAA2B;IAC3D,OAAO,WAAW,CAAc,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACnD,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,SAAS,CACvB,QAAgD,EAChD,cAAc,GAAG,KAAK;IAEtB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,sBAAsB,CAC3B,KAAK,EACL,QAAQ,EACR,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CACrC,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport * as React from \"react\";\nimport type { StoreApi } from \"zustand\";\nimport { createStore } from \"zustand\";\nimport { useStoreWithEqualityFn } from \"zustand/traditional\";\nimport { shallow } from \"zustand/shallow\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { NineZoneState } from \"../state/NineZoneState\";\nimport { createNineZoneState } from \"../state/NineZoneState\";\n\n/** @internal */\nexport type LayoutState = NineZoneState;\n\n/** @internal */\nexport type LayoutStore = StoreApi<
|
|
1
|
+
{"version":3,"file":"LayoutStore.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/LayoutStore.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAQ7D,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CACnD,SAAS,CACV,CAAC;AACF,kBAAkB,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAE5D,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAAC,IAA2B;IAC3D,OAAO,WAAW,CAAc,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACnD,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,SAAS,CACvB,QAAgD,EAChD,cAAc,GAAG,KAAK;IAEtB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,sBAAsB,CAC3B,KAAK,EACL,QAAQ,EACR,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CACrC,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAG,WAAW,CACrC,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAC/B,QAA4D,EAC5D,cAAc,GAAG,KAAK;IAEtB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,sBAAsB,CAClC,KAAK,IAAI,mBAAmB,EAC5B,QAAQ,EACR,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CACrC,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport * as React from \"react\";\nimport type { StoreApi } from \"zustand\";\nimport { createStore } from \"zustand\";\nimport { useStoreWithEqualityFn } from \"zustand/traditional\";\nimport { shallow } from \"zustand/shallow\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { NineZoneState } from \"../state/NineZoneState\";\nimport { createNineZoneState } from \"../state/NineZoneState\";\n\n/** @internal */\nexport type LayoutState = NineZoneState;\n\n/** @internal */\nexport type LayoutStore = StoreApi<LayoutState>;\n\n/** @internal */\nexport const LayoutStoreContext = React.createContext<LayoutStore | undefined>(\n undefined\n);\nLayoutStoreContext.displayName = \"appui:LayoutStoreContext\";\n\n/** @internal */\nexport function createLayoutStore(args?: Partial<LayoutState>): LayoutStore {\n return createStore<LayoutState>(() => createNineZoneState(args));\n}\n\n/** @internal */\nexport function useLayoutStore() {\n const store = React.useContext(LayoutStoreContext);\n assert(!!store, \"LayoutStoreContext is not defined\");\n return store;\n}\n\n/** @internal */\nexport function useLayout<SelectorOutput>(\n selector: (state: LayoutState) => SelectorOutput,\n multipleSlices = false\n) {\n const store = useLayoutStore();\n return useStoreWithEqualityFn(\n store,\n selector,\n multipleSlices ? shallow : undefined\n );\n}\n\nconst optionalLayoutStore = createStore<LayoutState | undefined>(\n () => undefined\n);\n\n/** @internal */\nexport function useOptionalLayout<SelectorOutput>(\n selector: (state: LayoutState | undefined) => SelectorOutput,\n multipleSlices = false\n) {\n const store = React.useContext(LayoutStoreContext);\n const slice = useStoreWithEqualityFn(\n store ?? optionalLayoutStore,\n selector,\n multipleSlices ? shallow : undefined\n );\n return slice;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAiBpD;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAOzD;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAU1D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAgB7C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CASrD;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,uBAAuB,CAK7E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CAKzE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,aAAa,CAWf;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,aAAa,CAUf;AAED;;;GAGG;AACH,qBAAa,+BAA+B;IAC1C,WAAkB,+BAA+B,mBAQhD;IAED,WAAkB,mCAAmC,mBAQpD;IAED,WAAkB,sBAAsB,mBASvC;IAED,WAAkB,yBAAyB,iBAa1C;IAED,WAAkB,4BAA4B,mBAQ7C;IAED,WAAkB,gCAAgC,mBAQjD;IAED,WAAkB,mBAAmB,mBASpC;IAED,WAAkB,oBAAoB,iBAarC;IAED,WAAkB,wBAAwB,mBASzC;IAED,WAAkB,wCAAwC,mBAYzD;CACF"}
|
|
@@ -21,6 +21,7 @@ import svgAssetClassificationHide from "@bentley/icons-generic/icons/asset-class
|
|
|
21
21
|
import svgVisibilitySemiTransparent from "@bentley/icons-generic/icons/visibility-semi-transparent.svg";
|
|
22
22
|
import svgVisibilityHide from "@bentley/icons-generic/icons/visibility-hide_2.svg";
|
|
23
23
|
import svgVisibility from "@bentley/icons-generic/icons/visibility.svg";
|
|
24
|
+
import { getActiveViewport } from "../utils/getActiveViewport";
|
|
24
25
|
/* eslint-disable deprecation/deprecation */
|
|
25
26
|
/** Return SyncEventIds that trigger selection state function refresh.
|
|
26
27
|
* @beta
|
|
@@ -54,16 +55,18 @@ export function getSelectionContextSyncEventIds() {
|
|
|
54
55
|
* @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.
|
|
55
56
|
*/
|
|
56
57
|
export function isNoSelectionActive() {
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const hiddenElementsSet = activeContentControl.viewport.neverDrawn;
|
|
61
|
-
const selectedElementsSet = activeContentControl.viewport.view.iModel.selectionSet.elements;
|
|
62
|
-
// TODO: add check for categories, subcategories and models
|
|
63
|
-
if (selectionCount > 0 ||
|
|
64
|
-
![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))
|
|
65
|
-
return false;
|
|
58
|
+
const viewport = getActiveViewport();
|
|
59
|
+
if (!viewport) {
|
|
60
|
+
return true;
|
|
66
61
|
}
|
|
62
|
+
const selectionCount = UiFramework.getNumItemsSelected();
|
|
63
|
+
if (selectionCount > 0)
|
|
64
|
+
return false;
|
|
65
|
+
// TODO: add check for categories, subcategories and models
|
|
66
|
+
const hiddenElementsSet = viewport.neverDrawn;
|
|
67
|
+
const selectedElementsSet = viewport.view.iModel.selectionSet.elements;
|
|
68
|
+
if (![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))
|
|
69
|
+
return false;
|
|
67
70
|
return true;
|
|
68
71
|
}
|
|
69
72
|
/** Return ConditionalBooleanValue object used to show items if selection set is active.
|
|
@@ -71,10 +74,11 @@ export function isNoSelectionActive() {
|
|
|
71
74
|
* @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.
|
|
72
75
|
*/
|
|
73
76
|
export function areNoFeatureOverridesActive() {
|
|
74
|
-
const
|
|
75
|
-
if (
|
|
76
|
-
return
|
|
77
|
-
|
|
77
|
+
const viewport = getActiveViewport();
|
|
78
|
+
if (!viewport) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(viewport);
|
|
78
82
|
}
|
|
79
83
|
/** Return ConditionalBooleanValue object used to show item if feature overrides are active.
|
|
80
84
|
* @beta
|
|
@@ -95,11 +99,11 @@ export function getIsHiddenIfSelectionNotActive() {
|
|
|
95
99
|
* @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.
|
|
96
100
|
*/
|
|
97
101
|
export function featureOverridesActiveStateFunc(state) {
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
const viewport = getActiveViewport();
|
|
103
|
+
if (!viewport) {
|
|
104
|
+
return { ...state, isVisible: false };
|
|
105
|
+
}
|
|
106
|
+
const isVisible = UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(viewport);
|
|
103
107
|
return { ...state, isVisible };
|
|
104
108
|
}
|
|
105
109
|
/** Return state with isVisible set to true is SectionSet is active.
|
|
@@ -107,14 +111,12 @@ export function featureOverridesActiveStateFunc(state) {
|
|
|
107
111
|
* @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.
|
|
108
112
|
*/
|
|
109
113
|
export function selectionContextStateFunc(state) {
|
|
110
|
-
const
|
|
111
|
-
|
|
114
|
+
const viewport = getActiveViewport();
|
|
115
|
+
if (!viewport) {
|
|
116
|
+
return { ...state, isVisible: false };
|
|
117
|
+
}
|
|
112
118
|
const selectionCount = UiFramework.getNumItemsSelected();
|
|
113
|
-
|
|
114
|
-
activeContentControl.viewport &&
|
|
115
|
-
(activeContentControl.viewport.view.iModel.selectionSet.size > 0 ||
|
|
116
|
-
selectionCount > 0))
|
|
117
|
-
isVisible = true;
|
|
119
|
+
const isVisible = viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0;
|
|
118
120
|
return { ...state, isVisible };
|
|
119
121
|
}
|
|
120
122
|
/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport type { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { UiFramework } from \"../UiFramework\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\nimport type { ToolbarItems } from \"../tools/ToolbarItems\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n // eslint-disable-next-line deprecation/deprecation\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function isNoSelectionActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n const selectionCount = UiFramework.getNumItemsSelected();\n\n if (activeContentControl?.viewport) {\n const hiddenElementsSet = activeContentControl.viewport.neverDrawn;\n const selectedElementsSet =\n activeContentControl.viewport.view.iModel.selectionSet.elements;\n // TODO: add check for categories, subcategories and models\n if (\n selectionCount > 0 ||\n ![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value))\n )\n return false;\n }\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n if (activeContentControl && activeContentControl.viewport)\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n if (activeContentControl && activeContentControl.viewport)\n isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return { ...state, isVisible };\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n const selectionCount = UiFramework.getNumItemsSelected();\n if (\n activeContentControl &&\n activeContentControl.viewport &&\n (activeContentControl.viewport.view.iModel.selectionSet.size > 0 ||\n selectionCount > 0)\n )\n isVisible = true;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItems} instead.\n */\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: svgModelIsolate,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: svgLayersIsolate,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: svgAssetIsolate,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: svgIsolate,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: svgModelHide,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: svgLayersHide,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: svgAssetClassificationHide,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: svgVisibilityHide,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: svgVisibilitySemiTransparent,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: svgVisibility,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport type { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { UiFramework } from \"../UiFramework\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\nimport type { ToolbarItems } from \"../tools/ToolbarItems\";\nimport { getActiveViewport } from \"../utils/getActiveViewport\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n // eslint-disable-next-line deprecation/deprecation\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function isNoSelectionActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n if (selectionCount > 0) return false;\n\n // TODO: add check for categories, subcategories and models\n const hiddenElementsSet = viewport.neverDrawn;\n const selectedElementsSet = viewport.view.iModel.selectionSet.elements;\n if (![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))\n return false;\n\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n}\n\n/** Return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n return { ...state, isVisible };\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n const isVisible =\n viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItems} instead.\n */\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: svgModelIsolate,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: svgLayersIsolate,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: svgAssetIsolate,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: svgIsolate,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: svgModelHide,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: svgLayersHide,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: svgAssetClassificationHide,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: svgVisibilityHide,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: svgVisibilitySemiTransparent,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: svgVisibility,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
|