@itwin/appui-react 5.0.0-dev.2 → 5.0.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 +78 -1
- package/lib/appui-react/UiFramework.d.ts +2 -2
- package/lib/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/appui-react/UiFramework.js +3 -1
- package/lib/appui-react/UiFramework.js.map +1 -1
- package/lib/appui-react/UiFramework.json +4 -0
- package/lib/appui-react/childwindow/ChildWindowWidget.d.ts.map +1 -1
- package/lib/appui-react/childwindow/ChildWindowWidget.js +4 -1
- package/lib/appui-react/childwindow/ChildWindowWidget.js.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
- package/lib/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
- package/lib/appui-react/dialog/StandardMessageBox.js +1 -1
- package/lib/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts +3 -3
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/appui-react/frontstage/FrontstageDef.js +4 -0
- package/lib/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.d.ts +4 -2
- package/lib/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.js +5 -7
- package/lib/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.scss +0 -5
- package/lib/appui-react/frontstage/ModalFrontstageButton.d.ts +22 -0
- package/lib/appui-react/frontstage/ModalFrontstageButton.d.ts.map +1 -0
- package/lib/appui-react/frontstage/ModalFrontstageButton.js +29 -0
- package/lib/appui-react/frontstage/ModalFrontstageButton.js.map +1 -0
- package/lib/appui-react/frontstage/ModalFrontstageButton.scss +21 -0
- package/lib/appui-react/icons/SvgAssetClassificationHide.d.ts +7 -0
- package/lib/appui-react/icons/SvgAssetClassificationHide.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgAssetClassificationHide.js +14 -0
- package/lib/appui-react/icons/SvgAssetClassificationHide.js.map +1 -0
- package/lib/appui-react/icons/SvgAssetIsolate.d.ts +7 -0
- package/lib/appui-react/icons/SvgAssetIsolate.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgAssetIsolate.js +14 -0
- package/lib/appui-react/icons/SvgAssetIsolate.js.map +1 -0
- package/lib/appui-react/icons/SvgGyroscope.d.ts +7 -0
- package/lib/appui-react/icons/SvgGyroscope.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgGyroscope.js +15 -0
- package/lib/appui-react/icons/SvgGyroscope.js.map +1 -0
- package/lib/appui-react/icons/SvgLayersHide.d.ts +7 -0
- package/lib/appui-react/icons/SvgLayersHide.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgLayersHide.js +14 -0
- package/lib/appui-react/icons/SvgLayersHide.js.map +1 -0
- package/lib/appui-react/icons/SvgLayersIsolate.d.ts +7 -0
- package/lib/appui-react/icons/SvgLayersIsolate.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgLayersIsolate.js +14 -0
- package/lib/appui-react/icons/SvgLayersIsolate.js.map +1 -0
- package/lib/appui-react/icons/SvgModelHide.d.ts +7 -0
- package/lib/appui-react/icons/SvgModelHide.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgModelHide.js +15 -0
- package/lib/appui-react/icons/SvgModelHide.js.map +1 -0
- package/lib/appui-react/icons/SvgModelIsolate.d.ts +7 -0
- package/lib/appui-react/icons/SvgModelIsolate.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgModelIsolate.js +15 -0
- package/lib/appui-react/icons/SvgModelIsolate.js.map +1 -0
- package/lib/appui-react/icons/SvgSavedView.d.ts +7 -0
- package/lib/appui-react/icons/SvgSavedView.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgSavedView.js +15 -0
- package/lib/appui-react/icons/SvgSavedView.js.map +1 -0
- package/lib/appui-react/icons/SvgSectionTool.d.ts +7 -0
- package/lib/appui-react/icons/SvgSectionTool.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgSectionTool.js +15 -0
- package/lib/appui-react/icons/SvgSectionTool.js.map +1 -0
- package/lib/appui-react/icons/SvgSelectionClear.d.ts +7 -0
- package/lib/appui-react/icons/SvgSelectionClear.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgSelectionClear.js +14 -0
- package/lib/appui-react/icons/SvgSelectionClear.js.map +1 -0
- package/lib/appui-react/icons/SvgViewLayouts.d.ts +7 -0
- package/lib/appui-react/icons/SvgViewLayouts.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgViewLayouts.js +14 -0
- package/lib/appui-react/icons/SvgViewLayouts.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceBottom.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceBottom.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceBottom.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceBottom.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceFront.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceFront.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceFront.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceFront.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoLeft.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoLeft.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoLeft.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoLeft.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoRight.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoRight.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoRight.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoRight.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceLeft.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceLeft.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceLeft.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceLeft.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRear.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRear.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRear.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRear.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRight.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRight.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRight.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRight.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceTop.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceTop.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceTop.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceTop.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnaps.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnaps.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnaps.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnaps.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsBisector.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsBisector.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsBisector.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsBisector.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsCenter.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsCenter.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsCenter.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsCenter.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsIntersection.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsIntersection.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsIntersection.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsIntersection.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsMidpoint.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsMidpoint.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsMidpoint.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsMidpoint.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsNearest.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsNearest.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsNearest.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsNearest.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsOrigin.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsOrigin.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsOrigin.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsOrigin.js.map +1 -0
- package/lib/appui-react/layout/footer/snap-mode/Snap.d.ts.map +1 -1
- package/lib/appui-react/layout/footer/snap-mode/Snap.js +2 -2
- package/lib/appui-react/layout/footer/snap-mode/Snap.js.map +1 -1
- package/lib/appui-react/layout/footer/snap-mode/Snap.scss +4 -0
- package/lib/appui-react/layout/tool-settings/Docked.d.ts +2 -2
- package/lib/appui-react/layout/tool-settings/Docked.d.ts.map +1 -1
- package/lib/appui-react/layout/tool-settings/Docked.js +9 -11
- package/lib/appui-react/layout/tool-settings/Docked.js.map +1 -1
- package/lib/appui-react/layout/widget/Tabs.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/Tabs.js +2 -1
- package/lib/appui-react/layout/widget/Tabs.js.map +1 -1
- package/lib/appui-react/messages/MessageManager.d.ts +1 -2
- package/lib/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/appui-react/messages/MessageManager.js +34 -13
- package/lib/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js +16 -16
- package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/appui-react/pickers/ViewSelector.js +5 -2
- package/lib/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/appui-react/redux/FrameworkState.d.ts +5 -2
- package/lib/appui-react/redux/FrameworkState.d.ts.map +1 -1
- package/lib/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
- package/lib/appui-react/selection/SelectionContextItemDef.js +21 -20
- package/lib/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/appui-react/settings/ui/UiSettingsPage.js +2 -2
- package/lib/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/appui-react/statusbar/StatusBarComposer.d.ts +5 -11
- package/lib/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/appui-react/statusbar/StatusBarComposer.js +18 -118
- package/lib/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/appui-react/statusfields/SectionsField.js +2 -2
- package/lib/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/appui-react/statusfields/SnapMode.js +21 -30
- package/lib/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
- package/lib/appui-react/toolbar/ToolbarItemUtilities.js +5 -0
- package/lib/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
- package/lib/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/appui-react/tools/CoreToolDefinitions.js +12 -13
- package/lib/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/appui-react/tools/KeyinPaletteTools.d.ts +11 -6
- package/lib/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
- package/lib/appui-react/tools/KeyinPaletteTools.js +12 -9
- package/lib/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/appui-react/tools/OpenSettingsTool.d.ts +10 -5
- package/lib/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
- package/lib/appui-react/tools/OpenSettingsTool.js +11 -8
- package/lib/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/appui-react/tools/RestoreLayoutTool.d.ts +16 -8
- package/lib/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
- package/lib/appui-react/tools/RestoreLayoutTool.js +17 -13
- package/lib/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/appui-react/widget-panels/Content.d.ts +2 -0
- package/lib/appui-react/widget-panels/Content.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/Content.js +2 -1
- package/lib/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/Frontstage.js +3 -8
- package/lib/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.js +2 -2
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
- package/lib/appui-react/widgets/WidgetDef.d.ts +0 -1
- package/lib/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/appui-react/widgets/WidgetDef.js +0 -1
- package/lib/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/appui-react.d.ts +1 -0
- package/lib/appui-react.d.ts.map +1 -1
- package/lib/appui-react.js +1 -0
- package/lib/appui-react.js.map +1 -1
- package/lib/cjs/appui-react/_variables.scss +11 -0
- package/lib/{appui-react/layout/widget/tools/button/Back.scss → cjs/appui-react/accudraw/AccuDrawDialog.scss} +5 -3
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +20 -0
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +56 -0
- package/lib/cjs/appui-react/accudraw/Calculator.scss +82 -0
- package/lib/cjs/appui-react/accudraw/MenuButton.scss +18 -0
- package/lib/cjs/appui-react/accudraw/SquareButton.scss +30 -0
- package/lib/cjs/appui-react/accudraw/angle.svg +1 -0
- package/lib/cjs/appui-react/accudraw/backspace.svg +9 -0
- package/lib/cjs/appui-react/accudraw/constraint-2d.svg +11 -0
- package/lib/cjs/appui-react/accudraw/distance.svg +1 -0
- package/lib/cjs/appui-react/accudraw/height-2.svg +10 -0
- package/lib/cjs/appui-react/accudraw/height.svg +11 -0
- package/lib/cjs/appui-react/childwindow/ChildWindowRenderer.scss +18 -0
- package/lib/cjs/appui-react/childwindow/ChildWindowWidget.scss +8 -0
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.scss +57 -0
- package/lib/cjs/appui-react/content/ContentLayout.scss +106 -0
- package/lib/cjs/appui-react/content/ContentOverlay.scss +19 -0
- package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +41 -0
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +33 -0
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -0
- package/lib/cjs/appui-react/dialog/DialogManagerBase.scss +11 -0
- package/lib/cjs/appui-react/feedback/ElementTooltip.scss +29 -0
- package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +49 -0
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +76 -0
- package/lib/cjs/appui-react/frontstage/ModalFrontstageButton.scss +21 -0
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +12 -0
- package/lib/cjs/appui-react/layers.scss +11 -0
- package/lib/cjs/appui-react/layout/StandardLayout.scss +92 -0
- package/lib/cjs/appui-react/layout/_prefix.scss +33 -0
- package/lib/cjs/appui-react/layout/_safearea.scss +26 -0
- package/lib/cjs/appui-react/layout/_scrollbar.scss +22 -0
- package/lib/cjs/appui-react/layout/_target.scss +10 -0
- package/lib/cjs/appui-react/layout/_widgetopacity.scss +15 -0
- package/lib/cjs/appui-react/layout/backstage/Backstage.scss +90 -0
- package/lib/cjs/appui-react/layout/backstage/Item.scss +107 -0
- package/lib/cjs/appui-react/layout/backstage/Separator.scss +10 -0
- package/lib/cjs/appui-react/layout/backstage/_variables.scss +32 -0
- package/lib/cjs/appui-react/layout/footer/dialog/Dialog.scss +12 -0
- package/lib/cjs/appui-react/layout/footer/dialog/TitleBar.scss +30 -0
- package/lib/cjs/appui-react/layout/footer/dialog/_variables.scss +8 -0
- package/lib/cjs/appui-react/layout/footer/snap-mode/Panel.scss +19 -0
- package/lib/cjs/appui-react/layout/footer/snap-mode/Snap.scss +50 -0
- package/lib/cjs/appui-react/layout/footer/tool-assistance/Dialog.scss +15 -0
- package/lib/cjs/appui-react/layout/footer/tool-assistance/Instruction.scss +28 -0
- package/lib/cjs/appui-react/layout/footer/tool-assistance/Item.scss +13 -0
- package/lib/cjs/appui-react/layout/footer/tool-assistance/NewDot.scss +11 -0
- package/lib/cjs/appui-react/layout/footer/tool-assistance/Separator.scss +20 -0
- package/lib/cjs/appui-react/layout/outline/PanelOutline.scss +63 -0
- package/lib/cjs/appui-react/layout/outline/SectionOutline.scss +47 -0
- package/lib/cjs/appui-react/layout/outline/TabOutline.scss +18 -0
- package/lib/cjs/appui-react/layout/outline/WidgetOutline.scss +16 -0
- package/lib/cjs/appui-react/layout/outline/_variables.scss +7 -0
- package/lib/cjs/appui-react/layout/popup/Tooltip.scss +22 -0
- package/lib/cjs/appui-react/layout/target/MergeTarget.scss +17 -0
- package/lib/cjs/appui-react/layout/target/PanelTarget.scss +27 -0
- package/lib/cjs/appui-react/layout/target/PanelTargets.scss +52 -0
- package/lib/cjs/appui-react/layout/target/SectionTarget.scss +47 -0
- package/lib/cjs/appui-react/layout/target/SectionTargets.scss +13 -0
- package/lib/cjs/appui-react/layout/target/TabTarget.scss +30 -0
- package/lib/cjs/appui-react/layout/target/TargetContainer.scss +17 -0
- package/lib/cjs/appui-react/layout/target/TitleBarTarget.scss +17 -0
- package/lib/cjs/appui-react/layout/target/WidgetTarget.scss +11 -0
- package/lib/cjs/appui-react/layout/target/_variables.scss +66 -0
- package/lib/cjs/appui-react/layout/tool-settings/Docked.scss +30 -0
- package/lib/cjs/appui-react/layout/tool-settings/Handle.scss +17 -0
- package/lib/cjs/appui-react/layout/tool-settings/Overflow.scss +11 -0
- package/lib/cjs/appui-react/layout/tool-settings/Panel.scss +8 -0
- package/lib/cjs/appui-react/layout/tool-settings/Setting.scss +10 -0
- package/lib/cjs/appui-react/layout/widget/Buttons.scss +10 -0
- package/lib/cjs/appui-react/layout/widget/Content.scss +13 -0
- package/lib/cjs/appui-react/layout/widget/ContentContainer.scss +24 -0
- package/lib/cjs/appui-react/layout/widget/ContentRenderer.scss +18 -0
- package/lib/cjs/appui-react/layout/widget/FloatingTab.scss +36 -0
- package/lib/cjs/appui-react/layout/widget/FloatingWidget.scss +128 -0
- package/lib/cjs/appui-react/layout/widget/Menu.scss +12 -0
- package/lib/cjs/appui-react/layout/widget/MenuTab.scss +59 -0
- package/lib/cjs/appui-react/layout/widget/NavigationArea.scss +57 -0
- package/lib/cjs/appui-react/layout/widget/Overflow.scss +58 -0
- package/lib/cjs/appui-react/layout/widget/PanelWidget.scss +62 -0
- package/lib/cjs/appui-react/layout/widget/Tab.scss +90 -0
- package/lib/cjs/appui-react/layout/widget/TabBar.scss +29 -0
- package/lib/cjs/appui-react/layout/widget/Tabs.scss +10 -0
- package/lib/cjs/appui-react/layout/widget/ToolsArea.scss +51 -0
- package/lib/cjs/appui-react/layout/widget/Widget.scss +12 -0
- package/lib/cjs/appui-react/layout/widget/_variables.scss +50 -0
- package/lib/cjs/appui-react/layout/widget/tools/button/Button.scss +49 -0
- package/lib/cjs/appui-react/layout/widget/tools/button/Expandable.scss +46 -0
- package/lib/cjs/appui-react/layout/widget/tools/button/Icon.scss +54 -0
- package/lib/cjs/appui-react/layout/widget/tools/button/_variables.scss +42 -0
- package/lib/cjs/appui-react/layout/widget-panels/CursorOverlay.scss +25 -0
- package/lib/cjs/appui-react/layout/widget-panels/Expander.scss +37 -0
- package/lib/cjs/appui-react/layout/widget-panels/Grip.scss +141 -0
- package/lib/cjs/appui-react/layout/widget-panels/Panel.scss +258 -0
- package/lib/cjs/appui-react/layout/widget-panels/PanelSections.scss +60 -0
- package/lib/cjs/appui-react/layout/widget-panels/_variables.scss +6 -0
- package/lib/cjs/appui-react/messages/InputField.scss +77 -0
- package/lib/cjs/appui-react/messages/Pointer.scss +42 -0
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +50 -0
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.scss +74 -0
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -0
- package/lib/cjs/appui-react/pickers/ListPicker.scss +316 -0
- package/lib/cjs/appui-react/popup/CardPopup.scss +24 -0
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +30 -0
- package/lib/cjs/appui-react/popup/PositionPopup.scss +27 -0
- package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
- package/lib/cjs/appui-react/preview/control-widget-visibility/NavigationWidget.scss +17 -0
- package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +36 -0
- package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +49 -0
- package/lib/cjs/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.scss +7 -0
- package/lib/cjs/appui-react/preview/reparent-popout-widgets/ReparentedPopoutWidget.scss +8 -0
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +120 -0
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +61 -0
- package/lib/cjs/appui-react/statusbar/Field.scss +20 -0
- package/lib/cjs/appui-react/statusbar/LabelIndicator.scss +18 -0
- package/lib/cjs/appui-react/statusbar/Overflow.scss +15 -0
- package/lib/cjs/appui-react/statusbar/Separator.scss +11 -0
- package/lib/cjs/appui-react/statusbar/StatusBar.scss +89 -0
- package/lib/cjs/appui-react/statusbar/popup/ExpandIndicator.scss +17 -0
- package/lib/cjs/appui-react/statusbar/popup/Popup.scss +12 -0
- package/lib/cjs/appui-react/statusfields/SectionsField.scss +33 -0
- package/lib/cjs/appui-react/statusfields/SelectionCount.scss +23 -0
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +17 -0
- package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +10 -0
- package/lib/cjs/appui-react/statusfields/message-center/MessageCenterField.scss +24 -0
- package/lib/cjs/appui-react/statusfields/message-center/MessageCenterMessage.scss +28 -0
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +167 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/accept-point.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/cursor-click.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/gesture-one-finger-drag.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/gesture-one-finger-tap-double.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/gesture-one-finger-tap.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/gesture-pinch.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/gesture-two-finger-drag.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/gesture-two-finger-tap.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-left-drag.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-left.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-right-drag.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-right.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-wheel-drag.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-wheel.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/touch-cursor-pan.svg +1 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/touch-cursor-point.svg +1 -0
- package/lib/cjs/appui-react/theme/ThemeManager.scss +9 -0
- package/lib/cjs/appui-react/toolbar/new-toolbars/Badge.scss +13 -0
- package/lib/cjs/appui-react/toolbar/new-toolbars/ExpandIndicator.scss +17 -0
- package/lib/cjs/appui-react/toolbar/new-toolbars/Surface.scss +35 -0
- package/lib/cjs/appui-react/toolbar/new-toolbars/ToolGroup.scss +17 -0
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +103 -0
- package/lib/cjs/appui-react/widget-panels/DockedBar.scss +18 -0
- package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -0
- package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +12 -0
- package/lib/cjs/appui-react/widget-panels/Toolbars.scss +22 -0
- package/lib/cjs/appui-react/widgets/BackstageAppButton.scss +46 -0
- package/lib/esm/appui-react/_variables.scss +11 -0
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.scss +11 -0
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +20 -0
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +56 -0
- package/lib/esm/appui-react/accudraw/Calculator.scss +82 -0
- package/lib/esm/appui-react/accudraw/MenuButton.scss +18 -0
- package/lib/esm/appui-react/accudraw/SquareButton.scss +30 -0
- package/lib/esm/appui-react/accudraw/angle.svg +1 -0
- package/lib/esm/appui-react/accudraw/backspace.svg +9 -0
- package/lib/esm/appui-react/accudraw/constraint-2d.svg +11 -0
- package/lib/esm/appui-react/accudraw/distance.svg +1 -0
- package/lib/esm/appui-react/accudraw/height-2.svg +10 -0
- package/lib/esm/appui-react/accudraw/height.svg +11 -0
- package/lib/esm/appui-react/childwindow/ChildWindowRenderer.scss +18 -0
- package/lib/esm/appui-react/childwindow/ChildWindowWidget.scss +8 -0
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +57 -0
- package/lib/esm/appui-react/content/ContentLayout.scss +106 -0
- package/lib/esm/appui-react/content/ContentOverlay.scss +19 -0
- package/lib/esm/appui-react/content/DefaultViewOverlay.scss +41 -0
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +33 -0
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -0
- package/lib/esm/appui-react/dialog/DialogManagerBase.scss +11 -0
- package/lib/esm/appui-react/feedback/ElementTooltip.scss +29 -0
- package/lib/esm/appui-react/feedback/ValidationTextbox.scss +49 -0
- package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +76 -0
- package/lib/esm/appui-react/frontstage/ModalFrontstageButton.scss +21 -0
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +12 -0
- package/lib/esm/appui-react/layers.scss +11 -0
- package/lib/esm/appui-react/layout/StandardLayout.scss +92 -0
- package/lib/esm/appui-react/layout/_prefix.scss +33 -0
- package/lib/esm/appui-react/layout/_safearea.scss +26 -0
- package/lib/esm/appui-react/layout/_scrollbar.scss +22 -0
- package/lib/esm/appui-react/layout/_target.scss +10 -0
- package/lib/esm/appui-react/layout/_widgetopacity.scss +15 -0
- package/lib/esm/appui-react/layout/backstage/Backstage.scss +90 -0
- package/lib/esm/appui-react/layout/backstage/Item.scss +107 -0
- package/lib/esm/appui-react/layout/backstage/Separator.scss +10 -0
- package/lib/esm/appui-react/layout/backstage/_variables.scss +32 -0
- package/lib/esm/appui-react/layout/footer/dialog/Dialog.scss +12 -0
- package/lib/esm/appui-react/layout/footer/dialog/TitleBar.scss +30 -0
- package/lib/esm/appui-react/layout/footer/dialog/_variables.scss +8 -0
- package/lib/esm/appui-react/layout/footer/snap-mode/Panel.scss +19 -0
- package/lib/esm/appui-react/layout/footer/snap-mode/Snap.scss +50 -0
- package/lib/esm/appui-react/layout/footer/tool-assistance/Dialog.scss +15 -0
- package/lib/esm/appui-react/layout/footer/tool-assistance/Instruction.scss +28 -0
- package/lib/esm/appui-react/layout/footer/tool-assistance/Item.scss +13 -0
- package/lib/esm/appui-react/layout/footer/tool-assistance/NewDot.scss +11 -0
- package/lib/esm/appui-react/layout/footer/tool-assistance/Separator.scss +20 -0
- package/lib/esm/appui-react/layout/outline/PanelOutline.scss +63 -0
- package/lib/esm/appui-react/layout/outline/SectionOutline.scss +47 -0
- package/lib/esm/appui-react/layout/outline/TabOutline.scss +18 -0
- package/lib/esm/appui-react/layout/outline/WidgetOutline.scss +16 -0
- package/lib/esm/appui-react/layout/outline/_variables.scss +7 -0
- package/lib/esm/appui-react/layout/popup/Tooltip.scss +22 -0
- package/lib/esm/appui-react/layout/target/MergeTarget.scss +17 -0
- package/lib/esm/appui-react/layout/target/PanelTarget.scss +27 -0
- package/lib/esm/appui-react/layout/target/PanelTargets.scss +52 -0
- package/lib/esm/appui-react/layout/target/SectionTarget.scss +47 -0
- package/lib/esm/appui-react/layout/target/SectionTargets.scss +13 -0
- package/lib/esm/appui-react/layout/target/TabTarget.scss +30 -0
- package/lib/esm/appui-react/layout/target/TargetContainer.scss +17 -0
- package/lib/esm/appui-react/layout/target/TitleBarTarget.scss +17 -0
- package/lib/esm/appui-react/layout/target/WidgetTarget.scss +11 -0
- package/lib/esm/appui-react/layout/target/_variables.scss +66 -0
- package/lib/esm/appui-react/layout/tool-settings/Docked.scss +30 -0
- package/lib/esm/appui-react/layout/tool-settings/Handle.scss +17 -0
- package/lib/esm/appui-react/layout/tool-settings/Overflow.scss +11 -0
- package/lib/esm/appui-react/layout/tool-settings/Panel.scss +8 -0
- package/lib/esm/appui-react/layout/tool-settings/Setting.scss +10 -0
- package/lib/esm/appui-react/layout/widget/Buttons.scss +10 -0
- package/lib/esm/appui-react/layout/widget/Content.scss +13 -0
- package/lib/esm/appui-react/layout/widget/ContentContainer.scss +24 -0
- package/lib/esm/appui-react/layout/widget/ContentRenderer.scss +18 -0
- package/lib/esm/appui-react/layout/widget/FloatingTab.scss +36 -0
- package/lib/esm/appui-react/layout/widget/FloatingWidget.scss +128 -0
- package/lib/esm/appui-react/layout/widget/Menu.scss +12 -0
- package/lib/esm/appui-react/layout/widget/MenuTab.scss +59 -0
- package/lib/esm/appui-react/layout/widget/NavigationArea.scss +57 -0
- package/lib/esm/appui-react/layout/widget/Overflow.scss +58 -0
- package/lib/esm/appui-react/layout/widget/PanelWidget.scss +62 -0
- package/lib/esm/appui-react/layout/widget/Tab.scss +90 -0
- package/lib/esm/appui-react/layout/widget/TabBar.scss +29 -0
- package/lib/esm/appui-react/layout/widget/Tabs.scss +10 -0
- package/lib/esm/appui-react/layout/widget/ToolsArea.scss +51 -0
- package/lib/esm/appui-react/layout/widget/Widget.scss +12 -0
- package/lib/esm/appui-react/layout/widget/_variables.scss +50 -0
- package/lib/esm/appui-react/layout/widget/tools/button/Button.scss +49 -0
- package/lib/esm/appui-react/layout/widget/tools/button/Expandable.scss +46 -0
- package/lib/esm/appui-react/layout/widget/tools/button/Icon.scss +54 -0
- package/lib/esm/appui-react/layout/widget/tools/button/_variables.scss +42 -0
- package/lib/esm/appui-react/layout/widget-panels/CursorOverlay.scss +25 -0
- package/lib/esm/appui-react/layout/widget-panels/Expander.scss +37 -0
- package/lib/esm/appui-react/layout/widget-panels/Grip.scss +141 -0
- package/lib/esm/appui-react/layout/widget-panels/Panel.scss +258 -0
- package/lib/esm/appui-react/layout/widget-panels/PanelSections.scss +60 -0
- package/lib/esm/appui-react/layout/widget-panels/_variables.scss +6 -0
- package/lib/esm/appui-react/messages/InputField.scss +77 -0
- package/lib/esm/appui-react/messages/Pointer.scss +42 -0
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +50 -0
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.scss +74 -0
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -0
- package/lib/esm/appui-react/pickers/ListPicker.scss +316 -0
- package/lib/esm/appui-react/popup/CardPopup.scss +24 -0
- package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +30 -0
- package/lib/esm/appui-react/popup/PositionPopup.scss +27 -0
- package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
- package/lib/esm/appui-react/preview/control-widget-visibility/NavigationWidget.scss +17 -0
- package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +36 -0
- package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +49 -0
- package/lib/esm/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.scss +7 -0
- package/lib/esm/appui-react/preview/reparent-popout-widgets/ReparentedPopoutWidget.scss +8 -0
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +120 -0
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +61 -0
- package/lib/esm/appui-react/statusbar/Field.scss +20 -0
- package/lib/esm/appui-react/statusbar/LabelIndicator.scss +18 -0
- package/lib/esm/appui-react/statusbar/Overflow.scss +15 -0
- package/lib/esm/appui-react/statusbar/Separator.scss +11 -0
- package/lib/esm/appui-react/statusbar/StatusBar.scss +89 -0
- package/lib/esm/appui-react/statusbar/popup/ExpandIndicator.scss +17 -0
- package/lib/esm/appui-react/statusbar/popup/Popup.scss +12 -0
- package/lib/esm/appui-react/statusfields/SectionsField.scss +33 -0
- package/lib/esm/appui-react/statusfields/SelectionCount.scss +23 -0
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +17 -0
- package/lib/esm/appui-react/statusfields/ViewAttributes.scss +10 -0
- package/lib/esm/appui-react/statusfields/message-center/MessageCenterField.scss +24 -0
- package/lib/esm/appui-react/statusfields/message-center/MessageCenterMessage.scss +28 -0
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -0
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +167 -0
- package/lib/esm/appui-react/statusfields/toolassistance/accept-point.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/cursor-click.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/gesture-one-finger-drag.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/gesture-one-finger-tap-double.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/gesture-one-finger-tap.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/gesture-pinch.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/gesture-two-finger-drag.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/gesture-two-finger-tap.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-left-drag.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-left.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-right-drag.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-right.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-wheel-drag.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-wheel.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/touch-cursor-pan.svg +1 -0
- package/lib/esm/appui-react/statusfields/toolassistance/touch-cursor-point.svg +1 -0
- package/lib/esm/appui-react/theme/ThemeManager.scss +9 -0
- package/lib/esm/appui-react/toolbar/new-toolbars/Badge.scss +13 -0
- package/lib/esm/appui-react/toolbar/new-toolbars/ExpandIndicator.scss +17 -0
- package/lib/esm/appui-react/toolbar/new-toolbars/Surface.scss +35 -0
- package/lib/esm/appui-react/toolbar/new-toolbars/ToolGroup.scss +17 -0
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +103 -0
- package/lib/esm/appui-react/widget-panels/DockedBar.scss +18 -0
- package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -0
- package/lib/esm/appui-react/widget-panels/ToolSettings.scss +12 -0
- package/lib/esm/appui-react/widget-panels/Toolbars.scss +22 -0
- package/lib/esm/appui-react/widgets/BackstageAppButton.scss +46 -0
- package/lib/public/locales/en/UiFramework.json +4 -0
- package/package.json +17 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\nimport \"./UiSettingsPage.scss\";\nimport * as React from \"react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework.js\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../../syncui/SyncUiEventDispatcher.js\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\nimport {\n ColorTheme,\n SYSTEM_PREFERRED_COLOR_THEME,\n} from \"../../theme/ThemeId.js\";\nimport { ConfigurableUiActionId } from \"../../redux/ConfigurableUiState.js\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\n *\n * - theme - Dark, Light, with or without High contrast, or based on OS preference.\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.\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\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\n * active group button item.\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\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.\n * - widget opacity - determines how transparent floating widgets become when the mouse in not in them.\n * @beta\n * @deprecated in 4.15.0. Use iTwinUI components to build a settings page.\n */\nexport function UiSettingsPage() {\n const { translate } = useTranslation();\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\n const [useDragInteraction, setUseDragInteraction] = React.useState(\n () => UiFramework.useDragInteraction\n );\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(\n () => UiFramework.showWidgetIcon\n );\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] =\n React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\n const [animateToolSettings, setAnimateToolSettings] = React.useState(\n () => UiFramework.animateToolSettings\n );\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] =\n React.useState(() => UiFramework.useToolAsToolSettingsLabel);\n const [widgetOpacity, setWidgetOpacity] = React.useState(() =>\n UiFramework.getWidgetOpacity()\n );\n const [autoHideUi, setAutoHideUi] = React.useState(\n () => UiFramework.visibility.autoHideUi\n );\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(\n // eslint-disable-next-line deprecation/deprecation\n () => UiFramework.visibility.useProximityOpacity\n );\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(\n () => UiFramework.visibility.snapWidgetOpacity\n );\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() =>\n UiFramework.getToolbarOpacity()\n );\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n ConfigurableUiActionId.SetTheme,\n ConfigurableUiActionId.SetWidgetOpacity,\n ConfigurableUiActionId.SetShowWidgetIcon,\n ConfigurableUiActionId.SetDragInteraction,\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n ConfigurableUiActionId.AnimateToolSettings,\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n ConfigurableUiActionId.SetToolbarOpacity,\n SyncUiEventId.ShowHideManagerSettingChange,\n ];\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n if (UiFramework.getColorTheme() !== theme)\n setTheme(UiFramework.getColorTheme());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.useDragInteraction !== useDragInteraction)\n setUseDragInteraction(UiFramework.useDragInteraction);\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\n setShowWidgetIcon(UiFramework.showWidgetIcon);\n if (\n UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels\n )\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\n setWidgetOpacity(UiFramework.getWidgetOpacity());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n // eslint-disable-next-line deprecation/deprecation\n if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)\n // eslint-disable-next-line deprecation/deprecation\n setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);\n if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)\n setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);\n if (UiFramework.animateToolSettings !== animateToolSettings)\n setAnimateToolSettings(UiFramework.animateToolSettings);\n if (\n UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel\n )\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\n setToolbarOpacity(UiFramework.getToolbarOpacity());\n }\n });\n }, [\n autoCollapseUnpinnedPanels,\n autoHideUi,\n showWidgetIcon,\n snapWidgetOpacity,\n theme,\n useDragInteraction,\n useProximityOpacity,\n widgetOpacity,\n animateToolSettings,\n useToolAsToolSettingsLabel,\n toolbarOpacity,\n ]);\n\n const defaultThemeOption = {\n label: translate(\"settings.uiSettingsPage.systemPreferred\"),\n value: SYSTEM_PREFERRED_COLOR_THEME,\n };\n const themeOptions: SelectOption<string>[] = [\n defaultThemeOption,\n {\n label: translate(\"settings.uiSettingsPage.light\"),\n value: ColorTheme.Light,\n },\n {\n label: translate(\"settings.uiSettingsPage.dark\"),\n value: ColorTheme.Dark,\n },\n {\n label: translate(\"settings.uiSettingsPage.lightHighContrast\"),\n value: ColorTheme.HighContrastLight,\n },\n {\n label: translate(\"settings.uiSettingsPage.darkHighContrast\"),\n value: ColorTheme.HighContrastDark,\n },\n {\n label: translate(\"settings.uiSettingsPage.inherit\"),\n value: ColorTheme.Inherit,\n },\n ];\n\n const onThemeChange = React.useCallback((newValue: string) => {\n UiFramework.setColorTheme(newValue);\n }, []);\n\n const onAutoHideChange = React.useCallback(async () => {\n UiFramework.visibility.autoHideUi = !autoHideUi;\n }, [autoHideUi]);\n\n const onUseProximityOpacityChange = React.useCallback(async () => {\n // eslint-disable-next-line deprecation/deprecation\n UiFramework.visibility.useProximityOpacity = !useProximityOpacity;\n }, [useProximityOpacity]);\n\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.snapWidgetOpacity = !snapWidgetOpacity;\n }, [snapWidgetOpacity]);\n\n const onWidgetIconChange = React.useCallback(async () => {\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\n }, [showWidgetIcon]);\n\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\n }, [autoCollapseUnpinnedPanels]);\n\n const onWidgetOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n if (values.length > 0) {\n UiFramework.setWidgetOpacity(values[0]);\n }\n },\n []\n );\n\n const onToggleDragInteraction = React.useCallback(async () => {\n UiFramework.setUseDragInteraction(!useDragInteraction);\n }, [useDragInteraction]);\n\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\n UiFramework.setAnimateToolSettings(!animateToolSettings);\n }, [animateToolSettings]);\n const currentTheme = UiFramework.getColorTheme();\n\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\n }, [useToolAsToolSettingsLabel]);\n\n const onToolbarOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n if (values.length > 0) {\n UiFramework.setToolbarOpacity(values[0]);\n }\n },\n []\n );\n\n return (\n <div className=\"uifw-settings\">\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.themeTitle\")}\n description={translate(\"settings.uiSettingsPage.themeDescription\")}\n settingUi={\n <div\n data-testid=\"select-theme-container\"\n className=\"select-theme-container\"\n >\n <Select\n value={currentTheme}\n onChange={onThemeChange}\n options={themeOptions}\n data-testid=\"select-theme\"\n size=\"small\"\n />\n </div>\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.autoHideTitle\")}\n description={translate(\"settings.uiSettingsPage.autoHideDescription\")}\n settingUi={\n <ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.dragInteractionTitle\")}\n description={translate(\n \"settings.uiSettingsPage.dragInteractionDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useDragInteraction}\n onChange={onToggleDragInteraction}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.useProximityOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.useProximityOpacityDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useProximityOpacity}\n onChange={onUseProximityOpacityChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.snapWidgetOpacityDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={snapWidgetOpacity}\n onChange={onSnapWidgetOpacityChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.widgetIconTitle\")}\n description={translate(\"settings.uiSettingsPage.widgetIconDescription\")}\n settingUi={\n <ToggleSwitch\n checked={showWidgetIcon}\n onChange={onWidgetIconChange}\n />\n }\n />\n <SettingsItem\n title={translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"\n )}\n description={translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={autoCollapseUnpinnedPanels}\n onChange={onAutoCollapseUnpinnedPanelsChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.animateToolSettingsTitle\")}\n description={translate(\n \"settings.uiSettingsPage.animateToolSettingsDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={animateToolSettings}\n onChange={OnToggleAnimateToolSettings}\n />\n }\n />\n <SettingsItem\n title={translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"\n )}\n description={translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useToolAsToolSettingsLabel}\n onChange={OnToggleUseToolAsToolSettingsLabel}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.toolbarOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.toolbarOpacityDescription\"\n )}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[toolbarOpacity]}\n step={0.05}\n onChange={onToolbarOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.widgetOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.widgetOpacityDescription\"\n )}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[widgetOpacity]}\n step={0.05}\n onChange={onWidgetOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n </div>\n );\n}\n\ninterface SettingsItemProps {\n title: string;\n description: string;\n settingUi: React.ReactNode;\n}\n\nfunction SettingsItem(props: SettingsItemProps) {\n const { title, description, settingUi } = props;\n\n return (\n <div className=\"uifw-settings-item\">\n <div className=\"panel left-panel\">\n <span className=\"title\">{title}</span>\n <span className=\"description\">{description}</span>\n </div>\n <div className=\"panel right-panel\">{settingUi}</div>\n </div>\n );\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @beta\n */\nexport function getUiSettingsManagerEntry(\n itemPriority: number\n): SettingsTabEntry {\n return {\n itemPriority,\n tabId: \"uifw:UiStateStorage\",\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\n icon: widowSettingsIconSvg,\n page: <UiSettingsPage />,\n isDisabled: false,\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\nimport { SvgWindowSettings } from \"@itwin/itwinui-icons-react\";\nimport \"./UiSettingsPage.scss\";\nimport * as React from \"react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework.js\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../../syncui/SyncUiEventDispatcher.js\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\nimport {\n ColorTheme,\n SYSTEM_PREFERRED_COLOR_THEME,\n} from \"../../theme/ThemeId.js\";\nimport { ConfigurableUiActionId } from \"../../redux/ConfigurableUiState.js\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\n *\n * - theme - Dark, Light, with or without High contrast, or based on OS preference.\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.\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\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\n * active group button item.\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\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.\n * - widget opacity - determines how transparent floating widgets become when the mouse in not in them.\n * @beta\n * @deprecated in 4.15.0. Use iTwinUI components to build a settings page.\n */\nexport function UiSettingsPage() {\n const { translate } = useTranslation();\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\n const [useDragInteraction, setUseDragInteraction] = React.useState(\n () => UiFramework.useDragInteraction\n );\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(\n () => UiFramework.showWidgetIcon\n );\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] =\n React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\n const [animateToolSettings, setAnimateToolSettings] = React.useState(\n () => UiFramework.animateToolSettings\n );\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] =\n React.useState(() => UiFramework.useToolAsToolSettingsLabel);\n const [widgetOpacity, setWidgetOpacity] = React.useState(() =>\n UiFramework.getWidgetOpacity()\n );\n const [autoHideUi, setAutoHideUi] = React.useState(\n () => UiFramework.visibility.autoHideUi\n );\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(\n // eslint-disable-next-line deprecation/deprecation\n () => UiFramework.visibility.useProximityOpacity\n );\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(\n () => UiFramework.visibility.snapWidgetOpacity\n );\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() =>\n UiFramework.getToolbarOpacity()\n );\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n ConfigurableUiActionId.SetTheme,\n ConfigurableUiActionId.SetWidgetOpacity,\n ConfigurableUiActionId.SetShowWidgetIcon,\n ConfigurableUiActionId.SetDragInteraction,\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n ConfigurableUiActionId.AnimateToolSettings,\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n ConfigurableUiActionId.SetToolbarOpacity,\n SyncUiEventId.ShowHideManagerSettingChange,\n ];\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n if (UiFramework.getColorTheme() !== theme)\n setTheme(UiFramework.getColorTheme());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.useDragInteraction !== useDragInteraction)\n setUseDragInteraction(UiFramework.useDragInteraction);\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\n setShowWidgetIcon(UiFramework.showWidgetIcon);\n if (\n UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels\n )\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\n setWidgetOpacity(UiFramework.getWidgetOpacity());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n // eslint-disable-next-line deprecation/deprecation\n if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)\n // eslint-disable-next-line deprecation/deprecation\n setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);\n if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)\n setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);\n if (UiFramework.animateToolSettings !== animateToolSettings)\n setAnimateToolSettings(UiFramework.animateToolSettings);\n if (\n UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel\n )\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\n setToolbarOpacity(UiFramework.getToolbarOpacity());\n }\n });\n }, [\n autoCollapseUnpinnedPanels,\n autoHideUi,\n showWidgetIcon,\n snapWidgetOpacity,\n theme,\n useDragInteraction,\n useProximityOpacity,\n widgetOpacity,\n animateToolSettings,\n useToolAsToolSettingsLabel,\n toolbarOpacity,\n ]);\n\n const defaultThemeOption = {\n label: translate(\"settings.uiSettingsPage.systemPreferred\"),\n value: SYSTEM_PREFERRED_COLOR_THEME,\n };\n const themeOptions: SelectOption<string>[] = [\n defaultThemeOption,\n {\n label: translate(\"settings.uiSettingsPage.light\"),\n value: ColorTheme.Light,\n },\n {\n label: translate(\"settings.uiSettingsPage.dark\"),\n value: ColorTheme.Dark,\n },\n {\n label: translate(\"settings.uiSettingsPage.lightHighContrast\"),\n value: ColorTheme.HighContrastLight,\n },\n {\n label: translate(\"settings.uiSettingsPage.darkHighContrast\"),\n value: ColorTheme.HighContrastDark,\n },\n {\n label: translate(\"settings.uiSettingsPage.inherit\"),\n value: ColorTheme.Inherit,\n },\n ];\n\n const onThemeChange = React.useCallback((newValue: string) => {\n UiFramework.setColorTheme(newValue);\n }, []);\n\n const onAutoHideChange = React.useCallback(async () => {\n UiFramework.visibility.autoHideUi = !autoHideUi;\n }, [autoHideUi]);\n\n const onUseProximityOpacityChange = React.useCallback(async () => {\n // eslint-disable-next-line deprecation/deprecation\n UiFramework.visibility.useProximityOpacity = !useProximityOpacity;\n }, [useProximityOpacity]);\n\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.snapWidgetOpacity = !snapWidgetOpacity;\n }, [snapWidgetOpacity]);\n\n const onWidgetIconChange = React.useCallback(async () => {\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\n }, [showWidgetIcon]);\n\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\n }, [autoCollapseUnpinnedPanels]);\n\n const onWidgetOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n if (values.length > 0) {\n UiFramework.setWidgetOpacity(values[0]);\n }\n },\n []\n );\n\n const onToggleDragInteraction = React.useCallback(async () => {\n UiFramework.setUseDragInteraction(!useDragInteraction);\n }, [useDragInteraction]);\n\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\n UiFramework.setAnimateToolSettings(!animateToolSettings);\n }, [animateToolSettings]);\n const currentTheme = UiFramework.getColorTheme();\n\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\n }, [useToolAsToolSettingsLabel]);\n\n const onToolbarOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n if (values.length > 0) {\n UiFramework.setToolbarOpacity(values[0]);\n }\n },\n []\n );\n\n return (\n <div className=\"uifw-settings\">\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.themeTitle\")}\n description={translate(\"settings.uiSettingsPage.themeDescription\")}\n settingUi={\n <div\n data-testid=\"select-theme-container\"\n className=\"select-theme-container\"\n >\n <Select\n value={currentTheme}\n onChange={onThemeChange}\n options={themeOptions}\n data-testid=\"select-theme\"\n size=\"small\"\n />\n </div>\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.autoHideTitle\")}\n description={translate(\"settings.uiSettingsPage.autoHideDescription\")}\n settingUi={\n <ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.dragInteractionTitle\")}\n description={translate(\n \"settings.uiSettingsPage.dragInteractionDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useDragInteraction}\n onChange={onToggleDragInteraction}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.useProximityOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.useProximityOpacityDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useProximityOpacity}\n onChange={onUseProximityOpacityChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.snapWidgetOpacityDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={snapWidgetOpacity}\n onChange={onSnapWidgetOpacityChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.widgetIconTitle\")}\n description={translate(\"settings.uiSettingsPage.widgetIconDescription\")}\n settingUi={\n <ToggleSwitch\n checked={showWidgetIcon}\n onChange={onWidgetIconChange}\n />\n }\n />\n <SettingsItem\n title={translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"\n )}\n description={translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={autoCollapseUnpinnedPanels}\n onChange={onAutoCollapseUnpinnedPanelsChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.animateToolSettingsTitle\")}\n description={translate(\n \"settings.uiSettingsPage.animateToolSettingsDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={animateToolSettings}\n onChange={OnToggleAnimateToolSettings}\n />\n }\n />\n <SettingsItem\n title={translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"\n )}\n description={translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useToolAsToolSettingsLabel}\n onChange={OnToggleUseToolAsToolSettingsLabel}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.toolbarOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.toolbarOpacityDescription\"\n )}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[toolbarOpacity]}\n step={0.05}\n onChange={onToolbarOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.widgetOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.widgetOpacityDescription\"\n )}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[widgetOpacity]}\n step={0.05}\n onChange={onWidgetOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n </div>\n );\n}\n\ninterface SettingsItemProps {\n title: string;\n description: string;\n settingUi: React.ReactNode;\n}\n\nfunction SettingsItem(props: SettingsItemProps) {\n const { title, description, settingUi } = props;\n\n return (\n <div className=\"uifw-settings-item\">\n <div className=\"panel left-panel\">\n <span className=\"title\">{title}</span>\n <span className=\"description\">{description}</span>\n </div>\n <div className=\"panel right-panel\">{settingUi}</div>\n </div>\n );\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @beta\n */\nexport function getUiSettingsManagerEntry(\n itemPriority: number\n): SettingsTabEntry {\n return {\n itemPriority,\n tabId: \"uifw:UiStateStorage\",\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\n icon: <SvgWindowSettings />,\n page: <UiSettingsPage />,\n isDisabled: false,\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\n };\n}\n"]}
|
|
@@ -4,26 +4,21 @@
|
|
|
4
4
|
import type { CommonProps } from "@itwin/core-react";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import type { StatusBarItem } from "./StatusBarItem.js";
|
|
7
|
-
interface DockedStatusBarEntryContextArg {
|
|
8
|
-
readonly isOverflown: boolean;
|
|
9
|
-
readonly onResize: (w: number) => void;
|
|
10
|
-
}
|
|
11
|
-
/** @internal */
|
|
12
|
-
export declare function useStatusBarEntry(): DockedStatusBarEntryContextArg;
|
|
13
7
|
/** Properties of [[DockedStatusBarItem]] component.
|
|
14
|
-
* @internal
|
|
8
|
+
* @internal
|
|
15
9
|
*/
|
|
16
|
-
export interface
|
|
10
|
+
export interface DockedStatusBarItemProps extends CommonProps {
|
|
17
11
|
/** Tool setting content. */
|
|
18
12
|
children?: React.ReactNode;
|
|
19
13
|
itemPriority?: number;
|
|
20
14
|
providerId?: string;
|
|
21
15
|
section?: string;
|
|
16
|
+
onResize?: (w: number) => void;
|
|
22
17
|
}
|
|
23
18
|
/** Used in [[StatusBarComposer]] component to display a statusbar item.
|
|
24
|
-
* @internal
|
|
19
|
+
* @internal
|
|
25
20
|
*/
|
|
26
|
-
export declare function DockedStatusBarItem(props:
|
|
21
|
+
export declare function DockedStatusBarItem(props: DockedStatusBarItemProps): React.JSX.Element;
|
|
27
22
|
/** Properties for the [[StatusBarComposer]] React components
|
|
28
23
|
* @public
|
|
29
24
|
* @deprecated in 4.17.0. Use `React.ComponentProps<typeof StatusBarComposer>`
|
|
@@ -44,5 +39,4 @@ export interface StatusBarComposerProps extends CommonProps {
|
|
|
44
39
|
* @public
|
|
45
40
|
*/
|
|
46
41
|
export declare function StatusBarComposer(props: StatusBarComposerProps): React.JSX.Element;
|
|
47
|
-
export {};
|
|
48
42
|
//# sourceMappingURL=StatusBarComposer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarComposer.d.ts","sourceRoot":"","sources":["../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAqB5B
|
|
1
|
+
{"version":3,"file":"StatusBarComposer.d.ts","sourceRoot":"","sources":["../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAqB5B;;GAEG;AAEH,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,qBAoBlE;AA8FD;;;GAGG;AAEH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,uBAAuB;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;IAEvB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBAyN9D"}
|
|
@@ -9,7 +9,7 @@ import { ConditionalBooleanValue, ConditionalStringValue, } from "@itwin/appui-a
|
|
|
9
9
|
import { useRefs, useResizeObserver } from "@itwin/core-react/internal";
|
|
10
10
|
import classnames from "classnames";
|
|
11
11
|
import * as React from "react";
|
|
12
|
-
import {
|
|
12
|
+
import { useOverflow } from "../layout/tool-settings/Docked.js";
|
|
13
13
|
import { StatusBarLabelIndicator } from "../statusbar/LabelIndicator.js";
|
|
14
14
|
import { SyncUiEventDispatcher } from "../syncui/SyncUiEventDispatcher.js";
|
|
15
15
|
import { isProviderItem } from "../ui-items-provider/isProviderItem.js";
|
|
@@ -31,30 +31,14 @@ function getCombinedSectionItemPriority(item) {
|
|
|
31
31
|
sectionValue = 300000;
|
|
32
32
|
return sectionValue + item.itemPriority;
|
|
33
33
|
}
|
|
34
|
-
const DockedStatusBarEntryContext = React.createContext(null);
|
|
35
|
-
DockedStatusBarEntryContext.displayName = "nz:DockedStatusBarEntryContext";
|
|
36
|
-
/** @internal */
|
|
37
|
-
export function useStatusBarEntry() {
|
|
38
|
-
return React.useContext(DockedStatusBarEntryContext);
|
|
39
|
-
}
|
|
40
34
|
/** Used in [[StatusBarComposer]] component to display a statusbar item.
|
|
41
|
-
* @internal
|
|
35
|
+
* @internal
|
|
42
36
|
*/
|
|
43
37
|
export function DockedStatusBarItem(props) {
|
|
44
|
-
const
|
|
45
|
-
const ref = useResizeObserver(onResize);
|
|
38
|
+
const ref = useResizeObserver(props.onResize);
|
|
46
39
|
const className = classnames("uifw-statusBar-item-container", props.className);
|
|
47
40
|
return (React.createElement("div", { "data-item-id": props.itemId, "data-item-type": "status-bar-item", "data-item-location": props.section, "data-item-priority": props.itemPriority, "data-item-provider-id": props.providerId, className: className, ref: ref, style: props.style }, props.children));
|
|
48
41
|
}
|
|
49
|
-
/** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */
|
|
50
|
-
function DockedStatusBarEntry({ children, entryKey, getOnResize, }) {
|
|
51
|
-
const onResize = React.useMemo(() => getOnResize(entryKey), [getOnResize, entryKey]);
|
|
52
|
-
const entry = React.useMemo(() => ({
|
|
53
|
-
isOverflown: false,
|
|
54
|
-
onResize,
|
|
55
|
-
}), [onResize]);
|
|
56
|
-
return (React.createElement(DockedStatusBarEntryContext.Provider, { value: entry }, children));
|
|
57
|
-
}
|
|
58
42
|
/** Private function to set up sync event monitoring of statusbar items */
|
|
59
43
|
function useStatusBarItemSyncEffect(itemsManager, syncIdsOfInterest) {
|
|
60
44
|
React.useEffect(() => {
|
|
@@ -119,50 +103,6 @@ const sortItems = (items) => {
|
|
|
119
103
|
});
|
|
120
104
|
return sortedItems;
|
|
121
105
|
};
|
|
122
|
-
/** local function to ensure a width value is defined for a status bar entries. */
|
|
123
|
-
function verifiedMapEntries(map) {
|
|
124
|
-
for (const [, val] of map) {
|
|
125
|
-
if (val === undefined)
|
|
126
|
-
return undefined;
|
|
127
|
-
}
|
|
128
|
-
return map;
|
|
129
|
-
}
|
|
130
|
-
/** local function to sort status bar item widths */
|
|
131
|
-
const sortWidths = (widths, statusBarItems) => {
|
|
132
|
-
const widthsArray = Array.from(widths.entries());
|
|
133
|
-
widthsArray.sort((a, b) => {
|
|
134
|
-
const aIndex = statusBarItems.findIndex((item) => item.id === a[0]);
|
|
135
|
-
const bIndex = statusBarItems.findIndex((item) => item.id === b[0]);
|
|
136
|
-
return aIndex - bIndex;
|
|
137
|
-
});
|
|
138
|
-
return new Map(widthsArray);
|
|
139
|
-
};
|
|
140
|
-
/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */
|
|
141
|
-
function getItemToPlaceInOverflow(width, docked, overflowWidth) {
|
|
142
|
-
let settingsWidth = 0;
|
|
143
|
-
let i = 0;
|
|
144
|
-
for (; i < docked.length; i++) {
|
|
145
|
-
const w = docked[i][1];
|
|
146
|
-
const newSettingsWidth = settingsWidth + w;
|
|
147
|
-
if (newSettingsWidth > width) {
|
|
148
|
-
settingsWidth += overflowWidth;
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
settingsWidth = newSettingsWidth;
|
|
152
|
-
}
|
|
153
|
-
let j = i;
|
|
154
|
-
for (; j > 0; j--) {
|
|
155
|
-
if (settingsWidth <= width)
|
|
156
|
-
break;
|
|
157
|
-
const w = docked[j - 1][1];
|
|
158
|
-
settingsWidth -= w;
|
|
159
|
-
}
|
|
160
|
-
const overflowItems = new Array();
|
|
161
|
-
for (i = j; i < docked.length; i++) {
|
|
162
|
-
overflowItems.push(docked[i][0]);
|
|
163
|
-
}
|
|
164
|
-
return overflowItems;
|
|
165
|
-
}
|
|
166
106
|
function isItemInOverflow(id, overflowItemIds) {
|
|
167
107
|
if (!overflowItemIds || 0 === overflowItemIds.length)
|
|
168
108
|
return false;
|
|
@@ -175,7 +115,6 @@ function isItemInOverflow(id, overflowItemIds) {
|
|
|
175
115
|
export function StatusBarComposer(props) {
|
|
176
116
|
const { className, style, items, mainClassName, leftClassName, centerClassName, rightClassName, } = props;
|
|
177
117
|
const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new StatusBarItemsManager(items));
|
|
178
|
-
const containerWidth = React.useRef(undefined);
|
|
179
118
|
const isInitialMount = React.useRef(true);
|
|
180
119
|
React.useEffect(() => {
|
|
181
120
|
if (isInitialMount.current)
|
|
@@ -193,49 +132,17 @@ export function StatusBarComposer(props) {
|
|
|
193
132
|
const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);
|
|
194
133
|
const addonSyncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);
|
|
195
134
|
useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);
|
|
196
|
-
const entryWidths = React.useRef(new Map());
|
|
197
|
-
const overflowWidth = React.useRef(undefined);
|
|
198
|
-
const [overflown, setOverflown] = React.useState();
|
|
199
135
|
const statusBarItems = React.useMemo(() => {
|
|
200
136
|
const combinedItems = combineItems(defaultItems, addonItems);
|
|
201
137
|
return sortItems(combinedItems);
|
|
202
138
|
}, [defaultItems, addonItems]);
|
|
139
|
+
const statusBarItemKeys = statusBarItems.map((item) => item.id);
|
|
140
|
+
const [overflown, handleContainerResize, handleOverflowResize, getOnEntryResize,] = useOverflow(statusBarItemKeys);
|
|
203
141
|
const notOverflown = React.useMemo(() => {
|
|
204
142
|
return statusBarItems
|
|
205
143
|
.filter((item) => !isItemInOverflow(item.id, overflown))
|
|
206
144
|
.map((item) => item.id);
|
|
207
145
|
}, [overflown, statusBarItems]);
|
|
208
|
-
const calculateOverflow = React.useCallback(() => {
|
|
209
|
-
const widths = verifiedMapEntries(entryWidths.current);
|
|
210
|
-
if (containerWidth.current === undefined ||
|
|
211
|
-
widths === undefined ||
|
|
212
|
-
overflowWidth.current === undefined) {
|
|
213
|
-
setOverflown(new Array());
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
// Calculate overflow.
|
|
217
|
-
const newOverflown = getItemToPlaceInOverflow(containerWidth.current, [...widths.entries()], overflowWidth.current);
|
|
218
|
-
if (!eqlOverflown(overflown, newOverflown)) {
|
|
219
|
-
setOverflown(newOverflown);
|
|
220
|
-
}
|
|
221
|
-
}, [overflown]);
|
|
222
|
-
const handleOverflowResize = React.useCallback((w) => {
|
|
223
|
-
const calculate = overflowWidth.current !== w;
|
|
224
|
-
overflowWidth.current = w;
|
|
225
|
-
calculate && calculateOverflow();
|
|
226
|
-
}, [calculateOverflow]);
|
|
227
|
-
const handleEntryResize = React.useCallback((key) => (w) => {
|
|
228
|
-
const oldW = entryWidths.current.get(key);
|
|
229
|
-
if (oldW === undefined || Math.abs(oldW - w) > 2) {
|
|
230
|
-
entryWidths.current.set(key, w);
|
|
231
|
-
if (oldW === undefined) {
|
|
232
|
-
const widths = verifiedMapEntries(entryWidths.current);
|
|
233
|
-
if (widths !== undefined)
|
|
234
|
-
entryWidths.current = sortWidths(widths, statusBarItems);
|
|
235
|
-
}
|
|
236
|
-
calculateOverflow();
|
|
237
|
-
}
|
|
238
|
-
}, [calculateOverflow, statusBarItems]);
|
|
239
146
|
const getSectionName = (section) => {
|
|
240
147
|
switch (section) {
|
|
241
148
|
case StatusBarSection.Center:
|
|
@@ -254,19 +161,19 @@ export function StatusBarComposer(props) {
|
|
|
254
161
|
/** generate a wrapped status bar entry that will report its size. */
|
|
255
162
|
const getComponent = React.useCallback((item, key, itemPriority, section) => {
|
|
256
163
|
const providerId = isProviderItem(item) ? item.providerId : undefined;
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}, [
|
|
164
|
+
const isOverflown = isItemInOverflow(key, overflown);
|
|
165
|
+
return (React.createElement(DockedStatusBarItem, { key: key, itemId: item.id, itemPriority: itemPriority, providerId: providerId, section: getSectionName(section), onResize: isOverflown ? undefined : getOnEntryResize(key) },
|
|
166
|
+
React.createElement(StatusBarCornerComponentContext.Provider, { value: key === notOverflown[0]
|
|
167
|
+
? "left-corner"
|
|
168
|
+
: (key === notOverflown[notOverflown.length - 1] &&
|
|
169
|
+
overflown?.length === 0) ||
|
|
170
|
+
isItemInOverflow(key, overflown)
|
|
171
|
+
? "right-corner"
|
|
172
|
+
: undefined },
|
|
173
|
+
isStatusBarCustomItem(item) && item.content,
|
|
174
|
+
isStatusBarActionItem(item) && (React.createElement(StatusBarActionItemComponent, { ...item })),
|
|
175
|
+
isStatusBarLabelItem(item) && (React.createElement(StatusBarLabelItemComponent, { ...item })))));
|
|
176
|
+
}, [getOnEntryResize, notOverflown, overflown]);
|
|
270
177
|
const getSectionItems = React.useCallback((section) => {
|
|
271
178
|
const sectionItems = statusBarItems
|
|
272
179
|
.filter((item) => item.section.valueOf() === section.valueOf() &&
|
|
@@ -283,13 +190,6 @@ export function StatusBarComposer(props) {
|
|
|
283
190
|
.reverse();
|
|
284
191
|
return itemsInOverflow.map((item) => (React.createElement(React.Fragment, { key: item.id }, getComponent(item, item.id, item.itemPriority, item.section))));
|
|
285
192
|
}, [statusBarItems, overflown, getComponent]);
|
|
286
|
-
const handleContainerResize = React.useCallback((w) => {
|
|
287
|
-
if (undefined === containerWidth.current ||
|
|
288
|
-
Math.abs(containerWidth.current - w) > 2) {
|
|
289
|
-
containerWidth.current = w;
|
|
290
|
-
calculateOverflow();
|
|
291
|
-
}
|
|
292
|
-
}, [calculateOverflow]);
|
|
293
193
|
const containerRef = React.useRef(null);
|
|
294
194
|
const resizeObserverRef = useResizeObserver(handleContainerResize);
|
|
295
195
|
// allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { useRefs, useResizeObserver } from \"@itwin/core-react/internal\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { eqlOverflown } from \"../layout/tool-settings/Docked.js\";\nimport { StatusBarLabelIndicator } from \"../statusbar/LabelIndicator.js\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher.js\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem.js\";\nimport { StatusBarOverflow } from \"./Overflow.js\";\nimport {\n StatusBarCenterSection,\n StatusBarLeftSection,\n StatusBarRightSection,\n StatusBarSpaceBetween,\n} from \"./StatusBar.js\";\nimport type {\n StatusBarActionItem,\n StatusBarItem,\n StatusBarLabelItem,\n} from \"./StatusBarItem.js\";\nimport {\n isStatusBarActionItem,\n isStatusBarCustomItem,\n isStatusBarLabelItem,\n StatusBarSection,\n} from \"./StatusBarItem.js\";\nimport { StatusBarItemsManager } from \"./StatusBarItemsManager.js\";\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems.js\";\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems.js\";\nimport { StatusBarCornerComponentContext } from \"./StatusBarCornerComponentContext.js\";\n\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\nfunction getCombinedSectionItemPriority(item: StatusBarItem) {\n let sectionValue = 0;\n if (item.section === StatusBarSection.Center) sectionValue = 100000;\n else if (item.section === StatusBarSection.Context) sectionValue = 200000;\n else if (item.section === StatusBarSection.Right) sectionValue = 300000;\n return sectionValue + item.itemPriority;\n}\n\ninterface DockedStatusBarEntryContextArg {\n readonly isOverflown: boolean;\n readonly onResize: (w: number) => void;\n}\n\nconst DockedStatusBarEntryContext =\n React.createContext<DockedStatusBarEntryContextArg>(null!);\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\n\n/** @internal */\nexport function useStatusBarEntry() {\n return React.useContext(DockedStatusBarEntryContext);\n}\n\n/** Properties of [[DockedStatusBarItem]] component.\n * @internal future\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface StatusBarItemProps extends CommonProps {\n /** Tool setting content. */\n children?: React.ReactNode;\n itemPriority?: number;\n providerId?: string;\n section?: string;\n}\n\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\n * @internal future\n */\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\n const { onResize } = useStatusBarEntry();\n const ref = useResizeObserver<HTMLDivElement>(onResize);\n const className = classnames(\n \"uifw-statusBar-item-container\",\n props.className\n );\n return (\n <div\n data-item-id={props.itemId}\n data-item-type=\"status-bar-item\"\n data-item-location={props.section}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n className={className}\n ref={ref}\n style={props.style}\n >\n {props.children}\n </div>\n );\n}\n\ninterface DockedStatusBarEntryProps {\n children?: React.ReactNode;\n entryKey: string;\n getOnResize: (key: string) => (w: number) => void;\n}\n\n/** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */\nfunction DockedStatusBarEntry({\n children,\n entryKey,\n getOnResize,\n}: DockedStatusBarEntryProps) {\n const onResize = React.useMemo(\n () => getOnResize(entryKey),\n [getOnResize, entryKey]\n );\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(\n () => ({\n isOverflown: false,\n onResize,\n }),\n [onResize]\n );\n return (\n <DockedStatusBarEntryContext.Provider value={entry}>\n {children}\n </DockedStatusBarEntryContext.Provider>\n );\n}\n\n/** Private function to set up sync event monitoring of statusbar items */\nfunction useStatusBarItemSyncEffect(\n itemsManager: StatusBarItemsManager,\n syncIdsOfInterest: string[]\n) {\n React.useEffect(() => {\n // Note: that items with conditions have condition run when loaded into the items manager\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (0 === syncIdsOfInterest.length) return;\n\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n // process each item that has interest\n itemsManager.refreshAffectedItems(args.eventIds);\n }\n });\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\n}\n\nfunction StatusBarLabelItemComponent(props: StatusBarLabelItem) {\n const label = ConditionalStringValue.getValue(props.label);\n // eslint-disable-next-line deprecation/deprecation\n return <StatusBarLabelIndicator iconSpec={props.icon} label={label} />;\n}\n\nfunction StatusBarActionItemComponent(props: StatusBarActionItem) {\n const title = ConditionalStringValue.getValue(props.tooltip);\n return (\n // eslint-disable-next-line deprecation/deprecation\n <StatusBarLabelIndicator\n title={title}\n onClick={props.execute}\n // eslint-disable-next-line deprecation/deprecation\n iconSpec={props.icon}\n />\n );\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n stageItems: ReadonlyArray<StatusBarItem>,\n addonItems: ReadonlyArray<StatusBarItem>\n) {\n const items: StatusBarItem[] = [];\n if (stageItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n stageItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n if (addonItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n addonItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n return items;\n}\n\n/** local function to sort status bar items from left to right */\nconst sortItems = (items: StatusBarItem[]) => {\n const sortedItems: StatusBarItem[] = [];\n [\n StatusBarSection.Left,\n StatusBarSection.Center,\n StatusBarSection.Context,\n StatusBarSection.Right,\n ].forEach((section) => {\n items\n .filter((item) => item.section.valueOf() === section.valueOf())\n .sort((a, b) => a.itemPriority - b.itemPriority)\n .forEach((item) => sortedItems.push(item));\n });\n\n return sortedItems;\n};\n\n/** local function to ensure a width value is defined for a status bar entries. */\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\n/** local function to sort status bar item widths */\nconst sortWidths = (\n widths: Map<string, number>,\n statusBarItems: StatusBarItem[]\n) => {\n const widthsArray = Array.from(widths.entries());\n widthsArray.sort((a, b) => {\n const aIndex = statusBarItems.findIndex((item) => item.id === a[0]);\n const bIndex = statusBarItems.findIndex((item) => item.id === b[0]);\n return aIndex - bIndex;\n });\n\n return new Map<string, number>(widthsArray);\n};\n\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\nfunction getItemToPlaceInOverflow(\n width: number,\n docked: ReadonlyArray<readonly [string, number]>,\n overflowWidth: number\n) {\n let settingsWidth = 0;\n\n let i = 0;\n for (; i < docked.length; i++) {\n const w = docked[i][1];\n const newSettingsWidth = settingsWidth + w;\n if (newSettingsWidth > width) {\n settingsWidth += overflowWidth;\n break;\n }\n settingsWidth = newSettingsWidth;\n }\n\n let j = i;\n for (; j > 0; j--) {\n if (settingsWidth <= width) break;\n const w = docked[j - 1][1];\n settingsWidth -= w;\n }\n\n const overflowItems = new Array<string>();\n for (i = j; i < docked.length; i++) {\n overflowItems.push(docked[i][0]);\n }\n return overflowItems;\n}\n\nfunction isItemInOverflow(\n id: string,\n overflowItemIds: ReadonlyArray<string> | undefined\n) {\n if (!overflowItemIds || 0 === overflowItemIds.length) return false;\n return !!overflowItemIds.find((value) => value === id);\n}\n\n/** Properties for the [[StatusBarComposer]] React components\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof StatusBarComposer>`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface StatusBarComposerProps extends CommonProps {\n /** Status Bar items */\n items: StatusBarItem[];\n\n /** CSS class name override for the overall Status Bar */\n mainClassName?: string;\n /** CSS class name override for the left section */\n leftClassName?: string;\n /** CSS class name override for the center section */\n centerClassName?: string;\n /** CSS class name override for the right section */\n rightClassName?: string;\n}\n\n/** Component to load components into the [[StatusBar]].\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function StatusBarComposer(props: StatusBarComposerProps) {\n const {\n className,\n style,\n items,\n mainClassName,\n leftClassName,\n centerClassName,\n rightClassName,\n } = props;\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n () => new StatusBarItemsManager(items)\n );\n const containerWidth = React.useRef<number | undefined>(undefined);\n\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setDefaultItemsManager(new StatusBarItemsManager(items));\n }\n }, [items]);\n // eslint-disable-next-line deprecation/deprecation\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\n // eslint-disable-next-line deprecation/deprecation\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\n const addonSyncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const entryWidths = React.useRef(new Map<string, number | undefined>());\n const overflowWidth = React.useRef<number | undefined>(undefined);\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\n const statusBarItems = React.useMemo(() => {\n const combinedItems = combineItems(defaultItems, addonItems);\n return sortItems(combinedItems);\n }, [defaultItems, addonItems]);\n const notOverflown = React.useMemo(() => {\n return statusBarItems\n .filter((item) => !isItemInOverflow(item.id, overflown))\n .map((item) => item.id);\n }, [overflown, statusBarItems]);\n\n const calculateOverflow = React.useCallback(() => {\n const widths = verifiedMapEntries(entryWidths.current);\n\n if (\n containerWidth.current === undefined ||\n widths === undefined ||\n overflowWidth.current === undefined\n ) {\n setOverflown(new Array<string>());\n return;\n }\n\n // Calculate overflow.\n const newOverflown = getItemToPlaceInOverflow(\n containerWidth.current,\n [...widths.entries()],\n overflowWidth.current\n );\n if (!eqlOverflown(overflown, newOverflown)) {\n setOverflown(newOverflown);\n }\n }, [overflown]);\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowWidth.current !== w;\n overflowWidth.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = entryWidths.current.get(key);\n if (oldW === undefined || Math.abs(oldW - w) > 2) {\n entryWidths.current.set(key, w);\n if (oldW === undefined) {\n const widths = verifiedMapEntries(entryWidths.current);\n if (widths !== undefined)\n entryWidths.current = sortWidths(widths, statusBarItems);\n }\n\n calculateOverflow();\n }\n },\n [calculateOverflow, statusBarItems]\n );\n\n const getSectionName = (section: StatusBarSection) => {\n switch (section) {\n case StatusBarSection.Center:\n case StatusBarSection.Stage:\n return \"status-bar-center\";\n case StatusBarSection.Context:\n return \"status-bar-right-start\";\n case StatusBarSection.Right:\n case StatusBarSection.Selection:\n return \"status-bar-right-end\";\n case StatusBarSection.Left:\n case StatusBarSection.Message:\n return \"status-bar-left\";\n }\n };\n\n /** generate a wrapped status bar entry that will report its size. */\n const getComponent = React.useCallback(\n (\n item: StatusBarItem,\n key: string,\n itemPriority: number,\n section: StatusBarSection\n ): React.ReactNode => {\n const providerId = isProviderItem(item) ? item.providerId : undefined;\n return (\n <DockedStatusBarEntry\n key={key}\n entryKey={key}\n getOnResize={handleEntryResize}\n >\n <DockedStatusBarItem\n key={key}\n itemId={item.id}\n itemPriority={itemPriority}\n providerId={providerId}\n section={getSectionName(section)}\n >\n <StatusBarCornerComponentContext.Provider\n value={\n key === notOverflown[0]\n ? \"left-corner\"\n : (key === notOverflown[notOverflown.length - 1] &&\n overflown?.length === 0) ||\n isItemInOverflow(key, overflown)\n ? \"right-corner\"\n : undefined\n }\n >\n {isStatusBarCustomItem(item) && item.content}\n {isStatusBarActionItem(item) && (\n <StatusBarActionItemComponent {...item} />\n )}\n {isStatusBarLabelItem(item) && (\n <StatusBarLabelItemComponent {...item} />\n )}\n </StatusBarCornerComponentContext.Provider>\n </DockedStatusBarItem>\n </DockedStatusBarEntry>\n );\n },\n [handleEntryResize, notOverflown, overflown]\n );\n\n const getSectionItems = React.useCallback(\n (section: StatusBarSection): React.ReactNode[] => {\n const sectionItems = statusBarItems\n .filter(\n (item) =>\n item.section.valueOf() === section.valueOf() &&\n !isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort((a, b) => a.itemPriority - b.itemPriority);\n\n return sectionItems.map((sectionItem) => (\n <React.Fragment key={sectionItem.id}>\n {getComponent(\n sectionItem,\n sectionItem.id,\n sectionItem.itemPriority,\n sectionItem.section\n )}\n </React.Fragment>\n ));\n },\n [statusBarItems, overflown, getComponent]\n );\n\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\n const itemsInOverflow = statusBarItems\n .filter(\n (item) =>\n isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort(\n (a, b) =>\n getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)\n )\n .reverse();\n\n return itemsInOverflow.map((item) => (\n <React.Fragment key={item.id}>\n {getComponent(item, item.id, item.itemPriority, item.section)}\n </React.Fragment>\n ));\n }, [statusBarItems, overflown, getComponent]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n if (\n undefined === containerWidth.current ||\n Math.abs(containerWidth.current - w) > 2\n ) {\n containerWidth.current = w;\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const resizeObserverRef = useResizeObserver(handleContainerResize);\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\n const refs = useRefs(containerRef, resizeObserverRef);\n\n const leftItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Left),\n [getSectionItems]\n );\n const centerItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Center),\n [getSectionItems]\n );\n const rightItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Right),\n [getSectionItems]\n );\n const contextItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Context),\n [getSectionItems]\n );\n const overflowItems = React.useMemo(\n () => getOverflowItems(),\n [getOverflowItems]\n );\n\n const containerClassName = classnames(\"uifw-statusBar-docked\", className);\n\n return (\n <div\n className={containerClassName}\n ref={refs}\n style={style}\n role=\"presentation\"\n >\n <StatusBarSpaceBetween className={mainClassName}>\n <StatusBarLeftSection className={leftClassName}>\n {leftItems}\n </StatusBarLeftSection>\n <StatusBarCenterSection className={centerClassName}>\n {centerItems}\n {contextItems}\n </StatusBarCenterSection>\n <StatusBarRightSection className={rightClassName}>\n {rightItems}\n {(!overflown || overflown.length > 0) && (\n <StatusBarOverflow\n onResize={handleOverflowResize}\n overflowItems={overflowItems}\n />\n )}\n </StatusBarRightSection>\n </StatusBarSpaceBetween>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { useRefs, useResizeObserver } from \"@itwin/core-react/internal\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { useOverflow } from \"../layout/tool-settings/Docked.js\";\nimport { StatusBarLabelIndicator } from \"../statusbar/LabelIndicator.js\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher.js\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem.js\";\nimport { StatusBarOverflow } from \"./Overflow.js\";\nimport {\n StatusBarCenterSection,\n StatusBarLeftSection,\n StatusBarRightSection,\n StatusBarSpaceBetween,\n} from \"./StatusBar.js\";\nimport type {\n StatusBarActionItem,\n StatusBarItem,\n StatusBarLabelItem,\n} from \"./StatusBarItem.js\";\nimport {\n isStatusBarActionItem,\n isStatusBarCustomItem,\n isStatusBarLabelItem,\n StatusBarSection,\n} from \"./StatusBarItem.js\";\nimport { StatusBarItemsManager } from \"./StatusBarItemsManager.js\";\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems.js\";\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems.js\";\nimport { StatusBarCornerComponentContext } from \"./StatusBarCornerComponentContext.js\";\n\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\nfunction getCombinedSectionItemPriority(item: StatusBarItem) {\n let sectionValue = 0;\n if (item.section === StatusBarSection.Center) sectionValue = 100000;\n else if (item.section === StatusBarSection.Context) sectionValue = 200000;\n else if (item.section === StatusBarSection.Right) sectionValue = 300000;\n return sectionValue + item.itemPriority;\n}\n\n/** Properties of [[DockedStatusBarItem]] component.\n * @internal\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface DockedStatusBarItemProps extends CommonProps {\n /** Tool setting content. */\n children?: React.ReactNode;\n itemPriority?: number;\n providerId?: string;\n section?: string;\n onResize?: (w: number) => void;\n}\n\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\n * @internal\n */\nexport function DockedStatusBarItem(props: DockedStatusBarItemProps) {\n const ref = useResizeObserver<HTMLDivElement>(props.onResize);\n const className = classnames(\n \"uifw-statusBar-item-container\",\n props.className\n );\n return (\n <div\n data-item-id={props.itemId}\n data-item-type=\"status-bar-item\"\n data-item-location={props.section}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n className={className}\n ref={ref}\n style={props.style}\n >\n {props.children}\n </div>\n );\n}\n\n/** Private function to set up sync event monitoring of statusbar items */\nfunction useStatusBarItemSyncEffect(\n itemsManager: StatusBarItemsManager,\n syncIdsOfInterest: string[]\n) {\n React.useEffect(() => {\n // Note: that items with conditions have condition run when loaded into the items manager\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (0 === syncIdsOfInterest.length) return;\n\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n // process each item that has interest\n itemsManager.refreshAffectedItems(args.eventIds);\n }\n });\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\n}\n\nfunction StatusBarLabelItemComponent(props: StatusBarLabelItem) {\n const label = ConditionalStringValue.getValue(props.label);\n // eslint-disable-next-line deprecation/deprecation\n return <StatusBarLabelIndicator iconSpec={props.icon} label={label} />;\n}\n\nfunction StatusBarActionItemComponent(props: StatusBarActionItem) {\n const title = ConditionalStringValue.getValue(props.tooltip);\n return (\n // eslint-disable-next-line deprecation/deprecation\n <StatusBarLabelIndicator\n title={title}\n onClick={props.execute}\n // eslint-disable-next-line deprecation/deprecation\n iconSpec={props.icon}\n />\n );\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n stageItems: ReadonlyArray<StatusBarItem>,\n addonItems: ReadonlyArray<StatusBarItem>\n) {\n const items: StatusBarItem[] = [];\n if (stageItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n stageItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n if (addonItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n addonItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n return items;\n}\n\n/** local function to sort status bar items from left to right */\nconst sortItems = (items: StatusBarItem[]) => {\n const sortedItems: StatusBarItem[] = [];\n [\n StatusBarSection.Left,\n StatusBarSection.Center,\n StatusBarSection.Context,\n StatusBarSection.Right,\n ].forEach((section) => {\n items\n .filter((item) => item.section.valueOf() === section.valueOf())\n .sort((a, b) => a.itemPriority - b.itemPriority)\n .forEach((item) => sortedItems.push(item));\n });\n\n return sortedItems;\n};\n\nfunction isItemInOverflow(\n id: string,\n overflowItemIds: ReadonlyArray<string> | undefined\n) {\n if (!overflowItemIds || 0 === overflowItemIds.length) return false;\n return !!overflowItemIds.find((value) => value === id);\n}\n\n/** Properties for the [[StatusBarComposer]] React components\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof StatusBarComposer>`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface StatusBarComposerProps extends CommonProps {\n /** Status Bar items */\n items: StatusBarItem[];\n\n /** CSS class name override for the overall Status Bar */\n mainClassName?: string;\n /** CSS class name override for the left section */\n leftClassName?: string;\n /** CSS class name override for the center section */\n centerClassName?: string;\n /** CSS class name override for the right section */\n rightClassName?: string;\n}\n\n/** Component to load components into the [[StatusBar]].\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function StatusBarComposer(props: StatusBarComposerProps) {\n const {\n className,\n style,\n items,\n mainClassName,\n leftClassName,\n centerClassName,\n rightClassName,\n } = props;\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n () => new StatusBarItemsManager(items)\n );\n\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setDefaultItemsManager(new StatusBarItemsManager(items));\n }\n }, [items]);\n // eslint-disable-next-line deprecation/deprecation\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\n // eslint-disable-next-line deprecation/deprecation\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\n const addonSyncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const statusBarItems = React.useMemo(() => {\n const combinedItems = combineItems(defaultItems, addonItems);\n return sortItems(combinedItems);\n }, [defaultItems, addonItems]);\n\n const statusBarItemKeys = statusBarItems.map((item) => item.id);\n const [\n overflown,\n handleContainerResize,\n handleOverflowResize,\n getOnEntryResize,\n ] = useOverflow(statusBarItemKeys);\n\n const notOverflown = React.useMemo(() => {\n return statusBarItems\n .filter((item) => !isItemInOverflow(item.id, overflown))\n .map((item) => item.id);\n }, [overflown, statusBarItems]);\n\n const getSectionName = (section: StatusBarSection) => {\n switch (section) {\n case StatusBarSection.Center:\n case StatusBarSection.Stage:\n return \"status-bar-center\";\n case StatusBarSection.Context:\n return \"status-bar-right-start\";\n case StatusBarSection.Right:\n case StatusBarSection.Selection:\n return \"status-bar-right-end\";\n case StatusBarSection.Left:\n case StatusBarSection.Message:\n return \"status-bar-left\";\n }\n };\n\n /** generate a wrapped status bar entry that will report its size. */\n const getComponent = React.useCallback(\n (\n item: StatusBarItem,\n key: string,\n itemPriority: number,\n section: StatusBarSection\n ): React.ReactNode => {\n const providerId = isProviderItem(item) ? item.providerId : undefined;\n const isOverflown = isItemInOverflow(key, overflown);\n return (\n <DockedStatusBarItem\n key={key}\n itemId={item.id}\n itemPriority={itemPriority}\n providerId={providerId}\n section={getSectionName(section)}\n onResize={isOverflown ? undefined : getOnEntryResize(key)}\n >\n <StatusBarCornerComponentContext.Provider\n value={\n key === notOverflown[0]\n ? \"left-corner\"\n : (key === notOverflown[notOverflown.length - 1] &&\n overflown?.length === 0) ||\n isItemInOverflow(key, overflown)\n ? \"right-corner\"\n : undefined\n }\n >\n {isStatusBarCustomItem(item) && item.content}\n {isStatusBarActionItem(item) && (\n <StatusBarActionItemComponent {...item} />\n )}\n {isStatusBarLabelItem(item) && (\n <StatusBarLabelItemComponent {...item} />\n )}\n </StatusBarCornerComponentContext.Provider>\n </DockedStatusBarItem>\n );\n },\n [getOnEntryResize, notOverflown, overflown]\n );\n\n const getSectionItems = React.useCallback(\n (section: StatusBarSection): React.ReactNode[] => {\n const sectionItems = statusBarItems\n .filter(\n (item) =>\n item.section.valueOf() === section.valueOf() &&\n !isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort((a, b) => a.itemPriority - b.itemPriority);\n\n return sectionItems.map((sectionItem) => (\n <React.Fragment key={sectionItem.id}>\n {getComponent(\n sectionItem,\n sectionItem.id,\n sectionItem.itemPriority,\n sectionItem.section\n )}\n </React.Fragment>\n ));\n },\n [statusBarItems, overflown, getComponent]\n );\n\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\n const itemsInOverflow = statusBarItems\n .filter(\n (item) =>\n isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort(\n (a, b) =>\n getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)\n )\n .reverse();\n\n return itemsInOverflow.map((item) => (\n <React.Fragment key={item.id}>\n {getComponent(item, item.id, item.itemPriority, item.section)}\n </React.Fragment>\n ));\n }, [statusBarItems, overflown, getComponent]);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const resizeObserverRef = useResizeObserver(handleContainerResize);\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\n const refs = useRefs(containerRef, resizeObserverRef);\n\n const leftItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Left),\n [getSectionItems]\n );\n const centerItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Center),\n [getSectionItems]\n );\n const rightItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Right),\n [getSectionItems]\n );\n const contextItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Context),\n [getSectionItems]\n );\n const overflowItems = React.useMemo(\n () => getOverflowItems(),\n [getOverflowItems]\n );\n\n const containerClassName = classnames(\"uifw-statusBar-docked\", className);\n\n return (\n <div\n className={containerClassName}\n ref={refs}\n style={style}\n role=\"presentation\"\n >\n <StatusBarSpaceBetween className={mainClassName}>\n <StatusBarLeftSection className={leftClassName}>\n {leftItems}\n </StatusBarLeftSection>\n <StatusBarCenterSection className={centerClassName}>\n {centerItems}\n {contextItems}\n </StatusBarCenterSection>\n <StatusBarRightSection className={rightClassName}>\n {rightItems}\n {(!overflown || overflown.length > 0) && (\n <StatusBarOverflow\n onResize={handleOverflowResize}\n overflowItems={overflowItems}\n />\n )}\n </StatusBarRightSection>\n </StatusBarSpaceBetween>\n </div>\n );\n}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module StatusBar
|
|
7
7
|
*/
|
|
8
|
-
import
|
|
8
|
+
import { SvgSectionTool } from "../icons/SvgSectionTool.js";
|
|
9
9
|
import { IModelApp, ViewClipClearTool, ViewClipDecoration, ViewClipDecorationProvider, } from "@itwin/core-frontend";
|
|
10
10
|
import { Icon } from "@itwin/core-react";
|
|
11
11
|
import { Button, IconButton, ToggleSwitch } from "@itwin/itwinui-react";
|
|
@@ -55,7 +55,7 @@ export function SectionsStatusField(props) {
|
|
|
55
55
|
React.createElement("div", { className: classnames("uifw-sections-label") }, translate("tools.sectionShowHandles")),
|
|
56
56
|
React.createElement(ToggleSwitch, { className: "uifw-sections-toggle", onChange: toggleManipulators, checked: hasManipulatorsShown })))) },
|
|
57
57
|
React.createElement(IconButton, { label: tooltip, styleType: "borderless", "data-testid": "sections-status-field-button" },
|
|
58
|
-
React.createElement(Icon, { iconSpec:
|
|
58
|
+
React.createElement(Icon, { iconSpec: React.createElement(SvgSectionTool, null) }),
|
|
59
59
|
React.createElement(StatusBarPopover.ExpandIndicator, null))))));
|
|
60
60
|
}
|
|
61
61
|
//# sourceMappingURL=SectionsField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionsField.js","sourceRoot":"","sources":["../../../src/appui-react/statusfields/SectionsField.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,cAAc,MAAM
|
|
1
|
+
{"version":3,"file":"SectionsField.js","sourceRoot":"","sources":["../../../src/appui-react/statusfields/SectionsField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport { SvgSectionTool } from \"../icons/SvgSectionTool.js\";\nimport {\n IModelApp,\n ViewClipClearTool,\n ViewClipDecoration,\n ViewClipDecorationProvider,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Icon } from \"@itwin/core-react\";\nimport { Button, IconButton, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { useActiveViewport } from \"../hooks/useActiveViewport.js\";\nimport { StatusBarDialog } from \"../statusbar/dialog/Dialog.js\";\nimport \"./SectionsField.scss\";\nimport { useTranslation } from \"../hooks/useTranslation.js\";\nimport { StatusBarPopover } from \"../statusbar/popup/StatusBarPopover.js\";\n\n/** Sections Status Field Props\n * @beta\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface SectionsStatusFieldProps extends CommonProps {\n hideWhenUnused?: boolean;\n}\n\n/** Status Field for showing section extra tools for clearing and showing manipulators\n * @beta\n */\nexport function SectionsStatusField(props: SectionsStatusFieldProps) {\n const { translate } = useTranslation();\n const tooltip = translate(\"tools.sectionTools\");\n\n const activeViewport = useActiveViewport();\n const [showIndicator, setShowIndicator] = React.useState(false);\n const [isPopupOpen, setPopupOpen] = React.useState(false);\n const [hasManipulatorsShown, setHasManipulatorsShown] = React.useState(false);\n\n React.useEffect(() => {\n const clipActive = !!activeViewport && !!activeViewport.view.getViewClip();\n setShowIndicator(clipActive || !props.hideWhenUnused);\n setHasManipulatorsShown(\n clipActive && !!activeViewport && !!ViewClipDecoration.get(activeViewport)\n );\n\n return ViewClipDecorationProvider.create().onActiveClipChanged.addListener(\n (viewport) => {\n if (viewport !== activeViewport) return;\n\n setHasManipulatorsShown(!!ViewClipDecoration.get(activeViewport));\n const isClipActive = !!activeViewport.view.getViewClip();\n setShowIndicator(isClipActive || !props.hideWhenUnused);\n }\n );\n }, [activeViewport, props.hideWhenUnused, isPopupOpen]);\n\n const toggleManipulators = async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (activeViewport) {\n setHasManipulatorsShown(e.target.checked);\n await ViewClipDecorationProvider.create().toggleDecoration(\n activeViewport\n );\n }\n };\n\n const handleClear = async () => {\n await IModelApp.tools.run(\n ViewClipClearTool.toolId,\n ViewClipDecorationProvider.create()\n );\n setPopupOpen(false);\n };\n\n return (\n <>\n {showIndicator && (\n <StatusBarPopover\n visible={isPopupOpen}\n onVisibleChange={setPopupOpen}\n content={\n <StatusBarDialog\n titleBar={<StatusBarDialog.TitleBar title={tooltip} />}\n >\n <div className=\"uifw-sections-footer-contents\">\n <Button onClick={handleClear}>\n {translate(\"tools.sectionClear\")}\n </Button>\n <div className=\"uifw-uifw-sections-toggle-container\">\n <div className={classnames(\"uifw-sections-label\")}>\n {translate(\"tools.sectionShowHandles\")}\n </div>\n <ToggleSwitch\n className=\"uifw-sections-toggle\"\n onChange={toggleManipulators}\n checked={hasManipulatorsShown}\n />\n </div>\n </div>\n </StatusBarDialog>\n }\n >\n <IconButton\n label={tooltip}\n styleType=\"borderless\"\n data-testid=\"sections-status-field-button\"\n >\n {/* eslint-disable-next-line deprecation/deprecation */}\n <Icon iconSpec={<SvgSectionTool />} />\n <StatusBarPopover.ExpandIndicator />\n </IconButton>\n </StatusBarPopover>\n )}\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnapMode.d.ts","sourceRoot":"","sources":["../../../src/appui-react/statusfields/SnapMode.tsx"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"SnapMode.d.ts","sourceRoot":"","sources":["../../../src/appui-react/statusfields/SnapMode.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8D/B,oEAAoE;AAEpE,UAAU,kBAAmB,SAAQ,WAAW;IAC9C;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBA+DtD"}
|