@itwin/appui-react 4.2.0-dev.1 → 4.2.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 (194) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/lib/cjs/appui-react/UiFramework.js +5 -9
  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 +3 -4
  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/settings/quantityformatting/QuantityFormat.js +2 -1
  53. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  54. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +5 -7
  55. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  56. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  57. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  58. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  59. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  60. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  61. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  62. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +10 -17
  63. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  64. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  65. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  66. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  67. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  68. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  69. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  70. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  71. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  72. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  73. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  74. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  75. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  76. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  77. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  78. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  79. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  80. package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
  81. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  82. package/lib/cjs/appui-react/widget-panels/Frontstage.js +38 -39
  83. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  84. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  85. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  86. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  87. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  88. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +12 -17
  89. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  90. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  91. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  92. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  93. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  94. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
  95. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  96. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  97. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  98. package/lib/esm/appui-react/UiFramework.js +5 -9
  99. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  100. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  101. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  102. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  103. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  104. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  105. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  106. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  107. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  108. package/lib/esm/appui-react/content/ContentLayout.js +9 -12
  109. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  110. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  111. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  112. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  113. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  114. package/lib/esm/appui-react/content/IModelViewport.js +3 -6
  115. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  116. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  117. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  118. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  119. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  120. package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
  121. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  122. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  123. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  124. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  125. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  126. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  127. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  128. package/lib/esm/appui-react/frontstage/FrontstageDef.js +3 -4
  129. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  130. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  131. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  132. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  133. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  134. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  135. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  136. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  137. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  138. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  139. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  140. package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
  141. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  142. package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
  143. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  144. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
  145. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  146. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  147. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  148. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  149. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  150. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +5 -7
  151. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  152. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  153. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  154. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  155. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  156. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  157. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  158. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +10 -17
  159. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  160. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  161. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  162. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  163. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  164. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  165. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  166. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  167. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  168. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  169. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  170. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  171. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  172. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  173. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  174. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  175. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  176. package/lib/esm/appui-react/widget-panels/Content.js +8 -9
  177. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  178. package/lib/esm/appui-react/widget-panels/Frontstage.js +38 -39
  179. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  180. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  181. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  182. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  183. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  184. package/lib/esm/appui-react/widget-panels/ToolSettings.js +12 -17
  185. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  186. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  187. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  188. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  189. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  190. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
  191. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  192. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  193. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  194. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ToolSettings.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 ToolSettings\n */\n\nimport \"./ToolSettings.scss\";\nimport * as React from \"react\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport {\n DockedToolSetting,\n DockedToolSettings,\n ScrollableWidgetContent,\n useLayout,\n} from \"@itwin/appui-layout-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\n\n/** Defines a ToolSettings property entry.\n * @public\n */\nexport interface ToolSettingsEntry {\n // label node which potentially can contain a lock node as well.\n labelNode: React.ReactNode;\n // editor entry used to display and edit the property value\n editorNode: React.ReactNode;\n}\n\nfunction EmptyToolSettingsEntry(): ToolSettingsEntry {\n const labelString = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettings\"\n );\n const labelNode = (\n <div className=\"uif-toolsetting-label-docked-horizontal-empty\">\n {labelString}\n </div>\n );\n const editorNode = <div />;\n return { labelNode, editorNode };\n}\n\n/** @internal */\n// istanbul ignore next - need to work on overflow unit testing\nfunction TsLabel({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"uif-toolsetting-label-docked-horizontal\">{children}</div>\n );\n}\n\n/** @internal */\nexport function WidgetPanelsToolSettings() {\n const frontstageDef = useActiveFrontstageDef();\n const toolSettingsType = useLayout((state) => state.toolSettings.type);\n const toolSettings = frontstageDef?.toolSettings;\n if (!toolSettings || toolSettingsType === \"widget\") return null;\n return <ToolSettingsDockedContent />;\n}\n\n/** @internal */\nexport function ToolSettingsDockedContent() {\n const settings = useHorizontalToolSettingNodes();\n // for the overflow to work properly each setting in the DockedToolSettings should be wrapped by a DockedToolSetting component\n return (\n <DockedToolSettings\n itemId={\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\"\n }\n key={Date.now()}\n >\n {settings &&\n settings.map((entry, index) => (\n <DockedToolSetting key={index}>\n <TsLabel>{entry.labelNode}</TsLabel>\n {entry.editorNode}\n </DockedToolSetting>\n ))}\n </DockedToolSettings>\n );\n}\n\n/** @internal */\nexport function useHorizontalToolSettingNodes() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n if (!nodes || nodes.length === 0) setSettings([EmptyToolSettingsEntry()]);\n else setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n if (!nodes || nodes.length === 0) setSettings([EmptyToolSettingsEntry()]);\n else setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** Defines the ToolSettingsEntry entries that are used to populate a grid layout of ToolSetting properties.\n * Used only when the \"Use UI 2.0\" setting is true\n * @internal\n */\nexport interface ToolSettingsGridProps {\n // label node which potentially can contain a lock node as well.\n settings?: ToolSettingsEntry[];\n}\n\n/** Component that arranges an array of ToolSettingsEntry items into a two column grid layout.\n * The left column is considered the label column, the right column is considered the property\n * editor column.\n * @internal\n */\nexport function ToolSettingsGrid({ settings }: ToolSettingsGridProps) {\n return (\n <div className=\"uifw-standard-toolsettings-two-column-grid\">\n {settings &&\n settings.map((setting: ToolSettingsEntry, index: number) => {\n return (\n <React.Fragment key={index}>\n <span className=\"uifw-standard-toolsettings-label-entry\">\n {setting.labelNode}\n </span>\n {setting.editorNode}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n\n/** @internal */\nexport function useToolSettingsNode() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** @internal */\nexport function ToolSettingsContent() {\n const toolSettingsType = useLayout((state) => state.toolSettings.type);\n // This is needed to remount underlying components tree when going into widget state.\n if (toolSettingsType === \"docked\") return null;\n return <ToolSettingsWidgetContent />;\n}\n\n/** @internal */\nexport function ToolSettingsWidgetContent() {\n const floatingToolSettingsContainerRef = React.useRef<HTMLDivElement>(null);\n const node = useToolSettingsNode();\n // if no tool settings hide the floating widgets tab\n React.useEffect(() => {\n // istanbul ignore else\n if (floatingToolSettingsContainerRef.current) {\n const floatingWidgetTab =\n floatingToolSettingsContainerRef.current.closest(\n \".nz-floating-toolsettings\"\n );\n // istanbul ignore else\n if (floatingWidgetTab) {\n (floatingWidgetTab as HTMLDivElement).style.visibility = !!node\n ? \"visible\"\n : /* istanbul ignore next */ \"hidden\";\n }\n }\n }, [node]);\n\n // istanbul ignore next\n const providerId =\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\";\n\n return (\n <div\n data-toolsettings-provider={providerId}\n className=\"uifw-floating-toolsettings-container\"\n ref={floatingToolSettingsContainerRef}\n >\n <ScrollableWidgetContent>{node}</ScrollableWidgetContent>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"ToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ToolSettings.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 ToolSettings\n */\n\nimport \"./ToolSettings.scss\";\nimport * as React from \"react\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport {\n DockedToolSetting,\n DockedToolSettings,\n ScrollableWidgetContent,\n useLayout,\n} from \"@itwin/appui-layout-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\n\n/** Defines a ToolSettings property entry.\n * @public\n */\nexport interface ToolSettingsEntry {\n // label node which potentially can contain a lock node as well.\n labelNode: React.ReactNode;\n // editor entry used to display and edit the property value\n editorNode: React.ReactNode;\n}\n\nfunction EmptyToolSettingsEntry(): ToolSettingsEntry {\n const labelString = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettings\"\n );\n const labelNode = (\n <div className=\"uif-toolsetting-label-docked-horizontal-empty\">\n {labelString}\n </div>\n );\n const editorNode = <div />;\n return { labelNode, editorNode };\n}\n\n/** @internal */\n// istanbul ignore next - need to work on overflow unit testing\nfunction TsLabel({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"uif-toolsetting-label-docked-horizontal\">{children}</div>\n );\n}\n\n/** @internal */\nexport function WidgetPanelsToolSettings() {\n const frontstageDef = useActiveFrontstageDef();\n const toolSettingsType = useLayout((state) => state.toolSettings.type);\n const toolSettings = frontstageDef?.toolSettings;\n if (!toolSettings || toolSettingsType === \"widget\") return null;\n return <ToolSettingsDockedContent />;\n}\n\n/** @internal */\nexport function ToolSettingsDockedContent() {\n const settings = useHorizontalToolSettingNodes();\n // for the overflow to work properly each setting in the DockedToolSettings should be wrapped by a DockedToolSetting component\n return (\n <DockedToolSettings\n itemId={\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\"\n }\n key={Date.now()}\n >\n {settings &&\n settings.map((entry, index) => (\n <DockedToolSetting key={index}>\n <TsLabel>{entry.labelNode}</TsLabel>\n {entry.editorNode}\n </DockedToolSetting>\n ))}\n </DockedToolSettings>\n );\n}\n\n/** @internal */\nexport function useHorizontalToolSettingNodes() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n if (!nodes || nodes.length === 0) setSettings([EmptyToolSettingsEntry()]);\n else setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n if (!nodes || nodes.length === 0) setSettings([EmptyToolSettingsEntry()]);\n else setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** Defines the ToolSettingsEntry entries that are used to populate a grid layout of ToolSetting properties.\n * Used only when the \"Use UI 2.0\" setting is true\n * @internal\n */\nexport interface ToolSettingsGridProps {\n // label node which potentially can contain a lock node as well.\n settings?: ToolSettingsEntry[];\n}\n\n/** Component that arranges an array of ToolSettingsEntry items into a two column grid layout.\n * The left column is considered the label column, the right column is considered the property\n * editor column.\n * @internal\n */\nexport function ToolSettingsGrid({ settings }: ToolSettingsGridProps) {\n return (\n <div className=\"uifw-standard-toolsettings-two-column-grid\">\n {settings &&\n settings.map((setting: ToolSettingsEntry, index: number) => {\n return (\n <React.Fragment key={index}>\n <span className=\"uifw-standard-toolsettings-label-entry\">\n {setting.labelNode}\n </span>\n {setting.editorNode}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n\n/** @internal */\nexport function useToolSettingsNode() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** @internal */\nexport function ToolSettingsContent() {\n const toolSettingsType = useLayout((state) => state.toolSettings.type);\n // This is needed to remount underlying components tree when going into widget state.\n if (toolSettingsType === \"docked\") return null;\n return <ToolSettingsWidgetContent />;\n}\n\n/** @internal */\nexport function ToolSettingsWidgetContent() {\n const floatingToolSettingsContainerRef = React.useRef<HTMLDivElement>(null);\n const node = useToolSettingsNode();\n // if no tool settings hide the floating widgets tab\n React.useEffect(() => {\n // istanbul ignore else\n if (floatingToolSettingsContainerRef.current) {\n const floatingWidgetTab =\n floatingToolSettingsContainerRef.current.closest(\n \".nz-floating-toolsettings\"\n );\n // istanbul ignore else\n if (floatingWidgetTab) {\n (floatingWidgetTab as HTMLDivElement).style.visibility = !!node\n ? \"visible\"\n : /* istanbul ignore next */ \"hidden\";\n }\n }\n }, [node]);\n\n // istanbul ignore next\n const providerId =\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\";\n\n return (\n <div\n data-toolsettings-provider={providerId}\n className=\"uifw-floating-toolsettings-container\"\n ref={floatingToolSettingsContainerRef}\n >\n <ScrollableWidgetContent>{node}</ScrollableWidgetContent>\n </div>\n );\n}\n"]}
@@ -13,10 +13,9 @@ const React = require("react");
13
13
  const FrontstageDef_1 = require("../frontstage/FrontstageDef");
14
14
  /** @internal */
15
15
  function WidgetPanelsToolbars() {
16
- var _a, _b;
17
16
  const frontstageDef = (0, FrontstageDef_1.useActiveFrontstageDef)();
18
- const tools = (_a = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.contentManipulation) === null || _a === void 0 ? void 0 : _a.reactNode;
19
- const navigation = (_b = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.viewNavigation) === null || _b === void 0 ? void 0 : _b.reactNode;
17
+ const tools = frontstageDef?.contentManipulation?.reactNode;
18
+ const navigation = frontstageDef?.viewNavigation?.reactNode;
20
19
  return (React.createElement("div", { className: "uifw-widgetPanels-toolbars" },
21
20
  tools,
22
21
  navigation));
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbars.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Toolbars.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,2BAAyB;AACzB,+BAA+B;AAC/B,+DAAqE;AAErE,gBAAgB;AAChB,SAAgB,oBAAoB;;IAClC,MAAM,aAAa,GAAG,IAAA,sCAAsB,GAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,mBAAmB,0CAAE,SAAS,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,cAAc,0CAAE,SAAS,CAAC;IAC5D,OAAO,CACL,6BAAK,SAAS,EAAC,4BAA4B;QACxC,KAAK;QACL,UAAU,CACP,CACP,CAAC;AACJ,CAAC;AAVD,oDAUC","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 Item\n */\n\nimport \"./Toolbars.scss\";\nimport * as React from \"react\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\n\n/** @internal */\nexport function WidgetPanelsToolbars() {\n const frontstageDef = useActiveFrontstageDef();\n const tools = frontstageDef?.contentManipulation?.reactNode;\n const navigation = frontstageDef?.viewNavigation?.reactNode;\n return (\n <div className=\"uifw-widgetPanels-toolbars\">\n {tools}\n {navigation}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"Toolbars.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Toolbars.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,2BAAyB;AACzB,+BAA+B;AAC/B,+DAAqE;AAErE,gBAAgB;AAChB,SAAgB,oBAAoB;IAClC,MAAM,aAAa,GAAG,IAAA,sCAAsB,GAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,aAAa,EAAE,mBAAmB,EAAE,SAAS,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC;IAC5D,OAAO,CACL,6BAAK,SAAS,EAAC,4BAA4B;QACxC,KAAK;QACL,UAAU,CACP,CACP,CAAC;AACJ,CAAC;AAVD,oDAUC","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 Item\n */\n\nimport \"./Toolbars.scss\";\nimport * as React from \"react\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\n\n/** @internal */\nexport function WidgetPanelsToolbars() {\n const frontstageDef = useActiveFrontstageDef();\n const tools = frontstageDef?.contentManipulation?.reactNode;\n const navigation = frontstageDef?.viewNavigation?.reactNode;\n return (\n <div className=\"uifw-widgetPanels-toolbars\">\n {tools}\n {navigation}\n </div>\n );\n}\n"]}
@@ -33,7 +33,7 @@ function createNavigationAidControl(activeContentControl, navigationAidId, activ
33
33
  */
34
34
  function NavigationAidHost(props) {
35
35
  const [activeContentControl, setActiveContentControl] = React.useState(() => UiFramework_1.UiFramework.content.getActiveContentControl());
36
- const [activeContentViewport, setActiveContentViewport] = React.useState(() => /* istanbul ignore next */ activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport);
36
+ const [activeContentViewport, setActiveContentViewport] = React.useState(() => /* istanbul ignore next */ activeContentControl?.viewport);
37
37
  const [navigationAidId, setNavigationAidId] = React.useState(() => activeContentControl
38
38
  ? activeContentControl.navigationAidControl
39
39
  : /* istanbul ignore next */ "");
@@ -107,7 +107,7 @@ function NavigationWidgetComposer(props) {
107
107
  /* istanbul ignore next */
108
108
  const navigationAid = hideNavigationAid
109
109
  ? undefined
110
- : navigationAidHost !== null && navigationAidHost !== void 0 ? navigationAidHost : React.createElement(NavigationAidHost, null);
110
+ : navigationAidHost ?? React.createElement(NavigationAidHost, null);
111
111
  return (React.createElement(core_react_1.WidgetOpacityContext.Provider, { value: {
112
112
  onElementRef: handleChildRef,
113
113
  proximityScale,
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationWidgetComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.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 Widget\n */\n\nimport * as React from \"react\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport type { ViewClassFullNameChangedEventArgs } from \"@itwin/imodel-components-react\";\nimport { ViewportComponentEvents } from \"@itwin/imodel-components-react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n useProximityToMouse,\n useWidgetOpacityContext,\n WidgetElementSet,\n WidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport { NavigationArea } from \"@itwin/appui-layout-react\";\nimport type {\n ContentControl,\n ContentControlActivatedEventArgs,\n} from \"../content/ContentControl\";\nimport type { NavigationAidControl } from \"../navigationaids/NavigationAidControl\";\nimport { UiFramework } from \"../UiFramework\";\n\nfunction createNavigationAidControl(\n activeContentControl: ContentControl | undefined,\n navigationAidId: string,\n activeViewport: ScreenViewport | undefined\n): NavigationAidControl | undefined {\n // istanbul ignore else\n if (\n !activeContentControl ||\n !navigationAidId ||\n activeViewport !== activeContentControl.viewport\n )\n return undefined;\n\n const viewport = activeContentControl.viewport;\n const imodel = viewport\n ? viewport.iModel\n : /* istanbul ignore next */ UiFramework.getIModelConnection();\n const navigationAidControl = UiFramework.controls.create(\n navigationAidId,\n navigationAidId,\n { imodel, viewport }\n ) as NavigationAidControl;\n\n navigationAidControl.initialize();\n return navigationAidControl;\n}\n\n/** Properties for the [[NavigationAidHost]] React component\n * @public\n */\nexport interface NavigationAidHostProps {\n /** Navigation Aid Host minimum width. Defaults to \"64px\". */\n minWidth?: string;\n /** Navigation Aid Host minimum height. Defaults to \"64px\". */\n minHeight?: string;\n}\n\n/**\n * NavigationAidHost is a component that hosts a NavigationAid that is specific to the active content control.\n * @public\n */\nexport function NavigationAidHost(props: NavigationAidHostProps) {\n const [activeContentControl, setActiveContentControl] = React.useState(() =>\n UiFramework.content.getActiveContentControl()\n );\n const [activeContentViewport, setActiveContentViewport] = React.useState(\n () => /* istanbul ignore next */ activeContentControl?.viewport\n );\n const [navigationAidId, setNavigationAidId] = React.useState(() =>\n activeContentControl\n ? activeContentControl.navigationAidControl\n : /* istanbul ignore next */ \"\"\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleContentControlActivated = (\n args: ContentControlActivatedEventArgs\n ) => {\n setActiveContentControl(args.activeContentControl);\n setActiveContentViewport(args.activeContentControl.viewport);\n setNavigationAidId(args.activeContentControl.navigationAidControl);\n };\n\n UiFramework.frontstages.onContentControlActivatedEvent.addListener(\n handleContentControlActivated\n );\n return () => {\n UiFramework.frontstages.onContentControlActivatedEvent.removeListener(\n handleContentControlActivated\n );\n };\n }, []);\n\n const [activeViewClass, setActiveViewClass] = React.useState(() => {\n const content = UiFramework.content.getActiveContentControl();\n if (content && content.viewport) return content.viewport.view.classFullName;\n return \"\";\n });\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleViewClassFullNameChange = (\n args: ViewClassFullNameChangedEventArgs\n ) => {\n setActiveViewClass(args.newName);\n };\n\n ViewportComponentEvents.onViewClassFullNameChangedEvent.addListener(\n handleViewClassFullNameChange\n );\n return () => {\n ViewportComponentEvents.onViewClassFullNameChangedEvent.removeListener(\n handleViewClassFullNameChange\n );\n };\n }, [activeViewClass]);\n\n const navigationAidControl = React.useMemo(\n () =>\n createNavigationAidControl(\n activeContentControl,\n navigationAidId,\n activeContentViewport\n ),\n [activeContentControl, navigationAidId, activeContentViewport]\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n // istanbul ignore else\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n const divStyle: React.CSSProperties = {\n minWidth: props.minWidth\n ? /* istanbul ignore next */ props.minWidth\n : \"64px\",\n minHeight: props.minHeight\n ? /* istanbul ignore next */ props.minHeight\n : \"64px\",\n };\n\n // istanbul ignore else\n if (UiFramework.visibility.useProximityOpacity && !UiFramework.isMobile()) {\n const navigationAidOpacity = 0.3 * proximityScale + 0.7;\n divStyle.opacity = `${navigationAidOpacity}`;\n }\n\n return (\n <div style={divStyle} ref={ref}>\n {navigationAidControl && navigationAidControl.reactNode}\n </div>\n );\n}\n\n/** Properties for the [[NavigationWidgetComposer]] React components\n * @public\n */\nexport interface NavigationWidgetComposerProps extends CommonProps {\n /** Optional Horizontal Toolbar */\n horizontalToolbar?: React.ReactNode;\n /** Optional Vertical Toolbar */\n verticalToolbar?: React.ReactNode;\n /** Optional Navigation Aid host. If not specified a default host is provided which will use registered Navigation Aids and the active content control to determine which if any Navigation Aid to display. */\n navigationAidHost?: React.ReactNode;\n /** If true no navigation aid will be shown. Defaults to false. */\n hideNavigationAid?: boolean;\n}\n\n/**\n * Component that Composes a NavigationWidget typically using toolbars generated via [[ToolbarComposer]] class. The Navigation widget is shown in the top right of the content area\n * and typically holds tools to visually navigate, orient, and zoom to specific content.\n * @public\n */\nexport function NavigationWidgetComposer(props: NavigationWidgetComposerProps) {\n const {\n navigationAidHost,\n horizontalToolbar,\n verticalToolbar,\n hideNavigationAid,\n ...otherProps\n } = props;\n const [elementSet] = React.useState(new WidgetElementSet());\n const handleChildRef = React.useCallback(\n (elementRef: React.RefObject<Element>) => {\n elementSet.add(elementRef);\n },\n [elementSet]\n );\n const proximityScale = useProximityToMouse(\n elementSet,\n UiFramework.visibility.snapWidgetOpacity\n );\n /* istanbul ignore next */\n const navigationAid = hideNavigationAid\n ? undefined\n : navigationAidHost ?? <NavigationAidHost />;\n\n return (\n <WidgetOpacityContext.Provider\n value={{\n onElementRef: handleChildRef,\n proximityScale,\n }}\n >\n <NavigationArea\n navigationAid={navigationAid}\n horizontalToolbar={horizontalToolbar}\n verticalToolbar={verticalToolbar}\n {...otherProps}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n />\n </WidgetOpacityContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"NavigationWidgetComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.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 Widget\n */\n\nimport * as React from \"react\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport type { ViewClassFullNameChangedEventArgs } from \"@itwin/imodel-components-react\";\nimport { ViewportComponentEvents } from \"@itwin/imodel-components-react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n useProximityToMouse,\n useWidgetOpacityContext,\n WidgetElementSet,\n WidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport { NavigationArea } from \"@itwin/appui-layout-react\";\nimport type {\n ContentControl,\n ContentControlActivatedEventArgs,\n} from \"../content/ContentControl\";\nimport type { NavigationAidControl } from \"../navigationaids/NavigationAidControl\";\nimport { UiFramework } from \"../UiFramework\";\n\nfunction createNavigationAidControl(\n activeContentControl: ContentControl | undefined,\n navigationAidId: string,\n activeViewport: ScreenViewport | undefined\n): NavigationAidControl | undefined {\n // istanbul ignore else\n if (\n !activeContentControl ||\n !navigationAidId ||\n activeViewport !== activeContentControl.viewport\n )\n return undefined;\n\n const viewport = activeContentControl.viewport;\n const imodel = viewport\n ? viewport.iModel\n : /* istanbul ignore next */ UiFramework.getIModelConnection();\n const navigationAidControl = UiFramework.controls.create(\n navigationAidId,\n navigationAidId,\n { imodel, viewport }\n ) as NavigationAidControl;\n\n navigationAidControl.initialize();\n return navigationAidControl;\n}\n\n/** Properties for the [[NavigationAidHost]] React component\n * @public\n */\nexport interface NavigationAidHostProps {\n /** Navigation Aid Host minimum width. Defaults to \"64px\". */\n minWidth?: string;\n /** Navigation Aid Host minimum height. Defaults to \"64px\". */\n minHeight?: string;\n}\n\n/**\n * NavigationAidHost is a component that hosts a NavigationAid that is specific to the active content control.\n * @public\n */\nexport function NavigationAidHost(props: NavigationAidHostProps) {\n const [activeContentControl, setActiveContentControl] = React.useState(() =>\n UiFramework.content.getActiveContentControl()\n );\n const [activeContentViewport, setActiveContentViewport] = React.useState(\n () => /* istanbul ignore next */ activeContentControl?.viewport\n );\n const [navigationAidId, setNavigationAidId] = React.useState(() =>\n activeContentControl\n ? activeContentControl.navigationAidControl\n : /* istanbul ignore next */ \"\"\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleContentControlActivated = (\n args: ContentControlActivatedEventArgs\n ) => {\n setActiveContentControl(args.activeContentControl);\n setActiveContentViewport(args.activeContentControl.viewport);\n setNavigationAidId(args.activeContentControl.navigationAidControl);\n };\n\n UiFramework.frontstages.onContentControlActivatedEvent.addListener(\n handleContentControlActivated\n );\n return () => {\n UiFramework.frontstages.onContentControlActivatedEvent.removeListener(\n handleContentControlActivated\n );\n };\n }, []);\n\n const [activeViewClass, setActiveViewClass] = React.useState(() => {\n const content = UiFramework.content.getActiveContentControl();\n if (content && content.viewport) return content.viewport.view.classFullName;\n return \"\";\n });\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleViewClassFullNameChange = (\n args: ViewClassFullNameChangedEventArgs\n ) => {\n setActiveViewClass(args.newName);\n };\n\n ViewportComponentEvents.onViewClassFullNameChangedEvent.addListener(\n handleViewClassFullNameChange\n );\n return () => {\n ViewportComponentEvents.onViewClassFullNameChangedEvent.removeListener(\n handleViewClassFullNameChange\n );\n };\n }, [activeViewClass]);\n\n const navigationAidControl = React.useMemo(\n () =>\n createNavigationAidControl(\n activeContentControl,\n navigationAidId,\n activeContentViewport\n ),\n [activeContentControl, navigationAidId, activeContentViewport]\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n // istanbul ignore else\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n const divStyle: React.CSSProperties = {\n minWidth: props.minWidth\n ? /* istanbul ignore next */ props.minWidth\n : \"64px\",\n minHeight: props.minHeight\n ? /* istanbul ignore next */ props.minHeight\n : \"64px\",\n };\n\n // istanbul ignore else\n if (UiFramework.visibility.useProximityOpacity && !UiFramework.isMobile()) {\n const navigationAidOpacity = 0.3 * proximityScale + 0.7;\n divStyle.opacity = `${navigationAidOpacity}`;\n }\n\n return (\n <div style={divStyle} ref={ref}>\n {navigationAidControl && navigationAidControl.reactNode}\n </div>\n );\n}\n\n/** Properties for the [[NavigationWidgetComposer]] React components\n * @public\n */\nexport interface NavigationWidgetComposerProps extends CommonProps {\n /** Optional Horizontal Toolbar */\n horizontalToolbar?: React.ReactNode;\n /** Optional Vertical Toolbar */\n verticalToolbar?: React.ReactNode;\n /** Optional Navigation Aid host. If not specified a default host is provided which will use registered Navigation Aids and the active content control to determine which if any Navigation Aid to display. */\n navigationAidHost?: React.ReactNode;\n /** If true no navigation aid will be shown. Defaults to false. */\n hideNavigationAid?: boolean;\n}\n\n/**\n * Component that Composes a NavigationWidget typically using toolbars generated via [[ToolbarComposer]] class. The Navigation widget is shown in the top right of the content area\n * and typically holds tools to visually navigate, orient, and zoom to specific content.\n * @public\n */\nexport function NavigationWidgetComposer(props: NavigationWidgetComposerProps) {\n const {\n navigationAidHost,\n horizontalToolbar,\n verticalToolbar,\n hideNavigationAid,\n ...otherProps\n } = props;\n const [elementSet] = React.useState(new WidgetElementSet());\n const handleChildRef = React.useCallback(\n (elementRef: React.RefObject<Element>) => {\n elementSet.add(elementRef);\n },\n [elementSet]\n );\n const proximityScale = useProximityToMouse(\n elementSet,\n UiFramework.visibility.snapWidgetOpacity\n );\n /* istanbul ignore next */\n const navigationAid = hideNavigationAid\n ? undefined\n : navigationAidHost ?? <NavigationAidHost />;\n\n return (\n <WidgetOpacityContext.Provider\n value={{\n onElementRef: handleChildRef,\n proximityScale,\n }}\n >\n <NavigationArea\n navigationAid={navigationAid}\n horizontalToolbar={horizontalToolbar}\n verticalToolbar={verticalToolbar}\n {...otherProps}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n />\n </WidgetOpacityContext.Provider>\n );\n}\n"]}
@@ -326,7 +326,7 @@ class WidgetDef {
326
326
  }
327
327
  set allowedPanelTargets(targets) {
328
328
  this._allowedPanelTargets =
329
- targets && (targets === null || targets === void 0 ? void 0 : targets.length) > 0 ? targets : undefined;
329
+ targets && targets?.length > 0 ? targets : undefined;
330
330
  }
331
331
  onWidgetStateChanged() {
332
332
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetDef.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.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 Widget\n */\n\nimport type * as React from \"react\";\nimport type {\n BadgeType,\n ConditionalStringValue,\n PointProps,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { FloatingWidgetState, PanelSide } from \"@itwin/appui-layout-react\";\nimport type { ConfigurableUiControlConstructor } from \"../configurableui/ConfigurableUiControl\";\nimport {\n ConfigurableCreateInfo,\n ConfigurableUiControlType,\n} from \"../configurableui/ConfigurableUiControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { PropsHelper } from \"../utils/PropsHelper\";\nimport type { WidgetControl } from \"./WidgetControl\";\nimport type { IconSpec, Rectangle, SizeProps } from \"@itwin/core-react\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport type { WidgetConfig } from \"./WidgetConfig\";\nimport { WidgetState } from \"./WidgetState\";\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { StatusBarWidgetComposerControl } from \"./StatusBarWidgetComposerControl\";\n\nconst widgetStateNameMap = new Map<WidgetState, string>([\n [WidgetState.Closed, \"Closed\"],\n [WidgetState.Floating, \"Floating\"],\n [WidgetState.Hidden, \"Hidden\"],\n [WidgetState.Open, \"Open\"],\n [WidgetState.Unloaded, \"Unloaded\"],\n]);\n\n/** Widget State Changed Event Args interface.\n * @public\n */\nexport interface WidgetStateChangedEventArgs {\n widgetDef: WidgetDef;\n widgetState: WidgetState;\n}\n\n/** Widget State Changed Event class.\n * @public\n */\nexport class WidgetStateChangedEvent extends UiEvent<WidgetStateChangedEventArgs> {}\n\n/** @internal */\nexport interface WidgetChangedEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** @internal */\nexport interface WidgetEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** Widget type enum.\n * @public\n */\nexport enum WidgetType {\n Tool,\n Navigation,\n Rectangular,\n ToolSettings,\n StatusBar,\n}\n\n/** @internal */\nexport interface TabLocation {\n widgetId: string;\n widgetIndex: number;\n side: PanelSide;\n tabIndex: number;\n floatingWidget?: FloatingWidgetState;\n}\n\n// -----------------------------------------------------------------------------\n\n/** A Widget Definition in the 9-Zone Layout system.\n * @public\n */\nexport class WidgetDef {\n private static _sId = 0;\n private _label: string | ConditionalStringValue | StringGetter = \"\";\n private _tooltip: string | ConditionalStringValue | StringGetter = \"\";\n private _widgetReactNode: React.ReactNode;\n private _widgetControl!: WidgetControl;\n private _defaultState: WidgetState = WidgetState.Unloaded;\n private _id: string;\n private _classId: string | ConfigurableUiControlConstructor | undefined =\n undefined;\n private _priority: number = 0;\n private _isFloatingStateSupported: boolean = false;\n private _isFloatingStateWindowResizable: boolean = true;\n private _stateChanged: boolean = false;\n private _widgetType: WidgetType = WidgetType.Rectangular;\n private _applicationData?: any;\n private _icon?: IconSpec;\n private _internalData?: Map<string, any>;\n private _badge?: BadgeType;\n private _onWidgetStateChanged?: () => void;\n private _saveTransientState?: () => void;\n private _restoreTransientState?: () => boolean;\n private _preferredPanelSize: \"fit-content\" | undefined;\n private _defaultFloatingSize: SizeProps | undefined;\n private _canPopout?: boolean;\n private _floatingContainerId?: string;\n private _defaultFloatingPosition: PointProps | undefined;\n\n private _hideWithUiWhenFloating?: boolean;\n private _allowedPanelTargets?: ReadonlyArray<StagePanelLocation>;\n private _initialConfig?: WidgetConfig;\n\n private _tabLocation?: TabLocation;\n private _defaultTabLocation: TabLocation = {\n side: \"left\",\n tabIndex: 0,\n widgetId: \"\",\n widgetIndex: 0,\n };\n private _popoutBounds?: Rectangle;\n\n public get state(): WidgetState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.findWidgetDef(this.id)) {\n const currentState = frontstageDef.getWidgetCurrentState(this);\n // istanbul ignore else\n if (undefined !== currentState) return currentState;\n }\n return this.defaultState;\n }\n\n public get id(): string {\n return this._id;\n }\n public get classId(): string | ConfigurableUiControlConstructor | undefined {\n return this._classId;\n }\n public get priority(): number {\n return this._priority;\n }\n public get isFloatingStateSupported(): boolean {\n return this._isFloatingStateSupported;\n }\n public get isFloatingStateWindowResizable(): boolean {\n return this._isFloatingStateWindowResizable;\n }\n public get isToolSettings(): boolean {\n return this._widgetType === WidgetType.ToolSettings;\n }\n public get isStatusBar(): boolean {\n return this._widgetType === WidgetType.StatusBar;\n }\n public get stateChanged(): boolean {\n return this._stateChanged;\n }\n public get applicationData(): any | undefined {\n return this._applicationData;\n }\n public get isFloating(): boolean {\n return this.state === WidgetState.Floating;\n }\n public get iconSpec(): IconSpec {\n return this._icon === IconHelper.reactIconKey\n ? IconHelper.getIconReactNode(this._icon, this._internalData)\n : this._icon;\n }\n public set iconSpec(spec: IconSpec) {\n this._icon = this._internalData\n ? IconHelper.getIconData(spec, this._internalData)\n : spec;\n }\n public get badgeType(): BadgeType | undefined {\n return this._badge;\n }\n public get initialConfig(): WidgetConfig | undefined {\n return this._initialConfig;\n }\n\n public get widgetType(): WidgetType {\n return this._widgetType;\n }\n public set widgetType(type: WidgetType) {\n this._widgetType = type;\n }\n\n /** @internal */\n public get tabLocation() {\n return this._tabLocation;\n }\n public set tabLocation(tabLocation: TabLocation | undefined) {\n this._tabLocation = tabLocation;\n }\n\n /** @internal */\n public get defaultTabLocation() {\n return this._defaultTabLocation;\n }\n\n /** @internal */\n public get defaultFloatingPosition() {\n return this._defaultFloatingPosition;\n }\n public set defaultFloatingPosition(position: PointProps | undefined) {\n this._defaultFloatingPosition = position;\n }\n\n /** @internal */\n public get defaultFloatingSize() {\n return this._defaultFloatingSize;\n }\n public set defaultFloatingSize(size: SizeProps | undefined) {\n this._defaultFloatingSize = size;\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n /** @internal */\n public get popoutBounds() {\n return this._popoutBounds;\n }\n public set popoutBounds(bounds: Rectangle | undefined) {\n this._popoutBounds = bounds;\n }\n\n constructor() {\n WidgetDef._sId++;\n this._id = `Widget-${WidgetDef._sId}`;\n }\n\n /** @internal */\n public static create(\n config: WidgetConfig,\n type: WidgetType = WidgetType.Rectangular\n ) {\n const def = new WidgetDef();\n def.initializeFromConfig(config, type);\n return def;\n }\n\n private initializeFromConfig(config: WidgetConfig, type: WidgetType) {\n this._widgetType = type;\n this._initialConfig = config;\n this._id = config.id;\n\n if (config.label) this.setLabel(config.label);\n else if (config.labelKey)\n this._label = UiFramework.localization.getLocalizedString(\n config.labelKey\n );\n\n this.setCanPopout(config.canPopout);\n\n const canFloat = config.canFloat;\n this._isFloatingStateSupported = !!canFloat;\n if (typeof canFloat === \"object\") {\n this.setFloatingContainerId(canFloat.containerId);\n this.defaultFloatingPosition = canFloat.defaultPosition;\n this._hideWithUiWhenFloating = !!canFloat.hideWithUi;\n this._isFloatingStateWindowResizable = !!canFloat.isResizable;\n this._defaultFloatingSize = canFloat.defaultSize;\n }\n\n this.allowedPanelTargets = config.allowedPanels;\n\n if (config.priority !== undefined) this._priority = config.priority;\n\n if (config.tooltip) this.setTooltip(config.tooltip);\n else if (config.tooltipKey)\n this._tooltip = UiFramework.localization.getLocalizedString(\n config.tooltipKey\n );\n\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n }\n\n this._widgetReactNode = config.content;\n this._icon = config.icon;\n\n // istanbul ignore next\n if (config.icon !== undefined && this._icon === undefined)\n this._icon = config.icon;\n\n if (config.badge !== undefined) this._badge = config.badge;\n\n this._preferredPanelSize = config.preferredPanelSize;\n }\n\n /** @alpha */\n public get preferredPanelSize() {\n return this._preferredPanelSize;\n }\n\n /** Get the label string */\n public get label(): string {\n return PropsHelper.getStringFromSpec(this._label);\n }\n\n /** Set the label.\n * @param v A string or a function to get the string.\n */\n public setLabel(v: string | ConditionalStringValue | StringGetter) {\n if (this._label === v) return;\n this._label = v;\n InternalFrontstageManager.onWidgetLabelChangedEvent.emit({\n widgetDef: this,\n });\n }\n\n /** Get the tooltip string */\n public get tooltip(): string {\n return PropsHelper.getStringFromSpec(this._tooltip);\n }\n\n /** Set the tooltip.\n * @param v A string or a function to get the string.\n */\n public setTooltip(v: string | ConditionalStringValue | StringGetter) {\n this._tooltip = v;\n }\n\n public get widgetControl(): WidgetControl | undefined {\n return this._widgetControl;\n }\n\n public getWidgetControl(\n type: ConfigurableUiControlType\n ): WidgetControl | undefined {\n if (!this._widgetControl && this.classId) {\n let usedClassId: string = \"\";\n\n if (typeof this.classId === \"string\") {\n // istanbul ignore else\n if (this.classId)\n this._widgetControl = UiFramework.controls.create(\n this.classId,\n this.id,\n this.applicationData\n ) as WidgetControl;\n usedClassId = this.classId;\n } else {\n const info = new ConfigurableCreateInfo(\n this.classId.name,\n this.id,\n this.id\n );\n usedClassId = this.classId.name;\n this._widgetControl = new this.classId(\n info,\n this.applicationData\n ) as WidgetControl;\n }\n\n // istanbul ignore else\n if (this._widgetControl) {\n if (this._widgetControl.getType() !== type) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `getWidgetControl: '${usedClassId}' is NOT a ${type}; it is a ${this._widgetControl.getType()}`\n );\n }\n\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n }\n\n // istanbul ignore next - To avoid breaking API changes, if a WidgetControl is not specified for a status bar use Default one.\n if (!this._widgetControl && this.isStatusBar) {\n const info = new ConfigurableCreateInfo(\n \"StatusBarWidgetComposerControl\",\n StatusBarWidgetComposerControl.controlId,\n StatusBarWidgetComposerControl.controlId\n );\n this._widgetControl = new StatusBarWidgetComposerControl(info, undefined);\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n\n return this._widgetControl;\n }\n\n public get reactNode(): React.ReactNode {\n if (!this._widgetReactNode) {\n const widgetControl = this.getWidgetControl(\n ConfigurableUiControlType.Widget\n );\n\n // istanbul ignore else\n if (widgetControl && widgetControl.reactNode)\n this._widgetReactNode = widgetControl.reactNode;\n }\n\n return this._widgetReactNode;\n }\n\n public set reactNode(node: React.ReactNode) {\n this._widgetReactNode = node;\n }\n\n public setWidgetState(newState: WidgetState): void {\n if (this.state === newState) return;\n this._stateChanged = true;\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({\n widgetDef: this,\n widgetState: newState,\n });\n this.onWidgetStateChanged();\n }\n\n public setCanPopout(value: boolean | undefined) {\n this._canPopout = value;\n }\n\n public get canPopout(): boolean | undefined {\n return this._canPopout;\n }\n\n public setFloatingContainerId(value: string | undefined) {\n this._floatingContainerId = value;\n }\n\n public get floatingContainerId(): string | undefined {\n return this._floatingContainerId;\n }\n\n public canOpen(): boolean {\n return this.isFloating || this.isActive;\n }\n\n public get isVisible(): boolean {\n return WidgetState.Hidden !== this.state;\n }\n\n public get activeState(): WidgetState {\n return this.state;\n }\n\n public get isActive(): boolean {\n return WidgetState.Open === this.activeState;\n }\n\n public set hideWithUiWhenFloating(hide: boolean | undefined) {\n this._hideWithUiWhenFloating = !!hide;\n }\n\n public get hideWithUiWhenFloating(): boolean {\n return !!this._hideWithUiWhenFloating;\n }\n\n public get allowedPanelTargets():\n | ReadonlyArray<StagePanelLocation>\n | undefined {\n return this._allowedPanelTargets;\n }\n\n public set allowedPanelTargets(\n targets: ReadonlyArray<StagePanelLocation> | undefined\n ) {\n this._allowedPanelTargets =\n targets && targets?.length > 0 ? targets : undefined;\n }\n\n public onWidgetStateChanged(): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.widgetControl &&\n UiFramework.postTelemetry(\n `Widget ${\n this.widgetControl.classId\n } state set to ${widgetStateNameMap.get(this.state)}`,\n \"35402486-9839-441E-A5C7-46D546142D11\"\n );\n this.widgetControl && this.widgetControl.onWidgetStateChanged();\n // istanbul ignore next\n this._onWidgetStateChanged && this._onWidgetStateChanged();\n }\n\n /** Overwrite to save transient DOM state (i.e. scroll offset). */\n public saveTransientState(): void {\n this.widgetControl && this.widgetControl.saveTransientState();\n this._saveTransientState && this._saveTransientState();\n }\n\n /** Overwrite to restore transient DOM state.\n * @note Return true if the state is restored or the Widget will remount.\n */\n public restoreTransientState(): boolean {\n let result = true;\n if (this.widgetControl || this._restoreTransientState) {\n let result1 = false,\n result2 = false;\n if (this.widgetControl)\n result1 = this.widgetControl.restoreTransientState();\n if (this._restoreTransientState) result2 = this._restoreTransientState();\n result = !(result1 || result2);\n }\n return result;\n }\n\n /** Opens the widget and makes it visible to the user.\n * I.e. opens the stage panel or brings the floating widget to front of the screen.\n * @public\n */\n public show() {\n InternalFrontstageManager.onWidgetShowEvent.emit({ widgetDef: this });\n }\n\n /** Opens the widget and expands it to fill full size of the stage panel.\n * @public\n */\n public expand() {\n InternalFrontstageManager.onWidgetExpandEvent.emit({ widgetDef: this });\n }\n}\n"]}
1
+ {"version":3,"file":"WidgetDef.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.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 Widget\n */\n\nimport type * as React from \"react\";\nimport type {\n BadgeType,\n ConditionalStringValue,\n PointProps,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { FloatingWidgetState, PanelSide } from \"@itwin/appui-layout-react\";\nimport type { ConfigurableUiControlConstructor } from \"../configurableui/ConfigurableUiControl\";\nimport {\n ConfigurableCreateInfo,\n ConfigurableUiControlType,\n} from \"../configurableui/ConfigurableUiControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { PropsHelper } from \"../utils/PropsHelper\";\nimport type { WidgetControl } from \"./WidgetControl\";\nimport type { IconSpec, Rectangle, SizeProps } from \"@itwin/core-react\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport type { WidgetConfig } from \"./WidgetConfig\";\nimport { WidgetState } from \"./WidgetState\";\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { StatusBarWidgetComposerControl } from \"./StatusBarWidgetComposerControl\";\n\nconst widgetStateNameMap = new Map<WidgetState, string>([\n [WidgetState.Closed, \"Closed\"],\n [WidgetState.Floating, \"Floating\"],\n [WidgetState.Hidden, \"Hidden\"],\n [WidgetState.Open, \"Open\"],\n [WidgetState.Unloaded, \"Unloaded\"],\n]);\n\n/** Widget State Changed Event Args interface.\n * @public\n */\nexport interface WidgetStateChangedEventArgs {\n widgetDef: WidgetDef;\n widgetState: WidgetState;\n}\n\n/** Widget State Changed Event class.\n * @public\n */\nexport class WidgetStateChangedEvent extends UiEvent<WidgetStateChangedEventArgs> {}\n\n/** @internal */\nexport interface WidgetChangedEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** @internal */\nexport interface WidgetEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** Widget type enum.\n * @public\n */\nexport enum WidgetType {\n Tool,\n Navigation,\n Rectangular,\n ToolSettings,\n StatusBar,\n}\n\n/** @internal */\nexport interface TabLocation {\n widgetId: string;\n widgetIndex: number;\n side: PanelSide;\n tabIndex: number;\n floatingWidget?: FloatingWidgetState;\n}\n\n// -----------------------------------------------------------------------------\n\n/** A Widget Definition in the 9-Zone Layout system.\n * @public\n */\nexport class WidgetDef {\n private static _sId = 0;\n private _label: string | ConditionalStringValue | StringGetter = \"\";\n private _tooltip: string | ConditionalStringValue | StringGetter = \"\";\n private _widgetReactNode: React.ReactNode;\n private _widgetControl!: WidgetControl;\n private _defaultState: WidgetState = WidgetState.Unloaded;\n private _id: string;\n private _classId: string | ConfigurableUiControlConstructor | undefined =\n undefined;\n private _priority: number = 0;\n private _isFloatingStateSupported: boolean = false;\n private _isFloatingStateWindowResizable: boolean = true;\n private _stateChanged: boolean = false;\n private _widgetType: WidgetType = WidgetType.Rectangular;\n private _applicationData?: any;\n private _icon?: IconSpec;\n private _internalData?: Map<string, any>;\n private _badge?: BadgeType;\n private _onWidgetStateChanged?: () => void;\n private _saveTransientState?: () => void;\n private _restoreTransientState?: () => boolean;\n private _preferredPanelSize: \"fit-content\" | undefined;\n private _defaultFloatingSize: SizeProps | undefined;\n private _canPopout?: boolean;\n private _floatingContainerId?: string;\n private _defaultFloatingPosition: PointProps | undefined;\n\n private _hideWithUiWhenFloating?: boolean;\n private _allowedPanelTargets?: ReadonlyArray<StagePanelLocation>;\n private _initialConfig?: WidgetConfig;\n\n private _tabLocation?: TabLocation;\n private _defaultTabLocation: TabLocation = {\n side: \"left\",\n tabIndex: 0,\n widgetId: \"\",\n widgetIndex: 0,\n };\n private _popoutBounds?: Rectangle;\n\n public get state(): WidgetState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.findWidgetDef(this.id)) {\n const currentState = frontstageDef.getWidgetCurrentState(this);\n // istanbul ignore else\n if (undefined !== currentState) return currentState;\n }\n return this.defaultState;\n }\n\n public get id(): string {\n return this._id;\n }\n public get classId(): string | ConfigurableUiControlConstructor | undefined {\n return this._classId;\n }\n public get priority(): number {\n return this._priority;\n }\n public get isFloatingStateSupported(): boolean {\n return this._isFloatingStateSupported;\n }\n public get isFloatingStateWindowResizable(): boolean {\n return this._isFloatingStateWindowResizable;\n }\n public get isToolSettings(): boolean {\n return this._widgetType === WidgetType.ToolSettings;\n }\n public get isStatusBar(): boolean {\n return this._widgetType === WidgetType.StatusBar;\n }\n public get stateChanged(): boolean {\n return this._stateChanged;\n }\n public get applicationData(): any | undefined {\n return this._applicationData;\n }\n public get isFloating(): boolean {\n return this.state === WidgetState.Floating;\n }\n public get iconSpec(): IconSpec {\n return this._icon === IconHelper.reactIconKey\n ? IconHelper.getIconReactNode(this._icon, this._internalData)\n : this._icon;\n }\n public set iconSpec(spec: IconSpec) {\n this._icon = this._internalData\n ? IconHelper.getIconData(spec, this._internalData)\n : spec;\n }\n public get badgeType(): BadgeType | undefined {\n return this._badge;\n }\n public get initialConfig(): WidgetConfig | undefined {\n return this._initialConfig;\n }\n\n public get widgetType(): WidgetType {\n return this._widgetType;\n }\n public set widgetType(type: WidgetType) {\n this._widgetType = type;\n }\n\n /** @internal */\n public get tabLocation() {\n return this._tabLocation;\n }\n public set tabLocation(tabLocation: TabLocation | undefined) {\n this._tabLocation = tabLocation;\n }\n\n /** @internal */\n public get defaultTabLocation() {\n return this._defaultTabLocation;\n }\n\n /** @internal */\n public get defaultFloatingPosition() {\n return this._defaultFloatingPosition;\n }\n public set defaultFloatingPosition(position: PointProps | undefined) {\n this._defaultFloatingPosition = position;\n }\n\n /** @internal */\n public get defaultFloatingSize() {\n return this._defaultFloatingSize;\n }\n public set defaultFloatingSize(size: SizeProps | undefined) {\n this._defaultFloatingSize = size;\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n /** @internal */\n public get popoutBounds() {\n return this._popoutBounds;\n }\n public set popoutBounds(bounds: Rectangle | undefined) {\n this._popoutBounds = bounds;\n }\n\n constructor() {\n WidgetDef._sId++;\n this._id = `Widget-${WidgetDef._sId}`;\n }\n\n /** @internal */\n public static create(\n config: WidgetConfig,\n type: WidgetType = WidgetType.Rectangular\n ) {\n const def = new WidgetDef();\n def.initializeFromConfig(config, type);\n return def;\n }\n\n private initializeFromConfig(config: WidgetConfig, type: WidgetType) {\n this._widgetType = type;\n this._initialConfig = config;\n this._id = config.id;\n\n if (config.label) this.setLabel(config.label);\n else if (config.labelKey)\n this._label = UiFramework.localization.getLocalizedString(\n config.labelKey\n );\n\n this.setCanPopout(config.canPopout);\n\n const canFloat = config.canFloat;\n this._isFloatingStateSupported = !!canFloat;\n if (typeof canFloat === \"object\") {\n this.setFloatingContainerId(canFloat.containerId);\n this.defaultFloatingPosition = canFloat.defaultPosition;\n this._hideWithUiWhenFloating = !!canFloat.hideWithUi;\n this._isFloatingStateWindowResizable = !!canFloat.isResizable;\n this._defaultFloatingSize = canFloat.defaultSize;\n }\n\n this.allowedPanelTargets = config.allowedPanels;\n\n if (config.priority !== undefined) this._priority = config.priority;\n\n if (config.tooltip) this.setTooltip(config.tooltip);\n else if (config.tooltipKey)\n this._tooltip = UiFramework.localization.getLocalizedString(\n config.tooltipKey\n );\n\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n }\n\n this._widgetReactNode = config.content;\n this._icon = config.icon;\n\n // istanbul ignore next\n if (config.icon !== undefined && this._icon === undefined)\n this._icon = config.icon;\n\n if (config.badge !== undefined) this._badge = config.badge;\n\n this._preferredPanelSize = config.preferredPanelSize;\n }\n\n /** @alpha */\n public get preferredPanelSize() {\n return this._preferredPanelSize;\n }\n\n /** Get the label string */\n public get label(): string {\n return PropsHelper.getStringFromSpec(this._label);\n }\n\n /** Set the label.\n * @param v A string or a function to get the string.\n */\n public setLabel(v: string | ConditionalStringValue | StringGetter) {\n if (this._label === v) return;\n this._label = v;\n InternalFrontstageManager.onWidgetLabelChangedEvent.emit({\n widgetDef: this,\n });\n }\n\n /** Get the tooltip string */\n public get tooltip(): string {\n return PropsHelper.getStringFromSpec(this._tooltip);\n }\n\n /** Set the tooltip.\n * @param v A string or a function to get the string.\n */\n public setTooltip(v: string | ConditionalStringValue | StringGetter) {\n this._tooltip = v;\n }\n\n public get widgetControl(): WidgetControl | undefined {\n return this._widgetControl;\n }\n\n public getWidgetControl(\n type: ConfigurableUiControlType\n ): WidgetControl | undefined {\n if (!this._widgetControl && this.classId) {\n let usedClassId: string = \"\";\n\n if (typeof this.classId === \"string\") {\n // istanbul ignore else\n if (this.classId)\n this._widgetControl = UiFramework.controls.create(\n this.classId,\n this.id,\n this.applicationData\n ) as WidgetControl;\n usedClassId = this.classId;\n } else {\n const info = new ConfigurableCreateInfo(\n this.classId.name,\n this.id,\n this.id\n );\n usedClassId = this.classId.name;\n this._widgetControl = new this.classId(\n info,\n this.applicationData\n ) as WidgetControl;\n }\n\n // istanbul ignore else\n if (this._widgetControl) {\n if (this._widgetControl.getType() !== type) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `getWidgetControl: '${usedClassId}' is NOT a ${type}; it is a ${this._widgetControl.getType()}`\n );\n }\n\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n }\n\n // istanbul ignore next - To avoid breaking API changes, if a WidgetControl is not specified for a status bar use Default one.\n if (!this._widgetControl && this.isStatusBar) {\n const info = new ConfigurableCreateInfo(\n \"StatusBarWidgetComposerControl\",\n StatusBarWidgetComposerControl.controlId,\n StatusBarWidgetComposerControl.controlId\n );\n this._widgetControl = new StatusBarWidgetComposerControl(info, undefined);\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n\n return this._widgetControl;\n }\n\n public get reactNode(): React.ReactNode {\n if (!this._widgetReactNode) {\n const widgetControl = this.getWidgetControl(\n ConfigurableUiControlType.Widget\n );\n\n // istanbul ignore else\n if (widgetControl && widgetControl.reactNode)\n this._widgetReactNode = widgetControl.reactNode;\n }\n\n return this._widgetReactNode;\n }\n\n public set reactNode(node: React.ReactNode) {\n this._widgetReactNode = node;\n }\n\n public setWidgetState(newState: WidgetState): void {\n if (this.state === newState) return;\n this._stateChanged = true;\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({\n widgetDef: this,\n widgetState: newState,\n });\n this.onWidgetStateChanged();\n }\n\n public setCanPopout(value: boolean | undefined) {\n this._canPopout = value;\n }\n\n public get canPopout(): boolean | undefined {\n return this._canPopout;\n }\n\n public setFloatingContainerId(value: string | undefined) {\n this._floatingContainerId = value;\n }\n\n public get floatingContainerId(): string | undefined {\n return this._floatingContainerId;\n }\n\n public canOpen(): boolean {\n return this.isFloating || this.isActive;\n }\n\n public get isVisible(): boolean {\n return WidgetState.Hidden !== this.state;\n }\n\n public get activeState(): WidgetState {\n return this.state;\n }\n\n public get isActive(): boolean {\n return WidgetState.Open === this.activeState;\n }\n\n public set hideWithUiWhenFloating(hide: boolean | undefined) {\n this._hideWithUiWhenFloating = !!hide;\n }\n\n public get hideWithUiWhenFloating(): boolean {\n return !!this._hideWithUiWhenFloating;\n }\n\n public get allowedPanelTargets():\n | ReadonlyArray<StagePanelLocation>\n | undefined {\n return this._allowedPanelTargets;\n }\n\n public set allowedPanelTargets(\n targets: ReadonlyArray<StagePanelLocation> | undefined\n ) {\n this._allowedPanelTargets =\n targets && targets?.length > 0 ? targets : undefined;\n }\n\n public onWidgetStateChanged(): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.widgetControl &&\n UiFramework.postTelemetry(\n `Widget ${\n this.widgetControl.classId\n } state set to ${widgetStateNameMap.get(this.state)}`,\n \"35402486-9839-441E-A5C7-46D546142D11\"\n );\n this.widgetControl && this.widgetControl.onWidgetStateChanged();\n // istanbul ignore next\n this._onWidgetStateChanged && this._onWidgetStateChanged();\n }\n\n /** Overwrite to save transient DOM state (i.e. scroll offset). */\n public saveTransientState(): void {\n this.widgetControl && this.widgetControl.saveTransientState();\n this._saveTransientState && this._saveTransientState();\n }\n\n /** Overwrite to restore transient DOM state.\n * @note Return true if the state is restored or the Widget will remount.\n */\n public restoreTransientState(): boolean {\n let result = true;\n if (this.widgetControl || this._restoreTransientState) {\n let result1 = false,\n result2 = false;\n if (this.widgetControl)\n result1 = this.widgetControl.restoreTransientState();\n if (this._restoreTransientState) result2 = this._restoreTransientState();\n result = !(result1 || result2);\n }\n return result;\n }\n\n /** Opens the widget and makes it visible to the user.\n * I.e. opens the stage panel or brings the floating widget to front of the screen.\n * @public\n */\n public show() {\n InternalFrontstageManager.onWidgetShowEvent.emit({ widgetDef: this });\n }\n\n /** Opens the widget and expands it to fill full size of the stage panel.\n * @public\n */\n public expand() {\n InternalFrontstageManager.onWidgetExpandEvent.emit({ widgetDef: this });\n }\n}\n"]}
@@ -55,7 +55,6 @@ class WidgetHost {
55
55
  * @internal
56
56
  */
57
57
  updateDynamicWidgetDefs(stageId, stageUsage, location, section, allStageWidgetDefs) {
58
- var _a;
59
58
  // get widgetDefs not already in allStageWidgetDefs and add them
60
59
  const uniqueWidgets = this._widgetDefs.filter((widgetDef) => {
61
60
  return !allStageWidgetDefs.find((wDef) => wDef.id === widgetDef.id);
@@ -64,9 +63,9 @@ class WidgetHost {
64
63
  let dynamicWidgetDefs;
65
64
  if (section !== undefined) {
66
65
  dynamicWidgetDefs =
67
- (_a = UiFramework_1.UiFramework.widgetManager.getWidgetDefs(stageId, stageUsage, location, section)) !== null && _a !== void 0 ? _a : [];
66
+ UiFramework_1.UiFramework.widgetManager.getWidgetDefs(stageId, stageUsage, location, section) ?? [];
68
67
  }
69
- const uniqueDynamicWidgetDefs = dynamicWidgetDefs === null || dynamicWidgetDefs === void 0 ? void 0 : dynamicWidgetDefs.filter((widgetDef) => {
68
+ const uniqueDynamicWidgetDefs = dynamicWidgetDefs?.filter((widgetDef) => {
70
69
  return !allStageWidgetDefs.find((wDef) => wDef.id === widgetDef.id);
71
70
  });
72
71
  // Now that we no longer support a middle panel section, yet we have existing API that allows a middle section to be
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetHost.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetHost.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 Widget\n */\n\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport type { StagePanelSection } from \"../stagepanels/StagePanelSection\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { WidgetDef } from \"./WidgetDef\";\n\n/**\n * A WidgetHost represents a definition that hosts one or most Widgets in a Frontstage.\n * @public\n */\nexport class WidgetHost {\n private _widgetDefs: WidgetDef[] = new Array<WidgetDef>();\n private _dynamicWidgetDefs: ReadonlyArray<WidgetDef> | undefined;\n private _sortedWidgetDefs: ReadonlyArray<WidgetDef> = [];\n\n /** Constructor for WidgetHost.\n */\n constructor() {}\n\n /** Adds a WidgetDef to the list of Widgets.\n * @param widgetDef Definition of the Widget to add\n */\n public addWidgetDef(widgetDef: WidgetDef) {\n this._widgetDefs.push(widgetDef);\n this.sortWidgetDefs();\n }\n\n /** Gets the list of Widgets. */\n public get widgetDefs(): ReadonlyArray<WidgetDef> {\n return this._sortedWidgetDefs;\n }\n\n /** Gets the number of Widgets. */\n public get widgetCount(): number {\n return this.widgetDefs.length;\n }\n\n /** If there is only one Widget in the Panel, gets the single WidgetDef.\n * @returns The single WidgetDef if there is only one Widget; otherwise, undefined is returned.\n */\n public getSingleWidgetDef(): WidgetDef | undefined {\n if (this.widgetCount === 1) {\n return this.widgetDefs[0];\n }\n return undefined;\n }\n\n /** Finds a WidgetDef with a given Id.\n * @param id Id of the WidgetDef to find\n * @returns The WidgetDef if found; otherwise, undefined is returned.\n */\n public findWidgetDef(id: string): WidgetDef | undefined {\n return this.widgetDefs.find((widgetDef: WidgetDef) => widgetDef.id === id);\n }\n\n /** Updates the WidgetHost with dynamic widgets\n * @internal\n */\n public updateDynamicWidgetDefs(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section: StagePanelSection | undefined,\n allStageWidgetDefs: WidgetDef[]\n ): void {\n // get widgetDefs not already in allStageWidgetDefs and add them\n const uniqueWidgets = this._widgetDefs.filter((widgetDef) => {\n return !allStageWidgetDefs.find((wDef) => wDef.id === widgetDef.id);\n });\n\n allStageWidgetDefs.push(...uniqueWidgets);\n\n let dynamicWidgetDefs: readonly WidgetDef[] | undefined;\n if (section !== undefined) {\n dynamicWidgetDefs =\n UiFramework.widgetManager.getWidgetDefs(\n stageId,\n stageUsage,\n location,\n section\n ) ?? [];\n }\n\n const uniqueDynamicWidgetDefs = dynamicWidgetDefs?.filter((widgetDef) => {\n return !allStageWidgetDefs.find((wDef) => wDef.id === widgetDef.id);\n });\n\n // Now that we no longer support a middle panel section, yet we have existing API that allows a middle section to be\n // defined, the following is needed to combining middle and end panel section widgets into a single set of widgets\n if (uniqueDynamicWidgetDefs) {\n allStageWidgetDefs.push(...uniqueDynamicWidgetDefs);\n this._dynamicWidgetDefs = [...uniqueDynamicWidgetDefs];\n }\n this.sortWidgetDefs();\n }\n\n /** Sorts all widgets */\n private sortWidgetDefs(): void {\n let sortedWidgetDefs = [];\n if (this._dynamicWidgetDefs)\n sortedWidgetDefs = this._widgetDefs.concat(this._dynamicWidgetDefs);\n else sortedWidgetDefs = this._widgetDefs.slice();\n\n sortedWidgetDefs.sort((a, b) => a.priority - b.priority);\n\n this._sortedWidgetDefs = sortedWidgetDefs;\n }\n}\n"]}
1
+ {"version":3,"file":"WidgetHost.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetHost.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 Widget\n */\n\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport type { StagePanelSection } from \"../stagepanels/StagePanelSection\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { WidgetDef } from \"./WidgetDef\";\n\n/**\n * A WidgetHost represents a definition that hosts one or most Widgets in a Frontstage.\n * @public\n */\nexport class WidgetHost {\n private _widgetDefs: WidgetDef[] = new Array<WidgetDef>();\n private _dynamicWidgetDefs: ReadonlyArray<WidgetDef> | undefined;\n private _sortedWidgetDefs: ReadonlyArray<WidgetDef> = [];\n\n /** Constructor for WidgetHost.\n */\n constructor() {}\n\n /** Adds a WidgetDef to the list of Widgets.\n * @param widgetDef Definition of the Widget to add\n */\n public addWidgetDef(widgetDef: WidgetDef) {\n this._widgetDefs.push(widgetDef);\n this.sortWidgetDefs();\n }\n\n /** Gets the list of Widgets. */\n public get widgetDefs(): ReadonlyArray<WidgetDef> {\n return this._sortedWidgetDefs;\n }\n\n /** Gets the number of Widgets. */\n public get widgetCount(): number {\n return this.widgetDefs.length;\n }\n\n /** If there is only one Widget in the Panel, gets the single WidgetDef.\n * @returns The single WidgetDef if there is only one Widget; otherwise, undefined is returned.\n */\n public getSingleWidgetDef(): WidgetDef | undefined {\n if (this.widgetCount === 1) {\n return this.widgetDefs[0];\n }\n return undefined;\n }\n\n /** Finds a WidgetDef with a given Id.\n * @param id Id of the WidgetDef to find\n * @returns The WidgetDef if found; otherwise, undefined is returned.\n */\n public findWidgetDef(id: string): WidgetDef | undefined {\n return this.widgetDefs.find((widgetDef: WidgetDef) => widgetDef.id === id);\n }\n\n /** Updates the WidgetHost with dynamic widgets\n * @internal\n */\n public updateDynamicWidgetDefs(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section: StagePanelSection | undefined,\n allStageWidgetDefs: WidgetDef[]\n ): void {\n // get widgetDefs not already in allStageWidgetDefs and add them\n const uniqueWidgets = this._widgetDefs.filter((widgetDef) => {\n return !allStageWidgetDefs.find((wDef) => wDef.id === widgetDef.id);\n });\n\n allStageWidgetDefs.push(...uniqueWidgets);\n\n let dynamicWidgetDefs: readonly WidgetDef[] | undefined;\n if (section !== undefined) {\n dynamicWidgetDefs =\n UiFramework.widgetManager.getWidgetDefs(\n stageId,\n stageUsage,\n location,\n section\n ) ?? [];\n }\n\n const uniqueDynamicWidgetDefs = dynamicWidgetDefs?.filter((widgetDef) => {\n return !allStageWidgetDefs.find((wDef) => wDef.id === widgetDef.id);\n });\n\n // Now that we no longer support a middle panel section, yet we have existing API that allows a middle section to be\n // defined, the following is needed to combining middle and end panel section widgets into a single set of widgets\n if (uniqueDynamicWidgetDefs) {\n allStageWidgetDefs.push(...uniqueDynamicWidgetDefs);\n this._dynamicWidgetDefs = [...uniqueDynamicWidgetDefs];\n }\n this.sortWidgetDefs();\n }\n\n /** Sorts all widgets */\n private sortWidgetDefs(): void {\n let sortedWidgetDefs = [];\n if (this._dynamicWidgetDefs)\n sortedWidgetDefs = this._widgetDefs.concat(this._dynamicWidgetDefs);\n else sortedWidgetDefs = this._widgetDefs.slice();\n\n sortedWidgetDefs.sort((a, b) => a.priority - b.priority);\n\n this._sortedWidgetDefs = sortedWidgetDefs;\n }\n}\n"]}
@@ -138,7 +138,6 @@ class UiFramework {
138
138
  * @internal
139
139
  */
140
140
  static async initializeEx(store, frameworkStateKey) {
141
- var _a;
142
141
  if (UiFramework._initialized) {
143
142
  Logger.logInfo(UiFramework.loggerCategory(UiFramework), `UiFramework.initialize already called`);
144
143
  return;
@@ -152,7 +151,7 @@ class UiFramework {
152
151
  if (frameworkStateKey && store)
153
152
  UiFramework._frameworkStateKeyInStore = frameworkStateKey;
154
153
  // set up namespace and register all tools from package
155
- const frameworkNamespace = (_a = IModelApp.localization) === null || _a === void 0 ? void 0 : _a.registerNamespace(UiFramework.localizationNamespace);
154
+ const frameworkNamespace = IModelApp.localization?.registerNamespace(UiFramework.localizationNamespace);
156
155
  [
157
156
  restoreLayoutTools,
158
157
  keyinPaletteTools,
@@ -178,13 +177,12 @@ class UiFramework {
178
177
  }
179
178
  /** Un-registers the UiFramework internationalization service namespace */
180
179
  static terminate() {
181
- var _a;
182
180
  UiFramework._store = undefined;
183
181
  UiFramework._frameworkStateKeyInStore = "frameworkState";
184
182
  if (StateManager.isInitialized(true))
185
183
  StateManager.clearStore();
186
184
  // istanbul ignore next
187
- (_a = IModelApp.localization) === null || _a === void 0 ? void 0 : _a.unregisterNamespace(UiFramework.localizationNamespace);
185
+ IModelApp.localization?.unregisterNamespace(UiFramework.localizationNamespace);
188
186
  UiFramework._backstageManager = undefined;
189
187
  UiFramework._widgetManager = undefined;
190
188
  UiFramework._hideIsolateEmphasizeActionHandler = undefined;
@@ -337,10 +335,9 @@ class UiFramework {
337
335
  UiFramework.dispatchActionToStore(SessionStateActionId.SetActiveIModelId, iModelId);
338
336
  }
339
337
  static setIModelConnection(iModelConnection, immediateSync = false) {
340
- var _a;
341
338
  const oldConnection = UiFramework.getIModelConnection();
342
339
  if (oldConnection !== iModelConnection) {
343
- if (oldConnection === null || oldConnection === void 0 ? void 0 : oldConnection.iModelId)
340
+ if (oldConnection?.iModelId)
344
341
  InternalFrontstageManager.clearFrontstageDefsForIModelId(oldConnection.iModelId);
345
342
  oldConnection &&
346
343
  undefined === iModelConnection &&
@@ -349,7 +346,7 @@ class UiFramework {
349
346
  SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);
350
347
  UiFramework.dispatchActionToStore(SessionStateActionId.SetIModelConnection, iModelConnection, immediateSync);
351
348
  }
352
- UiFramework.setActiveIModelId((_a = iModelConnection === null || iModelConnection === void 0 ? void 0 : iModelConnection.iModelId) !== null && _a !== void 0 ? _a : "");
349
+ UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? "");
353
350
  }
354
351
  static getIModelConnection() {
355
352
  return UiFramework.frameworkState
@@ -549,7 +546,6 @@ class UiFramework {
549
546
  */
550
547
  // istanbul ignore next
551
548
  static async postTelemetry(eventName, eventId, iTwinId, iModeId, changeSetId, time, additionalProperties) {
552
- var _a;
553
549
  if (!IModelApp.authorizationClient)
554
550
  return;
555
551
  try {
@@ -558,7 +554,7 @@ class UiFramework {
558
554
  activityId: "",
559
555
  applicationId: IModelApp.applicationId,
560
556
  applicationVersion: IModelApp.applicationVersion,
561
- accessToken: (_a = (await IModelApp.authorizationClient.getAccessToken())) !== null && _a !== void 0 ? _a : "",
557
+ accessToken: (await IModelApp.authorizationClient.getAccessToken()) ?? "",
562
558
  };
563
559
  const telemetryEvent = new TelemetryEvent(eventName, eventId, iTwinId, iModeId, changeSetId, time, additionalProperties);
564
560
  await IModelApp.telemetry.postTelemetry(activity, telemetryEvent);