@itwin/appui-react 4.3.1 → 4.5.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 +22 -4
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +14 -16
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js +3 -6
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +6 -6
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +5 -7
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +5 -7
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +3 -0
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +12 -8
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +5 -7
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -4
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +49 -78
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +11 -1
- package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/Toolbar.js +3 -2
- package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +2 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +45 -129
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts +6 -3
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +53 -80
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +2 -2
- package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js +2 -2
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts +1 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +12 -2
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts +3 -2
- package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js +5 -9
- package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.d.ts +11 -0
- package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.d.ts.map +1 -0
- package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.js +46 -0
- package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.js.map +1 -0
- package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.d.ts +25 -0
- package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.d.ts.map +1 -0
- package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.js +63 -0
- package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.js.map +1 -0
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts +1 -0
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js +4 -1
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +2 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +12 -30
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +10 -17
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +43 -45
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +21 -23
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +14 -16
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +9 -12
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js +3 -6
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +6 -6
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +5 -7
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js +1 -2
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +3 -0
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js +12 -8
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +5 -7
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -4
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +49 -78
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/esm/appui-react/toolbar/Toolbar.d.ts +11 -1
- package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/Toolbar.js +3 -2
- package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +2 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js +45 -129
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts +6 -3
- package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js +53 -80
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +2 -2
- package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.js +2 -2
- package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts +1 -0
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +12 -2
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts +3 -2
- package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js +5 -9
- package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.d.ts +11 -0
- package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.d.ts.map +1 -0
- package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.js +42 -0
- package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.js.map +1 -0
- package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.d.ts +25 -0
- package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.d.ts.map +1 -0
- package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.js +59 -0
- package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.js.map +1 -0
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts +1 -0
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js +4 -1
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +2 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +12 -30
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +10 -17
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +8 -9
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +43 -45
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +21 -23
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/package.json +14 -15
|
@@ -62,6 +62,7 @@ var SyncUiEventId;
|
|
|
62
62
|
SyncUiEventId["ShowHideManagerSettingChange"] = "show-hide-setting-change";
|
|
63
63
|
/** The list of feature overrides applied has been changed */
|
|
64
64
|
SyncUiEventId["FeatureOverridesChanged"] = "featureoverrideschanged";
|
|
65
|
+
SyncUiEventId["ViewedModelsChanged"] = "viewedmodelschanged";
|
|
65
66
|
})(SyncUiEventId = exports.SyncUiEventId || (exports.SyncUiEventId = {}));
|
|
66
67
|
/** This class is used to send eventIds to interested UI components so the component can determine if it needs
|
|
67
68
|
* to refresh its display by calling setState on itself.
|
|
@@ -113,106 +114,76 @@ class SyncUiEventDispatcher {
|
|
|
113
114
|
static _dispatchFeatureOverridesChange() {
|
|
114
115
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FeatureOverridesChanged);
|
|
115
116
|
}
|
|
117
|
+
// istanbul ignore next
|
|
118
|
+
static _dispatchViewedModelsChanged() {
|
|
119
|
+
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewedModelsChanged);
|
|
120
|
+
}
|
|
116
121
|
/** Initializes the Monitoring of Events that trigger dispatching sync events */
|
|
117
122
|
static initialize() {
|
|
118
123
|
// clear any registered listeners - this should only be encountered in unit test scenarios
|
|
119
|
-
this.
|
|
120
|
-
this.
|
|
124
|
+
this._unregisterFuncs.forEach((unregister) => unregister());
|
|
125
|
+
this._unregisterFuncs = [];
|
|
126
|
+
this._unregisterFuncs.push(UiFramework_1.UiFramework.frontstages.onContentControlActivatedEvent.addListener(() => {
|
|
121
127
|
SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentControlActivated);
|
|
122
|
-
}))
|
|
123
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.frontstages.onContentLayoutActivatedEvent.addListener(() => {
|
|
128
|
+
}), UiFramework_1.UiFramework.frontstages.onContentLayoutActivatedEvent.addListener(() => {
|
|
124
129
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);
|
|
125
|
-
}))
|
|
126
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.frontstages.onFrontstageActivatedEvent.addListener(() => {
|
|
130
|
+
}), UiFramework_1.UiFramework.frontstages.onFrontstageActivatedEvent.addListener(() => {
|
|
127
131
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);
|
|
128
|
-
}))
|
|
129
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.frontstages.onFrontstageReadyEvent.addListener(() => {
|
|
132
|
+
}), UiFramework_1.UiFramework.frontstages.onFrontstageReadyEvent.addListener(() => {
|
|
130
133
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);
|
|
131
|
-
}))
|
|
132
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(() => {
|
|
134
|
+
}), UiFramework_1.UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(() => {
|
|
133
135
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);
|
|
134
|
-
}))
|
|
135
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.frontstages.onNavigationAidActivatedEvent.addListener(() => {
|
|
136
|
+
}), UiFramework_1.UiFramework.frontstages.onNavigationAidActivatedEvent.addListener(() => {
|
|
136
137
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);
|
|
137
|
-
}))
|
|
138
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.frontstages.onToolActivatedEvent.addListener(() => {
|
|
138
|
+
}), UiFramework_1.UiFramework.frontstages.onToolActivatedEvent.addListener(() => {
|
|
139
139
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);
|
|
140
|
-
}))
|
|
141
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.frontstages.onWidgetStateChangedEvent.addListener(() => {
|
|
140
|
+
}), UiFramework_1.UiFramework.frontstages.onWidgetStateChangedEvent.addListener(() => {
|
|
142
141
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);
|
|
143
|
-
}))
|
|
144
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.backstage.onToggled.addListener(() => {
|
|
142
|
+
}), UiFramework_1.UiFramework.backstage.onToggled.addListener(() => {
|
|
145
143
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);
|
|
146
|
-
}))
|
|
147
|
-
this._unregisterListenerFuncs.push(UiFramework_1.UiFramework.content.onActiveContentChangedEvent.addListener(() => {
|
|
144
|
+
}), UiFramework_1.UiFramework.content.onActiveContentChangedEvent.addListener(() => {
|
|
148
145
|
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);
|
|
146
|
+
}), core_frontend_1.IModelApp.viewManager.onSelectedViewportChanged.addListener((args) => {
|
|
147
|
+
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);
|
|
148
|
+
// if this is the first view being opened up start the default tool so tool admin is happy.
|
|
149
|
+
if (undefined === args.previous) {
|
|
150
|
+
void core_frontend_1.IModelApp.toolAdmin.startDefaultTool();
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
args.previous.onViewChanged.removeListener(SyncUiEventDispatcher._dispatchViewChange);
|
|
154
|
+
args.previous.onFeatureOverridesChanged.removeListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);
|
|
155
|
+
args.previous.onViewedModelsChanged.removeListener(SyncUiEventDispatcher._dispatchViewedModelsChanged);
|
|
156
|
+
}
|
|
157
|
+
// istanbul ignore next
|
|
158
|
+
if (args.current) {
|
|
159
|
+
args.current.onViewChanged.addListener(SyncUiEventDispatcher._dispatchViewChange);
|
|
160
|
+
args.current.onFeatureOverridesChanged.addListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);
|
|
161
|
+
args.current.onViewedModelsChanged.addListener(SyncUiEventDispatcher._dispatchViewedModelsChanged);
|
|
162
|
+
}
|
|
149
163
|
}));
|
|
150
|
-
// istanbul ignore else
|
|
151
|
-
if (core_frontend_1.IModelApp && core_frontend_1.IModelApp.viewManager) {
|
|
152
|
-
this._unregisterListenerFuncs.push(core_frontend_1.IModelApp.viewManager.onSelectedViewportChanged.addListener((args) => {
|
|
153
|
-
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);
|
|
154
|
-
// if this is the first view being opened up start the default tool so tool admin is happy.
|
|
155
|
-
if (undefined === args.previous) {
|
|
156
|
-
void core_frontend_1.IModelApp.toolAdmin.startDefaultTool();
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
// istanbul ignore next
|
|
160
|
-
if (args.previous.onViewChanged &&
|
|
161
|
-
typeof args.previous.onViewChanged.removeListener === "function")
|
|
162
|
-
// not set during unit test
|
|
163
|
-
args.previous.onViewChanged.removeListener(SyncUiEventDispatcher._dispatchViewChange);
|
|
164
|
-
// istanbul ignore next
|
|
165
|
-
if (args.previous.onFeatureOverridesChanged &&
|
|
166
|
-
typeof args.previous.onFeatureOverridesChanged
|
|
167
|
-
.removeListener === "function")
|
|
168
|
-
// not set during unit test
|
|
169
|
-
args.previous.onFeatureOverridesChanged.removeListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);
|
|
170
|
-
}
|
|
171
|
-
// istanbul ignore next
|
|
172
|
-
if (args.current) {
|
|
173
|
-
if (args.current.onViewChanged &&
|
|
174
|
-
typeof args.current.onViewChanged.addListener === "function")
|
|
175
|
-
// not set during unit test
|
|
176
|
-
args.current.onViewChanged.addListener(SyncUiEventDispatcher._dispatchViewChange);
|
|
177
|
-
// istanbul ignore next
|
|
178
|
-
if (args.current.onFeatureOverridesChanged &&
|
|
179
|
-
typeof args.current.onFeatureOverridesChanged.addListener ===
|
|
180
|
-
"function")
|
|
181
|
-
// not set during unit test
|
|
182
|
-
args.current.onFeatureOverridesChanged.addListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);
|
|
183
|
-
}
|
|
184
|
-
}));
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
static selectionChangedHandler(_ev) {
|
|
188
|
-
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);
|
|
189
164
|
}
|
|
190
165
|
/** This should be called by IModelApp when the active IModelConnection is closed. */
|
|
191
166
|
static clearConnectionEvents(iModelConnection) {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
167
|
+
if (this._iModelConnection !== iModelConnection)
|
|
168
|
+
return;
|
|
169
|
+
this._connectionUnregisterFuncs.forEach((unregister) => unregister());
|
|
170
|
+
this._connectionUnregisterFuncs = [];
|
|
195
171
|
}
|
|
196
172
|
/** This should be called by IModelApp when the active IModelConnection is established. */
|
|
197
173
|
static initializeConnectionEvents(iModelConnection) {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
UiFramework_1.UiFramework.setActiveIModelId(iModelConnection.iModelId);
|
|
208
|
-
SyncUiEventDispatcher._unregisterListenerFunc =
|
|
209
|
-
iModelConnection.selectionSet.onChanged.addListener((ev) => {
|
|
210
|
-
const numSelected = ev.set.elements.size;
|
|
211
|
-
UiFramework_1.UiFramework.dispatchActionToStore(SessionState_1.SessionStateActionId.SetNumItemsSelected, numSelected);
|
|
212
|
-
});
|
|
174
|
+
this._iModelConnection &&
|
|
175
|
+
this.clearConnectionEvents(this._iModelConnection);
|
|
176
|
+
this._iModelConnection = iModelConnection;
|
|
177
|
+
this._connectionUnregisterFuncs.push(iModelConnection.selectionSet.onChanged.addListener(() => {
|
|
178
|
+
SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);
|
|
179
|
+
}), iModelConnection.selectionSet.onChanged.addListener((ev) => {
|
|
180
|
+
const numSelected = ev.set.elements.size;
|
|
181
|
+
UiFramework_1.UiFramework.dispatchActionToStore(SessionState_1.SessionStateActionId.SetNumItemsSelected, numSelected);
|
|
182
|
+
}));
|
|
213
183
|
}
|
|
214
184
|
}
|
|
215
185
|
SyncUiEventDispatcher._uiEventDispatcher = new appui_abstract_1.UiEventDispatcher();
|
|
216
|
-
SyncUiEventDispatcher.
|
|
186
|
+
SyncUiEventDispatcher._unregisterFuncs = new Array();
|
|
187
|
+
SyncUiEventDispatcher._connectionUnregisterFuncs = new Array();
|
|
217
188
|
exports.SyncUiEventDispatcher = SyncUiEventDispatcher;
|
|
218
189
|
//# sourceMappingURL=SyncUiEventDispatcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncUiEventDispatcher.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.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 SyncUi\n */\n\nimport type { UiSyncEvent } from \"@itwin/appui-abstract\";\nimport { UiEventDispatcher } from \"@itwin/appui-abstract\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport type {\n IModelConnection,\n SelectedViewportChangedArgs,\n SelectionSetEvent,\n} from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { UiFramework } from \"../UiFramework\";\n\n// cSpell:ignore activecontentchanged, activitymessageupdated, activitymessagecancelled, backstageevent, contentlayoutactivated, contentcontrolactivated,\n// cSpell:ignore elementtooltipchanged, frontstageactivated, inputfieldmessageadded, inputfieldmessageremoved, modalfrontstagechanged, modaldialogchanged\n// cSpell:ignore navigationaidactivated, notificationmessageadded, toolactivated, taskactivated, widgetstatechanged, workflowactivated frontstageactivating\n// cSpell:ignore frontstageready activeviewportchanged selectionsetchanged presentationselectionchanged viewstatechanged\n// cSpell:ignore accudrawcompassmodechanged accudrawfieldlockchanged accudrawrotationchanged uisettingschanged configurableui\n\n/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.\n * @public\n */\nexport enum SyncUiEventId {\n /** AccuDraw compass mode has changed. */\n AccuDrawCompassModeChanged = \"accudrawcompassmodechanged\",\n /** AccuDraw rotation has changed. */\n AccuDrawRotationChanged = \"accudrawrotationchanged\",\n /** The active content as maintained by the ContentViewManager has changed. */\n ActiveContentChanged = \"activecontentchanged\",\n /** The active view maintained by the ViewManager has changed. */\n ActiveViewportChanged = \"activeviewportchanged\",\n /** Backstage has been toggled. */\n BackstageEvent = \"backstageevent\",\n /** A Content Layout has been activated. */\n ContentLayoutActivated = \"contentlayoutactivated\",\n /** A Content Control maintained by UiFramework.frontstages has been activated. */\n ContentControlActivated = \"contentcontrolactivated\",\n /** A Frontstage is activating. */\n FrontstageActivating = \"frontstageactivating\",\n /** A Frontstage has been activated and the content has been assigned. */\n FrontstageReady = \"frontstageready\",\n /** A Modal Frontstage has been opened or closed. */\n ModalFrontstageChanged = \"modalfrontstagechanged\",\n /** A Modal Dialog has been opened or closed. */\n ModalDialogChanged = \"modaldialogchanged\",\n /** A NavigationAid has been activated. */\n NavigationAidActivated = \"navigationaidactivated\",\n /** An InteractiveTool has been activated via the ToolAdmin. */\n ToolActivated = \"toolactivated\",\n /** The state of a Widget has changed. */\n WidgetStateChanged = \"widgetstatechanged\",\n /** The SelectionSet for the active IModelConnection has changed. */\n SelectionSetChanged = \"selectionsetchanged\",\n /** The list of settings providers registered with SettingsManager has changed. */\n SettingsProvidersChanged = \"settingsproviderschanged\",\n /** The current view state has changed (used by view undo/redo toolbar buttons). */\n ViewStateChanged = \"viewstatechanged\",\n /** The current object the reads and write UI State has changed. */\n UiStateStorageChanged = \"uistatestoragechanged\",\n ShowHideManagerSettingChange = \"show-hide-setting-change\",\n /** The list of feature overrides applied has been changed */\n FeatureOverridesChanged = \"featureoverrideschanged\",\n}\n\n/** This class is used to send eventIds to interested UI components so the component can determine if it needs\n * to refresh its display by calling setState on itself.\n * @public\n */\nexport class SyncUiEventDispatcher {\n private static _uiEventDispatcher = new UiEventDispatcher();\n private static _unregisterListenerFunc?: () => void;\n private static _unregisterListenerFuncs: Array<() => void> = [];\n\n /** @internal - used for testing only */\n /* istanbul ignore next */\n public static setTimeoutPeriod(period: number): void {\n SyncUiEventDispatcher._uiEventDispatcher.setTimeoutPeriod(period);\n }\n\n /** Return set of event ids that will be sent to listeners/. */\n public static get syncEventIds(): Set<string> {\n return SyncUiEventDispatcher._uiEventDispatcher.syncEventIds;\n }\n\n /** Return SyncUiEvent so callers can register an event callback. */\n public static get onSyncUiEvent(): UiSyncEvent {\n return SyncUiEventDispatcher._uiEventDispatcher.onSyncUiEvent;\n }\n\n /** Immediately trigger sync event processing. */\n public static dispatchImmediateSyncUiEvent(eventId: string): void {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchImmediateSyncUiEvent(\n eventId\n );\n }\n\n /** Save eventId in Set for processing. */\n public static dispatchSyncUiEvent(eventId: string): void {\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\n Logger.logInfo(\n UiFramework.loggerCategory(this),\n `[dispatchSyncUiEvent] not processed because timeoutPeriod=0`\n );\n return;\n }\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(eventId);\n }\n\n /** Save multiple eventIds in Set for processing. */\n public static dispatchSyncUiEvents(eventIds: string[]): void {\n // istanbul ignore if\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\n Logger.logInfo(\n UiFramework.loggerCategory(this),\n `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`\n );\n }\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvents(eventIds);\n }\n\n /** Checks to see if an eventId of interest is contained in the set of eventIds */\n public static hasEventOfInterest(\n eventIds: Set<string>,\n idsOfInterest: string[]\n ) {\n return SyncUiEventDispatcher._uiEventDispatcher.hasEventOfInterest(\n eventIds,\n idsOfInterest\n );\n }\n\n // istanbul ignore next\n private static _dispatchViewChange() {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ViewStateChanged\n );\n }\n\n // istanbul ignore next\n private static _dispatchFeatureOverridesChange() {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.FeatureOverridesChanged\n );\n }\n\n /** Initializes the Monitoring of Events that trigger dispatching sync events */\n public static initialize() {\n // clear any registered listeners - this should only be encountered in unit test scenarios\n this._unregisterListenerFuncs.forEach((unregisterListenerFunc) =>\n unregisterListenerFunc()\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.frontstages.onContentControlActivatedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ContentControlActivated\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.frontstages.onContentLayoutActivatedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ContentLayoutActivated\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.frontstages.onFrontstageActivatedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.FrontstageActivating\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.frontstages.onFrontstageReadyEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.FrontstageReady\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ModalFrontstageChanged\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.frontstages.onNavigationAidActivatedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.NavigationAidActivated\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ToolActivated\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.frontstages.onWidgetStateChangedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.WidgetStateChanged\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.backstage.onToggled.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.BackstageEvent\n );\n })\n );\n\n this._unregisterListenerFuncs.push(\n UiFramework.content.onActiveContentChangedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ActiveContentChanged\n );\n })\n );\n\n // istanbul ignore else\n if (IModelApp && IModelApp.viewManager) {\n this._unregisterListenerFuncs.push(\n IModelApp.viewManager.onSelectedViewportChanged.addListener(\n (args: SelectedViewportChangedArgs) => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ActiveViewportChanged\n );\n\n // if this is the first view being opened up start the default tool so tool admin is happy.\n if (undefined === args.previous) {\n void IModelApp.toolAdmin.startDefaultTool();\n } else {\n // istanbul ignore next\n if (\n args.previous.onViewChanged &&\n typeof args.previous.onViewChanged.removeListener === \"function\"\n )\n // not set during unit test\n args.previous.onViewChanged.removeListener(\n SyncUiEventDispatcher._dispatchViewChange\n );\n // istanbul ignore next\n if (\n args.previous.onFeatureOverridesChanged &&\n typeof args.previous.onFeatureOverridesChanged\n .removeListener === \"function\"\n )\n // not set during unit test\n args.previous.onFeatureOverridesChanged.removeListener(\n SyncUiEventDispatcher._dispatchFeatureOverridesChange\n );\n }\n // istanbul ignore next\n if (args.current) {\n if (\n args.current.onViewChanged &&\n typeof args.current.onViewChanged.addListener === \"function\"\n )\n // not set during unit test\n args.current.onViewChanged.addListener(\n SyncUiEventDispatcher._dispatchViewChange\n );\n // istanbul ignore next\n if (\n args.current.onFeatureOverridesChanged &&\n typeof args.current.onFeatureOverridesChanged.addListener ===\n \"function\"\n )\n // not set during unit test\n args.current.onFeatureOverridesChanged.addListener(\n SyncUiEventDispatcher._dispatchFeatureOverridesChange\n );\n }\n }\n )\n );\n }\n }\n\n private static selectionChangedHandler(_ev: SelectionSetEvent) {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.SelectionSetChanged\n );\n }\n\n /** This should be called by IModelApp when the active IModelConnection is closed. */\n public static clearConnectionEvents(iModelConnection: IModelConnection) {\n iModelConnection.selectionSet.onChanged.removeListener(\n SyncUiEventDispatcher.selectionChangedHandler\n );\n SyncUiEventDispatcher._unregisterListenerFunc &&\n SyncUiEventDispatcher._unregisterListenerFunc();\n }\n\n /** This should be called by IModelApp when the active IModelConnection is established. */\n public static initializeConnectionEvents(iModelConnection: IModelConnection) {\n if (SyncUiEventDispatcher._unregisterListenerFunc)\n SyncUiEventDispatcher._unregisterListenerFunc();\n\n if (iModelConnection.isBlankConnection() || !iModelConnection.isOpen) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetNumItemsSelected,\n 0\n );\n return;\n }\n\n iModelConnection.selectionSet.onChanged.removeListener(\n SyncUiEventDispatcher.selectionChangedHandler\n );\n iModelConnection.selectionSet.onChanged.addListener(\n SyncUiEventDispatcher.selectionChangedHandler\n );\n iModelConnection.iModelId &&\n UiFramework.setActiveIModelId(iModelConnection.iModelId);\n\n SyncUiEventDispatcher._unregisterListenerFunc =\n iModelConnection.selectionSet.onChanged.addListener((ev) => {\n const numSelected = ev.set.elements.size;\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetNumItemsSelected,\n numSelected\n );\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SyncUiEventDispatcher.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.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 SyncUi\n */\n\nimport type { UiSyncEvent } from \"@itwin/appui-abstract\";\nimport { UiEventDispatcher } from \"@itwin/appui-abstract\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { UiFramework } from \"../UiFramework\";\n\n// cSpell:ignore activecontentchanged, activitymessageupdated, activitymessagecancelled, backstageevent, contentlayoutactivated, contentcontrolactivated,\n// cSpell:ignore elementtooltipchanged, frontstageactivated, inputfieldmessageadded, inputfieldmessageremoved, modalfrontstagechanged, modaldialogchanged\n// cSpell:ignore navigationaidactivated, notificationmessageadded, toolactivated, taskactivated, widgetstatechanged, workflowactivated frontstageactivating\n// cSpell:ignore frontstageready activeviewportchanged selectionsetchanged presentationselectionchanged viewstatechanged\n// cSpell:ignore accudrawcompassmodechanged accudrawfieldlockchanged accudrawrotationchanged uisettingschanged configurableui\n\n/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.\n * @public\n */\nexport enum SyncUiEventId {\n /** AccuDraw compass mode has changed. */\n AccuDrawCompassModeChanged = \"accudrawcompassmodechanged\",\n /** AccuDraw rotation has changed. */\n AccuDrawRotationChanged = \"accudrawrotationchanged\",\n /** The active content as maintained by the ContentViewManager has changed. */\n ActiveContentChanged = \"activecontentchanged\",\n /** The active view maintained by the ViewManager has changed. */\n ActiveViewportChanged = \"activeviewportchanged\",\n /** Backstage has been toggled. */\n BackstageEvent = \"backstageevent\",\n /** A Content Layout has been activated. */\n ContentLayoutActivated = \"contentlayoutactivated\",\n /** A Content Control maintained by UiFramework.frontstages has been activated. */\n ContentControlActivated = \"contentcontrolactivated\",\n /** A Frontstage is activating. */\n FrontstageActivating = \"frontstageactivating\",\n /** A Frontstage has been activated and the content has been assigned. */\n FrontstageReady = \"frontstageready\",\n /** A Modal Frontstage has been opened or closed. */\n ModalFrontstageChanged = \"modalfrontstagechanged\",\n /** A Modal Dialog has been opened or closed. */\n ModalDialogChanged = \"modaldialogchanged\",\n /** A NavigationAid has been activated. */\n NavigationAidActivated = \"navigationaidactivated\",\n /** An InteractiveTool has been activated via the ToolAdmin. */\n ToolActivated = \"toolactivated\",\n /** The state of a Widget has changed. */\n WidgetStateChanged = \"widgetstatechanged\",\n /** The SelectionSet for the active IModelConnection has changed. */\n SelectionSetChanged = \"selectionsetchanged\",\n /** The list of settings providers registered with SettingsManager has changed. */\n SettingsProvidersChanged = \"settingsproviderschanged\",\n /** The current view state has changed (used by view undo/redo toolbar buttons). */\n ViewStateChanged = \"viewstatechanged\",\n /** The current object the reads and write UI State has changed. */\n UiStateStorageChanged = \"uistatestoragechanged\",\n ShowHideManagerSettingChange = \"show-hide-setting-change\",\n /** The list of feature overrides applied has been changed */\n FeatureOverridesChanged = \"featureoverrideschanged\",\n ViewedModelsChanged = \"viewedmodelschanged\",\n}\n\n/** This class is used to send eventIds to interested UI components so the component can determine if it needs\n * to refresh its display by calling setState on itself.\n * @public\n */\nexport class SyncUiEventDispatcher {\n private static _uiEventDispatcher = new UiEventDispatcher();\n private static _unregisterFuncs = new Array<() => void>();\n private static _connectionUnregisterFuncs = new Array<() => void>();\n private static _iModelConnection?: IModelConnection;\n\n /** @internal - used for testing only */\n /* istanbul ignore next */\n public static setTimeoutPeriod(period: number): void {\n SyncUiEventDispatcher._uiEventDispatcher.setTimeoutPeriod(period);\n }\n\n /** Return set of event ids that will be sent to listeners/. */\n public static get syncEventIds(): Set<string> {\n return SyncUiEventDispatcher._uiEventDispatcher.syncEventIds;\n }\n\n /** Return SyncUiEvent so callers can register an event callback. */\n public static get onSyncUiEvent(): UiSyncEvent {\n return SyncUiEventDispatcher._uiEventDispatcher.onSyncUiEvent;\n }\n\n /** Immediately trigger sync event processing. */\n public static dispatchImmediateSyncUiEvent(eventId: string): void {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchImmediateSyncUiEvent(\n eventId\n );\n }\n\n /** Save eventId in Set for processing. */\n public static dispatchSyncUiEvent(eventId: string): void {\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\n Logger.logInfo(\n UiFramework.loggerCategory(this),\n `[dispatchSyncUiEvent] not processed because timeoutPeriod=0`\n );\n return;\n }\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(eventId);\n }\n\n /** Save multiple eventIds in Set for processing. */\n public static dispatchSyncUiEvents(eventIds: string[]): void {\n // istanbul ignore if\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\n Logger.logInfo(\n UiFramework.loggerCategory(this),\n `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`\n );\n }\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvents(eventIds);\n }\n\n /** Checks to see if an eventId of interest is contained in the set of eventIds */\n public static hasEventOfInterest(\n eventIds: Set<string>,\n idsOfInterest: string[]\n ) {\n return SyncUiEventDispatcher._uiEventDispatcher.hasEventOfInterest(\n eventIds,\n idsOfInterest\n );\n }\n\n // istanbul ignore next\n private static _dispatchViewChange() {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ViewStateChanged\n );\n }\n\n // istanbul ignore next\n private static _dispatchFeatureOverridesChange() {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.FeatureOverridesChanged\n );\n }\n\n // istanbul ignore next\n private static _dispatchViewedModelsChanged() {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ViewedModelsChanged\n );\n }\n\n /** Initializes the Monitoring of Events that trigger dispatching sync events */\n public static initialize() {\n // clear any registered listeners - this should only be encountered in unit test scenarios\n this._unregisterFuncs.forEach((unregister) => unregister());\n this._unregisterFuncs = [];\n\n this._unregisterFuncs.push(\n UiFramework.frontstages.onContentControlActivatedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ContentControlActivated\n );\n }),\n UiFramework.frontstages.onContentLayoutActivatedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ContentLayoutActivated\n );\n }),\n UiFramework.frontstages.onFrontstageActivatedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.FrontstageActivating\n );\n }),\n UiFramework.frontstages.onFrontstageReadyEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.FrontstageReady\n );\n }),\n UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ModalFrontstageChanged\n );\n }),\n UiFramework.frontstages.onNavigationAidActivatedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.NavigationAidActivated\n );\n }),\n UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ToolActivated\n );\n }),\n UiFramework.frontstages.onWidgetStateChangedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.WidgetStateChanged\n );\n }),\n UiFramework.backstage.onToggled.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.BackstageEvent\n );\n }),\n UiFramework.content.onActiveContentChangedEvent.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ActiveContentChanged\n );\n }),\n IModelApp.viewManager.onSelectedViewportChanged.addListener((args) => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.ActiveViewportChanged\n );\n\n // if this is the first view being opened up start the default tool so tool admin is happy.\n if (undefined === args.previous) {\n void IModelApp.toolAdmin.startDefaultTool();\n } else {\n args.previous.onViewChanged.removeListener(\n SyncUiEventDispatcher._dispatchViewChange\n );\n args.previous.onFeatureOverridesChanged.removeListener(\n SyncUiEventDispatcher._dispatchFeatureOverridesChange\n );\n args.previous.onViewedModelsChanged.removeListener(\n SyncUiEventDispatcher._dispatchViewedModelsChanged\n );\n }\n // istanbul ignore next\n if (args.current) {\n args.current.onViewChanged.addListener(\n SyncUiEventDispatcher._dispatchViewChange\n );\n args.current.onFeatureOverridesChanged.addListener(\n SyncUiEventDispatcher._dispatchFeatureOverridesChange\n );\n args.current.onViewedModelsChanged.addListener(\n SyncUiEventDispatcher._dispatchViewedModelsChanged\n );\n }\n })\n );\n }\n\n /** This should be called by IModelApp when the active IModelConnection is closed. */\n public static clearConnectionEvents(iModelConnection: IModelConnection) {\n if (this._iModelConnection !== iModelConnection) return;\n this._connectionUnregisterFuncs.forEach((unregister) => unregister());\n this._connectionUnregisterFuncs = [];\n }\n\n /** This should be called by IModelApp when the active IModelConnection is established. */\n public static initializeConnectionEvents(iModelConnection: IModelConnection) {\n this._iModelConnection &&\n this.clearConnectionEvents(this._iModelConnection);\n this._iModelConnection = iModelConnection;\n\n this._connectionUnregisterFuncs.push(\n iModelConnection.selectionSet.onChanged.addListener(() => {\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.SelectionSetChanged\n );\n }),\n iModelConnection.selectionSet.onChanged.addListener((ev) => {\n const numSelected = ev.set.elements.size;\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetNumItemsSelected,\n numSelected\n );\n })\n );\n }\n}\n"]}
|
|
@@ -6,12 +6,22 @@ import type { OnItemExecutedFunc } from "@itwin/appui-abstract";
|
|
|
6
6
|
import type { CommonProps, NoChildrenProps } from "@itwin/core-react";
|
|
7
7
|
import type { Direction, ToolbarOpacitySetting, ToolbarPanelAlignment } from "@itwin/components-react";
|
|
8
8
|
import type { ToolbarItem } from "./ToolbarItem";
|
|
9
|
+
/**
|
|
10
|
+
* Properties of [[Toolbar.enableOverflow]] component.
|
|
11
|
+
* @beta
|
|
12
|
+
*/
|
|
13
|
+
export interface OverflowToolbarOptions {
|
|
14
|
+
/** Describes to which direction the overflow popup panels are expanded if overflow is enabled. Defaults to: [[Direction.Right]] */
|
|
15
|
+
overflowExpandsTo?: Direction;
|
|
16
|
+
}
|
|
9
17
|
/** Properties of [[Toolbar]] component.
|
|
10
18
|
* @beta
|
|
11
19
|
*/
|
|
12
20
|
export interface ToolbarProps extends CommonProps, NoChildrenProps {
|
|
13
|
-
/** Describes to which direction the popup panels are expanded. Defaults to: [[Direction.Bottom]] */
|
|
21
|
+
/** Describes to which direction the popup panels are expanded, also defines the orientation of the toolbar (Top/Bottom will create an horizontal toolbar, Left/Right will create a vertical toolbar). Defaults to: [[Direction.Bottom]] */
|
|
14
22
|
expandsTo?: Direction;
|
|
23
|
+
/** Describes if items that do not fit available space should move to an expandable panel. Defaults to: false */
|
|
24
|
+
enableOverflow?: boolean | OverflowToolbarOptions;
|
|
15
25
|
/** Definitions for items of the toolbar. Items are expected to be already sorted by group and item. */
|
|
16
26
|
items: ToolbarItem[];
|
|
17
27
|
/** Describes how expanded panels are aligned. Defaults to: [[ToolbarPanelAlignment.Start]] */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,mIAAmI;IACnI,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,eAAe;IAChE,2OAA2O;IAC3O,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gHAAgH;IAChH,cAAc,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAClD,uGAAuG;IACvG,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,sDAAsD;IACtD,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,eAY1C"}
|
|
@@ -11,6 +11,7 @@ exports.Toolbar = void 0;
|
|
|
11
11
|
const React = require("react");
|
|
12
12
|
const components_react_1 = require("@itwin/components-react");
|
|
13
13
|
const toUIAToolbarItem_1 = require("./toUIAToolbarItem");
|
|
14
|
+
const SyncUiEventDispatcher_1 = require("../syncui/SyncUiEventDispatcher");
|
|
14
15
|
/** Component that displays toolbar items.
|
|
15
16
|
* @beta
|
|
16
17
|
*/
|
|
@@ -19,8 +20,8 @@ function Toolbar(props) {
|
|
|
19
20
|
const uiaItems = React.useMemo(() => {
|
|
20
21
|
return items.map((item) => (0, toUIAToolbarItem_1.toUIAToolbarItem)(item));
|
|
21
22
|
}, [items]);
|
|
22
|
-
return (React.createElement(components_react_1.
|
|
23
|
-
, { items: uiaItems, ...other }));
|
|
23
|
+
return (React.createElement(components_react_1.InternalToolbarComponent // eslint-disable-line deprecation/deprecation
|
|
24
|
+
, { items: uiaItems, syncUiEvent: SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent, ...other }));
|
|
24
25
|
}
|
|
25
26
|
exports.Toolbar = Toolbar;
|
|
26
27
|
//# sourceMappingURL=Toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAQ/B,
|
|
1
|
+
{"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAQ/B,8DAAiF;AAEjF,yDAAsD;AACtD,2EAAwE;AAiCxE;;GAEG;AACH,SAAgB,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,CACL,oBAAC,2CAAU,CAAC,8CAA8C;QACxD,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,6CAAqB,CAAC,aAAa,KAC5C,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAZD,0BAYC","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 Toolbar\n */\n\nimport * as React from \"react\";\nimport type { OnItemExecutedFunc } from \"@itwin/appui-abstract\";\nimport type { CommonProps, NoChildrenProps } from \"@itwin/core-react\";\nimport type {\n Direction,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport { InternalToolbarComponent as CR_Toolbar } from \"@itwin/components-react\";\nimport type { ToolbarItem } from \"./ToolbarItem\";\nimport { toUIAToolbarItem } from \"./toUIAToolbarItem\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/**\n * Properties of [[Toolbar.enableOverflow]] component.\n * @beta\n */\nexport interface OverflowToolbarOptions {\n /** Describes to which direction the overflow popup panels are expanded if overflow is enabled. Defaults to: [[Direction.Right]] */\n overflowExpandsTo?: Direction;\n}\n\n/** Properties of [[Toolbar]] component.\n * @beta\n */\nexport interface ToolbarProps extends CommonProps, NoChildrenProps {\n /** Describes to which direction the popup panels are expanded, also defines the orientation of the toolbar (Top/Bottom will create an horizontal toolbar, Left/Right will create a vertical toolbar). Defaults to: [[Direction.Bottom]] */\n expandsTo?: Direction;\n /** Describes if items that do not fit available space should move to an expandable panel. Defaults to: false */\n enableOverflow?: boolean | OverflowToolbarOptions;\n /** Definitions for items of the toolbar. Items are expected to be already sorted by group and item. */\n items: ToolbarItem[];\n /** Describes how expanded panels are aligned. Defaults to: [[ToolbarPanelAlignment.Start]] */\n panelAlignment?: ToolbarPanelAlignment;\n /** Use Drag Interaction to open popups with nest action buttons */\n useDragInteraction?: boolean;\n /** Determines whether to use mouse proximity to alter the opacity of the toolbar */\n toolbarOpacitySetting?: ToolbarOpacitySetting;\n /** Optional function to call on any item execution */\n onItemExecuted?: OnItemExecutedFunc;\n /** Optional function to call on any KeyDown events processed by toolbar */\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\n/** Component that displays toolbar items.\n * @beta\n */\nexport function Toolbar(props: ToolbarProps) {\n const { items, ...other } = props;\n const uiaItems = React.useMemo(() => {\n return items.map((item) => toUIAToolbarItem(item));\n }, [items]);\n return (\n <CR_Toolbar // eslint-disable-line deprecation/deprecation\n items={uiaItems}\n syncUiEvent={SyncUiEventDispatcher.onSyncUiEvent}\n {...other}\n />\n );\n}\n"]}
|
|
@@ -14,7 +14,8 @@ export interface ExtensibleToolbarProps {
|
|
|
14
14
|
orientation: ToolbarOrientation;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
* Toolbar that is populated and maintained by item managers
|
|
17
|
+
* Toolbar that is populated and maintained by item managers, will override
|
|
18
|
+
* isActive property based on the active tool id.
|
|
18
19
|
* @public
|
|
19
20
|
*/
|
|
20
21
|
export declare function ToolbarComposer(props: ExtensibleToolbarProps): JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"ToolbarComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAYH,OAAO,KAAK,EAGV,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,kBAAkB,EAClB,YAAY,EACb,MAAM,eAAe,CAAC;AA0JvB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,2BAA2B;IAC3B,WAAW,EAAE,kBAAkB,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,eA4C5D"}
|
|
@@ -9,68 +9,15 @@
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.ToolbarComposer = void 0;
|
|
11
11
|
const React = require("react");
|
|
12
|
-
const appui_abstract_1 = require("@itwin/appui-abstract");
|
|
13
12
|
const components_react_1 = require("@itwin/components-react");
|
|
14
13
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
15
14
|
const core_react_1 = require("@itwin/core-react");
|
|
16
|
-
const SyncUiEventDispatcher_1 = require("../syncui/SyncUiEventDispatcher");
|
|
17
15
|
const UiFramework_1 = require("../UiFramework");
|
|
18
16
|
const DragInteraction_1 = require("./DragInteraction");
|
|
19
|
-
const useDefaultToolbarItems_1 = require("./useDefaultToolbarItems");
|
|
20
|
-
const useUiItemsProviderToolbarItems_1 = require("./useUiItemsProviderToolbarItems");
|
|
21
17
|
const ToolbarItem_1 = require("./ToolbarItem");
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
function useToolbarItemSyncEffect(uiDataProvider, syncIdsOfInterest) {
|
|
26
|
-
React.useEffect(() => {
|
|
27
|
-
return SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {
|
|
28
|
-
if (0 === syncIdsOfInterest.length)
|
|
29
|
-
return;
|
|
30
|
-
// istanbul ignore else
|
|
31
|
-
if (syncIdsOfInterest.some((value) => args.eventIds.has(value.toLowerCase()))) {
|
|
32
|
-
// process each item that has interest
|
|
33
|
-
uiDataProvider.refreshAffectedItems(args.eventIds);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
}, [uiDataProvider, syncIdsOfInterest, uiDataProvider.items]);
|
|
37
|
-
React.useEffect(() => {
|
|
38
|
-
return UiFramework_1.UiFramework.frontstages.onToolActivatedEvent.addListener(({ toolId }) => {
|
|
39
|
-
uiDataProvider.setActiveToolId(toolId);
|
|
40
|
-
});
|
|
41
|
-
}, [uiDataProvider, uiDataProvider.items]);
|
|
42
|
-
}
|
|
43
|
-
function nestedAddItemToSpecifiedParentGroup(items, groupChildren) {
|
|
44
|
-
const outItems = [];
|
|
45
|
-
for (const toolbarItem of items) {
|
|
46
|
-
if (!(0, ToolbarItem_1.isToolbarGroupItem)(toolbarItem)) {
|
|
47
|
-
outItems.push(toolbarItem);
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
const newChildren = nestedAddItemToSpecifiedParentGroup(toolbarItem.items, groupChildren);
|
|
51
|
-
const foundIndices = [];
|
|
52
|
-
groupChildren.forEach((entry, index) => {
|
|
53
|
-
if (entry.parentGroupItemId === toolbarItem.id) {
|
|
54
|
-
foundIndices.push(index);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
// istanbul ignore else
|
|
58
|
-
if (foundIndices.length) {
|
|
59
|
-
// process in reverse order so groupChildren can be reduced as we find matches
|
|
60
|
-
foundIndices
|
|
61
|
-
.sort(
|
|
62
|
-
// istanbul ignore next
|
|
63
|
-
(a, b) => a - b)
|
|
64
|
-
.reverse()
|
|
65
|
-
.forEach((foundIndex) => {
|
|
66
|
-
newChildren.push(groupChildren[foundIndex]);
|
|
67
|
-
groupChildren.splice(foundIndex);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
outItems.push({ ...toolbarItem, items: newChildren });
|
|
71
|
-
}
|
|
72
|
-
return outItems;
|
|
73
|
-
}
|
|
18
|
+
const Toolbar_1 = require("./Toolbar");
|
|
19
|
+
const useActiveToolIdSynchedItems_1 = require("./useActiveToolIdSynchedItems");
|
|
20
|
+
const useActiveStageProvidedToolbarItems_1 = require("./useActiveStageProvidedToolbarItems");
|
|
74
21
|
function addItemToSpecifiedParentGroup(items, groupChildren) {
|
|
75
22
|
const outItems = [];
|
|
76
23
|
for (const toolbarItem of items) {
|
|
@@ -78,7 +25,7 @@ function addItemToSpecifiedParentGroup(items, groupChildren) {
|
|
|
78
25
|
outItems.push(toolbarItem);
|
|
79
26
|
continue;
|
|
80
27
|
}
|
|
81
|
-
const newChildren =
|
|
28
|
+
const newChildren = addItemToSpecifiedParentGroup(toolbarItem.items, groupChildren);
|
|
82
29
|
const foundIndices = [];
|
|
83
30
|
groupChildren.forEach((entry, index) => {
|
|
84
31
|
if (entry.parentGroupItemId === toolbarItem.id) {
|
|
@@ -119,76 +66,54 @@ function getItemSortValue(item) {
|
|
|
119
66
|
: /* istanbul ignore next */ item.groupPriority;
|
|
120
67
|
return groupValue * 10000 + item.itemPriority;
|
|
121
68
|
}
|
|
122
|
-
function
|
|
123
|
-
|
|
124
|
-
.filter((item) => !appui_abstract_1.ConditionalBooleanValue.getValue(item.isHidden))
|
|
69
|
+
function sortItems(items) {
|
|
70
|
+
return [...items]
|
|
125
71
|
.sort((a, b) => getItemSortValue(a) - getItemSortValue(b))
|
|
126
72
|
.map((i) => {
|
|
127
73
|
if ((0, ToolbarItem_1.isToolbarGroupItem)(i)) {
|
|
128
|
-
return { ...i, items:
|
|
74
|
+
return { ...i, items: sortItems(i.items) };
|
|
129
75
|
}
|
|
130
76
|
return i;
|
|
131
77
|
});
|
|
132
|
-
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create a forEach handler that will add every element of an array of ToolbarItems
|
|
81
|
+
* to a list of items that can then be replaced in its proper place, ensuring that
|
|
82
|
+
* the same item, from different list, is not added multiple times.
|
|
83
|
+
* @param items Output list of items
|
|
84
|
+
* @param groupChildren Output list of group children to redistribute.
|
|
85
|
+
* @returns Array<ToolbarItem>.forEach handler.
|
|
86
|
+
*/
|
|
87
|
+
function addIfNotDuplicate(items, groupChildren) {
|
|
88
|
+
return (srcItem) => {
|
|
89
|
+
if (-1 === items.findIndex((item) => item.id === srcItem.id)) {
|
|
90
|
+
// if the default item is a group that an addon may insert into copy it so we don't mess with original
|
|
91
|
+
const toolbarItem = (0, ToolbarItem_1.isToolbarGroupItem)(srcItem)
|
|
92
|
+
? cloneGroup(srcItem)
|
|
93
|
+
: srcItem;
|
|
94
|
+
if (((0, ToolbarItem_1.isToolbarGroupItem)(toolbarItem) || (0, ToolbarItem_1.isToolbarActionItem)(toolbarItem)) &&
|
|
95
|
+
toolbarItem.parentGroupItemId)
|
|
96
|
+
groupChildren.push(toolbarItem);
|
|
97
|
+
else
|
|
98
|
+
items.push(toolbarItem);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
133
101
|
}
|
|
134
102
|
/** local function to combine items from Stage and from Extensions */
|
|
135
103
|
function combineItems(defaultItems, addonItems) {
|
|
136
104
|
let items = [];
|
|
137
105
|
const groupChildren = [];
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
defaultItems.forEach((srcItem) => {
|
|
141
|
-
if (-1 === items.findIndex((item) => item.id === srcItem.id)) {
|
|
142
|
-
// if the default item is a group that an addon may insert into copy it so we don't mess with original
|
|
143
|
-
const toolbarItem = (0, ToolbarItem_1.isToolbarGroupItem)(srcItem)
|
|
144
|
-
? cloneGroup(srcItem)
|
|
145
|
-
: srcItem;
|
|
146
|
-
if (((0, ToolbarItem_1.isToolbarGroupItem)(toolbarItem) ||
|
|
147
|
-
(0, ToolbarItem_1.isToolbarActionItem)(toolbarItem)) &&
|
|
148
|
-
toolbarItem.parentGroupItemId)
|
|
149
|
-
groupChildren.push(toolbarItem);
|
|
150
|
-
else
|
|
151
|
-
items.push(toolbarItem);
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
// istanbul ignore else
|
|
156
|
-
if (addonItems.length) {
|
|
157
|
-
addonItems.forEach((srcItem) => {
|
|
158
|
-
if (-1 === items.findIndex((item) => item.id === srcItem.id)) {
|
|
159
|
-
// if the default item is a group that an addon may insert into copy it so we don't mess with original
|
|
160
|
-
const toolbarItem = (0, ToolbarItem_1.isToolbarGroupItem)(srcItem)
|
|
161
|
-
? cloneGroup(srcItem)
|
|
162
|
-
: srcItem;
|
|
163
|
-
if (((0, ToolbarItem_1.isToolbarGroupItem)(toolbarItem) ||
|
|
164
|
-
(0, ToolbarItem_1.isToolbarActionItem)(toolbarItem)) &&
|
|
165
|
-
toolbarItem.parentGroupItemId)
|
|
166
|
-
groupChildren.push(toolbarItem);
|
|
167
|
-
else
|
|
168
|
-
items.push(toolbarItem);
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
106
|
+
defaultItems.forEach(addIfNotDuplicate(items, groupChildren));
|
|
107
|
+
addonItems.forEach(addIfNotDuplicate(items, groupChildren));
|
|
172
108
|
// if an item from an addon has specified a parent group then try to find it and insert it. If no parent is found, add item at root level.
|
|
173
109
|
if (groupChildren.length) {
|
|
174
110
|
items = addItemToSpecifiedParentGroup(items, groupChildren);
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
});
|
|
180
|
-
}
|
|
111
|
+
groupChildren.forEach((toolbarItem) => {
|
|
112
|
+
core_bentley_1.Logger.logWarning("ToolbarComposer", `Requested Parent Group [${toolbarItem.parentGroupItemId}] not found, so item [${toolbarItem.id}] is added directly to toolbar.`);
|
|
113
|
+
items.push(toolbarItem);
|
|
114
|
+
});
|
|
181
115
|
}
|
|
182
|
-
|
|
183
|
-
.filter((item) => !appui_abstract_1.ConditionalBooleanValue.getValue(item.isHidden))
|
|
184
|
-
.sort((a, b) => getItemSortValue(a) - getItemSortValue(b))
|
|
185
|
-
.map((i) => {
|
|
186
|
-
if ((0, ToolbarItem_1.isToolbarGroupItem)(i)) {
|
|
187
|
-
return { ...i, items: getSortedChildren(i) };
|
|
188
|
-
}
|
|
189
|
-
return i;
|
|
190
|
-
});
|
|
191
|
-
return availableItems;
|
|
116
|
+
return sortItems(items);
|
|
192
117
|
}
|
|
193
118
|
const useProximityOpacitySetting = () => {
|
|
194
119
|
const [proximityOpacity, setProximityOpacity] = React.useState(UiFramework_1.UiFramework.visibility.useProximityOpacity);
|
|
@@ -205,27 +130,18 @@ const useProximityOpacitySetting = () => {
|
|
|
205
130
|
return proximityOpacity;
|
|
206
131
|
};
|
|
207
132
|
/**
|
|
208
|
-
* Toolbar that is populated and maintained by item managers
|
|
133
|
+
* Toolbar that is populated and maintained by item managers, will override
|
|
134
|
+
* isActive property based on the active tool id.
|
|
209
135
|
* @public
|
|
210
136
|
*/
|
|
211
137
|
function ToolbarComposer(props) {
|
|
212
138
|
const { usage, orientation } = props;
|
|
213
|
-
const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new ToolbarItemsManager_1.ToolbarItemsManager(props.items));
|
|
214
|
-
React.useEffect(() => {
|
|
215
|
-
setDefaultItemsManager(new ToolbarItemsManager_1.ToolbarItemsManager(props.items));
|
|
216
|
-
}, [props.items]);
|
|
217
|
-
// process default items
|
|
218
|
-
const defaultItems = (0, useDefaultToolbarItems_1.useDefaultToolbarItems)(defaultItemsManager);
|
|
219
|
-
const syncIdsOfInterest = React.useMemo(() => ToolbarItemsManager_1.ToolbarItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);
|
|
220
|
-
useToolbarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);
|
|
221
139
|
// process items from addon UI providers
|
|
222
|
-
const
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const items =
|
|
227
|
-
return combineItems(defaultItems, addonItems);
|
|
228
|
-
}, [defaultItems, addonItems]);
|
|
140
|
+
const addonItems = (0, useActiveStageProvidedToolbarItems_1.useActiveStageProvidedToolbarItems)(usage, orientation);
|
|
141
|
+
const allItems = React.useMemo(() => {
|
|
142
|
+
return combineItems(props.items, addonItems);
|
|
143
|
+
}, [props.items, addonItems]);
|
|
144
|
+
const items = (0, useActiveToolIdSynchedItems_1.useActiveToolIdSynchedItems)(allItems, UiFramework_1.UiFramework.frontstages);
|
|
229
145
|
const toolbarOrientation = orientation === ToolbarItem_1.ToolbarOrientation.Horizontal
|
|
230
146
|
? core_react_1.Orientation.Horizontal
|
|
231
147
|
: core_react_1.Orientation.Vertical;
|
|
@@ -240,7 +156,7 @@ function ToolbarComposer(props) {
|
|
|
240
156
|
: components_react_1.ToolbarPanelAlignment.Start;
|
|
241
157
|
const isDragEnabled = React.useContext(DragInteraction_1.ToolbarDragInteractionContext);
|
|
242
158
|
const useProximityOpacity = useProximityOpacitySetting();
|
|
243
|
-
return (React.createElement(
|
|
159
|
+
return (React.createElement(Toolbar_1.Toolbar, { enableOverflow: true, expandsTo: expandsTo, panelAlignment: panelAlignment, items: items, useDragInteraction: isDragEnabled, toolbarOpacitySetting: useProximityOpacity && !UiFramework_1.UiFramework.isMobile()
|
|
244
160
|
? components_react_1.ToolbarOpacitySetting.Proximity
|
|
245
161
|
: /* istanbul ignore next */ components_react_1.ToolbarOpacitySetting.Defaults }));
|
|
246
162
|
}
|