@itwin/appui-react 3.0.0-extension.0 → 3.0.1
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 +201 -16
- package/LICENSE.md +1 -1
- package/README.md +3 -3
- package/lib/cjs/appui-react/UiFramework.d.ts +37 -22
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +53 -38
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.js +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +5 -4
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/cjs/appui-react/backstage/Backstage.d.ts +0 -2
- package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +2 -0
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.js +26 -8
- package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemProps.d.ts +3 -3
- package/lib/cjs/appui-react/backstage/BackstageItemProps.js +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +3 -3
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts +2 -0
- package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/CommandLaunch.js +1 -0
- package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
- package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
- package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/FrontstageLaunch.js +5 -6
- package/lib/cjs/appui-react/backstage/FrontstageLaunch.js.map +1 -1
- package/lib/cjs/appui-react/backstage/Separator.d.ts +1 -0
- package/lib/cjs/appui-react/backstage/Separator.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/Separator.js +3 -2
- package/lib/cjs/appui-react/backstage/Separator.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +4 -5
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/state.d.ts +10 -3
- package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/state.js +15 -2
- package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentControl.d.ts +1 -1
- package/lib/cjs/appui-react/content/ContentControl.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentControl.js +2 -2
- package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -2
- package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +4 -3
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentViewManager.d.ts +1 -1
- package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentViewManager.js +3 -3
- package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.d.ts +13 -1
- package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js +18 -5
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
- package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -0
- package/lib/cjs/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +19 -17
- package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -0
- package/lib/cjs/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
- package/lib/cjs/appui-react/content/ViewStateHelper.d.ts.map +1 -0
- package/lib/cjs/appui-react/content/{SavedView.js → ViewStateHelper.js} +4 -4
- package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -0
- package/lib/cjs/appui-react/content/split-pane/Pane.d.ts +21 -0
- package/lib/cjs/appui-react/content/split-pane/Pane.d.ts.map +1 -0
- package/lib/cjs/appui-react/content/split-pane/Pane.js +43 -0
- package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -0
- package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts +23 -0
- package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
- package/lib/cjs/appui-react/content/split-pane/Resizer.js +39 -0
- package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -0
- package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +70 -0
- package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js +243 -0
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -0
- package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +1 -2
- package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
- package/lib/cjs/appui-react/cursor/CursorInformation.js +1 -1
- package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js +3 -3
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -2
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/StandardMessageBox.js +3 -0
- package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/cjs/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
- package/lib/cjs/appui-react/dragdrop/ZoneTargets.js +8 -4
- package/lib/cjs/appui-react/dragdrop/ZoneTargets.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +2 -2
- package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.js +4 -2
- package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +1 -0
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.js +32 -13
- package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +16 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +20 -2
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +164 -3
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +3 -0
- package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js +11 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts +12 -9
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.js +19 -21
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts +6 -0
- package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
- package/lib/cjs/appui-react/hooks/useUiVisibility.js +27 -0
- package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -0
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
- package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +3 -2
- package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +81 -68
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
- package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
- package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
- package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
- package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
- package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +1 -1
- package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
- package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.d.ts +1 -2
- package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +15 -9
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
- package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.js +4 -3
- package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.js +2 -1
- package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
- package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
- package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js +2 -2
- package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts +3 -0
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js +24 -9
- package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +9 -9
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.d.ts +7 -4
- package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.js +3 -2
- package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +3 -2
- package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/InputEditorPopup.js +1 -1
- package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +6 -6
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.d.ts +10 -10
- package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js +4 -4
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/popup/PositionPopup.d.ts +5 -3
- package/lib/cjs/appui-react/popup/PositionPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/PositionPopup.js +3 -2
- package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
- package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +1 -1
- package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +4 -3
- package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
- package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
- package/lib/cjs/appui-react/redux/SessionState.d.ts +0 -6
- package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
- package/lib/cjs/appui-react/redux/SessionState.js +0 -8
- package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
- package/lib/cjs/appui-react/redux/StateManager.d.ts +1 -1
- package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +28 -19
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
- package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/ItemDefBase.js +1 -1
- package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
- package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/ToolItemDef.d.ts +1 -1
- package/lib/cjs/appui-react/shared/ToolItemDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/ToolItemDef.js +2 -2
- package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
- package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +2 -2
- package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.js +1 -0
- package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +26 -3
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +26 -6
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
- package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js +2 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +2 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +17 -5
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts +15 -14
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.js +23 -21
- package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.scss +29 -18
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js +2 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +1 -0
- package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -4
- package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +13 -3
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -10
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.js +4 -34
- package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -6
- package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js +1 -25
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +13 -12
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
- package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
- package/lib/cjs/appui-react/syncui/BooleanListener.d.ts.map +1 -1
- package/lib/cjs/appui-react/syncui/BooleanListener.js +2 -1
- package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +30 -103
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ActionButtonItem.js +2 -1
- package/lib/cjs/appui-react/toolbar/ActionButtonItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ActionItemButton.js +2 -1
- package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupButtonItem.js +24 -20
- package/lib/cjs/appui-react/toolbar/GroupButtonItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupItem.js +33 -29
- package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolButton.js +3 -2
- package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -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.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +22 -20
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +4 -4
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
- package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js +2 -2
- package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -36
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +12 -20
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +39 -50
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +7 -4
- package/lib/{esm/appui-react/uisettings → cjs/appui-react/uistate}/AppUiSettings.d.ts +11 -9
- package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
- package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.js +12 -8
- package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -0
- package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
- package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
- package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +62 -0
- package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -0
- package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +20 -0
- package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
- package/lib/cjs/appui-react/uistate/useUiStateStorage.js +38 -0
- package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -0
- package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +5 -5
- package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/utils/UiShowHideManager.js +8 -8
- package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +1 -4
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +98 -8
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +104 -104
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +22 -0
- package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js +56 -0
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -0
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +3 -2
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +0 -2
- package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js +6 -18
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +12 -2
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidget.js +2 -1
- package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +1 -0
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/StableWidgetDef.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/StableWidgetDef.js +1 -1
- package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolSettingsContent.js +2 -1
- package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidget.js +3 -2
- package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +1 -36
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
- package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js +5 -2
- package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +3 -3
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +2 -3
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +18 -7
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +1 -0
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetStack.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetStack.js +2 -0
- package/lib/cjs/appui-react/widgets/WidgetStack.js.map +1 -1
- package/lib/cjs/appui-react/zones/FrameworkZone.js.map +1 -1
- package/lib/cjs/appui-react/zones/StatusBarZone.js.map +1 -1
- package/lib/cjs/appui-react/zones/Zone.d.ts +1 -1
- package/lib/cjs/appui-react/zones/Zone.d.ts.map +1 -1
- package/lib/cjs/appui-react/zones/Zone.js +2 -1
- package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
- package/lib/cjs/appui-react/zones/ZoneDef.d.ts +4 -4
- package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/zones/ZoneDef.js +5 -4
- package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
- package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
- package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js +3 -2
- package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
- package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +16 -18
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +16 -18
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +37 -22
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +52 -37
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.js +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +6 -5
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/esm/appui-react/backstage/Backstage.d.ts +0 -2
- package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +2 -0
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.js +27 -9
- package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
- package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +3 -3
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/backstage/CommandLaunch.d.ts +2 -0
- package/lib/esm/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -0
- package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
- package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
- package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/FrontstageLaunch.js +5 -6
- package/lib/esm/appui-react/backstage/FrontstageLaunch.js.map +1 -1
- package/lib/esm/appui-react/backstage/Separator.d.ts +1 -0
- package/lib/esm/appui-react/backstage/Separator.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/Separator.js +3 -2
- package/lib/esm/appui-react/backstage/Separator.js.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js +4 -5
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/state.d.ts +10 -3
- package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/state.js +15 -2
- package/lib/esm/appui-react/configurableui/state.js.map +1 -1
- package/lib/esm/appui-react/content/ContentControl.d.ts +1 -1
- package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentControl.js +1 -1
- package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -2
- package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +3 -2
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/ContentViewManager.d.ts +1 -1
- package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentViewManager.js +1 -1
- package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.d.ts +13 -1
- package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js +16 -4
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
- package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -0
- package/lib/esm/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +17 -15
- package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -0
- package/lib/esm/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
- package/lib/esm/appui-react/content/ViewStateHelper.d.ts.map +1 -0
- package/lib/esm/appui-react/content/{SavedView.js → ViewStateHelper.js} +2 -2
- package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -0
- package/lib/esm/appui-react/content/split-pane/Pane.d.ts +21 -0
- package/lib/esm/appui-react/content/split-pane/Pane.d.ts.map +1 -0
- package/lib/esm/appui-react/content/split-pane/Pane.js +39 -0
- package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -0
- package/lib/esm/appui-react/content/split-pane/Resizer.d.ts +23 -0
- package/lib/esm/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
- package/lib/esm/appui-react/content/split-pane/Resizer.js +35 -0
- package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -0
- package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +70 -0
- package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
- package/lib/esm/appui-react/content/split-pane/SplitPane.js +239 -0
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -0
- package/lib/esm/appui-react/cursor/CursorInformation.d.ts +1 -2
- package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
- package/lib/esm/appui-react/cursor/CursorInformation.js +2 -2
- package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +2 -2
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/StandardMessageBox.js +3 -0
- package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/esm/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
- package/lib/esm/appui-react/dragdrop/ZoneTargets.js +8 -4
- package/lib/esm/appui-react/dragdrop/ZoneTargets.js.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +2 -2
- package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.js +4 -2
- package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts +1 -0
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.js +32 -13
- package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
- package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.js +16 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +20 -2
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +166 -5
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +3 -0
- package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.js +11 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
- package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts +12 -9
- package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useFrameworkVersion.js +19 -21
- package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
- package/lib/esm/appui-react/hooks/useUiVisibility.d.ts +6 -0
- package/lib/esm/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
- package/lib/esm/appui-react/hooks/useUiVisibility.js +23 -0
- package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -0
- package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
- package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
- package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
- package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
- package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
- package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +3 -2
- package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +83 -70
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +2 -2
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
- package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
- package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
- package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
- package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
- package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +1 -1
- package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
- package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.d.ts +1 -2
- package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +9 -3
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
- package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.js +4 -3
- package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.js +2 -1
- package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
- package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
- package/lib/esm/appui-react/navigationaids/NavigationAidControl.js +1 -1
- package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.d.ts +3 -0
- package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.js +23 -9
- package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +7 -7
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.d.ts +7 -4
- package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.js +3 -2
- package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +3 -2
- package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/InputEditorPopup.js +1 -1
- package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +7 -7
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
- package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePopup.js +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.d.ts +10 -10
- package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js +5 -5
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/popup/PositionPopup.d.ts +5 -3
- package/lib/esm/appui-react/popup/PositionPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/PositionPopup.js +3 -2
- package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
- package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/ToolSettingsPopup.js +1 -1
- package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +4 -3
- package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
- package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
- package/lib/esm/appui-react/redux/SessionState.d.ts +0 -6
- package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
- package/lib/esm/appui-react/redux/SessionState.js +0 -8
- package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
- package/lib/esm/appui-react/redux/StateManager.d.ts +1 -1
- package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +28 -19
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
- package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/ItemDefBase.js +1 -1
- package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
- package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/ToolItemDef.d.ts +1 -1
- package/lib/esm/appui-react/shared/ToolItemDef.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/ToolItemDef.js +2 -2
- package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
- package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +2 -2
- package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.js +1 -0
- package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +26 -3
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +25 -5
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
- package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelHeader.js +2 -1
- package/lib/esm/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +2 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js +17 -5
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.d.ts +15 -14
- package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.js +23 -21
- package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.scss +29 -18
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +1 -0
- package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -4
- package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +13 -3
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -10
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.js +5 -35
- package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -6
- package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js +2 -26
- package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -13
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
- package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
- package/lib/esm/appui-react/syncui/BooleanListener.d.ts.map +1 -1
- package/lib/esm/appui-react/syncui/BooleanListener.js +2 -1
- package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +29 -101
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ActionButtonItem.js +2 -1
- package/lib/esm/appui-react/toolbar/ActionButtonItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ActionItemButton.js +2 -1
- package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupButtonItem.js +24 -20
- package/lib/esm/appui-react/toolbar/GroupButtonItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupItem.js +33 -29
- package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolButton.js +3 -2
- package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -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.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js +22 -20
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +4 -4
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
- package/lib/esm/appui-react/tools/MarkupToolDefinitions.js +2 -2
- package/lib/esm/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +18 -37
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +13 -21
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +40 -51
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +7 -4
- package/lib/{cjs/appui-react/uisettings → esm/appui-react/uistate}/AppUiSettings.d.ts +11 -9
- package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
- package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.js +13 -9
- package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -0
- package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
- package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
- package/lib/esm/appui-react/uistate/UserSettingsStorage.js +58 -0
- package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -0
- package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +20 -0
- package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
- package/lib/esm/appui-react/uistate/useUiStateStorage.js +33 -0
- package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -0
- package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +5 -5
- package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
- package/lib/esm/appui-react/utils/UiShowHideManager.js +9 -9
- package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +1 -4
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +98 -8
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +104 -103
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +22 -0
- package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
- package/lib/esm/appui-react/widgets/BackstageAppButton.js +52 -0
- package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -0
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +2 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +0 -2
- package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.js +4 -15
- package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +11 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidget.js +2 -1
- package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +1 -0
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/StableWidgetDef.d.ts +1 -1
- package/lib/esm/appui-react/widgets/StableWidgetDef.js +1 -1
- package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolSettingsContent.js +2 -1
- package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidget.js +3 -2
- package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +2 -36
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
- package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js +5 -2
- package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +2 -2
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +2 -3
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +18 -7
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +1 -0
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetStack.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetStack.js +2 -0
- package/lib/esm/appui-react/widgets/WidgetStack.js.map +1 -1
- package/lib/esm/appui-react/zones/FrameworkZone.js.map +1 -1
- package/lib/esm/appui-react/zones/StatusBarZone.js.map +1 -1
- package/lib/esm/appui-react/zones/Zone.d.ts +1 -1
- package/lib/esm/appui-react/zones/Zone.d.ts.map +1 -1
- package/lib/esm/appui-react/zones/Zone.js +2 -1
- package/lib/esm/appui-react/zones/Zone.js.map +1 -1
- package/lib/esm/appui-react/zones/ZoneDef.d.ts +4 -4
- package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
- package/lib/esm/appui-react/zones/ZoneDef.js +5 -4
- package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
- package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
- package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
- package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js +2 -1
- package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
- package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
- package/lib/esm/appui-react.d.ts +16 -18
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +16 -18
- package/lib/esm/appui-react.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +9 -2
- package/package.json +45 -53
- package/lib/cjs/appui-react/UserInfo.d.ts +0 -58
- package/lib/cjs/appui-react/UserInfo.d.ts.map +0 -1
- package/lib/cjs/appui-react/UserInfo.js +0 -34
- package/lib/cjs/appui-react/UserInfo.js.map +0 -1
- package/lib/cjs/appui-react/content/SavedView.d.ts.map +0 -1
- package/lib/cjs/appui-react/content/SavedView.js.map +0 -1
- package/lib/cjs/appui-react/content/SavedViewLayout.d.ts.map +0 -1
- package/lib/cjs/appui-react/content/SavedViewLayout.js.map +0 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
- package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js +0 -34
- package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
- package/lib/cjs/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
- package/lib/cjs/appui-react/uisettings/AppUiSettings.js.map +0 -1
- package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
- package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
- package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js +0 -74
- package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
- package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts +0 -21
- package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
- package/lib/cjs/appui-react/uisettings/useUiSettings.js +0 -28
- package/lib/cjs/appui-react/uisettings/useUiSettings.js.map +0 -1
- package/lib/esm/appui-react/UserInfo.d.ts +0 -58
- package/lib/esm/appui-react/UserInfo.d.ts.map +0 -1
- package/lib/esm/appui-react/UserInfo.js +0 -30
- package/lib/esm/appui-react/UserInfo.js.map +0 -1
- package/lib/esm/appui-react/content/SavedView.d.ts.map +0 -1
- package/lib/esm/appui-react/content/SavedView.js.map +0 -1
- package/lib/esm/appui-react/content/SavedViewLayout.d.ts.map +0 -1
- package/lib/esm/appui-react/content/SavedViewLayout.js.map +0 -1
- package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
- package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
- package/lib/esm/appui-react/stagepanels/StagePanelEnums.js +0 -31
- package/lib/esm/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
- package/lib/esm/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
- package/lib/esm/appui-react/uisettings/AppUiSettings.js.map +0 -1
- package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
- package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
- package/lib/esm/appui-react/uisettings/UserSettingsStorage.js +0 -68
- package/lib/esm/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
- package/lib/esm/appui-react/uisettings/useUiSettings.d.ts +0 -21
- package/lib/esm/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
- package/lib/esm/appui-react/uisettings/useUiSettings.js +0 -23
- package/lib/esm/appui-react/uisettings/useUiSettings.js.map +0 -1
|
@@ -51,9 +51,9 @@ class ModelOverrideProvider {
|
|
|
51
51
|
addFeatureOverrides(overrides, _viewport) {
|
|
52
52
|
overrides.setDefaultOverrides(this.defaultAppearance, true);
|
|
53
53
|
// Override with nothing so that we keep the model looking normal and override the default appearance of everything else
|
|
54
|
-
const
|
|
54
|
+
const appearance = FeatureAppearance.fromJSON({});
|
|
55
55
|
this.modelIds.forEach((modelId) => {
|
|
56
|
-
overrides.
|
|
56
|
+
overrides.override({ modelId, appearance, onConflict: "replace" });
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -69,9 +69,9 @@ class SubCategoryOverrideProvider {
|
|
|
69
69
|
addFeatureOverrides(overrides, _viewport) {
|
|
70
70
|
overrides.setDefaultOverrides(this.defaultAppearance, true);
|
|
71
71
|
// Override with nothing so that we keep the category looking normal and override the default appearance of everything else
|
|
72
|
-
const
|
|
73
|
-
this.subCategoryIds.forEach((
|
|
74
|
-
overrides.
|
|
72
|
+
const appearance = FeatureAppearance.fromJSON({});
|
|
73
|
+
this.subCategoryIds.forEach((subCategoryId) => {
|
|
74
|
+
overrides.override({ subCategoryId, appearance, onConflict: "replace" });
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -84,7 +84,7 @@ class SubjectModelIdsCache {
|
|
|
84
84
|
async initSubjectsHierarchy() {
|
|
85
85
|
this._subjectsHierarchy = new Map();
|
|
86
86
|
const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;
|
|
87
|
-
const result = this._imodel.query(ecsql, undefined, 1000);
|
|
87
|
+
const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });
|
|
88
88
|
for await (const row of result) {
|
|
89
89
|
let list = this._subjectsHierarchy.get(row.parentId);
|
|
90
90
|
if (!list) {
|
|
@@ -97,7 +97,7 @@ class SubjectModelIdsCache {
|
|
|
97
97
|
async initSubjectModels() {
|
|
98
98
|
this._subjectModels = new Map();
|
|
99
99
|
const ecsql = `SELECT p.ECInstanceId id, p.Parent.Id subjectId FROM bis.InformationPartitionElement p JOIN bis.Model m ON m.ModeledElement.Id = p.ECInstanceId`;
|
|
100
|
-
const result = this._imodel.query(ecsql, undefined, 1000);
|
|
100
|
+
const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });
|
|
101
101
|
for await (const row of result) {
|
|
102
102
|
let list = this._subjectModels.get(row.subjectId);
|
|
103
103
|
if (!list) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HideIsolateEmphasizeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/HideIsolateEmphasizeManager.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAA0B,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAyB,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAA6C,SAAS,EAA8C,MAAM,sBAAsB,CAAC;AAC3J,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAN,IAAY,0BAWX;AAXD,WAAY,0BAA0B;IACpC,qFAAuD,CAAA;IACvD,iFAAmD,CAAA;IACnD,qFAAuD,CAAA;IACvD,6EAA+C,CAAA;IAC/C,2EAA6C,CAAA;IAC7C,uEAAyC,CAAA;IACzC,+EAAiD,CAAA;IACjD,6FAA+D,CAAA;IAC/D,yEAA2C,CAAA;IAC3C,iFAAmD,CAAA;AACrD,CAAC,EAXW,0BAA0B,KAA1B,0BAA0B,QAWrC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAyC;IACnE,CAAC,0BAA0B,CAAC,yBAAyB,EAAE,sCAAsC,CAAC;IAC9F,CAAC,0BAA0B,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;IAC5F,CAAC,0BAA0B,CAAC,yBAAyB,EAAE,sCAAsC,CAAC;IAC9F,CAAC,0BAA0B,CAAC,qBAAqB,EAAE,sCAAsC,CAAC;IAC1F,CAAC,0BAA0B,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;IACzF,CAAC,0BAA0B,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;IACvF,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,sCAAsC,CAAC;IAC3F,CAAC,0BAA0B,CAAC,6BAA6B,EAAE,sCAAsC,CAAC;IAClG,CAAC,0BAA0B,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;IACxF,CAAC,0BAA0B,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;CAC7F,CAAC,CAAC;AAYH;;GAEG;AACH,uBAAuB;AACvB,MAAM,qBAAqB;IACzB,YAAmB,QAAkB,EAAS,iBAAoC;QAA/D,aAAQ,GAAR,QAAQ,CAAU;QAAS,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAI,CAAC;IAEhF,mBAAmB,CAAC,SAAqC,EAAE,SAAmB;QACnF,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC5D,wHAAwH;QACxH,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE;YACxC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,uBAAuB;AACvB,MAAM,2BAA2B;IAC/B,YAAmB,cAAwB,EAAS,iBAAoC;QAArE,mBAAc,GAAd,cAAc,CAAU;QAAS,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAI,CAAC;IAEtF,mBAAmB,CAAC,SAAqC,EAAE,SAAmB;QACnF,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC5D,2HAA2H;QAC3H,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAU,EAAE,EAAE;YACzC,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,kDAAkD;AAClD,uBAAuB;AACvB,MAAM,oBAAoB;IAMxB,YAAY,MAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,sFAAsF,CAAC;QACrG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,EAAE;gBACT,IAAI,GAAG,EAAE,CAAC;gBACV,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACjD;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACnB;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,iJAAiJ,CAAC;QAChK,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,EAAE;gBACT,IAAI,GAAG,EAAE,CAAC;gBACV,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aAC9C;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACnB;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SACpG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,8BAA8B,CAAC,QAAsB,EAAE,SAAqB;QAClF,MAAM,eAAe,GAAG,IAAI,CAAC,cAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,eAAe;YACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAEpC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,eAAe;YACjB,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,SAAqB;QACnD,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAc,CAAC;QACzC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAgB,iCAAiC;IAGrD,gEAAgE;IACzD,MAAM,KAAK,4BAA4B;QAC5C,OAAO,8CAA8C,CAAC;IACxD,CAAC;;AALa,0DAAwB,GAAG,IAAI,OAAO,EAAgD,CAAC;AA+DvG;;GAEG;AACH,uBAAuB;AACvB,MAAM,OAAO,2BAA4B,SAAQ,iCAAiC;IAShF;;;OAGG;IACI,MAAM,CAAC,2BAA2B,CAAC,gBAAkC;QAC1E,2BAA2B,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACjG,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,mBAAmB,CAAC,SAAiB;QAClD,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEhD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,mBAAmB,EAAG,CAAC,CAAC;QAC1F,OAAO,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,kBAAkB,CAAC,SAAiB;QACjD,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEhD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,mBAAmB,EAAG,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAuB,EAAE,GAAW,EAAE,EAAE;YACtE,IAAI,GAAG,KAAK,SAAS;gBACnB,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,6FAA6F;IACrF,MAAM,CAAC,gBAAgB;QAC7B,OAAO,2BAA2B,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;IACzG,CAAC;IAED,2FAA2F;IACnF,MAAM,CAAC,eAAe;QAC5B,OAAO,2BAA2B,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;IACxG,CAAC;IAED,8EAA8E;IACtE,MAAM,CAAC,aAAa;QAC1B,OAAO,2BAA2B,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC;IACtG,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,oBAAoB,CAAC,EAAY;QAC9C,MAAM,GAAG,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;QAC3G,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,wDAAwD;IAChD,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,gBAAkC,EAAE,WAAqB;QAC9F,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,OAAO;YACT,MAAM,OAAO,CAAC,OAAO,CAAC;QAExB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,MAAM,OAAO,GAAG,gBAAgB,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC5E,IAAI,OAAO;gBACT,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAY;QACxD,MAAM,GAAG,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;QAC3G,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,OAAO;QAET,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,uBAAuB,EAAE,CAAC;QACtF,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpF,EAAE,CAAC,0BAA0B,CAAC,IAAI,2BAA2B,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,SAAiB;QACjD,OAAO,2BAA2B,CAAC,qBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC1F,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAY;QACnD,MAAM,GAAG,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;QAC1G,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,OAAO;QAET,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAY;QACxD,MAAM,GAAG,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;QAC1G,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,OAAO;QAET,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,uBAAuB,EAAE,CAAC;QACtF,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,EAAE,CAAC,0BAA0B,CAAC,IAAI,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACxF,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,iBAAiB,CAAC,EAAY;QAC3C,MAAM,GAAG,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC;QACxG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,OAAO;QAET,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,sBAAsB,CAAC,EAAY;QAChD,MAAM,GAAG,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC;QACxG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,OAAO;QAET,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,uBAAuB,EAAE,CAAC;QACtF,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,EAAE,CAAC,0BAA0B,CAAC,IAAI,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,EAAY;QACxC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,4BAA4B;IAC1G,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,YAAY,CAAC,EAAY;QACrC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,6BAA6B;IACzG,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,cAAc,CAAC,EAAwB;QACnD,IAAI,EAAE,EAAE;YACN,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAY,EAAE,kBAAkB,GAAG,IAAI;QAC3E,IAAI,2BAA2B,CAAC,gBAAgB,EAAE,EAAE;YAClD,MAAM,2BAA2B,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO;SACR;aAAM,IAAI,2BAA2B,CAAC,aAAa,EAAE,EAAE;YACtD,2BAA2B,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO;SACR;aAAM,IAAI,2BAA2B,CAAC,eAAe,EAAE,EAAE;YACxD,MAAM,2BAA2B,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;YAC/D,OAAO;SACR;QAED,MAAM,EAAE,GAAG,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,YAAY,GAAG,kBAAkB,CAAC;QAErC,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,2DAA2D;QACrH,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,6CAA6C;IAC1E,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAY;QACrD,MAAM,GAAG,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;QAC1G,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,OAAO;QAET,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAY;QACnD,MAAM,GAAG,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC;QACxG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,OAAO;QAET,MAAM,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,uBAAuB,CAAC,EAAY;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACpH,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;YACjE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;gBACtB,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAClD,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,MAAwB;QACxE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,IAAI,IAAI,CAAC,KAAK;gBACZ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,MAAwB;QAC5E,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAA4B,CAAC;QACxG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,IAAI,IAAI,CAAC,QAAQ;gBACf,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAY;QAC7C,IAAI,2BAA2B,CAAC,gBAAgB,EAAE,EAAE;YAClD,2BAA2B,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO;SACR;aAAM,IAAI,2BAA2B,CAAC,aAAa,EAAE,EAAE;YACtD,MAAM,2BAA2B,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO;SACR;aAAM,IAAI,2BAA2B,CAAC,eAAe,EAAE,EAAE;YACxD,MAAM,2BAA2B,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO;SACR;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAY;QAC3D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,2BAA2B,CAAC,4BAA4B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAExG,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;YAC3B,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAClH,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;SAC/C;QAED,MAAM,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAY;QAC9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,2BAA2B,CAAC,gCAAgC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAChH,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACvI,EAAE,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QACrD,EAAE,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAY;QAC1C,IAAI,2BAA2B,CAAC,gBAAgB,EAAE,EAAE;YAClD,2BAA2B,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACrD,OAAO;SACR;aAAM,IAAI,2BAA2B,CAAC,aAAa,EAAE,EAAE;YACtD,2BAA2B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO;SACR;aAAM,IAAI,2BAA2B,CAAC,eAAe,EAAE,EAAE;YACxD,MAAM,2BAA2B,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC1D,OAAO;SACR;QACD,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,yBAAyB;IACrG,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAY;QACxD,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,4BAA4B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC3F,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,mBAAmB,CAAC,EAAY;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE;YACP,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,EAAY;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,oBAAoB,CAAC,EAAY;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAY;QAC3D,MAAM,WAAW,GAAG,MAAM,2BAA2B,CAAC,gCAAgC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAClG,EAAE,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,uBAAuB,CAAC,EAAY;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,GAAG,EAAE;YACP,EAAE,CAAC,qBAAqB,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;SAChC;IACH,CAAC;IAED,+DAA+D;IACxD,yBAAyB,CAAC,EAAY;QAC3C,wCAAwC;QACxC,MAAM,yBAAyB,GAAG,EAAE,CAAC,iCAAiC,CAAoB,iBAAiB,CAAC,CAAC;QAC7G,IAAI,SAAS,KAAK,yBAAyB,IAAI,yBAAyB,CAAC,QAAQ;YAC/E,OAAO,IAAI,CAAC;QAEd,MAAM,qBAAqB,GAAG,EAAE,CAAC,iCAAiC,CAAwB,qBAAqB,CAAC,CAAC;QACjH,IAAI,SAAS,KAAK,qBAAqB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClF,OAAO,IAAI,CAAC;QAEd,MAAM,2BAA2B,GAAG,EAAE,CAAC,iCAAiC,CAA8B,2BAA2B,CAAC,CAAC;QACnI,IAAI,SAAS,KAAK,2BAA2B,IAAI,2BAA2B,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YACpG,OAAO,IAAI,CAAC;QAEd,mCAAmC;QACnC,IAAI,2BAA2B,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QAEd,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;QAEd,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;SAEK;IACE,KAAK,CAAC,mCAAmC;QAC9C,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QAET,MAAM,2BAA2B,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAEnE,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAClJ,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QAC/M,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sCAAsC;QACjD,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QAET,MAAM,2BAA2B,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;QAEtE,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,yBAAyB,EAAE,CAAC,CAAC;QACtJ,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,yBAAyB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QACvN,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sBAAsB;QACjC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QACT,2BAA2B,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAEhD,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACpJ,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,uBAAuB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QACnN,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;QAE1G,4DAA4D;QAC5D,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,CAAC,QAAQ;YACpB,SAAS,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gCAAgC;QAC3C,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QAET,MAAM,2BAA2B,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAEhE,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/I,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,kBAAkB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QACzM,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mCAAmC;QAC9C,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QAET,MAAM,2BAA2B,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAEnE,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACnJ,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QACjN,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB;QAC9B,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QAET,2BAA2B,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAE7C,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACjJ,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QAC/M,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;QAE1G,4DAA4D;QAC5D,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,CAAC,QAAQ;YACpB,SAAS,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,wBAAwB;QACnC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QAET,MAAM,2BAA2B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACxD,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,yBAAyB,EAAE,CAAC,CAAC;QACtJ,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,yBAAyB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QACvN,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;QAE1G,4DAA4D;QAC5D,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,CAAC,QAAQ;YACpB,SAAS,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB;QAChC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QACT,2BAA2B,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAE/C,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,6BAA6B,EAAE,CAAC,CAAC;QAC1J,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,6BAA6B,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,8DAA8D;QAC/N,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,0BAA0B;QACrC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QACT,2BAA2B,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAEpD,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAChJ,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,mBAAmB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QAC3M,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,8BAA8B;QACzC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO;QACT,2BAA2B,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAExD,iCAAiC,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACpJ,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,uBAAuB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,8DAA8D;QACnN,qBAAqB,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,sBAAsB,CAAC,EAAY,EAAE,GAAa;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,mBAAmB,CAAC,EAAY,EAAE,GAAa;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,oBAAoB,CAAC,EAAY;QAC7C,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,iBAAiB,CAAC,EAAY;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,qBAAqB,CAAC,EAAY;QAC/C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,kBAAkB,CAAC,EAAY;QAC5C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;;AA/mBD,+EAA+E;AAChE,8CAAkB,GAAG,yBAAyB,CAAC;AAC/C,6CAAiB,GAAG,iBAAiB,CAAC;AACtC,2CAAe,GAAG,uBAAuB,CAAC;AAC1C,iDAAqB,GAAqC,SAAS,CAAC;AACpE,gDAAoB,GAAG,IAAI,GAAG,EAAyB,CAAC;AACxD,6CAAiB,GAAG,IAAI,GAAG,EAAyB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { BeEvent, GuidString, Id64String } from \"@itwin/core-bentley\";\r\nimport { FeatureAppearance, GeometricElementProps } from \"@itwin/core-common\";\r\nimport { EmphasizeElements, FeatureOverrideProvider, FeatureSymbology, IModelApp, IModelConnection, ScreenViewport, Viewport } from \"@itwin/core-frontend\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Supported Hide, Isolate, and Emphasize Actions. These also serve as FeatureTracking Ids.\r\n * @public\r\n */\r\nexport enum HideIsolateEmphasizeAction {\r\n EmphasizeSelectedElements = \"EmphasizeSelectedElements\",\r\n IsolateSelectedElements = \"IsolateSelectedElements\",\r\n IsolateSelectedCategories = \"IsolateSelectedCategories\",\r\n IsolateSelectedModels = \"IsolateSelectedModels\",\r\n HideSelectedElements = \"HideSelectedElements\",\r\n HideSelectedModels = \"HideSelectedModels\",\r\n HideSelectedCategories = \"HideSelectedCategories\",\r\n ClearHiddenIsolatedEmphasized = \"ClearHiddenIsolatedEmphasized\",\r\n ClearOverrideModels = \"ClearOverrideModels\",\r\n ClearOverrideCategories = \"ClearOverrideCategories\",\r\n}\r\n\r\nconst featureIdMap = new Map<HideIsolateEmphasizeAction, GuidString>([\r\n [HideIsolateEmphasizeAction.EmphasizeSelectedElements, \"d74eb93f-deae-4700-8da6-1013a8a7aa26\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedElements, \"24327638-1611-45fa-a379-fa73329098ec\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedCategories, \"e58081ab-2c33-4a15-924f-71082b58ca3b\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedModels, \"3475921e-7dd1-4547-993e-a3e284ef8b62\"],\r\n [HideIsolateEmphasizeAction.HideSelectedElements, \"2ca673ec-001a-4890-bc25-18bc88358fe0\"],\r\n [HideIsolateEmphasizeAction.HideSelectedModels, \"8b41e859-ae17-4e19-b220-87a5cf9f8242\"],\r\n [HideIsolateEmphasizeAction.HideSelectedCategories, \"c5d6916b-e8d7-4796-bae9-a5303712d46b\"],\r\n [HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, \"7b135c8a-3f3c-4297-b36c-b0ac51f1d8de\"],\r\n [HideIsolateEmphasizeAction.ClearOverrideModels, \"6e519b94-edab-4b13-9ce7-0bcdfa27ccfe\"],\r\n [HideIsolateEmphasizeAction.ClearOverrideCategories, \"9d2be3c6-6992-4c30-84eb-10f6b9379d06\"],\r\n]);\r\n\r\n/** Selection Context Action Event Argument\r\n * @public\r\n */\r\nexport interface EmphasizeElementsChangedArgs {\r\n /** viewport where action was performed */\r\n readonly viewport: ScreenViewport;\r\n /** action being performed */\r\n readonly action: HideIsolateEmphasizeAction;\r\n}\r\n\r\n/** Overrides given models to provide emphasize functionality\r\n * @public\r\n */\r\n// istanbul ignore next\r\nclass ModelOverrideProvider implements FeatureOverrideProvider {\r\n constructor(public modelIds: string[], public defaultAppearance: FeatureAppearance) { }\r\n\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _viewport: Viewport): void {\r\n overrides.setDefaultOverrides(this.defaultAppearance, true);\r\n // Override with nothing so that we keep the model looking normal and override the default appearance of everything else\r\n const emptyAppearance = FeatureAppearance.fromJSON({});\r\n this.modelIds.forEach((modelId: string) => {\r\n overrides.overrideModel(modelId, emptyAppearance, true);\r\n });\r\n }\r\n}\r\n\r\n/** Overrides given categories to provide emphasize functionality\r\n * @public\r\n */\r\n// istanbul ignore next\r\nclass SubCategoryOverrideProvider implements FeatureOverrideProvider {\r\n constructor(public subCategoryIds: string[], public defaultAppearance: FeatureAppearance) { }\r\n\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _viewport: Viewport): void {\r\n overrides.setDefaultOverrides(this.defaultAppearance, true);\r\n // Override with nothing so that we keep the category looking normal and override the default appearance of everything else\r\n const emptyAppearance = FeatureAppearance.fromJSON({});\r\n this.subCategoryIds.forEach((id: string) => {\r\n overrides.overrideSubCategory(id, emptyAppearance, true);\r\n });\r\n }\r\n}\r\n\r\n/** Cache of Models that are inside of subjects */\r\n// istanbul ignore next\r\nclass SubjectModelIdsCache {\r\n private _imodel: IModelConnection;\r\n private _subjectsHierarchy: Map<Id64String, Id64String[]> | undefined;\r\n private _subjectModels: Map<Id64String, Id64String[]> | undefined;\r\n private _init: Promise<void> | undefined;\r\n\r\n constructor(imodel: IModelConnection) {\r\n this._imodel = imodel;\r\n }\r\n\r\n private async initSubjectsHierarchy() {\r\n this._subjectsHierarchy = new Map();\r\n const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;\r\n const result = this._imodel.query(ecsql, undefined, 1000);\r\n for await (const row of result) {\r\n let list = this._subjectsHierarchy.get(row.parentId);\r\n if (!list) {\r\n list = [];\r\n this._subjectsHierarchy.set(row.parentId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initSubjectModels() {\r\n this._subjectModels = new Map();\r\n const ecsql = `SELECT p.ECInstanceId id, p.Parent.Id subjectId FROM bis.InformationPartitionElement p JOIN bis.Model m ON m.ModeledElement.Id = p.ECInstanceId`;\r\n const result = this._imodel.query(ecsql, undefined, 1000);\r\n for await (const row of result) {\r\n let list = this._subjectModels.get(row.subjectId);\r\n if (!list) {\r\n list = [];\r\n this._subjectModels.set(row.subjectId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initCache() {\r\n if (!this._init) {\r\n this._init = Promise.all([this.initSubjectModels(), this.initSubjectsHierarchy()]).then(() => { });\r\n }\r\n return this._init;\r\n }\r\n\r\n private appendSubjectModelsRecursively(modelIds: Id64String[], subjectId: Id64String) {\r\n const subjectModelIds = this._subjectModels!.get(subjectId);\r\n if (subjectModelIds)\r\n modelIds.push(...subjectModelIds);\r\n\r\n const childSubjectIds = this._subjectsHierarchy!.get(subjectId);\r\n if (childSubjectIds)\r\n childSubjectIds.forEach((cs) => this.appendSubjectModelsRecursively(modelIds, cs));\r\n }\r\n\r\n public async getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]> {\r\n await this.initCache();\r\n const modelIds = new Array<Id64String>();\r\n this.appendSubjectModelsRecursively(modelIds, subjectId);\r\n return modelIds;\r\n }\r\n}\r\n\r\n/**\r\n * Interface for class that handles Hide, Isolate, and Emphasize Actions\r\n * @public\r\n */\r\nexport abstract class HideIsolateEmphasizeActionHandler {\r\n public static emphasizeElementsChanged = new BeEvent<(args: EmphasizeElementsChangedArgs) => void>();\r\n\r\n /** String Id sent to allow UI to refresh its display state. */\r\n public static get hideIsolateEmphasizeUiSyncId() {\r\n return \"selection-context-emphasize-elements-changed\";\r\n }\r\n\r\n /**\r\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processIsolateSelectedElementsModel(): Promise<void>;\r\n /**\r\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n\r\n public abstract processIsolateSelectedElementsCategory(): Promise<void>;\r\n\r\n /**\r\n * Function run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processIsolateSelected(): Promise<void>;\r\n\r\n /**\r\n * Function run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processHideSelectedElementsModel(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\r\n */\r\n public abstract processHideSelectedElementsCategory(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `HideSelected` tool button is pressed\r\n */\r\n public abstract processHideSelected(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `EmphasizeSelected` tool button is pressed\r\n */\r\n public abstract processEmphasizeSelected(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `ClearEmphasize` tool button is pressed\r\n */\r\n public abstract processClearEmphasize(): Promise<void>;\r\n\r\n /**\r\n * Function that informs called if Hide, Isolate, or Emphasize of elements is active.\r\n */\r\n public abstract areFeatureOverridesActive(vp: Viewport): boolean;\r\n\r\n /**\r\n * Function run when `ClearOverrideCategories` tool button is pressed\r\n */\r\n public abstract processClearOverrideCategories(): Promise<void>;\r\n\r\n /**\r\n * Function run when `ClearOverrideModels` tool button is pressed\r\n */\r\n public abstract processClearOverrideModels(): Promise<void>;\r\n}\r\n\r\n/** Provides helper functions for doing commands on logical selection like categories and subjects.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {\r\n // TODO: We need to check the type by going to backend, not by using classnames\r\n private static _categoryClassName = \"BisCore:SpatialCategory\";\r\n private static _subjectClassName = \"BisCore:Subject\";\r\n private static _modelClassName = \"BisCore:PhysicalModel\";\r\n private static _subjectModelIdsCache: SubjectModelIdsCache | undefined = undefined;\r\n private static _overrideCategoryIds = new Map<Viewport, Set<string>>();\r\n private static _overrideModelIds = new Map<Viewport, Set<string>>();\r\n\r\n /**\r\n * Initialize the subject model cache\r\n * @param iModelConnection iModel to use for querying subject's models\r\n */\r\n public static initializeSubjectModelCache(iModelConnection: IModelConnection) {\r\n HideIsolateEmphasizeManager._subjectModelIdsCache = new SubjectModelIdsCache(iModelConnection);\r\n }\r\n\r\n /**\r\n * Returns true if the selection in presentation layer only has a single selection class and it is the given one\r\n * @param className ECClass name to check for\r\n */\r\n private static _checkClassSelected(className: string) {\r\n if (!UiFramework.getIModelConnection())\r\n throw new Error(\"Undefined iModelConnection\");\r\n\r\n const selection = Presentation.selection.getSelection(UiFramework.getIModelConnection()!);\r\n return selection.size === 1 && selection.instanceKeys.has(className);\r\n }\r\n\r\n /**\r\n * Gets the Ids of all elements selected that have the given class name\r\n * @param className ECClass name to check for\r\n */\r\n private static _getIdsOfClassName(className: string) {\r\n if (!UiFramework.getIModelConnection())\r\n throw new Error(\"Undefined iModelConnection\");\r\n\r\n const selection = Presentation.selection.getSelection(UiFramework.getIModelConnection()!);\r\n const ids: string[] = [];\r\n selection.instanceKeys.forEach((currentIds: Set<string>, key: string) => {\r\n if (key === className)\r\n ids.push(...currentIds);\r\n });\r\n return ids;\r\n }\r\n\r\n /** Returns true if there are only categories selected in presentation's logical selection */\r\n private static categorySelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._categoryClassName);\r\n }\r\n\r\n /** Returns true if there are only subjects selected in presentation's logical selection */\r\n private static subjectSelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._subjectClassName);\r\n }\r\n\r\n /** Returns true if a model is selected in presentation's logical selection */\r\n private static modelSelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._modelClassName);\r\n }\r\n\r\n /**\r\n * Hide the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static hideSelectedCategory(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName);\r\n vp.changeCategoryDisplay(ids, false);\r\n }\r\n\r\n /** Get sub categories that relate to the category Id */\r\n private static async _getSubCategories(iModelConnection: IModelConnection, categoryIds: string[]) {\r\n const allSubcats: string[] = [];\r\n const request = iModelConnection.subcategories.load(categoryIds);\r\n if (request)\r\n await request.promise;\r\n\r\n for (const categoryId of categoryIds) {\r\n const subcats = iModelConnection.subcategories.getSubCategories(categoryId);\r\n if (subcats)\r\n allSubcats.push(...subcats);\r\n }\r\n return allSubcats;\r\n }\r\n\r\n /**\r\n * Emphasize the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n public static async emphasizeSelectedCategory(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n const subcats = await HideIsolateEmphasizeManager._getSubCategories(vp.iModel, ids);\r\n vp.addFeatureOverrideProvider(new SubCategoryOverrideProvider(subcats, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Query the model Id that models a subject\r\n * @param subjectId Subject Id to use in query\r\n */\r\n private static async _getModelIds(subjectId: string): Promise<string[]> {\r\n return HideIsolateEmphasizeManager._subjectModelIdsCache!.getSubjectModelIds(subjectId);\r\n }\r\n\r\n /**\r\n * Hide the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static async hideSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n vp.changeModelDisplay(modelIds, false);\r\n }\r\n\r\n /**\r\n * Isolate the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static async emphasizeSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n vp.addFeatureOverrideProvider(new ModelOverrideProvider(modelIds, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Hide the selected model\r\n * @param vp Viewport to affect\r\n */\r\n private static hideSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n vp.changeModelDisplay(ids, false);\r\n }\r\n\r\n /**\r\n * Isolate the selected model\r\n * @param vp Viewport to affect\r\n */\r\n private static emphasizeSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n vp.addFeatureOverrideProvider(new ModelOverrideProvider(ids, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Isolate the selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static isolateSelected(vp: Viewport) {\r\n EmphasizeElements.getOrCreate(vp).isolateSelectedElements(vp, true, false); // Isolate selected elements\r\n }\r\n\r\n /**\r\n * Hide the selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static hideSelected(vp: Viewport) {\r\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide all selected elements\r\n }\r\n\r\n /**\r\n * Clear Hidden,Isolated, or Emphasized elements in specified view\r\n * @param vp Viewport to affect\r\n *\r\n */\r\n public static clearEmphasize(vp: Viewport | undefined) {\r\n if (vp) {\r\n EmphasizeElements.clear(vp);\r\n }\r\n }\r\n\r\n /**\r\n * Emphasize the selected elements from either presentation layer's logical selection or selected graphics\r\n * @param vp Viewport to affect\r\n * @param emphasisSilhouette defaults to true\r\n */\r\n public static async emphasizeSelected(vp: Viewport, emphasisSilhouette = true) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n await HideIsolateEmphasizeManager.emphasizeSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n HideIsolateEmphasizeManager.emphasizeSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.emphasizeSelectedSubject(vp);\r\n return;\r\n }\r\n\r\n const ee = EmphasizeElements.getOrCreate(vp);\r\n ee.wantEmphasis = emphasisSilhouette;\r\n\r\n ee.emphasizeSelectedElements(vp, undefined, true, false); // Emphasize elements by making all others grey/transparent\r\n vp.isFadeOutActive = true; // Enable flat alpha for greyed out elements…\r\n }\r\n\r\n /**\r\n * Isolate the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n await vp.replaceViewedModels(modelIds);\r\n }\r\n\r\n /**\r\n * Isolate the selected model\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n await vp.replaceViewedModels(ids);\r\n }\r\n\r\n /**\r\n * Isolate the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static isolateSelectedCategory(vp: Viewport) {\r\n const ids = new Set(HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName));\r\n const categoriesToDrop: string[] = [];\r\n vp.view.categorySelector.categories.forEach((categoryId: string) => {\r\n if (!ids.has(categoryId))\r\n categoriesToDrop.push(categoryId);\r\n });\r\n vp.changeCategoryDisplay(categoriesToDrop, false);\r\n vp.changeCategoryDisplay(ids, true);\r\n }\r\n\r\n private static async getSelectionSetElementModels(iModel: IModelConnection) {\r\n const props = await iModel.elements.getProps(iModel.selectionSet.elements);\r\n const modelIds = new Set<string>();\r\n for (const prop of props)\r\n if (prop.model)\r\n modelIds.add(prop.model);\r\n return modelIds;\r\n }\r\n\r\n private static async getSelectionSetElementCategories(iModel: IModelConnection) {\r\n const props = (await iModel.elements.getProps(iModel.selectionSet.elements)) as GeometricElementProps[];\r\n const categoryIds = new Set<string>();\r\n for (const prop of props)\r\n if (prop.category)\r\n categoryIds.add(prop.category);\r\n return categoryIds;\r\n }\r\n\r\n /**\r\n * Isolate either based on Presentation selection, if defined, else the selected graphic elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateCommand(vp: Viewport) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n HideIsolateEmphasizeManager.isolateSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n await HideIsolateEmphasizeManager.isolateSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.isolateSelectedSubject(vp);\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Isolate model from selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedElementsModel(vp: Viewport) {\r\n const modelsToKeep = new Set(await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel));\r\n\r\n if (vp.view.isSpatialView()) {\r\n const modelsToTurnOff = [...vp.view.modelSelector.models].filter((modelId: string) => !modelsToKeep.has(modelId));\r\n this.updateModelOverride(vp, modelsToTurnOff);\r\n }\r\n\r\n await vp.replaceViewedModels(modelsToKeep);\r\n }\r\n\r\n /**\r\n * Isolate the selected category found in SelectionSet elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedElementsCategory(vp: Viewport) {\r\n const categoriesToKeep = new Set(await HideIsolateEmphasizeManager.getSelectionSetElementCategories(vp.iModel));\r\n const categoriesToTurnOff = [...vp.view.categorySelector.categories].filter((categoryId: string) => !categoriesToKeep.has(categoryId));\r\n vp.changeCategoryDisplay(categoriesToTurnOff, false);\r\n vp.changeCategoryDisplay(categoriesToKeep, true);\r\n this.updateCategoryOverride(vp, categoriesToTurnOff);\r\n }\r\n\r\n /**\r\n * Hide either based on Presentation selection, if defined, else the selected graphic elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideCommand(vp: Viewport) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n HideIsolateEmphasizeManager.hideSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n HideIsolateEmphasizeManager.hideSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.hideSelectedSubject(vp);\r\n return;\r\n }\r\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide selected elements\r\n }\r\n\r\n /**\r\n * Hide the models defined by the elements in the current SelectionSet\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideSelectedElementsModel(vp: Viewport) {\r\n const modelIds = await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel);\r\n vp.changeModelDisplay(modelIds, false);\r\n this.updateModelOverride(vp, [...modelIds]);\r\n }\r\n\r\n /**\r\n * Clear (restore) the previously hidden/isolated models hidden by hideSelectedElementsModel\r\n * @param vp Viewport to affect\r\n */\r\n public static clearOverrideModels(vp: Viewport) {\r\n const ids = this._overrideModelIds.get(vp);\r\n if (ids) {\r\n vp.changeModelDisplay([...ids], true);\r\n this.clearModelOverride(vp);\r\n }\r\n }\r\n\r\n /**\r\n * Determine if models are hidden by hideSelectedElementsModel or isolateSelectedElementsModel\r\n * @param vp Viewport to affect\r\n */\r\n public static isOverrideModels(vp: Viewport): boolean {\r\n const ids = this._overrideModelIds.get(vp);\r\n return (ids) ? [...ids].length > 0 : false;\r\n }\r\n\r\n /**\r\n * Determine if categories are hidden by hideSelectedElementsCategory or isolateSelectedElementsCategory\r\n * @param vp Viewport to affect\r\n */\r\n public static isOverrideCategories(vp: Viewport): boolean {\r\n const ids = this._overrideCategoryIds.get(vp);\r\n return (ids) ? [...ids].length > 0 : false;\r\n }\r\n\r\n /**\r\n * Hide the categories defined by the elements in the current SelectionSet\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideSelectedElementsCategory(vp: Viewport) {\r\n const categoryIds = await HideIsolateEmphasizeManager.getSelectionSetElementCategories(vp.iModel);\r\n vp.changeCategoryDisplay(categoryIds, false);\r\n this.updateCategoryOverride(vp, [...categoryIds]);\r\n }\r\n\r\n /**\r\n * Clear (restore) the previously hidden categories hidden by hideSelectedElementsCategory\r\n * @param vp Viewport to affect\r\n */\r\n public static clearOverrideCategories(vp: Viewport) {\r\n const ids = this._overrideCategoryIds.get(vp);\r\n if (ids) {\r\n vp.changeCategoryDisplay([...ids], true);\r\n this.clearCategoryOverride(vp);\r\n }\r\n }\r\n\r\n /** Checks to see if any featureOverrideProviders are active */\r\n public areFeatureOverridesActive(vp: Viewport): boolean {\r\n // Check all the emphasize possibilities\r\n const emphasizeElementsProvider = vp.findFeatureOverrideProviderOfType<EmphasizeElements>(EmphasizeElements);\r\n if (undefined !== emphasizeElementsProvider && emphasizeElementsProvider.isActive)\r\n return true;\r\n\r\n const modelOverrideProvider = vp.findFeatureOverrideProviderOfType<ModelOverrideProvider>(ModelOverrideProvider);\r\n if (undefined !== modelOverrideProvider && modelOverrideProvider.modelIds.length > 0)\r\n return true;\r\n\r\n const subCategoryOverrideProvider = vp.findFeatureOverrideProviderOfType<SubCategoryOverrideProvider>(SubCategoryOverrideProvider);\r\n if (undefined !== subCategoryOverrideProvider && subCategoryOverrideProvider.subCategoryIds.length > 0)\r\n return true;\r\n\r\n // Check hide/isolate possibilities\r\n if (HideIsolateEmphasizeManager.isOverrideCategories(vp))\r\n return true;\r\n\r\n if (HideIsolateEmphasizeManager.isOverrideModels(vp))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n public async processIsolateSelectedElementsModel(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.isolateSelectedElementsModel(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelectedElementsCategory` tool button is pressed\r\n */\r\n public async processIsolateSelectedElementsCategory(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.isolateSelectedElementsCategory(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelected` tool button is pressed\r\n */\r\n public async processIsolateSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.isolateSelected(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public async processHideSelectedElementsModel(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.hideSelectedElementsModel(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\r\n */\r\n public async processHideSelectedElementsCategory(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.hideSelectedElementsCategory(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelected` tool button is pressed\r\n */\r\n public async processHideSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n HideIsolateEmphasizeManager.hideSelected(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `EmphasizeSelected` tool button is pressed\r\n */\r\n public async processEmphasizeSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.emphasizeSelected(vp);\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.EmphasizeSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.EmphasizeSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.EmphasizeSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearEmphasize` tool button is pressed\r\n */\r\n public async processClearEmphasize(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearEmphasize(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, featureIdMap.get(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearOverrideModels` tool button is pressed\r\n */\r\n public async processClearOverrideModels(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearOverrideModels(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearOverrideModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideModels, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearOverrideCategories` tool button is pressed\r\n */\r\n public async processClearOverrideCategories(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearOverrideCategories(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearOverrideCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideCategories, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Add category ids to the category override cache (hidden or isolated categories)\r\n */\r\n public static updateCategoryOverride(vp: Viewport, ids: string[]) {\r\n const prevIds = this._overrideCategoryIds.get(vp);\r\n const newIds = [...(prevIds || []), ...ids];\r\n this._overrideCategoryIds.set(vp, new Set(newIds));\r\n }\r\n\r\n /**\r\n * Add model ids to the model override cache (hidden or isolated models)\r\n */\r\n public static updateModelOverride(vp: Viewport, ids: string[]) {\r\n const prevIds = this._overrideModelIds.get(vp);\r\n const newIds = [...(prevIds || []), ...ids];\r\n this._overrideModelIds.set(vp, new Set(newIds));\r\n }\r\n\r\n /**\r\n * Return the list of category overrides (hidden or isolated categories)\r\n */\r\n public static getCategoryOverrides(vp: Viewport) {\r\n return this._overrideCategoryIds.get(vp);\r\n }\r\n\r\n /**\r\n * Return the list of model overrides (hidden or isolated models)\r\n */\r\n public static getModelOverrides(vp: Viewport) {\r\n return this._overrideModelIds.get(vp);\r\n }\r\n\r\n /**\r\n * Clear the category override cache (hidden or isolated categories)\r\n */\r\n private static clearCategoryOverride(vp: Viewport) {\r\n this._overrideCategoryIds.delete(vp);\r\n }\r\n\r\n /**\r\n * Clear the model override cache (hidden or isolated models)\r\n */\r\n private static clearModelOverride(vp: Viewport) {\r\n this._overrideModelIds.delete(vp);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"HideIsolateEmphasizeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/HideIsolateEmphasizeManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { BeEvent, GuidString, Id64String } from \"@itwin/core-bentley\";\r\nimport { FeatureAppearance, GeometricElementProps } from \"@itwin/core-common\";\r\nimport { EmphasizeElements, FeatureOverrideProvider, FeatureSymbology, IModelApp, IModelConnection, ScreenViewport, Viewport } from \"@itwin/core-frontend\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Supported Hide, Isolate, and Emphasize Actions. These also serve as FeatureTracking Ids.\r\n * @public\r\n */\r\nexport enum HideIsolateEmphasizeAction {\r\n EmphasizeSelectedElements = \"EmphasizeSelectedElements\",\r\n IsolateSelectedElements = \"IsolateSelectedElements\",\r\n IsolateSelectedCategories = \"IsolateSelectedCategories\",\r\n IsolateSelectedModels = \"IsolateSelectedModels\",\r\n HideSelectedElements = \"HideSelectedElements\",\r\n HideSelectedModels = \"HideSelectedModels\",\r\n HideSelectedCategories = \"HideSelectedCategories\",\r\n ClearHiddenIsolatedEmphasized = \"ClearHiddenIsolatedEmphasized\",\r\n ClearOverrideModels = \"ClearOverrideModels\",\r\n ClearOverrideCategories = \"ClearOverrideCategories\",\r\n}\r\n\r\nconst featureIdMap = new Map<HideIsolateEmphasizeAction, GuidString>([\r\n [HideIsolateEmphasizeAction.EmphasizeSelectedElements, \"d74eb93f-deae-4700-8da6-1013a8a7aa26\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedElements, \"24327638-1611-45fa-a379-fa73329098ec\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedCategories, \"e58081ab-2c33-4a15-924f-71082b58ca3b\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedModels, \"3475921e-7dd1-4547-993e-a3e284ef8b62\"],\r\n [HideIsolateEmphasizeAction.HideSelectedElements, \"2ca673ec-001a-4890-bc25-18bc88358fe0\"],\r\n [HideIsolateEmphasizeAction.HideSelectedModels, \"8b41e859-ae17-4e19-b220-87a5cf9f8242\"],\r\n [HideIsolateEmphasizeAction.HideSelectedCategories, \"c5d6916b-e8d7-4796-bae9-a5303712d46b\"],\r\n [HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, \"7b135c8a-3f3c-4297-b36c-b0ac51f1d8de\"],\r\n [HideIsolateEmphasizeAction.ClearOverrideModels, \"6e519b94-edab-4b13-9ce7-0bcdfa27ccfe\"],\r\n [HideIsolateEmphasizeAction.ClearOverrideCategories, \"9d2be3c6-6992-4c30-84eb-10f6b9379d06\"],\r\n]);\r\n\r\n/** Selection Context Action Event Argument\r\n * @public\r\n */\r\nexport interface EmphasizeElementsChangedArgs {\r\n /** viewport where action was performed */\r\n readonly viewport: ScreenViewport;\r\n /** action being performed */\r\n readonly action: HideIsolateEmphasizeAction;\r\n}\r\n\r\n/** Overrides given models to provide emphasize functionality\r\n * @public\r\n */\r\n// istanbul ignore next\r\nclass ModelOverrideProvider implements FeatureOverrideProvider {\r\n constructor(public modelIds: string[], public defaultAppearance: FeatureAppearance) { }\r\n\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _viewport: Viewport): void {\r\n overrides.setDefaultOverrides(this.defaultAppearance, true);\r\n // Override with nothing so that we keep the model looking normal and override the default appearance of everything else\r\n const appearance = FeatureAppearance.fromJSON({});\r\n this.modelIds.forEach((modelId: string) => {\r\n overrides.override({ modelId, appearance, onConflict: \"replace\" });\r\n });\r\n }\r\n}\r\n\r\n/** Overrides given categories to provide emphasize functionality\r\n * @public\r\n */\r\n// istanbul ignore next\r\nclass SubCategoryOverrideProvider implements FeatureOverrideProvider {\r\n constructor(public subCategoryIds: string[], public defaultAppearance: FeatureAppearance) { }\r\n\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _viewport: Viewport): void {\r\n overrides.setDefaultOverrides(this.defaultAppearance, true);\r\n // Override with nothing so that we keep the category looking normal and override the default appearance of everything else\r\n const appearance = FeatureAppearance.fromJSON({});\r\n this.subCategoryIds.forEach((subCategoryId: string) => {\r\n overrides.override({ subCategoryId, appearance, onConflict: \"replace\" });\r\n });\r\n }\r\n}\r\n\r\n/** Cache of Models that are inside of subjects */\r\n// istanbul ignore next\r\nclass SubjectModelIdsCache {\r\n private _imodel: IModelConnection;\r\n private _subjectsHierarchy: Map<Id64String, Id64String[]> | undefined;\r\n private _subjectModels: Map<Id64String, Id64String[]> | undefined;\r\n private _init: Promise<void> | undefined;\r\n\r\n constructor(imodel: IModelConnection) {\r\n this._imodel = imodel;\r\n }\r\n\r\n private async initSubjectsHierarchy() {\r\n this._subjectsHierarchy = new Map();\r\n const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;\r\n const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });\r\n for await (const row of result) {\r\n let list = this._subjectsHierarchy.get(row.parentId);\r\n if (!list) {\r\n list = [];\r\n this._subjectsHierarchy.set(row.parentId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initSubjectModels() {\r\n this._subjectModels = new Map();\r\n const ecsql = `SELECT p.ECInstanceId id, p.Parent.Id subjectId FROM bis.InformationPartitionElement p JOIN bis.Model m ON m.ModeledElement.Id = p.ECInstanceId`;\r\n const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });\r\n for await (const row of result) {\r\n let list = this._subjectModels.get(row.subjectId);\r\n if (!list) {\r\n list = [];\r\n this._subjectModels.set(row.subjectId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initCache() {\r\n if (!this._init) {\r\n this._init = Promise.all([this.initSubjectModels(), this.initSubjectsHierarchy()]).then(() => { });\r\n }\r\n return this._init;\r\n }\r\n\r\n private appendSubjectModelsRecursively(modelIds: Id64String[], subjectId: Id64String) {\r\n const subjectModelIds = this._subjectModels!.get(subjectId);\r\n if (subjectModelIds)\r\n modelIds.push(...subjectModelIds);\r\n\r\n const childSubjectIds = this._subjectsHierarchy!.get(subjectId);\r\n if (childSubjectIds)\r\n childSubjectIds.forEach((cs) => this.appendSubjectModelsRecursively(modelIds, cs));\r\n }\r\n\r\n public async getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]> {\r\n await this.initCache();\r\n const modelIds = new Array<Id64String>();\r\n this.appendSubjectModelsRecursively(modelIds, subjectId);\r\n return modelIds;\r\n }\r\n}\r\n\r\n/**\r\n * Interface for class that handles Hide, Isolate, and Emphasize Actions\r\n * @public\r\n */\r\nexport abstract class HideIsolateEmphasizeActionHandler {\r\n public static emphasizeElementsChanged = new BeEvent<(args: EmphasizeElementsChangedArgs) => void>();\r\n\r\n /** String Id sent to allow UI to refresh its display state. */\r\n public static get hideIsolateEmphasizeUiSyncId() {\r\n return \"selection-context-emphasize-elements-changed\";\r\n }\r\n\r\n /**\r\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processIsolateSelectedElementsModel(): Promise<void>;\r\n /**\r\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n\r\n public abstract processIsolateSelectedElementsCategory(): Promise<void>;\r\n\r\n /**\r\n * Function run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processIsolateSelected(): Promise<void>;\r\n\r\n /**\r\n * Function run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processHideSelectedElementsModel(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\r\n */\r\n public abstract processHideSelectedElementsCategory(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `HideSelected` tool button is pressed\r\n */\r\n public abstract processHideSelected(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `EmphasizeSelected` tool button is pressed\r\n */\r\n public abstract processEmphasizeSelected(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `ClearEmphasize` tool button is pressed\r\n */\r\n public abstract processClearEmphasize(): Promise<void>;\r\n\r\n /**\r\n * Function that informs called if Hide, Isolate, or Emphasize of elements is active.\r\n */\r\n public abstract areFeatureOverridesActive(vp: Viewport): boolean;\r\n\r\n /**\r\n * Function run when `ClearOverrideCategories` tool button is pressed\r\n */\r\n public abstract processClearOverrideCategories(): Promise<void>;\r\n\r\n /**\r\n * Function run when `ClearOverrideModels` tool button is pressed\r\n */\r\n public abstract processClearOverrideModels(): Promise<void>;\r\n}\r\n\r\n/** Provides helper functions for doing commands on logical selection like categories and subjects.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {\r\n // TODO: We need to check the type by going to backend, not by using classnames\r\n private static _categoryClassName = \"BisCore:SpatialCategory\";\r\n private static _subjectClassName = \"BisCore:Subject\";\r\n private static _modelClassName = \"BisCore:PhysicalModel\";\r\n private static _subjectModelIdsCache: SubjectModelIdsCache | undefined = undefined;\r\n private static _overrideCategoryIds = new Map<Viewport, Set<string>>();\r\n private static _overrideModelIds = new Map<Viewport, Set<string>>();\r\n\r\n /**\r\n * Initialize the subject model cache\r\n * @param iModelConnection iModel to use for querying subject's models\r\n */\r\n public static initializeSubjectModelCache(iModelConnection: IModelConnection) {\r\n HideIsolateEmphasizeManager._subjectModelIdsCache = new SubjectModelIdsCache(iModelConnection);\r\n }\r\n\r\n /**\r\n * Returns true if the selection in presentation layer only has a single selection class and it is the given one\r\n * @param className ECClass name to check for\r\n */\r\n private static _checkClassSelected(className: string) {\r\n if (!UiFramework.getIModelConnection())\r\n throw new Error(\"Undefined iModelConnection\");\r\n\r\n const selection = Presentation.selection.getSelection(UiFramework.getIModelConnection()!);\r\n return selection.size === 1 && selection.instanceKeys.has(className);\r\n }\r\n\r\n /**\r\n * Gets the Ids of all elements selected that have the given class name\r\n * @param className ECClass name to check for\r\n */\r\n private static _getIdsOfClassName(className: string) {\r\n if (!UiFramework.getIModelConnection())\r\n throw new Error(\"Undefined iModelConnection\");\r\n\r\n const selection = Presentation.selection.getSelection(UiFramework.getIModelConnection()!);\r\n const ids: string[] = [];\r\n selection.instanceKeys.forEach((currentIds: Set<string>, key: string) => {\r\n if (key === className)\r\n ids.push(...currentIds);\r\n });\r\n return ids;\r\n }\r\n\r\n /** Returns true if there are only categories selected in presentation's logical selection */\r\n private static categorySelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._categoryClassName);\r\n }\r\n\r\n /** Returns true if there are only subjects selected in presentation's logical selection */\r\n private static subjectSelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._subjectClassName);\r\n }\r\n\r\n /** Returns true if a model is selected in presentation's logical selection */\r\n private static modelSelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._modelClassName);\r\n }\r\n\r\n /**\r\n * Hide the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static hideSelectedCategory(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName);\r\n vp.changeCategoryDisplay(ids, false);\r\n }\r\n\r\n /** Get sub categories that relate to the category Id */\r\n private static async _getSubCategories(iModelConnection: IModelConnection, categoryIds: string[]) {\r\n const allSubcats: string[] = [];\r\n const request = iModelConnection.subcategories.load(categoryIds);\r\n if (request)\r\n await request.promise;\r\n\r\n for (const categoryId of categoryIds) {\r\n const subcats = iModelConnection.subcategories.getSubCategories(categoryId);\r\n if (subcats)\r\n allSubcats.push(...subcats);\r\n }\r\n return allSubcats;\r\n }\r\n\r\n /**\r\n * Emphasize the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n public static async emphasizeSelectedCategory(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n const subcats = await HideIsolateEmphasizeManager._getSubCategories(vp.iModel, ids);\r\n vp.addFeatureOverrideProvider(new SubCategoryOverrideProvider(subcats, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Query the model Id that models a subject\r\n * @param subjectId Subject Id to use in query\r\n */\r\n private static async _getModelIds(subjectId: string): Promise<string[]> {\r\n return HideIsolateEmphasizeManager._subjectModelIdsCache!.getSubjectModelIds(subjectId);\r\n }\r\n\r\n /**\r\n * Hide the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static async hideSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n vp.changeModelDisplay(modelIds, false);\r\n }\r\n\r\n /**\r\n * Isolate the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static async emphasizeSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n vp.addFeatureOverrideProvider(new ModelOverrideProvider(modelIds, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Hide the selected model\r\n * @param vp Viewport to affect\r\n */\r\n private static hideSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n vp.changeModelDisplay(ids, false);\r\n }\r\n\r\n /**\r\n * Isolate the selected model\r\n * @param vp Viewport to affect\r\n */\r\n private static emphasizeSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n vp.addFeatureOverrideProvider(new ModelOverrideProvider(ids, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Isolate the selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static isolateSelected(vp: Viewport) {\r\n EmphasizeElements.getOrCreate(vp).isolateSelectedElements(vp, true, false); // Isolate selected elements\r\n }\r\n\r\n /**\r\n * Hide the selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static hideSelected(vp: Viewport) {\r\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide all selected elements\r\n }\r\n\r\n /**\r\n * Clear Hidden,Isolated, or Emphasized elements in specified view\r\n * @param vp Viewport to affect\r\n *\r\n */\r\n public static clearEmphasize(vp: Viewport | undefined) {\r\n if (vp) {\r\n EmphasizeElements.clear(vp);\r\n }\r\n }\r\n\r\n /**\r\n * Emphasize the selected elements from either presentation layer's logical selection or selected graphics\r\n * @param vp Viewport to affect\r\n * @param emphasisSilhouette defaults to true\r\n */\r\n public static async emphasizeSelected(vp: Viewport, emphasisSilhouette = true) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n await HideIsolateEmphasizeManager.emphasizeSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n HideIsolateEmphasizeManager.emphasizeSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.emphasizeSelectedSubject(vp);\r\n return;\r\n }\r\n\r\n const ee = EmphasizeElements.getOrCreate(vp);\r\n ee.wantEmphasis = emphasisSilhouette;\r\n\r\n ee.emphasizeSelectedElements(vp, undefined, true, false); // Emphasize elements by making all others grey/transparent\r\n vp.isFadeOutActive = true; // Enable flat alpha for greyed out elements…\r\n }\r\n\r\n /**\r\n * Isolate the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n await vp.replaceViewedModels(modelIds);\r\n }\r\n\r\n /**\r\n * Isolate the selected model\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n await vp.replaceViewedModels(ids);\r\n }\r\n\r\n /**\r\n * Isolate the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static isolateSelectedCategory(vp: Viewport) {\r\n const ids = new Set(HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName));\r\n const categoriesToDrop: string[] = [];\r\n vp.view.categorySelector.categories.forEach((categoryId: string) => {\r\n if (!ids.has(categoryId))\r\n categoriesToDrop.push(categoryId);\r\n });\r\n vp.changeCategoryDisplay(categoriesToDrop, false);\r\n vp.changeCategoryDisplay(ids, true);\r\n }\r\n\r\n private static async getSelectionSetElementModels(iModel: IModelConnection) {\r\n const props = await iModel.elements.getProps(iModel.selectionSet.elements);\r\n const modelIds = new Set<string>();\r\n for (const prop of props)\r\n if (prop.model)\r\n modelIds.add(prop.model);\r\n return modelIds;\r\n }\r\n\r\n private static async getSelectionSetElementCategories(iModel: IModelConnection) {\r\n const props = (await iModel.elements.getProps(iModel.selectionSet.elements)) as GeometricElementProps[];\r\n const categoryIds = new Set<string>();\r\n for (const prop of props)\r\n if (prop.category)\r\n categoryIds.add(prop.category);\r\n return categoryIds;\r\n }\r\n\r\n /**\r\n * Isolate either based on Presentation selection, if defined, else the selected graphic elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateCommand(vp: Viewport) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n HideIsolateEmphasizeManager.isolateSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n await HideIsolateEmphasizeManager.isolateSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.isolateSelectedSubject(vp);\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Isolate model from selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedElementsModel(vp: Viewport) {\r\n const modelsToKeep = new Set(await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel));\r\n\r\n if (vp.view.isSpatialView()) {\r\n const modelsToTurnOff = [...vp.view.modelSelector.models].filter((modelId: string) => !modelsToKeep.has(modelId));\r\n this.updateModelOverride(vp, modelsToTurnOff);\r\n }\r\n\r\n await vp.replaceViewedModels(modelsToKeep);\r\n }\r\n\r\n /**\r\n * Isolate the selected category found in SelectionSet elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedElementsCategory(vp: Viewport) {\r\n const categoriesToKeep = new Set(await HideIsolateEmphasizeManager.getSelectionSetElementCategories(vp.iModel));\r\n const categoriesToTurnOff = [...vp.view.categorySelector.categories].filter((categoryId: string) => !categoriesToKeep.has(categoryId));\r\n vp.changeCategoryDisplay(categoriesToTurnOff, false);\r\n vp.changeCategoryDisplay(categoriesToKeep, true);\r\n this.updateCategoryOverride(vp, categoriesToTurnOff);\r\n }\r\n\r\n /**\r\n * Hide either based on Presentation selection, if defined, else the selected graphic elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideCommand(vp: Viewport) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n HideIsolateEmphasizeManager.hideSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n HideIsolateEmphasizeManager.hideSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.hideSelectedSubject(vp);\r\n return;\r\n }\r\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide selected elements\r\n }\r\n\r\n /**\r\n * Hide the models defined by the elements in the current SelectionSet\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideSelectedElementsModel(vp: Viewport) {\r\n const modelIds = await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel);\r\n vp.changeModelDisplay(modelIds, false);\r\n this.updateModelOverride(vp, [...modelIds]);\r\n }\r\n\r\n /**\r\n * Clear (restore) the previously hidden/isolated models hidden by hideSelectedElementsModel\r\n * @param vp Viewport to affect\r\n */\r\n public static clearOverrideModels(vp: Viewport) {\r\n const ids = this._overrideModelIds.get(vp);\r\n if (ids) {\r\n vp.changeModelDisplay([...ids], true);\r\n this.clearModelOverride(vp);\r\n }\r\n }\r\n\r\n /**\r\n * Determine if models are hidden by hideSelectedElementsModel or isolateSelectedElementsModel\r\n * @param vp Viewport to affect\r\n */\r\n public static isOverrideModels(vp: Viewport): boolean {\r\n const ids = this._overrideModelIds.get(vp);\r\n return (ids) ? [...ids].length > 0 : false;\r\n }\r\n\r\n /**\r\n * Determine if categories are hidden by hideSelectedElementsCategory or isolateSelectedElementsCategory\r\n * @param vp Viewport to affect\r\n */\r\n public static isOverrideCategories(vp: Viewport): boolean {\r\n const ids = this._overrideCategoryIds.get(vp);\r\n return (ids) ? [...ids].length > 0 : false;\r\n }\r\n\r\n /**\r\n * Hide the categories defined by the elements in the current SelectionSet\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideSelectedElementsCategory(vp: Viewport) {\r\n const categoryIds = await HideIsolateEmphasizeManager.getSelectionSetElementCategories(vp.iModel);\r\n vp.changeCategoryDisplay(categoryIds, false);\r\n this.updateCategoryOverride(vp, [...categoryIds]);\r\n }\r\n\r\n /**\r\n * Clear (restore) the previously hidden categories hidden by hideSelectedElementsCategory\r\n * @param vp Viewport to affect\r\n */\r\n public static clearOverrideCategories(vp: Viewport) {\r\n const ids = this._overrideCategoryIds.get(vp);\r\n if (ids) {\r\n vp.changeCategoryDisplay([...ids], true);\r\n this.clearCategoryOverride(vp);\r\n }\r\n }\r\n\r\n /** Checks to see if any featureOverrideProviders are active */\r\n public areFeatureOverridesActive(vp: Viewport): boolean {\r\n // Check all the emphasize possibilities\r\n const emphasizeElementsProvider = vp.findFeatureOverrideProviderOfType<EmphasizeElements>(EmphasizeElements);\r\n if (undefined !== emphasizeElementsProvider && emphasizeElementsProvider.isActive)\r\n return true;\r\n\r\n const modelOverrideProvider = vp.findFeatureOverrideProviderOfType<ModelOverrideProvider>(ModelOverrideProvider);\r\n if (undefined !== modelOverrideProvider && modelOverrideProvider.modelIds.length > 0)\r\n return true;\r\n\r\n const subCategoryOverrideProvider = vp.findFeatureOverrideProviderOfType<SubCategoryOverrideProvider>(SubCategoryOverrideProvider);\r\n if (undefined !== subCategoryOverrideProvider && subCategoryOverrideProvider.subCategoryIds.length > 0)\r\n return true;\r\n\r\n // Check hide/isolate possibilities\r\n if (HideIsolateEmphasizeManager.isOverrideCategories(vp))\r\n return true;\r\n\r\n if (HideIsolateEmphasizeManager.isOverrideModels(vp))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n public async processIsolateSelectedElementsModel(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.isolateSelectedElementsModel(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelectedElementsCategory` tool button is pressed\r\n */\r\n public async processIsolateSelectedElementsCategory(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.isolateSelectedElementsCategory(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelected` tool button is pressed\r\n */\r\n public async processIsolateSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.isolateSelected(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public async processHideSelectedElementsModel(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.hideSelectedElementsModel(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\r\n */\r\n public async processHideSelectedElementsCategory(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.hideSelectedElementsCategory(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelected` tool button is pressed\r\n */\r\n public async processHideSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n HideIsolateEmphasizeManager.hideSelected(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `EmphasizeSelected` tool button is pressed\r\n */\r\n public async processEmphasizeSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.emphasizeSelected(vp);\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.EmphasizeSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.EmphasizeSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.EmphasizeSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearEmphasize` tool button is pressed\r\n */\r\n public async processClearEmphasize(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearEmphasize(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, featureIdMap.get(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearOverrideModels` tool button is pressed\r\n */\r\n public async processClearOverrideModels(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearOverrideModels(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearOverrideModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideModels, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearOverrideCategories` tool button is pressed\r\n */\r\n public async processClearOverrideCategories(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearOverrideCategories(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearOverrideCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideCategories, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Add category ids to the category override cache (hidden or isolated categories)\r\n */\r\n public static updateCategoryOverride(vp: Viewport, ids: string[]) {\r\n const prevIds = this._overrideCategoryIds.get(vp);\r\n const newIds = [...(prevIds || []), ...ids];\r\n this._overrideCategoryIds.set(vp, new Set(newIds));\r\n }\r\n\r\n /**\r\n * Add model ids to the model override cache (hidden or isolated models)\r\n */\r\n public static updateModelOverride(vp: Viewport, ids: string[]) {\r\n const prevIds = this._overrideModelIds.get(vp);\r\n const newIds = [...(prevIds || []), ...ids];\r\n this._overrideModelIds.set(vp, new Set(newIds));\r\n }\r\n\r\n /**\r\n * Return the list of category overrides (hidden or isolated categories)\r\n */\r\n public static getCategoryOverrides(vp: Viewport) {\r\n return this._overrideCategoryIds.get(vp);\r\n }\r\n\r\n /**\r\n * Return the list of model overrides (hidden or isolated models)\r\n */\r\n public static getModelOverrides(vp: Viewport) {\r\n return this._overrideModelIds.get(vp);\r\n }\r\n\r\n /**\r\n * Clear the category override cache (hidden or isolated categories)\r\n */\r\n private static clearCategoryOverride(vp: Viewport) {\r\n this._overrideCategoryIds.delete(vp);\r\n }\r\n\r\n /**\r\n * Clear the model override cache (hidden or isolated models)\r\n */\r\n private static clearModelOverride(vp: Viewport) {\r\n this._overrideModelIds.delete(vp);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitSystemSelector.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/UnitSystemSelector.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,aAAa,CAAC;IACrC,oBAAoB,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"UnitSystemSelector.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/UnitSystemSelector.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,aAAa,CAAC;IACrC,oBAAoB,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,eA6ChE"}
|
|
@@ -45,6 +45,6 @@ export function UnitSystemSelector(props) {
|
|
|
45
45
|
const unitSystemKey = availableUnitSystems.has(selectedUnitSystemKey) ? selectedUnitSystemKey : displayUnitSystems[0].value;
|
|
46
46
|
return (React.createElement("div", { className: "quantity-unit-system-selector-container" },
|
|
47
47
|
React.createElement("span", { className: "uicore-label" }, label.current),
|
|
48
|
-
React.createElement(Select, { "data-testid": "unitSystemSelector", value: unitSystemKey, options: displayUnitSystems, onChange: handleUnitSystemSelected })));
|
|
48
|
+
React.createElement(Select, { "data-testid": "unitSystemSelector", value: unitSystemKey, options: displayUnitSystems, onChange: handleUnitSystemSelected, size: "small" })));
|
|
49
49
|
}
|
|
50
50
|
//# sourceMappingURL=UnitSystemSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitSystemSelector.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/UnitSystemSelector.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAW5D;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC3F,MAAM,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAC;IACpF,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAuB,EAAE,EAAE;QAC7E,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAkC,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACvG,QAAQ,GAAG,EAAE;YACX,KAAK,UAAU;gBACb,OAAO;oBACL,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,wCAAwC,CAAC;iBACvE,CAAC;YACJ,KAAK,aAAa;gBAChB,OAAO;oBACL,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC;iBACnE,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO;oBACL,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,iCAAiC,CAAC;iBAChE,CAAC;YACJ,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO;oBACL,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;iBAC9D,CAAC;SACL;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAE5H,OAAO,CACL,6BAAK,SAAS,EAAC,yCAAyC;QACtD,8BAAM,SAAS,EAAE,cAAc,IAAG,KAAK,CAAC,OAAO,CAAQ;QACvD,oBAAC,MAAM,mBAAa,oBAAoB,EACtC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"UnitSystemSelector.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/UnitSystemSelector.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAW5D;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC3F,MAAM,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAC;IACpF,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAuB,EAAE,EAAE;QAC7E,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAkC,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACvG,QAAQ,GAAG,EAAE;YACX,KAAK,UAAU;gBACb,OAAO;oBACL,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,wCAAwC,CAAC;iBACvE,CAAC;YACJ,KAAK,aAAa;gBAChB,OAAO;oBACL,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC;iBACnE,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO;oBACL,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,iCAAiC,CAAC;iBAChE,CAAC;YACJ,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO;oBACL,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;iBAC9D,CAAC;SACL;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAE5H,OAAO,CACL,6BAAK,SAAS,EAAC,yCAAyC;QACtD,8BAAM,SAAS,EAAE,cAAc,IAAG,KAAK,CAAC,OAAO,CAAQ;QACvD,oBAAC,MAAM,mBAAa,oBAAoB,EACtC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,wBAAwB,EAC/D,IAAI,EAAC,OAAO,GACZ,CACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { Select, SelectOption } from \"@itwin/itwinui-react\";\r\n\r\n/** Props for [[UnitSystemSelector]]\r\n * @beta\r\n */\r\nexport interface UnitSystemSelectorProps {\r\n selectedUnitSystemKey: UnitSystemKey;\r\n onUnitSystemSelected: (unitSystem: UnitSystemKey) => void;\r\n availableUnitSystems: Set<UnitSystemKey>;\r\n}\r\n\r\n/** Select control to set the \"active\" Presentation Unit System. This setting determine what units are display for quantity values (i.e. foot vs meter).\r\n * @alpha\r\n */\r\nexport function UnitSystemSelector(props: UnitSystemSelectorProps) { // eslint-disable-line @typescript-eslint/naming-convention\r\n const label = React.useRef(UiFramework.translate(\"presentationUnitSystem.selector-label\"));\r\n const { selectedUnitSystemKey, onUnitSystemSelected, availableUnitSystems } = props;\r\n const handleUnitSystemSelected = React.useCallback((newValue: UnitSystemKey) => {\r\n onUnitSystemSelected && onUnitSystemSelected(newValue);\r\n }, [onUnitSystemSelected]);\r\n\r\n const displayUnitSystems: SelectOption<UnitSystemKey>[] = [...availableUnitSystems.values()].map((sys) => {\r\n switch (sys) {\r\n case \"imperial\":\r\n return {\r\n value: \"imperial\",\r\n label: UiFramework.translate(\"presentationUnitSystem.BritishImperial\"),\r\n };\r\n case \"usCustomary\":\r\n return {\r\n value: \"usCustomary\",\r\n label: UiFramework.translate(\"presentationUnitSystem.USCustomary\"),\r\n };\r\n case \"usSurvey\":\r\n return {\r\n value: \"usSurvey\",\r\n label: UiFramework.translate(\"presentationUnitSystem.USSurvey\"),\r\n };\r\n case \"metric\":\r\n default:\r\n return {\r\n value: \"metric\",\r\n label: UiFramework.translate(\"presentationUnitSystem.Metric\"),\r\n };\r\n }\r\n });\r\n\r\n const unitSystemKey = availableUnitSystems.has(selectedUnitSystemKey) ? selectedUnitSystemKey : displayUnitSystems[0].value;\r\n\r\n return (\r\n <div className=\"quantity-unit-system-selector-container\">\r\n <span className={\"uicore-label\"}>{label.current}</span>\r\n <Select data-testid=\"unitSystemSelector\"\r\n value={unitSystemKey}\r\n options={displayUnitSystems} onChange={handleUnitSystemSelected}\r\n size=\"small\"\r\n />\r\n </div>\r\n );\r\n}\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAAE,8BAA8B,EAAE,EAAE;IAAE,8BAA8B,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAAE,8BAA8B,EAAE,EAAE;IAAE,8BAA8B,EAAE,OAAO,CAAA;CAAE,eAmJ7G;AAwBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,8BAA8B,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAS1H"}
|
|
@@ -47,15 +47,18 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
47
47
|
const systemPreferredLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.systemPreferred"));
|
|
48
48
|
const widgetOpacityTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetOpacityTitle"));
|
|
49
49
|
const widgetOpacityDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetOpacityDescription"));
|
|
50
|
+
const widgetIconTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetIconTitle"));
|
|
51
|
+
const widgetIconDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetIconDescription"));
|
|
50
52
|
const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());
|
|
51
53
|
const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);
|
|
52
54
|
const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);
|
|
55
|
+
const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);
|
|
53
56
|
const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());
|
|
54
57
|
const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);
|
|
55
58
|
const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);
|
|
56
59
|
const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);
|
|
57
60
|
React.useEffect(() => {
|
|
58
|
-
const syncIdsOfInterest = ["configurableui:set_theme", "configurableui:set_widget_opacity",
|
|
61
|
+
const syncIdsOfInterest = ["configurableui:set_theme", "configurableui:set_widget_opacity", "configurableui:set-show-widget-icon",
|
|
59
62
|
"configurableui:set-drag-interaction", "configurableui:set-framework-version", SyncUiEventId.ShowHideManagerSettingChange];
|
|
60
63
|
const handleSyncUiEvent = (args) => {
|
|
61
64
|
// istanbul ignore else
|
|
@@ -68,6 +71,8 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
68
71
|
setUiVersion(UiFramework.uiVersion);
|
|
69
72
|
if (UiFramework.useDragInteraction !== useDragInteraction)
|
|
70
73
|
setUseDragInteraction(UiFramework.useDragInteraction);
|
|
74
|
+
if (UiFramework.showWidgetIcon !== showWidgetIcon)
|
|
75
|
+
setShowWidgetIcon(UiFramework.showWidgetIcon);
|
|
71
76
|
if (UiFramework.getWidgetOpacity() !== widgetOpacity)
|
|
72
77
|
setWidgetOpacity(UiFramework.getWidgetOpacity());
|
|
73
78
|
if (UiShowHideManager.autoHideUi !== autoHideUi)
|
|
@@ -79,7 +84,7 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
79
84
|
}
|
|
80
85
|
};
|
|
81
86
|
return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);
|
|
82
|
-
}, [autoHideUi, snapWidgetOpacity, theme, uiVersion, useDragInteraction, useProximityOpacity, widgetOpacity]);
|
|
87
|
+
}, [autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion, useDragInteraction, useProximityOpacity, widgetOpacity]);
|
|
83
88
|
const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };
|
|
84
89
|
const themeOptions = [
|
|
85
90
|
defaultThemeOption,
|
|
@@ -90,14 +95,17 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
90
95
|
UiFramework.setColorTheme(newValue);
|
|
91
96
|
}, []);
|
|
92
97
|
const onAutoHideChange = React.useCallback(async () => {
|
|
93
|
-
UiShowHideManager.autoHideUi = !
|
|
94
|
-
}, []);
|
|
98
|
+
UiShowHideManager.autoHideUi = !autoHideUi;
|
|
99
|
+
}, [autoHideUi]);
|
|
95
100
|
const onUseProximityOpacityChange = React.useCallback(async () => {
|
|
96
|
-
UiShowHideManager.useProximityOpacity = !
|
|
97
|
-
}, []);
|
|
101
|
+
UiShowHideManager.useProximityOpacity = !useProximityOpacity;
|
|
102
|
+
}, [useProximityOpacity]);
|
|
98
103
|
const onSnapWidgetOpacityChange = React.useCallback(async () => {
|
|
99
|
-
UiShowHideManager.snapWidgetOpacity = !
|
|
100
|
-
}, []);
|
|
104
|
+
UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;
|
|
105
|
+
}, [snapWidgetOpacity]);
|
|
106
|
+
const onWidgetIconChange = React.useCallback(async () => {
|
|
107
|
+
UiFramework.setShowWidgetIcon(!showWidgetIcon);
|
|
108
|
+
}, [showWidgetIcon]);
|
|
101
109
|
const onWidgetOpacityChange = React.useCallback(async (values) => {
|
|
102
110
|
// istanbul ignore else
|
|
103
111
|
if (values.length > 0) {
|
|
@@ -105,22 +113,23 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
105
113
|
}
|
|
106
114
|
}, []);
|
|
107
115
|
const onToggleFrameworkVersion = React.useCallback(async () => {
|
|
108
|
-
UiFramework.setUiVersion(
|
|
109
|
-
}, []);
|
|
116
|
+
UiFramework.setUiVersion(uiVersion === "2" ? "1" : "2");
|
|
117
|
+
}, [uiVersion]);
|
|
110
118
|
const onToggleDragInteraction = React.useCallback(async () => {
|
|
111
|
-
UiFramework.setUseDragInteraction(!
|
|
112
|
-
}, []);
|
|
119
|
+
UiFramework.setUseDragInteraction(!useDragInteraction);
|
|
120
|
+
}, [useDragInteraction]);
|
|
113
121
|
const currentTheme = UiFramework.getColorTheme();
|
|
114
122
|
return (React.createElement("div", { className: "uifw-settings" },
|
|
115
123
|
React.createElement(SettingsItem, { title: themeTitle.current, description: themeDescription.current, settingUi: React.createElement("div", { "data-testid": "select-theme-container", className: "select-theme-container" },
|
|
116
|
-
React.createElement(Select, { value: currentTheme, onChange: onThemeChange, options: themeOptions, "data-testid": "select-theme" })) }),
|
|
117
|
-
React.createElement(SettingsItem, { title: autoHideTitle.current, description: autoHideDescription.current, settingUi: React.createElement(ToggleSwitch, { checked:
|
|
124
|
+
React.createElement(Select, { value: currentTheme, onChange: onThemeChange, options: themeOptions, "data-testid": "select-theme", size: "small" })) }),
|
|
125
|
+
React.createElement(SettingsItem, { title: autoHideTitle.current, description: autoHideDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: autoHideUi, onChange: onAutoHideChange }) }),
|
|
118
126
|
allowSettingUiFrameworkVersion && React.createElement(SettingsItem, { title: useNewUiTitle.current, description: useNewUiDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: UiFramework.uiVersion === "2", onChange: onToggleFrameworkVersion }) }),
|
|
119
127
|
UiFramework.uiVersion === "2" && React.createElement(React.Fragment, null,
|
|
120
|
-
React.createElement(SettingsItem, { title: dragInteractionTitle.current, description: dragInteractionDescription.current, settingUi: React.createElement(ToggleSwitch, { checked:
|
|
121
|
-
React.createElement(SettingsItem, { title: useProximityOpacityTitle.current, description: useProximityOpacityDescription.current, settingUi: React.createElement(ToggleSwitch, { checked:
|
|
122
|
-
React.createElement(SettingsItem, { title: snapWidgetOpacityTitle.current, description: snapWidgetOpacityDescription.current, settingUi: React.createElement(ToggleSwitch, { checked:
|
|
123
|
-
|
|
128
|
+
React.createElement(SettingsItem, { title: dragInteractionTitle.current, description: dragInteractionDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: useDragInteraction, onChange: onToggleDragInteraction }) }),
|
|
129
|
+
React.createElement(SettingsItem, { title: useProximityOpacityTitle.current, description: useProximityOpacityDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: useProximityOpacity, onChange: onUseProximityOpacityChange }) }),
|
|
130
|
+
React.createElement(SettingsItem, { title: snapWidgetOpacityTitle.current, description: snapWidgetOpacityDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: snapWidgetOpacity, onChange: onSnapWidgetOpacityChange }) }),
|
|
131
|
+
React.createElement(SettingsItem, { title: widgetIconTitle.current, description: widgetIconDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: showWidgetIcon, onChange: onWidgetIconChange }) })),
|
|
132
|
+
React.createElement(SettingsItem, { title: widgetOpacityTitle.current, description: widgetOpacityDescription.current, settingUi: React.createElement(Slider, { style: { flex: "1" }, values: [widgetOpacity], step: 0.05, onChange: onWidgetOpacityChange, min: 0.20, max: 1.0, maxLabel: "1.0", tickLabels: ["", "", "", "", ""] }) })));
|
|
124
133
|
}
|
|
125
134
|
function SettingsItem(props) {
|
|
126
135
|
const { title, description, settingUi } = props;
|
|
@@ -137,7 +146,7 @@ function SettingsItem(props) {
|
|
|
137
146
|
*/
|
|
138
147
|
export function getUiSettingsManagerEntry(itemPriority, allowSettingUiFrameworkVersion) {
|
|
139
148
|
return {
|
|
140
|
-
itemPriority, tabId: "uifw:
|
|
149
|
+
itemPriority, tabId: "uifw:UiStateStorage",
|
|
141
150
|
label: UiFramework.translate("settings.uiSettingsPage.label"),
|
|
142
151
|
icon: IconSpecUtilities.createSvgIconSpec(widowSettingsIconSvg),
|
|
143
152
|
page: React.createElement(UiSettingsPage, { allowSettingUiFrameworkVersion: !!allowSettingUiFrameworkVersion }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg?sprite\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\r\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\r\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: SyncUiEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoHideUi, snapWidgetOpacity, theme, uiVersion, useDragInteraction, useProximityOpacity, widgetOpacity]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !UiShowHideManager.autoHideUi;\r\n }, []);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !UiShowHideManager.useProximityOpacity;\r\n }, []);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !UiShowHideManager.snapWidgetOpacity;\r\n }, []);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(UiFramework.uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, []);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!UiFramework.useDragInteraction);\r\n }, []);\r\n\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={UiShowHideManager.autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={UiShowHideManager.useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={UiShowHideManager.snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[UiFramework.getWidgetOpacity()]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiSettings\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createSvgIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,yCAAyC;AAEzC,OAAO,oBAAoB,MAAM,yDAAyD,CAAC;AAC3F,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAmB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAgB,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAElF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,8BAA8B,EAA+C;IAC5G,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC7F,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACzG,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACnG,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC/G,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACjH,MAAM,0BAA0B,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAC7H,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAChG,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC5G,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC,CAAC;IACzH,MAAM,8BAA8B,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC,CAAC;IACrI,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC,CAAC;IACrH,MAAM,4BAA4B,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAC,CAAC;IACjI,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACtF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACxF,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAC5G,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAC7G,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC,CAAC;IACzH,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACvG,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAEnH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACzG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7F,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACvF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAClH,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAE5G,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,CAAC,0BAA0B,EAAE,mCAAmC,EAAE,qCAAqC;YAC/H,qCAAqC,EAAE,sCAAsC,EAAE,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAE7H,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAE,EAAE;YAClD,uBAAuB;YACvB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChF,IAAI,WAAW,CAAC,aAAa,EAAE,KAAK,KAAK;oBACvC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;gBACxC,IAAI,iBAAiB,CAAC,UAAU,KAAK,UAAU;oBAC7C,aAAa,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAC9C,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS;oBACrC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,WAAW,CAAC,kBAAkB,KAAK,kBAAkB;oBACvD,qBAAqB,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBACxD,IAAI,WAAW,CAAC,cAAc,KAAK,cAAc;oBAC/C,iBAAiB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAChD,IAAI,WAAW,CAAC,gBAAgB,EAAE,KAAK,aAAa;oBAClD,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACnD,IAAI,iBAAiB,CAAC,UAAU,KAAK,UAAU;oBAC7C,aAAa,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAC9C,IAAI,iBAAiB,CAAC,mBAAmB,KAAK,mBAAmB;oBAC/D,sBAAsB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;gBAChE,IAAI,iBAAiB,CAAC,iBAAiB,KAAK,iBAAiB;oBAC3D,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;aAC7D;QACH,CAAC,CAAC;QACF,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9H,MAAM,kBAAkB,GAAG,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;IACxG,MAAM,YAAY,GAA2B;QAC3C,kBAAkB;QAClB,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE;QACtD,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;KACrD,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC3D,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACpD,iBAAiB,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC;IAC7C,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,2BAA2B,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC/D,iBAAiB,CAAC,mBAAmB,GAAG,CAAC,mBAAmB,CAAC;IAC/D,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC7D,iBAAiB,CAAC,iBAAiB,GAAG,CAAC,iBAAiB,CAAC;IAC3D,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,WAAW,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAyB,EAAE,EAAE;QAClF,uBAAuB;QACvB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACzC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5D,WAAW,CAAC,YAAY,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC3D,WAAW,CAAC,qBAAqB,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;IAEjD,OAAO,CACL,6BAAK,SAAS,EAAC,eAAe;QAC5B,oBAAC,YAAY,IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAC5E,SAAS,EACP,4CAAiB,wBAAwB,EAAC,SAAS,EAAC,wBAAwB;gBAC1E,oBAAC,MAAM,IACL,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,YAAY,iBACT,cAAc,EAC1B,IAAI,EAAC,OAAO,GACZ,CACE,GAER;QACF,oBAAC,YAAY,IAAC,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,CAAC,OAAO,EAClF,SAAS,EAAE,oBAAC,YAAY,IAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,GAAI,GAC5E;QACD,8BAA8B,IAAI,oBAAC,YAAY,IAAC,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,CAAC,OAAO,EACrH,SAAS,EAAE,oBAAC,YAAY,IAAC,OAAO,EAAE,WAAW,CAAC,SAAS,KAAK,GAAG,EAAE,QAAQ,EAAE,wBAAwB,GAAI,GACvG;QACD,WAAW,CAAC,SAAS,KAAK,GAAG,IAAI;YAChC,oBAAC,YAAY,IAAC,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,0BAA0B,CAAC,OAAO,EAChG,SAAS,EAAE,oBAAC,YAAY,IAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB,GAAI,GAC3F;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAE,WAAW,EAAE,8BAA8B,CAAC,OAAO,EACxG,SAAS,EAAE,oBAAC,YAAY,IAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,2BAA2B,GAAI,GAChG;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC,OAAO,EACpG,SAAS,EAAE,oBAAC,YAAY,IAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,yBAAyB,GAAI,GAC5F;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,qBAAqB,CAAC,OAAO,EACtF,SAAS,EAAE,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,GAAI,GAClF,CACD;QAEH,oBAAC,YAAY,IAAC,KAAK,EAAE,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,wBAAwB,CAAC,OAAO,EAC5F,SAAS,EACP,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAChG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAC,KAAK,EAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAE5E,CACE,CACP,CAAC;AACJ,CAAC;AAQD,SAAS,YAAY,CAAC,KAAwB;IAC5C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEhD,OAAO,CACL,6BAAK,SAAS,EAAC,oBAAoB;QACjC,6BAAK,SAAS,EAAC,kBAAkB;YAC/B,8BAAM,SAAS,EAAC,OAAO,IAAE,KAAK,CAAQ;YACtC,8BAAM,SAAS,EAAC,aAAa,IAAE,WAAW,CAAQ,CAC9C;QACN,6BAAK,SAAS,EAAC,mBAAmB,IAC/B,SAAS,CACN,CACF,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAAoB,EAAE,8BAAwC;IACtG,OAAO;QACL,YAAY,EAAE,KAAK,EAAE,qBAAqB;QAC1C,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;QAC7D,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;QAC/D,IAAI,EAAE,oBAAC,cAAc,IAAC,8BAA8B,EAAE,CAAC,CAAC,8BAA8B,GAAI;QAC1F,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,iCAAiC,CAAC;KAClE,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg?sprite\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\r\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\r\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion, useDragInteraction, useProximityOpacity, widgetOpacity]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createSvgIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
|