@itwin/appui-react 4.9.0 → 4.10.0-dev.1

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 (447) hide show
  1. package/lib/cjs/appui-react/UiFramework.js +4 -7
  2. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  3. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
  4. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  5. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
  8. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +2 -0
  9. package/lib/cjs/appui-react/accudraw/SquareButton.d.ts +3 -1
  10. package/lib/cjs/appui-react/accudraw/SquareButton.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/accudraw/SquareButton.js +1 -4
  12. package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
  13. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
  14. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  15. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +2 -2
  16. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  17. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
  18. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +19 -15
  20. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  21. package/lib/cjs/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
  22. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  23. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  24. package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
  25. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  26. package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
  27. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  28. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
  29. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  30. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  31. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  32. package/lib/cjs/appui-react/content/IModelViewport.js +4 -7
  33. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  34. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
  35. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  36. package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
  37. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  38. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
  39. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  40. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  41. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  42. package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
  43. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  44. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
  45. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  46. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  47. package/lib/cjs/appui-react/feedback/ElementTooltip.js +2 -3
  48. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  49. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +10 -14
  50. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  51. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
  52. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +2 -3
  54. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +1 -1
  56. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
  57. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  58. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  59. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  60. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  61. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  62. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  63. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  64. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
  65. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  66. package/lib/cjs/appui-react/layout/base/DragManager.js +1 -2
  67. package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
  68. package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
  69. package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
  70. package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
  71. package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
  72. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
  73. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  74. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +12 -14
  75. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  76. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
  77. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  78. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +2 -3
  79. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  80. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  81. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  82. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
  83. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  84. package/lib/cjs/appui-react/layout/tool-settings/Docked.scss +1 -1
  85. package/lib/cjs/appui-react/layout/widget/Button.d.ts +2 -9
  86. package/lib/cjs/appui-react/layout/widget/Button.d.ts.map +1 -1
  87. package/lib/cjs/appui-react/layout/widget/Button.js.map +1 -1
  88. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +2 -2
  89. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  90. package/lib/cjs/appui-react/layout/widget/FloatingTab.js +5 -6
  91. package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
  92. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +2 -4
  93. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  94. package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
  95. package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
  96. package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js +1 -1
  97. package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +1 -1
  98. package/lib/cjs/appui-react/layout/widget/Tab.js +4 -4
  99. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  100. package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
  101. package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
  102. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  103. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  104. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +5 -8
  105. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  106. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
  107. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  108. package/lib/cjs/appui-react/messages/InputField.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/messages/InputField.js +2 -3
  110. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  111. package/lib/cjs/appui-react/messages/MessageLabel.js +2 -2
  112. package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
  113. package/lib/cjs/appui-react/messages/MessageManager.d.ts +15 -5
  114. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/messages/MessageManager.js +23 -41
  116. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  117. package/lib/cjs/appui-react/messages/MessageRenderer.d.ts +8 -0
  118. package/lib/cjs/appui-react/messages/MessageRenderer.d.ts.map +1 -0
  119. package/lib/cjs/appui-react/messages/MessageRenderer.js +136 -0
  120. package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -0
  121. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  122. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/messages/Pointer.js +5 -6
  124. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  125. package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
  126. package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
  127. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  128. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  129. package/lib/cjs/appui-react/popup/CardPopup.js +1 -2
  130. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  131. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -2
  133. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  134. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
  135. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  136. package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
  137. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  138. package/lib/cjs/appui-react/preview/PreviewFeatures.js +1 -1
  139. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  140. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  141. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
  142. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  143. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  144. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  145. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  146. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  147. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
  148. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +11 -16
  149. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  150. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  151. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  152. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  153. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  154. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +1 -1
  155. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/statusfields/MessageCenter.js +5 -4
  157. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  158. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +1 -3
  159. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  161. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  162. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
  163. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  164. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
  165. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  166. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
  167. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/theme/ThemeManager.js +3 -1
  169. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  170. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +6 -4
  171. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  172. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  173. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  174. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  175. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +18 -25
  176. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  177. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  178. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  179. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
  180. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  181. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  182. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  183. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  184. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  185. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  186. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  187. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  188. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  189. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  190. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  191. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
  192. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +19 -16
  194. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  195. package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
  196. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  197. package/lib/cjs/appui-react/widget-panels/Frontstage.js +10 -14
  198. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  199. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  200. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  201. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  202. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  203. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -23
  204. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  205. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +1 -1
  206. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  207. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  208. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  209. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  210. package/lib/cjs/appui-react/widgets/WidgetDef.js +4 -5
  211. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  212. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  213. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  214. package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
  215. package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
  216. package/lib/esm/appui-react/UiFramework.js +4 -7
  217. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  218. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
  219. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  220. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
  221. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  222. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
  223. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +2 -0
  224. package/lib/esm/appui-react/accudraw/SquareButton.d.ts +3 -1
  225. package/lib/esm/appui-react/accudraw/SquareButton.d.ts.map +1 -1
  226. package/lib/esm/appui-react/accudraw/SquareButton.js +1 -4
  227. package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
  228. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  229. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  230. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +2 -2
  231. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  232. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
  233. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  234. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +19 -15
  235. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  236. package/lib/esm/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
  237. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  238. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  239. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  240. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  241. package/lib/esm/appui-react/content/ContentLayout.js +9 -12
  242. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  243. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  244. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  245. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  246. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  247. package/lib/esm/appui-react/content/IModelViewport.js +4 -7
  248. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  249. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  250. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  251. package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
  252. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  253. package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
  254. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  255. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  256. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  257. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  258. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  259. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  260. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  261. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  262. package/lib/esm/appui-react/feedback/ElementTooltip.js +3 -4
  263. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  264. package/lib/esm/appui-react/frontstage/FrontstageDef.js +10 -14
  265. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  266. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
  267. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  268. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +2 -3
  269. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  270. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +1 -1
  271. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  272. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  273. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  274. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  275. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  276. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  277. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  278. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  279. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  280. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  281. package/lib/esm/appui-react/layout/base/DragManager.js +1 -2
  282. package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
  283. package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
  284. package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
  285. package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
  286. package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
  287. package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
  288. package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  289. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +12 -14
  290. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  291. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
  292. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  293. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +2 -3
  294. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  295. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  296. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  297. package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
  298. package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  299. package/lib/esm/appui-react/layout/tool-settings/Docked.scss +1 -1
  300. package/lib/esm/appui-react/layout/widget/Button.d.ts +2 -9
  301. package/lib/esm/appui-react/layout/widget/Button.d.ts.map +1 -1
  302. package/lib/esm/appui-react/layout/widget/Button.js.map +1 -1
  303. package/lib/esm/appui-react/layout/widget/ContentRenderer.js +2 -2
  304. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  305. package/lib/esm/appui-react/layout/widget/FloatingTab.js +5 -6
  306. package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
  307. package/lib/esm/appui-react/layout/widget/FloatingWidget.js +2 -4
  308. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  309. package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
  310. package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
  311. package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js +1 -1
  312. package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +1 -1
  313. package/lib/esm/appui-react/layout/widget/Tab.js +4 -4
  314. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  315. package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
  316. package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
  317. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  318. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  319. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +5 -8
  320. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  321. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
  322. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  323. package/lib/esm/appui-react/messages/InputField.d.ts.map +1 -1
  324. package/lib/esm/appui-react/messages/InputField.js +3 -4
  325. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  326. package/lib/esm/appui-react/messages/MessageLabel.js +2 -2
  327. package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
  328. package/lib/esm/appui-react/messages/MessageManager.d.ts +15 -5
  329. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  330. package/lib/esm/appui-react/messages/MessageManager.js +23 -41
  331. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  332. package/lib/esm/appui-react/messages/MessageRenderer.d.ts +8 -0
  333. package/lib/esm/appui-react/messages/MessageRenderer.d.ts.map +1 -0
  334. package/lib/esm/appui-react/messages/MessageRenderer.js +132 -0
  335. package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -0
  336. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  337. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  338. package/lib/esm/appui-react/messages/Pointer.js +6 -7
  339. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  340. package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
  341. package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
  342. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  343. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  344. package/lib/esm/appui-react/popup/CardPopup.js +2 -3
  345. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  346. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  347. package/lib/esm/appui-react/popup/HTMLElementPopup.js +2 -3
  348. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  349. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
  350. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  351. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  352. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  353. package/lib/esm/appui-react/preview/PreviewFeatures.js +1 -1
  354. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  355. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  356. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
  357. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  358. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  359. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  360. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  361. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  362. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
  363. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +11 -16
  364. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  365. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  366. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  367. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  368. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  369. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +1 -1
  370. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  371. package/lib/esm/appui-react/statusfields/MessageCenter.js +6 -5
  372. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  373. package/lib/esm/appui-react/statusfields/SelectionScope.scss +1 -3
  374. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  375. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  376. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  377. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
  378. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  379. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
  380. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  381. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
  382. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  383. package/lib/esm/appui-react/theme/ThemeManager.js +3 -1
  384. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  385. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +6 -4
  386. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  387. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  388. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  389. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  390. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +15 -22
  391. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  392. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  393. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  394. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
  395. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  396. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  397. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  398. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  399. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  400. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  401. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  402. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  403. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  404. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  405. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  406. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
  407. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  408. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +19 -16
  409. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  410. package/lib/esm/appui-react/widget-panels/Content.js +8 -9
  411. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  412. package/lib/esm/appui-react/widget-panels/Frontstage.js +10 -14
  413. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  414. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  415. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  416. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  417. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  418. package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -23
  419. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  420. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +1 -1
  421. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  422. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  423. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  424. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  425. package/lib/esm/appui-react/widgets/WidgetDef.js +4 -5
  426. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  427. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  428. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  429. package/lib/esm/appui-react/widgets/useWidget.js +1 -1
  430. package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
  431. package/package.json +12 -14
  432. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +0 -10
  433. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +0 -1
  434. package/lib/cjs/appui-react/messages/ActivityMessage.js +0 -92
  435. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +0 -1
  436. package/lib/cjs/appui-react/messages/MessageSpan.d.ts +0 -15
  437. package/lib/cjs/appui-react/messages/MessageSpan.d.ts.map +0 -1
  438. package/lib/cjs/appui-react/messages/MessageSpan.js +0 -23
  439. package/lib/cjs/appui-react/messages/MessageSpan.js.map +0 -1
  440. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +0 -10
  441. package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +0 -1
  442. package/lib/esm/appui-react/messages/ActivityMessage.js +0 -88
  443. package/lib/esm/appui-react/messages/ActivityMessage.js.map +0 -1
  444. package/lib/esm/appui-react/messages/MessageSpan.d.ts +0 -15
  445. package/lib/esm/appui-react/messages/MessageSpan.d.ts.map +0 -1
  446. package/lib/esm/appui-react/messages/MessageSpan.js +0 -18
  447. package/lib/esm/appui-react/messages/MessageSpan.js.map +0 -1
@@ -8,8 +8,11 @@ import { MessageSeverity, UiEvent } from "@itwin/appui-abstract";
8
8
  import type { IconSpec } from "@itwin/core-react";
9
9
  import type { NotifyMessageDetailsType, NotifyMessageType } from "./ReactNotifyMessageDetails";
10
10
  import { StatusMessageManager } from "./StatusMessageManager";
11
- import type { ToastOptions } from "@itwin/itwinui-react";
12
- import type { ToasterSettings } from "@itwin/itwinui-react/cjs/core/Toast/Toaster";
11
+ import type { useToaster } from "@itwin/itwinui-react";
12
+ import { BeUiEvent } from "@itwin/core-bentley";
13
+ type Toaster = ReturnType<typeof useToaster>;
14
+ type ToasterSettings = Parameters<Toaster["setSettings"]>;
15
+ type ToastOptions = Parameters<Toaster["positive"]>[1];
13
16
  /** [[MessageAddedEvent]] arguments.
14
17
  * @public
15
18
  */
@@ -116,6 +119,14 @@ export declare class MessageManager {
116
119
  static readonly onInputFieldMessageAddedEvent: InputFieldMessageAddedEvent;
117
120
  static readonly onInputFieldMessageRemovedEvent: InputFieldMessageRemovedEvent;
118
121
  static readonly onOpenMessageCenterEvent: OpenMessageCenterEvent;
122
+ /** @internal */
123
+ static readonly onDisplayMessage: BeUiEvent<{
124
+ message: NotifyMessageDetailsType;
125
+ options?: ToastOptions;
126
+ settings?: [settings: Partial<import("@itwin/itwinui-react/cjs/core/Toast/Toaster").ToasterSettings>] | undefined;
127
+ animateOutToElement?: HTMLElement | undefined;
128
+ close?: (() => void) | undefined;
129
+ }>;
119
130
  /** The ToolAssistanceChangedEvent is fired when a tool calls IModelApp.notifications.setToolAssistance().
120
131
  * @public
121
132
  */
@@ -141,9 +152,7 @@ export declare class MessageManager {
141
152
  * @param element `HTMLElement` to animate out to.
142
153
  */
143
154
  static registerAnimateOutToElement(element: HTMLElement | null): void;
144
- /**
145
- * Handles disconnected element modal frontstages, revert to last still displayed.
146
- */
155
+ /** Handles disconnected element modal frontstages, revert to last still displayed. */
147
156
  private static get animateOutToElement();
148
157
  /** Display a message.
149
158
  * Works only with `Sticky` and `Toast` message types.
@@ -261,4 +270,5 @@ export declare class MessageManager {
261
270
  /** @internal */
262
271
  static closeAllMessages(): void;
263
272
  }
273
+ export {};
264
274
  //# sourceMappingURL=MessageManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageManager.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageManager.tsx"],"names":[],"mappings":"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"}
@@ -18,11 +18,10 @@ const state_1 = require("../configurableui/state");
18
18
  const StandardMessageBox_1 = require("../dialog/StandardMessageBox");
19
19
  const ElementTooltip_1 = require("../feedback/ElementTooltip");
20
20
  const UiFramework_1 = require("../UiFramework");
21
- const MessageSpan_1 = require("./MessageSpan");
22
21
  const Pointer_1 = require("./Pointer");
23
22
  const StatusMessageManager_1 = require("./StatusMessageManager");
24
- const itwinui_react_1 = require("@itwin/itwinui-react");
25
23
  const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
24
+ const core_bentley_1 = require("@itwin/core-bentley");
26
25
  class MessageBoxCallbacks {
27
26
  constructor(onFulfilled, onRejected) {
28
27
  this.onFulfilled = onFulfilled;
@@ -118,7 +117,7 @@ class MessageManager {
118
117
  static clearMessages() {
119
118
  this._messages.splice(0);
120
119
  this._activeMessageManager.initialize();
121
- itwinui_react_1.toaster.closeAll(); // Because https://github.com/iTwin/iTwinUI/issues/1604
120
+ this._toastCloseCallbacks.forEach(({ close }) => close());
122
121
  this._toastCloseCallbacks.splice(0);
123
122
  this.onMessagesUpdatedEvent.emit({});
124
123
  this._lastMessage = undefined;
@@ -169,15 +168,12 @@ class MessageManager {
169
168
  ? []
170
169
  : [element, ...this._animateOutToElement];
171
170
  }
172
- /**
173
- * Handles disconnected element modal frontstages, revert to last still displayed.
174
- */
171
+ /** Handles disconnected element modal frontstages, revert to last still displayed. */
175
172
  static get animateOutToElement() {
176
- var _a;
177
173
  if (this._animateOutToElement.length === 0) {
178
- return null;
174
+ return undefined;
179
175
  }
180
- if ((_a = this._animateOutToElement[0]) === null || _a === void 0 ? void 0 : _a.isConnected) {
176
+ if (this._animateOutToElement[0]?.isConnected) {
181
177
  return this._animateOutToElement[0];
182
178
  }
183
179
  this._animateOutToElement.splice(0, 1);
@@ -193,37 +189,20 @@ class MessageManager {
193
189
  static displayMessage(message, options, settings) {
194
190
  if (message.msgType !== core_frontend_1.OutputMessageType.Sticky &&
195
191
  message.msgType !== core_frontend_1.OutputMessageType.Toast) {
196
- return;
192
+ return undefined;
197
193
  }
198
- const toastOptions = {
199
- hasCloseButton: true,
200
- duration: message.displayTime.milliseconds,
201
- type: message.msgType === core_frontend_1.OutputMessageType.Sticky
202
- ? "persisting"
203
- : "temporary",
204
- animateOutTo: this.animateOutToElement,
205
- ...options,
194
+ const args = {
195
+ message,
196
+ options,
197
+ settings,
198
+ animateOutToElement: this.animateOutToElement,
199
+ };
200
+ this.onDisplayMessage.emit(args);
201
+ return {
202
+ close: () => {
203
+ args.close?.();
204
+ },
206
205
  };
207
- itwinui_react_1.toaster.setSettings({
208
- placement: "bottom",
209
- order: "ascending",
210
- ...settings,
211
- });
212
- const content = (React.createElement(React.Fragment, null,
213
- React.createElement(core_react_1.MessageRenderer, { message: message.briefMessage }),
214
- message.detailedMessage && (React.createElement(itwinui_react_1.Text, { variant: "small" },
215
- React.createElement(core_react_1.MessageRenderer, { message: message.detailedMessage })))));
216
- switch (message.priority) {
217
- case core_frontend_1.OutputMessagePriority.Warning:
218
- return itwinui_react_1.toaster.warning(content, toastOptions);
219
- case core_frontend_1.OutputMessagePriority.Info:
220
- return itwinui_react_1.toaster.informational(content, toastOptions);
221
- case core_frontend_1.OutputMessagePriority.Error:
222
- case core_frontend_1.OutputMessagePriority.Fatal:
223
- return itwinui_react_1.toaster.negative(content, toastOptions);
224
- default:
225
- return itwinui_react_1.toaster.positive(content, toastOptions);
226
- }
227
206
  }
228
207
  /** Output a message and/or alert to the user.
229
208
  * @param message Details about the message to output.
@@ -251,6 +230,7 @@ class MessageManager {
251
230
  });
252
231
  const messagesToAdd = MessageManager.activeMessageManager.messages.filter((msg) => !this._toastCloseCallbacks.find((m) => m.id === msg.id));
253
232
  messagesToAdd.forEach((msg) => {
233
+ // eslint-disable-next-line deprecation/deprecation
254
234
  const displayedMessage = MessageManager.displayMessage(msg.messageDetails, {
255
235
  onRemove: () => {
256
236
  MessageManager.activeMessageManager.remove(msg.id);
@@ -463,7 +443,7 @@ class MessageManager {
463
443
  const title = UiFramework_1.UiFramework.translate("general.alert");
464
444
  return new Promise((onFulfilled, onRejected) => {
465
445
  const messageBoxCallbacks = new MessageBoxCallbacks(onFulfilled, onRejected);
466
- const messageElement = React.createElement(MessageSpan_1.MessageSpan, { message: message });
446
+ const messageElement = React.createElement(core_react_1.MessageRenderer, { message: message, useSpan: true });
467
447
  UiFramework_1.UiFramework.dialogs.modal.open(this.standardMessageBox(mbType, icon, title, messageElement, messageBoxCallbacks));
468
448
  });
469
449
  }
@@ -472,9 +452,9 @@ class MessageManager {
472
452
  const title = UiFramework_1.UiFramework.translate("general.alert");
473
453
  const iconType = this.getIconType(messageDetails);
474
454
  const content = (React.createElement(React.Fragment, null,
475
- React.createElement(MessageSpan_1.MessageSpan, { message: messageDetails.briefMessage }),
455
+ React.createElement(core_react_1.MessageRenderer, { message: messageDetails.briefMessage, useSpan: true }),
476
456
  messageDetails.detailedMessage && (React.createElement("p", null,
477
- React.createElement(MessageSpan_1.MessageSpan, { message: messageDetails.detailedMessage })))));
457
+ React.createElement(core_react_1.MessageRenderer, { message: messageDetails.detailedMessage, useSpan: true })))));
478
458
  UiFramework_1.UiFramework.dialogs.modal.open(this.standardMessageBox(core_frontend_1.MessageBoxType.Ok, iconType, title, content));
479
459
  }
480
460
  static standardMessageBox(mbType, iconType, title, messageElement, callbacks) {
@@ -528,6 +508,8 @@ MessageManager.onActivityMessageCancelledEvent = new ActivityMessageCancelledEve
528
508
  MessageManager.onInputFieldMessageAddedEvent = new InputFieldMessageAddedEvent();
529
509
  MessageManager.onInputFieldMessageRemovedEvent = new InputFieldMessageRemovedEvent();
530
510
  MessageManager.onOpenMessageCenterEvent = new OpenMessageCenterEvent();
511
+ /** @internal */
512
+ MessageManager.onDisplayMessage = new core_bentley_1.BeUiEvent();
531
513
  /** The ToolAssistanceChangedEvent is fired when a tool calls IModelApp.notifications.setToolAssistance().
532
514
  * @public
533
515
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MessageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport classnames from \"classnames\";\nimport { isEqual } from \"lodash\";\nimport * as React from \"react\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type {\n MessageBoxValue,\n ToolAssistanceInstructions,\n ToolTipOptions,\n} from \"@itwin/core-frontend\";\nimport {\n ActivityMessageDetails,\n IModelApp,\n MessageBoxIconType,\n MessageBoxType,\n OutputMessageAlert,\n OutputMessagePriority,\n OutputMessageType,\n} from \"@itwin/core-frontend\";\nimport { MessageSeverity, UiEvent } from \"@itwin/appui-abstract\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport { MessageContainer, MessageRenderer } from \"@itwin/core-react\";\nimport { ConfigurableUiActionId } from \"../configurableui/state\";\nimport { StandardMessageBox } from \"../dialog/StandardMessageBox\";\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\nimport { UiFramework } from \"../UiFramework\";\nimport { MessageSpan } from \"./MessageSpan\";\nimport { PointerMessage } from \"./Pointer\";\nimport type {\n NotifyMessageDetailsType,\n NotifyMessageType,\n} from \"./ReactNotifyMessageDetails\";\nimport { StatusMessageManager } from \"./StatusMessageManager\";\nimport type { ToastOptions } from \"@itwin/itwinui-react\";\nimport { Text, toaster } from \"@itwin/itwinui-react\";\nimport type { ToasterSettings } from \"@itwin/itwinui-react/cjs/core/Toast/Toaster\";\nimport {\n SvgInfo,\n SvgStatusError,\n SvgStatusSuccess,\n SvgStatusWarning,\n} from \"@itwin/itwinui-icons-react\";\n\nclass MessageBoxCallbacks {\n constructor(\n public readonly onFulfilled: (result: MessageBoxValue) => void,\n public readonly onRejected: (result: any) => void\n ) {}\n\n public handleMessageBoxResult = (result: MessageBoxValue) => {\n this.onFulfilled(result);\n };\n}\n\n/** [[MessageAddedEvent]] arguments.\n * @public\n */\nexport interface MessageAddedEventArgs {\n /** Message details for the message added */\n message: NotifyMessageDetailsType;\n}\n\n/** Activity Message Event arguments.\n * @public\n */\nexport interface ActivityMessageEventArgs {\n /** Current message for the activity */\n message: NotifyMessageType;\n /** Current percentage for the activity */\n percentage: number;\n /** Message details set by calling NotificationManager.setupActivityMessage */\n details?: ActivityMessageDetails;\n /** Indicates whether the activity message popup is being restored */\n restored?: boolean;\n}\n\n/** Input Field Message Event arguments.\n * @public\n */\nexport interface InputFieldMessageEventArgs {\n /** Target HTML element for the Input Field message */\n target: Element;\n /** Message to be displayed near the input field */\n messageText: NotifyMessageType;\n /** Detailed message to be displayed near the input field */\n detailedMessage: NotifyMessageType;\n /** Priority of the input field message */\n priority: OutputMessagePriority;\n}\n\n/** Tool Assistance Changed event arguments.\n * @public\n */\nexport interface ToolAssistanceChangedEventArgs {\n /** Tool Assistance instructions for the active tool */\n instructions: ToolAssistanceInstructions | undefined;\n}\n\n/** Message Added Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class MessageAddedEvent extends UiEvent<MessageAddedEventArgs> {}\n\n/** Messages Updated Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class MessagesUpdatedEvent extends UiEvent<{}> {}\n\n/** Activity Message Added Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ActivityMessageUpdatedEvent extends UiEvent<ActivityMessageEventArgs> {}\n\n/** Activity Message Cancelled Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ActivityMessageCancelledEvent extends UiEvent<{}> {}\n\n/** Input Field Message Added Event class\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class InputFieldMessageAddedEvent extends UiEvent<InputFieldMessageEventArgs> {}\n\n/** Input Field Message Removed Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class InputFieldMessageRemovedEvent extends UiEvent<{}> {}\n\n/** Open Message Center Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class OpenMessageCenterEvent extends UiEvent<{}> {}\n\n/** Tool Assistance Changed event class\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ToolAssistanceChangedEvent extends UiEvent<ToolAssistanceChangedEventArgs> {}\n\n/**\n * Keeps track of the current activity message, and updates whenever\n * setupActivityMessageDetails() or setupActivityMessageValues()\n * is called.\n * Used to display tracked progress in ActivityMessage.\n */\nclass OngoingActivityMessage {\n public message: NotifyMessageType = \"\";\n public percentage: number = 0;\n public details: ActivityMessageDetails = new ActivityMessageDetails(\n true,\n true,\n true\n );\n public isRestored: boolean = false;\n}\n\n/** The MessageManager class manages messages and prompts. It is used by the [[AppNotificationManager]] class.\n * @public\n */\nexport class MessageManager {\n private static _maxCachedMessages = 500;\n private static _maxDisplayedStickyMessages = 3;\n private static _messages: NotifyMessageDetailsType[] = [];\n private static _ongoingActivityMessage: OngoingActivityMessage =\n new OngoingActivityMessage();\n private static _lastMessage?: NotifyMessageDetailsType;\n private static _activeMessageManager = new StatusMessageManager();\n private static _animateOutToElement: HTMLElement[] = [];\n private static _toastCloseCallbacks: {\n close: () => void;\n id: string;\n }[] = [];\n\n /** The MessageAddedEvent is fired when a message is added via outputMessage(). */\n public static readonly onMessageAddedEvent = new MessageAddedEvent();\n\n /** The MessagesUpdatedEvent is fired when a message is added or the messages are cleared. */\n public static readonly onMessagesUpdatedEvent = new MessagesUpdatedEvent();\n\n /** The ActivityMessageUpdatedEvent is fired when an Activity message updates via outputActivityMessage(). */\n public static readonly onActivityMessageUpdatedEvent =\n new ActivityMessageUpdatedEvent();\n\n /** The ActivityMessageCancelledEvent is fired when an Activity message is cancelled via\n * endActivityMessage(ActivityMessageEndReason.Cancelled) or\n * by the user clicking the 'Cancel' link.\n */\n public static readonly onActivityMessageCancelledEvent =\n new ActivityMessageCancelledEvent();\n\n public static readonly onInputFieldMessageAddedEvent =\n new InputFieldMessageAddedEvent();\n public static readonly onInputFieldMessageRemovedEvent =\n new InputFieldMessageRemovedEvent();\n\n public static readonly onOpenMessageCenterEvent =\n new OpenMessageCenterEvent();\n\n /** The ToolAssistanceChangedEvent is fired when a tool calls IModelApp.notifications.setToolAssistance().\n * @public\n */\n public static readonly onToolAssistanceChangedEvent =\n new ToolAssistanceChangedEvent();\n\n /** List of messages as NotifyMessageDetailsType. */\n public static get messages(): Readonly<NotifyMessageDetailsType[]> {\n return this._messages;\n }\n\n /** Manager of active messages. */\n public static get activeMessageManager(): StatusMessageManager {\n return this._activeMessageManager;\n }\n\n /** Clear the message list. */\n public static clearMessages(): void {\n this._messages.splice(0);\n this._activeMessageManager.initialize();\n\n toaster.closeAll(); // Because https://github.com/iTwin/iTwinUI/issues/1604\n this._toastCloseCallbacks.splice(0);\n\n this.onMessagesUpdatedEvent.emit({});\n this._lastMessage = undefined;\n }\n\n /** Update the message list. */\n public static updateMessages(): void {\n this.onMessagesUpdatedEvent.emit({});\n }\n\n /** Set the maximum number of cached message. */\n public static setMaxCachedMessages(max: number): void {\n this._maxCachedMessages = max;\n this.checkMaxCachedMessages();\n }\n\n /** The maximum number of displayed Sticky messages. */\n public static get maxDisplayedStickyMessages(): number {\n return this._maxDisplayedStickyMessages;\n }\n public static set maxDisplayedStickyMessages(max: number) {\n this._maxDisplayedStickyMessages = max;\n }\n\n /** Output a message and/or alert to the user.\n * @param message Details about the message to output.\n */\n public static outputMessage(message: NotifyMessageDetailsType): void {\n if (message.msgType === OutputMessageType.Pointer) {\n PointerMessage.showMessage(message);\n } else if (message.msgType === OutputMessageType.InputField) {\n if (message.inputField)\n MessageManager.displayInputFieldMessage(\n message.inputField,\n message.briefMessage,\n message.detailedMessage,\n message.priority\n );\n else message.msgType = OutputMessageType.Sticky; // Note: Changing the message.msgType here for InputField without inputField\n } else if (message.msgType === OutputMessageType.Alert) {\n if (message.openAlert === OutputMessageAlert.Balloon)\n message.msgType = OutputMessageType.Sticky;\n // Note: Changing the message.msgType here for Balloon\n else MessageManager.showAlertMessageBox(message);\n }\n\n MessageManager.addMessage(message);\n }\n\n /** Set the element where messages should be animated out to on exit.\n * @param element `HTMLElement` to animate out to.\n */\n public static registerAnimateOutToElement(element: HTMLElement | null) {\n this._animateOutToElement = !element\n ? []\n : [element, ...this._animateOutToElement];\n }\n\n /**\n * Handles disconnected element modal frontstages, revert to last still displayed.\n */\n private static get animateOutToElement(): HTMLElement | null {\n if (this._animateOutToElement.length === 0) {\n return null;\n }\n if (this._animateOutToElement[0]?.isConnected) {\n return this._animateOutToElement[0];\n }\n this._animateOutToElement.splice(0, 1);\n return this.animateOutToElement;\n }\n\n /** Display a message.\n * Works only with `Sticky` and `Toast` message types.\n * @param message Details about the message to display.\n * @param options Optionally override individual toast parameters.\n * @param settings Optionally override all toasts settings (i.e. placement or order).\n * @returns Object with reference to the message (i.e. to close it programmatically) if it was displayed.\n */\n public static displayMessage(\n message: NotifyMessageDetailsType,\n options?: ToastOptions,\n settings?: ToasterSettings\n ) {\n if (\n message.msgType !== OutputMessageType.Sticky &&\n message.msgType !== OutputMessageType.Toast\n ) {\n return;\n }\n const toastOptions: ToastOptions = {\n hasCloseButton: true,\n duration: message.displayTime.milliseconds,\n type:\n message.msgType === OutputMessageType.Sticky\n ? \"persisting\"\n : \"temporary\",\n animateOutTo: this.animateOutToElement,\n ...options,\n };\n toaster.setSettings({\n placement: \"bottom\",\n order: \"ascending\",\n ...settings,\n });\n const content = (\n <>\n <MessageRenderer message={message.briefMessage} />\n {message.detailedMessage && (\n <Text variant=\"small\">\n <MessageRenderer message={message.detailedMessage} />\n </Text>\n )}\n </>\n );\n switch (message.priority) {\n case OutputMessagePriority.Warning:\n return toaster.warning(content, toastOptions);\n case OutputMessagePriority.Info:\n return toaster.informational(content, toastOptions);\n case OutputMessagePriority.Error:\n case OutputMessagePriority.Fatal:\n return toaster.negative(content, toastOptions);\n default:\n return toaster.positive(content, toastOptions);\n }\n }\n\n /** Output a message and/or alert to the user.\n * @param message Details about the message to output.\n */\n public static addMessage(message: NotifyMessageDetailsType): void {\n if (!isEqual(message, this._lastMessage)) {\n this.addToMessageCenter(message);\n this._lastMessage = message;\n }\n\n this._activeMessageManager.add(message);\n\n this.refreshToastMessages();\n\n this.onMessageAddedEvent.emit({ message });\n }\n\n /**\n * Closes sticky messages that are beyond the limit,\n * opens new toast and sticky messages from the active message manager.\n */\n private static refreshToastMessages() {\n this._toastCloseCallbacks = this._toastCloseCallbacks.filter((t) => {\n if (\n MessageManager.activeMessageManager.messages.some(\n (msg) => t.id === msg.id\n )\n ) {\n return true;\n }\n t.close();\n return false;\n });\n\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter(\n (msg) => !this._toastCloseCallbacks.find((m) => m.id === msg.id)\n );\n messagesToAdd.forEach((msg) => {\n const displayedMessage = MessageManager.displayMessage(\n msg.messageDetails,\n {\n onRemove: () => {\n MessageManager.activeMessageManager.remove(msg.id);\n },\n }\n );\n if (!!displayedMessage)\n this._toastCloseCallbacks.push({\n close: displayedMessage.close,\n id: msg.id,\n });\n });\n }\n\n /** Add a message to the Message Center.\n * @param message Details about the message to output.\n */\n public static addToMessageCenter(message: NotifyMessageDetailsType): void {\n this._messages.push(message);\n this.onMessagesUpdatedEvent.emit({});\n this.checkMaxCachedMessages();\n }\n\n /** Checks number of messages against the maximum. */\n private static checkMaxCachedMessages(): void {\n if (this._messages.length > this._maxCachedMessages) {\n const numToErase = this._maxCachedMessages / 4;\n this._messages.splice(0, numToErase);\n this.onMessagesUpdatedEvent.emit({});\n }\n }\n\n /**\n * Sets details for setting up an Activity message.\n * @param details Details for setup of ActivityMessage\n * @returns true if details is valid and can be used to display ActivityMessage\n */\n public static setupActivityMessageDetails(\n details: ActivityMessageDetails\n ): boolean {\n this._ongoingActivityMessage.details = details;\n this._ongoingActivityMessage.isRestored = details.showDialogInitially;\n return true;\n }\n\n /**\n * Output an activity message to the user.\n * @param message The message text.\n * @param percentComplete The percentage of completion.\n * @return true if the message was displayed, false if the message could not be displayed.\n */\n public static outputActivityMessage(\n message: NotifyMessageType,\n percentComplete: number\n ): boolean {\n return MessageManager.setupActivityMessageValues(message, percentComplete);\n }\n\n /**\n * Sets values on _OngoingActivityMessage to be referenced when displaying\n * an ActivityMessage.\n * @param message Message of the process that ActivityMessage is tracking\n * @param percentage Progress made by activity in percentage\n * @param restored True if original ActivityMessage has been closed and\n * is now being restored from the status bar.\n * @returns true if details is valid and can be used to display ActivityMessage\n */\n public static setupActivityMessageValues(\n message: NotifyMessageType,\n percentage: number,\n restored?: boolean\n ): boolean {\n this._ongoingActivityMessage.message = message;\n this._ongoingActivityMessage.percentage = percentage;\n\n this.onActivityMessageUpdatedEvent.emit({\n message,\n percentage,\n details: this._ongoingActivityMessage.details,\n restored:\n restored !== undefined\n ? restored\n : this._ongoingActivityMessage.isRestored,\n });\n\n this._ongoingActivityMessage.isRestored = false;\n\n return true;\n }\n\n /**\n * Dismisses current ActivityMessage and ends activity if canceled.\n * @param isCompleted True if the activity was completed, false if it was canceled\n * @returns True if both ActivityMessage and activity process are ended.\n */\n public static endActivityMessage(isCompleted: boolean): boolean {\n this.endActivityProcessing(isCompleted);\n this.onActivityMessageCancelledEvent.emit({});\n return true;\n }\n\n /**\n * Ends processing for activity according to message definition.\n * @param isCompleted True if the activity was completed, false if it was canceled\n */\n private static endActivityProcessing(isCompleted: boolean): void {\n if (isCompleted) this._ongoingActivityMessage.details.onActivityCompleted();\n else this._ongoingActivityMessage.details.onActivityCancelled();\n }\n\n /**\n * Displays an input field message near target element.\n * @param target The currently focused or recently focused element to place the\n * input field message near.\n * @param messageText Text to display in the message.\n * @param detailedMessage Optional detailed message text to display.\n * @param priority Optional message priority which controls icon to display.\n */\n public static displayInputFieldMessage(\n target: HTMLElement,\n messageText: NotifyMessageType,\n detailedMessage: NotifyMessageType = \"\",\n priority = OutputMessagePriority.Error\n ) {\n this.onInputFieldMessageAddedEvent.emit({\n target,\n messageText,\n detailedMessage,\n priority,\n });\n }\n\n /**\n * Hides the currently displayed input field message.\n */\n public static hideInputFieldMessage() {\n this.onInputFieldMessageRemovedEvent.emit({});\n }\n\n /**\n * Opens message center.\n */\n public static openMessageCenter() {\n this.onOpenMessageCenterEvent.emit({});\n }\n\n /** Output a prompt to the user. A 'prompt' indicates an action the user should take to proceed. */\n public static outputPrompt(prompt: string): void {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetToolPrompt,\n prompt,\n true\n );\n }\n\n /** Extracts the message severity from the message details and returns the corresponding React icon.\n * @param details NotifyMessageDetailsType\n * @returns IconSpec\n */\n public static getIconSpecFromDetails(\n details: NotifyMessageDetailsType\n ): IconSpec {\n const severity = MessageManager.getSeverity(details);\n let iconSpec: IconSpec = <SvgStatusSuccess />;\n switch (severity) {\n case MessageSeverity.Error:\n case MessageSeverity.Fatal:\n iconSpec = <SvgStatusError />;\n break;\n case MessageSeverity.Warning:\n iconSpec = <SvgStatusWarning />;\n break;\n case MessageSeverity.Information:\n iconSpec = <SvgInfo />;\n break;\n }\n return iconSpec;\n }\n /** Gets an icon CSS class name based on a given NotifyMessageDetailsType.\n * @public\n */\n public static getIconClassName(details: NotifyMessageDetailsType): string {\n const severity = MessageManager.getSeverity(details);\n const className = MessageContainer.getIconClassName(severity);\n const iconClassName = classnames(\"icon\", \"notifymessage-icon\", className);\n\n return iconClassName;\n }\n\n /** Gets a MessageSeverity based on a given NotifyMessageDetailsType. */\n public static getSeverity(\n details: NotifyMessageDetailsType\n ): MessageSeverity {\n let severity = MessageSeverity.None;\n\n switch (details.priority) {\n case OutputMessagePriority.None:\n severity = MessageSeverity.Success;\n break;\n case OutputMessagePriority.Success:\n severity = MessageSeverity.Success;\n break;\n case OutputMessagePriority.Info:\n severity = MessageSeverity.Information;\n break;\n case OutputMessagePriority.Warning:\n severity = MessageSeverity.Warning;\n break;\n case OutputMessagePriority.Error:\n severity = MessageSeverity.Error;\n break;\n case OutputMessagePriority.Fatal:\n severity = MessageSeverity.Fatal;\n break;\n }\n\n return severity;\n }\n\n /** Gets a MessageBoxIconType based on a given NotifyMessageDetailsType. */\n public static getIconType(\n details: NotifyMessageDetailsType\n ): MessageBoxIconType {\n let iconType = MessageBoxIconType.NoSymbol;\n\n switch (details.priority) {\n case OutputMessagePriority.None:\n iconType = MessageBoxIconType.NoSymbol;\n break;\n case OutputMessagePriority.Success:\n iconType = MessageBoxIconType.Success;\n break;\n case OutputMessagePriority.Info:\n iconType = MessageBoxIconType.Information;\n break;\n case OutputMessagePriority.Warning:\n iconType = MessageBoxIconType.Warning;\n break;\n case OutputMessagePriority.Error:\n iconType = MessageBoxIconType.Critical;\n break;\n case OutputMessagePriority.Fatal:\n iconType = MessageBoxIconType.Critical;\n break;\n }\n\n return iconType;\n }\n\n /** Output a MessageBox and wait for response from the user.\n * @param mbType The MessageBox type.\n * @param message The message to display.\n * @param icon The MessageBox icon type.\n * @return the response from the user.\n */\n public static async openMessageBox(\n mbType: MessageBoxType,\n message: NotifyMessageType,\n icon: MessageBoxIconType\n ): Promise<MessageBoxValue> {\n const title = UiFramework.translate(\"general.alert\");\n\n return new Promise(\n (\n onFulfilled: (result: MessageBoxValue) => void,\n onRejected: (reason: any) => void\n ) => {\n const messageBoxCallbacks = new MessageBoxCallbacks(\n onFulfilled,\n onRejected\n );\n const messageElement = <MessageSpan message={message} />;\n UiFramework.dialogs.modal.open(\n this.standardMessageBox(\n mbType,\n icon,\n title,\n messageElement,\n messageBoxCallbacks\n )\n );\n }\n );\n }\n\n /** @internal */\n public static showAlertMessageBox(\n messageDetails: NotifyMessageDetailsType\n ): void {\n const title = UiFramework.translate(\"general.alert\");\n const iconType = this.getIconType(messageDetails);\n const content = (\n <>\n <MessageSpan message={messageDetails.briefMessage} />\n {messageDetails.detailedMessage && (\n <p>\n <MessageSpan message={messageDetails.detailedMessage} />\n </p>\n )}\n </>\n );\n UiFramework.dialogs.modal.open(\n this.standardMessageBox(MessageBoxType.Ok, iconType, title, content)\n );\n }\n\n private static standardMessageBox(\n mbType: MessageBoxType,\n iconType: MessageBoxIconType,\n title: string,\n messageElement: React.ReactNode,\n callbacks?: MessageBoxCallbacks\n ): React.ReactNode {\n const onResult =\n callbacks !== undefined ? callbacks.handleMessageBoxResult : undefined;\n return (\n <StandardMessageBox\n opened={true}\n messageBoxType={mbType}\n iconType={iconType}\n title={title}\n onResult={onResult}\n >\n {messageElement}\n </StandardMessageBox>\n );\n }\n\n /** Setup tool assistance instructions for a tool. The instructions include the main instruction, which includes the current prompt.\n * @param instructions The tool assistance instructions.\n * @public\n */\n public static setToolAssistance(\n instructions: ToolAssistanceInstructions | undefined\n ) {\n MessageManager.onToolAssistanceChangedEvent.emit({ instructions });\n }\n\n /** Show a tooltip window. Saves tooltip location for AccuSnap to test if cursor has moved far enough away to close tooltip.\n * @param htmlElement The HTMLElement that anchors the tooltip.\n * @param message What to display inside the tooltip.\n * @param location An optional location, relative to the origin of htmlElement, for the tooltip. If undefined, center of `htmlElement`.\n * @param options Options that supply additional information about how the tooltip should function.\n */\n public static openToolTip(\n htmlElement: HTMLElement,\n message: NotifyMessageType,\n location?: XAndY,\n options?: ToolTipOptions\n ): void {\n IModelApp.notifications.toolTipLocation.setFrom(location);\n ElementTooltip.showTooltip(htmlElement, message, location, options);\n }\n\n /** @internal */\n public static closeAllMessages(): void {\n ElementTooltip.hideTooltip();\n PointerMessage.hideMessage();\n MessageManager.clearMessages();\n MessageManager.hideInputFieldMessage();\n MessageManager.endActivityMessage(false);\n }\n}\n"]}
1
+ {"version":3,"file":"MessageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport classnames from \"classnames\";\nimport { isEqual } from \"lodash\";\nimport * as React from \"react\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type {\n MessageBoxValue,\n ToolAssistanceInstructions,\n ToolTipOptions,\n} from \"@itwin/core-frontend\";\nimport {\n ActivityMessageDetails,\n IModelApp,\n MessageBoxIconType,\n MessageBoxType,\n OutputMessageAlert,\n OutputMessagePriority,\n OutputMessageType,\n} from \"@itwin/core-frontend\";\nimport { MessageSeverity, UiEvent } from \"@itwin/appui-abstract\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport { MessageContainer, MessageRenderer } from \"@itwin/core-react\";\nimport { ConfigurableUiActionId } from \"../configurableui/state\";\nimport { StandardMessageBox } from \"../dialog/StandardMessageBox\";\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\nimport { UiFramework } from \"../UiFramework\";\nimport { PointerMessage } from \"./Pointer\";\nimport type {\n NotifyMessageDetailsType,\n NotifyMessageType,\n} from \"./ReactNotifyMessageDetails\";\nimport { StatusMessageManager } from \"./StatusMessageManager\";\nimport {\n SvgInfo,\n SvgStatusError,\n SvgStatusSuccess,\n SvgStatusWarning,\n} from \"@itwin/itwinui-icons-react\";\nimport type { useToaster } from \"@itwin/itwinui-react\";\nimport { BeUiEvent } from \"@itwin/core-bentley\";\n\ntype Toaster = ReturnType<typeof useToaster>;\ntype ToasterSettings = Parameters<Toaster[\"setSettings\"]>;\ntype ToastOptions = Parameters<Toaster[\"positive\"]>[1];\n\nclass MessageBoxCallbacks {\n constructor(\n public readonly onFulfilled: (result: MessageBoxValue) => void,\n public readonly onRejected: (result: any) => void\n ) {}\n\n public handleMessageBoxResult = (result: MessageBoxValue) => {\n this.onFulfilled(result);\n };\n}\n\n/** [[MessageAddedEvent]] arguments.\n * @public\n */\nexport interface MessageAddedEventArgs {\n /** Message details for the message added */\n message: NotifyMessageDetailsType;\n}\n\n/** Activity Message Event arguments.\n * @public\n */\nexport interface ActivityMessageEventArgs {\n /** Current message for the activity */\n message: NotifyMessageType;\n /** Current percentage for the activity */\n percentage: number;\n /** Message details set by calling NotificationManager.setupActivityMessage */\n details?: ActivityMessageDetails;\n /** Indicates whether the activity message popup is being restored */\n restored?: boolean;\n}\n\n/** Input Field Message Event arguments.\n * @public\n */\nexport interface InputFieldMessageEventArgs {\n /** Target HTML element for the Input Field message */\n target: Element;\n /** Message to be displayed near the input field */\n messageText: NotifyMessageType;\n /** Detailed message to be displayed near the input field */\n detailedMessage: NotifyMessageType;\n /** Priority of the input field message */\n priority: OutputMessagePriority;\n}\n\n/** Tool Assistance Changed event arguments.\n * @public\n */\nexport interface ToolAssistanceChangedEventArgs {\n /** Tool Assistance instructions for the active tool */\n instructions: ToolAssistanceInstructions | undefined;\n}\n\n/** Message Added Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class MessageAddedEvent extends UiEvent<MessageAddedEventArgs> {}\n\n/** Messages Updated Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class MessagesUpdatedEvent extends UiEvent<{}> {}\n\n/** Activity Message Added Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ActivityMessageUpdatedEvent extends UiEvent<ActivityMessageEventArgs> {}\n\n/** Activity Message Cancelled Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ActivityMessageCancelledEvent extends UiEvent<{}> {}\n\n/** Input Field Message Added Event class\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class InputFieldMessageAddedEvent extends UiEvent<InputFieldMessageEventArgs> {}\n\n/** Input Field Message Removed Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class InputFieldMessageRemovedEvent extends UiEvent<{}> {}\n\n/** Open Message Center Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class OpenMessageCenterEvent extends UiEvent<{}> {}\n\n/** Tool Assistance Changed event class\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ToolAssistanceChangedEvent extends UiEvent<ToolAssistanceChangedEventArgs> {}\n\n/**\n * Keeps track of the current activity message, and updates whenever\n * setupActivityMessageDetails() or setupActivityMessageValues()\n * is called.\n * Used to display tracked progress in ActivityMessage.\n */\nclass OngoingActivityMessage {\n public message: NotifyMessageType = \"\";\n public percentage: number = 0;\n public details: ActivityMessageDetails = new ActivityMessageDetails(\n true,\n true,\n true\n );\n public isRestored: boolean = false;\n}\n\n/** The MessageManager class manages messages and prompts. It is used by the [[AppNotificationManager]] class.\n * @public\n */\nexport class MessageManager {\n private static _maxCachedMessages = 500;\n private static _maxDisplayedStickyMessages = 3;\n private static _messages: NotifyMessageDetailsType[] = [];\n private static _ongoingActivityMessage: OngoingActivityMessage =\n new OngoingActivityMessage();\n private static _lastMessage?: NotifyMessageDetailsType;\n private static _activeMessageManager = new StatusMessageManager();\n private static _animateOutToElement: HTMLElement[] = [];\n private static _toastCloseCallbacks: {\n close: () => void;\n id: string;\n }[] = [];\n\n /** The MessageAddedEvent is fired when a message is added via outputMessage(). */\n public static readonly onMessageAddedEvent = new MessageAddedEvent();\n\n /** The MessagesUpdatedEvent is fired when a message is added or the messages are cleared. */\n public static readonly onMessagesUpdatedEvent = new MessagesUpdatedEvent();\n\n /** The ActivityMessageUpdatedEvent is fired when an Activity message updates via outputActivityMessage(). */\n public static readonly onActivityMessageUpdatedEvent =\n new ActivityMessageUpdatedEvent();\n\n /** The ActivityMessageCancelledEvent is fired when an Activity message is cancelled via\n * endActivityMessage(ActivityMessageEndReason.Cancelled) or\n * by the user clicking the 'Cancel' link.\n */\n public static readonly onActivityMessageCancelledEvent =\n new ActivityMessageCancelledEvent();\n\n public static readonly onInputFieldMessageAddedEvent =\n new InputFieldMessageAddedEvent();\n public static readonly onInputFieldMessageRemovedEvent =\n new InputFieldMessageRemovedEvent();\n\n public static readonly onOpenMessageCenterEvent =\n new OpenMessageCenterEvent();\n\n /** @internal */\n public static readonly onDisplayMessage = new BeUiEvent<{\n message: NotifyMessageDetailsType;\n options?: ToastOptions;\n settings?: ToasterSettings;\n animateOutToElement?: HTMLElement;\n close?: () => void;\n }>();\n\n /** The ToolAssistanceChangedEvent is fired when a tool calls IModelApp.notifications.setToolAssistance().\n * @public\n */\n public static readonly onToolAssistanceChangedEvent =\n new ToolAssistanceChangedEvent();\n\n /** List of messages as NotifyMessageDetailsType. */\n public static get messages(): Readonly<NotifyMessageDetailsType[]> {\n return this._messages;\n }\n\n /** Manager of active messages. */\n public static get activeMessageManager(): StatusMessageManager {\n return this._activeMessageManager;\n }\n\n /** Clear the message list. */\n public static clearMessages(): void {\n this._messages.splice(0);\n this._activeMessageManager.initialize();\n\n this._toastCloseCallbacks.forEach(({ close }) => close());\n this._toastCloseCallbacks.splice(0);\n\n this.onMessagesUpdatedEvent.emit({});\n this._lastMessage = undefined;\n }\n\n /** Update the message list. */\n public static updateMessages(): void {\n this.onMessagesUpdatedEvent.emit({});\n }\n\n /** Set the maximum number of cached message. */\n public static setMaxCachedMessages(max: number): void {\n this._maxCachedMessages = max;\n this.checkMaxCachedMessages();\n }\n\n /** The maximum number of displayed Sticky messages. */\n public static get maxDisplayedStickyMessages(): number {\n return this._maxDisplayedStickyMessages;\n }\n public static set maxDisplayedStickyMessages(max: number) {\n this._maxDisplayedStickyMessages = max;\n }\n\n /** Output a message and/or alert to the user.\n * @param message Details about the message to output.\n */\n public static outputMessage(message: NotifyMessageDetailsType): void {\n if (message.msgType === OutputMessageType.Pointer) {\n PointerMessage.showMessage(message);\n } else if (message.msgType === OutputMessageType.InputField) {\n if (message.inputField)\n MessageManager.displayInputFieldMessage(\n message.inputField,\n message.briefMessage,\n message.detailedMessage,\n message.priority\n );\n else message.msgType = OutputMessageType.Sticky; // Note: Changing the message.msgType here for InputField without inputField\n } else if (message.msgType === OutputMessageType.Alert) {\n if (message.openAlert === OutputMessageAlert.Balloon)\n message.msgType = OutputMessageType.Sticky;\n // Note: Changing the message.msgType here for Balloon\n else MessageManager.showAlertMessageBox(message);\n }\n\n MessageManager.addMessage(message);\n }\n\n /** Set the element where messages should be animated out to on exit.\n * @param element `HTMLElement` to animate out to.\n */\n public static registerAnimateOutToElement(element: HTMLElement | null) {\n this._animateOutToElement = !element\n ? []\n : [element, ...this._animateOutToElement];\n }\n\n /** Handles disconnected element modal frontstages, revert to last still displayed. */\n private static get animateOutToElement(): HTMLElement | undefined {\n if (this._animateOutToElement.length === 0) {\n return undefined;\n }\n if (this._animateOutToElement[0]?.isConnected) {\n return this._animateOutToElement[0];\n }\n this._animateOutToElement.splice(0, 1);\n return this.animateOutToElement;\n }\n\n /** Display a message.\n * Works only with `Sticky` and `Toast` message types.\n * @param message Details about the message to display.\n * @param options Optionally override individual toast parameters.\n * @param settings Optionally override all toasts settings (i.e. placement or order).\n * @returns Object with reference to the message (i.e. to close it programmatically) if it was displayed.\n */\n public static displayMessage(\n message: NotifyMessageDetailsType,\n options?: ToastOptions,\n settings?: ToasterSettings\n ) {\n if (\n message.msgType !== OutputMessageType.Sticky &&\n message.msgType !== OutputMessageType.Toast\n ) {\n return undefined;\n }\n\n const args: Parameters<\n (typeof MessageManager.onDisplayMessage)[\"emit\"]\n >[0] = {\n message,\n options,\n settings,\n animateOutToElement: this.animateOutToElement,\n };\n this.onDisplayMessage.emit(args);\n return {\n close: () => {\n args.close?.();\n },\n };\n }\n\n /** Output a message and/or alert to the user.\n * @param message Details about the message to output.\n */\n public static addMessage(message: NotifyMessageDetailsType): void {\n if (!isEqual(message, this._lastMessage)) {\n this.addToMessageCenter(message);\n this._lastMessage = message;\n }\n\n this._activeMessageManager.add(message);\n\n this.refreshToastMessages();\n\n this.onMessageAddedEvent.emit({ message });\n }\n\n /**\n * Closes sticky messages that are beyond the limit,\n * opens new toast and sticky messages from the active message manager.\n */\n private static refreshToastMessages() {\n this._toastCloseCallbacks = this._toastCloseCallbacks.filter((t) => {\n if (\n MessageManager.activeMessageManager.messages.some(\n (msg) => t.id === msg.id\n )\n ) {\n return true;\n }\n t.close();\n return false;\n });\n\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter(\n (msg) => !this._toastCloseCallbacks.find((m) => m.id === msg.id)\n );\n messagesToAdd.forEach((msg) => {\n // eslint-disable-next-line deprecation/deprecation\n const displayedMessage = MessageManager.displayMessage(\n msg.messageDetails,\n {\n onRemove: () => {\n MessageManager.activeMessageManager.remove(msg.id);\n },\n }\n );\n if (!!displayedMessage)\n this._toastCloseCallbacks.push({\n close: displayedMessage.close,\n id: msg.id,\n });\n });\n }\n\n /** Add a message to the Message Center.\n * @param message Details about the message to output.\n */\n public static addToMessageCenter(message: NotifyMessageDetailsType): void {\n this._messages.push(message);\n this.onMessagesUpdatedEvent.emit({});\n this.checkMaxCachedMessages();\n }\n\n /** Checks number of messages against the maximum. */\n private static checkMaxCachedMessages(): void {\n if (this._messages.length > this._maxCachedMessages) {\n const numToErase = this._maxCachedMessages / 4;\n this._messages.splice(0, numToErase);\n this.onMessagesUpdatedEvent.emit({});\n }\n }\n\n /**\n * Sets details for setting up an Activity message.\n * @param details Details for setup of ActivityMessage\n * @returns true if details is valid and can be used to display ActivityMessage\n */\n public static setupActivityMessageDetails(\n details: ActivityMessageDetails\n ): boolean {\n this._ongoingActivityMessage.details = details;\n this._ongoingActivityMessage.isRestored = details.showDialogInitially;\n return true;\n }\n\n /**\n * Output an activity message to the user.\n * @param message The message text.\n * @param percentComplete The percentage of completion.\n * @return true if the message was displayed, false if the message could not be displayed.\n */\n public static outputActivityMessage(\n message: NotifyMessageType,\n percentComplete: number\n ): boolean {\n return MessageManager.setupActivityMessageValues(message, percentComplete);\n }\n\n /**\n * Sets values on _OngoingActivityMessage to be referenced when displaying\n * an ActivityMessage.\n * @param message Message of the process that ActivityMessage is tracking\n * @param percentage Progress made by activity in percentage\n * @param restored True if original ActivityMessage has been closed and\n * is now being restored from the status bar.\n * @returns true if details is valid and can be used to display ActivityMessage\n */\n public static setupActivityMessageValues(\n message: NotifyMessageType,\n percentage: number,\n restored?: boolean\n ): boolean {\n this._ongoingActivityMessage.message = message;\n this._ongoingActivityMessage.percentage = percentage;\n\n this.onActivityMessageUpdatedEvent.emit({\n message,\n percentage,\n details: this._ongoingActivityMessage.details,\n restored:\n restored !== undefined\n ? restored\n : this._ongoingActivityMessage.isRestored,\n });\n\n this._ongoingActivityMessage.isRestored = false;\n\n return true;\n }\n\n /**\n * Dismisses current ActivityMessage and ends activity if canceled.\n * @param isCompleted True if the activity was completed, false if it was canceled\n * @returns True if both ActivityMessage and activity process are ended.\n */\n public static endActivityMessage(isCompleted: boolean): boolean {\n this.endActivityProcessing(isCompleted);\n this.onActivityMessageCancelledEvent.emit({});\n return true;\n }\n\n /**\n * Ends processing for activity according to message definition.\n * @param isCompleted True if the activity was completed, false if it was canceled\n */\n private static endActivityProcessing(isCompleted: boolean): void {\n if (isCompleted) this._ongoingActivityMessage.details.onActivityCompleted();\n else this._ongoingActivityMessage.details.onActivityCancelled();\n }\n\n /**\n * Displays an input field message near target element.\n * @param target The currently focused or recently focused element to place the\n * input field message near.\n * @param messageText Text to display in the message.\n * @param detailedMessage Optional detailed message text to display.\n * @param priority Optional message priority which controls icon to display.\n */\n public static displayInputFieldMessage(\n target: HTMLElement,\n messageText: NotifyMessageType,\n detailedMessage: NotifyMessageType = \"\",\n priority = OutputMessagePriority.Error\n ) {\n this.onInputFieldMessageAddedEvent.emit({\n target,\n messageText,\n detailedMessage,\n priority,\n });\n }\n\n /**\n * Hides the currently displayed input field message.\n */\n public static hideInputFieldMessage() {\n this.onInputFieldMessageRemovedEvent.emit({});\n }\n\n /**\n * Opens message center.\n */\n public static openMessageCenter() {\n this.onOpenMessageCenterEvent.emit({});\n }\n\n /** Output a prompt to the user. A 'prompt' indicates an action the user should take to proceed. */\n public static outputPrompt(prompt: string): void {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetToolPrompt,\n prompt,\n true\n );\n }\n\n /** Extracts the message severity from the message details and returns the corresponding React icon.\n * @param details NotifyMessageDetailsType\n * @returns IconSpec\n */\n public static getIconSpecFromDetails(\n details: NotifyMessageDetailsType\n ): IconSpec {\n const severity = MessageManager.getSeverity(details);\n let iconSpec: IconSpec = <SvgStatusSuccess />;\n switch (severity) {\n case MessageSeverity.Error:\n case MessageSeverity.Fatal:\n iconSpec = <SvgStatusError />;\n break;\n case MessageSeverity.Warning:\n iconSpec = <SvgStatusWarning />;\n break;\n case MessageSeverity.Information:\n iconSpec = <SvgInfo />;\n break;\n }\n return iconSpec;\n }\n /** Gets an icon CSS class name based on a given NotifyMessageDetailsType.\n * @public\n */\n public static getIconClassName(details: NotifyMessageDetailsType): string {\n const severity = MessageManager.getSeverity(details);\n const className = MessageContainer.getIconClassName(severity);\n const iconClassName = classnames(\"icon\", \"notifymessage-icon\", className);\n\n return iconClassName;\n }\n\n /** Gets a MessageSeverity based on a given NotifyMessageDetailsType. */\n public static getSeverity(\n details: NotifyMessageDetailsType\n ): MessageSeverity {\n let severity = MessageSeverity.None;\n\n switch (details.priority) {\n case OutputMessagePriority.None:\n severity = MessageSeverity.Success;\n break;\n case OutputMessagePriority.Success:\n severity = MessageSeverity.Success;\n break;\n case OutputMessagePriority.Info:\n severity = MessageSeverity.Information;\n break;\n case OutputMessagePriority.Warning:\n severity = MessageSeverity.Warning;\n break;\n case OutputMessagePriority.Error:\n severity = MessageSeverity.Error;\n break;\n case OutputMessagePriority.Fatal:\n severity = MessageSeverity.Fatal;\n break;\n }\n\n return severity;\n }\n\n /** Gets a MessageBoxIconType based on a given NotifyMessageDetailsType. */\n public static getIconType(\n details: NotifyMessageDetailsType\n ): MessageBoxIconType {\n let iconType = MessageBoxIconType.NoSymbol;\n\n switch (details.priority) {\n case OutputMessagePriority.None:\n iconType = MessageBoxIconType.NoSymbol;\n break;\n case OutputMessagePriority.Success:\n iconType = MessageBoxIconType.Success;\n break;\n case OutputMessagePriority.Info:\n iconType = MessageBoxIconType.Information;\n break;\n case OutputMessagePriority.Warning:\n iconType = MessageBoxIconType.Warning;\n break;\n case OutputMessagePriority.Error:\n iconType = MessageBoxIconType.Critical;\n break;\n case OutputMessagePriority.Fatal:\n iconType = MessageBoxIconType.Critical;\n break;\n }\n\n return iconType;\n }\n\n /** Output a MessageBox and wait for response from the user.\n * @param mbType The MessageBox type.\n * @param message The message to display.\n * @param icon The MessageBox icon type.\n * @return the response from the user.\n */\n public static async openMessageBox(\n mbType: MessageBoxType,\n message: NotifyMessageType,\n icon: MessageBoxIconType\n ): Promise<MessageBoxValue> {\n const title = UiFramework.translate(\"general.alert\");\n\n return new Promise(\n (\n onFulfilled: (result: MessageBoxValue) => void,\n onRejected: (reason: any) => void\n ) => {\n const messageBoxCallbacks = new MessageBoxCallbacks(\n onFulfilled,\n onRejected\n );\n const messageElement = <MessageRenderer message={message} useSpan />;\n UiFramework.dialogs.modal.open(\n this.standardMessageBox(\n mbType,\n icon,\n title,\n messageElement,\n messageBoxCallbacks\n )\n );\n }\n );\n }\n\n /** @internal */\n public static showAlertMessageBox(\n messageDetails: NotifyMessageDetailsType\n ): void {\n const title = UiFramework.translate(\"general.alert\");\n const iconType = this.getIconType(messageDetails);\n const content = (\n <>\n <MessageRenderer message={messageDetails.briefMessage} useSpan />\n {messageDetails.detailedMessage && (\n <p>\n <MessageRenderer message={messageDetails.detailedMessage} useSpan />\n </p>\n )}\n </>\n );\n UiFramework.dialogs.modal.open(\n this.standardMessageBox(MessageBoxType.Ok, iconType, title, content)\n );\n }\n\n private static standardMessageBox(\n mbType: MessageBoxType,\n iconType: MessageBoxIconType,\n title: string,\n messageElement: React.ReactNode,\n callbacks?: MessageBoxCallbacks\n ): React.ReactNode {\n const onResult =\n callbacks !== undefined ? callbacks.handleMessageBoxResult : undefined;\n return (\n <StandardMessageBox\n opened={true}\n messageBoxType={mbType}\n iconType={iconType}\n title={title}\n onResult={onResult}\n >\n {messageElement}\n </StandardMessageBox>\n );\n }\n\n /** Setup tool assistance instructions for a tool. The instructions include the main instruction, which includes the current prompt.\n * @param instructions The tool assistance instructions.\n * @public\n */\n public static setToolAssistance(\n instructions: ToolAssistanceInstructions | undefined\n ) {\n MessageManager.onToolAssistanceChangedEvent.emit({ instructions });\n }\n\n /** Show a tooltip window. Saves tooltip location for AccuSnap to test if cursor has moved far enough away to close tooltip.\n * @param htmlElement The HTMLElement that anchors the tooltip.\n * @param message What to display inside the tooltip.\n * @param location An optional location, relative to the origin of htmlElement, for the tooltip. If undefined, center of `htmlElement`.\n * @param options Options that supply additional information about how the tooltip should function.\n */\n public static openToolTip(\n htmlElement: HTMLElement,\n message: NotifyMessageType,\n location?: XAndY,\n options?: ToolTipOptions\n ): void {\n IModelApp.notifications.toolTipLocation.setFrom(location);\n ElementTooltip.showTooltip(htmlElement, message, location, options);\n }\n\n /** @internal */\n public static closeAllMessages(): void {\n ElementTooltip.hideTooltip();\n PointerMessage.hideMessage();\n MessageManager.clearMessages();\n MessageManager.hideInputFieldMessage();\n MessageManager.endActivityMessage(false);\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ /** @packageDocumentation
2
+ * @module Notification
3
+ */
4
+ /** Component that renders activity, toast and sticky messages dispatched from message manager.
5
+ * @internal
6
+ */
7
+ export declare function MessageRenderer(): null;
8
+ //# sourceMappingURL=MessageRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageRenderer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageRenderer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAgEH;;GAEG;AACH,wBAAgB,eAAe,SAuB9B"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Notification
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.MessageRenderer = void 0;
11
+ const React = require("react");
12
+ const core_react_1 = require("@itwin/core-react");
13
+ const itwinui_react_1 = require("@itwin/itwinui-react");
14
+ const UiFramework_1 = require("../UiFramework");
15
+ const MessageManager_1 = require("../messages/MessageManager");
16
+ const core_frontend_1 = require("@itwin/core-frontend");
17
+ /** Hook to render an Activity message.
18
+ * @internal
19
+ */
20
+ function useActivityMessage({ activityMessageInfo, dismissActivityMessage, cancelActivityMessage, }) {
21
+ const toaster = (0, itwinui_react_1.useToaster)();
22
+ const [cancelLabel] = React.useState(core_react_1.UiCore.translate("dialog.cancel"));
23
+ const recentToast = React.useRef();
24
+ React.useEffect(() => {
25
+ toaster.setSettings({ placement: "bottom" });
26
+ }, [toaster]);
27
+ React.useEffect(() => {
28
+ if (activityMessageInfo?.restored) {
29
+ recentToast.current = toaster.informational(React.createElement(ActivityMessageContent, { initialActivityMessageInfo: activityMessageInfo }), {
30
+ onRemove: dismissActivityMessage,
31
+ type: "persisting",
32
+ link: activityMessageInfo?.details?.supportsCancellation &&
33
+ cancelActivityMessage
34
+ ? { title: cancelLabel, onClick: cancelActivityMessage }
35
+ : undefined,
36
+ });
37
+ }
38
+ if (!activityMessageInfo) {
39
+ recentToast.current?.close();
40
+ }
41
+ }, [
42
+ activityMessageInfo,
43
+ cancelActivityMessage,
44
+ cancelLabel,
45
+ dismissActivityMessage,
46
+ toaster,
47
+ ]);
48
+ }
49
+ /** Component that renders activity, toast and sticky messages dispatched from message manager.
50
+ * @internal
51
+ */
52
+ function MessageRenderer() {
53
+ const [activityMessageInfo, setActivityMessageInfo] = React.useState();
54
+ React.useEffect(() => {
55
+ return MessageManager_1.MessageManager.onActivityMessageUpdatedEvent.addListener((args) => {
56
+ setActivityMessageInfo(args);
57
+ });
58
+ }, []);
59
+ React.useEffect(() => {
60
+ return MessageManager_1.MessageManager.onActivityMessageCancelledEvent.addListener(() => {
61
+ setActivityMessageInfo(undefined);
62
+ });
63
+ }, []);
64
+ const cancelActivityMessage = React.useCallback(() => {
65
+ MessageManager_1.MessageManager.endActivityMessage(false);
66
+ }, []);
67
+ useActivityMessage({ activityMessageInfo, cancelActivityMessage });
68
+ useDisplayMessage();
69
+ return null;
70
+ }
71
+ exports.MessageRenderer = MessageRenderer;
72
+ /** Component used to show and update activity message content.
73
+ * @internal
74
+ */
75
+ function ActivityMessageContent({ initialActivityMessageInfo, }) {
76
+ const [percentCompleteLabel] = React.useState(UiFramework_1.UiFramework.translate("activityCenter.percentComplete"));
77
+ const [activityMessageInfo, setActivityMessageInfo] = React.useState(initialActivityMessageInfo);
78
+ React.useEffect(() => {
79
+ const handleActivityMessageUpdatedEvent = (args) => {
80
+ setActivityMessageInfo(args);
81
+ };
82
+ return MessageManager_1.MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);
83
+ }, []);
84
+ return (React.createElement(React.Fragment, null,
85
+ activityMessageInfo.message && (React.createElement(itwinui_react_1.Text, null,
86
+ React.createElement(React.Fragment, null, activityMessageInfo.message.reactNode ||
87
+ activityMessageInfo.message))),
88
+ !!activityMessageInfo.details?.showPercentInMessage && (React.createElement(itwinui_react_1.Text, { variant: "small" }, `${activityMessageInfo.percentage} ${percentCompleteLabel}`)),
89
+ activityMessageInfo.details?.showProgressBar && (React.createElement(itwinui_react_1.ProgressLinear, { value: activityMessageInfo?.percentage }))));
90
+ }
91
+ function useDisplayMessage() {
92
+ const toaster = (0, itwinui_react_1.useToaster)();
93
+ React.useEffect(() => {
94
+ return MessageManager_1.MessageManager.onDisplayMessage.addListener((args) => {
95
+ const { message, options, settings, animateOutToElement } = args;
96
+ const toastOptions = {
97
+ hasCloseButton: true,
98
+ duration: message.displayTime.milliseconds,
99
+ type: message.msgType === core_frontend_1.OutputMessageType.Sticky
100
+ ? "persisting"
101
+ : "temporary",
102
+ animateOutTo: animateOutToElement,
103
+ ...options,
104
+ };
105
+ toaster.setSettings({
106
+ placement: "bottom",
107
+ order: "ascending",
108
+ ...settings,
109
+ });
110
+ const content = (React.createElement(React.Fragment, null,
111
+ React.createElement(core_react_1.MessageRenderer, { message: message.briefMessage }),
112
+ message.detailedMessage && (React.createElement(itwinui_react_1.Text, { variant: "small" },
113
+ React.createElement(core_react_1.MessageRenderer, { message: message.detailedMessage })))));
114
+ let toast;
115
+ switch (message.priority) {
116
+ case core_frontend_1.OutputMessagePriority.Warning: {
117
+ toast = toaster.warning(content, toastOptions);
118
+ break;
119
+ }
120
+ case core_frontend_1.OutputMessagePriority.Info: {
121
+ toast = toaster.informational(content, toastOptions);
122
+ break;
123
+ }
124
+ case core_frontend_1.OutputMessagePriority.Error:
125
+ case core_frontend_1.OutputMessagePriority.Fatal: {
126
+ toast = toaster.negative(content, toastOptions);
127
+ break;
128
+ }
129
+ default:
130
+ toast = toaster.positive(content, toastOptions);
131
+ }
132
+ args.close = toast.close;
133
+ });
134
+ }, [toaster]);
135
+ }
136
+ //# sourceMappingURL=MessageRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageRenderer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport * as React from \"react\";\nimport type { ReactMessage } from \"@itwin/core-react\";\nimport {\n MessageRenderer as CoreMessageRenderer,\n UiCore,\n} from \"@itwin/core-react\";\nimport { ProgressLinear, Text, useToaster } from \"@itwin/itwinui-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { ActivityMessageEventArgs } from \"../messages/MessageManager\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\n\ninterface UseActivityMessageProps {\n cancelActivityMessage?: () => void;\n dismissActivityMessage?: () => void;\n activityMessageInfo?: ActivityMessageEventArgs;\n}\n\n/** Hook to render an Activity message.\n * @internal\n */\nfunction useActivityMessage({\n activityMessageInfo,\n dismissActivityMessage,\n cancelActivityMessage,\n}: UseActivityMessageProps) {\n const toaster = useToaster();\n const [cancelLabel] = React.useState(UiCore.translate(\"dialog.cancel\"));\n const recentToast = React.useRef<{ close: () => void } | undefined>();\n React.useEffect(() => {\n toaster.setSettings({ placement: \"bottom\" });\n }, [toaster]);\n\n React.useEffect(() => {\n if (activityMessageInfo?.restored) {\n recentToast.current = toaster.informational(\n <ActivityMessageContent\n initialActivityMessageInfo={activityMessageInfo}\n />,\n {\n onRemove: dismissActivityMessage,\n type: \"persisting\",\n link:\n activityMessageInfo?.details?.supportsCancellation &&\n cancelActivityMessage\n ? { title: cancelLabel, onClick: cancelActivityMessage }\n : undefined,\n }\n );\n }\n if (!activityMessageInfo) {\n recentToast.current?.close();\n }\n }, [\n activityMessageInfo,\n cancelActivityMessage,\n cancelLabel,\n dismissActivityMessage,\n toaster,\n ]);\n}\n\n/** Component that renders activity, toast and sticky messages dispatched from message manager.\n * @internal\n */\nexport function MessageRenderer() {\n const [activityMessageInfo, setActivityMessageInfo] = React.useState<\n ActivityMessageEventArgs | undefined\n >();\n React.useEffect(() => {\n return MessageManager.onActivityMessageUpdatedEvent.addListener((args) => {\n setActivityMessageInfo(args);\n });\n }, []);\n\n React.useEffect(() => {\n return MessageManager.onActivityMessageCancelledEvent.addListener(() => {\n setActivityMessageInfo(undefined);\n });\n }, []);\n\n const cancelActivityMessage = React.useCallback(() => {\n MessageManager.endActivityMessage(false);\n }, []);\n\n useActivityMessage({ activityMessageInfo, cancelActivityMessage });\n useDisplayMessage();\n return null;\n}\n\n/** Component used to show and update activity message content.\n * @internal\n */\nfunction ActivityMessageContent({\n initialActivityMessageInfo,\n}: {\n initialActivityMessageInfo: ActivityMessageEventArgs;\n}) {\n const [percentCompleteLabel] = React.useState(\n UiFramework.translate(\"activityCenter.percentComplete\")\n );\n const [activityMessageInfo, setActivityMessageInfo] = React.useState(\n initialActivityMessageInfo\n );\n\n React.useEffect(() => {\n const handleActivityMessageUpdatedEvent = (\n args: ActivityMessageEventArgs\n ) => {\n setActivityMessageInfo(args);\n };\n\n return MessageManager.onActivityMessageUpdatedEvent.addListener(\n handleActivityMessageUpdatedEvent\n );\n }, []);\n\n return (\n <>\n {activityMessageInfo.message && (\n <Text>\n <>\n {(activityMessageInfo.message as ReactMessage).reactNode ||\n activityMessageInfo.message}\n </>\n </Text>\n )}\n {!!activityMessageInfo.details?.showPercentInMessage && (\n <Text variant=\"small\">{`${activityMessageInfo.percentage} ${percentCompleteLabel}`}</Text>\n )}\n {activityMessageInfo.details?.showProgressBar && (\n <ProgressLinear value={activityMessageInfo?.percentage} />\n )}\n </>\n );\n}\n\nfunction useDisplayMessage() {\n const toaster = useToaster();\n React.useEffect(() => {\n return MessageManager.onDisplayMessage.addListener((args) => {\n const { message, options, settings, animateOutToElement } = args;\n const toastOptions: typeof options = {\n hasCloseButton: true,\n duration: message.displayTime.milliseconds,\n type:\n message.msgType === OutputMessageType.Sticky\n ? \"persisting\"\n : \"temporary\",\n animateOutTo: animateOutToElement,\n ...options,\n };\n toaster.setSettings({\n placement: \"bottom\",\n order: \"ascending\",\n ...settings,\n });\n const content = (\n <>\n <CoreMessageRenderer message={message.briefMessage} />\n {message.detailedMessage && (\n <Text variant=\"small\">\n <CoreMessageRenderer message={message.detailedMessage} />\n </Text>\n )}\n </>\n );\n\n let toast;\n switch (message.priority) {\n case OutputMessagePriority.Warning: {\n toast = toaster.warning(content, toastOptions);\n break;\n }\n case OutputMessagePriority.Info: {\n toast = toaster.informational(content, toastOptions);\n break;\n }\n case OutputMessagePriority.Error:\n case OutputMessagePriority.Fatal: {\n toast = toaster.negative(content, toastOptions);\n break;\n }\n default:\n toast = toaster.positive(content, toastOptions);\n }\n\n args.close = toast.close;\n });\n }, [toaster]);\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  /** @packageDocumentation
2
2
  * @module Notification
3
3
  */
4
+ import "./Pointer.scss";
5
+ import * as React from "react";
4
6
  import { RelativePosition, UiEvent } from "@itwin/appui-abstract";
5
7
  import { OutputMessagePriority } from "@itwin/core-frontend";
6
8
  import type { XAndY } from "@itwin/core-geometry";
7
9
  import type { CommonProps } from "@itwin/core-react";
8
- import * as React from "react";
9
- import "./Pointer.scss";
10
10
  import type { NotifyMessageDetailsType, NotifyMessageType } from "./ReactNotifyMessageDetails";
11
11
  /** Properties of [[PointerMessage]] component.
12
12
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"Pointer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/Pointer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAEL,gBAAgB,EAChB,OAAO,EACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAIrC;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC;IAChB,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAED;;GAEG;AAEH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAG;AAgB1F;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CACjD,mBAAmB,EACnB,mBAAmB,CACpB;IACC,OAAO,CAAC,MAAM,CAAC,2BAA2B,CACP;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAClB;IAE3C,WAAkB,4BAA4B,IAAI,0BAA0B,CAE3E;WAEa,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;WAapD,aAAa,CACzB,YAAY,EAAE,KAAK,EACnB,gBAAgB,EAAE,gBAAgB,GACjC,IAAI;WAOO,WAAW,IAAI,IAAI;IAQjC,SAAyB,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAO3D;IAEF,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,KAAK,CAGX;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAyCzB,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAU5C,OAAO,CAAC,kBAAkB,CAGxB;IAEF,OAAO,CAAC,iCAAiC,CAavC;IAEF,OAAO,CAAC,yCAAyC,CAM/C;IAEF,OAAO,CAAC,cAAc;CA2DvB"}
1
+ {"version":3,"file":"Pointer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/Pointer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,gBAAgB,CAAC;AAExB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,gBAAgB,EAChB,OAAO,EACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,mBAAmB,CAAC;AAUhE,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAIrC;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC;IAChB,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAED;;GAEG;AAEH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAG;AAgB1F;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CACjD,mBAAmB,EACnB,mBAAmB,CACpB;IACC,OAAO,CAAC,MAAM,CAAC,2BAA2B,CACP;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAClB;IAE3C,WAAkB,4BAA4B,IAAI,0BAA0B,CAE3E;WAEa,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;WAapD,aAAa,CACzB,YAAY,EAAE,KAAK,EACnB,gBAAgB,EAAE,gBAAgB,GACjC,IAAI;WAOO,WAAW,IAAI,IAAI;IAQjC,SAAyB,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAO3D;IAEF,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,KAAK,CAGX;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IA0CzB,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAU5C,OAAO,CAAC,kBAAkB,CAGxB;IAEF,OAAO,CAAC,iCAAiC,CAavC;IAEF,OAAO,CAAC,yCAAyC,CAM/C;IAEF,OAAO,CAAC,cAAc;CA2DvB"}
@@ -8,15 +8,14 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.PointerMessage = exports.PointerMessageChangedEvent = void 0;
11
+ require("./Pointer.scss");
12
+ const classnames_1 = require("classnames");
13
+ const React = require("react");
11
14
  const appui_abstract_1 = require("@itwin/appui-abstract");
12
15
  const core_frontend_1 = require("@itwin/core-frontend");
13
16
  const core_react_1 = require("@itwin/core-react");
14
- const classnames_1 = require("classnames");
15
- const React = require("react");
16
17
  const Tooltip_1 = require("../layout/popup/Tooltip");
17
18
  const MessageManager_1 = require("./MessageManager");
18
- const MessageSpan_1 = require("./MessageSpan");
19
- require("./Pointer.scss");
20
19
  /** Pointer Message Changed Event emitted by the [[PointerMessage]] component
21
20
  * @public
22
21
  */
@@ -109,8 +108,8 @@ class PointerMessage extends React.Component {
109
108
  severity !== appui_abstract_1.MessageSeverity.None && (React.createElement("span", { className: "uifw-pointer-message-icon" },
110
109
  React.createElement(core_react_1.Icon, { className: `icon ${core_react_1.MessageContainer.getIconClassName(severity)}`, iconSpec: `${core_react_1.MessageContainer.getIcon(severity, false)}` }))),
111
110
  React.createElement("span", { className: "uifw-pointer-message-text" },
112
- React.createElement(MessageSpan_1.MessageSpan, { className: "uifw-pointer-message-brief", message: this.state.message }),
113
- this.state.detailedMessage && (React.createElement(MessageSpan_1.MessageDiv, { className: "uifw-pointer-message-detailed", message: this.state.detailedMessage }))))));
111
+ React.createElement(core_react_1.MessageRenderer, { className: "uifw-pointer-message-brief", message: this.state.message, useSpan: true }),
112
+ this.state.detailedMessage && (React.createElement(core_react_1.MessageRenderer, { className: "uifw-pointer-message-detailed", message: this.state.detailedMessage }))))));
114
113
  }
115
114
  componentDidMount() {
116
115
  PointerMessage.onPointerMessageChangedEvent.addListener(this._handlePointerMessageChangedEvent);