@itwin/appui-react 3.0.0-dev.98 → 3.1.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (929) hide show
  1. package/CHANGELOG.md +80 -1
  2. package/LICENSE.md +1 -1
  3. package/README.md +3 -3
  4. package/lib/cjs/appui-react/UiFramework.d.ts +37 -22
  5. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/UiFramework.js +53 -38
  7. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/Calculator.js +1 -1
  15. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  17. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +5 -4
  19. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  20. package/lib/cjs/appui-react/backstage/Backstage.d.ts +0 -2
  21. package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +2 -0
  24. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageComposer.js +26 -8
  26. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  27. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
  28. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -1
  29. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  30. package/lib/cjs/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  31. package/lib/cjs/appui-react/backstage/BackstageItemProps.js +1 -1
  32. package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
  33. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  34. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +3 -3
  35. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  36. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts +2 -0
  37. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/backstage/CommandLaunch.js +1 -0
  39. package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
  40. package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
  41. package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js +5 -6
  43. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  44. package/lib/cjs/appui-react/backstage/Separator.d.ts +1 -0
  45. package/lib/cjs/appui-react/backstage/Separator.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/backstage/Separator.js +3 -2
  47. package/lib/cjs/appui-react/backstage/Separator.js.map +1 -1
  48. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  49. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +4 -5
  51. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  52. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  54. package/lib/cjs/appui-react/configurableui/state.d.ts +10 -3
  55. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/configurableui/state.js +15 -2
  57. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  58. package/lib/cjs/appui-react/content/ContentControl.d.ts +1 -1
  59. package/lib/cjs/appui-react/content/ContentControl.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/content/ContentControl.js +2 -2
  61. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  62. package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -2
  63. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/content/ContentLayout.js +4 -3
  65. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  66. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +1 -1
  67. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/content/ContentViewManager.js +3 -3
  69. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  70. package/lib/cjs/appui-react/content/IModelViewport.d.ts +13 -1
  71. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/content/IModelViewport.js +18 -5
  73. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  74. package/lib/cjs/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
  75. package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -0
  76. package/lib/cjs/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +19 -17
  77. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -0
  78. package/lib/cjs/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
  79. package/lib/cjs/appui-react/content/ViewStateHelper.d.ts.map +1 -0
  80. package/lib/cjs/appui-react/content/{SavedView.js → ViewStateHelper.js} +4 -4
  81. package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -0
  82. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts +21 -0
  83. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  84. package/lib/cjs/appui-react/content/split-pane/Pane.js +43 -0
  85. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -0
  86. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts +23 -0
  87. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  88. package/lib/cjs/appui-react/content/split-pane/Resizer.js +39 -0
  89. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -0
  90. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  91. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  92. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +243 -0
  93. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -0
  94. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +1 -2
  95. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/cursor/CursorInformation.js +1 -1
  97. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  98. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  99. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  100. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  101. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  102. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js +3 -3
  103. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  104. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  105. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -2
  107. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  108. package/lib/cjs/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/dialog/StandardMessageBox.js +3 -0
  110. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  111. package/lib/cjs/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
  112. package/lib/cjs/appui-react/dragdrop/ZoneTargets.js +8 -4
  113. package/lib/cjs/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  114. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +2 -2
  115. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/feedback/ElementTooltip.js +4 -2
  117. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  118. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +1 -0
  119. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/frontstage/Frontstage.js +32 -13
  121. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  122. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  123. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +15 -1
  125. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  126. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +15 -2
  127. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  128. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +138 -3
  129. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  130. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  131. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +2 -1
  132. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  133. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  134. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  135. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  136. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  138. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  140. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts +12 -9
  141. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js +19 -21
  143. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  144. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
  145. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  146. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
  147. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  148. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
  149. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  150. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +1 -1
  151. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  152. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
  153. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  154. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  155. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
  156. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  157. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +81 -68
  158. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  159. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  161. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  162. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  163. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
  164. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  165. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  166. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
  168. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  169. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +1 -1
  170. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  171. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  172. package/lib/cjs/appui-react/messages/MessageManager.d.ts +1 -2
  173. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  174. package/lib/cjs/appui-react/messages/MessageManager.js +15 -9
  175. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  176. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  177. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/messages/Pointer.js +4 -3
  179. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  180. package/lib/cjs/appui-react/messages/ToastMessage.js +2 -1
  181. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  182. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  183. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  184. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js +2 -2
  185. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  186. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  187. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  188. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  189. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  190. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
  191. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  192. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +3 -0
  193. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  194. package/lib/cjs/appui-react/pickers/ListPicker.js +24 -9
  195. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  196. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  197. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  198. package/lib/cjs/appui-react/pickers/ViewSelector.js +9 -9
  199. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  200. package/lib/cjs/appui-react/popup/CardPopup.d.ts +7 -4
  201. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  202. package/lib/cjs/appui-react/popup/CardPopup.js +3 -2
  203. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  204. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +3 -2
  205. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  206. package/lib/cjs/appui-react/popup/InputEditorPopup.js +1 -1
  207. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  208. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +6 -6
  209. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  210. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
  211. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  212. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +1 -1
  213. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  214. package/lib/cjs/appui-react/popup/PopupManager.d.ts +10 -10
  215. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  216. package/lib/cjs/appui-react/popup/PopupManager.js +4 -4
  217. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  218. package/lib/cjs/appui-react/popup/PositionPopup.d.ts +5 -3
  219. package/lib/cjs/appui-react/popup/PositionPopup.d.ts.map +1 -1
  220. package/lib/cjs/appui-react/popup/PositionPopup.js +3 -2
  221. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  222. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
  223. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  224. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +1 -1
  225. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  226. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +4 -3
  227. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  228. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  229. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  230. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  231. package/lib/cjs/appui-react/redux/SessionState.d.ts +0 -6
  232. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  233. package/lib/cjs/appui-react/redux/SessionState.js +0 -8
  234. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  235. package/lib/cjs/appui-react/redux/StateManager.d.ts +1 -1
  236. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  237. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
  238. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  239. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  240. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
  241. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  242. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  243. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +28 -19
  244. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  245. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  246. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  247. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  248. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  249. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  250. package/lib/cjs/appui-react/shared/ItemDefBase.js +1 -1
  251. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  252. package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
  253. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  254. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts +1 -1
  255. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  256. package/lib/cjs/appui-react/shared/ToolItemDef.js +2 -2
  257. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  258. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  259. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
  260. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  261. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +2 -2
  262. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  263. package/lib/cjs/appui-react/stagepanels/StagePanel.js +1 -0
  264. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  265. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +26 -2
  266. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  267. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +24 -3
  268. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  269. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  270. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
  271. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js +2 -1
  272. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  273. package/lib/cjs/appui-react/statusbar/StatusBar.js +2 -1
  274. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  275. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  276. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +17 -5
  277. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  278. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  279. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  280. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  281. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +15 -14
  282. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  283. package/lib/cjs/appui-react/statusfields/Indicator.js +23 -21
  284. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  285. package/lib/cjs/appui-react/statusfields/Indicator.scss +29 -18
  286. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  287. package/lib/cjs/appui-react/statusfields/MessageCenter.js +2 -1
  288. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  289. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +1 -0
  290. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  291. package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -4
  292. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  293. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +13 -3
  294. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -10
  295. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  296. package/lib/cjs/appui-react/statusfields/SnapMode.js +4 -34
  297. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  298. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -6
  299. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  300. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +1 -25
  301. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  302. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  303. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  304. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +13 -12
  305. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  306. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
  307. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
  308. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  309. package/lib/cjs/appui-react/syncui/BooleanListener.js +2 -1
  310. package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
  311. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
  312. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  313. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +30 -103
  314. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  315. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js +2 -1
  316. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  317. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  318. package/lib/cjs/appui-react/toolbar/ActionItemButton.js +2 -1
  319. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  320. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js +24 -20
  321. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  322. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  323. package/lib/cjs/appui-react/toolbar/GroupItem.js +33 -29
  324. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  325. package/lib/cjs/appui-react/toolbar/ToolButton.js +3 -2
  326. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  327. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/toolbar/Toolbar.js +3 -2
  329. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  330. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  331. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +22 -20
  332. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  333. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  334. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +4 -4
  335. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  336. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
  337. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js +2 -2
  338. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  339. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
  340. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  341. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -36
  342. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  343. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
  344. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  345. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +12 -20
  346. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  347. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
  348. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  349. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +39 -50
  350. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  351. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +4 -4
  352. package/lib/{esm/appui-react/uisettings → cjs/appui-react/uistate}/AppUiSettings.d.ts +11 -9
  353. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  354. package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.js +12 -8
  355. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -0
  356. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  357. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  358. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +59 -0
  359. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  360. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  361. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  362. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +38 -0
  363. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -0
  364. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +5 -5
  365. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  366. package/lib/cjs/appui-react/utils/UiShowHideManager.js +8 -8
  367. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  368. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  369. package/lib/cjs/appui-react/widget-panels/Content.js +1 -4
  370. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  371. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +98 -8
  372. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  373. package/lib/cjs/appui-react/widget-panels/Frontstage.js +83 -93
  374. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  375. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  376. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  377. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +22 -0
  378. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
  379. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +56 -0
  380. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -0
  381. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  382. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +1 -0
  383. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  384. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  385. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +3 -1
  386. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  387. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
  388. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  389. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +10 -0
  390. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  391. package/lib/cjs/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  392. package/lib/cjs/appui-react/widgets/NavigationWidget.js +2 -1
  393. package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
  394. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +1 -0
  395. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  396. package/lib/cjs/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  397. package/lib/cjs/appui-react/widgets/StableWidgetDef.js +1 -1
  398. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  399. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js +2 -1
  400. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  401. package/lib/cjs/appui-react/widgets/ToolWidget.js +3 -2
  402. package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
  403. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
  404. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  405. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +1 -36
  406. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  407. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
  408. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
  409. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js +5 -2
  410. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  411. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  412. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  413. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  414. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  415. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +2 -3
  416. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  417. package/lib/cjs/appui-react/widgets/WidgetDef.js +18 -7
  418. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  419. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  420. package/lib/cjs/appui-react/widgets/WidgetHost.js +1 -0
  421. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  422. package/lib/cjs/appui-react/widgets/WidgetStack.d.ts.map +1 -1
  423. package/lib/cjs/appui-react/widgets/WidgetStack.js +2 -0
  424. package/lib/cjs/appui-react/widgets/WidgetStack.js.map +1 -1
  425. package/lib/cjs/appui-react/zones/FrameworkZone.js.map +1 -1
  426. package/lib/cjs/appui-react/zones/StatusBarZone.js.map +1 -1
  427. package/lib/cjs/appui-react/zones/Zone.d.ts +1 -1
  428. package/lib/cjs/appui-react/zones/Zone.d.ts.map +1 -1
  429. package/lib/cjs/appui-react/zones/Zone.js +2 -1
  430. package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
  431. package/lib/cjs/appui-react/zones/ZoneDef.d.ts +4 -4
  432. package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
  433. package/lib/cjs/appui-react/zones/ZoneDef.js +5 -4
  434. package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
  435. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  436. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  437. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js +3 -2
  438. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  439. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  440. package/lib/cjs/appui-react.d.ts +15 -18
  441. package/lib/cjs/appui-react.d.ts.map +1 -1
  442. package/lib/cjs/appui-react.js +15 -18
  443. package/lib/cjs/appui-react.js.map +1 -1
  444. package/lib/esm/appui-react/UiFramework.d.ts +37 -22
  445. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  446. package/lib/esm/appui-react/UiFramework.js +52 -37
  447. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  448. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  449. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  450. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  451. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  452. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  453. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  454. package/lib/esm/appui-react/accudraw/Calculator.js +1 -1
  455. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  456. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  457. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  458. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +6 -5
  459. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  460. package/lib/esm/appui-react/backstage/Backstage.d.ts +0 -2
  461. package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
  462. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  463. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +2 -0
  464. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  465. package/lib/esm/appui-react/backstage/BackstageComposer.js +27 -9
  466. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  467. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
  468. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -1
  469. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  470. package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  471. package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
  472. package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
  473. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  474. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +3 -3
  475. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  476. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts +2 -0
  477. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  478. package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -0
  479. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  480. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
  481. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  482. package/lib/esm/appui-react/backstage/FrontstageLaunch.js +5 -6
  483. package/lib/esm/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  484. package/lib/esm/appui-react/backstage/Separator.d.ts +1 -0
  485. package/lib/esm/appui-react/backstage/Separator.d.ts.map +1 -1
  486. package/lib/esm/appui-react/backstage/Separator.js +3 -2
  487. package/lib/esm/appui-react/backstage/Separator.js.map +1 -1
  488. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  489. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  490. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +4 -5
  491. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  492. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  493. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  494. package/lib/esm/appui-react/configurableui/state.d.ts +10 -3
  495. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  496. package/lib/esm/appui-react/configurableui/state.js +15 -2
  497. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  498. package/lib/esm/appui-react/content/ContentControl.d.ts +1 -1
  499. package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
  500. package/lib/esm/appui-react/content/ContentControl.js +1 -1
  501. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  502. package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -2
  503. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  504. package/lib/esm/appui-react/content/ContentLayout.js +3 -2
  505. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  506. package/lib/esm/appui-react/content/ContentViewManager.d.ts +1 -1
  507. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  508. package/lib/esm/appui-react/content/ContentViewManager.js +1 -1
  509. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  510. package/lib/esm/appui-react/content/IModelViewport.d.ts +13 -1
  511. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  512. package/lib/esm/appui-react/content/IModelViewport.js +16 -4
  513. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  514. package/lib/esm/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
  515. package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -0
  516. package/lib/esm/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +17 -15
  517. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -0
  518. package/lib/esm/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
  519. package/lib/esm/appui-react/content/ViewStateHelper.d.ts.map +1 -0
  520. package/lib/esm/appui-react/content/{SavedView.js → ViewStateHelper.js} +2 -2
  521. package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -0
  522. package/lib/esm/appui-react/content/split-pane/Pane.d.ts +21 -0
  523. package/lib/esm/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  524. package/lib/esm/appui-react/content/split-pane/Pane.js +39 -0
  525. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -0
  526. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts +23 -0
  527. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  528. package/lib/esm/appui-react/content/split-pane/Resizer.js +35 -0
  529. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -0
  530. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  531. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  532. package/lib/esm/appui-react/content/split-pane/SplitPane.js +239 -0
  533. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -0
  534. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +1 -2
  535. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  536. package/lib/esm/appui-react/cursor/CursorInformation.js +2 -2
  537. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  538. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  539. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  540. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  541. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  542. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +2 -2
  543. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  544. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  545. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  546. package/lib/esm/appui-react/dialog/DialogManagerBase.js +1 -1
  547. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  548. package/lib/esm/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
  549. package/lib/esm/appui-react/dialog/StandardMessageBox.js +3 -0
  550. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  551. package/lib/esm/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
  552. package/lib/esm/appui-react/dragdrop/ZoneTargets.js +8 -4
  553. package/lib/esm/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  554. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +2 -2
  555. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  556. package/lib/esm/appui-react/feedback/ElementTooltip.js +4 -2
  557. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  558. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +1 -0
  559. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  560. package/lib/esm/appui-react/frontstage/Frontstage.js +32 -13
  561. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  562. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  563. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  564. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +15 -1
  565. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  566. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +15 -2
  567. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  568. package/lib/esm/appui-react/frontstage/FrontstageDef.js +140 -5
  569. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  570. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  571. package/lib/esm/appui-react/frontstage/FrontstageManager.js +2 -1
  572. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  573. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  574. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  575. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  576. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  577. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  578. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  579. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  580. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts +12 -9
  581. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
  582. package/lib/esm/appui-react/hooks/useFrameworkVersion.js +19 -21
  583. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  584. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
  585. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  586. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
  587. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  588. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
  589. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  590. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +1 -1
  591. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  592. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
  593. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  594. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  595. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
  596. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  597. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +83 -70
  598. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  599. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  600. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  601. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  602. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  603. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +2 -2
  604. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  605. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  606. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  607. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
  608. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  609. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +1 -1
  610. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  611. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  612. package/lib/esm/appui-react/messages/MessageManager.d.ts +1 -2
  613. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  614. package/lib/esm/appui-react/messages/MessageManager.js +9 -3
  615. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  616. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  617. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  618. package/lib/esm/appui-react/messages/Pointer.js +4 -3
  619. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  620. package/lib/esm/appui-react/messages/ToastMessage.js +2 -1
  621. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  622. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  623. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  624. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js +1 -1
  625. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  626. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  627. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  628. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  629. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  630. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
  631. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  632. package/lib/esm/appui-react/pickers/ListPicker.d.ts +3 -0
  633. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  634. package/lib/esm/appui-react/pickers/ListPicker.js +23 -9
  635. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  636. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  637. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  638. package/lib/esm/appui-react/pickers/ViewSelector.js +7 -7
  639. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  640. package/lib/esm/appui-react/popup/CardPopup.d.ts +7 -4
  641. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  642. package/lib/esm/appui-react/popup/CardPopup.js +3 -2
  643. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  644. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +3 -2
  645. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  646. package/lib/esm/appui-react/popup/InputEditorPopup.js +1 -1
  647. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  648. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +7 -7
  649. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  650. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
  651. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  652. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +1 -1
  653. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  654. package/lib/esm/appui-react/popup/PopupManager.d.ts +10 -10
  655. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  656. package/lib/esm/appui-react/popup/PopupManager.js +5 -5
  657. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  658. package/lib/esm/appui-react/popup/PositionPopup.d.ts +5 -3
  659. package/lib/esm/appui-react/popup/PositionPopup.d.ts.map +1 -1
  660. package/lib/esm/appui-react/popup/PositionPopup.js +3 -2
  661. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  662. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
  663. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  664. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +1 -1
  665. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  666. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +4 -3
  667. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  668. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  669. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  670. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  671. package/lib/esm/appui-react/redux/SessionState.d.ts +0 -6
  672. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  673. package/lib/esm/appui-react/redux/SessionState.js +0 -8
  674. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  675. package/lib/esm/appui-react/redux/StateManager.d.ts +1 -1
  676. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  677. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
  678. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  679. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  680. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
  681. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  682. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  683. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +28 -19
  684. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  685. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  686. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  687. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  688. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  689. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  690. package/lib/esm/appui-react/shared/ItemDefBase.js +1 -1
  691. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  692. package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
  693. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  694. package/lib/esm/appui-react/shared/ToolItemDef.d.ts +1 -1
  695. package/lib/esm/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  696. package/lib/esm/appui-react/shared/ToolItemDef.js +2 -2
  697. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  698. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  699. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
  700. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  701. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +2 -2
  702. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  703. package/lib/esm/appui-react/stagepanels/StagePanel.js +1 -0
  704. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  705. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +26 -2
  706. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  707. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +24 -3
  708. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  709. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  710. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
  711. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js +2 -1
  712. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  713. package/lib/esm/appui-react/statusbar/StatusBar.js +2 -1
  714. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  715. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  716. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +17 -5
  717. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  718. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  719. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  720. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  721. package/lib/esm/appui-react/statusfields/Indicator.d.ts +15 -14
  722. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  723. package/lib/esm/appui-react/statusfields/Indicator.js +23 -21
  724. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  725. package/lib/esm/appui-react/statusfields/Indicator.scss +29 -18
  726. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  727. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -1
  728. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  729. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +1 -0
  730. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  731. package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -4
  732. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  733. package/lib/esm/appui-react/statusfields/SelectionScope.scss +13 -3
  734. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -10
  735. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  736. package/lib/esm/appui-react/statusfields/SnapMode.js +5 -35
  737. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  738. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -6
  739. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  740. package/lib/esm/appui-react/statusfields/ViewAttributes.js +2 -26
  741. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  742. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  743. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  744. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -13
  745. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  746. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
  747. package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
  748. package/lib/esm/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  749. package/lib/esm/appui-react/syncui/BooleanListener.js +2 -1
  750. package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
  751. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
  752. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  753. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +29 -101
  754. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  755. package/lib/esm/appui-react/toolbar/ActionButtonItem.js +2 -1
  756. package/lib/esm/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  757. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  758. package/lib/esm/appui-react/toolbar/ActionItemButton.js +2 -1
  759. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  760. package/lib/esm/appui-react/toolbar/GroupButtonItem.js +24 -20
  761. package/lib/esm/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  762. package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  763. package/lib/esm/appui-react/toolbar/GroupItem.js +33 -29
  764. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  765. package/lib/esm/appui-react/toolbar/ToolButton.js +3 -2
  766. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  767. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  768. package/lib/esm/appui-react/toolbar/Toolbar.js +3 -2
  769. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  770. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  771. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +22 -20
  772. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  773. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  774. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +4 -4
  775. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  776. package/lib/esm/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
  777. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js +2 -2
  778. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  779. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
  780. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  781. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +18 -37
  782. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  783. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
  784. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  785. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +13 -21
  786. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  787. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
  788. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  789. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +40 -51
  790. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  791. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +4 -4
  792. package/lib/{cjs/appui-react/uisettings → esm/appui-react/uistate}/AppUiSettings.d.ts +11 -9
  793. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  794. package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.js +13 -9
  795. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -0
  796. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  797. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  798. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +55 -0
  799. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  800. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  801. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  802. package/lib/esm/appui-react/uistate/useUiStateStorage.js +33 -0
  803. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -0
  804. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +5 -5
  805. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  806. package/lib/esm/appui-react/utils/UiShowHideManager.js +9 -9
  807. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  808. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  809. package/lib/esm/appui-react/widget-panels/Content.js +1 -4
  810. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  811. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +98 -8
  812. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  813. package/lib/esm/appui-react/widget-panels/Frontstage.js +83 -92
  814. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  815. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  816. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  817. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +22 -0
  818. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
  819. package/lib/esm/appui-react/widgets/BackstageAppButton.js +52 -0
  820. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -0
  821. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  822. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -0
  823. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  824. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  825. package/lib/esm/appui-react/widgets/BasicToolWidget.js +3 -1
  826. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  827. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
  828. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  829. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +10 -0
  830. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  831. package/lib/esm/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  832. package/lib/esm/appui-react/widgets/NavigationWidget.js +2 -1
  833. package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
  834. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +1 -0
  835. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  836. package/lib/esm/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  837. package/lib/esm/appui-react/widgets/StableWidgetDef.js +1 -1
  838. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  839. package/lib/esm/appui-react/widgets/ToolSettingsContent.js +2 -1
  840. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  841. package/lib/esm/appui-react/widgets/ToolWidget.js +3 -2
  842. package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
  843. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
  844. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  845. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +2 -36
  846. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  847. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
  848. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
  849. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js +5 -2
  850. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  851. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  852. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  853. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  854. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  855. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +2 -3
  856. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  857. package/lib/esm/appui-react/widgets/WidgetDef.js +18 -7
  858. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  859. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  860. package/lib/esm/appui-react/widgets/WidgetHost.js +1 -0
  861. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  862. package/lib/esm/appui-react/widgets/WidgetStack.d.ts.map +1 -1
  863. package/lib/esm/appui-react/widgets/WidgetStack.js +2 -0
  864. package/lib/esm/appui-react/widgets/WidgetStack.js.map +1 -1
  865. package/lib/esm/appui-react/zones/FrameworkZone.js.map +1 -1
  866. package/lib/esm/appui-react/zones/StatusBarZone.js.map +1 -1
  867. package/lib/esm/appui-react/zones/Zone.d.ts +1 -1
  868. package/lib/esm/appui-react/zones/Zone.d.ts.map +1 -1
  869. package/lib/esm/appui-react/zones/Zone.js +2 -1
  870. package/lib/esm/appui-react/zones/Zone.js.map +1 -1
  871. package/lib/esm/appui-react/zones/ZoneDef.d.ts +4 -4
  872. package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
  873. package/lib/esm/appui-react/zones/ZoneDef.js +5 -4
  874. package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
  875. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  876. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  877. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js +2 -1
  878. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  879. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  880. package/lib/esm/appui-react.d.ts +15 -18
  881. package/lib/esm/appui-react.d.ts.map +1 -1
  882. package/lib/esm/appui-react.js +15 -18
  883. package/lib/esm/appui-react.js.map +1 -1
  884. package/lib/public/locales/en/UiFramework.json +9 -2
  885. package/package.json +46 -53
  886. package/lib/cjs/appui-react/UserInfo.d.ts +0 -58
  887. package/lib/cjs/appui-react/UserInfo.d.ts.map +0 -1
  888. package/lib/cjs/appui-react/UserInfo.js +0 -34
  889. package/lib/cjs/appui-react/UserInfo.js.map +0 -1
  890. package/lib/cjs/appui-react/content/SavedView.d.ts.map +0 -1
  891. package/lib/cjs/appui-react/content/SavedView.js.map +0 -1
  892. package/lib/cjs/appui-react/content/SavedViewLayout.d.ts.map +0 -1
  893. package/lib/cjs/appui-react/content/SavedViewLayout.js.map +0 -1
  894. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
  895. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
  896. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js +0 -34
  897. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
  898. package/lib/cjs/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  899. package/lib/cjs/appui-react/uisettings/AppUiSettings.js.map +0 -1
  900. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
  901. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  902. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js +0 -74
  903. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  904. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts +0 -21
  905. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  906. package/lib/cjs/appui-react/uisettings/useUiSettings.js +0 -28
  907. package/lib/cjs/appui-react/uisettings/useUiSettings.js.map +0 -1
  908. package/lib/esm/appui-react/UserInfo.d.ts +0 -58
  909. package/lib/esm/appui-react/UserInfo.d.ts.map +0 -1
  910. package/lib/esm/appui-react/UserInfo.js +0 -30
  911. package/lib/esm/appui-react/UserInfo.js.map +0 -1
  912. package/lib/esm/appui-react/content/SavedView.d.ts.map +0 -1
  913. package/lib/esm/appui-react/content/SavedView.js.map +0 -1
  914. package/lib/esm/appui-react/content/SavedViewLayout.d.ts.map +0 -1
  915. package/lib/esm/appui-react/content/SavedViewLayout.js.map +0 -1
  916. package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
  917. package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
  918. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js +0 -31
  919. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
  920. package/lib/esm/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  921. package/lib/esm/appui-react/uisettings/AppUiSettings.js.map +0 -1
  922. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
  923. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  924. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js +0 -68
  925. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  926. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts +0 -21
  927. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  928. package/lib/esm/appui-react/uisettings/useUiSettings.js +0 -23
  929. package/lib/esm/appui-react/uisettings/useUiSettings.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ContentLayout.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentLayout.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAe,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAA8E,MAAM,uBAAuB,CAAC;AAsK5J;GACG;AACH,UAAU,WAAW;IACnB,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IAC7F,QAAQ,EAAE,OAAO,CAAC;CACnB;AA6JD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAc;IAEjC,iCAAiC;IAC1B,EAAE,EAAE,MAAM,CAAM;IACvB,iCAAiC;IAC1B,WAAW,EAAE,MAAM,CAAM;gBACpB,WAAW,EAAE,kBAAkB;IAO3C,IAAW,SAAS,IAAI,WAAW,GAAG,SAAS,CAA4B;IAE3E;;OAEG;IACI,MAAM,IAAI,kBAAkB;IAEnC;OACG;IACI,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,SAAS;IAa5G;OACG;IACI,qBAAqB,IAAI,MAAM,EAAE;IAexC,OAAO,CAAC,gCAAgC;IAuBxC,OAAO,CAAC,8BAA8B;IAuBtC,gBAAgB;WACF,WAAW,CAAC,WAAW,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;CAUrF;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,gBAAgB,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,OAAO,CAAC,+BAA+B,CAAC;CAAI;AAE7F;GACG;AACH,UAAU,kBAAkB;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC9D,aAAa,EAAE,gBAAgB,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;IAEjG,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBAEjD,KAAK,EAAE,2BAA2B;IAgB9B,iBAAiB;IAIjB,oBAAoB;IAIpC,OAAO,CAAC,6BAA6B,CAYnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAezC,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,UAAU,CAEhB;CACH"}
1
+ {"version":3,"file":"ContentLayout.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentLayout.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAA8E,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAqKrK;GACG;AACH,UAAU,WAAW;IACnB,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IAC7F,QAAQ,EAAE,OAAO,CAAC;CACnB;AA6JD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAc;IAEjC,iCAAiC;IAC1B,EAAE,EAAE,MAAM,CAAM;IACvB,iCAAiC;IAC1B,WAAW,EAAE,MAAM,CAAM;gBACpB,WAAW,EAAE,kBAAkB;IAO3C,IAAW,SAAS,IAAI,WAAW,GAAG,SAAS,CAA4B;IAE3E;;OAEG;IACI,MAAM,IAAI,kBAAkB;IAEnC;OACG;IACI,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,SAAS;IAa5G;OACG;IACI,qBAAqB,IAAI,MAAM,EAAE;IAexC,OAAO,CAAC,gCAAgC;IAuBxC,OAAO,CAAC,8BAA8B;IAuBtC,gBAAgB;WACF,WAAW,CAAC,WAAW,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;CAUrF;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,gBAAgB,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,OAAO,CAAC,+BAA+B,CAAC;CAAI;AAE7F;GACG;AACH,UAAU,kBAAkB;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC9D,aAAa,EAAE,gBAAgB,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;IAEjG,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBAEjD,KAAK,EAAE,2BAA2B;IAgB9B,iBAAiB;IAIjB,oBAAoB;IAIpC,OAAO,CAAC,6BAA6B,CAYnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAezC,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,UAAU,CAEhB;CACH"}
@@ -9,10 +9,11 @@
9
9
  import "./ContentLayout.scss";
10
10
  import classnames from "classnames";
11
11
  import * as React from "react";
12
- import SplitPane from "react-split-pane";
13
- import { Orientation, UiEvent } from "@itwin/core-react";
12
+ import { SplitPane } from "./split-pane/SplitPane";
13
+ import { Orientation } from "@itwin/core-react";
14
14
  import { FrontstageManager } from "../frontstage/FrontstageManager";
15
15
  import { UiShowHideManager } from "../utils/UiShowHideManager";
16
+ import { UiEvent } from "@itwin/appui-abstract";
16
17
  import { ContentViewManager } from "./ContentViewManager";
17
18
  /** ContentWrapper React component.
18
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ContentLayout.js","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentLayout.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 ContentView\r\n */\r\n\r\n// cSpell:ignore contentlayout\r\n\r\nimport \"./ContentLayout.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport SplitPane from \"react-split-pane\";\r\nimport { CommonProps, Orientation, UiEvent } from \"@itwin/core-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { ContentGroup } from \"./ContentGroup\";\r\nimport { ContentLayoutProps, LayoutFragmentProps, LayoutHorizontalSplitProps, LayoutSplitPropsBase, LayoutVerticalSplitProps } from \"@itwin/appui-abstract\";\r\nimport { ActiveContentChangedEventArgs, ContentViewManager } from \"./ContentViewManager\";\r\n\r\n/** Properties for [[ContentWrapper]] */\r\ninterface ContentWrapperProps extends CommonProps {\r\n content: React.ReactNode;\r\n}\r\n\r\n/** State for [[ContentWrapper]] */\r\ninterface ContentWrapperState {\r\n content: React.ReactNode;\r\n isActive: boolean;\r\n}\r\n\r\n/** ContentWrapper React component.\r\n */\r\nclass ContentWrapper extends React.Component<ContentWrapperProps, ContentWrapperState> {\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<ContentWrapperState>;\r\n\r\n constructor(props: ContentWrapperProps) {\r\n super(props);\r\n\r\n this.state = {\r\n content: this.props.content,\r\n isActive: this.props.content === ContentViewManager.getActiveContent(),\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n const overlayClassName = classnames(\r\n \"uifw-contentlayout-overlay-div\",\r\n this.state.isActive ? \"uifw-contentlayout-overlay-active\" : \"uifw-contentlayout-overlay-inactive\",\r\n );\r\n\r\n return (\r\n <div className={classnames(\"uifw-contentlayout-wrapper\", this.props.className)} style={this.props.style}\r\n onMouseDown={this._handleMouseDown} onMouseMove={UiShowHideManager.handleContentMouseMove} role=\"presentation\"\r\n >\r\n {this.state.content}\r\n <div className={overlayClassName} />\r\n </div>\r\n );\r\n }\r\n\r\n private _handleMouseDown = (_event: React.MouseEvent<HTMLDivElement>) => {\r\n // event.preventDefault();\r\n\r\n ContentViewManager.setActiveContent(this.state.content);\r\n };\r\n\r\n public override componentDidMount() {\r\n ContentViewManager.onActiveContentChangedEvent.addListener(this._handleActiveContentChanged);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n ContentViewManager.onActiveContentChangedEvent.removeListener(this._handleActiveContentChanged);\r\n }\r\n\r\n private _handleActiveContentChanged = (args: ActiveContentChangedEventArgs) => {\r\n const isActive = this.state.content === args.activeContent;\r\n if (this.state.isActive !== isActive) {\r\n this.setState({ isActive });\r\n }\r\n };\r\n\r\n // istanbul ignore next\r\n public override componentDidUpdate(prevProps: ContentWrapperProps, _prevState: ContentWrapperState) {\r\n if (this.props.content !== prevProps.content) {\r\n this.setState((_, props) => ({ content: props.content, isActive: props.content === ContentViewManager.getActiveContent() }));\r\n }\r\n }\r\n\r\n}\r\n\r\n/** Properties for the [[SplitContainer]] component */\r\ninterface SplitContainerProps extends CommonProps {\r\n contentA: React.ReactNode;\r\n contentB: React.ReactNode;\r\n orientation: Orientation;\r\n percentage: number;\r\n resizable: boolean;\r\n minSizeTopLeft: number;\r\n minSizeBottomRight: number;\r\n splitterStateId?: string;\r\n onSplitterChange?: (size: number, percentage: number) => void;\r\n}\r\n\r\n/** Split Container class.\r\n */\r\nclass SplitContainer extends React.Component<SplitContainerProps> {\r\n private _containerDiv: HTMLDivElement | null = null;\r\n\r\n constructor(props: SplitContainerProps) {\r\n super(props);\r\n }\r\n\r\n private _onSplitterChange = (size: number): void => {\r\n let percentage = 0;\r\n\r\n // istanbul ignore else\r\n if (this._containerDiv && size > 0) {\r\n if (this.props.orientation === Orientation.Horizontal) {\r\n const height = this._containerDiv.getBoundingClientRect().height;\r\n // istanbul ignore if\r\n if (height > 0)\r\n percentage = size / height;\r\n } else {\r\n const width = this._containerDiv.getBoundingClientRect().width;\r\n // istanbul ignore if\r\n if (width > 0)\r\n percentage = size / width;\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.props.onSplitterChange)\r\n this.props.onSplitterChange(size, percentage);\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const orientation = (this.props.orientation === Orientation.Horizontal) ? \"horizontal\" : \"vertical\";\r\n const defaultSize = `${(this.props.percentage * 100).toString()}%`;\r\n const minSizeTopLeft = this.props.minSizeTopLeft;\r\n const minSizeBottomRight = -(this.props.minSizeBottomRight);\r\n\r\n return (\r\n <div ref={(e) => { this._containerDiv = e; }}\r\n className={classnames(\"uifw-contentlayout-full-size\", this.props.className)}\r\n style={this.props.style}\r\n >\r\n <SplitPane split={orientation}\r\n minSize={minSizeTopLeft} maxSize={minSizeBottomRight} defaultSize={defaultSize}\r\n onChange={this._onSplitterChange} allowResize={this.props.resizable}\r\n >\r\n {this.props.contentA}\r\n {this.props.contentB}\r\n </SplitPane>\r\n </div >\r\n );\r\n }\r\n}\r\n\r\n/** Properties for [[SingleContentContainer]] component\r\n */\r\ninterface SingleContentProps extends CommonProps {\r\n content: React.ReactNode;\r\n}\r\n\r\n/** Single Content Container class.\r\n */\r\nclass SingleContentContainer extends React.Component<SingleContentProps> {\r\n\r\n public override render(): React.ReactNode {\r\n\r\n return (\r\n <div className={classnames(\"uifw-contentlayout-full-size\", this.props.className)} style={this.props.style} data-testid=\"single-content-container\"\r\n onMouseMove={UiShowHideManager.handleContentMouseMove}\r\n >\r\n {this.props.content}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/** Common interface for HorizontalSplit and VerticalSplit\r\n */\r\ninterface LayoutSplit {\r\n createContentContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode;\r\n isLocked: boolean;\r\n}\r\n\r\n/** Minimum split size */\r\nconst MIN_SPLIT_SIZE = 6;\r\n\r\n/** Base Split class.\r\n */\r\nclass BaseSplit {\r\n public defaultPercentage: number;\r\n public stateId: string = \"\";\r\n public isLocked: boolean = false;\r\n\r\n constructor(props: LayoutSplitPropsBase) {\r\n this.defaultPercentage = props.percentage;\r\n\r\n // istanbul ignore else\r\n if (props.id)\r\n this.stateId = props.id;\r\n\r\n // istanbul ignore else\r\n if (props.lock)\r\n this.isLocked = props.lock;\r\n }\r\n}\r\n\r\n/** Horizontal Split class.\r\n */\r\nclass HorizontalSplit extends BaseSplit implements LayoutSplit {\r\n private _topIndex: number = -1;\r\n private _bottomIndex: number = -1;\r\n private _topSplit?: LayoutSplit;\r\n private _bottomSplit?: LayoutSplit;\r\n private _props: LayoutHorizontalSplitProps;\r\n private _minSizeTop: number = MIN_SPLIT_SIZE;\r\n private _minSizeBottom: number = MIN_SPLIT_SIZE;\r\n\r\n constructor(props: LayoutHorizontalSplitProps) {\r\n super(props);\r\n\r\n this._props = props;\r\n\r\n if (typeof props.top === \"number\") {\r\n this._topIndex = props.top;\r\n } else {\r\n this._topSplit = ContentLayoutDef.createSplit(props.top);\r\n }\r\n\r\n if (typeof props.bottom === \"number\") {\r\n this._bottomIndex = props.bottom;\r\n } else {\r\n this._bottomSplit = ContentLayoutDef.createSplit(props.bottom);\r\n }\r\n\r\n if (props.minSizeTop)\r\n this._minSizeTop = Math.max(props.minSizeTop, MIN_SPLIT_SIZE);\r\n\r\n if (props.minSizeBottom)\r\n this._minSizeBottom = Math.max(props.minSizeBottom, MIN_SPLIT_SIZE);\r\n }\r\n\r\n private _handleSplitterChange = (_size: number, percentage: number): void => {\r\n this._props.percentage = percentage;\r\n };\r\n\r\n public createContentContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode {\r\n if (this.isLocked)\r\n resizable = false;\r\n\r\n const topContent = (!this._topSplit) ?\r\n <ContentWrapper content={contentNodes[this._topIndex]} /> :\r\n this._topSplit.createContentContainer(contentNodes, resizable);\r\n const bottomContent = (!this._bottomSplit) ?\r\n <ContentWrapper content={contentNodes[this._bottomIndex]} /> :\r\n this._bottomSplit.createContentContainer(contentNodes, resizable);\r\n\r\n return (\r\n <SplitContainer\r\n contentA={topContent}\r\n contentB={bottomContent}\r\n orientation={Orientation.Horizontal}\r\n percentage={this.defaultPercentage}\r\n resizable={resizable}\r\n minSizeTopLeft={this._minSizeTop}\r\n minSizeBottomRight={this._minSizeBottom}\r\n splitterStateId={this.stateId}\r\n onSplitterChange={this._handleSplitterChange}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** Vertical Split class.\r\n */\r\nclass VerticalSplit extends BaseSplit implements LayoutSplit {\r\n private _leftIndex: number = -1;\r\n private _rightIndex: number = -1;\r\n private _leftSplit?: LayoutSplit;\r\n private _rightSplit?: LayoutSplit;\r\n private _props: LayoutVerticalSplitProps;\r\n private _minSizeLeft: number = MIN_SPLIT_SIZE;\r\n private _minSizeRight: number = MIN_SPLIT_SIZE;\r\n\r\n constructor(props: LayoutVerticalSplitProps) {\r\n super(props);\r\n\r\n this._props = props;\r\n\r\n if (typeof props.left === \"number\") {\r\n this._leftIndex = props.left;\r\n } else {\r\n this._leftSplit = ContentLayoutDef.createSplit(props.left);\r\n }\r\n\r\n if (typeof props.right === \"number\") {\r\n this._rightIndex = props.right;\r\n } else {\r\n this._rightSplit = ContentLayoutDef.createSplit(props.right);\r\n }\r\n\r\n if (props.minSizeLeft)\r\n this._minSizeLeft = Math.max(props.minSizeLeft, MIN_SPLIT_SIZE);\r\n\r\n if (props.minSizeRight)\r\n this._minSizeRight = Math.max(props.minSizeRight, MIN_SPLIT_SIZE);\r\n }\r\n\r\n private _handleSplitterChange = (_size: number, percentage: number): void => {\r\n this._props.percentage = percentage;\r\n };\r\n\r\n public createContentContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode {\r\n if (this.isLocked)\r\n resizable = false;\r\n\r\n const leftContent = (!this._leftSplit) ?\r\n <ContentWrapper content={contentNodes[this._leftIndex]} /> :\r\n this._leftSplit.createContentContainer(contentNodes, resizable);\r\n const rightContent = (!this._rightSplit) ?\r\n <ContentWrapper content={contentNodes[this._rightIndex]} /> :\r\n this._rightSplit.createContentContainer(contentNodes, resizable);\r\n\r\n return (\r\n <SplitContainer\r\n contentA={leftContent}\r\n contentB={rightContent}\r\n orientation={Orientation.Vertical}\r\n percentage={this.defaultPercentage}\r\n resizable={resizable}\r\n minSizeTopLeft={this._minSizeLeft}\r\n minSizeBottomRight={this._minSizeRight}\r\n splitterStateId={this.stateId}\r\n onSplitterChange={this._handleSplitterChange}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** Content Layout Definition class.\r\n * @public\r\n */\r\nexport class ContentLayoutDef {\r\n private _layoutProps: ContentLayoutProps;\r\n private _rootSplit?: LayoutSplit;\r\n\r\n /** ID for this Content Layout */\r\n public id: string = \"\";\r\n /** Description of the layout. */\r\n public description: string = \"\";\r\n constructor(layoutProps: ContentLayoutProps) {\r\n this._layoutProps = layoutProps;\r\n this.id = layoutProps.id;\r\n if (layoutProps.description !== undefined)\r\n this.description = layoutProps.description;\r\n }\r\n\r\n public get rootSplit(): LayoutSplit | undefined { return this._rootSplit; }\r\n\r\n /** Creates [[ContentLayoutProps]] for JSON purposes\r\n * @public\r\n */\r\n public toJSON(): ContentLayoutProps { return this._layoutProps; }\r\n\r\n /** Fill a layout container with React nodes for each content view\r\n */\r\n public fillLayoutContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode | undefined {\r\n this._rootSplit = ContentLayoutDef.createSplit(this._layoutProps);\r\n\r\n if (this.rootSplit) {\r\n return this.rootSplit.createContentContainer(contentNodes, resizable);\r\n }\r\n\r\n if (contentNodes.length > 0)\r\n return <SingleContentContainer content={contentNodes[0]} />;\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the indexes of content views used in this Content Layout\r\n */\r\n public getUsedContentIndexes(): number[] {\r\n let allContentIndexes: number[] = [];\r\n\r\n if (!this._layoutProps.horizontalSplit && !this._layoutProps.verticalSplit)\r\n allContentIndexes.push(0);\r\n else {\r\n allContentIndexes = allContentIndexes.concat(this.getHorizontalSplitContentIndexes(this._layoutProps.horizontalSplit));\r\n allContentIndexes = allContentIndexes.concat(this.getVerticalSplitContentIndexes(this._layoutProps.verticalSplit));\r\n }\r\n\r\n const uniqueContentIndexes = [...new Set(allContentIndexes)];\r\n\r\n return uniqueContentIndexes;\r\n }\r\n\r\n private getHorizontalSplitContentIndexes(splitProps?: LayoutHorizontalSplitProps): number[] {\r\n let contentIndexes: number[] = [];\r\n\r\n if (!splitProps)\r\n return contentIndexes;\r\n\r\n if (typeof splitProps.top === \"number\")\r\n contentIndexes.push(splitProps.top);\r\n else {\r\n contentIndexes = contentIndexes.concat(this.getHorizontalSplitContentIndexes(splitProps.top.horizontalSplit));\r\n contentIndexes = contentIndexes.concat(this.getVerticalSplitContentIndexes(splitProps.top.verticalSplit));\r\n }\r\n\r\n if (typeof splitProps.bottom === \"number\")\r\n contentIndexes.push(splitProps.bottom);\r\n else {\r\n contentIndexes = contentIndexes.concat(this.getHorizontalSplitContentIndexes(splitProps.bottom.horizontalSplit));\r\n contentIndexes = contentIndexes.concat(this.getVerticalSplitContentIndexes(splitProps.bottom.verticalSplit));\r\n }\r\n\r\n return contentIndexes;\r\n }\r\n\r\n private getVerticalSplitContentIndexes(splitProps?: LayoutVerticalSplitProps): number[] {\r\n let contentIndexes: number[] = [];\r\n\r\n if (!splitProps)\r\n return contentIndexes;\r\n\r\n if (typeof splitProps.left === \"number\")\r\n contentIndexes.push(splitProps.left);\r\n else {\r\n contentIndexes = contentIndexes.concat(this.getHorizontalSplitContentIndexes(splitProps.left.horizontalSplit));\r\n contentIndexes = contentIndexes.concat(this.getVerticalSplitContentIndexes(splitProps.left.verticalSplit));\r\n }\r\n\r\n if (typeof splitProps.right === \"number\")\r\n contentIndexes.push(splitProps.right);\r\n else {\r\n contentIndexes = contentIndexes.concat(this.getHorizontalSplitContentIndexes(splitProps.right.horizontalSplit));\r\n contentIndexes = contentIndexes.concat(this.getVerticalSplitContentIndexes(splitProps.right.verticalSplit));\r\n }\r\n\r\n return contentIndexes;\r\n }\r\n\r\n /** @internal */\r\n public static createSplit(fragmentDef: LayoutFragmentProps): LayoutSplit | undefined {\r\n if (fragmentDef.horizontalSplit) {\r\n return new HorizontalSplit(fragmentDef.horizontalSplit);\r\n } else if (fragmentDef.verticalSplit) {\r\n return new VerticalSplit(fragmentDef.verticalSplit);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n}\r\n\r\n/** Content Layout Activated Event Args class.\r\n * @public\r\n */\r\nexport interface ContentLayoutActivatedEventArgs {\r\n contentLayout: ContentLayoutDef;\r\n contentGroup: ContentGroup;\r\n}\r\n\r\n/** Content Layout Activated Event class.\r\n * @public\r\n */\r\nexport class ContentLayoutActivatedEvent extends UiEvent<ContentLayoutActivatedEventArgs> { }\r\n\r\n/** State for the [[ContentLayout]].\r\n */\r\ninterface ContentLayoutState {\r\n contentLayoutDef: ContentLayoutDef;\r\n contentContainer?: React.ReactNode;\r\n contentGroupId?: string;\r\n}\r\n\r\n/** Properties for the [[ContentLayout]] React component.\r\n * @public\r\n */\r\nexport interface ContentLayoutComponentProps extends CommonProps {\r\n contentLayout: ContentLayoutDef;\r\n contentGroup: ContentGroup;\r\n isInFooterMode: boolean;\r\n}\r\n\r\n/** Content Layout React component.\r\n * @public\r\n */\r\nexport class ContentLayout extends React.Component<ContentLayoutComponentProps, ContentLayoutState> {\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<ContentLayoutState>;\r\n\r\n constructor(props: ContentLayoutComponentProps) {\r\n super(props);\r\n\r\n const contentLayoutDef = this.props.contentLayout;\r\n const contentGroup = this.props.contentGroup;\r\n\r\n const contentNodes = contentGroup.getContentNodes();\r\n const contentContainer = contentLayoutDef.fillLayoutContainer(contentNodes, true);\r\n\r\n this.state = {\r\n contentLayoutDef: this.props.contentLayout,\r\n contentContainer,\r\n contentGroupId: this.props.contentGroup.groupId,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n FrontstageManager.onContentLayoutActivatedEvent.addListener(this._handleContentLayoutActivated);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n FrontstageManager.onContentLayoutActivatedEvent.removeListener(this._handleContentLayoutActivated);\r\n }\r\n\r\n private _handleContentLayoutActivated = (args: ContentLayoutActivatedEventArgs) => {\r\n const contentLayoutDef = args.contentLayout;\r\n const contentGroup = args.contentGroup;\r\n\r\n const contentNodes = contentGroup.getContentNodes();\r\n const contentContainer = contentLayoutDef.fillLayoutContainer(contentNodes, true);\r\n\r\n this.setState({\r\n contentLayoutDef: args.contentLayout,\r\n contentContainer,\r\n contentGroupId: contentGroup.groupId,\r\n });\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (this.state.contentContainer) {\r\n return (\r\n <div id=\"uifw-contentlayout-div\" className={this.props.className} style={this.props.style}\r\n key={`${this.state.contentGroupId}-${this.state.contentLayoutDef.id}`}\r\n onMouseDown={this._onMouseDown} onMouseUp={this._onMouseUp} role=\"presentation\"\r\n >\r\n {this.state.contentContainer}\r\n </div>\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _onMouseDown = (_event: React.MouseEvent<HTMLDivElement>) => {\r\n ContentViewManager.setMouseDown(true);\r\n };\r\n\r\n private _onMouseUp = (_event: React.MouseEvent<HTMLDivElement>) => {\r\n ContentViewManager.setMouseDown(false);\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"ContentLayout.js","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentLayout.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,8BAA8B;AAE9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAuH,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrK,OAAO,EAAiC,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAazF;GACG;AACH,MAAM,cAAe,SAAQ,KAAK,CAAC,SAAmD;IAKpF,YAAY,KAA0B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAwBP,qBAAgB,GAAG,CAAC,MAAwC,EAAE,EAAE;YACtE,0BAA0B;YAE1B,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC,CAAC;QAUM,gCAA2B,GAAG,CAAC,IAAmC,EAAE,EAAE;YAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC;YAC3D,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC7B;QACH,CAAC,CAAC;QAzCA,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,kBAAkB,CAAC,gBAAgB,EAAE;SACvE,CAAC;IACJ,CAAC;IAEe,MAAM;QACpB,MAAM,gBAAgB,GAAG,UAAU,CACjC,gCAAgC,EAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,qCAAqC,CAClG,CAAC;QAEF,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,CAAC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACrG,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,CAAC,sBAAsB,EAAE,IAAI,EAAC,cAAc;YAE7G,IAAI,CAAC,KAAK,CAAC,OAAO;YACnB,6BAAK,SAAS,EAAE,gBAAgB,GAAI,CAChC,CACP,CAAC;IACJ,CAAC;IAQe,iBAAiB;QAC/B,kBAAkB,CAAC,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC/F,CAAC;IAEe,oBAAoB;QAClC,kBAAkB,CAAC,2BAA2B,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAClG,CAAC;IASD,uBAAuB;IACP,kBAAkB,CAAC,SAA8B,EAAE,UAA+B;QAChG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,KAAK,kBAAkB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;SAC9H;IACH,CAAC;CACF;AAeD;GACG;AACH,MAAM,cAAe,SAAQ,KAAK,CAAC,SAA8B;IAG/D,YAAY,KAA0B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAHP,kBAAa,GAA0B,IAAI,CAAC;QAM5C,sBAAiB,GAAG,CAAC,IAAY,EAAQ,EAAE;YACjD,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,uBAAuB;YACvB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG,CAAC,EAAE;gBAClC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU,EAAE;oBACrD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;oBACjE,qBAAqB;oBACrB,IAAI,MAAM,GAAG,CAAC;wBACZ,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC;iBAC9B;qBAAM;oBACL,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;oBAC/D,qBAAqB;oBACrB,IAAI,KAAK,GAAG,CAAC;wBACX,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;iBAC7B;gBAED,uBAAuB;gBACvB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB;oBAC7B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;aACjD;QACH,CAAC,CAAC;IAvBF,CAAC;IAyBe,MAAM;QACpB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;QACpG,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC;QACnE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QACjD,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAE5D,OAAO,CACL,6BAAK,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,UAAU,CAAC,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAC3E,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YAEvB,oBAAC,SAAS,IAAC,KAAK,EAAE,WAAW,EAC3B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAC9E,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;gBAElE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACV,CACP,CACR,CAAC;IACJ,CAAC;CACF;AAQD;GACG;AACH,MAAM,sBAAuB,SAAQ,KAAK,CAAC,SAA6B;IAEtD,MAAM;QAEpB,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,CAAC,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAc,0BAA0B,EAC/I,WAAW,EAAE,iBAAiB,CAAC,sBAAsB,IAEpD,IAAI,CAAC,KAAK,CAAC,OAAO,CACf,CACP,CAAC;IACJ,CAAC;CACF;AASD,0BAA0B;AAC1B,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB;GACG;AACH,MAAM,SAAS;IAKb,YAAY,KAA2B;QAHhC,YAAO,GAAW,EAAE,CAAC;QACrB,aAAQ,GAAY,KAAK,CAAC;QAG/B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC;QAE1C,uBAAuB;QACvB,IAAI,KAAK,CAAC,EAAE;YACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QAE1B,uBAAuB;QACvB,IAAI,KAAK,CAAC,IAAI;YACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;IAC/B,CAAC;CACF;AAED;GACG;AACH,MAAM,eAAgB,SAAQ,SAAS;IASrC,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;QATP,cAAS,GAAW,CAAC,CAAC,CAAC;QACvB,iBAAY,GAAW,CAAC,CAAC,CAAC;QAI1B,gBAAW,GAAW,cAAc,CAAC;QACrC,mBAAc,GAAW,cAAc,CAAC;QA0BxC,0BAAqB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAQ,EAAE;YAC1E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACtC,CAAC,CAAC;QAvBA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC1D;QAED,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAChE;QAED,IAAI,KAAK,CAAC,UAAU;YAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAEhE,IAAI,KAAK,CAAC,aAAa;YACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;IAMM,sBAAsB,CAAC,YAA+B,EAAE,SAAkB;QAC/E,IAAI,IAAI,CAAC,QAAQ;YACf,SAAS,GAAG,KAAK,CAAC;QAEpB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpC,oBAAC,cAAc,IAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1C,oBAAC,cAAc,IAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAEpE,OAAO,CACL,oBAAC,cAAc,IACb,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,WAAW,CAAC,UAAU,EACnC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAClC,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,IAAI,CAAC,WAAW,EAChC,kBAAkB,EAAE,IAAI,CAAC,cAAc,EACvC,eAAe,EAAE,IAAI,CAAC,OAAO,EAC7B,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,GAC5C,CACH,CAAC;IACJ,CAAC;CACF;AAED;GACG;AACH,MAAM,aAAc,SAAQ,SAAS;IASnC,YAAY,KAA+B;QACzC,KAAK,CAAC,KAAK,CAAC,CAAC;QATP,eAAU,GAAW,CAAC,CAAC,CAAC;QACxB,gBAAW,GAAW,CAAC,CAAC,CAAC;QAIzB,iBAAY,GAAW,cAAc,CAAC;QACtC,kBAAa,GAAW,cAAc,CAAC;QA0BvC,0BAAqB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAQ,EAAE;YAC1E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACtC,CAAC,CAAC;QAvBA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC5D;QAED,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;YACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC9D;QAED,IAAI,KAAK,CAAC,WAAW;YACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAElE,IAAI,KAAK,CAAC,YAAY;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAMM,sBAAsB,CAAC,YAA+B,EAAE,SAAkB;QAC/E,IAAI,IAAI,CAAC,QAAQ;YACf,SAAS,GAAG,KAAK,CAAC;QAEpB,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACtC,oBAAC,cAAc,IAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,GAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACxC,oBAAC,cAAc,IAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAEnE,OAAO,CACL,oBAAC,cAAc,IACb,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,CAAC,QAAQ,EACjC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAClC,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,IAAI,CAAC,YAAY,EACjC,kBAAkB,EAAE,IAAI,CAAC,aAAa,EACtC,eAAe,EAAE,IAAI,CAAC,OAAO,EAC7B,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,GAC5C,CACH,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAQ3B,YAAY,WAA+B;QAJ3C,iCAAiC;QAC1B,OAAE,GAAW,EAAE,CAAC;QACvB,iCAAiC;QAC1B,gBAAW,GAAW,EAAE,CAAC;QAE9B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS;YACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAC/C,CAAC;IAED,IAAW,SAAS,KAA8B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3E;;OAEG;IACI,MAAM,KAAyB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEjE;OACG;IACI,mBAAmB,CAAC,YAA+B,EAAE,SAAkB;QAC5E,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;SACvE;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YACzB,OAAO,oBAAC,sBAAsB,IAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAI,CAAC;QAE9D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;OACG;IACI,qBAAqB;QAC1B,IAAI,iBAAiB,GAAa,EAAE,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa;YACxE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACvB;YACH,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;YACvH,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;SACpH;QAED,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE7D,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAEO,gCAAgC,CAAC,UAAuC;QAC9E,IAAI,cAAc,GAAa,EAAE,CAAC;QAElC,IAAI,CAAC,UAAU;YACb,OAAO,cAAc,CAAC;QAExB,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ;YACpC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACjC;YACH,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAC9G,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;SAC3G;QAED,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ;YACvC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACpC;YACH,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;YACjH,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;SAC9G;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,8BAA8B,CAAC,UAAqC;QAC1E,IAAI,cAAc,GAAa,EAAE,CAAC;QAElC,IAAI,CAAC,UAAU;YACb,OAAO,cAAc,CAAC;QAExB,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ;YACrC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAClC;YACH,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC/G,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;SAC5G;QAED,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ;YACtC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACnC;YACH,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAChH,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SAC7G;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,WAAW,CAAC,WAAgC;QACxD,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;SACzD;aAAM,IAAI,WAAW,CAAC,aAAa,EAAE;YACpC,OAAO,IAAI,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;SACrD;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CAEF;AAUD;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,OAAwC;CAAI;AAmB7F;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,SAA0D;IAKjG,YAAY,KAAkC;QAC5C,KAAK,CAAC,KAAK,CAAC,CAAC;QAuBP,kCAA6B,GAAG,CAAC,IAAqC,EAAE,EAAE;YAChF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEvC,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;YACpD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAElF,IAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,IAAI,CAAC,aAAa;gBACpC,gBAAgB;gBAChB,cAAc,EAAE,YAAY,CAAC,OAAO;aACrC,CAAC,CAAC;QACL,CAAC,CAAC;QAiBM,iBAAY,GAAG,CAAC,MAAwC,EAAE,EAAE;YAClE,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,MAAwC,EAAE,EAAE;YAChE,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC;QAxDA,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAE7C,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;QACpD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAElF,IAAI,CAAC,KAAK,GAAG;YACX,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;YAC1C,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO;SAChD,CAAC;IACJ,CAAC;IAEe,iBAAiB;QAC/B,iBAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAClG,CAAC;IAEe,oBAAoB;QAClC,iBAAiB,CAAC,6BAA6B,CAAC,cAAc,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACrG,CAAC;IAgBe,MAAM;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAC/B,OAAO,CACL,6BAAK,EAAE,EAAC,wBAAwB,EAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvF,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,EACrE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAC,cAAc,IAE9E,IAAI,CAAC,KAAK,CAAC,gBAAgB,CACxB,CACP,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CASF","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 ContentView\r\n */\r\n\r\n// cSpell:ignore contentlayout\r\n\r\nimport \"./ContentLayout.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { SplitPane } from \"./split-pane/SplitPane\";\r\nimport { CommonProps, Orientation } from \"@itwin/core-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { ContentGroup } from \"./ContentGroup\";\r\nimport { ContentLayoutProps, LayoutFragmentProps, LayoutHorizontalSplitProps, LayoutSplitPropsBase, LayoutVerticalSplitProps, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { ActiveContentChangedEventArgs, ContentViewManager } from \"./ContentViewManager\";\r\n\r\n/** Properties for [[ContentWrapper]] */\r\ninterface ContentWrapperProps extends CommonProps {\r\n content: React.ReactNode;\r\n}\r\n\r\n/** State for [[ContentWrapper]] */\r\ninterface ContentWrapperState {\r\n content: React.ReactNode;\r\n isActive: boolean;\r\n}\r\n\r\n/** ContentWrapper React component.\r\n */\r\nclass ContentWrapper extends React.Component<ContentWrapperProps, ContentWrapperState> {\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<ContentWrapperState>;\r\n\r\n constructor(props: ContentWrapperProps) {\r\n super(props);\r\n\r\n this.state = {\r\n content: this.props.content,\r\n isActive: this.props.content === ContentViewManager.getActiveContent(),\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n const overlayClassName = classnames(\r\n \"uifw-contentlayout-overlay-div\",\r\n this.state.isActive ? \"uifw-contentlayout-overlay-active\" : \"uifw-contentlayout-overlay-inactive\",\r\n );\r\n\r\n return (\r\n <div className={classnames(\"uifw-contentlayout-wrapper\", this.props.className)} style={this.props.style}\r\n onMouseDown={this._handleMouseDown} onMouseMove={UiShowHideManager.handleContentMouseMove} role=\"presentation\"\r\n >\r\n {this.state.content}\r\n <div className={overlayClassName} />\r\n </div>\r\n );\r\n }\r\n\r\n private _handleMouseDown = (_event: React.MouseEvent<HTMLDivElement>) => {\r\n // event.preventDefault();\r\n\r\n ContentViewManager.setActiveContent(this.state.content);\r\n };\r\n\r\n public override componentDidMount() {\r\n ContentViewManager.onActiveContentChangedEvent.addListener(this._handleActiveContentChanged);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n ContentViewManager.onActiveContentChangedEvent.removeListener(this._handleActiveContentChanged);\r\n }\r\n\r\n private _handleActiveContentChanged = (args: ActiveContentChangedEventArgs) => {\r\n const isActive = this.state.content === args.activeContent;\r\n if (this.state.isActive !== isActive) {\r\n this.setState({ isActive });\r\n }\r\n };\r\n\r\n // istanbul ignore next\r\n public override componentDidUpdate(prevProps: ContentWrapperProps, _prevState: ContentWrapperState) {\r\n if (this.props.content !== prevProps.content) {\r\n this.setState((_, props) => ({ content: props.content, isActive: props.content === ContentViewManager.getActiveContent() }));\r\n }\r\n }\r\n}\r\n\r\n/** Properties for the [[SplitContainer]] component */\r\ninterface SplitContainerProps extends CommonProps {\r\n contentA: React.ReactNode;\r\n contentB: React.ReactNode;\r\n orientation: Orientation;\r\n percentage: number;\r\n resizable: boolean;\r\n minSizeTopLeft: number;\r\n minSizeBottomRight: number;\r\n splitterStateId?: string;\r\n onSplitterChange?: (size: number, percentage: number) => void;\r\n}\r\n\r\n/** Split Container class.\r\n */\r\nclass SplitContainer extends React.Component<SplitContainerProps> {\r\n private _containerDiv: HTMLDivElement | null = null;\r\n\r\n constructor(props: SplitContainerProps) {\r\n super(props);\r\n }\r\n\r\n private _onSplitterChange = (size: number): void => {\r\n let percentage = 0;\r\n\r\n // istanbul ignore else\r\n if (this._containerDiv && size > 0) {\r\n if (this.props.orientation === Orientation.Horizontal) {\r\n const height = this._containerDiv.getBoundingClientRect().height;\r\n // istanbul ignore if\r\n if (height > 0)\r\n percentage = size / height;\r\n } else {\r\n const width = this._containerDiv.getBoundingClientRect().width;\r\n // istanbul ignore if\r\n if (width > 0)\r\n percentage = size / width;\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.props.onSplitterChange)\r\n this.props.onSplitterChange(size, percentage);\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const orientation = (this.props.orientation === Orientation.Horizontal) ? \"horizontal\" : \"vertical\";\r\n const defaultSize = `${(this.props.percentage * 100).toString()}%`;\r\n const minSizeTopLeft = this.props.minSizeTopLeft;\r\n const minSizeBottomRight = -(this.props.minSizeBottomRight);\r\n\r\n return (\r\n <div ref={(e) => { this._containerDiv = e; }}\r\n className={classnames(\"uifw-contentlayout-full-size\", this.props.className)}\r\n style={this.props.style}\r\n >\r\n <SplitPane split={orientation}\r\n minSize={minSizeTopLeft} maxSize={minSizeBottomRight} defaultSize={defaultSize}\r\n onChange={this._onSplitterChange} allowResize={this.props.resizable}\r\n >\r\n {this.props.contentA}\r\n {this.props.contentB}\r\n </SplitPane>\r\n </div >\r\n );\r\n }\r\n}\r\n\r\n/** Properties for [[SingleContentContainer]] component\r\n */\r\ninterface SingleContentProps extends CommonProps {\r\n content: React.ReactNode;\r\n}\r\n\r\n/** Single Content Container class.\r\n */\r\nclass SingleContentContainer extends React.Component<SingleContentProps> {\r\n\r\n public override render(): React.ReactNode {\r\n\r\n return (\r\n <div className={classnames(\"uifw-contentlayout-full-size\", this.props.className)} style={this.props.style} data-testid=\"single-content-container\"\r\n onMouseMove={UiShowHideManager.handleContentMouseMove}\r\n >\r\n {this.props.content}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/** Common interface for HorizontalSplit and VerticalSplit\r\n */\r\ninterface LayoutSplit {\r\n createContentContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode;\r\n isLocked: boolean;\r\n}\r\n\r\n/** Minimum split size */\r\nconst MIN_SPLIT_SIZE = 6;\r\n\r\n/** Base Split class.\r\n */\r\nclass BaseSplit {\r\n public defaultPercentage: number;\r\n public stateId: string = \"\";\r\n public isLocked: boolean = false;\r\n\r\n constructor(props: LayoutSplitPropsBase) {\r\n this.defaultPercentage = props.percentage;\r\n\r\n // istanbul ignore else\r\n if (props.id)\r\n this.stateId = props.id;\r\n\r\n // istanbul ignore else\r\n if (props.lock)\r\n this.isLocked = props.lock;\r\n }\r\n}\r\n\r\n/** Horizontal Split class.\r\n */\r\nclass HorizontalSplit extends BaseSplit implements LayoutSplit {\r\n private _topIndex: number = -1;\r\n private _bottomIndex: number = -1;\r\n private _topSplit?: LayoutSplit;\r\n private _bottomSplit?: LayoutSplit;\r\n private _props: LayoutHorizontalSplitProps;\r\n private _minSizeTop: number = MIN_SPLIT_SIZE;\r\n private _minSizeBottom: number = MIN_SPLIT_SIZE;\r\n\r\n constructor(props: LayoutHorizontalSplitProps) {\r\n super(props);\r\n\r\n this._props = props;\r\n\r\n if (typeof props.top === \"number\") {\r\n this._topIndex = props.top;\r\n } else {\r\n this._topSplit = ContentLayoutDef.createSplit(props.top);\r\n }\r\n\r\n if (typeof props.bottom === \"number\") {\r\n this._bottomIndex = props.bottom;\r\n } else {\r\n this._bottomSplit = ContentLayoutDef.createSplit(props.bottom);\r\n }\r\n\r\n if (props.minSizeTop)\r\n this._minSizeTop = Math.max(props.minSizeTop, MIN_SPLIT_SIZE);\r\n\r\n if (props.minSizeBottom)\r\n this._minSizeBottom = Math.max(props.minSizeBottom, MIN_SPLIT_SIZE);\r\n }\r\n\r\n private _handleSplitterChange = (_size: number, percentage: number): void => {\r\n this._props.percentage = percentage;\r\n };\r\n\r\n public createContentContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode {\r\n if (this.isLocked)\r\n resizable = false;\r\n\r\n const topContent = (!this._topSplit) ?\r\n <ContentWrapper content={contentNodes[this._topIndex]} /> :\r\n this._topSplit.createContentContainer(contentNodes, resizable);\r\n const bottomContent = (!this._bottomSplit) ?\r\n <ContentWrapper content={contentNodes[this._bottomIndex]} /> :\r\n this._bottomSplit.createContentContainer(contentNodes, resizable);\r\n\r\n return (\r\n <SplitContainer\r\n contentA={topContent}\r\n contentB={bottomContent}\r\n orientation={Orientation.Horizontal}\r\n percentage={this.defaultPercentage}\r\n resizable={resizable}\r\n minSizeTopLeft={this._minSizeTop}\r\n minSizeBottomRight={this._minSizeBottom}\r\n splitterStateId={this.stateId}\r\n onSplitterChange={this._handleSplitterChange}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** Vertical Split class.\r\n */\r\nclass VerticalSplit extends BaseSplit implements LayoutSplit {\r\n private _leftIndex: number = -1;\r\n private _rightIndex: number = -1;\r\n private _leftSplit?: LayoutSplit;\r\n private _rightSplit?: LayoutSplit;\r\n private _props: LayoutVerticalSplitProps;\r\n private _minSizeLeft: number = MIN_SPLIT_SIZE;\r\n private _minSizeRight: number = MIN_SPLIT_SIZE;\r\n\r\n constructor(props: LayoutVerticalSplitProps) {\r\n super(props);\r\n\r\n this._props = props;\r\n\r\n if (typeof props.left === \"number\") {\r\n this._leftIndex = props.left;\r\n } else {\r\n this._leftSplit = ContentLayoutDef.createSplit(props.left);\r\n }\r\n\r\n if (typeof props.right === \"number\") {\r\n this._rightIndex = props.right;\r\n } else {\r\n this._rightSplit = ContentLayoutDef.createSplit(props.right);\r\n }\r\n\r\n if (props.minSizeLeft)\r\n this._minSizeLeft = Math.max(props.minSizeLeft, MIN_SPLIT_SIZE);\r\n\r\n if (props.minSizeRight)\r\n this._minSizeRight = Math.max(props.minSizeRight, MIN_SPLIT_SIZE);\r\n }\r\n\r\n private _handleSplitterChange = (_size: number, percentage: number): void => {\r\n this._props.percentage = percentage;\r\n };\r\n\r\n public createContentContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode {\r\n if (this.isLocked)\r\n resizable = false;\r\n\r\n const leftContent = (!this._leftSplit) ?\r\n <ContentWrapper content={contentNodes[this._leftIndex]} /> :\r\n this._leftSplit.createContentContainer(contentNodes, resizable);\r\n const rightContent = (!this._rightSplit) ?\r\n <ContentWrapper content={contentNodes[this._rightIndex]} /> :\r\n this._rightSplit.createContentContainer(contentNodes, resizable);\r\n\r\n return (\r\n <SplitContainer\r\n contentA={leftContent}\r\n contentB={rightContent}\r\n orientation={Orientation.Vertical}\r\n percentage={this.defaultPercentage}\r\n resizable={resizable}\r\n minSizeTopLeft={this._minSizeLeft}\r\n minSizeBottomRight={this._minSizeRight}\r\n splitterStateId={this.stateId}\r\n onSplitterChange={this._handleSplitterChange}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** Content Layout Definition class.\r\n * @public\r\n */\r\nexport class ContentLayoutDef {\r\n private _layoutProps: ContentLayoutProps;\r\n private _rootSplit?: LayoutSplit;\r\n\r\n /** ID for this Content Layout */\r\n public id: string = \"\";\r\n /** Description of the layout. */\r\n public description: string = \"\";\r\n constructor(layoutProps: ContentLayoutProps) {\r\n this._layoutProps = layoutProps;\r\n this.id = layoutProps.id;\r\n if (layoutProps.description !== undefined)\r\n this.description = layoutProps.description;\r\n }\r\n\r\n public get rootSplit(): LayoutSplit | undefined { return this._rootSplit; }\r\n\r\n /** Creates [[ContentLayoutProps]] for JSON purposes\r\n * @public\r\n */\r\n public toJSON(): ContentLayoutProps { return this._layoutProps; }\r\n\r\n /** Fill a layout container with React nodes for each content view\r\n */\r\n public fillLayoutContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode | undefined {\r\n this._rootSplit = ContentLayoutDef.createSplit(this._layoutProps);\r\n\r\n if (this.rootSplit) {\r\n return this.rootSplit.createContentContainer(contentNodes, resizable);\r\n }\r\n\r\n if (contentNodes.length > 0)\r\n return <SingleContentContainer content={contentNodes[0]} />;\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the indexes of content views used in this Content Layout\r\n */\r\n public getUsedContentIndexes(): number[] {\r\n let allContentIndexes: number[] = [];\r\n\r\n if (!this._layoutProps.horizontalSplit && !this._layoutProps.verticalSplit)\r\n allContentIndexes.push(0);\r\n else {\r\n allContentIndexes = allContentIndexes.concat(this.getHorizontalSplitContentIndexes(this._layoutProps.horizontalSplit));\r\n allContentIndexes = allContentIndexes.concat(this.getVerticalSplitContentIndexes(this._layoutProps.verticalSplit));\r\n }\r\n\r\n const uniqueContentIndexes = [...new Set(allContentIndexes)];\r\n\r\n return uniqueContentIndexes;\r\n }\r\n\r\n private getHorizontalSplitContentIndexes(splitProps?: LayoutHorizontalSplitProps): number[] {\r\n let contentIndexes: number[] = [];\r\n\r\n if (!splitProps)\r\n return contentIndexes;\r\n\r\n if (typeof splitProps.top === \"number\")\r\n contentIndexes.push(splitProps.top);\r\n else {\r\n contentIndexes = contentIndexes.concat(this.getHorizontalSplitContentIndexes(splitProps.top.horizontalSplit));\r\n contentIndexes = contentIndexes.concat(this.getVerticalSplitContentIndexes(splitProps.top.verticalSplit));\r\n }\r\n\r\n if (typeof splitProps.bottom === \"number\")\r\n contentIndexes.push(splitProps.bottom);\r\n else {\r\n contentIndexes = contentIndexes.concat(this.getHorizontalSplitContentIndexes(splitProps.bottom.horizontalSplit));\r\n contentIndexes = contentIndexes.concat(this.getVerticalSplitContentIndexes(splitProps.bottom.verticalSplit));\r\n }\r\n\r\n return contentIndexes;\r\n }\r\n\r\n private getVerticalSplitContentIndexes(splitProps?: LayoutVerticalSplitProps): number[] {\r\n let contentIndexes: number[] = [];\r\n\r\n if (!splitProps)\r\n return contentIndexes;\r\n\r\n if (typeof splitProps.left === \"number\")\r\n contentIndexes.push(splitProps.left);\r\n else {\r\n contentIndexes = contentIndexes.concat(this.getHorizontalSplitContentIndexes(splitProps.left.horizontalSplit));\r\n contentIndexes = contentIndexes.concat(this.getVerticalSplitContentIndexes(splitProps.left.verticalSplit));\r\n }\r\n\r\n if (typeof splitProps.right === \"number\")\r\n contentIndexes.push(splitProps.right);\r\n else {\r\n contentIndexes = contentIndexes.concat(this.getHorizontalSplitContentIndexes(splitProps.right.horizontalSplit));\r\n contentIndexes = contentIndexes.concat(this.getVerticalSplitContentIndexes(splitProps.right.verticalSplit));\r\n }\r\n\r\n return contentIndexes;\r\n }\r\n\r\n /** @internal */\r\n public static createSplit(fragmentDef: LayoutFragmentProps): LayoutSplit | undefined {\r\n if (fragmentDef.horizontalSplit) {\r\n return new HorizontalSplit(fragmentDef.horizontalSplit);\r\n } else if (fragmentDef.verticalSplit) {\r\n return new VerticalSplit(fragmentDef.verticalSplit);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n}\r\n\r\n/** Content Layout Activated Event Args class.\r\n * @public\r\n */\r\nexport interface ContentLayoutActivatedEventArgs {\r\n contentLayout: ContentLayoutDef;\r\n contentGroup: ContentGroup;\r\n}\r\n\r\n/** Content Layout Activated Event class.\r\n * @public\r\n */\r\nexport class ContentLayoutActivatedEvent extends UiEvent<ContentLayoutActivatedEventArgs> { }\r\n\r\n/** State for the [[ContentLayout]].\r\n */\r\ninterface ContentLayoutState {\r\n contentLayoutDef: ContentLayoutDef;\r\n contentContainer?: React.ReactNode;\r\n contentGroupId?: string;\r\n}\r\n\r\n/** Properties for the [[ContentLayout]] React component.\r\n * @public\r\n */\r\nexport interface ContentLayoutComponentProps extends CommonProps {\r\n contentLayout: ContentLayoutDef;\r\n contentGroup: ContentGroup;\r\n isInFooterMode: boolean;\r\n}\r\n\r\n/** Content Layout React component.\r\n * @public\r\n */\r\nexport class ContentLayout extends React.Component<ContentLayoutComponentProps, ContentLayoutState> {\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<ContentLayoutState>;\r\n\r\n constructor(props: ContentLayoutComponentProps) {\r\n super(props);\r\n\r\n const contentLayoutDef = this.props.contentLayout;\r\n const contentGroup = this.props.contentGroup;\r\n\r\n const contentNodes = contentGroup.getContentNodes();\r\n const contentContainer = contentLayoutDef.fillLayoutContainer(contentNodes, true);\r\n\r\n this.state = {\r\n contentLayoutDef: this.props.contentLayout,\r\n contentContainer,\r\n contentGroupId: this.props.contentGroup.groupId,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n FrontstageManager.onContentLayoutActivatedEvent.addListener(this._handleContentLayoutActivated);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n FrontstageManager.onContentLayoutActivatedEvent.removeListener(this._handleContentLayoutActivated);\r\n }\r\n\r\n private _handleContentLayoutActivated = (args: ContentLayoutActivatedEventArgs) => {\r\n const contentLayoutDef = args.contentLayout;\r\n const contentGroup = args.contentGroup;\r\n\r\n const contentNodes = contentGroup.getContentNodes();\r\n const contentContainer = contentLayoutDef.fillLayoutContainer(contentNodes, true);\r\n\r\n this.setState({\r\n contentLayoutDef: args.contentLayout,\r\n contentContainer,\r\n contentGroupId: contentGroup.groupId,\r\n });\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (this.state.contentContainer) {\r\n return (\r\n <div id=\"uifw-contentlayout-div\" className={this.props.className} style={this.props.style}\r\n key={`${this.state.contentGroupId}-${this.state.contentLayoutDef.id}`}\r\n onMouseDown={this._onMouseDown} onMouseUp={this._onMouseUp} role=\"presentation\"\r\n >\r\n {this.state.contentContainer}\r\n </div>\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _onMouseDown = (_event: React.MouseEvent<HTMLDivElement>) => {\r\n ContentViewManager.setMouseDown(true);\r\n };\r\n\r\n private _onMouseUp = (_event: React.MouseEvent<HTMLDivElement>) => {\r\n ContentViewManager.setMouseDown(false);\r\n };\r\n}\r\n"]}
@@ -2,7 +2,7 @@
2
2
  * @module ContentView
3
3
  */
4
4
  import * as React from "react";
5
- import { UiEvent } from "@itwin/core-react";
5
+ import { UiEvent } from "@itwin/appui-abstract";
6
6
  import { ContentControl } from "./ContentControl";
7
7
  /** [[MouseDownChangedEvent]] Args interface.
8
8
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"ContentViewManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentViewManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,OAAO,CAAC,yBAAyB,CAAC;CAAI;AAEjF;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,oCAAoC;IACpC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,OAAO,CAAC,6BAA6B,CAAC;CAAI;AAEzF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAkB;IAC3C,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAkB;IAEhD,yCAAyC;IACzC,gBAAuB,uBAAuB,wBAA+B;IAE7E,wDAAwD;IACxD,WAAkB,WAAW,IAAI,OAAO,CAEvC;IAED,oDAAoD;WACtC,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAKpD,6CAA6C;IAC7C,gBAAuB,2BAA2B,4BAAmC;IAErF,oDAAoD;WACtC,gBAAgB,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS;IAI7D,wCAAwC;WAC1B,uBAAuB,IAAI,cAAc,GAAG,SAAS;IAgBnE,yCAAyC;WAC3B,gBAAgB,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,oBAAoB,UAAQ,GAAG,IAAI;IAyCnG,8CAA8C;WAChC,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS;IAKjE;;;OAGG;WACW,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAM9E;;;OAGG;WACW,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAMhF;;;OAGG;WACW,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAMhF;;;OAGG;WACW,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAMrF;;;OAGG;WACW,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAM3E;;;OAGG;WACW,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;CAMlF"}
1
+ {"version":3,"file":"ContentViewManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentViewManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,OAAO,CAAC,yBAAyB,CAAC;CAAI;AAEjF;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,oCAAoC;IACpC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,OAAO,CAAC,6BAA6B,CAAC;CAAI;AAEzF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAkB;IAC3C,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAkB;IAEhD,yCAAyC;IACzC,gBAAuB,uBAAuB,wBAA+B;IAE7E,wDAAwD;IACxD,WAAkB,WAAW,IAAI,OAAO,CAEvC;IAED,oDAAoD;WACtC,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAKpD,6CAA6C;IAC7C,gBAAuB,2BAA2B,4BAAmC;IAErF,oDAAoD;WACtC,gBAAgB,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS;IAI7D,wCAAwC;WAC1B,uBAAuB,IAAI,cAAc,GAAG,SAAS;IAgBnE,yCAAyC;WAC3B,gBAAgB,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,oBAAoB,UAAQ,GAAG,IAAI;IAyCnG,8CAA8C;WAChC,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS;IAKjE;;;OAGG;WACW,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAM9E;;;OAGG;WACW,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAMhF;;;OAGG;WACW,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAMhF;;;OAGG;WACW,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAMrF;;;OAGG;WACW,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAM3E;;;OAGG;WACW,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;CAMlF"}
@@ -5,7 +5,7 @@
5
5
  /** @packageDocumentation
6
6
  * @module ContentView
7
7
  */
8
- import { UiEvent } from "@itwin/core-react";
8
+ import { UiEvent } from "@itwin/appui-abstract";
9
9
  import { FrontstageManager } from "../frontstage/FrontstageManager";
10
10
  import { ViewUtilities } from "../utils/ViewUtilities";
11
11
  import { ContentLayoutManager } from "./ContentLayoutManager";
@@ -1 +1 @@
1
- {"version":3,"file":"ContentViewManager.js","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentViewManager.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/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiEvent } from \"@itwin/core-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ContentControl } from \"./ContentControl\";\r\nimport { ContentLayoutManager } from \"./ContentLayoutManager\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\n\r\n/** [[MouseDownChangedEvent]] Args interface.\r\n * @public\r\n */\r\nexport interface MouseDownChangedEventArgs {\r\n /** Indicates whether the mouse is down */\r\n mouseDown: boolean;\r\n}\r\n\r\n/** Mouse Down Changed Event class.\r\n * @public\r\n */\r\nexport class MouseDownChangedEvent extends UiEvent<MouseDownChangedEventArgs> { }\r\n\r\n/** [[ActiveContentChangedEvent]] Args interface.\r\n * @public\r\n */\r\nexport interface ActiveContentChangedEventArgs {\r\n /** React node of the old content */\r\n oldContent?: React.ReactNode;\r\n /** React node of the newly active content */\r\n activeContent?: React.ReactNode;\r\n}\r\n\r\n/** Active Content Changed Event class.\r\n * @public\r\n */\r\nexport class ActiveContentChangedEvent extends UiEvent<ActiveContentChangedEventArgs> { }\r\n\r\n/** Content View Manager class.\r\n * @public\r\n */\r\nexport class ContentViewManager {\r\n private static _mouseDown: boolean = false;\r\n private static _activeContent?: React.ReactNode;\r\n\r\n /** Gets the [[MouseDownChangedEvent]] */\r\n public static readonly onMouseDownChangedEvent = new MouseDownChangedEvent();\r\n\r\n /** Determines if the mouse is down in a content view */\r\n public static get isMouseDown(): boolean {\r\n return this._mouseDown;\r\n }\r\n\r\n /** Sets the mouse down status for a content view */\r\n public static setMouseDown(mouseDown: boolean): void {\r\n this._mouseDown = mouseDown;\r\n this.onMouseDownChangedEvent.emit({ mouseDown });\r\n }\r\n\r\n /** Gets the [[ActiveContentChangedEvent]] */\r\n public static readonly onActiveContentChangedEvent = new ActiveContentChangedEvent();\r\n\r\n /** Gets the active content as a React.ReactNode. */\r\n public static getActiveContent(): React.ReactNode | undefined {\r\n return this._activeContent;\r\n }\r\n\r\n /** Return the active ContentControl. */\r\n public static getActiveContentControl(): ContentControl | undefined {\r\n let activeContentControl: ContentControl | undefined;\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (this._activeContent && activeFrontstageDef) {\r\n const activeContentGroup = activeFrontstageDef.contentGroup;\r\n // istanbul ignore else\r\n if (activeContentGroup) {\r\n activeContentControl = activeContentGroup.getControlFromElement(this._activeContent);\r\n }\r\n }\r\n\r\n return activeContentControl;\r\n }\r\n\r\n /** Sets the active [[ContentControl]] */\r\n public static setActiveContent(activeContent?: React.ReactNode, forceEventProcessing = false): void {\r\n // istanbul ignore else\r\n if (this._activeContent !== activeContent || forceEventProcessing) {\r\n const oldContent = this._activeContent;\r\n this._activeContent = activeContent;\r\n\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n const activeContentGroup = activeFrontstageDef.contentGroup;\r\n\r\n // istanbul ignore else\r\n if (activeContentGroup) {\r\n const oldContentControl = oldContent ? activeContentGroup.getControlFromElement(oldContent) : undefined;\r\n const activeContentControl = activeContentGroup.getControlFromElement(this._activeContent);\r\n\r\n // Only call setActiveView if going to or coming from a non-viewport ContentControl\r\n // istanbul ignore else\r\n if (activeContentControl) {\r\n // istanbul ignore next\r\n const doSetActiveView =\r\n forceEventProcessing || (!activeContentControl.viewport ||\r\n (/* istanbul ignore next */ oldContentControl && /* istanbul ignore next */ !oldContentControl.viewport));\r\n\r\n // istanbul ignore else\r\n if (doSetActiveView) {\r\n activeFrontstageDef.setActiveView(activeContentControl, oldContentControl);\r\n this.onActiveContentChangedEvent.emit({ activeContent, oldContent });\r\n } else {\r\n if (activeContentControl.viewport && activeContentControl.viewport !== IModelApp.viewManager.selectedView) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n IModelApp.viewManager.setSelectedView(activeContentControl.viewport);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Refreshes the active [[ContentControl]] */\r\n public static refreshActiveContent(activeContent: React.ReactNode) {\r\n ContentLayoutManager.refreshActiveLayout();\r\n this.setActiveContent(activeContent, true);\r\n }\r\n\r\n /**\r\n * Determines if content displays a Sheet view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentSheetView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isSheetView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Drawing view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentDrawingView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isDrawingView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Spatial view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentSpatialView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isSpatialView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Orthographic view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentOrthographicView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isOrthographicView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a 3d view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContent3dView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.is3dView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if viewport supports use of a camera.\r\n * @param content ContentControl to check\r\n */\r\n public static contentSupportsCamera(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.viewSupportsCamera(content.viewport));\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"ContentViewManager.js","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentViewManager.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/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ContentControl } from \"./ContentControl\";\r\nimport { ContentLayoutManager } from \"./ContentLayoutManager\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\n\r\n/** [[MouseDownChangedEvent]] Args interface.\r\n * @public\r\n */\r\nexport interface MouseDownChangedEventArgs {\r\n /** Indicates whether the mouse is down */\r\n mouseDown: boolean;\r\n}\r\n\r\n/** Mouse Down Changed Event class.\r\n * @public\r\n */\r\nexport class MouseDownChangedEvent extends UiEvent<MouseDownChangedEventArgs> { }\r\n\r\n/** [[ActiveContentChangedEvent]] Args interface.\r\n * @public\r\n */\r\nexport interface ActiveContentChangedEventArgs {\r\n /** React node of the old content */\r\n oldContent?: React.ReactNode;\r\n /** React node of the newly active content */\r\n activeContent?: React.ReactNode;\r\n}\r\n\r\n/** Active Content Changed Event class.\r\n * @public\r\n */\r\nexport class ActiveContentChangedEvent extends UiEvent<ActiveContentChangedEventArgs> { }\r\n\r\n/** Content View Manager class.\r\n * @public\r\n */\r\nexport class ContentViewManager {\r\n private static _mouseDown: boolean = false;\r\n private static _activeContent?: React.ReactNode;\r\n\r\n /** Gets the [[MouseDownChangedEvent]] */\r\n public static readonly onMouseDownChangedEvent = new MouseDownChangedEvent();\r\n\r\n /** Determines if the mouse is down in a content view */\r\n public static get isMouseDown(): boolean {\r\n return this._mouseDown;\r\n }\r\n\r\n /** Sets the mouse down status for a content view */\r\n public static setMouseDown(mouseDown: boolean): void {\r\n this._mouseDown = mouseDown;\r\n this.onMouseDownChangedEvent.emit({ mouseDown });\r\n }\r\n\r\n /** Gets the [[ActiveContentChangedEvent]] */\r\n public static readonly onActiveContentChangedEvent = new ActiveContentChangedEvent();\r\n\r\n /** Gets the active content as a React.ReactNode. */\r\n public static getActiveContent(): React.ReactNode | undefined {\r\n return this._activeContent;\r\n }\r\n\r\n /** Return the active ContentControl. */\r\n public static getActiveContentControl(): ContentControl | undefined {\r\n let activeContentControl: ContentControl | undefined;\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (this._activeContent && activeFrontstageDef) {\r\n const activeContentGroup = activeFrontstageDef.contentGroup;\r\n // istanbul ignore else\r\n if (activeContentGroup) {\r\n activeContentControl = activeContentGroup.getControlFromElement(this._activeContent);\r\n }\r\n }\r\n\r\n return activeContentControl;\r\n }\r\n\r\n /** Sets the active [[ContentControl]] */\r\n public static setActiveContent(activeContent?: React.ReactNode, forceEventProcessing = false): void {\r\n // istanbul ignore else\r\n if (this._activeContent !== activeContent || forceEventProcessing) {\r\n const oldContent = this._activeContent;\r\n this._activeContent = activeContent;\r\n\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n const activeContentGroup = activeFrontstageDef.contentGroup;\r\n\r\n // istanbul ignore else\r\n if (activeContentGroup) {\r\n const oldContentControl = oldContent ? activeContentGroup.getControlFromElement(oldContent) : undefined;\r\n const activeContentControl = activeContentGroup.getControlFromElement(this._activeContent);\r\n\r\n // Only call setActiveView if going to or coming from a non-viewport ContentControl\r\n // istanbul ignore else\r\n if (activeContentControl) {\r\n // istanbul ignore next\r\n const doSetActiveView =\r\n forceEventProcessing || (!activeContentControl.viewport ||\r\n (/* istanbul ignore next */ oldContentControl && /* istanbul ignore next */ !oldContentControl.viewport));\r\n\r\n // istanbul ignore else\r\n if (doSetActiveView) {\r\n activeFrontstageDef.setActiveView(activeContentControl, oldContentControl);\r\n this.onActiveContentChangedEvent.emit({ activeContent, oldContent });\r\n } else {\r\n if (activeContentControl.viewport && activeContentControl.viewport !== IModelApp.viewManager.selectedView) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n IModelApp.viewManager.setSelectedView(activeContentControl.viewport);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Refreshes the active [[ContentControl]] */\r\n public static refreshActiveContent(activeContent: React.ReactNode) {\r\n ContentLayoutManager.refreshActiveLayout();\r\n this.setActiveContent(activeContent, true);\r\n }\r\n\r\n /**\r\n * Determines if content displays a Sheet view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentSheetView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isSheetView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Drawing view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentDrawingView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isDrawingView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Spatial view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentSpatialView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isSpatialView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Orthographic view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentOrthographicView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isOrthographicView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a 3d view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContent3dView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.is3dView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if viewport supports use of a camera.\r\n * @param content ContentControl to check\r\n */\r\n public static contentSupportsCamera(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.viewSupportsCamera(content.viewport));\r\n }\r\n\r\n}\r\n"]}
@@ -32,6 +32,17 @@ export interface IModelViewportControlOptions {
32
32
  /** Optional property to defer reactNode initialization until first reactNode property in needed. Useful when subclassing the `IModelViewportControl`. */
33
33
  deferNodeInitialization?: boolean;
34
34
  }
35
+ interface ViewOverlayHostProps {
36
+ viewport: ScreenViewport;
37
+ featureOptions?: {
38
+ [key: string]: any;
39
+ };
40
+ userSuppliedOverlay?: (_viewport: ScreenViewport) => React.ReactNode;
41
+ }
42
+ /** View Overlay component -- exported for testing
43
+ * @internal
44
+ */
45
+ export declare function ViewOverlayHost({ viewport, featureOptions, userSuppliedOverlay }: ViewOverlayHostProps): JSX.Element | null;
35
46
  /** iModel Viewport Control
36
47
  * @public
37
48
  */
@@ -62,8 +73,9 @@ export declare class IModelViewportControl extends ViewportContentControl {
62
73
  /** Get the React.Element for a ViewSelector change. */
63
74
  getReactElementForViewSelectorChange(iModelConnection: IModelConnection, _unusedViewDefinitionId: Id64String, viewState: ViewState, _name: string): React.ReactNode;
64
75
  /** Get the default ViewOverlay unless parameter is set to not use it. May be override in an application specific sub-class */
65
- protected _getViewOverlay: (viewport: ScreenViewport) => React.ReactNode;
76
+ protected _getViewOverlay: (vp: ScreenViewport) => React.ReactNode;
66
77
  /** Get the NavigationAidControl associated with this ContentControl */
67
78
  get navigationAidControl(): string;
68
79
  }
80
+ export {};
69
81
  //# sourceMappingURL=IModelViewport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IModelViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/IModelViewport.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAqB,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIlF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAKjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAQlE;;GAEG;AACH,eAAO,MAAM,uBAAuB,qMAA4E,CAAC;AAEjH;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,oDAAoD;IACpD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAC/D,iFAAiF;IACjF,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACxC,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gHAAgH;IAChH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iHAAiH;IACjH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;IACnE,yJAAyJ;IACzJ,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,sBAAsB;IAUrB,SAAS,CAAC,QAAQ,EAAE,4BAA4B;IAT1F,WAAkB,EAAE,WAEnB;IACD,SAAS,CAAC,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;KAAE,CAAM;IACpE,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,2BAA2B,EAAE,OAAO,CAAC;IAC/C,OAAO,CAAC,wBAAwB,CAAC,CAAiD;gBAEtE,IAAI,EAAE,sBAAsB,EAAY,QAAQ,EAAE,4BAA4B;IAY1F,SAAS,CAAC,mBAAmB;cAqBV,YAAY,IAAI,KAAK,CAAC,SAAS;IAOlD;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAczB;IAEF,6DAA6D;IAC7D,SAAS,CAAC,sCAAsC,IAAI,KAAK,CAAC,SAAS;IAcnE,6DAA6D;IAC7D,SAAS,CAAC,6BAA6B,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,GAAG,KAAK,CAAC,SAAS;IAiBtH,kFAAkF;IAClF,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,4BAA4B,GAAG,KAAK,CAAC,SAAS;IAK3F,uDAAuD;IACvC,oCAAoC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS;IAInL,+HAA+H;IAC/H,SAAS,CAAC,eAAe,aAAc,cAAc,KAAG,MAAM,SAAS,CAKrE;IAEF,uEAAuE;IACvE,IAAoB,oBAAoB,IAAI,MAAM,CAKjD;CACF"}
1
+ {"version":3,"file":"IModelViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/IModelViewport.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAqB,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIlF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAKjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAUlE;;GAEG;AACH,eAAO,MAAM,uBAAuB,qMAA4E,CAAC;AAEjH;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,oDAAoD;IACpD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAC/D,iFAAiF;IACjF,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACxC,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gHAAgH;IAChH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iHAAiH;IACjH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;IACnE,yJAAyJ;IACzJ,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACxC,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;CACtE;AACD;;GAEG;AAEH,wBAAgB,eAAe,CAAC,EAAC,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAC,EAAE,oBAAoB,sBAQpG;AACD;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,sBAAsB;IAUrB,SAAS,CAAC,QAAQ,EAAE,4BAA4B;IAT1F,WAAkB,EAAE,WAEnB;IACD,SAAS,CAAC,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;KAAE,CAAM;IACpE,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,2BAA2B,EAAE,OAAO,CAAC;IAC/C,OAAO,CAAC,wBAAwB,CAAC,CAAiD;gBAEtE,IAAI,EAAE,sBAAsB,EAAY,QAAQ,EAAE,4BAA4B;IAY1F,SAAS,CAAC,mBAAmB;cAqBV,YAAY,IAAI,KAAK,CAAC,SAAS;IAOlD;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAczB;IAEF,6DAA6D;IAC7D,SAAS,CAAC,sCAAsC,IAAI,KAAK,CAAC,SAAS;IAcnE,6DAA6D;IAC7D,SAAS,CAAC,6BAA6B,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,GAAG,KAAK,CAAC,SAAS;IAiBtH,kFAAkF;IAClF,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,4BAA4B,GAAG,KAAK,CAAC,SAAS;IAK3F,uDAAuD;IACvC,oCAAoC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS;IAInL,+HAA+H;IAC/H,SAAS,CAAC,eAAe,OAAQ,cAAc,KAAG,MAAM,SAAS,CAE/D;IAEF,uEAAuE;IACvE,IAAoB,oBAAoB,IAAI,MAAM,CAKjD;CACF"}
@@ -17,6 +17,7 @@ import { DefaultViewOverlay } from "./DefaultViewOverlay";
17
17
  import { ViewportContentControl } from "./ViewportContentControl";
18
18
  import { StandardRotationNavigationAidControl } from "../navigationaids/StandardRotationNavigationAid";
19
19
  import { UiError } from "@itwin/appui-abstract";
20
+ import { useSelector } from "react-redux";
20
21
  // create a HOC viewport component that supports unified selection
21
22
  // eslint-disable-next-line @typescript-eslint/naming-convention
22
23
  const UnifiedSelectionViewport = viewWithUnifiedSelection(ViewportComponent);
@@ -24,6 +25,19 @@ const UnifiedSelectionViewport = viewWithUnifiedSelection(ViewportComponent);
24
25
  * @public
25
26
  */
26
27
  export const IModelConnectedViewport = connectIModelConnectionAndViewState(null, null)(UnifiedSelectionViewport); // eslint-disable-line @typescript-eslint/naming-convention
28
+ /** View Overlay component -- exported for testing
29
+ * @internal
30
+ */
31
+ // istanbul ignore next
32
+ export function ViewOverlayHost({ viewport, featureOptions, userSuppliedOverlay }) {
33
+ const displayViewOverlay = useSelector((state) => {
34
+ const frameworkState = state[UiFramework.frameworkStateKey];
35
+ return frameworkState ? frameworkState.configurableUiState.viewOverlayDisplay : true;
36
+ });
37
+ if (!displayViewOverlay)
38
+ return null;
39
+ return userSuppliedOverlay ? React.createElement(React.Fragment, null, "userSuppliedOverlay(viewport)") : React.createElement(DefaultViewOverlay, { viewport: viewport, featureOptions: featureOptions });
40
+ }
27
41
  /** iModel Viewport Control
28
42
  * @public
29
43
  */
@@ -53,10 +67,8 @@ export class IModelViewportControl extends ViewportContentControl {
53
67
  return viewState;
54
68
  };
55
69
  /** Get the default ViewOverlay unless parameter is set to not use it. May be override in an application specific sub-class */
56
- this._getViewOverlay = (viewport) => {
57
- if (this._userSuppliedViewOverlay)
58
- return this._userSuppliedViewOverlay(viewport);
59
- return React.createElement(DefaultViewOverlay, { viewport: viewport, featureOptions: this._featureOptions });
70
+ this._getViewOverlay = (vp) => {
71
+ return React.createElement(ViewOverlayHost, { viewport: vp, featureOptions: this._featureOptions, userSuppliedOverlay: this._userSuppliedViewOverlay, "data-testid": "ViewOverlay" });
60
72
  };
61
73
  if (_options.featureOptions)
62
74
  this._featureOptions = _options.featureOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"IModelViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/content/IModelViewport.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 ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelConnection, ScreenViewport, ViewState } from \"@itwin/core-frontend\";\r\nimport { viewWithUnifiedSelection } from \"@itwin/presentation-components\";\r\nimport { ViewportComponent, ViewStateProp } from \"@itwin/imodel-components-react\";\r\nimport { FillCentered } from \"@itwin/core-react\";\r\n\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl\";\r\nimport { ConfigurableUiManager } from \"../configurableui/ConfigurableUiManager\";\r\nimport { connectIModelConnectionAndViewState } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DefaultViewOverlay } from \"./DefaultViewOverlay\";\r\nimport { ViewportContentControl } from \"./ViewportContentControl\";\r\nimport { StandardRotationNavigationAidControl } from \"../navigationaids/StandardRotationNavigationAid\";\r\nimport { UiError } from \"@itwin/appui-abstract\";\r\n\r\n// create a HOC viewport component that supports unified selection\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst UnifiedSelectionViewport = viewWithUnifiedSelection(ViewportComponent);\r\n\r\n/** Viewport that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @public\r\n */\r\nexport const IModelConnectedViewport = connectIModelConnectionAndViewState(null, null)(UnifiedSelectionViewport); // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n/** [[IModelViewportControl]] options. These options are set in the applicationData property of the [[ContentProps]].\r\n * @public\r\n */\r\nexport interface IModelViewportControlOptions {\r\n /** ViewState or a function to return a ViewState */\r\n viewState?: ViewStateProp;\r\n /** IModelConnection of data in Viewport */\r\n iModelConnection?: IModelConnection | (() => IModelConnection);\r\n /** Map of options that can be used to enable/disable features within the view */\r\n featureOptions?: { [key: string]: any };\r\n /** Optional background color which may be used if viewState and iModelConnection are undefined */\r\n bgColor?: string;\r\n /** Optional property to always use the supplied `viewState` property instead of using viewport.view when set */\r\n alwaysUseSuppliedViewState?: boolean;\r\n /** Optional property to supply custom view overlay. Uses when caller want to supply custom overlay component. */\r\n supplyViewOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\r\n /** Optional property to defer reactNode initialization until first reactNode property in needed. Useful when subclassing the `IModelViewportControl`. */\r\n deferNodeInitialization?: boolean;\r\n}\r\n\r\n/** iModel Viewport Control\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class IModelViewportControl extends ViewportContentControl {\r\n public static get id() {\r\n return \"UiFramework.IModelViewportControl\";\r\n }\r\n protected _featureOptions: { [key: string]: boolean | string } = {};\r\n protected _viewState: ViewStateProp | undefined;\r\n protected _iModelConnection: IModelConnection | undefined;\r\n protected _alwaysUseSuppliedViewState: boolean;\r\n private _userSuppliedViewOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\r\n\r\n constructor(info: ConfigurableCreateInfo, protected _options: IModelViewportControlOptions) {\r\n super(info, _options);\r\n\r\n if (_options.featureOptions)\r\n this._featureOptions = _options.featureOptions;\r\n this._alwaysUseSuppliedViewState = _options.alwaysUseSuppliedViewState ?? false;\r\n this._userSuppliedViewOverlay = _options.supplyViewOverlay;\r\n\r\n if (!_options.deferNodeInitialization)\r\n this.initializeReactNode();\r\n }\r\n\r\n protected initializeReactNode() {\r\n const options = this._options;\r\n\r\n if (options.viewState)\r\n this._viewState = options.viewState;\r\n\r\n const iModelConnection = (typeof options.iModelConnection === \"function\") ? options.iModelConnection() : options.iModelConnection;\r\n\r\n if (this._viewState && iModelConnection) {\r\n /** Passing _determineViewState as a function reference; it is not called here. */\r\n this._reactNode = this.getImodelViewportReactElement(iModelConnection, this._determineViewState);\r\n } else {\r\n if (UiFramework.getIModelConnection() && UiFramework.getDefaultViewState()) {\r\n this._reactNode = this.getImodelConnectedViewportReactElement();\r\n } else {\r\n this._reactNode = this.getNoContentReactElement(options);\r\n this.setIsReady();\r\n }\r\n }\r\n }\r\n\r\n protected override getReactNode(): React.ReactNode {\r\n if (!React.isValidElement(this._reactNode) && this._options.deferNodeInitialization)\r\n this.initializeReactNode();\r\n\r\n return this.getKeyedReactNode();\r\n }\r\n\r\n /**\r\n * This is passed as a function to the ViewportComponent as the `viewState` prop in getImodelViewportReactElement().\r\n * It is called by ViewportComponent on a mount to resolve the viewState.\r\n */\r\n private _determineViewState = (): ViewState => {\r\n let viewState: ViewState;\r\n\r\n if (this.viewport && !this._alwaysUseSuppliedViewState)\r\n viewState = this.viewport.view;\r\n else if (this._viewState) {\r\n if (typeof this._viewState === \"function\")\r\n viewState = this._viewState();\r\n else\r\n viewState = this._viewState;\r\n } else\r\n throw new UiError(UiFramework.loggerCategory(this), \"No ViewState could be determined\");\r\n\r\n return viewState!;\r\n };\r\n\r\n /** Get the React component that will contain the Viewport */\r\n protected getImodelConnectedViewportReactElement(): React.ReactNode {\r\n return <IModelConnectedViewport\r\n viewportRef={(v: ScreenViewport) => {\r\n this.viewport = v;\r\n // for convenience, if window defined bind viewport to window\r\n if (undefined !== window)\r\n (window as any).viewport = v;\r\n if (!FrontstageManager.isLoading)\r\n FrontstageManager.activeFrontstageDef?.setActiveViewFromViewport(v);\r\n }}\r\n getViewOverlay={this._getViewOverlay}\r\n />;\r\n }\r\n\r\n /** Get the React component that will contain the Viewport */\r\n protected getImodelViewportReactElement(iModelConnection: IModelConnection, viewState: ViewStateProp): React.ReactNode {\r\n return <UnifiedSelectionViewport\r\n viewState={viewState}\r\n imodel={iModelConnection}\r\n controlId={this.controlId}\r\n viewportRef={(v: ScreenViewport) => {\r\n this.viewport = v;\r\n // for convenience, if window defined bind viewport to window\r\n if (undefined !== window)\r\n (window as any).viewport = v;\r\n if (!FrontstageManager.isLoading)\r\n FrontstageManager.activeFrontstageDef?.setActiveViewFromViewport(v);\r\n }}\r\n getViewOverlay={this._getViewOverlay}\r\n />;\r\n }\r\n\r\n /** Get the React component that will be shown when no iModel data is available */\r\n protected getNoContentReactElement(_options: IModelViewportControlOptions): React.ReactNode {\r\n const noContent = UiFramework.translate(\"general.no-content\");\r\n return <FillCentered> {noContent} </FillCentered>;\r\n }\r\n\r\n /** Get the React.Element for a ViewSelector change. */\r\n public override getReactElementForViewSelectorChange(iModelConnection: IModelConnection, _unusedViewDefinitionId: Id64String, viewState: ViewState, _name: string): React.ReactNode {\r\n return this.getImodelViewportReactElement(iModelConnection, viewState);\r\n }\r\n\r\n /** Get the default ViewOverlay unless parameter is set to not use it. May be override in an application specific sub-class */\r\n protected _getViewOverlay = (viewport: ScreenViewport): React.ReactNode => {\r\n if (this._userSuppliedViewOverlay)\r\n return this._userSuppliedViewOverlay(viewport);\r\n\r\n return <DefaultViewOverlay viewport={viewport} featureOptions={this._featureOptions} />;\r\n };\r\n\r\n /** Get the NavigationAidControl associated with this ContentControl */\r\n public override get navigationAidControl(): string {\r\n if (this.viewport)\r\n return super.navigationAidControl;\r\n else\r\n return StandardRotationNavigationAidControl.navigationAidId;\r\n }\r\n}\r\n\r\nConfigurableUiManager.registerControl(IModelViewportControl.id, IModelViewportControl);\r\n"]}
1
+ {"version":3,"file":"IModelViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/content/IModelViewport.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 ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelConnection, ScreenViewport, ViewState } from \"@itwin/core-frontend\";\r\nimport { viewWithUnifiedSelection } from \"@itwin/presentation-components\";\r\nimport { ViewportComponent, ViewStateProp } from \"@itwin/imodel-components-react\";\r\nimport { FillCentered } from \"@itwin/core-react\";\r\n\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl\";\r\nimport { ConfigurableUiManager } from \"../configurableui/ConfigurableUiManager\";\r\nimport { connectIModelConnectionAndViewState } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DefaultViewOverlay } from \"./DefaultViewOverlay\";\r\nimport { ViewportContentControl } from \"./ViewportContentControl\";\r\nimport { StandardRotationNavigationAidControl } from \"../navigationaids/StandardRotationNavigationAid\";\r\nimport { UiError } from \"@itwin/appui-abstract\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { FrameworkState } from \"../redux/FrameworkState\";\r\n\r\n// create a HOC viewport component that supports unified selection\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst UnifiedSelectionViewport = viewWithUnifiedSelection(ViewportComponent);\r\n\r\n/** Viewport that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @public\r\n */\r\nexport const IModelConnectedViewport = connectIModelConnectionAndViewState(null, null)(UnifiedSelectionViewport); // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n/** [[IModelViewportControl]] options. These options are set in the applicationData property of the [[ContentProps]].\r\n * @public\r\n */\r\nexport interface IModelViewportControlOptions {\r\n /** ViewState or a function to return a ViewState */\r\n viewState?: ViewStateProp;\r\n /** IModelConnection of data in Viewport */\r\n iModelConnection?: IModelConnection | (() => IModelConnection);\r\n /** Map of options that can be used to enable/disable features within the view */\r\n featureOptions?: { [key: string]: any };\r\n /** Optional background color which may be used if viewState and iModelConnection are undefined */\r\n bgColor?: string;\r\n /** Optional property to always use the supplied `viewState` property instead of using viewport.view when set */\r\n alwaysUseSuppliedViewState?: boolean;\r\n /** Optional property to supply custom view overlay. Uses when caller want to supply custom overlay component. */\r\n supplyViewOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\r\n /** Optional property to defer reactNode initialization until first reactNode property in needed. Useful when subclassing the `IModelViewportControl`. */\r\n deferNodeInitialization?: boolean;\r\n}\r\n\r\ninterface ViewOverlayHostProps {\r\n viewport: ScreenViewport;\r\n featureOptions?: { [key: string]: any };\r\n userSuppliedOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\r\n}\r\n/** View Overlay component -- exported for testing\r\n * @internal\r\n */\r\n// istanbul ignore next\r\nexport function ViewOverlayHost({viewport, featureOptions, userSuppliedOverlay}: ViewOverlayHostProps) {\r\n const displayViewOverlay = useSelector((state: FrameworkState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return frameworkState ? frameworkState.configurableUiState.viewOverlayDisplay : true;\r\n });\r\n if (!displayViewOverlay)\r\n return null;\r\n return userSuppliedOverlay ? <React.Fragment>userSuppliedOverlay(viewport)</React.Fragment> : <DefaultViewOverlay viewport={viewport} featureOptions={featureOptions} />;\r\n}\r\n/** iModel Viewport Control\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class IModelViewportControl extends ViewportContentControl {\r\n public static get id() {\r\n return \"UiFramework.IModelViewportControl\";\r\n }\r\n protected _featureOptions: { [key: string]: boolean | string } = {};\r\n protected _viewState: ViewStateProp | undefined;\r\n protected _iModelConnection: IModelConnection | undefined;\r\n protected _alwaysUseSuppliedViewState: boolean;\r\n private _userSuppliedViewOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\r\n\r\n constructor(info: ConfigurableCreateInfo, protected _options: IModelViewportControlOptions) {\r\n super(info, _options);\r\n\r\n if (_options.featureOptions)\r\n this._featureOptions = _options.featureOptions;\r\n this._alwaysUseSuppliedViewState = _options.alwaysUseSuppliedViewState ?? false;\r\n this._userSuppliedViewOverlay = _options.supplyViewOverlay;\r\n\r\n if (!_options.deferNodeInitialization)\r\n this.initializeReactNode();\r\n }\r\n\r\n protected initializeReactNode() {\r\n const options = this._options;\r\n\r\n if (options.viewState)\r\n this._viewState = options.viewState;\r\n\r\n const iModelConnection = (typeof options.iModelConnection === \"function\") ? options.iModelConnection() : options.iModelConnection;\r\n\r\n if (this._viewState && iModelConnection) {\r\n /** Passing _determineViewState as a function reference; it is not called here. */\r\n this._reactNode = this.getImodelViewportReactElement(iModelConnection, this._determineViewState);\r\n } else {\r\n if (UiFramework.getIModelConnection() && UiFramework.getDefaultViewState()) {\r\n this._reactNode = this.getImodelConnectedViewportReactElement();\r\n } else {\r\n this._reactNode = this.getNoContentReactElement(options);\r\n this.setIsReady();\r\n }\r\n }\r\n }\r\n\r\n protected override getReactNode(): React.ReactNode {\r\n if (!React.isValidElement(this._reactNode) && this._options.deferNodeInitialization)\r\n this.initializeReactNode();\r\n\r\n return this.getKeyedReactNode();\r\n }\r\n\r\n /**\r\n * This is passed as a function to the ViewportComponent as the `viewState` prop in getImodelViewportReactElement().\r\n * It is called by ViewportComponent on a mount to resolve the viewState.\r\n */\r\n private _determineViewState = (): ViewState => {\r\n let viewState: ViewState;\r\n\r\n if (this.viewport && !this._alwaysUseSuppliedViewState)\r\n viewState = this.viewport.view;\r\n else if (this._viewState) {\r\n if (typeof this._viewState === \"function\")\r\n viewState = this._viewState();\r\n else\r\n viewState = this._viewState;\r\n } else\r\n throw new UiError(UiFramework.loggerCategory(this), \"No ViewState could be determined\");\r\n\r\n return viewState!;\r\n };\r\n\r\n /** Get the React component that will contain the Viewport */\r\n protected getImodelConnectedViewportReactElement(): React.ReactNode {\r\n return <IModelConnectedViewport\r\n viewportRef={(v: ScreenViewport) => {\r\n this.viewport = v;\r\n // for convenience, if window defined bind viewport to window\r\n if (undefined !== window)\r\n (window as any).viewport = v;\r\n if (!FrontstageManager.isLoading)\r\n FrontstageManager.activeFrontstageDef?.setActiveViewFromViewport(v);\r\n }}\r\n getViewOverlay={this._getViewOverlay}\r\n />;\r\n }\r\n\r\n /** Get the React component that will contain the Viewport */\r\n protected getImodelViewportReactElement(iModelConnection: IModelConnection, viewState: ViewStateProp): React.ReactNode {\r\n return <UnifiedSelectionViewport\r\n viewState={viewState}\r\n imodel={iModelConnection}\r\n controlId={this.controlId}\r\n viewportRef={(v: ScreenViewport) => {\r\n this.viewport = v;\r\n // for convenience, if window defined bind viewport to window\r\n if (undefined !== window)\r\n (window as any).viewport = v;\r\n if (!FrontstageManager.isLoading)\r\n FrontstageManager.activeFrontstageDef?.setActiveViewFromViewport(v);\r\n }}\r\n getViewOverlay={this._getViewOverlay}\r\n />;\r\n }\r\n\r\n /** Get the React component that will be shown when no iModel data is available */\r\n protected getNoContentReactElement(_options: IModelViewportControlOptions): React.ReactNode {\r\n const noContent = UiFramework.translate(\"general.no-content\");\r\n return <FillCentered> {noContent} </FillCentered>;\r\n }\r\n\r\n /** Get the React.Element for a ViewSelector change. */\r\n public override getReactElementForViewSelectorChange(iModelConnection: IModelConnection, _unusedViewDefinitionId: Id64String, viewState: ViewState, _name: string): React.ReactNode {\r\n return this.getImodelViewportReactElement(iModelConnection, viewState);\r\n }\r\n\r\n /** Get the default ViewOverlay unless parameter is set to not use it. May be override in an application specific sub-class */\r\n protected _getViewOverlay = (vp: ScreenViewport): React.ReactNode => {\r\n return <ViewOverlayHost viewport={vp} featureOptions={this._featureOptions} userSuppliedOverlay={this._userSuppliedViewOverlay} data-testid=\"ViewOverlay\"/>;\r\n };\r\n\r\n /** Get the NavigationAidControl associated with this ContentControl */\r\n public override get navigationAidControl(): string {\r\n if (this.viewport)\r\n return super.navigationAidControl;\r\n else\r\n return StandardRotationNavigationAidControl.navigationAidId;\r\n }\r\n}\r\n\r\nConfigurableUiManager.registerControl(IModelViewportControl.id, IModelViewportControl);\r\n"]}
@@ -4,15 +4,15 @@
4
4
  import { IModelConnection, ViewState } from "@itwin/core-frontend";
5
5
  import { ContentCallback, ContentGroup, ContentGroupProps } from "./ContentGroup";
6
6
  import { ContentLayoutDef } from "./ContentLayout";
7
- import { SavedViewProps } from "./SavedView";
7
+ import { ViewStateHelperProps } from "./ViewStateHelper";
8
8
  import { ContentLayoutProps } from "@itwin/appui-abstract";
9
- /** SavedViewLayoutProps interface for sharing view layout information.
9
+ /** StageContentLayoutProps interface for sharing view layout information.
10
10
  * @public
11
11
  */
12
- export interface SavedViewLayoutProps {
12
+ export interface StageContentLayoutProps {
13
13
  contentLayoutProps?: ContentLayoutProps;
14
14
  contentGroupProps: ContentGroupProps;
15
- savedViews: SavedViewProps[];
15
+ viewStateProps: ViewStateHelperProps[];
16
16
  }
17
17
  /** ViewLayout interface for sharing view layout information.
18
18
  * @public
@@ -22,15 +22,15 @@ export interface ViewLayout {
22
22
  contentGroup: ContentGroup;
23
23
  viewStates: Array<ViewState | undefined>;
24
24
  }
25
- /** SavedViewLayout class. Used to serialize/deserialize a View Layout with Saved Views.
25
+ /** StageContentLayout class. Used to serialize/deserialize a View Layout with Saved Views.
26
26
  * @public
27
27
  */
28
- export declare class SavedViewLayout {
28
+ export declare class StageContentLayout {
29
29
  /** Create props for a View Layout */
30
- static viewLayoutToProps(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup, emphasizeElements?: boolean, contentCallback?: ContentCallback): SavedViewLayoutProps;
31
- /** Create an array of ViewStates from the SavedViewLayout */
32
- static viewStatesFromProps(iModelConnection: IModelConnection, savedProps: SavedViewLayoutProps): Promise<Array<ViewState | undefined>>;
30
+ static viewLayoutToProps(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup, emphasizeElements?: boolean, contentCallback?: ContentCallback): StageContentLayoutProps;
31
+ /** Create an array of ViewStates from the StageContentLayout */
32
+ static viewStatesFromProps(iModelConnection: IModelConnection, savedProps: StageContentLayoutProps): Promise<Array<ViewState | undefined>>;
33
33
  /** Apply EmphasizeElements from the SavedView */
34
- static emphasizeElementsFromProps(contentGroup: ContentGroup, savedProps: SavedViewLayoutProps): boolean;
34
+ static emphasizeElementsFromProps(contentGroup: ContentGroup, savedProps: StageContentLayoutProps): boolean;
35
35
  }
36
- //# sourceMappingURL=SavedViewLayout.d.ts.map
36
+ //# sourceMappingURL=StageContentLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageContentLayout.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/StageContentLayout.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,oBAAoB,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,qCAAqC;WACvB,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,GAAE,OAAe,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,uBAAuB;IAwB/L,gEAAgE;WAC5C,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,uBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAavJ,iDAAiD;WACnC,0BAA0B,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,uBAAuB,GAAG,OAAO;CAiBnH"}
@@ -5,39 +5,41 @@
5
5
  /** @packageDocumentation
6
6
  * @module ContentView
7
7
  */
8
- import { SavedView } from "./SavedView";
9
- /** SavedViewLayout class. Used to serialize/deserialize a View Layout with Saved Views.
8
+ import { ViewStateHelper } from "./ViewStateHelper";
9
+ /** StageContentLayout class. Used to serialize/deserialize a View Layout with Saved Views.
10
10
  * @public
11
11
  */
12
- export class SavedViewLayout {
12
+ export class StageContentLayout {
13
13
  /** Create props for a View Layout */
14
14
  static viewLayoutToProps(contentLayoutDef, contentGroup, emphasizeElements = false, contentCallback) {
15
15
  const contentLayoutProps = contentLayoutDef.toJSON();
16
16
  // update layout in contentGroup to contain latest values from contentLayoutDef this way we don't need to save both.
17
17
  const contentGroupProps = { ...contentGroup.toJSON(contentCallback), layout: contentLayoutProps };
18
- const savedViews = new Array();
18
+ const viewStateProps = new Array();
19
19
  const viewports = contentGroup.getViewports();
20
20
  for (const viewport of viewports) {
21
21
  // istanbul ignore else
22
22
  if (viewport) {
23
- const savedViewProps = SavedView.viewStateToProps(viewport.view);
23
+ const savedViewProps = ViewStateHelper.viewStateToProps(viewport.view);
24
24
  if (emphasizeElements)
25
- SavedView.emphasizeElementsToProps(viewport, savedViewProps);
26
- savedViews.push(savedViewProps);
25
+ ViewStateHelper.emphasizeElementsToProps(viewport, savedViewProps);
26
+ viewStateProps.push(savedViewProps);
27
27
  }
28
28
  }
29
29
  const savedViewLayoutProps = {
30
30
  contentGroupProps,
31
- savedViews,
31
+ viewStateProps,
32
32
  };
33
33
  return savedViewLayoutProps;
34
34
  }
35
- /** Create an array of ViewStates from the SavedViewLayout */
35
+ /** Create an array of ViewStates from the StageContentLayout */
36
36
  static async viewStatesFromProps(iModelConnection, savedProps) {
37
37
  const viewStates = new Array();
38
- for (const savedViewProps of savedProps.savedViews) {
39
- const viewState = await SavedView.viewStateFromProps(iModelConnection, savedViewProps);
40
- viewStates.push(viewState);
38
+ if (savedProps.viewStateProps) {
39
+ for (const savedViewProps of savedProps.viewStateProps) {
40
+ const viewState = await ViewStateHelper.viewStateFromProps(iModelConnection, savedViewProps);
41
+ viewStates.push(viewState);
42
+ }
41
43
  }
42
44
  return viewStates;
43
45
  }
@@ -46,11 +48,11 @@ export class SavedViewLayout {
46
48
  const changedList = new Array();
47
49
  const viewports = contentGroup.getViewports();
48
50
  let index = 0;
49
- for (const savedViewProps of savedProps.savedViews) {
51
+ for (const savedViewProps of savedProps.viewStateProps) {
50
52
  const viewport = viewports[index];
51
53
  // istanbul ignore else
52
54
  if (viewport) {
53
- const changed = SavedView.emphasizeElementsFromProps(viewport, savedViewProps);
55
+ const changed = ViewStateHelper.emphasizeElementsFromProps(viewport, savedViewProps);
54
56
  changedList.push(changed);
55
57
  }
56
58
  index++;
@@ -58,4 +60,4 @@ export class SavedViewLayout {
58
60
  return changedList.some((changed) => changed);
59
61
  }
60
62
  }
61
- //# sourceMappingURL=SavedViewLayout.js.map
63
+ //# sourceMappingURL=StageContentLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageContentLayout.js","sourceRoot":"","sources":["../../../../src/appui-react/content/StageContentLayout.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAqB1E;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC7B,qCAAqC;IAC9B,MAAM,CAAC,iBAAiB,CAAC,gBAAkC,EAAE,YAA0B,EAAE,oBAA6B,KAAK,EAAE,eAAiC;QACnK,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACrD,oHAAoH;QACpH,MAAM,iBAAiB,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAClG,MAAM,cAAc,GAAG,IAAI,KAAK,EAAwB,CAAC;QACzD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,uBAAuB;YACvB,IAAI,QAAQ,EAAE;gBACZ,MAAM,cAAc,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvE,IAAI,iBAAiB;oBACnB,eAAe,CAAC,wBAAwB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACrE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACrC;SACF;QAED,MAAM,oBAAoB,GAA4B;YACpD,iBAAiB;YACjB,cAAc;SACf,CAAC;QAEF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,gEAAgE;IACzD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAkC,EAAE,UAAmC;QAC7G,MAAM,UAAU,GAAG,IAAI,KAAK,EAAyB,CAAC;QAEtD,IAAI,UAAU,CAAC,cAAc,EAAE;YAC7B,KAAK,MAAM,cAAc,IAAI,UAAU,CAAC,cAAc,EAAE;gBACtD,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBAC7F,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC5B;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iDAAiD;IAC1C,MAAM,CAAC,0BAA0B,CAAC,YAA0B,EAAE,UAAmC;QACtG,MAAM,WAAW,GAAG,IAAI,KAAK,EAAW,CAAC;QACzC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAE9C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,cAAc,IAAI,UAAU,CAAC,cAAc,EAAE;YACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,uBAAuB;YACvB,IAAI,QAAQ,EAAE;gBACZ,MAAM,OAAO,GAAG,eAAe,CAAC,0BAA0B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACrF,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC3B;YACD,KAAK,EAAE,CAAC;SACT;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;CACF","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 ContentView\r\n */\r\n\r\nimport { IModelConnection, ViewState } from \"@itwin/core-frontend\";\r\nimport { ContentCallback, ContentGroup, ContentGroupProps } from \"./ContentGroup\";\r\nimport { ContentLayoutDef } from \"./ContentLayout\";\r\nimport { ViewStateHelper, ViewStateHelperProps } from \"./ViewStateHelper\";\r\nimport { ContentLayoutProps } from \"@itwin/appui-abstract\";\r\n\r\n/** StageContentLayoutProps interface for sharing view layout information.\r\n * @public\r\n */\r\nexport interface StageContentLayoutProps {\r\n contentLayoutProps?: ContentLayoutProps;\r\n contentGroupProps: ContentGroupProps;\r\n viewStateProps: ViewStateHelperProps[];\r\n}\r\n\r\n/** ViewLayout interface for sharing view layout information.\r\n * @public\r\n */\r\nexport interface ViewLayout {\r\n contentLayoutDef: ContentLayoutDef;\r\n contentGroup: ContentGroup;\r\n viewStates: Array<ViewState | undefined>;\r\n}\r\n\r\n/** StageContentLayout class. Used to serialize/deserialize a View Layout with Saved Views.\r\n * @public\r\n */\r\nexport class StageContentLayout {\r\n /** Create props for a View Layout */\r\n public static viewLayoutToProps(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup, emphasizeElements: boolean = false, contentCallback?: ContentCallback): StageContentLayoutProps {\r\n const contentLayoutProps = contentLayoutDef.toJSON();\r\n // update layout in contentGroup to contain latest values from contentLayoutDef this way we don't need to save both.\r\n const contentGroupProps = { ...contentGroup.toJSON(contentCallback), layout: contentLayoutProps };\r\n const viewStateProps = new Array<ViewStateHelperProps>();\r\n const viewports = contentGroup.getViewports();\r\n for (const viewport of viewports) {\r\n // istanbul ignore else\r\n if (viewport) {\r\n const savedViewProps = ViewStateHelper.viewStateToProps(viewport.view);\r\n if (emphasizeElements)\r\n ViewStateHelper.emphasizeElementsToProps(viewport, savedViewProps);\r\n viewStateProps.push(savedViewProps);\r\n }\r\n }\r\n\r\n const savedViewLayoutProps: StageContentLayoutProps = {\r\n contentGroupProps,\r\n viewStateProps,\r\n };\r\n\r\n return savedViewLayoutProps;\r\n }\r\n\r\n /** Create an array of ViewStates from the StageContentLayout */\r\n public static async viewStatesFromProps(iModelConnection: IModelConnection, savedProps: StageContentLayoutProps): Promise<Array<ViewState | undefined>> {\r\n const viewStates = new Array<ViewState | undefined>();\r\n\r\n if (savedProps.viewStateProps) {\r\n for (const savedViewProps of savedProps.viewStateProps) {\r\n const viewState = await ViewStateHelper.viewStateFromProps(iModelConnection, savedViewProps);\r\n viewStates.push(viewState);\r\n }\r\n }\r\n\r\n return viewStates;\r\n }\r\n\r\n /** Apply EmphasizeElements from the SavedView */\r\n public static emphasizeElementsFromProps(contentGroup: ContentGroup, savedProps: StageContentLayoutProps): boolean {\r\n const changedList = new Array<boolean>();\r\n const viewports = contentGroup.getViewports();\r\n\r\n let index = 0;\r\n for (const savedViewProps of savedProps.viewStateProps) {\r\n const viewport = viewports[index];\r\n // istanbul ignore else\r\n if (viewport) {\r\n const changed = ViewStateHelper.emphasizeElementsFromProps(viewport, savedViewProps);\r\n changedList.push(changed);\r\n }\r\n index++;\r\n }\r\n\r\n return changedList.some((changed: boolean) => changed);\r\n }\r\n}\r\n"]}
@@ -6,21 +6,21 @@ import { IModelConnection, ScreenViewport, ViewState } from "@itwin/core-fronten
6
6
  /** SavedViewProps interface for sharing ViewState and EmphasizeElements information.
7
7
  * @public
8
8
  */
9
- export interface SavedViewProps extends ViewStateProps {
9
+ export interface ViewStateHelperProps extends ViewStateProps {
10
10
  bisBaseClass: string;
11
11
  emphasizeElementsProps?: EmphasizeElementsProps;
12
12
  }
13
13
  /** SavedView class. Used to serialize/deserialize a ViewState.
14
14
  * @public
15
15
  */
16
- export declare class SavedView {
16
+ export declare class ViewStateHelper {
17
17
  /** Create a ViewState from the SavedView */
18
- static viewStateFromProps(iModelConnection: IModelConnection, savedViewProps: SavedViewProps): Promise<ViewState | undefined>;
18
+ static viewStateFromProps(iModelConnection: IModelConnection, savedViewProps: ViewStateHelperProps): Promise<ViewState | undefined>;
19
19
  /** Apply EmphasizeElements from the SavedView */
20
- static emphasizeElementsFromProps(vp: ScreenViewport, savedViewProps: SavedViewProps): boolean;
20
+ static emphasizeElementsFromProps(vp: ScreenViewport, savedViewProps: ViewStateHelperProps): boolean;
21
21
  /** Create props for a ViewState */
22
- static viewStateToProps(viewState: ViewState): SavedViewProps;
22
+ static viewStateToProps(viewState: ViewState): ViewStateHelperProps;
23
23
  /** Create props for an EmphasizeElements and store in SavedViewProps */
24
- static emphasizeElementsToProps(vp: ScreenViewport, savedViewProps: SavedViewProps): void;
24
+ static emphasizeElementsToProps(vp: ScreenViewport, savedViewProps: ViewStateHelperProps): void;
25
25
  }
26
- //# sourceMappingURL=SavedView.d.ts.map
26
+ //# sourceMappingURL=ViewStateHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewStateHelper.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/ViewStateHelper.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAC2B,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAC5E,MAAM,sBAAsB,CAAC;AAG9B;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,4CAA4C;WACxB,kBAAkB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAchJ,iDAAiD;WACnC,0BAA0B,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,GAAG,OAAO;IAS3G,mCAAmC;WACrB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,oBAAoB;IAM1E,wEAAwE;WAC1D,wBAAwB,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,GAAG,IAAI;CAMvG"}