@itwin/appui-react 4.4.0 → 4.5.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.
Files changed (224) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/appui-react/UiFramework.js +4 -7
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
  5. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  6. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  7. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  8. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  9. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  10. package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
  11. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  12. package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
  13. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  14. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
  15. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  16. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  17. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  18. package/lib/cjs/appui-react/content/IModelViewport.js +3 -6
  19. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  20. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
  21. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  22. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  23. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  24. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
  25. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  26. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  27. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  28. package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
  29. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  30. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
  31. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +5 -7
  33. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  34. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
  35. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  36. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  37. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  38. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  39. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  40. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  41. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  42. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
  43. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  44. package/lib/cjs/appui-react/messages/ActivityMessage.js +5 -7
  45. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  46. package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
  47. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  48. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
  49. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  50. package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
  51. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  52. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  53. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  54. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  55. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  56. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +5 -7
  57. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  58. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  59. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  60. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  61. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  62. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  63. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  64. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +1 -1
  65. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  66. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  67. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts +6 -3
  68. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  69. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +53 -80
  70. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  71. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  72. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  73. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  74. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  75. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  76. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +10 -17
  77. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  78. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  79. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  80. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  81. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  82. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  83. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  84. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  85. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  86. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  87. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  88. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  89. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  90. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  91. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  92. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  93. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  94. package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
  95. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  96. package/lib/cjs/appui-react/widget-panels/Frontstage.js +43 -45
  97. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  98. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  99. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  100. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  101. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  102. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  103. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +21 -23
  104. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  105. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  106. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  107. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  108. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  109. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
  110. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  111. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  112. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  113. package/lib/esm/appui-react/UiFramework.js +4 -7
  114. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  115. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  116. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  117. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  118. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  119. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  120. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  121. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  122. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  123. package/lib/esm/appui-react/content/ContentLayout.js +9 -12
  124. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  125. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  126. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  127. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  128. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  129. package/lib/esm/appui-react/content/IModelViewport.js +3 -6
  130. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  131. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  132. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  133. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  134. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  135. package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
  136. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  137. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  138. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  139. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  140. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  141. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  142. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  143. package/lib/esm/appui-react/frontstage/FrontstageDef.js +5 -7
  144. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  145. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  146. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  147. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  148. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  149. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  150. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  151. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  152. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  153. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  154. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  155. package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
  156. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  157. package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
  158. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  159. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
  160. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  161. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  162. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  163. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  164. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  165. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  166. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  167. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +5 -7
  168. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  169. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  170. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  171. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  172. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  173. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  174. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  175. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +1 -1
  176. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  177. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  178. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts +6 -3
  179. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  180. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +53 -80
  181. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  182. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  183. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  184. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  185. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  186. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  187. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +10 -17
  188. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  189. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  190. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  191. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  192. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  193. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  194. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  195. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  196. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  197. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  198. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  199. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  200. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  201. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  202. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  203. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  204. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  205. package/lib/esm/appui-react/widget-panels/Content.js +8 -9
  206. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  207. package/lib/esm/appui-react/widget-panels/Frontstage.js +43 -45
  208. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  209. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  210. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  211. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  212. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  213. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  214. package/lib/esm/appui-react/widget-panels/ToolSettings.js +21 -23
  215. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  216. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  217. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  218. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  219. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  220. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
  221. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  222. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  223. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  224. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport {\n ConditionalBooleanValue,\n IconSpecUtilities,\n} from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport type { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { UiFramework } from \"../UiFramework\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function isNoSelectionActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let selectionCount = 0;\n // istanbul ignore if\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n // istanbul ignore if\n if (activeContentControl?.viewport) {\n const hiddenElementsSet = activeContentControl.viewport.neverDrawn;\n const selectedElementsSet =\n activeContentControl.viewport.view.iModel.selectionSet.elements;\n // TODO: add check for categories, subcategories and models\n if (\n selectionCount > 0 ||\n ![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value))\n )\n return false;\n }\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return { ...state, isVisible };\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n let selectionCount = 0;\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n if (\n activeContentControl &&\n activeContentControl.viewport &&\n (activeContentControl.viewport.view.iModel.selectionSet.size > 0 ||\n selectionCount > 0)\n )\n isVisible = true;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n */\n// istanbul ignore next\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelIsolate),\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersIsolate),\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgAssetIsolate),\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgIsolate),\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelHide),\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersHide),\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(\n svgAssetClassificationHide\n ),\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibilityHide),\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(\n svgVisibilitySemiTransparent\n ),\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibility),\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
1
+ {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport {\n ConditionalBooleanValue,\n IconSpecUtilities,\n} from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport type { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { UiFramework } from \"../UiFramework\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function isNoSelectionActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let selectionCount = 0;\n // istanbul ignore if\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n // istanbul ignore if\n if (activeContentControl?.viewport) {\n const hiddenElementsSet = activeContentControl.viewport.neverDrawn;\n const selectedElementsSet =\n activeContentControl.viewport.view.iModel.selectionSet.elements;\n // TODO: add check for categories, subcategories and models\n if (\n selectionCount > 0 ||\n ![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value))\n )\n return false;\n }\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return { ...state, isVisible };\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n let selectionCount = 0;\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n if (\n activeContentControl &&\n activeContentControl.viewport &&\n (activeContentControl.viewport.view.iModel.selectionSet.size > 0 ||\n selectionCount > 0)\n )\n isVisible = true;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n */\n// istanbul ignore next\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelIsolate),\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersIsolate),\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgAssetIsolate),\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgIsolate),\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelHide),\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersHide),\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(\n svgAssetClassificationHide\n ),\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibilityHide),\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(\n svgVisibilitySemiTransparent\n ),\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibility),\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
@@ -33,7 +33,8 @@ export function getQuantityFormatsSettingsManagerEntry(itemPriority, opts) {
33
33
  tabId: "uifw:Quantity",
34
34
  label: UiFramework.translate("settings.quantity-formatting.label"),
35
35
  subLabel: UiFramework.translate("settings.quantity-formatting.subLabel"),
36
- page: (React.createElement(QuantityFormatSettingsPage, { initialQuantityType: initialQuantityType !== null && initialQuantityType !== void 0 ? initialQuantityType : QuantityType.Length, availableUnitSystems: availableUnitSystems !== null && availableUnitSystems !== void 0 ? availableUnitSystems : new Set(["metric", "imperial", "usCustomary", "usSurvey"]) })),
36
+ page: (React.createElement(QuantityFormatSettingsPage, { initialQuantityType: initialQuantityType ?? QuantityType.Length, availableUnitSystems: availableUnitSystems ??
37
+ new Set(["metric", "imperial", "usCustomary", "usSurvey"]) })),
37
38
  isDisabled: false,
38
39
  icon: React.createElement(SvgMeasure, null),
39
40
  tooltip: UiFramework.translate("settings.quantity-formatting.tooltip"),
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,YAAY,GACb,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,qCAAqC,EACrC,qCAAqC,GACtC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,SAAS,cAAc,CAAC,IAAiB,EAAE,IAAiB;IAC1D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAUD;;;;;GAKG;AACH,MAAM,UAAU,sCAAsC,CACpD,YAAoB,EACpB,IAAgD;IAEhD,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAClE,OAAO;QACL,YAAY;QACZ,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC;QAClE,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,uCAAuC,CAAC;QACxE,IAAI,EAAE,CACJ,oBAAC,0BAA0B,IACzB,mBAAmB,EAAE,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,YAAY,CAAC,MAAM,EAC/D,oBAAoB,EAClB,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GACpB,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,GAE5D,CACH;QACD,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,oBAAC,UAAU,OAAG;QACpB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,sCAAsC,CAAC;QACtE,0BAA0B,EAAE,IAAI;KACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,EACzC,mBAAmB,EACnB,oBAAoB,GACa;IACjC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAClE,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAC7C,CAAC;IACF,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAChE,kBAAkB,CAAC,mBAAmB,CAAC,CACxC,CAAC;IACF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAGlE,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CACzD,kBAAkB,CAAC,kBAAkB,CAAC,CACvC,CACF,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,CACzE,CAAC;IACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,EAAmB,CAAC;IAC3D,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CACrC,WAAW,CAAC,SAAS,CAAC,iDAAiD,CAAC,CACzE,CAAC;IACF,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACjC,WAAW,CAAC,SAAS,CAAC,6CAA6C,CAAC,CACrE,CAAC;IACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CACnC,WAAW,CAAC,SAAS,CAAC,+CAA+C,CAAC,CACvE,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,GAAS,EAAE;YACzC,uBAAuB;YACvB,IACE,mBAAmB,KAAK,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,EACpE;gBACA,sBAAsB,CAAC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBACrE,sBAAsB,CACpB,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CACzD,kBAAkB,CACnB,CACF,CAAC;gBACF,cAAc,CAAC,KAAK,CAAC,CAAC;gBACtB,eAAe,CACb,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAC3C,kBAAkB,EAClB,IAAI,CACL,CACF,CAAC;aACH;QACH,CAAC,CAAC;QAEF,SAAS,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,WAAW,CACzE,uBAAuB,CACxB,CAAC;QACF,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,cAAc,CAC5E,uBAAuB,CACxB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE9C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,mBAAmB,GAAG,CAAC,IAAgC,EAAQ,EAAE;YACrE,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBAC/B,MAAM,WAAW,GACf,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;gBACrE,uBAAuB;gBACvB,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE;oBACrC,sBAAsB,CACpB,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CACzD,kBAAkB,CACnB,CACF,CAAC;oBACF,cAAc,CAAC,KAAK,CAAC,CAAC;oBACtB,eAAe,CACb,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAC3C,kBAAkB,EAClB,IAAI,CACL,CACF,CAAC;iBACH;aACF;YACD,kBAAkB,CAAC,OAAO,GAAG,SAAS,CAAC;QACzC,CAAC,CAAC;QACF,SAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,WAAW,CAC9D,mBAAmB,CACpB,CAAC;QACF,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,cAAc,CACjE,mBAAmB,CACpB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,iBAAsC,EAAE,IAAU,EAAE,EAAE;QACrD,uBAAuB;QACvB,IAAI,mBAAmB,EAAE;YACvB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAiB;iBACjD,+BAA+B,CAAC,kBAAkB,CAAE;iBACpD,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,IACE,gBAAgB;gBAChB,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAC9C;gBACA,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAC5B,oBAAC,qBAAqB,IACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,kBAAkB,EAChC,iBAAiB,EAAE,IAAI,EACvB,aAAa,EAAE,iBAAiB,GAChC,EACF,oBAAoB,CACrB,CAAC;gBACF,OAAO;aACR;SACF;QACD,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EACD,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAC1C,CAAC;IAEF,qCAAqC,CACnC,WAAW,CAAC,eAAe,EAC3B,WAAW,CACZ,CAAC;IACF,qCAAqC,CACnC,WAAW,CAAC,eAAe,EAC3B,WAAW,CACZ,CAAC;IAEF,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CACjD,CAAC,eAAgC,EAAE,EAAE;QACnC,MAAM,mBAAmB,GACvB,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CACzD,eAAe,CAChB,CAAC;QACJ,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;QAC5C,qBAAqB,CAAC,eAAe,CAAC,CAAC;QACvC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,eAAe,CACb,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,CACrE,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC5C,CAAC,eAAuB,EAAE,EAAE;QAC1B,uBAAuB;QACvB,IAAI,mBAAmB,EAAE;YACvB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAiB;iBACjD,+BAA+B,CAAC,kBAAkB,CAAE;iBACpD,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,IACE,gBAAgB;gBAChB,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAC9C;gBACA,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;gBAC7C,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAC5B,oBAAC,qBAAqB,IACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,kBAAkB,EAChC,iBAAiB,EAAE,eAAe,EAClC,aAAa,EAAE,yBAAyB,GACxC,EACF,oBAAoB,CACrB,CAAC;gBACF,OAAO;aACR;SACF;QACD,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,EACD,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,CACrE,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,KAAK,EAAE,WAAwB,EAAE,EAAE;QACjC,uBAAuB;QACvB,IAAI,mBAAmB,EAAE;YACvB,MAAM,OAAO,GACX,MAAM,SAAS,CAAC,iBAAiB,CAAC,2BAA2B,CAC3D,kBAAkB,EAClB,WAAW,CACZ,CAAC;YACJ,MAAM,gBAAgB,GACpB,SAAS,CAAC,iBAAiB,CAAC,4BAA4B,CACtD,kBAAkB,CACnB,CAAC;YACJ,uBAAuB;YACvB,IAAI,gBAAgB;gBAClB,cAAc,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACjE,sBAAsB,CAAC,OAAO,CAAC,CAAC;SACjC;IACH,CAAC,EACD,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAC1C,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,uBAAuB;QACvB,IAAI,mBAAmB,EAAE;YACvB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CACjD,kBAAkB,EAClB,MAAM,CACP,CAAC;YACF,eAAe,CAAC,IAAI,CAAC,CAAC;SACvB;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE9C,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACvD,MAAM,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAC3E,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC5C,KAAK,EAAE,UAAyB,EAAE,EAAE;QAClC,MAAM,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAChD,KAAK,EAAE,UAAyB,EAAE,EAAE;QAClC,IAAI,UAAU,KAAK,mBAAmB;YAAE,OAAO;QAC/C,WAAW,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC,EACD,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,CAAC,CACzD,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,+BAA+B;QAC5C,oBAAC,kBAAkB,IACjB,qBAAqB,EAAE,mBAAmB,EAC1C,oBAAoB,EAAE,oBAAoB,EAC1C,oBAAoB,EAAE,wBAAwB,GAC9C;QACF,8BAAM,SAAS,EAAC,oCAAoC,IACjD,kBAAkB,CAAC,OAAO,CACtB;QACP,6BAAK,SAAS,EAAC,+BAA+B;YAC5C,6BAAK,SAAS,EAAC,YAAY;gBACzB,oBAAC,OAAO,IACN,EAAE,EAAC,0BAA0B,EAC7B,SAAS,EAAC,qBAAqB,EAC/B,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,kBAAkB,IAEhC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAChE,CAAC,GAAG,EAAE,EAAE;oBACN,MAAM,KAAK,GACT,SAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;oBAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;oBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,OAAO,CACL,oBAAC,WAAW,IACV,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,SAAS,EAAC,0BAA0B,EACpC,KAAK,EAAE,KAAK,CAAC,GAAG;wBAEhB,8BACE,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE,WAAW,IAEjB,KAAK,CACD,CACK,CACf,CAAC;gBACJ,CAAC,CACF,CACO,CACN;YACN,6BAAK,SAAS,EAAC,aAAa,IACzB,mBAAmB,IAAI,CACtB;gBACE,6BAAK,SAAS,EAAC,+BAA+B;oBAC5C,6BAAK,SAAS,EAAC,sCAAsC;wBACnD,oBAAC,YAAY,IACX,UAAU,EAAE,mBAAmB,EAC/B,gBAAgB,EAAE,OAAO,EACzB,UAAU,SACV,CACE,CACF;gBACN,6BAAK,SAAS,EAAC,6BAA6B;oBAC1C,oBAAC,mBAAmB,IAClB,cAAc,EAAE,qBAAqB,EACrC,YAAY,EAAE,kBAAkB,GAChC,CACE;gBACN,6BAAK,SAAS,EAAC,yBAAyB;oBACtC,oBAAC,MAAM,IACL,SAAS,EAAC,KAAK,EACf,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,CAAC,WAAW,IAErB,cAAc,CAAC,OAAO,CAChB;oBACT,oBAAC,MAAM,IACL,SAAS,EAAC,SAAS,EACnB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,CAAC,YAAY,IAEtB,gBAAgB,CAAC,OAAO,CAClB,CACL,CACL,CACJ,CACG,CACF,CACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,GAMd;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,aAAa,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,KAAK,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAChD,YAAY,EACZ,WAAW,CACZ,CAAC;QACF,WAAW,EAAE,CAAC;IAChB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1C,WAAW,EAAE,CAAC;IAChB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,oBAAC,MAAM,IACL,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,IAAI,EACX,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;SACrD,EACD,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,YAAY,EAC5B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,GAAG,EACd,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG;QAEb,6BAAK,SAAS,EAAC,eAAe,6EAExB,CACC,CACV,CAAC;AACJ,CAAC","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 \"./QuantityFormat.scss\";\nimport * as React from \"react\";\nimport { DeepCompare } from \"@itwin/core-geometry\";\nimport type {\n QuantityFormatsChangedArgs,\n QuantityTypeArg,\n QuantityTypeKey,\n} from \"@itwin/core-frontend\";\nimport {\n getQuantityTypeKey,\n IModelApp,\n QuantityType,\n} from \"@itwin/core-frontend\";\nimport type {\n FormatProps,\n FormatterSpec,\n UnitSystemKey,\n} from \"@itwin/core-quantity\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\nimport {\n FormatSample,\n QuantityFormatPanel,\n} from \"@itwin/imodel-components-react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport {\n Dialog,\n Listbox,\n ListboxItem,\n useSaveBeforeActivatingNewSettingsTab,\n useSaveBeforeClosingSettingsContainer,\n} from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { UnitSystemSelector } from \"./UnitSystemSelector\";\nimport { Button } from \"@itwin/itwinui-react\";\nimport { SvgMeasure } from \"@itwin/itwinui-icons-react\";\n\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\n const compare = new DeepCompare();\n return compare.compare(obj1, obj2);\n}\n\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport interface QuantityFormatterSettingsOptions {\n initialQuantityType: QuantityTypeArg;\n availableUnitSystems: Set<UnitSystemKey>;\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 * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport function getQuantityFormatsSettingsManagerEntry(\n itemPriority: number,\n opts?: Partial<QuantityFormatterSettingsOptions>\n): SettingsTabEntry {\n const { availableUnitSystems, initialQuantityType } = { ...opts };\n return {\n itemPriority,\n tabId: \"uifw:Quantity\",\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\n page: (\n <QuantityFormatSettingsPage\n initialQuantityType={initialQuantityType ?? QuantityType.Length}\n availableUnitSystems={\n availableUnitSystems ??\n new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])\n }\n />\n ),\n isDisabled: false,\n icon: <SvgMeasure />,\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\n pageWillHandleCloseRequest: true,\n };\n}\n\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\n * @beta\n */\nexport function QuantityFormatSettingsPage({\n initialQuantityType,\n availableUnitSystems,\n}: QuantityFormatterSettingsOptions) {\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(\n IModelApp.quantityFormatter.activeUnitSystem\n );\n const [activeQuantityType, setActiveQuantityType] = React.useState(\n getQuantityTypeKey(initialQuantityType)\n );\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<\n FormatterSpec | undefined\n >(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n getQuantityTypeKey(activeQuantityType)\n )\n );\n const [saveEnabled, setSaveEnabled] = React.useState(false);\n const [clearEnabled, setClearEnabled] = React.useState(\n IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true)\n );\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\n const formatSectionLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.formatSectionLabel\")\n );\n const setButtonLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.setButtonLabel\")\n );\n const clearButtonLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.clearButtonLabel\")\n );\n\n React.useEffect(() => {\n const handleUnitSystemChanged = (): void => {\n // istanbul ignore else\n if (\n activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem\n ) {\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n };\n\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n handleUnitSystemChanged\n );\n return () => {\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(\n handleUnitSystemChanged\n );\n };\n }, [activeQuantityType, activeUnitSystemKey]);\n\n React.useEffect(() => {\n const handleFormatChanged = (args: QuantityFormatsChangedArgs): void => {\n if (!newQuantityTypeRef.current) {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\n // istanbul ignore else\n if (args.quantityType === quantityKey) {\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n }\n newQuantityTypeRef.current = undefined;\n };\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n handleFormatChanged\n );\n return () => {\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(\n handleFormatChanged\n );\n };\n }, [activeQuantityType]);\n\n const saveChanges = React.useCallback(\n (afterSaveFunction: (args: any) => void, args?: any) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={args}\n onDialogClose={afterSaveFunction}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n afterSaveFunction(args);\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n useSaveBeforeActivatingNewSettingsTab(\n UiFramework.settingsManager,\n saveChanges\n );\n useSaveBeforeClosingSettingsContainer(\n UiFramework.settingsManager,\n saveChanges\n );\n\n const processListboxValueChange = React.useCallback(\n (newQuantityType: QuantityTypeKey) => {\n const volumeFormatterSpec =\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n newQuantityType\n );\n setActiveFormatterSpec(volumeFormatterSpec);\n setActiveQuantityType(newQuantityType);\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true)\n );\n },\n []\n );\n\n const onListboxValueChange = React.useCallback(\n (newQuantityType: string) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n newQuantityTypeRef.current = newQuantityType;\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={newQuantityType}\n onDialogClose={processListboxValueChange}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n processListboxValueChange(newQuantityType);\n },\n [activeFormatterSpec, activeQuantityType, processListboxValueChange]\n );\n\n const handleOnFormatChanged = React.useCallback(\n async (formatProps: FormatProps) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const newSpec =\n await IModelApp.quantityFormatter.generateFormatterSpecByType(\n activeQuantityType,\n formatProps\n );\n const formatPropsInUse =\n IModelApp.quantityFormatter.getFormatPropsByQuantityType(\n activeQuantityType\n );\n // istanbul ignore else\n if (formatPropsInUse)\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\n setActiveFormatterSpec(newSpec);\n }\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n const handleOnFormatSave = React.useCallback(async () => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const format = activeFormatterSpec.format.toJSON();\n await IModelApp.quantityFormatter.setOverrideFormat(\n activeQuantityType,\n format\n );\n setClearEnabled(true);\n }\n }, [activeFormatterSpec, activeQuantityType]);\n\n const handleOnFormatReset = React.useCallback(async () => {\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\n setClearEnabled(false);\n }, [activeQuantityType]);\n\n const processNewUnitSystem = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\n },\n []\n );\n\n const handleUnitSystemSelected = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n if (unitSystem === activeUnitSystemKey) return;\n saveChanges(processNewUnitSystem, unitSystem);\n },\n [activeUnitSystemKey, processNewUnitSystem, saveChanges]\n );\n\n return (\n <div className=\"quantity-formatting-container\">\n <UnitSystemSelector\n selectedUnitSystemKey={activeUnitSystemKey}\n availableUnitSystems={availableUnitSystems}\n onUnitSystemSelected={handleUnitSystemSelected}\n />\n <span className=\"uifw-quantity-format-section-label\">\n {formatSectionLabel.current}\n </span>\n <div className=\"uifw-quantity-types-container\">\n <div className=\"left-panel\">\n <Listbox\n id=\"uifw-quantity-types-list\"\n className=\"uifw-quantity-types\"\n onListboxValueChange={onListboxValueChange}\n selectedValue={activeQuantityType}\n >\n {[...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map(\n (key) => {\n const entry =\n IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\n const description = entry.description;\n const label = entry.label;\n return (\n <ListboxItem\n key={entry.key}\n className=\"quantity-type-list-entry\"\n value={entry.key}\n >\n <span\n className=\"map-source-list-entry-name\"\n title={description}\n >\n {label}\n </span>\n </ListboxItem>\n );\n }\n )}\n </Listbox>\n </div>\n <div className=\"right-panel\">\n {activeFormatterSpec && (\n <>\n <div className=\"uifw-quantity-types-right-top\">\n <div className=\"uifw-quantity-types-right-top-sample\">\n <FormatSample\n formatSpec={activeFormatterSpec}\n initialMagnitude={1234.56}\n hideLabels\n />\n </div>\n </div>\n <div className=\"uifw-quantity-types-formats\">\n <QuantityFormatPanel\n onFormatChange={handleOnFormatChanged}\n quantityType={activeQuantityType}\n />\n </div>\n <div className=\"components-button-panel\">\n <Button\n styleType=\"cta\"\n onClick={handleOnFormatSave}\n disabled={!saveEnabled}\n >\n {setButtonLabel.current}\n </Button>\n <Button\n styleType=\"default\"\n onClick={handleOnFormatReset}\n disabled={!clearEnabled}\n >\n {clearButtonLabel.current}\n </Button>\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SaveFormatModalDialog({\n formatProps,\n quantityType,\n onDialogCloseArgs,\n onDialogClose,\n}: {\n formatProps: FormatProps;\n quantityType: QuantityTypeKey;\n onDialogCloseArgs?: any;\n onDialogClose: (args?: any) => void;\n}) {\n const [isOpen, setIsOpen] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false);\n UiFramework.dialogs.modal.close();\n onDialogClose && onDialogClose(onDialogCloseArgs);\n }, [onDialogClose, onDialogCloseArgs]);\n\n const handleOK = React.useCallback(() => {\n void IModelApp.quantityFormatter.setOverrideFormat(\n quantityType,\n formatProps\n );\n handleClose();\n }, [formatProps, handleClose, quantityType]);\n\n const handleCancel = React.useCallback(() => {\n handleClose();\n }, [handleClose]);\n\n return (\n <Dialog\n title={\"Save Format Changes\"}\n opened={isOpen}\n resizable={false}\n movable={false}\n modal={true}\n buttonCluster={[\n { type: DialogButtonType.Yes, onClick: handleOK },\n { type: DialogButtonType.No, onClick: handleCancel },\n ]}\n onEscape={handleCancel}\n onClose={handleCancel}\n onOutsideClick={handleCancel}\n minHeight={150}\n maxHeight={400}\n maxWidth={400}\n minWidth={200}\n >\n <div className=\"modal-dialog2\">\n Do you want to save changes to format before changing to another type?\n </div>\n </Dialog>\n );\n}\n"]}
1
+ {"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.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 \"./QuantityFormat.scss\";\nimport * as React from \"react\";\nimport { DeepCompare } from \"@itwin/core-geometry\";\nimport type {\n QuantityFormatsChangedArgs,\n QuantityTypeArg,\n QuantityTypeKey,\n} from \"@itwin/core-frontend\";\nimport {\n getQuantityTypeKey,\n IModelApp,\n QuantityType,\n} from \"@itwin/core-frontend\";\nimport type {\n FormatProps,\n FormatterSpec,\n UnitSystemKey,\n} from \"@itwin/core-quantity\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\nimport {\n FormatSample,\n QuantityFormatPanel,\n} from \"@itwin/imodel-components-react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport {\n Dialog,\n Listbox,\n ListboxItem,\n useSaveBeforeActivatingNewSettingsTab,\n useSaveBeforeClosingSettingsContainer,\n} from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { UnitSystemSelector } from \"./UnitSystemSelector\";\nimport { Button } from \"@itwin/itwinui-react\";\nimport { SvgMeasure } from \"@itwin/itwinui-icons-react\";\n\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\n const compare = new DeepCompare();\n return compare.compare(obj1, obj2);\n}\n\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport interface QuantityFormatterSettingsOptions {\n initialQuantityType: QuantityTypeArg;\n availableUnitSystems: Set<UnitSystemKey>;\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 * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport function getQuantityFormatsSettingsManagerEntry(\n itemPriority: number,\n opts?: Partial<QuantityFormatterSettingsOptions>\n): SettingsTabEntry {\n const { availableUnitSystems, initialQuantityType } = { ...opts };\n return {\n itemPriority,\n tabId: \"uifw:Quantity\",\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\n page: (\n <QuantityFormatSettingsPage\n initialQuantityType={initialQuantityType ?? QuantityType.Length}\n availableUnitSystems={\n availableUnitSystems ??\n new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])\n }\n />\n ),\n isDisabled: false,\n icon: <SvgMeasure />,\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\n pageWillHandleCloseRequest: true,\n };\n}\n\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\n * @beta\n */\nexport function QuantityFormatSettingsPage({\n initialQuantityType,\n availableUnitSystems,\n}: QuantityFormatterSettingsOptions) {\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(\n IModelApp.quantityFormatter.activeUnitSystem\n );\n const [activeQuantityType, setActiveQuantityType] = React.useState(\n getQuantityTypeKey(initialQuantityType)\n );\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<\n FormatterSpec | undefined\n >(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n getQuantityTypeKey(activeQuantityType)\n )\n );\n const [saveEnabled, setSaveEnabled] = React.useState(false);\n const [clearEnabled, setClearEnabled] = React.useState(\n IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true)\n );\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\n const formatSectionLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.formatSectionLabel\")\n );\n const setButtonLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.setButtonLabel\")\n );\n const clearButtonLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.clearButtonLabel\")\n );\n\n React.useEffect(() => {\n const handleUnitSystemChanged = (): void => {\n // istanbul ignore else\n if (\n activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem\n ) {\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n };\n\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n handleUnitSystemChanged\n );\n return () => {\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(\n handleUnitSystemChanged\n );\n };\n }, [activeQuantityType, activeUnitSystemKey]);\n\n React.useEffect(() => {\n const handleFormatChanged = (args: QuantityFormatsChangedArgs): void => {\n if (!newQuantityTypeRef.current) {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\n // istanbul ignore else\n if (args.quantityType === quantityKey) {\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n }\n newQuantityTypeRef.current = undefined;\n };\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n handleFormatChanged\n );\n return () => {\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(\n handleFormatChanged\n );\n };\n }, [activeQuantityType]);\n\n const saveChanges = React.useCallback(\n (afterSaveFunction: (args: any) => void, args?: any) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={args}\n onDialogClose={afterSaveFunction}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n afterSaveFunction(args);\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n useSaveBeforeActivatingNewSettingsTab(\n UiFramework.settingsManager,\n saveChanges\n );\n useSaveBeforeClosingSettingsContainer(\n UiFramework.settingsManager,\n saveChanges\n );\n\n const processListboxValueChange = React.useCallback(\n (newQuantityType: QuantityTypeKey) => {\n const volumeFormatterSpec =\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n newQuantityType\n );\n setActiveFormatterSpec(volumeFormatterSpec);\n setActiveQuantityType(newQuantityType);\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true)\n );\n },\n []\n );\n\n const onListboxValueChange = React.useCallback(\n (newQuantityType: string) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n newQuantityTypeRef.current = newQuantityType;\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={newQuantityType}\n onDialogClose={processListboxValueChange}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n processListboxValueChange(newQuantityType);\n },\n [activeFormatterSpec, activeQuantityType, processListboxValueChange]\n );\n\n const handleOnFormatChanged = React.useCallback(\n async (formatProps: FormatProps) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const newSpec =\n await IModelApp.quantityFormatter.generateFormatterSpecByType(\n activeQuantityType,\n formatProps\n );\n const formatPropsInUse =\n IModelApp.quantityFormatter.getFormatPropsByQuantityType(\n activeQuantityType\n );\n // istanbul ignore else\n if (formatPropsInUse)\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\n setActiveFormatterSpec(newSpec);\n }\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n const handleOnFormatSave = React.useCallback(async () => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const format = activeFormatterSpec.format.toJSON();\n await IModelApp.quantityFormatter.setOverrideFormat(\n activeQuantityType,\n format\n );\n setClearEnabled(true);\n }\n }, [activeFormatterSpec, activeQuantityType]);\n\n const handleOnFormatReset = React.useCallback(async () => {\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\n setClearEnabled(false);\n }, [activeQuantityType]);\n\n const processNewUnitSystem = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\n },\n []\n );\n\n const handleUnitSystemSelected = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n if (unitSystem === activeUnitSystemKey) return;\n saveChanges(processNewUnitSystem, unitSystem);\n },\n [activeUnitSystemKey, processNewUnitSystem, saveChanges]\n );\n\n return (\n <div className=\"quantity-formatting-container\">\n <UnitSystemSelector\n selectedUnitSystemKey={activeUnitSystemKey}\n availableUnitSystems={availableUnitSystems}\n onUnitSystemSelected={handleUnitSystemSelected}\n />\n <span className=\"uifw-quantity-format-section-label\">\n {formatSectionLabel.current}\n </span>\n <div className=\"uifw-quantity-types-container\">\n <div className=\"left-panel\">\n <Listbox\n id=\"uifw-quantity-types-list\"\n className=\"uifw-quantity-types\"\n onListboxValueChange={onListboxValueChange}\n selectedValue={activeQuantityType}\n >\n {[...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map(\n (key) => {\n const entry =\n IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\n const description = entry.description;\n const label = entry.label;\n return (\n <ListboxItem\n key={entry.key}\n className=\"quantity-type-list-entry\"\n value={entry.key}\n >\n <span\n className=\"map-source-list-entry-name\"\n title={description}\n >\n {label}\n </span>\n </ListboxItem>\n );\n }\n )}\n </Listbox>\n </div>\n <div className=\"right-panel\">\n {activeFormatterSpec && (\n <>\n <div className=\"uifw-quantity-types-right-top\">\n <div className=\"uifw-quantity-types-right-top-sample\">\n <FormatSample\n formatSpec={activeFormatterSpec}\n initialMagnitude={1234.56}\n hideLabels\n />\n </div>\n </div>\n <div className=\"uifw-quantity-types-formats\">\n <QuantityFormatPanel\n onFormatChange={handleOnFormatChanged}\n quantityType={activeQuantityType}\n />\n </div>\n <div className=\"components-button-panel\">\n <Button\n styleType=\"cta\"\n onClick={handleOnFormatSave}\n disabled={!saveEnabled}\n >\n {setButtonLabel.current}\n </Button>\n <Button\n styleType=\"default\"\n onClick={handleOnFormatReset}\n disabled={!clearEnabled}\n >\n {clearButtonLabel.current}\n </Button>\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SaveFormatModalDialog({\n formatProps,\n quantityType,\n onDialogCloseArgs,\n onDialogClose,\n}: {\n formatProps: FormatProps;\n quantityType: QuantityTypeKey;\n onDialogCloseArgs?: any;\n onDialogClose: (args?: any) => void;\n}) {\n const [isOpen, setIsOpen] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false);\n UiFramework.dialogs.modal.close();\n onDialogClose && onDialogClose(onDialogCloseArgs);\n }, [onDialogClose, onDialogCloseArgs]);\n\n const handleOK = React.useCallback(() => {\n void IModelApp.quantityFormatter.setOverrideFormat(\n quantityType,\n formatProps\n );\n handleClose();\n }, [formatProps, handleClose, quantityType]);\n\n const handleCancel = React.useCallback(() => {\n handleClose();\n }, [handleClose]);\n\n return (\n <Dialog\n title={\"Save Format Changes\"}\n opened={isOpen}\n resizable={false}\n movable={false}\n modal={true}\n buttonCluster={[\n { type: DialogButtonType.Yes, onClick: handleOK },\n { type: DialogButtonType.No, onClick: handleCancel },\n ]}\n onEscape={handleCancel}\n onClose={handleCancel}\n onOutsideClick={handleCancel}\n minHeight={150}\n maxHeight={400}\n maxWidth={400}\n minWidth={200}\n >\n <div className=\"modal-dialog2\">\n Do you want to save changes to format before changing to another type?\n </div>\n </Dialog>\n );\n}\n"]}
@@ -122,10 +122,9 @@ export class StagePanelDef extends WidgetHost {
122
122
  }
123
123
  /** Panel state. Defaults to PanelState.Open. */
124
124
  get panelState() {
125
- var _a;
126
125
  // istanbul ignore else
127
126
  if (UiFramework.frontstages.activeFrontstageDef) {
128
- const [state] = (_a = UiFramework.frontstages.activeFrontstageDef) === null || _a === void 0 ? void 0 : _a.getPanelCurrentState(this);
127
+ const [state] = UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);
129
128
  return state;
130
129
  }
131
130
  // istanbul ignore next
@@ -177,7 +176,6 @@ export class StagePanelDef extends WidgetHost {
177
176
  }
178
177
  /** @internal */
179
178
  initializeFromConfig(config, location) {
180
- var _a;
181
179
  this._location = location;
182
180
  if (!config)
183
181
  return;
@@ -189,12 +187,12 @@ export class StagePanelDef extends WidgetHost {
189
187
  this._defaultState = config.defaultState;
190
188
  this._panelState = config.defaultState;
191
189
  }
192
- this._resizable = (_a = config.resizable) !== null && _a !== void 0 ? _a : true;
190
+ this._resizable = config.resizable ?? true;
193
191
  if (config.pinned !== undefined)
194
192
  this._pinned = config.pinned;
195
193
  const sections = config.sections;
196
- this._start.initializeFromConfig(sections === null || sections === void 0 ? void 0 : sections.start);
197
- this._end.initializeFromConfig(sections === null || sections === void 0 ? void 0 : sections.end);
194
+ this._start.initializeFromConfig(sections?.start);
195
+ this._end.initializeFromConfig(sections?.end);
198
196
  }
199
197
  /** Gets the list of Widgets. */
200
198
  get widgetDefs() {
@@ -225,7 +223,7 @@ export class StagePanelDef extends WidgetHost {
225
223
  export class StagePanelSectionDef extends WidgetHost {
226
224
  /** @internal */
227
225
  initializeFromConfig(config) {
228
- config === null || config === void 0 ? void 0 : config.forEach((widgetConfig) => {
226
+ config?.forEach((widgetConfig) => {
229
227
  const widgetDef = WidgetDef.create(widgetConfig);
230
228
  this.addWidgetDef(widgetDef);
231
229
  });
@@ -1 +1 @@
1
- {"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.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 Frontstage\n */\n\nimport type { Draft } from \"immer\";\nimport produce from \"immer\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\nimport { WidgetDef } from \"../widgets/WidgetDef\";\nimport { WidgetHost } from \"../widgets/WidgetHost\";\nimport type {\n StagePanelConfig,\n StagePanelMaxSizeSpec,\n StagePanelSectionConfig,\n} from \"./StagePanelConfig\";\nimport { StagePanelLocation } from \"./StagePanelLocation\";\nimport { StagePanelSection } from \"./StagePanelSection\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Enum for StagePanel state.\n * @public\n */\nexport enum StagePanelState {\n Off,\n Minimized,\n Open,\n Popup,\n}\n\n/** Panel state changed event args interface.\n * @public\n */\nexport interface PanelStateChangedEventArgs {\n panelDef: StagePanelDef;\n panelState: StagePanelState;\n}\n\n/** Panel state changed event class.\n * @beta\n */\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> {}\n\n/** @internal */\nexport interface PanelSizeChangedEventArgs {\n panelDef: StagePanelDef;\n size: number | undefined;\n}\n\n/** @internal */\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> {}\n\n/** Panel pinned changed event args interface.\n * @public\n */\nexport interface PanelPinnedChangedEventArgs {\n panelDef: StagePanelDef;\n pinned: boolean;\n}\n\n/**\n * A StagePanelDef represents each Stage Panel within a Frontstage.\n * @public\n */\nexport class StagePanelDef extends WidgetHost {\n private _panelState = StagePanelState.Open;\n private _defaultState = StagePanelState.Open;\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\n private _minSize: number | undefined;\n private _size: number | undefined;\n private _defaultSize: number | undefined;\n private _resizable = true;\n private _pinned = true;\n private _location: StagePanelLocation = StagePanelLocation.Left;\n private _start = new StagePanelSectionDef();\n private _end = new StagePanelSectionDef();\n\n /** Constructor for PanelDef.\n */\n constructor() {\n super();\n }\n\n /** @internal */\n public get maxSizeSpec() {\n return this._maxSizeSpec;\n }\n\n /** @internal */\n public get minSize() {\n return this._minSize;\n }\n\n /** Default size of the panel */\n public get size() {\n // istanbul ignore else\n if (UiFramework.frontstages.activeFrontstageDef) {\n const [_, size] =\n UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\n return size;\n }\n // istanbul ignore next\n return this._defaultSize;\n }\n\n public set size(size) {\n if (this._size === size) return;\n\n // istanbul ignore else\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = setPanelSize(\n frontstageDef.nineZoneState,\n side,\n size\n );\n const panel = frontstageDef.nineZoneState.panels[side];\n if (panel.size === this._size) return;\n size = panel.size;\n }\n this._size = size;\n InternalFrontstageManager.onPanelSizeChangedEvent.emit({\n panelDef: this,\n size,\n });\n }\n\n /** Indicates whether the panel is resizable. */\n // istanbul ignore next\n public get resizable(): boolean {\n return this._resizable;\n }\n\n /** Indicates whether the panel is pinned. */\n public get pinned(): boolean {\n if (UiFramework.frontstages.activeFrontstageDef) {\n const state =\n UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\n return state[2];\n }\n // istanbul ignore next\n return false;\n }\n\n public set pinned(pinned: boolean) {\n if (this._pinned === pinned) return;\n\n // istanbul ignore else\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = setPanelPinned(\n frontstageDef.nineZoneState,\n side,\n pinned\n );\n }\n this._pinned = pinned;\n UiFramework.frontstages.onPanelPinnedChangedEvent.emit({\n panelDef: this,\n pinned,\n });\n }\n\n /** Location of panel. */\n public get location(): StagePanelLocation {\n return this._location;\n }\n\n /** Panel state. Defaults to PanelState.Open. */\n public get panelState() {\n // istanbul ignore else\n if (UiFramework.frontstages.activeFrontstageDef) {\n const [state] =\n UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);\n return state;\n }\n // istanbul ignore next\n return this.defaultState;\n }\n\n public set panelState(panelState: StagePanelState) {\n if (panelState === this._panelState) return;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = produce(\n frontstageDef.nineZoneState,\n (nineZone) => {\n const panel = nineZone.panels[side];\n switch (panelState) {\n case StagePanelState.Minimized: {\n panel.collapsed = true;\n break;\n }\n case StagePanelState.Open: {\n panel.collapsed = false;\n break;\n }\n case StagePanelState.Off: {\n panel.collapsed = true;\n break;\n }\n }\n }\n );\n }\n this._panelState = panelState;\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\n panelDef: this,\n panelState,\n });\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n /** @internal */\n public get defaultSize() {\n return this._defaultSize;\n }\n\n /** @internal */\n public static create(config: StagePanelConfig, location: StagePanelLocation) {\n const def = new StagePanelDef();\n def.initializeFromConfig(config, location);\n return def;\n }\n\n /** @internal */\n public initializeFromConfig(\n config: StagePanelConfig | undefined,\n location: StagePanelLocation\n ): void {\n this._location = location;\n\n if (!config) return;\n this._size = config.size;\n this._defaultSize = config.size;\n this._maxSizeSpec = config.maxSize;\n this._minSize = config.minSize;\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n this._panelState = config.defaultState;\n }\n this._resizable = config.resizable ?? true;\n if (config.pinned !== undefined) this._pinned = config.pinned;\n\n const sections = config.sections;\n this._start.initializeFromConfig(sections?.start);\n this._end.initializeFromConfig(sections?.end);\n }\n\n /** Gets the list of Widgets. */\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\n return [\n ...super.widgetDefs,\n ...this._start.widgetDefs,\n ...this._end.widgetDefs,\n ];\n }\n\n /** @internal */\n public override updateDynamicWidgetDefs(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n _section: StagePanelSection | undefined,\n allStageWidgetDefs: WidgetDef[]\n ) {\n this._start.updateDynamicWidgetDefs(\n stageId,\n stageUsage,\n location,\n StagePanelSection.Start,\n allStageWidgetDefs\n );\n this._end.updateDynamicWidgetDefs(\n stageId,\n stageUsage,\n location,\n StagePanelSection.End,\n allStageWidgetDefs\n );\n }\n\n /** @internal */\n public getPanelSectionDef(section: StagePanelSection) {\n switch (section) {\n case StagePanelSection.Start: {\n return this._start;\n }\n case StagePanelSection.End: {\n return this._end;\n }\n }\n }\n}\n\n/** @internal */\nexport class StagePanelSectionDef extends WidgetHost {\n /** @internal */\n public initializeFromConfig(config: StagePanelSectionConfig | undefined) {\n config?.forEach((widgetConfig) => {\n const widgetDef = WidgetDef.create(widgetConfig);\n this.addWidgetDef(widgetDef);\n });\n }\n}\n\n/** @internal */\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\n switch (location) {\n case StagePanelLocation.Bottom:\n return \"bottom\";\n case StagePanelLocation.Left:\n return \"left\";\n case StagePanelLocation.Right:\n return \"right\";\n case StagePanelLocation.Top:\n return \"top\";\n }\n}\n\n/** @internal */\nexport const setPanelSize: (\n nineZone: NineZoneState,\n side: PanelSide,\n size: number | undefined\n) => NineZoneState = produce(\n (\n nineZone: Draft<NineZoneState>,\n side: PanelSide,\n size: number | undefined\n ) => {\n const panel = nineZone.panels[side];\n panel.size =\n size === undefined\n ? size\n : Math.min(Math.max(size, panel.minSize), panel.maxSize);\n }\n);\n\n/** @internal */\nexport const setPanelPinned: (\n nineZone: NineZoneState,\n side: PanelSide,\n pinned: boolean\n) => NineZoneState = produce(\n (nineZone: Draft<NineZoneState>, side: PanelSide, pinned: boolean) => {\n const panel = nineZone.panels[side];\n panel.pinned = pinned;\n }\n);\n"]}
1
+ {"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.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 Frontstage\n */\n\nimport type { Draft } from \"immer\";\nimport produce from \"immer\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\nimport { WidgetDef } from \"../widgets/WidgetDef\";\nimport { WidgetHost } from \"../widgets/WidgetHost\";\nimport type {\n StagePanelConfig,\n StagePanelMaxSizeSpec,\n StagePanelSectionConfig,\n} from \"./StagePanelConfig\";\nimport { StagePanelLocation } from \"./StagePanelLocation\";\nimport { StagePanelSection } from \"./StagePanelSection\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Enum for StagePanel state.\n * @public\n */\nexport enum StagePanelState {\n Off,\n Minimized,\n Open,\n Popup,\n}\n\n/** Panel state changed event args interface.\n * @public\n */\nexport interface PanelStateChangedEventArgs {\n panelDef: StagePanelDef;\n panelState: StagePanelState;\n}\n\n/** Panel state changed event class.\n * @beta\n */\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> {}\n\n/** @internal */\nexport interface PanelSizeChangedEventArgs {\n panelDef: StagePanelDef;\n size: number | undefined;\n}\n\n/** @internal */\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> {}\n\n/** Panel pinned changed event args interface.\n * @public\n */\nexport interface PanelPinnedChangedEventArgs {\n panelDef: StagePanelDef;\n pinned: boolean;\n}\n\n/**\n * A StagePanelDef represents each Stage Panel within a Frontstage.\n * @public\n */\nexport class StagePanelDef extends WidgetHost {\n private _panelState = StagePanelState.Open;\n private _defaultState = StagePanelState.Open;\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\n private _minSize: number | undefined;\n private _size: number | undefined;\n private _defaultSize: number | undefined;\n private _resizable = true;\n private _pinned = true;\n private _location: StagePanelLocation = StagePanelLocation.Left;\n private _start = new StagePanelSectionDef();\n private _end = new StagePanelSectionDef();\n\n /** Constructor for PanelDef.\n */\n constructor() {\n super();\n }\n\n /** @internal */\n public get maxSizeSpec() {\n return this._maxSizeSpec;\n }\n\n /** @internal */\n public get minSize() {\n return this._minSize;\n }\n\n /** Default size of the panel */\n public get size() {\n // istanbul ignore else\n if (UiFramework.frontstages.activeFrontstageDef) {\n const [_, size] =\n UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\n return size;\n }\n // istanbul ignore next\n return this._defaultSize;\n }\n\n public set size(size) {\n if (this._size === size) return;\n\n // istanbul ignore else\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = setPanelSize(\n frontstageDef.nineZoneState,\n side,\n size\n );\n const panel = frontstageDef.nineZoneState.panels[side];\n if (panel.size === this._size) return;\n size = panel.size;\n }\n this._size = size;\n InternalFrontstageManager.onPanelSizeChangedEvent.emit({\n panelDef: this,\n size,\n });\n }\n\n /** Indicates whether the panel is resizable. */\n // istanbul ignore next\n public get resizable(): boolean {\n return this._resizable;\n }\n\n /** Indicates whether the panel is pinned. */\n public get pinned(): boolean {\n if (UiFramework.frontstages.activeFrontstageDef) {\n const state =\n UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\n return state[2];\n }\n // istanbul ignore next\n return false;\n }\n\n public set pinned(pinned: boolean) {\n if (this._pinned === pinned) return;\n\n // istanbul ignore else\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = setPanelPinned(\n frontstageDef.nineZoneState,\n side,\n pinned\n );\n }\n this._pinned = pinned;\n UiFramework.frontstages.onPanelPinnedChangedEvent.emit({\n panelDef: this,\n pinned,\n });\n }\n\n /** Location of panel. */\n public get location(): StagePanelLocation {\n return this._location;\n }\n\n /** Panel state. Defaults to PanelState.Open. */\n public get panelState() {\n // istanbul ignore else\n if (UiFramework.frontstages.activeFrontstageDef) {\n const [state] =\n UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);\n return state;\n }\n // istanbul ignore next\n return this.defaultState;\n }\n\n public set panelState(panelState: StagePanelState) {\n if (panelState === this._panelState) return;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = produce(\n frontstageDef.nineZoneState,\n (nineZone) => {\n const panel = nineZone.panels[side];\n switch (panelState) {\n case StagePanelState.Minimized: {\n panel.collapsed = true;\n break;\n }\n case StagePanelState.Open: {\n panel.collapsed = false;\n break;\n }\n case StagePanelState.Off: {\n panel.collapsed = true;\n break;\n }\n }\n }\n );\n }\n this._panelState = panelState;\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\n panelDef: this,\n panelState,\n });\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n /** @internal */\n public get defaultSize() {\n return this._defaultSize;\n }\n\n /** @internal */\n public static create(config: StagePanelConfig, location: StagePanelLocation) {\n const def = new StagePanelDef();\n def.initializeFromConfig(config, location);\n return def;\n }\n\n /** @internal */\n public initializeFromConfig(\n config: StagePanelConfig | undefined,\n location: StagePanelLocation\n ): void {\n this._location = location;\n\n if (!config) return;\n this._size = config.size;\n this._defaultSize = config.size;\n this._maxSizeSpec = config.maxSize;\n this._minSize = config.minSize;\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n this._panelState = config.defaultState;\n }\n this._resizable = config.resizable ?? true;\n if (config.pinned !== undefined) this._pinned = config.pinned;\n\n const sections = config.sections;\n this._start.initializeFromConfig(sections?.start);\n this._end.initializeFromConfig(sections?.end);\n }\n\n /** Gets the list of Widgets. */\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\n return [\n ...super.widgetDefs,\n ...this._start.widgetDefs,\n ...this._end.widgetDefs,\n ];\n }\n\n /** @internal */\n public override updateDynamicWidgetDefs(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n _section: StagePanelSection | undefined,\n allStageWidgetDefs: WidgetDef[]\n ) {\n this._start.updateDynamicWidgetDefs(\n stageId,\n stageUsage,\n location,\n StagePanelSection.Start,\n allStageWidgetDefs\n );\n this._end.updateDynamicWidgetDefs(\n stageId,\n stageUsage,\n location,\n StagePanelSection.End,\n allStageWidgetDefs\n );\n }\n\n /** @internal */\n public getPanelSectionDef(section: StagePanelSection) {\n switch (section) {\n case StagePanelSection.Start: {\n return this._start;\n }\n case StagePanelSection.End: {\n return this._end;\n }\n }\n }\n}\n\n/** @internal */\nexport class StagePanelSectionDef extends WidgetHost {\n /** @internal */\n public initializeFromConfig(config: StagePanelSectionConfig | undefined) {\n config?.forEach((widgetConfig) => {\n const widgetDef = WidgetDef.create(widgetConfig);\n this.addWidgetDef(widgetDef);\n });\n }\n}\n\n/** @internal */\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\n switch (location) {\n case StagePanelLocation.Bottom:\n return \"bottom\";\n case StagePanelLocation.Left:\n return \"left\";\n case StagePanelLocation.Right:\n return \"right\";\n case StagePanelLocation.Top:\n return \"top\";\n }\n}\n\n/** @internal */\nexport const setPanelSize: (\n nineZone: NineZoneState,\n side: PanelSide,\n size: number | undefined\n) => NineZoneState = produce(\n (\n nineZone: Draft<NineZoneState>,\n side: PanelSide,\n size: number | undefined\n ) => {\n const panel = nineZone.panels[side];\n panel.size =\n size === undefined\n ? size\n : Math.min(Math.max(size, panel.minSize), panel.maxSize);\n }\n);\n\n/** @internal */\nexport const setPanelPinned: (\n nineZone: NineZoneState,\n side: PanelSide,\n pinned: boolean\n) => NineZoneState = produce(\n (nineZone: Draft<NineZoneState>, side: PanelSide, pinned: boolean) => {\n const panel = nineZone.panels[side];\n panel.pinned = pinned;\n }\n);\n"]}
@@ -14,9 +14,8 @@ export function StatusBarIndicator(props) {
14
14
  const hasClickAction = !!props.onClick || !!props.popup;
15
15
  const [isOpen, setIsOpen] = React.useState(!!props.defaultIsOpen);
16
16
  const handleOnIndicatorClick = () => {
17
- var _a;
18
17
  setIsOpen(!isOpen);
19
- (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props);
18
+ props.onClick?.();
20
19
  };
21
20
  const target = React.useRef(null);
22
21
  return (React.createElement(React.Fragment, null,
@@ -1 +1 @@
1
- {"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/Indicator.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkBxC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,sBAAsB,GAAG,GAAG,EAAE;;QAClC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;QACnB,MAAA,KAAK,CAAC,OAAO,qDAAI,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,OAAO,CACL;QACE,oBAAC,SAAS,CAAC,KAAK,IACd,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,IAE3D,KAAK,CAAC,QAAQ,CACC;QACjB,KAAK,CAAC,KAAK,IAAI,CACd,oBAAC,SAAS,CAAC,KAAK,IACd,MAAM,EAAE,MAAM,CAAC,OAAO,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,MAAM,EAAE,MAAM,IAEb,KAAK,CAAC,KAAK,CACI,CACnB,CACA,CACJ,CAAC;AACJ,CAAC","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 * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { StatusBar } from \"./StatusBar\";\n\n/** Properties of [[StatusBarIndicator]] component.\n * @beta\n */\nexport interface StatusBarIndicatorProps extends CommonProps {\n /** Indicator content. */\n children?: React.ReactNode;\n /** Content to display in a popup when indicator is clicked. */\n popup?: React.ReactNode;\n /** Function called when indicator is clicked. */\n onClick?: () => void;\n /** Default state of an indicator popup. */\n defaultIsOpen?: boolean;\n /** Title of an indicator. */\n title?: string;\n}\n\n/** General-purpose [[StatusBar]] indicator.\n * @beta\n */\nexport function StatusBarIndicator(props: StatusBarIndicatorProps) {\n const hasClickAction = !!props.onClick || !!props.popup;\n const [isOpen, setIsOpen] = React.useState(!!props.defaultIsOpen);\n const handleOnIndicatorClick = () => {\n setIsOpen(!isOpen);\n props.onClick?.();\n };\n const target = React.useRef<HTMLDivElement>(null);\n return (\n <>\n <StatusBar.Field\n ref={target}\n className={props.className}\n title={props.title}\n style={props.style}\n onClick={hasClickAction ? handleOnIndicatorClick : undefined}\n >\n {props.children}\n </StatusBar.Field>\n {props.popup && (\n <StatusBar.Popup\n target={target.current}\n onClose={() => setIsOpen(false)}\n isOpen={isOpen}\n >\n {props.popup}\n </StatusBar.Popup>\n )}\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/Indicator.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkBxC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;QACnB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,OAAO,CACL;QACE,oBAAC,SAAS,CAAC,KAAK,IACd,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,IAE3D,KAAK,CAAC,QAAQ,CACC;QACjB,KAAK,CAAC,KAAK,IAAI,CACd,oBAAC,SAAS,CAAC,KAAK,IACd,MAAM,EAAE,MAAM,CAAC,OAAO,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,MAAM,EAAE,MAAM,IAEb,KAAK,CAAC,KAAK,CACI,CACnB,CACA,CACJ,CAAC;AACJ,CAAC","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 * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { StatusBar } from \"./StatusBar\";\n\n/** Properties of [[StatusBarIndicator]] component.\n * @beta\n */\nexport interface StatusBarIndicatorProps extends CommonProps {\n /** Indicator content. */\n children?: React.ReactNode;\n /** Content to display in a popup when indicator is clicked. */\n popup?: React.ReactNode;\n /** Function called when indicator is clicked. */\n onClick?: () => void;\n /** Default state of an indicator popup. */\n defaultIsOpen?: boolean;\n /** Title of an indicator. */\n title?: string;\n}\n\n/** General-purpose [[StatusBar]] indicator.\n * @beta\n */\nexport function StatusBarIndicator(props: StatusBarIndicatorProps) {\n const hasClickAction = !!props.onClick || !!props.popup;\n const [isOpen, setIsOpen] = React.useState(!!props.defaultIsOpen);\n const handleOnIndicatorClick = () => {\n setIsOpen(!isOpen);\n props.onClick?.();\n };\n const target = React.useRef<HTMLDivElement>(null);\n return (\n <>\n <StatusBar.Field\n ref={target}\n className={props.className}\n title={props.title}\n style={props.style}\n onClick={hasClickAction ? handleOnIndicatorClick : undefined}\n >\n {props.children}\n </StatusBar.Field>\n {props.popup && (\n <StatusBar.Popup\n target={target.current}\n onClose={() => setIsOpen(false)}\n isOpen={isOpen}\n >\n {props.popup}\n </StatusBar.Popup>\n )}\n </>\n );\n}\n"]}
@@ -74,11 +74,9 @@ export class StatusBar extends React.Component {
74
74
  };
75
75
  }
76
76
  render() {
77
- return (React.createElement(SafeAreaContext.Consumer, null, (safeAreaInsets) => {
78
- var _a, _b, _c;
79
- return (React.createElement(Footer, { className: this.props.className, messages: React.createElement(ActivityMessageRenderer, null), onMouseEnter: UiFramework.visibility.handleWidgetMouseEnter, safeAreaInsets: toLayoutSafeAreaInsets(safeAreaInsets), style: this.props.style }, (_c = (_b = (_a = this.props.widgetControl) === null || _a === void 0 ? void 0 : _a.getReactNode) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : null,
80
- this.props.children));
81
- }));
77
+ return (React.createElement(SafeAreaContext.Consumer, null, (safeAreaInsets) => (React.createElement(Footer, { className: this.props.className, messages: React.createElement(ActivityMessageRenderer, null), onMouseEnter: UiFramework.visibility.handleWidgetMouseEnter, safeAreaInsets: toLayoutSafeAreaInsets(safeAreaInsets), style: this.props.style },
78
+ this.props.widgetControl?.getReactNode?.() ?? null,
79
+ this.props.children))));
82
80
  }
83
81
  componentDidMount() {
84
82
  MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.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 \"./StatusBar.scss\";\nimport * as React from \"react\";\nimport type { CommonDivProps, CommonProps } from \"@itwin/core-react\";\nimport { Div } from \"@itwin/core-react\";\nimport { Footer } from \"@itwin/appui-layout-react\";\nimport type {\n ActivityMessageEventArgs,\n MessageAddedEventArgs,\n} from \"../messages/MessageManager\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\nimport type { StatusBarWidgetControl } from \"./StatusBarWidgetControl\";\nimport { toLayoutSafeAreaInsets } from \"../safearea/SafeAreaHelpers\";\nimport { ActivityMessageRenderer } from \"../messages/ActivityMessage\";\nimport { UiFramework } from \"../UiFramework\";\nimport { StatusBarField } from \"./Field\";\nimport { StatusBarPopup } from \"./Popup\";\n\n// cspell:ignore safearea\n\n/** State for the [[StatusBar]] React component\n * @internal\n */\ninterface StatusBarState {\n activityMessageInfo: ActivityMessageEventArgs | undefined;\n}\n\n/** Properties for the [[StatusBar]] React component\n * @public\n */\nexport interface StatusBarProps extends CommonProps {\n children?: React.ReactNode;\n widgetControl?: StatusBarWidgetControl;\n}\n\n/** Message type for the [[StatusBar]] React component\n * @internal\n */\ninterface StatusBarMessage {\n close: () => void;\n id: string;\n}\n\n/** Status Bar React component.\n * @public\n */\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\n private messages: StatusBarMessage[] = [];\n\n /** @internal */\n constructor(props: StatusBarProps) {\n super(props);\n\n this.state = {\n activityMessageInfo: undefined,\n };\n }\n\n public override render(): React.ReactNode {\n return (\n <SafeAreaContext.Consumer>\n {(safeAreaInsets) => (\n <Footer\n className={this.props.className}\n messages={<ActivityMessageRenderer />}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n safeAreaInsets={toLayoutSafeAreaInsets(safeAreaInsets)}\n style={this.props.style}\n >\n {this.props.widgetControl?.getReactNode?.() ?? null}\n {this.props.children}\n </Footer>\n )}\n </SafeAreaContext.Consumer>\n );\n }\n\n public override componentDidMount() {\n MessageManager.onMessageAddedEvent.addListener(\n this._handleMessageAddedEvent\n );\n MessageManager.onActivityMessageUpdatedEvent.addListener(\n this._handleActivityMessageUpdatedEvent\n );\n MessageManager.onActivityMessageCancelledEvent.addListener(\n this._handleActivityMessageCancelledEvent\n );\n MessageManager.onMessagesUpdatedEvent.addListener(\n this._handleMessagesUpdatedEvent\n );\n\n MessageManager.updateMessages();\n }\n\n public override componentWillUnmount() {\n MessageManager.onMessageAddedEvent.removeListener(\n this._handleMessageAddedEvent\n );\n MessageManager.onActivityMessageUpdatedEvent.removeListener(\n this._handleActivityMessageUpdatedEvent\n );\n MessageManager.onActivityMessageCancelledEvent.removeListener(\n this._handleActivityMessageCancelledEvent\n );\n MessageManager.onMessagesUpdatedEvent.removeListener(\n this._handleMessagesUpdatedEvent\n );\n }\n\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\n this._updateMessages();\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter(\n (msg) => !this.messages.find((m) => m.id === msg.id)\n );\n messagesToAdd.forEach((msg) => {\n const displayedMessage = MessageManager.displayMessage(\n msg.messageDetails,\n { onRemove: () => this._closeMessage(msg.id) }\n );\n if (!!displayedMessage)\n this.messages.push({ close: displayedMessage.close, id: msg.id });\n });\n };\n\n private _updateMessages = () => {\n const updatedMessages = [...this.messages];\n this.messages.forEach((m) => {\n if (\n !MessageManager.activeMessageManager.messages.some(\n (msg) => m.id === msg.id\n )\n ) {\n m.close();\n const index = updatedMessages.findIndex((msg) => msg.id === m.id);\n updatedMessages.splice(index, 1);\n }\n });\n this.messages = updatedMessages;\n };\n\n /** Respond to clearing the message list */\n private _handleMessagesUpdatedEvent = () => {\n this._updateMessages();\n };\n\n /**\n * Sets state of the status bar to updated values reflecting activity progress.\n * @param args New values to set for ActivityMessage\n */\n private _handleActivityMessageUpdatedEvent = (\n args: ActivityMessageEventArgs\n ) => {\n this.setState({\n activityMessageInfo: args,\n });\n };\n\n /**\n * Hides ActivityMessage after cancellation\n */\n private _handleActivityMessageCancelledEvent = () => {\n this.setState({\n activityMessageInfo: undefined,\n });\n };\n\n private _closeMessage = (id: string) => {\n MessageManager.activeMessageManager.remove(id);\n MessageManager.updateMessages();\n };\n}\n\n/** StatusBar With Space Between Items React functional component\n * @public\n */\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-space-between\"}\n />\n );\n}\n\n/** StatusBar Left Section React functional component\n * @public\n */\nexport function StatusBarLeftSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-left\"}\n />\n );\n}\n\n/** StatusBar Center Section React functional component\n * @public\n */\nexport function StatusBarCenterSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-center\"}\n />\n );\n}\n\n/** StatusBar Right Section React functional component\n * @public\n */\nexport function StatusBarRightSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-right\"}\n />\n );\n}\n\n/** Components used in a [[StatusBar]].\n * @public\n */\nexport namespace StatusBar {\n /** Field of a [[StatusBar]].\n * @beta\n */\n export const Field = StatusBarField;\n\n /** Popup of a [[StatusBar]].\n * @beta\n */\n export const Popup = StatusBarPopup;\n}\n"]}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.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 \"./StatusBar.scss\";\nimport * as React from \"react\";\nimport type { CommonDivProps, CommonProps } from \"@itwin/core-react\";\nimport { Div } from \"@itwin/core-react\";\nimport { Footer } from \"@itwin/appui-layout-react\";\nimport type {\n ActivityMessageEventArgs,\n MessageAddedEventArgs,\n} from \"../messages/MessageManager\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\nimport type { StatusBarWidgetControl } from \"./StatusBarWidgetControl\";\nimport { toLayoutSafeAreaInsets } from \"../safearea/SafeAreaHelpers\";\nimport { ActivityMessageRenderer } from \"../messages/ActivityMessage\";\nimport { UiFramework } from \"../UiFramework\";\nimport { StatusBarField } from \"./Field\";\nimport { StatusBarPopup } from \"./Popup\";\n\n// cspell:ignore safearea\n\n/** State for the [[StatusBar]] React component\n * @internal\n */\ninterface StatusBarState {\n activityMessageInfo: ActivityMessageEventArgs | undefined;\n}\n\n/** Properties for the [[StatusBar]] React component\n * @public\n */\nexport interface StatusBarProps extends CommonProps {\n children?: React.ReactNode;\n widgetControl?: StatusBarWidgetControl;\n}\n\n/** Message type for the [[StatusBar]] React component\n * @internal\n */\ninterface StatusBarMessage {\n close: () => void;\n id: string;\n}\n\n/** Status Bar React component.\n * @public\n */\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\n private messages: StatusBarMessage[] = [];\n\n /** @internal */\n constructor(props: StatusBarProps) {\n super(props);\n\n this.state = {\n activityMessageInfo: undefined,\n };\n }\n\n public override render(): React.ReactNode {\n return (\n <SafeAreaContext.Consumer>\n {(safeAreaInsets) => (\n <Footer\n className={this.props.className}\n messages={<ActivityMessageRenderer />}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n safeAreaInsets={toLayoutSafeAreaInsets(safeAreaInsets)}\n style={this.props.style}\n >\n {this.props.widgetControl?.getReactNode?.() ?? null}\n {this.props.children}\n </Footer>\n )}\n </SafeAreaContext.Consumer>\n );\n }\n\n public override componentDidMount() {\n MessageManager.onMessageAddedEvent.addListener(\n this._handleMessageAddedEvent\n );\n MessageManager.onActivityMessageUpdatedEvent.addListener(\n this._handleActivityMessageUpdatedEvent\n );\n MessageManager.onActivityMessageCancelledEvent.addListener(\n this._handleActivityMessageCancelledEvent\n );\n MessageManager.onMessagesUpdatedEvent.addListener(\n this._handleMessagesUpdatedEvent\n );\n\n MessageManager.updateMessages();\n }\n\n public override componentWillUnmount() {\n MessageManager.onMessageAddedEvent.removeListener(\n this._handleMessageAddedEvent\n );\n MessageManager.onActivityMessageUpdatedEvent.removeListener(\n this._handleActivityMessageUpdatedEvent\n );\n MessageManager.onActivityMessageCancelledEvent.removeListener(\n this._handleActivityMessageCancelledEvent\n );\n MessageManager.onMessagesUpdatedEvent.removeListener(\n this._handleMessagesUpdatedEvent\n );\n }\n\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\n this._updateMessages();\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter(\n (msg) => !this.messages.find((m) => m.id === msg.id)\n );\n messagesToAdd.forEach((msg) => {\n const displayedMessage = MessageManager.displayMessage(\n msg.messageDetails,\n { onRemove: () => this._closeMessage(msg.id) }\n );\n if (!!displayedMessage)\n this.messages.push({ close: displayedMessage.close, id: msg.id });\n });\n };\n\n private _updateMessages = () => {\n const updatedMessages = [...this.messages];\n this.messages.forEach((m) => {\n if (\n !MessageManager.activeMessageManager.messages.some(\n (msg) => m.id === msg.id\n )\n ) {\n m.close();\n const index = updatedMessages.findIndex((msg) => msg.id === m.id);\n updatedMessages.splice(index, 1);\n }\n });\n this.messages = updatedMessages;\n };\n\n /** Respond to clearing the message list */\n private _handleMessagesUpdatedEvent = () => {\n this._updateMessages();\n };\n\n /**\n * Sets state of the status bar to updated values reflecting activity progress.\n * @param args New values to set for ActivityMessage\n */\n private _handleActivityMessageUpdatedEvent = (\n args: ActivityMessageEventArgs\n ) => {\n this.setState({\n activityMessageInfo: args,\n });\n };\n\n /**\n * Hides ActivityMessage after cancellation\n */\n private _handleActivityMessageCancelledEvent = () => {\n this.setState({\n activityMessageInfo: undefined,\n });\n };\n\n private _closeMessage = (id: string) => {\n MessageManager.activeMessageManager.remove(id);\n MessageManager.updateMessages();\n };\n}\n\n/** StatusBar With Space Between Items React functional component\n * @public\n */\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-space-between\"}\n />\n );\n}\n\n/** StatusBar Left Section React functional component\n * @public\n */\nexport function StatusBarLeftSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-left\"}\n />\n );\n}\n\n/** StatusBar Center Section React functional component\n * @public\n */\nexport function StatusBarCenterSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-center\"}\n />\n );\n}\n\n/** StatusBar Right Section React functional component\n * @public\n */\nexport function StatusBarRightSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-right\"}\n />\n );\n}\n\n/** Components used in a [[StatusBar]].\n * @public\n */\nexport namespace StatusBar {\n /** Field of a [[StatusBar]].\n * @beta\n */\n export const Field = StatusBarField;\n\n /** Popup of a [[StatusBar]].\n * @beta\n */\n export const Popup = StatusBarPopup;\n}\n"]}
@@ -311,7 +311,7 @@ class ToolAssistanceField extends React.Component {
311
311
  ? "uifw-toolassistance-svg"
312
312
  : "uifw-toolassistance-icon-large";
313
313
  image = (React.createElement("div", { className: className },
314
- React.createElement(Icon, { iconSpec: svgSource !== null && svgSource !== void 0 ? svgSource : instruction.image })));
314
+ React.createElement(Icon, { iconSpec: svgSource ?? instruction.image })));
315
315
  }
316
316
  }
317
317
  else if (instruction.image === ToolAssistanceImage.Keyboard) {