@itwin/appui-react 3.0.0-dev.144 → 3.0.0-dev.148

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 (258) hide show
  1. package/lib/cjs/appui-react/UiFramework.d.ts +2 -6
  2. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  3. package/lib/cjs/appui-react/UiFramework.js +2 -10
  4. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  5. package/lib/cjs/appui-react/backstage/Backstage.d.ts +0 -2
  6. package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  8. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  9. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  10. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
  12. package/lib/cjs/appui-react/content/ContentControl.d.ts +1 -1
  13. package/lib/cjs/appui-react/content/ContentControl.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/content/ContentControl.js +2 -2
  15. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  16. package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -2
  17. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/content/ContentLayout.js +2 -1
  19. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  20. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +1 -1
  21. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/content/ContentViewManager.js +3 -3
  23. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  24. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +1 -2
  25. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/cursor/CursorInformation.js +1 -1
  27. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  28. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  30. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  31. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js +3 -3
  33. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  34. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  35. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  36. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -2
  37. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  38. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +2 -2
  39. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  40. package/lib/cjs/appui-react/feedback/ElementTooltip.js +2 -1
  41. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  42. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  43. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  44. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  46. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  47. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  48. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  49. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
  51. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  52. package/lib/cjs/appui-react/messages/MessageManager.d.ts +1 -2
  53. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  54. package/lib/cjs/appui-react/messages/MessageManager.js +8 -8
  55. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  56. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  57. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  58. package/lib/cjs/appui-react/messages/Pointer.js +2 -2
  59. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  60. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  61. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js +2 -2
  63. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  64. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  65. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  66. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  67. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  68. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  69. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  70. package/lib/cjs/appui-react/pickers/ViewSelector.js +3 -3
  71. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  72. package/lib/cjs/appui-react/popup/PopupManager.d.ts +2 -2
  73. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/popup/PopupManager.js +1 -1
  75. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  76. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  77. package/lib/cjs/appui-react/redux/SessionState.d.ts +0 -6
  78. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  79. package/lib/cjs/appui-react/redux/SessionState.js +0 -8
  80. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  81. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  82. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  83. package/lib/cjs/appui-react/statusfields/Indicator.scss +8 -2
  84. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -2
  85. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  86. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +1 -0
  87. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -4
  89. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  90. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +13 -3
  91. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
  92. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  93. package/lib/cjs/appui-react/syncui/BooleanListener.js +2 -1
  94. package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
  95. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -16
  96. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +28 -101
  98. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  99. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  100. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  101. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  102. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  103. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  104. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  105. package/lib/cjs/appui-react/toolbar/Toolbar.js +1 -1
  106. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  107. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  108. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +4 -4
  109. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  110. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  111. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  112. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  113. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -2
  114. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -2
  116. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  117. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  118. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  119. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js +3 -2
  120. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  121. package/lib/cjs/appui-react.d.ts +0 -1
  122. package/lib/cjs/appui-react.d.ts.map +1 -1
  123. package/lib/cjs/appui-react.js +0 -1
  124. package/lib/cjs/appui-react.js.map +1 -1
  125. package/lib/esm/appui-react/UiFramework.d.ts +2 -6
  126. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  127. package/lib/esm/appui-react/UiFramework.js +2 -10
  128. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  129. package/lib/esm/appui-react/backstage/Backstage.d.ts +0 -2
  130. package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
  131. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  132. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  133. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  134. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  135. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  136. package/lib/esm/appui-react/content/ContentControl.d.ts +1 -1
  137. package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
  138. package/lib/esm/appui-react/content/ContentControl.js +1 -1
  139. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  140. package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -2
  141. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  142. package/lib/esm/appui-react/content/ContentLayout.js +2 -1
  143. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  144. package/lib/esm/appui-react/content/ContentViewManager.d.ts +1 -1
  145. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  146. package/lib/esm/appui-react/content/ContentViewManager.js +1 -1
  147. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  148. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +1 -2
  149. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  150. package/lib/esm/appui-react/cursor/CursorInformation.js +2 -2
  151. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  152. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  153. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  154. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  155. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  156. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +2 -2
  157. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  158. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  159. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  160. package/lib/esm/appui-react/dialog/DialogManagerBase.js +1 -1
  161. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  162. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +2 -2
  163. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  164. package/lib/esm/appui-react/feedback/ElementTooltip.js +2 -1
  165. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  166. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  167. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  168. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  169. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  170. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  171. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  172. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  173. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  174. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +2 -2
  175. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  176. package/lib/esm/appui-react/messages/MessageManager.d.ts +1 -2
  177. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  178. package/lib/esm/appui-react/messages/MessageManager.js +2 -2
  179. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  180. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  181. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  182. package/lib/esm/appui-react/messages/Pointer.js +2 -2
  183. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  184. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  185. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  186. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js +1 -1
  187. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  188. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  189. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  190. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  191. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  192. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  193. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  194. package/lib/esm/appui-react/pickers/ViewSelector.js +1 -1
  195. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  196. package/lib/esm/appui-react/popup/PopupManager.d.ts +2 -2
  197. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  198. package/lib/esm/appui-react/popup/PopupManager.js +2 -2
  199. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  200. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  201. package/lib/esm/appui-react/redux/SessionState.d.ts +0 -6
  202. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  203. package/lib/esm/appui-react/redux/SessionState.js +0 -8
  204. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  205. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  206. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  207. package/lib/esm/appui-react/statusfields/Indicator.scss +8 -2
  208. package/lib/esm/appui-react/statusfields/MessageCenter.js +1 -2
  209. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  210. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +1 -0
  211. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  212. package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -4
  213. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  214. package/lib/esm/appui-react/statusfields/SelectionScope.scss +13 -3
  215. package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
  216. package/lib/esm/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  217. package/lib/esm/appui-react/syncui/BooleanListener.js +2 -1
  218. package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
  219. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -16
  220. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  221. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +27 -99
  222. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  223. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  224. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  225. package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  226. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  227. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  228. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  229. package/lib/esm/appui-react/toolbar/Toolbar.js +1 -1
  230. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  231. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  232. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +4 -4
  233. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  234. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  235. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  236. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  237. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -2
  238. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  239. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -2
  240. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  241. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  242. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  243. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js +2 -1
  244. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  245. package/lib/esm/appui-react.d.ts +0 -1
  246. package/lib/esm/appui-react.d.ts.map +1 -1
  247. package/lib/esm/appui-react.js +0 -1
  248. package/lib/esm/appui-react.js.map +1 -1
  249. package/lib/public/locales/en/UiFramework.json +6 -1
  250. package/package.json +35 -35
  251. package/lib/cjs/appui-react/UserInfo.d.ts +0 -58
  252. package/lib/cjs/appui-react/UserInfo.d.ts.map +0 -1
  253. package/lib/cjs/appui-react/UserInfo.js +0 -34
  254. package/lib/cjs/appui-react/UserInfo.js.map +0 -1
  255. package/lib/esm/appui-react/UserInfo.d.ts +0 -58
  256. package/lib/esm/appui-react/UserInfo.d.ts.map +0 -1
  257. package/lib/esm/appui-react/UserInfo.js +0 -30
  258. package/lib/esm/appui-react/UserInfo.js.map +0 -1
@@ -95,8 +95,7 @@ class MessageCenterField extends React.Component {
95
95
  const tooltip = `${this.state.messageCount} ${this._title}`;
96
96
  const footerMessages = (React.createElement(React.Fragment, null,
97
97
  React.createElement("div", { className: this.props.className, style: this.props.style, title: tooltip, ref: this._handleTargetRef },
98
- React.createElement(appui_layout_react_1.MessageCenter // eslint-disable-line deprecation/deprecation
99
- , { indicatorRef: this._indicator, isInFooterMode: this.props.isInFooterMode, label: this.props.isInFooterMode ? this._title : undefined, onClick: this._handleMessageIndicatorClick }, this.state.messageCount.toString())),
98
+ React.createElement(appui_layout_react_1.MessageCenter, { indicatorRef: this._indicator, isInFooterMode: this.props.isInFooterMode, label: this.props.isInFooterMode ? this._title : undefined, onClick: this._handleMessageIndicatorClick }, this.state.messageCount.toString())),
100
99
  React.createElement(appui_layout_react_1.FooterPopup, { isOpen: this.props.openWidget === this._className, onClose: this._handleClose, onOutsideClick: this._handleOutsideClick, target: this.state.target },
101
100
  React.createElement(appui_layout_react_1.MessageCenterDialog, { prompt: UiFramework_1.UiFramework.translate("messageCenter.prompt"), tabs: React.createElement(React.Fragment, null,
102
101
  React.createElement(appui_layout_react_1.MessageCenterTab, { isActive: this.state.activeTab === MessageCenterActiveTab.AllMessages, onClick: () => this._changeActiveTab(MessageCenterActiveTab.AllMessages) }, UiFramework_1.UiFramework.translate("messageCenter.all")),
@@ -1 +1 @@
1
- {"version":3,"file":"MessageCenter.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { OutputMessagePriority } from \"@itwin/core-frontend\";\r\nimport { FooterPopup, MessageCenter, MessageCenterDialog, MessageCenterMessage, MessageCenterTab } from \"@itwin/appui-layout-react\";\r\nimport { MessageManager } from \"../messages/MessageManager\";\r\nimport { MessageSpan } from \"../messages/MessageSpan\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { StatusBarFieldId } from \"../statusbar/StatusBarWidgetControl\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { StatusFieldProps } from \"./StatusFieldProps\";\r\n\r\n/** Enum for the [[MessageCenterField]] active tab\r\n * @internal\r\n */\r\nenum MessageCenterActiveTab {\r\n AllMessages,\r\n Problems,\r\n}\r\n\r\n/** State for the [[MessageCenterField]] React component\r\n * @internal\r\n */\r\ninterface MessageCenterState {\r\n activeTab: MessageCenterActiveTab;\r\n target: HTMLDivElement | null;\r\n messageCount: number;\r\n}\r\n\r\n/** Properties for withMessageCenterFieldProps HOC.\r\n * @public\r\n */\r\nexport interface MessageCenterFieldProps extends StatusFieldProps {\r\n /** Message center dialog target. */\r\n targetRef?: React.Ref<HTMLElement>;\r\n}\r\n\r\n/** Message Center Field React component.\r\n * @public\r\n */\r\nexport class MessageCenterField extends React.Component<MessageCenterFieldProps, MessageCenterState> {\r\n private _className: string;\r\n private _indicator = React.createRef<HTMLDivElement>();\r\n private _title = UiFramework.translate(\"messageCenter.messages\");\r\n private _unloadMessagesUpdatedHandler?: () => void;\r\n private _removeOpenMessagesCenterHandler?: () => void;\r\n\r\n public override readonly state: Readonly<MessageCenterState> = {\r\n activeTab: MessageCenterActiveTab.AllMessages,\r\n target: null,\r\n messageCount: MessageManager.messages.length,\r\n };\r\n\r\n constructor(p: MessageCenterFieldProps) {\r\n super(p);\r\n\r\n const instance = this.constructor;\r\n this._className = instance.name;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._unloadMessagesUpdatedHandler = MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent, this);\r\n this._removeOpenMessagesCenterHandler = MessageManager.onOpenMessageCenterEvent.addListener(this._handleOpenMessageCenterEvent, this);\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n // istanbul ignore else\r\n if (this._unloadMessagesUpdatedHandler) {\r\n this._unloadMessagesUpdatedHandler();\r\n this._unloadMessagesUpdatedHandler = undefined;\r\n }\r\n // istanbul ignore else\r\n if (this._removeOpenMessagesCenterHandler) {\r\n this._removeOpenMessagesCenterHandler();\r\n this._removeOpenMessagesCenterHandler = undefined;\r\n }\r\n }\r\n\r\n private _handleMessagesUpdatedEvent = () => {\r\n // istanbul ignore else\r\n if (this._unloadMessagesUpdatedHandler)\r\n this.setState({ messageCount: MessageManager.messages.length });\r\n };\r\n\r\n private _handleOpenMessageCenterEvent = () => {\r\n this.setOpenWidget(this._className);\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const tooltip = `${this.state.messageCount} ${this._title}`;\r\n const footerMessages = (\r\n <>\r\n <div\r\n className={this.props.className}\r\n style={this.props.style}\r\n title={tooltip}\r\n ref={this._handleTargetRef}\r\n >\r\n <MessageCenter // eslint-disable-line deprecation/deprecation\r\n indicatorRef={this._indicator}\r\n isInFooterMode={this.props.isInFooterMode}\r\n label={this.props.isInFooterMode ? this._title : undefined}\r\n onClick={this._handleMessageIndicatorClick}\r\n >\r\n {this.state.messageCount.toString()}\r\n </MessageCenter>\r\n </div>\r\n <FooterPopup\r\n isOpen={this.props.openWidget === this._className}\r\n onClose={this._handleClose}\r\n onOutsideClick={this._handleOutsideClick}\r\n target={this.state.target}\r\n >\r\n <MessageCenterDialog\r\n prompt={UiFramework.translate(\"messageCenter.prompt\")}\r\n tabs={\r\n <>\r\n <MessageCenterTab\r\n isActive={this.state.activeTab === MessageCenterActiveTab.AllMessages}\r\n onClick={() => this._changeActiveTab(MessageCenterActiveTab.AllMessages)}\r\n >\r\n {UiFramework.translate(\"messageCenter.all\")}\r\n </MessageCenterTab>\r\n <MessageCenterTab\r\n isActive={this.state.activeTab === MessageCenterActiveTab.Problems}\r\n onClick={() => this._changeActiveTab(MessageCenterActiveTab.Problems)}\r\n >\r\n {UiFramework.translate(\"messageCenter.errors\")}\r\n </MessageCenterTab>\r\n </>\r\n }\r\n title={this._title}\r\n >\r\n {this.getMessages()}\r\n </MessageCenterDialog>\r\n </FooterPopup>\r\n </>\r\n );\r\n\r\n return footerMessages;\r\n }\r\n\r\n private _handleTargetRef = (target: HTMLDivElement | null) => {\r\n if (typeof this.props.targetRef === \"function\")\r\n this.props.targetRef(target);\r\n else if (this.props.targetRef)\r\n (this.props.targetRef as React.MutableRefObject<HTMLElement | null>).current = target;\r\n this.setState({ target });\r\n };\r\n\r\n private _handleClose = () => {\r\n this.setOpenWidget(null);\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n if (!this._indicator.current ||\r\n !(e.target instanceof Node) ||\r\n this._indicator.current.contains(e.target))\r\n return;\r\n\r\n this._handleClose();\r\n };\r\n\r\n private _handleMessageIndicatorClick = () => {\r\n const isOpen = this.props.openWidget === this._className;\r\n if (isOpen)\r\n this.setOpenWidget(null);\r\n else\r\n this.setOpenWidget(this._className);\r\n };\r\n\r\n private _changeActiveTab = (tab: MessageCenterActiveTab) => {\r\n this.setState({ activeTab: tab });\r\n };\r\n\r\n private getMessages(): React.ReactChild[] {\r\n const messages = MessageManager.messages.slice(0).reverse();\r\n const tabRows: React.ReactChild[] = new Array<React.ReactChild>();\r\n\r\n messages.forEach((details: NotifyMessageDetailsType, index: number) => {\r\n /* istanbul ignore else */\r\n if (this.state.activeTab === MessageCenterActiveTab.AllMessages || this.isProblemStatus(details.priority)) {\r\n\r\n const iconClassName = MessageManager.getIconClassName(details);\r\n const message = details.briefMessage;\r\n\r\n tabRows.push(\r\n <MessageCenterMessage\r\n key={index.toString()}\r\n icon={<i className={iconClassName} />}\r\n >\r\n <MessageSpan message={message} />\r\n {details.detailedMessage &&\r\n <>\r\n <br />\r\n <MessageSpan className=\"uicore-text-small\" message={details.detailedMessage} />\r\n </>\r\n }\r\n </MessageCenterMessage>,\r\n );\r\n }\r\n });\r\n\r\n return tabRows;\r\n }\r\n\r\n private isProblemStatus(priority: OutputMessagePriority): boolean {\r\n // See priority values in DgnPlatform defined in NotificationManager\r\n\r\n if (priority === OutputMessagePriority.Error || priority === OutputMessagePriority.Fatal)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n private setOpenWidget(openWidget: StatusBarFieldId) {\r\n // istanbul ignore else\r\n if (this.props.onOpenWidget)\r\n this.props.onOpenWidget(openWidget);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MessageCenter.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,wDAA6D;AAC7D,kEAAoI;AACpI,+DAA4D;AAC5D,yDAAsD;AAGtD,gDAA6C;AAG7C;;GAEG;AACH,IAAK,sBAGJ;AAHD,WAAK,sBAAsB;IACzB,iFAAW,CAAA;IACX,2EAAQ,CAAA;AACV,CAAC,EAHI,sBAAsB,KAAtB,sBAAsB,QAG1B;AAmBD;;GAEG;AACH,MAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAsD;IAalG,YAAY,CAA0B;QACpC,KAAK,CAAC,CAAC,CAAC,CAAC;QAZH,eAAU,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QAC/C,WAAM,GAAG,yBAAW,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAIxC,UAAK,GAAiC;YAC7D,SAAS,EAAE,sBAAsB,CAAC,WAAW;YAC7C,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,+BAAc,CAAC,QAAQ,CAAC,MAAM;SAC7C,CAAC;QA6BM,gCAA2B,GAAG,GAAG,EAAE;YACzC,uBAAuB;YACvB,IAAI,IAAI,CAAC,6BAA6B;gBACpC,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,+BAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC;QAEM,kCAA6B,GAAG,GAAG,EAAE;YAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC;QAwDM,qBAAgB,GAAG,CAAC,MAA6B,EAAE,EAAE;YAC3D,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,UAAU;gBAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;iBAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS;gBAC1B,IAAI,CAAC,KAAK,CAAC,SAAwD,CAAC,OAAO,GAAG,MAAM,CAAC;YACxF,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO;gBAC1B,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1C,OAAO;YAET,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC;QAEM,iCAA4B,GAAG,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC;YACzD,IAAI,MAAM;gBACR,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;;gBAEzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC;QAEM,qBAAgB,GAAG,CAAC,GAA2B,EAAE,EAAE;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC;QAvHA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,gBAAgB;IACA,iBAAiB;QAC/B,IAAI,CAAC,6BAA6B,GAAG,+BAAc,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;QAC/H,IAAI,CAAC,gCAAgC,GAAG,+BAAc,CAAC,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;IACxI,CAAC;IAED,gBAAgB;IACA,oBAAoB;QAClC,uBAAuB;QACvB,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACrC,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;SAChD;QACD,uBAAuB;QACvB,IAAI,IAAI,CAAC,gCAAgC,EAAE;YACzC,IAAI,CAAC,gCAAgC,EAAE,CAAC;YACxC,IAAI,CAAC,gCAAgC,GAAG,SAAS,CAAC;SACnD;IACH,CAAC;IAYe,MAAM;QACpB,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAG,CACrB;YACE,6BACE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,IAAI,CAAC,gBAAgB;gBAE1B,oBAAC,kCAAa,IACZ,YAAY,EAAE,IAAI,CAAC,UAAU,EAC7B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EACzC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC1D,OAAO,EAAE,IAAI,CAAC,4BAA4B,IAEzC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CACrB,CACZ;YACN,oBAAC,gCAAW,IACV,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EACjD,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,cAAc,EAAE,IAAI,CAAC,mBAAmB,EACxC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBAEzB,oBAAC,wCAAmB,IAClB,MAAM,EAAE,yBAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,EACrD,IAAI,EACF;wBACE,oBAAC,qCAAgB,IACf,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,WAAW,EACrE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAEvE,yBAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAC1B;wBACnB,oBAAC,qCAAgB,IACf,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,QAAQ,EAClE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAEpE,yBAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAC7B,CAClB,EAEL,KAAK,EAAE,IAAI,CAAC,MAAM,IAEjB,IAAI,CAAC,WAAW,EAAE,CACC,CACV,CACb,CACJ,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAmCO,WAAW;QACjB,MAAM,QAAQ,GAAG,+BAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAuB,IAAI,KAAK,EAAoB,CAAC;QAElE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAiC,EAAE,KAAa,EAAE,EAAE;YACpE,0BAA0B;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAEzG,MAAM,aAAa,GAAG,+BAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;gBAErC,OAAO,CAAC,IAAI,CACV,oBAAC,yCAAoB,IACnB,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,EACrB,IAAI,EAAE,2BAAG,SAAS,EAAE,aAAa,GAAI;oBAErC,oBAAC,yBAAW,IAAC,OAAO,EAAE,OAAO,GAAI;oBAChC,OAAO,CAAC,eAAe;wBACtB;4BACE,+BAAM;4BACN,oBAAC,yBAAW,IAAC,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,eAAe,GAAI,CAC9E,CAEgB,CACxB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,QAA+B;QACrD,oEAAoE;QAEpE,IAAI,QAAQ,KAAK,qCAAqB,CAAC,KAAK,IAAI,QAAQ,KAAK,qCAAqB,CAAC,KAAK;YACtF,OAAO,IAAI,CAAC;QAEd,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,aAAa,CAAC,UAA4B;QAChD,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY;YACzB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;CACF;AAtLD,gDAsLC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { OutputMessagePriority } from \"@itwin/core-frontend\";\r\nimport { FooterPopup, MessageCenter, MessageCenterDialog, MessageCenterMessage, MessageCenterTab } from \"@itwin/appui-layout-react\";\r\nimport { MessageManager } from \"../messages/MessageManager\";\r\nimport { MessageSpan } from \"../messages/MessageSpan\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { StatusBarFieldId } from \"../statusbar/StatusBarWidgetControl\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { StatusFieldProps } from \"./StatusFieldProps\";\r\n\r\n/** Enum for the [[MessageCenterField]] active tab\r\n * @internal\r\n */\r\nenum MessageCenterActiveTab {\r\n AllMessages,\r\n Problems,\r\n}\r\n\r\n/** State for the [[MessageCenterField]] React component\r\n * @internal\r\n */\r\ninterface MessageCenterState {\r\n activeTab: MessageCenterActiveTab;\r\n target: HTMLDivElement | null;\r\n messageCount: number;\r\n}\r\n\r\n/** Properties for withMessageCenterFieldProps HOC.\r\n * @public\r\n */\r\nexport interface MessageCenterFieldProps extends StatusFieldProps {\r\n /** Message center dialog target. */\r\n targetRef?: React.Ref<HTMLElement>;\r\n}\r\n\r\n/** Message Center Field React component.\r\n * @public\r\n */\r\nexport class MessageCenterField extends React.Component<MessageCenterFieldProps, MessageCenterState> {\r\n private _className: string;\r\n private _indicator = React.createRef<HTMLDivElement>();\r\n private _title = UiFramework.translate(\"messageCenter.messages\");\r\n private _unloadMessagesUpdatedHandler?: () => void;\r\n private _removeOpenMessagesCenterHandler?: () => void;\r\n\r\n public override readonly state: Readonly<MessageCenterState> = {\r\n activeTab: MessageCenterActiveTab.AllMessages,\r\n target: null,\r\n messageCount: MessageManager.messages.length,\r\n };\r\n\r\n constructor(p: MessageCenterFieldProps) {\r\n super(p);\r\n\r\n const instance = this.constructor;\r\n this._className = instance.name;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._unloadMessagesUpdatedHandler = MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent, this);\r\n this._removeOpenMessagesCenterHandler = MessageManager.onOpenMessageCenterEvent.addListener(this._handleOpenMessageCenterEvent, this);\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n // istanbul ignore else\r\n if (this._unloadMessagesUpdatedHandler) {\r\n this._unloadMessagesUpdatedHandler();\r\n this._unloadMessagesUpdatedHandler = undefined;\r\n }\r\n // istanbul ignore else\r\n if (this._removeOpenMessagesCenterHandler) {\r\n this._removeOpenMessagesCenterHandler();\r\n this._removeOpenMessagesCenterHandler = undefined;\r\n }\r\n }\r\n\r\n private _handleMessagesUpdatedEvent = () => {\r\n // istanbul ignore else\r\n if (this._unloadMessagesUpdatedHandler)\r\n this.setState({ messageCount: MessageManager.messages.length });\r\n };\r\n\r\n private _handleOpenMessageCenterEvent = () => {\r\n this.setOpenWidget(this._className);\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const tooltip = `${this.state.messageCount} ${this._title}`;\r\n const footerMessages = (\r\n <>\r\n <div\r\n className={this.props.className}\r\n style={this.props.style}\r\n title={tooltip}\r\n ref={this._handleTargetRef}\r\n >\r\n <MessageCenter\r\n indicatorRef={this._indicator}\r\n isInFooterMode={this.props.isInFooterMode}\r\n label={this.props.isInFooterMode ? this._title : undefined}\r\n onClick={this._handleMessageIndicatorClick}\r\n >\r\n {this.state.messageCount.toString()}\r\n </MessageCenter>\r\n </div>\r\n <FooterPopup\r\n isOpen={this.props.openWidget === this._className}\r\n onClose={this._handleClose}\r\n onOutsideClick={this._handleOutsideClick}\r\n target={this.state.target}\r\n >\r\n <MessageCenterDialog\r\n prompt={UiFramework.translate(\"messageCenter.prompt\")}\r\n tabs={\r\n <>\r\n <MessageCenterTab\r\n isActive={this.state.activeTab === MessageCenterActiveTab.AllMessages}\r\n onClick={() => this._changeActiveTab(MessageCenterActiveTab.AllMessages)}\r\n >\r\n {UiFramework.translate(\"messageCenter.all\")}\r\n </MessageCenterTab>\r\n <MessageCenterTab\r\n isActive={this.state.activeTab === MessageCenterActiveTab.Problems}\r\n onClick={() => this._changeActiveTab(MessageCenterActiveTab.Problems)}\r\n >\r\n {UiFramework.translate(\"messageCenter.errors\")}\r\n </MessageCenterTab>\r\n </>\r\n }\r\n title={this._title}\r\n >\r\n {this.getMessages()}\r\n </MessageCenterDialog>\r\n </FooterPopup>\r\n </>\r\n );\r\n\r\n return footerMessages;\r\n }\r\n\r\n private _handleTargetRef = (target: HTMLDivElement | null) => {\r\n if (typeof this.props.targetRef === \"function\")\r\n this.props.targetRef(target);\r\n else if (this.props.targetRef)\r\n (this.props.targetRef as React.MutableRefObject<HTMLElement | null>).current = target;\r\n this.setState({ target });\r\n };\r\n\r\n private _handleClose = () => {\r\n this.setOpenWidget(null);\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n if (!this._indicator.current ||\r\n !(e.target instanceof Node) ||\r\n this._indicator.current.contains(e.target))\r\n return;\r\n\r\n this._handleClose();\r\n };\r\n\r\n private _handleMessageIndicatorClick = () => {\r\n const isOpen = this.props.openWidget === this._className;\r\n if (isOpen)\r\n this.setOpenWidget(null);\r\n else\r\n this.setOpenWidget(this._className);\r\n };\r\n\r\n private _changeActiveTab = (tab: MessageCenterActiveTab) => {\r\n this.setState({ activeTab: tab });\r\n };\r\n\r\n private getMessages(): React.ReactChild[] {\r\n const messages = MessageManager.messages.slice(0).reverse();\r\n const tabRows: React.ReactChild[] = new Array<React.ReactChild>();\r\n\r\n messages.forEach((details: NotifyMessageDetailsType, index: number) => {\r\n /* istanbul ignore else */\r\n if (this.state.activeTab === MessageCenterActiveTab.AllMessages || this.isProblemStatus(details.priority)) {\r\n\r\n const iconClassName = MessageManager.getIconClassName(details);\r\n const message = details.briefMessage;\r\n\r\n tabRows.push(\r\n <MessageCenterMessage\r\n key={index.toString()}\r\n icon={<i className={iconClassName} />}\r\n >\r\n <MessageSpan message={message} />\r\n {details.detailedMessage &&\r\n <>\r\n <br />\r\n <MessageSpan className=\"uicore-text-small\" message={details.detailedMessage} />\r\n </>\r\n }\r\n </MessageCenterMessage>,\r\n );\r\n }\r\n });\r\n\r\n return tabRows;\r\n }\r\n\r\n private isProblemStatus(priority: OutputMessagePriority): boolean {\r\n // See priority values in DgnPlatform defined in NotificationManager\r\n\r\n if (priority === OutputMessagePriority.Error || priority === OutputMessagePriority.Fatal)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n private setOpenWidget(openWidget: StatusBarFieldId) {\r\n // istanbul ignore else\r\n if (this.props.onOpenWidget)\r\n this.props.onOpenWidget(openWidget);\r\n }\r\n}\r\n"]}
@@ -23,6 +23,7 @@ interface SelectionScopeFieldProps extends StatusFieldProps {
23
23
  declare class SelectionScopeFieldComponent extends React.Component<SelectionScopeFieldProps> {
24
24
  private _label;
25
25
  private _toolTip;
26
+ private _scopeOptions;
26
27
  constructor(props: SelectionScopeFieldProps);
27
28
  private _updateSelectValue;
28
29
  render(): React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionScope.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,UAAU,wBAAyB,SAAQ,gBAAgB;IAEzD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;CACxD;AAED;;;;;;;GAOG;AACH,cAAM,4BAA6B,SAAQ,KAAK,CAAC,SAAS,CAAC,wBAAwB,CAAC;IAClF,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,QAAQ,CAAwD;gBAE5D,KAAK,EAAE,wBAAwB;IAI3C,OAAO,CAAC,kBAAkB,CAKxB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;CA2B1C;AAaD;;;;;GAKG,CACH,eAAO,MAAM,mBAAmB,gPAAyD,CAAC"}
1
+ {"version":3,"file":"SelectionScope.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,UAAU,wBAAyB,SAAQ,gBAAgB;IAEzD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;CACxD;AAED;;;;;;;GAOG;AACH,cAAM,4BAA6B,SAAQ,KAAK,CAAC,SAAS,CAAC,wBAAwB,CAAC;IAClF,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,QAAQ,CAAwD;IACxE,OAAO,CAAC,aAAa,CAA8B;gBAEvC,KAAK,EAAE,wBAAwB;IAQ3C,OAAO,CAAC,kBAAkB,CAKxB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;CAwB1C;AAaD;;;;;GAKG,CACH,eAAO,MAAM,mBAAmB,gPAAyD,CAAC"}
@@ -28,23 +28,25 @@ class SelectionScopeFieldComponent extends React.Component {
28
28
  super(props);
29
29
  this._label = UiFramework_1.UiFramework.translate("selectionScopeField.label");
30
30
  this._toolTip = UiFramework_1.UiFramework.translate("selectionScopeField.toolTip");
31
+ this._scopeOptions = [];
31
32
  this._updateSelectValue = (newValue) => {
32
33
  // istanbul ignore else
33
34
  if (newValue) {
34
35
  UiFramework_1.UiFramework.setActiveSelectionScope(newValue);
35
36
  }
36
37
  };
38
+ this._scopeOptions = this.props.availableSelectionScopes.map((scope) => {
39
+ const label = UiFramework_1.UiFramework.translate(`selectionScopeLabels.${scope.id}`);
40
+ return { value: scope.id, label };
41
+ });
37
42
  }
38
43
  render() {
39
- const scopeOptions = this.props.availableSelectionScopes.map((scope) => {
40
- return { value: scope.id, label: scope.label };
41
- });
42
44
  return (React.createElement(appui_layout_react_1.FooterIndicator, { className: (0, classnames_1.default)("uifw-statusFields-selectionScope", this.props.className), style: this.props.style, isInFooterMode: this.props.isInFooterMode },
43
45
  this.props.isInFooterMode &&
44
46
  React.createElement("label", { className: "uifw-statusFields-selectionScope-label" },
45
47
  this._label,
46
48
  ":"),
47
- React.createElement(itwinui_react_1.Select, { className: "uifw-statusFields-selectionScope-selector", value: this.props.activeSelectionScope, options: scopeOptions, onChange: this._updateSelectValue, "data-testid": "components-selectionScope-selector", title: this._toolTip, size: "small" })));
49
+ React.createElement(itwinui_react_1.Select, { className: "uifw-statusFields-selectionScope-selector", value: this.props.activeSelectionScope, options: this._scopeOptions, onChange: this._updateSelectValue, "data-testid": "components-selectionScope-selector", title: this._toolTip, size: "small" })));
48
50
  }
49
51
  }
50
52
  /** Function used by Redux to map state data in Redux store to props that are used to render this component. */
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionScope.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAA+B;AAC/B,2CAAoC;AACpC,+BAA+B;AAC/B,6CAAsC;AACtC,kEAA4D;AAC5D,wDAA4D;AAE5D,gDAA6C;AAY7C;;;;;;;GAOG;AACH,MAAM,4BAA6B,SAAQ,KAAK,CAAC,SAAmC;IAIlF,YAAY,KAA+B;QACzC,KAAK,CAAC,KAAK,CAAC,CAAC;QAJP,WAAM,GAAG,yBAAW,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QAC5D,aAAQ,GAAG,yBAAW,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAMhE,uBAAkB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAChD,uBAAuB;YACvB,IAAI,QAAQ,EAAE;gBACZ,yBAAW,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC;IAPF,CAAC;IASe,MAAM;QACpB,MAAM,YAAY,GAA2B,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,KAAiC,EAAE,EAAE;YACzH,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,OAAO,CACL,oBAAC,oCAAe,IACd,SAAS,EAAE,IAAA,oBAAU,EAAC,kCAAkC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAC/E,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YAExC,IAAI,CAAC,KAAK,CAAC,cAAc;gBACxB,+BAAO,SAAS,EAAC,wCAAwC;oBACtD,IAAI,CAAC,MAAM;wBACN;YAEV,oBAAC,sBAAM,IACL,SAAS,EAAC,2CAA2C,EACrD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EACtC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,iBACrB,oCAAoC,EAChD,KAAK,EAAE,IAAI,CAAC,QAAQ,EACpB,IAAI,EAAC,OAAO,GAAG,CACA,CACpB,CAAC;IACJ,CAAC;CACF;AAED,+GAA+G;AAC/G,SAAS,eAAe,CAAC,KAAU;IACjC,MAAM,cAAc,GAAG,KAAK,CAAC,yBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAE,8CAA8C;IAC5G,0BAA0B;IAC1B,IAAI,CAAC,cAAc;QACjB,OAAO,SAAS,CAAC;IAEnB,OAAO,EAAE,oBAAoB,EAAE,cAAc,CAAC,YAAY,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,cAAc,CAAC,YAAY,CAAC,wBAAwB,EAAE,CAAC;AACpK,CAAC;AAED,4EAA4E;AAC5E;;;;;GAKG,CAAC,gEAAgE;AACvD,QAAA,mBAAmB,GAAG,IAAA,qBAAO,EAAC,eAAe,CAAC,CAAC,4BAA4B,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./SelectionScope.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { FooterIndicator } from \"@itwin/appui-layout-react\";\r\nimport { Select, SelectOption } from \"@itwin/itwinui-react\";\r\nimport { PresentationSelectionScope } from \"../redux/SessionState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { StatusFieldProps } from \"./StatusFieldProps\";\r\n\r\n/** Defines properties supported by the SelectionScopeField Component.\r\n * @public\r\n */\r\ninterface SelectionScopeFieldProps extends StatusFieldProps {\r\n\r\n activeSelectionScope: string;\r\n availableSelectionScopes: PresentationSelectionScope[];\r\n}\r\n\r\n/**\r\n * Status Field React component. This component is designed to be specified in a status bar definition.\r\n * It is used to display the number of selected items based on the Presentation Rules Selection Manager.\r\n * The IModelApp should call either UiFramework.setIModelConnection or SyncUiEventDispatcher.initializeConnectionEvents\r\n * with the active iModelConnection each time a new iModel is opened so the selection scope data is properly updated\r\n * in the Redux state.\r\n * @public\r\n */\r\nclass SelectionScopeFieldComponent extends React.Component<SelectionScopeFieldProps> {\r\n private _label = UiFramework.translate(\"selectionScopeField.label\");\r\n private _toolTip = UiFramework.translate(\"selectionScopeField.toolTip\");\r\n\r\n constructor(props: SelectionScopeFieldProps) {\r\n super(props);\r\n }\r\n\r\n private _updateSelectValue = (newValue: string) => {\r\n // istanbul ignore else\r\n if (newValue) {\r\n UiFramework.setActiveSelectionScope(newValue);\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const scopeOptions: SelectOption<string>[] = this.props.availableSelectionScopes.map((scope: PresentationSelectionScope) => {\r\n return { value: scope.id, label: scope.label };\r\n });\r\n\r\n return (\r\n <FooterIndicator\r\n className={classnames(\"uifw-statusFields-selectionScope\", this.props.className)}\r\n style={this.props.style}\r\n isInFooterMode={this.props.isInFooterMode}\r\n >\r\n {this.props.isInFooterMode &&\r\n <label className=\"uifw-statusFields-selectionScope-label\">\r\n {this._label}:\r\n </label>\r\n }\r\n <Select\r\n className=\"uifw-statusFields-selectionScope-selector\"\r\n value={this.props.activeSelectionScope}\r\n options={scopeOptions}\r\n onChange={this._updateSelectValue}\r\n data-testid=\"components-selectionScope-selector\"\r\n title={this._toolTip}\r\n size=\"small\" />\r\n </FooterIndicator >\r\n );\r\n }\r\n}\r\n\r\n/** Function used by Redux to map state data in Redux store to props that are used to render this component. */\r\nfunction mapStateToProps(state: any) {\r\n const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name\r\n /* istanbul ignore next */\r\n if (!frameworkState)\r\n return undefined;\r\n\r\n return { activeSelectionScope: frameworkState.sessionState.activeSelectionScope, availableSelectionScopes: frameworkState.sessionState.availableSelectionScopes };\r\n}\r\n\r\n// we declare the variable and export that rather than using export default.\r\n/**\r\n * SelectionScopeField React component. This component is designed to be specified in a status bar definition. It will\r\n * display the active selection scope that is used by the PresentationManager to determine what elements are added to the selection nap mode.\r\n * This React component is Redux connected.\r\n * @public\r\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const SelectionScopeField = connect(mapStateToProps)(SelectionScopeFieldComponent);\r\n"]}
1
+ {"version":3,"file":"SelectionScope.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAA+B;AAC/B,2CAAoC;AACpC,+BAA+B;AAC/B,6CAAsC;AACtC,kEAA4D;AAC5D,wDAA4D;AAE5D,gDAA6C;AAY7C;;;;;;;GAOG;AACH,MAAM,4BAA6B,SAAQ,KAAK,CAAC,SAAmC;IAKlF,YAAY,KAA+B;QACzC,KAAK,CAAC,KAAK,CAAC,CAAC;QALP,WAAM,GAAG,yBAAW,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QAC5D,aAAQ,GAAG,yBAAW,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAChE,kBAAa,GAA2B,EAAE,CAAC;QAU3C,uBAAkB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAChD,uBAAuB;YACvB,IAAI,QAAQ,EAAE;gBACZ,yBAAW,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC;QAXA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,KAAiC,EAAE,EAAE;YACjG,MAAM,KAAK,GAAG,yBAAW,CAAC,SAAS,CAAC,wBAAwB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACxE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IASe,MAAM;QAEpB,OAAO,CACL,oBAAC,oCAAe,IACd,SAAS,EAAE,IAAA,oBAAU,EAAC,kCAAkC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAC/E,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YAExC,IAAI,CAAC,KAAK,CAAC,cAAc;gBACxB,+BAAO,SAAS,EAAC,wCAAwC;oBACtD,IAAI,CAAC,MAAM;wBACN;YAEV,oBAAC,sBAAM,IACL,SAAS,EAAC,2CAA2C,EACrD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EACtC,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,QAAQ,EAAE,IAAI,CAAC,kBAAkB,iBACrB,oCAAoC,EAChD,KAAK,EAAE,IAAI,CAAC,QAAQ,EACpB,IAAI,EAAC,OAAO,GAAG,CACA,CACpB,CAAC;IACJ,CAAC;CACF;AAED,+GAA+G;AAC/G,SAAS,eAAe,CAAC,KAAU;IACjC,MAAM,cAAc,GAAG,KAAK,CAAC,yBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAE,8CAA8C;IAC5G,0BAA0B;IAC1B,IAAI,CAAC,cAAc;QACjB,OAAO,SAAS,CAAC;IAEnB,OAAO,EAAE,oBAAoB,EAAE,cAAc,CAAC,YAAY,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,cAAc,CAAC,YAAY,CAAC,wBAAwB,EAAE,CAAC;AACpK,CAAC;AAED,4EAA4E;AAC5E;;;;;GAKG,CAAC,gEAAgE;AACvD,QAAA,mBAAmB,GAAG,IAAA,qBAAO,EAAC,eAAe,CAAC,CAAC,4BAA4B,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./SelectionScope.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { FooterIndicator } from \"@itwin/appui-layout-react\";\r\nimport { Select, SelectOption } from \"@itwin/itwinui-react\";\r\nimport { PresentationSelectionScope } from \"../redux/SessionState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { StatusFieldProps } from \"./StatusFieldProps\";\r\n\r\n/** Defines properties supported by the SelectionScopeField Component.\r\n * @public\r\n */\r\ninterface SelectionScopeFieldProps extends StatusFieldProps {\r\n\r\n activeSelectionScope: string;\r\n availableSelectionScopes: PresentationSelectionScope[];\r\n}\r\n\r\n/**\r\n * Status Field React component. This component is designed to be specified in a status bar definition.\r\n * It is used to display the number of selected items based on the Presentation Rules Selection Manager.\r\n * The IModelApp should call either UiFramework.setIModelConnection or SyncUiEventDispatcher.initializeConnectionEvents\r\n * with the active iModelConnection each time a new iModel is opened so the selection scope data is properly updated\r\n * in the Redux state.\r\n * @public\r\n */\r\nclass SelectionScopeFieldComponent extends React.Component<SelectionScopeFieldProps> {\r\n private _label = UiFramework.translate(\"selectionScopeField.label\");\r\n private _toolTip = UiFramework.translate(\"selectionScopeField.toolTip\");\r\n private _scopeOptions: SelectOption<string>[] = [];\r\n\r\n constructor(props: SelectionScopeFieldProps) {\r\n super(props);\r\n this._scopeOptions = this.props.availableSelectionScopes.map((scope: PresentationSelectionScope) => {\r\n const label = UiFramework.translate(`selectionScopeLabels.${scope.id}`);\r\n return { value: scope.id, label };\r\n });\r\n }\r\n\r\n private _updateSelectValue = (newValue: string) => {\r\n // istanbul ignore else\r\n if (newValue) {\r\n UiFramework.setActiveSelectionScope(newValue);\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n\r\n return (\r\n <FooterIndicator\r\n className={classnames(\"uifw-statusFields-selectionScope\", this.props.className)}\r\n style={this.props.style}\r\n isInFooterMode={this.props.isInFooterMode}\r\n >\r\n {this.props.isInFooterMode &&\r\n <label className=\"uifw-statusFields-selectionScope-label\">\r\n {this._label}:\r\n </label>\r\n }\r\n <Select\r\n className=\"uifw-statusFields-selectionScope-selector\"\r\n value={this.props.activeSelectionScope}\r\n options={this._scopeOptions}\r\n onChange={this._updateSelectValue}\r\n data-testid=\"components-selectionScope-selector\"\r\n title={this._toolTip}\r\n size=\"small\" />\r\n </FooterIndicator >\r\n );\r\n }\r\n}\r\n\r\n/** Function used by Redux to map state data in Redux store to props that are used to render this component. */\r\nfunction mapStateToProps(state: any) {\r\n const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name\r\n /* istanbul ignore next */\r\n if (!frameworkState)\r\n return undefined;\r\n\r\n return { activeSelectionScope: frameworkState.sessionState.activeSelectionScope, availableSelectionScopes: frameworkState.sessionState.availableSelectionScopes };\r\n}\r\n\r\n// we declare the variable and export that rather than using export default.\r\n/**\r\n * SelectionScopeField React component. This component is designed to be specified in a status bar definition. It will\r\n * display the active selection scope that is used by the PresentationManager to determine what elements are added to the selection nap mode.\r\n * This React component is Redux connected.\r\n * @public\r\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const SelectionScopeField = connect(mapStateToProps)(SelectionScopeFieldComponent);\r\n"]}
@@ -15,6 +15,9 @@
15
15
  >.uifw-statusFields-selectionScope-label {
16
16
  display: inline;
17
17
  padding-right: 4px;
18
+ text-overflow: ellipsis;
19
+ overflow: hidden;
20
+ white-space: nowrap;
18
21
 
19
22
  @include for-tablet-portrait-down {
20
23
  display: none;
@@ -23,7 +26,10 @@
23
26
  }
24
27
 
25
28
  >.uifw-statusFields-selectionScope-selector {
26
- min-width: 130px;
29
+ min-width: 140px;
30
+ &.iui-select.iui-small {
31
+ width: auto;
32
+ }
27
33
 
28
34
  @include for-tablet-portrait-down {
29
35
  font-size: $font-size-medium;
@@ -32,7 +38,11 @@
32
38
  @include for-phone-only {
33
39
  font-size: $font-size-small;
34
40
  }
35
-
36
41
  }
42
+ }
43
+
44
+ .uifw-statusFields-selectionScope-label {
45
+ text-overflow: ellipsis;
46
+ overflow: hidden;
47
+ }
37
48
 
38
- }
@@ -4,7 +4,7 @@
4
4
  import * as React from "react";
5
5
  /**
6
6
  * Properties supported by [[BooleanSyncUiListener]] component.
7
- * @public
7
+ * @public @deprecated
8
8
  */
9
9
  export interface BooleanListenerProps {
10
10
  /** One or more SyncUi event Ids that will trigger the function to be called. */
@@ -27,7 +27,7 @@ interface BooleanListenerState {
27
27
  }
28
28
  /**
29
29
  * A component that expect its children to be a function that will be passed the current boolValue state.
30
- * @public
30
+ * @public @deprecated
31
31
  */
32
32
  export declare class BooleanSyncUiListener extends React.Component<BooleanListenerProps, BooleanListenerState> {
33
33
  private _componentUnmounting;
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanListener.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/syncui/BooleanListener.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,gFAAgF;IAChF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,UAAU,oBAAoB;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB;AAGD;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK,CAAC,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpG,OAAO,CAAC,oBAAoB,CAAS;IAErC,gBAAgB;IAChB,SAAyB,KAAK,EAAE,oBAAoB,CAAC;gBAEzC,KAAK,EAAE,oBAAoB;IAOvC,OAAO,CAAC,4BAA4B,CAalC;IAEc,iBAAiB;IAMjB,oBAAoB;IASpC,OAAO,CAAC,cAAc,CAA2D;IAEjE,MAAM,IAAI,KAAK,CAAC,SAAS;CAiB1C"}
1
+ {"version":3,"file":"BooleanListener.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/syncui/BooleanListener.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,gFAAgF;IAChF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,UAAU,oBAAoB;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB;AAGD;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK,CAAC,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpG,OAAO,CAAC,oBAAoB,CAAS;IAErC,gBAAgB;IAChB,SAAyB,KAAK,EAAE,oBAAoB,CAAC;gBAEzC,KAAK,EAAE,oBAAoB;IAOvC,OAAO,CAAC,4BAA4B,CAalC;IAEc,iBAAiB;IAMjB,oBAAoB;IASpC,OAAO,CAAC,cAAc,CAA2D;IAEjE,MAAM,IAAI,KAAK,CAAC,SAAS;CAiB1C"}
@@ -3,6 +3,7 @@
3
3
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
+ /* eslint-disable deprecation/deprecation */
6
7
  /** @packageDocumentation
7
8
  * @module SyncUi
8
9
  */
@@ -13,7 +14,7 @@ const SyncUiEventDispatcher_1 = require("./SyncUiEventDispatcher");
13
14
  // cSpell:Ignore Unmounting
14
15
  /**
15
16
  * A component that expect its children to be a function that will be passed the current boolValue state.
16
- * @public
17
+ * @public @deprecated
17
18
  */
18
19
  class BooleanSyncUiListener extends React.Component {
19
20
  constructor(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanListener.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/BooleanListener.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,mEAAiF;AA2BjF,2BAA2B;AAC3B;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,KAAK,CAAC,SAAqD;IAMpG,YAAY,KAA2B;QACrC,KAAK,CAAC,KAAK,CAAC,CAAC;QANP,yBAAoB,GAAG,KAAK,CAAC;QAY7B,iCAA4B,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACrE,0BAA0B;YAC1B,IAAI,IAAI,CAAC,oBAAoB;gBAC3B,OAAO;YAET,0BAA0B;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;gBAChG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxC,0BAA0B;gBAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE;oBACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;iBAC9B;aACF;QACH,CAAC,CAAC;QAgBF,uBAAuB;QACf,mBAAc,GAAG,CAAC,QAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAnC/E,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,SAAS,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;SACxE,CAAC;IACJ,CAAC;IAiBe,iBAAiB;QAC/B,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACvE,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACvF,CAAC;IAEe,oBAAoB;QAClC,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACzE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,6CAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SACvF;IACH,CAAC;IAKe,MAAM;QACpB,MAAM;QACJ,yBAAyB;QACzB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,wDAAwD;QACpG,wCAAwC;QACxC,GAAG,UAAU,CAAC,qBAAqB;UACpC,GAAG,IAAI,CAAC,KAAK,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAEvC,OAAO,CACL,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;YAC9B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;YAC/B,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACzD,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/B,CAAC,CAAC,IAAI,CACX,CAAC;IACJ,CAAC;CACF;AA9DD,sDA8DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module SyncUi\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher } from \"./SyncUiEventDispatcher\";\r\n\r\n/**\r\n * Properties supported by [[BooleanSyncUiListener]] component.\r\n * @public\r\n */\r\nexport interface BooleanListenerProps {\r\n /** One or more SyncUi event Ids that will trigger the function to be called. */\r\n eventIds: string[];\r\n /** Function to be called to return a boolean value. If the boolean value is different than the component's state value setState is\r\n * called to update the value and trigger a re-render.\r\n */\r\n boolFunc: () => boolean;\r\n /** Optional, default/initial boolean value that is saved in the components state. If\r\n * not defined it will default to true.\r\n */\r\n defaultValue?: boolean;\r\n}\r\n\r\n/**\r\n * State for the [[BooleanSyncUiListener]] component.\r\n * @internal\r\n */\r\ninterface BooleanListenerState {\r\n boolValue: boolean;\r\n}\r\n\r\n// cSpell:Ignore Unmounting\r\n/**\r\n * A component that expect its children to be a function that will be passed the current boolValue state.\r\n * @public\r\n */\r\nexport class BooleanSyncUiListener extends React.Component<BooleanListenerProps, BooleanListenerState> {\r\n private _componentUnmounting = false;\r\n\r\n /** @internal */\r\n public override readonly state: BooleanListenerState;\r\n\r\n constructor(props: BooleanListenerProps) {\r\n super(props);\r\n this.state = {\r\n boolValue: undefined !== props.defaultValue ? props.defaultValue : true,\r\n };\r\n }\r\n\r\n private _handleVisibilitySyncUiEvent = (args: SyncUiEventArgs): void => {\r\n /* istanbul ignore next */\r\n if (this._componentUnmounting)\r\n return;\r\n\r\n /* istanbul ignore else */\r\n if (this.props.eventIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n const boolValue = this.props.boolFunc();\r\n /* istanbul ignore else */\r\n if (this.state.boolValue !== boolValue) {\r\n this.setState({ boolValue });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n /* istanbul ignore else */\r\n if ((this.props.boolFunc !== undefined) && this.props.eventIds.length > 0)\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleVisibilitySyncUiEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n /* istanbul ignore else */\r\n if ((this.props.boolFunc !== undefined) && this.props.eventIds.length > 0) {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleVisibilitySyncUiEvent);\r\n }\r\n }\r\n\r\n // istanbul ignore next\r\n private _hasNoChildren = (children: any) => React.Children.count(children) === 0;\r\n\r\n public override render(): React.ReactNode {\r\n const {\r\n // do not bleed our props\r\n children, eventIds, boolFunc, defaultValue, // eslint-disable-line @typescript-eslint/no-unused-vars\r\n // eslint-disable-next-line comma-dangle\r\n ...otherProps // pass-through props\r\n } = this.props;\r\n const boolValue = this.state.boolValue;\r\n\r\n return (\r\n typeof children === \"function\" ?\r\n children(boolValue, otherProps)\r\n : /* istanbul ignore next */ !this._hasNoChildren(children)\r\n ? React.Children.only(children)\r\n : null\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"BooleanListener.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/BooleanListener.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F,4CAA4C;AAC5C;;GAEG;;;AAEH,+BAA+B;AAC/B,mEAAiF;AA2BjF,2BAA2B;AAC3B;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,KAAK,CAAC,SAAqD;IAMpG,YAAY,KAA2B;QACrC,KAAK,CAAC,KAAK,CAAC,CAAC;QANP,yBAAoB,GAAG,KAAK,CAAC;QAY7B,iCAA4B,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACrE,0BAA0B;YAC1B,IAAI,IAAI,CAAC,oBAAoB;gBAC3B,OAAO;YAET,0BAA0B;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;gBAChG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxC,0BAA0B;gBAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE;oBACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;iBAC9B;aACF;QACH,CAAC,CAAC;QAgBF,uBAAuB;QACf,mBAAc,GAAG,CAAC,QAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAnC/E,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,SAAS,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;SACxE,CAAC;IACJ,CAAC;IAiBe,iBAAiB;QAC/B,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACvE,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACvF,CAAC;IAEe,oBAAoB;QAClC,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACzE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,6CAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SACvF;IACH,CAAC;IAKe,MAAM;QACpB,MAAM;QACJ,yBAAyB;QACzB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,wDAAwD;QACpG,wCAAwC;QACxC,GAAG,UAAU,CAAC,qBAAqB;UACpC,GAAG,IAAI,CAAC,KAAK,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAEvC,OAAO,CACL,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;YAC9B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;YAC/B,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACzD,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/B,CAAC,CAAC,IAAI,CACX,CAAC;IACJ,CAAC;CACF;AA9DD,sDA8DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module SyncUi\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher } from \"./SyncUiEventDispatcher\";\r\n\r\n/**\r\n * Properties supported by [[BooleanSyncUiListener]] component.\r\n * @public @deprecated\r\n */\r\nexport interface BooleanListenerProps {\r\n /** One or more SyncUi event Ids that will trigger the function to be called. */\r\n eventIds: string[];\r\n /** Function to be called to return a boolean value. If the boolean value is different than the component's state value setState is\r\n * called to update the value and trigger a re-render.\r\n */\r\n boolFunc: () => boolean;\r\n /** Optional, default/initial boolean value that is saved in the components state. If\r\n * not defined it will default to true.\r\n */\r\n defaultValue?: boolean;\r\n}\r\n\r\n/**\r\n * State for the [[BooleanSyncUiListener]] component.\r\n * @internal\r\n */\r\ninterface BooleanListenerState {\r\n boolValue: boolean;\r\n}\r\n\r\n// cSpell:Ignore Unmounting\r\n/**\r\n * A component that expect its children to be a function that will be passed the current boolValue state.\r\n * @public @deprecated\r\n */\r\nexport class BooleanSyncUiListener extends React.Component<BooleanListenerProps, BooleanListenerState> {\r\n private _componentUnmounting = false;\r\n\r\n /** @internal */\r\n public override readonly state: BooleanListenerState;\r\n\r\n constructor(props: BooleanListenerProps) {\r\n super(props);\r\n this.state = {\r\n boolValue: undefined !== props.defaultValue ? props.defaultValue : true,\r\n };\r\n }\r\n\r\n private _handleVisibilitySyncUiEvent = (args: SyncUiEventArgs): void => {\r\n /* istanbul ignore next */\r\n if (this._componentUnmounting)\r\n return;\r\n\r\n /* istanbul ignore else */\r\n if (this.props.eventIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n const boolValue = this.props.boolFunc();\r\n /* istanbul ignore else */\r\n if (this.state.boolValue !== boolValue) {\r\n this.setState({ boolValue });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n /* istanbul ignore else */\r\n if ((this.props.boolFunc !== undefined) && this.props.eventIds.length > 0)\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleVisibilitySyncUiEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n /* istanbul ignore else */\r\n if ((this.props.boolFunc !== undefined) && this.props.eventIds.length > 0) {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleVisibilitySyncUiEvent);\r\n }\r\n }\r\n\r\n // istanbul ignore next\r\n private _hasNoChildren = (children: any) => React.Children.count(children) === 0;\r\n\r\n public override render(): React.ReactNode {\r\n const {\r\n // do not bleed our props\r\n children, eventIds, boolFunc, defaultValue, // eslint-disable-line @typescript-eslint/no-unused-vars\r\n // eslint-disable-next-line comma-dangle\r\n ...otherProps // pass-through props\r\n } = this.props;\r\n const boolValue = this.state.boolValue;\r\n\r\n return (\r\n typeof children === \"function\" ?\r\n children(boolValue, otherProps)\r\n : /* istanbul ignore next */ !this._hasNoChildren(children)\r\n ? React.Children.only(children)\r\n : null\r\n );\r\n }\r\n}\r\n"]}
@@ -1,8 +1,8 @@
1
1
  /** @packageDocumentation
2
2
  * @module SyncUi
3
3
  */
4
+ import { UiSyncEvent, UiSyncEventArgs } from "@itwin/appui-abstract";
4
5
  import { IModelConnection } from "@itwin/core-frontend";
5
- import { UiEvent } from "@itwin/core-react";
6
6
  /** Event Id used to sync UI components. Used to refresh visibility or enable state of control.
7
7
  * @public
8
8
  */
@@ -56,27 +56,19 @@ export declare enum SyncUiEventId {
56
56
  ShowHideManagerSettingChange = "show-hide-setting-change"
57
57
  }
58
58
  /** SyncUi Event arguments. Contains a set of lower case event Ids.
59
- * @public
59
+ * @public @deprecated use UiSyncEventArgs in appui-abstract instead
60
60
  */
61
- export interface SyncUiEventArgs {
62
- eventIds: Set<string>;
63
- }
61
+ export declare type SyncUiEventArgs = UiSyncEventArgs;
64
62
  /** SyncUi Event class.
65
- * @public
63
+ * @public @deprecated use UiSyncEvent in appui-abstract instead
66
64
  */
67
- export declare class SyncUiEvent extends UiEvent<SyncUiEventArgs> {
68
- }
65
+ export declare type SyncUiEvent = UiSyncEvent;
69
66
  /** This class is used to send eventIds to interested UI components so the component can determine if it needs
70
67
  * to refresh its display by calling setState on itself.
71
68
  * @public
72
69
  */
73
70
  export declare class SyncUiEventDispatcher {
74
- private static _syncEventTimerId;
75
- private static _eventIds;
76
- private static _eventIdAdded;
77
- private static _syncUiEvent;
78
- private static _timeoutPeriod;
79
- private static _secondaryTimeoutPeriod;
71
+ private static _uiEventDispatcher;
80
72
  private static _unregisterListenerFunc?;
81
73
  private static _unregisterListenerFuncs;
82
74
  private static initialized;
@@ -92,8 +84,6 @@ export declare class SyncUiEventDispatcher {
92
84
  static dispatchSyncUiEvent(eventId: string): void;
93
85
  /** Save multiple eventIds in Set for processing. */
94
86
  static dispatchSyncUiEvents(eventIds: string[]): void;
95
- /** Trigger registered event processing when timer has expired and no addition eventId are added. */
96
- private static checkForAdditionalIds;
97
87
  /** Checks to see if an eventId of interest is contained in the set of eventIds */
98
88
  static hasEventOfInterest(eventIds: Set<string>, idsOfInterest: string[]): boolean;
99
89
  private static _dispatchViewChange;
@@ -1 +1 @@
1
- {"version":3,"file":"SyncUiEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyncUiEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAqB,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAa,gBAAgB,EAAkD,MAAM,sBAAsB,CAAC;AAiBnH;;GAEG;AACH,oBAAY,aAAa;IACvB,yCAAyC;IACzC,0BAA0B,+BAA+B;IACzD,qCAAqC;IACrC,uBAAuB,4BAA4B;IACnD,8EAA8E;IAC9E,oBAAoB,yBAAyB;IAC7C,iEAAiE;IACjE,qBAAqB,0BAA0B;IAC/C;;OAEG;IACH,mBAAmB,wBAAwB;IAC3C,iCAAiC;IACjC,cAAc,mBAAmB;IACjC,4CAA4C;IAC5C,sBAAsB,2BAA2B;IACjD,4EAA4E;IAC5E,uBAAuB,4BAA4B;IACnD,kCAAkC;IAClC,oBAAoB,yBAAyB;IAC7C,yEAAyE;IACzE,eAAe,oBAAoB;IACnC,oDAAoD;IACpD,sBAAsB,2BAA2B;IACjD,gDAAgD;IAChD,kBAAkB,uBAAuB;IACzC,0CAA0C;IAC1C,sBAAsB,2BAA2B;IACjD,+DAA+D;IAC/D,aAAa,kBAAkB;IAC/B;qBACiB;IACjB,aAAa,kBAAkB;IAC/B,yCAAyC;IACzC,kBAAkB,uBAAuB;IACzC;qBACiB;IACjB,iBAAiB,sBAAsB;IACvC,oEAAoE;IACpE,mBAAmB,wBAAwB;IAC3C,kFAAkF;IAClF,wBAAwB,6BAA6B;IACrD,mFAAmF;IACnF,gBAAgB,qBAAqB;IACrC,mEAAmE;IACnE,qBAAqB,0BAA0B;IAC/C,4BAA4B,6BAA6B;CAC1D;AAED;;GAEG;AACH,oBAAY,eAAe,GAAG,eAAe,CAAC;AAE9C;;GAEG;AACH,oBAAY,WAAW,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA2B;IAC5D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAa;IACpD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAyB;IAChE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAEnC,wCAAwC;WAE1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpD,+DAA+D;IAC/D,WAAkB,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAE5C;IAED,oEAAoE;IAEpE,WAAkB,aAAa,IAAI,WAAW,CAE7C;IAED,iDAAiD;WACnC,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjE,0CAA0C;WAC5B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQxD,oDAAoD;WACtC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5D,kFAAkF;WACpE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAK/E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC,gFAAgF;WAClE,UAAU;IA0ExB,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAItC,qFAAqF;WACvE,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB;IAKtE,0FAA0F;WAC5E,0BAA0B,CAAC,gBAAgB,EAAE,gBAAgB;CA4C5E"}
@@ -7,13 +7,13 @@
7
7
  * @module SyncUi
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.SyncUiEventDispatcher = exports.SyncUiEvent = exports.SyncUiEventId = void 0;
10
+ exports.SyncUiEventDispatcher = exports.SyncUiEventId = void 0;
11
+ const appui_abstract_1 = require("@itwin/appui-abstract");
11
12
  const core_bentley_1 = require("@itwin/core-bentley");
12
13
  const core_frontend_1 = require("@itwin/core-frontend");
13
14
  const presentation_common_1 = require("@itwin/presentation-common");
14
15
  const presentation_frontend_1 = require("@itwin/presentation-frontend");
15
16
  // cSpell:ignore configurableui
16
- const core_react_1 = require("@itwin/core-react");
17
17
  const Backstage_1 = require("../backstage/Backstage");
18
18
  const ContentViewManager_1 = require("../content/ContentViewManager");
19
19
  const FrontstageManager_1 = require("../frontstage/FrontstageManager");
@@ -78,12 +78,6 @@ var SyncUiEventId;
78
78
  SyncUiEventId["UiStateStorageChanged"] = "uistatestoragechanged";
79
79
  SyncUiEventId["ShowHideManagerSettingChange"] = "show-hide-setting-change";
80
80
  })(SyncUiEventId = exports.SyncUiEventId || (exports.SyncUiEventId = {}));
81
- /** SyncUi Event class.
82
- * @public
83
- */
84
- class SyncUiEvent extends core_react_1.UiEvent {
85
- }
86
- exports.SyncUiEvent = SyncUiEvent;
87
81
  /** This class is used to send eventIds to interested UI components so the component can determine if it needs
88
82
  * to refresh its display by calling setState on itself.
89
83
  * @public
@@ -92,109 +86,44 @@ class SyncUiEventDispatcher {
92
86
  /** @internal - used for testing only */
93
87
  /* istanbul ignore next */
94
88
  static setTimeoutPeriod(period) {
95
- SyncUiEventDispatcher._timeoutPeriod = period;
96
- SyncUiEventDispatcher._secondaryTimeoutPeriod = Math.floor(SyncUiEventDispatcher._timeoutPeriod / 2);
97
- if (SyncUiEventDispatcher._secondaryTimeoutPeriod < 1)
98
- SyncUiEventDispatcher._secondaryTimeoutPeriod = 1;
99
- if (SyncUiEventDispatcher._syncEventTimerId) {
100
- window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);
101
- SyncUiEventDispatcher._syncEventTimerId = undefined;
102
- }
103
- if (SyncUiEventDispatcher._eventIds)
104
- SyncUiEventDispatcher._eventIds.clear();
105
- SyncUiEventDispatcher._eventIdAdded = false;
89
+ SyncUiEventDispatcher._uiEventDispatcher.setTimeoutPeriod(period);
106
90
  }
107
91
  /** Return set of event ids that will be sent to listeners/. */
108
92
  static get syncEventIds() {
109
- if (!SyncUiEventDispatcher._eventIds)
110
- SyncUiEventDispatcher._eventIds = new Set();
111
- return SyncUiEventDispatcher._eventIds;
93
+ return SyncUiEventDispatcher._uiEventDispatcher.syncEventIds;
112
94
  }
113
95
  /** Return SyncUiEvent so callers can register an event callback. */
96
+ // eslint-disable-next-line deprecation/deprecation
114
97
  static get onSyncUiEvent() {
115
- if (!SyncUiEventDispatcher._syncUiEvent)
116
- SyncUiEventDispatcher._syncUiEvent = new SyncUiEvent();
117
- return SyncUiEventDispatcher._syncUiEvent;
98
+ return SyncUiEventDispatcher._uiEventDispatcher.onSyncUiEvent;
118
99
  }
119
100
  /** Immediately trigger sync event processing. */
120
101
  static dispatchImmediateSyncUiEvent(eventId) {
121
- const eventIds = new Set();
122
- eventIds.add(eventId.toLowerCase());
123
- SyncUiEventDispatcher.onSyncUiEvent.emit({ eventIds });
102
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchImmediateSyncUiEvent(eventId);
124
103
  }
125
104
  /** Save eventId in Set for processing. */
126
105
  static dispatchSyncUiEvent(eventId) {
127
- if (0 === SyncUiEventDispatcher._timeoutPeriod) {
128
- core_bentley_1.Logger.logInfo(UiFramework_1.UiFramework.loggerCategory(this), `[dispatchSyncUiEvent] not processed because _timeoutPeriod=0`);
106
+ if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {
107
+ core_bentley_1.Logger.logInfo(UiFramework_1.UiFramework.loggerCategory(this), `[dispatchSyncUiEvent] not processed because timeoutPeriod=0`);
129
108
  return;
130
109
  }
131
- SyncUiEventDispatcher.syncEventIds.add(eventId.toLowerCase());
132
- if (!SyncUiEventDispatcher._syncEventTimerId) { // if there is not a timer active, create one
133
- SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._timeoutPeriod);
134
- }
135
- else {
136
- SyncUiEventDispatcher._eventIdAdded = true;
137
- }
110
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(eventId);
138
111
  }
139
112
  /** Save multiple eventIds in Set for processing. */
140
113
  static dispatchSyncUiEvents(eventIds) {
141
114
  // istanbul ignore if
142
- if (0 === SyncUiEventDispatcher._timeoutPeriod) {
115
+ if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {
143
116
  core_bentley_1.Logger.logInfo(UiFramework_1.UiFramework.loggerCategory(this), `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`);
144
- return;
145
- }
146
- eventIds.forEach((id) => SyncUiEventDispatcher.syncEventIds.add(id.toLowerCase()));
147
- // istanbul ignore else
148
- if (!SyncUiEventDispatcher._syncEventTimerId) { // if there is not a timer active, create one
149
- SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._timeoutPeriod);
150
- }
151
- else {
152
- SyncUiEventDispatcher._eventIdAdded = true;
153
- }
154
- }
155
- /** Trigger registered event processing when timer has expired and no addition eventId are added. */
156
- static checkForAdditionalIds() {
157
- /* istanbul ignore else */
158
- if (!SyncUiEventDispatcher._eventIdAdded) {
159
- // istanbul ignore else
160
- if (SyncUiEventDispatcher._syncEventTimerId) {
161
- window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);
162
- SyncUiEventDispatcher._syncEventTimerId = undefined;
163
- }
164
- else {
165
- core_bentley_1.Logger.logError(UiFramework_1.UiFramework.loggerCategory(this), "SyncUiEventDispatcher.checkForAdditionalIds - expected _syncEventTimerId to be defined");
166
- }
167
- SyncUiEventDispatcher._eventIdAdded = false;
168
- // istanbul ignore else
169
- if (SyncUiEventDispatcher.syncEventIds.size > 0) {
170
- const eventIds = new Set();
171
- SyncUiEventDispatcher.syncEventIds.forEach((value) => eventIds.add(value));
172
- SyncUiEventDispatcher._eventIds.clear();
173
- SyncUiEventDispatcher.onSyncUiEvent.emit({ eventIds });
174
- }
175
- return;
176
- }
177
- // istanbul ignore next
178
- if (SyncUiEventDispatcher._syncEventTimerId) {
179
- window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);
180
- SyncUiEventDispatcher._syncEventTimerId = undefined;
181
117
  }
182
- // istanbul ignore next
183
- SyncUiEventDispatcher._eventIdAdded = false;
184
- // if events have been added before the initial timer expired wait half that time to see if events are still being added.
185
- // istanbul ignore next
186
- SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._secondaryTimeoutPeriod);
118
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvents(eventIds);
187
119
  }
188
120
  /** Checks to see if an eventId of interest is contained in the set of eventIds */
189
121
  static hasEventOfInterest(eventIds, idsOfInterest) {
190
- /* istanbul ignore else */
191
- if ((idsOfInterest.length > 0) && idsOfInterest.some((value) => eventIds.has(value.toLowerCase())))
192
- return true;
193
- return false;
122
+ return SyncUiEventDispatcher._uiEventDispatcher.hasEventOfInterest(eventIds, idsOfInterest);
194
123
  }
195
124
  // istanbul ignore next
196
125
  static _dispatchViewChange() {
197
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewStateChanged);
126
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewStateChanged);
198
127
  }
199
128
  /** Initializes the Monitoring of Events that trigger dispatching sync events */
200
129
  static initialize() {
@@ -204,42 +133,42 @@ class SyncUiEventDispatcher {
204
133
  SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentControlActivated);
205
134
  }));
206
135
  this._unregisterListenerFuncs.push(FrontstageManager_1.FrontstageManager.onContentLayoutActivatedEvent.addListener(() => {
207
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);
136
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);
208
137
  }));
209
138
  this._unregisterListenerFuncs.push(FrontstageManager_1.FrontstageManager.onFrontstageActivatedEvent.addListener(() => {
210
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);
139
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);
211
140
  }));
212
141
  this._unregisterListenerFuncs.push(FrontstageManager_1.FrontstageManager.onFrontstageReadyEvent.addListener(() => {
213
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);
142
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);
214
143
  }));
215
144
  this._unregisterListenerFuncs.push(FrontstageManager_1.FrontstageManager.onModalFrontstageChangedEvent.addListener(() => {
216
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);
145
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);
217
146
  }));
218
147
  this._unregisterListenerFuncs.push(FrontstageManager_1.FrontstageManager.onNavigationAidActivatedEvent.addListener(() => {
219
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);
148
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);
220
149
  }));
221
150
  this._unregisterListenerFuncs.push(FrontstageManager_1.FrontstageManager.onToolActivatedEvent.addListener(() => {
222
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);
151
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);
223
152
  }));
224
153
  this._unregisterListenerFuncs.push(FrontstageManager_1.FrontstageManager.onWidgetStateChangedEvent.addListener(() => {
225
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);
154
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);
226
155
  }));
227
156
  this._unregisterListenerFuncs.push(Backstage_1.Backstage.onBackstageEvent.addListener(() => {
228
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);
157
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);
229
158
  }));
230
159
  this._unregisterListenerFuncs.push(Workflow_1.WorkflowManager.onTaskActivatedEvent.addListener(() => {
231
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.TaskActivated); // eslint-disable-line deprecation/deprecation
160
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.TaskActivated); // eslint-disable-line deprecation/deprecation
232
161
  }));
233
162
  this._unregisterListenerFuncs.push(Workflow_1.WorkflowManager.onWorkflowActivatedEvent.addListener(() => {
234
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WorkflowActivated); // eslint-disable-line deprecation/deprecation
163
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WorkflowActivated); // eslint-disable-line deprecation/deprecation
235
164
  }));
236
165
  this._unregisterListenerFuncs.push(ContentViewManager_1.ContentViewManager.onActiveContentChangedEvent.addListener(() => {
237
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);
166
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);
238
167
  }));
239
168
  // istanbul ignore else
240
169
  if (core_frontend_1.IModelApp && core_frontend_1.IModelApp.viewManager) {
241
170
  this._unregisterListenerFuncs.push(core_frontend_1.IModelApp.viewManager.onSelectedViewportChanged.addListener((args) => {
242
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);
171
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);
243
172
  // if this is the first view being opened up start the default tool so tool admin is happy.
244
173
  if (undefined === args.previous) {
245
174
  core_frontend_1.IModelApp.toolAdmin.startDefaultTool(); // eslint-disable-line @typescript-eslint/no-floating-promises
@@ -258,7 +187,7 @@ class SyncUiEventDispatcher {
258
187
  }
259
188
  }
260
189
  static selectionChangedHandler(_ev) {
261
- SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);
190
+ SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);
262
191
  }
263
192
  /** This should be called by IModelApp when the active IModelConnection is closed. */
264
193
  static clearConnectionEvents(iModelConnection) {
@@ -307,9 +236,7 @@ class SyncUiEventDispatcher {
307
236
  }
308
237
  }
309
238
  exports.SyncUiEventDispatcher = SyncUiEventDispatcher;
310
- SyncUiEventDispatcher._eventIdAdded = false;
311
- SyncUiEventDispatcher._timeoutPeriod = 100;
312
- SyncUiEventDispatcher._secondaryTimeoutPeriod = SyncUiEventDispatcher._timeoutPeriod / 2;
239
+ SyncUiEventDispatcher._uiEventDispatcher = new appui_abstract_1.UiEventDispatcher();
313
240
  SyncUiEventDispatcher._unregisterListenerFuncs = [];
314
241
  SyncUiEventDispatcher.initialized = false;
315
242
  //# sourceMappingURL=SyncUiEventDispatcher.js.map