@itwin/appui-react 3.0.0-extension.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (933) hide show
  1. package/CHANGELOG.md +209 -16
  2. package/LICENSE.md +1 -1
  3. package/README.md +3 -3
  4. package/lib/cjs/appui-react/UiFramework.d.ts +30 -15
  5. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/UiFramework.js +49 -30
  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 +3 -4
  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 +7 -1
  55. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/configurableui/state.js +12 -0
  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 +16 -1
  125. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  126. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +20 -2
  127. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  128. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +164 -3
  129. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  130. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +3 -0
  131. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +10 -0
  133. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  134. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  135. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  136. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  137. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  138. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  139. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  140. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  141. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  142. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts +6 -0
  143. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
  144. package/lib/cjs/appui-react/hooks/useUiVisibility.js +27 -0
  145. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -0
  146. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
  147. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  148. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
  149. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  150. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
  151. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  152. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +3 -2
  153. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  154. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
  155. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  157. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTreeSearch.json +3 -3
  158. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
  159. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +81 -68
  161. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  162. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  163. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  164. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  165. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  166. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
  167. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  168. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  169. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  170. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
  171. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  172. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +1 -1
  173. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  174. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  175. package/lib/cjs/appui-react/messages/MessageManager.d.ts +1 -2
  176. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  177. package/lib/cjs/appui-react/messages/MessageManager.js +15 -9
  178. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  179. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  180. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  181. package/lib/cjs/appui-react/messages/Pointer.js +4 -3
  182. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  183. package/lib/cjs/appui-react/messages/ToastMessage.js +2 -1
  184. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  185. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  186. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  187. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js +2 -2
  188. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  189. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  190. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  191. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  192. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  193. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
  194. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  195. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +3 -0
  196. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/pickers/ListPicker.js +24 -9
  198. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  199. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  200. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  201. package/lib/cjs/appui-react/pickers/ViewSelector.js +9 -9
  202. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  203. package/lib/cjs/appui-react/popup/CardPopup.d.ts +7 -4
  204. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  205. package/lib/cjs/appui-react/popup/CardPopup.js +3 -2
  206. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  207. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +3 -2
  208. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  209. package/lib/cjs/appui-react/popup/InputEditorPopup.js +1 -1
  210. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  211. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +6 -6
  212. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  213. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
  214. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  215. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +1 -1
  216. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  217. package/lib/cjs/appui-react/popup/PopupManager.d.ts +10 -10
  218. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  219. package/lib/cjs/appui-react/popup/PopupManager.js +4 -4
  220. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  221. package/lib/cjs/appui-react/popup/PositionPopup.d.ts +5 -3
  222. package/lib/cjs/appui-react/popup/PositionPopup.d.ts.map +1 -1
  223. package/lib/cjs/appui-react/popup/PositionPopup.js +3 -2
  224. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  225. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
  226. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  227. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +1 -1
  228. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  229. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +4 -3
  230. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  231. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  232. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  233. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  234. package/lib/cjs/appui-react/redux/SessionState.d.ts +0 -6
  235. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  236. package/lib/cjs/appui-react/redux/SessionState.js +0 -8
  237. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  238. package/lib/cjs/appui-react/redux/StateManager.d.ts +1 -1
  239. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  240. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
  241. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  242. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  243. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
  244. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  245. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  246. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +28 -19
  247. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  248. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  249. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  250. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  251. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  252. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  253. package/lib/cjs/appui-react/shared/ItemDefBase.js +1 -1
  254. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  255. package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
  256. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  257. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts +1 -1
  258. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  259. package/lib/cjs/appui-react/shared/ToolItemDef.js +2 -2
  260. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  261. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  262. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
  263. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  264. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +2 -2
  265. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  266. package/lib/cjs/appui-react/stagepanels/StagePanel.js +1 -0
  267. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  268. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +26 -3
  269. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  270. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +26 -6
  271. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  272. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  273. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
  274. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js +2 -1
  275. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  276. package/lib/cjs/appui-react/statusbar/StatusBar.js +2 -1
  277. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  278. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  279. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +17 -5
  280. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  281. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  282. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  283. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  284. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +15 -14
  285. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  286. package/lib/cjs/appui-react/statusfields/Indicator.js +23 -21
  287. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  288. package/lib/cjs/appui-react/statusfields/Indicator.scss +29 -18
  289. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  290. package/lib/cjs/appui-react/statusfields/MessageCenter.js +2 -1
  291. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  292. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +1 -0
  293. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  294. package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -4
  295. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  296. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +13 -3
  297. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -10
  298. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  299. package/lib/cjs/appui-react/statusfields/SnapMode.js +4 -34
  300. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  301. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -6
  302. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  303. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +1 -25
  304. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  305. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  306. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  307. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +13 -12
  308. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  309. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
  310. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
  311. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  312. package/lib/cjs/appui-react/syncui/BooleanListener.js +2 -1
  313. package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
  314. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
  315. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  316. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +30 -103
  317. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  318. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js +2 -1
  319. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  320. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  321. package/lib/cjs/appui-react/toolbar/ActionItemButton.js +2 -1
  322. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  323. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js +24 -20
  324. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  325. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  326. package/lib/cjs/appui-react/toolbar/GroupItem.js +33 -29
  327. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  328. package/lib/cjs/appui-react/toolbar/ToolButton.js +3 -2
  329. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  330. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  331. package/lib/cjs/appui-react/toolbar/Toolbar.js +3 -2
  332. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  333. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  334. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +22 -20
  335. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  336. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  337. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +4 -4
  338. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  339. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
  340. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js +2 -2
  341. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  342. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
  343. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  344. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -36
  345. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  346. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
  347. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  348. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +12 -20
  349. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  350. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
  351. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  352. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +39 -50
  353. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  354. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +7 -4
  355. package/lib/{esm/appui-react/uisettings → cjs/appui-react/uistate}/AppUiSettings.d.ts +9 -7
  356. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  357. package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.js +12 -8
  358. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -0
  359. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  360. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  361. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +62 -0
  362. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  363. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  364. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  365. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +38 -0
  366. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -0
  367. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +5 -5
  368. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  369. package/lib/cjs/appui-react/utils/UiShowHideManager.js +8 -8
  370. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  371. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  372. package/lib/cjs/appui-react/widget-panels/Content.js +1 -4
  373. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  374. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +98 -8
  375. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  376. package/lib/cjs/appui-react/widget-panels/Frontstage.js +103 -103
  377. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  378. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +22 -0
  379. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
  380. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +56 -0
  381. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -0
  382. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  383. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +3 -2
  384. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  385. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +0 -2
  386. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  387. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +6 -18
  388. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  389. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
  390. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  391. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +12 -2
  392. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  393. package/lib/cjs/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  394. package/lib/cjs/appui-react/widgets/NavigationWidget.js +2 -1
  395. package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
  396. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +1 -0
  397. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  398. package/lib/cjs/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  399. package/lib/cjs/appui-react/widgets/StableWidgetDef.js +1 -1
  400. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  401. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js +2 -1
  402. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  403. package/lib/cjs/appui-react/widgets/ToolWidget.js +3 -2
  404. package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
  405. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
  406. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  407. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +1 -36
  408. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  409. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
  410. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
  411. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js +5 -2
  412. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  413. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  414. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  415. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +3 -3
  416. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  417. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +2 -3
  418. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  419. package/lib/cjs/appui-react/widgets/WidgetDef.js +18 -7
  420. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  421. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  422. package/lib/cjs/appui-react/widgets/WidgetHost.js +1 -0
  423. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  424. package/lib/cjs/appui-react/widgets/WidgetStack.d.ts.map +1 -1
  425. package/lib/cjs/appui-react/widgets/WidgetStack.js +2 -0
  426. package/lib/cjs/appui-react/widgets/WidgetStack.js.map +1 -1
  427. package/lib/cjs/appui-react/zones/FrameworkZone.js.map +1 -1
  428. package/lib/cjs/appui-react/zones/StatusBarZone.js.map +1 -1
  429. package/lib/cjs/appui-react/zones/Zone.d.ts +1 -1
  430. package/lib/cjs/appui-react/zones/Zone.d.ts.map +1 -1
  431. package/lib/cjs/appui-react/zones/Zone.js +2 -1
  432. package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
  433. package/lib/cjs/appui-react/zones/ZoneDef.d.ts +4 -4
  434. package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
  435. package/lib/cjs/appui-react/zones/ZoneDef.js +5 -4
  436. package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
  437. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  438. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  439. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js +3 -2
  440. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  441. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  442. package/lib/cjs/appui-react.d.ts +16 -18
  443. package/lib/cjs/appui-react.d.ts.map +1 -1
  444. package/lib/cjs/appui-react.js +16 -18
  445. package/lib/cjs/appui-react.js.map +1 -1
  446. package/lib/esm/appui-react/UiFramework.d.ts +30 -15
  447. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  448. package/lib/esm/appui-react/UiFramework.js +48 -29
  449. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  450. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  451. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  452. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  453. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  454. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  455. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  456. package/lib/esm/appui-react/accudraw/Calculator.js +1 -1
  457. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  458. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  459. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  460. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +6 -5
  461. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  462. package/lib/esm/appui-react/backstage/Backstage.d.ts +0 -2
  463. package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
  464. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  465. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +2 -0
  466. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  467. package/lib/esm/appui-react/backstage/BackstageComposer.js +27 -9
  468. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  469. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
  470. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -1
  471. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  472. package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  473. package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
  474. package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
  475. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  476. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +3 -3
  477. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  478. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts +2 -0
  479. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  480. package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -0
  481. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  482. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
  483. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  484. package/lib/esm/appui-react/backstage/FrontstageLaunch.js +5 -6
  485. package/lib/esm/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  486. package/lib/esm/appui-react/backstage/Separator.d.ts +1 -0
  487. package/lib/esm/appui-react/backstage/Separator.d.ts.map +1 -1
  488. package/lib/esm/appui-react/backstage/Separator.js +3 -2
  489. package/lib/esm/appui-react/backstage/Separator.js.map +1 -1
  490. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  491. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  492. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +3 -4
  493. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  494. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  495. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  496. package/lib/esm/appui-react/configurableui/state.d.ts +7 -1
  497. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  498. package/lib/esm/appui-react/configurableui/state.js +12 -0
  499. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  500. package/lib/esm/appui-react/content/ContentControl.d.ts +1 -1
  501. package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
  502. package/lib/esm/appui-react/content/ContentControl.js +1 -1
  503. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  504. package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -2
  505. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  506. package/lib/esm/appui-react/content/ContentLayout.js +3 -2
  507. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  508. package/lib/esm/appui-react/content/ContentViewManager.d.ts +1 -1
  509. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  510. package/lib/esm/appui-react/content/ContentViewManager.js +1 -1
  511. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  512. package/lib/esm/appui-react/content/IModelViewport.d.ts +13 -1
  513. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  514. package/lib/esm/appui-react/content/IModelViewport.js +16 -4
  515. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  516. package/lib/esm/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
  517. package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -0
  518. package/lib/esm/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +17 -15
  519. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -0
  520. package/lib/esm/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
  521. package/lib/esm/appui-react/content/ViewStateHelper.d.ts.map +1 -0
  522. package/lib/esm/appui-react/content/{SavedView.js → ViewStateHelper.js} +2 -2
  523. package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -0
  524. package/lib/esm/appui-react/content/split-pane/Pane.d.ts +21 -0
  525. package/lib/esm/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  526. package/lib/esm/appui-react/content/split-pane/Pane.js +39 -0
  527. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -0
  528. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts +23 -0
  529. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  530. package/lib/esm/appui-react/content/split-pane/Resizer.js +35 -0
  531. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -0
  532. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  533. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  534. package/lib/esm/appui-react/content/split-pane/SplitPane.js +239 -0
  535. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -0
  536. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +1 -2
  537. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  538. package/lib/esm/appui-react/cursor/CursorInformation.js +2 -2
  539. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  540. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  541. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  542. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  543. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  544. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +2 -2
  545. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  546. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  547. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  548. package/lib/esm/appui-react/dialog/DialogManagerBase.js +1 -1
  549. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  550. package/lib/esm/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
  551. package/lib/esm/appui-react/dialog/StandardMessageBox.js +3 -0
  552. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  553. package/lib/esm/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
  554. package/lib/esm/appui-react/dragdrop/ZoneTargets.js +8 -4
  555. package/lib/esm/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  556. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +2 -2
  557. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  558. package/lib/esm/appui-react/feedback/ElementTooltip.js +4 -2
  559. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  560. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +1 -0
  561. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  562. package/lib/esm/appui-react/frontstage/Frontstage.js +32 -13
  563. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  564. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  565. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  566. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +16 -1
  567. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  568. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +20 -2
  569. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  570. package/lib/esm/appui-react/frontstage/FrontstageDef.js +166 -5
  571. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  572. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +3 -0
  573. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  574. package/lib/esm/appui-react/frontstage/FrontstageManager.js +10 -0
  575. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  576. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  577. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  578. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  579. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  580. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  581. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  582. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  583. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  584. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts +6 -0
  585. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
  586. package/lib/esm/appui-react/hooks/useUiVisibility.js +23 -0
  587. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -0
  588. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
  589. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  590. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
  591. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  592. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
  593. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  594. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +3 -2
  595. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  596. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
  597. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  598. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  599. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTreeSearch.json +3 -3
  600. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
  601. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  602. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +83 -70
  603. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  604. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  605. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  606. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  607. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  608. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +2 -2
  609. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  610. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  611. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  612. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
  613. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  614. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +1 -1
  615. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  616. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  617. package/lib/esm/appui-react/messages/MessageManager.d.ts +1 -2
  618. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  619. package/lib/esm/appui-react/messages/MessageManager.js +9 -3
  620. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  621. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  622. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  623. package/lib/esm/appui-react/messages/Pointer.js +4 -3
  624. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  625. package/lib/esm/appui-react/messages/ToastMessage.js +2 -1
  626. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  627. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  628. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  629. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js +1 -1
  630. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  631. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  632. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  633. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  634. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  635. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
  636. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  637. package/lib/esm/appui-react/pickers/ListPicker.d.ts +3 -0
  638. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  639. package/lib/esm/appui-react/pickers/ListPicker.js +23 -9
  640. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  641. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  642. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  643. package/lib/esm/appui-react/pickers/ViewSelector.js +7 -7
  644. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  645. package/lib/esm/appui-react/popup/CardPopup.d.ts +7 -4
  646. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  647. package/lib/esm/appui-react/popup/CardPopup.js +3 -2
  648. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  649. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +3 -2
  650. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  651. package/lib/esm/appui-react/popup/InputEditorPopup.js +1 -1
  652. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  653. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +7 -7
  654. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  655. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
  656. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  657. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +1 -1
  658. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  659. package/lib/esm/appui-react/popup/PopupManager.d.ts +10 -10
  660. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  661. package/lib/esm/appui-react/popup/PopupManager.js +5 -5
  662. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  663. package/lib/esm/appui-react/popup/PositionPopup.d.ts +5 -3
  664. package/lib/esm/appui-react/popup/PositionPopup.d.ts.map +1 -1
  665. package/lib/esm/appui-react/popup/PositionPopup.js +3 -2
  666. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  667. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
  668. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  669. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +1 -1
  670. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  671. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +4 -3
  672. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  673. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  674. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  675. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  676. package/lib/esm/appui-react/redux/SessionState.d.ts +0 -6
  677. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  678. package/lib/esm/appui-react/redux/SessionState.js +0 -8
  679. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  680. package/lib/esm/appui-react/redux/StateManager.d.ts +1 -1
  681. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  682. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
  683. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  684. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  685. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
  686. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  687. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  688. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +28 -19
  689. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  690. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  691. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  692. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  693. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  694. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  695. package/lib/esm/appui-react/shared/ItemDefBase.js +1 -1
  696. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  697. package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
  698. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  699. package/lib/esm/appui-react/shared/ToolItemDef.d.ts +1 -1
  700. package/lib/esm/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  701. package/lib/esm/appui-react/shared/ToolItemDef.js +2 -2
  702. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  703. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  704. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
  705. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  706. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +2 -2
  707. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  708. package/lib/esm/appui-react/stagepanels/StagePanel.js +1 -0
  709. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  710. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +26 -3
  711. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  712. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +25 -5
  713. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  714. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  715. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
  716. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js +2 -1
  717. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  718. package/lib/esm/appui-react/statusbar/StatusBar.js +2 -1
  719. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  720. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  721. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +17 -5
  722. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  723. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  724. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  725. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  726. package/lib/esm/appui-react/statusfields/Indicator.d.ts +15 -14
  727. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  728. package/lib/esm/appui-react/statusfields/Indicator.js +23 -21
  729. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  730. package/lib/esm/appui-react/statusfields/Indicator.scss +29 -18
  731. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  732. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -1
  733. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  734. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +1 -0
  735. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  736. package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -4
  737. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  738. package/lib/esm/appui-react/statusfields/SelectionScope.scss +13 -3
  739. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -10
  740. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  741. package/lib/esm/appui-react/statusfields/SnapMode.js +5 -35
  742. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  743. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -6
  744. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  745. package/lib/esm/appui-react/statusfields/ViewAttributes.js +2 -26
  746. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  747. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  748. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  749. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -13
  750. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  751. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
  752. package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
  753. package/lib/esm/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  754. package/lib/esm/appui-react/syncui/BooleanListener.js +2 -1
  755. package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
  756. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
  757. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  758. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +29 -101
  759. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  760. package/lib/esm/appui-react/toolbar/ActionButtonItem.js +2 -1
  761. package/lib/esm/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  762. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  763. package/lib/esm/appui-react/toolbar/ActionItemButton.js +2 -1
  764. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  765. package/lib/esm/appui-react/toolbar/GroupButtonItem.js +24 -20
  766. package/lib/esm/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  767. package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  768. package/lib/esm/appui-react/toolbar/GroupItem.js +33 -29
  769. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  770. package/lib/esm/appui-react/toolbar/ToolButton.js +3 -2
  771. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  772. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  773. package/lib/esm/appui-react/toolbar/Toolbar.js +3 -2
  774. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  775. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  776. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +22 -20
  777. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  778. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  779. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +4 -4
  780. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  781. package/lib/esm/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
  782. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js +2 -2
  783. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  784. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
  785. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  786. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +18 -37
  787. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  788. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
  789. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  790. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +13 -21
  791. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  792. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
  793. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  794. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +40 -51
  795. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  796. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +7 -4
  797. package/lib/{cjs/appui-react/uisettings → esm/appui-react/uistate}/AppUiSettings.d.ts +9 -7
  798. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  799. package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.js +13 -9
  800. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -0
  801. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  802. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  803. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +58 -0
  804. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  805. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  806. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  807. package/lib/esm/appui-react/uistate/useUiStateStorage.js +33 -0
  808. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -0
  809. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +5 -5
  810. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  811. package/lib/esm/appui-react/utils/UiShowHideManager.js +9 -9
  812. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  813. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  814. package/lib/esm/appui-react/widget-panels/Content.js +1 -4
  815. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  816. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +98 -8
  817. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  818. package/lib/esm/appui-react/widget-panels/Frontstage.js +103 -102
  819. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  820. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +22 -0
  821. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
  822. package/lib/esm/appui-react/widgets/BackstageAppButton.js +52 -0
  823. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -0
  824. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  825. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +2 -1
  826. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  827. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +0 -2
  828. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  829. package/lib/esm/appui-react/widgets/BasicToolWidget.js +4 -15
  830. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  831. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
  832. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  833. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +11 -1
  834. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  835. package/lib/esm/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  836. package/lib/esm/appui-react/widgets/NavigationWidget.js +2 -1
  837. package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
  838. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +1 -0
  839. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  840. package/lib/esm/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  841. package/lib/esm/appui-react/widgets/StableWidgetDef.js +1 -1
  842. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  843. package/lib/esm/appui-react/widgets/ToolSettingsContent.js +2 -1
  844. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  845. package/lib/esm/appui-react/widgets/ToolWidget.js +3 -2
  846. package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
  847. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
  848. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  849. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +2 -36
  850. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  851. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
  852. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
  853. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js +5 -2
  854. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  855. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  856. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  857. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +2 -2
  858. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  859. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +2 -3
  860. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  861. package/lib/esm/appui-react/widgets/WidgetDef.js +18 -7
  862. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  863. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  864. package/lib/esm/appui-react/widgets/WidgetHost.js +1 -0
  865. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  866. package/lib/esm/appui-react/widgets/WidgetStack.d.ts.map +1 -1
  867. package/lib/esm/appui-react/widgets/WidgetStack.js +2 -0
  868. package/lib/esm/appui-react/widgets/WidgetStack.js.map +1 -1
  869. package/lib/esm/appui-react/zones/FrameworkZone.js.map +1 -1
  870. package/lib/esm/appui-react/zones/StatusBarZone.js.map +1 -1
  871. package/lib/esm/appui-react/zones/Zone.d.ts +1 -1
  872. package/lib/esm/appui-react/zones/Zone.d.ts.map +1 -1
  873. package/lib/esm/appui-react/zones/Zone.js +2 -1
  874. package/lib/esm/appui-react/zones/Zone.js.map +1 -1
  875. package/lib/esm/appui-react/zones/ZoneDef.d.ts +4 -4
  876. package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
  877. package/lib/esm/appui-react/zones/ZoneDef.js +5 -4
  878. package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
  879. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  880. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  881. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js +2 -1
  882. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  883. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  884. package/lib/esm/appui-react.d.ts +16 -18
  885. package/lib/esm/appui-react.d.ts.map +1 -1
  886. package/lib/esm/appui-react.js +16 -18
  887. package/lib/esm/appui-react.js.map +1 -1
  888. package/lib/public/locales/en/UiFramework.json +9 -2
  889. package/package.json +43 -51
  890. package/lib/cjs/appui-react/UserInfo.d.ts +0 -58
  891. package/lib/cjs/appui-react/UserInfo.d.ts.map +0 -1
  892. package/lib/cjs/appui-react/UserInfo.js +0 -34
  893. package/lib/cjs/appui-react/UserInfo.js.map +0 -1
  894. package/lib/cjs/appui-react/content/SavedView.d.ts.map +0 -1
  895. package/lib/cjs/appui-react/content/SavedView.js.map +0 -1
  896. package/lib/cjs/appui-react/content/SavedViewLayout.d.ts.map +0 -1
  897. package/lib/cjs/appui-react/content/SavedViewLayout.js.map +0 -1
  898. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
  899. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
  900. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js +0 -34
  901. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
  902. package/lib/cjs/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  903. package/lib/cjs/appui-react/uisettings/AppUiSettings.js.map +0 -1
  904. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
  905. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  906. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js +0 -74
  907. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  908. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts +0 -21
  909. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  910. package/lib/cjs/appui-react/uisettings/useUiSettings.js +0 -28
  911. package/lib/cjs/appui-react/uisettings/useUiSettings.js.map +0 -1
  912. package/lib/esm/appui-react/UserInfo.d.ts +0 -58
  913. package/lib/esm/appui-react/UserInfo.d.ts.map +0 -1
  914. package/lib/esm/appui-react/UserInfo.js +0 -30
  915. package/lib/esm/appui-react/UserInfo.js.map +0 -1
  916. package/lib/esm/appui-react/content/SavedView.d.ts.map +0 -1
  917. package/lib/esm/appui-react/content/SavedView.js.map +0 -1
  918. package/lib/esm/appui-react/content/SavedViewLayout.d.ts.map +0 -1
  919. package/lib/esm/appui-react/content/SavedViewLayout.js.map +0 -1
  920. package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
  921. package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
  922. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js +0 -31
  923. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
  924. package/lib/esm/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  925. package/lib/esm/appui-react/uisettings/AppUiSettings.js.map +0 -1
  926. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
  927. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  928. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js +0 -68
  929. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  930. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts +0 -21
  931. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  932. package/lib/esm/appui-react/uisettings/useUiSettings.js +0 -23
  933. package/lib/esm/appui-react/uisettings/useUiSettings.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GroupButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.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 Toolbar\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n ActionButton, ConditionalBooleanValue, ConditionalStringValue, GroupButton, OnItemExecutedFunc, ToolbarItemUtilities,\r\n} from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\r\n Group as ToolGroupComponent, withDragInteraction,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\n\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst ItemWithDragInteraction = withDragInteraction(Item);\r\n\r\n// -----------------------------------------------------------------------------\r\n// ToolbarGroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n trayId?: string;\r\n item: ActionButton | GroupButton;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title?: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItem: GroupButton;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface ToolbarGroupItemComponentProps extends CommonProps {\r\n groupItem: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\ninterface ToolbarGroupItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItem: GroupButton;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n isEnabled: boolean;\r\n isPressed: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class ToolbarGroupItem extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<ToolbarGroupItemState>;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: ToolbarGroupItemComponentProps) {\r\n super(props);\r\n\r\n const state = this.getGroupItemState(this.props);\r\n // TODO: The defaultActiveItemId should come from session storage\r\n const activeItemId = getFirstItemId(this.props.groupItem);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n private getGroupItemState(props: ToolbarGroupItemComponentProps) {\r\n const groupItem = props.groupItem;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItem(groupItem, trayId, trays);\r\n const isHidden = ConditionalBooleanValue.getValue(groupItem.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(groupItem.isDisabled);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItem,\r\n isEnabled: !isDisabled,\r\n isPressed: false,\r\n isVisible: !isHidden,\r\n trayId,\r\n backTrays: [],\r\n trays,\r\n };\r\n }\r\n\r\n private resetTrayId(): string {\r\n this._trayIndex = 1;\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private generateTrayId(): string {\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private processGroupItem(groupItem: GroupButton, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n groupItem.items.forEach((item) => {\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const toolGroupItem: ToolGroupItem = {\r\n trayId: itemTrayId,\r\n item,\r\n };\r\n\r\n items.set(item.id, toolGroupItem);\r\n this.processGroupItem(item, itemTrayId, trays);\r\n } else {\r\n const toolItem: ToolGroupItem = { item };\r\n items.set(item.id, toolItem);\r\n }\r\n });\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: ConditionalStringValue.getValue(groupItem.panelLabel),\r\n groupItem,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: ToolbarGroupItemComponentProps, _prevState: ToolbarGroupItemState) {\r\n if (!PropsHelper.isShallowEqual(this.props, prevProps)) {\r\n // istanbul ignore else\r\n if (this.props.groupItem !== prevProps.groupItem)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different ToolbarGroupItem for same groupId of ${this.state.groupItem.id}`);\r\n this.setState((_, props) => this.getGroupItemState(props));\r\n }\r\n }\r\n\r\n private get _tray() {\r\n const tray = this.state.trays.get(this.state.trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private getTray(trayId: string) {\r\n const tray = this.state.trays.get(trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n // istanbul ignore next\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItem, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItem.badgeType); // eslint-disable-line deprecation/deprecation\r\n\r\n return (\r\n <ToolbarDirectionContext.Consumer>\r\n {(direction) => (\r\n <ToolbarDragInteractionContext.Consumer>\r\n {(dragInteraction) => (\r\n <ExpandableItem\r\n {...props}\r\n className={classNames}\r\n key={this.state.groupItem.id}\r\n panel={this.getGroupTray(dragInteraction)}\r\n >\r\n {dragInteraction ?\r\n (\r\n <div ref={this._ref}>\r\n <ItemWithDragInteraction\r\n badge={badge}\r\n direction={direction}\r\n icon={ToolbarHelper.getIconReactNode(activeItem)}\r\n isActive={this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleDragInteractionClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n onOpenPanel={this._handleOpenPanel}\r\n title={ConditionalStringValue.getValue(activeItem.label)}\r\n />\r\n </div>\r\n ) :\r\n (\r\n <div ref={this._ref}>\r\n <Item\r\n badge={badge}\r\n icon={ToolbarHelper.getIconReactNode(groupItem)}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n title={ConditionalStringValue.getValue(this.state.groupItem.label)}\r\n />\r\n </div>\r\n )}\r\n </ExpandableItem>\r\n )}\r\n </ToolbarDragInteractionContext.Consumer>\r\n )}\r\n </ToolbarDirectionContext.Consumer>\r\n );\r\n }\r\n\r\n private _handleOpenPanel = () => {\r\n this.setState({\r\n isPressed: true,\r\n });\r\n this._closeOnPanelOpened = false;\r\n FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n };\r\n\r\n private _handleClick = () => {\r\n this.setState((prevState) => ({\r\n isPressed: !prevState.isPressed,\r\n }));\r\n };\r\n\r\n private _handleDragInteractionClick = () => {\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n activeItem && ToolbarItemUtilities.isActionButton(activeItem) && activeItem.execute();\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (_e: MouseEvent) => {\r\n this.closeGroupButton();\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n if (!this._closeOnPanelOpened)\r\n return;\r\n this.closeGroupButton();\r\n };\r\n\r\n private closeGroupButton() {\r\n const trayId = this.resetTrayId();\r\n\r\n this.setState({\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n });\r\n }\r\n\r\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\r\n const trayId = this.resetTrayId();\r\n this.setState(\r\n {\r\n activeItemId: itemKey,\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n },\r\n () => {\r\n const tray = this.getTray(trayKey);\r\n const childItem = tray.groupItem.items.find((item) => itemKey === item.id);\r\n // istanbul ignore else\r\n if (childItem) {\r\n // istanbul ignore else\r\n if (ToolbarItemUtilities.isActionButton(childItem)) {\r\n childItem.execute();\r\n if (this.props.onItemExecuted)\r\n this.props.onItemExecuted(childItem);\r\n }\r\n }\r\n },\r\n );\r\n }\r\n\r\n private getItemsInColumn(numTotalItems: number): number {\r\n if (numTotalItems <= 6)\r\n return numTotalItems;\r\n if (numTotalItems <= 24)\r\n return Math.ceil(numTotalItems / 2);\r\n if (numTotalItems <= 36)\r\n return Math.ceil(numTotalItems / 3);\r\n return Math.ceil(numTotalItems / 4);\r\n }\r\n\r\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\r\n if (!this.state.isPressed)\r\n return undefined;\r\n\r\n return (\r\n <ToolGroupPanelContext.Consumer>\r\n {(activateOnPointerUp) => {\r\n const tray = this._tray;\r\n const items = [...tray.items.keys()];\r\n const itemsInColumn = this.getItemsInColumn(items.length); // tray.groupItem.itemsInColumn;\r\n\r\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\r\n\r\n // Divide items equally between columns.\r\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\r\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\r\n\r\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\r\n const columnIndex = Math.floor(index / numberItemsInColumn);\r\n if (columnIndex >= acc.length) {\r\n return [\r\n ...acc,\r\n [item],\r\n ];\r\n }\r\n return [\r\n ...acc.slice(0, columnIndex),\r\n [\r\n ...acc[columnIndex],\r\n item,\r\n ],\r\n ...acc.slice(columnIndex + 1),\r\n ];\r\n }, []);\r\n const columns = (columnToItems.map((columnItems, columnIndex) =>\r\n <GroupColumn key={columnIndex}>\r\n {columnItems.map((itemKey) => {\r\n const tgItem = tray.items.get(itemKey)!;\r\n const item = tgItem.item;\r\n const icon = ToolbarHelper.getIconReactNode(item);\r\n const isVisible = true;\r\n const isActive = itemKey === this.state.activeToolId;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (tgItem.trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!!item.isDisabled}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(tgItem.trayId!)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(tgItem.trayId!) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!!item.isDisabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n onClick={\r\n // istanbul ignore next\r\n () => this.handleToolGroupItemClicked(this.state.trayId, itemKey)\r\n }\r\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n })}\r\n </GroupColumn>,\r\n ));\r\n\r\n if (this.state.backTrays.length > 0)\r\n return (\r\n <NestedToolGroup\r\n columns={columns}\r\n onBack={this._handleBack}\r\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : /* istanbul ignore next */ this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n\r\n return (\r\n <ToolGroup\r\n columns={columns}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n }}\r\n </ToolGroupPanelContext.Consumer>\r\n );\r\n }\r\n\r\n public getItemById(id: string): ActionButton | GroupButton | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItem.items.find((childItem) => id === childItem.id);\r\n if (item)\r\n return item;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n private _handleBack = () => {\r\n this.setState((prevState) => {\r\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : /* istanbul ignore next */ prevState.trayId;\r\n const backTrays = prevState.backTrays.slice(0, -1);\r\n return {\r\n trayId,\r\n backTrays,\r\n };\r\n });\r\n };\r\n\r\n private _handleExpanderClick = (trayId: string) => {\r\n this.setState((prevState) => {\r\n return {\r\n trayId,\r\n backTrays: [...prevState.backTrays, prevState.trayId],\r\n };\r\n });\r\n };\r\n}\r\n\r\n/** @internal */\r\nconst getFirstItem = (groupItem: GroupButton): ActionButton | GroupButton | undefined => {\r\n for (const item of groupItem.items) {\r\n const isHidden = ConditionalBooleanValue.getValue(item.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(item.isDisabled);\r\n\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n const firstItem = getFirstItem(item);\r\n // istanbul ignore else\r\n if (firstItem)\r\n return firstItem;\r\n // istanbul ignore next\r\n continue;\r\n }\r\n if (!isHidden && !isDisabled)\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nconst getFirstItemId = (groupItem: GroupButton): string => {\r\n const item = getFirstItem(groupItem);\r\n return item ? item.id : \"\";\r\n};\r\n\r\n/** Action button props\r\n * @internal\r\n */\r\ninterface GroupButtonProps {\r\n item: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\n/** Group Button React component\r\n * @internal\r\n */\r\nexport function GroupButtonItem(props: GroupButtonProps) {\r\n return (\r\n <ToolbarGroupItem\r\n groupItem={props.item}\r\n key={props.item.id}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"GroupButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.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 Toolbar\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n ActionButton, ConditionalBooleanValue, ConditionalStringValue, GroupButton, OnItemExecutedFunc, ToolbarItemUtilities,\r\n} from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\r\n Group as ToolGroupComponent, withDragInteraction,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\n\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ItemWithDragInteraction = withDragInteraction(Item);\r\n\r\n// -----------------------------------------------------------------------------\r\n// ToolbarGroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n trayId?: string;\r\n item: ActionButton | GroupButton;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title?: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItem: GroupButton;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface ToolbarGroupItemComponentProps extends CommonProps {\r\n groupItem: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\ninterface ToolbarGroupItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItem: GroupButton;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n isEnabled: boolean;\r\n isPressed: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class ToolbarGroupItem extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<ToolbarGroupItemState>;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: ToolbarGroupItemComponentProps) {\r\n super(props);\r\n\r\n const state = this.getGroupItemState(this.props);\r\n // TODO: The defaultActiveItemId should come from session storage\r\n const activeItemId = getFirstItemId(this.props.groupItem);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n private getGroupItemState(props: ToolbarGroupItemComponentProps) {\r\n const groupItem = props.groupItem;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItem(groupItem, trayId, trays);\r\n const isHidden = ConditionalBooleanValue.getValue(groupItem.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(groupItem.isDisabled);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItem,\r\n isEnabled: !isDisabled,\r\n isPressed: false,\r\n isVisible: !isHidden,\r\n trayId,\r\n backTrays: [],\r\n trays,\r\n };\r\n }\r\n\r\n private resetTrayId(): string {\r\n this._trayIndex = 1;\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private generateTrayId(): string {\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private processGroupItem(groupItem: GroupButton, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n groupItem.items.forEach((item) => {\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const toolGroupItem: ToolGroupItem = {\r\n trayId: itemTrayId,\r\n item,\r\n };\r\n\r\n items.set(item.id, toolGroupItem);\r\n this.processGroupItem(item, itemTrayId, trays);\r\n } else {\r\n const toolItem: ToolGroupItem = { item };\r\n items.set(item.id, toolItem);\r\n }\r\n });\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: ConditionalStringValue.getValue(groupItem.panelLabel),\r\n groupItem,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: ToolbarGroupItemComponentProps, _prevState: ToolbarGroupItemState) {\r\n if (!PropsHelper.isShallowEqual(this.props, prevProps)) {\r\n // istanbul ignore else\r\n if (this.props.groupItem !== prevProps.groupItem)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different ToolbarGroupItem for same groupId of ${this.state.groupItem.id}`);\r\n this.setState((_, props) => this.getGroupItemState(props));\r\n }\r\n }\r\n\r\n private get _tray() {\r\n const tray = this.state.trays.get(this.state.trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private getTray(trayId: string) {\r\n const tray = this.state.trays.get(trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n // istanbul ignore next\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItem, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItem.badgeType); // eslint-disable-line deprecation/deprecation\r\n\r\n return (\r\n <ToolbarDirectionContext.Consumer>\r\n {(direction) => (\r\n <ToolbarDragInteractionContext.Consumer>\r\n {(dragInteraction) => (\r\n <ExpandableItem // eslint-disable-line deprecation/deprecation\r\n {...props}\r\n className={classNames}\r\n key={this.state.groupItem.id}\r\n panel={this.getGroupTray(dragInteraction)}\r\n >\r\n {dragInteraction ?\r\n (\r\n <div ref={this._ref}>\r\n <ItemWithDragInteraction\r\n badge={badge}\r\n direction={direction}\r\n icon={ToolbarHelper.getIconReactNode(activeItem)}\r\n isActive={this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleDragInteractionClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n onOpenPanel={this._handleOpenPanel}\r\n title={ConditionalStringValue.getValue(activeItem.label)}\r\n />\r\n </div>\r\n ) :\r\n (\r\n <div ref={this._ref}>\r\n <Item // eslint-disable-line deprecation/deprecation\r\n badge={badge}\r\n icon={ToolbarHelper.getIconReactNode(groupItem)}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n title={ConditionalStringValue.getValue(this.state.groupItem.label)}\r\n />\r\n </div>\r\n )}\r\n </ExpandableItem>\r\n )}\r\n </ToolbarDragInteractionContext.Consumer>\r\n )}\r\n </ToolbarDirectionContext.Consumer>\r\n );\r\n }\r\n\r\n private _handleOpenPanel = () => {\r\n this.setState({\r\n isPressed: true,\r\n });\r\n this._closeOnPanelOpened = false;\r\n FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n };\r\n\r\n private _handleClick = () => {\r\n this.setState((prevState) => ({\r\n isPressed: !prevState.isPressed,\r\n }));\r\n };\r\n\r\n private _handleDragInteractionClick = () => {\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n activeItem && ToolbarItemUtilities.isActionButton(activeItem) && activeItem.execute();\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (_e: MouseEvent) => {\r\n this.closeGroupButton();\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n if (!this._closeOnPanelOpened)\r\n return;\r\n this.closeGroupButton();\r\n };\r\n\r\n private closeGroupButton() {\r\n const trayId = this.resetTrayId();\r\n\r\n this.setState({\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n });\r\n }\r\n\r\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\r\n const trayId = this.resetTrayId();\r\n this.setState(\r\n {\r\n activeItemId: itemKey,\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n },\r\n () => {\r\n const tray = this.getTray(trayKey);\r\n const childItem = tray.groupItem.items.find((item) => itemKey === item.id);\r\n // istanbul ignore else\r\n if (childItem) {\r\n // istanbul ignore else\r\n if (ToolbarItemUtilities.isActionButton(childItem)) {\r\n childItem.execute();\r\n if (this.props.onItemExecuted)\r\n this.props.onItemExecuted(childItem);\r\n }\r\n }\r\n },\r\n );\r\n }\r\n\r\n private getItemsInColumn(numTotalItems: number): number {\r\n if (numTotalItems <= 6)\r\n return numTotalItems;\r\n if (numTotalItems <= 24)\r\n return Math.ceil(numTotalItems / 2);\r\n if (numTotalItems <= 36)\r\n return Math.ceil(numTotalItems / 3);\r\n return Math.ceil(numTotalItems / 4);\r\n }\r\n\r\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\r\n if (!this.state.isPressed)\r\n return undefined;\r\n\r\n return (\r\n <ToolGroupPanelContext.Consumer>\r\n {(activateOnPointerUp) => {\r\n const tray = this._tray;\r\n const items = [...tray.items.keys()];\r\n const itemsInColumn = this.getItemsInColumn(items.length); // tray.groupItem.itemsInColumn;\r\n\r\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\r\n\r\n // Divide items equally between columns.\r\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\r\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\r\n\r\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\r\n const columnIndex = Math.floor(index / numberItemsInColumn);\r\n if (columnIndex >= acc.length) {\r\n return [\r\n ...acc,\r\n [item],\r\n ];\r\n }\r\n return [\r\n ...acc.slice(0, columnIndex),\r\n [\r\n ...acc[columnIndex],\r\n item,\r\n ],\r\n ...acc.slice(columnIndex + 1),\r\n ];\r\n }, []);\r\n const columns = (columnToItems.map((columnItems, columnIndex) =>\r\n <GroupColumn key={columnIndex}> {/* eslint-disable-line deprecation/deprecation */}\r\n {columnItems.map((itemKey) => {\r\n const tgItem = tray.items.get(itemKey)!;\r\n const item = tgItem.item;\r\n const icon = ToolbarHelper.getIconReactNode(item);\r\n const isVisible = true;\r\n const isActive = itemKey === this.state.activeToolId;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (tgItem.trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!!item.isDisabled}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(tgItem.trayId!)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(tgItem.trayId!) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!!item.isDisabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n onClick={\r\n // istanbul ignore next\r\n () => this.handleToolGroupItemClicked(this.state.trayId, itemKey)\r\n }\r\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n })}\r\n </GroupColumn>,\r\n ));\r\n\r\n if (this.state.backTrays.length > 0)\r\n return (\r\n <NestedToolGroup\r\n columns={columns}\r\n onBack={this._handleBack}\r\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : /* istanbul ignore next */ this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n\r\n return (\r\n <ToolGroup\r\n columns={columns}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n }}\r\n </ToolGroupPanelContext.Consumer>\r\n );\r\n }\r\n\r\n public getItemById(id: string): ActionButton | GroupButton | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItem.items.find((childItem) => id === childItem.id);\r\n if (item)\r\n return item;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n private _handleBack = () => {\r\n this.setState((prevState) => {\r\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : /* istanbul ignore next */ prevState.trayId;\r\n const backTrays = prevState.backTrays.slice(0, -1);\r\n return {\r\n trayId,\r\n backTrays,\r\n };\r\n });\r\n };\r\n\r\n private _handleExpanderClick = (trayId: string) => {\r\n this.setState((prevState) => {\r\n return {\r\n trayId,\r\n backTrays: [...prevState.backTrays, prevState.trayId],\r\n };\r\n });\r\n };\r\n}\r\n\r\n/** @internal */\r\nconst getFirstItem = (groupItem: GroupButton): ActionButton | GroupButton | undefined => {\r\n for (const item of groupItem.items) {\r\n const isHidden = ConditionalBooleanValue.getValue(item.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(item.isDisabled);\r\n\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n const firstItem = getFirstItem(item);\r\n // istanbul ignore else\r\n if (firstItem)\r\n return firstItem;\r\n // istanbul ignore next\r\n continue;\r\n }\r\n if (!isHidden && !isDisabled)\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nconst getFirstItemId = (groupItem: GroupButton): string => {\r\n const item = getFirstItem(groupItem);\r\n return item ? item.id : \"\";\r\n};\r\n\r\n/** Action button props\r\n * @internal\r\n */\r\ninterface GroupButtonProps {\r\n item: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\n/** Group Button React component\r\n * @internal\r\n */\r\nexport function GroupButtonItem(props: GroupButtonProps) {\r\n return (\r\n <ToolbarGroupItem\r\n groupItem={props.item}\r\n key={props.item.id}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n );\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GroupItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupItem.tsx"],"names":[],"mappings":"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"}
@@ -24,11 +24,11 @@ const SyncUiEventDispatcher_1 = require("../syncui/SyncUiEventDispatcher");
24
24
  const UiFramework_1 = require("../UiFramework");
25
25
  const PropsHelper_1 = require("../utils/PropsHelper");
26
26
  const DragInteraction_1 = require("./DragInteraction");
27
- // eslint-disable-next-line @typescript-eslint/naming-convention
27
+ // eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation
28
28
  const ToolGroup = (0, core_react_1.withOnOutsideClick)(appui_layout_react_1.Group, undefined, false);
29
- // eslint-disable-next-line @typescript-eslint/naming-convention
29
+ // eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation
30
30
  const NestedToolGroup = (0, core_react_1.withOnOutsideClick)(appui_layout_react_1.NestedGroup, undefined, false);
31
- // eslint-disable-next-line @typescript-eslint/naming-convention
31
+ // eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation
32
32
  const ItemWithDragInteraction = (0, appui_layout_react_1.withDragInteraction)(appui_layout_react_1.Item);
33
33
  // -----------------------------------------------------------------------------
34
34
  // GroupItemDef class
@@ -50,7 +50,7 @@ class GroupItemDef extends ActionButtonItemDef_1.ActionButtonItemDef {
50
50
  this.groupId = GroupItemDef.groupIdPrefix + GroupItemDef._sId;
51
51
  }
52
52
  this.directionExplicit = (groupItemProps.direction !== undefined);
53
- this.direction = (groupItemProps.direction !== undefined) ? groupItemProps.direction : appui_layout_react_1.Direction.Bottom;
53
+ this.direction = (groupItemProps.direction !== undefined) ? groupItemProps.direction : appui_layout_react_1.Direction.Bottom; // eslint-disable-line deprecation/deprecation
54
54
  this.itemsInColumn = (groupItemProps.itemsInColumn !== undefined) ? groupItemProps.itemsInColumn : 7;
55
55
  this._panelLabel = PropsHelper_1.PropsHelper.getStringSpec(groupItemProps.panelLabel, groupItemProps.panelLabelKey); // eslint-disable-line deprecation/deprecation
56
56
  this.items = groupItemProps.items;
@@ -335,11 +335,13 @@ class GroupItem extends React.Component {
335
335
  const { groupItemDef, className, ...props } = this.props;
336
336
  const classNames = (0, classnames_1.default)(className, groupItemDef.overflow && "nz-toolbar-item-overflow");
337
337
  const badge = core_react_1.BadgeUtilities.getComponentForBadgeType(groupItemDef.badgeType);
338
- return (React.createElement(appui_layout_react_1.ToolbarDirectionContext.Consumer, null, (direction) => (React.createElement(DragInteraction_1.ToolbarDragInteractionContext.Consumer, null, (dragInteraction) => (React.createElement(appui_layout_react_1.ExpandableItem, { ...props, className: classNames, key: this.state.groupItemDef.id, panel: this.getGroupTray(dragInteraction) }, dragInteraction ?
338
+ return (React.createElement(appui_layout_react_1.ToolbarDirectionContext.Consumer, null, (direction) => (React.createElement(DragInteraction_1.ToolbarDragInteractionContext.Consumer, null, (dragInteraction) => (React.createElement(appui_layout_react_1.ExpandableItem // eslint-disable-line deprecation/deprecation
339
+ , { ...props, className: classNames, key: this.state.groupItemDef.id, panel: this.getGroupTray(dragInteraction) }, dragInteraction ?
339
340
  (React.createElement("div", { ref: this._ref },
340
341
  React.createElement(ItemWithDragInteraction, { badge: badge, className: groupItemDef.overflow ? "nz-ellipsis-icon" : undefined, direction: direction, icon: React.createElement(core_react_1.Icon, { iconSpec: groupItemDef.overflow ? "nz-ellipsis" : activeItem.iconSpec }), isActive: groupItemDef.overflow ? false : this.state.activeToolId === this.state.activeItemId, isDisabled: !this.state.isEnabled, onClick: groupItemDef.overflow ? this._handleOverflowClick : this._handleDragInteractionClick, onKeyDown: this._handleKeyDown, onOpenPanel: this._handleOpenPanel, onSizeKnown: this.props.onSizeKnown, title: groupItemDef.overflow ? groupItemDef.label : activeItem.label }))) :
341
342
  (React.createElement("div", { ref: this._ref },
342
- React.createElement(appui_layout_react_1.Item, { badge: badge, className: groupItemDef.overflow ? "nz-ellipsis-icon" : undefined, icon: React.createElement(core_react_1.Icon, { iconSpec: groupItemDef.overflow ? "nz-ellipsis" : groupItemDef.iconSpec }), isDisabled: !this.state.isEnabled, onClick: this._handleClick, onKeyDown: this._handleKeyDown, onSizeKnown: this.props.onSizeKnown, title: this.state.groupItemDef.label })))))))));
343
+ React.createElement(appui_layout_react_1.Item // eslint-disable-line deprecation/deprecation
344
+ , { badge: badge, className: groupItemDef.overflow ? "nz-ellipsis-icon" : undefined, icon: React.createElement(core_react_1.Icon, { iconSpec: groupItemDef.overflow ? "nz-ellipsis" : groupItemDef.iconSpec }), isDisabled: !this.state.isEnabled, onClick: this._handleClick, onKeyDown: this._handleKeyDown, onSizeKnown: this.props.onSizeKnown, title: this.state.groupItemDef.label })))))))));
343
345
  }
344
346
  closeGroupButton() {
345
347
  const trayId = this.resetTrayId();
@@ -390,31 +392,33 @@ class GroupItem extends React.Component {
390
392
  ...acc.slice(columnIndex + 1),
391
393
  ];
392
394
  }, []);
393
- const columns = (columnToItems.map((columnItems, columnIndex) => React.createElement(appui_layout_react_1.GroupColumn, { key: columnIndex }, columnItems.map((itemKey) => {
394
- const item = tray.items.get(itemKey);
395
- const icon = React.createElement(core_react_1.Icon, { iconSpec: item.iconSpec });
396
- let isVisible = true;
397
- let isActive = itemKey === this.state.activeToolId;
398
- let isEnabled = true;
399
- const badge = core_react_1.BadgeUtilities.getComponentForBadgeType(item.badgeType);
400
- if (item instanceof ItemDefBase_1.ItemDefBase) {
401
- isVisible = item.isVisible; // eslint-disable-line deprecation/deprecation
402
- isEnabled = item.isEnabled; // eslint-disable-line deprecation/deprecation
403
- if (item.stateFunc) { // eslint-disable-line deprecation/deprecation
404
- const newState = item.stateFunc({ isVisible, isActive, isEnabled }); // eslint-disable-line deprecation/deprecation
405
- isVisible = undefined !== newState.isVisible ? newState.isVisible : /* istanbul ignore next */ isVisible;
406
- isEnabled = undefined !== newState.isEnabled ? newState.isEnabled : /* istanbul ignore next */ isEnabled;
407
- isActive = undefined !== newState.isActive ? newState.isActive : /* istanbul ignore next */ isActive;
395
+ const columns = (columnToItems.map((columnItems, columnIndex) => React.createElement(appui_layout_react_1.GroupColumn, { key: columnIndex },
396
+ " ",
397
+ columnItems.map((itemKey) => {
398
+ const item = tray.items.get(itemKey);
399
+ const icon = React.createElement(core_react_1.Icon, { iconSpec: item.iconSpec });
400
+ let isVisible = true;
401
+ let isActive = itemKey === this.state.activeToolId;
402
+ let isEnabled = true;
403
+ const badge = core_react_1.BadgeUtilities.getComponentForBadgeType(item.badgeType);
404
+ if (item instanceof ItemDefBase_1.ItemDefBase) {
405
+ isVisible = item.isVisible; // eslint-disable-line deprecation/deprecation
406
+ isEnabled = item.isEnabled; // eslint-disable-line deprecation/deprecation
407
+ if (item.stateFunc) { // eslint-disable-line deprecation/deprecation
408
+ const newState = item.stateFunc({ isVisible, isActive, isEnabled }); // eslint-disable-line deprecation/deprecation
409
+ isVisible = undefined !== newState.isVisible ? newState.isVisible : /* istanbul ignore next */ isVisible;
410
+ isEnabled = undefined !== newState.isEnabled ? newState.isEnabled : /* istanbul ignore next */ isEnabled;
411
+ isActive = undefined !== newState.isActive ? newState.isActive : /* istanbul ignore next */ isActive;
412
+ }
413
+ }
414
+ const trayId = item.trayId;
415
+ if (trayId) {
416
+ return (isVisible &&
417
+ React.createElement(appui_layout_react_1.GroupToolExpander, { isDisabled: !isEnabled, key: itemKey, label: item.label, icon: icon, badge: badge, onClick: () => this._handleExpanderClick(trayId), onPointerUp: activateOnPointerUp ? () => this._handleExpanderClick(trayId) : undefined }));
408
418
  }
409
- }
410
- const trayId = item.trayId;
411
- if (trayId) {
412
419
  return (isVisible &&
413
- React.createElement(appui_layout_react_1.GroupToolExpander, { isDisabled: !isEnabled, key: itemKey, label: item.label, icon: icon, badge: badge, onClick: () => this._handleExpanderClick(trayId), onPointerUp: activateOnPointerUp ? () => this._handleExpanderClick(trayId) : undefined }));
414
- }
415
- return (isVisible &&
416
- React.createElement(appui_layout_react_1.GroupTool, { isDisabled: !isEnabled, isActive: isActive, key: itemKey, label: item.label, onClick: () => this.handleToolGroupItemClicked(this.state.trayId, itemKey), onPointerUp: activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined, icon: icon, badge: badge }));
417
- }))));
420
+ React.createElement(appui_layout_react_1.GroupTool, { isDisabled: !isEnabled, isActive: isActive, key: itemKey, label: item.label, onClick: () => this.handleToolGroupItemClicked(this.state.trayId, itemKey), onPointerUp: activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined, icon: icon, badge: badge }));
421
+ }))));
418
422
  if (this.state.backTrays.length > 0)
419
423
  return (React.createElement(NestedToolGroup, { columns: columns, onBack: this._handleBack, onBackPointerUp: activateOnPointerUp ? this._handleBack : undefined, onOutsideClick: dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick, title: tray.title }));
420
424
  return (React.createElement(ToolGroup, { columns: columns, onOutsideClick: dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick, title: tray.title }));
@@ -1 +1 @@
1
- {"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupItem.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 Item\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { BadgeType, ConditionalStringValue, OnItemExecutedFunc, SpecialKey, StringGetter } from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, Icon, IconSpec, SizeProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n Direction, ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\r\n Group as ToolGroupComponent, withDragInteraction,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { KeyboardShortcutManager } from \"../keyboardshortcut/KeyboardShortcut\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { AnyItemDef } from \"../shared/AnyItemDef\";\r\nimport { GroupItemProps } from \"../shared/GroupItemProps\";\r\nimport { BaseItemState, ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemList, ItemMap } from \"../shared/ItemMap\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst ItemWithDragInteraction = withDragInteraction(Item);\r\n\r\n// -----------------------------------------------------------------------------\r\n// GroupItemDef class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** An Item that opens a group of items.\r\n * @public\r\n */\r\nexport class GroupItemDef extends ActionButtonItemDef {\r\n private static _sId = 0;\r\n public static groupIdPrefix = \"Group-\";\r\n\r\n public groupId: string;\r\n public direction: Direction;\r\n public itemsInColumn: number;\r\n public items: AnyItemDef[];\r\n public directionExplicit: boolean;\r\n public defaultActiveItemId?: string;\r\n\r\n /** @internal */\r\n public overflow: boolean = false;\r\n\r\n private _itemList!: ItemList;\r\n private _itemMap!: ItemMap;\r\n private _panelLabel: string | StringGetter | ConditionalStringValue = \"\";\r\n\r\n constructor(groupItemProps: GroupItemProps, onItemExecuted?: OnItemExecutedFunc) {\r\n super(groupItemProps, onItemExecuted);\r\n\r\n this.groupId = (groupItemProps.groupId !== undefined) ? groupItemProps.groupId : \"\";\r\n if (groupItemProps.groupId)\r\n this.groupId = groupItemProps.groupId;\r\n else {\r\n GroupItemDef._sId++;\r\n this.groupId = GroupItemDef.groupIdPrefix + GroupItemDef._sId;\r\n }\r\n\r\n this.directionExplicit = (groupItemProps.direction !== undefined);\r\n this.direction = (groupItemProps.direction !== undefined) ? groupItemProps.direction : Direction.Bottom;\r\n this.itemsInColumn = (groupItemProps.itemsInColumn !== undefined) ? groupItemProps.itemsInColumn : 7;\r\n this._panelLabel = PropsHelper.getStringSpec(groupItemProps.panelLabel, groupItemProps.panelLabelKey); // eslint-disable-line deprecation/deprecation\r\n this.items = groupItemProps.items;\r\n this.defaultActiveItemId = groupItemProps.defaultActiveItemId;\r\n }\r\n\r\n public get id(): string {\r\n return this.groupId;\r\n }\r\n\r\n /** Get the panelLabel string */\r\n public get panelLabel(): string {\r\n return PropsHelper.getStringFromSpec(this._panelLabel);\r\n }\r\n\r\n /** Set the panelLabel.\r\n * @param v A string or a function to get the string.\r\n */\r\n public setPanelLabel(v: string | StringGetter | ConditionalStringValue) {\r\n this._panelLabel = v;\r\n }\r\n\r\n public resolveItems(force?: boolean): void {\r\n if (this._itemList && !force)\r\n return;\r\n\r\n this._itemList = new ItemList();\r\n this._itemMap = new ItemMap();\r\n\r\n this.items.map((item: AnyItemDef) => {\r\n const id: string = item.id;\r\n this._itemList.addItem(item);\r\n this._itemMap.set(id, item);\r\n });\r\n }\r\n\r\n public getItemById(id: string): ItemDefBase | undefined {\r\n return this._itemMap.get(id);\r\n }\r\n\r\n public getItemByIndex(index: number): ItemDefBase | undefined {\r\n return this._itemList.items[index];\r\n }\r\n\r\n public get itemCount(): number {\r\n return this._itemList.items.length;\r\n }\r\n\r\n public override execute(): void {\r\n }\r\n\r\n public override toolbarReactNode(index?: number): React.ReactNode {\r\n this.resolveItems();\r\n const key = this.getKey(index);\r\n\r\n return (\r\n <GroupItem\r\n groupItemDef={this}\r\n key={key}\r\n onSizeKnown={this.handleSizeKnown}\r\n />\r\n );\r\n }\r\n\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// GroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n iconSpec?: IconSpec;\r\n label: string;\r\n trayId?: string;\r\n badgeType?: BadgeType;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItemDef: GroupItemDef;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface GroupItemComponentProps extends CommonProps {\r\n groupItemDef: GroupItemDef;\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\ninterface GroupItemState extends BaseItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItemDef: GroupItemDef;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class GroupItem extends React.Component<GroupItemComponentProps, GroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<GroupItemState>;\r\n private _componentUnmounting = false;\r\n private _childSyncIds?: Set<string>;\r\n private _childRefreshRequired = false;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: GroupItemComponentProps) {\r\n super(props);\r\n\r\n this._loadChildSyncIds(props);\r\n const state = this.getGroupItemState(this.props);\r\n const activeItemId = this.props.groupItemDef.defaultActiveItemId !== undefined ? this.props.groupItemDef.defaultActiveItemId : getFirstItemId(this.props.groupItemDef);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n private _loadChildSyncIds(props: GroupItemComponentProps) {\r\n // istanbul ignore else\r\n if (props.groupItemDef && props.groupItemDef.items.length > 0) {\r\n props.groupItemDef.items.forEach((itemDef: AnyItemDef) => {\r\n const item: ItemDefBase | undefined = itemDef;\r\n if (item.stateSyncIds.length > 0) { // eslint-disable-line deprecation/deprecation\r\n if (undefined === this._childSyncIds)\r\n this._childSyncIds = new Set<string>();\r\n item.stateSyncIds.forEach((value) => this._childSyncIds!.add(value)); // eslint-disable-line deprecation/deprecation\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _handleSyncUiEvent = (args: SyncUiEventArgs): void => {\r\n // istanbul ignore next\r\n if (this._componentUnmounting) return;\r\n let refreshState = false;\r\n // istanbul ignore else\r\n if (this._childSyncIds && this._childSyncIds.size > 0)\r\n if ([...this._childSyncIds].some((value: string): boolean => args.eventIds.has(value.toLowerCase())))\r\n this._childRefreshRequired = true; // this is cleared when render occurs\r\n let newState: GroupItemState = { ...this.state };\r\n if (this.props.groupItemDef.stateSyncIds && this.props.groupItemDef.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.groupItemDef.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n if (refreshState || this._childRefreshRequired) {\r\n if (this.props.groupItemDef.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.groupItemDef.stateFunc(newState) as GroupItemState; // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if ((this.state.isActive !== newState.isActive) || (this.state.isEnabled !== newState.isEnabled) || (this.state.isVisible !== newState.isVisible)\r\n || this._childRefreshRequired) {\r\n this.setState({ isActive: newState.isActive, isEnabled: newState.isEnabled, isVisible: newState.isVisible, isPressed: newState.isPressed });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override shouldComponentUpdate(nextProps: GroupItemComponentProps, nextState: GroupItemState) {\r\n if (!PropsHelper.isShallowEqual(nextState, this.state))\r\n return true;\r\n if (!PropsHelper.isShallowEqual(nextProps, this.props))\r\n return true;\r\n\r\n // istanbul ignore else\r\n if (this._childRefreshRequired) {\r\n this._childRefreshRequired = false;\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n private getGroupItemState(props: GroupItemComponentProps) {\r\n const groupItemDef = props.groupItemDef;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItemDef(groupItemDef, trayId, trays);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItemDef,\r\n isEnabled: groupItemDef.isEnabled, // eslint-disable-line deprecation/deprecation\r\n isPressed: groupItemDef.isPressed,\r\n isVisible: groupItemDef.isVisible, // eslint-disable-line deprecation/deprecation\r\n trayId,\r\n backTrays: [],\r\n trays,\r\n };\r\n }\r\n\r\n private resetTrayId(): string {\r\n this._trayIndex = 1;\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private generateTrayId(): string {\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private processGroupItemDef(groupItemDef: GroupItemDef, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n for (let itemIndex = 0; itemIndex < groupItemDef.itemCount; itemIndex++) {\r\n const item = groupItemDef.getItemByIndex(itemIndex)!;\r\n if (item instanceof GroupItemDef) {\r\n item.resolveItems();\r\n\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const groupItem: ToolGroupItem = {\r\n iconSpec: item.iconSpec, label: item.label, trayId: itemTrayId,\r\n badgeType: item.badgeType,\r\n };\r\n\r\n items.set(item.id, groupItem);\r\n this.processGroupItemDef(item, itemTrayId, trays);\r\n } else {\r\n items.set(item.id, item);\r\n }\r\n }\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: groupItemDef.panelLabel ? groupItemDef.panelLabel : groupItemDef.tooltip, // we fallback to use tooltip since tooltip was originally (and confusingly) used as a panelLabel\r\n groupItemDef,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: GroupItemComponentProps, _prevState: GroupItemState) {\r\n if (this.props !== prevProps) {\r\n // istanbul ignore next\r\n if (this.props.groupItemDef !== prevProps.groupItemDef)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different GroupItemDef for same groupId of ${this.state.groupItemDef.groupId}`);\r\n this.setState((_, props) => this.getGroupItemState(props));\r\n }\r\n }\r\n\r\n private get _tray() {\r\n const tray = this.state.trays.get(this.state.trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private getTray(trayId: string) {\r\n const tray = this.state.trays.get(trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private _handleKeyDown = (e: React.KeyboardEvent): void => {\r\n // istanbul ignore else\r\n if (e.key === SpecialKey.Escape) {\r\n this.closeGroupButton();\r\n KeyboardShortcutManager.setFocusToHome();\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItemDef, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n groupItemDef.overflow && \"nz-toolbar-item-overflow\",\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItemDef.badgeType);\r\n return (\r\n <ToolbarDirectionContext.Consumer>\r\n {(direction) => (\r\n <ToolbarDragInteractionContext.Consumer>\r\n {(dragInteraction) => (\r\n <ExpandableItem\r\n {...props}\r\n className={classNames}\r\n key={this.state.groupItemDef.id}\r\n panel={this.getGroupTray(dragInteraction)}\r\n >\r\n {dragInteraction ?\r\n (\r\n <div ref={this._ref}>\r\n <ItemWithDragInteraction\r\n badge={badge}\r\n className={groupItemDef.overflow ? \"nz-ellipsis-icon\" : undefined}\r\n direction={direction}\r\n icon={<Icon\r\n iconSpec={groupItemDef.overflow ? \"nz-ellipsis\" : activeItem.iconSpec}\r\n />}\r\n isActive={groupItemDef.overflow ? false : this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={groupItemDef.overflow ? this._handleOverflowClick : this._handleDragInteractionClick}\r\n onKeyDown={this._handleKeyDown}\r\n onOpenPanel={this._handleOpenPanel}\r\n onSizeKnown={this.props.onSizeKnown}\r\n title={groupItemDef.overflow ? groupItemDef.label : activeItem.label}\r\n />\r\n </div>\r\n ) :\r\n (\r\n <div ref={this._ref}>\r\n <Item\r\n badge={badge}\r\n className={groupItemDef.overflow ? \"nz-ellipsis-icon\" : undefined}\r\n icon={<Icon\r\n iconSpec={groupItemDef.overflow ? \"nz-ellipsis\" : groupItemDef.iconSpec}\r\n />}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={this._handleKeyDown}\r\n onSizeKnown={this.props.onSizeKnown}\r\n title={this.state.groupItemDef.label}\r\n />\r\n </div>\r\n )}\r\n </ExpandableItem>\r\n )}\r\n </ToolbarDragInteractionContext.Consumer>\r\n )}\r\n </ToolbarDirectionContext.Consumer>\r\n );\r\n }\r\n\r\n private _handleOpenPanel = () => {\r\n this.setState({\r\n isPressed: true,\r\n });\r\n this._closeOnPanelOpened = false;\r\n FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n };\r\n\r\n private _handleClick = () => {\r\n this.setState((prevState) => ({\r\n isPressed: !prevState.isPressed,\r\n }));\r\n };\r\n\r\n private _handleDragInteractionClick = () => {\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n activeItem && activeItem instanceof ActionButtonItemDef && activeItem.execute();\r\n };\r\n\r\n private _handleOverflowClick = () => {\r\n this.setState((prevState) => {\r\n const isPressed = !prevState.isPressed;\r\n return {\r\n isPressed,\r\n };\r\n }, () => {\r\n this._closeOnPanelOpened = false;\r\n !!this.state.isPressed && FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n });\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (e: MouseEvent) => {\r\n if (this.props.groupItemDef.overflow) {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n return;\r\n }\r\n this.closeGroupButton();\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n };\r\n\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n private _handleToolPanelOpenedEvent = () => {\r\n // istanbul ignore else\r\n if (!this._closeOnPanelOpened)\r\n return;\r\n // istanbul ignore next\r\n this.closeGroupButton();\r\n };\r\n\r\n private closeGroupButton() {\r\n const trayId = this.resetTrayId();\r\n\r\n this.setState({\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n });\r\n }\r\n\r\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\r\n const trayId = this.resetTrayId();\r\n this.setState(\r\n {\r\n activeItemId: itemKey,\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n },\r\n () => {\r\n const tray = this.getTray(trayKey);\r\n const childItem = tray.groupItemDef.getItemById(itemKey);\r\n childItem && childItem instanceof ActionButtonItemDef && childItem.execute();\r\n },\r\n );\r\n }\r\n\r\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\r\n if (!this.state.isPressed)\r\n return undefined;\r\n\r\n return (\r\n <ToolGroupPanelContext.Consumer>\r\n {(activateOnPointerUp) => {\r\n const tray = this._tray;\r\n const itemsInColumn = tray.groupItemDef.itemsInColumn;\r\n const items = [...tray.items.keys()];\r\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\r\n\r\n // Divide items equally between columns.\r\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\r\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\r\n\r\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\r\n const columnIndex = Math.floor(index / numberItemsInColumn);\r\n if (columnIndex >= acc.length) {\r\n return [\r\n ...acc,\r\n [item],\r\n ];\r\n }\r\n return [\r\n ...acc.slice(0, columnIndex),\r\n [\r\n ...acc[columnIndex],\r\n item,\r\n ],\r\n ...acc.slice(columnIndex + 1),\r\n ];\r\n }, []);\r\n const columns = (columnToItems.map((columnItems, columnIndex) =>\r\n <GroupColumn key={columnIndex}>\r\n {columnItems.map((itemKey) => {\r\n const item = tray.items.get(itemKey)!;\r\n const icon = <Icon iconSpec={item.iconSpec} />;\r\n let isVisible = true;\r\n let isActive = itemKey === this.state.activeToolId;\r\n let isEnabled = true;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (item instanceof ItemDefBase) {\r\n isVisible = item.isVisible; // eslint-disable-line deprecation/deprecation\r\n isEnabled = item.isEnabled; // eslint-disable-line deprecation/deprecation\r\n if (item.stateFunc) { // eslint-disable-line deprecation/deprecation\r\n const newState = item.stateFunc({ isVisible, isActive, isEnabled }); // eslint-disable-line deprecation/deprecation\r\n isVisible = undefined !== newState.isVisible ? newState.isVisible : /* istanbul ignore next */ isVisible;\r\n isEnabled = undefined !== newState.isEnabled ? newState.isEnabled : /* istanbul ignore next */ isEnabled;\r\n isActive = undefined !== newState.isActive ? newState.isActive : /* istanbul ignore next */ isActive;\r\n }\r\n }\r\n\r\n const trayId = item.trayId;\r\n if (trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!isEnabled}\r\n key={itemKey}\r\n label={item.label}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(trayId)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(trayId) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!isEnabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={item.label}\r\n onClick={() => this.handleToolGroupItemClicked(this.state.trayId, itemKey)}\r\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n })}\r\n </GroupColumn>,\r\n ));\r\n\r\n if (this.state.backTrays.length > 0)\r\n return (\r\n <NestedToolGroup\r\n columns={columns}\r\n onBack={this._handleBack}\r\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n\r\n return (\r\n <ToolGroup\r\n columns={columns}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n }}\r\n </ToolGroupPanelContext.Consumer>\r\n );\r\n }\r\n\r\n public getItemById(id: string): ItemDefBase | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItemDef.getItemById(id);\r\n if (item)\r\n return item;\r\n }\r\n return undefined;\r\n }\r\n\r\n private _handleBack = () => {\r\n this.setState((prevState) => {\r\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : prevState.trayId;\r\n const backTrays = prevState.backTrays.slice(0, -1);\r\n return {\r\n trayId,\r\n backTrays,\r\n };\r\n });\r\n };\r\n\r\n private _handleExpanderClick = (trayId: string) => {\r\n this.setState((prevState) => {\r\n return {\r\n trayId,\r\n backTrays: [...prevState.backTrays, prevState.trayId],\r\n };\r\n });\r\n };\r\n}\r\n\r\n/** Properties for the [[GroupButton]] React component\r\n * @public\r\n */\r\nexport interface GroupButtonProps extends GroupItemProps, CommonProps { }\r\n\r\n/** Group Button React component\r\n * @public\r\n */\r\nexport function GroupButton(props: GroupButtonProps) {\r\n const groupItemDef = new GroupItemDef(props);\r\n groupItemDef.resolveItems();\r\n return (\r\n <GroupItem\r\n {...props}\r\n groupItemDef={groupItemDef}\r\n key={groupItemDef.id}\r\n />\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport const getFirstItem = (groupItemDef: GroupItemDef): AnyItemDef | undefined => {\r\n for (const item of groupItemDef.items) {\r\n if (item instanceof GroupItemDef) {\r\n const firstItem = getFirstItem(item);\r\n if (firstItem)\r\n return firstItem;\r\n continue;\r\n }\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nexport const getFirstItemId = (groupItemDef: GroupItemDef): string => {\r\n const item = getFirstItem(groupItemDef);\r\n return item ? item.id : \"\";\r\n};\r\n"]}
1
+ {"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupItem.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,2CAAoC;AACpC,+BAA+B;AAC/B,sDAA6C;AAC7C,0DAAyI;AACzI,kDAA+G;AAC/G,kEAGmC;AACnC,yEAAyE;AACzE,uEAA4F;AAC5F,2EAA+E;AAC/E,uEAAoE;AAGpE,uDAAmE;AACnE,+CAAsD;AACtD,2EAAwE;AACxE,gDAA6C;AAC7C,sDAAmD;AACnD,uDAAkE;AAElE,yFAAyF;AACzF,MAAM,SAAS,GAAG,IAAA,+BAAkB,EAAC,0BAAkB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC3E,yFAAyF;AACzF,MAAM,eAAe,GAAG,IAAA,+BAAkB,EAAC,gCAAwB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACvF,yFAAyF;AACzF,MAAM,uBAAuB,GAAG,IAAA,wCAAmB,EAAC,yBAAI,CAAC,CAAC;AAE1D,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;GAEG;AACH,MAAa,YAAa,SAAQ,yCAAmB;IAkBnD,YAAY,cAA8B,EAAE,cAAmC;QAC7E,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QARxC,gBAAgB;QACT,aAAQ,GAAY,KAAK,CAAC;QAIzB,gBAAW,GAAmD,EAAE,CAAC;QAKvE,IAAI,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,IAAI,cAAc,CAAC,OAAO;YACxB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;aACnC;YACH,YAAY,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC;SAC/D;QAED,IAAI,CAAC,iBAAiB,GAAG,CAAC,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,CAAC,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,8BAAS,CAAC,MAAM,CAAC,CAAC,8CAA8C;QACvJ,IAAI,CAAC,aAAa,GAAG,CAAC,cAAc,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,WAAW,GAAG,yBAAW,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,8CAA8C;QACrJ,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC,mBAAmB,CAAC;IAChE,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,gCAAgC;IAChC,IAAW,UAAU;QACnB,OAAO,yBAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,CAAiD;QACpE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAEM,YAAY,CAAC,KAAe;QACjC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK;YAC1B,OAAO;QAET,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAO,EAAE,CAAC;QAE9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAgB,EAAE,EAAE;YAClC,MAAM,EAAE,GAAW,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEM,cAAc,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;IACrC,CAAC;IAEe,OAAO;IACvB,CAAC;IAEe,gBAAgB,CAAC,KAAc;QAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/B,OAAO,CACL,oBAAC,SAAS,IACR,YAAY,EAAE,IAAI,EAClB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,IAAI,CAAC,eAAe,GACjC,CACH,CAAC;IACJ,CAAC;;AA7FH,oCA+FC;AA9FgB,iBAAI,GAAG,CAAC,CAAC;AACV,0BAAa,GAAG,QAAQ,CAAC;AA+HzC;;GAEG;AACH,MAAa,SAAU,SAAQ,KAAK,CAAC,SAAkD;IAUrF,YAAY,KAA8B;QACxC,KAAK,CAAC,KAAK,CAAC,CAAC;QARP,yBAAoB,GAAG,KAAK,CAAC;QAE7B,0BAAqB,GAAG,KAAK,CAAC;QAC9B,eAAU,GAAG,CAAC,CAAC;QACf,wBAAmB,GAAG,IAAI,CAAC;QAC3B,SAAI,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QA4BzC,uBAAkB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YAC3D,uBAAuB;YACvB,IAAI,IAAI,CAAC,oBAAoB;gBAAE,OAAO;YACtC,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,uBAAuB;YACvB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;gBACnD,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;oBAClG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAE,qCAAqC;YAC7E,IAAI,QAAQ,GAAmB,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,8CAA8C;gBACzI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,8CAA8C;YAC9K,IAAI,YAAY,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,8CAA8C;oBACnF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAmB,CAAC,CAAC,8CAA8C;gBAC1H,uBAAuB;gBACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC;uBAC5I,IAAI,CAAC,qBAAqB,EAAE;oBAC/B,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;iBAC7I;aACF;QACH,CAAC,CAAC;QAoHM,mBAAc,GAAG,CAAC,CAAsB,EAAQ,EAAE;YACxD,uBAAuB;YACvB,IAAI,CAAC,CAAC,GAAG,KAAK,2BAAU,CAAC,MAAM,EAAE;gBAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,0CAAuB,CAAC,cAAc,EAAE,CAAC;aAC1C;QACH,CAAC,CAAC;QAuEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC;gBACZ,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,qCAAiB,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC5B,SAAS,EAAE,CAAC,SAAS,CAAC,SAAS;aAChC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC;QAEM,gCAA2B,GAAG,GAAG,EAAE;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7D,UAAU,IAAI,UAAU,YAAY,yCAAmB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QAClF,CAAC,CAAC;QAEM,yBAAoB,GAAG,GAAG,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;gBACvC,OAAO;oBACL,SAAS;iBACV,CAAC;YACJ,CAAC,EAAE,GAAG,EAAE;gBACN,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,qCAAiB,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;gBAC1E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,uCAAkC,GAAG,CAAC,CAAa,EAAE,EAAE;YAC7D,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;gBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpH,OAAO;aACR;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtH,CAAC,CAAC;QAEM,8BAAyB,GAAG,CAAC,EAAE,MAAM,EAA0B,EAAE,EAAE;YACzE,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,gCAA2B,GAAG,GAAG,EAAE;YACzC,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAC3B,OAAO;YACT,uBAAuB;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QAoJM,gBAAW,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;gBACvH,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnD,OAAO;oBACL,MAAM;oBACN,SAAS;iBACV,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,MAAc,EAAE,EAAE;YAChD,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,OAAO;oBACL,MAAM;oBACN,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;iBACtD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QA3cA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvK,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK;YACR,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAA8B;QACtD,uBAAuB;QACvB,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAmB,EAAE,EAAE;gBACvD,MAAM,IAAI,GAA4B,OAAO,CAAC;gBAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,8CAA8C;oBAChF,IAAI,SAAS,KAAK,IAAI,CAAC,aAAa;wBAClC,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;oBACzC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,8CAA8C;iBACrH;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAwBe,iBAAiB;QAC/B,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzE,qCAAiB,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnF,qCAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACzF,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,6CAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC5E,qCAAiB,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtF,qCAAiB,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC5F,CAAC;IAEe,qBAAqB,CAAC,SAAkC,EAAE,SAAyB;QACjG,IAAI,CAAC,yBAAW,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,IAAI,CAAC,yBAAW,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;YACpD,OAAO,IAAI,CAAC;QAEd,uBAAuB;QACvB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,OAAO,IAAI,CAAC;SACb;QAED,uBAAuB;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,iBAAiB,CAAC,KAA8B;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAEtD,OAAO;YACL,YAAY,EAAE,qCAAiB,CAAC,YAAY;YAC5C,YAAY;YACZ,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,MAAM;YACN,SAAS,EAAE,EAAE;YACb,KAAK;SACN,CAAC;IACJ,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,OAAO,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAEO,cAAc;QACpB,OAAO,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAEO,mBAAmB,CAAC,YAA0B,EAAE,MAAc,EAAE,KAAuB;QAC7F,6BAA6B;QAC7B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC/C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;YACvE,MAAM,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAE,CAAC;YACrD,IAAI,IAAI,YAAY,YAAY,EAAE;gBAChC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAEpB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAkB;oBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU;oBAC9D,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC;gBAEF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;aACnD;iBAAM;gBACL,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aAC1B;SACF;QAED,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YAChB,KAAK;YACL,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO;YAC/E,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAEe,kBAAkB,CAAC,SAAkC,EAAE,UAA0B;QAC/F,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY;gBACpD,qBAAM,CAAC,QAAQ,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,8CAA8C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YACrI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;SAC5D;IACH,CAAC;IAED,IAAY,KAAK;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,uBAAuB;QACvB,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,UAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,OAAO,CAAC,MAAc;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,uBAAuB;QACvB,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,UAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAUe,MAAM;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YACvB,OAAO,IAAI,CAAC;QAEd,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU;YACb,OAAO,IAAI,CAAC;QAEd,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACzD,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,SAAS,EACT,YAAY,CAAC,QAAQ,IAAI,0BAA0B,CACpD,CAAC;QACF,MAAM,KAAK,GAAG,2BAAc,CAAC,wBAAwB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9E,OAAO,CACL,oBAAC,4CAAuB,CAAC,QAAQ,QAC9B,CAAC,SAAS,EAAE,EAAE,CAAC,CACd,oBAAC,+CAA6B,CAAC,QAAQ,QACpC,CAAC,eAAe,EAAE,EAAE,CAAC,CACpB,oBAAC,mCAAc,CAAC,8CAA8C;eACxD,KAAK,EACT,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAC/B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAExC,eAAe,CAAC,CAAC;YAChB,CACE,6BAAK,GAAG,EAAE,IAAI,CAAC,IAAI;gBACjB,oBAAC,uBAAuB,IACtB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EACjE,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,oBAAC,iBAAI,IACT,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,GACrE,EACF,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAC7F,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EACjC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAC7F,SAAS,EAAE,IAAI,CAAC,cAAc,EAC9B,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,GACpE,CACE,CACP,CAAC,CAAC;YACH,CACE,6BAAK,GAAG,EAAE,IAAI,CAAC,IAAI;gBACjB,oBAAC,yBAAI,CAAC,8CAA8C;oBAClD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EACjE,IAAI,EAAE,oBAAC,iBAAI,IACT,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,GACvE,EACF,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EACjC,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,SAAS,EAAE,IAAI,CAAC,cAAc,EAC9B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,GACpC,CACE,CACP,CACY,CAClB,CACsC,CAC1C,CACgC,CACpC,CAAC;IACJ,CAAC;IA6DO,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,CAAC,QAAQ,CAAC;YACZ,SAAS,EAAE,KAAK;YAChB,MAAM;YACN,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAEO,0BAA0B,CAAC,OAAe,EAAE,OAAe;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CACX;YACE,YAAY,EAAE,OAAO;YACrB,SAAS,EAAE,KAAK;YAChB,MAAM;YACN,SAAS,EAAE,EAAE;SACd,EACD,GAAG,EAAE;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzD,SAAS,IAAI,SAAS,YAAY,yCAAmB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC/E,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,eAAwB;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YACvB,OAAO,SAAS,CAAC;QAEnB,OAAO,CACL,oBAAC,0CAAqB,CAAC,QAAQ,QAC5B,CAAC,mBAAmB,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACtD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,mBAAmB,GAAG,mBAAmB,IAAI,eAAe,CAAC;YAE7D,wCAAwC;YACxC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;YAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;YAEtE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAuC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,mBAAmB,CAAC,CAAC;gBAC5D,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE;oBAC7B,OAAO;wBACL,GAAG,GAAG;wBACN,CAAC,IAAI,CAAC;qBACP,CAAC;iBACH;gBACD,OAAO;oBACL,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;oBAC5B;wBACE,GAAG,GAAG,CAAC,WAAW,CAAC;wBACnB,IAAI;qBACL;oBACD,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;iBAC9B,CAAC;YACJ,CAAC,EAAE,EAAE,CAAC,CAAC;YACP,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CAC9D,oBAAC,gCAAW,IAAC,GAAG,EAAE,WAAW;;gBAC1B,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,oBAAC,iBAAI,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAI,CAAC;oBAC/C,IAAI,SAAS,GAAG,IAAI,CAAC;oBACrB,IAAI,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;oBACnD,IAAI,SAAS,GAAG,IAAI,CAAC;oBACrB,MAAM,KAAK,GAAG,2BAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAEtE,IAAI,IAAI,YAAY,yBAAW,EAAE;wBAC/B,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,8CAA8C;wBAC1E,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,8CAA8C;wBAC1E,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,8CAA8C;4BAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,8CAA8C;4BACnH,SAAS,GAAG,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC;4BACzG,SAAS,GAAG,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC;4BACzG,QAAQ,GAAG,SAAS,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC;yBACtG;qBACF;oBAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,IAAI,MAAM,EAAE;wBACV,OAAO,CACL,SAAS;4BACT,oBAAC,sCAAiB,IAChB,UAAU,EAAE,CAAC,SAAS,EACtB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAChD,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,GACtF,CACH,CAAC;qBACH;oBAED,OAAO,CACL,SAAS;wBACT,oBAAC,8BAAS,IACR,UAAU,EAAE,CAAC,SAAS,EACtB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1E,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAChH,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;gBACJ,CAAC,CAAC,CACU,CACf,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACjC,OAAO,CACL,oBAAC,eAAe,IACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EACxB,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACnE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EACpG,KAAK,EAAE,IAAI,CAAC,KAAK,GACjB,CACH,CAAC;YAEJ,OAAO,CACL,oBAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EACpG,KAAK,EAAE,IAAI,CAAC,KAAK,GACjB,CACH,CAAC;QACJ,CAAC,CAC8B,CAClC,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,EAAU;QAC3B,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,IAAI;gBACN,OAAO,IAAI,CAAC;SACf;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CAqBF;AAzdD,8BAydC;AAOD;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAuB;IACjD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,YAAY,CAAC,YAAY,EAAE,CAAC;IAC5B,OAAO,CACL,oBAAC,SAAS,OACJ,KAAK,EACT,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,YAAY,CAAC,EAAE,GACpB,CACH,CAAC;AACJ,CAAC;AAVD,kCAUC;AAED,gBAAgB;AACT,MAAM,YAAY,GAAG,CAAC,YAA0B,EAA0B,EAAE;IACjF,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,EAAE;QACrC,IAAI,IAAI,YAAY,YAAY,EAAE;YAChC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;YACrC,IAAI,SAAS;gBACX,OAAO,SAAS,CAAC;YACnB,SAAS;SACV;QACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAXW,QAAA,YAAY,gBAWvB;AAEF,gBAAgB;AACT,MAAM,cAAc,GAAG,CAAC,YAA0B,EAAU,EAAE;IACnE,MAAM,IAAI,GAAG,IAAA,oBAAY,EAAC,YAAY,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7B,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB","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 Item\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { BadgeType, ConditionalStringValue, OnItemExecutedFunc, SpecialKey, StringGetter, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, Icon, IconSpec, SizeProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n Direction, ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\r\n Group as ToolGroupComponent, withDragInteraction,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { KeyboardShortcutManager } from \"../keyboardshortcut/KeyboardShortcut\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { AnyItemDef } from \"../shared/AnyItemDef\";\r\nimport { GroupItemProps } from \"../shared/GroupItemProps\";\r\nimport { BaseItemState, ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemList, ItemMap } from \"../shared/ItemMap\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ItemWithDragInteraction = withDragInteraction(Item);\r\n\r\n// -----------------------------------------------------------------------------\r\n// GroupItemDef class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** An Item that opens a group of items.\r\n * @public\r\n */\r\nexport class GroupItemDef extends ActionButtonItemDef {\r\n private static _sId = 0;\r\n public static groupIdPrefix = \"Group-\";\r\n\r\n public groupId: string;\r\n public direction: Direction; // eslint-disable-line deprecation/deprecation\r\n public itemsInColumn: number;\r\n public items: AnyItemDef[];\r\n public directionExplicit: boolean;\r\n public defaultActiveItemId?: string;\r\n\r\n /** @internal */\r\n public overflow: boolean = false;\r\n\r\n private _itemList!: ItemList;\r\n private _itemMap!: ItemMap;\r\n private _panelLabel: string | StringGetter | ConditionalStringValue = \"\";\r\n\r\n constructor(groupItemProps: GroupItemProps, onItemExecuted?: OnItemExecutedFunc) {\r\n super(groupItemProps, onItemExecuted);\r\n\r\n this.groupId = (groupItemProps.groupId !== undefined) ? groupItemProps.groupId : \"\";\r\n if (groupItemProps.groupId)\r\n this.groupId = groupItemProps.groupId;\r\n else {\r\n GroupItemDef._sId++;\r\n this.groupId = GroupItemDef.groupIdPrefix + GroupItemDef._sId;\r\n }\r\n\r\n this.directionExplicit = (groupItemProps.direction !== undefined);\r\n this.direction = (groupItemProps.direction !== undefined) ? groupItemProps.direction : Direction.Bottom; // eslint-disable-line deprecation/deprecation\r\n this.itemsInColumn = (groupItemProps.itemsInColumn !== undefined) ? groupItemProps.itemsInColumn : 7;\r\n this._panelLabel = PropsHelper.getStringSpec(groupItemProps.panelLabel, groupItemProps.panelLabelKey); // eslint-disable-line deprecation/deprecation\r\n this.items = groupItemProps.items;\r\n this.defaultActiveItemId = groupItemProps.defaultActiveItemId;\r\n }\r\n\r\n public get id(): string {\r\n return this.groupId;\r\n }\r\n\r\n /** Get the panelLabel string */\r\n public get panelLabel(): string {\r\n return PropsHelper.getStringFromSpec(this._panelLabel);\r\n }\r\n\r\n /** Set the panelLabel.\r\n * @param v A string or a function to get the string.\r\n */\r\n public setPanelLabel(v: string | StringGetter | ConditionalStringValue) {\r\n this._panelLabel = v;\r\n }\r\n\r\n public resolveItems(force?: boolean): void {\r\n if (this._itemList && !force)\r\n return;\r\n\r\n this._itemList = new ItemList();\r\n this._itemMap = new ItemMap();\r\n\r\n this.items.map((item: AnyItemDef) => {\r\n const id: string = item.id;\r\n this._itemList.addItem(item);\r\n this._itemMap.set(id, item);\r\n });\r\n }\r\n\r\n public getItemById(id: string): ItemDefBase | undefined {\r\n return this._itemMap.get(id);\r\n }\r\n\r\n public getItemByIndex(index: number): ItemDefBase | undefined {\r\n return this._itemList.items[index];\r\n }\r\n\r\n public get itemCount(): number {\r\n return this._itemList.items.length;\r\n }\r\n\r\n public override execute(): void {\r\n }\r\n\r\n public override toolbarReactNode(index?: number): React.ReactNode {\r\n this.resolveItems();\r\n const key = this.getKey(index);\r\n\r\n return (\r\n <GroupItem\r\n groupItemDef={this}\r\n key={key}\r\n onSizeKnown={this.handleSizeKnown}\r\n />\r\n );\r\n }\r\n\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// GroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n iconSpec?: IconSpec;\r\n label: string;\r\n trayId?: string;\r\n badgeType?: BadgeType;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItemDef: GroupItemDef;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface GroupItemComponentProps extends CommonProps {\r\n groupItemDef: GroupItemDef;\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\ninterface GroupItemState extends BaseItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItemDef: GroupItemDef;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class GroupItem extends React.Component<GroupItemComponentProps, GroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<GroupItemState>;\r\n private _componentUnmounting = false;\r\n private _childSyncIds?: Set<string>;\r\n private _childRefreshRequired = false;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: GroupItemComponentProps) {\r\n super(props);\r\n\r\n this._loadChildSyncIds(props);\r\n const state = this.getGroupItemState(this.props);\r\n const activeItemId = this.props.groupItemDef.defaultActiveItemId !== undefined ? this.props.groupItemDef.defaultActiveItemId : getFirstItemId(this.props.groupItemDef);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n private _loadChildSyncIds(props: GroupItemComponentProps) {\r\n // istanbul ignore else\r\n if (props.groupItemDef && props.groupItemDef.items.length > 0) {\r\n props.groupItemDef.items.forEach((itemDef: AnyItemDef) => {\r\n const item: ItemDefBase | undefined = itemDef;\r\n if (item.stateSyncIds.length > 0) { // eslint-disable-line deprecation/deprecation\r\n if (undefined === this._childSyncIds)\r\n this._childSyncIds = new Set<string>();\r\n item.stateSyncIds.forEach((value) => this._childSyncIds!.add(value)); // eslint-disable-line deprecation/deprecation\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore next\r\n if (this._componentUnmounting) return;\r\n let refreshState = false;\r\n // istanbul ignore else\r\n if (this._childSyncIds && this._childSyncIds.size > 0)\r\n if ([...this._childSyncIds].some((value: string): boolean => args.eventIds.has(value.toLowerCase())))\r\n this._childRefreshRequired = true; // this is cleared when render occurs\r\n let newState: GroupItemState = { ...this.state };\r\n if (this.props.groupItemDef.stateSyncIds && this.props.groupItemDef.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.groupItemDef.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n if (refreshState || this._childRefreshRequired) {\r\n if (this.props.groupItemDef.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.groupItemDef.stateFunc(newState) as GroupItemState; // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if ((this.state.isActive !== newState.isActive) || (this.state.isEnabled !== newState.isEnabled) || (this.state.isVisible !== newState.isVisible)\r\n || this._childRefreshRequired) {\r\n this.setState({ isActive: newState.isActive, isEnabled: newState.isEnabled, isVisible: newState.isVisible, isPressed: newState.isPressed });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override shouldComponentUpdate(nextProps: GroupItemComponentProps, nextState: GroupItemState) {\r\n if (!PropsHelper.isShallowEqual(nextState, this.state))\r\n return true;\r\n if (!PropsHelper.isShallowEqual(nextProps, this.props))\r\n return true;\r\n\r\n // istanbul ignore else\r\n if (this._childRefreshRequired) {\r\n this._childRefreshRequired = false;\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n private getGroupItemState(props: GroupItemComponentProps) {\r\n const groupItemDef = props.groupItemDef;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItemDef(groupItemDef, trayId, trays);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItemDef,\r\n isEnabled: groupItemDef.isEnabled, // eslint-disable-line deprecation/deprecation\r\n isPressed: groupItemDef.isPressed,\r\n isVisible: groupItemDef.isVisible, // eslint-disable-line deprecation/deprecation\r\n trayId,\r\n backTrays: [],\r\n trays,\r\n };\r\n }\r\n\r\n private resetTrayId(): string {\r\n this._trayIndex = 1;\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private generateTrayId(): string {\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private processGroupItemDef(groupItemDef: GroupItemDef, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n for (let itemIndex = 0; itemIndex < groupItemDef.itemCount; itemIndex++) {\r\n const item = groupItemDef.getItemByIndex(itemIndex)!;\r\n if (item instanceof GroupItemDef) {\r\n item.resolveItems();\r\n\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const groupItem: ToolGroupItem = {\r\n iconSpec: item.iconSpec, label: item.label, trayId: itemTrayId,\r\n badgeType: item.badgeType,\r\n };\r\n\r\n items.set(item.id, groupItem);\r\n this.processGroupItemDef(item, itemTrayId, trays);\r\n } else {\r\n items.set(item.id, item);\r\n }\r\n }\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: groupItemDef.panelLabel ? groupItemDef.panelLabel : groupItemDef.tooltip, // we fallback to use tooltip since tooltip was originally (and confusingly) used as a panelLabel\r\n groupItemDef,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: GroupItemComponentProps, _prevState: GroupItemState) {\r\n if (this.props !== prevProps) {\r\n // istanbul ignore next\r\n if (this.props.groupItemDef !== prevProps.groupItemDef)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different GroupItemDef for same groupId of ${this.state.groupItemDef.groupId}`);\r\n this.setState((_, props) => this.getGroupItemState(props));\r\n }\r\n }\r\n\r\n private get _tray() {\r\n const tray = this.state.trays.get(this.state.trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private getTray(trayId: string) {\r\n const tray = this.state.trays.get(trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private _handleKeyDown = (e: React.KeyboardEvent): void => {\r\n // istanbul ignore else\r\n if (e.key === SpecialKey.Escape) {\r\n this.closeGroupButton();\r\n KeyboardShortcutManager.setFocusToHome();\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItemDef, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n groupItemDef.overflow && \"nz-toolbar-item-overflow\",\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItemDef.badgeType);\r\n return (\r\n <ToolbarDirectionContext.Consumer>\r\n {(direction) => (\r\n <ToolbarDragInteractionContext.Consumer>\r\n {(dragInteraction) => (\r\n <ExpandableItem // eslint-disable-line deprecation/deprecation\r\n {...props}\r\n className={classNames}\r\n key={this.state.groupItemDef.id}\r\n panel={this.getGroupTray(dragInteraction)}\r\n >\r\n {dragInteraction ?\r\n (\r\n <div ref={this._ref}>\r\n <ItemWithDragInteraction\r\n badge={badge}\r\n className={groupItemDef.overflow ? \"nz-ellipsis-icon\" : undefined}\r\n direction={direction}\r\n icon={<Icon\r\n iconSpec={groupItemDef.overflow ? \"nz-ellipsis\" : activeItem.iconSpec}\r\n />}\r\n isActive={groupItemDef.overflow ? false : this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={groupItemDef.overflow ? this._handleOverflowClick : this._handleDragInteractionClick}\r\n onKeyDown={this._handleKeyDown}\r\n onOpenPanel={this._handleOpenPanel}\r\n onSizeKnown={this.props.onSizeKnown}\r\n title={groupItemDef.overflow ? groupItemDef.label : activeItem.label}\r\n />\r\n </div>\r\n ) :\r\n (\r\n <div ref={this._ref}>\r\n <Item // eslint-disable-line deprecation/deprecation\r\n badge={badge}\r\n className={groupItemDef.overflow ? \"nz-ellipsis-icon\" : undefined}\r\n icon={<Icon\r\n iconSpec={groupItemDef.overflow ? \"nz-ellipsis\" : groupItemDef.iconSpec}\r\n />}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={this._handleKeyDown}\r\n onSizeKnown={this.props.onSizeKnown}\r\n title={this.state.groupItemDef.label}\r\n />\r\n </div>\r\n )}\r\n </ExpandableItem>\r\n )}\r\n </ToolbarDragInteractionContext.Consumer>\r\n )}\r\n </ToolbarDirectionContext.Consumer>\r\n );\r\n }\r\n\r\n private _handleOpenPanel = () => {\r\n this.setState({\r\n isPressed: true,\r\n });\r\n this._closeOnPanelOpened = false;\r\n FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n };\r\n\r\n private _handleClick = () => {\r\n this.setState((prevState) => ({\r\n isPressed: !prevState.isPressed,\r\n }));\r\n };\r\n\r\n private _handleDragInteractionClick = () => {\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n activeItem && activeItem instanceof ActionButtonItemDef && activeItem.execute();\r\n };\r\n\r\n private _handleOverflowClick = () => {\r\n this.setState((prevState) => {\r\n const isPressed = !prevState.isPressed;\r\n return {\r\n isPressed,\r\n };\r\n }, () => {\r\n this._closeOnPanelOpened = false;\r\n !!this.state.isPressed && FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n });\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (e: MouseEvent) => {\r\n if (this.props.groupItemDef.overflow) {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n return;\r\n }\r\n this.closeGroupButton();\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n };\r\n\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n private _handleToolPanelOpenedEvent = () => {\r\n // istanbul ignore else\r\n if (!this._closeOnPanelOpened)\r\n return;\r\n // istanbul ignore next\r\n this.closeGroupButton();\r\n };\r\n\r\n private closeGroupButton() {\r\n const trayId = this.resetTrayId();\r\n\r\n this.setState({\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n });\r\n }\r\n\r\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\r\n const trayId = this.resetTrayId();\r\n this.setState(\r\n {\r\n activeItemId: itemKey,\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n },\r\n () => {\r\n const tray = this.getTray(trayKey);\r\n const childItem = tray.groupItemDef.getItemById(itemKey);\r\n childItem && childItem instanceof ActionButtonItemDef && childItem.execute();\r\n },\r\n );\r\n }\r\n\r\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\r\n if (!this.state.isPressed)\r\n return undefined;\r\n\r\n return (\r\n <ToolGroupPanelContext.Consumer>\r\n {(activateOnPointerUp) => {\r\n const tray = this._tray;\r\n const itemsInColumn = tray.groupItemDef.itemsInColumn;\r\n const items = [...tray.items.keys()];\r\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\r\n\r\n // Divide items equally between columns.\r\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\r\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\r\n\r\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\r\n const columnIndex = Math.floor(index / numberItemsInColumn);\r\n if (columnIndex >= acc.length) {\r\n return [\r\n ...acc,\r\n [item],\r\n ];\r\n }\r\n return [\r\n ...acc.slice(0, columnIndex),\r\n [\r\n ...acc[columnIndex],\r\n item,\r\n ],\r\n ...acc.slice(columnIndex + 1),\r\n ];\r\n }, []);\r\n const columns = (columnToItems.map((columnItems, columnIndex) =>\r\n <GroupColumn key={columnIndex}> {/* eslint-disable-line deprecation/deprecation */}\r\n {columnItems.map((itemKey) => {\r\n const item = tray.items.get(itemKey)!;\r\n const icon = <Icon iconSpec={item.iconSpec} />;\r\n let isVisible = true;\r\n let isActive = itemKey === this.state.activeToolId;\r\n let isEnabled = true;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (item instanceof ItemDefBase) {\r\n isVisible = item.isVisible; // eslint-disable-line deprecation/deprecation\r\n isEnabled = item.isEnabled; // eslint-disable-line deprecation/deprecation\r\n if (item.stateFunc) { // eslint-disable-line deprecation/deprecation\r\n const newState = item.stateFunc({ isVisible, isActive, isEnabled }); // eslint-disable-line deprecation/deprecation\r\n isVisible = undefined !== newState.isVisible ? newState.isVisible : /* istanbul ignore next */ isVisible;\r\n isEnabled = undefined !== newState.isEnabled ? newState.isEnabled : /* istanbul ignore next */ isEnabled;\r\n isActive = undefined !== newState.isActive ? newState.isActive : /* istanbul ignore next */ isActive;\r\n }\r\n }\r\n\r\n const trayId = item.trayId;\r\n if (trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!isEnabled}\r\n key={itemKey}\r\n label={item.label}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(trayId)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(trayId) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!isEnabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={item.label}\r\n onClick={() => this.handleToolGroupItemClicked(this.state.trayId, itemKey)}\r\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n })}\r\n </GroupColumn>,\r\n ));\r\n\r\n if (this.state.backTrays.length > 0)\r\n return (\r\n <NestedToolGroup\r\n columns={columns}\r\n onBack={this._handleBack}\r\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n\r\n return (\r\n <ToolGroup\r\n columns={columns}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n }}\r\n </ToolGroupPanelContext.Consumer>\r\n );\r\n }\r\n\r\n public getItemById(id: string): ItemDefBase | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItemDef.getItemById(id);\r\n if (item)\r\n return item;\r\n }\r\n return undefined;\r\n }\r\n\r\n private _handleBack = () => {\r\n this.setState((prevState) => {\r\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : prevState.trayId;\r\n const backTrays = prevState.backTrays.slice(0, -1);\r\n return {\r\n trayId,\r\n backTrays,\r\n };\r\n });\r\n };\r\n\r\n private _handleExpanderClick = (trayId: string) => {\r\n this.setState((prevState) => {\r\n return {\r\n trayId,\r\n backTrays: [...prevState.backTrays, prevState.trayId],\r\n };\r\n });\r\n };\r\n}\r\n\r\n/** Properties for the [[GroupButton]] React component\r\n * @public\r\n */\r\nexport interface GroupButtonProps extends GroupItemProps, CommonProps { }\r\n\r\n/** Group Button React component\r\n * @public\r\n */\r\nexport function GroupButton(props: GroupButtonProps) {\r\n const groupItemDef = new GroupItemDef(props);\r\n groupItemDef.resolveItems();\r\n return (\r\n <GroupItem\r\n {...props}\r\n groupItemDef={groupItemDef}\r\n key={groupItemDef.id}\r\n />\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport const getFirstItem = (groupItemDef: GroupItemDef): AnyItemDef | undefined => {\r\n for (const item of groupItemDef.items) {\r\n if (item instanceof GroupItemDef) {\r\n const firstItem = getFirstItem(item);\r\n if (firstItem)\r\n return firstItem;\r\n continue;\r\n }\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nexport const getFirstItemId = (groupItemDef: GroupItemDef): string => {\r\n const item = getFirstItem(groupItemDef);\r\n return item ? item.id : \"\";\r\n};\r\n"]}
@@ -59,7 +59,7 @@ class ToolButton extends React.Component {
59
59
  }
60
60
  else {
61
61
  const thisTool = core_frontend_1.IModelApp.tools.find(this.props.toolId);
62
- // istanbul ignore else
62
+ // istanbul ignore next
63
63
  if (thisTool)
64
64
  await (new thisTool()).run();
65
65
  }
@@ -91,7 +91,8 @@ class ToolButton extends React.Component {
91
91
  const icon = React.createElement(core_react_1.Icon, { iconSpec: this.props.iconSpec });
92
92
  const toolbarItemProps = (0, appui_layout_react_1.getToolbarItemProps)(this.props);
93
93
  const badge = core_react_1.BadgeUtilities.getComponentForBadgeType(this.props.badgeType);
94
- return (React.createElement(appui_layout_react_1.Item, { ...toolbarItemProps, className: this.props.className, style: this.props.style, isActive: this.state.isActive, isDisabled: !this.state.isEnabled, title: this.label, key: this.props.toolId, onClick: this._execute, onKeyDown: useEscapeSetFocusToHome_1.onEscapeSetFocusToHome, icon: icon, badge: badge }));
94
+ return (React.createElement(appui_layout_react_1.Item // eslint-disable-line deprecation/deprecation
95
+ , { ...toolbarItemProps, className: this.props.className, style: this.props.style, isActive: this.state.isActive, isDisabled: !this.state.isEnabled, title: this.label, key: this.props.toolId, onClick: this._execute, onKeyDown: useEscapeSetFocusToHome_1.onEscapeSetFocusToHome, icon: icon, badge: badge }));
95
96
  }
96
97
  }
97
98
  exports.ToolButton = ToolButton;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolButton.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolButton.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 Item\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\r\nimport { ConditionalStringValue, StringGetter } from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, Icon } from \"@itwin/core-react\";\r\nimport { getToolbarItemProps, Item } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { ToolItemProps } from \"../shared/ItemProps\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Properties for the [[ToolButton]] React Component.\r\n * @public\r\n */\r\nexport interface ToolButtonProps extends ToolItemProps, CommonProps { }\r\n\r\n/** Tool Button React Component.\r\n * @public\r\n */\r\nexport class ToolButton extends React.Component<ToolButtonProps, BaseItemState> {\r\n private _componentUnmounting = false;\r\n private _label: string | StringGetter | ConditionalStringValue = \"\";\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BaseItemState>;\r\n\r\n constructor(props: ToolItemProps) {\r\n super(props);\r\n\r\n if (props.label)\r\n this._label = props.label;\r\n else if (props.labelKey)\r\n this._label = UiFramework.localization.getLocalizedString(props.labelKey);\r\n\r\n this.state = {\r\n isVisible: undefined !== props.isVisible ? props.isVisible : true, // eslint-disable-line deprecation/deprecation\r\n isEnabled: undefined !== props.isEnabled ? props.isEnabled : true, // eslint-disable-line deprecation/deprecation\r\n isActive: undefined !== props.isActive ? props.isActive : false,\r\n isPressed: undefined !== props.isPressed ? props.isPressed : false,\r\n };\r\n }\r\n\r\n private _handleSyncUiEvent = (args: SyncUiEventArgs): void => {\r\n // istanbul ignore if\r\n if (this._componentUnmounting) return;\r\n\r\n let refreshState = false;\r\n let newState: BaseItemState = { ...this.state };\r\n\r\n // since this is a tool button automatically monitor the activation of tools so the active state of the button is updated.\r\n if (args.eventIds.has(SyncUiEventId.ToolActivated)) {\r\n newState.isActive = this.props.toolId === FrontstageManager.activeToolId;\r\n refreshState = true;\r\n }\r\n\r\n if (!refreshState && this.props.stateSyncIds && this.props.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n\r\n if (refreshState) {\r\n if (this.props.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.stateFunc(newState); // eslint-disable-line deprecation/deprecation\r\n\r\n // istanbul ignore next\r\n if ((this.state.isActive !== newState.isActive) ||\r\n ( /* istanbul ignore next */ this.state.isEnabled !== newState.isEnabled) ||\r\n ( /* istanbul ignore next */ this.state.isVisible !== newState.isVisible)) {\r\n this.setState({\r\n isActive: newState.isActive,\r\n isEnabled: newState.isEnabled,\r\n isVisible: newState.isVisible,\r\n });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n }\r\n\r\n private _execute = async () => {\r\n if (this.props.execute) {\r\n this.props.execute();\r\n } else {\r\n const thisTool: typeof Tool | undefined = IModelApp.tools.find(this.props.toolId);\r\n // istanbul ignore else\r\n if (thisTool)\r\n await (new thisTool()).run();\r\n }\r\n };\r\n\r\n public get label(): string {\r\n return PropsHelper.getStringFromSpec(this._label);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const icon = <Icon iconSpec={this.props.iconSpec} />;\r\n const toolbarItemProps = getToolbarItemProps(this.props);\r\n const badge = BadgeUtilities.getComponentForBadgeType(this.props.badgeType);\r\n\r\n return (\r\n <Item\r\n {...toolbarItemProps}\r\n className={this.props.className}\r\n style={this.props.style}\r\n isActive={this.state.isActive}\r\n isDisabled={!this.state.isEnabled}\r\n title={this.label}\r\n key={this.props.toolId}\r\n onClick={this._execute}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ToolButton.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolButton.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 Item\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\r\nimport { ConditionalStringValue, StringGetter, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, Icon } from \"@itwin/core-react\";\r\nimport { getToolbarItemProps, Item } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { ToolItemProps } from \"../shared/ItemProps\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Properties for the [[ToolButton]] React Component.\r\n * @public\r\n */\r\nexport interface ToolButtonProps extends ToolItemProps, CommonProps { }\r\n\r\n/** Tool Button React Component.\r\n * @public\r\n */\r\nexport class ToolButton extends React.Component<ToolButtonProps, BaseItemState> {\r\n private _componentUnmounting = false;\r\n private _label: string | StringGetter | ConditionalStringValue = \"\";\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BaseItemState>;\r\n\r\n constructor(props: ToolItemProps) {\r\n super(props);\r\n\r\n if (props.label)\r\n this._label = props.label;\r\n else if (props.labelKey)\r\n this._label = UiFramework.localization.getLocalizedString(props.labelKey);\r\n\r\n this.state = {\r\n isVisible: undefined !== props.isVisible ? props.isVisible : true, // eslint-disable-line deprecation/deprecation\r\n isEnabled: undefined !== props.isEnabled ? props.isEnabled : true, // eslint-disable-line deprecation/deprecation\r\n isActive: undefined !== props.isActive ? props.isActive : false,\r\n isPressed: undefined !== props.isPressed ? props.isPressed : false,\r\n };\r\n }\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore if\r\n if (this._componentUnmounting) return;\r\n\r\n let refreshState = false;\r\n let newState: BaseItemState = { ...this.state };\r\n\r\n // since this is a tool button automatically monitor the activation of tools so the active state of the button is updated.\r\n if (args.eventIds.has(SyncUiEventId.ToolActivated)) {\r\n newState.isActive = this.props.toolId === FrontstageManager.activeToolId;\r\n refreshState = true;\r\n }\r\n\r\n if (!refreshState && this.props.stateSyncIds && this.props.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n\r\n if (refreshState) {\r\n if (this.props.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.stateFunc(newState); // eslint-disable-line deprecation/deprecation\r\n\r\n // istanbul ignore next\r\n if ((this.state.isActive !== newState.isActive) ||\r\n ( /* istanbul ignore next */ this.state.isEnabled !== newState.isEnabled) ||\r\n ( /* istanbul ignore next */ this.state.isVisible !== newState.isVisible)) {\r\n this.setState({\r\n isActive: newState.isActive,\r\n isEnabled: newState.isEnabled,\r\n isVisible: newState.isVisible,\r\n });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n }\r\n\r\n private _execute = async () => {\r\n if (this.props.execute) {\r\n this.props.execute();\r\n } else {\r\n const thisTool: typeof Tool | undefined = IModelApp.tools.find(this.props.toolId);\r\n // istanbul ignore next\r\n if (thisTool)\r\n await (new thisTool()).run();\r\n }\r\n };\r\n\r\n public get label(): string {\r\n return PropsHelper.getStringFromSpec(this._label);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const icon = <Icon iconSpec={this.props.iconSpec} />;\r\n const toolbarItemProps = getToolbarItemProps(this.props);\r\n const badge = BadgeUtilities.getComponentForBadgeType(this.props.badgeType);\r\n\r\n return (\r\n <Item // eslint-disable-line deprecation/deprecation\r\n {...toolbarItemProps}\r\n className={this.props.className}\r\n style={this.props.style}\r\n isActive={this.state.isActive}\r\n isDisabled={!this.state.isEnabled}\r\n title={this.label}\r\n key={this.props.toolId}\r\n onClick={this._execute}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAA8B,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,SAAS,EAAyB,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKpG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,eAAe;IAChE,4BAA4B;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,kCAAkC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2GAA2G;IAC3G,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,mBAAmB;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACtE,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAA+C;gBAEnD,KAAK,EAAE,YAAY;IAkCtC,OAAO,KAAK,UAAU,GAErB;IAEe,iBAAiB;IAIjB,oBAAoB;IAIpB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY;IAQpF,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,kBAAkB,CAQxB;IAEF,OAAO,CAAC,kBAAkB;IAmF1B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,SAAS,CAUf;IAEF,OAAO,CAAC,eAAe;IAUP,MAAM;CAwBvB"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAA8B,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,SAAS,EAAyB,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKpG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,eAAe;IAChE,4BAA4B;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,kCAAkC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2GAA2G;IAC3G,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,mBAAmB;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACtE,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAA+C;gBAEnD,KAAK,EAAE,YAAY;IAkCtC,OAAO,KAAK,UAAU,GAErB;IAEe,iBAAiB;IAIjB,oBAAoB;IAIpB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY;IAQpF,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,kBAAkB,CAQxB;IAEF,OAAO,CAAC,kBAAkB;IAmF1B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,SAAS,CAUf;IAEF,OAAO,CAAC,eAAe;IAUP,MAAM;CAwBvB"}
@@ -110,7 +110,7 @@ class Toolbar extends React.Component {
110
110
  if (!itemList || 0 === itemList.length)
111
111
  return false;
112
112
  let returnValue = false;
113
- // Review all the itemDefs to see if any are monitoring sync events in SyncUiEventArgs
113
+ // Review all the itemDefs to see if any are monitoring sync events in UiSyncEventArgs
114
114
  for (const item of itemList) {
115
115
  if (item.stateFunc && item.stateSyncIds && item.stateSyncIds.length > 0 && // eslint-disable-line deprecation/deprecation
116
116
  item.stateSyncIds.some((value) => args.eventIds.has(value.toLowerCase()))) { // eslint-disable-line deprecation/deprecation
@@ -227,7 +227,8 @@ class Toolbar extends React.Component {
227
227
  }
228
228
  core_bentley_1.Logger.logTrace(UiFramework_1.UiFramework.loggerCategory(this), `---> render ${this._toolbarId} `);
229
229
  return (React.createElement(core_react_1.ResizableContainerObserver, { onResize: this._onResize },
230
- React.createElement(appui_layout_react_1.Toolbar, { style: this.props.style, className: this.props.className, expandsTo: this.props.expandsTo, panelAlignment: this.props.panelAlignment, items: React.createElement(React.Fragment, null, this.state.items) })));
230
+ React.createElement(appui_layout_react_1.Toolbar // eslint-disable-line deprecation/deprecation
231
+ , { style: this.props.style, className: this.props.className, expandsTo: this.props.expandsTo, panelAlignment: this.props.panelAlignment, items: React.createElement(React.Fragment, null, this.state.items) })));
231
232
  }
232
233
  }
233
234
  exports.Toolbar = Toolbar;