@itwin/appui-react 4.0.0-dev.10 → 4.0.0-dev.12
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/lib/cjs/appui-react/_variables.scss +4 -5
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +2 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +4 -10
- package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.js +3 -2
- package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.scss +12 -14
- package/lib/cjs/appui-react/accudraw/MenuButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/MenuButton.js +2 -1
- package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.scss +10 -25
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.js +16 -19
- package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +1 -2
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +5 -5
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +44 -13
- package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItem.js +4 -5
- package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemsManager.d.ts +39 -0
- package/lib/cjs/appui-react/backstage/BackstageItemsManager.d.ts.map +1 -0
- package/lib/cjs/appui-react/backstage/BackstageItemsManager.js +130 -0
- package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -0
- package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.d.ts +2 -1
- package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js +2 -6
- package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +1 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -6
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.d.ts +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/configurableui.scss +0 -3
- package/lib/cjs/appui-react/content/ContentLayout.scss +4 -4
- package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +10 -7
- package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts +2 -10
- package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +15 -14
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -3
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js +2 -1
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +1 -1
- package/lib/cjs/appui-react/feedback/ValidationTextbox.d.ts.map +1 -1
- package/lib/cjs/appui-react/feedback/ValidationTextbox.js +2 -1
- package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +3 -6
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +4 -2
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +9 -12
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -2
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +1 -3
- package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts +1 -0
- package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +4 -1
- package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StageUsage.d.ts +9 -8
- package/lib/cjs/appui-react/frontstage/StageUsage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/StageUsage.js +10 -3
- package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +3 -3
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +4 -4
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js +5 -9
- package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.js +8 -7
- package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.scss +8 -8
- package/lib/cjs/appui-react/messages/MessageManager.d.ts +10 -1
- package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +30 -5
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.js +1 -1
- package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.scss +6 -6
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +5 -2
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +1 -21
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +3 -3
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +8 -6
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +2 -2
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +19 -10
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js +4 -3
- package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.scss +5 -5
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +3 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.js +2 -2
- package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +1 -1
- package/lib/cjs/appui-react/popup/PositionPopup.scss +1 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +3 -2
- package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.js +3 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +20 -10
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +2 -2
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +3 -4
- package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
- package/lib/cjs/appui-react/shared/ItemProps.d.ts.map +1 -1
- 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/StagePanelDef.d.ts +27 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts +7 -7
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js +8 -3
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts +5 -7
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.js +6 -3
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Indicator.scss +14 -15
- package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/LabelIndicator.js +2 -3
- package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Separator.scss +1 -3
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -0
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.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/StatusBar.scss +1 -3
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +2 -2
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +34 -35
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +71 -39
- package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItem.js +33 -20
- package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts +5 -14
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js +28 -20
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +40 -0
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts.map +1 -0
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +135 -0
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -0
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts +3 -2
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js +2 -7
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +3 -3
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/ActivityCenter.js +5 -3
- package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js +5 -2
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.scss +3 -4
- package/lib/cjs/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js +2 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -0
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.js +40 -2
- package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js +2 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +5 -4
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +12 -12
- package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js +1 -2
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +2 -3
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +29 -32
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts +6 -10
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +8 -18
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +77 -26
- package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js +22 -11
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts +6 -4
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js +31 -6
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts +46 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +248 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -0
- package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.d.ts +8 -0
- package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.d.ts.map +1 -0
- package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js +26 -0
- package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -0
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts +3 -2
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js +2 -6
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +3 -3
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -7
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +13 -8
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
- package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +3 -1
- package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
- package/lib/cjs/appui-react/tools/OpenSettingsTool.js +3 -1
- package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +4 -2
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +20 -3
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +58 -4
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts +4 -3
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +6 -4
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +9 -65
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +5 -3
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +6 -5
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +4 -3
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +8 -34
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +4 -4
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +4 -3
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -43
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +3 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +10 -17
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +73 -5
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +162 -3
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +21 -3
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/isProviderItem.d.ts +7 -0
- package/lib/cjs/appui-react/ui-items-provider/isProviderItem.d.ts.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js +16 -0
- package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js.map +1 -0
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +2 -3
- package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -1
- package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
- package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -2
- package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
- package/lib/cjs/appui-react/utils/PropsHelper.js +2 -1
- package/lib/cjs/appui-react/utils/PropsHelper.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 +10 -12
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +7 -5
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js +3 -2
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +2 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts +4 -4
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +2 -2
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +4 -4
- package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js +2 -2
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +2 -2
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +4 -4
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +2 -2
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/Widget.d.ts +39 -0
- package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -0
- package/lib/cjs/appui-react/widgets/{WidgetProps.js → Widget.js} +1 -1
- package/lib/cjs/appui-react/widgets/Widget.js.map +1 -0
- package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts +4 -14
- package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetControl.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/WidgetControl.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +7 -5
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +30 -42
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetManager.js +2 -15
- package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetState.d.ts +8 -7
- package/lib/cjs/appui-react/widgets/WidgetState.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetState.js +9 -3
- package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +4 -4
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +4 -4
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/_variables.scss +4 -5
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +2 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +4 -10
- package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.js +3 -2
- package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.scss +12 -14
- package/lib/esm/appui-react/accudraw/MenuButton.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/MenuButton.js +2 -1
- package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
- package/lib/esm/appui-react/accudraw/SquareButton.scss +10 -25
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.js +12 -15
- package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +1 -2
- package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +7 -7
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItem.d.ts +44 -13
- package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItem.js +4 -5
- package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemsManager.d.ts +39 -0
- package/lib/esm/appui-react/backstage/BackstageItemsManager.d.ts.map +1 -0
- package/lib/esm/appui-react/backstage/BackstageItemsManager.js +126 -0
- package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -0
- package/lib/esm/appui-react/backstage/useDefaultBackstageItems.d.ts +2 -1
- package/lib/esm/appui-react/backstage/useDefaultBackstageItems.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js +2 -6
- package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +1 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -6
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiControl.d.ts +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
- package/lib/esm/appui-react/configurableui/configurableui.scss +0 -3
- package/lib/esm/appui-react/content/ContentLayout.scss +4 -4
- package/lib/esm/appui-react/content/DefaultViewOverlay.scss +10 -7
- package/lib/esm/appui-react/content/FloatingViewportContent.d.ts +2 -10
- package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js +15 -14
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -3
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js +3 -2
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +1 -1
- package/lib/esm/appui-react/feedback/ValidationTextbox.d.ts.map +1 -1
- package/lib/esm/appui-react/feedback/ValidationTextbox.js +2 -1
- package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
- package/lib/esm/appui-react/feedback/ValidationTextbox.scss +3 -6
- package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js +5 -3
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +9 -12
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +3 -3
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +1 -3
- package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts +1 -0
- package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/NestedFrontstage.js +4 -1
- package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StageUsage.d.ts +9 -8
- package/lib/esm/appui-react/frontstage/StageUsage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/StageUsage.js +10 -3
- package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +3 -3
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +4 -4
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js +5 -9
- package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +2 -2
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/InputField.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/InputField.js +9 -8
- package/lib/esm/appui-react/messages/InputField.js.map +1 -1
- package/lib/esm/appui-react/messages/InputField.scss +8 -8
- package/lib/esm/appui-react/messages/MessageManager.d.ts +10 -1
- package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +31 -6
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.js +2 -2
- package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.scss +6 -6
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +6 -3
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +1 -21
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +3 -3
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +9 -7
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +2 -2
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +20 -11
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.d.ts +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.js +4 -3
- package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.scss +5 -5
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +4 -2
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.js +3 -3
- package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +1 -1
- package/lib/esm/appui-react/popup/PositionPopup.scss +1 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +3 -2
- package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.js +3 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js +21 -11
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +2 -2
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +3 -4
- package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
- package/lib/esm/appui-react/shared/ItemProps.d.ts.map +1 -1
- 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/StagePanelDef.d.ts +27 -0
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts +7 -7
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.js +8 -3
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts +5 -7
- package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelSection.js +6 -3
- package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Indicator.scss +14 -15
- package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/LabelIndicator.js +2 -3
- package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Separator.scss +1 -3
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -0
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts.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/StatusBar.scss +1 -3
- package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +2 -2
- package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js +17 -18
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +71 -39
- package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.js +32 -18
- package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts +5 -14
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js +28 -19
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +40 -0
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts.map +1 -0
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +131 -0
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -0
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts +3 -2
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js +2 -7
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +3 -3
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/ActivityCenter.js +6 -4
- package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js +5 -2
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.js +4 -1
- package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.scss +3 -4
- package/lib/esm/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.js +2 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -0
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.js +40 -2
- package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js +2 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +6 -5
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +12 -12
- package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js +1 -2
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +2 -3
- package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js +25 -28
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts +6 -10
- package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js +9 -19
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +77 -26
- package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.js +22 -11
- package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts +6 -4
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js +31 -6
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts +46 -0
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -0
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +244 -0
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -0
- package/lib/esm/appui-react/toolbar/toUIAToolbarItem.d.ts +8 -0
- package/lib/esm/appui-react/toolbar/toUIAToolbarItem.d.ts.map +1 -0
- package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js +22 -0
- package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -0
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts +3 -2
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js +2 -6
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +3 -3
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -7
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +13 -8
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
- package/lib/esm/appui-react/tools/KeyinPaletteTools.js +3 -1
- package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
- package/lib/esm/appui-react/tools/OpenSettingsTool.js +3 -1
- package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
- package/lib/esm/appui-react/tools/RestoreLayoutTool.js +4 -2
- package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +20 -3
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +58 -4
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts +4 -3
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +6 -4
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +7 -63
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +5 -3
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +4 -3
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +4 -3
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +6 -32
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +4 -4
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +4 -3
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +5 -41
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +3 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +10 -17
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +73 -5
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +162 -3
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +21 -3
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/isProviderItem.d.ts +7 -0
- package/lib/esm/appui-react/ui-items-provider/isProviderItem.d.ts.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/isProviderItem.js +12 -0
- package/lib/esm/appui-react/ui-items-provider/isProviderItem.js.map +1 -0
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +2 -3
- package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -1
- package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
- package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -2
- package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
- package/lib/esm/appui-react/utils/PropsHelper.js +2 -1
- package/lib/esm/appui-react/utils/PropsHelper.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 +10 -12
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +7 -5
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js +3 -2
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +2 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts +4 -4
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +4 -4
- package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.js +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +2 -2
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +3 -3
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/Widget.d.ts +39 -0
- package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -0
- package/lib/esm/appui-react/widgets/{WidgetProps.js → Widget.js} +1 -1
- package/lib/esm/appui-react/widgets/Widget.js.map +1 -0
- package/lib/esm/appui-react/widgets/WidgetConfig.d.ts +4 -14
- package/lib/esm/appui-react/widgets/WidgetConfig.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetControl.d.ts +1 -1
- package/lib/esm/appui-react/widgets/WidgetControl.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +7 -5
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +22 -34
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetManager.js +2 -15
- package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetState.d.ts +8 -7
- package/lib/esm/appui-react/widgets/WidgetState.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetState.js +9 -3
- package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -1
- package/lib/esm/appui-react.d.ts +4 -4
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +4 -4
- package/lib/esm/appui-react.js.map +1 -1
- package/package.json +28 -46
- package/lib/cjs/appui-react/widgets/WidgetProps.d.ts +0 -12
- package/lib/cjs/appui-react/widgets/WidgetProps.d.ts.map +0 -1
- package/lib/cjs/appui-react/widgets/WidgetProps.js.map +0 -1
- package/lib/esm/appui-react/widgets/WidgetProps.d.ts +0 -12
- package/lib/esm/appui-react/widgets/WidgetProps.d.ts.map +0 -1
- package/lib/esm/appui-react/widgets/WidgetProps.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../../src/appui-react/pickers/ViewSelector.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 Picker\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, ViewState } from \"@itwin/core-frontend\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { SupportsViewSelectorChange } from \"../content/ContentControl\";\r\nimport { connectIModelConnection } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ListItem, ListItemType, ListPicker } from \"./ListPicker\";\r\n\r\n// cSpell:ignore Spatials\r\n\r\n/** [[ViewSelectorChangedEvent]] Args interface.\r\n * @beta\r\n */\r\nexport interface ViewSelectorChangedEventArgs {\r\n iModelConnection: IModelConnection;\r\n viewDefinitionId: Id64String;\r\n viewState: ViewState;\r\n name: string;\r\n}\r\n\r\n/** ViewSelector Changed Event class.\r\n * @beta\r\n */\r\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> { }\r\n\r\n/** Properties for the [[ViewSelector]] component\r\n * @beta\r\n */\r\nexport interface ViewSelectorProps {\r\n imodel?: IModelConnection;\r\n listenForShowUpdates?: boolean;\r\n\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** State for the [[ViewSelector]] component\r\n * @beta\r\n */\r\ninterface ViewSelectorState {\r\n items: ListItem[];\r\n title: string;\r\n initialized: boolean;\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** Default properties of [[ViewSelector]] component.\r\n * @beta\r\n */\r\nexport type ViewSelectorDefaultProps = Pick<ViewSelectorProps, \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\">;\r\n\r\n/** ViewSelector Show Update Event Args interface.\r\n */\r\ninterface ViewSelectorShowUpdateEventArgs {\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** ViewSelector Show Update Event class.\r\n */\r\nclass ViewSelectorShowUpdateEvent extends UiEvent<ViewSelectorShowUpdateEventArgs> { }\r\n\r\n/** View Selector React component\r\n * @beta\r\n */\r\nexport class ViewSelector extends React.Component<ViewSelectorProps, ViewSelectorState> {\r\n\r\n private static readonly _onViewSelectorShowUpdateEvent = new ViewSelectorShowUpdateEvent();\r\n private _removeShowUpdateListener?: () => void;\r\n private _isMounted = false;\r\n\r\n public static readonly defaultProps: ViewSelectorDefaultProps = {\r\n showSpatials: true,\r\n showDrawings: true,\r\n showSheets: true,\r\n showUnknown: true,\r\n };\r\n\r\n /** Gets the [[ViewSelectorChangedEvent]] */\r\n public static readonly onViewSelectorChangedEvent = new ViewSelectorChangedEvent();\r\n\r\n /** Updates the ViewSelector show settings.\r\n */\r\n public static updateShowSettings(showSpatials: boolean, showDrawings: boolean, showSheets: boolean, showUnknown: boolean): void {\r\n ViewSelector._onViewSelectorShowUpdateEvent.emit({ showSpatials, showDrawings, showSheets, showUnknown });\r\n }\r\n\r\n /** Creates a ViewSelector */\r\n constructor(props: ViewSelectorProps) {\r\n super(props);\r\n\r\n this.state = {\r\n items: new Array<ListItem>(),\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: false,\r\n showSpatials: props.showSpatials,\r\n showDrawings: props.showDrawings,\r\n showSheets: props.showSheets,\r\n showUnknown: props.showUnknown,\r\n };\r\n }\r\n\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n if (this.props.listenForShowUpdates)\r\n this._removeShowUpdateListener = ViewSelector._onViewSelectorShowUpdateEvent.addListener(this._handleViewSelectorShowUpdateEvent);\r\n\r\n await this.loadViews();\r\n }\r\n\r\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\r\n if (this.props.imodel !== prevProps.imodel) {\r\n await this.loadViews();\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n // istanbul ignore else\r\n if (this._removeShowUpdateListener)\r\n this._removeShowUpdateListener();\r\n }\r\n\r\n private _handleViewSelectorShowUpdateEvent = (args: ViewSelectorShowUpdateEventArgs): void => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState(args, async () => this.loadViews());\r\n };\r\n\r\n private setStateContainers(views3d: ListItem[], views2d: ListItem[], sheets: ListItem[], unknown?: ListItem[]) {\r\n const views3dContainer: ListItem = {\r\n key: \"views3dContainer\",\r\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views3d,\r\n };\r\n\r\n const views2dContainer: ListItem = {\r\n key: \"views2dContainer\",\r\n name: UiFramework.translate(\"viewTypes.drawings\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views2d,\r\n };\r\n\r\n const sheetContainer: ListItem = {\r\n key: \"sheetContainer\",\r\n name: UiFramework.translate(\"viewTypes.sheets\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: sheets,\r\n };\r\n\r\n const containers = [views3dContainer, views2dContainer, sheetContainer];\r\n\r\n // istanbul ignore if\r\n if (unknown && unknown.length > 0) {\r\n // This should never show, but just in case we missed a type of view state\r\n const unknownContainer: ListItem = {\r\n key: \"unknownContainer\",\r\n name: UiFramework.translate(\"viewTypes.others\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: unknown,\r\n };\r\n\r\n if (unknown.length !== 0)\r\n containers.push(unknownContainer);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState({\r\n items: containers,\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: true,\r\n });\r\n }\r\n /**\r\n * Query the views and set the initial state with the iModel's views.\r\n */\r\n public async loadViews(): Promise<void> {\r\n // Query views and add them to state\r\n const views3d: ListItem[] = [];\r\n const views2d: ListItem[] = [];\r\n const sheets: ListItem[] = [];\r\n const unknown: ListItem[] = [];\r\n\r\n if (this.props.imodel && this.props.imodel.views.getViewList) {\r\n const query = { wantPrivate: false };\r\n const specs = await this.props.imodel.views.getViewList(query);\r\n\r\n specs.forEach((spec: IModelConnection.ViewSpec) => {\r\n const viewItem: ListItem = {\r\n key: spec.id,\r\n name: spec.name,\r\n enabled: false,\r\n type: ListItemType.Item,\r\n };\r\n\r\n const className = ViewUtilities.getBisBaseClass(spec.class);\r\n\r\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\r\n views3d.push(viewItem);\r\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\r\n views2d.push(viewItem);\r\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\r\n sheets.push(viewItem);\r\n else if (this.state.showUnknown)\r\n unknown.push(viewItem);\r\n });\r\n }\r\n\r\n this.setStateContainers(views3d, views2d, sheets, unknown);\r\n }\r\n\r\n /**\r\n * Update state of the entries in the widget.\r\n * @param viewId Identifier for the relevant view\r\n */\r\n // istanbul ignore next\r\n public async updateState(viewId?: any): Promise<void> {\r\n // Wait for initialization finished\r\n if (!this.state.initialized)\r\n return;\r\n\r\n // Query views and add them to state\r\n const views3d: ListItem[] = this.state.items[0].children!;\r\n const views2d: ListItem[] = this.state.items[1].children!;\r\n const sheets: ListItem[] = this.state.items[2].children!;\r\n const unknown: ListItem[] = this.state.items.length > 3 ? this.state.items[3].children! : [];\r\n\r\n const updateChildren = (item: ListItem) => {\r\n if (item.key === viewId)\r\n return { ...item, enabled: true };\r\n else\r\n return { ...item, enabled: false };\r\n };\r\n\r\n this.setStateContainers(views3d.map(updateChildren), views2d.map(updateChildren), sheets.map(updateChildren), unknown.map(updateChildren));\r\n }\r\n\r\n // enable/disable the models\r\n // istanbul ignore next\r\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\r\n const activeContentControl = UiFramework.content.getActiveContentControl() as unknown as SupportsViewSelectorChange;\r\n if (!activeContentControl || !activeContentControl.supportsViewSelectorChange) {\r\n Logger.logError(UiFramework.loggerCategory(this), `No active ContentControl for ViewSelector change`);\r\n return;\r\n }\r\n\r\n // Enable the item temporarily to let user see that their click was registered\r\n // while we query for view state and change the current view which may take a bit\r\n if (_enabled && item.type !== ListItemType.Container) {\r\n // This itemMapper simply looks through all the list items and their nested children and enables the one\r\n // that we have registered to enable\r\n // Also disable all other items\r\n const itemMapper: (tempItem: ListItem) => ListItem = (tempItem: ListItem) => {\r\n if (tempItem.type === ListItemType.Container) {\r\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\r\n } else if (tempItem.key === item.key) {\r\n return { ...tempItem, enabled: true };\r\n } else {\r\n return { ...tempItem, enabled: false };\r\n }\r\n };\r\n\r\n // Create the new array with the current item enabled\r\n const itemsWithEnabled = this.state.items.map(itemMapper);\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n // Update the state so that we show the user it was enabled while we work in the background\r\n this.setState({ items: itemsWithEnabled });\r\n }\r\n\r\n // Load the view state using the viewSpec's ID\r\n const viewState = await this.props.imodel!.views.load(item.key);\r\n\r\n // Let activeContentControl process the ViewSelector change\r\n await activeContentControl.processViewSelectorChange(this.props.imodel!, item.key, viewState, item.name!);\r\n\r\n // Emit a change event\r\n ViewSelector.onViewSelectorChangedEvent.emit({\r\n iModelConnection: this.props.imodel!,\r\n viewDefinitionId: item.key,\r\n viewState,\r\n name: item.name!,\r\n });\r\n\r\n // Set state to show enabled the view that got selected\r\n this.updateState(item.key); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n // Hook on the category selector being expanded so that we may initialize if needed\r\n // istanbul ignore next\r\n private _onExpanded = (expand: boolean) => {\r\n if (expand)\r\n this.updateState(IModelApp.viewManager.selectedView ? IModelApp.viewManager.selectedView.view.id : undefined); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n /**\r\n * Renders ViewSelector component\r\n */\r\n public override render() {\r\n if (!this.state.initialized)\r\n return null;\r\n\r\n const { imodel, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n return (\r\n <ListPicker\r\n {...props}\r\n title={this.state.title}\r\n setEnabled={this._setEnabled}\r\n items={this.state.items}\r\n iconSpec={\"icon-saved-view\"}\r\n onExpanded={this._onExpanded}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @beta\r\n */\r\nexport const IModelConnectedViewSelector = connectIModelConnection(null, null)(ViewSelector); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
|
|
1
|
+
{"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../../src/appui-react/pickers/ViewSelector.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 Picker\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, ViewState } from \"@itwin/core-frontend\";\r\nimport { IconSpecUtilities, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { SupportsViewSelectorChange } from \"../content/ContentControl\";\r\nimport { connectIModelConnection } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ListItem, ListItemType, ListPicker } from \"./ListPicker\";\r\nimport svgSavedView from \"@bentley/icons-generic/icons/saved-view.svg\";\r\n\r\n// cSpell:ignore Spatials\r\n\r\n/** [[ViewSelectorChangedEvent]] Args interface.\r\n * @beta\r\n */\r\nexport interface ViewSelectorChangedEventArgs {\r\n iModelConnection: IModelConnection;\r\n viewDefinitionId: Id64String;\r\n viewState: ViewState;\r\n name: string;\r\n}\r\n\r\n/** ViewSelector Changed Event class.\r\n * @beta\r\n */\r\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> { }\r\n\r\n/** Properties for the [[ViewSelector]] component\r\n * @beta\r\n */\r\nexport interface ViewSelectorProps {\r\n imodel?: IModelConnection;\r\n listenForShowUpdates?: boolean;\r\n\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** State for the [[ViewSelector]] component\r\n * @beta\r\n */\r\ninterface ViewSelectorState {\r\n items: ListItem[];\r\n title: string;\r\n initialized: boolean;\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** Default properties of [[ViewSelector]] component.\r\n * @beta\r\n */\r\nexport type ViewSelectorDefaultProps = Pick<ViewSelectorProps, \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\">;\r\n\r\n/** ViewSelector Show Update Event Args interface.\r\n */\r\ninterface ViewSelectorShowUpdateEventArgs {\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** ViewSelector Show Update Event class.\r\n */\r\nclass ViewSelectorShowUpdateEvent extends UiEvent<ViewSelectorShowUpdateEventArgs> { }\r\n\r\n/** View Selector React component\r\n * @beta\r\n */\r\nexport class ViewSelector extends React.Component<ViewSelectorProps, ViewSelectorState> {\r\n\r\n private static readonly _onViewSelectorShowUpdateEvent = new ViewSelectorShowUpdateEvent();\r\n private _removeShowUpdateListener?: () => void;\r\n private _isMounted = false;\r\n\r\n public static readonly defaultProps: ViewSelectorDefaultProps = {\r\n showSpatials: true,\r\n showDrawings: true,\r\n showSheets: true,\r\n showUnknown: true,\r\n };\r\n\r\n /** Gets the [[ViewSelectorChangedEvent]] */\r\n public static readonly onViewSelectorChangedEvent = new ViewSelectorChangedEvent();\r\n\r\n /** Updates the ViewSelector show settings.\r\n */\r\n public static updateShowSettings(showSpatials: boolean, showDrawings: boolean, showSheets: boolean, showUnknown: boolean): void {\r\n ViewSelector._onViewSelectorShowUpdateEvent.emit({ showSpatials, showDrawings, showSheets, showUnknown });\r\n }\r\n\r\n /** Creates a ViewSelector */\r\n constructor(props: ViewSelectorProps) {\r\n super(props);\r\n\r\n this.state = {\r\n items: new Array<ListItem>(),\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: false,\r\n showSpatials: props.showSpatials,\r\n showDrawings: props.showDrawings,\r\n showSheets: props.showSheets,\r\n showUnknown: props.showUnknown,\r\n };\r\n }\r\n\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n if (this.props.listenForShowUpdates)\r\n this._removeShowUpdateListener = ViewSelector._onViewSelectorShowUpdateEvent.addListener(this._handleViewSelectorShowUpdateEvent);\r\n\r\n await this.loadViews();\r\n }\r\n\r\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\r\n if (this.props.imodel !== prevProps.imodel) {\r\n await this.loadViews();\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n // istanbul ignore else\r\n if (this._removeShowUpdateListener)\r\n this._removeShowUpdateListener();\r\n }\r\n\r\n private _handleViewSelectorShowUpdateEvent = (args: ViewSelectorShowUpdateEventArgs): void => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState(args, async () => this.loadViews());\r\n };\r\n\r\n private setStateContainers(views3d: ListItem[], views2d: ListItem[], sheets: ListItem[], unknown?: ListItem[]) {\r\n const views3dContainer: ListItem = {\r\n key: \"views3dContainer\",\r\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views3d,\r\n };\r\n\r\n const views2dContainer: ListItem = {\r\n key: \"views2dContainer\",\r\n name: UiFramework.translate(\"viewTypes.drawings\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views2d,\r\n };\r\n\r\n const sheetContainer: ListItem = {\r\n key: \"sheetContainer\",\r\n name: UiFramework.translate(\"viewTypes.sheets\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: sheets,\r\n };\r\n\r\n const containers = [views3dContainer, views2dContainer, sheetContainer];\r\n\r\n // istanbul ignore if\r\n if (unknown && unknown.length > 0) {\r\n // This should never show, but just in case we missed a type of view state\r\n const unknownContainer: ListItem = {\r\n key: \"unknownContainer\",\r\n name: UiFramework.translate(\"viewTypes.others\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: unknown,\r\n };\r\n\r\n if (unknown.length !== 0)\r\n containers.push(unknownContainer);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState({\r\n items: containers,\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: true,\r\n });\r\n }\r\n /**\r\n * Query the views and set the initial state with the iModel's views.\r\n */\r\n public async loadViews(): Promise<void> {\r\n // Query views and add them to state\r\n const views3d: ListItem[] = [];\r\n const views2d: ListItem[] = [];\r\n const sheets: ListItem[] = [];\r\n const unknown: ListItem[] = [];\r\n\r\n if (this.props.imodel && this.props.imodel.views.getViewList) {\r\n const query = { wantPrivate: false };\r\n const specs = await this.props.imodel.views.getViewList(query);\r\n\r\n specs.forEach((spec: IModelConnection.ViewSpec) => {\r\n const viewItem: ListItem = {\r\n key: spec.id,\r\n name: spec.name,\r\n enabled: false,\r\n type: ListItemType.Item,\r\n };\r\n\r\n const className = ViewUtilities.getBisBaseClass(spec.class);\r\n\r\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\r\n views3d.push(viewItem);\r\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\r\n views2d.push(viewItem);\r\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\r\n sheets.push(viewItem);\r\n else if (this.state.showUnknown)\r\n unknown.push(viewItem);\r\n });\r\n }\r\n\r\n this.setStateContainers(views3d, views2d, sheets, unknown);\r\n }\r\n\r\n /**\r\n * Update state of the entries in the widget.\r\n * @param viewId Identifier for the relevant view\r\n */\r\n // istanbul ignore next\r\n public async updateState(viewId?: any): Promise<void> {\r\n // Wait for initialization finished\r\n if (!this.state.initialized)\r\n return;\r\n\r\n // Query views and add them to state\r\n const views3d: ListItem[] = this.state.items[0].children!;\r\n const views2d: ListItem[] = this.state.items[1].children!;\r\n const sheets: ListItem[] = this.state.items[2].children!;\r\n const unknown: ListItem[] = this.state.items.length > 3 ? this.state.items[3].children! : [];\r\n\r\n const updateChildren = (item: ListItem) => {\r\n if (item.key === viewId)\r\n return { ...item, enabled: true };\r\n else\r\n return { ...item, enabled: false };\r\n };\r\n\r\n this.setStateContainers(views3d.map(updateChildren), views2d.map(updateChildren), sheets.map(updateChildren), unknown.map(updateChildren));\r\n }\r\n\r\n // enable/disable the models\r\n // istanbul ignore next\r\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\r\n const activeContentControl = UiFramework.content.getActiveContentControl() as unknown as SupportsViewSelectorChange;\r\n if (!activeContentControl || !activeContentControl.supportsViewSelectorChange) {\r\n Logger.logError(UiFramework.loggerCategory(this), `No active ContentControl for ViewSelector change`);\r\n return;\r\n }\r\n\r\n // Enable the item temporarily to let user see that their click was registered\r\n // while we query for view state and change the current view which may take a bit\r\n if (_enabled && item.type !== ListItemType.Container) {\r\n // This itemMapper simply looks through all the list items and their nested children and enables the one\r\n // that we have registered to enable\r\n // Also disable all other items\r\n const itemMapper: (tempItem: ListItem) => ListItem = (tempItem: ListItem) => {\r\n if (tempItem.type === ListItemType.Container) {\r\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\r\n } else if (tempItem.key === item.key) {\r\n return { ...tempItem, enabled: true };\r\n } else {\r\n return { ...tempItem, enabled: false };\r\n }\r\n };\r\n\r\n // Create the new array with the current item enabled\r\n const itemsWithEnabled = this.state.items.map(itemMapper);\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n // Update the state so that we show the user it was enabled while we work in the background\r\n this.setState({ items: itemsWithEnabled });\r\n }\r\n\r\n // Load the view state using the viewSpec's ID\r\n const viewState = await this.props.imodel!.views.load(item.key);\r\n\r\n // Let activeContentControl process the ViewSelector change\r\n await activeContentControl.processViewSelectorChange(this.props.imodel!, item.key, viewState, item.name!);\r\n\r\n // Emit a change event\r\n ViewSelector.onViewSelectorChangedEvent.emit({\r\n iModelConnection: this.props.imodel!,\r\n viewDefinitionId: item.key,\r\n viewState,\r\n name: item.name!,\r\n });\r\n\r\n // Set state to show enabled the view that got selected\r\n this.updateState(item.key); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n // Hook on the category selector being expanded so that we may initialize if needed\r\n // istanbul ignore next\r\n private _onExpanded = (expand: boolean) => {\r\n if (expand)\r\n this.updateState(IModelApp.viewManager.selectedView ? IModelApp.viewManager.selectedView.view.id : undefined); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n /**\r\n * Renders ViewSelector component\r\n */\r\n public override render() {\r\n if (!this.state.initialized)\r\n return null;\r\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(svgSavedView);\r\n\r\n const { imodel, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n return (\r\n <ListPicker\r\n {...props}\r\n title={this.state.title}\r\n setEnabled={this._setEnabled}\r\n items={this.state.items}\r\n iconSpec={iconSpec}\r\n onExpanded={this._onExpanded}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @beta\r\n */\r\nexport const IModelConnectedViewSelector = connectIModelConnection(null, null)(ViewSelector); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
|
|
@@ -66,11 +66,11 @@ function Card(props) {
|
|
|
66
66
|
// istanbul ignore else
|
|
67
67
|
if (props.title) {
|
|
68
68
|
if (typeof props.title === "string")
|
|
69
|
-
titleNode = React.createElement(itwinui_react_1.
|
|
69
|
+
titleNode = React.createElement(itwinui_react_1.Text, { variant: "leading" }, props.title);
|
|
70
70
|
else {
|
|
71
71
|
const propertyValueRendererManager = components_react_1.PropertyValueRendererManager.defaultManager;
|
|
72
72
|
const titleValue = propertyValueRendererManager.render(props.title);
|
|
73
|
-
titleNode = React.createElement(itwinui_react_1.
|
|
73
|
+
titleNode = React.createElement(itwinui_react_1.Text, { variant: "leading" }, titleValue);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
const content = (0, PopupManager_1.isReactContent)(props.content) ? props.content.reactNode : React.createElement(MessageSpan_1.MessageDiv, { message: props.content });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4BAA0B;AAC1B,+BAA+B;AAC/B,2CAAoC;AACpC,0DAA0I;AAC1I,kDAAwG;AACxG,
|
|
1
|
+
{"version":3,"file":"CardPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/CardPopup.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 Popup\r\n */\r\n\r\nimport \"./CardPopup.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { CommonToolbarItem, OnCancelFunc, OnItemExecutedFunc, PropertyRecord, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Text } from \"@itwin/itwinui-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { isReactContent, PopupContentType, PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { MessageDiv } from \"../messages/MessageSpan\";\r\nimport { Direction, PropertyValueRendererManager, ToolbarOpacitySetting, ToolbarPanelAlignment, ToolbarWithOverflow } from \"@itwin/components-react\";\r\n\r\n/** Props for defining a CardPopup editor\r\n * @beta */\r\nexport interface CardPopupProps extends PopupPropsBase {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface CardPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Input Editor\r\n * @beta\r\n */\r\nexport class CardPopup extends React.PureComponent<CardPopupProps, CardPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className={classnames(\"uifw-no-border\", \"uifw-card\")}\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Card content={this.props.content} title={this.props.title} items={this.props.items}\r\n onItemExecuted={this.props.onItemExecuted} />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n\r\n/** Props defining a Card component\r\n * @beta */\r\nexport interface CardProps {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** Card component\r\n * @beta */\r\nexport function Card(props: CardProps) {\r\n let titleNode: React.ReactNode;\r\n // istanbul ignore else\r\n if (props.title) {\r\n if (typeof props.title === \"string\")\r\n titleNode = <Text variant=\"leading\">{props.title}</Text>;\r\n else {\r\n const propertyValueRendererManager = PropertyValueRendererManager.defaultManager;\r\n const titleValue = propertyValueRendererManager.render(props.title);\r\n titleNode = <Text variant=\"leading\">{titleValue}</Text>;\r\n }\r\n }\r\n\r\n const content = isReactContent(props.content) ? props.content.reactNode : <MessageDiv message={props.content} />;\r\n\r\n return (\r\n <>\r\n <div className=\"uifw-card-content\">\r\n {props.title &&\r\n <>\r\n {titleNode}\r\n <div className=\"uifw-card-gap\" />\r\n </>\r\n }\r\n {content}\r\n </div>\r\n {props.items &&\r\n <>\r\n <div className=\"uifw-card-separator\" />\r\n <ToolbarWithOverflow\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={props.items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Transparent}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n </>\r\n }\r\n </>\r\n );\r\n}\r\n"]}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
width: $uifw-popup-border-width;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
background-color:
|
|
15
|
+
background-color: hsl(var(--iui-color-background-hsl) / $uifw-popup-opacity);
|
|
16
16
|
position: fixed;
|
|
17
17
|
height: fit-content;
|
|
18
18
|
width: fit-content;
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
* @module Popup
|
|
3
3
|
*/
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import {
|
|
5
|
+
import { OnCancelFunc, OnItemExecutedFunc, RelativePosition } from "@itwin/appui-abstract";
|
|
6
6
|
import { Orientation, Size } from "@itwin/core-react";
|
|
7
7
|
import { PopupPropsBase } from "./PopupManager";
|
|
8
|
+
import { ToolbarItem } from "../toolbar/ToolbarItem";
|
|
8
9
|
/** Props for a popup toolbar
|
|
9
10
|
* @beta */
|
|
10
11
|
export interface ToolbarPopupProps extends PopupPropsBase {
|
|
11
|
-
items:
|
|
12
|
+
items: ToolbarItem[];
|
|
12
13
|
relativePosition: RelativePosition;
|
|
13
14
|
orientation: Orientation;
|
|
14
15
|
onCancel: OnCancelFunc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarPopup.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ToolbarPopup.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAc,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAkC,WAAW,EAAS,IAAI,EAAa,MAAM,mBAAmB,CAAC;AAGxG,OAAO,EAAgB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD;WACW;AACX,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACzF,gBAAgB;IAChB,SAAyB,KAAK;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,OAAO;IAOC,MAAM;CA0BvB"}
|
|
@@ -15,6 +15,7 @@ const components_react_1 = require("@itwin/components-react");
|
|
|
15
15
|
const CursorPopup_1 = require("../cursor/cursorpopup/CursorPopup");
|
|
16
16
|
const PopupManager_1 = require("./PopupManager");
|
|
17
17
|
const PositionPopup_1 = require("./PositionPopup");
|
|
18
|
+
const toUIAToolbarItem_1 = require("../toolbar/toUIAToolbarItem");
|
|
18
19
|
/** Popup component for Toolbar
|
|
19
20
|
* @beta
|
|
20
21
|
*/
|
|
@@ -48,10 +49,11 @@ class ToolbarPopup extends React.PureComponent {
|
|
|
48
49
|
let point = PopupManager_1.PopupManager.getPopupPosition(this.props.el, this.props.pt, new core_react_1.Point(), this.state.size);
|
|
49
50
|
const popupRect = CursorPopup_1.CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);
|
|
50
51
|
point = new core_react_1.Point(popupRect.left, popupRect.top);
|
|
52
|
+
const items = this.props.items.map((item) => (0, toUIAToolbarItem_1.toUIAToolbarItem)(item));
|
|
51
53
|
return (React.createElement(PositionPopup_1.PositionPopup, { key: this.props.id, className: "uifw-no-border", point: point, onSizeKnown: this._onSizeKnown },
|
|
52
54
|
React.createElement(core_react_1.DivWithOutsideClick, { onOutsideClick: this.props.onCancel, onKeyDown: this._handleKeyDown },
|
|
53
55
|
React.createElement(core_react_1.FocusTrap, { active: true, returnFocusOnDeactivate: true },
|
|
54
|
-
React.createElement(components_react_1.Toolbar, { expandsTo: components_react_1.Direction.Bottom, panelAlignment: components_react_1.ToolbarPanelAlignment.Start, items:
|
|
56
|
+
React.createElement(components_react_1.Toolbar, { expandsTo: components_react_1.Direction.Bottom, panelAlignment: components_react_1.ToolbarPanelAlignment.Start, items: items, useDragInteraction: true, toolbarOpacitySetting: components_react_1.ToolbarOpacitySetting.Defaults, onItemExecuted: this.props.onItemExecuted })))));
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
exports.ToolbarPopup = ToolbarPopup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"ToolbarPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAAuG;AACvG,kDAAwG;AACxG,8DAA2G;AAC3G,mEAAgE;AAChE,iDAA8D;AAC9D,mDAAgD;AAEhD,kEAA+D;AAiB/D;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK,CAAC,aAAmD;IAA3F;;QACE,gBAAgB;QACS,UAAK,GAAG;YAC/B,IAAI,EAAE,IAAI,iBAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB,CAAC;QAEM,iBAAY,GAAG,CAAC,OAAkB,EAAE,EAAE;YAC5C,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,KAA0C,EAAQ,EAAE;YAC5E,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,2BAAU,CAAC,MAAM;oBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM;aACT;QACH,CAAC,CAAC;IAmCJ,CAAC;IAjCS,OAAO;QACb,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC;IAEe,MAAM;QACpB,IAAI,KAAK,GAAG,2BAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,kBAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,yBAAW,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnH,KAAK,GAAG,IAAI,kBAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,CACL,oBAAC,6BAAa,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAC/B,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,IAAI,CAAC,YAAY;YAE9B,oBAAC,gCAAmB,IAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc;gBACtF,oBAAC,sBAAS,IAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI;oBACpD,oBAAC,0BAAO,IACN,SAAS,EAAE,4BAAS,CAAC,MAAM,EAC3B,cAAc,EAAE,wCAAqB,CAAC,KAAK,EAC3C,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,IAAI,EACxB,qBAAqB,EAAE,wCAAqB,CAAC,QAAQ,EACrD,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GACzC,CACQ,CACQ,CACR,CACjB,CAAC;IACJ,CAAC;CACF;AArDD,oCAqDC","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 Popup\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { OnCancelFunc, OnItemExecutedFunc, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Direction, Toolbar, ToolbarOpacitySetting, ToolbarPanelAlignment } from \"@itwin/components-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { ToolbarItem } from \"../toolbar/ToolbarItem\";\r\nimport { toUIAToolbarItem } from \"../toolbar/toUIAToolbarItem\";\r\n\r\n/** Props for a popup toolbar\r\n * @beta */\r\nexport interface ToolbarPopupProps extends PopupPropsBase {\r\n items: ToolbarItem[];\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface ToolbarPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Toolbar\r\n * @beta\r\n */\r\nexport class ToolbarPopup extends React.PureComponent<ToolbarPopupProps, ToolbarPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n const items = this.props.items.map((item) => toUIAToolbarItem(item));\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className=\"uifw-no-border\"\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Toolbar\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Defaults}\r\n onItemExecuted={this.props.onItemExecuted}\r\n />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAqB,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAcpD;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAEzD;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAY7C;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAOrD;AAED;;GAEG;AACH,wBAAgB,mCAAmC,IAAI,uBAAuB,CAE7E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CAEzE;AAED;;GAEG;AAEH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CAS7F;AAED;;GAEG;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CAWvF;AAED;;GAEG;AAEH,qBAAa,+BAA+B;IAE1C,WAAkB,+BAA+B,mBAOhD;IAED,WAAkB,mCAAmC,mBAOpD;IAED,WAAkB,sBAAsB,mBAQvC;IAED,WAAkB,yBAAyB,iBAS1C;IAED,WAAkB,4BAA4B,mBAO7C;IAED,WAAkB,gCAAgC,mBAOjD;IAED,WAAkB,mBAAmB,mBAQpC;IAED,WAAkB,oBAAoB,iBASrC;IAED,WAAkB,wBAAwB,mBAQzC;IAED,WAAkB,wCAAwC,mBAYzD;CAEF"}
|
|
@@ -15,6 +15,16 @@ const SyncUiEventDispatcher_1 = require("../syncui/SyncUiEventDispatcher");
|
|
|
15
15
|
const GroupItem_1 = require("../toolbar/GroupItem");
|
|
16
16
|
const UiFramework_1 = require("../UiFramework");
|
|
17
17
|
const HideIsolateEmphasizeManager_1 = require("./HideIsolateEmphasizeManager");
|
|
18
|
+
const model_isolate_svg_1 = require("@bentley/icons-generic/icons/model-isolate.svg");
|
|
19
|
+
const layers_isolate_svg_1 = require("@bentley/icons-generic/icons/layers-isolate.svg");
|
|
20
|
+
const asset_isolate_svg_1 = require("@bentley/icons-generic/icons/asset-isolate.svg");
|
|
21
|
+
const isolate_svg_1 = require("@bentley/icons-generic/icons/isolate.svg");
|
|
22
|
+
const model_hide_svg_1 = require("@bentley/icons-generic/icons/model-hide.svg");
|
|
23
|
+
const layers_hide_svg_1 = require("@bentley/icons-generic/icons/layers-hide.svg");
|
|
24
|
+
const asset_classification_hide_svg_1 = require("@bentley/icons-generic/icons/asset-classification-hide.svg");
|
|
25
|
+
const visibility_semi_transparent_svg_1 = require("@bentley/icons-generic/icons/visibility-semi-transparent.svg");
|
|
26
|
+
const visibility_hide_2_svg_1 = require("@bentley/icons-generic/icons/visibility-hide_2.svg");
|
|
27
|
+
const visibility_svg_1 = require("@bentley/icons-generic/icons/visibility.svg");
|
|
18
28
|
/** return SyncEventIds that trigger selection state function refresh.
|
|
19
29
|
* @beta
|
|
20
30
|
*/
|
|
@@ -106,7 +116,7 @@ class SelectionContextToolDefinitions {
|
|
|
106
116
|
static get isolateModelsInSelectionItemDef() {
|
|
107
117
|
return new CommandItemDef_1.CommandItemDef({
|
|
108
118
|
commandId: "UiFramework.IsolateModel",
|
|
109
|
-
iconSpec:
|
|
119
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(model_isolate_svg_1.default),
|
|
110
120
|
labelKey: "UiFramework:tools.isolateModels",
|
|
111
121
|
execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),
|
|
112
122
|
});
|
|
@@ -114,7 +124,7 @@ class SelectionContextToolDefinitions {
|
|
|
114
124
|
static get isolateCategoriesInSelectionItemDef() {
|
|
115
125
|
return new CommandItemDef_1.CommandItemDef({
|
|
116
126
|
commandId: "UiFramework.IsolateCategory",
|
|
117
|
-
iconSpec:
|
|
127
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(layers_isolate_svg_1.default),
|
|
118
128
|
labelKey: "UiFramework:tools.isolateCategories",
|
|
119
129
|
execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),
|
|
120
130
|
});
|
|
@@ -122,7 +132,7 @@ class SelectionContextToolDefinitions {
|
|
|
122
132
|
static get isolateElementsItemDef() {
|
|
123
133
|
return new CommandItemDef_1.CommandItemDef({
|
|
124
134
|
commandId: "UiFramework.IsolateSelected",
|
|
125
|
-
iconSpec:
|
|
135
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(asset_isolate_svg_1.default),
|
|
126
136
|
labelKey: "UiFramework:tools.isolateSelected",
|
|
127
137
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
128
138
|
execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),
|
|
@@ -132,7 +142,7 @@ class SelectionContextToolDefinitions {
|
|
|
132
142
|
return new GroupItem_1.GroupItemDef({
|
|
133
143
|
groupId: "UiFramework.IsolateSelectionGroup",
|
|
134
144
|
labelKey: "UiFramework:tools.isolate",
|
|
135
|
-
iconSpec:
|
|
145
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(isolate_svg_1.default),
|
|
136
146
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
137
147
|
items: [this.isolateElementsItemDef, this.isolateCategoriesInSelectionItemDef, this.isolateModelsInSelectionItemDef],
|
|
138
148
|
itemsInColumn: 3,
|
|
@@ -141,7 +151,7 @@ class SelectionContextToolDefinitions {
|
|
|
141
151
|
static get hideModelsInSelectionItemDef() {
|
|
142
152
|
return new CommandItemDef_1.CommandItemDef({
|
|
143
153
|
commandId: "UiFramework.HideModel",
|
|
144
|
-
iconSpec:
|
|
154
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(model_hide_svg_1.default),
|
|
145
155
|
labelKey: "UiFramework:tools.hideModels",
|
|
146
156
|
execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),
|
|
147
157
|
});
|
|
@@ -149,7 +159,7 @@ class SelectionContextToolDefinitions {
|
|
|
149
159
|
static get hideCategoriesInSelectionItemDef() {
|
|
150
160
|
return new CommandItemDef_1.CommandItemDef({
|
|
151
161
|
commandId: "UiFramework.HideCategory",
|
|
152
|
-
iconSpec:
|
|
162
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(layers_hide_svg_1.default),
|
|
153
163
|
labelKey: "UiFramework:tools.hideCategories",
|
|
154
164
|
execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),
|
|
155
165
|
});
|
|
@@ -157,7 +167,7 @@ class SelectionContextToolDefinitions {
|
|
|
157
167
|
static get hideElementsItemDef() {
|
|
158
168
|
return new CommandItemDef_1.CommandItemDef({
|
|
159
169
|
commandId: "UiFramework.HideSelected",
|
|
160
|
-
iconSpec:
|
|
170
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(asset_classification_hide_svg_1.default),
|
|
161
171
|
labelKey: "UiFramework:tools.hideSelected",
|
|
162
172
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
163
173
|
execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),
|
|
@@ -167,7 +177,7 @@ class SelectionContextToolDefinitions {
|
|
|
167
177
|
return new GroupItem_1.GroupItemDef({
|
|
168
178
|
groupId: "UiFramework.HideSelectionGroup",
|
|
169
179
|
labelKey: "UiFramework:tools.hide",
|
|
170
|
-
iconSpec:
|
|
180
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(visibility_hide_2_svg_1.default),
|
|
171
181
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
172
182
|
items: [this.hideElementsItemDef, this.hideCategoriesInSelectionItemDef, this.hideModelsInSelectionItemDef],
|
|
173
183
|
itemsInColumn: 3,
|
|
@@ -176,7 +186,7 @@ class SelectionContextToolDefinitions {
|
|
|
176
186
|
static get emphasizeElementsItemDef() {
|
|
177
187
|
return new CommandItemDef_1.CommandItemDef({
|
|
178
188
|
commandId: "UiFramework.EmphasizeSelected",
|
|
179
|
-
iconSpec:
|
|
189
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(visibility_semi_transparent_svg_1.default),
|
|
180
190
|
labelKey: "UiFramework:tools.emphasizeSelected",
|
|
181
191
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
182
192
|
execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),
|
|
@@ -185,7 +195,7 @@ class SelectionContextToolDefinitions {
|
|
|
185
195
|
static get clearHideIsolateEmphasizeElementsItemDef() {
|
|
186
196
|
return new CommandItemDef_1.CommandItemDef({
|
|
187
197
|
commandId: "UiFramework.ClearHideIsolateEmphasize",
|
|
188
|
-
iconSpec:
|
|
198
|
+
iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(visibility_svg_1.default),
|
|
189
199
|
labelKey: "UiFramework:tools.clearVisibility",
|
|
190
200
|
isHidden: getIsHiddenIfFeatureOverridesActive(),
|
|
191
201
|
execute: async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.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 { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { HideIsolateEmphasizeActionHandler } from \"./HideIsolateEmphasizeManager\";\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function getFeatureOverrideSyncEventIds(): string[] {\r\n return [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ActiveViewportChanged, HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId];\r\n}\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function getSelectionContextSyncEventIds(): string[] {\r\n return [SyncUiEventId.SelectionSetChanged, SyncUiEventId.ActiveContentChanged, SyncUiEventId.ActiveViewportChanged, SessionStateActionId.SetNumItemsSelected];\r\n}\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function isNoSelectionActive(): boolean {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let selectionCount = 0;\r\n // istanbul ignore if\r\n if (!UiFramework.frameworkStateKey)\r\n selectionCount = UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState.sessionState.numItemsSelected;\r\n\r\n // istanbul ignore if\r\n if (activeContentControl && /* istanbul ignore next */ activeContentControl.viewport\r\n && (/* istanbul ignore next */ activeContentControl.viewport.view.iModel.selectionSet.size > 0 || /* istanbul ignore next */ selectionCount > 0))\r\n return false;\r\n return true;\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show items if selection set is active.\r\n * @beta\r\n */\r\nexport function areNoFeatureOverridesActive(): boolean {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n // istanbul ignore next\r\n if (activeContentControl && activeContentControl.viewport)\r\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeContentControl.viewport);\r\n\r\n return true;\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\r\n * @beta\r\n */\r\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\r\n return new ConditionalBooleanValue(areNoFeatureOverridesActive, getFeatureOverrideSyncEventIds());\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show items if selection set is active.\r\n * @beta\r\n */\r\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\r\n return new ConditionalBooleanValue(isNoSelectionActive, getSelectionContextSyncEventIds());\r\n}\r\n\r\n/** return state with isVisible set to true is SectionSet is active.\r\n * @beta\r\n */\r\n// istanbul ignore next\r\nexport function featureOverridesActiveStateFunc(state: Readonly<BaseItemState>): BaseItemState {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let isVisible = false;\r\n\r\n // istanbul ignore next\r\n if (activeContentControl && activeContentControl.viewport)\r\n isVisible = UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeContentControl.viewport);\r\n\r\n return { ...state, isVisible };\r\n}\r\n\r\n/** return state with isVisible set to true is SectionSet is active.\r\n * @beta\r\n */\r\n// istanbul ignore next\r\nexport function selectionContextStateFunc(state: Readonly<BaseItemState>): BaseItemState {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let isVisible = false;\r\n\r\n let selectionCount = 0;\r\n if (!UiFramework.frameworkStateKey)\r\n selectionCount = UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState.sessionState.numItemsSelected;\r\n\r\n if (activeContentControl && activeContentControl.viewport && (activeContentControl.viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0))\r\n isVisible = true;\r\n return { ...state, isVisible };\r\n}\r\n\r\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class SelectionContextToolDefinitions {\r\n\r\n public static get isolateModelsInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateModel\",\r\n iconSpec: \"icon-model-isolate\",\r\n labelKey: \"UiFramework:tools.isolateModels\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\r\n });\r\n }\r\n\r\n public static get isolateCategoriesInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateCategory\",\r\n iconSpec: \"icon-layers-isolate\",\r\n labelKey: \"UiFramework:tools.isolateCategories\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\r\n });\r\n }\r\n\r\n public static get isolateElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateSelected\",\r\n iconSpec: \"icon-asset-isolate\",\r\n labelKey: \"UiFramework:tools.isolateSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\r\n });\r\n }\r\n\r\n public static get isolateSelectionToolGroup() {\r\n return new GroupItemDef({\r\n groupId: \"UiFramework.IsolateSelectionGroup\",\r\n labelKey: \"UiFramework:tools.isolate\",\r\n iconSpec: \"icon-isolate\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n items: [this.isolateElementsItemDef, this.isolateCategoriesInSelectionItemDef, this.isolateModelsInSelectionItemDef],\r\n itemsInColumn: 3,\r\n });\r\n }\r\n\r\n public static get hideModelsInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideModel\",\r\n iconSpec: \"icon-model-hide\",\r\n labelKey: \"UiFramework:tools.hideModels\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\r\n });\r\n }\r\n\r\n public static get hideCategoriesInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideCategory\",\r\n iconSpec: \"icon-layers-hide\",\r\n labelKey: \"UiFramework:tools.hideCategories\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\r\n });\r\n }\r\n\r\n public static get hideElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideSelected\",\r\n iconSpec: \"icon-asset-classification-hide\",\r\n labelKey: \"UiFramework:tools.hideSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\r\n });\r\n }\r\n\r\n public static get hideSectionToolGroup() {\r\n return new GroupItemDef({\r\n groupId: \"UiFramework.HideSelectionGroup\",\r\n labelKey: \"UiFramework:tools.hide\",\r\n iconSpec: \"icon-visibility-hide-2\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n items: [this.hideElementsItemDef, this.hideCategoriesInSelectionItemDef, this.hideModelsInSelectionItemDef],\r\n itemsInColumn: 3,\r\n });\r\n }\r\n\r\n public static get emphasizeElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.EmphasizeSelected\",\r\n iconSpec: \"icon-visibility-semi-transparent\",\r\n labelKey: \"UiFramework:tools.emphasizeSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\r\n });\r\n }\r\n\r\n public static get clearHideIsolateEmphasizeElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\r\n iconSpec: \"icon-visibility\",\r\n labelKey: \"UiFramework:tools.clearVisibility\",\r\n isHidden: getIsHiddenIfFeatureOverridesActive(),\r\n execute: async () => {\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\r\n },\r\n });\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.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 { ConditionalBooleanValue, IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { HideIsolateEmphasizeActionHandler } from \"./HideIsolateEmphasizeManager\";\r\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\r\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\r\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\r\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\r\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\r\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\r\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\r\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\r\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\r\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function getFeatureOverrideSyncEventIds(): string[] {\r\n return [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ActiveViewportChanged, HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId];\r\n}\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function getSelectionContextSyncEventIds(): string[] {\r\n return [SyncUiEventId.SelectionSetChanged, SyncUiEventId.ActiveContentChanged, SyncUiEventId.ActiveViewportChanged, SessionStateActionId.SetNumItemsSelected];\r\n}\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function isNoSelectionActive(): boolean {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let selectionCount = 0;\r\n // istanbul ignore if\r\n if (!UiFramework.frameworkStateKey)\r\n selectionCount = UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState.sessionState.numItemsSelected;\r\n\r\n // istanbul ignore if\r\n if (activeContentControl && /* istanbul ignore next */ activeContentControl.viewport\r\n && (/* istanbul ignore next */ activeContentControl.viewport.view.iModel.selectionSet.size > 0 || /* istanbul ignore next */ selectionCount > 0))\r\n return false;\r\n return true;\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show items if selection set is active.\r\n * @beta\r\n */\r\nexport function areNoFeatureOverridesActive(): boolean {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n // istanbul ignore next\r\n if (activeContentControl && activeContentControl.viewport)\r\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeContentControl.viewport);\r\n\r\n return true;\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\r\n * @beta\r\n */\r\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\r\n return new ConditionalBooleanValue(areNoFeatureOverridesActive, getFeatureOverrideSyncEventIds());\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show items if selection set is active.\r\n * @beta\r\n */\r\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\r\n return new ConditionalBooleanValue(isNoSelectionActive, getSelectionContextSyncEventIds());\r\n}\r\n\r\n/** return state with isVisible set to true is SectionSet is active.\r\n * @beta\r\n */\r\n// istanbul ignore next\r\nexport function featureOverridesActiveStateFunc(state: Readonly<BaseItemState>): BaseItemState {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let isVisible = false;\r\n\r\n // istanbul ignore next\r\n if (activeContentControl && activeContentControl.viewport)\r\n isVisible = UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeContentControl.viewport);\r\n\r\n return { ...state, isVisible };\r\n}\r\n\r\n/** return state with isVisible set to true is SectionSet is active.\r\n * @beta\r\n */\r\n// istanbul ignore next\r\nexport function selectionContextStateFunc(state: Readonly<BaseItemState>): BaseItemState {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let isVisible = false;\r\n\r\n let selectionCount = 0;\r\n if (!UiFramework.frameworkStateKey)\r\n selectionCount = UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState.sessionState.numItemsSelected;\r\n\r\n if (activeContentControl && activeContentControl.viewport && (activeContentControl.viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0))\r\n isVisible = true;\r\n return { ...state, isVisible };\r\n}\r\n\r\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class SelectionContextToolDefinitions {\r\n\r\n public static get isolateModelsInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateModel\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelIsolate),\r\n labelKey: \"UiFramework:tools.isolateModels\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\r\n });\r\n }\r\n\r\n public static get isolateCategoriesInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateCategory\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersIsolate),\r\n labelKey: \"UiFramework:tools.isolateCategories\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\r\n });\r\n }\r\n\r\n public static get isolateElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateSelected\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgAssetIsolate),\r\n labelKey: \"UiFramework:tools.isolateSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\r\n });\r\n }\r\n\r\n public static get isolateSelectionToolGroup() {\r\n return new GroupItemDef({\r\n groupId: \"UiFramework.IsolateSelectionGroup\",\r\n labelKey: \"UiFramework:tools.isolate\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgIsolate),\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n items: [this.isolateElementsItemDef, this.isolateCategoriesInSelectionItemDef, this.isolateModelsInSelectionItemDef],\r\n itemsInColumn: 3,\r\n });\r\n }\r\n\r\n public static get hideModelsInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideModel\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelHide),\r\n labelKey: \"UiFramework:tools.hideModels\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\r\n });\r\n }\r\n\r\n public static get hideCategoriesInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideCategory\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersHide),\r\n labelKey: \"UiFramework:tools.hideCategories\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\r\n });\r\n }\r\n\r\n public static get hideElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideSelected\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgAssetClassificationHide),\r\n labelKey: \"UiFramework:tools.hideSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\r\n });\r\n }\r\n\r\n public static get hideSectionToolGroup() {\r\n return new GroupItemDef({\r\n groupId: \"UiFramework.HideSelectionGroup\",\r\n labelKey: \"UiFramework:tools.hide\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibilityHide),\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n items: [this.hideElementsItemDef, this.hideCategoriesInSelectionItemDef, this.hideModelsInSelectionItemDef],\r\n itemsInColumn: 3,\r\n });\r\n }\r\n\r\n public static get emphasizeElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.EmphasizeSelected\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibilitySemiTransparent),\r\n labelKey: \"UiFramework:tools.emphasizeSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\r\n });\r\n }\r\n\r\n public static get clearHideIsolateEmphasizeElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibility),\r\n labelKey: \"UiFramework:tools.clearVisibility\",\r\n isHidden: getIsHiddenIfFeatureOverridesActive(),\r\n execute: async () => {\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\r\n },\r\n });\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuantityFormat.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,uBAAuB,CAAC;AAG/B,OAAO,EACoE,eAAe,EACzF,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA8B,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EACyB,gBAAgB,EAE/C,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"QuantityFormat.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,uBAAuB,CAAC;AAG/B,OAAO,EACoE,eAAe,EACzF,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA8B,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EACyB,gBAAgB,EAE/C,MAAM,mBAAmB,CAAC;AAW3B;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,eAAe,CAAC;IACrC,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAAG,gBAAgB,CAa/I;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,EAAE,gCAAgC,eAoKzH"}
|
|
@@ -18,6 +18,7 @@ const core_react_1 = require("@itwin/core-react");
|
|
|
18
18
|
const UiFramework_1 = require("../../UiFramework");
|
|
19
19
|
const UnitSystemSelector_1 = require("./UnitSystemSelector");
|
|
20
20
|
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
21
|
+
const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
|
|
21
22
|
function formatAreEqual(obj1, obj2) {
|
|
22
23
|
const compare = new core_geometry_1.DeepCompare();
|
|
23
24
|
return compare.compare(obj1, obj2);
|
|
@@ -36,7 +37,7 @@ function getQuantityFormatsSettingsManagerEntry(itemPriority, opts) {
|
|
|
36
37
|
subLabel: UiFramework_1.UiFramework.translate("settings.quantity-formatting.subLabel"),
|
|
37
38
|
page: React.createElement(QuantityFormatSettingsPage, { initialQuantityType: initialQuantityType !== null && initialQuantityType !== void 0 ? initialQuantityType : core_frontend_1.QuantityType.Length, availableUnitSystems: availableUnitSystems !== null && availableUnitSystems !== void 0 ? availableUnitSystems : new Set(["metric", "imperial", "usCustomary", "usSurvey"]) }),
|
|
38
39
|
isDisabled: false,
|
|
39
|
-
icon:
|
|
40
|
+
icon: React.createElement(itwinui_icons_react_1.SvgMeasure, null),
|
|
40
41
|
tooltip: UiFramework_1.UiFramework.translate("settings.quantity-formatting.tooltip"),
|
|
41
42
|
pageWillHandleCloseRequest: true,
|
|
42
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.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\nimport \"./QuantityFormat.scss\";\r\nimport * as React from \"react\";\r\nimport { DeepCompare } from \"@itwin/core-geometry\";\r\nimport {\r\n getQuantityTypeKey, IModelApp, QuantityFormatsChangedArgs, QuantityType, QuantityTypeArg, QuantityTypeKey,\r\n} from \"@itwin/core-frontend\";\r\nimport { FormatProps, FormatterSpec, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\r\nimport { FormatSample, QuantityFormatPanel } from \"@itwin/imodel-components-react\";\r\nimport {\r\n Dialog, Listbox, ListboxItem, SettingsTabEntry,\r\n useSaveBeforeActivatingNewSettingsTab, useSaveBeforeClosingSettingsContainer,\r\n} from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { UnitSystemSelector } from \"./UnitSystemSelector\";\r\nimport { Button } from \"@itwin/itwinui-react\";\r\n\r\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\r\n const compare = new DeepCompare();\r\n return compare.compare(obj1, obj2);\r\n}\r\n\r\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\r\n * @beta\r\n */\r\nexport interface QuantityFormatterSettingsOptions {\r\n initialQuantityType: QuantityTypeArg;\r\n availableUnitSystems: Set<UnitSystemKey>;\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 * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\r\n * @beta\r\n */\r\nexport function getQuantityFormatsSettingsManagerEntry(itemPriority: number, opts?: Partial<QuantityFormatterSettingsOptions>): SettingsTabEntry {\r\n const { availableUnitSystems, initialQuantityType } = { ...opts };\r\n return {\r\n itemPriority, tabId: \"uifw:Quantity\",\r\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\r\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\r\n page: <QuantityFormatSettingsPage initialQuantityType={initialQuantityType ?? QuantityType.Length}\r\n availableUnitSystems={availableUnitSystems ?? new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])} />,\r\n isDisabled: false,\r\n icon: \"icon-measure\",\r\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\r\n pageWillHandleCloseRequest: true,\r\n };\r\n}\r\n\r\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\r\n * @beta\r\n */\r\nexport function QuantityFormatSettingsPage({ initialQuantityType, availableUnitSystems }: QuantityFormatterSettingsOptions) {\r\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(IModelApp.quantityFormatter.activeUnitSystem);\r\n const [activeQuantityType, setActiveQuantityType] = React.useState(getQuantityTypeKey(initialQuantityType));\r\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<FormatterSpec | undefined>(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(getQuantityTypeKey(activeQuantityType)));\r\n const [saveEnabled, setSaveEnabled] = React.useState(false);\r\n const [clearEnabled, setClearEnabled] = React.useState(IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true));\r\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\r\n const formatSectionLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.formatSectionLabel\"));\r\n const setButtonLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.setButtonLabel\"));\r\n const clearButtonLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.clearButtonLabel\"));\r\n\r\n React.useEffect(() => {\r\n const handleUnitSystemChanged = ((): void => {\r\n // istanbul ignore else\r\n if (activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem) {\r\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\r\n setActiveFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType));\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(activeQuantityType, true));\r\n }\r\n });\r\n\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);\r\n };\r\n }, [activeQuantityType, activeUnitSystemKey]);\r\n\r\n React.useEffect(() => {\r\n const handleFormatChanged = ((args: QuantityFormatsChangedArgs): void => {\r\n if (!newQuantityTypeRef.current) {\r\n const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\r\n // istanbul ignore else\r\n if (args.quantityType === quantityKey) {\r\n setActiveFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType));\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(activeQuantityType, true));\r\n }\r\n }\r\n newQuantityTypeRef.current = undefined;\r\n });\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleFormatChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleFormatChanged);\r\n };\r\n }, [activeQuantityType]);\r\n\r\n const saveChanges = React.useCallback((afterSaveFunction: (args: any) => void, args?: any) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const formatProps = activeFormatterSpec.format.toJSON();\r\n const formatPropsInUse = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType)!.format.toJSON();\r\n if (formatPropsInUse && !formatAreEqual(formatProps, formatPropsInUse)) {\r\n UiFramework.dialogs.modal.open(<SaveFormatModalDialog formatProps={formatProps} quantityType={activeQuantityType} onDialogCloseArgs={args} onDialogClose={afterSaveFunction} />, \"saveQuantityFormat\");\r\n return;\r\n }\r\n }\r\n afterSaveFunction(args);\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n useSaveBeforeActivatingNewSettingsTab(UiFramework.settingsManager, saveChanges);\r\n useSaveBeforeClosingSettingsContainer(UiFramework.settingsManager, saveChanges);\r\n\r\n const processListboxValueChange = React.useCallback((newQuantityType: QuantityTypeKey) => {\r\n const volumeFormatterSpec = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(newQuantityType);\r\n setActiveFormatterSpec(volumeFormatterSpec);\r\n setActiveQuantityType(newQuantityType);\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true));\r\n }, []);\r\n\r\n const onListboxValueChange = React.useCallback((newQuantityType: string) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const formatProps = activeFormatterSpec.format.toJSON();\r\n const formatPropsInUse = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType)!.format.toJSON();\r\n if (formatPropsInUse && !formatAreEqual(formatProps, formatPropsInUse)) {\r\n newQuantityTypeRef.current = newQuantityType;\r\n UiFramework.dialogs.modal.open(<SaveFormatModalDialog formatProps={formatProps} quantityType={activeQuantityType} onDialogCloseArgs={newQuantityType} onDialogClose={processListboxValueChange} />, \"saveQuantityFormat\");\r\n return;\r\n }\r\n }\r\n processListboxValueChange(newQuantityType);\r\n }, [activeFormatterSpec, activeQuantityType, processListboxValueChange]);\r\n\r\n const handleOnFormatChanged = React.useCallback(async (formatProps: FormatProps) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const newSpec = await IModelApp.quantityFormatter.generateFormatterSpecByType(activeQuantityType, formatProps);\r\n const formatPropsInUse = IModelApp.quantityFormatter.getFormatPropsByQuantityType(activeQuantityType);\r\n // istanbul ignore else\r\n if (formatPropsInUse)\r\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\r\n setActiveFormatterSpec(newSpec);\r\n }\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n const handleOnFormatSave = React.useCallback(async () => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const format = activeFormatterSpec.format.toJSON();\r\n await IModelApp.quantityFormatter.setOverrideFormat(activeQuantityType, format);\r\n setClearEnabled(true);\r\n }\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n const handleOnFormatReset = React.useCallback(async () => {\r\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\r\n setClearEnabled(false);\r\n }, [activeQuantityType]);\r\n\r\n const processNewUnitSystem = React.useCallback(async (unitSystem: UnitSystemKey) => {\r\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\r\n }, []);\r\n\r\n const handleUnitSystemSelected = React.useCallback(async (unitSystem: UnitSystemKey) => {\r\n if (unitSystem === activeUnitSystemKey)\r\n return;\r\n saveChanges(processNewUnitSystem, unitSystem);\r\n }, [activeUnitSystemKey, processNewUnitSystem, saveChanges]);\r\n\r\n return (\r\n <div className=\"quantity-formatting-container\">\r\n <UnitSystemSelector selectedUnitSystemKey={activeUnitSystemKey} availableUnitSystems={availableUnitSystems} onUnitSystemSelected={handleUnitSystemSelected} />\r\n <span className=\"uifw-quantity-format-section-label\">{formatSectionLabel.current}</span>\r\n <div className=\"uifw-quantity-types-container\">\r\n <div className=\"left-panel\">\r\n <Listbox id=\"uifw-quantity-types-list\" className=\"uifw-quantity-types\"\r\n onListboxValueChange={onListboxValueChange} selectedValue={activeQuantityType} >\r\n {\r\n [...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map((key) => {\r\n const entry = IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\r\n const description = entry.description;\r\n const label = entry.label;\r\n return (\r\n <ListboxItem key={entry.key} className=\"quantity-type-list-entry\" value={entry.key}>\r\n <span className=\"map-source-list-entry-name\" title={description}>{label}</span>\r\n </ListboxItem>\r\n );\r\n })\r\n }\r\n </Listbox>\r\n </div>\r\n <div className=\"right-panel\">\r\n {activeFormatterSpec &&\r\n <>\r\n <div className=\"uifw-quantity-types-right-top\">\r\n <div className=\"uifw-quantity-types-right-top-sample\">\r\n <FormatSample formatSpec={activeFormatterSpec} initialMagnitude={1234.56} hideLabels />\r\n </div>\r\n </div>\r\n <div className=\"uifw-quantity-types-formats\">\r\n <QuantityFormatPanel onFormatChange={handleOnFormatChanged} quantityType={activeQuantityType} />\r\n </div>\r\n <div className=\"components-button-panel\">\r\n <Button styleType=\"cta\" onClick={handleOnFormatSave} disabled={!saveEnabled}>{setButtonLabel.current}</Button>\r\n <Button styleType=\"default\" onClick={handleOnFormatReset} disabled={!clearEnabled}>{clearButtonLabel.current}</Button>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SaveFormatModalDialog({ formatProps, quantityType, onDialogCloseArgs, onDialogClose }: { formatProps: FormatProps, quantityType: QuantityTypeKey, onDialogCloseArgs?: any, onDialogClose: (args?: any) => void }) {\r\n const [isOpen, setIsOpen] = React.useState(true);\r\n\r\n const handleClose = React.useCallback(() => {\r\n setIsOpen(false);\r\n UiFramework.dialogs.modal.close();\r\n onDialogClose && onDialogClose(onDialogCloseArgs);\r\n }, [onDialogClose, onDialogCloseArgs]);\r\n\r\n const handleOK = React.useCallback(() => {\r\n IModelApp.quantityFormatter.setOverrideFormat(quantityType, formatProps); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n handleClose();\r\n }, [formatProps, handleClose, quantityType]);\r\n\r\n const handleCancel = React.useCallback(() => {\r\n handleClose();\r\n }, [handleClose]);\r\n\r\n return (\r\n <Dialog\r\n title={\"Save Format Changes\"}\r\n opened={isOpen}\r\n resizable={false}\r\n movable={false}\r\n modal={true}\r\n buttonCluster={[\r\n { type: DialogButtonType.Yes, onClick: handleOK },\r\n { type: DialogButtonType.No, onClick: handleCancel },\r\n ]}\r\n onEscape={handleCancel}\r\n onClose={handleCancel}\r\n onOutsideClick={handleCancel}\r\n minHeight={150}\r\n maxHeight={400}\r\n maxWidth={400}\r\n minWidth={200}\r\n >\r\n <div className=\"modal-dialog2\">\r\n Do you want to save changes to format before changing to another type?\r\n </div>\r\n </Dialog >\r\n );\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.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\nimport \"./QuantityFormat.scss\";\r\nimport * as React from \"react\";\r\nimport { DeepCompare } from \"@itwin/core-geometry\";\r\nimport {\r\n getQuantityTypeKey, IModelApp, QuantityFormatsChangedArgs, QuantityType, QuantityTypeArg, QuantityTypeKey,\r\n} from \"@itwin/core-frontend\";\r\nimport { FormatProps, FormatterSpec, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\r\nimport { FormatSample, QuantityFormatPanel } from \"@itwin/imodel-components-react\";\r\nimport {\r\n Dialog, Listbox, ListboxItem, SettingsTabEntry,\r\n useSaveBeforeActivatingNewSettingsTab, useSaveBeforeClosingSettingsContainer,\r\n} from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { UnitSystemSelector } from \"./UnitSystemSelector\";\r\nimport { Button } from \"@itwin/itwinui-react\";\r\nimport { SvgMeasure } from \"@itwin/itwinui-icons-react\";\r\n\r\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\r\n const compare = new DeepCompare();\r\n return compare.compare(obj1, obj2);\r\n}\r\n\r\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\r\n * @beta\r\n */\r\nexport interface QuantityFormatterSettingsOptions {\r\n initialQuantityType: QuantityTypeArg;\r\n availableUnitSystems: Set<UnitSystemKey>;\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 * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\r\n * @beta\r\n */\r\nexport function getQuantityFormatsSettingsManagerEntry(itemPriority: number, opts?: Partial<QuantityFormatterSettingsOptions>): SettingsTabEntry {\r\n const { availableUnitSystems, initialQuantityType } = { ...opts };\r\n return {\r\n itemPriority, tabId: \"uifw:Quantity\",\r\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\r\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\r\n page: <QuantityFormatSettingsPage initialQuantityType={initialQuantityType ?? QuantityType.Length}\r\n availableUnitSystems={availableUnitSystems ?? new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])} />,\r\n isDisabled: false,\r\n icon: <SvgMeasure />,\r\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\r\n pageWillHandleCloseRequest: true,\r\n };\r\n}\r\n\r\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\r\n * @beta\r\n */\r\nexport function QuantityFormatSettingsPage({ initialQuantityType, availableUnitSystems }: QuantityFormatterSettingsOptions) {\r\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(IModelApp.quantityFormatter.activeUnitSystem);\r\n const [activeQuantityType, setActiveQuantityType] = React.useState(getQuantityTypeKey(initialQuantityType));\r\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<FormatterSpec | undefined>(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(getQuantityTypeKey(activeQuantityType)));\r\n const [saveEnabled, setSaveEnabled] = React.useState(false);\r\n const [clearEnabled, setClearEnabled] = React.useState(IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true));\r\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\r\n const formatSectionLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.formatSectionLabel\"));\r\n const setButtonLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.setButtonLabel\"));\r\n const clearButtonLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.clearButtonLabel\"));\r\n\r\n React.useEffect(() => {\r\n const handleUnitSystemChanged = ((): void => {\r\n // istanbul ignore else\r\n if (activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem) {\r\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\r\n setActiveFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType));\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(activeQuantityType, true));\r\n }\r\n });\r\n\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);\r\n };\r\n }, [activeQuantityType, activeUnitSystemKey]);\r\n\r\n React.useEffect(() => {\r\n const handleFormatChanged = ((args: QuantityFormatsChangedArgs): void => {\r\n if (!newQuantityTypeRef.current) {\r\n const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\r\n // istanbul ignore else\r\n if (args.quantityType === quantityKey) {\r\n setActiveFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType));\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(activeQuantityType, true));\r\n }\r\n }\r\n newQuantityTypeRef.current = undefined;\r\n });\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleFormatChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleFormatChanged);\r\n };\r\n }, [activeQuantityType]);\r\n\r\n const saveChanges = React.useCallback((afterSaveFunction: (args: any) => void, args?: any) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const formatProps = activeFormatterSpec.format.toJSON();\r\n const formatPropsInUse = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType)!.format.toJSON();\r\n if (formatPropsInUse && !formatAreEqual(formatProps, formatPropsInUse)) {\r\n UiFramework.dialogs.modal.open(<SaveFormatModalDialog formatProps={formatProps} quantityType={activeQuantityType} onDialogCloseArgs={args} onDialogClose={afterSaveFunction} />, \"saveQuantityFormat\");\r\n return;\r\n }\r\n }\r\n afterSaveFunction(args);\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n useSaveBeforeActivatingNewSettingsTab(UiFramework.settingsManager, saveChanges);\r\n useSaveBeforeClosingSettingsContainer(UiFramework.settingsManager, saveChanges);\r\n\r\n const processListboxValueChange = React.useCallback((newQuantityType: QuantityTypeKey) => {\r\n const volumeFormatterSpec = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(newQuantityType);\r\n setActiveFormatterSpec(volumeFormatterSpec);\r\n setActiveQuantityType(newQuantityType);\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true));\r\n }, []);\r\n\r\n const onListboxValueChange = React.useCallback((newQuantityType: string) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const formatProps = activeFormatterSpec.format.toJSON();\r\n const formatPropsInUse = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType)!.format.toJSON();\r\n if (formatPropsInUse && !formatAreEqual(formatProps, formatPropsInUse)) {\r\n newQuantityTypeRef.current = newQuantityType;\r\n UiFramework.dialogs.modal.open(<SaveFormatModalDialog formatProps={formatProps} quantityType={activeQuantityType} onDialogCloseArgs={newQuantityType} onDialogClose={processListboxValueChange} />, \"saveQuantityFormat\");\r\n return;\r\n }\r\n }\r\n processListboxValueChange(newQuantityType);\r\n }, [activeFormatterSpec, activeQuantityType, processListboxValueChange]);\r\n\r\n const handleOnFormatChanged = React.useCallback(async (formatProps: FormatProps) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const newSpec = await IModelApp.quantityFormatter.generateFormatterSpecByType(activeQuantityType, formatProps);\r\n const formatPropsInUse = IModelApp.quantityFormatter.getFormatPropsByQuantityType(activeQuantityType);\r\n // istanbul ignore else\r\n if (formatPropsInUse)\r\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\r\n setActiveFormatterSpec(newSpec);\r\n }\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n const handleOnFormatSave = React.useCallback(async () => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const format = activeFormatterSpec.format.toJSON();\r\n await IModelApp.quantityFormatter.setOverrideFormat(activeQuantityType, format);\r\n setClearEnabled(true);\r\n }\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n const handleOnFormatReset = React.useCallback(async () => {\r\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\r\n setClearEnabled(false);\r\n }, [activeQuantityType]);\r\n\r\n const processNewUnitSystem = React.useCallback(async (unitSystem: UnitSystemKey) => {\r\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\r\n }, []);\r\n\r\n const handleUnitSystemSelected = React.useCallback(async (unitSystem: UnitSystemKey) => {\r\n if (unitSystem === activeUnitSystemKey)\r\n return;\r\n saveChanges(processNewUnitSystem, unitSystem);\r\n }, [activeUnitSystemKey, processNewUnitSystem, saveChanges]);\r\n\r\n return (\r\n <div className=\"quantity-formatting-container\">\r\n <UnitSystemSelector selectedUnitSystemKey={activeUnitSystemKey} availableUnitSystems={availableUnitSystems} onUnitSystemSelected={handleUnitSystemSelected} />\r\n <span className=\"uifw-quantity-format-section-label\">{formatSectionLabel.current}</span>\r\n <div className=\"uifw-quantity-types-container\">\r\n <div className=\"left-panel\">\r\n <Listbox id=\"uifw-quantity-types-list\" className=\"uifw-quantity-types\"\r\n onListboxValueChange={onListboxValueChange} selectedValue={activeQuantityType} >\r\n {\r\n [...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map((key) => {\r\n const entry = IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\r\n const description = entry.description;\r\n const label = entry.label;\r\n return (\r\n <ListboxItem key={entry.key} className=\"quantity-type-list-entry\" value={entry.key}>\r\n <span className=\"map-source-list-entry-name\" title={description}>{label}</span>\r\n </ListboxItem>\r\n );\r\n })\r\n }\r\n </Listbox>\r\n </div>\r\n <div className=\"right-panel\">\r\n {activeFormatterSpec &&\r\n <>\r\n <div className=\"uifw-quantity-types-right-top\">\r\n <div className=\"uifw-quantity-types-right-top-sample\">\r\n <FormatSample formatSpec={activeFormatterSpec} initialMagnitude={1234.56} hideLabels />\r\n </div>\r\n </div>\r\n <div className=\"uifw-quantity-types-formats\">\r\n <QuantityFormatPanel onFormatChange={handleOnFormatChanged} quantityType={activeQuantityType} />\r\n </div>\r\n <div className=\"components-button-panel\">\r\n <Button styleType=\"cta\" onClick={handleOnFormatSave} disabled={!saveEnabled}>{setButtonLabel.current}</Button>\r\n <Button styleType=\"default\" onClick={handleOnFormatReset} disabled={!clearEnabled}>{clearButtonLabel.current}</Button>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SaveFormatModalDialog({ formatProps, quantityType, onDialogCloseArgs, onDialogClose }: { formatProps: FormatProps, quantityType: QuantityTypeKey, onDialogCloseArgs?: any, onDialogClose: (args?: any) => void }) {\r\n const [isOpen, setIsOpen] = React.useState(true);\r\n\r\n const handleClose = React.useCallback(() => {\r\n setIsOpen(false);\r\n UiFramework.dialogs.modal.close();\r\n onDialogClose && onDialogClose(onDialogCloseArgs);\r\n }, [onDialogClose, onDialogCloseArgs]);\r\n\r\n const handleOK = React.useCallback(() => {\r\n IModelApp.quantityFormatter.setOverrideFormat(quantityType, formatProps); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n handleClose();\r\n }, [formatProps, handleClose, quantityType]);\r\n\r\n const handleCancel = React.useCallback(() => {\r\n handleClose();\r\n }, [handleClose]);\r\n\r\n return (\r\n <Dialog\r\n title={\"Save Format Changes\"}\r\n opened={isOpen}\r\n resizable={false}\r\n movable={false}\r\n modal={true}\r\n buttonCluster={[\r\n { type: DialogButtonType.Yes, onClick: handleOK },\r\n { type: DialogButtonType.No, onClick: handleCancel },\r\n ]}\r\n onEscape={handleCancel}\r\n onClose={handleCancel}\r\n onOutsideClick={handleCancel}\r\n minHeight={150}\r\n maxHeight={400}\r\n maxWidth={400}\r\n minWidth={200}\r\n >\r\n <div className=\"modal-dialog2\">\r\n Do you want to save changes to format before changing to another type?\r\n </div>\r\n </Dialog >\r\n );\r\n}\r\n"]}
|