@itwin/appui-react 3.3.0-dev.9 → 3.4.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -1
- package/lib/cjs/appui-react/UiFramework.d.ts +3 -0
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +9 -0
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +2 -2
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/state.d.ts +4 -3
- package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/state.js +6 -1
- package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.js +0 -2
- package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.d.ts +4 -1
- package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentViewManager.js +6 -2
- package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.js +1 -0
- package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +3 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.js +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +14 -3
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +2 -0
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +4 -3
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +2 -0
- package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.json +2 -0
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +49 -44
- package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
- package/lib/cjs/appui-react/imodel-components/models-tree/Utils.d.ts +10 -0
- package/lib/cjs/appui-react/imodel-components/models-tree/Utils.d.ts.map +1 -0
- package/lib/cjs/appui-react/imodel-components/models-tree/Utils.js +23 -0
- package/lib/cjs/appui-react/imodel-components/models-tree/Utils.js.map +1 -0
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +26 -0
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +64 -5
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +3 -11
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.d.ts +17 -0
- package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +44 -0
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.js +33 -28
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.js +1 -0
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.js.map +1 -1
- package/lib/cjs/appui-react/messages/StickyMessage.d.ts +1 -0
- package/lib/cjs/appui-react/messages/StickyMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/StickyMessage.js +8 -6
- package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.d.ts +1 -0
- package/lib/cjs/appui-react/messages/ToastMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.js +7 -5
- package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +13 -10
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
- package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.d.ts.map +1 -1
- package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js +4 -1
- package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +12 -3
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +2 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +6 -9
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +38 -28
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -0
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts +9 -3
- package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
- package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts +1 -0
- package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js +1 -0
- package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts +4 -1
- package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/ConditionalField.js +4 -1
- package/lib/cjs/appui-react/statusfields/ConditionalField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts +2 -3
- package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/FooterModeField.js +9 -8
- package/lib/cjs/appui-react/statusfields/FooterModeField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -1
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.js +1 -0
- package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +4 -2
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js +33 -15
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/PromptField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/PromptField.js +4 -1
- package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js +4 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -3
- package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +0 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.js +0 -2
- package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts +12 -6
- package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/StatusFieldProps.js +0 -7
- package/lib/cjs/appui-react/statusfields/StatusFieldProps.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js +5 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +4 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -10
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +19 -16
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +7 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +2 -0
- package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
- package/lib/cjs/appui-react/uistate/AppUiSettings.js +4 -0
- package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +10 -0
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +9 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +131 -34
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/useTransientState.d.ts +8 -0
- package/lib/cjs/appui-react/widget-panels/useTransientState.d.ts.map +1 -0
- package/lib/cjs/appui-react/widget-panels/useTransientState.js +19 -0
- package/lib/cjs/appui-react/widget-panels/useTransientState.js.map +1 -0
- package/lib/cjs/appui-react/widget-panels/useWidgetDirection.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js +1 -0
- package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +4 -0
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +9 -2
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +1 -0
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +1 -0
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +3 -0
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +9 -0
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +2 -2
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/state.d.ts +4 -3
- package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/state.js +6 -1
- package/lib/esm/appui-react/configurableui/state.js.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.js +0 -2
- package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.d.ts +4 -1
- package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentViewManager.js +6 -2
- package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.js +1 -0
- package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts +3 -1
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.js +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +14 -3
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +2 -0
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +4 -3
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +2 -0
- package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.json +2 -0
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +47 -42
- package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
- package/lib/esm/appui-react/imodel-components/models-tree/Utils.d.ts +10 -0
- package/lib/esm/appui-react/imodel-components/models-tree/Utils.d.ts.map +1 -0
- package/lib/esm/appui-react/imodel-components/models-tree/Utils.js +19 -0
- package/lib/esm/appui-react/imodel-components/models-tree/Utils.js.map +1 -0
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts +26 -0
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +63 -7
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.js +4 -12
- package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.d.ts +17 -0
- package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +44 -0
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.js +33 -28
- package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
- package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessagesContainer.js +1 -0
- package/lib/esm/appui-react/messages/StatusMessagesContainer.js.map +1 -1
- package/lib/esm/appui-react/messages/StickyMessage.d.ts +1 -0
- package/lib/esm/appui-react/messages/StickyMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/StickyMessage.js +9 -7
- package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.d.ts +1 -0
- package/lib/esm/appui-react/messages/ToastMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.js +8 -6
- package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +13 -10
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
- package/lib/esm/appui-react/selection/ClearEmphasisStatusField.d.ts.map +1 -1
- package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js +4 -1
- package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +12 -3
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +2 -0
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts +6 -9
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +38 -28
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -0
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts +9 -3
- package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
- package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
- package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
- package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts +1 -0
- package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/withStatusFieldProps.js +1 -0
- package/lib/esm/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ConditionalField.d.ts +4 -1
- package/lib/esm/appui-react/statusfields/ConditionalField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/ConditionalField.js +4 -1
- package/lib/esm/appui-react/statusfields/ConditionalField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/FooterModeField.d.ts +2 -3
- package/lib/esm/appui-react/statusfields/FooterModeField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/FooterModeField.js +9 -8
- package/lib/esm/appui-react/statusfields/FooterModeField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -1
- package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.js +1 -0
- package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +4 -2
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js +33 -15
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/PromptField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/PromptField.js +4 -1
- package/lib/esm/appui-react/statusfields/PromptField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.js +4 -1
- package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.js +4 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -3
- package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts +0 -1
- package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.js +0 -2
- package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts +12 -6
- package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/StatusFieldProps.js +0 -7
- package/lib/esm/appui-react/statusfields/StatusFieldProps.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js +5 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +4 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -10
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +19 -16
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +7 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +2 -0
- package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
- package/lib/esm/appui-react/uistate/AppUiSettings.js +4 -0
- package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +10 -0
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +9 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +132 -35
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/useTransientState.d.ts +8 -0
- package/lib/esm/appui-react/widget-panels/useTransientState.d.ts.map +1 -0
- package/lib/esm/appui-react/widget-panels/useTransientState.js +15 -0
- package/lib/esm/appui-react/widget-panels/useTransientState.js.map +1 -0
- package/lib/esm/appui-react/widget-panels/useWidgetDirection.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/useWidgetDirection.js +1 -0
- package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +4 -0
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +9 -2
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +3 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react.d.ts +1 -0
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +1 -0
- package/lib/esm/appui-react.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +6 -1
- package/package.json +37 -37
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
import "./StickyMessage.scss";
|
|
9
9
|
import * as React from "react";
|
|
10
10
|
import classnames from "classnames";
|
|
11
|
-
import { MessageLayout } from "@itwin/appui-layout-react";
|
|
12
|
-
import { ToastPresentation } from "@itwin/itwinui-react/cjs/core/Toast/Toast";
|
|
11
|
+
import { Message, MessageButton, MessageLayout, StatusHelpers, } from "@itwin/appui-layout-react";
|
|
13
12
|
import { MessageLabel } from "./MessageLabel";
|
|
14
|
-
import {
|
|
13
|
+
import { HollowIcon } from "./HollowIcon";
|
|
14
|
+
import { Icon, MessageContainer } from "@itwin/core-react";
|
|
15
15
|
/** Sticky Message React component
|
|
16
16
|
* @public
|
|
17
|
+
* @deprecated
|
|
17
18
|
*/
|
|
18
19
|
export function StickyMessage(props) {
|
|
19
20
|
const { id, messageDetails, severity, closeMessage } = props;
|
|
20
|
-
const category = getToastCategory(severity);
|
|
21
21
|
const [closing, setClosing] = React.useState(false);
|
|
22
22
|
const handleClose = () => {
|
|
23
23
|
setClosing(true);
|
|
@@ -25,9 +25,11 @@ export function StickyMessage(props) {
|
|
|
25
25
|
};
|
|
26
26
|
const classNames = classnames("uifw-statusbar-sticky-message", closing && "uifw-closing");
|
|
27
27
|
return (React.createElement("div", { className: classNames },
|
|
28
|
-
React.createElement(
|
|
28
|
+
React.createElement(Message // eslint-disable-line deprecation/deprecation
|
|
29
|
+
, { status: StatusHelpers.severityToStatus(severity), icon: React.createElement(HollowIcon, { iconSpec: MessageContainer.getIconClassName(severity, true) }) },
|
|
30
|
+
React.createElement(MessageLayout, { buttons: React.createElement(MessageButton, { onClick: handleClose, className: "uifw-statusbar-sticky-close" },
|
|
31
|
+
React.createElement(Icon, { iconSpec: "icon-close" })) },
|
|
29
32
|
React.createElement(MessageLabel, { message: messageDetails.briefMessage, className: "uifw-statusbar-message-brief" }),
|
|
30
|
-
messageDetails.detailedMessage &&
|
|
31
|
-
React.createElement(MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" })) })));
|
|
33
|
+
messageDetails.detailedMessage && (React.createElement(MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))))));
|
|
32
34
|
}
|
|
33
35
|
//# sourceMappingURL=StickyMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StickyMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"StickyMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAY3D;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,UAAU,CAC3B,+BAA+B,EAC/B,OAAO,IAAI,cAAc,CAC1B,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU;QACxB,oBAAC,OAAO,CAAC,8CAA8C;YACrD,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAChD,IAAI,EACF,oBAAC,UAAU,IACT,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC3D;YAGJ,oBAAC,aAAa,IACZ,OAAO,EACL,oBAAC,aAAa,IACZ,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,6BAA6B;oBAEvC,oBAAC,IAAI,IAAC,QAAQ,EAAC,YAAY,GAAG,CAChB;gBAGlB,oBAAC,YAAY,IACX,OAAO,EAAE,cAAc,CAAC,YAAY,EACpC,SAAS,EAAC,8BAA8B,GACxC;gBACD,cAAc,CAAC,eAAe,IAAI,CACjC,oBAAC,YAAY,IACX,OAAO,EAAE,cAAc,CAAC,eAAe,EACvC,SAAS,EAAC,iCAAiC,GAC3C,CACH,CACa,CACR,CACN,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./StickyMessage.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport {\r\n Message,\r\n MessageButton,\r\n MessageLayout,\r\n StatusHelpers,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { Icon, MessageContainer } from \"@itwin/core-react\";\r\n\r\n/** Properties for a [[StickyMessage]]\r\n * @public\r\n */\r\nexport interface StickyMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Sticky Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function StickyMessage(props: StickyMessageProps) {\r\n const { id, messageDetails, severity, closeMessage } = props;\r\n const [closing, setClosing] = React.useState(false);\r\n\r\n const handleClose = () => {\r\n setClosing(true);\r\n setTimeout(() => closeMessage(id), 500);\r\n };\r\n\r\n const classNames = classnames(\r\n \"uifw-statusbar-sticky-message\",\r\n closing && \"uifw-closing\",\r\n );\r\n\r\n return (\r\n <div className={classNames}>\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={StatusHelpers.severityToStatus(severity)}\r\n icon={\r\n <HollowIcon\r\n iconSpec={MessageContainer.getIconClassName(severity, true)}\r\n />\r\n }\r\n >\r\n <MessageLayout\r\n buttons={\r\n <MessageButton\r\n onClick={handleClose}\r\n className=\"uifw-statusbar-sticky-close\"\r\n >\r\n <Icon iconSpec=\"icon-close\" />\r\n </MessageButton>\r\n }\r\n >\r\n <MessageLabel\r\n message={messageDetails.briefMessage}\r\n className=\"uifw-statusbar-message-brief\"\r\n />\r\n {messageDetails.detailedMessage && (\r\n <MessageLabel\r\n message={messageDetails.detailedMessage}\r\n className=\"uifw-statusbar-message-detailed\"\r\n />\r\n )}\r\n </MessageLayout>\r\n </Message>\r\n </div>\r\n );\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAKjF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eA2BpD"}
|
|
@@ -6,20 +6,22 @@
|
|
|
6
6
|
* @module Notification
|
|
7
7
|
*/
|
|
8
8
|
import * as React from "react";
|
|
9
|
-
import { MessageLayout, Toast } from "@itwin/appui-layout-react";
|
|
10
|
-
import { ToastPresentation } from "@itwin/itwinui-react/cjs/core/Toast/Toast";
|
|
9
|
+
import { Message, MessageLayout, StatusHelpers, Toast, } from "@itwin/appui-layout-react";
|
|
11
10
|
import { MessageLabel } from "./MessageLabel";
|
|
12
|
-
import {
|
|
11
|
+
import { HollowIcon } from "./HollowIcon";
|
|
12
|
+
import { MessageContainer } from "@itwin/core-react";
|
|
13
13
|
/** Toast Message React component
|
|
14
14
|
* @public
|
|
15
|
+
* @deprecated
|
|
15
16
|
*/
|
|
16
17
|
export function ToastMessage(props) {
|
|
17
18
|
const { id, messageDetails, severity, toastTarget, closeMessage } = props;
|
|
18
|
-
const category = getToastCategory(severity);
|
|
19
19
|
return (React.createElement(Toast // eslint-disable-line deprecation/deprecation
|
|
20
|
-
, { animateOutTo: toastTarget, onAnimatedOut: () => closeMessage(id), timeout: messageDetails.displayTime.milliseconds, content: React.createElement(
|
|
20
|
+
, { animateOutTo: toastTarget, onAnimatedOut: () => closeMessage(id), timeout: messageDetails.displayTime.milliseconds, content: React.createElement(Message // eslint-disable-line deprecation/deprecation
|
|
21
|
+
, { status: StatusHelpers.severityToStatus(severity), icon: React.createElement(HollowIcon, { iconSpec: MessageContainer.getIconClassName(severity, true) }) },
|
|
22
|
+
React.createElement(MessageLayout, null,
|
|
21
23
|
React.createElement(MessageLabel, { message: messageDetails.briefMessage, className: "uifw-statusbar-message-brief" }),
|
|
22
24
|
messageDetails.detailedMessage &&
|
|
23
|
-
React.createElement(MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))
|
|
25
|
+
React.createElement(MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))) }));
|
|
24
26
|
}
|
|
25
27
|
//# sourceMappingURL=ToastMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,
|
|
1
|
+
{"version":3,"file":"ToastMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,KAAK,GACN,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAarD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAE1E,OAAO,CACL,oBAAC,KAAK,CAAC,8CAA8C;QACnD,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EACrC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,YAAY,EAChD,OAAO,EACL,oBAAC,OAAO,CAAC,8CAA8C;YACrD,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAChD,IAAI,EACF,oBAAC,UAAU,IACT,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC3D;YAGJ,oBAAC,aAAa;gBACZ,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,EAAC,8BAA8B,GAAG;gBAC9F,cAAc,CAAC,eAAe;oBAC7B,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAEzF,CACR,GAEZ,CACH,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport {\r\n Message,\r\n MessageLayout,\r\n StatusHelpers,\r\n Toast,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { MessageContainer } from \"@itwin/core-react\";\r\n\r\n/** Properties for a [[ToastMessage]]\r\n * @public\r\n */\r\nexport interface ToastMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Toast Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function ToastMessage(props: ToastMessageProps) {\r\n const { id, messageDetails, severity, toastTarget, closeMessage } = props;\r\n\r\n return (\r\n <Toast // eslint-disable-line deprecation/deprecation\r\n animateOutTo={toastTarget}\r\n onAnimatedOut={() => closeMessage(id)}\r\n timeout={messageDetails.displayTime.milliseconds}\r\n content={\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={StatusHelpers.severityToStatus(severity)}\r\n icon={\r\n <HollowIcon\r\n iconSpec={MessageContainer.getIconClassName(severity, true)}\r\n />\r\n }\r\n >\r\n <MessageLayout>\r\n <MessageLabel message={messageDetails.briefMessage} className=\"uifw-statusbar-message-brief\" />\r\n {messageDetails.detailedMessage &&\r\n <MessageLabel message={messageDetails.detailedMessage} className=\"uifw-statusbar-message-detailed\" />\r\n }\r\n </MessageLayout>\r\n </Message>\r\n }\r\n />\r\n );\r\n}\r\n"]}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { MessageSeverity } from "@itwin/appui-abstract";
|
|
5
5
|
/** @internal */
|
|
6
|
-
export declare function getToastCategory(severity: MessageSeverity): "
|
|
6
|
+
export declare function getToastCategory(severity: MessageSeverity): "positive" | "negative" | "informational" | "warning";
|
|
7
7
|
//# sourceMappingURL=getToastCategory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyinPalettePanel.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/KeyinPalettePanel.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,0BAA0B,CAAC;AAIlC,OAAO,EAAgB,kBAAkB,EAAc,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAMzD,gBAAgB;AAChB,wBAAgB,wBAAwB,SAOvC;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAwB,EAAE,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"KeyinPalettePanel.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/KeyinPalettePanel.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,0BAA0B,CAAC;AAIlC,OAAO,EAAgB,kBAAkB,EAAc,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAMzD,gBAAgB;AAChB,wBAAgB,wBAAwB,SAOvC;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAwB,EAAE,EAAE,sBAAsB,eA4O7H"}
|
|
@@ -181,18 +181,21 @@ export function KeyinPalettePanel({ keyins, onKeyinExecuted, historyLength: allo
|
|
|
181
181
|
else {
|
|
182
182
|
const newKeyinSet = [];
|
|
183
183
|
allKeyins.forEach((value) => {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
if (
|
|
188
|
-
filteredHistory.push(value);
|
|
189
|
-
newKeyinSet.push({ ...value, matches });
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
// only add entry if no match in filtered history
|
|
184
|
+
if (value.value.length >= currentKeyin.length) {
|
|
185
|
+
// Force contiguous searches if key-in is over 60 characters long for performance.
|
|
186
|
+
const matches = matchesWords(currentKeyin, value.value, currentKeyin.length > 60);
|
|
187
|
+
if (matches && matches.length) {
|
|
193
188
|
// istanbul ignore else
|
|
194
|
-
if (
|
|
189
|
+
if (value.isHistory) {
|
|
190
|
+
filteredHistory.push(value);
|
|
195
191
|
newKeyinSet.push({ ...value, matches });
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
// only add entry if no match in filtered history
|
|
195
|
+
// istanbul ignore else
|
|
196
|
+
if (-1 === filteredHistory.findIndex((historyEntry) => historyEntry.value === value.value))
|
|
197
|
+
newKeyinSet.push({ ...value, matches });
|
|
198
|
+
}
|
|
196
199
|
}
|
|
197
200
|
}
|
|
198
201
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyinPalettePanel.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/KeyinPalettePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\n// cSpell:ignore focusvalue uiadmin\r\n\r\nimport * as React from \"react\";\r\nimport \"./KeyinPalettePanel.scss\";\r\nimport { FilteredText, Listbox, ListboxItem, UiStateStorageStatus } from \"@itwin/core-react\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType, ParseAndRunResult } from \"@itwin/core-frontend\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { matchesWords, OnItemExecutedFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { ClearKeyinPaletteHistoryTool } from \"../tools/KeyinPaletteTools\";\r\nimport { useUiStateStorageHandler } from \"../uistate/useUiStateStorage\";\r\nimport { KeyinEntry } from \"../uiadmin/FrameworkUiAdmin\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\n\r\nconst KEYIN_PALETTE_NAMESPACE = \"KeyinPalettePanel\";\r\nconst KEYIN_HISTORY_KEY = \"historyArray\";\r\n\r\n/** @internal */\r\nexport function clearKeyinPaletteHistory() {\r\n const uiSettingsStorage = UiFramework.getUiStateStorage();\r\n // istanbul ignore else\r\n if (uiSettingsStorage) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n uiSettingsStorage.deleteSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY);\r\n }\r\n}\r\n\r\ninterface KeyinPalettePanelProps {\r\n keyins: KeyinEntry[];\r\n onKeyinExecuted?: OnItemExecutedFunc;\r\n historyLength?: number;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function KeyinPalettePanel({ keyins, onKeyinExecuted, historyLength: allowedHistoryLength = 6 }: KeyinPalettePanelProps) {\r\n const [currentKeyin, setCurrentKeyin] = React.useState<string>(\"\");\r\n const placeholderLabel = React.useRef(UiFramework.translate(\"keyinbrowser.placeholder\"));\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const keyinSeparator = \"--#--\";\r\n const [historyKeyins, setHistoryKeyins] = React.useState<string[]>([]);\r\n const uiSettingsStorage = useUiStateStorageHandler();\r\n\r\n React.useEffect(() => {\r\n async function fetchState() {\r\n const settingsResult = await uiSettingsStorage.getSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY);\r\n // istanbul ignore else\r\n if (UiStateStorageStatus.Success === settingsResult.status) {\r\n const filteredHistory = (settingsResult.setting as string[]).filter((keyin) => {\r\n const result = IModelApp.tools.parseKeyin(keyin);\r\n return result.ok;\r\n });\r\n setHistoryKeyins(filteredHistory);\r\n } else {\r\n setHistoryKeyins([]);\r\n }\r\n }\r\n\r\n fetchState(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }, [uiSettingsStorage]);\r\n\r\n // istanbul ignore next\r\n const storeHistoryKeyins = React.useCallback(async (value: string[]) => {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n const result = await uiSettingsStorage.saveSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY, value);\r\n if (result.status !== UiStateStorageStatus.Success) {\r\n const briefMessage = UiFramework.translate(\"keyinbrowser.couldNotSaveHistory\");\r\n const errorDetails = new NotifyMessageDetails(OutputMessagePriority.Error, briefMessage);\r\n IModelApp.notifications.outputMessage(errorDetails);\r\n }\r\n }, [uiSettingsStorage]);\r\n\r\n const allKeyins = React.useMemo(() => {\r\n const availableKeyins = [];\r\n historyKeyins.forEach((value: string) => {\r\n availableKeyins.push({ value, isHistory: true });\r\n });\r\n availableKeyins.push(...keyins.sort((a, b) => a.value.toLowerCase().localeCompare(b.value.toLowerCase())));\r\n return availableKeyins;\r\n }, [historyKeyins, keyins]);\r\n\r\n const submitKeyin = React.useCallback(async (value: string) => {\r\n let detailedMessage: string | undefined;\r\n let message: string | undefined;\r\n try {\r\n switch (await IModelApp.tools.parseAndRun(value)) {\r\n case ParseAndRunResult.ToolNotFound:\r\n message = `UiFramework.translate(\"keyinbrowser.couldNotFindTool\")} ${value}`;\r\n break;\r\n // istanbul ignore next\r\n case ParseAndRunResult.BadArgumentCount:\r\n message = UiFramework.translate(\"keyinbrowser.incorrectArgs\");\r\n break;\r\n // istanbul ignore next\r\n case ParseAndRunResult.FailedToRun:\r\n message = UiFramework.translate(\"keyinbrowser.failedToRun\");\r\n break;\r\n }\r\n } catch (ex) {\r\n // istanbul ignore next\r\n {\r\n message = UiFramework.translate(\"keyinbrowser.exceptionOccurred\");\r\n detailedMessage = `${UiFramework.translate(\"keyinbrowser.exceptionOccurred\")}: ${ex}`;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (undefined !== message) {\r\n const errorDetails = new NotifyMessageDetails(OutputMessagePriority.Error, message, detailedMessage, OutputMessageType.Sticky);\r\n IModelApp.notifications.outputMessage(errorDetails);\r\n } else {\r\n // istanbul ignore next\r\n if (value.length < 400 && value !== ClearKeyinPaletteHistoryTool.keyin && value !== ClearKeyinPaletteHistoryTool.englishKeyin) {\r\n const newHistoryEntries: string[] = [value];\r\n for (const entry of historyKeyins) {\r\n if (entry !== value) {\r\n newHistoryEntries.push(entry);\r\n if (newHistoryEntries.length >= allowedHistoryLength)\r\n break;\r\n }\r\n }\r\n await storeHistoryKeyins(newHistoryEntries);\r\n }\r\n\r\n // close the popup by processing the supplied onKeyinExecuted function\r\n if (onKeyinExecuted)\r\n onKeyinExecuted(value);\r\n }\r\n }, [storeHistoryKeyins, onKeyinExecuted, historyKeyins, allowedHistoryLength]);\r\n\r\n const selectKeyin = React.useCallback(() => {\r\n // istanbul ignore else\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\r\n }\r\n }, [inputRef]);\r\n\r\n const updateKeyin = React.useCallback((value: string) => {\r\n setCurrentKeyin(value);\r\n selectKeyin();\r\n }, [selectKeyin]);\r\n\r\n const getKeyinFromListboxValue = (value: string | undefined) => {\r\n // istanbul ignore else\r\n if (value) {\r\n const indexSeparator = value.search(keyinSeparator);\r\n // istanbul ignore else\r\n if (indexSeparator)\r\n return value.substr(0, indexSeparator);\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n };\r\n\r\n const handleKeypressOnKeyinsList = React.useCallback(async (event: React.KeyboardEvent<HTMLUListElement>) => {\r\n const key = event.key;\r\n // built into listbox a \"Space\" key will trigger the selection of a entry so if an Enter key is pressed\r\n // assume user wants to execute the entry.\r\n // istanbul ignore else\r\n if (key === SpecialKey.Enter) {\r\n event.preventDefault();\r\n // istanbul ignore next\r\n const keyinToSend = getKeyinFromListboxValue(event.currentTarget?.dataset?.focusvalue);\r\n // istanbul ignore else\r\n if (keyinToSend) {\r\n if (event.ctrlKey)\r\n updateKeyin(keyinToSend);\r\n else\r\n await submitKeyin(keyinToSend);\r\n }\r\n }\r\n }, [submitKeyin, updateKeyin]);\r\n\r\n const onListboxValueChange = React.useCallback(async (value: string, isControlOrCommandPressed?: boolean) => {\r\n const keyin = getKeyinFromListboxValue(value);\r\n // istanbul ignore else\r\n if (keyin) {\r\n if (isControlOrCommandPressed)\r\n updateKeyin(keyin);\r\n else\r\n await submitKeyin(keyin);\r\n }\r\n }, [submitKeyin, updateKeyin]);\r\n\r\n const onInputValueChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n setCurrentKeyin(event.target.value);\r\n }, []);\r\n\r\n const filteredKeyins = React.useMemo(() => {\r\n const filteredHistory: KeyinEntry[] = [];\r\n if (undefined === currentKeyin || 0 === currentKeyin.length) {\r\n return allKeyins;\r\n } else {\r\n const newKeyinSet: KeyinEntry[] = [];\r\n allKeyins.forEach((value) => {\r\n const matches = matchesWords(currentKeyin, value.value);\r\n if (matches && matches.length) {\r\n // istanbul ignore else\r\n if (value.isHistory) {\r\n filteredHistory.push(value);\r\n newKeyinSet.push({ ...value, matches });\r\n } else {\r\n // only add entry if no match in filtered history\r\n // istanbul ignore else\r\n if (-1 === filteredHistory.findIndex((historyEntry: KeyinEntry) => historyEntry.value === value.value))\r\n newKeyinSet.push({ ...value, matches });\r\n }\r\n }\r\n });\r\n return newKeyinSet;\r\n }\r\n }, [allKeyins, currentKeyin]);\r\n\r\n const onInputValueKeyDown = React.useCallback(async (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (SpecialKey.Enter === event.key) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (1 === filteredKeyins.length) {\r\n if (event.ctrlKey)\r\n updateKeyin(filteredKeyins[0].value);\r\n else\r\n await submitKeyin(filteredKeyins[0].value);\r\n } else {\r\n if (currentKeyin)\r\n await submitKeyin(currentKeyin);\r\n }\r\n } else if (SpecialKey.Tab === event.key && 1 === filteredKeyins.length) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n updateKeyin(filteredKeyins[0].value);\r\n } else {\r\n if (event.key === SpecialKey.ArrowDown && filteredKeyins.length > 0) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (inputRef.current) {\r\n const nextElement = inputRef.current.nextElementSibling as HTMLElement;\r\n nextElement && nextElement.focus();\r\n }\r\n }\r\n }\r\n\r\n }, [filteredKeyins, submitKeyin, currentKeyin, updateKeyin]);\r\n\r\n const lastHistoryIndex = filteredKeyins.findIndex((entry) => (true !== entry.isHistory)) - 1;\r\n\r\n return <div className=\"uifw-command-palette-panel\">\r\n <Input ref={inputRef} type=\"text\" onKeyDown={onInputValueKeyDown}\r\n className={\"uifw-command-palette-input\"} data-testid=\"command-palette-input\" onChange={onInputValueChange}\r\n placeholder={placeholderLabel.current} value={currentKeyin} size=\"small\"\r\n />\r\n {(filteredKeyins.length > 0) &&\r\n <Listbox id=\"uifw-command-sources\" className=\"map-manager-source-list\" onKeyDown={handleKeypressOnKeyinsList}\r\n onListboxValueChange={onListboxValueChange} >\r\n {\r\n filteredKeyins.map((entry, index) => {\r\n const value = `${entry.value}${keyinSeparator}${entry.isHistory ? \"history\" : \"registry\"}`;\r\n const itemClass = `uifw-command-palette-value-entry${index === lastHistoryIndex ? \" uifw-history-bottom-border\" : \"\"}`;\r\n return <ListboxItem key={`${entry.value}-${index}`} className={itemClass} value={value} >\r\n <FilteredText value={entry.value} matches={entry.matches} />\r\n </ListboxItem>;\r\n })\r\n }\r\n </Listbox >\r\n }\r\n </div >;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"KeyinPalettePanel.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/KeyinPalettePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\n// cSpell:ignore focusvalue uiadmin\r\n\r\nimport * as React from \"react\";\r\nimport \"./KeyinPalettePanel.scss\";\r\nimport { FilteredText, Listbox, ListboxItem, UiStateStorageStatus } from \"@itwin/core-react\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType, ParseAndRunResult } from \"@itwin/core-frontend\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { matchesWords, OnItemExecutedFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { ClearKeyinPaletteHistoryTool } from \"../tools/KeyinPaletteTools\";\r\nimport { useUiStateStorageHandler } from \"../uistate/useUiStateStorage\";\r\nimport { KeyinEntry } from \"../uiadmin/FrameworkUiAdmin\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\n\r\nconst KEYIN_PALETTE_NAMESPACE = \"KeyinPalettePanel\";\r\nconst KEYIN_HISTORY_KEY = \"historyArray\";\r\n\r\n/** @internal */\r\nexport function clearKeyinPaletteHistory() {\r\n const uiSettingsStorage = UiFramework.getUiStateStorage();\r\n // istanbul ignore else\r\n if (uiSettingsStorage) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n uiSettingsStorage.deleteSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY);\r\n }\r\n}\r\n\r\ninterface KeyinPalettePanelProps {\r\n keyins: KeyinEntry[];\r\n onKeyinExecuted?: OnItemExecutedFunc;\r\n historyLength?: number;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function KeyinPalettePanel({ keyins, onKeyinExecuted, historyLength: allowedHistoryLength = 6 }: KeyinPalettePanelProps) {\r\n const [currentKeyin, setCurrentKeyin] = React.useState<string>(\"\");\r\n const placeholderLabel = React.useRef(UiFramework.translate(\"keyinbrowser.placeholder\"));\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const keyinSeparator = \"--#--\";\r\n const [historyKeyins, setHistoryKeyins] = React.useState<string[]>([]);\r\n const uiSettingsStorage = useUiStateStorageHandler();\r\n\r\n React.useEffect(() => {\r\n async function fetchState() {\r\n const settingsResult = await uiSettingsStorage.getSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY);\r\n // istanbul ignore else\r\n if (UiStateStorageStatus.Success === settingsResult.status) {\r\n const filteredHistory = (settingsResult.setting as string[]).filter((keyin) => {\r\n const result = IModelApp.tools.parseKeyin(keyin);\r\n return result.ok;\r\n });\r\n setHistoryKeyins(filteredHistory);\r\n } else {\r\n setHistoryKeyins([]);\r\n }\r\n }\r\n\r\n fetchState(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }, [uiSettingsStorage]);\r\n\r\n // istanbul ignore next\r\n const storeHistoryKeyins = React.useCallback(async (value: string[]) => {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n const result = await uiSettingsStorage.saveSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY, value);\r\n if (result.status !== UiStateStorageStatus.Success) {\r\n const briefMessage = UiFramework.translate(\"keyinbrowser.couldNotSaveHistory\");\r\n const errorDetails = new NotifyMessageDetails(OutputMessagePriority.Error, briefMessage);\r\n IModelApp.notifications.outputMessage(errorDetails);\r\n }\r\n }, [uiSettingsStorage]);\r\n\r\n const allKeyins = React.useMemo(() => {\r\n const availableKeyins = [];\r\n historyKeyins.forEach((value: string) => {\r\n availableKeyins.push({ value, isHistory: true });\r\n });\r\n availableKeyins.push(...keyins.sort((a, b) => a.value.toLowerCase().localeCompare(b.value.toLowerCase())));\r\n return availableKeyins;\r\n }, [historyKeyins, keyins]);\r\n\r\n const submitKeyin = React.useCallback(async (value: string) => {\r\n let detailedMessage: string | undefined;\r\n let message: string | undefined;\r\n try {\r\n switch (await IModelApp.tools.parseAndRun(value)) {\r\n case ParseAndRunResult.ToolNotFound:\r\n message = `UiFramework.translate(\"keyinbrowser.couldNotFindTool\")} ${value}`;\r\n break;\r\n // istanbul ignore next\r\n case ParseAndRunResult.BadArgumentCount:\r\n message = UiFramework.translate(\"keyinbrowser.incorrectArgs\");\r\n break;\r\n // istanbul ignore next\r\n case ParseAndRunResult.FailedToRun:\r\n message = UiFramework.translate(\"keyinbrowser.failedToRun\");\r\n break;\r\n }\r\n } catch (ex) {\r\n // istanbul ignore next\r\n {\r\n message = UiFramework.translate(\"keyinbrowser.exceptionOccurred\");\r\n detailedMessage = `${UiFramework.translate(\"keyinbrowser.exceptionOccurred\")}: ${ex}`;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (undefined !== message) {\r\n const errorDetails = new NotifyMessageDetails(OutputMessagePriority.Error, message, detailedMessage, OutputMessageType.Sticky);\r\n IModelApp.notifications.outputMessage(errorDetails);\r\n } else {\r\n // istanbul ignore next\r\n if (value.length < 400 && value !== ClearKeyinPaletteHistoryTool.keyin && value !== ClearKeyinPaletteHistoryTool.englishKeyin) {\r\n const newHistoryEntries: string[] = [value];\r\n for (const entry of historyKeyins) {\r\n if (entry !== value) {\r\n newHistoryEntries.push(entry);\r\n if (newHistoryEntries.length >= allowedHistoryLength)\r\n break;\r\n }\r\n }\r\n await storeHistoryKeyins(newHistoryEntries);\r\n }\r\n\r\n // close the popup by processing the supplied onKeyinExecuted function\r\n if (onKeyinExecuted)\r\n onKeyinExecuted(value);\r\n }\r\n }, [storeHistoryKeyins, onKeyinExecuted, historyKeyins, allowedHistoryLength]);\r\n\r\n const selectKeyin = React.useCallback(() => {\r\n // istanbul ignore else\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\r\n }\r\n }, [inputRef]);\r\n\r\n const updateKeyin = React.useCallback((value: string) => {\r\n setCurrentKeyin(value);\r\n selectKeyin();\r\n }, [selectKeyin]);\r\n\r\n const getKeyinFromListboxValue = (value: string | undefined) => {\r\n // istanbul ignore else\r\n if (value) {\r\n const indexSeparator = value.search(keyinSeparator);\r\n // istanbul ignore else\r\n if (indexSeparator)\r\n return value.substr(0, indexSeparator);\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n };\r\n\r\n const handleKeypressOnKeyinsList = React.useCallback(async (event: React.KeyboardEvent<HTMLUListElement>) => {\r\n const key = event.key;\r\n // built into listbox a \"Space\" key will trigger the selection of a entry so if an Enter key is pressed\r\n // assume user wants to execute the entry.\r\n // istanbul ignore else\r\n if (key === SpecialKey.Enter) {\r\n event.preventDefault();\r\n // istanbul ignore next\r\n const keyinToSend = getKeyinFromListboxValue(event.currentTarget?.dataset?.focusvalue);\r\n // istanbul ignore else\r\n if (keyinToSend) {\r\n if (event.ctrlKey)\r\n updateKeyin(keyinToSend);\r\n else\r\n await submitKeyin(keyinToSend);\r\n }\r\n }\r\n }, [submitKeyin, updateKeyin]);\r\n\r\n const onListboxValueChange = React.useCallback(async (value: string, isControlOrCommandPressed?: boolean) => {\r\n const keyin = getKeyinFromListboxValue(value);\r\n // istanbul ignore else\r\n if (keyin) {\r\n if (isControlOrCommandPressed)\r\n updateKeyin(keyin);\r\n else\r\n await submitKeyin(keyin);\r\n }\r\n }, [submitKeyin, updateKeyin]);\r\n\r\n const onInputValueChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n setCurrentKeyin(event.target.value);\r\n }, []);\r\n\r\n const filteredKeyins = React.useMemo(() => {\r\n const filteredHistory: KeyinEntry[] = [];\r\n if (undefined === currentKeyin || 0 === currentKeyin.length) {\r\n return allKeyins;\r\n } else {\r\n const newKeyinSet: KeyinEntry[] = [];\r\n allKeyins.forEach((value) => {\r\n if (value.value.length >= currentKeyin.length) {\r\n // Force contiguous searches if key-in is over 60 characters long for performance.\r\n const matches = matchesWords(currentKeyin, value.value, currentKeyin.length > 60);\r\n if (matches && matches.length) {\r\n // istanbul ignore else\r\n if (value.isHistory) {\r\n filteredHistory.push(value);\r\n newKeyinSet.push({ ...value, matches });\r\n } else {\r\n // only add entry if no match in filtered history\r\n // istanbul ignore else\r\n if (-1 === filteredHistory.findIndex((historyEntry: KeyinEntry) => historyEntry.value === value.value))\r\n newKeyinSet.push({ ...value, matches });\r\n }\r\n }\r\n }\r\n });\r\n return newKeyinSet;\r\n }\r\n }, [allKeyins, currentKeyin]);\r\n\r\n const onInputValueKeyDown = React.useCallback(async (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (SpecialKey.Enter === event.key) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (1 === filteredKeyins.length) {\r\n if (event.ctrlKey)\r\n updateKeyin(filteredKeyins[0].value);\r\n else\r\n await submitKeyin(filteredKeyins[0].value);\r\n } else {\r\n if (currentKeyin)\r\n await submitKeyin(currentKeyin);\r\n }\r\n } else if (SpecialKey.Tab === event.key && 1 === filteredKeyins.length) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n updateKeyin(filteredKeyins[0].value);\r\n } else {\r\n if (event.key === SpecialKey.ArrowDown && filteredKeyins.length > 0) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (inputRef.current) {\r\n const nextElement = inputRef.current.nextElementSibling as HTMLElement;\r\n nextElement && nextElement.focus();\r\n }\r\n }\r\n }\r\n\r\n }, [filteredKeyins, submitKeyin, currentKeyin, updateKeyin]);\r\n\r\n const lastHistoryIndex = filteredKeyins.findIndex((entry) => (true !== entry.isHistory)) - 1;\r\n\r\n return <div className=\"uifw-command-palette-panel\">\r\n <Input ref={inputRef} type=\"text\" onKeyDown={onInputValueKeyDown}\r\n className={\"uifw-command-palette-input\"} data-testid=\"command-palette-input\" onChange={onInputValueChange}\r\n placeholder={placeholderLabel.current} value={currentKeyin} size=\"small\"\r\n />\r\n {(filteredKeyins.length > 0) &&\r\n <Listbox id=\"uifw-command-sources\" className=\"map-manager-source-list\" onKeyDown={handleKeypressOnKeyinsList}\r\n onListboxValueChange={onListboxValueChange} >\r\n {\r\n filteredKeyins.map((entry, index) => {\r\n const value = `${entry.value}${keyinSeparator}${entry.isHistory ? \"history\" : \"registry\"}`;\r\n const itemClass = `uifw-command-palette-value-entry${index === lastHistoryIndex ? \" uifw-history-bottom-border\" : \"\"}`;\r\n return <ListboxItem key={`${entry.value}-${index}`} className={itemClass} value={value} >\r\n <FilteredText value={entry.value} matches={entry.matches} />\r\n </ListboxItem>;\r\n })\r\n }\r\n </Listbox >\r\n }\r\n </div >;\r\n}\r\n"]}
|
|
@@ -16,7 +16,7 @@ export interface FrameworkState {
|
|
|
16
16
|
export declare const FrameworkReducer: (state: import("./redux-ts").CombinedReducerState<{
|
|
17
17
|
configurableUiState: typeof ConfigurableUiReducer;
|
|
18
18
|
sessionState: typeof SessionStateReducer;
|
|
19
|
-
}>, action: import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetSnapMode, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetTheme, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetToolPrompt, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetWidgetOpacity, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetDragInteraction, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetFrameworkVersion, import("../UiFramework").FrameworkVersionId>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetShowWidgetIcon, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.AutoCollapseUnpinnedPanels, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetViewOverlayDisplay, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.AnimateToolSettings, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetActiveIModelId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetAvailableSelectionScopes, import("./redux-ts").DeepReadonlyArray<import("./SessionState").PresentationSelectionScope>>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultIModelViewportControlId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultViewId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultViewState, any>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetNumItemsSelected, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetIModelConnection, any>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetSelectionScope, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.UpdateCursorMenu, import("./redux-ts").DeepReadonlyObject<import("./SessionState").CursorMenuData>>>) => import("./redux-ts").CombinedReducerState<{
|
|
19
|
+
}>, action: import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetSnapMode, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetTheme, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetToolPrompt, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetWidgetOpacity, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetDragInteraction, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetFrameworkVersion, import("../UiFramework").FrameworkVersionId>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetShowWidgetIcon, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.AutoCollapseUnpinnedPanels, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetViewOverlayDisplay, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.AnimateToolSettings, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.UseToolAsToolSettingsLabel, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetActiveIModelId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetAvailableSelectionScopes, import("./redux-ts").DeepReadonlyArray<import("./SessionState").PresentationSelectionScope>>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultIModelViewportControlId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultViewId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultViewState, any>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetNumItemsSelected, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetIModelConnection, any>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetSelectionScope, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.UpdateCursorMenu, import("./redux-ts").DeepReadonlyObject<import("./SessionState").CursorMenuData>>>) => import("./redux-ts").CombinedReducerState<{
|
|
20
20
|
configurableUiState: typeof ConfigurableUiReducer;
|
|
21
21
|
sessionState: typeof SessionStateReducer;
|
|
22
22
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearEmphasisStatusField.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/ClearEmphasisStatusField.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIpE;;GAEG;AACH,UAAU,6BAA8B,SAAQ,gBAAgB;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,
|
|
1
|
+
{"version":3,"file":"ClearEmphasisStatusField.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/ClearEmphasisStatusField.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIpE;;GAEG;AACH,UAAU,6BAA8B,SAAQ,gBAAgB;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,eA0C5E"}
|
|
@@ -16,6 +16,7 @@ import { HideIsolateEmphasizeActionHandler } from "./HideIsolateEmphasizeManager
|
|
|
16
16
|
* @deprecated use clear emphasis tool button option instead.
|
|
17
17
|
*/
|
|
18
18
|
export function ClearEmphasisStatusField(props) {
|
|
19
|
+
var _a;
|
|
19
20
|
const [toolTip] = React.useState(UiFramework.translate("tools.clearVisibility"));
|
|
20
21
|
const activeViewport = useActiveViewport();
|
|
21
22
|
const [showIndicator, setShowIndicator] = React.useState(false);
|
|
@@ -44,6 +45,8 @@ export function ClearEmphasisStatusField(props) {
|
|
|
44
45
|
const clearEmphasize = async () => {
|
|
45
46
|
await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();
|
|
46
47
|
};
|
|
47
|
-
return (React.createElement(Indicator, { toolTip: toolTip, className: classes, opened: false, onClick: clearEmphasize, iconName: "icon-visibility",
|
|
48
|
+
return (React.createElement(Indicator, { toolTip: toolTip, className: classes, opened: false, onClick: clearEmphasize, iconName: "icon-visibility",
|
|
49
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
50
|
+
isInFooterMode: (_a = props.isInFooterMode) !== null && _a !== void 0 ? _a : true }));
|
|
48
51
|
}
|
|
49
52
|
//# sourceMappingURL=ClearEmphasisStatusField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearEmphasisStatusField.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/ClearEmphasisStatusField.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,6BAA6B;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AASlF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAoC
|
|
1
|
+
{"version":3,"file":"ClearEmphasisStatusField.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/ClearEmphasisStatusField.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,6BAA6B;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AASlF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAoC;;IAC3E,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,uBAAuB;YACvB,MAAM,oBAAoB,GAAG,CAAC,CAAC,cAAc,IAAI,WAAW,CAAC,iCAAiC,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;YACzI,gBAAgB,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF,uBAAuB;QACvB,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,WAAW,CAAC,iCAAiC,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEzJ,iCAAiC,CAAC,wBAAwB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC1F,qBAAqB;QACrB,IAAI,cAAc;YAChB,cAAc,CAAC,yBAAyB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAE1E,OAAO,GAAG,EAAE;YACV,qBAAqB;YACrB,IAAI,cAAc;gBAChB,cAAc,CAAC,yBAAyB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAE7E,iCAAiC,CAAC,wBAAwB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC/F,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAEvF,uBAAuB;IACvB,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,WAAW,CAAC,iCAAiC,CAAC,qBAAqB,EAAE,CAAC;IAC9E,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,SAAS,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAC,iBAAiB;QACjH,mDAAmD;QACnD,cAAc,EAAE,MAAA,KAAK,CAAC,cAAc,mCAAI,IAAI,GAAI,CACnD,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\n// cSpell:ignore statusfields\r\n\r\nimport * as React from \"react\";\r\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\r\nimport { Indicator } from \"../statusfields/Indicator\";\r\nimport { StatusFieldProps } from \"../statusfields/StatusFieldProps\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { HideIsolateEmphasizeActionHandler } from \"./HideIsolateEmphasizeManager\";\r\n\r\n/** Clear Emphasis StatusField Props\r\n * @beta\r\n */\r\ninterface ClearEmphasisStatusFieldProps extends StatusFieldProps {\r\n hideWhenUnused?: boolean;\r\n}\r\n\r\n/** Clear Emphasis StatusField\r\n * @beta\r\n * @deprecated use clear emphasis tool button option instead.\r\n */\r\nexport function ClearEmphasisStatusField(props: ClearEmphasisStatusFieldProps) {\r\n const [toolTip] = React.useState(UiFramework.translate(\"tools.clearVisibility\"));\r\n const activeViewport = useActiveViewport();\r\n const [showIndicator, setShowIndicator] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const onEmphasizeChange = () => {\r\n // istanbul ignore next\r\n const hasEmphasizeElements = !!activeViewport && UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeViewport);\r\n setShowIndicator(hasEmphasizeElements || !props.hideWhenUnused);\r\n };\r\n\r\n // istanbul ignore next\r\n setShowIndicator((!!activeViewport && UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeViewport)) || !props.hideWhenUnused);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.addListener(onEmphasizeChange);\r\n // istanbul ignore if\r\n if (activeViewport)\r\n activeViewport.onFeatureOverridesChanged.addListener(onEmphasizeChange);\r\n\r\n return () => {\r\n // istanbul ignore if\r\n if (activeViewport)\r\n activeViewport.onFeatureOverridesChanged.removeListener(onEmphasizeChange);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.removeListener(onEmphasizeChange);\r\n };\r\n }, [activeViewport, props.hideWhenUnused]);\r\n\r\n const classes = (showIndicator) ? \"uifw-indicator-fade-in\" : \"uifw-indicator-fade-out\";\r\n\r\n // istanbul ignore next\r\n const clearEmphasize = async () => {\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\r\n };\r\n\r\n return (\r\n <Indicator toolTip={toolTip} className={classes} opened={false} onClick={clearEmphasize} iconName=\"icon-visibility\"\r\n // eslint-disable-next-line deprecation/deprecation\r\n isInFooterMode={props.isInFooterMode ?? true} />\r\n );\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAAE,8BAA8B,EAAE,EAAE;IAAE,8BAA8B,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAAE,8BAA8B,EAAE,EAAE;IAAE,8BAA8B,EAAE,OAAO,CAAA;CAAE,eAwL7G;AAwBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,8BAA8B,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAS1H"}
|
|
@@ -53,12 +53,15 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
53
53
|
const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription"));
|
|
54
54
|
const animateToolSettingsTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.animateToolSettingsTitle"));
|
|
55
55
|
const animateToolSettingsDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.animateToolSettingsDescription"));
|
|
56
|
+
const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.useToolAsToolSettingsLabelTitle"));
|
|
57
|
+
const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.useToolAsToolSettingsLabelDescription"));
|
|
56
58
|
const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());
|
|
57
59
|
const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);
|
|
58
60
|
const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);
|
|
59
61
|
const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);
|
|
60
62
|
const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);
|
|
61
63
|
const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);
|
|
64
|
+
const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);
|
|
62
65
|
const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());
|
|
63
66
|
const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);
|
|
64
67
|
const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);
|
|
@@ -66,7 +69,7 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
66
69
|
React.useEffect(() => {
|
|
67
70
|
const syncIdsOfInterest = ["configurableui:set_theme", "configurableui:set_widget_opacity", "configurableui:set-show-widget-icon",
|
|
68
71
|
"configurableui:set-drag-interaction", "configurableui:set-framework-version",
|
|
69
|
-
"configurableui:set-auto-collapse-unpinned-panels", "configurableui:set-animate-tool-settings", SyncUiEventId.ShowHideManagerSettingChange];
|
|
72
|
+
"configurableui:set-auto-collapse-unpinned-panels", "configurableui:set-animate-tool-settings", "configurableui:set-use-tool-as-tool-settings-label", SyncUiEventId.ShowHideManagerSettingChange];
|
|
70
73
|
const handleSyncUiEvent = (args) => {
|
|
71
74
|
// istanbul ignore else
|
|
72
75
|
if (syncIdsOfInterest.some((value) => args.eventIds.has(value))) {
|
|
@@ -92,11 +95,13 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
92
95
|
setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);
|
|
93
96
|
if (UiFramework.animateToolSettings !== animateToolSettings)
|
|
94
97
|
setAnimateToolSettings(UiFramework.animateToolSettings);
|
|
98
|
+
if (UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel)
|
|
99
|
+
setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);
|
|
95
100
|
}
|
|
96
101
|
};
|
|
97
102
|
return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);
|
|
98
103
|
}, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,
|
|
99
|
-
useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings]);
|
|
104
|
+
useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings, useToolAsToolSettingsLabel]);
|
|
100
105
|
const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };
|
|
101
106
|
const themeOptions = [
|
|
102
107
|
defaultThemeOption,
|
|
@@ -137,6 +142,9 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
137
142
|
UiFramework.setAnimateToolSettings(!animateToolSettings);
|
|
138
143
|
}, [animateToolSettings]);
|
|
139
144
|
const currentTheme = UiFramework.getColorTheme();
|
|
145
|
+
const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {
|
|
146
|
+
UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);
|
|
147
|
+
}, [useToolAsToolSettingsLabel]);
|
|
140
148
|
return (React.createElement("div", { className: "uifw-settings" },
|
|
141
149
|
React.createElement(SettingsItem, { title: themeTitle.current, description: themeDescription.current, settingUi: React.createElement("div", { "data-testid": "select-theme-container", className: "select-theme-container" },
|
|
142
150
|
React.createElement(Select, { value: currentTheme, onChange: onThemeChange, options: themeOptions, "data-testid": "select-theme", size: "small" })) }),
|
|
@@ -148,7 +156,8 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
148
156
|
React.createElement(SettingsItem, { title: snapWidgetOpacityTitle.current, description: snapWidgetOpacityDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: snapWidgetOpacity, onChange: onSnapWidgetOpacityChange }) }),
|
|
149
157
|
React.createElement(SettingsItem, { title: widgetIconTitle.current, description: widgetIconDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: showWidgetIcon, onChange: onWidgetIconChange }) }),
|
|
150
158
|
React.createElement(SettingsItem, { title: autoCollapseUnpinnedPanelsTitle.current, description: autoCollapseUnpinnedPanelsDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: autoCollapseUnpinnedPanels, onChange: onAutoCollapseUnpinnedPanelsChange }) }),
|
|
151
|
-
React.createElement(SettingsItem, { title: animateToolSettingsTitle.current, description: animateToolSettingsDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: animateToolSettings, onChange: OnToggleAnimateToolSettings }) })
|
|
159
|
+
React.createElement(SettingsItem, { title: animateToolSettingsTitle.current, description: animateToolSettingsDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: animateToolSettings, onChange: OnToggleAnimateToolSettings }) }),
|
|
160
|
+
React.createElement(SettingsItem, { title: useToolAsToolSettingsLabelTitle.current, description: useToolAsToolSettingsLabelDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: useToolAsToolSettingsLabel, onChange: OnToggleUseToolAsToolSettingsLabel }) })),
|
|
152
161
|
React.createElement(SettingsItem, { title: widgetOpacityTitle.current, description: widgetOpacityDescription.current, settingUi: React.createElement(Slider, { style: { flex: "1" }, values: [widgetOpacity], step: 0.05, onChange: onWidgetOpacityChange, min: 0.20, max: 1.0, maxLabel: "1.0", tickLabels: ["", "", "", "", ""] }) })));
|
|
153
162
|
}
|
|
154
163
|
function SettingsItem(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\r\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\r\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"));\r\n const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"));\r\n const animateToolSettingsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\"));\r\n const animateToolSettingsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\r\n const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\",\r\n \"configurableui:set-auto-collapse-unpinned-panels\", \"configurableui:set-animate-tool-settings\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels)\r\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n if (UiFramework.animateToolSettings !== animateToolSettings)\r\n setAnimateToolSettings(UiFramework.animateToolSettings);\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,\r\n useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\r\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\r\n }, [autoCollapseUnpinnedPanels]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\r\n UiFramework.setAnimateToolSettings(!animateToolSettings);\r\n }, [animateToolSettings]);\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n <SettingsItem title={autoCollapseUnpinnedPanelsTitle.current} description={autoCollapseUnpinnedPanelsDescription.current}\r\n settingUi={<ToggleSwitch checked={autoCollapseUnpinnedPanels} onChange={onAutoCollapseUnpinnedPanelsChange} />}\r\n />\r\n <SettingsItem title={animateToolSettingsTitle.current} description={animateToolSettingsDescription.current}\r\n settingUi={<ToggleSwitch checked={animateToolSettings} onChange={OnToggleAnimateToolSettings} />}\r\n />\r\n\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\r\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\r\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"));\r\n const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"));\r\n const animateToolSettingsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\"));\r\n const animateToolSettingsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsDescription\"));\r\n const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"));\r\n const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\r\n const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);\r\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\",\r\n \"configurableui:set-auto-collapse-unpinned-panels\", \"configurableui:set-animate-tool-settings\", \"configurableui:set-use-tool-as-tool-settings-label\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels)\r\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n if (UiFramework.animateToolSettings !== animateToolSettings)\r\n setAnimateToolSettings(UiFramework.animateToolSettings);\r\n if (UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel)\r\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,\r\n useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings, useToolAsToolSettingsLabel]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\r\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\r\n }, [autoCollapseUnpinnedPanels]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\r\n UiFramework.setAnimateToolSettings(!animateToolSettings);\r\n }, [animateToolSettings]);\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\r\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\r\n }, [useToolAsToolSettingsLabel]);\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n <SettingsItem title={autoCollapseUnpinnedPanelsTitle.current} description={autoCollapseUnpinnedPanelsDescription.current}\r\n settingUi={<ToggleSwitch checked={autoCollapseUnpinnedPanels} onChange={onAutoCollapseUnpinnedPanelsChange} />}\r\n />\r\n <SettingsItem title={animateToolSettingsTitle.current} description={animateToolSettingsDescription.current}\r\n settingUi={<ToggleSwitch checked={animateToolSettings} onChange={OnToggleAnimateToolSettings} />}\r\n />\r\n <SettingsItem title={useToolAsToolSettingsLabelTitle.current} description={useToolAsToolSettingsLabelDescription.current}\r\n settingUi={<ToggleSwitch checked={useToolAsToolSettingsLabel} onChange={OnToggleUseToolAsToolSettingsLabel} />}\r\n />\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
|
|
@@ -143,6 +143,7 @@ export declare const setPanelSize: (base: {
|
|
|
143
143
|
readonly side: PanelSide;
|
|
144
144
|
};
|
|
145
145
|
readonly userSized?: boolean | undefined;
|
|
146
|
+
readonly hidden?: boolean | undefined;
|
|
146
147
|
};
|
|
147
148
|
};
|
|
148
149
|
readonly allIds: readonly string[];
|
|
@@ -264,6 +265,7 @@ export declare const setPanelSize: (base: {
|
|
|
264
265
|
readonly canPopout?: boolean | undefined;
|
|
265
266
|
readonly userSized?: boolean | undefined;
|
|
266
267
|
readonly isFloatingStateWindowResizable?: boolean | undefined;
|
|
268
|
+
readonly hideWithUiWhenFloating?: boolean | undefined;
|
|
267
269
|
};
|
|
268
270
|
};
|
|
269
271
|
readonly toolSettings: {
|