@itwin/appui-react 3.2.0-dev.9 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/CHANGELOG.md +69 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +10 -0
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +22 -0
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
  11. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/accudraw/Calculator.js +3 -2
  14. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  15. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -2
  17. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  18. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +2 -2
  19. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  20. package/lib/cjs/appui-react/configurableui/state.d.ts +9 -1
  21. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/configurableui/state.js +13 -0
  23. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  24. package/lib/cjs/appui-react/content/ContentGroup.d.ts +1 -1
  25. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  27. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +1 -0
  28. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/feedback/ElementTooltip.js +16 -0
  30. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +5 -0
  32. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/frontstage/Frontstage.js +9 -1
  34. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  35. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  36. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +2 -0
  37. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  38. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +18 -9
  40. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  41. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +2 -0
  43. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  44. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -2
  45. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  46. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  47. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  48. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -2
  49. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  50. package/lib/cjs/appui-react/imodel-components/VisibilityTreeBase.scss +3 -3
  51. package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +2 -0
  52. package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.json +2 -0
  53. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +39 -26
  54. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  55. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -1
  56. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  57. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  58. package/lib/cjs/appui-react/redux/StateManager.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/redux/StateManager.js +1 -0
  60. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  61. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +25 -5
  63. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  64. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +1 -1
  65. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  66. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  67. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  68. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  69. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +6 -10
  70. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  71. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -1
  72. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  73. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -3
  74. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  75. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  76. package/lib/cjs/appui-react/statusfields/SelectionScope.js +1 -1
  77. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  78. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  79. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  80. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +35 -33
  82. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  83. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -1
  84. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  85. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +1 -0
  86. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  87. package/lib/cjs/appui-react/toolbar/Toolbar.js +8 -3
  88. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  89. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +5 -26
  90. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  91. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +16 -16
  92. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  93. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -0
  94. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -0
  95. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +96 -0
  96. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -0
  97. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +1 -18
  98. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  99. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  100. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +33 -0
  101. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -0
  102. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +51 -0
  103. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -0
  104. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +3 -18
  105. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  107. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  108. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +31 -0
  109. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -0
  110. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +79 -0
  111. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -0
  112. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -0
  113. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  114. package/lib/cjs/appui-react/uistate/AppUiSettings.js +8 -0
  115. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  116. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -1
  117. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +3 -0
  118. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  119. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -0
  121. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  122. package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -1
  123. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/utils/PropsHelper.js +10 -0
  125. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  126. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  127. package/lib/cjs/appui-react/utils/UiShowHideManager.js +1 -0
  128. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  129. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +17 -1
  130. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  131. package/lib/cjs/appui-react/widget-panels/Frontstage.js +143 -129
  132. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  133. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  134. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -2
  135. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  136. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +17 -1
  137. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -3
  138. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  139. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +1 -1
  140. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  141. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  142. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -1
  143. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  144. package/lib/cjs/appui-react/widgets/WidgetDef.js +14 -4
  145. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  146. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts +1 -1
  147. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  148. package/lib/cjs/appui-react/widgets/WidgetHost.js +106 -7
  149. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  150. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  151. package/lib/cjs/appui-react/widgets/WidgetManager.js +2 -1
  152. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  153. package/lib/cjs/appui-react.d.ts +3 -0
  154. package/lib/cjs/appui-react.d.ts.map +1 -1
  155. package/lib/cjs/appui-react.js +3 -0
  156. package/lib/cjs/appui-react.js.map +1 -1
  157. package/lib/esm/appui-react/UiFramework.d.ts +10 -0
  158. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  159. package/lib/esm/appui-react/UiFramework.js +22 -0
  160. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  161. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  162. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  163. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  164. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  165. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
  166. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  167. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  168. package/lib/esm/appui-react/accudraw/Calculator.js +5 -4
  169. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  170. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  171. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +5 -3
  172. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  173. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +2 -2
  174. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  175. package/lib/esm/appui-react/configurableui/state.d.ts +9 -1
  176. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  177. package/lib/esm/appui-react/configurableui/state.js +13 -0
  178. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  179. package/lib/esm/appui-react/content/ContentGroup.d.ts +1 -1
  180. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  181. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  182. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +1 -0
  183. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  184. package/lib/esm/appui-react/feedback/ElementTooltip.js +16 -0
  185. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  186. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +5 -0
  187. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  188. package/lib/esm/appui-react/frontstage/Frontstage.js +7 -0
  189. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  190. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  191. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +2 -0
  192. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  193. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  194. package/lib/esm/appui-react/frontstage/FrontstageDef.js +18 -9
  195. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  196. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  197. package/lib/esm/appui-react/frontstage/FrontstageManager.js +2 -0
  198. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  199. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  200. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  201. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  202. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  203. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -2
  204. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  205. package/lib/esm/appui-react/imodel-components/VisibilityTreeBase.scss +3 -3
  206. package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +2 -0
  207. package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.json +2 -0
  208. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +39 -26
  209. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  210. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -1
  211. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  212. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  213. package/lib/esm/appui-react/redux/StateManager.d.ts.map +1 -1
  214. package/lib/esm/appui-react/redux/StateManager.js +1 -0
  215. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  216. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  217. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +25 -5
  218. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  219. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +1 -1
  220. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  221. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  222. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  223. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  224. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +6 -10
  225. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  226. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -1
  227. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  228. package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -3
  229. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  230. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  231. package/lib/esm/appui-react/statusfields/SelectionScope.js +1 -1
  232. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  233. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  234. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  235. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  236. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +20 -18
  237. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  238. package/lib/esm/appui-react/theme/ThemeManager.js +1 -1
  239. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  240. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +1 -0
  241. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  242. package/lib/esm/appui-react/toolbar/Toolbar.js +8 -3
  243. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  244. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +5 -26
  245. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  246. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -17
  247. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  248. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -0
  249. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -0
  250. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +92 -0
  251. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -0
  252. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +1 -18
  253. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  254. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  255. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +33 -0
  256. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -0
  257. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +47 -0
  258. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -0
  259. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +3 -18
  260. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  261. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  262. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  263. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +31 -0
  264. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -0
  265. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +75 -0
  266. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -0
  267. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -0
  268. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  269. package/lib/esm/appui-react/uistate/AppUiSettings.js +8 -0
  270. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  271. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -1
  272. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +3 -0
  273. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  274. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  275. package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -0
  276. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  277. package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -1
  278. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  279. package/lib/esm/appui-react/utils/PropsHelper.js +11 -1
  280. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  281. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  282. package/lib/esm/appui-react/utils/UiShowHideManager.js +1 -0
  283. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  284. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +17 -1
  285. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  286. package/lib/esm/appui-react/widget-panels/Frontstage.js +144 -130
  287. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  288. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  289. package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -2
  290. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  291. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +17 -1
  292. package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -3
  293. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  294. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +1 -1
  295. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  296. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  297. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -1
  298. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  299. package/lib/esm/appui-react/widgets/WidgetDef.js +14 -4
  300. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  301. package/lib/esm/appui-react/widgets/WidgetHost.d.ts +1 -1
  302. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  303. package/lib/esm/appui-react/widgets/WidgetHost.js +106 -7
  304. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  305. package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  306. package/lib/esm/appui-react/widgets/WidgetManager.js +2 -1
  307. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  308. package/lib/esm/appui-react.d.ts +3 -0
  309. package/lib/esm/appui-react.d.ts.map +1 -1
  310. package/lib/esm/appui-react.js +3 -0
  311. package/lib/esm/appui-react.js.map +1 -1
  312. package/lib/public/locales/en/UiFramework.json +7 -2
  313. package/package.json +37 -37
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, InteractiveTool, SelectedViewportChangedArgs, StartOrResume, Tool } from \"@itwin/core-frontend\";\r\nimport { WidgetState } from \"@itwin/appui-abstract\";\r\nimport { Size, UiEvent } from \"@itwin/core-react\";\r\nimport { NineZoneManager } from \"@itwin/appui-layout-react\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentGroup } from \"../content/ContentGroup\";\r\nimport { ContentLayoutActivatedEvent, ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelSizeChangedEvent, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../zones/toolsettings/ToolInformation\";\r\nimport { SyncToolSettingsPropertiesEventArgs, ToolSettingsManager } from \"../zones/toolsettings/ToolSettingsManager\";\r\nimport { ToolUiProvider } from \"../zones/toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentLayoutManager } from \"../content/ContentLayoutManager\";\r\n\r\n// -----------------------------------------------------------------------------\r\n// Frontstage Events\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\ninterface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// FrontstageManager class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Manager class.\r\n * @public\r\n */\r\nexport class FrontstageManager {\r\n private static _initialized = false;\r\n private static _isLoading = false;\r\n private static _activeToolId = \"\";\r\n private static _activeFrontstageDef: FrontstageDef | undefined;\r\n private static _frontstageDefs = new Map<string, FrontstageDef>();\r\n private static _modalFrontstages: ModalFrontstageItem[] = new Array<ModalFrontstageItem>();\r\n private static _nineZoneManagers = new Map<string, NineZoneManager>();\r\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\r\n private static _nineZoneSize: Size | undefined = undefined;\r\n\r\n private static _nestedFrontstages: FrontstageDef[] = new Array<FrontstageDef>();\r\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\r\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<string, ToolInformation>();\r\n\r\n /** This should only be called within FrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n // istanbul ignore else\r\n if (!FrontstageManager._toolInformationMap.get(toolId))\r\n FrontstageManager._toolInformationMap.set(toolId, new ToolInformation(toolId));\r\n }\r\n\r\n // pass on SyncToolSettingsPropertiesEvent from ToolAdmin so they are treated as DialogItemSync events\r\n private static handleSyncToolSettingsPropertiesEvent(args: SyncToolSettingsPropertiesEventArgs): void {\r\n FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.syncToolSettingsProperties(args);\r\n }\r\n\r\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\r\n private static handleReloadToolSettingsEvent(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager.activeToolSettingsProvider) {\r\n FrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\r\n }\r\n }\r\n\r\n /** Initializes the FrontstageManager */\r\n public static initialize() {\r\n if (this._initialized)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.toolAdmin) {\r\n IModelApp.toolAdmin.activeToolChanged.addListener((tool: Tool, _start: StartOrResume) => {\r\n // make sure tool settings properties are cached before creating ToolInformation\r\n ToolSettingsManager.clearToolSettingsData();\r\n // istanbul ignore else\r\n if (tool instanceof InteractiveTool)\r\n ToolSettingsManager.initializeDataForTool(tool);\r\n\r\n // if the tool data is not already cached then see if there is data to cache\r\n FrontstageManager.ensureToolInformationIsSet(tool.toolId);\r\n FrontstageManager.setActiveTool(tool);\r\n });\r\n ToolSettingsManager.onSyncToolSettingsProperties.addListener(FrontstageManager.handleSyncToolSettingsPropertiesEvent);\r\n ToolSettingsManager.onReloadToolSettingsProperties.addListener(FrontstageManager.handleReloadToolSettingsEvent);\r\n }\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(FrontstageManager._handleSelectedViewportChanged);\r\n }\r\n\r\n this._initialized = true;\r\n }\r\n\r\n /** Handles a Viewport change & sets the active view accordingly */\r\n private static _handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n // istanbul ignore else\r\n if (args.current && FrontstageManager.activeFrontstageDef && !FrontstageManager.isLoading) {\r\n FrontstageManager.activeFrontstageDef.setActiveViewFromViewport(args.current);\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return FrontstageManager._initialized; }\r\n public static set isInitialized(v: boolean) { FrontstageManager._initialized = v; }\r\n\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n public static get isLoading(): boolean { return FrontstageManager._isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return FrontstageManager._nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n FrontstageManager._nineZoneSize = size;\r\n }\r\n\r\n /** Get Frontstage Deactivated event. */\r\n public static readonly onFrontstageDeactivatedEvent = new FrontstageDeactivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageActivatedEvent = new FrontstageActivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageReadyEvent = new FrontstageReadyEvent();\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n public static readonly onModalFrontstageChangedEvent = new ModalFrontstageChangedEvent();\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n public static readonly onModalFrontstageClosedEvent = new ModalFrontstageClosedEvent();\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n public static readonly onCloseModalFrontstageRequestedEvent = new ModalFrontstageRequestedCloseEvent();\r\n\r\n /** Get Tool Activated event. */\r\n public static readonly onToolActivatedEvent = new ToolActivatedEvent();\r\n\r\n /** Get ToolSetting Reload event. */\r\n public static readonly onToolSettingsReloadEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Panel Opened event.\r\n * @internal\r\n */\r\n public static readonly onToolPanelOpenedEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Icon Changed event. */\r\n public static readonly onToolIconChangedEvent = new ToolIconChangedEvent();\r\n\r\n /** Get Content Layout Activated event. */\r\n public static readonly onContentLayoutActivatedEvent = new ContentLayoutActivatedEvent();\r\n\r\n /** Get Content Control Activated event. */\r\n public static readonly onContentControlActivatedEvent = new ContentControlActivatedEvent();\r\n\r\n /** Get Navigation Aid Activated event. */\r\n public static readonly onNavigationAidActivatedEvent = new NavigationAidActivatedEvent();\r\n\r\n /** Get Widget State Changed event. */\r\n public static readonly onWidgetStateChangedEvent = new WidgetStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onWidgetLabelChangedEvent = new UiEvent<WidgetChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetShowEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetExpandEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetDefsUpdatedEvent = new UiEvent<void>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageNineZoneStateChangedEvent = new UiEvent<FrontstageNineZoneStateChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageRestoreLayoutEvent = new UiEvent<FrontstageEventArgs>();\r\n\r\n /** Get Widget State Changed event.\r\n * @alpha\r\n */\r\n public static readonly onPanelStateChangedEvent = new PanelStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onPanelSizeChangedEvent = new PanelSizeChangedEvent();\r\n\r\n /** Get Nine-zone State Manager. */\r\n public static get NineZoneManager() {\r\n const id = FrontstageManager.activeFrontstageId;\r\n let manager = FrontstageManager._nineZoneManagers.get(id);\r\n if (!manager) {\r\n manager = new NineZoneManager();\r\n FrontstageManager._nineZoneManagers.set(id, manager);\r\n }\r\n return manager;\r\n }\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n FrontstageManager._frontstageDefs.clear();\r\n FrontstageManager._activeFrontstageDef = undefined;\r\n }\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n public static clearFrontstageProviders(): void {\r\n FrontstageManager._frontstageProviders.clear();\r\n FrontstageManager.clearFrontstageDefs();\r\n }\r\n\r\n private static getFrontstageKey(frontstageId: string) {\r\n const provider = FrontstageManager._frontstageProviders.get(frontstageId);\r\n let isIModelIndependent = false;\r\n if (provider) {\r\n isIModelIndependent = !!provider.frontstage.props.isIModelIndependent;\r\n }\r\n const imodelId = UiFramework.getIModelConnection()?.iModelId ?? \"noImodel\";\r\n const key = isIModelIndependent ? frontstageId : `[${imodelId}]${frontstageId}`;\r\n return key;\r\n }\r\n\r\n /** Add a Frontstage via a definition.\r\n * @param frontstageDef Definition of the Frontstage to add\r\n */\r\n private static addFrontstageDef(frontstageDef: FrontstageDef): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n\r\n /** @internal */\r\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\r\n // istanbul ignore next\r\n if (!iModelId)\r\n return;\r\n const keysToRemove: string[] = [];\r\n FrontstageManager._frontstageDefs.forEach((_: FrontstageDef, key: string) => {\r\n if (key.startsWith(`[${iModelId}]`))\r\n keysToRemove.push(key);\r\n });\r\n keysToRemove.forEach((keyValue) => {\r\n FrontstageManager._frontstageDefs.delete(keyValue);\r\n });\r\n }\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n public static addFrontstageProvider(frontstageProvider: FrontstageProvider): void {\r\n FrontstageManager._frontstageProviders.set(frontstageProvider.id, frontstageProvider);\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\r\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\r\n * `getFrontstageDef` to get a FrontstageDef.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\r\n const key = FrontstageManager.getFrontstageKey(id);\r\n const frontstageDef = FrontstageManager._frontstageDefs.get(key);\r\n if (frontstageDef instanceof FrontstageDef)\r\n return frontstageDef;\r\n return undefined;\r\n }\r\n\r\n private static findFrontstageProvider(id?: string): FrontstageProvider | undefined {\r\n return id ? FrontstageManager._frontstageProviders.get(id) : undefined;\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n public static async getFrontstageDef(id?: string): Promise<FrontstageDef | undefined> {\r\n if (!id)\r\n return FrontstageManager.activeFrontstageDef;\r\n\r\n let frontstageDef = FrontstageManager.findFrontstageDef(id);\r\n if (frontstageDef)\r\n return frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (id) {\r\n const frontstageProvider = FrontstageManager.findFrontstageProvider(id);\r\n if (frontstageProvider) {\r\n frontstageDef = await FrontstageDef.create(frontstageProvider);\r\n // istanbul ignore else\r\n if (frontstageDef) {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n return frontstageDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n public static get activeFrontstageDef(): FrontstageDef | undefined {\r\n return FrontstageManager._activeFrontstageDef;\r\n }\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n public static get activeFrontstageId(): string {\r\n const activeFrontstage = FrontstageManager._activeFrontstageDef;\r\n return (activeFrontstage) ? activeFrontstage.id : \"\";\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n if (FrontstageManager.findFrontstageDef(frontstageId))\r\n return true;\r\n if (FrontstageManager.findFrontstageProvider(frontstageId))\r\n return true;\r\n return false;\r\n }\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\r\n const frontstageDef = await FrontstageManager.getFrontstageDef(frontstageId);\r\n if (!frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`);\r\n return;\r\n }\r\n\r\n return FrontstageManager.setActiveFrontstageDef(frontstageDef);\r\n }\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n public static async setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void> {\r\n if (FrontstageManager._activeFrontstageDef === frontstageDef)\r\n return;\r\n\r\n FrontstageManager._isLoading = true;\r\n\r\n const deactivatedFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n if (deactivatedFrontstageDef) {\r\n await deactivatedFrontstageDef.onDeactivated();\r\n\r\n const timeTracker = deactivatedFrontstageDef.timeTracker;\r\n FrontstageManager.onFrontstageDeactivatedEvent.emit({\r\n deactivatedFrontstageDef,\r\n activatedFrontstageDef: frontstageDef,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager._activeFrontstageDef = frontstageDef;\r\n\r\n if (frontstageDef) {\r\n await frontstageDef.onActivated();\r\n\r\n FrontstageManager.onFrontstageActivatedEvent.emit({ activatedFrontstageDef: frontstageDef, deactivatedFrontstageDef });\r\n\r\n await frontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n frontstageDef.onFrontstageReady();\r\n FrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\r\n UiShowHideManager.handleFrontstageReady();\r\n\r\n frontstageDef.startDefaultTool();\r\n\r\n await frontstageDef.setActiveContent();\r\n }\r\n\r\n FrontstageManager._isLoading = false;\r\n }\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n public static async deactivateFrontstageDef(): Promise<void> {\r\n await this.setActiveFrontstageDef(undefined);\r\n }\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n public static get activeToolId(): string {\r\n return FrontstageManager._activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n FrontstageManager._activeToolId = toolId;\r\n const toolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\r\n if (toolSettingsProvider)\r\n toolSettingsProvider.initialize();\r\n FrontstageManager.onToolActivatedEvent.emit({ toolId });\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n FrontstageManager.setActiveToolId(tool.toolId);\r\n FrontstageManager.onToolIconChangedEvent.emit({ iconSpec: tool.iconSpec });\r\n }\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n public static get activeToolInformation(): ToolInformation | undefined {\r\n return FrontstageManager._toolInformationMap.get(FrontstageManager.activeToolId);\r\n }\r\n\r\n /** Gets the Tool Setting React node of the active tool.\r\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\r\n * @internal\r\n */\r\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\r\n const activeToolInformation = FrontstageManager.activeToolInformation;\r\n return (activeToolInformation) ? activeToolInformation.toolUiProvider : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentLayoutDef Content layout to make active\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveLayout(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n FrontstageManager._isLoading = false;\r\n\r\n activeFrontstageDef.setContentLayoutAndGroup(contentLayoutDef, contentGroup);\r\n FrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: contentLayoutDef, contentGroup });\r\n\r\n await activeFrontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n\r\n await activeFrontstageDef.setActiveContent();\r\n }\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\r\n const contentLayoutDef = ContentLayoutManager.getLayoutForGroup(contentGroup);\r\n if (contentLayoutDef) {\r\n await FrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\r\n }\r\n }\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n public static openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n FrontstageManager.pushModalFrontstage(modalFrontstage);\r\n }\r\n\r\n private static pushModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n const timeTracker = new TimeTracker();\r\n timeTracker.startTiming();\r\n const frontstageItem: ModalFrontstageItem = { modalFrontstage, timeTracker };\r\n FrontstageManager._modalFrontstages.push(frontstageItem);\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n public static closeModalFrontstage(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const topMostStageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\r\n FrontstageManager.onCloseModalFrontstageRequestedEvent.emit(\r\n {\r\n modalFrontstage: topMostStageItem.modalFrontstage,\r\n stageCloseFunc: FrontstageManager.popModalFrontstage,\r\n });\r\n else\r\n FrontstageManager.popModalFrontstage();\r\n }\r\n }\r\n\r\n private static popModalFrontstage(): void {\r\n const frontstageItem = FrontstageManager._modalFrontstages.pop();\r\n // istanbul ignore else\r\n if (frontstageItem) {\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n const timeTracker = frontstageItem.timeTracker;\r\n timeTracker.stopTiming();\r\n FrontstageManager.onModalFrontstageClosedEvent.emit({\r\n modalFrontstage,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n\r\n UiShowHideManager.handleFrontstageReady();\r\n }\r\n\r\n private static emitModalFrontstageChangedEvent(): void {\r\n FrontstageManager.onModalFrontstageChangedEvent.emit({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const frontstageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n return modalFrontstage;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n public static get modalFrontstageCount(): number {\r\n return FrontstageManager._modalFrontstages.length;\r\n }\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n public static setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection) {\r\n FrontstageManager.onNavigationAidActivatedEvent.emit({ navigationAidId, iModelConnection });\r\n }\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\r\n const widgetDef = FrontstageManager.findWidget(widgetId);\r\n if (widgetDef) {\r\n widgetDef.setWidgetState(state);\r\n return true;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `setWidgetState: Could not find Widget with id of '${widgetId}'`);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n public static findWidget(widgetId: string): WidgetDef | undefined {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef)\r\n return activeFrontstageDef.findWidgetDef(widgetId);\r\n\r\n return undefined;\r\n }\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n public static async openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void> {\r\n if (FrontstageManager.nestedFrontstageCount === 0)\r\n FrontstageManager._activePrimaryFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n\r\n FrontstageManager.pushNestedFrontstage(nestedFrontstage);\r\n\r\n await FrontstageManager.setActiveFrontstageDef(nestedFrontstage);\r\n }\r\n\r\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\r\n FrontstageManager._nestedFrontstages.push(nestedFrontstage);\r\n }\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n public static async closeNestedFrontstage(): Promise<void> {\r\n FrontstageManager.popNestedFrontstage();\r\n\r\n if (FrontstageManager.nestedFrontstageCount > 0) {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager.activeNestedFrontstage);\r\n } else {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager._activePrimaryFrontstageDef);\r\n FrontstageManager._activePrimaryFrontstageDef = undefined;\r\n }\r\n }\r\n\r\n private static popNestedFrontstage(): void {\r\n FrontstageManager._nestedFrontstages.pop();\r\n }\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\r\n // istanbul ignore else\r\n if (FrontstageManager._nestedFrontstages.length > 0)\r\n return FrontstageManager._nestedFrontstages[FrontstageManager._nestedFrontstages.length - 1];\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n public static get nestedFrontstageCount(): number {\r\n return FrontstageManager._nestedFrontstages.length;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"FrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, InteractiveTool, SelectedViewportChangedArgs, StartOrResume, Tool } from \"@itwin/core-frontend\";\r\nimport { WidgetState } from \"@itwin/appui-abstract\";\r\nimport { Size, UiEvent } from \"@itwin/core-react\";\r\nimport { NineZoneManager } from \"@itwin/appui-layout-react\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentGroup } from \"../content/ContentGroup\";\r\nimport { ContentLayoutActivatedEvent, ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelSizeChangedEvent, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../zones/toolsettings/ToolInformation\";\r\nimport { SyncToolSettingsPropertiesEventArgs, ToolSettingsManager } from \"../zones/toolsettings/ToolSettingsManager\";\r\nimport { ToolUiProvider } from \"../zones/toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentLayoutManager } from \"../content/ContentLayoutManager\";\r\n\r\n// -----------------------------------------------------------------------------\r\n// Frontstage Events\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\ninterface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// FrontstageManager class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Manager class.\r\n * @public\r\n */\r\nexport class FrontstageManager {\r\n private static _initialized = false;\r\n private static _isLoading = false;\r\n private static _activeToolId = \"\";\r\n private static _activeFrontstageDef: FrontstageDef | undefined;\r\n private static _frontstageDefs = new Map<string, FrontstageDef>();\r\n private static _modalFrontstages: ModalFrontstageItem[] = new Array<ModalFrontstageItem>();\r\n private static _nineZoneManagers = new Map<string, NineZoneManager>();\r\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\r\n private static _nineZoneSize: Size | undefined = undefined;\r\n\r\n private static _nestedFrontstages: FrontstageDef[] = new Array<FrontstageDef>();\r\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\r\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<string, ToolInformation>();\r\n\r\n /** This should only be called within FrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n // istanbul ignore else\r\n if (!FrontstageManager._toolInformationMap.get(toolId))\r\n FrontstageManager._toolInformationMap.set(toolId, new ToolInformation(toolId));\r\n }\r\n\r\n // pass on SyncToolSettingsPropertiesEvent from ToolAdmin so they are treated as DialogItemSync events\r\n private static handleSyncToolSettingsPropertiesEvent(args: SyncToolSettingsPropertiesEventArgs): void {\r\n FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.syncToolSettingsProperties(args);\r\n }\r\n\r\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\r\n private static handleReloadToolSettingsEvent(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager.activeToolSettingsProvider) {\r\n FrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\r\n }\r\n }\r\n\r\n /** Initializes the FrontstageManager */\r\n public static initialize() {\r\n if (this._initialized)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.toolAdmin) {\r\n IModelApp.toolAdmin.activeToolChanged.addListener((tool: Tool, _start: StartOrResume) => {\r\n // make sure tool settings properties are cached before creating ToolInformation\r\n ToolSettingsManager.clearToolSettingsData();\r\n // istanbul ignore else\r\n if (tool instanceof InteractiveTool)\r\n ToolSettingsManager.initializeDataForTool(tool);\r\n\r\n // if the tool data is not already cached then see if there is data to cache\r\n FrontstageManager.ensureToolInformationIsSet(tool.toolId);\r\n FrontstageManager.setActiveTool(tool);\r\n });\r\n ToolSettingsManager.onSyncToolSettingsProperties.addListener(FrontstageManager.handleSyncToolSettingsPropertiesEvent);\r\n ToolSettingsManager.onReloadToolSettingsProperties.addListener(FrontstageManager.handleReloadToolSettingsEvent);\r\n }\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(FrontstageManager._handleSelectedViewportChanged);\r\n }\r\n\r\n this._initialized = true;\r\n }\r\n\r\n /** Handles a Viewport change & sets the active view accordingly */\r\n private static _handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n // istanbul ignore else\r\n if (args.current && FrontstageManager.activeFrontstageDef && !FrontstageManager.isLoading) {\r\n FrontstageManager.activeFrontstageDef.setActiveViewFromViewport(args.current);\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return FrontstageManager._initialized; }\r\n public static set isInitialized(v: boolean) { FrontstageManager._initialized = v; }\r\n\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n public static get isLoading(): boolean { return FrontstageManager._isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return FrontstageManager._nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n FrontstageManager._nineZoneSize = size;\r\n }\r\n\r\n /** Get Frontstage Deactivated event. */\r\n public static readonly onFrontstageDeactivatedEvent = new FrontstageDeactivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageActivatedEvent = new FrontstageActivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageReadyEvent = new FrontstageReadyEvent();\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n public static readonly onModalFrontstageChangedEvent = new ModalFrontstageChangedEvent();\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n public static readonly onModalFrontstageClosedEvent = new ModalFrontstageClosedEvent();\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n public static readonly onCloseModalFrontstageRequestedEvent = new ModalFrontstageRequestedCloseEvent();\r\n\r\n /** Get Tool Activated event. */\r\n public static readonly onToolActivatedEvent = new ToolActivatedEvent();\r\n\r\n /** Get ToolSetting Reload event. */\r\n public static readonly onToolSettingsReloadEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Panel Opened event.\r\n * @internal\r\n */\r\n public static readonly onToolPanelOpenedEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Icon Changed event. */\r\n public static readonly onToolIconChangedEvent = new ToolIconChangedEvent();\r\n\r\n /** Get Content Layout Activated event. */\r\n public static readonly onContentLayoutActivatedEvent = new ContentLayoutActivatedEvent();\r\n\r\n /** Get Content Control Activated event. */\r\n public static readonly onContentControlActivatedEvent = new ContentControlActivatedEvent();\r\n\r\n /** Get Navigation Aid Activated event. */\r\n public static readonly onNavigationAidActivatedEvent = new NavigationAidActivatedEvent();\r\n\r\n /** Get Widget State Changed event. */\r\n public static readonly onWidgetStateChangedEvent = new WidgetStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onWidgetLabelChangedEvent = new UiEvent<WidgetChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetShowEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetExpandEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetDefsUpdatedEvent = new UiEvent<void>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageNineZoneStateChangedEvent = new UiEvent<FrontstageNineZoneStateChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageRestoreLayoutEvent = new UiEvent<FrontstageEventArgs>();\r\n\r\n /** Get Widget State Changed event.\r\n * @alpha\r\n */\r\n public static readonly onPanelStateChangedEvent = new PanelStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onPanelSizeChangedEvent = new PanelSizeChangedEvent();\r\n\r\n /** Get Nine-zone State Manager. */\r\n public static get NineZoneManager() {\r\n const id = FrontstageManager.activeFrontstageId;\r\n let manager = FrontstageManager._nineZoneManagers.get(id);\r\n if (!manager) {\r\n manager = new NineZoneManager();\r\n FrontstageManager._nineZoneManagers.set(id, manager);\r\n }\r\n return manager;\r\n }\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n FrontstageManager._frontstageDefs.clear();\r\n FrontstageManager._activeFrontstageDef = undefined;\r\n }\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n public static clearFrontstageProviders(): void {\r\n FrontstageManager._frontstageProviders.clear();\r\n FrontstageManager.clearFrontstageDefs();\r\n }\r\n\r\n private static getFrontstageKey(frontstageId: string) {\r\n const provider = FrontstageManager._frontstageProviders.get(frontstageId);\r\n let isIModelIndependent = false;\r\n if (provider) {\r\n isIModelIndependent = !!provider.frontstage.props.isIModelIndependent;\r\n }\r\n const imodelId = UiFramework.getIModelConnection()?.iModelId ?? \"noImodel\";\r\n const key = isIModelIndependent ? frontstageId : `[${imodelId}]${frontstageId}`;\r\n return key;\r\n }\r\n\r\n /** Add a Frontstage via a definition.\r\n * @param frontstageDef Definition of the Frontstage to add\r\n */\r\n private static addFrontstageDef(frontstageDef: FrontstageDef): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n\r\n /** @internal */\r\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\r\n // istanbul ignore next\r\n if (!iModelId)\r\n return;\r\n const keysToRemove: string[] = [];\r\n FrontstageManager._frontstageDefs.forEach((_: FrontstageDef, key: string) => {\r\n if (key.startsWith(`[${iModelId}]`))\r\n keysToRemove.push(key);\r\n });\r\n keysToRemove.forEach((keyValue) => {\r\n FrontstageManager._frontstageDefs.delete(keyValue);\r\n });\r\n }\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n public static addFrontstageProvider(frontstageProvider: FrontstageProvider): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageProvider.id);\r\n key && FrontstageManager._frontstageDefs.delete(key);\r\n FrontstageManager._frontstageProviders.set(frontstageProvider.id, frontstageProvider);\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\r\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\r\n * `getFrontstageDef` to get a FrontstageDef.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\r\n const key = FrontstageManager.getFrontstageKey(id);\r\n const frontstageDef = FrontstageManager._frontstageDefs.get(key);\r\n if (frontstageDef instanceof FrontstageDef)\r\n return frontstageDef;\r\n return undefined;\r\n }\r\n\r\n private static findFrontstageProvider(id?: string): FrontstageProvider | undefined {\r\n return id ? FrontstageManager._frontstageProviders.get(id) : undefined;\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n public static async getFrontstageDef(id?: string): Promise<FrontstageDef | undefined> {\r\n if (!id)\r\n return FrontstageManager.activeFrontstageDef;\r\n\r\n let frontstageDef = FrontstageManager.findFrontstageDef(id);\r\n if (frontstageDef)\r\n return frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (id) {\r\n const frontstageProvider = FrontstageManager.findFrontstageProvider(id);\r\n if (frontstageProvider) {\r\n frontstageDef = await FrontstageDef.create(frontstageProvider);\r\n // istanbul ignore else\r\n if (frontstageDef) {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n return frontstageDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n public static get activeFrontstageDef(): FrontstageDef | undefined {\r\n return FrontstageManager._activeFrontstageDef;\r\n }\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n public static get activeFrontstageId(): string {\r\n const activeFrontstage = FrontstageManager._activeFrontstageDef;\r\n return (activeFrontstage) ? activeFrontstage.id : \"\";\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n if (FrontstageManager.findFrontstageDef(frontstageId))\r\n return true;\r\n if (FrontstageManager.findFrontstageProvider(frontstageId))\r\n return true;\r\n return false;\r\n }\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\r\n const frontstageDef = await FrontstageManager.getFrontstageDef(frontstageId);\r\n if (!frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`);\r\n return;\r\n }\r\n\r\n return FrontstageManager.setActiveFrontstageDef(frontstageDef);\r\n }\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n public static async setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void> {\r\n if (FrontstageManager._activeFrontstageDef === frontstageDef)\r\n return;\r\n\r\n FrontstageManager._isLoading = true;\r\n\r\n const deactivatedFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n if (deactivatedFrontstageDef) {\r\n await deactivatedFrontstageDef.onDeactivated();\r\n\r\n const timeTracker = deactivatedFrontstageDef.timeTracker;\r\n FrontstageManager.onFrontstageDeactivatedEvent.emit({\r\n deactivatedFrontstageDef,\r\n activatedFrontstageDef: frontstageDef,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager._activeFrontstageDef = frontstageDef;\r\n\r\n if (frontstageDef) {\r\n await frontstageDef.onActivated();\r\n\r\n FrontstageManager.onFrontstageActivatedEvent.emit({ activatedFrontstageDef: frontstageDef, deactivatedFrontstageDef });\r\n\r\n await frontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n frontstageDef.onFrontstageReady();\r\n FrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\r\n UiShowHideManager.handleFrontstageReady();\r\n\r\n frontstageDef.startDefaultTool();\r\n\r\n await frontstageDef.setActiveContent();\r\n }\r\n\r\n FrontstageManager._isLoading = false;\r\n }\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n public static async deactivateFrontstageDef(): Promise<void> {\r\n await this.setActiveFrontstageDef(undefined);\r\n }\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n public static get activeToolId(): string {\r\n return FrontstageManager._activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n FrontstageManager._activeToolId = toolId;\r\n const toolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\r\n if (toolSettingsProvider)\r\n toolSettingsProvider.initialize();\r\n FrontstageManager.onToolActivatedEvent.emit({ toolId });\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n FrontstageManager.setActiveToolId(tool.toolId);\r\n FrontstageManager.onToolIconChangedEvent.emit({ iconSpec: tool.iconSpec });\r\n }\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n public static get activeToolInformation(): ToolInformation | undefined {\r\n return FrontstageManager._toolInformationMap.get(FrontstageManager.activeToolId);\r\n }\r\n\r\n /** Gets the Tool Setting React node of the active tool.\r\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\r\n * @internal\r\n */\r\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\r\n const activeToolInformation = FrontstageManager.activeToolInformation;\r\n return (activeToolInformation) ? activeToolInformation.toolUiProvider : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentLayoutDef Content layout to make active\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveLayout(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n FrontstageManager._isLoading = false;\r\n\r\n activeFrontstageDef.setContentLayoutAndGroup(contentLayoutDef, contentGroup);\r\n FrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: contentLayoutDef, contentGroup });\r\n\r\n await activeFrontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n\r\n await activeFrontstageDef.setActiveContent();\r\n }\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\r\n const contentLayoutDef = ContentLayoutManager.getLayoutForGroup(contentGroup);\r\n if (contentLayoutDef) {\r\n await FrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\r\n }\r\n }\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n public static openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n FrontstageManager.pushModalFrontstage(modalFrontstage);\r\n }\r\n\r\n private static pushModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n const timeTracker = new TimeTracker();\r\n timeTracker.startTiming();\r\n const frontstageItem: ModalFrontstageItem = { modalFrontstage, timeTracker };\r\n FrontstageManager._modalFrontstages.push(frontstageItem);\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n public static closeModalFrontstage(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const topMostStageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\r\n FrontstageManager.onCloseModalFrontstageRequestedEvent.emit(\r\n {\r\n modalFrontstage: topMostStageItem.modalFrontstage,\r\n stageCloseFunc: FrontstageManager.popModalFrontstage,\r\n });\r\n else\r\n FrontstageManager.popModalFrontstage();\r\n }\r\n }\r\n\r\n private static popModalFrontstage(): void {\r\n const frontstageItem = FrontstageManager._modalFrontstages.pop();\r\n // istanbul ignore else\r\n if (frontstageItem) {\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n const timeTracker = frontstageItem.timeTracker;\r\n timeTracker.stopTiming();\r\n FrontstageManager.onModalFrontstageClosedEvent.emit({\r\n modalFrontstage,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n\r\n UiShowHideManager.handleFrontstageReady();\r\n }\r\n\r\n private static emitModalFrontstageChangedEvent(): void {\r\n FrontstageManager.onModalFrontstageChangedEvent.emit({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const frontstageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n return modalFrontstage;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n public static get modalFrontstageCount(): number {\r\n return FrontstageManager._modalFrontstages.length;\r\n }\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n public static setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection) {\r\n FrontstageManager.onNavigationAidActivatedEvent.emit({ navigationAidId, iModelConnection });\r\n }\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\r\n const widgetDef = FrontstageManager.findWidget(widgetId);\r\n if (widgetDef) {\r\n widgetDef.setWidgetState(state);\r\n return true;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `setWidgetState: Could not find Widget with id of '${widgetId}'`);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n public static findWidget(widgetId: string): WidgetDef | undefined {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef)\r\n return activeFrontstageDef.findWidgetDef(widgetId);\r\n\r\n return undefined;\r\n }\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n public static async openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void> {\r\n if (FrontstageManager.nestedFrontstageCount === 0)\r\n FrontstageManager._activePrimaryFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n\r\n FrontstageManager.pushNestedFrontstage(nestedFrontstage);\r\n\r\n await FrontstageManager.setActiveFrontstageDef(nestedFrontstage);\r\n }\r\n\r\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\r\n FrontstageManager._nestedFrontstages.push(nestedFrontstage);\r\n }\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n public static async closeNestedFrontstage(): Promise<void> {\r\n FrontstageManager.popNestedFrontstage();\r\n\r\n if (FrontstageManager.nestedFrontstageCount > 0) {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager.activeNestedFrontstage);\r\n } else {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager._activePrimaryFrontstageDef);\r\n FrontstageManager._activePrimaryFrontstageDef = undefined;\r\n }\r\n }\r\n\r\n private static popNestedFrontstage(): void {\r\n FrontstageManager._nestedFrontstages.pop();\r\n }\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\r\n // istanbul ignore else\r\n if (FrontstageManager._nestedFrontstages.length > 0)\r\n return FrontstageManager._nestedFrontstages[FrontstageManager._nestedFrontstages.length - 1];\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n public static get nestedFrontstageCount(): number {\r\n return FrontstageManager._nestedFrontstages.length;\r\n }\r\n\r\n}\r\n"]}
@@ -11,7 +11,7 @@ exports.SettingsModalFrontstage = void 0;
11
11
  require("./ModalSettingsStage.scss");
12
12
  const React = require("react");
13
13
  const appui_abstract_1 = require("@itwin/appui-abstract");
14
- const settings_svg_sprite_1 = require("@bentley/icons-generic/icons/settings.svg?sprite");
14
+ const settings_svg_1 = require("@bentley/icons-generic/icons/settings.svg");
15
15
  const core_frontend_1 = require("@itwin/core-frontend");
16
16
  const core_bentley_1 = require("@itwin/core-bentley");
17
17
  const core_react_1 = require("@itwin/core-react");
@@ -58,7 +58,7 @@ class SettingsModalFrontstage {
58
58
  return (React.createElement(ModalSettingsStage, { initialSettingsTabId: this.initialSettingsTabId }));
59
59
  }
60
60
  static getBackstageActionItem(groupPriority, itemPriority) {
61
- return appui_abstract_1.BackstageItemUtilities.createActionItem(SettingsModalFrontstage.id, groupPriority, itemPriority, () => FrontstageManager_1.FrontstageManager.openModalFrontstage(new SettingsModalFrontstage()), UiFramework_1.UiFramework.translate("settings.settingsStageLabel"), undefined, appui_abstract_1.IconSpecUtilities.createSvgIconSpec(settings_svg_sprite_1.default), { isHidden: SettingsModalFrontstage.noSettingsAvailable() });
61
+ return appui_abstract_1.BackstageItemUtilities.createActionItem(SettingsModalFrontstage.id, groupPriority, itemPriority, () => FrontstageManager_1.FrontstageManager.openModalFrontstage(new SettingsModalFrontstage()), UiFramework_1.UiFramework.translate("settings.settingsStageLabel"), undefined, appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(settings_svg_1.default), { isHidden: SettingsModalFrontstage.noSettingsAvailable() });
62
62
  }
63
63
  static showSettingsStage(initialSettingsTab) {
64
64
  if (UiFramework_1.UiFramework.settingsManager.providers.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"ModalSettingsStage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/ModalSettingsStage.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 Frontstage\r\n */\r\n\r\nimport \"./ModalSettingsStage.scss\";\r\nimport * as React from \"react\";\r\nimport { BackstageItemUtilities, ConditionalBooleanValue, IconSpecUtilities, StageUsage } from \"@itwin/appui-abstract\";\r\nimport settingsIconSvg from \"@bentley/icons-generic/icons/settings.svg?sprite\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { Centered, SettingsContainer } from \"@itwin/core-react\";\r\nimport { FrontstageManager, ModalFrontstageInfo, ModalFrontstageRequestedCloseEventArgs } from \"./FrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\n\r\nfunction ModalSettingsStage({ initialSettingsTabId }: { initialSettingsTabId?: string }) {\r\n const id = FrontstageManager.activeFrontstageDef?.id ?? \"none\";\r\n const stageUsage = FrontstageManager.activeFrontstageDef?.usage ?? StageUsage.General;\r\n const tabEntries = UiFramework.settingsManager.getSettingEntries(id, stageUsage);\r\n const noSettingsAvailableLabel = React.useRef(UiFramework.translate(\"settings.noSettingsAvailable\"));\r\n\r\n const currentSettingsTab = React.useCallback(() => {\r\n const categoryToFind = initialSettingsTabId ? initialSettingsTabId.toLowerCase() : tabEntries[0].tabId.toLowerCase();\r\n let foundTab = tabEntries.find((entry) => entry.tabId.toLowerCase() === categoryToFind);\r\n if (!foundTab)\r\n foundTab = tabEntries.find((entry) => entry.label.toLowerCase() === categoryToFind);\r\n return foundTab;\r\n }, [initialSettingsTabId, tabEntries]);\r\n\r\n React.useEffect(() => {\r\n const handleFrontstageCloseRequested = ({ modalFrontstage, stageCloseFunc }: ModalFrontstageRequestedCloseEventArgs) => {\r\n // istanbul ignore else\r\n if (modalFrontstage instanceof SettingsModalFrontstage && stageCloseFunc) {\r\n UiFramework.settingsManager.closeSettingsContainer(stageCloseFunc);\r\n }\r\n };\r\n return FrontstageManager.onCloseModalFrontstageRequestedEvent.addListener(handleFrontstageCloseRequested);\r\n }, [tabEntries]);\r\n\r\n return (\r\n <div className=\"uifw-settings-container\">\r\n {tabEntries.length ?\r\n <SettingsContainer tabs={tabEntries} currentSettingsTab={currentSettingsTab()} settingsManager={UiFramework.settingsManager} /> :\r\n <Centered>{noSettingsAvailableLabel.current}</Centered>\r\n }\r\n </div>\r\n );\r\n}\r\n\r\n/** Modal frontstage displaying and editing settings from registered settings providers. See [SettingsManager]($core-react)\r\n * and [SettingsContainer]($core-react).\r\n * @beta\r\n */\r\nexport class SettingsModalFrontstage implements ModalFrontstageInfo {\r\n public static id = \"appui-react.modalSettingsStage\";\r\n public title: string = UiFramework.translate(\"settings.settingsStageLabel\");\r\n constructor(public initialSettingsTabId?: string) { }\r\n public notifyCloseRequest = true;\r\n public get content(): React.ReactNode {\r\n return (<ModalSettingsStage initialSettingsTabId={this.initialSettingsTabId} />);\r\n }\r\n private static noSettingsAvailable = () => new ConditionalBooleanValue(() => 0 === UiFramework.settingsManager.providers.length, [SyncUiEventId.SettingsProvidersChanged]);\r\n\r\n public static getBackstageActionItem(groupPriority: number, itemPriority: number) {\r\n return BackstageItemUtilities.createActionItem(SettingsModalFrontstage.id, groupPriority, itemPriority, () => FrontstageManager.openModalFrontstage(new SettingsModalFrontstage()),\r\n UiFramework.translate(\"settings.settingsStageLabel\"),\r\n undefined, IconSpecUtilities.createSvgIconSpec(settingsIconSvg), { isHidden: SettingsModalFrontstage.noSettingsAvailable() });\r\n }\r\n\r\n public static showSettingsStage(initialSettingsTab?: string) {\r\n if (UiFramework.settingsManager.providers.length) {\r\n // Check to see if it is already open\r\n // istanbul ignore else\r\n if (FrontstageManager.activeModalFrontstage && FrontstageManager.activeModalFrontstage instanceof SettingsModalFrontstage) {\r\n if (initialSettingsTab) {\r\n UiFramework.settingsManager.activateSettingsTab(initialSettingsTab);\r\n return;\r\n }\r\n }\r\n FrontstageManager.openModalFrontstage(new SettingsModalFrontstage(initialSettingsTab));\r\n } else {\r\n const briefMessage = UiFramework.translate(\"settings.noSettingsAvailable\");\r\n const detailedMessage = UiFramework.translate(\"settings.noSettingsProvidersRegistered\");\r\n const info = new NotifyMessageDetails(OutputMessagePriority.Info, briefMessage, detailedMessage, OutputMessageType.Toast);\r\n IModelApp.notifications.outputMessage(info);\r\n Logger.logInfo(UiFramework.loggerCategory(this), detailedMessage);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ModalSettingsStage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/ModalSettingsStage.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 Frontstage\r\n */\r\n\r\nimport \"./ModalSettingsStage.scss\";\r\nimport * as React from \"react\";\r\nimport { BackstageItemUtilities, ConditionalBooleanValue, IconSpecUtilities, StageUsage } from \"@itwin/appui-abstract\";\r\nimport settingsIconSvg from \"@bentley/icons-generic/icons/settings.svg\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { Centered, SettingsContainer } from \"@itwin/core-react\";\r\nimport { FrontstageManager, ModalFrontstageInfo, ModalFrontstageRequestedCloseEventArgs } from \"./FrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\n\r\nfunction ModalSettingsStage({ initialSettingsTabId }: { initialSettingsTabId?: string }) {\r\n const id = FrontstageManager.activeFrontstageDef?.id ?? \"none\";\r\n const stageUsage = FrontstageManager.activeFrontstageDef?.usage ?? StageUsage.General;\r\n const tabEntries = UiFramework.settingsManager.getSettingEntries(id, stageUsage);\r\n const noSettingsAvailableLabel = React.useRef(UiFramework.translate(\"settings.noSettingsAvailable\"));\r\n\r\n const currentSettingsTab = React.useCallback(() => {\r\n const categoryToFind = initialSettingsTabId ? initialSettingsTabId.toLowerCase() : tabEntries[0].tabId.toLowerCase();\r\n let foundTab = tabEntries.find((entry) => entry.tabId.toLowerCase() === categoryToFind);\r\n if (!foundTab)\r\n foundTab = tabEntries.find((entry) => entry.label.toLowerCase() === categoryToFind);\r\n return foundTab;\r\n }, [initialSettingsTabId, tabEntries]);\r\n\r\n React.useEffect(() => {\r\n const handleFrontstageCloseRequested = ({ modalFrontstage, stageCloseFunc }: ModalFrontstageRequestedCloseEventArgs) => {\r\n // istanbul ignore else\r\n if (modalFrontstage instanceof SettingsModalFrontstage && stageCloseFunc) {\r\n UiFramework.settingsManager.closeSettingsContainer(stageCloseFunc);\r\n }\r\n };\r\n return FrontstageManager.onCloseModalFrontstageRequestedEvent.addListener(handleFrontstageCloseRequested);\r\n }, [tabEntries]);\r\n\r\n return (\r\n <div className=\"uifw-settings-container\">\r\n {tabEntries.length ?\r\n <SettingsContainer tabs={tabEntries} currentSettingsTab={currentSettingsTab()} settingsManager={UiFramework.settingsManager} /> :\r\n <Centered>{noSettingsAvailableLabel.current}</Centered>\r\n }\r\n </div>\r\n );\r\n}\r\n\r\n/** Modal frontstage displaying and editing settings from registered settings providers. See [SettingsManager]($core-react)\r\n * and [SettingsContainer]($core-react).\r\n * @beta\r\n */\r\nexport class SettingsModalFrontstage implements ModalFrontstageInfo {\r\n public static id = \"appui-react.modalSettingsStage\";\r\n public title: string = UiFramework.translate(\"settings.settingsStageLabel\");\r\n constructor(public initialSettingsTabId?: string) { }\r\n public notifyCloseRequest = true;\r\n public get content(): React.ReactNode {\r\n return (<ModalSettingsStage initialSettingsTabId={this.initialSettingsTabId} />);\r\n }\r\n private static noSettingsAvailable = () => new ConditionalBooleanValue(() => 0 === UiFramework.settingsManager.providers.length, [SyncUiEventId.SettingsProvidersChanged]);\r\n\r\n public static getBackstageActionItem(groupPriority: number, itemPriority: number) {\r\n return BackstageItemUtilities.createActionItem(SettingsModalFrontstage.id, groupPriority, itemPriority, () => FrontstageManager.openModalFrontstage(new SettingsModalFrontstage()),\r\n UiFramework.translate(\"settings.settingsStageLabel\"),\r\n undefined, IconSpecUtilities.createWebComponentIconSpec(settingsIconSvg), { isHidden: SettingsModalFrontstage.noSettingsAvailable() });\r\n }\r\n\r\n public static showSettingsStage(initialSettingsTab?: string) {\r\n if (UiFramework.settingsManager.providers.length) {\r\n // Check to see if it is already open\r\n // istanbul ignore else\r\n if (FrontstageManager.activeModalFrontstage && FrontstageManager.activeModalFrontstage instanceof SettingsModalFrontstage) {\r\n if (initialSettingsTab) {\r\n UiFramework.settingsManager.activateSettingsTab(initialSettingsTab);\r\n return;\r\n }\r\n }\r\n FrontstageManager.openModalFrontstage(new SettingsModalFrontstage(initialSettingsTab));\r\n } else {\r\n const briefMessage = UiFramework.translate(\"settings.noSettingsAvailable\");\r\n const detailedMessage = UiFramework.translate(\"settings.noSettingsProvidersRegistered\");\r\n const info = new NotifyMessageDetails(OutputMessagePriority.Info, briefMessage, detailedMessage, OutputMessageType.Toast);\r\n IModelApp.notifications.outputMessage(info);\r\n Logger.logInfo(UiFramework.loggerCategory(this), detailedMessage);\r\n }\r\n }\r\n}\r\n"]}
@@ -7,6 +7,7 @@ import { StagePanelProps } from "../stagepanels/StagePanel";
7
7
  import { ContentGroupProps, ContentGroupProvider } from "../content/ContentGroup";
8
8
  import { FrontstageProvider } from "./FrontstageProvider";
9
9
  import { FrontstageProps } from "./Frontstage";
10
+ import { ToolItemDef } from "../shared/ToolItemDef";
10
11
  /** Properties of a [[WidgetPanelProps]] component
11
12
  * @public
12
13
  */
@@ -54,6 +55,11 @@ export interface StandardFrontstageProps {
54
55
  * supports. See [[DefaultContentToolsAppData]] for an example.
55
56
  */
56
57
  applicationData?: any;
58
+ /** The defaultTool is is started when then frontstage loads and whenever any other tools exit.
59
+ * Most of the time, this is the Element Selection Tool (CoreTools.selectElementCommand).
60
+ * Your app can specify its own tool or another core tool as default with this property.
61
+ */
62
+ defaultTool?: ToolItemDef;
57
63
  }
58
64
  /**
59
65
  * FrontstageProvider that provides an "empty" stage. All tool buttons, statusbar items, and widgets must
@@ -1 +1 @@
1
- {"version":3,"file":"StandardFrontstageProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StandardFrontstageProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAc,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAgB,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAS3D;;GAEG;AACH,oBAAY,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC,CAAC;AAE5H;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IAEtC,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,iBAAiB,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;4EACwE;IACxE,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC;2EACuE;IACvE,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC;sEACkE;IAClE,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC;sEACkE;IAClE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,kBAAkB;IACpD,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,uBAAuB;IAIlD,IAAW,EAAE,IAAI,MAAM,CAEtB;IAED,IAAW,UAAU,IAAI,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAwF3D;CACF"}
1
+ {"version":3,"file":"StandardFrontstageProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StandardFrontstageProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAc,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAgB,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAQ3D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;GAEG;AACH,oBAAY,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC,CAAC;AAE5H;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IAEtC,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,iBAAiB,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;4EACwE;IACxE,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC;2EACuE;IACvE,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC;sEACkE;IAClE,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC;sEACkE;IAClE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,kBAAkB;IACpD,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,uBAAuB;IAIlD,IAAW,EAAE,IAAI,MAAM,CAEtB;IAED,IAAW,UAAU,IAAI,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAwF3D;CACF"}
@@ -34,9 +34,9 @@ class StandardFrontstageProvider extends FrontstageProvider_1.FrontstageProvider
34
34
  return this.props.id;
35
35
  }
36
36
  get frontstage() {
37
- var _a;
37
+ var _a, _b;
38
38
  const contentGroup = (this.props.contentGroupProps instanceof ContentGroup_1.ContentGroupProvider) ? this.props.contentGroupProps : new ContentGroup_1.ContentGroup(this.props.contentGroupProps);
39
- return (React.createElement(Frontstage_1.Frontstage, { key: this.props.id, id: this.props.id, version: (_a = this.props.version) !== null && _a !== void 0 ? _a : 1.0, defaultTool: CoreToolDefinitions_1.CoreTools.selectElementCommand, contentGroup: contentGroup, isInFooterMode: true, usage: this.props.usage, applicationData: this.props.applicationData, contentManipulationTools: React.createElement(Zone_1.Zone, { widgets: [
39
+ return (React.createElement(Frontstage_1.Frontstage, { key: this.props.id, id: this.props.id, version: (_a = this.props.version) !== null && _a !== void 0 ? _a : 1.0, defaultTool: (_b = this.props.defaultTool) !== null && _b !== void 0 ? _b : CoreToolDefinitions_1.CoreTools.selectElementCommand, contentGroup: contentGroup, isInFooterMode: true, usage: this.props.usage, applicationData: this.props.applicationData, contentManipulationTools: React.createElement(Zone_1.Zone, { widgets: [
40
40
  React.createElement(Widget_1.Widget, { id: `${this.props.id}-contentManipulationTools`, key: `${this.props.id}-contentManipulationTools`, isFreeform: true, element: React.createElement(ContentToolWidgetComposer_1.ContentToolWidgetComposer, { cornerButton: this.props.cornerButton }) }),
41
41
  ] }), viewNavigationTools: React.createElement(Zone_1.Zone, { widgets: [
42
42
  React.createElement(Widget_1.Widget, { id: `${this.props.id}-viewNavigationTools`, key: `${this.props.id}-viewNavigationTools`, isFreeform: true, element: React.createElement(ViewToolWidgetComposer_1.ViewToolWidgetComposer, { hideNavigationAid: this.props.hideNavigationAid }) }),
@@ -1 +1 @@
1
- {"version":3,"file":"StandardFrontstageProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StandardFrontstageProvider.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 Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { StageUsage } from \"@itwin/appui-abstract\";\r\nimport { StagePanel, StagePanelProps } from \"../stagepanels/StagePanel\";\r\nimport { ContentGroup, ContentGroupProps, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { Frontstage, FrontstageProps } from \"./Frontstage\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\nimport { Zone } from \"../zones/Zone\";\r\nimport { ContentToolWidgetComposer } from \"../widgets/ContentToolWidgetComposer\";\r\nimport { Widget } from \"../widgets/Widget\";\r\nimport { ViewToolWidgetComposer } from \"../widgets/ViewToolWidgetComposer\";\r\nimport { StatusBarWidgetComposerControl } from \"../widgets/StatusBarWidgetComposerControl\";\r\nimport { StagePanelState } from \"../stagepanels/StagePanelDef\";\r\n\r\n/** Properties of a [[WidgetPanelProps]] component\r\n * @public\r\n */\r\nexport type WidgetPanelProps = Omit<StagePanelProps, \"widgets\" | \"runtimeProps\" | \"header\" | \"allowedZones\" | \"panelZones\">;\r\n\r\n/**\r\n * Props for [[StandardFrontstageProvider]]\r\n * @public\r\n */\r\nexport interface StandardFrontstageProps {\r\n /* unique stage id. To ensure uniqueness it is common practice to format id like `appName:stageId` */\r\n id: string;\r\n /* version id that is used to store state of stage */\r\n version?: number;\r\n // Usage of stage. To allow generic UiItemProvides to populate this stage set to `StageUsage.General`.\r\n usage: StageUsage | string;\r\n /** Definition of available content groups or a function that provides them */\r\n contentGroupProps: ContentGroupProps | ContentGroupProvider;\r\n /** Specify button to use to open backstage. Leave undefined for no backstage button.\r\n * ```\r\n * <BackstageAppButton icon={\"icon-bentley-systems\"} />\r\n * ```\r\n * Custom corner button definition\r\n * ```\r\n * const cornerButton = <BackstageAppButton icon={\"icon-bentley-systems\"}\r\n * label=\"Toggle Backstage display\",\r\n * execute={() => BackstageManager.getBackstageToggleCommand().execute()} />;\r\n * ```\r\n */\r\n cornerButton?: React.ReactNode;\r\n /** Set to true if default Navigation aid is not desired */\r\n hideNavigationAid?: boolean;\r\n /** Set to true if no status bar is needed in stage */\r\n hideStatusBar?: boolean;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 300, pinned=false, defaultState:StagePanelState.Minimized} */\r\n leftPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 90, pinned=false, defaultState:StagePanelState.Minimized} */\r\n topPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 200, pinned=true, defaultState:StagePanelState.Open} */\r\n rightPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 180, pinned=true, defaultState:StagePanelState.Open} */\r\n bottomPanelProps?: WidgetPanelProps;\r\n /** Application data is not require but exists for stages to pass feature settings to UiItemsProviders.\r\n * It is expected that the UiItemsProvider supply an xxxAppData interface to define the properties it\r\n * supports. See [[DefaultContentToolsAppData]] for an example.\r\n */\r\n applicationData?: any;\r\n}\r\n\r\n/**\r\n * FrontstageProvider that provides an \"empty\" stage. All tool buttons, statusbar items, and widgets must\r\n * be provided by one or more item providers, see [UiItemsProvider]($appui-abstract).\r\n * @public\r\n */\r\nexport class StandardFrontstageProvider extends FrontstageProvider {\r\n constructor(private props: StandardFrontstageProps) {\r\n super();\r\n }\r\n\r\n public get id(): string {\r\n return this.props.id;\r\n }\r\n\r\n public get frontstage(): React.ReactElement<FrontstageProps> {\r\n const contentGroup = (this.props.contentGroupProps instanceof ContentGroupProvider) ? this.props.contentGroupProps : new ContentGroup(this.props.contentGroupProps);\r\n return (\r\n <Frontstage\r\n key={this.props.id}\r\n id={this.props.id}\r\n version={this.props.version ?? 1.0}\r\n defaultTool={CoreTools.selectElementCommand}\r\n contentGroup={contentGroup}\r\n isInFooterMode={true}\r\n usage={this.props.usage}\r\n applicationData={this.props.applicationData}\r\n\r\n contentManipulationTools={\r\n <Zone\r\n widgets={\r\n [\r\n <Widget id={`${this.props.id}-contentManipulationTools`} key={`${this.props.id}-contentManipulationTools`} isFreeform={true}\r\n element={<ContentToolWidgetComposer cornerButton={this.props.cornerButton} />}\r\n />,\r\n ]}\r\n />\r\n }\r\n viewNavigationTools={\r\n <Zone\r\n widgets={\r\n [\r\n <Widget id={`${this.props.id}-viewNavigationTools`} key={`${this.props.id}-viewNavigationTools`} isFreeform={true}\r\n element={<ViewToolWidgetComposer hideNavigationAid={this.props.hideNavigationAid} />}\r\n />,\r\n ]}\r\n />\r\n }\r\n toolSettings={\r\n <Zone\r\n widgets={\r\n [\r\n <Widget id={`${this.props.id}-toolSettings`} key={`${this.props.id}-toolSettings`} isToolSettings={true} />,\r\n ]}\r\n />\r\n }\r\n statusBar={\r\n <Zone\r\n widgets={\r\n this.props.hideStatusBar ? [] :\r\n [\r\n <Widget id={`${this.props.id}-statusBar`} key={`${this.props.id}-statusBar`} isStatusBar={true}\r\n control={StatusBarWidgetComposerControl} />,\r\n ]\r\n }\r\n />\r\n }\r\n\r\n leftPanel={\r\n <StagePanel\r\n size={300}\r\n pinned={false}\r\n defaultState={StagePanelState.Minimized}\r\n {...this.props.leftPanelProps}\r\n />\r\n }\r\n\r\n topPanel={\r\n <StagePanel\r\n size={90}\r\n pinned={false}\r\n defaultState={StagePanelState.Minimized}\r\n {...this.props.topPanelProps}\r\n />\r\n }\r\n\r\n rightPanel={\r\n <StagePanel\r\n defaultState={StagePanelState.Open}\r\n {...this.props.rightPanelProps}\r\n\r\n />\r\n }\r\n\r\n bottomPanel={\r\n <StagePanel\r\n size={180}\r\n defaultState={StagePanelState.Open}\r\n {...this.props.bottomPanelProps}\r\n />\r\n }\r\n />\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StandardFrontstageProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StandardFrontstageProvider.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 Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { StageUsage } from \"@itwin/appui-abstract\";\r\nimport { StagePanel, StagePanelProps } from \"../stagepanels/StagePanel\";\r\nimport { ContentGroup, ContentGroupProps, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { Frontstage, FrontstageProps } from \"./Frontstage\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\nimport { Zone } from \"../zones/Zone\";\r\nimport { ContentToolWidgetComposer } from \"../widgets/ContentToolWidgetComposer\";\r\nimport { Widget } from \"../widgets/Widget\";\r\nimport { ViewToolWidgetComposer } from \"../widgets/ViewToolWidgetComposer\";\r\nimport { StatusBarWidgetComposerControl } from \"../widgets/StatusBarWidgetComposerControl\";\r\nimport { StagePanelState } from \"../stagepanels/StagePanelDef\";\r\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\r\n\r\n/** Properties of a [[WidgetPanelProps]] component\r\n * @public\r\n */\r\nexport type WidgetPanelProps = Omit<StagePanelProps, \"widgets\" | \"runtimeProps\" | \"header\" | \"allowedZones\" | \"panelZones\">;\r\n\r\n/**\r\n * Props for [[StandardFrontstageProvider]]\r\n * @public\r\n */\r\nexport interface StandardFrontstageProps {\r\n /* unique stage id. To ensure uniqueness it is common practice to format id like `appName:stageId` */\r\n id: string;\r\n /* version id that is used to store state of stage */\r\n version?: number;\r\n // Usage of stage. To allow generic UiItemProvides to populate this stage set to `StageUsage.General`.\r\n usage: StageUsage | string;\r\n /** Definition of available content groups or a function that provides them */\r\n contentGroupProps: ContentGroupProps | ContentGroupProvider;\r\n /** Specify button to use to open backstage. Leave undefined for no backstage button.\r\n * ```\r\n * <BackstageAppButton icon={\"icon-bentley-systems\"} />\r\n * ```\r\n * Custom corner button definition\r\n * ```\r\n * const cornerButton = <BackstageAppButton icon={\"icon-bentley-systems\"}\r\n * label=\"Toggle Backstage display\",\r\n * execute={() => BackstageManager.getBackstageToggleCommand().execute()} />;\r\n * ```\r\n */\r\n cornerButton?: React.ReactNode;\r\n /** Set to true if default Navigation aid is not desired */\r\n hideNavigationAid?: boolean;\r\n /** Set to true if no status bar is needed in stage */\r\n hideStatusBar?: boolean;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 300, pinned=false, defaultState:StagePanelState.Minimized} */\r\n leftPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 90, pinned=false, defaultState:StagePanelState.Minimized} */\r\n topPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 200, pinned=true, defaultState:StagePanelState.Open} */\r\n rightPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 180, pinned=true, defaultState:StagePanelState.Open} */\r\n bottomPanelProps?: WidgetPanelProps;\r\n /** Application data is not require but exists for stages to pass feature settings to UiItemsProviders.\r\n * It is expected that the UiItemsProvider supply an xxxAppData interface to define the properties it\r\n * supports. See [[DefaultContentToolsAppData]] for an example.\r\n */\r\n applicationData?: any;\r\n /** The defaultTool is is started when then frontstage loads and whenever any other tools exit.\r\n * Most of the time, this is the Element Selection Tool (CoreTools.selectElementCommand).\r\n * Your app can specify its own tool or another core tool as default with this property.\r\n */\r\n defaultTool?: ToolItemDef;\r\n}\r\n\r\n/**\r\n * FrontstageProvider that provides an \"empty\" stage. All tool buttons, statusbar items, and widgets must\r\n * be provided by one or more item providers, see [UiItemsProvider]($appui-abstract).\r\n * @public\r\n */\r\nexport class StandardFrontstageProvider extends FrontstageProvider {\r\n constructor(private props: StandardFrontstageProps) {\r\n super();\r\n }\r\n\r\n public get id(): string {\r\n return this.props.id;\r\n }\r\n\r\n public get frontstage(): React.ReactElement<FrontstageProps> {\r\n const contentGroup = (this.props.contentGroupProps instanceof ContentGroupProvider) ? this.props.contentGroupProps : new ContentGroup(this.props.contentGroupProps);\r\n return (\r\n <Frontstage\r\n key={this.props.id}\r\n id={this.props.id}\r\n version={this.props.version ?? 1.0}\r\n defaultTool={this.props.defaultTool ?? CoreTools.selectElementCommand}\r\n contentGroup={contentGroup}\r\n isInFooterMode={true}\r\n usage={this.props.usage}\r\n applicationData={this.props.applicationData}\r\n\r\n contentManipulationTools={\r\n <Zone\r\n widgets={\r\n [\r\n <Widget id={`${this.props.id}-contentManipulationTools`} key={`${this.props.id}-contentManipulationTools`} isFreeform={true}\r\n element={<ContentToolWidgetComposer cornerButton={this.props.cornerButton} />}\r\n />,\r\n ]}\r\n />\r\n }\r\n viewNavigationTools={\r\n <Zone\r\n widgets={\r\n [\r\n <Widget id={`${this.props.id}-viewNavigationTools`} key={`${this.props.id}-viewNavigationTools`} isFreeform={true}\r\n element={<ViewToolWidgetComposer hideNavigationAid={this.props.hideNavigationAid} />}\r\n />,\r\n ]}\r\n />\r\n }\r\n toolSettings={\r\n <Zone\r\n widgets={\r\n [\r\n <Widget id={`${this.props.id}-toolSettings`} key={`${this.props.id}-toolSettings`} isToolSettings={true} />,\r\n ]}\r\n />\r\n }\r\n statusBar={\r\n <Zone\r\n widgets={\r\n this.props.hideStatusBar ? [] :\r\n [\r\n <Widget id={`${this.props.id}-statusBar`} key={`${this.props.id}-statusBar`} isStatusBar={true}\r\n control={StatusBarWidgetComposerControl} />,\r\n ]\r\n }\r\n />\r\n }\r\n\r\n leftPanel={\r\n <StagePanel\r\n size={300}\r\n pinned={false}\r\n defaultState={StagePanelState.Minimized}\r\n {...this.props.leftPanelProps}\r\n />\r\n }\r\n\r\n topPanel={\r\n <StagePanel\r\n size={90}\r\n pinned={false}\r\n defaultState={StagePanelState.Minimized}\r\n {...this.props.topPanelProps}\r\n />\r\n }\r\n\r\n rightPanel={\r\n <StagePanel\r\n defaultState={StagePanelState.Open}\r\n {...this.props.rightPanelProps}\r\n\r\n />\r\n }\r\n\r\n bottomPanel={\r\n <StagePanel\r\n size={180}\r\n defaultState={StagePanelState.Open}\r\n {...this.props.bottomPanelProps}\r\n />\r\n }\r\n />\r\n );\r\n }\r\n}\r\n"]}
@@ -17,10 +17,10 @@
17
17
  }
18
18
  }
19
19
 
20
- .core-image-checkbox {
20
+ .contents > .core-image-checkbox {
21
21
  position: absolute;
22
+ top: unset;
22
23
  left: 5px;
23
- padding: 0;
24
24
  margin: -2px 0px 0px 5px;
25
25
  }
26
26
 
@@ -50,4 +50,4 @@
50
50
  }
51
51
  }
52
52
 
53
- }
53
+ }
@@ -121,6 +121,7 @@
121
121
  }
122
122
  ],
123
123
  "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") = NULL AND json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") = NULL AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
124
+ "hasChildren": "Always",
124
125
  "hideIfNoChildren": true,
125
126
  "groupByClass": false,
126
127
  "groupByLabel": false
@@ -152,6 +153,7 @@
152
153
  }
153
154
  ],
154
155
  "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND (json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") <> NULL OR json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") <> NULL) AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
156
+ "hasChildren": "Always",
155
157
  "hideNodesInHierarchy": true,
156
158
  "groupByClass": false,
157
159
  "groupByLabel": false
@@ -121,6 +121,7 @@
121
121
  }
122
122
  ],
123
123
  "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") = NULL AND json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") = NULL AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
124
+ "hasChildren": "Always",
124
125
  "hideIfNoChildren": true,
125
126
  "groupByClass": false,
126
127
  "groupByLabel": false
@@ -152,6 +153,7 @@
152
153
  }
153
154
  ],
154
155
  "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND (json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") <> NULL OR json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") <> NULL) AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
156
+ "hasChildren": "Always",
155
157
  "hideNodesInHierarchy": true,
156
158
  "groupByClass": false,
157
159
  "groupByLabel": false
@@ -333,41 +333,54 @@ class SubjectModelIdsCache {
333
333
  constructor(imodel) {
334
334
  this._imodel = imodel;
335
335
  }
336
- async initSubjectsHierarchy() {
337
- this._subjectsHierarchy = new Map();
338
- const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;
339
- const result = this._imodel.query(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
340
- for await (const row of result) {
341
- let list = this._subjectsHierarchy.get(row.parentId);
336
+ async initSubjectModels() {
337
+ var _a;
338
+ const querySubjects = () => {
339
+ const subjectsQuery = `
340
+ SELECT ECInstanceId id, Parent.Id parentId, json_extract(JsonProperties, '$.Subject.Model.TargetPartition') targetPartitionId
341
+ FROM bis.Subject
342
+ `;
343
+ return this._imodel.query(subjectsQuery, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
344
+ };
345
+ const queryModels = () => {
346
+ const modelsQuery = `
347
+ SELECT p.ECInstanceId id, p.Parent.Id parentId, json_extract(p.JsonProperties, '$.PhysicalPartition.Model.Content') content
348
+ FROM bis.InformationPartitionElement p
349
+ INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId
350
+ WHERE NOT m.IsPrivate
351
+ `;
352
+ return this._imodel.query(modelsQuery, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
353
+ };
354
+ function pushToMap(map, key, value) {
355
+ let list = map.get(key);
342
356
  if (!list) {
343
357
  list = [];
344
- this._subjectsHierarchy.set(row.parentId, list);
358
+ map.set(key, list);
345
359
  }
346
- list.push(row.id);
360
+ list.push(value);
361
+ }
362
+ this._subjectsHierarchy = new Map();
363
+ const targetPartitionSubjects = new Map();
364
+ for await (const subject of querySubjects()) {
365
+ if (subject.parentId)
366
+ pushToMap(this._subjectsHierarchy, subject.parentId, subject.id);
367
+ if (subject.targetPartitionId)
368
+ pushToMap(targetPartitionSubjects, subject.targetPartitionId, subject.id);
347
369
  }
348
- }
349
- async initSubjectModels() {
350
370
  this._subjectModels = new Map();
351
- const ecsql = `
352
- SELECT p.ECInstanceId id, s.ECInstanceId subjectId, json_extract(p.JsonProperties, '$.PhysicalPartition.Model.Content') content
353
- FROM bis.InformationPartitionElement p
354
- INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId
355
- INNER JOIN bis.Subject s ON (s.ECInstanceId = p.Parent.Id OR json_extract(s.JsonProperties, '$.Subject.Model.TargetPartition') = printf('0x%x', p.ECInstanceId))
356
- WHERE NOT m.IsPrivate`;
357
- const result = this._imodel.query(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
358
- for await (const row of result) {
359
- let list = this._subjectModels.get(row.subjectId);
360
- if (!list) {
361
- list = [];
362
- this._subjectModels.set(row.subjectId, list);
363
- }
364
- const isHidden = row.content !== undefined;
365
- list.push({ id: row.id, isHidden });
371
+ for await (const model of queryModels()) {
372
+ const subjectIds = (_a = targetPartitionSubjects.get(model.id)) !== null && _a !== void 0 ? _a : [];
373
+ if (!subjectIds.includes(model.parentId))
374
+ subjectIds.push(model.parentId);
375
+ const v = { id: model.id, isHidden: (model.content !== undefined) };
376
+ subjectIds.forEach((subjectId) => {
377
+ pushToMap(this._subjectModels, subjectId, v);
378
+ });
366
379
  }
367
380
  }
368
381
  async initCache() {
369
382
  if (!this._init) {
370
- this._init = Promise.all([this.initSubjectModels(), this.initSubjectsHierarchy()]).then(() => { });
383
+ this._init = this.initSubjectModels().then(() => { });
371
384
  }
372
385
  return this._init;
373
386
  }