@itwin/appui-react 4.9.0 → 4.10.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/appui-react/UiFramework.js +4 -7
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +2 -0
- package/lib/cjs/appui-react/accudraw/SquareButton.d.ts +3 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.js +1 -4
- package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +2 -2
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +19 -15
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js +4 -7
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
- package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.js +2 -3
- package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +10 -14
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +2 -3
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/layout/base/DragManager.js +1 -2
- package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
- package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
- package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
- package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
- package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
- package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
- package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +12 -14
- package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
- package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +2 -3
- package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
- package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
- package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
- package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
- package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
- package/lib/cjs/appui-react/layout/tool-settings/Docked.scss +1 -1
- package/lib/cjs/appui-react/layout/widget/Button.d.ts +2 -9
- package/lib/cjs/appui-react/layout/widget/Button.d.ts.map +1 -1
- package/lib/cjs/appui-react/layout/widget/Button.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +2 -2
- package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/FloatingTab.js +5 -6
- package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +2 -4
- package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
- package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js +1 -1
- package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/Tab.js +4 -4
- package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
- package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
- package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +5 -8
- package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
- package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.js +2 -3
- package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageLabel.js +2 -2
- package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.d.ts +15 -5
- package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +23 -41
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageRenderer.d.ts +8 -0
- package/lib/cjs/appui-react/messages/MessageRenderer.d.ts.map +1 -0
- package/lib/cjs/appui-react/messages/MessageRenderer.js +136 -0
- package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -0
- package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
- package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.js +5 -6
- package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
- package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.js +1 -2
- package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -2
- package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/preview/PreviewFeatures.js +1 -1
- package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
- package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
- package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +11 -16
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js +5 -4
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +1 -3
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
- package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js +3 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +6 -4
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
- 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 +18 -25
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +19 -16
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +10 -14
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -23
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +4 -5
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
- package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +4 -7
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +2 -0
- package/lib/esm/appui-react/accudraw/SquareButton.d.ts +3 -1
- package/lib/esm/appui-react/accudraw/SquareButton.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/SquareButton.js +1 -4
- package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +2 -2
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +19 -15
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +9 -12
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js +4 -7
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
- package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.js +3 -4
- package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +10 -14
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
- package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js +2 -3
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/esm/appui-react/layout/base/DragManager.js +1 -2
- package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
- package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
- package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
- package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
- package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
- package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
- package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
- package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +12 -14
- package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
- package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +2 -3
- package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
- package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
- package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
- package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
- package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
- package/lib/esm/appui-react/layout/tool-settings/Docked.scss +1 -1
- package/lib/esm/appui-react/layout/widget/Button.d.ts +2 -9
- package/lib/esm/appui-react/layout/widget/Button.d.ts.map +1 -1
- package/lib/esm/appui-react/layout/widget/Button.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/ContentRenderer.js +2 -2
- package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/FloatingTab.js +5 -6
- package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/FloatingWidget.js +2 -4
- package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
- package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js +1 -1
- package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/Tab.js +4 -4
- package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
- package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
- package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
- package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
- package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +5 -8
- package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
- package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
- package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
- package/lib/esm/appui-react/messages/InputField.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/InputField.js +3 -4
- package/lib/esm/appui-react/messages/InputField.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageLabel.js +2 -2
- package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.d.ts +15 -5
- package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +23 -41
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageRenderer.d.ts +8 -0
- package/lib/esm/appui-react/messages/MessageRenderer.d.ts.map +1 -0
- package/lib/esm/appui-react/messages/MessageRenderer.js +132 -0
- package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -0
- package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
- package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.js +6 -7
- package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
- package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.js +2 -3
- package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/HTMLElementPopup.js +2 -3
- package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js +1 -2
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/preview/PreviewFeatures.js +1 -1
- package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
- package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
- package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
- package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +11 -16
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js +6 -5
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +1 -3
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
- package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js +3 -1
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js +6 -4
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
- 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 +15 -22
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +19 -16
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +8 -9
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +10 -14
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -23
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.scss +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +4 -5
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/widgets/useWidget.js +1 -1
- package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
- package/package.json +12 -14
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +0 -10
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +0 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +0 -92
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +0 -1
- package/lib/cjs/appui-react/messages/MessageSpan.d.ts +0 -15
- package/lib/cjs/appui-react/messages/MessageSpan.d.ts.map +0 -1
- package/lib/cjs/appui-react/messages/MessageSpan.js +0 -23
- package/lib/cjs/appui-react/messages/MessageSpan.js.map +0 -1
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts +0 -10
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +0 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +0 -88
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +0 -1
- package/lib/esm/appui-react/messages/MessageSpan.d.ts +0 -15
- package/lib/esm/appui-react/messages/MessageSpan.d.ts.map +0 -1
- package/lib/esm/appui-react/messages/MessageSpan.js +0 -18
- package/lib/esm/appui-react/messages/MessageSpan.js.map +0 -1
|
@@ -138,7 +138,6 @@ class UiFramework {
|
|
|
138
138
|
* @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined "frameworkState" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use "frameworkState".
|
|
139
139
|
*/
|
|
140
140
|
static async initialize(store, frameworkStateKey) {
|
|
141
|
-
var _a;
|
|
142
141
|
if (UiFramework._initialized) {
|
|
143
142
|
core_bentley_1.Logger.logInfo(UiFramework.loggerCategory(UiFramework), `UiFramework.initialize already called`);
|
|
144
143
|
return;
|
|
@@ -152,7 +151,7 @@ class UiFramework {
|
|
|
152
151
|
if (frameworkStateKey && store)
|
|
153
152
|
UiFramework._frameworkStateKeyInStore = frameworkStateKey;
|
|
154
153
|
// set up namespace and register all tools from package
|
|
155
|
-
const frameworkNamespace =
|
|
154
|
+
const frameworkNamespace = core_frontend_1.IModelApp.localization?.registerNamespace(UiFramework.localizationNamespace);
|
|
156
155
|
[
|
|
157
156
|
restoreLayoutTools,
|
|
158
157
|
keyinPaletteTools,
|
|
@@ -178,13 +177,12 @@ class UiFramework {
|
|
|
178
177
|
}
|
|
179
178
|
/** Un-registers the UiFramework internationalization service namespace */
|
|
180
179
|
static terminate() {
|
|
181
|
-
var _a;
|
|
182
180
|
UiFramework._store = undefined;
|
|
183
181
|
UiFramework._frameworkStateKeyInStore = "frameworkState";
|
|
184
182
|
if (StateManager_1.StateManager.isInitialized(true))
|
|
185
183
|
StateManager_1.StateManager.clearStore();
|
|
186
184
|
// istanbul ignore next
|
|
187
|
-
|
|
185
|
+
core_frontend_1.IModelApp.localization?.unregisterNamespace(UiFramework.localizationNamespace);
|
|
188
186
|
UiFramework._backstageManager = undefined;
|
|
189
187
|
UiFramework._widgetManager = undefined;
|
|
190
188
|
UiFramework._hideIsolateEmphasizeActionHandler = undefined;
|
|
@@ -351,11 +349,10 @@ class UiFramework {
|
|
|
351
349
|
UiFramework.dispatchActionToStore(SessionState_1.SessionStateActionId.SetActiveIModelId, iModelId);
|
|
352
350
|
}
|
|
353
351
|
static setIModelConnection(iModelConnection, immediateSync = false) {
|
|
354
|
-
var _a;
|
|
355
352
|
const oldConnection = UiFramework.getIModelConnection();
|
|
356
353
|
if (oldConnection === iModelConnection)
|
|
357
354
|
return;
|
|
358
|
-
InternalFrontstageManager_1.InternalFrontstageManager.clearFrontstageDefsForIModelId(oldConnection
|
|
355
|
+
InternalFrontstageManager_1.InternalFrontstageManager.clearFrontstageDefsForIModelId(oldConnection?.iModelId);
|
|
359
356
|
oldConnection && SyncUiEventDispatcher_1.SyncUiEventDispatcher.clearConnectionEvents(oldConnection);
|
|
360
357
|
iModelConnection &&
|
|
361
358
|
SyncUiEventDispatcher_1.SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);
|
|
@@ -364,7 +361,7 @@ class UiFramework {
|
|
|
364
361
|
? iModelConnection.selectionSet.elements.size
|
|
365
362
|
: 0;
|
|
366
363
|
UiFramework.dispatchActionToStore(SessionState_1.SessionStateActionId.SetNumItemsSelected, itemsSelected);
|
|
367
|
-
UiFramework.setActiveIModelId(
|
|
364
|
+
UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? "");
|
|
368
365
|
}
|
|
369
366
|
static getIModelConnection() {
|
|
370
367
|
return UiFramework.frameworkState
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiFramework.js","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\n// cSpell:ignore configurableui clientservices\n\nimport type { Store } from \"redux\";\nimport { Logger, ProcessDetector } from \"@itwin/core-bentley\";\nimport type { Localization } from \"@itwin/core-common\";\nimport type { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { IModelApp, SnapMode } from \"@itwin/core-frontend\";\nimport { UiAdmin, UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { LocalStateStorage, SettingsManager } from \"@itwin/core-react\";\nimport { getObjectClassName } from \"@itwin/core-react\";\nimport { UiIModelComponents } from \"@itwin/imodel-components-react\";\nimport { BackstageManager } from \"./backstage/BackstageManager\";\nimport { InternalChildWindowManager } from \"./childwindow/InternalChildWindowManager\";\nimport { InternalConfigurableUiManager } from \"./configurableui/InternalConfigurableUiManager\";\nimport { ConfigurableUiActionId } from \"./configurableui/state\";\nimport type { FrameworkState } from \"./redux/FrameworkState\";\nimport type {\n CursorMenuData,\n PresentationSelectionScope,\n} from \"./redux/SessionState\";\nimport { SessionStateActionId } from \"./redux/SessionState\";\nimport { StateManager } from \"./redux/StateManager\";\nimport type { HideIsolateEmphasizeActionHandler } from \"./selection/HideIsolateEmphasizeManager\";\nimport { HideIsolateEmphasizeManager } from \"./selection/HideIsolateEmphasizeManager\";\nimport type { ThemeId } from \"./theme/ThemeManager\";\nimport {\n SYSTEM_PREFERRED_COLOR_THEME,\n TOOLBAR_OPACITY_DEFAULT,\n WIDGET_OPACITY_DEFAULT,\n} from \"./theme/ThemeManager\";\nimport * as keyinPaletteTools from \"./tools/KeyinPaletteTools\";\nimport * as openSettingTools from \"./tools/OpenSettingsTool\";\nimport * as restoreLayoutTools from \"./tools/RestoreLayoutTool\";\nimport * as toolSettingTools from \"./tools/ToolSettingsTools\";\nimport {\n InternalUiShowHideManager,\n UiShowHideSettingsProvider,\n} from \"./utils/InternalUiShowHideManager\";\nimport { WidgetManager } from \"./widgets/WidgetManager\";\nimport { InternalFrontstageManager } from \"./frontstage/InternalFrontstageManager\";\nimport { InternalContentViewManager } from \"./content/InternalContentViewManager\";\nimport { InternalModalDialogManager } from \"./dialog/InternalModalDialogManager\";\nimport { InternalModelessDialogManager } from \"./dialog/InternalModelessDialogManager\";\nimport { InternalKeyboardShortcutManager } from \"./keyboardshortcut/InternalKeyboardShortcut\";\nimport { InternalToolSettingsManager } from \"./toolsettings/InternalToolSettingsManager\";\nimport type { FrameworkBackstage } from \"./framework/FrameworkBackstage\";\nimport type { FrameworkChildWindows } from \"./framework/FrameworkChildWindows\";\nimport type { FrameworkControls } from \"./framework/FrameworkControls\";\nimport type { FrameworkFrontstages } from \"./framework/FrameworkFrontstages\";\nimport type { FrameworkToolSettings } from \"./framework/FrameworkToolSettings\";\nimport type { FrameworkContent } from \"./framework/FrameworkContent\";\nimport type { FrameworkDialogs } from \"./framework/FrameworkDialogs\";\nimport type { FrameworkKeyboardShortcuts } from \"./framework/FrameworkKeyboardShortcuts\";\nimport type { FrameworkVisibility } from \"./framework/FrameworkVisibility\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"./syncui/SyncUiEventDispatcher\";\n\n// cSpell:ignore Mobi\n\n/** Interface to be implemented but any classes that wants to load their user settings when the UiStateEntry storage class is set.\n * @public\n */\nexport interface UserSettingsProvider {\n /** Unique provider Id */\n providerId: string;\n /** Function to load settings from settings storage */\n loadUserSettings(storage: UiStateStorage): Promise<void>;\n}\n\n/** UiVisibility Event Args interface.\n * @public\n */\nexport interface UiVisibilityEventArgs {\n visible: boolean;\n}\n\n/** UiVisibility Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class UiVisibilityChangedEvent extends UiEvent<UiVisibilityEventArgs> {}\n\n/** TrackingTime time argument used by our feature tracking manager as an option argument to the TelemetryClient\n * @internal\n */\nexport interface TrackingTime {\n startTime: Date;\n endTime: Date;\n}\n\n/** Main entry point to configure and interact with the features provided by the AppUi-react package.\n * @public\n */\nexport class UiFramework {\n /**\n * Operation on the backstage component.\n * @public\n */\n public static get backstage(): FrameworkBackstage {\n // istanbul ignore next\n if (!UiFramework._backstageManager)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._backstageManager;\n }\n\n /**\n * Manage access to the child windows.\n * @public\n */\n public static get childWindows(): FrameworkChildWindows {\n return this._childWindowManager;\n }\n\n /**\n * Manage registered controls\n * @public\n */\n public static get controls(): FrameworkControls {\n return InternalConfigurableUiManager;\n }\n\n /**\n * Manage access to frontstages and related helper methods.\n * @public\n */\n public static get frontstages(): FrameworkFrontstages {\n return InternalFrontstageManager;\n }\n\n /**\n * Manage access and behavior of the tool settings.\n * @public\n */\n public static get toolSettings(): FrameworkToolSettings {\n return InternalToolSettingsManager;\n }\n\n /**\n * Manage content presented by the frontstages.\n * @public\n */\n public static get content(): FrameworkContent {\n return InternalContentViewManager;\n }\n\n /**\n * Manage displayed dialogs.\n * @public\n */\n public static get dialogs(): FrameworkDialogs {\n return {\n modal: InternalModalDialogManager,\n modeless: InternalModelessDialogManager,\n };\n }\n\n /**\n * Manages global keyboard shortcuts\n *\n * Note: This only manages the list of available shortcuts registered with it. It does not listens to the actual\n * keyboard events. In order for these shortcuts to be called upon a keyboard event, the application can\n * override the `IModelApp.toolAdmin` and assign it [[FrameworkToolAdmin]] or create an event listener\n * and call `UiFramework.keyboardShortcuts.processKey`.\n * @public\n */\n public static get keyboardShortcuts(): FrameworkKeyboardShortcuts {\n return InternalKeyboardShortcutManager;\n }\n\n /**\n * Manages UI visibility (Show/Hide)\n * @public\n */\n public static get visibility(): FrameworkVisibility {\n return InternalUiShowHideManager;\n }\n\n private static _initialized = false;\n private static _store?: Store<any>;\n private static _complaint = \"UiFramework not initialized\";\n private static _frameworkStateKeyInStore: string = \"frameworkState\"; // default name\n private static _backstageManager?: BackstageManager;\n private static _widgetManager?: WidgetManager;\n private static _hideIsolateEmphasizeActionHandler?: HideIsolateEmphasizeActionHandler;\n /** this provides a default state storage handler */\n private static _uiStateStorage: UiStateStorage = new LocalStateStorage();\n private static _settingsManager?: SettingsManager;\n private static _uiSettingsProviderRegistry: Map<\n string,\n UserSettingsProvider\n > = new Map<string, UserSettingsProvider>();\n private static _childWindowManager = new InternalChildWindowManager();\n public static useDefaultPopoutUrl = false;\n\n /** Registers class that will be informed when the UserSettingsStorage location has been set or changed. This allows\n * classes to load any previously saved settings from the new storage location. Common storage locations are the browser's\n * local storage, or the iTwin Product Settings cloud storage available via the SettingsAdmin see `IModelApp.settingsAdmin`.\n * @public\n */\n public static registerUserSettingsProvider(entry: UserSettingsProvider) {\n if (this._uiSettingsProviderRegistry.has(entry.providerId)) return false;\n\n this._uiSettingsProviderRegistry.set(entry.providerId, entry);\n return true;\n }\n\n /** Get Show Ui event.\n * @public\n */\n public static readonly onUiVisibilityChanged = new UiVisibilityChangedEvent();\n\n /**\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\n */\n public static async initialize(\n store: Store<any> | undefined,\n frameworkStateKey?: string\n ): Promise<void> {\n if (UiFramework._initialized) {\n Logger.logInfo(\n UiFramework.loggerCategory(UiFramework),\n `UiFramework.initialize already called`\n );\n return;\n }\n\n /* if store is undefined then the StateManager class should have been initialized by parent app and the apps default set of reducers registered with it.\n If the app has no reducers to add and does not initialize a StateManager then just initialize the StateManager with the default framework reducer now */\n if (undefined === store && !StateManager.isInitialized(true))\n new StateManager();\n\n UiFramework._store = store;\n // ignore setting _frameworkStateKeyInStore if not using store\n if (frameworkStateKey && store)\n UiFramework._frameworkStateKeyInStore = frameworkStateKey;\n\n // set up namespace and register all tools from package\n const frameworkNamespace = IModelApp.localization?.registerNamespace(\n UiFramework.localizationNamespace\n );\n [\n restoreLayoutTools,\n keyinPaletteTools,\n openSettingTools,\n toolSettingTools,\n ].forEach((tool) =>\n IModelApp.tools.registerModule(tool, this.localizationNamespace)\n );\n\n UiFramework._backstageManager = new BackstageManager();\n UiFramework._hideIsolateEmphasizeActionHandler =\n new HideIsolateEmphasizeManager(); // this allows user to override the default HideIsolateEmphasizeManager implementation.\n UiFramework._widgetManager = new WidgetManager();\n\n // Initialize ui-imodel-components, ui-components, ui-core & ui-abstract\n await UiIModelComponents.initialize();\n\n UiFramework.settingsManager.onSettingsProvidersChanged.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.SettingsProvidersChanged\n );\n });\n\n // Initialize the MessagePresenter interface in UiAdmin for Editor notifications\n UiAdmin.messagePresenter = IModelApp.notifications;\n\n UiFramework._initialized = true;\n\n // initialize any standalone settings providers that don't need to have defaults set by iModelApp\n UiShowHideSettingsProvider.initialize();\n\n InternalConfigurableUiManager.initialize();\n\n return frameworkNamespace;\n }\n\n /** Un-registers the UiFramework internationalization service namespace */\n public static terminate() {\n UiFramework._store = undefined;\n UiFramework._frameworkStateKeyInStore = \"frameworkState\";\n if (StateManager.isInitialized(true)) StateManager.clearStore();\n // istanbul ignore next\n IModelApp.localization?.unregisterNamespace(\n UiFramework.localizationNamespace\n );\n UiFramework._backstageManager = undefined;\n UiFramework._widgetManager = undefined;\n UiFramework._hideIsolateEmphasizeActionHandler = undefined;\n UiFramework._settingsManager = undefined;\n\n UiIModelComponents.terminate();\n InternalUiShowHideManager.terminate();\n UiFramework._initialized = false;\n }\n\n /** Determines if UiFramework has been initialized */\n public static get initialized(): boolean {\n return UiFramework._initialized;\n }\n\n /** Property that returns the SettingManager used by AppUI-based applications.\n * @public\n */\n public static get settingsManager() {\n if (undefined === UiFramework._settingsManager)\n UiFramework._settingsManager = new SettingsManager();\n return UiFramework._settingsManager;\n }\n\n /** @public */\n public static get frameworkStateKey(): string {\n return UiFramework._frameworkStateKeyInStore;\n }\n\n /** The UiFramework state maintained by Redux\n * @public\n */\n public static get frameworkState(): FrameworkState | undefined {\n try {\n return UiFramework.store.getState()[UiFramework.frameworkStateKey];\n } catch (_e) {\n return undefined;\n }\n }\n\n /** The Redux store */\n public static get store(): Store<any> {\n if (UiFramework._store) return UiFramework._store;\n\n // istanbul ignore else\n if (!StateManager.isInitialized(true))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n `Error trying to access redux store before either store or StateManager has been initialized.`\n );\n\n // istanbul ignore next\n return StateManager.store;\n }\n\n /** The internationalization service created by the app.\n * @internal\n */\n public static get localization(): Localization {\n // istanbul ignore next\n if (!IModelApp.localization)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n `IModelApp.localization has not been defined.`\n );\n return IModelApp.localization;\n }\n\n /** The internationalization service namespace. */\n public static get localizationNamespace(): string {\n return \"UiFramework\";\n }\n\n /** @public */\n public static get hideIsolateEmphasizeActionHandler(): HideIsolateEmphasizeActionHandler {\n // istanbul ignore next\n if (!UiFramework._hideIsolateEmphasizeActionHandler)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._hideIsolateEmphasizeActionHandler;\n }\n\n /** @public */\n public static setHideIsolateEmphasizeActionHandler(\n handler: HideIsolateEmphasizeActionHandler | undefined\n ) {\n // istanbul ignore else\n if (handler) UiFramework._hideIsolateEmphasizeActionHandler = handler;\n else\n UiFramework._hideIsolateEmphasizeActionHandler =\n new HideIsolateEmphasizeManager();\n }\n\n /** @alpha */\n public static get widgetManager(): WidgetManager {\n // istanbul ignore next\n if (!UiFramework._widgetManager)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._widgetManager;\n }\n\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiFramework\" namespace. Do NOT include the namespace in the key.\n * @internal\n */\n public static translate(key: string | string[]): string {\n return IModelApp.localization.getLocalizedString(key, {\n ns: UiFramework.localizationNamespace,\n });\n }\n\n /** @internal */\n public static get packageName(): string {\n return \"appui-react\";\n }\n\n /** @internal */\n public static loggerCategory(obj: any): string {\n const className = getObjectClassName(obj);\n const category =\n UiFramework.packageName + (className ? `.${className}` : \"\");\n return category;\n }\n\n public static dispatchActionToStore(\n type: string,\n payload: any,\n immediateSync = false\n ) {\n UiFramework.store.dispatch({ type, payload });\n if (immediateSync) SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(type);\n else SyncUiEventDispatcher.dispatchSyncUiEvent(type);\n }\n\n public static setAccudrawSnapMode(snapMode: SnapMode) {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetSnapMode,\n snapMode,\n true\n );\n }\n\n public static getAccudrawSnapMode(): SnapMode {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.snapMode\n : /* istanbul ignore next */ SnapMode.NearestKeypoint;\n }\n\n /**\n * Returns the stored active selection scope id.\n */\n public static getActiveSelectionScope(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.activeSelectionScope\n : /* istanbul ignore next */ \"element\";\n }\n\n /**\n * This method stores the active selection scope to the supplied scope id, and triggers\n * a `SessionStateActionId.SetSelectionScope` event in the `SyncUiEventDispatcher`.\n * Note: As of 4.0, this method *does not change* the active selection scope in the `Presentation.selection.scopes.activeScope` property.\n * This event should be listened to and the change should typically be applied to\n * `Presentation.selection.scopes.activeScope` property from the `@itwin/presentation-frontend` package.\n */\n public static setActiveSelectionScope(selectionScopeId: string): void {\n // istanbul ignore else\n if (UiFramework.frameworkState) {\n const foundIndex =\n UiFramework.frameworkState.sessionState.availableSelectionScopes.findIndex(\n (selectionScope: PresentationSelectionScope) =>\n selectionScope.id === selectionScopeId\n );\n if (-1 !== foundIndex) {\n const scope =\n UiFramework.frameworkState.sessionState.availableSelectionScopes[\n foundIndex\n ];\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetSelectionScope,\n scope.id\n );\n }\n }\n }\n\n /** @public */\n public static openCursorMenu(menuData: CursorMenuData | undefined): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.UpdateCursorMenu,\n menuData\n );\n }\n\n /** @public */\n public static closeCursorMenu(): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.UpdateCursorMenu,\n undefined\n );\n }\n\n /** @public */\n public static getCursorMenuData(): CursorMenuData | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.cursorMenuData\n : /* istanbul ignore next */ undefined;\n }\n\n public static getActiveIModelId(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.iModelId\n : /* istanbul ignore next */ \"\";\n }\n\n public static setActiveIModelId(iModelId: string): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetActiveIModelId,\n iModelId\n );\n }\n\n public static setIModelConnection(\n iModelConnection: IModelConnection | undefined,\n immediateSync = false\n ) {\n const oldConnection = UiFramework.getIModelConnection();\n if (oldConnection === iModelConnection) return;\n\n InternalFrontstageManager.clearFrontstageDefsForIModelId(\n oldConnection?.iModelId\n );\n\n oldConnection && SyncUiEventDispatcher.clearConnectionEvents(oldConnection);\n iModelConnection &&\n SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetIModelConnection,\n iModelConnection,\n immediateSync\n );\n const itemsSelected = iModelConnection\n ? iModelConnection.selectionSet.elements.size\n : 0;\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetNumItemsSelected,\n itemsSelected\n );\n UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? \"\");\n }\n\n public static getIModelConnection(): IModelConnection | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.iModelConnection\n : /* istanbul ignore next */ undefined;\n }\n\n /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders\n * @public\n */\n public static async initializeStateFromUserSettingsProviders(\n immediateSync = false\n ) {\n // let any registered providers to load values from the new storage location\n const providerKeys = [...this._uiSettingsProviderRegistry.keys()];\n for await (const key of providerKeys) {\n await this._uiSettingsProviderRegistry\n .get(key)!\n .loadUserSettings(UiFramework._uiStateStorage);\n }\n\n // istanbul ignore next\n if (immediateSync)\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.UiStateStorageChanged\n );\n else\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.UiStateStorageChanged\n );\n }\n\n /** @public */\n public static async setUiStateStorage(\n storage: UiStateStorage,\n immediateSync = false\n ) {\n if (UiFramework._uiStateStorage === storage) return;\n\n UiFramework._uiStateStorage = storage;\n await this.initializeStateFromUserSettingsProviders(immediateSync);\n }\n\n /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.\n * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,\n * which are now handled with user preferences.\n * @public\n */\n public static getUiStateStorage(): UiStateStorage {\n return UiFramework._uiStateStorage;\n }\n\n public static setDefaultIModelViewportControlId(\n iModelViewportControlId: string,\n immediateSync = false\n ) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultIModelViewportControlId,\n iModelViewportControlId,\n immediateSync\n );\n }\n\n public static getDefaultIModelViewportControlId(): string | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultIModelViewportControlId\n : /* istanbul ignore next */ undefined;\n }\n\n public static setDefaultViewId(viewId: string, immediateSync = false) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultViewId,\n viewId,\n immediateSync\n );\n }\n\n public static getDefaultViewId(): string | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultViewId\n : /* istanbul ignore next */ undefined;\n }\n\n public static setDefaultViewState(\n viewState: ViewState,\n immediateSync = false\n ) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultViewState,\n viewState,\n immediateSync\n );\n }\n public static getDefaultViewState(): ViewState | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultViewState\n : /* istanbul ignore next */ undefined;\n }\n\n /**\n * Returns the stored list of available selection scopes. This list should be set by the application\n * by dispatching the `setAvailableSelectionScopes` action.\n * The value for this action typically come from `Presentation.selection.scopes.getSelectionScopes()`\n * method found in the `@itwin/presentation-frontend` package.\n * @public */\n public static getAvailableSelectionScopes(): PresentationSelectionScope[] {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.availableSelectionScopes\n : /* istanbul ignore next */\n [{ id: \"element\", label: \"Element\" } as PresentationSelectionScope];\n }\n\n public static getIsUiVisible() {\n return UiFramework.visibility.isUiVisible;\n }\n\n public static setIsUiVisible(visible: boolean) {\n if (UiFramework.visibility.isUiVisible !== visible) {\n UiFramework.visibility.isUiVisible = visible;\n UiFramework.onUiVisibilityChanged.emit({ visible });\n }\n }\n\n /**\n * Set the theme value used by the [[ThemeManager]] component.\n */\n public static setColorTheme(theme: ThemeId) {\n if (UiFramework.getColorTheme() === theme) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetTheme,\n theme,\n true\n );\n }\n\n public static getColorTheme(): ThemeId {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.theme\n : /* istanbul ignore next */ SYSTEM_PREFERRED_COLOR_THEME;\n }\n\n /** UiFramework.setToolbarOpacity() sets the non-hovered opacity to the value specified.\n * @param opacity a value between 0 and 1. The default value is 0.5. IT IS NOT ADVISED TO USE A VALUE BELOW 0.2\n * @public\n */\n public static setToolbarOpacity(opacity: number) {\n if (UiFramework.getToolbarOpacity() === opacity) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetToolbarOpacity,\n opacity,\n true\n );\n }\n\n /** UiFramework.getToolbarOpacity() returns a number between 0 and 1 that is the non-hovered opacity for toolbars.\n * @public\n */\n public static getToolbarOpacity(): number {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.toolbarOpacity\n : /* istanbul ignore next */ TOOLBAR_OPACITY_DEFAULT;\n }\n\n public static setWidgetOpacity(opacity: number) {\n if (UiFramework.getWidgetOpacity() === opacity) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetWidgetOpacity,\n opacity,\n true\n );\n }\n\n public static getWidgetOpacity(): number {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.widgetOpacity\n : /* istanbul ignore next */ WIDGET_OPACITY_DEFAULT;\n }\n\n // eslint-disable-next-line @itwin/prefer-get\n public static isMobile() {\n return ProcessDetector.isMobileBrowser;\n }\n\n public static get showWidgetIcon(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.showWidgetIcon\n : /* istanbul ignore next */ false;\n }\n\n public static setShowWidgetIcon(value: boolean) {\n if (UiFramework.showWidgetIcon === value) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetShowWidgetIcon,\n value,\n true\n );\n }\n /** Animate Tool Settings on appear */\n public static get animateToolSettings(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.animateToolSettings\n : /* istanbul ignore next */ false;\n }\n public static setAnimateToolSettings(value: boolean) {\n if (UiFramework.animateToolSettings === value) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.AnimateToolSettings,\n value,\n true\n );\n }\n\n /** Use Tool Name As Tool Settings Widget Tab Label */\n public static get useToolAsToolSettingsLabel(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState\n .useToolAsToolSettingsLabel\n : /* istanbul ignore next */ false;\n }\n public static setUseToolAsToolSettingsLabel(value: boolean) {\n if (UiFramework.useToolAsToolSettingsLabel === value) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n value,\n true\n );\n }\n\n /** When `true`, panels will close as soon as the mouse leave the panel.\n * When `false` (default), panels will close on next click outside the panel.\n * @public */\n public static get autoCollapseUnpinnedPanels(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState\n .autoCollapseUnpinnedPanels\n : /* istanbul ignore next */ false;\n }\n\n /** Method used to enable the automatic closing of an unpinned widget panel as soon as the\n * mouse leaves the widget panel. The default behavior is to require a mouse click outside\n * the panel before it is closed.\n * @public */\n\n public static setAutoCollapseUnpinnedPanels(value: boolean) {\n if (UiFramework.autoCollapseUnpinnedPanels === value) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n value,\n true\n );\n }\n\n public static get useDragInteraction(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.useDragInteraction\n : false;\n }\n\n public static setUseDragInteraction(useDragInteraction: boolean) {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetDragInteraction,\n useDragInteraction,\n true\n );\n }\n\n /** Returns the variable controlling whether the overlay is displayed in a Viewport\n * @public\n */\n public static get viewOverlayDisplay() {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.viewOverlayDisplay\n : /* istanbul ignore next */ true;\n }\n /** Set the variable that controls display of the view overlay. Applies to all viewports in the app\n * @public\n */\n public static setViewOverlayDisplay(display: boolean) {\n if (UiFramework.viewOverlayDisplay === display) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetViewOverlayDisplay,\n display\n );\n }\n\n /** Determines whether a ContextMenu is open\n * @alpha\n * */\n public static get isContextMenuOpen(): boolean {\n const contextMenu = document.querySelector(\"div.core-context-menu-opened\");\n return contextMenu !== null && contextMenu !== undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UiFramework.js","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\n// cSpell:ignore configurableui clientservices\n\nimport type { Store } from \"redux\";\nimport { Logger, ProcessDetector } from \"@itwin/core-bentley\";\nimport type { Localization } from \"@itwin/core-common\";\nimport type { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { IModelApp, SnapMode } from \"@itwin/core-frontend\";\nimport { UiAdmin, UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { LocalStateStorage, SettingsManager } from \"@itwin/core-react\";\nimport { getObjectClassName } from \"@itwin/core-react\";\nimport { UiIModelComponents } from \"@itwin/imodel-components-react\";\nimport { BackstageManager } from \"./backstage/BackstageManager\";\nimport { InternalChildWindowManager } from \"./childwindow/InternalChildWindowManager\";\nimport { InternalConfigurableUiManager } from \"./configurableui/InternalConfigurableUiManager\";\nimport { ConfigurableUiActionId } from \"./configurableui/state\";\nimport type { FrameworkState } from \"./redux/FrameworkState\";\nimport type {\n CursorMenuData,\n PresentationSelectionScope,\n} from \"./redux/SessionState\";\nimport { SessionStateActionId } from \"./redux/SessionState\";\nimport { StateManager } from \"./redux/StateManager\";\nimport type { HideIsolateEmphasizeActionHandler } from \"./selection/HideIsolateEmphasizeManager\";\nimport { HideIsolateEmphasizeManager } from \"./selection/HideIsolateEmphasizeManager\";\nimport type { ThemeId } from \"./theme/ThemeManager\";\nimport {\n SYSTEM_PREFERRED_COLOR_THEME,\n TOOLBAR_OPACITY_DEFAULT,\n WIDGET_OPACITY_DEFAULT,\n} from \"./theme/ThemeManager\";\nimport * as keyinPaletteTools from \"./tools/KeyinPaletteTools\";\nimport * as openSettingTools from \"./tools/OpenSettingsTool\";\nimport * as restoreLayoutTools from \"./tools/RestoreLayoutTool\";\nimport * as toolSettingTools from \"./tools/ToolSettingsTools\";\nimport {\n InternalUiShowHideManager,\n UiShowHideSettingsProvider,\n} from \"./utils/InternalUiShowHideManager\";\nimport { WidgetManager } from \"./widgets/WidgetManager\";\nimport { InternalFrontstageManager } from \"./frontstage/InternalFrontstageManager\";\nimport { InternalContentViewManager } from \"./content/InternalContentViewManager\";\nimport { InternalModalDialogManager } from \"./dialog/InternalModalDialogManager\";\nimport { InternalModelessDialogManager } from \"./dialog/InternalModelessDialogManager\";\nimport { InternalKeyboardShortcutManager } from \"./keyboardshortcut/InternalKeyboardShortcut\";\nimport { InternalToolSettingsManager } from \"./toolsettings/InternalToolSettingsManager\";\nimport type { FrameworkBackstage } from \"./framework/FrameworkBackstage\";\nimport type { FrameworkChildWindows } from \"./framework/FrameworkChildWindows\";\nimport type { FrameworkControls } from \"./framework/FrameworkControls\";\nimport type { FrameworkFrontstages } from \"./framework/FrameworkFrontstages\";\nimport type { FrameworkToolSettings } from \"./framework/FrameworkToolSettings\";\nimport type { FrameworkContent } from \"./framework/FrameworkContent\";\nimport type { FrameworkDialogs } from \"./framework/FrameworkDialogs\";\nimport type { FrameworkKeyboardShortcuts } from \"./framework/FrameworkKeyboardShortcuts\";\nimport type { FrameworkVisibility } from \"./framework/FrameworkVisibility\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"./syncui/SyncUiEventDispatcher\";\n\n// cSpell:ignore Mobi\n\n/** Interface to be implemented but any classes that wants to load their user settings when the UiStateEntry storage class is set.\n * @public\n */\nexport interface UserSettingsProvider {\n /** Unique provider Id */\n providerId: string;\n /** Function to load settings from settings storage */\n loadUserSettings(storage: UiStateStorage): Promise<void>;\n}\n\n/** UiVisibility Event Args interface.\n * @public\n */\nexport interface UiVisibilityEventArgs {\n visible: boolean;\n}\n\n/** UiVisibility Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class UiVisibilityChangedEvent extends UiEvent<UiVisibilityEventArgs> {}\n\n/** TrackingTime time argument used by our feature tracking manager as an option argument to the TelemetryClient\n * @internal\n */\nexport interface TrackingTime {\n startTime: Date;\n endTime: Date;\n}\n\n/** Main entry point to configure and interact with the features provided by the AppUi-react package.\n * @public\n */\nexport class UiFramework {\n /**\n * Operation on the backstage component.\n * @public\n */\n public static get backstage(): FrameworkBackstage {\n // istanbul ignore next\n if (!UiFramework._backstageManager)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._backstageManager;\n }\n\n /**\n * Manage access to the child windows.\n * @public\n */\n public static get childWindows(): FrameworkChildWindows {\n return this._childWindowManager;\n }\n\n /**\n * Manage registered controls\n * @public\n */\n public static get controls(): FrameworkControls {\n return InternalConfigurableUiManager;\n }\n\n /**\n * Manage access to frontstages and related helper methods.\n * @public\n */\n public static get frontstages(): FrameworkFrontstages {\n return InternalFrontstageManager;\n }\n\n /**\n * Manage access and behavior of the tool settings.\n * @public\n */\n public static get toolSettings(): FrameworkToolSettings {\n return InternalToolSettingsManager;\n }\n\n /**\n * Manage content presented by the frontstages.\n * @public\n */\n public static get content(): FrameworkContent {\n return InternalContentViewManager;\n }\n\n /**\n * Manage displayed dialogs.\n * @public\n */\n public static get dialogs(): FrameworkDialogs {\n return {\n modal: InternalModalDialogManager,\n modeless: InternalModelessDialogManager,\n };\n }\n\n /**\n * Manages global keyboard shortcuts\n *\n * Note: This only manages the list of available shortcuts registered with it. It does not listens to the actual\n * keyboard events. In order for these shortcuts to be called upon a keyboard event, the application can\n * override the `IModelApp.toolAdmin` and assign it [[FrameworkToolAdmin]] or create an event listener\n * and call `UiFramework.keyboardShortcuts.processKey`.\n * @public\n */\n public static get keyboardShortcuts(): FrameworkKeyboardShortcuts {\n return InternalKeyboardShortcutManager;\n }\n\n /**\n * Manages UI visibility (Show/Hide)\n * @public\n */\n public static get visibility(): FrameworkVisibility {\n return InternalUiShowHideManager;\n }\n\n private static _initialized = false;\n private static _store?: Store<any>;\n private static _complaint = \"UiFramework not initialized\";\n private static _frameworkStateKeyInStore: string = \"frameworkState\"; // default name\n private static _backstageManager?: BackstageManager;\n private static _widgetManager?: WidgetManager;\n private static _hideIsolateEmphasizeActionHandler?: HideIsolateEmphasizeActionHandler;\n /** this provides a default state storage handler */\n private static _uiStateStorage: UiStateStorage = new LocalStateStorage();\n private static _settingsManager?: SettingsManager;\n private static _uiSettingsProviderRegistry: Map<\n string,\n UserSettingsProvider\n > = new Map<string, UserSettingsProvider>();\n private static _childWindowManager = new InternalChildWindowManager();\n public static useDefaultPopoutUrl = false;\n\n /** Registers class that will be informed when the UserSettingsStorage location has been set or changed. This allows\n * classes to load any previously saved settings from the new storage location. Common storage locations are the browser's\n * local storage, or the iTwin Product Settings cloud storage available via the SettingsAdmin see `IModelApp.settingsAdmin`.\n * @public\n */\n public static registerUserSettingsProvider(entry: UserSettingsProvider) {\n if (this._uiSettingsProviderRegistry.has(entry.providerId)) return false;\n\n this._uiSettingsProviderRegistry.set(entry.providerId, entry);\n return true;\n }\n\n /** Get Show Ui event.\n * @public\n */\n public static readonly onUiVisibilityChanged = new UiVisibilityChangedEvent();\n\n /**\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\n */\n public static async initialize(\n store: Store<any> | undefined,\n frameworkStateKey?: string\n ): Promise<void> {\n if (UiFramework._initialized) {\n Logger.logInfo(\n UiFramework.loggerCategory(UiFramework),\n `UiFramework.initialize already called`\n );\n return;\n }\n\n /* if store is undefined then the StateManager class should have been initialized by parent app and the apps default set of reducers registered with it.\n If the app has no reducers to add and does not initialize a StateManager then just initialize the StateManager with the default framework reducer now */\n if (undefined === store && !StateManager.isInitialized(true))\n new StateManager();\n\n UiFramework._store = store;\n // ignore setting _frameworkStateKeyInStore if not using store\n if (frameworkStateKey && store)\n UiFramework._frameworkStateKeyInStore = frameworkStateKey;\n\n // set up namespace and register all tools from package\n const frameworkNamespace = IModelApp.localization?.registerNamespace(\n UiFramework.localizationNamespace\n );\n [\n restoreLayoutTools,\n keyinPaletteTools,\n openSettingTools,\n toolSettingTools,\n ].forEach((tool) =>\n IModelApp.tools.registerModule(tool, this.localizationNamespace)\n );\n\n UiFramework._backstageManager = new BackstageManager();\n UiFramework._hideIsolateEmphasizeActionHandler =\n new HideIsolateEmphasizeManager(); // this allows user to override the default HideIsolateEmphasizeManager implementation.\n UiFramework._widgetManager = new WidgetManager();\n\n // Initialize ui-imodel-components, ui-components, ui-core & ui-abstract\n await UiIModelComponents.initialize();\n\n UiFramework.settingsManager.onSettingsProvidersChanged.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.SettingsProvidersChanged\n );\n });\n\n // Initialize the MessagePresenter interface in UiAdmin for Editor notifications\n UiAdmin.messagePresenter = IModelApp.notifications;\n\n UiFramework._initialized = true;\n\n // initialize any standalone settings providers that don't need to have defaults set by iModelApp\n UiShowHideSettingsProvider.initialize();\n\n InternalConfigurableUiManager.initialize();\n\n return frameworkNamespace;\n }\n\n /** Un-registers the UiFramework internationalization service namespace */\n public static terminate() {\n UiFramework._store = undefined;\n UiFramework._frameworkStateKeyInStore = \"frameworkState\";\n if (StateManager.isInitialized(true)) StateManager.clearStore();\n // istanbul ignore next\n IModelApp.localization?.unregisterNamespace(\n UiFramework.localizationNamespace\n );\n UiFramework._backstageManager = undefined;\n UiFramework._widgetManager = undefined;\n UiFramework._hideIsolateEmphasizeActionHandler = undefined;\n UiFramework._settingsManager = undefined;\n\n UiIModelComponents.terminate();\n InternalUiShowHideManager.terminate();\n UiFramework._initialized = false;\n }\n\n /** Determines if UiFramework has been initialized */\n public static get initialized(): boolean {\n return UiFramework._initialized;\n }\n\n /** Property that returns the SettingManager used by AppUI-based applications.\n * @public\n */\n public static get settingsManager() {\n if (undefined === UiFramework._settingsManager)\n UiFramework._settingsManager = new SettingsManager();\n return UiFramework._settingsManager;\n }\n\n /** @public */\n public static get frameworkStateKey(): string {\n return UiFramework._frameworkStateKeyInStore;\n }\n\n /** The UiFramework state maintained by Redux\n * @public\n */\n public static get frameworkState(): FrameworkState | undefined {\n try {\n return UiFramework.store.getState()[UiFramework.frameworkStateKey];\n } catch (_e) {\n return undefined;\n }\n }\n\n /** The Redux store */\n public static get store(): Store<any> {\n if (UiFramework._store) return UiFramework._store;\n\n // istanbul ignore else\n if (!StateManager.isInitialized(true))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n `Error trying to access redux store before either store or StateManager has been initialized.`\n );\n\n // istanbul ignore next\n return StateManager.store;\n }\n\n /** The internationalization service created by the app.\n * @internal\n */\n public static get localization(): Localization {\n // istanbul ignore next\n if (!IModelApp.localization)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n `IModelApp.localization has not been defined.`\n );\n return IModelApp.localization;\n }\n\n /** The internationalization service namespace. */\n public static get localizationNamespace(): string {\n return \"UiFramework\";\n }\n\n /** @public */\n public static get hideIsolateEmphasizeActionHandler(): HideIsolateEmphasizeActionHandler {\n // istanbul ignore next\n if (!UiFramework._hideIsolateEmphasizeActionHandler)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._hideIsolateEmphasizeActionHandler;\n }\n\n /** @public */\n public static setHideIsolateEmphasizeActionHandler(\n handler: HideIsolateEmphasizeActionHandler | undefined\n ) {\n // istanbul ignore else\n if (handler) UiFramework._hideIsolateEmphasizeActionHandler = handler;\n else\n UiFramework._hideIsolateEmphasizeActionHandler =\n new HideIsolateEmphasizeManager();\n }\n\n /** @alpha */\n public static get widgetManager(): WidgetManager {\n // istanbul ignore next\n if (!UiFramework._widgetManager)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._widgetManager;\n }\n\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiFramework\" namespace. Do NOT include the namespace in the key.\n * @internal\n */\n public static translate(key: string | string[]): string {\n return IModelApp.localization.getLocalizedString(key, {\n ns: UiFramework.localizationNamespace,\n });\n }\n\n /** @internal */\n public static get packageName(): string {\n return \"appui-react\";\n }\n\n /** @internal */\n public static loggerCategory(obj: any): string {\n const className = getObjectClassName(obj);\n const category =\n UiFramework.packageName + (className ? `.${className}` : \"\");\n return category;\n }\n\n public static dispatchActionToStore(\n type: string,\n payload: any,\n immediateSync = false\n ) {\n UiFramework.store.dispatch({ type, payload });\n if (immediateSync) SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(type);\n else SyncUiEventDispatcher.dispatchSyncUiEvent(type);\n }\n\n public static setAccudrawSnapMode(snapMode: SnapMode) {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetSnapMode,\n snapMode,\n true\n );\n }\n\n public static getAccudrawSnapMode(): SnapMode {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.snapMode\n : /* istanbul ignore next */ SnapMode.NearestKeypoint;\n }\n\n /**\n * Returns the stored active selection scope id.\n */\n public static getActiveSelectionScope(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.activeSelectionScope\n : /* istanbul ignore next */ \"element\";\n }\n\n /**\n * This method stores the active selection scope to the supplied scope id, and triggers\n * a `SessionStateActionId.SetSelectionScope` event in the `SyncUiEventDispatcher`.\n * Note: As of 4.0, this method *does not change* the active selection scope in the `Presentation.selection.scopes.activeScope` property.\n * This event should be listened to and the change should typically be applied to\n * `Presentation.selection.scopes.activeScope` property from the `@itwin/presentation-frontend` package.\n */\n public static setActiveSelectionScope(selectionScopeId: string): void {\n // istanbul ignore else\n if (UiFramework.frameworkState) {\n const foundIndex =\n UiFramework.frameworkState.sessionState.availableSelectionScopes.findIndex(\n (selectionScope: PresentationSelectionScope) =>\n selectionScope.id === selectionScopeId\n );\n if (-1 !== foundIndex) {\n const scope =\n UiFramework.frameworkState.sessionState.availableSelectionScopes[\n foundIndex\n ];\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetSelectionScope,\n scope.id\n );\n }\n }\n }\n\n /** @public */\n public static openCursorMenu(menuData: CursorMenuData | undefined): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.UpdateCursorMenu,\n menuData\n );\n }\n\n /** @public */\n public static closeCursorMenu(): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.UpdateCursorMenu,\n undefined\n );\n }\n\n /** @public */\n public static getCursorMenuData(): CursorMenuData | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.cursorMenuData\n : /* istanbul ignore next */ undefined;\n }\n\n public static getActiveIModelId(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.iModelId\n : /* istanbul ignore next */ \"\";\n }\n\n public static setActiveIModelId(iModelId: string): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetActiveIModelId,\n iModelId\n );\n }\n\n public static setIModelConnection(\n iModelConnection: IModelConnection | undefined,\n immediateSync = false\n ) {\n const oldConnection = UiFramework.getIModelConnection();\n if (oldConnection === iModelConnection) return;\n\n InternalFrontstageManager.clearFrontstageDefsForIModelId(\n oldConnection?.iModelId\n );\n\n oldConnection && SyncUiEventDispatcher.clearConnectionEvents(oldConnection);\n iModelConnection &&\n SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetIModelConnection,\n iModelConnection,\n immediateSync\n );\n const itemsSelected = iModelConnection\n ? iModelConnection.selectionSet.elements.size\n : 0;\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetNumItemsSelected,\n itemsSelected\n );\n UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? \"\");\n }\n\n public static getIModelConnection(): IModelConnection | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.iModelConnection\n : /* istanbul ignore next */ undefined;\n }\n\n /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders\n * @public\n */\n public static async initializeStateFromUserSettingsProviders(\n immediateSync = false\n ) {\n // let any registered providers to load values from the new storage location\n const providerKeys = [...this._uiSettingsProviderRegistry.keys()];\n for await (const key of providerKeys) {\n await this._uiSettingsProviderRegistry\n .get(key)!\n .loadUserSettings(UiFramework._uiStateStorage);\n }\n\n // istanbul ignore next\n if (immediateSync)\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.UiStateStorageChanged\n );\n else\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.UiStateStorageChanged\n );\n }\n\n /** @public */\n public static async setUiStateStorage(\n storage: UiStateStorage,\n immediateSync = false\n ) {\n if (UiFramework._uiStateStorage === storage) return;\n\n UiFramework._uiStateStorage = storage;\n await this.initializeStateFromUserSettingsProviders(immediateSync);\n }\n\n /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.\n * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,\n * which are now handled with user preferences.\n * @public\n */\n public static getUiStateStorage(): UiStateStorage {\n return UiFramework._uiStateStorage;\n }\n\n public static setDefaultIModelViewportControlId(\n iModelViewportControlId: string,\n immediateSync = false\n ) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultIModelViewportControlId,\n iModelViewportControlId,\n immediateSync\n );\n }\n\n public static getDefaultIModelViewportControlId(): string | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultIModelViewportControlId\n : /* istanbul ignore next */ undefined;\n }\n\n public static setDefaultViewId(viewId: string, immediateSync = false) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultViewId,\n viewId,\n immediateSync\n );\n }\n\n public static getDefaultViewId(): string | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultViewId\n : /* istanbul ignore next */ undefined;\n }\n\n public static setDefaultViewState(\n viewState: ViewState,\n immediateSync = false\n ) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultViewState,\n viewState,\n immediateSync\n );\n }\n public static getDefaultViewState(): ViewState | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultViewState\n : /* istanbul ignore next */ undefined;\n }\n\n /**\n * Returns the stored list of available selection scopes. This list should be set by the application\n * by dispatching the `setAvailableSelectionScopes` action.\n * The value for this action typically come from `Presentation.selection.scopes.getSelectionScopes()`\n * method found in the `@itwin/presentation-frontend` package.\n * @public */\n public static getAvailableSelectionScopes(): PresentationSelectionScope[] {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.availableSelectionScopes\n : /* istanbul ignore next */\n [{ id: \"element\", label: \"Element\" } as PresentationSelectionScope];\n }\n\n public static getIsUiVisible() {\n return UiFramework.visibility.isUiVisible;\n }\n\n public static setIsUiVisible(visible: boolean) {\n if (UiFramework.visibility.isUiVisible !== visible) {\n UiFramework.visibility.isUiVisible = visible;\n UiFramework.onUiVisibilityChanged.emit({ visible });\n }\n }\n\n /**\n * Set the theme value used by the [[ThemeManager]] component.\n */\n public static setColorTheme(theme: ThemeId) {\n if (UiFramework.getColorTheme() === theme) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetTheme,\n theme,\n true\n );\n }\n\n public static getColorTheme(): ThemeId {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.theme\n : /* istanbul ignore next */ SYSTEM_PREFERRED_COLOR_THEME;\n }\n\n /** UiFramework.setToolbarOpacity() sets the non-hovered opacity to the value specified.\n * @param opacity a value between 0 and 1. The default value is 0.5. IT IS NOT ADVISED TO USE A VALUE BELOW 0.2\n * @public\n */\n public static setToolbarOpacity(opacity: number) {\n if (UiFramework.getToolbarOpacity() === opacity) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetToolbarOpacity,\n opacity,\n true\n );\n }\n\n /** UiFramework.getToolbarOpacity() returns a number between 0 and 1 that is the non-hovered opacity for toolbars.\n * @public\n */\n public static getToolbarOpacity(): number {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.toolbarOpacity\n : /* istanbul ignore next */ TOOLBAR_OPACITY_DEFAULT;\n }\n\n public static setWidgetOpacity(opacity: number) {\n if (UiFramework.getWidgetOpacity() === opacity) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetWidgetOpacity,\n opacity,\n true\n );\n }\n\n public static getWidgetOpacity(): number {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.widgetOpacity\n : /* istanbul ignore next */ WIDGET_OPACITY_DEFAULT;\n }\n\n // eslint-disable-next-line @itwin/prefer-get\n public static isMobile() {\n return ProcessDetector.isMobileBrowser;\n }\n\n public static get showWidgetIcon(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.showWidgetIcon\n : /* istanbul ignore next */ false;\n }\n\n public static setShowWidgetIcon(value: boolean) {\n if (UiFramework.showWidgetIcon === value) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetShowWidgetIcon,\n value,\n true\n );\n }\n /** Animate Tool Settings on appear */\n public static get animateToolSettings(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.animateToolSettings\n : /* istanbul ignore next */ false;\n }\n public static setAnimateToolSettings(value: boolean) {\n if (UiFramework.animateToolSettings === value) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.AnimateToolSettings,\n value,\n true\n );\n }\n\n /** Use Tool Name As Tool Settings Widget Tab Label */\n public static get useToolAsToolSettingsLabel(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState\n .useToolAsToolSettingsLabel\n : /* istanbul ignore next */ false;\n }\n public static setUseToolAsToolSettingsLabel(value: boolean) {\n if (UiFramework.useToolAsToolSettingsLabel === value) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n value,\n true\n );\n }\n\n /** When `true`, panels will close as soon as the mouse leave the panel.\n * When `false` (default), panels will close on next click outside the panel.\n * @public */\n public static get autoCollapseUnpinnedPanels(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState\n .autoCollapseUnpinnedPanels\n : /* istanbul ignore next */ false;\n }\n\n /** Method used to enable the automatic closing of an unpinned widget panel as soon as the\n * mouse leaves the widget panel. The default behavior is to require a mouse click outside\n * the panel before it is closed.\n * @public */\n\n public static setAutoCollapseUnpinnedPanels(value: boolean) {\n if (UiFramework.autoCollapseUnpinnedPanels === value) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n value,\n true\n );\n }\n\n public static get useDragInteraction(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.useDragInteraction\n : false;\n }\n\n public static setUseDragInteraction(useDragInteraction: boolean) {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetDragInteraction,\n useDragInteraction,\n true\n );\n }\n\n /** Returns the variable controlling whether the overlay is displayed in a Viewport\n * @public\n */\n public static get viewOverlayDisplay() {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.viewOverlayDisplay\n : /* istanbul ignore next */ true;\n }\n /** Set the variable that controls display of the view overlay. Applies to all viewports in the app\n * @public\n */\n public static setViewOverlayDisplay(display: boolean) {\n if (UiFramework.viewOverlayDisplay === display) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetViewOverlayDisplay,\n display\n );\n }\n\n /** Determines whether a ContextMenu is open\n * @alpha\n * */\n public static get isContextMenuOpen(): boolean {\n const contextMenu = document.querySelector(\"div.core-context-menu-opened\");\n return contextMenu !== null && contextMenu !== undefined;\n }\n}\n"]}
|
|
@@ -6,7 +6,8 @@ import * as React from "react";
|
|
|
6
6
|
import type { CommonProps, UiStateStorage } from "@itwin/core-react";
|
|
7
7
|
import { Orientation } from "@itwin/core-react";
|
|
8
8
|
/** Properties for [[AccuDrawFieldContainer]] component
|
|
9
|
-
* @beta
|
|
9
|
+
* @beta
|
|
10
|
+
*/
|
|
10
11
|
export interface AccuDrawFieldContainerProps extends CommonProps {
|
|
11
12
|
/** Orientation of the fields */
|
|
12
13
|
orientation: Orientation;
|
|
@@ -16,6 +17,7 @@ export interface AccuDrawFieldContainerProps extends CommonProps {
|
|
|
16
17
|
showZOverride?: boolean;
|
|
17
18
|
}
|
|
18
19
|
/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field
|
|
19
|
-
* @beta
|
|
20
|
+
* @beta
|
|
21
|
+
*/
|
|
20
22
|
export declare function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps): React.JSX.Element;
|
|
21
23
|
//# sourceMappingURL=AccuDrawFieldContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawFieldContainer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,+BAA+B,CAAC;AAEvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,WAAW,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"AccuDrawFieldContainer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,+BAA+B,CAAC;AAEvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,WAAW,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUhD;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC9D,gCAAgC;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,gBAAgB;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAcD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,qBAoaxE"}
|
|
@@ -28,7 +28,8 @@ const defaultXLabel = "X";
|
|
|
28
28
|
const defaultYLabel = "Y";
|
|
29
29
|
const defaultZLabel = "Z";
|
|
30
30
|
/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field
|
|
31
|
-
* @beta
|
|
31
|
+
* @beta
|
|
32
|
+
*/
|
|
32
33
|
function AccuDrawFieldContainer(props) {
|
|
33
34
|
const { className, style, orientation, uiSettingsStorage, showZOverride, ...otherProps } = props;
|
|
34
35
|
const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);
|
|
@@ -38,12 +39,12 @@ function AccuDrawFieldContainer(props) {
|
|
|
38
39
|
const angleInputRef = React.useRef(null);
|
|
39
40
|
const distanceInputRef = React.useRef(null);
|
|
40
41
|
const focusField = React.useRef(undefined);
|
|
41
|
-
const [mode, setMode] = React.useState(core_frontend_1.
|
|
42
|
-
const [xLock, setXLock] = React.useState(
|
|
43
|
-
const [yLock, setYLock] = React.useState(
|
|
44
|
-
const [zLock, setZLock] = React.useState(
|
|
45
|
-
const [angleLock, setAngleLock] = React.useState(
|
|
46
|
-
const [distanceLock, setDistanceLock] = React.useState(
|
|
42
|
+
const [mode, setMode] = React.useState(() => core_frontend_1.IModelApp.accuDraw.compassMode);
|
|
43
|
+
const [xLock, setXLock] = React.useState(() => core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.X_Item));
|
|
44
|
+
const [yLock, setYLock] = React.useState(() => core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.Y_Item));
|
|
45
|
+
const [zLock, setZLock] = React.useState(() => core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.Z_Item));
|
|
46
|
+
const [angleLock, setAngleLock] = React.useState(() => core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.ANGLE_Item));
|
|
47
|
+
const [distanceLock, setDistanceLock] = React.useState(() => core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.DIST_Item));
|
|
47
48
|
const [showZ, setShowZ] = React.useState(true);
|
|
48
49
|
const [xLabel, setXLabel] = React.useState(defaultXLabel);
|
|
49
50
|
const [yLabel, setYLabel] = React.useState(defaultYLabel);
|
|
@@ -82,12 +83,7 @@ function AccuDrawFieldContainer(props) {
|
|
|
82
83
|
return inputRef;
|
|
83
84
|
};
|
|
84
85
|
React.useEffect(() => {
|
|
85
|
-
|
|
86
|
-
setYLock(core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.Y_Item));
|
|
87
|
-
setZLock(core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.Z_Item));
|
|
88
|
-
setAngleLock(core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.ANGLE_Item));
|
|
89
|
-
setDistanceLock(core_frontend_1.IModelApp.accuDraw.getFieldLock(core_frontend_1.ItemField.DIST_Item));
|
|
90
|
-
const handleSetFieldLock = (args) => {
|
|
86
|
+
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener((args) => {
|
|
91
87
|
switch (args.field) {
|
|
92
88
|
case core_frontend_1.ItemField.X_Item:
|
|
93
89
|
setXLock(args.lock);
|
|
@@ -105,8 +101,7 @@ function AccuDrawFieldContainer(props) {
|
|
|
105
101
|
setDistanceLock(args.lock);
|
|
106
102
|
break;
|
|
107
103
|
}
|
|
108
|
-
};
|
|
109
|
-
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener(handleSetFieldLock);
|
|
104
|
+
});
|
|
110
105
|
}, []);
|
|
111
106
|
const setFocusToField = React.useCallback((field) => {
|
|
112
107
|
const inputRef = getInputRef(field);
|
|
@@ -117,26 +112,21 @@ function AccuDrawFieldContainer(props) {
|
|
|
117
112
|
}
|
|
118
113
|
}, []);
|
|
119
114
|
React.useEffect(() => {
|
|
120
|
-
|
|
115
|
+
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener((args) => {
|
|
121
116
|
focusField.current = args.field;
|
|
122
117
|
setFocusToField(focusField.current);
|
|
123
|
-
};
|
|
124
|
-
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);
|
|
118
|
+
});
|
|
125
119
|
}, [setFocusToField]);
|
|
126
120
|
React.useEffect(() => {
|
|
127
|
-
|
|
128
|
-
// istanbul ignore else
|
|
121
|
+
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(() => {
|
|
129
122
|
if (focusField.current)
|
|
130
123
|
setFocusToField(focusField.current);
|
|
131
|
-
};
|
|
132
|
-
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(handleGrabInputFocus);
|
|
124
|
+
});
|
|
133
125
|
}, [setFocusToField]);
|
|
134
126
|
React.useEffect(() => {
|
|
135
|
-
|
|
136
|
-
const handleSetMode = (args) => {
|
|
127
|
+
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener((args) => {
|
|
137
128
|
setMode(args.mode);
|
|
138
|
-
};
|
|
139
|
-
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(handleSetMode);
|
|
129
|
+
});
|
|
140
130
|
}, []);
|
|
141
131
|
const handleValueChanged = React.useCallback((field, stringValue) => {
|
|
142
132
|
FrameworkAccuDraw_1.FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);
|
|
@@ -224,9 +214,7 @@ function AccuDrawFieldContainer(props) {
|
|
|
224
214
|
};
|
|
225
215
|
return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(handleAccuDrawUiSettingsChanged);
|
|
226
216
|
}, []);
|
|
227
|
-
const classNames = (0, classnames_1.default)("uifw-accudraw-field-container", orientation === core_react_1.Orientation.Vertical
|
|
228
|
-
? "uifw-accudraw-field-container-vertical"
|
|
229
|
-
: "uifw-accudraw-field-container-horizontal", className);
|
|
217
|
+
const classNames = (0, classnames_1.default)("uifw-accudraw-field-container", orientation === core_react_1.Orientation.Vertical ? "uifw-vertical" : "uifw-horizontal", className);
|
|
230
218
|
const delay = 250;
|
|
231
219
|
const labelCentered = xLabel !== undefined &&
|
|
232
220
|
xLabel.length === 1 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,yCAAuC;AACvC,2CAAoC;AACpC,+BAA+B;AAM/B,wDAAyE;AAEzE,kDAAgD;AAChD,4EAAoE;AAEpE,6DAA0D;AAM1D,2DAAwD;AAExD,2CAAuC;AACvC,iDAA6C;AAC7C,gDAA6C;AAa7C,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAE/B,SAAS,cAAc,CAAC,EAAmB;IACzC,MAAM,KAAK,GACT,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;WACW;AACX,SAAgB,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EACJ,SAAS,EACT,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,GAAG,UAAU,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAwB,SAAS,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,2BAAW,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,aAAa,CAAC,CAAC;IAC9E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,aAAa,CAAC,CAAC;IAC9E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,aAAa,CAAC,CAAC;IAC9E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAChD,SAAS,CACV,CAAC;IACF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CACtD,SAAS,CACV,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC9C,mBAAY,CACb,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpD,sBAAe,CAChB,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CACxC,SAAS,CACV,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CACxC,SAAS,CACV,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CACxC,SAAS,CACV,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAEhD,SAAS,CAAC,CAAC;IACb,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAEtD,SAAS,CAAC,CAAC;IAEb,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAqC,EAAE;QAC1E,IAAI,QAA2C,CAAC;QAChD,QAAQ,KAAK,EAAE;YACb,KAAK,yBAAS,CAAC,MAAM;gBACnB,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACR,KAAK,yBAAS,CAAC,MAAM;gBACnB,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACR,KAAK,yBAAS,CAAC,MAAM;gBACnB,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACR,KAAK,yBAAS,CAAC,UAAU;gBACvB,QAAQ,GAAG,aAAa,CAAC;gBACzB,MAAM;YACR,KAAK,yBAAS,CAAC,SAAS;gBACtB,QAAQ,GAAG,gBAAgB,CAAC;gBAC5B,MAAM;SACT;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,QAAQ,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,QAAQ,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,YAAY,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,eAAe,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAEtE,MAAM,kBAAkB,GAAG,CAAC,IAAmC,EAAE,EAAE;YACjE,QAAQ,IAAI,CAAC,KAAK,EAAE;gBAClB,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,UAAU;oBACvB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,yBAAS,CAAC,SAAS;oBACtB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;aACT;QACH,CAAC,CAAC;QACF,OAAO,qCAAiB,CAAC,2BAA2B,CAAC,WAAW,CAC9D,kBAAkB,CACnB,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAgB,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAEpC,uBAAuB;QACvB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,OAAO,EAAE;YACnE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SAC3B;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,mBAAmB,GAAG,CAAC,IAAoC,EAAE,EAAE;YACnE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,OAAO,qCAAiB,CAAC,4BAA4B,CAAC,WAAW,CAC/D,mBAAmB,CACpB,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,uBAAuB;YACvB,IAAI,UAAU,CAAC,OAAO;gBAAE,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC,CAAC;QACF,OAAO,qCAAiB,CAAC,6BAA6B,CAAC,WAAW,CAChE,oBAAoB,CACrB,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,yBAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAExC,MAAM,aAAa,GAAG,CAAC,IAAqC,EAAE,EAAE;YAC9D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,OAAO,qCAAiB,CAAC,6BAA6B,CAAC,WAAW,CAChE,aAAa,CACd,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAC1C,CAAC,KAAgB,EAAE,WAAmB,EAAE,EAAE;QACxC,qCAAiB,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9C,yBAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CACN,aAAa,IAAI,cAAc,CAAC,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CACpE,CAAC;QAEF,uBAAuB;QACvB,MAAM,6BAA6B,GAAG,CACpC,IAAiC,EACjC,EAAE;YACF,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,OAAO,yBAAS,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAChE,6BAA6B,CAC9B,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,gBAAgB,GAAG,CACvB,OAAwC,EACxC,eAA8C,EAC9C,eAA8C,EACb,EAAE;YACnC,IAAI,UAA2C,CAAC;YAChD,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,OAAO,IAAI,eAAe,IAAI,eAAe,EAAE;gBACjD,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpC,IAAI,eAAe,EAAE;oBACnB,UAAU;wBACR,OAAO,eAAe,KAAK,QAAQ;4BACjC,CAAC,CAAC,eAAe;4BACjB,CAAC,CAAC,IAAA,4CAAkB,EAAC,eAAe,CAAC,CAAC;oBAC1C,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;iBAC7D;gBACD,IAAI,eAAe,EAAE;oBACnB,UAAU;wBACR,OAAO,eAAe,KAAK,QAAQ;4BACjC,CAAC,CAAC,eAAe;4BACjB,CAAC,CAAC,IAAA,4CAAkB,EAAC,eAAe,CAAC,CAAC;oBAC1C,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;iBACnD;aACF;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;QAEF,MAAM,yBAAyB,GAAG,CAAC,QAA6B,EAAE,EAAE;YAClE,SAAS,CACP,QAAQ;gBACN,CAAC,CAAC,gBAAgB,CACd,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,gBAAgB,EACzB,QAAQ,CAAC,gBAAgB,CAC1B;gBACH,CAAC,CAAC,SAAS,CACd,CAAC;YACF,SAAS,CACP,QAAQ;gBACN,CAAC,CAAC,gBAAgB,CACd,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,gBAAgB,EACzB,QAAQ,CAAC,gBAAgB,CAC1B;gBACH,CAAC,CAAC,SAAS,CACd,CAAC;YACF,SAAS,CACP,QAAQ;gBACN,CAAC,CAAC,gBAAgB,CACd,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,gBAAgB,EACzB,QAAQ,CAAC,gBAAgB,CAC1B;gBACH,CAAC,CAAC,SAAS,CACd,CAAC;YACF,aAAa,CACX,QAAQ;gBACN,CAAC,CAAC,gBAAgB,CACd,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,oBAAoB,EAC7B,QAAQ,CAAC,oBAAoB,CAC9B;gBACH,CAAC,CAAC,SAAS,CACd,CAAC;YACF,gBAAgB,CACd,QAAQ;gBACN,CAAC,CAAC,gBAAgB,CACd,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,uBAAuB,EAChC,QAAQ,CAAC,uBAAuB,CACjC;gBACH,CAAC,CAAC,SAAS,CACd,CAAC;YAEF,SAAS,CACP,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBACvC,CAAC,CAAC,QAAQ,CAAC,MAAM;gBACjB,CAAC,CAAC,aAAa,CAClB,CAAC;YACF,SAAS,CACP,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBACvC,CAAC,CAAC,QAAQ,CAAC,MAAM;gBACjB,CAAC,CAAC,aAAa,CAClB,CAAC;YACF,SAAS,CACP,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBACvC,CAAC,CAAC,QAAQ,CAAC,MAAM;gBACjB,CAAC,CAAC,aAAa,CAClB,CAAC;YACF,aAAa,CACX,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;gBAC3C,CAAC,CAAC,QAAQ,CAAC,UAAU;gBACrB,CAAC,CAAC,SAAS,CACd,CAAC;YACF,gBAAgB,CACd,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;gBAC9C,CAAC,CAAC,QAAQ,CAAC,aAAa;gBACxB,CAAC,CAAC,SAAS,CACd,CAAC;YAEF,QAAQ,CACN,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CACtE,CAAC;YACF,QAAQ,CACN,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CACtE,CAAC;YACF,QAAQ,CACN,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CACtE,CAAC;YACF,YAAY,CACV,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;gBAC1C,CAAC,CAAC,QAAQ,CAAC,SAAS;gBACpB,CAAC,CAAC,mBAAY,CACjB,CAAC;YACF,eAAe,CACb,QAAQ,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS;gBAC7C,CAAC,CAAC,QAAQ,CAAC,YAAY;gBACvB,CAAC,CAAC,sBAAe,CACpB,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,qCAAiB,CAAC,cAAc;YAClC,yBAAyB,CAAC,qCAAiB,CAAC,cAAc,CAAC,CAAC;QAE9D,uBAAuB;QACvB,MAAM,+BAA+B,GAAG,GAAG,EAAE;YAC3C,yBAAyB,CAAC,qCAAiB,CAAC,cAAc,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEF,OAAO,qCAAiB,CAAC,gCAAgC,CAAC,WAAW,CACnE,+BAA+B,CAChC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,+BAA+B,EAC/B,WAAW,KAAK,wBAAW,CAAC,QAAQ;QAClC,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,0CAA0C,EAC9C,SAAS,CACV,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,aAAa,GACjB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAEtB,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,KAAM,UAAU;QACrD,IAAI,KAAK,2BAAW,CAAC,WAAW,IAAI,CACnC;YACE,oBAAC,uCAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,yBAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,EACf,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,GAC9B;YACF,oBAAC,uCAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,yBAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,EACf,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,GAC9B;YACD,KAAK,IAAI,CACR,oBAAC,uCAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,yBAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,EACf,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,GAC9B,CACH,CACA,CACJ;QACA,IAAI,KAAK,2BAAW,CAAC,KAAK,IAAI,CAC7B;YACE,oBAAC,uCAAkB,IACjB,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,yBAAS,CAAC,UAAU,EAC3B,EAAE,EAAE,uBAAuB,cAAc,EAAE,iBAC/B,qBAAqB,EACjC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,SAAS,EACnB,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,UAAU,EAAE,WAAW,CAAC,EAEvD,YAAY,EAAE,gBAAgB,GAC9B;YACF,oBAAC,uCAAkB,IACjB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,yBAAS,CAAC,SAAS,EAC1B,EAAE,EAAE,0BAA0B,cAAc,EAAE,iBAClC,wBAAwB,EACpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,YAAY,EACtB,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,SAAS,EAAE,WAAW,CAAC,EAEtD,YAAY,EAAE,gBAAgB,GAC9B,CACD,CACJ,CACG,CACP,CAAC;AACJ,CAAC;AA9aD,wDA8aC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./AccuDrawFieldContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport type {\n ScreenViewport,\n SelectedViewportChangedArgs,\n} from \"@itwin/core-frontend\";\nimport { CompassMode, IModelApp, ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec, UiStateStorage } from \"@itwin/core-react\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\n\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\nimport type {\n AccuDrawSetCompassModeEventArgs,\n AccuDrawSetFieldFocusEventArgs,\n AccuDrawSetFieldLockEventArgs,\n} from \"./FrameworkAccuDraw\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\nimport angleIconSvg from \"./angle.svg\";\nimport distanceIconSvg from \"./distance.svg\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Properties for [[AccuDrawFieldContainer]] component\n * @beta */\nexport interface AccuDrawFieldContainerProps extends CommonProps {\n /** Orientation of the fields */\n orientation: Orientation;\n /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */\n uiSettingsStorage?: UiStateStorage;\n /** @internal */\n showZOverride?: boolean;\n}\n\nlet AccuDrawContainerIndex = 0;\n\nfunction determineShowZ(vp?: ScreenViewport): boolean {\n const showZ =\n vp !== undefined ? /* istanbul ignore next */ vp.view.is3d() : false;\n return showZ;\n}\n\nconst defaultXLabel = \"X\";\nconst defaultYLabel = \"Y\";\nconst defaultZLabel = \"Z\";\n\n/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field\n * @beta */\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\n const {\n className,\n style,\n orientation,\n uiSettingsStorage,\n showZOverride,\n ...otherProps\n } = props;\n\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\n const xInputRef = React.useRef<HTMLInputElement>(null);\n const yInputRef = React.useRef<HTMLInputElement>(null);\n const zInputRef = React.useRef<HTMLInputElement>(null);\n const angleInputRef = React.useRef<HTMLInputElement>(null);\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\n const focusField = React.useRef<ItemField | undefined>(undefined);\n const [mode, setMode] = React.useState(CompassMode.Rectangular);\n const [xLock, setXLock] = React.useState(false);\n const [yLock, setYLock] = React.useState(false);\n const [zLock, setZLock] = React.useState(false);\n const [angleLock, setAngleLock] = React.useState(false);\n const [distanceLock, setDistanceLock] = React.useState(false);\n const [showZ, setShowZ] = React.useState(true);\n const [xLabel, setXLabel] = React.useState<string | undefined>(defaultXLabel);\n const [yLabel, setYLabel] = React.useState<string | undefined>(defaultYLabel);\n const [zLabel, setZLabel] = React.useState<string | undefined>(defaultZLabel);\n const [angleLabel, setAngleLabel] = React.useState<string | undefined>(\n undefined\n );\n const [distanceLabel, setDistanceLabel] = React.useState<string | undefined>(\n undefined\n );\n const [xIcon, setXIcon] = React.useState<IconSpec | undefined>(undefined);\n const [yIcon, setYIcon] = React.useState<IconSpec | undefined>(undefined);\n const [zIcon, setZIcon] = React.useState<IconSpec | undefined>(undefined);\n const [angleIcon, setAngleIcon] = React.useState<IconSpec | undefined>(\n angleIconSvg\n );\n const [distanceIcon, setDistanceIcon] = React.useState<IconSpec | undefined>(\n distanceIconSvg\n );\n const [xStyle, setXStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [yStyle, setYStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [zStyle, setZStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [angleStyle, setAngleStyle] = React.useState<\n React.CSSProperties | undefined\n >(undefined);\n const [distanceStyle, setDistanceStyle] = React.useState<\n React.CSSProperties | undefined\n >(undefined);\n\n const getInputRef = (field: ItemField): React.RefObject<HTMLInputElement> => {\n let inputRef: React.RefObject<HTMLInputElement>;\n switch (field) {\n case ItemField.X_Item:\n inputRef = xInputRef;\n break;\n case ItemField.Y_Item:\n inputRef = yInputRef;\n break;\n case ItemField.Z_Item:\n inputRef = zInputRef;\n break;\n case ItemField.ANGLE_Item:\n inputRef = angleInputRef;\n break;\n case ItemField.DIST_Item:\n inputRef = distanceInputRef;\n break;\n }\n return inputRef;\n };\n\n React.useEffect(() => {\n setXLock(IModelApp.accuDraw.getFieldLock(ItemField.X_Item));\n setYLock(IModelApp.accuDraw.getFieldLock(ItemField.Y_Item));\n setZLock(IModelApp.accuDraw.getFieldLock(ItemField.Z_Item));\n setAngleLock(IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item));\n setDistanceLock(IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item));\n\n const handleSetFieldLock = (args: AccuDrawSetFieldLockEventArgs) => {\n switch (args.field) {\n case ItemField.X_Item:\n setXLock(args.lock);\n break;\n case ItemField.Y_Item:\n setYLock(args.lock);\n break;\n case ItemField.Z_Item:\n setZLock(args.lock);\n break;\n case ItemField.ANGLE_Item:\n setAngleLock(args.lock);\n break;\n case ItemField.DIST_Item:\n setDistanceLock(args.lock);\n break;\n }\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener(\n handleSetFieldLock\n );\n }, []);\n\n const setFocusToField = React.useCallback((field: ItemField) => {\n const inputRef = getInputRef(field);\n\n // istanbul ignore else\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, []);\n\n React.useEffect(() => {\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\n focusField.current = args.field;\n setFocusToField(focusField.current);\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(\n handleSetFieldFocus\n );\n }, [setFocusToField]);\n\n React.useEffect(() => {\n const handleGrabInputFocus = () => {\n // istanbul ignore else\n if (focusField.current) setFocusToField(focusField.current);\n };\n return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(\n handleGrabInputFocus\n );\n }, [setFocusToField]);\n\n React.useEffect(() => {\n setMode(IModelApp.accuDraw.compassMode);\n\n const handleSetMode = (args: AccuDrawSetCompassModeEventArgs) => {\n setMode(args.mode);\n };\n\n return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(\n handleSetMode\n );\n }, []);\n\n const handleValueChanged = React.useCallback(\n (field: ItemField, stringValue: string) => {\n FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);\n },\n []\n );\n\n const handleEscPressed = React.useCallback(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n\n React.useEffect(() => {\n setShowZ(\n showZOverride || determineShowZ(IModelApp.viewManager.selectedView)\n );\n\n // istanbul ignore next\n const handleSelectedViewportChanged = (\n args: SelectedViewportChangedArgs\n ) => {\n setShowZ(determineShowZ(args.current));\n };\n\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(\n handleSelectedViewportChanged\n );\n }, [showZOverride]);\n\n React.useEffect(() => {\n const createFieldStyle = (\n inStyle: React.CSSProperties | undefined,\n backgroundColor: ColorDef | string | undefined,\n foregroundColor: ColorDef | string | undefined\n ): React.CSSProperties | undefined => {\n let fieldStyle: React.CSSProperties | undefined;\n let rgbaString = \"\";\n if (inStyle || backgroundColor || foregroundColor) {\n fieldStyle = inStyle ? inStyle : {};\n if (backgroundColor) {\n rgbaString =\n typeof backgroundColor === \"string\"\n ? backgroundColor\n : getCSSColorFromDef(backgroundColor);\n fieldStyle = { ...fieldStyle, backgroundColor: rgbaString };\n }\n if (foregroundColor) {\n rgbaString =\n typeof foregroundColor === \"string\"\n ? foregroundColor\n : getCSSColorFromDef(foregroundColor);\n fieldStyle = { ...fieldStyle, color: rgbaString };\n }\n }\n return fieldStyle;\n };\n\n const processAccuDrawUiSettings = (settings?: AccuDrawUiSettings) => {\n setXStyle(\n settings\n ? createFieldStyle(\n settings.xStyle,\n settings.xBackgroundColor,\n settings.xForegroundColor\n )\n : undefined\n );\n setYStyle(\n settings\n ? createFieldStyle(\n settings.yStyle,\n settings.yBackgroundColor,\n settings.yForegroundColor\n )\n : undefined\n );\n setZStyle(\n settings\n ? createFieldStyle(\n settings.zStyle,\n settings.zBackgroundColor,\n settings.zForegroundColor\n )\n : undefined\n );\n setAngleStyle(\n settings\n ? createFieldStyle(\n settings.angleStyle,\n settings.angleBackgroundColor,\n settings.angleForegroundColor\n )\n : undefined\n );\n setDistanceStyle(\n settings\n ? createFieldStyle(\n settings.distanceStyle,\n settings.distanceBackgroundColor,\n settings.distanceForegroundColor\n )\n : undefined\n );\n\n setXLabel(\n settings && settings.xLabel !== undefined\n ? settings.xLabel\n : defaultXLabel\n );\n setYLabel(\n settings && settings.yLabel !== undefined\n ? settings.yLabel\n : defaultYLabel\n );\n setZLabel(\n settings && settings.zLabel !== undefined\n ? settings.zLabel\n : defaultZLabel\n );\n setAngleLabel(\n settings && settings.angleLabel !== undefined\n ? settings.angleLabel\n : undefined\n );\n setDistanceLabel(\n settings && settings.distanceLabel !== undefined\n ? settings.distanceLabel\n : undefined\n );\n\n setXIcon(\n settings && settings.xIcon !== undefined ? settings.xIcon : undefined\n );\n setYIcon(\n settings && settings.yIcon !== undefined ? settings.yIcon : undefined\n );\n setZIcon(\n settings && settings.zIcon !== undefined ? settings.zIcon : undefined\n );\n setAngleIcon(\n settings && settings.angleIcon !== undefined\n ? settings.angleIcon\n : angleIconSvg\n );\n setDistanceIcon(\n settings && settings.distanceIcon !== undefined\n ? settings.distanceIcon\n : distanceIconSvg\n );\n };\n\n if (FrameworkAccuDraw.uiStateStorage)\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\n\n // istanbul ignore next\n const handleAccuDrawUiSettingsChanged = () => {\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\n };\n\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(\n handleAccuDrawUiSettingsChanged\n );\n }, []);\n\n const classNames = classnames(\n \"uifw-accudraw-field-container\",\n orientation === Orientation.Vertical\n ? \"uifw-accudraw-field-container-vertical\"\n : \"uifw-accudraw-field-container-horizontal\",\n className\n );\n\n const delay = 250;\n const labelCentered =\n xLabel !== undefined &&\n xLabel.length === 1 &&\n yLabel !== undefined &&\n yLabel.length === 1 &&\n zLabel !== undefined &&\n zLabel.length === 1;\n\n return (\n <div className={classNames} style={style} {...otherProps}>\n {mode === CompassMode.Rectangular && (\n <>\n <AccuDrawInputField\n ref={xInputRef}\n isLocked={xLock}\n className=\"uifw-accudraw-x-value\"\n style={xStyle}\n field={ItemField.X_Item}\n id={`uifw-accudraw-x-${containerIndex}`}\n data-testid=\"uifw-accudraw-x\"\n label={xLabel}\n iconSpec={xIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.X_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={yInputRef}\n isLocked={yLock}\n className=\"uifw-accudraw-y-value\"\n style={yStyle}\n field={ItemField.Y_Item}\n id={`uifw-accudraw-y-${containerIndex}`}\n data-testid=\"uifw-accudraw-y\"\n label={yLabel}\n iconSpec={yIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Y_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n {showZ && (\n <AccuDrawInputField\n ref={zInputRef}\n isLocked={zLock}\n className=\"uifw-accudraw-z-value\"\n style={zStyle}\n field={ItemField.Z_Item}\n id={`uifw-accudraw-z-${containerIndex}`}\n data-testid=\"uifw-accudraw-z\"\n label={zLabel}\n iconSpec={zIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Z_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n )}\n </>\n )}\n {mode === CompassMode.Polar && (\n <>\n <AccuDrawInputField\n ref={angleInputRef}\n isLocked={angleLock}\n className=\"uifw-accudraw-angle-value\"\n style={angleStyle}\n field={ItemField.ANGLE_Item}\n id={`uifw-accudraw-angle-${containerIndex}`}\n data-testid=\"uifw-accudraw-angle\"\n label={angleLabel}\n iconSpec={angleIcon}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.ANGLE_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={distanceInputRef}\n isLocked={distanceLock}\n className=\"uifw-accudraw-distance-value\"\n style={distanceStyle}\n field={ItemField.DIST_Item}\n id={`uifw-accudraw-distance-${containerIndex}`}\n data-testid=\"uifw-accudraw-distance\"\n label={distanceLabel}\n iconSpec={distanceIcon}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.DIST_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n </>\n )}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./AccuDrawFieldContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport type {\n ScreenViewport,\n SelectedViewportChangedArgs,\n} from \"@itwin/core-frontend\";\nimport { CompassMode, IModelApp, ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec, UiStateStorage } from \"@itwin/core-react\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\n\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\nimport angleIconSvg from \"./angle.svg\";\nimport distanceIconSvg from \"./distance.svg\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Properties for [[AccuDrawFieldContainer]] component\n * @beta\n */\nexport interface AccuDrawFieldContainerProps extends CommonProps {\n /** Orientation of the fields */\n orientation: Orientation;\n /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */\n uiSettingsStorage?: UiStateStorage;\n /** @internal */\n showZOverride?: boolean;\n}\n\nlet AccuDrawContainerIndex = 0;\n\nfunction determineShowZ(vp?: ScreenViewport): boolean {\n const showZ =\n vp !== undefined ? /* istanbul ignore next */ vp.view.is3d() : false;\n return showZ;\n}\n\nconst defaultXLabel = \"X\";\nconst defaultYLabel = \"Y\";\nconst defaultZLabel = \"Z\";\n\n/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field\n * @beta\n */\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\n const {\n className,\n style,\n orientation,\n uiSettingsStorage,\n showZOverride,\n ...otherProps\n } = props;\n\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\n const xInputRef = React.useRef<HTMLInputElement>(null);\n const yInputRef = React.useRef<HTMLInputElement>(null);\n const zInputRef = React.useRef<HTMLInputElement>(null);\n const angleInputRef = React.useRef<HTMLInputElement>(null);\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\n const focusField = React.useRef<ItemField | undefined>(undefined);\n const [mode, setMode] = React.useState(() => IModelApp.accuDraw.compassMode);\n const [xLock, setXLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.X_Item)\n );\n const [yLock, setYLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.Y_Item)\n );\n const [zLock, setZLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.Z_Item)\n );\n const [angleLock, setAngleLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item)\n );\n const [distanceLock, setDistanceLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item)\n );\n const [showZ, setShowZ] = React.useState(true);\n const [xLabel, setXLabel] = React.useState<string | undefined>(defaultXLabel);\n const [yLabel, setYLabel] = React.useState<string | undefined>(defaultYLabel);\n const [zLabel, setZLabel] = React.useState<string | undefined>(defaultZLabel);\n const [angleLabel, setAngleLabel] = React.useState<string | undefined>(\n undefined\n );\n const [distanceLabel, setDistanceLabel] = React.useState<string | undefined>(\n undefined\n );\n const [xIcon, setXIcon] = React.useState<IconSpec | undefined>(undefined);\n const [yIcon, setYIcon] = React.useState<IconSpec | undefined>(undefined);\n const [zIcon, setZIcon] = React.useState<IconSpec | undefined>(undefined);\n const [angleIcon, setAngleIcon] = React.useState<IconSpec | undefined>(\n angleIconSvg\n );\n const [distanceIcon, setDistanceIcon] = React.useState<IconSpec | undefined>(\n distanceIconSvg\n );\n const [xStyle, setXStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [yStyle, setYStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [zStyle, setZStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [angleStyle, setAngleStyle] = React.useState<\n React.CSSProperties | undefined\n >(undefined);\n const [distanceStyle, setDistanceStyle] = React.useState<\n React.CSSProperties | undefined\n >(undefined);\n\n const getInputRef = (field: ItemField): React.RefObject<HTMLInputElement> => {\n let inputRef: React.RefObject<HTMLInputElement>;\n switch (field) {\n case ItemField.X_Item:\n inputRef = xInputRef;\n break;\n case ItemField.Y_Item:\n inputRef = yInputRef;\n break;\n case ItemField.Z_Item:\n inputRef = zInputRef;\n break;\n case ItemField.ANGLE_Item:\n inputRef = angleInputRef;\n break;\n case ItemField.DIST_Item:\n inputRef = distanceInputRef;\n break;\n }\n return inputRef;\n };\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener((args) => {\n switch (args.field) {\n case ItemField.X_Item:\n setXLock(args.lock);\n break;\n case ItemField.Y_Item:\n setYLock(args.lock);\n break;\n case ItemField.Z_Item:\n setZLock(args.lock);\n break;\n case ItemField.ANGLE_Item:\n setAngleLock(args.lock);\n break;\n case ItemField.DIST_Item:\n setDistanceLock(args.lock);\n break;\n }\n });\n }, []);\n\n const setFocusToField = React.useCallback((field: ItemField) => {\n const inputRef = getInputRef(field);\n\n // istanbul ignore else\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, []);\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(\n (args) => {\n focusField.current = args.field;\n setFocusToField(focusField.current);\n }\n );\n }, [setFocusToField]);\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(() => {\n if (focusField.current) setFocusToField(focusField.current);\n });\n }, [setFocusToField]);\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(\n (args) => {\n setMode(args.mode);\n }\n );\n }, []);\n\n const handleValueChanged = React.useCallback(\n (field: ItemField, stringValue: string) => {\n FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);\n },\n []\n );\n\n const handleEscPressed = React.useCallback(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n\n React.useEffect(() => {\n setShowZ(\n showZOverride || determineShowZ(IModelApp.viewManager.selectedView)\n );\n\n // istanbul ignore next\n const handleSelectedViewportChanged = (\n args: SelectedViewportChangedArgs\n ) => {\n setShowZ(determineShowZ(args.current));\n };\n\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(\n handleSelectedViewportChanged\n );\n }, [showZOverride]);\n\n React.useEffect(() => {\n const createFieldStyle = (\n inStyle: React.CSSProperties | undefined,\n backgroundColor: ColorDef | string | undefined,\n foregroundColor: ColorDef | string | undefined\n ): React.CSSProperties | undefined => {\n let fieldStyle: React.CSSProperties | undefined;\n let rgbaString = \"\";\n if (inStyle || backgroundColor || foregroundColor) {\n fieldStyle = inStyle ? inStyle : {};\n if (backgroundColor) {\n rgbaString =\n typeof backgroundColor === \"string\"\n ? backgroundColor\n : getCSSColorFromDef(backgroundColor);\n fieldStyle = { ...fieldStyle, backgroundColor: rgbaString };\n }\n if (foregroundColor) {\n rgbaString =\n typeof foregroundColor === \"string\"\n ? foregroundColor\n : getCSSColorFromDef(foregroundColor);\n fieldStyle = { ...fieldStyle, color: rgbaString };\n }\n }\n return fieldStyle;\n };\n\n const processAccuDrawUiSettings = (settings?: AccuDrawUiSettings) => {\n setXStyle(\n settings\n ? createFieldStyle(\n settings.xStyle,\n settings.xBackgroundColor,\n settings.xForegroundColor\n )\n : undefined\n );\n setYStyle(\n settings\n ? createFieldStyle(\n settings.yStyle,\n settings.yBackgroundColor,\n settings.yForegroundColor\n )\n : undefined\n );\n setZStyle(\n settings\n ? createFieldStyle(\n settings.zStyle,\n settings.zBackgroundColor,\n settings.zForegroundColor\n )\n : undefined\n );\n setAngleStyle(\n settings\n ? createFieldStyle(\n settings.angleStyle,\n settings.angleBackgroundColor,\n settings.angleForegroundColor\n )\n : undefined\n );\n setDistanceStyle(\n settings\n ? createFieldStyle(\n settings.distanceStyle,\n settings.distanceBackgroundColor,\n settings.distanceForegroundColor\n )\n : undefined\n );\n\n setXLabel(\n settings && settings.xLabel !== undefined\n ? settings.xLabel\n : defaultXLabel\n );\n setYLabel(\n settings && settings.yLabel !== undefined\n ? settings.yLabel\n : defaultYLabel\n );\n setZLabel(\n settings && settings.zLabel !== undefined\n ? settings.zLabel\n : defaultZLabel\n );\n setAngleLabel(\n settings && settings.angleLabel !== undefined\n ? settings.angleLabel\n : undefined\n );\n setDistanceLabel(\n settings && settings.distanceLabel !== undefined\n ? settings.distanceLabel\n : undefined\n );\n\n setXIcon(\n settings && settings.xIcon !== undefined ? settings.xIcon : undefined\n );\n setYIcon(\n settings && settings.yIcon !== undefined ? settings.yIcon : undefined\n );\n setZIcon(\n settings && settings.zIcon !== undefined ? settings.zIcon : undefined\n );\n setAngleIcon(\n settings && settings.angleIcon !== undefined\n ? settings.angleIcon\n : angleIconSvg\n );\n setDistanceIcon(\n settings && settings.distanceIcon !== undefined\n ? settings.distanceIcon\n : distanceIconSvg\n );\n };\n\n if (FrameworkAccuDraw.uiStateStorage)\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\n\n // istanbul ignore next\n const handleAccuDrawUiSettingsChanged = () => {\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\n };\n\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(\n handleAccuDrawUiSettingsChanged\n );\n }, []);\n\n const classNames = classnames(\n \"uifw-accudraw-field-container\",\n orientation === Orientation.Vertical ? \"uifw-vertical\" : \"uifw-horizontal\",\n className\n );\n\n const delay = 250;\n const labelCentered =\n xLabel !== undefined &&\n xLabel.length === 1 &&\n yLabel !== undefined &&\n yLabel.length === 1 &&\n zLabel !== undefined &&\n zLabel.length === 1;\n\n return (\n <div className={classNames} style={style} {...otherProps}>\n {mode === CompassMode.Rectangular && (\n <>\n <AccuDrawInputField\n ref={xInputRef}\n isLocked={xLock}\n className=\"uifw-accudraw-x-value\"\n style={xStyle}\n field={ItemField.X_Item}\n id={`uifw-accudraw-x-${containerIndex}`}\n data-testid=\"uifw-accudraw-x\"\n label={xLabel}\n iconSpec={xIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.X_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={yInputRef}\n isLocked={yLock}\n className=\"uifw-accudraw-y-value\"\n style={yStyle}\n field={ItemField.Y_Item}\n id={`uifw-accudraw-y-${containerIndex}`}\n data-testid=\"uifw-accudraw-y\"\n label={yLabel}\n iconSpec={yIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Y_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n {showZ && (\n <AccuDrawInputField\n ref={zInputRef}\n isLocked={zLock}\n className=\"uifw-accudraw-z-value\"\n style={zStyle}\n field={ItemField.Z_Item}\n id={`uifw-accudraw-z-${containerIndex}`}\n data-testid=\"uifw-accudraw-z\"\n label={zLabel}\n iconSpec={zIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Z_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n )}\n </>\n )}\n {mode === CompassMode.Polar && (\n <>\n <AccuDrawInputField\n ref={angleInputRef}\n isLocked={angleLock}\n className=\"uifw-accudraw-angle-value\"\n style={angleStyle}\n field={ItemField.ANGLE_Item}\n id={`uifw-accudraw-angle-${containerIndex}`}\n data-testid=\"uifw-accudraw-angle\"\n label={angleLabel}\n iconSpec={angleIcon}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.ANGLE_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={distanceInputRef}\n isLocked={distanceLock}\n className=\"uifw-accudraw-distance-value\"\n style={distanceStyle}\n field={ItemField.DIST_Item}\n id={`uifw-accudraw-distance-${containerIndex}`}\n data-testid=\"uifw-accudraw-distance\"\n label={distanceLabel}\n iconSpec={distanceIcon}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.DIST_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n </>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -2,26 +2,19 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
|
|
6
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
|
-
|
|
8
5
|
.uifw-accudraw-field-container {
|
|
9
6
|
padding: 6px;
|
|
10
7
|
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
&.uifw-horizontal {
|
|
9
|
+
max-width: 550px;
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: row;
|
|
13
12
|
}
|
|
14
|
-
}
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
.uifw-accudraw-field-container-vertical {
|
|
23
|
-
max-width: 250px;
|
|
24
|
-
display: grid;
|
|
25
|
-
grid-template-columns: auto 1fr auto;
|
|
26
|
-
row-gap: var(--iui-size-2xs);
|
|
14
|
+
&.uifw-vertical {
|
|
15
|
+
max-width: 250px;
|
|
16
|
+
display: grid;
|
|
17
|
+
grid-template-columns: auto 1fr auto;
|
|
18
|
+
row-gap: var(--iui-size-2xs);
|
|
19
|
+
}
|
|
27
20
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
@import "~@itwin/core-react/lib/cjs/core-react/base/base";
|
|
6
|
+
@import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
|
|
6
7
|
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
8
|
|
|
8
9
|
.uifw-accudraw-input-label {
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
.uifw-accudraw-input-field {
|
|
35
|
+
padding: $uicore-iui-input-padding;
|
|
34
36
|
flex: 1;
|
|
35
37
|
}
|
|
36
38
|
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
import "./SquareButton.scss";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import type { Omit } from "@itwin/core-react";
|
|
7
|
-
import
|
|
7
|
+
import { Button } from "@itwin/itwinui-react";
|
|
8
|
+
type ButtonProps = React.ComponentPropsWithoutRef<typeof Button>;
|
|
8
9
|
/** @alpha */
|
|
9
10
|
export interface SquareButtonProps// eslint-disable-line @typescript-eslint/no-empty-interface
|
|
10
11
|
extends Omit<ButtonProps, "size" | "styleType"> {
|
|
@@ -13,4 +14,5 @@ export interface SquareButtonProps// eslint-disable-line @typescript-eslint/no-e
|
|
|
13
14
|
export declare class SquareButton extends React.PureComponent<SquareButtonProps> {
|
|
14
15
|
render(): React.JSX.Element;
|
|
15
16
|
}
|
|
17
|
+
export {};
|
|
16
18
|
//# sourceMappingURL=SquareButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SquareButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/SquareButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"SquareButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/SquareButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,KAAK,WAAW,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,CAAC;AAEjE,aAAa;AACb,MAAM,WAAW,iBAAkB,4DAA4D;AAC7F,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC;CAAG;AAEpD,aAAa;AACb,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC;IACtD,MAAM;CAavB"}
|