@itwin/appui-react 3.3.0-dev.9 → 3.4.0-dev.2

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 (389) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +3 -0
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +9 -0
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +2 -2
  7. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  9. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +1 -1
  10. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  11. package/lib/cjs/appui-react/configurableui/state.d.ts +4 -3
  12. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/configurableui/state.js +6 -1
  14. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  15. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/content/ContentGroup.js +0 -2
  17. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  18. package/lib/cjs/appui-react/content/ContentLayout.d.ts +4 -1
  19. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  21. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/content/ContentViewManager.js +6 -2
  23. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  24. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  25. package/lib/cjs/appui-react/feedback/ElementTooltip.js +1 -0
  26. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  27. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +3 -1
  28. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/frontstage/Frontstage.js +1 -1
  30. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +14 -3
  33. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  34. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +2 -0
  35. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  36. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +4 -3
  37. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  38. package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +2 -0
  39. package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.json +2 -0
  40. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +49 -44
  42. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  43. package/lib/cjs/appui-react/imodel-components/models-tree/Utils.d.ts +10 -0
  44. package/lib/cjs/appui-react/imodel-components/models-tree/Utils.d.ts.map +1 -0
  45. package/lib/cjs/appui-react/imodel-components/models-tree/Utils.js +23 -0
  46. package/lib/cjs/appui-react/imodel-components/models-tree/Utils.js.map +1 -0
  47. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +26 -0
  48. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/messages/ActivityMessage.js +64 -5
  50. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  51. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
  52. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +3 -11
  54. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  55. package/lib/cjs/appui-react/messages/MessageManager.d.ts +17 -0
  56. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  57. package/lib/cjs/appui-react/messages/MessageManager.js +44 -0
  58. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  59. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
  60. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
  61. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js +33 -28
  62. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  63. package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
  64. package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
  65. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js +1 -0
  66. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  67. package/lib/cjs/appui-react/messages/StickyMessage.d.ts +1 -0
  68. package/lib/cjs/appui-react/messages/StickyMessage.d.ts.map +1 -1
  69. package/lib/cjs/appui-react/messages/StickyMessage.js +8 -6
  70. package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
  71. package/lib/cjs/appui-react/messages/ToastMessage.d.ts +1 -0
  72. package/lib/cjs/appui-react/messages/ToastMessage.d.ts.map +1 -1
  73. package/lib/cjs/appui-react/messages/ToastMessage.js +7 -5
  74. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  75. package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
  76. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +13 -10
  78. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  79. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  80. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js +4 -1
  82. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  83. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +12 -3
  85. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  86. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +2 -0
  87. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +6 -9
  89. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  90. package/lib/cjs/appui-react/statusbar/StatusBar.js +38 -28
  91. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  92. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  93. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -0
  94. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  95. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts +9 -3
  96. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  98. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
  99. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
  100. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  101. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts +1 -0
  102. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts.map +1 -1
  103. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js +1 -0
  104. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  105. package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts +4 -1
  106. package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/statusfields/ConditionalField.js +4 -1
  108. package/lib/cjs/appui-react/statusfields/ConditionalField.js.map +1 -1
  109. package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts +2 -3
  110. package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts.map +1 -1
  111. package/lib/cjs/appui-react/statusfields/FooterModeField.js +9 -8
  112. package/lib/cjs/appui-react/statusfields/FooterModeField.js.map +1 -1
  113. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -1
  114. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/statusfields/Indicator.js +1 -0
  116. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  117. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +4 -2
  118. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  119. package/lib/cjs/appui-react/statusfields/MessageCenter.js +33 -15
  120. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  121. package/lib/cjs/appui-react/statusfields/PromptField.d.ts.map +1 -1
  122. package/lib/cjs/appui-react/statusfields/PromptField.js +4 -1
  123. package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
  124. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  125. package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -1
  126. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  127. package/lib/cjs/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  128. package/lib/cjs/appui-react/statusfields/SelectionInfo.js +4 -1
  129. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  130. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  131. package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -3
  132. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  133. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +0 -1
  134. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  135. package/lib/cjs/appui-react/statusfields/SnapMode.js +0 -2
  136. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  137. package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts +12 -6
  138. package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/statusfields/StatusFieldProps.js +0 -7
  140. package/lib/cjs/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  141. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +5 -1
  143. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  144. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  145. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +4 -1
  146. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  147. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +1 -0
  148. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  149. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -10
  150. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  151. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  152. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +19 -16
  153. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  154. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  155. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
  156. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  157. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  158. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
  159. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  160. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  161. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -2
  162. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  163. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  164. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +7 -2
  165. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  166. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +2 -0
  167. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/uistate/AppUiSettings.js +4 -0
  169. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  170. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  171. package/lib/cjs/appui-react/widget-panels/Content.js +10 -0
  172. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  173. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +9 -1
  174. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  175. package/lib/cjs/appui-react/widget-panels/Frontstage.js +131 -34
  176. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  177. package/lib/cjs/appui-react/widget-panels/useTransientState.d.ts +8 -0
  178. package/lib/cjs/appui-react/widget-panels/useTransientState.d.ts.map +1 -0
  179. package/lib/cjs/appui-react/widget-panels/useTransientState.js +19 -0
  180. package/lib/cjs/appui-react/widget-panels/useTransientState.js.map +1 -0
  181. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.d.ts.map +1 -1
  182. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js +1 -0
  183. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  184. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +4 -0
  185. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  186. package/lib/cjs/appui-react/widgets/WidgetDef.js +9 -2
  187. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  188. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -1
  190. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  191. package/lib/cjs/appui-react.d.ts +1 -0
  192. package/lib/cjs/appui-react.d.ts.map +1 -1
  193. package/lib/cjs/appui-react.js +1 -0
  194. package/lib/cjs/appui-react.js.map +1 -1
  195. package/lib/esm/appui-react/UiFramework.d.ts +3 -0
  196. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  197. package/lib/esm/appui-react/UiFramework.js +9 -0
  198. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  199. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +2 -2
  200. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  201. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  202. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +1 -1
  203. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  204. package/lib/esm/appui-react/configurableui/state.d.ts +4 -3
  205. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  206. package/lib/esm/appui-react/configurableui/state.js +6 -1
  207. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  208. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  209. package/lib/esm/appui-react/content/ContentGroup.js +0 -2
  210. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  211. package/lib/esm/appui-react/content/ContentLayout.d.ts +4 -1
  212. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  213. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  214. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  215. package/lib/esm/appui-react/content/ContentViewManager.js +6 -2
  216. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  217. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  218. package/lib/esm/appui-react/feedback/ElementTooltip.js +1 -0
  219. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  220. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +3 -1
  221. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  222. package/lib/esm/appui-react/frontstage/Frontstage.js +1 -1
  223. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  224. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  225. package/lib/esm/appui-react/frontstage/FrontstageDef.js +14 -3
  226. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  227. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +2 -0
  228. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  229. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +4 -3
  230. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  231. package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +2 -0
  232. package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.json +2 -0
  233. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  234. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +47 -42
  235. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  236. package/lib/esm/appui-react/imodel-components/models-tree/Utils.d.ts +10 -0
  237. package/lib/esm/appui-react/imodel-components/models-tree/Utils.d.ts.map +1 -0
  238. package/lib/esm/appui-react/imodel-components/models-tree/Utils.js +19 -0
  239. package/lib/esm/appui-react/imodel-components/models-tree/Utils.js.map +1 -0
  240. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +26 -0
  241. package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +1 -1
  242. package/lib/esm/appui-react/messages/ActivityMessage.js +63 -7
  243. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  244. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
  245. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
  246. package/lib/esm/appui-react/messages/ActivityMessagePopup.js +4 -12
  247. package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  248. package/lib/esm/appui-react/messages/MessageManager.d.ts +17 -0
  249. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  250. package/lib/esm/appui-react/messages/MessageManager.js +44 -0
  251. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  252. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
  253. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
  254. package/lib/esm/appui-react/messages/StatusMessageRenderer.js +33 -28
  255. package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  256. package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
  257. package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
  258. package/lib/esm/appui-react/messages/StatusMessagesContainer.js +1 -0
  259. package/lib/esm/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  260. package/lib/esm/appui-react/messages/StickyMessage.d.ts +1 -0
  261. package/lib/esm/appui-react/messages/StickyMessage.d.ts.map +1 -1
  262. package/lib/esm/appui-react/messages/StickyMessage.js +9 -7
  263. package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
  264. package/lib/esm/appui-react/messages/ToastMessage.d.ts +1 -0
  265. package/lib/esm/appui-react/messages/ToastMessage.d.ts.map +1 -1
  266. package/lib/esm/appui-react/messages/ToastMessage.js +8 -6
  267. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  268. package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
  269. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  270. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +13 -10
  271. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  272. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  273. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.d.ts.map +1 -1
  274. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js +4 -1
  275. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  276. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  277. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +12 -3
  278. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  279. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +2 -0
  280. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  281. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +6 -9
  282. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  283. package/lib/esm/appui-react/statusbar/StatusBar.js +38 -28
  284. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  285. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  286. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -0
  287. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  288. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts +9 -3
  289. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
  290. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  291. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
  292. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
  293. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  294. package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts +1 -0
  295. package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts.map +1 -1
  296. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js +1 -0
  297. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  298. package/lib/esm/appui-react/statusfields/ConditionalField.d.ts +4 -1
  299. package/lib/esm/appui-react/statusfields/ConditionalField.d.ts.map +1 -1
  300. package/lib/esm/appui-react/statusfields/ConditionalField.js +4 -1
  301. package/lib/esm/appui-react/statusfields/ConditionalField.js.map +1 -1
  302. package/lib/esm/appui-react/statusfields/FooterModeField.d.ts +2 -3
  303. package/lib/esm/appui-react/statusfields/FooterModeField.d.ts.map +1 -1
  304. package/lib/esm/appui-react/statusfields/FooterModeField.js +9 -8
  305. package/lib/esm/appui-react/statusfields/FooterModeField.js.map +1 -1
  306. package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -1
  307. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  308. package/lib/esm/appui-react/statusfields/Indicator.js +1 -0
  309. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  310. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +4 -2
  311. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  312. package/lib/esm/appui-react/statusfields/MessageCenter.js +33 -15
  313. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  314. package/lib/esm/appui-react/statusfields/PromptField.d.ts.map +1 -1
  315. package/lib/esm/appui-react/statusfields/PromptField.js +4 -1
  316. package/lib/esm/appui-react/statusfields/PromptField.js.map +1 -1
  317. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  318. package/lib/esm/appui-react/statusfields/SectionsField.js +4 -1
  319. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  320. package/lib/esm/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  321. package/lib/esm/appui-react/statusfields/SelectionInfo.js +4 -1
  322. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  323. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  324. package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -3
  325. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  326. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +0 -1
  327. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  328. package/lib/esm/appui-react/statusfields/SnapMode.js +0 -2
  329. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  330. package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts +12 -6
  331. package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts.map +1 -1
  332. package/lib/esm/appui-react/statusfields/StatusFieldProps.js +0 -7
  333. package/lib/esm/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  334. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  335. package/lib/esm/appui-react/statusfields/ViewAttributes.js +5 -1
  336. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  337. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  338. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +4 -1
  339. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  340. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +1 -0
  341. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  342. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -10
  343. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  344. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  345. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +19 -16
  346. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  347. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  348. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
  349. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  350. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  351. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
  352. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  353. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  354. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -2
  355. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  356. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  357. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +7 -2
  358. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  359. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +2 -0
  360. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  361. package/lib/esm/appui-react/uistate/AppUiSettings.js +4 -0
  362. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  363. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  364. package/lib/esm/appui-react/widget-panels/Content.js +10 -0
  365. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  366. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +9 -1
  367. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  368. package/lib/esm/appui-react/widget-panels/Frontstage.js +132 -35
  369. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  370. package/lib/esm/appui-react/widget-panels/useTransientState.d.ts +8 -0
  371. package/lib/esm/appui-react/widget-panels/useTransientState.d.ts.map +1 -0
  372. package/lib/esm/appui-react/widget-panels/useTransientState.js +15 -0
  373. package/lib/esm/appui-react/widget-panels/useTransientState.js.map +1 -0
  374. package/lib/esm/appui-react/widget-panels/useWidgetDirection.d.ts.map +1 -1
  375. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js +1 -0
  376. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  377. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +4 -0
  378. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  379. package/lib/esm/appui-react/widgets/WidgetDef.js +9 -2
  380. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  381. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  382. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -1
  383. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  384. package/lib/esm/appui-react.d.ts +1 -0
  385. package/lib/esm/appui-react.d.ts.map +1 -1
  386. package/lib/esm/appui-react.js +1 -0
  387. package/lib/esm/appui-react.js.map +1 -1
  388. package/lib/public/locales/en/UiFramework.json +6 -1
  389. package/package.json +37 -37
@@ -1 +1 @@
1
- {"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
@@ -6,34 +6,35 @@ import * as React from "react";
6
6
  import { CommonDivProps, CommonProps } from "@itwin/core-react";
7
7
  import { ActivityMessageEventArgs } from "../messages/MessageManager";
8
8
  import { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from "./StatusBarWidgetControl";
9
- import { StatusMessage } from "../messages/StatusMessageManager";
10
9
  /** State for the [[StatusBar]] React component
11
10
  * @internal
12
11
  */
13
12
  interface StatusBarState {
14
13
  openWidget: StatusBarFieldId;
15
- messages: ReadonlyArray<StatusMessage>;
16
14
  activityMessageInfo: ActivityMessageEventArgs | undefined;
17
- isActivityMessageVisible: boolean;
18
- toastTarget: HTMLElement | null;
19
15
  }
20
16
  /** Properties for the [[StatusBar]] React component
21
17
  * @public
22
18
  */
23
19
  export interface StatusBarProps extends CommonProps {
24
20
  widgetControl?: StatusBarWidgetControl;
25
- isInFooterMode: boolean;
21
+ /** Indicates whether the StatusBar is in footer mode
22
+ * @deprecated In upcoming version, widget mode will be removed. Consider this parameter to always be true.
23
+ */
24
+ isInFooterMode?: boolean;
26
25
  }
27
26
  /** Status Bar React component.
28
27
  * @public
29
28
  */
30
29
  export declare class StatusBar extends React.Component<StatusBarProps, StatusBarState> {
30
+ private messages;
31
31
  /** @internal */
32
32
  constructor(props: StatusBarProps);
33
33
  render(): React.ReactNode;
34
34
  componentDidMount(): void;
35
35
  componentWillUnmount(): void;
36
36
  private _handleMessageAddedEvent;
37
+ private _updateMessages;
37
38
  /** Respond to clearing the message list */
38
39
  private _handleMessagesUpdatedEvent;
39
40
  /**
@@ -50,10 +51,6 @@ export declare class StatusBar extends React.Component<StatusBarProps, StatusBar
50
51
  * Ends canceled process and dismisses ActivityMessage
51
52
  */
52
53
  private _cancelActivityMessage;
53
- /**
54
- * Dismisses ActivityMessage
55
- */
56
- private _dismissActivityMessage;
57
54
  private _handleOpenWidget;
58
55
  private _closeMessage;
59
56
  private _handleToastTargetRef;
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAyC,MAAM,4BAA4B,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAKjE;;GAEG;AACH,UAAU,cAAc;IACtB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvC,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC1D,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAE5E,gBAAgB;gBACJ,KAAK,EAAE,cAAc;IAYjB,MAAM,IAAI,KAAK,CAAC,SAAS;IAuCzB,iBAAiB;IAUjB,oBAAoB;IAOpC,OAAO,CAAC,wBAAwB,CAE9B;IAEF,2CAA2C;IAC3C,OAAO,CAAC,2BAA2B,CAEjC;IAEF;;;OAGG;IACH,OAAO,CAAC,kCAAkC,CAKxC;IAEF;;OAEG;IACH,OAAO,CAAC,oCAAoC,CAI1C;IAEF,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAG5B;IAEF;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAI7B;IAEF,OAAO,CAAC,iBAAiB,CAIvB;IAEF,OAAO,CAAC,aAAa,CAGnB;IAEF,OAAO,CAAC,qBAAqB,CAE3B;CACH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,eAGzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,eAG3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,2CAK3B,CAAC"}
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAyC,MAAM,4BAA4B,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAKhH;;GAEG;AACH,UAAU,cAAc;IACtB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;MAEE;IACF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAUD;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAC5E,OAAO,CAAC,QAAQ,CAA0B;IAE1C,gBAAgB;gBACJ,KAAK,EAAE,cAAc;IASjB,MAAM,IAAI,KAAK,CAAC,SAAS;IA0CzB,iBAAiB;IASjB,oBAAoB;IAOpC,OAAO,CAAC,wBAAwB,CAQ9B;IAEF,OAAO,CAAC,eAAe,CAUrB;IAEF,2CAA2C;IAC3C,OAAO,CAAC,2BAA2B,CAEjC;IAEF;;;OAGG;IACH,OAAO,CAAC,kCAAkC,CAIxC;IAEF;;OAEG;IACH,OAAO,CAAC,oCAAoC,CAI1C;IAEF,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAE5B;IAEF,OAAO,CAAC,iBAAiB,CAIvB;IAEF,OAAO,CAAC,aAAa,CAGnB;IAEF,OAAO,CAAC,qBAAqB,CAE3B;CACH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,eAGzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,eAG3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,2CAK3B,CAAC"}
@@ -12,7 +12,7 @@ import { Footer } from "@itwin/appui-layout-react";
12
12
  import { MessageManager } from "../messages/MessageManager";
13
13
  import { SafeAreaContext } from "../safearea/SafeAreaContext";
14
14
  import { UiShowHideManager } from "../utils/UiShowHideManager";
15
- import { StatusMessagesContainer } from "../messages/StatusMessagesContainer";
15
+ import { CustomActivityMessageRenderer } from "../messages/ActivityMessage";
16
16
  /** Status Bar React component.
17
17
  * @public
18
18
  */
@@ -20,29 +20,46 @@ export class StatusBar extends React.Component {
20
20
  /** @internal */
21
21
  constructor(props) {
22
22
  super(props);
23
+ this.messages = [];
23
24
  this._handleMessageAddedEvent = (_args) => {
24
- this.setState({ messages: MessageManager.activeMessageManager.messages });
25
+ this._updateMessages();
26
+ const messagesToAdd = MessageManager.activeMessageManager.messages.filter((msg) => !this.messages.find((m) => m.id === msg.id));
27
+ messagesToAdd.forEach((msg) => {
28
+ const displayedMessage = MessageManager.displayMessage(msg.messageDetails, { onRemove: () => this._closeMessage(msg.id) });
29
+ if (!!displayedMessage)
30
+ this.messages.push({ close: displayedMessage.close, id: msg.id });
31
+ });
32
+ };
33
+ this._updateMessages = () => {
34
+ const updatedMessages = [...this.messages];
35
+ this.messages.forEach((m) => {
36
+ if (!MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {
37
+ m.close();
38
+ const index = updatedMessages.findIndex((msg) => msg.id === m.id);
39
+ updatedMessages.splice(index, 1);
40
+ }
41
+ });
42
+ this.messages = updatedMessages;
25
43
  };
26
44
  /** Respond to clearing the message list */
27
45
  this._handleMessagesUpdatedEvent = () => {
28
- this.setState({ messages: MessageManager.activeMessageManager.messages });
46
+ this._updateMessages();
29
47
  };
30
48
  /**
31
49
  * Sets state of the status bar to updated values reflecting activity progress.
32
50
  * @param args New values to set for ActivityMessage
33
51
  */
34
52
  this._handleActivityMessageUpdatedEvent = (args) => {
35
- this.setState((prevState) => ({
53
+ this.setState({
36
54
  activityMessageInfo: args,
37
- isActivityMessageVisible: args.restored ? true : prevState.isActivityMessageVisible,
38
- }));
55
+ });
39
56
  };
40
57
  /**
41
58
  * Hides ActivityMessage after cancellation
42
59
  */
43
60
  this._handleActivityMessageCancelledEvent = () => {
44
61
  this.setState({
45
- isActivityMessageVisible: false,
62
+ activityMessageInfo: undefined,
46
63
  });
47
64
  };
48
65
  /**
@@ -50,15 +67,6 @@ export class StatusBar extends React.Component {
50
67
  */
51
68
  this._cancelActivityMessage = () => {
52
69
  MessageManager.endActivityMessage(false);
53
- this._dismissActivityMessage();
54
- };
55
- /**
56
- * Dismisses ActivityMessage
57
- */
58
- this._dismissActivityMessage = () => {
59
- this.setState({
60
- isActivityMessageVisible: false,
61
- });
62
70
  };
63
71
  this._handleOpenWidget = (openWidget) => {
64
72
  this.setState({
@@ -70,43 +78,47 @@ export class StatusBar extends React.Component {
70
78
  MessageManager.updateMessages();
71
79
  };
72
80
  this._handleToastTargetRef = (toastTarget) => {
73
- this.setState({ toastTarget });
81
+ MessageManager.registerAnimateOutToElement(toastTarget);
74
82
  };
75
83
  this.state = {
76
84
  openWidget: null,
77
- messages: MessageManager.activeMessageManager.messages,
78
85
  activityMessageInfo: undefined,
79
- isActivityMessageVisible: false,
80
- toastTarget: null,
81
86
  };
82
87
  }
83
88
  render() {
89
+ var _a, _b;
84
90
  let footerSections = null;
85
91
  const widgetControl = this.props.widgetControl;
86
92
  // istanbul ignore else
87
93
  if (widgetControl && widgetControl.getReactNode) {
88
94
  footerSections = widgetControl.getReactNode({
89
- isInFooterMode: this.props.isInFooterMode,
95
+ // eslint-disable-next-line deprecation/deprecation
96
+ isInFooterMode: (_a = this.props.isInFooterMode) !== null && _a !== void 0 ? _a : true,
90
97
  openWidget: this.state.openWidget,
91
98
  toastTargetRef: this._handleToastTargetRef,
92
99
  onOpenWidget: this._handleOpenWidget,
93
100
  });
94
101
  }
95
102
  return (React.createElement(StatusBarContext.Provider, { value: {
96
- isInFooterMode: this.props.isInFooterMode,
103
+ // eslint-disable-next-line deprecation/deprecation
104
+ isInFooterMode: (_b = this.props.isInFooterMode) !== null && _b !== void 0 ? _b : true,
97
105
  openWidget: this.state.openWidget,
98
106
  toastTargetRef: this._handleToastTargetRef,
99
107
  onOpenWidget: this._handleOpenWidget,
100
108
  } },
101
- React.createElement(SafeAreaContext.Consumer, null, (safeAreaInsets) => (React.createElement(Footer // eslint-disable-line deprecation/deprecation
102
- , { className: this.props.className, messages: this.getFooterMessages(), isInFooterMode: this.props.isInFooterMode, onMouseEnter: UiShowHideManager.handleWidgetMouseEnter, safeAreaInsets: safeAreaInsets, style: this.props.style }, footerSections)))));
109
+ React.createElement(SafeAreaContext.Consumer, null, (safeAreaInsets) => {
110
+ var _a;
111
+ return (React.createElement(Footer // eslint-disable-line deprecation/deprecation
112
+ , { className: this.props.className, messages: this.getFooterMessages(),
113
+ // eslint-disable-next-line deprecation/deprecation
114
+ isInFooterMode: (_a = this.props.isInFooterMode) !== null && _a !== void 0 ? _a : true, onMouseEnter: UiShowHideManager.handleWidgetMouseEnter, safeAreaInsets: safeAreaInsets, style: this.props.style }, footerSections));
115
+ })));
103
116
  }
104
117
  componentDidMount() {
105
118
  MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);
106
119
  MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);
107
120
  MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);
108
121
  MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);
109
- MessageManager.activeMessageManager.initialize();
110
122
  MessageManager.updateMessages();
111
123
  }
112
124
  componentWillUnmount() {
@@ -116,9 +128,7 @@ export class StatusBar extends React.Component {
116
128
  MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);
117
129
  }
118
130
  getFooterMessages() {
119
- if (!(this.state.activityMessageInfo && this.state.isActivityMessageVisible) && this.state.messages.length === 0)
120
- return null;
121
- return (React.createElement(StatusMessagesContainer, { messages: this.state.messages, activityMessageInfo: this.state.activityMessageInfo, isActivityMessageVisible: this.state.isActivityMessageVisible, toastTarget: this.state.toastTarget, closeMessage: this._closeMessage, cancelActivityMessage: this._cancelActivityMessage, dismissActivityMessage: this._dismissActivityMessage }));
131
+ return (React.createElement(CustomActivityMessageRenderer, { settings: { placement: "bottom" }, activityMessageInfo: this.state.activityMessageInfo, cancelActivityMessage: this._cancelActivityMessage }));
122
132
  }
123
133
  }
124
134
  /** StatusBar With Space Between Items React functional component
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./StatusBar.scss\";\r\nimport * as React from \"react\";\r\nimport { CommonDivProps, CommonProps, Div } from \"@itwin/core-react\";\r\nimport { Footer } from \"@itwin/appui-layout-react\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from \"./StatusBarWidgetControl\";\r\nimport { StatusMessage } from \"../messages/StatusMessageManager\";\r\nimport { StatusMessagesContainer } from \"../messages/StatusMessagesContainer\";\r\n\r\n// cspell:ignore safearea\r\n\r\n/** State for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarState {\r\n openWidget: StatusBarFieldId;\r\n messages: ReadonlyArray<StatusMessage>;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n isActivityMessageVisible: boolean;\r\n toastTarget: HTMLElement | null;\r\n}\r\n\r\n/** Properties for the [[StatusBar]] React component\r\n * @public\r\n */\r\nexport interface StatusBarProps extends CommonProps {\r\n widgetControl?: StatusBarWidgetControl;\r\n isInFooterMode: boolean;\r\n}\r\n\r\n/** Status Bar React component.\r\n * @public\r\n */\r\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\r\n\r\n /** @internal */\r\n constructor(props: StatusBarProps) {\r\n super(props);\r\n\r\n this.state = {\r\n openWidget: null,\r\n messages: MessageManager.activeMessageManager.messages,\r\n activityMessageInfo: undefined,\r\n isActivityMessageVisible: false,\r\n toastTarget: null,\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let footerSections: React.ReactNode = null;\r\n const widgetControl = this.props.widgetControl;\r\n\r\n // istanbul ignore else\r\n if (widgetControl && widgetControl.getReactNode) {\r\n footerSections = widgetControl.getReactNode({\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n });\r\n }\r\n\r\n return (\r\n <StatusBarContext.Provider value={{\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n }}>\r\n <SafeAreaContext.Consumer>\r\n {(safeAreaInsets) => (\r\n <Footer // eslint-disable-line deprecation/deprecation\r\n className={this.props.className}\r\n messages={this.getFooterMessages()}\r\n isInFooterMode={this.props.isInFooterMode}\r\n onMouseEnter={UiShowHideManager.handleWidgetMouseEnter}\r\n safeAreaInsets={safeAreaInsets}\r\n style={this.props.style}\r\n >\r\n {footerSections}\r\n </Footer>\r\n )}\r\n </SafeAreaContext.Consumer>\r\n </StatusBarContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);\r\n\r\n MessageManager.activeMessageManager.initialize();\r\n MessageManager.updateMessages();\r\n }\r\n\r\n public override componentWillUnmount() {\r\n MessageManager.onMessageAddedEvent.removeListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.removeListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.removeListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);\r\n }\r\n\r\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\r\n this.setState({ messages: MessageManager.activeMessageManager.messages });\r\n };\r\n\r\n /** Respond to clearing the message list */\r\n private _handleMessagesUpdatedEvent = () => {\r\n this.setState({ messages: MessageManager.activeMessageManager.messages });\r\n };\r\n\r\n /**\r\n * Sets state of the status bar to updated values reflecting activity progress.\r\n * @param args New values to set for ActivityMessage\r\n */\r\n private _handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n this.setState((prevState) => ({\r\n activityMessageInfo: args,\r\n isActivityMessageVisible: args.restored ? true : prevState.isActivityMessageVisible,\r\n }));\r\n };\r\n\r\n /**\r\n * Hides ActivityMessage after cancellation\r\n */\r\n private _handleActivityMessageCancelledEvent = () => {\r\n this.setState({\r\n isActivityMessageVisible: false,\r\n });\r\n };\r\n\r\n private getFooterMessages(): React.ReactNode {\r\n if (!(this.state.activityMessageInfo && this.state.isActivityMessageVisible) && this.state.messages.length === 0)\r\n return null;\r\n\r\n return (\r\n <StatusMessagesContainer\r\n messages={this.state.messages}\r\n activityMessageInfo={this.state.activityMessageInfo}\r\n isActivityMessageVisible={this.state.isActivityMessageVisible}\r\n toastTarget={this.state.toastTarget}\r\n closeMessage={this._closeMessage}\r\n cancelActivityMessage={this._cancelActivityMessage}\r\n dismissActivityMessage={this._dismissActivityMessage}\r\n />\r\n );\r\n }\r\n\r\n /**\r\n * Ends canceled process and dismisses ActivityMessage\r\n */\r\n private _cancelActivityMessage = () => {\r\n MessageManager.endActivityMessage(false);\r\n this._dismissActivityMessage();\r\n };\r\n\r\n /**\r\n * Dismisses ActivityMessage\r\n */\r\n private _dismissActivityMessage = () => {\r\n this.setState({\r\n isActivityMessageVisible: false,\r\n });\r\n };\r\n\r\n private _handleOpenWidget = (openWidget: StatusBarFieldId) => {\r\n this.setState({\r\n openWidget,\r\n });\r\n };\r\n\r\n private _closeMessage = (id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n };\r\n\r\n private _handleToastTargetRef = (toastTarget: HTMLElement | null) => {\r\n this.setState({ toastTarget });\r\n };\r\n}\r\n\r\n/** StatusBar With Space Between Items React functional component\r\n * @public\r\n */\r\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-space-between\"} />;\r\n}\r\n\r\n/** StatusBar Left Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarLeftSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-left\"} />;\r\n}\r\n\r\n/** StatusBar Center Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarCenterSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-center\"} />;\r\n}\r\n\r\n/** StatusBar Right Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarRightSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-right\"} />;\r\n}\r\n\r\n/** Context providing values for StatusFieldProps and MessageCenterFieldProps\r\n * @internal\r\n */\r\nexport const StatusBarContext = React.createContext<StatusBarWidgetControlArgs>({ // eslint-disable-line @typescript-eslint/naming-convention\r\n isInFooterMode: true,\r\n onOpenWidget: /* istanbul ignore next */ () => { },\r\n openWidget: \"\",\r\n toastTargetRef: { current: null },\r\n});\r\n"]}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./StatusBar.scss\";\r\nimport * as React from \"react\";\r\nimport { CommonDivProps, CommonProps, Div } from \"@itwin/core-react\";\r\nimport { Footer } from \"@itwin/appui-layout-react\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from \"./StatusBarWidgetControl\";\r\nimport { CustomActivityMessageRenderer } from \"../messages/ActivityMessage\";\r\n\r\n// cspell:ignore safearea\r\n\r\n/** State for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarState {\r\n openWidget: StatusBarFieldId;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n}\r\n\r\n/** Properties for the [[StatusBar]] React component\r\n * @public\r\n */\r\nexport interface StatusBarProps extends CommonProps {\r\n widgetControl?: StatusBarWidgetControl;\r\n /** Indicates whether the StatusBar is in footer mode\r\n * @deprecated In upcoming version, widget mode will be removed. Consider this parameter to always be true.\r\n */\r\n isInFooterMode?: boolean;\r\n}\r\n\r\n/** Message type for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarMessage {\r\n close: () => void;\r\n id: string;\r\n}\r\n\r\n/** Status Bar React component.\r\n * @public\r\n */\r\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\r\n private messages: StatusBarMessage[] = [];\r\n\r\n /** @internal */\r\n constructor(props: StatusBarProps) {\r\n super(props);\r\n\r\n this.state = {\r\n openWidget: null,\r\n activityMessageInfo: undefined,\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let footerSections: React.ReactNode = null;\r\n const widgetControl = this.props.widgetControl;\r\n\r\n // istanbul ignore else\r\n if (widgetControl && widgetControl.getReactNode) {\r\n footerSections = widgetControl.getReactNode({\r\n // eslint-disable-next-line deprecation/deprecation\r\n isInFooterMode: this.props.isInFooterMode ?? true,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n });\r\n }\r\n\r\n return (\r\n <StatusBarContext.Provider value={{\r\n // eslint-disable-next-line deprecation/deprecation\r\n isInFooterMode: this.props.isInFooterMode ?? true,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n }}>\r\n <SafeAreaContext.Consumer>\r\n {(safeAreaInsets) => (\r\n <Footer // eslint-disable-line deprecation/deprecation\r\n className={this.props.className}\r\n messages={this.getFooterMessages()}\r\n // eslint-disable-next-line deprecation/deprecation\r\n isInFooterMode={this.props.isInFooterMode ?? true}\r\n onMouseEnter={UiShowHideManager.handleWidgetMouseEnter}\r\n safeAreaInsets={safeAreaInsets}\r\n style={this.props.style}\r\n >\r\n {footerSections}\r\n </Footer>\r\n )}\r\n </SafeAreaContext.Consumer>\r\n </StatusBarContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);\r\n\r\n MessageManager.updateMessages();\r\n }\r\n\r\n public override componentWillUnmount() {\r\n MessageManager.onMessageAddedEvent.removeListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.removeListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.removeListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);\r\n }\r\n\r\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\r\n this._updateMessages();\r\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter((msg) => !this.messages.find((m) => m.id === msg.id));\r\n messagesToAdd.forEach((msg) => {\r\n const displayedMessage = MessageManager.displayMessage(msg.messageDetails, { onRemove: () => this._closeMessage(msg.id) });\r\n if(!!displayedMessage)\r\n this.messages.push({close: displayedMessage.close, id: msg.id});\r\n });\r\n };\r\n\r\n private _updateMessages = () => {\r\n const updatedMessages = [...this.messages];\r\n this.messages.forEach((m) => {\r\n if (!MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {\r\n m.close();\r\n const index = updatedMessages.findIndex((msg) => msg.id === m.id);\r\n updatedMessages.splice(index, 1);\r\n }\r\n });\r\n this.messages = updatedMessages;\r\n };\r\n\r\n /** Respond to clearing the message list */\r\n private _handleMessagesUpdatedEvent = () => {\r\n this._updateMessages();\r\n };\r\n\r\n /**\r\n * Sets state of the status bar to updated values reflecting activity progress.\r\n * @param args New values to set for ActivityMessage\r\n */\r\n private _handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n this.setState({\r\n activityMessageInfo: args,\r\n });\r\n };\r\n\r\n /**\r\n * Hides ActivityMessage after cancellation\r\n */\r\n private _handleActivityMessageCancelledEvent = () => {\r\n this.setState({\r\n activityMessageInfo: undefined,\r\n });\r\n };\r\n\r\n private getFooterMessages(): React.ReactNode {\r\n return (\r\n <CustomActivityMessageRenderer settings={{placement: \"bottom\"}} activityMessageInfo={this.state.activityMessageInfo} cancelActivityMessage={this._cancelActivityMessage} />\r\n );\r\n }\r\n\r\n /**\r\n * Ends canceled process and dismisses ActivityMessage\r\n */\r\n private _cancelActivityMessage = () => {\r\n MessageManager.endActivityMessage(false);\r\n };\r\n\r\n private _handleOpenWidget = (openWidget: StatusBarFieldId) => {\r\n this.setState({\r\n openWidget,\r\n });\r\n };\r\n\r\n private _closeMessage = (id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n };\r\n\r\n private _handleToastTargetRef = (toastTarget: HTMLElement | null) => {\r\n MessageManager.registerAnimateOutToElement(toastTarget);\r\n };\r\n}\r\n\r\n/** StatusBar With Space Between Items React functional component\r\n * @public\r\n */\r\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-space-between\"} />;\r\n}\r\n\r\n/** StatusBar Left Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarLeftSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-left\"} />;\r\n}\r\n\r\n/** StatusBar Center Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarCenterSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-center\"} />;\r\n}\r\n\r\n/** StatusBar Right Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarRightSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-right\"} />;\r\n}\r\n\r\n/** Context providing values for StatusFieldProps and MessageCenterFieldProps\r\n * @internal\r\n */\r\nexport const StatusBarContext = React.createContext<StatusBarWidgetControlArgs>({ // eslint-disable-line @typescript-eslint/naming-convention\r\n isInFooterMode: true,\r\n onOpenWidget: /* istanbul ignore next */ () => { },\r\n openWidget: \"\",\r\n toastTargetRef: { current: null },\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACoD,mBAAmB,EAE7E,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAoC,MAAM,mBAAmB,CAAC;AAuBlF,UAAU,8BAA8B;IACtC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAMD,gBAAgB;AAChB,wBAAgB,iBAAiB,mCAEhC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,eAqB5D;AAmID;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,uBAAuB;IACvB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAE7B,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,eAkM9D"}
1
+ {"version":3,"file":"StatusBarComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACoD,mBAAmB,EAE7E,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAoC,MAAM,mBAAmB,CAAC;AAuBlF,UAAU,8BAA8B;IACtC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAMD,gBAAgB;AAChB,wBAAgB,iBAAiB,mCAEhC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,eAqB5D;AAmID;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,uBAAuB;IACvB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAE7B,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,eAqM9D"}
@@ -225,6 +225,7 @@ export function StatusBarComposer(props) {
225
225
  isStatusBarItem(item) && item.reactNode,
226
226
  isAbstractStatusBarActionItem(item) && generateActionStatusBarItem(item, statusBarContext.isInFooterMode),
227
227
  isAbstractStatusBarLabelItem(item) && generateActionStatusLabelItem(item, statusBarContext.isInFooterMode))));
228
+ // eslint-disable-next-line deprecation/deprecation
228
229
  }, [statusBarContext.isInFooterMode, handleEntryResize]);
229
230
  const getSectionItems = React.useCallback((section) => {
230
231
  const sectionItems = statusBarItems
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport {\r\n AbstractStatusBarActionItem, AbstractStatusBarLabelItem, CommonStatusBarItem, ConditionalBooleanValue, ConditionalStringValue,\r\n isAbstractStatusBarActionItem, isAbstractStatusBarLabelItem, StatusBarItemsManager, StatusBarLabelSide, StatusBarSection, UiSyncEventArgs,\r\n} from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, useRefs, useResizeObserver } from \"@itwin/core-react\";\r\nimport { eqlOverflown, FooterIndicator } from \"@itwin/appui-layout-react\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { Indicator } from \"../statusfields/Indicator\";\r\nimport { StatusBarOverflow } from \"./Overflow\";\r\nimport { StatusBarOverflowPanel } from \"./OverflowPanel\";\r\nimport { StatusBarCenterSection, StatusBarContext, StatusBarLeftSection, StatusBarRightSection, StatusBarSpaceBetween } from \"./StatusBar\";\r\nimport { isStatusBarItem } from \"./StatusBarItem\";\r\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems\";\r\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems\";\r\n\r\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\r\nfunction getCombinedSectionItemPriority(item: CommonStatusBarItem) {\r\n let sectionValue = 0;\r\n if (item.section === StatusBarSection.Center)\r\n sectionValue = 100000;\r\n else if (item.section === StatusBarSection.Context)\r\n sectionValue = 200000;\r\n else if (item.section === StatusBarSection.Right)\r\n sectionValue = 300000;\r\n return sectionValue + item.itemPriority;\r\n}\r\n\r\ninterface DockedStatusBarEntryContextArg {\r\n readonly isOverflown: boolean;\r\n readonly onResize: (w: number) => void;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst DockedStatusBarEntryContext = React.createContext<DockedStatusBarEntryContextArg>(null!);\r\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\r\n\r\n/** @internal */\r\nexport function useStatusBarEntry() {\r\n return React.useContext(DockedStatusBarEntryContext);\r\n}\r\n\r\n/** Properties of [[DockedStatusBarItem]] component.\r\n * @internal future\r\n */\r\nexport interface StatusBarItemProps extends CommonProps {\r\n /** Tool setting content. */\r\n children?: React.ReactNode;\r\n itemPriority?: number;\r\n providerId?: string;\r\n section?: string;\r\n}\r\n\r\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\r\n * @internal future\r\n */\r\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\r\n const { onResize } = useStatusBarEntry();\r\n const ref = useResizeObserver<HTMLDivElement>(onResize);\r\n const className = classnames(\r\n \"uifw-statusbar-item-container\",\r\n props.className,\r\n );\r\n return (\r\n <div\r\n data-item-id={props.itemId}\r\n data-item-type=\"status-bar-item\"\r\n data-item-location={props.section}\r\n data-item-priority={props.itemPriority}\r\n data-item-provider-id={props.providerId}\r\n className={className}\r\n ref={ref}\r\n style={props.style}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}\r\n\r\ninterface DockedStatusBarEntryProps {\r\n children?: React.ReactNode;\r\n entryKey: string;\r\n getOnResize: (key: string) => (w: number) => void;\r\n}\r\n\r\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. */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, no-shadow\r\nconst DockedStatusBarEntry = React.memo<DockedStatusBarEntryProps>(function DockedStatusbarEntry({ children, entryKey, getOnResize }) {\r\n const onResize = React.useMemo(() => getOnResize(entryKey), [getOnResize, entryKey]);\r\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(() => ({\r\n isOverflown: false,\r\n onResize,\r\n }), [onResize]);\r\n return (\r\n <DockedStatusBarEntryContext.Provider value={entry}>\r\n {children}\r\n </DockedStatusBarEntryContext.Provider>\r\n );\r\n});\r\n\r\n/** Private function to set up sync event monitoring of statusbar items */\r\nfunction useStatusBarItemSyncEffect(itemsManager: StatusBarItemsManager, syncIdsOfInterest: string[]) {\r\n React.useEffect(() => {\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n if (0 === syncIdsOfInterest.length)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n // process each item that has interest\r\n itemsManager.refreshAffectedItems(args.eventIds);\r\n }\r\n };\r\n\r\n // Note: that items with conditions have condition run when loaded into the items manager\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n return () => {\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\r\n };\r\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\r\n}\r\n\r\n/** function to produce a StatusBarItem component from an AbstractStatusBarLabelItem */\r\nfunction generateActionStatusLabelItem(item: AbstractStatusBarLabelItem, isInFooterMode: boolean): React.ReactNode {\r\n const iconPaddingClass = item.labelSide === StatusBarLabelSide.Left ? \"nz-icon-padding-right\" : \"nz-icon-padding-left\";\r\n return (<FooterIndicator\r\n isInFooterMode={isInFooterMode}\r\n >\r\n {item.icon && <Icon iconSpec={item.icon} />}\r\n {item.label && <span className={iconPaddingClass}>{ConditionalStringValue.getValue(item.label)}</span>}\r\n </FooterIndicator>\r\n );\r\n}\r\n\r\n/** function to produce a StatusBarItem component from an AbstractStatusBarActionItem */\r\nfunction generateActionStatusBarItem(item: AbstractStatusBarActionItem, isInFooterMode: boolean): React.ReactNode {\r\n return <Indicator toolTip={ConditionalStringValue.getValue(item.tooltip)} opened={false} onClick={item.execute} iconSpec={item.icon}\r\n isInFooterMode={isInFooterMode} />;\r\n}\r\n\r\n/** local function to combine items from Stage and from Extensions */\r\nfunction combineItems(stageItems: ReadonlyArray<CommonStatusBarItem>, addonItems: ReadonlyArray<CommonStatusBarItem>) {\r\n const items: CommonStatusBarItem[] = [];\r\n if (stageItems.length) {\r\n // Walk through each and ensure no duplicate ids are added.\r\n stageItems.forEach((srcItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n items.push(srcItem);\r\n }\r\n });\r\n }\r\n if (addonItems.length) {\r\n // Walk through each and ensure no duplicate ids are added.\r\n addonItems.forEach((srcItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n items.push(srcItem);\r\n }\r\n });\r\n }\r\n return items;\r\n}\r\n\r\n/** local function to ensure a width value is defined for a status bar entries. */\r\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\r\n for (const [, val] of map) {\r\n // istanbul ignore next\r\n if (val === undefined)\r\n return undefined;\r\n }\r\n return map as Map<string, T>;\r\n}\r\n\r\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\r\nfunction getItemToPlaceInOverflow(width: number, docked: ReadonlyArray<readonly [string, number]>, overflowWidth: number) {\r\n let settingsWidth = 0;\r\n\r\n let i = 0;\r\n for (; i < docked.length; i++) {\r\n const w = docked[i][1];\r\n const newSettingsWidth = settingsWidth + w;\r\n if (newSettingsWidth > width) {\r\n settingsWidth += overflowWidth;\r\n break;\r\n }\r\n settingsWidth = newSettingsWidth;\r\n }\r\n\r\n let j = i;\r\n for (; j > 0; j--) {\r\n if (settingsWidth <= width)\r\n break;\r\n const w = docked[j][1];\r\n settingsWidth -= w;\r\n }\r\n\r\n const overflowItems = new Array<string>();\r\n for (i = j; i < docked.length; i++) {\r\n overflowItems.push(docked[i][0]);\r\n }\r\n return overflowItems;\r\n}\r\n\r\nfunction isItemInOverflow(id: string, overflowItemIds: ReadonlyArray<string> | undefined) {\r\n if (!overflowItemIds || 0 === overflowItemIds.length)\r\n return false;\r\n return !!overflowItemIds.find((value) => value === id);\r\n}\r\n\r\n/** Properties for the [[StatusBarComposer]] React components\r\n * @public\r\n */\r\nexport interface StatusBarComposerProps extends CommonProps {\r\n /** Status Bar items */\r\n items: CommonStatusBarItem[];\r\n\r\n /** CSS class name override for the overall Status Bar */\r\n mainClassName?: string;\r\n /** CSS class name override for the left section */\r\n leftClassName?: string;\r\n /** CSS class name override for the center section */\r\n centerClassName?: string;\r\n /** CSS class name override for the right section */\r\n rightClassName?: string;\r\n}\r\n\r\n/** Component to load components into the [[StatusBar]].\r\n * @public\r\n */\r\nexport function StatusBarComposer(props: StatusBarComposerProps) {\r\n const { className, style, items, mainClassName, leftClassName, centerClassName, rightClassName } = props;\r\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new StatusBarItemsManager(items));\r\n const [isOverflowPanelOpen, setIsOverflowPanelOpen] = React.useState(false);\r\n const containerWidth = React.useRef<number | undefined>(undefined);\r\n\r\n const isInitialMount = React.useRef(true);\r\n React.useEffect(() => {\r\n if (isInitialMount.current)\r\n isInitialMount.current = false;\r\n else {\r\n setDefaultItemsManager(new StatusBarItemsManager(items));\r\n }\r\n }, [items]);\r\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\r\n const syncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);\r\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\r\n\r\n const statusBarContext = React.useContext(StatusBarContext);\r\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\r\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\r\n const addonSyncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);\r\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\r\n\r\n const statusBarItems = React.useMemo(() => combineItems(defaultItems, addonItems), [defaultItems, addonItems]);\r\n const entryWidths = React.useRef(new Map<string, number | undefined>());\r\n const overflowWidth = React.useRef<number | undefined>(undefined);\r\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\r\n\r\n const calculateOverflow = React.useCallback(() => {\r\n const widths = verifiedMapEntries(entryWidths.current);\r\n if (containerWidth.current === undefined ||\r\n widths === undefined ||\r\n overflowWidth.current === undefined\r\n ) {\r\n setOverflown(new Array<string>());\r\n return;\r\n }\r\n\r\n // Calculate overflow.\r\n const newOverflown = getItemToPlaceInOverflow(containerWidth.current, [...widths.entries()], overflowWidth.current);\r\n if (!eqlOverflown(overflown, newOverflown)) {\r\n setOverflown(newOverflown);\r\n // istanbul ignore next\r\n if (0 === newOverflown.length && isOverflowPanelOpen)\r\n setIsOverflowPanelOpen(false);\r\n }\r\n }, [isOverflowPanelOpen, overflown]);\r\n\r\n const handleOverflowResize = React.useCallback((w: number) => {\r\n const calculate = overflowWidth.current !== w;\r\n overflowWidth.current = w;\r\n calculate && calculateOverflow();\r\n }, [calculateOverflow]);\r\n\r\n const handleEntryResize = React.useCallback((key: string) => (w: number) => {\r\n const oldW = entryWidths.current.get(key);\r\n if ((undefined === oldW) || Math.abs(oldW - w) > 2) {\r\n entryWidths.current.set(key, w);\r\n calculateOverflow();\r\n }\r\n }, [calculateOverflow]);\r\n\r\n const getSectionName = (section: StatusBarSection) => {\r\n switch (section) {\r\n case StatusBarSection.Center:\r\n case StatusBarSection.Stage:\r\n return \"status-bar-center\";\r\n case StatusBarSection.Context:\r\n return \"status-bar-right-start\";\r\n case StatusBarSection.Right:\r\n case StatusBarSection.Selection:\r\n return \"status-bar-right-end\";\r\n case StatusBarSection.Left:\r\n case StatusBarSection.Message:\r\n return \"status-bar-left\";\r\n }\r\n };\r\n\r\n /** generate a wrapped status bar entry that will report its size. */\r\n const getComponent = React.useCallback((item: CommonStatusBarItem, key: string, itemPriority: number,\r\n section: StatusBarSection, providerId?: string): React.ReactNode => {\r\n return (\r\n <DockedStatusBarEntry\r\n key={key}\r\n entryKey={key}\r\n getOnResize={handleEntryResize}\r\n >\r\n <DockedStatusBarItem key={key} itemId={item.id} itemPriority={itemPriority} providerId={providerId} section={getSectionName(section)} >\r\n {isStatusBarItem(item) && item.reactNode}\r\n {isAbstractStatusBarActionItem(item) && generateActionStatusBarItem(item, statusBarContext.isInFooterMode)}\r\n {isAbstractStatusBarLabelItem(item) && generateActionStatusLabelItem(item, statusBarContext.isInFooterMode)}\r\n </DockedStatusBarItem>\r\n </DockedStatusBarEntry>\r\n );\r\n }, [statusBarContext.isInFooterMode, handleEntryResize]);\r\n\r\n const getSectionItems = React.useCallback((section: StatusBarSection): React.ReactNode[] => {\r\n const sectionItems = statusBarItems\r\n .filter((item) => item.section as number === section && !isItemInOverflow(item.id, overflown) && !ConditionalBooleanValue.getValue(item.isHidden))\r\n .sort((a, b) => a.itemPriority - b.itemPriority);\r\n\r\n return sectionItems.map((sectionItem) => (\r\n <React.Fragment key={sectionItem.id}>\r\n {getComponent(sectionItem, sectionItem.id, sectionItem.itemPriority, sectionItem.section, sectionItem.providerId)}\r\n </React.Fragment>\r\n ));\r\n }, [statusBarItems, overflown, getComponent]);\r\n\r\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\r\n const itemsInOverflow = statusBarItems\r\n .filter((item) => isItemInOverflow(item.id, overflown) && !ConditionalBooleanValue.getValue(item.isHidden))\r\n .sort((a, b) => getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)).reverse();\r\n\r\n return itemsInOverflow.map((item) => (\r\n <React.Fragment key={item.id}>\r\n {getComponent(item, item.id, item.itemPriority, item.section, item.providerId)}\r\n </React.Fragment>\r\n ));\r\n }, [statusBarItems, overflown, getComponent]);\r\n\r\n const handleContainerResize = React.useCallback((w: number) => {\r\n if ((undefined === containerWidth.current) || Math.abs(containerWidth.current - w) > 2) {\r\n containerWidth.current = w;\r\n calculateOverflow();\r\n }\r\n }, [calculateOverflow]);\r\n\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const targetRef = React.useRef<HTMLDivElement>(null);\r\n const resizeObserverRef = useResizeObserver(handleContainerResize);\r\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\r\n const refs = useRefs(containerRef, resizeObserverRef);\r\n\r\n const onOverflowClick = React.useCallback(() => {\r\n setIsOverflowPanelOpen((prev) => !prev);\r\n }, []);\r\n // istanbul ignore next\r\n const handleOnClose = React.useCallback(() => {\r\n setIsOverflowPanelOpen(false);\r\n }, []);\r\n const leftItems = React.useMemo(() => getSectionItems(StatusBarSection.Left), [getSectionItems]);\r\n const centerItems = React.useMemo(() => getSectionItems(StatusBarSection.Center), [getSectionItems]);\r\n const rightItems = React.useMemo(() => getSectionItems(StatusBarSection.Right), [getSectionItems]);\r\n const contextItems = React.useMemo(() => getSectionItems(StatusBarSection.Context), [getSectionItems]);\r\n const overflowItems = React.useMemo(() => getOverflowItems(), [getOverflowItems]);\r\n\r\n const containerClassName = classnames(\r\n \"uifw-statusbar-docked\",\r\n className,\r\n );\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n ref={refs}\r\n style={style}\r\n role=\"presentation\"\r\n >\r\n <StatusBarSpaceBetween className={mainClassName}>\r\n <StatusBarLeftSection className={leftClassName}>\r\n {leftItems}\r\n </StatusBarLeftSection>\r\n <StatusBarCenterSection className={centerClassName}>\r\n {centerItems}\r\n {contextItems}\r\n </StatusBarCenterSection>\r\n <StatusBarRightSection className={rightClassName}>\r\n {rightItems}\r\n {(!overflown || overflown.length > 0) && (\r\n <>\r\n <StatusBarOverflow\r\n onClick={onOverflowClick}\r\n onResize={handleOverflowResize}\r\n ref={targetRef}\r\n />\r\n {overflowItems.length > 0 && isOverflowPanelOpen && targetRef.current &&\r\n <StatusBarOverflowPanel\r\n onClose={handleOnClose}\r\n open={true}\r\n target={targetRef.current}\r\n >\r\n <div className=\"uifw-statusbar-overflow-items-container\" data-testid=\"uifw-statusbar-overflow-items-container\">\r\n {overflowItems.map((overflowEntry) => overflowEntry)}\r\n </div>\r\n </StatusBarOverflowPanel>\r\n }\r\n </>\r\n )}\r\n\r\n </StatusBarRightSection>\r\n </StatusBarSpaceBetween>\r\n </div>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport {\r\n AbstractStatusBarActionItem, AbstractStatusBarLabelItem, CommonStatusBarItem, ConditionalBooleanValue, ConditionalStringValue,\r\n isAbstractStatusBarActionItem, isAbstractStatusBarLabelItem, StatusBarItemsManager, StatusBarLabelSide, StatusBarSection, UiSyncEventArgs,\r\n} from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, useRefs, useResizeObserver } from \"@itwin/core-react\";\r\nimport { eqlOverflown, FooterIndicator } from \"@itwin/appui-layout-react\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { Indicator } from \"../statusfields/Indicator\";\r\nimport { StatusBarOverflow } from \"./Overflow\";\r\nimport { StatusBarOverflowPanel } from \"./OverflowPanel\";\r\nimport { StatusBarCenterSection, StatusBarContext, StatusBarLeftSection, StatusBarRightSection, StatusBarSpaceBetween } from \"./StatusBar\";\r\nimport { isStatusBarItem } from \"./StatusBarItem\";\r\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems\";\r\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems\";\r\n\r\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\r\nfunction getCombinedSectionItemPriority(item: CommonStatusBarItem) {\r\n let sectionValue = 0;\r\n if (item.section === StatusBarSection.Center)\r\n sectionValue = 100000;\r\n else if (item.section === StatusBarSection.Context)\r\n sectionValue = 200000;\r\n else if (item.section === StatusBarSection.Right)\r\n sectionValue = 300000;\r\n return sectionValue + item.itemPriority;\r\n}\r\n\r\ninterface DockedStatusBarEntryContextArg {\r\n readonly isOverflown: boolean;\r\n readonly onResize: (w: number) => void;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst DockedStatusBarEntryContext = React.createContext<DockedStatusBarEntryContextArg>(null!);\r\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\r\n\r\n/** @internal */\r\nexport function useStatusBarEntry() {\r\n return React.useContext(DockedStatusBarEntryContext);\r\n}\r\n\r\n/** Properties of [[DockedStatusBarItem]] component.\r\n * @internal future\r\n */\r\nexport interface StatusBarItemProps extends CommonProps {\r\n /** Tool setting content. */\r\n children?: React.ReactNode;\r\n itemPriority?: number;\r\n providerId?: string;\r\n section?: string;\r\n}\r\n\r\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\r\n * @internal future\r\n */\r\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\r\n const { onResize } = useStatusBarEntry();\r\n const ref = useResizeObserver<HTMLDivElement>(onResize);\r\n const className = classnames(\r\n \"uifw-statusbar-item-container\",\r\n props.className,\r\n );\r\n return (\r\n <div\r\n data-item-id={props.itemId}\r\n data-item-type=\"status-bar-item\"\r\n data-item-location={props.section}\r\n data-item-priority={props.itemPriority}\r\n data-item-provider-id={props.providerId}\r\n className={className}\r\n ref={ref}\r\n style={props.style}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}\r\n\r\ninterface DockedStatusBarEntryProps {\r\n children?: React.ReactNode;\r\n entryKey: string;\r\n getOnResize: (key: string) => (w: number) => void;\r\n}\r\n\r\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. */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, no-shadow\r\nconst DockedStatusBarEntry = React.memo<DockedStatusBarEntryProps>(function DockedStatusbarEntry({ children, entryKey, getOnResize }) {\r\n const onResize = React.useMemo(() => getOnResize(entryKey), [getOnResize, entryKey]);\r\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(() => ({\r\n isOverflown: false,\r\n onResize,\r\n }), [onResize]);\r\n return (\r\n <DockedStatusBarEntryContext.Provider value={entry}>\r\n {children}\r\n </DockedStatusBarEntryContext.Provider>\r\n );\r\n});\r\n\r\n/** Private function to set up sync event monitoring of statusbar items */\r\nfunction useStatusBarItemSyncEffect(itemsManager: StatusBarItemsManager, syncIdsOfInterest: string[]) {\r\n React.useEffect(() => {\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n if (0 === syncIdsOfInterest.length)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n // process each item that has interest\r\n itemsManager.refreshAffectedItems(args.eventIds);\r\n }\r\n };\r\n\r\n // Note: that items with conditions have condition run when loaded into the items manager\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n return () => {\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\r\n };\r\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\r\n}\r\n\r\n/** function to produce a StatusBarItem component from an AbstractStatusBarLabelItem */\r\nfunction generateActionStatusLabelItem(item: AbstractStatusBarLabelItem, isInFooterMode: boolean): React.ReactNode {\r\n const iconPaddingClass = item.labelSide === StatusBarLabelSide.Left ? \"nz-icon-padding-right\" : \"nz-icon-padding-left\";\r\n return (<FooterIndicator\r\n isInFooterMode={isInFooterMode}\r\n >\r\n {item.icon && <Icon iconSpec={item.icon} />}\r\n {item.label && <span className={iconPaddingClass}>{ConditionalStringValue.getValue(item.label)}</span>}\r\n </FooterIndicator>\r\n );\r\n}\r\n\r\n/** function to produce a StatusBarItem component from an AbstractStatusBarActionItem */\r\nfunction generateActionStatusBarItem(item: AbstractStatusBarActionItem, isInFooterMode: boolean): React.ReactNode {\r\n return <Indicator toolTip={ConditionalStringValue.getValue(item.tooltip)} opened={false} onClick={item.execute} iconSpec={item.icon}\r\n isInFooterMode={isInFooterMode} />;\r\n}\r\n\r\n/** local function to combine items from Stage and from Extensions */\r\nfunction combineItems(stageItems: ReadonlyArray<CommonStatusBarItem>, addonItems: ReadonlyArray<CommonStatusBarItem>) {\r\n const items: CommonStatusBarItem[] = [];\r\n if (stageItems.length) {\r\n // Walk through each and ensure no duplicate ids are added.\r\n stageItems.forEach((srcItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n items.push(srcItem);\r\n }\r\n });\r\n }\r\n if (addonItems.length) {\r\n // Walk through each and ensure no duplicate ids are added.\r\n addonItems.forEach((srcItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n items.push(srcItem);\r\n }\r\n });\r\n }\r\n return items;\r\n}\r\n\r\n/** local function to ensure a width value is defined for a status bar entries. */\r\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\r\n for (const [, val] of map) {\r\n // istanbul ignore next\r\n if (val === undefined)\r\n return undefined;\r\n }\r\n return map as Map<string, T>;\r\n}\r\n\r\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\r\nfunction getItemToPlaceInOverflow(width: number, docked: ReadonlyArray<readonly [string, number]>, overflowWidth: number) {\r\n let settingsWidth = 0;\r\n\r\n let i = 0;\r\n for (; i < docked.length; i++) {\r\n const w = docked[i][1];\r\n const newSettingsWidth = settingsWidth + w;\r\n if (newSettingsWidth > width) {\r\n settingsWidth += overflowWidth;\r\n break;\r\n }\r\n settingsWidth = newSettingsWidth;\r\n }\r\n\r\n let j = i;\r\n for (; j > 0; j--) {\r\n if (settingsWidth <= width)\r\n break;\r\n const w = docked[j][1];\r\n settingsWidth -= w;\r\n }\r\n\r\n const overflowItems = new Array<string>();\r\n for (i = j; i < docked.length; i++) {\r\n overflowItems.push(docked[i][0]);\r\n }\r\n return overflowItems;\r\n}\r\n\r\nfunction isItemInOverflow(id: string, overflowItemIds: ReadonlyArray<string> | undefined) {\r\n if (!overflowItemIds || 0 === overflowItemIds.length)\r\n return false;\r\n return !!overflowItemIds.find((value) => value === id);\r\n}\r\n\r\n/** Properties for the [[StatusBarComposer]] React components\r\n * @public\r\n */\r\nexport interface StatusBarComposerProps extends CommonProps {\r\n /** Status Bar items */\r\n items: CommonStatusBarItem[];\r\n\r\n /** CSS class name override for the overall Status Bar */\r\n mainClassName?: string;\r\n /** CSS class name override for the left section */\r\n leftClassName?: string;\r\n /** CSS class name override for the center section */\r\n centerClassName?: string;\r\n /** CSS class name override for the right section */\r\n rightClassName?: string;\r\n}\r\n\r\n/** Component to load components into the [[StatusBar]].\r\n * @public\r\n */\r\nexport function StatusBarComposer(props: StatusBarComposerProps) {\r\n const { className, style, items, mainClassName, leftClassName, centerClassName, rightClassName } = props;\r\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new StatusBarItemsManager(items));\r\n const [isOverflowPanelOpen, setIsOverflowPanelOpen] = React.useState(false);\r\n const containerWidth = React.useRef<number | undefined>(undefined);\r\n\r\n const isInitialMount = React.useRef(true);\r\n React.useEffect(() => {\r\n if (isInitialMount.current)\r\n isInitialMount.current = false;\r\n else {\r\n setDefaultItemsManager(new StatusBarItemsManager(items));\r\n }\r\n }, [items]);\r\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\r\n const syncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);\r\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\r\n\r\n const statusBarContext = React.useContext(StatusBarContext);\r\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\r\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\r\n const addonSyncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);\r\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\r\n\r\n const statusBarItems = React.useMemo(() => combineItems(defaultItems, addonItems), [defaultItems, addonItems]);\r\n const entryWidths = React.useRef(new Map<string, number | undefined>());\r\n const overflowWidth = React.useRef<number | undefined>(undefined);\r\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\r\n\r\n const calculateOverflow = React.useCallback(() => {\r\n const widths = verifiedMapEntries(entryWidths.current);\r\n if (containerWidth.current === undefined ||\r\n widths === undefined ||\r\n overflowWidth.current === undefined\r\n ) {\r\n setOverflown(new Array<string>());\r\n return;\r\n }\r\n\r\n // Calculate overflow.\r\n const newOverflown = getItemToPlaceInOverflow(containerWidth.current, [...widths.entries()], overflowWidth.current);\r\n if (!eqlOverflown(overflown, newOverflown)) {\r\n setOverflown(newOverflown);\r\n // istanbul ignore next\r\n if (0 === newOverflown.length && isOverflowPanelOpen)\r\n setIsOverflowPanelOpen(false);\r\n }\r\n }, [isOverflowPanelOpen, overflown]);\r\n\r\n const handleOverflowResize = React.useCallback((w: number) => {\r\n const calculate = overflowWidth.current !== w;\r\n overflowWidth.current = w;\r\n calculate && calculateOverflow();\r\n }, [calculateOverflow]);\r\n\r\n const handleEntryResize = React.useCallback((key: string) => (w: number) => {\r\n const oldW = entryWidths.current.get(key);\r\n if ((undefined === oldW) || Math.abs(oldW - w) > 2) {\r\n entryWidths.current.set(key, w);\r\n calculateOverflow();\r\n }\r\n }, [calculateOverflow]);\r\n\r\n const getSectionName = (section: StatusBarSection) => {\r\n switch (section) {\r\n case StatusBarSection.Center:\r\n case StatusBarSection.Stage:\r\n return \"status-bar-center\";\r\n case StatusBarSection.Context:\r\n return \"status-bar-right-start\";\r\n case StatusBarSection.Right:\r\n case StatusBarSection.Selection:\r\n return \"status-bar-right-end\";\r\n case StatusBarSection.Left:\r\n case StatusBarSection.Message:\r\n return \"status-bar-left\";\r\n }\r\n };\r\n\r\n /** generate a wrapped status bar entry that will report its size. */\r\n const getComponent = React.useCallback((item: CommonStatusBarItem, key: string, itemPriority: number,\r\n section: StatusBarSection, providerId?: string): React.ReactNode => {\r\n return (\r\n <DockedStatusBarEntry\r\n key={key}\r\n entryKey={key}\r\n getOnResize={handleEntryResize}\r\n >\r\n <DockedStatusBarItem key={key} itemId={item.id} itemPriority={itemPriority} providerId={providerId} section={getSectionName(section)} >\r\n {isStatusBarItem(item) && item.reactNode}\r\n {// eslint-disable-next-line deprecation/deprecation\r\n isAbstractStatusBarActionItem(item) && generateActionStatusBarItem(item, statusBarContext.isInFooterMode)}\r\n {// eslint-disable-next-line deprecation/deprecation\r\n isAbstractStatusBarLabelItem(item) && generateActionStatusLabelItem(item, statusBarContext.isInFooterMode)}\r\n </DockedStatusBarItem>\r\n </DockedStatusBarEntry>\r\n );\r\n // eslint-disable-next-line deprecation/deprecation\r\n }, [statusBarContext.isInFooterMode, handleEntryResize]);\r\n\r\n const getSectionItems = React.useCallback((section: StatusBarSection): React.ReactNode[] => {\r\n const sectionItems = statusBarItems\r\n .filter((item) => item.section as number === section && !isItemInOverflow(item.id, overflown) && !ConditionalBooleanValue.getValue(item.isHidden))\r\n .sort((a, b) => a.itemPriority - b.itemPriority);\r\n\r\n return sectionItems.map((sectionItem) => (\r\n <React.Fragment key={sectionItem.id}>\r\n {getComponent(sectionItem, sectionItem.id, sectionItem.itemPriority, sectionItem.section, sectionItem.providerId)}\r\n </React.Fragment>\r\n ));\r\n }, [statusBarItems, overflown, getComponent]);\r\n\r\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\r\n const itemsInOverflow = statusBarItems\r\n .filter((item) => isItemInOverflow(item.id, overflown) && !ConditionalBooleanValue.getValue(item.isHidden))\r\n .sort((a, b) => getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)).reverse();\r\n\r\n return itemsInOverflow.map((item) => (\r\n <React.Fragment key={item.id}>\r\n {getComponent(item, item.id, item.itemPriority, item.section, item.providerId)}\r\n </React.Fragment>\r\n ));\r\n }, [statusBarItems, overflown, getComponent]);\r\n\r\n const handleContainerResize = React.useCallback((w: number) => {\r\n if ((undefined === containerWidth.current) || Math.abs(containerWidth.current - w) > 2) {\r\n containerWidth.current = w;\r\n calculateOverflow();\r\n }\r\n }, [calculateOverflow]);\r\n\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const targetRef = React.useRef<HTMLDivElement>(null);\r\n const resizeObserverRef = useResizeObserver(handleContainerResize);\r\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\r\n const refs = useRefs(containerRef, resizeObserverRef);\r\n\r\n const onOverflowClick = React.useCallback(() => {\r\n setIsOverflowPanelOpen((prev) => !prev);\r\n }, []);\r\n // istanbul ignore next\r\n const handleOnClose = React.useCallback(() => {\r\n setIsOverflowPanelOpen(false);\r\n }, []);\r\n const leftItems = React.useMemo(() => getSectionItems(StatusBarSection.Left), [getSectionItems]);\r\n const centerItems = React.useMemo(() => getSectionItems(StatusBarSection.Center), [getSectionItems]);\r\n const rightItems = React.useMemo(() => getSectionItems(StatusBarSection.Right), [getSectionItems]);\r\n const contextItems = React.useMemo(() => getSectionItems(StatusBarSection.Context), [getSectionItems]);\r\n const overflowItems = React.useMemo(() => getOverflowItems(), [getOverflowItems]);\r\n\r\n const containerClassName = classnames(\r\n \"uifw-statusbar-docked\",\r\n className,\r\n );\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n ref={refs}\r\n style={style}\r\n role=\"presentation\"\r\n >\r\n <StatusBarSpaceBetween className={mainClassName}>\r\n <StatusBarLeftSection className={leftClassName}>\r\n {leftItems}\r\n </StatusBarLeftSection>\r\n <StatusBarCenterSection className={centerClassName}>\r\n {centerItems}\r\n {contextItems}\r\n </StatusBarCenterSection>\r\n <StatusBarRightSection className={rightClassName}>\r\n {rightItems}\r\n {(!overflown || overflown.length > 0) && (\r\n <>\r\n <StatusBarOverflow\r\n onClick={onOverflowClick}\r\n onResize={handleOverflowResize}\r\n ref={targetRef}\r\n />\r\n {overflowItems.length > 0 && isOverflowPanelOpen && targetRef.current &&\r\n <StatusBarOverflowPanel\r\n onClose={handleOnClose}\r\n open={true}\r\n target={targetRef.current}\r\n >\r\n <div className=\"uifw-statusbar-overflow-items-container\" data-testid=\"uifw-statusbar-overflow-items-container\">\r\n {overflowItems.map((overflowEntry) => overflowEntry)}\r\n </div>\r\n </StatusBarOverflowPanel>\r\n }\r\n </>\r\n )}\r\n\r\n </StatusBarRightSection>\r\n </StatusBarSpaceBetween>\r\n </div>\r\n );\r\n}\r\n"]}
@@ -12,11 +12,17 @@ export declare type StatusBarFieldId = string | null;
12
12
  * @public
13
13
  */
14
14
  export interface StatusBarWidgetControlArgs {
15
- /** Describes whether the footer is in widget or footer mode. */
15
+ /** Describes whether the footer is in widget or footer mode.
16
+ * @deprecated In upcoming version, widget mode will be removed. Consider this parameter to always be true.
17
+ */
16
18
  isInFooterMode: boolean;
17
- /** Currently open widget or null if no widget is open. */
19
+ /** Currently open widget or null if no widget is open.
20
+ * @deprecated In upcoming versions, this will be removed. Field will be have the freedom of handling their dialog behavior however they like.
21
+ */
18
22
  openWidget: StatusBarFieldId;
19
- /** Function called when the widget is being opened or closed. */
23
+ /** Function called when the widget is being opened or closed.
24
+ * @deprecated In upcoming versions, this will be removed. Field will be have the freedom of handling their dialog behavior however they like.
25
+ */
20
26
  onOpenWidget: (widget: StatusBarFieldId) => void;
21
27
  /** Element reference to which the toast will animate out to. */
22
28
  toastTargetRef: React.Ref<HTMLElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarWidgetControl.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarWidgetControl.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;GAEG;AACH,oBAAY,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,gEAAgE;IAChE,cAAc,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,UAAU,EAAE,gBAAgB,CAAC;IAC7B,iEAAiE;IACjE,YAAY,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjD,gEAAgE;IAChE,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,8BAAsB,sBAAuB,SAAQ,aAAa;gBACpD,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG;IAItD,wEAAwE;aACxD,YAAY,CAAC,IAAI,EAAE,0BAA0B,GAAG,KAAK,CAAC,SAAS;IAE/E,sFAAsF;IACtE,OAAO,IAAI,yBAAyB;CACrD"}
1
+ {"version":3,"file":"StatusBarWidgetControl.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarWidgetControl.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;GAEG;AACH,oBAAY,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;MAEE;IACF,cAAc,EAAE,OAAO,CAAC;IACxB;;MAEE;IACF,UAAU,EAAE,gBAAgB,CAAC;IAC7B;;MAEE;IACF,YAAY,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjD,gEAAgE;IAChE,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,8BAAsB,sBAAuB,SAAQ,aAAa;gBACpD,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG;IAItD,wEAAwE;aACxD,YAAY,CAAC,IAAI,EAAE,0BAA0B,GAAG,KAAK,CAAC,SAAS;IAE/E,sFAAsF;IACtE,OAAO,IAAI,yBAAyB;CACrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarWidgetControl.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarWidgetControl.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAA0B,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqBzD;;GAEG;AACH,MAAM,OAAgB,sBAAuB,SAAQ,aAAa;IAChE,YAAY,IAA4B,EAAE,OAAY;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;IAKD,sFAAsF;IACtE,OAAO,KAAgC,OAAO,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;CAC3G","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport { ConfigurableCreateInfo, ConfigurableUiControlType } from \"../configurableui/ConfigurableUiControl\";\r\nimport { WidgetControl } from \"../widgets/WidgetControl\";\r\n\r\n/** Status Bar Field type.\r\n * @public\r\n */\r\nexport type StatusBarFieldId = string | null;\r\n\r\n/** Status Bar Widget Control render prop arguments.\r\n * @public\r\n */\r\nexport interface StatusBarWidgetControlArgs {\r\n /** Describes whether the footer is in widget or footer mode. */\r\n isInFooterMode: boolean;\r\n /** Currently open widget or null if no widget is open. */\r\n openWidget: StatusBarFieldId;\r\n /** Function called when the widget is being opened or closed. */\r\n onOpenWidget: (widget: StatusBarFieldId) => void;\r\n /** Element reference to which the toast will animate out to. */\r\n toastTargetRef: React.Ref<HTMLElement>;\r\n}\r\n\r\n/** Status Bar Widget Control.\r\n * @public\r\n */\r\nexport abstract class StatusBarWidgetControl extends WidgetControl {\r\n constructor(info: ConfigurableCreateInfo, options: any) {\r\n super(info, options);\r\n }\r\n\r\n /** Gets the React node associated with this StatusBar Widget Control */\r\n public abstract getReactNode(args: StatusBarWidgetControlArgs): React.ReactNode;\r\n\r\n /** Gets the type of ConfigurableUiControl, which is 'StatusBarWidget' in this case */\r\n public override getType(): ConfigurableUiControlType { return ConfigurableUiControlType.StatusBarWidget; }\r\n}\r\n"]}
1
+ {"version":3,"file":"StatusBarWidgetControl.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarWidgetControl.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAA0B,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA2BzD;;GAEG;AACH,MAAM,OAAgB,sBAAuB,SAAQ,aAAa;IAChE,YAAY,IAA4B,EAAE,OAAY;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;IAKD,sFAAsF;IACtE,OAAO,KAAgC,OAAO,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;CAC3G","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport { ConfigurableCreateInfo, ConfigurableUiControlType } from \"../configurableui/ConfigurableUiControl\";\r\nimport { WidgetControl } from \"../widgets/WidgetControl\";\r\n\r\n/** Status Bar Field type.\r\n * @public\r\n */\r\nexport type StatusBarFieldId = string | null;\r\n\r\n/** Status Bar Widget Control render prop arguments.\r\n * @public\r\n */\r\nexport interface StatusBarWidgetControlArgs {\r\n /** Describes whether the footer is in widget or footer mode.\r\n * @deprecated In upcoming version, widget mode will be removed. Consider this parameter to always be true.\r\n */\r\n isInFooterMode: boolean;\r\n /** Currently open widget or null if no widget is open.\r\n * @deprecated In upcoming versions, this will be removed. Field will be have the freedom of handling their dialog behavior however they like.\r\n */\r\n openWidget: StatusBarFieldId;\r\n /** Function called when the widget is being opened or closed.\r\n * @deprecated In upcoming versions, this will be removed. Field will be have the freedom of handling their dialog behavior however they like.\r\n */\r\n onOpenWidget: (widget: StatusBarFieldId) => void;\r\n /** Element reference to which the toast will animate out to. */\r\n toastTargetRef: React.Ref<HTMLElement>;\r\n}\r\n\r\n/** Status Bar Widget Control.\r\n * @public\r\n */\r\nexport abstract class StatusBarWidgetControl extends WidgetControl {\r\n constructor(info: ConfigurableCreateInfo, options: any) {\r\n super(info, options);\r\n }\r\n\r\n /** Gets the React node associated with this StatusBar Widget Control */\r\n public abstract getReactNode(args: StatusBarWidgetControlArgs): React.ReactNode;\r\n\r\n /** Gets the type of ConfigurableUiControl, which is 'StatusBarWidget' in this case */\r\n public override getType(): ConfigurableUiControlType { return ConfigurableUiControlType.StatusBarWidget; }\r\n}\r\n"]}
@@ -4,7 +4,7 @@
4
4
  import * as React from "react";
5
5
  import { MessageCenterFieldProps } from "../statusfields/MessageCenter";
6
6
  /** HOC that injects values for [[MessageCenterFieldProps]].
7
- * @public
7
+ * @public @deprecated Use `MessageManager.registerAnimateOutToElement` to register this ref in the related component.
8
8
  */
9
9
  export declare const withMessageCenterFieldProps: <P extends MessageCenterFieldProps, C>(Component: React.JSXElementConstructor<P> & C) => (props: JSX.LibraryManagedAttributes<C, Omit<P, "isInFooterMode" | "openWidget" | "onOpenWidget" | "targetRef">>) => JSX.Element;
10
10
  //# sourceMappingURL=withMessageCenterFieldProps.d.ts.map
@@ -8,7 +8,7 @@
8
8
  import * as React from "react";
9
9
  import { StatusBarContext } from "./StatusBar";
10
10
  /** HOC that injects values for [[MessageCenterFieldProps]].
11
- * @public
11
+ * @public @deprecated Use `MessageManager.registerAnimateOutToElement` to register this ref in the related component.
12
12
  */
13
13
  export const withMessageCenterFieldProps = (
14
14
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -1 +1 @@
1
- {"version":3,"file":"withMessageCenterFieldProps.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/withMessageCenterFieldProps.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;AACzC,gEAAgE;AAChE,SAA6C,EAC7C,EAAE;IAGF,OAAO,SAAS,2BAA2B,CAAC,KAAY;QACtD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC;QACrD,OAAO,CACL,oBAAC,SAAS,OACJ,KAAY,KACZ,IAAI,EACR,SAAS,EAAE,cAAc,GACzB,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { MessageCenterFieldProps } from \"../statusfields/MessageCenter\";\r\nimport { StatusBarContext } from \"./StatusBar\";\r\n\r\n/** HOC that injects values for [[MessageCenterFieldProps]].\r\n * @public\r\n */\r\nexport const withMessageCenterFieldProps = <P extends MessageCenterFieldProps, C>(\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n Component: React.JSXElementConstructor<P> & C,\r\n) => {\r\n type InjectedProps = Pick<MessageCenterFieldProps, \"isInFooterMode\" | \"onOpenWidget\" | \"openWidget\" | \"targetRef\">;\r\n type Props = JSX.LibraryManagedAttributes<C, Omit<P, keyof InjectedProps>>;\r\n return function WithMessageCenterFieldProps(props: Props) {\r\n const statusBarContext = React.useContext(StatusBarContext);\r\n const { toastTargetRef, ...args } = statusBarContext;\r\n return (\r\n <Component\r\n {...props as any}\r\n {...args}\r\n targetRef={toastTargetRef}\r\n />\r\n );\r\n };\r\n};\r\n"]}
1
+ {"version":3,"file":"withMessageCenterFieldProps.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/withMessageCenterFieldProps.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;AACzC,gEAAgE;AAChE,SAA6C,EAC7C,EAAE;IAGF,OAAO,SAAS,2BAA2B,CAAC,KAAY;QACtD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC;QACrD,OAAO,CACL,oBAAC,SAAS,OACJ,KAAY,KACZ,IAAI,EACR,SAAS,EAAE,cAAc,GACzB,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { MessageCenterFieldProps } from \"../statusfields/MessageCenter\";\r\nimport { StatusBarContext } from \"./StatusBar\";\r\n\r\n/** HOC that injects values for [[MessageCenterFieldProps]].\r\n * @public @deprecated Use `MessageManager.registerAnimateOutToElement` to register this ref in the related component.\r\n */\r\nexport const withMessageCenterFieldProps = <P extends MessageCenterFieldProps, C>(\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n Component: React.JSXElementConstructor<P> & C,\r\n) => {\r\n type InjectedProps = Pick<MessageCenterFieldProps, \"isInFooterMode\" | \"onOpenWidget\" | \"openWidget\" | \"targetRef\">;\r\n type Props = JSX.LibraryManagedAttributes<C, Omit<P, keyof InjectedProps>>;\r\n return function WithMessageCenterFieldProps(props: Props) {\r\n const statusBarContext = React.useContext(StatusBarContext);\r\n const { toastTargetRef, ...args } = statusBarContext;\r\n return (\r\n <Component\r\n {...props as any}\r\n {...args}\r\n targetRef={toastTargetRef}\r\n />\r\n );\r\n };\r\n};\r\n"]}
@@ -5,6 +5,7 @@ import * as React from "react";
5
5
  import { StatusFieldProps } from "../statusfields/StatusFieldProps";
6
6
  /** HOC that injects values for [[StatusFieldProps]].
7
7
  * @public
8
+ * @deprecated StatusFieldProps props are deprecated, using this is no longer necessary and will be removed.
8
9
  */
9
10
  export declare const withStatusFieldProps: <P extends StatusFieldProps, C>(Component: React.JSXElementConstructor<P> & C) => (props: JSX.LibraryManagedAttributes<C, Omit<P, "isInFooterMode" | "openWidget" | "onOpenWidget">>) => JSX.Element;
10
11
  //# sourceMappingURL=withStatusFieldProps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withStatusFieldProps.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/withStatusFieldProps.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE;;GAEG;AACH,eAAO,MAAM,oBAAoB,sMAgBhC,CAAC"}
1
+ {"version":3,"file":"withStatusFieldProps.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/withStatusFieldProps.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,sMAgBhC,CAAC"}
@@ -9,6 +9,7 @@ import * as React from "react";
9
9
  import { StatusBarContext } from "./StatusBar";
10
10
  /** HOC that injects values for [[StatusFieldProps]].
11
11
  * @public
12
+ * @deprecated StatusFieldProps props are deprecated, using this is no longer necessary and will be removed.
12
13
  */
13
14
  export const withStatusFieldProps = (
14
15
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -1 +1 @@
1
- {"version":3,"file":"withStatusFieldProps.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/withStatusFieldProps.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;AAClC,gEAAgE;AAChE,SAA6C,EAC7C,EAAE;IAGF,OAAO,SAAS,oBAAoB,CAAC,KAAY;QAC/C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC,CAAC,wDAAwD;QAC9G,OAAO,CACL,oBAAC,SAAS,OACJ,KAAY,KACZ,IAAI,GACR,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { StatusFieldProps } from \"../statusfields/StatusFieldProps\";\r\nimport { StatusBarContext } from \"./StatusBar\";\r\n\r\n/** HOC that injects values for [[StatusFieldProps]].\r\n * @public\r\n */\r\nexport const withStatusFieldProps = <P extends StatusFieldProps, C>(\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n Component: React.JSXElementConstructor<P> & C,\r\n) => {\r\n type InjectedProps = Pick<StatusFieldProps, \"isInFooterMode\" | \"onOpenWidget\" | \"openWidget\">;\r\n type Props = JSX.LibraryManagedAttributes<C, Omit<P, keyof InjectedProps>>;\r\n return function WithStatusFieldProps(props: Props) {\r\n const statusBarContext = React.useContext(StatusBarContext);\r\n const { toastTargetRef, ...args } = statusBarContext; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n return (\r\n <Component\r\n {...props as any}\r\n {...args}\r\n />\r\n );\r\n };\r\n};\r\n"]}
1
+ {"version":3,"file":"withStatusFieldProps.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/withStatusFieldProps.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;AAClC,gEAAgE;AAChE,SAA6C,EAC7C,EAAE;IAGF,OAAO,SAAS,oBAAoB,CAAC,KAAY;QAC/C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC,CAAC,wDAAwD;QAC9G,OAAO,CACL,oBAAC,SAAS,OACJ,KAAY,KACZ,IAAI,GACR,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { StatusFieldProps } from \"../statusfields/StatusFieldProps\";\r\nimport { StatusBarContext } from \"./StatusBar\";\r\n\r\n/** HOC that injects values for [[StatusFieldProps]].\r\n * @public\r\n * @deprecated StatusFieldProps props are deprecated, using this is no longer necessary and will be removed.\r\n */\r\nexport const withStatusFieldProps = <P extends StatusFieldProps, C>(\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n Component: React.JSXElementConstructor<P> & C,\r\n) => {\r\n type InjectedProps = Pick<StatusFieldProps, \"isInFooterMode\" | \"onOpenWidget\" | \"openWidget\">;\r\n type Props = JSX.LibraryManagedAttributes<C, Omit<P, keyof InjectedProps>>;\r\n return function WithStatusFieldProps(props: Props) {\r\n const statusBarContext = React.useContext(StatusBarContext);\r\n const { toastTargetRef, ...args } = statusBarContext; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n return (\r\n <Component\r\n {...props as any}\r\n {...args}\r\n />\r\n );\r\n };\r\n};\r\n"]}