@itwin/appui-react 4.10.0-dev.1 → 4.10.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 (431) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +2 -2
  3. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  4. package/lib/cjs/appui-react/accudraw/Calculator.js +9 -9
  5. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  6. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/content/ContentGroup.js +2 -2
  8. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  9. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/content/IModelViewport.js +2 -2
  11. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  12. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +2 -2
  13. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  14. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +1 -1
  15. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  16. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  17. package/lib/cjs/appui-react/{layout/widget-panels/CenterContent.scss → layers.scss} +6 -2
  18. package/lib/cjs/appui-react/layout/StandardLayout.d.ts +24 -0
  19. package/lib/cjs/appui-react/layout/StandardLayout.d.ts.map +1 -0
  20. package/lib/cjs/appui-react/layout/StandardLayout.js +56 -0
  21. package/lib/cjs/appui-react/layout/StandardLayout.js.map +1 -0
  22. package/lib/cjs/appui-react/layout/StandardLayout.scss +94 -0
  23. package/lib/cjs/appui-react/layout/backstage/Backstage.js +1 -1
  24. package/lib/cjs/appui-react/layout/backstage/Backstage.js.map +1 -1
  25. package/lib/cjs/appui-react/layout/base/SafeAreaInsets.js +4 -4
  26. package/lib/cjs/appui-react/layout/base/SafeAreaInsets.js.map +1 -1
  27. package/lib/cjs/appui-react/layout/outline/PanelOutline.scss +1 -10
  28. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js +1 -0
  30. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  31. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +5 -0
  33. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  34. package/lib/cjs/appui-react/layout/state/internal/ToolSettingsStateHelpers.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/layout/state/internal/ToolSettingsStateHelpers.js +6 -0
  36. package/lib/cjs/appui-react/layout/state/internal/ToolSettingsStateHelpers.js.map +1 -1
  37. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +2 -0
  39. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  40. package/lib/cjs/appui-react/layout/target/PanelTargets.scss +2 -0
  41. package/lib/cjs/appui-react/layout/tool-settings/Docked.d.ts +12 -6
  42. package/lib/cjs/appui-react/layout/tool-settings/Docked.d.ts.map +1 -1
  43. package/lib/cjs/appui-react/layout/tool-settings/Docked.js +52 -21
  44. package/lib/cjs/appui-react/layout/tool-settings/Docked.js.map +1 -1
  45. package/lib/cjs/appui-react/layout/tool-settings/Docked.scss +15 -23
  46. package/lib/cjs/appui-react/layout/tool-settings/Handle.d.ts.map +1 -1
  47. package/lib/cjs/appui-react/layout/tool-settings/Handle.js +3 -1
  48. package/lib/cjs/appui-react/layout/tool-settings/Handle.js.map +1 -1
  49. package/lib/cjs/appui-react/layout/tool-settings/Handle.scss +6 -12
  50. package/lib/cjs/appui-react/layout/tool-settings/Overflow.d.ts.map +1 -1
  51. package/lib/cjs/appui-react/layout/tool-settings/Overflow.js +4 -5
  52. package/lib/cjs/appui-react/layout/tool-settings/Overflow.js.map +1 -1
  53. package/lib/cjs/appui-react/layout/tool-settings/Overflow.scss +0 -15
  54. package/lib/cjs/appui-react/layout/tool-settings/Setting.scss +1 -12
  55. package/lib/cjs/appui-react/layout/widget/Buttons.d.ts +4 -4
  56. package/lib/cjs/appui-react/layout/widget/Buttons.d.ts.map +1 -1
  57. package/lib/cjs/appui-react/layout/widget/Buttons.js +8 -31
  58. package/lib/cjs/appui-react/layout/widget/Buttons.js.map +1 -1
  59. package/lib/cjs/appui-react/layout/widget/ContentContainer.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/layout/widget/ContentContainer.js +2 -0
  61. package/lib/cjs/appui-react/layout/widget/ContentContainer.js.map +1 -1
  62. package/lib/cjs/appui-react/layout/widget/ContentManager.d.ts +1 -1
  63. package/lib/cjs/appui-react/layout/widget/ContentManager.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/layout/widget/ContentManager.js +1 -1
  65. package/lib/cjs/appui-react/layout/widget/ContentManager.js.map +1 -1
  66. package/lib/cjs/appui-react/layout/widget/ContentRenderer.d.ts.map +1 -1
  67. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +6 -0
  68. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  69. package/lib/cjs/appui-react/layout/widget/Dock.d.ts +2 -0
  70. package/lib/cjs/appui-react/layout/widget/Dock.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/layout/widget/Dock.js +10 -1
  72. package/lib/cjs/appui-react/layout/widget/Dock.js.map +1 -1
  73. package/lib/cjs/appui-react/layout/widget/FloatingWidget.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +15 -17
  75. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  76. package/lib/cjs/appui-react/layout/widget/FloatingWidget.scss +92 -105
  77. package/lib/cjs/appui-react/layout/widget/PinToggle.d.ts +2 -0
  78. package/lib/cjs/appui-react/layout/widget/PinToggle.d.ts.map +1 -1
  79. package/lib/cjs/appui-react/layout/widget/PinToggle.js +10 -1
  80. package/lib/cjs/appui-react/layout/widget/PinToggle.js.map +1 -1
  81. package/lib/cjs/appui-react/layout/widget/SendBack.d.ts.map +1 -1
  82. package/lib/cjs/appui-react/layout/widget/SendBack.js +4 -5
  83. package/lib/cjs/appui-react/layout/widget/SendBack.js.map +1 -1
  84. package/lib/cjs/appui-react/layout/widget/Tab.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/layout/widget/Tab.js +5 -10
  86. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  87. package/lib/cjs/appui-react/layout/widget/TabBar.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/layout/widget/TabBar.js +4 -1
  89. package/lib/cjs/appui-react/layout/widget/TabBar.js.map +1 -1
  90. package/lib/cjs/appui-react/layout/widget/TabBar.scss +17 -19
  91. package/lib/cjs/appui-react/layout/widget/usePanelWidgetId.d.ts +8 -0
  92. package/lib/cjs/appui-react/layout/widget/usePanelWidgetId.d.ts.map +1 -0
  93. package/lib/cjs/appui-react/layout/widget/usePanelWidgetId.js +39 -0
  94. package/lib/cjs/appui-react/layout/widget/usePanelWidgetId.js.map +1 -0
  95. package/lib/cjs/appui-react/layout/widget-panels/Grip.d.ts +1 -1
  96. package/lib/cjs/appui-react/layout/widget-panels/Grip.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/layout/widget-panels/Grip.js +4 -0
  98. package/lib/cjs/appui-react/layout/widget-panels/Grip.js.map +1 -1
  99. package/lib/cjs/appui-react/layout/widget-panels/Grip.scss +106 -104
  100. package/lib/cjs/appui-react/layout/widget-panels/Panel.d.ts +1 -1
  101. package/lib/cjs/appui-react/layout/widget-panels/Panel.d.ts.map +1 -1
  102. package/lib/cjs/appui-react/layout/widget-panels/Panel.js +10 -16
  103. package/lib/cjs/appui-react/layout/widget-panels/Panel.js.map +1 -1
  104. package/lib/cjs/appui-react/layout/widget-panels/Panel.scss +175 -243
  105. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.d.ts +1 -0
  106. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +35 -31
  108. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  109. package/lib/{esm/appui-react/layout/widget-panels/Panels.scss → cjs/appui-react/layout/widget-panels/PanelSections.scss} +1 -11
  110. package/lib/cjs/appui-react/layout/widget-panels/usePanelsAutoCollapse.d.ts +7 -0
  111. package/lib/cjs/appui-react/layout/widget-panels/usePanelsAutoCollapse.d.ts.map +1 -0
  112. package/lib/cjs/appui-react/layout/widget-panels/{AppContent.js → usePanelsAutoCollapse.js} +3 -26
  113. package/lib/cjs/appui-react/layout/widget-panels/usePanelsAutoCollapse.js.map +1 -0
  114. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/messages/MessageManager.js +0 -1
  116. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  117. package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
  118. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -1
  119. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  120. package/lib/cjs/appui-react/popup/CardPopup.js +1 -1
  121. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  122. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +6 -4
  124. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  125. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +1 -1
  126. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  127. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +1 -1
  128. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  129. package/lib/cjs/appui-react/popup/ToolbarPopup.js +1 -1
  130. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  131. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +6 -1
  132. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/preview/PreviewFeatures.js +1 -0
  134. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  135. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizeToggle.d.ts +9 -0
  136. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizeToggle.d.ts.map +1 -0
  137. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizeToggle.js +51 -0
  138. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizeToggle.js.map +1 -0
  139. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts +18 -0
  140. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts.map +1 -0
  141. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizedWidget.js +27 -0
  142. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizedWidget.js.map +1 -0
  143. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +50 -0
  144. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -0
  145. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +115 -0
  146. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -0
  147. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +36 -0
  148. package/lib/cjs/appui-react/{layout/widget → preview/horizontal-panel-alignment}/PreviewHorizontalPanelAlign.d.ts +4 -6
  149. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts.map +1 -0
  150. package/lib/cjs/appui-react/{layout/widget → preview/horizontal-panel-alignment}/PreviewHorizontalPanelAlign.js +17 -21
  151. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -0
  152. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.d.ts +19 -0
  153. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.d.ts.map +1 -0
  154. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +30 -0
  155. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -0
  156. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +49 -0
  157. package/lib/cjs/appui-react/preview/widget-action-dropdown/Button.d.ts +1 -1
  158. package/lib/cjs/appui-react/preview/widget-action-dropdown/Button.js +1 -1
  159. package/lib/cjs/appui-react/preview/widget-action-dropdown/Button.js.map +1 -1
  160. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.d.ts +3 -2
  161. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  162. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
  163. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  164. package/lib/cjs/appui-react/redux/SessionState.d.ts +2 -2
  165. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  166. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  167. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -1
  168. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  169. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  170. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  171. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +1 -0
  172. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  173. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  174. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +2 -1
  175. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  176. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  177. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +3 -3
  178. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  179. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +0 -7
  180. package/lib/cjs/appui-react/utils/matchesWords.js +4 -4
  181. package/lib/cjs/appui-react/utils/matchesWords.js.map +1 -1
  182. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  183. package/lib/cjs/appui-react/widget-panels/Frontstage.js +13 -16
  184. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  185. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +0 -23
  186. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +0 -6
  187. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
  188. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  190. package/lib/cjs/appui-react.d.ts +1 -0
  191. package/lib/cjs/appui-react.d.ts.map +1 -1
  192. package/lib/cjs/appui-react.js +1 -0
  193. package/lib/cjs/appui-react.js.map +1 -1
  194. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +2 -2
  195. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  196. package/lib/esm/appui-react/accudraw/Calculator.js +9 -9
  197. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  198. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  199. package/lib/esm/appui-react/content/ContentGroup.js +2 -2
  200. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  201. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  202. package/lib/esm/appui-react/content/IModelViewport.js +2 -2
  203. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  204. package/lib/esm/appui-react/feedback/ValidationTextbox.js +2 -2
  205. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  206. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +1 -1
  207. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  208. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  209. package/lib/esm/appui-react/{layout/widget-panels/CenterContent.scss → layers.scss} +6 -2
  210. package/lib/esm/appui-react/layout/StandardLayout.d.ts +24 -0
  211. package/lib/esm/appui-react/layout/StandardLayout.d.ts.map +1 -0
  212. package/lib/esm/appui-react/layout/StandardLayout.js +52 -0
  213. package/lib/esm/appui-react/layout/StandardLayout.js.map +1 -0
  214. package/lib/esm/appui-react/layout/StandardLayout.scss +94 -0
  215. package/lib/esm/appui-react/layout/backstage/Backstage.js +1 -1
  216. package/lib/esm/appui-react/layout/backstage/Backstage.js.map +1 -1
  217. package/lib/esm/appui-react/layout/base/SafeAreaInsets.js +4 -4
  218. package/lib/esm/appui-react/layout/base/SafeAreaInsets.js.map +1 -1
  219. package/lib/esm/appui-react/layout/outline/PanelOutline.scss +1 -10
  220. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.d.ts.map +1 -1
  221. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js +1 -0
  222. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  223. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.d.ts.map +1 -1
  224. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +5 -0
  225. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  226. package/lib/esm/appui-react/layout/state/internal/ToolSettingsStateHelpers.d.ts.map +1 -1
  227. package/lib/esm/appui-react/layout/state/internal/ToolSettingsStateHelpers.js +6 -0
  228. package/lib/esm/appui-react/layout/state/internal/ToolSettingsStateHelpers.js.map +1 -1
  229. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.d.ts.map +1 -1
  230. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +2 -0
  231. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  232. package/lib/esm/appui-react/layout/target/PanelTargets.scss +2 -0
  233. package/lib/esm/appui-react/layout/tool-settings/Docked.d.ts +12 -6
  234. package/lib/esm/appui-react/layout/tool-settings/Docked.d.ts.map +1 -1
  235. package/lib/esm/appui-react/layout/tool-settings/Docked.js +53 -22
  236. package/lib/esm/appui-react/layout/tool-settings/Docked.js.map +1 -1
  237. package/lib/esm/appui-react/layout/tool-settings/Docked.scss +15 -23
  238. package/lib/esm/appui-react/layout/tool-settings/Handle.d.ts.map +1 -1
  239. package/lib/esm/appui-react/layout/tool-settings/Handle.js +3 -1
  240. package/lib/esm/appui-react/layout/tool-settings/Handle.js.map +1 -1
  241. package/lib/esm/appui-react/layout/tool-settings/Handle.scss +6 -12
  242. package/lib/esm/appui-react/layout/tool-settings/Overflow.d.ts.map +1 -1
  243. package/lib/esm/appui-react/layout/tool-settings/Overflow.js +4 -5
  244. package/lib/esm/appui-react/layout/tool-settings/Overflow.js.map +1 -1
  245. package/lib/esm/appui-react/layout/tool-settings/Overflow.scss +0 -15
  246. package/lib/esm/appui-react/layout/tool-settings/Setting.scss +1 -12
  247. package/lib/esm/appui-react/layout/widget/Buttons.d.ts +4 -4
  248. package/lib/esm/appui-react/layout/widget/Buttons.d.ts.map +1 -1
  249. package/lib/esm/appui-react/layout/widget/Buttons.js +8 -30
  250. package/lib/esm/appui-react/layout/widget/Buttons.js.map +1 -1
  251. package/lib/esm/appui-react/layout/widget/ContentContainer.d.ts.map +1 -1
  252. package/lib/esm/appui-react/layout/widget/ContentContainer.js +2 -0
  253. package/lib/esm/appui-react/layout/widget/ContentContainer.js.map +1 -1
  254. package/lib/esm/appui-react/layout/widget/ContentManager.d.ts +1 -1
  255. package/lib/esm/appui-react/layout/widget/ContentManager.d.ts.map +1 -1
  256. package/lib/esm/appui-react/layout/widget/ContentManager.js +1 -1
  257. package/lib/esm/appui-react/layout/widget/ContentManager.js.map +1 -1
  258. package/lib/esm/appui-react/layout/widget/ContentRenderer.d.ts.map +1 -1
  259. package/lib/esm/appui-react/layout/widget/ContentRenderer.js +6 -0
  260. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  261. package/lib/esm/appui-react/layout/widget/Dock.d.ts +2 -0
  262. package/lib/esm/appui-react/layout/widget/Dock.d.ts.map +1 -1
  263. package/lib/esm/appui-react/layout/widget/Dock.js +8 -0
  264. package/lib/esm/appui-react/layout/widget/Dock.js.map +1 -1
  265. package/lib/esm/appui-react/layout/widget/FloatingWidget.d.ts.map +1 -1
  266. package/lib/esm/appui-react/layout/widget/FloatingWidget.js +15 -17
  267. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  268. package/lib/esm/appui-react/layout/widget/FloatingWidget.scss +92 -105
  269. package/lib/esm/appui-react/layout/widget/PinToggle.d.ts +2 -0
  270. package/lib/esm/appui-react/layout/widget/PinToggle.d.ts.map +1 -1
  271. package/lib/esm/appui-react/layout/widget/PinToggle.js +8 -0
  272. package/lib/esm/appui-react/layout/widget/PinToggle.js.map +1 -1
  273. package/lib/esm/appui-react/layout/widget/SendBack.d.ts.map +1 -1
  274. package/lib/esm/appui-react/layout/widget/SendBack.js +4 -5
  275. package/lib/esm/appui-react/layout/widget/SendBack.js.map +1 -1
  276. package/lib/esm/appui-react/layout/widget/Tab.d.ts.map +1 -1
  277. package/lib/esm/appui-react/layout/widget/Tab.js +5 -10
  278. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  279. package/lib/esm/appui-react/layout/widget/TabBar.d.ts.map +1 -1
  280. package/lib/esm/appui-react/layout/widget/TabBar.js +4 -1
  281. package/lib/esm/appui-react/layout/widget/TabBar.js.map +1 -1
  282. package/lib/esm/appui-react/layout/widget/TabBar.scss +17 -19
  283. package/lib/esm/appui-react/layout/widget/usePanelWidgetId.d.ts +8 -0
  284. package/lib/esm/appui-react/layout/widget/usePanelWidgetId.d.ts.map +1 -0
  285. package/lib/esm/appui-react/layout/widget/usePanelWidgetId.js +34 -0
  286. package/lib/esm/appui-react/layout/widget/usePanelWidgetId.js.map +1 -0
  287. package/lib/esm/appui-react/layout/widget-panels/Grip.d.ts +1 -1
  288. package/lib/esm/appui-react/layout/widget-panels/Grip.d.ts.map +1 -1
  289. package/lib/esm/appui-react/layout/widget-panels/Grip.js +4 -0
  290. package/lib/esm/appui-react/layout/widget-panels/Grip.js.map +1 -1
  291. package/lib/esm/appui-react/layout/widget-panels/Grip.scss +106 -104
  292. package/lib/esm/appui-react/layout/widget-panels/Panel.d.ts +1 -1
  293. package/lib/esm/appui-react/layout/widget-panels/Panel.d.ts.map +1 -1
  294. package/lib/esm/appui-react/layout/widget-panels/Panel.js +10 -16
  295. package/lib/esm/appui-react/layout/widget-panels/Panel.js.map +1 -1
  296. package/lib/esm/appui-react/layout/widget-panels/Panel.scss +175 -243
  297. package/lib/esm/appui-react/layout/widget-panels/PanelSections.d.ts +1 -0
  298. package/lib/esm/appui-react/layout/widget-panels/PanelSections.d.ts.map +1 -1
  299. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +34 -30
  300. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  301. package/lib/{cjs/appui-react/layout/widget-panels/Panels.scss → esm/appui-react/layout/widget-panels/PanelSections.scss} +1 -11
  302. package/lib/esm/appui-react/layout/widget-panels/usePanelsAutoCollapse.d.ts +7 -0
  303. package/lib/esm/appui-react/layout/widget-panels/usePanelsAutoCollapse.d.ts.map +1 -0
  304. package/lib/esm/appui-react/layout/widget-panels/{AppContent.js → usePanelsAutoCollapse.js} +3 -25
  305. package/lib/esm/appui-react/layout/widget-panels/usePanelsAutoCollapse.js.map +1 -0
  306. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  307. package/lib/esm/appui-react/messages/MessageManager.js +0 -1
  308. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  309. package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
  310. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -1
  311. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  312. package/lib/esm/appui-react/popup/CardPopup.js +1 -1
  313. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  314. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  315. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +6 -4
  316. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  317. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +1 -1
  318. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  319. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +1 -1
  320. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  321. package/lib/esm/appui-react/popup/ToolbarPopup.js +1 -1
  322. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  323. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +6 -1
  324. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  325. package/lib/esm/appui-react/preview/PreviewFeatures.js +1 -0
  326. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  327. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizeToggle.d.ts +9 -0
  328. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizeToggle.d.ts.map +1 -0
  329. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizeToggle.js +46 -0
  330. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizeToggle.js.map +1 -0
  331. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts +18 -0
  332. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts.map +1 -0
  333. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizedWidget.js +23 -0
  334. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizedWidget.js.map +1 -0
  335. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +50 -0
  336. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -0
  337. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +106 -0
  338. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -0
  339. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +36 -0
  340. package/lib/esm/appui-react/{layout/widget → preview/horizontal-panel-alignment}/PreviewHorizontalPanelAlign.d.ts +4 -6
  341. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts.map +1 -0
  342. package/lib/esm/appui-react/{layout/widget → preview/horizontal-panel-alignment}/PreviewHorizontalPanelAlign.js +15 -18
  343. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -0
  344. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.d.ts +19 -0
  345. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.d.ts.map +1 -0
  346. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +26 -0
  347. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -0
  348. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +49 -0
  349. package/lib/esm/appui-react/preview/widget-action-dropdown/Button.d.ts +1 -1
  350. package/lib/esm/appui-react/preview/widget-action-dropdown/Button.js +1 -1
  351. package/lib/esm/appui-react/preview/widget-action-dropdown/Button.js.map +1 -1
  352. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.d.ts +3 -2
  353. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  354. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
  355. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  356. package/lib/esm/appui-react/redux/SessionState.d.ts +2 -2
  357. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  358. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  359. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -1
  360. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  361. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  362. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  363. package/lib/esm/appui-react/statusfields/ActivityCenter.js +1 -0
  364. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  365. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  366. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +2 -1
  367. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  368. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  369. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +3 -3
  370. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  371. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +0 -7
  372. package/lib/esm/appui-react/utils/matchesWords.js +4 -4
  373. package/lib/esm/appui-react/utils/matchesWords.js.map +1 -1
  374. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  375. package/lib/esm/appui-react/widget-panels/Frontstage.js +15 -18
  376. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  377. package/lib/esm/appui-react/widget-panels/Frontstage.scss +0 -23
  378. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +0 -6
  379. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
  380. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  381. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  382. package/lib/esm/appui-react.d.ts +1 -0
  383. package/lib/esm/appui-react.d.ts.map +1 -1
  384. package/lib/esm/appui-react.js +1 -0
  385. package/lib/esm/appui-react.js.map +1 -1
  386. package/lib/public/locales/en/UiFramework.json +1 -1
  387. package/package.json +19 -19
  388. package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.d.ts.map +0 -1
  389. package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +0 -1
  390. package/lib/cjs/appui-react/layout/widget/PreviewMaximizeToggle.d.ts +0 -30
  391. package/lib/cjs/appui-react/layout/widget/PreviewMaximizeToggle.d.ts.map +0 -1
  392. package/lib/cjs/appui-react/layout/widget/PreviewMaximizeToggle.js +0 -65
  393. package/lib/cjs/appui-react/layout/widget/PreviewMaximizeToggle.js.map +0 -1
  394. package/lib/cjs/appui-react/layout/widget-panels/AppContent.d.ts +0 -11
  395. package/lib/cjs/appui-react/layout/widget-panels/AppContent.d.ts.map +0 -1
  396. package/lib/cjs/appui-react/layout/widget-panels/AppContent.js.map +0 -1
  397. package/lib/cjs/appui-react/layout/widget-panels/CenterContent.d.ts +0 -10
  398. package/lib/cjs/appui-react/layout/widget-panels/CenterContent.d.ts.map +0 -1
  399. package/lib/cjs/appui-react/layout/widget-panels/CenterContent.js +0 -23
  400. package/lib/cjs/appui-react/layout/widget-panels/CenterContent.js.map +0 -1
  401. package/lib/cjs/appui-react/layout/widget-panels/Content.d.ts +0 -21
  402. package/lib/cjs/appui-react/layout/widget-panels/Content.d.ts.map +0 -1
  403. package/lib/cjs/appui-react/layout/widget-panels/Content.js +0 -21
  404. package/lib/cjs/appui-react/layout/widget-panels/Content.js.map +0 -1
  405. package/lib/cjs/appui-react/layout/widget-panels/Content.scss +0 -37
  406. package/lib/cjs/appui-react/layout/widget-panels/Panels.d.ts +0 -24
  407. package/lib/cjs/appui-react/layout/widget-panels/Panels.d.ts.map +0 -1
  408. package/lib/cjs/appui-react/layout/widget-panels/Panels.js +0 -48
  409. package/lib/cjs/appui-react/layout/widget-panels/Panels.js.map +0 -1
  410. package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.d.ts.map +0 -1
  411. package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +0 -1
  412. package/lib/esm/appui-react/layout/widget/PreviewMaximizeToggle.d.ts +0 -30
  413. package/lib/esm/appui-react/layout/widget/PreviewMaximizeToggle.d.ts.map +0 -1
  414. package/lib/esm/appui-react/layout/widget/PreviewMaximizeToggle.js +0 -58
  415. package/lib/esm/appui-react/layout/widget/PreviewMaximizeToggle.js.map +0 -1
  416. package/lib/esm/appui-react/layout/widget-panels/AppContent.d.ts +0 -11
  417. package/lib/esm/appui-react/layout/widget-panels/AppContent.d.ts.map +0 -1
  418. package/lib/esm/appui-react/layout/widget-panels/AppContent.js.map +0 -1
  419. package/lib/esm/appui-react/layout/widget-panels/CenterContent.d.ts +0 -10
  420. package/lib/esm/appui-react/layout/widget-panels/CenterContent.d.ts.map +0 -1
  421. package/lib/esm/appui-react/layout/widget-panels/CenterContent.js +0 -19
  422. package/lib/esm/appui-react/layout/widget-panels/CenterContent.js.map +0 -1
  423. package/lib/esm/appui-react/layout/widget-panels/Content.d.ts +0 -21
  424. package/lib/esm/appui-react/layout/widget-panels/Content.d.ts.map +0 -1
  425. package/lib/esm/appui-react/layout/widget-panels/Content.js +0 -18
  426. package/lib/esm/appui-react/layout/widget-panels/Content.js.map +0 -1
  427. package/lib/esm/appui-react/layout/widget-panels/Content.scss +0 -37
  428. package/lib/esm/appui-react/layout/widget-panels/Panels.d.ts +0 -24
  429. package/lib/esm/appui-react/layout/widget-panels/Panels.d.ts.map +0 -1
  430. package/lib/esm/appui-react/layout/widget-panels/Panels.js +0 -44
  431. package/lib/esm/appui-react/layout/widget-panels/Panels.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreviewHorizontalPanelAlign.js","sourceRoot":"","sources":["../../../../../src/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.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 { assert } from \"@itwin/core-bentley\";\nimport { HorizontalAlignment } from \"@itwin/core-react\";\nimport { DropdownMenu, MenuItem } from \"@itwin/itwinui-react\";\nimport {\n isHorizontalPanelSide,\n PanelSideContext,\n} from \"../../layout/widget-panels/Panel\";\nimport type {\n HorizontalPanelSide,\n PanelSide,\n} from \"../../layout/widget-panels/PanelTypes\";\nimport { WidgetActionDropdownContext } from \"../widget-action-dropdown/MoreButton\";\nimport { TabBarButton } from \"../../layout/widget/Button\";\nimport { useMainPanelWidgetId } from \"../../layout/widget/usePanelWidgetId\";\nimport { useIsMaximizedWidget } from \"../enable-maximized-widget/useMaximizedWidget\";\n\n/** Default value used when not provided or disabled. */\nconst defaultAlignments = {\n top: HorizontalAlignment.Justify,\n bottom: HorizontalAlignment.Justify,\n};\n\n/** @internal */\nexport const HorizontalPanelAlignContext = React.createContext<{\n enabled: boolean;\n alignments: {\n [side in HorizontalPanelSide]: HorizontalAlignment;\n };\n setAlignment: (\n panel: PanelSide | undefined,\n alignment: HorizontalAlignment\n ) => void;\n}>({\n enabled: false,\n alignments: defaultAlignments,\n setAlignment: () => {},\n});\n\n/** Preview horizontal panel alignment feature provider.\n * @internal\n */\nexport function PreviewHorizontalPanelAlignFeatureProvider({\n enabled,\n children,\n}: {\n enabled?: boolean;\n children?: React.ReactNode;\n}) {\n const [alignments, setAlignments] = React.useState<{\n [x in HorizontalPanelSide]: HorizontalAlignment;\n }>({\n top: HorizontalAlignment.Justify,\n bottom: HorizontalAlignment.Justify,\n });\n const setAlignment = React.useCallback(\n (panel: PanelSide | undefined, alignment: HorizontalAlignment) => {\n if (!panel || !isHorizontalPanelSide(panel)) return;\n setAlignments((prev) => ({\n ...prev,\n [panel]: alignment,\n }));\n },\n []\n );\n return (\n <HorizontalPanelAlignContext.Provider\n value={{\n enabled: !!enabled,\n alignments: enabled ? alignments : defaultAlignments,\n setAlignment,\n }}\n >\n {children}\n </HorizontalPanelAlignContext.Provider>\n );\n}\n\nfunction SvgSide(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1rem\"\n height=\"1rem\"\n viewBox=\"0 0 16 16\"\n fill=\"var(--iui-color-icon-muted, currentColor)\"\n {...props}\n >\n <path d=\"M0 2v12h16V2H0Zm11 7H1V3h10v6Zm4 4h-3V3h3v10Z\" />\n </svg>\n );\n}\n\nfunction SvgJustify(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1rem\"\n height=\"1rem\"\n viewBox=\"0 0 16 16\"\n fill=\"var(--iui-color-icon-muted, currentColor)\"\n {...props}\n >\n <path d=\"M0 2v12h16V2H0Zm4 7H1V3h3v6Zm1 0V3h6v6H5Zm10 0h-3V3h3v6Z\" />\n </svg>\n );\n}\n\nfunction SvgCenter(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1rem\"\n height=\"1rem\"\n viewBox=\"0 0 16 16\"\n fill=\"var(--iui-color-icon-muted, currentColor)\"\n {...props}\n >\n <path d=\"M0 2v12h16V2H0Zm4 11H1V3h3v10Zm1-4V3h6v6H5Zm10 4h-3V3h3v10Z\" />\n </svg>\n );\n}\n\nfunction getIcon(side: HorizontalPanelSide, alignment: HorizontalAlignment) {\n const scaleY = side === \"top\" ? \"-1\" : \"1\";\n if (alignment === HorizontalAlignment.Justify)\n return <SvgJustify transform={`scale(1, ${scaleY})`} />;\n if (alignment === HorizontalAlignment.Center)\n return <SvgCenter transform={`scale(1, ${scaleY})`} />;\n const scaleX = alignment === HorizontalAlignment.Left ? \"1\" : \"-1\";\n return <SvgSide transform={`scale(${scaleX}, ${scaleY})`} />;\n}\n\nfunction capitalize(s: string) {\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n/** @internal */\nexport function PreviewHorizontalPanelAlignButton() {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n assert(isHorizontalPanelSide(side));\n const { alignments, setAlignment } = React.useContext(\n HorizontalPanelAlignContext\n );\n const title = \"Align panel\";\n\n const getMenuItems = (onClose?: () => void) =>\n [\n HorizontalAlignment.Justify,\n HorizontalAlignment.Center,\n HorizontalAlignment.Left,\n HorizontalAlignment.Right,\n ].map((align) => {\n return (\n <MenuItem\n key={align}\n onClick={() => {\n setAlignment(side, align);\n onClose?.();\n }}\n icon={getIcon(side, align)}\n isSelected={alignments[side] === align}\n >\n {capitalize(align)}\n </MenuItem>\n );\n });\n const dropdownContext = React.useContext(WidgetActionDropdownContext);\n if (dropdownContext !== undefined) {\n return (\n <MenuItem\n icon={getIcon(side, alignments[side])}\n subMenuItems={getMenuItems()}\n >\n {title}\n </MenuItem>\n );\n }\n return (\n <DropdownMenu menuItems={(close) => getMenuItems(close)}>\n <TabBarButton title={title}>\n {getIcon(side, alignments[side])}\n </TabBarButton>\n </DropdownMenu>\n );\n}\n\n/** @internal */\nexport function useHorizontalPanelAlignButton() {\n const side = React.useContext(PanelSideContext);\n const { enabled } = React.useContext(HorizontalPanelAlignContext);\n const isMainPanelWidget = !!useMainPanelWidgetId();\n const isMaximizedWidget = useIsMaximizedWidget();\n\n if (!side) return false;\n const isHorizontalPanel = isHorizontalPanelSide(side);\n return (\n enabled && isHorizontalPanel && isMainPanelWidget && !isMaximizedWidget\n );\n}\n"]}
@@ -0,0 +1,19 @@
1
+ /** @packageDocumentation
2
+ * @module WidgetPanels
3
+ */
4
+ import "./useHorizontalPanelAlignment.scss";
5
+ import type { PanelSide } from "../../layout/widget-panels/PanelTypes";
6
+ /** @internal */
7
+ export declare function useHorizontalPanelAlignment(side: PanelSide): {
8
+ attributes: {
9
+ "data-preview-horizontal-panel-align-top": import("@itwin/core-react").HorizontalAlignment;
10
+ "data-preview-horizontal-panel-align-bottom": import("@itwin/core-react").HorizontalAlignment;
11
+ };
12
+ classNames: {
13
+ [x: string]: boolean;
14
+ };
15
+ } | {
16
+ attributes?: undefined;
17
+ classNames?: undefined;
18
+ };
19
+ //# sourceMappingURL=useHorizontalPanelAlignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHorizontalPanelAlignment.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,oCAAoC,CAAC;AAG5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,gBAAgB;AAChB,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS;;;;;;;;;;;EAc1D"}
@@ -0,0 +1,26 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module WidgetPanels
7
+ */
8
+ import "./useHorizontalPanelAlignment.scss";
9
+ import * as React from "react";
10
+ import { HorizontalPanelAlignContext } from "./PreviewHorizontalPanelAlign";
11
+ /** @internal */
12
+ export function useHorizontalPanelAlignment(side) {
13
+ const { enabled, alignments } = React.useContext(HorizontalPanelAlignContext);
14
+ return enabled
15
+ ? {
16
+ attributes: {
17
+ "data-preview-horizontal-panel-align-top": alignments.top,
18
+ "data-preview-horizontal-panel-align-bottom": alignments.bottom,
19
+ },
20
+ classNames: {
21
+ [`preview-${side}`]: true,
22
+ },
23
+ }
24
+ : {};
25
+ }
26
+ //# sourceMappingURL=useHorizontalPanelAlignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHorizontalPanelAlignment.js","sourceRoot":"","sources":["../../../../../src/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,oCAAoC,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,gBAAgB;AAChB,MAAM,UAAU,2BAA2B,CAAC,IAAe;IACzD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;IAE9E,OAAO,OAAO;QACZ,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,yCAAyC,EAAE,UAAU,CAAC,GAAG;gBACzD,4CAA4C,EAAE,UAAU,CAAC,MAAM;aAChE;YACD,UAAU,EAAE;gBACV,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,IAAI;aAC1B;SACF;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WidgetPanels\n */\n\nimport \"./useHorizontalPanelAlignment.scss\";\nimport * as React from \"react\";\nimport { HorizontalPanelAlignContext } from \"./PreviewHorizontalPanelAlign\";\nimport type { PanelSide } from \"../../layout/widget-panels/PanelTypes\";\n\n/** @internal */\nexport function useHorizontalPanelAlignment(side: PanelSide) {\n const { enabled, alignments } = React.useContext(HorizontalPanelAlignContext);\n\n return enabled\n ? {\n attributes: {\n \"data-preview-horizontal-panel-align-top\": alignments.top,\n \"data-preview-horizontal-panel-align-bottom\": alignments.bottom,\n },\n classNames: {\n [`preview-${side}`]: true,\n },\n }\n : {};\n}\n"]}
@@ -0,0 +1,49 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ @layer appui.preview.horizontal-panel-alignment {
6
+ .preview-left {
7
+ &[data-preview-horizontal-panel-align-top="right"],
8
+ &[data-preview-horizontal-panel-align-top="center"] {
9
+ grid-row-start: ts-end;
10
+ }
11
+ &[data-preview-horizontal-panel-align-bottom="right"],
12
+ &[data-preview-horizontal-panel-align-bottom="center"] {
13
+ grid-row-end: bp-end;
14
+ }
15
+ }
16
+
17
+ .preview-right {
18
+ &[data-preview-horizontal-panel-align-top="left"],
19
+ &[data-preview-horizontal-panel-align-top="center"] {
20
+ grid-row-start: ts-end;
21
+ }
22
+ &[data-preview-horizontal-panel-align-bottom="left"],
23
+ &[data-preview-horizontal-panel-align-bottom="center"] {
24
+ grid-row-end: bp-end;
25
+ }
26
+ }
27
+
28
+ .preview-top {
29
+ &[data-preview-horizontal-panel-align-top="right"],
30
+ &[data-preview-horizontal-panel-align-top="center"] {
31
+ grid-column-start: lp-end;
32
+ }
33
+ &[data-preview-horizontal-panel-align-top="left"],
34
+ &[data-preview-horizontal-panel-align-top="center"] {
35
+ grid-column-end: rp-start;
36
+ }
37
+ }
38
+
39
+ .preview-bottom {
40
+ &[data-preview-horizontal-panel-align-bottom="right"],
41
+ &[data-preview-horizontal-panel-align-bottom="center"] {
42
+ grid-column-start: lp-end;
43
+ }
44
+ &[data-preview-horizontal-panel-align-bottom="left"],
45
+ &[data-preview-horizontal-panel-align-bottom="center"] {
46
+ grid-column-end: rp-start;
47
+ }
48
+ }
49
+ }
@@ -1,5 +1,5 @@
1
1
  /** @packageDocumentation
2
- * @module Utilities
2
+ * @module Widget
3
3
  */
4
4
  import * as React from "react";
5
5
  import { MenuItem } from "@itwin/itwinui-react";
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  /** @packageDocumentation
6
- * @module Utilities
6
+ * @module Widget
7
7
  */
8
8
  import * as React from "react";
9
9
  import { MenuItem } from "@itwin/itwinui-react";
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../../../src/appui-react/preview/widget-action-dropdown/Button.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAU1D,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;IACtE,IAAI,eAAe,KAAK,SAAS,EAAE;QACjC,OAAO,CACL,oBAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,KAAM,KAAK,CAAC,SAAS,IACpE,KAAK,CAAC,KAAK,CACH,CACZ,CAAC;KACH;IACD,OAAO,CACL,oBAAC,YAAY,IACX,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,KAAK,CAAC,KAAK,KACd,KAAK,CAAC,WAAW,IAEpB,KAAK,CAAC,IAAI,CACE,CAChB,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { MenuItem } from \"@itwin/itwinui-react\";\nimport { WidgetActionDropdownContext } from \"./MoreButton\";\nimport { TabBarButton } from \"../../layout/widget/Button\";\n\ninterface ActionButtonProps {\n title?: string;\n icon: React.JSX.Element;\n onClick?: () => void;\n menuProps?: React.ComponentProps<typeof MenuItem>;\n buttonProps?: React.ComponentProps<typeof TabBarButton>;\n}\n\n/** @internal */\nexport function ActionButton(props: ActionButtonProps) {\n const dropdownContext = React.useContext(WidgetActionDropdownContext);\n if (dropdownContext !== undefined) {\n return (\n <MenuItem icon={props.icon} onClick={props.onClick} {...props.menuProps}>\n {props.title}\n </MenuItem>\n );\n }\n return (\n <TabBarButton\n onClick={props.onClick}\n title={props.title}\n {...props.buttonProps}\n >\n {props.icon}\n </TabBarButton>\n );\n}\n"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../../../src/appui-react/preview/widget-action-dropdown/Button.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAU1D,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;IACtE,IAAI,eAAe,KAAK,SAAS,EAAE;QACjC,OAAO,CACL,oBAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,KAAM,KAAK,CAAC,SAAS,IACpE,KAAK,CAAC,KAAK,CACH,CACZ,CAAC;KACH;IACD,OAAO,CACL,oBAAC,YAAY,IACX,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,KAAK,CAAC,KAAK,KACd,KAAK,CAAC,WAAW,IAEpB,KAAK,CAAC,IAAI,CACE,CAChB,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport * as React from \"react\";\nimport { MenuItem } from \"@itwin/itwinui-react\";\nimport { WidgetActionDropdownContext } from \"./MoreButton\";\nimport { TabBarButton } from \"../../layout/widget/Button\";\n\ninterface ActionButtonProps {\n title?: string;\n icon: React.JSX.Element;\n onClick?: () => void;\n menuProps?: React.ComponentProps<typeof MenuItem>;\n buttonProps?: React.ComponentProps<typeof TabBarButton>;\n}\n\n/** @internal */\nexport function ActionButton(props: ActionButtonProps) {\n const dropdownContext = React.useContext(WidgetActionDropdownContext);\n if (dropdownContext !== undefined) {\n return (\n <MenuItem icon={props.icon} onClick={props.onClick} {...props.menuProps}>\n {props.title}\n </MenuItem>\n );\n }\n return (\n <TabBarButton\n onClick={props.onClick}\n title={props.title}\n {...props.buttonProps}\n >\n {props.icon}\n </TabBarButton>\n );\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  /** @packageDocumentation
2
- * @module Utilities
2
+ * @module Widget
3
3
  */
4
4
  import * as React from "react";
5
+ import type { WidgetFeature } from "../../layout/widget/Buttons";
5
6
  /** @internal */
6
7
  export declare function MoreButton(props: React.PropsWithChildren<{}>): React.JSX.Element;
7
8
  /** @internal */
@@ -9,5 +10,5 @@ export declare const WidgetActionDropdownContext: React.Context<{
9
10
  onClose: () => void;
10
11
  } | undefined>;
11
12
  /** @internal */
12
- export declare function useDropdownFeatures(buttons: string[]): readonly [string[], false] | readonly [string[], true];
13
+ export declare function useDropdownFeatures(features: WidgetFeature[]): readonly [WidgetFeature[], false] | readonly [WidgetFeature[], true];
13
14
  //# sourceMappingURL=MoreButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoreButton.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/preview/widget-action-dropdown/MoreButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,qBAmB5D;AAED,gBAAgB;AAChB,eAAO,MAAM,2BAA2B;aAGzB,MAAM,IAAI;cAEb,CAAC;AA2Bb,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,0DASpD"}
1
+ {"version":3,"file":"MoreButton.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/preview/widget-action-dropdown/MoreButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,qBAmB5D;AAED,gBAAgB;AAChB,eAAO,MAAM,2BAA2B;aAGzB,MAAM,IAAI;cAEb,CAAC;AA2Bb,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,wEAS5D"}
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  /** @packageDocumentation
6
- * @module Utilities
6
+ * @module Widget
7
7
  */
8
8
  import * as React from "react";
9
9
  import { assert } from "@itwin/core-bentley";
@@ -51,13 +51,13 @@ const order = [
51
51
  "sendBack",
52
52
  ];
53
53
  /** @internal */
54
- export function useDropdownFeatures(buttons) {
54
+ export function useDropdownFeatures(features) {
55
55
  const { widgetActionDropdown } = usePreviewFeatures();
56
56
  const threshold = widgetActionDropdown?.threshold ?? Infinity;
57
- const isDropdown = buttons.length > threshold;
57
+ const isDropdown = features.length > threshold;
58
58
  if (!isDropdown)
59
- return [buttons, false];
60
- const sorted = [...buttons].sort((a, b) => order.indexOf(a) - order.indexOf(b));
59
+ return [features, false];
60
+ const sorted = [...features].sort((a, b) => order.indexOf(a) - order.indexOf(b));
61
61
  return [sorted, true];
62
62
  }
63
63
  //# sourceMappingURL=MoreButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoreButton.js","sourceRoot":"","sources":["../../../../../src/appui-react/preview/widget-action-dropdown/MoreButton.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 Utilities\n */\n\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { SvgMoreVertical } from \"@itwin/itwinui-icons-react\";\nimport { DropdownMenu } from \"@itwin/itwinui-react\";\nimport { TabBarButton } from \"../../layout/widget/Button\";\nimport { usePreviewFeatures } from \"../PreviewFeatures\";\nimport { useLayout } from \"../../layout/base/LayoutStore\";\nimport { PanelSideContext } from \"../../layout/widget-panels/Panel\";\n\n/** @internal */\nexport function MoreButton(props: React.PropsWithChildren<{}>) {\n return (\n <DropdownMenu\n placement=\"bottom-end\"\n menuItems={(onClose) => [\n <WidgetActionDropdownContext.Provider key={0} value={{ onClose }}>\n <CloseOnPanelCollapse />\n {props.children}\n </WidgetActionDropdownContext.Provider>,\n ]}\n >\n {/* TODO: offset is not available for DropdownMenu */}\n <div style={{ height: \"100%\", display: \"flex\", marginInline: \"0.25em\" }}>\n <TabBarButton label=\"More actions\">\n <SvgMoreVertical />\n </TabBarButton>\n </div>\n </DropdownMenu>\n );\n}\n\n/** @internal */\nexport const WidgetActionDropdownContext = React.createContext<\n | undefined\n | {\n onClose: () => void;\n }\n>(undefined);\n\nfunction CloseOnPanelCollapse() {\n const context = React.useContext(WidgetActionDropdownContext);\n assert(!!context);\n const side = React.useContext(PanelSideContext);\n\n const { onClose } = context;\n const collapsed = useLayout((state) => {\n if (!side) return false;\n return state.panels[side].collapsed;\n });\n React.useEffect(() => {\n if (collapsed) onClose();\n }, [collapsed, onClose]);\n return null;\n}\n\nconst order = [\n \"pin\",\n \"maximize\",\n \"popout\",\n \"horizontalAlign\",\n \"dock\",\n \"sendBack\",\n];\n\n/** @internal */\nexport function useDropdownFeatures(buttons: string[]) {\n const { widgetActionDropdown } = usePreviewFeatures();\n const threshold = widgetActionDropdown?.threshold ?? Infinity;\n const isDropdown = buttons.length > threshold;\n if (!isDropdown) return [buttons, false] as const;\n const sorted = [...buttons].sort(\n (a, b) => order.indexOf(a) - order.indexOf(b)\n );\n return [sorted, true] as const;\n}\n"]}
1
+ {"version":3,"file":"MoreButton.js","sourceRoot":"","sources":["../../../../../src/appui-react/preview/widget-action-dropdown/MoreButton.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 { assert } from \"@itwin/core-bentley\";\nimport { SvgMoreVertical } from \"@itwin/itwinui-icons-react\";\nimport { DropdownMenu } from \"@itwin/itwinui-react\";\nimport { TabBarButton } from \"../../layout/widget/Button\";\nimport { usePreviewFeatures } from \"../PreviewFeatures\";\nimport { useLayout } from \"../../layout/base/LayoutStore\";\nimport { PanelSideContext } from \"../../layout/widget-panels/Panel\";\nimport type { WidgetFeature } from \"../../layout/widget/Buttons\";\n\n/** @internal */\nexport function MoreButton(props: React.PropsWithChildren<{}>) {\n return (\n <DropdownMenu\n placement=\"bottom-end\"\n menuItems={(onClose) => [\n <WidgetActionDropdownContext.Provider key={0} value={{ onClose }}>\n <CloseOnPanelCollapse />\n {props.children}\n </WidgetActionDropdownContext.Provider>,\n ]}\n >\n {/* TODO: offset is not available for DropdownMenu */}\n <div style={{ height: \"100%\", display: \"flex\", marginInline: \"0.25em\" }}>\n <TabBarButton label=\"More actions\">\n <SvgMoreVertical />\n </TabBarButton>\n </div>\n </DropdownMenu>\n );\n}\n\n/** @internal */\nexport const WidgetActionDropdownContext = React.createContext<\n | undefined\n | {\n onClose: () => void;\n }\n>(undefined);\n\nfunction CloseOnPanelCollapse() {\n const context = React.useContext(WidgetActionDropdownContext);\n assert(!!context);\n const side = React.useContext(PanelSideContext);\n\n const { onClose } = context;\n const collapsed = useLayout((state) => {\n if (!side) return false;\n return state.panels[side].collapsed;\n });\n React.useEffect(() => {\n if (collapsed) onClose();\n }, [collapsed, onClose]);\n return null;\n}\n\nconst order: WidgetFeature[] = [\n \"pin\",\n \"maximize\",\n \"popout\",\n \"horizontalAlign\",\n \"dock\",\n \"sendBack\",\n];\n\n/** @internal */\nexport function useDropdownFeatures(features: WidgetFeature[]) {\n const { widgetActionDropdown } = usePreviewFeatures();\n const threshold = widgetActionDropdown?.threshold ?? Infinity;\n const isDropdown = features.length > threshold;\n if (!isDropdown) return [features, false] as const;\n const sorted = [...features].sort(\n (a, b) => order.indexOf(a) - order.indexOf(b)\n );\n return [sorted, true] as const;\n}\n"]}
@@ -46,8 +46,8 @@ export interface SessionState {
46
46
  iModelId: string;
47
47
  defaultIModelViewportControlId: string | undefined;
48
48
  defaultViewId: string | undefined;
49
- defaultViewState: any | undefined;
50
- iModelConnection: any | undefined;
49
+ defaultViewState: any;
50
+ iModelConnection: any;
51
51
  cursorMenuData: CursorMenuData | undefined;
52
52
  }
53
53
  /** An interface that allows redux connected object to dispatch changes to the SessionState reducer.
@@ -1 +1 @@
1
- {"version":3,"file":"SessionState.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/redux/SessionState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK7D;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,oBAAY,oBAAoB;IAC9B,mBAAmB,wCAAwC;IAC3D,2BAA2B,gDAAgD;IAC3E,iBAAiB,qCAAqC;IACtD,iBAAiB,qCAAqC;IACtD,mBAAmB,uCAAuC;IAC1D,iCAAiC,wCAAwC;IACzE,gBAAgB,oCAAoC;IACpD,mBAAmB,wCAAwC;IAC3D,gBAAgB,oCAAoC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;IACvD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,gBAAgB,EAAE,GAAG,GAAG,SAAS,CAAC;IAClC,gBAAgB,EAAE,GAAG,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C;AAwBD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,OAAO,mBAAmB,CAAC,iBAAiB,CAAC;IAChE,2BAA2B,EAAE,OAAO,mBAAmB,CAAC,2BAA2B,CAAC;IACpF,iCAAiC,EAAE,OAAO,mBAAmB,CAAC,iCAAiC,CAAC;IAChG,gBAAgB,EAAE,OAAO,mBAAmB,CAAC,gBAAgB,CAAC;IAC9D,mBAAmB,EAAE,OAAO,mBAAmB,CAAC,mBAAmB,CAAC;IACpE,mBAAmB,EAAE,OAAO,mBAAmB,CAAC,mBAAmB,CAAC;IACpE,mBAAmB,EAAE,OAAO,mBAAmB,CAAC,mBAAmB,CAAC;IACpE,iBAAiB,EAAE,OAAO,mBAAmB,CAAC,iBAAiB,CAAC;IAChE,gBAAgB,EAAE,OAAO,mBAAmB,CAAC,gBAAgB,CAAC;CAC/D;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;kCAGjB,MAAM;4DAIU,0BAA0B,EAAE;iEAKI,MAAM;+BAKxC,MAAM;qCAInB,GAAG;uCAEkB,MAAM;4CAIpB,GAAG;8CAIC,MAAM;uCAOZ,cAAc;CAElC,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,8BAA8B;kCA5C5B,MAAM;4DAIU,0BAA0B,EAAE;iEAKI,MAAM;+BAKxC,MAAM;qCAInB,GAAG;uCAEkB,MAAM;4CAIpB,GAAG;8CAIC,MAAM;uCAOZ,cAAc;CASqC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,0BAA6B,EAClC,MAAM,EAAE,wBAAwB,GAC/B,YAAY,CAAC,YAAY,CAAC,CA+C5B"}
1
+ {"version":3,"file":"SessionState.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/redux/SessionState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK7D;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,oBAAY,oBAAoB;IAC9B,mBAAmB,wCAAwC;IAC3D,2BAA2B,gDAAgD;IAC3E,iBAAiB,qCAAqC;IACtD,iBAAiB,qCAAqC;IACtD,mBAAmB,uCAAuC;IAC1D,iCAAiC,wCAAwC;IACzE,gBAAgB,oCAAoC;IACpD,mBAAmB,wCAAwC;IAC3D,gBAAgB,oCAAoC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;IACvD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,gBAAgB,EAAE,GAAG,CAAC;IACtB,gBAAgB,EAAE,GAAG,CAAC;IACtB,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C;AAwBD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,OAAO,mBAAmB,CAAC,iBAAiB,CAAC;IAChE,2BAA2B,EAAE,OAAO,mBAAmB,CAAC,2BAA2B,CAAC;IACpF,iCAAiC,EAAE,OAAO,mBAAmB,CAAC,iCAAiC,CAAC;IAChG,gBAAgB,EAAE,OAAO,mBAAmB,CAAC,gBAAgB,CAAC;IAC9D,mBAAmB,EAAE,OAAO,mBAAmB,CAAC,mBAAmB,CAAC;IACpE,mBAAmB,EAAE,OAAO,mBAAmB,CAAC,mBAAmB,CAAC;IACpE,mBAAmB,EAAE,OAAO,mBAAmB,CAAC,mBAAmB,CAAC;IACpE,iBAAiB,EAAE,OAAO,mBAAmB,CAAC,iBAAiB,CAAC;IAChE,gBAAgB,EAAE,OAAO,mBAAmB,CAAC,gBAAgB,CAAC;CAC/D;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;kCAGjB,MAAM;4DAIU,0BAA0B,EAAE;iEAKI,MAAM;+BAKxC,MAAM;qCAInB,GAAG;uCAEkB,MAAM;4CAIpB,GAAG;8CAIC,MAAM;uCAOZ,cAAc;CAElC,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,8BAA8B;kCA5C5B,MAAM;4DAIU,0BAA0B,EAAE;iEAKI,MAAM;+BAKxC,MAAM;qCAInB,GAAG;uCAEkB,MAAM;4CAIpB,GAAG;8CAIC,MAAM;uCAOZ,cAAc;CASqC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,0BAA6B,EAClC,MAAM,EAAE,wBAAwB,GAC/B,YAAY,CAAC,YAAY,CAAC,CA+C5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionState.js","sourceRoot":"","sources":["../../../../src/appui-react/redux/SessionState.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module State\n */\n\n// The following definitions are causing extract-api issues on linux so for now just using any until we can figure out the issue.\nimport type { XAndY } from \"@itwin/core-geometry\";\n// import { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport type { MenuItemProps } from \"../shared/MenuItem\";\nimport type { ActionsUnion, DeepReadonly } from \"./redux-ts\";\nimport { createAction } from \"./redux-ts\";\n\n// cSpell:ignore configurableui snapmode toolprompt sessionstate imodelid viewid viewportid rulesetid\n\n/** PresentationSelectionScope holds the id and the localized label for a selection scope supported for a specific iModel.\n * Added to avoid an api-extract error caused by using SelectionScope.\n * @public\n */\nexport interface PresentationSelectionScope {\n id: string;\n label: string;\n}\n\n/** Definition of data added to Redux store to define cursor menu. If menuItems are empty the menu control is not displayed.\n * To close the menu clear the menuItems or pass in undefined as the CursorData.\n * @public\n */\nexport interface CursorMenuData {\n items: MenuItemProps[];\n position: XAndY;\n childWindowId?: string;\n}\n\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\n * Since these are also used as sync ids they should be in lowercase.\n * @public\n */\nexport enum SessionStateActionId {\n SetNumItemsSelected = \"sessionstate:set-num-items-selected\",\n SetAvailableSelectionScopes = \"sessionstate:set-available-selection-scopes\",\n SetSelectionScope = \"sessionstate:set-selection-scope\",\n SetActiveIModelId = \"sessionstate:set-active-imodelid\",\n SetIModelConnection = \"sessionstate:set-imodel-connection\",\n SetDefaultIModelViewportControlId = \"sessionstate:set-default-viewportid\",\n SetDefaultViewId = \"sessionstate:set-default-viewid\",\n SetDefaultViewState = \"sessionstate:set-default-view-state\",\n UpdateCursorMenu = \"sessionstate:update-cursor-menu\",\n}\n\n/** The portion of state managed by the SessionStateReducer.\n * @public\n */\nexport interface SessionState {\n numItemsSelected: number;\n availableSelectionScopes: PresentationSelectionScope[];\n activeSelectionScope: string;\n iModelId: string;\n defaultIModelViewportControlId: string | undefined;\n defaultViewId: string | undefined;\n defaultViewState: any | undefined;\n iModelConnection: any | undefined;\n cursorMenuData: CursorMenuData | undefined;\n}\n\nconst defaultSelectionScope = {\n id: \"element\",\n label: \"Element\",\n} as PresentationSelectionScope;\n\n/** used on first call of SessionStateReducer */\nconst initialState: SessionState = {\n /** number of selected items in Presentation Selection */\n numItemsSelected: 0,\n /** initialize to only support \"Element\" scope, this will be overwritten when iModelConnection is established */\n availableSelectionScopes: [defaultSelectionScope],\n /** initialize to active selection scope to \"Element\", this will be overwritten when iModelConnection is established */\n activeSelectionScope: defaultSelectionScope.id,\n /** set to iModelId if an iModel is active else it is an empty string, so initialize to empty string */\n iModelId: \"\",\n defaultIModelViewportControlId: undefined,\n defaultViewId: undefined,\n defaultViewState: undefined,\n iModelConnection: undefined,\n cursorMenuData: undefined,\n};\n\n/** An interface that allows redux connected object to dispatch changes to the SessionState reducer.\n * @beta\n */\nexport interface SessionStateActionsProps {\n setActiveIModelId: typeof SessionStateActions.setActiveIModelId;\n setAvailableSelectionScopes: typeof SessionStateActions.setAvailableSelectionScopes;\n setDefaultIModelViewportControlId: typeof SessionStateActions.setDefaultIModelViewportControlId;\n setDefaultViewId: typeof SessionStateActions.setDefaultViewId;\n setDefaultViewState: typeof SessionStateActions.setDefaultViewState;\n setIModelConnection: typeof SessionStateActions.setIModelConnection;\n setNumItemsSelected: typeof SessionStateActions.setNumItemsSelected;\n setSelectionScope: typeof SessionStateActions.setSelectionScope;\n updateCursorMenu: typeof SessionStateActions.updateCursorMenu;\n}\n\n/** An object with a function that creates each SessionStateReducer that can be handled by our reducer.\n * @public\n */\nexport const SessionStateActions = {\n setActiveIModelId:\n // istanbul ignore next\n (iModelId: string) =>\n createAction(SessionStateActionId.SetActiveIModelId, iModelId),\n setAvailableSelectionScopes:\n // istanbul ignore next\n (availableSelectionScopes: PresentationSelectionScope[]) =>\n createAction(\n SessionStateActionId.SetAvailableSelectionScopes,\n availableSelectionScopes\n ),\n setDefaultIModelViewportControlId: (iModelViewportControlId: string) =>\n createAction(\n SessionStateActionId.SetDefaultIModelViewportControlId,\n iModelViewportControlId\n ),\n setDefaultViewId: (viewId: string) =>\n createAction(SessionStateActionId.SetDefaultViewId, viewId),\n setDefaultViewState:\n // istanbul ignore next\n (viewState: any) =>\n createAction(SessionStateActionId.SetDefaultViewState, viewState),\n setNumItemsSelected: (numSelected: number) =>\n createAction(SessionStateActionId.SetNumItemsSelected, numSelected),\n setIModelConnection:\n // istanbul ignore next\n (iModelConnection: any) =>\n createAction(SessionStateActionId.SetIModelConnection, iModelConnection),\n setSelectionScope:\n // istanbul ignore next\n (activeSelectionScope: string) =>\n createAction(\n SessionStateActionId.SetSelectionScope,\n activeSelectionScope\n ),\n updateCursorMenu:\n // istanbul ignore next\n (cursorMenuData: CursorMenuData) =>\n createAction(SessionStateActionId.UpdateCursorMenu, cursorMenuData),\n};\n\n/** Object that contains available actions that modify SessionState. Parent control's props should\n * extend from SessionStateActionsProps before using this in Redux 'connect' function.\n * @beta\n */\n// ...SessionStateActionsProps\nexport const sessionStateMapDispatchToProps = { ...SessionStateActions };\n\n/** Union of SessionState Redux actions\n * @public\n */\nexport type SessionStateActionsUnion = ActionsUnion<typeof SessionStateActions>;\n\n/** Handles actions to update SessionState.\n * @public\n */\nexport function SessionStateReducer(\n state: SessionState = initialState,\n action: SessionStateActionsUnion\n): DeepReadonly<SessionState> {\n switch (action.type) {\n case SessionStateActionId.SetNumItemsSelected: {\n // istanbul ignore else\n if (undefined !== action.payload)\n return { ...state, numItemsSelected: action.payload };\n else return { ...state, numItemsSelected: 0 };\n }\n case SessionStateActionId.SetAvailableSelectionScopes: {\n const payloadArray: PresentationSelectionScope[] = [];\n action.payload.forEach((scope) => payloadArray.push(scope));\n // istanbul ignore else\n if (undefined !== action.payload)\n return { ...state, availableSelectionScopes: payloadArray };\n else\n return { ...state, availableSelectionScopes: [defaultSelectionScope] };\n }\n case SessionStateActionId.SetSelectionScope: {\n // istanbul ignore else\n if (undefined !== action.payload)\n return { ...state, activeSelectionScope: action.payload };\n else return { ...state, activeSelectionScope: defaultSelectionScope.id };\n }\n case SessionStateActionId.SetActiveIModelId: {\n // istanbul ignore else\n if (undefined !== action.payload)\n return { ...state, iModelId: action.payload };\n else return { ...state, iModelId: \"\" };\n }\n case SessionStateActionId.SetDefaultIModelViewportControlId: {\n return { ...state, defaultIModelViewportControlId: action.payload };\n }\n case SessionStateActionId.SetDefaultViewId: {\n return { ...state, defaultViewId: action.payload };\n }\n case SessionStateActionId.SetDefaultViewState: {\n return { ...state, defaultViewState: action.payload };\n }\n case SessionStateActionId.SetIModelConnection: {\n return { ...state, iModelConnection: action.payload };\n }\n case SessionStateActionId.UpdateCursorMenu: {\n return { ...state, cursorMenuData: action.payload };\n }\n }\n\n return state;\n}\n"]}
1
+ {"version":3,"file":"SessionState.js","sourceRoot":"","sources":["../../../../src/appui-react/redux/SessionState.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAuB1C;;;GAGG;AACH,MAAM,CAAN,IAAY,oBAUX;AAVD,WAAY,oBAAoB;IAC9B,mFAA2D,CAAA;IAC3D,mGAA2E,CAAA;IAC3E,8EAAsD,CAAA;IACtD,8EAAsD,CAAA;IACtD,kFAA0D,CAAA;IAC1D,iGAAyE,CAAA;IACzE,4EAAoD,CAAA;IACpD,mFAA2D,CAAA;IAC3D,4EAAoD,CAAA;AACtD,CAAC,EAVW,oBAAoB,KAApB,oBAAoB,QAU/B;AAiBD,MAAM,qBAAqB,GAAG;IAC5B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,SAAS;CACa,CAAC;AAEhC,gDAAgD;AAChD,MAAM,YAAY,GAAiB;IACjC,yDAAyD;IACzD,gBAAgB,EAAE,CAAC;IACnB,gHAAgH;IAChH,wBAAwB,EAAE,CAAC,qBAAqB,CAAC;IACjD,uHAAuH;IACvH,oBAAoB,EAAE,qBAAqB,CAAC,EAAE;IAC9C,uGAAuG;IACvG,QAAQ,EAAE,EAAE;IACZ,8BAA8B,EAAE,SAAS;IACzC,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,SAAS;IAC3B,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,SAAS;CAC1B,CAAC;AAiBF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB;IACf,uBAAuB;IACvB,CAAC,QAAgB,EAAE,EAAE,CACnB,YAAY,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAClE,2BAA2B;IACzB,uBAAuB;IACvB,CAAC,wBAAsD,EAAE,EAAE,CACzD,YAAY,CACV,oBAAoB,CAAC,2BAA2B,EAChD,wBAAwB,CACzB;IACL,iCAAiC,EAAE,CAAC,uBAA+B,EAAE,EAAE,CACrE,YAAY,CACV,oBAAoB,CAAC,iCAAiC,EACtD,uBAAuB,CACxB;IACH,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE,CACnC,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC7D,mBAAmB;IACjB,uBAAuB;IACvB,CAAC,SAAc,EAAE,EAAE,CACjB,YAAY,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,SAAS,CAAC;IACrE,mBAAmB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAC3C,YAAY,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,WAAW,CAAC;IACrE,mBAAmB;IACjB,uBAAuB;IACvB,CAAC,gBAAqB,EAAE,EAAE,CACxB,YAAY,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC5E,iBAAiB;IACf,uBAAuB;IACvB,CAAC,oBAA4B,EAAE,EAAE,CAC/B,YAAY,CACV,oBAAoB,CAAC,iBAAiB,EACtC,oBAAoB,CACrB;IACL,gBAAgB;IACd,uBAAuB;IACvB,CAAC,cAA8B,EAAE,EAAE,CACjC,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,cAAc,CAAC;CACxE,CAAC;AAEF;;;GAGG;AACH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAC;AAOzE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAsB,YAAY,EAClC,MAAgC;IAEhC,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YAC7C,uBAAuB;YACvB,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;gBAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;;gBACnD,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;SAC/C;QACD,KAAK,oBAAoB,CAAC,2BAA2B,CAAC,CAAC;YACrD,MAAM,YAAY,GAAiC,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,uBAAuB;YACvB,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;gBAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC;;gBAE5D,OAAO,EAAE,GAAG,KAAK,EAAE,wBAAwB,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;SAC1E;QACD,KAAK,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YAC3C,uBAAuB;YACvB,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;gBAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,oBAAoB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;;gBACvD,OAAO,EAAE,GAAG,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,EAAE,EAAE,CAAC;SAC1E;QACD,KAAK,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YAC3C,uBAAuB;YACvB,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;gBAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;;gBAC3C,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;SACxC;QACD,KAAK,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;YAC3D,OAAO,EAAE,GAAG,KAAK,EAAE,8BAA8B,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;SACrE;QACD,KAAK,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YAC1C,OAAO,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;SACpD;QACD,KAAK,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YAC7C,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;SACvD;QACD,KAAK,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YAC7C,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;SACvD;QACD,KAAK,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YAC1C,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;SACrD;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module State\n */\n\n// The following definitions are causing extract-api issues on linux so for now just using any until we can figure out the issue.\nimport type { XAndY } from \"@itwin/core-geometry\";\n// import { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport type { MenuItemProps } from \"../shared/MenuItem\";\nimport type { ActionsUnion, DeepReadonly } from \"./redux-ts\";\nimport { createAction } from \"./redux-ts\";\n\n// cSpell:ignore configurableui snapmode toolprompt sessionstate imodelid viewid viewportid rulesetid\n\n/** PresentationSelectionScope holds the id and the localized label for a selection scope supported for a specific iModel.\n * Added to avoid an api-extract error caused by using SelectionScope.\n * @public\n */\nexport interface PresentationSelectionScope {\n id: string;\n label: string;\n}\n\n/** Definition of data added to Redux store to define cursor menu. If menuItems are empty the menu control is not displayed.\n * To close the menu clear the menuItems or pass in undefined as the CursorData.\n * @public\n */\nexport interface CursorMenuData {\n items: MenuItemProps[];\n position: XAndY;\n childWindowId?: string;\n}\n\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\n * Since these are also used as sync ids they should be in lowercase.\n * @public\n */\nexport enum SessionStateActionId {\n SetNumItemsSelected = \"sessionstate:set-num-items-selected\",\n SetAvailableSelectionScopes = \"sessionstate:set-available-selection-scopes\",\n SetSelectionScope = \"sessionstate:set-selection-scope\",\n SetActiveIModelId = \"sessionstate:set-active-imodelid\",\n SetIModelConnection = \"sessionstate:set-imodel-connection\",\n SetDefaultIModelViewportControlId = \"sessionstate:set-default-viewportid\",\n SetDefaultViewId = \"sessionstate:set-default-viewid\",\n SetDefaultViewState = \"sessionstate:set-default-view-state\",\n UpdateCursorMenu = \"sessionstate:update-cursor-menu\",\n}\n\n/** The portion of state managed by the SessionStateReducer.\n * @public\n */\nexport interface SessionState {\n numItemsSelected: number;\n availableSelectionScopes: PresentationSelectionScope[];\n activeSelectionScope: string;\n iModelId: string;\n defaultIModelViewportControlId: string | undefined;\n defaultViewId: string | undefined;\n defaultViewState: any;\n iModelConnection: any;\n cursorMenuData: CursorMenuData | undefined;\n}\n\nconst defaultSelectionScope = {\n id: \"element\",\n label: \"Element\",\n} as PresentationSelectionScope;\n\n/** used on first call of SessionStateReducer */\nconst initialState: SessionState = {\n /** number of selected items in Presentation Selection */\n numItemsSelected: 0,\n /** initialize to only support \"Element\" scope, this will be overwritten when iModelConnection is established */\n availableSelectionScopes: [defaultSelectionScope],\n /** initialize to active selection scope to \"Element\", this will be overwritten when iModelConnection is established */\n activeSelectionScope: defaultSelectionScope.id,\n /** set to iModelId if an iModel is active else it is an empty string, so initialize to empty string */\n iModelId: \"\",\n defaultIModelViewportControlId: undefined,\n defaultViewId: undefined,\n defaultViewState: undefined,\n iModelConnection: undefined,\n cursorMenuData: undefined,\n};\n\n/** An interface that allows redux connected object to dispatch changes to the SessionState reducer.\n * @beta\n */\nexport interface SessionStateActionsProps {\n setActiveIModelId: typeof SessionStateActions.setActiveIModelId;\n setAvailableSelectionScopes: typeof SessionStateActions.setAvailableSelectionScopes;\n setDefaultIModelViewportControlId: typeof SessionStateActions.setDefaultIModelViewportControlId;\n setDefaultViewId: typeof SessionStateActions.setDefaultViewId;\n setDefaultViewState: typeof SessionStateActions.setDefaultViewState;\n setIModelConnection: typeof SessionStateActions.setIModelConnection;\n setNumItemsSelected: typeof SessionStateActions.setNumItemsSelected;\n setSelectionScope: typeof SessionStateActions.setSelectionScope;\n updateCursorMenu: typeof SessionStateActions.updateCursorMenu;\n}\n\n/** An object with a function that creates each SessionStateReducer that can be handled by our reducer.\n * @public\n */\nexport const SessionStateActions = {\n setActiveIModelId:\n // istanbul ignore next\n (iModelId: string) =>\n createAction(SessionStateActionId.SetActiveIModelId, iModelId),\n setAvailableSelectionScopes:\n // istanbul ignore next\n (availableSelectionScopes: PresentationSelectionScope[]) =>\n createAction(\n SessionStateActionId.SetAvailableSelectionScopes,\n availableSelectionScopes\n ),\n setDefaultIModelViewportControlId: (iModelViewportControlId: string) =>\n createAction(\n SessionStateActionId.SetDefaultIModelViewportControlId,\n iModelViewportControlId\n ),\n setDefaultViewId: (viewId: string) =>\n createAction(SessionStateActionId.SetDefaultViewId, viewId),\n setDefaultViewState:\n // istanbul ignore next\n (viewState: any) =>\n createAction(SessionStateActionId.SetDefaultViewState, viewState),\n setNumItemsSelected: (numSelected: number) =>\n createAction(SessionStateActionId.SetNumItemsSelected, numSelected),\n setIModelConnection:\n // istanbul ignore next\n (iModelConnection: any) =>\n createAction(SessionStateActionId.SetIModelConnection, iModelConnection),\n setSelectionScope:\n // istanbul ignore next\n (activeSelectionScope: string) =>\n createAction(\n SessionStateActionId.SetSelectionScope,\n activeSelectionScope\n ),\n updateCursorMenu:\n // istanbul ignore next\n (cursorMenuData: CursorMenuData) =>\n createAction(SessionStateActionId.UpdateCursorMenu, cursorMenuData),\n};\n\n/** Object that contains available actions that modify SessionState. Parent control's props should\n * extend from SessionStateActionsProps before using this in Redux 'connect' function.\n * @beta\n */\n// ...SessionStateActionsProps\nexport const sessionStateMapDispatchToProps = { ...SessionStateActions };\n\n/** Union of SessionState Redux actions\n * @public\n */\nexport type SessionStateActionsUnion = ActionsUnion<typeof SessionStateActions>;\n\n/** Handles actions to update SessionState.\n * @public\n */\nexport function SessionStateReducer(\n state: SessionState = initialState,\n action: SessionStateActionsUnion\n): DeepReadonly<SessionState> {\n switch (action.type) {\n case SessionStateActionId.SetNumItemsSelected: {\n // istanbul ignore else\n if (undefined !== action.payload)\n return { ...state, numItemsSelected: action.payload };\n else return { ...state, numItemsSelected: 0 };\n }\n case SessionStateActionId.SetAvailableSelectionScopes: {\n const payloadArray: PresentationSelectionScope[] = [];\n action.payload.forEach((scope) => payloadArray.push(scope));\n // istanbul ignore else\n if (undefined !== action.payload)\n return { ...state, availableSelectionScopes: payloadArray };\n else\n return { ...state, availableSelectionScopes: [defaultSelectionScope] };\n }\n case SessionStateActionId.SetSelectionScope: {\n // istanbul ignore else\n if (undefined !== action.payload)\n return { ...state, activeSelectionScope: action.payload };\n else return { ...state, activeSelectionScope: defaultSelectionScope.id };\n }\n case SessionStateActionId.SetActiveIModelId: {\n // istanbul ignore else\n if (undefined !== action.payload)\n return { ...state, iModelId: action.payload };\n else return { ...state, iModelId: \"\" };\n }\n case SessionStateActionId.SetDefaultIModelViewportControlId: {\n return { ...state, defaultIModelViewportControlId: action.payload };\n }\n case SessionStateActionId.SetDefaultViewId: {\n return { ...state, defaultViewId: action.payload };\n }\n case SessionStateActionId.SetDefaultViewState: {\n return { ...state, defaultViewState: action.payload };\n }\n case SessionStateActionId.SetIModelConnection: {\n return { ...state, iModelConnection: action.payload };\n }\n case SessionStateActionId.UpdateCursorMenu: {\n return { ...state, cursorMenuData: action.payload };\n }\n }\n\n return state;\n}\n"]}
@@ -225,7 +225,7 @@ export function StatusBarComposer(props) {
225
225
  }, [handleEntryResize]);
226
226
  const getSectionItems = React.useCallback((section) => {
227
227
  const sectionItems = statusBarItems
228
- .filter((item) => item.section === section &&
228
+ .filter((item) => item.section.valueOf() === section.valueOf() &&
229
229
  !isItemInOverflow(item.id, overflown) &&
230
230
  !ConditionalBooleanValue.getValue(item.isHidden))
231
231
  .sort((a, b) => a.itemPriority - b.itemPriority);
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { useRefs, useResizeObserver } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { eqlOverflown } from \"../layout/tool-settings/Docked\";\nimport { StatusBarLabelIndicator } from \"../statusbar/LabelIndicator\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\nimport { StatusBarOverflow } from \"./Overflow\";\nimport { StatusBarOverflowPanel } from \"./OverflowPanel\";\nimport {\n StatusBarCenterSection,\n StatusBarLeftSection,\n StatusBarRightSection,\n StatusBarSpaceBetween,\n} from \"./StatusBar\";\nimport type {\n StatusBarActionItem,\n StatusBarItem,\n StatusBarLabelItem,\n} from \"./StatusBarItem\";\nimport {\n isStatusBarActionItem,\n isStatusBarCustomItem,\n isStatusBarLabelItem,\n StatusBarSection,\n} from \"./StatusBarItem\";\nimport { StatusBarItemsManager } from \"./StatusBarItemsManager\";\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems\";\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems\";\n\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\nfunction getCombinedSectionItemPriority(item: StatusBarItem) {\n let sectionValue = 0;\n if (item.section === StatusBarSection.Center) sectionValue = 100000;\n else if (item.section === StatusBarSection.Context) sectionValue = 200000;\n else if (item.section === StatusBarSection.Right) sectionValue = 300000;\n return sectionValue + item.itemPriority;\n}\n\ninterface DockedStatusBarEntryContextArg {\n readonly isOverflown: boolean;\n readonly onResize: (w: number) => void;\n}\n\nconst DockedStatusBarEntryContext =\n React.createContext<DockedStatusBarEntryContextArg>(null!);\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\n\n/** @internal */\nexport function useStatusBarEntry() {\n return React.useContext(DockedStatusBarEntryContext);\n}\n\n/** Properties of [[DockedStatusBarItem]] component.\n * @internal future\n */\nexport interface StatusBarItemProps extends CommonProps {\n /** Tool setting content. */\n children?: React.ReactNode;\n itemPriority?: number;\n providerId?: string;\n section?: string;\n}\n\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\n * @internal future\n */\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\n const { onResize } = useStatusBarEntry();\n const ref = useResizeObserver<HTMLDivElement>(onResize);\n const className = classnames(\n \"uifw-statusbar-item-container\",\n props.className\n );\n return (\n <div\n data-item-id={props.itemId}\n data-item-type=\"status-bar-item\"\n data-item-location={props.section}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n className={className}\n ref={ref}\n style={props.style}\n >\n {props.children}\n </div>\n );\n}\n\ninterface DockedStatusBarEntryProps {\n children?: React.ReactNode;\n entryKey: string;\n getOnResize: (key: string) => (w: number) => void;\n}\n\n/** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */\nfunction DockedStatusBarEntry({\n children,\n entryKey,\n getOnResize,\n}: DockedStatusBarEntryProps) {\n const onResize = React.useMemo(\n () => getOnResize(entryKey),\n [getOnResize, entryKey]\n );\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(\n () => ({\n isOverflown: false,\n onResize,\n }),\n [onResize]\n );\n return (\n <DockedStatusBarEntryContext.Provider value={entry}>\n {children}\n </DockedStatusBarEntryContext.Provider>\n );\n}\n\n/** Private function to set up sync event monitoring of statusbar items */\nfunction useStatusBarItemSyncEffect(\n itemsManager: StatusBarItemsManager,\n syncIdsOfInterest: string[]\n) {\n React.useEffect(() => {\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\n if (0 === syncIdsOfInterest.length) return;\n\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n // process each item that has interest\n itemsManager.refreshAffectedItems(args.eventIds);\n }\n };\n\n // Note: that items with conditions have condition run when loaded into the items manager\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n return () => {\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\n };\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\n}\n\nfunction StatusBarLabelItemComponent(props: StatusBarLabelItem) {\n const label = ConditionalStringValue.getValue(props.label);\n return <StatusBarLabelIndicator iconSpec={props.icon} label={label} />;\n}\n\nfunction StatusBarActionItemComponent(props: StatusBarActionItem) {\n const title = ConditionalStringValue.getValue(props.tooltip);\n return (\n <StatusBarLabelIndicator\n title={title}\n onClick={props.execute}\n iconSpec={props.icon}\n />\n );\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n stageItems: ReadonlyArray<StatusBarItem>,\n addonItems: ReadonlyArray<StatusBarItem>\n) {\n const items: StatusBarItem[] = [];\n if (stageItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n stageItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n if (addonItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n addonItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n return items;\n}\n\n/** local function to ensure a width value is defined for a status bar entries. */\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n // istanbul ignore next\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\nfunction getItemToPlaceInOverflow(\n width: number,\n docked: ReadonlyArray<readonly [string, number]>,\n overflowWidth: number\n) {\n let settingsWidth = 0;\n\n let i = 0;\n for (; i < docked.length; i++) {\n const w = docked[i][1];\n const newSettingsWidth = settingsWidth + w;\n if (newSettingsWidth > width) {\n settingsWidth += overflowWidth;\n break;\n }\n settingsWidth = newSettingsWidth;\n }\n\n let j = i;\n for (; j > 0; j--) {\n if (settingsWidth <= width) break;\n const w = docked[j][1];\n settingsWidth -= w;\n }\n\n const overflowItems = new Array<string>();\n for (i = j; i < docked.length; i++) {\n overflowItems.push(docked[i][0]);\n }\n return overflowItems;\n}\n\nfunction isItemInOverflow(\n id: string,\n overflowItemIds: ReadonlyArray<string> | undefined\n) {\n if (!overflowItemIds || 0 === overflowItemIds.length) return false;\n return !!overflowItemIds.find((value) => value === id);\n}\n\n/** Properties for the [[StatusBarComposer]] React components\n * @public\n */\nexport interface StatusBarComposerProps extends CommonProps {\n /** Status Bar items */\n items: StatusBarItem[];\n\n /** CSS class name override for the overall Status Bar */\n mainClassName?: string;\n /** CSS class name override for the left section */\n leftClassName?: string;\n /** CSS class name override for the center section */\n centerClassName?: string;\n /** CSS class name override for the right section */\n rightClassName?: string;\n}\n\n/** Component to load components into the [[StatusBar]].\n * @public\n */\nexport function StatusBarComposer(props: StatusBarComposerProps) {\n const {\n className,\n style,\n items,\n mainClassName,\n leftClassName,\n centerClassName,\n rightClassName,\n } = props;\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n () => new StatusBarItemsManager(items)\n );\n const [isOverflowPanelOpen, setIsOverflowPanelOpen] = React.useState(false);\n const containerWidth = React.useRef<number | undefined>(undefined);\n\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setDefaultItemsManager(new StatusBarItemsManager(items));\n }\n }, [items]);\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\n const addonSyncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const statusBarItems = React.useMemo(\n () => combineItems(defaultItems, addonItems),\n [defaultItems, addonItems]\n );\n const entryWidths = React.useRef(new Map<string, number | undefined>());\n const overflowWidth = React.useRef<number | undefined>(undefined);\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\n\n const calculateOverflow = React.useCallback(() => {\n const widths = verifiedMapEntries(entryWidths.current);\n if (\n containerWidth.current === undefined ||\n widths === undefined ||\n overflowWidth.current === undefined\n ) {\n setOverflown(new Array<string>());\n return;\n }\n\n // Calculate overflow.\n const newOverflown = getItemToPlaceInOverflow(\n containerWidth.current,\n [...widths.entries()],\n overflowWidth.current\n );\n if (!eqlOverflown(overflown, newOverflown)) {\n setOverflown(newOverflown);\n // istanbul ignore next\n if (0 === newOverflown.length && isOverflowPanelOpen)\n setIsOverflowPanelOpen(false);\n }\n }, [isOverflowPanelOpen, overflown]);\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowWidth.current !== w;\n overflowWidth.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = entryWidths.current.get(key);\n if (undefined === oldW || Math.abs(oldW - w) > 2) {\n entryWidths.current.set(key, w);\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n const getSectionName = (section: StatusBarSection) => {\n switch (section) {\n case StatusBarSection.Center:\n case StatusBarSection.Stage:\n return \"status-bar-center\";\n case StatusBarSection.Context:\n return \"status-bar-right-start\";\n case StatusBarSection.Right:\n case StatusBarSection.Selection:\n return \"status-bar-right-end\";\n case StatusBarSection.Left:\n case StatusBarSection.Message:\n return \"status-bar-left\";\n }\n };\n\n /** generate a wrapped status bar entry that will report its size. */\n const getComponent = React.useCallback(\n (\n item: StatusBarItem,\n key: string,\n itemPriority: number,\n section: StatusBarSection\n ): React.ReactNode => {\n const providerId = isProviderItem(item) ? item.providerId : undefined;\n return (\n <DockedStatusBarEntry\n key={key}\n entryKey={key}\n getOnResize={handleEntryResize}\n >\n <DockedStatusBarItem\n key={key}\n itemId={item.id}\n itemPriority={itemPriority}\n providerId={providerId}\n section={getSectionName(section)}\n >\n {isStatusBarCustomItem(item) && item.content}\n {isStatusBarActionItem(item) && (\n <StatusBarActionItemComponent {...item} />\n )}\n {isStatusBarLabelItem(item) && (\n <StatusBarLabelItemComponent {...item} />\n )}\n </DockedStatusBarItem>\n </DockedStatusBarEntry>\n );\n },\n [handleEntryResize]\n );\n\n const getSectionItems = React.useCallback(\n (section: StatusBarSection): React.ReactNode[] => {\n const sectionItems = statusBarItems\n .filter(\n (item) =>\n (item.section as number) === section &&\n !isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort((a, b) => a.itemPriority - b.itemPriority);\n\n return sectionItems.map((sectionItem) => (\n <React.Fragment key={sectionItem.id}>\n {getComponent(\n sectionItem,\n sectionItem.id,\n sectionItem.itemPriority,\n sectionItem.section\n )}\n </React.Fragment>\n ));\n },\n [statusBarItems, overflown, getComponent]\n );\n\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\n const itemsInOverflow = statusBarItems\n .filter(\n (item) =>\n isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort(\n (a, b) =>\n getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)\n )\n .reverse();\n\n return itemsInOverflow.map((item) => (\n <React.Fragment key={item.id}>\n {getComponent(item, item.id, item.itemPriority, item.section)}\n </React.Fragment>\n ));\n }, [statusBarItems, overflown, getComponent]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n if (\n undefined === containerWidth.current ||\n Math.abs(containerWidth.current - w) > 2\n ) {\n containerWidth.current = w;\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const targetRef = React.useRef<HTMLDivElement>(null);\n const resizeObserverRef = useResizeObserver(handleContainerResize);\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\n const refs = useRefs(containerRef, resizeObserverRef);\n\n const onOverflowClick = React.useCallback(() => {\n setIsOverflowPanelOpen((prev) => !prev);\n }, []);\n // istanbul ignore next\n const handleOnClose = React.useCallback(() => {\n setIsOverflowPanelOpen(false);\n }, []);\n const leftItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Left),\n [getSectionItems]\n );\n const centerItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Center),\n [getSectionItems]\n );\n const rightItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Right),\n [getSectionItems]\n );\n const contextItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Context),\n [getSectionItems]\n );\n const overflowItems = React.useMemo(\n () => getOverflowItems(),\n [getOverflowItems]\n );\n\n const containerClassName = classnames(\"uifw-statusbar-docked\", className);\n\n return (\n <div\n className={containerClassName}\n ref={refs}\n style={style}\n role=\"presentation\"\n >\n <StatusBarSpaceBetween className={mainClassName}>\n <StatusBarLeftSection className={leftClassName}>\n {leftItems}\n </StatusBarLeftSection>\n <StatusBarCenterSection className={centerClassName}>\n {centerItems}\n {contextItems}\n </StatusBarCenterSection>\n <StatusBarRightSection className={rightClassName}>\n {rightItems}\n {(!overflown || overflown.length > 0) && (\n <>\n <StatusBarOverflow\n onClick={onOverflowClick}\n onResize={handleOverflowResize}\n ref={targetRef}\n />\n {overflowItems.length > 0 &&\n isOverflowPanelOpen &&\n targetRef.current && (\n <StatusBarOverflowPanel\n onClose={handleOnClose}\n open={true}\n target={targetRef.current}\n >\n <div\n className=\"uifw-statusbar-overflow-items-container\"\n data-testid=\"uifw-statusbar-overflow-items-container\"\n >\n {overflowItems.map((overflowEntry) => overflowEntry)}\n </div>\n </StatusBarOverflowPanel>\n )}\n </>\n )}\n </StatusBarRightSection>\n </StatusBarSpaceBetween>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { useRefs, useResizeObserver } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { eqlOverflown } from \"../layout/tool-settings/Docked\";\nimport { StatusBarLabelIndicator } from \"../statusbar/LabelIndicator\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\nimport { StatusBarOverflow } from \"./Overflow\";\nimport { StatusBarOverflowPanel } from \"./OverflowPanel\";\nimport {\n StatusBarCenterSection,\n StatusBarLeftSection,\n StatusBarRightSection,\n StatusBarSpaceBetween,\n} from \"./StatusBar\";\nimport type {\n StatusBarActionItem,\n StatusBarItem,\n StatusBarLabelItem,\n} from \"./StatusBarItem\";\nimport {\n isStatusBarActionItem,\n isStatusBarCustomItem,\n isStatusBarLabelItem,\n StatusBarSection,\n} from \"./StatusBarItem\";\nimport { StatusBarItemsManager } from \"./StatusBarItemsManager\";\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems\";\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems\";\n\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\nfunction getCombinedSectionItemPriority(item: StatusBarItem) {\n let sectionValue = 0;\n if (item.section === StatusBarSection.Center) sectionValue = 100000;\n else if (item.section === StatusBarSection.Context) sectionValue = 200000;\n else if (item.section === StatusBarSection.Right) sectionValue = 300000;\n return sectionValue + item.itemPriority;\n}\n\ninterface DockedStatusBarEntryContextArg {\n readonly isOverflown: boolean;\n readonly onResize: (w: number) => void;\n}\n\nconst DockedStatusBarEntryContext =\n React.createContext<DockedStatusBarEntryContextArg>(null!);\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\n\n/** @internal */\nexport function useStatusBarEntry() {\n return React.useContext(DockedStatusBarEntryContext);\n}\n\n/** Properties of [[DockedStatusBarItem]] component.\n * @internal future\n */\nexport interface StatusBarItemProps extends CommonProps {\n /** Tool setting content. */\n children?: React.ReactNode;\n itemPriority?: number;\n providerId?: string;\n section?: string;\n}\n\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\n * @internal future\n */\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\n const { onResize } = useStatusBarEntry();\n const ref = useResizeObserver<HTMLDivElement>(onResize);\n const className = classnames(\n \"uifw-statusbar-item-container\",\n props.className\n );\n return (\n <div\n data-item-id={props.itemId}\n data-item-type=\"status-bar-item\"\n data-item-location={props.section}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n className={className}\n ref={ref}\n style={props.style}\n >\n {props.children}\n </div>\n );\n}\n\ninterface DockedStatusBarEntryProps {\n children?: React.ReactNode;\n entryKey: string;\n getOnResize: (key: string) => (w: number) => void;\n}\n\n/** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */\nfunction DockedStatusBarEntry({\n children,\n entryKey,\n getOnResize,\n}: DockedStatusBarEntryProps) {\n const onResize = React.useMemo(\n () => getOnResize(entryKey),\n [getOnResize, entryKey]\n );\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(\n () => ({\n isOverflown: false,\n onResize,\n }),\n [onResize]\n );\n return (\n <DockedStatusBarEntryContext.Provider value={entry}>\n {children}\n </DockedStatusBarEntryContext.Provider>\n );\n}\n\n/** Private function to set up sync event monitoring of statusbar items */\nfunction useStatusBarItemSyncEffect(\n itemsManager: StatusBarItemsManager,\n syncIdsOfInterest: string[]\n) {\n React.useEffect(() => {\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\n if (0 === syncIdsOfInterest.length) return;\n\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n // process each item that has interest\n itemsManager.refreshAffectedItems(args.eventIds);\n }\n };\n\n // Note: that items with conditions have condition run when loaded into the items manager\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n return () => {\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\n };\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\n}\n\nfunction StatusBarLabelItemComponent(props: StatusBarLabelItem) {\n const label = ConditionalStringValue.getValue(props.label);\n return <StatusBarLabelIndicator iconSpec={props.icon} label={label} />;\n}\n\nfunction StatusBarActionItemComponent(props: StatusBarActionItem) {\n const title = ConditionalStringValue.getValue(props.tooltip);\n return (\n <StatusBarLabelIndicator\n title={title}\n onClick={props.execute}\n iconSpec={props.icon}\n />\n );\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n stageItems: ReadonlyArray<StatusBarItem>,\n addonItems: ReadonlyArray<StatusBarItem>\n) {\n const items: StatusBarItem[] = [];\n if (stageItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n stageItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n if (addonItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n addonItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n return items;\n}\n\n/** local function to ensure a width value is defined for a status bar entries. */\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n // istanbul ignore next\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\nfunction getItemToPlaceInOverflow(\n width: number,\n docked: ReadonlyArray<readonly [string, number]>,\n overflowWidth: number\n) {\n let settingsWidth = 0;\n\n let i = 0;\n for (; i < docked.length; i++) {\n const w = docked[i][1];\n const newSettingsWidth = settingsWidth + w;\n if (newSettingsWidth > width) {\n settingsWidth += overflowWidth;\n break;\n }\n settingsWidth = newSettingsWidth;\n }\n\n let j = i;\n for (; j > 0; j--) {\n if (settingsWidth <= width) break;\n const w = docked[j][1];\n settingsWidth -= w;\n }\n\n const overflowItems = new Array<string>();\n for (i = j; i < docked.length; i++) {\n overflowItems.push(docked[i][0]);\n }\n return overflowItems;\n}\n\nfunction isItemInOverflow(\n id: string,\n overflowItemIds: ReadonlyArray<string> | undefined\n) {\n if (!overflowItemIds || 0 === overflowItemIds.length) return false;\n return !!overflowItemIds.find((value) => value === id);\n}\n\n/** Properties for the [[StatusBarComposer]] React components\n * @public\n */\nexport interface StatusBarComposerProps extends CommonProps {\n /** Status Bar items */\n items: StatusBarItem[];\n\n /** CSS class name override for the overall Status Bar */\n mainClassName?: string;\n /** CSS class name override for the left section */\n leftClassName?: string;\n /** CSS class name override for the center section */\n centerClassName?: string;\n /** CSS class name override for the right section */\n rightClassName?: string;\n}\n\n/** Component to load components into the [[StatusBar]].\n * @public\n */\nexport function StatusBarComposer(props: StatusBarComposerProps) {\n const {\n className,\n style,\n items,\n mainClassName,\n leftClassName,\n centerClassName,\n rightClassName,\n } = props;\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n () => new StatusBarItemsManager(items)\n );\n const [isOverflowPanelOpen, setIsOverflowPanelOpen] = React.useState(false);\n const containerWidth = React.useRef<number | undefined>(undefined);\n\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setDefaultItemsManager(new StatusBarItemsManager(items));\n }\n }, [items]);\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\n const addonSyncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const statusBarItems = React.useMemo(\n () => combineItems(defaultItems, addonItems),\n [defaultItems, addonItems]\n );\n const entryWidths = React.useRef(new Map<string, number | undefined>());\n const overflowWidth = React.useRef<number | undefined>(undefined);\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\n\n const calculateOverflow = React.useCallback(() => {\n const widths = verifiedMapEntries(entryWidths.current);\n if (\n containerWidth.current === undefined ||\n widths === undefined ||\n overflowWidth.current === undefined\n ) {\n setOverflown(new Array<string>());\n return;\n }\n\n // Calculate overflow.\n const newOverflown = getItemToPlaceInOverflow(\n containerWidth.current,\n [...widths.entries()],\n overflowWidth.current\n );\n if (!eqlOverflown(overflown, newOverflown)) {\n setOverflown(newOverflown);\n // istanbul ignore next\n if (0 === newOverflown.length && isOverflowPanelOpen)\n setIsOverflowPanelOpen(false);\n }\n }, [isOverflowPanelOpen, overflown]);\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowWidth.current !== w;\n overflowWidth.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = entryWidths.current.get(key);\n if (undefined === oldW || Math.abs(oldW - w) > 2) {\n entryWidths.current.set(key, w);\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n const getSectionName = (section: StatusBarSection) => {\n switch (section) {\n case StatusBarSection.Center:\n case StatusBarSection.Stage:\n return \"status-bar-center\";\n case StatusBarSection.Context:\n return \"status-bar-right-start\";\n case StatusBarSection.Right:\n case StatusBarSection.Selection:\n return \"status-bar-right-end\";\n case StatusBarSection.Left:\n case StatusBarSection.Message:\n return \"status-bar-left\";\n }\n };\n\n /** generate a wrapped status bar entry that will report its size. */\n const getComponent = React.useCallback(\n (\n item: StatusBarItem,\n key: string,\n itemPriority: number,\n section: StatusBarSection\n ): React.ReactNode => {\n const providerId = isProviderItem(item) ? item.providerId : undefined;\n return (\n <DockedStatusBarEntry\n key={key}\n entryKey={key}\n getOnResize={handleEntryResize}\n >\n <DockedStatusBarItem\n key={key}\n itemId={item.id}\n itemPriority={itemPriority}\n providerId={providerId}\n section={getSectionName(section)}\n >\n {isStatusBarCustomItem(item) && item.content}\n {isStatusBarActionItem(item) && (\n <StatusBarActionItemComponent {...item} />\n )}\n {isStatusBarLabelItem(item) && (\n <StatusBarLabelItemComponent {...item} />\n )}\n </DockedStatusBarItem>\n </DockedStatusBarEntry>\n );\n },\n [handleEntryResize]\n );\n\n const getSectionItems = React.useCallback(\n (section: StatusBarSection): React.ReactNode[] => {\n const sectionItems = statusBarItems\n .filter(\n (item) =>\n item.section.valueOf() === section.valueOf() &&\n !isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort((a, b) => a.itemPriority - b.itemPriority);\n\n return sectionItems.map((sectionItem) => (\n <React.Fragment key={sectionItem.id}>\n {getComponent(\n sectionItem,\n sectionItem.id,\n sectionItem.itemPriority,\n sectionItem.section\n )}\n </React.Fragment>\n ));\n },\n [statusBarItems, overflown, getComponent]\n );\n\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\n const itemsInOverflow = statusBarItems\n .filter(\n (item) =>\n isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort(\n (a, b) =>\n getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)\n )\n .reverse();\n\n return itemsInOverflow.map((item) => (\n <React.Fragment key={item.id}>\n {getComponent(item, item.id, item.itemPriority, item.section)}\n </React.Fragment>\n ));\n }, [statusBarItems, overflown, getComponent]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n if (\n undefined === containerWidth.current ||\n Math.abs(containerWidth.current - w) > 2\n ) {\n containerWidth.current = w;\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const targetRef = React.useRef<HTMLDivElement>(null);\n const resizeObserverRef = useResizeObserver(handleContainerResize);\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\n const refs = useRefs(containerRef, resizeObserverRef);\n\n const onOverflowClick = React.useCallback(() => {\n setIsOverflowPanelOpen((prev) => !prev);\n }, []);\n // istanbul ignore next\n const handleOnClose = React.useCallback(() => {\n setIsOverflowPanelOpen(false);\n }, []);\n const leftItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Left),\n [getSectionItems]\n );\n const centerItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Center),\n [getSectionItems]\n );\n const rightItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Right),\n [getSectionItems]\n );\n const contextItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Context),\n [getSectionItems]\n );\n const overflowItems = React.useMemo(\n () => getOverflowItems(),\n [getOverflowItems]\n );\n\n const containerClassName = classnames(\"uifw-statusbar-docked\", className);\n\n return (\n <div\n className={containerClassName}\n ref={refs}\n style={style}\n role=\"presentation\"\n >\n <StatusBarSpaceBetween className={mainClassName}>\n <StatusBarLeftSection className={leftClassName}>\n {leftItems}\n </StatusBarLeftSection>\n <StatusBarCenterSection className={centerClassName}>\n {centerItems}\n {contextItems}\n </StatusBarCenterSection>\n <StatusBarRightSection className={rightClassName}>\n {rightItems}\n {(!overflown || overflown.length > 0) && (\n <>\n <StatusBarOverflow\n onClick={onOverflowClick}\n onResize={handleOverflowResize}\n ref={targetRef}\n />\n {overflowItems.length > 0 &&\n isOverflowPanelOpen &&\n targetRef.current && (\n <StatusBarOverflowPanel\n onClose={handleOnClose}\n open={true}\n target={targetRef.current}\n >\n <div\n className=\"uifw-statusbar-overflow-items-container\"\n data-testid=\"uifw-statusbar-overflow-items-container\"\n >\n {overflowItems.map((overflowEntry) => overflowEntry)}\n </div>\n </StatusBarOverflowPanel>\n )}\n </>\n )}\n </StatusBarRightSection>\n </StatusBarSpaceBetween>\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAUH;;GAEG;AACH,MAAM,CAAN,IAAY,gBAeX;AAfD,WAAY,gBAAgB;IAC1B,4CAA4C;IAC5C,6DAAW,CAAA;IACX,4CAA4C;IAC5C,uDAAQ,CAAA;IACR,mCAAmC;IACnC,yDAAS,CAAA;IACT,mCAAmC;IACnC,2DAAU,CAAA;IACV,sCAAsC;IACtC,iEAAa,CAAA;IACb,sCAAsC;IACtC,yDAAS,CAAA;IACT,4CAA4C;IAC5C,6DAAW,CAAA;AACb,CAAC,EAfW,gBAAgB,KAAhB,gBAAgB,QAe3B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,8EAA8E;IAC9E,2DAAI,CAAA;IACJ,6CAA6C;IAC7C,6DAAK,CAAA;AACP,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AA8DD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAmB;IAEnB,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAmB;IAEnB,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAmB;IAEnB,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport type * as React from \"react\";\nimport type {\n BadgeType,\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { IconSpec } from \"@itwin/core-react\";\n\n/** Status bar Groups/Sections from Left to Right\n * @public\n */\nexport enum StatusBarSection {\n /** area for tool assistance and messages */\n Message = 0,\n /** area for tool assistance and messages */\n Left = 0,\n /** items specific to stage/task */\n Stage = 1,\n /** items specific to stage/task */\n Center = 1,\n /** Select scope and selection info */\n Selection = 2,\n /** Select scope and selection info */\n Right = 2,\n /** items that only show based on context */\n Context = 3,\n}\n\n/** Defines which side of Icon where label is placed\n * @public\n */\nexport enum StatusBarLabelSide {\n /** Label is placed left side of icon. This is the default if not specified */\n Left,\n /** Label is placed on right side of icon. */\n Right,\n}\n\n/** Describes the data needed to insert a button into the status bar.\n * @public\n */\nexport interface CommonStatusBarItem {\n /** Required unique id of the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */\n readonly id: string;\n /** Describes badge. Renders no badge if not specified. */\n readonly badge?: BadgeType;\n /** Describes if the item is visible or hidden. The default is for the item to be visible. */\n readonly isHidden?: boolean | ConditionalBooleanValue;\n /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */\n readonly isDisabled?: boolean | ConditionalBooleanValue;\n /** Priority within a section (recommend using values 1 through 100). */\n readonly itemPriority: number;\n /** status bar section */\n readonly section: StatusBarSection;\n}\n\n/** Describes the data needed to insert an action item into the status bar.\n * @public\n */\nexport interface StatusBarActionItem extends CommonStatusBarItem {\n /** method to execute when icon is pressed */\n readonly execute: () => void;\n /** Icon of a status bar item. */\n readonly icon?: IconSpec;\n /** Label. */\n readonly label?: string | ConditionalStringValue;\n /** tooltip. */\n readonly tooltip?: string | ConditionalStringValue;\n}\n\n/** Describes the data needed to insert a label item with an optional icon into the status bar.\n * @public\n */\nexport interface StatusBarLabelItem extends CommonStatusBarItem {\n /** Icon of a status bar item. */\n readonly icon?: IconSpec;\n /** Label. */\n readonly label: string | ConditionalStringValue;\n /** Defines which side of icon to display label if icon is defined. */\n readonly labelSide?: StatusBarLabelSide;\n}\n\n/** Describes the data needed to insert an item into the StatusBar.\n * @public\n */\nexport interface StatusBarCustomItem extends CommonStatusBarItem {\n /** Content of the StatusBar item. */\n readonly content: React.ReactNode;\n}\n\n/** Describes the data needed to insert a button into the status bar.\n * @public\n */\nexport type StatusBarItem =\n | StatusBarActionItem\n | StatusBarLabelItem\n | StatusBarCustomItem;\n\n/** StatusBarActionItem type guard.\n * @public\n */\nexport function isStatusBarActionItem(\n item: StatusBarItem\n): item is StatusBarActionItem {\n return \"execute\" in item;\n}\n\n/** StatusBarLabelItem type guard.\n * @public\n */\nexport function isStatusBarLabelItem(\n item: StatusBarItem\n): item is StatusBarLabelItem {\n return !isStatusBarActionItem(item) && \"label\" in item;\n}\n\n/** StatusBarCustomItem type guard.\n * @public\n */\nexport function isStatusBarCustomItem(\n item: StatusBarItem\n): item is StatusBarCustomItem {\n return \"content\" in item;\n}\n"]}
1
+ {"version":3,"file":"StatusBarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAUH;;GAEG;AACH,MAAM,CAAN,IAAY,gBAeX;AAfD,WAAY,gBAAgB;IAC1B,4CAA4C;IAC5C,6DAAW,CAAA;IACX,4CAA4C;IAC5C,uDAAQ,CAAA;IACR,mCAAmC;IACnC,yDAAS,CAAA;IACT,mCAAmC;IACnC,2DAAU,CAAA;IACV,sCAAsC;IACtC,iEAAa,CAAA;IACb,sCAAsC;IACtC,yDAAS,CAAA;IACT,4CAA4C;IAC5C,6DAAW,CAAA;AACb,CAAC,EAfW,gBAAgB,KAAhB,gBAAgB,QAe3B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,8EAA8E;IAC9E,2DAAI,CAAA;IACJ,6CAA6C;IAC7C,6DAAK,CAAA;AACP,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AA8DD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAmB;IAEnB,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAmB;IAEnB,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAmB;IAEnB,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport type * as React from \"react\";\nimport type {\n BadgeType,\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { IconSpec } from \"@itwin/core-react\";\n\n/** Status bar Groups/Sections from Left to Right\n * @public\n */\nexport enum StatusBarSection {\n /** area for tool assistance and messages */\n Message = 0,\n /** area for tool assistance and messages */\n Left = 0, // eslint-disable-line @typescript-eslint/no-duplicate-enum-values\n /** items specific to stage/task */\n Stage = 1,\n /** items specific to stage/task */\n Center = 1, // eslint-disable-line @typescript-eslint/no-duplicate-enum-values\n /** Select scope and selection info */\n Selection = 2,\n /** Select scope and selection info */\n Right = 2, // eslint-disable-line @typescript-eslint/no-duplicate-enum-values\n /** items that only show based on context */\n Context = 3,\n}\n\n/** Defines which side of Icon where label is placed\n * @public\n */\nexport enum StatusBarLabelSide {\n /** Label is placed left side of icon. This is the default if not specified */\n Left,\n /** Label is placed on right side of icon. */\n Right,\n}\n\n/** Describes the data needed to insert a button into the status bar.\n * @public\n */\nexport interface CommonStatusBarItem {\n /** Required unique id of the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */\n readonly id: string;\n /** Describes badge. Renders no badge if not specified. */\n readonly badge?: BadgeType;\n /** Describes if the item is visible or hidden. The default is for the item to be visible. */\n readonly isHidden?: boolean | ConditionalBooleanValue;\n /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */\n readonly isDisabled?: boolean | ConditionalBooleanValue;\n /** Priority within a section (recommend using values 1 through 100). */\n readonly itemPriority: number;\n /** status bar section */\n readonly section: StatusBarSection;\n}\n\n/** Describes the data needed to insert an action item into the status bar.\n * @public\n */\nexport interface StatusBarActionItem extends CommonStatusBarItem {\n /** method to execute when icon is pressed */\n readonly execute: () => void;\n /** Icon of a status bar item. */\n readonly icon?: IconSpec;\n /** Label. */\n readonly label?: string | ConditionalStringValue;\n /** tooltip. */\n readonly tooltip?: string | ConditionalStringValue;\n}\n\n/** Describes the data needed to insert a label item with an optional icon into the status bar.\n * @public\n */\nexport interface StatusBarLabelItem extends CommonStatusBarItem {\n /** Icon of a status bar item. */\n readonly icon?: IconSpec;\n /** Label. */\n readonly label: string | ConditionalStringValue;\n /** Defines which side of icon to display label if icon is defined. */\n readonly labelSide?: StatusBarLabelSide;\n}\n\n/** Describes the data needed to insert an item into the StatusBar.\n * @public\n */\nexport interface StatusBarCustomItem extends CommonStatusBarItem {\n /** Content of the StatusBar item. */\n readonly content: React.ReactNode;\n}\n\n/** Describes the data needed to insert a button into the status bar.\n * @public\n */\nexport type StatusBarItem =\n | StatusBarActionItem\n | StatusBarLabelItem\n | StatusBarCustomItem;\n\n/** StatusBarActionItem type guard.\n * @public\n */\nexport function isStatusBarActionItem(\n item: StatusBarItem\n): item is StatusBarActionItem {\n return \"execute\" in item;\n}\n\n/** StatusBarLabelItem type guard.\n * @public\n */\nexport function isStatusBarLabelItem(\n item: StatusBarItem\n): item is StatusBarLabelItem {\n return !isStatusBarActionItem(item) && \"label\" in item;\n}\n\n/** StatusBarCustomItem type guard.\n * @public\n */\nexport function isStatusBarCustomItem(\n item: StatusBarItem\n): item is StatusBarCustomItem {\n return \"content\" in item;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/ActivityCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,4BA0DrD"}
1
+ {"version":3,"file":"ActivityCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/ActivityCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,4BA2DrD"}
@@ -38,6 +38,7 @@ export function ActivityCenterField(props) {
38
38
  if (!isVisible || !isPercentageValid)
39
39
  return null;
40
40
  const moreDetails = UiFramework.translate("activityCenter.moreDetails");
41
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
41
42
  const tooltip = `${message}-${moreDetails}`;
42
43
  return (React.createElement(Centered, { className: classnames("open-activity-message", props.className), style: {
43
44
  height: "100%",
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityCenter.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/ActivityCenter.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAoB,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,CAAC,CAAC,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5B,WAAW,CAAC,SAAS,CAAC,gCAAgC,CAAC,CACxD,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,cAAc,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACvE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,cAAc,CAAC,+BAA+B,CAAC,WAAW,CAAC,GAAG,EAAE;YACrE,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,cAAc,CAAC,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;IAC7D,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAElD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC;IAE5C,OAAO,CACL,oBAAC,QAAQ,IACP,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,KAAK,CAAC,SAAS,CAAC,EAC/D,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,KAAK;YACjB,GAAG,KAAK,CAAC,KAAK;SACf,EACD,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,OAAO;QAEd,oBAAC,cAAc,IACb,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;aACV,EACD,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE;gBACN,oBAAC,IAAI,IAAC,OAAO,EAAC,OAAO,EAAC,GAAG,EAAE,CAAC;oBACzB,UAAU;;oBAAG,KAAK,CACd;aACR,GACD,CACO,CACZ,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Centered } from \"@itwin/core-react\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport type { NotifyMessageType } from \"../messages/ReactNotifyMessageDetails\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ProgressLinear, Text } from \"@itwin/itwinui-react\";\n\n/** Activity Center Field React component.\n * @public\n */\nexport function ActivityCenterField(props: CommonProps) {\n const [message, setMessage] = React.useState<NotifyMessageType>(\"\");\n const [percentage, setPercentage] = React.useState<number>(0);\n const [isVisible, setIsVisible] = React.useState<boolean>(true);\n const [label] = React.useState(\n UiFramework.translate(\"activityCenter.percentComplete\")\n );\n\n React.useEffect(() => {\n return MessageManager.onActivityMessageUpdatedEvent.addListener((args) => {\n setMessage(args.message);\n setPercentage(args.percentage);\n setIsVisible(true);\n });\n }, []);\n\n React.useEffect(() => {\n return MessageManager.onActivityMessageCancelledEvent.addListener(() => {\n setIsVisible(false);\n });\n }, []);\n\n const openActivityMessage = () => {\n MessageManager.setupActivityMessageValues(message, percentage, true);\n };\n\n const isPercentageValid = percentage > 0 && percentage < 100;\n if (!isVisible || !isPercentageValid) return null;\n\n const moreDetails = UiFramework.translate(\"activityCenter.moreDetails\");\n const tooltip = `${message}-${moreDetails}`;\n\n return (\n <Centered\n className={classnames(\"open-activity-message\", props.className)}\n style={{\n height: \"100%\",\n minWidth: 120,\n padding: \"0 8px\",\n alignItems: \"end\",\n ...props.style,\n }}\n onClick={openActivityMessage}\n title={tooltip}\n >\n <ProgressLinear\n style={{\n flex: \"1\",\n }}\n value={percentage}\n labels={[\n <Text variant=\"small\" key={0}>\n {percentage} {label}\n </Text>,\n ]}\n />\n </Centered>\n );\n}\n"]}
1
+ {"version":3,"file":"ActivityCenter.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/ActivityCenter.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAoB,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,CAAC,CAAC,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5B,WAAW,CAAC,SAAS,CAAC,gCAAgC,CAAC,CACxD,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,cAAc,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACvE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,cAAc,CAAC,+BAA+B,CAAC,WAAW,CAAC,GAAG,EAAE;YACrE,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,cAAc,CAAC,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;IAC7D,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAElD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACxE,gEAAgE;IAChE,MAAM,OAAO,GAAG,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC;IAE5C,OAAO,CACL,oBAAC,QAAQ,IACP,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,KAAK,CAAC,SAAS,CAAC,EAC/D,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,KAAK;YACjB,GAAG,KAAK,CAAC,KAAK;SACf,EACD,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,OAAO;QAEd,oBAAC,cAAc,IACb,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;aACV,EACD,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE;gBACN,oBAAC,IAAI,IAAC,OAAO,EAAC,OAAO,EAAC,GAAG,EAAE,CAAC;oBACzB,UAAU;;oBAAG,KAAK,CACd;aACR,GACD,CACO,CACZ,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Centered } from \"@itwin/core-react\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport type { NotifyMessageType } from \"../messages/ReactNotifyMessageDetails\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ProgressLinear, Text } from \"@itwin/itwinui-react\";\n\n/** Activity Center Field React component.\n * @public\n */\nexport function ActivityCenterField(props: CommonProps) {\n const [message, setMessage] = React.useState<NotifyMessageType>(\"\");\n const [percentage, setPercentage] = React.useState<number>(0);\n const [isVisible, setIsVisible] = React.useState<boolean>(true);\n const [label] = React.useState(\n UiFramework.translate(\"activityCenter.percentComplete\")\n );\n\n React.useEffect(() => {\n return MessageManager.onActivityMessageUpdatedEvent.addListener((args) => {\n setMessage(args.message);\n setPercentage(args.percentage);\n setIsVisible(true);\n });\n }, []);\n\n React.useEffect(() => {\n return MessageManager.onActivityMessageCancelledEvent.addListener(() => {\n setIsVisible(false);\n });\n }, []);\n\n const openActivityMessage = () => {\n MessageManager.setupActivityMessageValues(message, percentage, true);\n };\n\n const isPercentageValid = percentage > 0 && percentage < 100;\n if (!isVisible || !isPercentageValid) return null;\n\n const moreDetails = UiFramework.translate(\"activityCenter.moreDetails\");\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n const tooltip = `${message}-${moreDetails}`;\n\n return (\n <Centered\n className={classnames(\"open-activity-message\", props.className)}\n style={{\n height: \"100%\",\n minWidth: 120,\n padding: \"0 8px\",\n alignItems: \"end\",\n ...props.style,\n }}\n onClick={openActivityMessage}\n title={tooltip}\n >\n <ProgressLinear\n style={{\n flex: \"1\",\n }}\n value={percentage}\n labels={[\n <Text variant=\"small\" key={0}>\n {percentage} {label}\n </Text>,\n ]}\n />\n </Centered>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkToolAdmin.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/tools/FrameworkToolAdmin.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,kCAAkC;IACZ,kBAAkB,CACtC,CAAC,EAAE,aAAa,EAChB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC;CAiBpB"}
1
+ {"version":3,"file":"FrameworkToolAdmin.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/tools/FrameworkToolAdmin.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,kCAAkC;IACZ,kBAAkB,CACtC,CAAC,EAAE,aAAa,EAChB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC;CAoBpB"}
@@ -25,7 +25,8 @@ export class FrameworkToolAdmin extends ToolAdmin {
25
25
  async processShortcutKey(e, wentDown) {
26
26
  let handled = false;
27
27
  if (wentDown && !UiFramework.isContextMenuOpen) {
28
- if (UiFramework.keyboardShortcuts.isFocusOnHome && e.key !== Key.Escape) {
28
+ if (UiFramework.keyboardShortcuts.isFocusOnHome &&
29
+ e.key !== Key.Escape.valueOf()) {
29
30
  UiFramework.keyboardShortcuts.processKey(e.key, e.altKey, e.ctrlKey, e.shiftKey);
30
31
  handled = true;
31
32
  }