@itwin/appui-react 3.0.0-dev.84 → 3.0.0-dev.88

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 (699) hide show
  1. package/CHANGELOG.md +1494 -1494
  2. package/README.md +21 -21
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +7 -2
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/UserInfo.js.map +1 -1
  7. package/lib/cjs/appui-react/_variables.scss +11 -11
  8. package/lib/cjs/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.scss +14 -14
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +55 -55
  15. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  18. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/Calculator.scss +86 -86
  21. package/lib/cjs/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  23. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  25. package/lib/cjs/appui-react/accudraw/MenuButton.scss +18 -18
  26. package/lib/cjs/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
  27. package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
  28. package/lib/cjs/appui-react/accudraw/SquareButton.scss +44 -44
  29. package/lib/cjs/appui-react/accudraw/backspace.svg +9 -9
  30. package/lib/cjs/appui-react/accudraw/constraint-2d.svg +11 -11
  31. package/lib/cjs/appui-react/accudraw/height-2.svg +10 -10
  32. package/lib/cjs/appui-react/accudraw/height.svg +11 -11
  33. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  34. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  35. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  36. package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
  37. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  38. package/lib/cjs/appui-react/backstage/BackstageManager.js.map +1 -1
  39. package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
  40. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  41. package/lib/cjs/appui-react/backstage/Separator.js.map +1 -1
  42. package/lib/cjs/appui-react/backstage/TaskLaunch.js.map +1 -1
  43. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  44. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js +1 -2
  46. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  47. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +21 -21
  48. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  49. package/lib/cjs/appui-react/childwindow/ChildWindowManager.scss +14 -14
  50. package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
  51. package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
  52. package/lib/cjs/appui-react/childwindow/PopoutWidget.scss +10 -10
  53. package/lib/cjs/appui-react/configurableui/ActivityTracker.js.map +1 -1
  54. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  55. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  56. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  57. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  58. package/lib/cjs/appui-react/configurableui/configurableui.scss +79 -79
  59. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  60. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  61. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  62. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  63. package/lib/cjs/appui-react/content/ContentLayout.scss +98 -98
  64. package/lib/cjs/appui-react/content/ContentLayoutManager.js.map +1 -1
  65. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  66. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  67. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +43 -43
  68. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  69. package/lib/cjs/appui-react/content/SavedView.js.map +1 -1
  70. package/lib/cjs/appui-react/content/SavedViewLayout.js.map +1 -1
  71. package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
  72. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  73. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  74. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  75. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
  76. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  77. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  78. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
  79. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  80. package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
  81. package/lib/cjs/appui-react/dialog/ModelessDialog.js.map +1 -1
  82. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  83. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  84. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  85. package/lib/cjs/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  86. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  87. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  88. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +53 -53
  89. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +0 -1
  90. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  91. package/lib/cjs/appui-react/frontstage/Frontstage.js +0 -6
  92. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  93. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  94. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  95. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  96. package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  97. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  98. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +86 -86
  99. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  100. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +13 -13
  101. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  102. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  103. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  104. package/lib/cjs/appui-react/hooks/useActiveStageId.js.map +1 -1
  105. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  106. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  107. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  108. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  109. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  110. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  111. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  112. package/lib/cjs/appui-react/imodel-components/Common.js.map +1 -1
  113. package/lib/cjs/appui-react/imodel-components/VisibilityTreeBase.scss +52 -52
  114. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  115. package/lib/cjs/appui-react/imodel-components/VisibilityTreeRenderer.js.map +1 -1
  116. package/lib/cjs/appui-react/imodel-components/category-tree/Categories.json +102 -102
  117. package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.js.map +1 -1
  118. package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.scss +9 -9
  119. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  120. package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +389 -389
  121. package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.json +384 -384
  122. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  123. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.scss +9 -9
  124. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTreeSearch.json +239 -239
  125. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +5 -5
  126. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  127. package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialBreakdown.GroupedByClass.json +78 -78
  128. package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialBreakdown.json +78 -78
  129. package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js.map +1 -1
  130. package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.scss +9 -9
  131. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  132. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  133. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  134. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.scss +11 -11
  135. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  136. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  137. package/lib/cjs/appui-react/messages/ActivityMessagePopup.scss +14 -14
  138. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  139. package/lib/cjs/appui-react/messages/HollowIcon.js.map +1 -1
  140. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  141. package/lib/cjs/appui-react/messages/InputField.scss +82 -82
  142. package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
  143. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  144. package/lib/cjs/appui-react/messages/MessageSpan.js.map +1 -1
  145. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  146. package/lib/cjs/appui-react/messages/Pointer.scss +42 -42
  147. package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  148. package/lib/cjs/appui-react/messages/StatusMessageManager.js.map +1 -1
  149. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  150. package/lib/cjs/appui-react/messages/StatusMessageRenderer.scss +27 -27
  151. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  152. package/lib/cjs/appui-react/messages/StatusMessagesContainer.scss +52 -52
  153. package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
  154. package/lib/cjs/appui-react/messages/StickyMessage.scss +22 -22
  155. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  156. package/lib/cjs/appui-react/messages/getToastCategory.js.map +1 -1
  157. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  158. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  159. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  160. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  161. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +82 -82
  162. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  163. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
  164. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  165. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
  166. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  167. package/lib/cjs/appui-react/pickers/ListPicker.scss +299 -299
  168. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  169. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  170. package/lib/cjs/appui-react/popup/CardPopup.scss +22 -22
  171. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  172. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  173. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  174. package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +30 -30
  175. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  176. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  177. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  178. package/lib/cjs/appui-react/popup/PositionPopup.scss +28 -28
  179. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  180. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  181. package/lib/cjs/appui-react/redux/FrameworkState.js.map +1 -1
  182. package/lib/cjs/appui-react/redux/ReducerRegistry.js.map +1 -1
  183. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  184. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  185. package/lib/cjs/appui-react/redux/connectIModel.js.map +1 -1
  186. package/lib/cjs/appui-react/redux/redux-ts.js.map +1 -1
  187. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  188. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  189. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  190. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  191. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  192. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +125 -125
  193. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  194. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  195. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +66 -66
  196. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  197. package/lib/cjs/appui-react/shared/AnyItemDef.js.map +1 -1
  198. package/lib/cjs/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  199. package/lib/cjs/appui-react/shared/CommandItemDef.js.map +1 -1
  200. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  201. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  202. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  203. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  204. package/lib/cjs/appui-react/shared/ItemMap.js.map +1 -1
  205. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  206. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  207. package/lib/cjs/appui-react/shared/SelectionScope.js.map +1 -1
  208. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  209. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  210. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.scss +41 -41
  211. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  212. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  213. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js.map +1 -1
  214. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  215. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.scss +25 -25
  216. package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
  217. package/lib/cjs/appui-react/statusbar/Overflow.scss +27 -27
  218. package/lib/cjs/appui-react/statusbar/OverflowPanel.js.map +1 -1
  219. package/lib/cjs/appui-react/statusbar/OverflowPanel.scss +22 -22
  220. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  221. package/lib/cjs/appui-react/statusbar/StatusBar.scss +43 -43
  222. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  223. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  224. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  225. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  226. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  227. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  228. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  229. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +1 -2
  230. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  231. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  232. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  233. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  234. package/lib/cjs/appui-react/statusfields/ConditionalField.js.map +1 -1
  235. package/lib/cjs/appui-react/statusfields/FooterModeField.js.map +1 -1
  236. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  237. package/lib/cjs/appui-react/statusfields/Indicator.scss +171 -171
  238. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  239. package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
  240. package/lib/cjs/appui-react/statusfields/PromptField.scss +42 -42
  241. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  242. package/lib/cjs/appui-react/statusfields/SectionsField.scss +36 -36
  243. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  244. package/lib/cjs/appui-react/statusfields/SelectionInfo.scss +14 -14
  245. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  246. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +37 -37
  247. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  248. package/lib/cjs/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  249. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  250. package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +14 -14
  251. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  252. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +57 -57
  253. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  254. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +200 -200
  255. package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
  256. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  257. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  258. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  259. package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  260. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  261. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  262. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  263. package/lib/cjs/appui-react/toolbar/DragInteraction.js.map +1 -1
  264. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  265. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  266. package/lib/cjs/appui-react/toolbar/PopupButton.js.map +1 -1
  267. package/lib/cjs/appui-react/toolbar/PopupButton.scss +9 -9
  268. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  269. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  270. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  271. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  272. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  273. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
  274. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +1 -2
  275. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  276. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  277. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  278. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  279. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  280. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  281. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  282. package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
  283. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  284. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  285. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  286. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  287. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  288. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  289. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
  290. package/lib/cjs/appui-react/uisettings/AppUiSettings.js.map +1 -1
  291. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js.map +1 -1
  292. package/lib/cjs/appui-react/uisettings/useUiSettings.js.map +1 -1
  293. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  294. package/lib/cjs/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  295. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  296. package/lib/cjs/appui-react/utils/ViewUtilities.js.map +1 -1
  297. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  298. package/lib/cjs/appui-react/widget-panels/Content.js +0 -8
  299. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  300. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  301. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -19
  302. package/lib/cjs/appui-react/widget-panels/FrontstageContent.js.map +1 -1
  303. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  304. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  305. package/lib/cjs/appui-react/widget-panels/StatusBar.scss +10 -10
  306. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  307. package/lib/cjs/appui-react/widget-panels/Tab.scss +14 -14
  308. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  309. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +24 -24
  310. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  311. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +20 -20
  312. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  313. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  314. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  315. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  316. package/lib/cjs/appui-react/widgets/DefaultNavigationWidget.js.map +1 -1
  317. package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
  318. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  319. package/lib/cjs/appui-react/widgets/ReviewToolWidget.js.map +1 -1
  320. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  321. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  322. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  323. package/lib/cjs/appui-react/widgets/ToolSettingsContent.scss +60 -60
  324. package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
  325. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  326. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  327. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  328. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  329. package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
  330. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  331. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  332. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts +0 -38
  333. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  334. package/lib/cjs/appui-react/widgets/WidgetManager.js +4 -59
  335. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  336. package/lib/cjs/appui-react/widgets/WidgetProps.js.map +1 -1
  337. package/lib/cjs/appui-react/widgets/WidgetStack.js.map +1 -1
  338. package/lib/cjs/appui-react/workflow/Task.js.map +1 -1
  339. package/lib/cjs/appui-react/workflow/Workflow.js.map +1 -1
  340. package/lib/cjs/appui-react/zones/FrameworkZone.js.map +1 -1
  341. package/lib/cjs/appui-react/zones/Outline.js.map +1 -1
  342. package/lib/cjs/appui-react/zones/StatusBarZone.js.map +1 -1
  343. package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
  344. package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
  345. package/lib/cjs/appui-react/zones/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  346. package/lib/cjs/appui-react/zones/toolsettings/ToolInformation.js.map +1 -1
  347. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  348. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  349. package/lib/cjs/appui-react/zones/toolsettings/ToolUiProvider.js.map +1 -1
  350. package/lib/cjs/appui-react.js.map +1 -1
  351. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  352. package/lib/esm/appui-react/UiFramework.js +7 -2
  353. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  354. package/lib/esm/appui-react/UserInfo.js.map +1 -1
  355. package/lib/esm/appui-react/_variables.scss +11 -11
  356. package/lib/esm/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  357. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  358. package/lib/esm/appui-react/accudraw/AccuDrawDialog.scss +14 -14
  359. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  360. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
  361. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  362. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +55 -55
  363. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  364. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  365. package/lib/esm/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  366. package/lib/esm/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  367. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  368. package/lib/esm/appui-react/accudraw/Calculator.scss +86 -86
  369. package/lib/esm/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  370. package/lib/esm/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  371. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  372. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  373. package/lib/esm/appui-react/accudraw/MenuButton.scss +18 -18
  374. package/lib/esm/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
  375. package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
  376. package/lib/esm/appui-react/accudraw/SquareButton.scss +44 -44
  377. package/lib/esm/appui-react/accudraw/backspace.svg +9 -9
  378. package/lib/esm/appui-react/accudraw/constraint-2d.svg +11 -11
  379. package/lib/esm/appui-react/accudraw/height-2.svg +10 -10
  380. package/lib/esm/appui-react/accudraw/height.svg +11 -11
  381. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  382. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  383. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  384. package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
  385. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  386. package/lib/esm/appui-react/backstage/BackstageManager.js.map +1 -1
  387. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  388. package/lib/esm/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  389. package/lib/esm/appui-react/backstage/Separator.js.map +1 -1
  390. package/lib/esm/appui-react/backstage/TaskLaunch.js.map +1 -1
  391. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  392. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  393. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -3
  394. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  395. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +21 -21
  396. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  397. package/lib/esm/appui-react/childwindow/ChildWindowManager.scss +14 -14
  398. package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
  399. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  400. package/lib/esm/appui-react/childwindow/PopoutWidget.scss +10 -10
  401. package/lib/esm/appui-react/configurableui/ActivityTracker.js.map +1 -1
  402. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  403. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  404. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  405. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  406. package/lib/esm/appui-react/configurableui/configurableui.scss +79 -79
  407. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  408. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  409. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  410. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  411. package/lib/esm/appui-react/content/ContentLayout.scss +98 -98
  412. package/lib/esm/appui-react/content/ContentLayoutManager.js.map +1 -1
  413. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  414. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  415. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +43 -43
  416. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  417. package/lib/esm/appui-react/content/SavedView.js.map +1 -1
  418. package/lib/esm/appui-react/content/SavedViewLayout.js.map +1 -1
  419. package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
  420. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  421. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  422. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  423. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
  424. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  425. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  426. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
  427. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  428. package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
  429. package/lib/esm/appui-react/dialog/ModelessDialog.js.map +1 -1
  430. package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  431. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  432. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  433. package/lib/esm/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  434. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  435. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  436. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +53 -53
  437. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +0 -1
  438. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  439. package/lib/esm/appui-react/frontstage/Frontstage.js +0 -6
  440. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  441. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  442. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  443. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  444. package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  445. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  446. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +86 -86
  447. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  448. package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +13 -13
  449. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  450. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  451. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  452. package/lib/esm/appui-react/hooks/useActiveStageId.js.map +1 -1
  453. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  454. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  455. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  456. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  457. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  458. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  459. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  460. package/lib/esm/appui-react/imodel-components/Common.js.map +1 -1
  461. package/lib/esm/appui-react/imodel-components/VisibilityTreeBase.scss +52 -52
  462. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  463. package/lib/esm/appui-react/imodel-components/VisibilityTreeRenderer.js.map +1 -1
  464. package/lib/esm/appui-react/imodel-components/category-tree/Categories.json +102 -102
  465. package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.js.map +1 -1
  466. package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.scss +9 -9
  467. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  468. package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +389 -389
  469. package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.json +384 -384
  470. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  471. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.scss +9 -9
  472. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTreeSearch.json +239 -239
  473. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +5 -5
  474. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  475. package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialBreakdown.GroupedByClass.json +78 -78
  476. package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialBreakdown.json +78 -78
  477. package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js.map +1 -1
  478. package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.scss +9 -9
  479. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  480. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  481. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  482. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.scss +11 -11
  483. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  484. package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  485. package/lib/esm/appui-react/messages/ActivityMessagePopup.scss +14 -14
  486. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  487. package/lib/esm/appui-react/messages/HollowIcon.js.map +1 -1
  488. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  489. package/lib/esm/appui-react/messages/InputField.scss +82 -82
  490. package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
  491. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  492. package/lib/esm/appui-react/messages/MessageSpan.js.map +1 -1
  493. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  494. package/lib/esm/appui-react/messages/Pointer.scss +42 -42
  495. package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  496. package/lib/esm/appui-react/messages/StatusMessageManager.js.map +1 -1
  497. package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  498. package/lib/esm/appui-react/messages/StatusMessageRenderer.scss +27 -27
  499. package/lib/esm/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  500. package/lib/esm/appui-react/messages/StatusMessagesContainer.scss +52 -52
  501. package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
  502. package/lib/esm/appui-react/messages/StickyMessage.scss +22 -22
  503. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  504. package/lib/esm/appui-react/messages/getToastCategory.js.map +1 -1
  505. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  506. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  507. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  508. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  509. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +82 -82
  510. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  511. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
  512. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  513. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
  514. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  515. package/lib/esm/appui-react/pickers/ListPicker.scss +299 -299
  516. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  517. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  518. package/lib/esm/appui-react/popup/CardPopup.scss +22 -22
  519. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  520. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  521. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  522. package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +30 -30
  523. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  524. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  525. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  526. package/lib/esm/appui-react/popup/PositionPopup.scss +28 -28
  527. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  528. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  529. package/lib/esm/appui-react/redux/FrameworkState.js.map +1 -1
  530. package/lib/esm/appui-react/redux/ReducerRegistry.js.map +1 -1
  531. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  532. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  533. package/lib/esm/appui-react/redux/connectIModel.js.map +1 -1
  534. package/lib/esm/appui-react/redux/redux-ts.js.map +1 -1
  535. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  536. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  537. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  538. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  539. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  540. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +125 -125
  541. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  542. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  543. package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +66 -66
  544. package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  545. package/lib/esm/appui-react/shared/AnyItemDef.js.map +1 -1
  546. package/lib/esm/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  547. package/lib/esm/appui-react/shared/CommandItemDef.js.map +1 -1
  548. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  549. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  550. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  551. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  552. package/lib/esm/appui-react/shared/ItemMap.js.map +1 -1
  553. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  554. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  555. package/lib/esm/appui-react/shared/SelectionScope.js.map +1 -1
  556. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  557. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  558. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.scss +41 -41
  559. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  560. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  561. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js.map +1 -1
  562. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  563. package/lib/esm/appui-react/stagepanels/StagePanelHeader.scss +25 -25
  564. package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
  565. package/lib/esm/appui-react/statusbar/Overflow.scss +27 -27
  566. package/lib/esm/appui-react/statusbar/OverflowPanel.js.map +1 -1
  567. package/lib/esm/appui-react/statusbar/OverflowPanel.scss +22 -22
  568. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  569. package/lib/esm/appui-react/statusbar/StatusBar.scss +43 -43
  570. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  571. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  572. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  573. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  574. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  575. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  576. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  577. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +2 -3
  578. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  579. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  580. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  581. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  582. package/lib/esm/appui-react/statusfields/ConditionalField.js.map +1 -1
  583. package/lib/esm/appui-react/statusfields/FooterModeField.js.map +1 -1
  584. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  585. package/lib/esm/appui-react/statusfields/Indicator.scss +171 -171
  586. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  587. package/lib/esm/appui-react/statusfields/PromptField.js.map +1 -1
  588. package/lib/esm/appui-react/statusfields/PromptField.scss +42 -42
  589. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  590. package/lib/esm/appui-react/statusfields/SectionsField.scss +36 -36
  591. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  592. package/lib/esm/appui-react/statusfields/SelectionInfo.scss +14 -14
  593. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  594. package/lib/esm/appui-react/statusfields/SelectionScope.scss +37 -37
  595. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  596. package/lib/esm/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  597. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  598. package/lib/esm/appui-react/statusfields/ViewAttributes.scss +14 -14
  599. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  600. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +57 -57
  601. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  602. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +200 -200
  603. package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
  604. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  605. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  606. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  607. package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  608. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  609. package/lib/esm/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  610. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  611. package/lib/esm/appui-react/toolbar/DragInteraction.js.map +1 -1
  612. package/lib/esm/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  613. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  614. package/lib/esm/appui-react/toolbar/PopupButton.js.map +1 -1
  615. package/lib/esm/appui-react/toolbar/PopupButton.scss +9 -9
  616. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  617. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  618. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  619. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  620. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  621. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
  622. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +2 -3
  623. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  624. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  625. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  626. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  627. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  628. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  629. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  630. package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
  631. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  632. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  633. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  634. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  635. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  636. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  637. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
  638. package/lib/esm/appui-react/uisettings/AppUiSettings.js.map +1 -1
  639. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js.map +1 -1
  640. package/lib/esm/appui-react/uisettings/useUiSettings.js.map +1 -1
  641. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  642. package/lib/esm/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  643. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  644. package/lib/esm/appui-react/utils/ViewUtilities.js.map +1 -1
  645. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  646. package/lib/esm/appui-react/widget-panels/Content.js +0 -8
  647. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  648. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  649. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -19
  650. package/lib/esm/appui-react/widget-panels/FrontstageContent.js.map +1 -1
  651. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  652. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  653. package/lib/esm/appui-react/widget-panels/StatusBar.scss +10 -10
  654. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  655. package/lib/esm/appui-react/widget-panels/Tab.scss +14 -14
  656. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  657. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +24 -24
  658. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  659. package/lib/esm/appui-react/widget-panels/Toolbars.scss +20 -20
  660. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  661. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  662. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  663. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  664. package/lib/esm/appui-react/widgets/DefaultNavigationWidget.js.map +1 -1
  665. package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
  666. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  667. package/lib/esm/appui-react/widgets/ReviewToolWidget.js.map +1 -1
  668. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  669. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  670. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  671. package/lib/esm/appui-react/widgets/ToolSettingsContent.scss +60 -60
  672. package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
  673. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  674. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  675. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  676. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  677. package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
  678. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  679. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  680. package/lib/esm/appui-react/widgets/WidgetManager.d.ts +0 -38
  681. package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  682. package/lib/esm/appui-react/widgets/WidgetManager.js +4 -58
  683. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  684. package/lib/esm/appui-react/widgets/WidgetProps.js.map +1 -1
  685. package/lib/esm/appui-react/widgets/WidgetStack.js.map +1 -1
  686. package/lib/esm/appui-react/workflow/Task.js.map +1 -1
  687. package/lib/esm/appui-react/workflow/Workflow.js.map +1 -1
  688. package/lib/esm/appui-react/zones/FrameworkZone.js.map +1 -1
  689. package/lib/esm/appui-react/zones/Outline.js.map +1 -1
  690. package/lib/esm/appui-react/zones/StatusBarZone.js.map +1 -1
  691. package/lib/esm/appui-react/zones/Zone.js.map +1 -1
  692. package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
  693. package/lib/esm/appui-react/zones/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  694. package/lib/esm/appui-react/zones/toolsettings/ToolInformation.js.map +1 -1
  695. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  696. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  697. package/lib/esm/appui-react/zones/toolsettings/ToolUiProvider.js.map +1 -1
  698. package/lib/esm/appui-react.js.map +1 -1
  699. package/package.json +39 -39
@@ -1 +1 @@
1
- {"version":3,"file":"SyncUiEventDispatcher.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module SyncUi\n */\n\nimport { Logger } from \"@itwin/core-bentley\";\nimport { IModelApp, IModelConnection, SelectedViewportChangedArgs, SelectionSetEvent } from \"@itwin/core-frontend\";\nimport { getInstancesCount, SelectionScope } from \"@itwin/presentation-common\";\nimport { ISelectionProvider, Presentation, SelectionChangeEventArgs } from \"@itwin/presentation-frontend\";\n// cSpell:ignore configurableui\nimport { UiEvent } from \"@itwin/core-react\";\nimport { Backstage } from \"../backstage/Backstage\";\nimport { ContentViewManager } from \"../content/ContentViewManager\";\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\nimport { PresentationSelectionScope, SessionStateActionId } from \"../redux/SessionState\";\nimport { UiFramework } from \"../UiFramework\";\nimport { WorkflowManager } from \"../workflow/Workflow\";\n\n// cSpell:ignore activecontentchanged, activitymessageupdated, activitymessagecancelled, backstagecloseevent, backstageevent, contentlayoutactivated, contentcontrolactivated,\n// cSpell:ignore elementtooltipchanged, frontstageactivated, inputfieldmessageadded, inputfieldmessageremoved, modalfrontstagechanged, modaldialogchanged\n// cSpell:ignore navigationaidactivated, notificationmessageadded, toolactivated, taskactivated, widgetstatechanged, workflowactivated frontstageactivating\n// cSpell:ignore frontstageready activeviewportchanged selectionsetchanged presentationselectionchanged viewstatechanged\n// cSpell:ignore accudrawcompassmodechanged accudrawfieldlockchanged accudrawrotationchanged uisettingschanged\n\n/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.\n * @public\n */\nexport enum SyncUiEventId {\n /** AccuDraw compass mode has changed. */\n AccuDrawCompassModeChanged = \"accudrawcompassmodechanged\",\n /** AccuDraw rotation has changed. */\n AccuDrawRotationChanged = \"accudrawrotationchanged\",\n /** The active content as maintained by the ContentViewManager has changed. */\n ActiveContentChanged = \"activecontentchanged\",\n /** The active view maintained by the ViewManager has changed. */\n ActiveViewportChanged = \"activeviewportchanged\",\n /** Backstage has been closed.\n * @deprecated Use BackstageEvent instead\n */\n BackstageCloseEvent = \"backstagecloseevent\",\n /** Backstage has been closed. */\n BackstageEvent = \"backstageevent\",\n /** A Content Layout has been activated. */\n ContentLayoutActivated = \"contentlayoutactivated\",\n /** A Content Control maintained by FrontstageManager has been activated. */\n ContentControlActivated = \"contentcontrolactivated\",\n /** A Frontstage is activating. */\n FrontstageActivating = \"frontstageactivating\",\n /** A Frontstage has been activated and the content has been assigned. */\n FrontstageReady = \"frontstageready\",\n /** A Modal Frontstage has been opened or closed. */\n ModalFrontstageChanged = \"modalfrontstagechanged\",\n /** A Modal Dialog has been opened or closed. */\n ModalDialogChanged = \"modaldialogchanged\",\n /** A NavigationAid has been activated. */\n NavigationAidActivated = \"navigationaidactivated\",\n /** An InteractiveTool has been activated via the ToolAdmin. */\n ToolActivated = \"toolactivated\",\n /** A Task has been activated.\n * @deprecated */\n TaskActivated = \"taskactivated\",\n /** The state of a Widget has changed. */\n WidgetStateChanged = \"widgetstatechanged\",\n /** A Workflow has been activated.\n * @deprecated */\n WorkflowActivated = \"workflowactivated\",\n /** The SelectionSet for the active IModelConnection has changed. */\n SelectionSetChanged = \"selectionsetchanged\",\n /** The list of settings providers registered with SettingsManager has changed. */\n SettingsProvidersChanged = \"settingsproviderschanged\",\n /** The current view state has changed (used by view undo/redo toolbar buttons). */\n ViewStateChanged = \"viewstatechanged\",\n /** The current object the reads and write UI Settings has changed. */\n UiSettingsChanged = \"uisettingschanged\",\n ShowHideManagerSettingChange = \"show-hide-setting-change\",\n}\n\n/** SyncUi Event arguments. Contains a set of lower case event Ids.\n * @public\n */\nexport interface SyncUiEventArgs {\n eventIds: Set<string>;\n}\n\n/** SyncUi Event class.\n * @public\n */\nexport class SyncUiEvent extends UiEvent<SyncUiEventArgs> { }\n\n/** This class is used to send eventIds to interested UI components so the component can determine if it needs\n * to refresh its display by calling setState on itself.\n * @public\n */\nexport class SyncUiEventDispatcher {\n private static _syncEventTimerId: number | undefined;\n private static _eventIds: Set<string>;\n private static _eventIdAdded = false;\n private static _syncUiEvent: SyncUiEvent;\n private static _timeoutPeriod = 100;\n private static _secondaryTimeoutPeriod = SyncUiEventDispatcher._timeoutPeriod / 2;\n private static _unregisterListenerFunc?: () => void;\n private static _unregisterListenerFuncs: Array<() => void> = [];\n private static initialized = false;\n\n /** @internal - used for testing only */\n /* istanbul ignore next */\n public static setTimeoutPeriod(period: number): void {\n SyncUiEventDispatcher._timeoutPeriod = period;\n SyncUiEventDispatcher._secondaryTimeoutPeriod = Math.floor(SyncUiEventDispatcher._timeoutPeriod / 2);\n if (SyncUiEventDispatcher._secondaryTimeoutPeriod < 1)\n SyncUiEventDispatcher._secondaryTimeoutPeriod = 1;\n if (SyncUiEventDispatcher._syncEventTimerId) {\n window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);\n SyncUiEventDispatcher._syncEventTimerId = undefined;\n }\n if (SyncUiEventDispatcher._eventIds)\n SyncUiEventDispatcher._eventIds.clear();\n\n SyncUiEventDispatcher._eventIdAdded = false;\n }\n\n /** Return set of event ids that will be sent to listeners/. */\n public static get syncEventIds(): Set<string> {\n if (!SyncUiEventDispatcher._eventIds)\n SyncUiEventDispatcher._eventIds = new Set<string>();\n\n return SyncUiEventDispatcher._eventIds;\n }\n\n /** Return SyncUiEvent so callers can register an event callback. */\n public static get onSyncUiEvent(): SyncUiEvent {\n if (!SyncUiEventDispatcher._syncUiEvent)\n SyncUiEventDispatcher._syncUiEvent = new SyncUiEvent();\n\n return SyncUiEventDispatcher._syncUiEvent;\n }\n\n /** Immediately trigger sync event processing. */\n public static dispatchImmediateSyncUiEvent(eventId: string): void {\n const eventIds = new Set<string>();\n eventIds.add(eventId.toLowerCase());\n SyncUiEventDispatcher.onSyncUiEvent.emit({ eventIds });\n }\n\n /** Save eventId in Set for processing. */\n public static dispatchSyncUiEvent(eventId: string): void {\n if (0 === SyncUiEventDispatcher._timeoutPeriod) {\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvent] not processed because _timeoutPeriod=0`);\n return;\n }\n\n SyncUiEventDispatcher.syncEventIds.add(eventId.toLowerCase());\n if (!SyncUiEventDispatcher._syncEventTimerId) { // if there is not a timer active, create one\n SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._timeoutPeriod);\n } else {\n SyncUiEventDispatcher._eventIdAdded = true;\n }\n }\n\n /** Save multiple eventIds in Set for processing. */\n public static dispatchSyncUiEvents(eventIds: string[]): void {\n // istanbul ignore if\n if (0 === SyncUiEventDispatcher._timeoutPeriod) {\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`);\n return;\n }\n\n eventIds.forEach((id) => SyncUiEventDispatcher.syncEventIds.add(id.toLowerCase()));\n // istanbul ignore else\n if (!SyncUiEventDispatcher._syncEventTimerId) { // if there is not a timer active, create one\n SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._timeoutPeriod);\n } else {\n SyncUiEventDispatcher._eventIdAdded = true;\n }\n }\n\n /** Trigger registered event processing when timer has expired and no addition eventId are added. */\n private static checkForAdditionalIds() {\n /* istanbul ignore else */\n if (!SyncUiEventDispatcher._eventIdAdded) {\n // istanbul ignore else\n if (SyncUiEventDispatcher._syncEventTimerId) {\n window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);\n SyncUiEventDispatcher._syncEventTimerId = undefined;\n } else {\n Logger.logError(UiFramework.loggerCategory(this), \"SyncUiEventDispatcher.checkForAdditionalIds - expected _syncEventTimerId to be defined\");\n }\n SyncUiEventDispatcher._eventIdAdded = false;\n // istanbul ignore else\n if (SyncUiEventDispatcher.syncEventIds.size > 0) {\n const eventIds = new Set<string>();\n SyncUiEventDispatcher.syncEventIds.forEach((value) => eventIds.add(value));\n SyncUiEventDispatcher._eventIds.clear();\n SyncUiEventDispatcher.onSyncUiEvent.emit({ eventIds });\n }\n return;\n }\n\n // istanbul ignore next\n if (SyncUiEventDispatcher._syncEventTimerId) {\n window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);\n SyncUiEventDispatcher._syncEventTimerId = undefined;\n }\n // istanbul ignore next\n SyncUiEventDispatcher._eventIdAdded = false;\n // if events have been added before the initial timer expired wait half that time to see if events are still being added.\n // istanbul ignore next\n SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._secondaryTimeoutPeriod);\n }\n\n /** Checks to see if an eventId of interest is contained in the set of eventIds */\n public static hasEventOfInterest(eventIds: Set<string>, idsOfInterest: string[]) {\n /* istanbul ignore else */\n if ((idsOfInterest.length > 0) && idsOfInterest.some((value: string): boolean => eventIds.has(value.toLowerCase())))\n return true;\n return false;\n }\n\n // istanbul ignore next\n private static _dispatchViewChange() {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewStateChanged);\n }\n\n /** Initializes the Monitoring of Events that trigger dispatching sync events */\n public static initialize() {\n // clear any registered listeners - this should only be encountered in unit test scenarios\n this._unregisterListenerFuncs.forEach((unregisterListenerFunc) => unregisterListenerFunc());\n\n this._unregisterListenerFuncs.push(FrontstageManager.onContentControlActivatedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentControlActivated);\n }));\n\n this._unregisterListenerFuncs.push(FrontstageManager.onContentLayoutActivatedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);\n }));\n\n this._unregisterListenerFuncs.push(FrontstageManager.onFrontstageActivatedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);\n }));\n\n this._unregisterListenerFuncs.push(FrontstageManager.onFrontstageReadyEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);\n }));\n\n this._unregisterListenerFuncs.push(FrontstageManager.onModalFrontstageChangedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);\n }));\n\n this._unregisterListenerFuncs.push(FrontstageManager.onNavigationAidActivatedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);\n }));\n\n this._unregisterListenerFuncs.push(FrontstageManager.onToolActivatedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);\n }));\n\n this._unregisterListenerFuncs.push(FrontstageManager.onWidgetStateChangedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);\n }));\n\n this._unregisterListenerFuncs.push(Backstage.onBackstageEvent.addListener(() => { // eslint-disable-line deprecation/deprecation\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);\n }));\n\n this._unregisterListenerFuncs.push(WorkflowManager.onTaskActivatedEvent.addListener(() => { // eslint-disable-line deprecation/deprecation\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.TaskActivated); // eslint-disable-line deprecation/deprecation\n }));\n\n this._unregisterListenerFuncs.push(WorkflowManager.onWorkflowActivatedEvent.addListener(() => { // eslint-disable-line deprecation/deprecation\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WorkflowActivated); // eslint-disable-line deprecation/deprecation\n }));\n\n this._unregisterListenerFuncs.push(ContentViewManager.onActiveContentChangedEvent.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);\n }));\n\n // istanbul ignore else\n if (IModelApp && IModelApp.viewManager) {\n this._unregisterListenerFuncs.push(IModelApp.viewManager.onSelectedViewportChanged.addListener((args: SelectedViewportChangedArgs) => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);\n\n // if this is the first view being opened up start the default tool so tool admin is happy.\n if (undefined === args.previous) {\n IModelApp.toolAdmin.startDefaultTool();// eslint-disable-line @typescript-eslint/no-floating-promises\n } else {\n // istanbul ignore next\n if (args.previous.onViewChanged && typeof args.previous.onViewChanged.removeListener === \"function\") // not set during unit test\n args.previous.onViewChanged.removeListener(SyncUiEventDispatcher._dispatchViewChange);\n }\n // istanbul ignore next\n if (args.current) {\n if (args.current.onViewChanged && typeof args.current.onViewChanged.addListener === \"function\") // not set during unit test\n args.current.onViewChanged.addListener(SyncUiEventDispatcher._dispatchViewChange);\n }\n }));\n }\n }\n\n private static selectionChangedHandler(_ev: SelectionSetEvent) {\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);\n }\n\n /** This should be called by IModelApp when the active IModelConnection is closed. */\n public static clearConnectionEvents(iModelConnection: IModelConnection) {\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\n SyncUiEventDispatcher._unregisterListenerFunc && SyncUiEventDispatcher._unregisterListenerFunc();\n }\n\n /** This should be called by IModelApp when the active IModelConnection is established. */\n public static initializeConnectionEvents(iModelConnection: IModelConnection) {\n if (SyncUiEventDispatcher._unregisterListenerFunc)\n SyncUiEventDispatcher._unregisterListenerFunc();\n\n if (iModelConnection.isBlankConnection()) {\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, 0);\n return;\n }\n\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\n iModelConnection.selectionSet.onChanged.addListener(SyncUiEventDispatcher.selectionChangedHandler);\n (iModelConnection.iModelId) ? UiFramework.setActiveIModelId(iModelConnection.iModelId) : /* istanbul ignore next */ \"\";\n\n // listen for changes from presentation rules selection manager (this is done once an iModelConnection is available to ensure Presentation.selection is valid)\n SyncUiEventDispatcher._unregisterListenerFunc = Presentation.selection.selectionChange.addListener((args: SelectionChangeEventArgs, provider: ISelectionProvider) => {\n // istanbul ignore if\n if (args.level !== 0) {\n // don't need to handle sub-selections\n return;\n }\n const selection = provider.getSelection(args.imodel, args.level);\n const numSelected = getInstancesCount(selection);\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, numSelected);\n });\n\n Presentation.selection.scopes.getSelectionScopes(iModelConnection).then((availableScopes: SelectionScope[]) => { // eslint-disable-line @typescript-eslint/no-floating-promises\n // istanbul ignore else\n if (availableScopes) {\n const presentationScopes: PresentationSelectionScope[] = [];\n availableScopes.map((scope) => presentationScopes.push(scope));\n UiFramework.dispatchActionToStore(SessionStateActionId.SetAvailableSelectionScopes, presentationScopes);\n }\n });\n\n const activeSelectionScope = Presentation.selection.scopes.activeScope;\n if (activeSelectionScope) {\n if (typeof (activeSelectionScope) === \"object\") {\n UiFramework.dispatchActionToStore(SessionStateActionId.SetSelectionScope, activeSelectionScope.id);\n } else {\n UiFramework.dispatchActionToStore(SessionStateActionId.SetSelectionScope, activeSelectionScope);\n }\n }\n }\n\n}\n"]}
1
+ {"version":3,"file":"SyncUiEventDispatcher.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module SyncUi\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, SelectedViewportChangedArgs, SelectionSetEvent } from \"@itwin/core-frontend\";\r\nimport { getInstancesCount, SelectionScope } from \"@itwin/presentation-common\";\r\nimport { ISelectionProvider, Presentation, SelectionChangeEventArgs } from \"@itwin/presentation-frontend\";\r\n// cSpell:ignore configurableui\r\nimport { UiEvent } from \"@itwin/core-react\";\r\nimport { Backstage } from \"../backstage/Backstage\";\r\nimport { ContentViewManager } from \"../content/ContentViewManager\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { PresentationSelectionScope, SessionStateActionId } from \"../redux/SessionState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WorkflowManager } from \"../workflow/Workflow\";\r\n\r\n// cSpell:ignore activecontentchanged, activitymessageupdated, activitymessagecancelled, backstagecloseevent, backstageevent, contentlayoutactivated, contentcontrolactivated,\r\n// cSpell:ignore elementtooltipchanged, frontstageactivated, inputfieldmessageadded, inputfieldmessageremoved, modalfrontstagechanged, modaldialogchanged\r\n// cSpell:ignore navigationaidactivated, notificationmessageadded, toolactivated, taskactivated, widgetstatechanged, workflowactivated frontstageactivating\r\n// cSpell:ignore frontstageready activeviewportchanged selectionsetchanged presentationselectionchanged viewstatechanged\r\n// cSpell:ignore accudrawcompassmodechanged accudrawfieldlockchanged accudrawrotationchanged uisettingschanged\r\n\r\n/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.\r\n * @public\r\n */\r\nexport enum SyncUiEventId {\r\n /** AccuDraw compass mode has changed. */\r\n AccuDrawCompassModeChanged = \"accudrawcompassmodechanged\",\r\n /** AccuDraw rotation has changed. */\r\n AccuDrawRotationChanged = \"accudrawrotationchanged\",\r\n /** The active content as maintained by the ContentViewManager has changed. */\r\n ActiveContentChanged = \"activecontentchanged\",\r\n /** The active view maintained by the ViewManager has changed. */\r\n ActiveViewportChanged = \"activeviewportchanged\",\r\n /** Backstage has been closed.\r\n * @deprecated Use BackstageEvent instead\r\n */\r\n BackstageCloseEvent = \"backstagecloseevent\",\r\n /** Backstage has been closed. */\r\n BackstageEvent = \"backstageevent\",\r\n /** A Content Layout has been activated. */\r\n ContentLayoutActivated = \"contentlayoutactivated\",\r\n /** A Content Control maintained by FrontstageManager has been activated. */\r\n ContentControlActivated = \"contentcontrolactivated\",\r\n /** A Frontstage is activating. */\r\n FrontstageActivating = \"frontstageactivating\",\r\n /** A Frontstage has been activated and the content has been assigned. */\r\n FrontstageReady = \"frontstageready\",\r\n /** A Modal Frontstage has been opened or closed. */\r\n ModalFrontstageChanged = \"modalfrontstagechanged\",\r\n /** A Modal Dialog has been opened or closed. */\r\n ModalDialogChanged = \"modaldialogchanged\",\r\n /** A NavigationAid has been activated. */\r\n NavigationAidActivated = \"navigationaidactivated\",\r\n /** An InteractiveTool has been activated via the ToolAdmin. */\r\n ToolActivated = \"toolactivated\",\r\n /** A Task has been activated.\r\n * @deprecated */\r\n TaskActivated = \"taskactivated\",\r\n /** The state of a Widget has changed. */\r\n WidgetStateChanged = \"widgetstatechanged\",\r\n /** A Workflow has been activated.\r\n * @deprecated */\r\n WorkflowActivated = \"workflowactivated\",\r\n /** The SelectionSet for the active IModelConnection has changed. */\r\n SelectionSetChanged = \"selectionsetchanged\",\r\n /** The list of settings providers registered with SettingsManager has changed. */\r\n SettingsProvidersChanged = \"settingsproviderschanged\",\r\n /** The current view state has changed (used by view undo/redo toolbar buttons). */\r\n ViewStateChanged = \"viewstatechanged\",\r\n /** The current object the reads and write UI Settings has changed. */\r\n UiSettingsChanged = \"uisettingschanged\",\r\n ShowHideManagerSettingChange = \"show-hide-setting-change\",\r\n}\r\n\r\n/** SyncUi Event arguments. Contains a set of lower case event Ids.\r\n * @public\r\n */\r\nexport interface SyncUiEventArgs {\r\n eventIds: Set<string>;\r\n}\r\n\r\n/** SyncUi Event class.\r\n * @public\r\n */\r\nexport class SyncUiEvent extends UiEvent<SyncUiEventArgs> { }\r\n\r\n/** This class is used to send eventIds to interested UI components so the component can determine if it needs\r\n * to refresh its display by calling setState on itself.\r\n * @public\r\n */\r\nexport class SyncUiEventDispatcher {\r\n private static _syncEventTimerId: number | undefined;\r\n private static _eventIds: Set<string>;\r\n private static _eventIdAdded = false;\r\n private static _syncUiEvent: SyncUiEvent;\r\n private static _timeoutPeriod = 100;\r\n private static _secondaryTimeoutPeriod = SyncUiEventDispatcher._timeoutPeriod / 2;\r\n private static _unregisterListenerFunc?: () => void;\r\n private static _unregisterListenerFuncs: Array<() => void> = [];\r\n private static initialized = false;\r\n\r\n /** @internal - used for testing only */\r\n /* istanbul ignore next */\r\n public static setTimeoutPeriod(period: number): void {\r\n SyncUiEventDispatcher._timeoutPeriod = period;\r\n SyncUiEventDispatcher._secondaryTimeoutPeriod = Math.floor(SyncUiEventDispatcher._timeoutPeriod / 2);\r\n if (SyncUiEventDispatcher._secondaryTimeoutPeriod < 1)\r\n SyncUiEventDispatcher._secondaryTimeoutPeriod = 1;\r\n if (SyncUiEventDispatcher._syncEventTimerId) {\r\n window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);\r\n SyncUiEventDispatcher._syncEventTimerId = undefined;\r\n }\r\n if (SyncUiEventDispatcher._eventIds)\r\n SyncUiEventDispatcher._eventIds.clear();\r\n\r\n SyncUiEventDispatcher._eventIdAdded = false;\r\n }\r\n\r\n /** Return set of event ids that will be sent to listeners/. */\r\n public static get syncEventIds(): Set<string> {\r\n if (!SyncUiEventDispatcher._eventIds)\r\n SyncUiEventDispatcher._eventIds = new Set<string>();\r\n\r\n return SyncUiEventDispatcher._eventIds;\r\n }\r\n\r\n /** Return SyncUiEvent so callers can register an event callback. */\r\n public static get onSyncUiEvent(): SyncUiEvent {\r\n if (!SyncUiEventDispatcher._syncUiEvent)\r\n SyncUiEventDispatcher._syncUiEvent = new SyncUiEvent();\r\n\r\n return SyncUiEventDispatcher._syncUiEvent;\r\n }\r\n\r\n /** Immediately trigger sync event processing. */\r\n public static dispatchImmediateSyncUiEvent(eventId: string): void {\r\n const eventIds = new Set<string>();\r\n eventIds.add(eventId.toLowerCase());\r\n SyncUiEventDispatcher.onSyncUiEvent.emit({ eventIds });\r\n }\r\n\r\n /** Save eventId in Set for processing. */\r\n public static dispatchSyncUiEvent(eventId: string): void {\r\n if (0 === SyncUiEventDispatcher._timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvent] not processed because _timeoutPeriod=0`);\r\n return;\r\n }\r\n\r\n SyncUiEventDispatcher.syncEventIds.add(eventId.toLowerCase());\r\n if (!SyncUiEventDispatcher._syncEventTimerId) { // if there is not a timer active, create one\r\n SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._timeoutPeriod);\r\n } else {\r\n SyncUiEventDispatcher._eventIdAdded = true;\r\n }\r\n }\r\n\r\n /** Save multiple eventIds in Set for processing. */\r\n public static dispatchSyncUiEvents(eventIds: string[]): void {\r\n // istanbul ignore if\r\n if (0 === SyncUiEventDispatcher._timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`);\r\n return;\r\n }\r\n\r\n eventIds.forEach((id) => SyncUiEventDispatcher.syncEventIds.add(id.toLowerCase()));\r\n // istanbul ignore else\r\n if (!SyncUiEventDispatcher._syncEventTimerId) { // if there is not a timer active, create one\r\n SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._timeoutPeriod);\r\n } else {\r\n SyncUiEventDispatcher._eventIdAdded = true;\r\n }\r\n }\r\n\r\n /** Trigger registered event processing when timer has expired and no addition eventId are added. */\r\n private static checkForAdditionalIds() {\r\n /* istanbul ignore else */\r\n if (!SyncUiEventDispatcher._eventIdAdded) {\r\n // istanbul ignore else\r\n if (SyncUiEventDispatcher._syncEventTimerId) {\r\n window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);\r\n SyncUiEventDispatcher._syncEventTimerId = undefined;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), \"SyncUiEventDispatcher.checkForAdditionalIds - expected _syncEventTimerId to be defined\");\r\n }\r\n SyncUiEventDispatcher._eventIdAdded = false;\r\n // istanbul ignore else\r\n if (SyncUiEventDispatcher.syncEventIds.size > 0) {\r\n const eventIds = new Set<string>();\r\n SyncUiEventDispatcher.syncEventIds.forEach((value) => eventIds.add(value));\r\n SyncUiEventDispatcher._eventIds.clear();\r\n SyncUiEventDispatcher.onSyncUiEvent.emit({ eventIds });\r\n }\r\n return;\r\n }\r\n\r\n // istanbul ignore next\r\n if (SyncUiEventDispatcher._syncEventTimerId) {\r\n window.clearTimeout(SyncUiEventDispatcher._syncEventTimerId);\r\n SyncUiEventDispatcher._syncEventTimerId = undefined;\r\n }\r\n // istanbul ignore next\r\n SyncUiEventDispatcher._eventIdAdded = false;\r\n // if events have been added before the initial timer expired wait half that time to see if events are still being added.\r\n // istanbul ignore next\r\n SyncUiEventDispatcher._syncEventTimerId = window.setTimeout(SyncUiEventDispatcher.checkForAdditionalIds, SyncUiEventDispatcher._secondaryTimeoutPeriod);\r\n }\r\n\r\n /** Checks to see if an eventId of interest is contained in the set of eventIds */\r\n public static hasEventOfInterest(eventIds: Set<string>, idsOfInterest: string[]) {\r\n /* istanbul ignore else */\r\n if ((idsOfInterest.length > 0) && idsOfInterest.some((value: string): boolean => eventIds.has(value.toLowerCase())))\r\n return true;\r\n return false;\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchViewChange() {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewStateChanged);\r\n }\r\n\r\n /** Initializes the Monitoring of Events that trigger dispatching sync events */\r\n public static initialize() {\r\n // clear any registered listeners - this should only be encountered in unit test scenarios\r\n this._unregisterListenerFuncs.forEach((unregisterListenerFunc) => unregisterListenerFunc());\r\n\r\n this._unregisterListenerFuncs.push(FrontstageManager.onContentControlActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentControlActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(FrontstageManager.onContentLayoutActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(FrontstageManager.onFrontstageActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(FrontstageManager.onFrontstageReadyEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(FrontstageManager.onModalFrontstageChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(FrontstageManager.onNavigationAidActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(FrontstageManager.onToolActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(FrontstageManager.onWidgetStateChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(Backstage.onBackstageEvent.addListener(() => { // eslint-disable-line deprecation/deprecation\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(WorkflowManager.onTaskActivatedEvent.addListener(() => { // eslint-disable-line deprecation/deprecation\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.TaskActivated); // eslint-disable-line deprecation/deprecation\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(WorkflowManager.onWorkflowActivatedEvent.addListener(() => { // eslint-disable-line deprecation/deprecation\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WorkflowActivated); // eslint-disable-line deprecation/deprecation\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(ContentViewManager.onActiveContentChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);\r\n }));\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n this._unregisterListenerFuncs.push(IModelApp.viewManager.onSelectedViewportChanged.addListener((args: SelectedViewportChangedArgs) => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);\r\n\r\n // if this is the first view being opened up start the default tool so tool admin is happy.\r\n if (undefined === args.previous) {\r\n IModelApp.toolAdmin.startDefaultTool();// eslint-disable-line @typescript-eslint/no-floating-promises\r\n } else {\r\n // istanbul ignore next\r\n if (args.previous.onViewChanged && typeof args.previous.onViewChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onViewChanged.removeListener(SyncUiEventDispatcher._dispatchViewChange);\r\n }\r\n // istanbul ignore next\r\n if (args.current) {\r\n if (args.current.onViewChanged && typeof args.current.onViewChanged.addListener === \"function\") // not set during unit test\r\n args.current.onViewChanged.addListener(SyncUiEventDispatcher._dispatchViewChange);\r\n }\r\n }));\r\n }\r\n }\r\n\r\n private static selectionChangedHandler(_ev: SelectionSetEvent) {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is closed. */\r\n public static clearConnectionEvents(iModelConnection: IModelConnection) {\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n SyncUiEventDispatcher._unregisterListenerFunc && SyncUiEventDispatcher._unregisterListenerFunc();\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is established. */\r\n public static initializeConnectionEvents(iModelConnection: IModelConnection) {\r\n if (SyncUiEventDispatcher._unregisterListenerFunc)\r\n SyncUiEventDispatcher._unregisterListenerFunc();\r\n\r\n if (iModelConnection.isBlankConnection()) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, 0);\r\n return;\r\n }\r\n\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.selectionSet.onChanged.addListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n (iModelConnection.iModelId) ? UiFramework.setActiveIModelId(iModelConnection.iModelId) : /* istanbul ignore next */ \"\";\r\n\r\n // listen for changes from presentation rules selection manager (this is done once an iModelConnection is available to ensure Presentation.selection is valid)\r\n SyncUiEventDispatcher._unregisterListenerFunc = Presentation.selection.selectionChange.addListener((args: SelectionChangeEventArgs, provider: ISelectionProvider) => {\r\n // istanbul ignore if\r\n if (args.level !== 0) {\r\n // don't need to handle sub-selections\r\n return;\r\n }\r\n const selection = provider.getSelection(args.imodel, args.level);\r\n const numSelected = getInstancesCount(selection);\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, numSelected);\r\n });\r\n\r\n Presentation.selection.scopes.getSelectionScopes(iModelConnection).then((availableScopes: SelectionScope[]) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n // istanbul ignore else\r\n if (availableScopes) {\r\n const presentationScopes: PresentationSelectionScope[] = [];\r\n availableScopes.map((scope) => presentationScopes.push(scope));\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetAvailableSelectionScopes, presentationScopes);\r\n }\r\n });\r\n\r\n const activeSelectionScope = Presentation.selection.scopes.activeScope;\r\n if (activeSelectionScope) {\r\n if (typeof (activeSelectionScope) === \"object\") {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetSelectionScope, activeSelectionScope.id);\r\n } else {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetSelectionScope, activeSelectionScope);\r\n }\r\n }\r\n }\r\n\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module State\n */\n\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { ThemeProvider, ThemeType } from \"@itwin/itwinui-react\";\nimport { FrameworkState } from \"../redux/FrameworkState\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Enum for the Color Theme string.\n * @public\n */\nexport enum ColorTheme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\n/** System preferred color theme.\n * @public\n */\nexport const SYSTEM_PREFERRED_COLOR_THEME = \"SYSTEM_PREFERRED\";\n\n/** The default widget opacity.\n * @public\n */\nexport const WIDGET_OPACITY_DEFAULT = 0.90;\n\n/** Properties of [[ThemeManagerComponent]].\n */\ninterface ThemeManagerProps {\n /** theme (\"light\", \"dark\", etc.) */\n theme: string;\n /* Widget Opacity */\n widgetOpacity: number;\n children?: React.ReactNode;\n}\n\nfunction mapStateToProps(state: any) {\n const frameworkState = state[UiFramework.frameworkStateKey] as FrameworkState; // since app sets up key, don't hard-code name\n // istanbul ignore if\n if (!frameworkState)\n return undefined;\n\n return {\n theme: frameworkState.configurableUiState.theme,\n widgetOpacity: frameworkState.configurableUiState.widgetOpacity,\n };\n}\n\n/** @internal */\ninterface ThemeManagerState {\n ownerDocument: Document | undefined;\n}\n\n/** ThemeManagerComponent handles setting themes.\n */\nclass ThemeManagerComponent extends React.Component<ThemeManagerProps, ThemeManagerState> {\n\n public override readonly state: ThemeManagerState = {\n ownerDocument: undefined,\n };\n\n public override componentDidMount() {\n this._setTheme(this.props.theme);\n }\n\n public override componentDidUpdate(prevProps: ThemeManagerProps) {\n if (this.props.theme !== prevProps.theme)\n this._setTheme(this.props.theme);\n const currentOpacity = document.documentElement.style.getPropertyValue(\"--buic-widget-opacity\");\n if (this.props.widgetOpacity.toString() !== currentOpacity)\n this._setWidgetOpacity(this.props.widgetOpacity);\n }\n\n private _setTheme = (theme: string) => {\n document.documentElement.classList.add(\"theme-transition\");\n document.documentElement.setAttribute(\"data-theme\", theme);\n window.setTimeout(() => document.documentElement.classList.remove(\"theme-transition\"), 1000);\n };\n\n private _setWidgetOpacity = (opacity: number) => {\n setImmediate(() =>\n document.documentElement.style.setProperty(\"--buic-widget-opacity\", opacity.toString()));\n };\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n const ownerDocument = popupDiv?.ownerDocument ?? undefined;\n if (ownerDocument) {\n this.setState({ ownerDocument });\n }\n };\n\n public override render(): React.ReactNode {\n const theme: ThemeType = (this.props.theme === SYSTEM_PREFERRED_COLOR_THEME) ? \"os\" : this.props.theme as ThemeType;\n\n return (\n <div style={{ height: \"100%\" }} ref={this._handleRefSet}>\n <ThemeProvider theme={theme} themeOptions={{ ownerDocument: this.state.ownerDocument }}>\n {this.props.children}\n </ThemeProvider>\n </div>\n );\n }\n}\n\n/**\n * ThemeManager handles setting color themes.\n * This React component is Redux connected.\n * @public\n */\nexport const ThemeManager = connect(mapStateToProps)(ThemeManagerComponent); // eslint-disable-line @typescript-eslint/naming-convention\n"]}
1
+ {"version":3,"file":"ThemeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.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 State\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { ThemeProvider, ThemeType } from \"@itwin/itwinui-react\";\r\nimport { FrameworkState } from \"../redux/FrameworkState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Enum for the Color Theme string.\r\n * @public\r\n */\r\nexport enum ColorTheme {\r\n Light = \"light\",\r\n Dark = \"dark\",\r\n}\r\n\r\n/** System preferred color theme.\r\n * @public\r\n */\r\nexport const SYSTEM_PREFERRED_COLOR_THEME = \"SYSTEM_PREFERRED\";\r\n\r\n/** The default widget opacity.\r\n * @public\r\n */\r\nexport const WIDGET_OPACITY_DEFAULT = 0.90;\r\n\r\n/** Properties of [[ThemeManagerComponent]].\r\n */\r\ninterface ThemeManagerProps {\r\n /** theme (\"light\", \"dark\", etc.) */\r\n theme: string;\r\n /* Widget Opacity */\r\n widgetOpacity: number;\r\n children?: React.ReactNode;\r\n}\r\n\r\nfunction mapStateToProps(state: any) {\r\n const frameworkState = state[UiFramework.frameworkStateKey] as FrameworkState; // since app sets up key, don't hard-code name\r\n // istanbul ignore if\r\n if (!frameworkState)\r\n return undefined;\r\n\r\n return {\r\n theme: frameworkState.configurableUiState.theme,\r\n widgetOpacity: frameworkState.configurableUiState.widgetOpacity,\r\n };\r\n}\r\n\r\n/** @internal */\r\ninterface ThemeManagerState {\r\n ownerDocument: Document | undefined;\r\n}\r\n\r\n/** ThemeManagerComponent handles setting themes.\r\n */\r\nclass ThemeManagerComponent extends React.Component<ThemeManagerProps, ThemeManagerState> {\r\n\r\n public override readonly state: ThemeManagerState = {\r\n ownerDocument: undefined,\r\n };\r\n\r\n public override componentDidMount() {\r\n this._setTheme(this.props.theme);\r\n }\r\n\r\n public override componentDidUpdate(prevProps: ThemeManagerProps) {\r\n if (this.props.theme !== prevProps.theme)\r\n this._setTheme(this.props.theme);\r\n const currentOpacity = document.documentElement.style.getPropertyValue(\"--buic-widget-opacity\");\r\n if (this.props.widgetOpacity.toString() !== currentOpacity)\r\n this._setWidgetOpacity(this.props.widgetOpacity);\r\n }\r\n\r\n private _setTheme = (theme: string) => {\r\n document.documentElement.classList.add(\"theme-transition\");\r\n document.documentElement.setAttribute(\"data-theme\", theme);\r\n window.setTimeout(() => document.documentElement.classList.remove(\"theme-transition\"), 1000);\r\n };\r\n\r\n private _setWidgetOpacity = (opacity: number) => {\r\n setImmediate(() =>\r\n document.documentElement.style.setProperty(\"--buic-widget-opacity\", opacity.toString()));\r\n };\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n const ownerDocument = popupDiv?.ownerDocument ?? undefined;\r\n if (ownerDocument) {\r\n this.setState({ ownerDocument });\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const theme: ThemeType = (this.props.theme === SYSTEM_PREFERRED_COLOR_THEME) ? \"os\" : this.props.theme as ThemeType;\r\n\r\n return (\r\n <div style={{ height: \"100%\" }} ref={this._handleRefSet}>\r\n <ThemeProvider theme={theme} themeOptions={{ ownerDocument: this.state.ownerDocument }}>\r\n {this.props.children}\r\n </ThemeProvider>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * ThemeManager handles setting color themes.\r\n * This React component is Redux connected.\r\n * @public\r\n */\r\nexport const ThemeManager = connect(mapStateToProps)(ThemeManagerComponent); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AnalysisAnimationProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/timeline/AnalysisAnimationProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,4EAA4F;AAE5F;;GAEG;AACH,MAAa,qCAAsC,SAAQ,kDAAwB;IAGjF,YAAY,SAAoB,EAAE,QAAyB;QACzD,KAAK,CAAC,QAAQ,CAAC,CAAC;QA8BF,+BAA0B,GAAG,CAAC,iBAAyB,EAAE,EAAE;YACzE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAC3C,uBAAuB;YACvB,IAAI,IAAI,CAAC,SAAS;gBAChB,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;QACxD,CAAC,CAAC;QAEF,uBAAuB;QACP,6BAAwB,GAAG,CAAC,QAA0B,EAAE,EAAE;YACxE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC;QAvCA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,uBAAuB;QACvB,IAAI,SAAS,IAAI,SAAS,CAAC,aAAa,EAAE;YACxC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACvC;IACH,CAAC;IAEe,KAAK,CAAC,gBAAgB;QACpC,mDAAmD;QACnD,uBAAuB;QACvB,IAAI,IAAI,CAAC,SAAS;YAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAE3D,uBAAuB;QACvB,IAAI,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YACnE,gCAAgC;YAChC,IAAI,CAAC,cAAc,CAAC;gBAClB,QAAQ,EAAE,CAAC,GAAG,IAAI;gBAClB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;SACb;QAED,uBAAuB;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;CAaF;AA7CD,sFA6CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Timeline\n */\n\nimport { ScreenViewport, ViewState } from \"@itwin/core-frontend\";\nimport { BaseTimelineDataProvider, PlaybackSettings } from \"@itwin/imodel-components-react\";\n\n/** Analysis Timeline Data Provider - Allows a TimelineComponent to animate the AnalysisStyle information stored in a ViewState.\n * @public\n */\nexport class AnalysisAnimationTimelineDataProvider extends BaseTimelineDataProvider {\n private _viewState: ViewState;\n\n constructor(viewState: ViewState, viewport?: ScreenViewport) {\n super(viewport);\n this._viewState = viewState;\n\n // istanbul ignore else\n if (viewState && viewState.analysisStyle) {\n this.supportsTimelineAnimation = true;\n }\n }\n\n public override async loadTimelineData(): Promise<boolean> {\n // if animationFraction is set pointer should match\n // istanbul ignore else\n if (this._viewport)\n this.animationFraction = this._viewport.analysisFraction;\n\n // istanbul ignore else\n if (this.supportsTimelineAnimation && this._viewState.analysisStyle) {\n // for now just initial settings\n this.updateSettings({\n duration: 5 * 1000,\n loop: true,\n });\n\n return true;\n }\n\n // istanbul ignore next\n return false;\n }\n\n public override onAnimationFractionChanged = (animationFraction: number) => {\n this.animationFraction = animationFraction;\n // istanbul ignore next\n if (this._viewport)\n this._viewport.analysisFraction = animationFraction;\n };\n\n // istanbul ignore next\n public override onPlaybackSettingChanged = (settings: PlaybackSettings) => {\n this.updateSettings(settings);\n };\n}\n"]}
1
+ {"version":3,"file":"AnalysisAnimationProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/timeline/AnalysisAnimationProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,4EAA4F;AAE5F;;GAEG;AACH,MAAa,qCAAsC,SAAQ,kDAAwB;IAGjF,YAAY,SAAoB,EAAE,QAAyB;QACzD,KAAK,CAAC,QAAQ,CAAC,CAAC;QA8BF,+BAA0B,GAAG,CAAC,iBAAyB,EAAE,EAAE;YACzE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAC3C,uBAAuB;YACvB,IAAI,IAAI,CAAC,SAAS;gBAChB,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;QACxD,CAAC,CAAC;QAEF,uBAAuB;QACP,6BAAwB,GAAG,CAAC,QAA0B,EAAE,EAAE;YACxE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC;QAvCA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,uBAAuB;QACvB,IAAI,SAAS,IAAI,SAAS,CAAC,aAAa,EAAE;YACxC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACvC;IACH,CAAC;IAEe,KAAK,CAAC,gBAAgB;QACpC,mDAAmD;QACnD,uBAAuB;QACvB,IAAI,IAAI,CAAC,SAAS;YAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAE3D,uBAAuB;QACvB,IAAI,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YACnE,gCAAgC;YAChC,IAAI,CAAC,cAAc,CAAC;gBAClB,QAAQ,EAAE,CAAC,GAAG,IAAI;gBAClB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;SACb;QAED,uBAAuB;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;CAaF;AA7CD,sFA6CC","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 Timeline\r\n */\r\n\r\nimport { ScreenViewport, ViewState } from \"@itwin/core-frontend\";\r\nimport { BaseTimelineDataProvider, PlaybackSettings } from \"@itwin/imodel-components-react\";\r\n\r\n/** Analysis Timeline Data Provider - Allows a TimelineComponent to animate the AnalysisStyle information stored in a ViewState.\r\n * @public\r\n */\r\nexport class AnalysisAnimationTimelineDataProvider extends BaseTimelineDataProvider {\r\n private _viewState: ViewState;\r\n\r\n constructor(viewState: ViewState, viewport?: ScreenViewport) {\r\n super(viewport);\r\n this._viewState = viewState;\r\n\r\n // istanbul ignore else\r\n if (viewState && viewState.analysisStyle) {\r\n this.supportsTimelineAnimation = true;\r\n }\r\n }\r\n\r\n public override async loadTimelineData(): Promise<boolean> {\r\n // if animationFraction is set pointer should match\r\n // istanbul ignore else\r\n if (this._viewport)\r\n this.animationFraction = this._viewport.analysisFraction;\r\n\r\n // istanbul ignore else\r\n if (this.supportsTimelineAnimation && this._viewState.analysisStyle) {\r\n // for now just initial settings\r\n this.updateSettings({\r\n duration: 5 * 1000,\r\n loop: true,\r\n });\r\n\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n public override onAnimationFractionChanged = (animationFraction: number) => {\r\n this.animationFraction = animationFraction;\r\n // istanbul ignore next\r\n if (this._viewport)\r\n this._viewport.analysisFraction = animationFraction;\r\n };\r\n\r\n // istanbul ignore next\r\n public override onPlaybackSettingChanged = (settings: PlaybackSettings) => {\r\n this.updateSettings(settings);\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleAnimationProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/timeline/ScheduleAnimationProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,4EAA4F;AAE5F;;GAEG;AACH,mDAAmD;AACnD,uBAAuB;AACvB,MAAa,qCAAsC,SAAQ,kDAAwB;IAGjF,YAAY,SAAoB,EAAE,QAAyB;QACzD,KAAK,CAAC,QAAQ,CAAC,CAAC;QAkCF,+BAA0B,GAAG,CAAC,iBAAyB,EAAE,EAAE;YACzE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC;gBAC1D,IAAI,MAAM;oBACR,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;aACjF;QACH,CAAC,CAAC;QAEc,6BAAwB,GAAG,CAAC,QAA0B,EAAE,EAAE;YACxE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC;QA5CA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,SAAS,IAAI,SAAS,CAAC,cAAc,EAAE;YACzC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACvC;IACH,CAAC;IAEe,KAAK,CAAC,gBAAgB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAC9C,IAAI,IAAI,CAAC,yBAAyB,IAAI,MAAM,EAAE;YAC5C,gCAAgC;YAChC,IAAI,CAAC,cAAc,CAAC;gBAClB,QAAQ,EAAE,EAAE,GAAG,IAAI;gBACnB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS;oBAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;;oBAEzF,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;aAC9B;YAED,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CAcF;AAlDD,sFAkDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Timeline\n */\n\nimport { ScreenViewport, ViewState } from \"@itwin/core-frontend\";\nimport { BaseTimelineDataProvider, PlaybackSettings } from \"@itwin/imodel-components-react\";\n\n/** ScheduleAnimation Timeline Data Provider - allows a TimelineComponent to animate the data found in a ScheduleScript in a ViewState.\n * @public\n */\n// No access to scheduleScript to even mock in test\n// istanbul ignore next\nexport class ScheduleAnimationTimelineDataProvider extends BaseTimelineDataProvider {\n private _viewState: ViewState;\n\n constructor(viewState: ViewState, viewport?: ScreenViewport) {\n super(viewport);\n this._viewState = viewState;\n\n if (viewState && viewState.scheduleScript) {\n this.supportsTimelineAnimation = true;\n }\n }\n\n public override async loadTimelineData(): Promise<boolean> {\n const script = this._viewState.scheduleScript;\n if (this.supportsTimelineAnimation && script) {\n // for now just initial settings\n this.updateSettings({\n duration: 20 * 1000, // this is playback duration\n loop: true,\n });\n\n const timeRange = script.duration;\n this.start = new Date(timeRange.low * 1000);\n this.end = new Date(timeRange.high * 1000);\n\n if (this._viewport) {\n if (this._viewport.timePoint)\n this.animationFraction = (this._viewport.timePoint - timeRange.low) / timeRange.length();\n else\n this.animationFraction = 0;\n }\n\n return true;\n }\n\n return false;\n }\n\n public override onAnimationFractionChanged = (animationFraction: number) => {\n this.animationFraction = animationFraction;\n if (this._viewport) {\n const script = this._viewport.displayStyle.scheduleScript;\n if (script)\n this._viewport.timePoint = script.duration.fractionToPoint(animationFraction);\n }\n };\n\n public override onPlaybackSettingChanged = (settings: PlaybackSettings) => {\n this.updateSettings(settings);\n };\n}\n"]}
1
+ {"version":3,"file":"ScheduleAnimationProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/timeline/ScheduleAnimationProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,4EAA4F;AAE5F;;GAEG;AACH,mDAAmD;AACnD,uBAAuB;AACvB,MAAa,qCAAsC,SAAQ,kDAAwB;IAGjF,YAAY,SAAoB,EAAE,QAAyB;QACzD,KAAK,CAAC,QAAQ,CAAC,CAAC;QAkCF,+BAA0B,GAAG,CAAC,iBAAyB,EAAE,EAAE;YACzE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC;gBAC1D,IAAI,MAAM;oBACR,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;aACjF;QACH,CAAC,CAAC;QAEc,6BAAwB,GAAG,CAAC,QAA0B,EAAE,EAAE;YACxE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC;QA5CA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,SAAS,IAAI,SAAS,CAAC,cAAc,EAAE;YACzC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACvC;IACH,CAAC;IAEe,KAAK,CAAC,gBAAgB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAC9C,IAAI,IAAI,CAAC,yBAAyB,IAAI,MAAM,EAAE;YAC5C,gCAAgC;YAChC,IAAI,CAAC,cAAc,CAAC;gBAClB,QAAQ,EAAE,EAAE,GAAG,IAAI;gBACnB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS;oBAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;;oBAEzF,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;aAC9B;YAED,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CAcF;AAlDD,sFAkDC","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 Timeline\r\n */\r\n\r\nimport { ScreenViewport, ViewState } from \"@itwin/core-frontend\";\r\nimport { BaseTimelineDataProvider, PlaybackSettings } from \"@itwin/imodel-components-react\";\r\n\r\n/** ScheduleAnimation Timeline Data Provider - allows a TimelineComponent to animate the data found in a ScheduleScript in a ViewState.\r\n * @public\r\n */\r\n// No access to scheduleScript to even mock in test\r\n// istanbul ignore next\r\nexport class ScheduleAnimationTimelineDataProvider extends BaseTimelineDataProvider {\r\n private _viewState: ViewState;\r\n\r\n constructor(viewState: ViewState, viewport?: ScreenViewport) {\r\n super(viewport);\r\n this._viewState = viewState;\r\n\r\n if (viewState && viewState.scheduleScript) {\r\n this.supportsTimelineAnimation = true;\r\n }\r\n }\r\n\r\n public override async loadTimelineData(): Promise<boolean> {\r\n const script = this._viewState.scheduleScript;\r\n if (this.supportsTimelineAnimation && script) {\r\n // for now just initial settings\r\n this.updateSettings({\r\n duration: 20 * 1000, // this is playback duration\r\n loop: true,\r\n });\r\n\r\n const timeRange = script.duration;\r\n this.start = new Date(timeRange.low * 1000);\r\n this.end = new Date(timeRange.high * 1000);\r\n\r\n if (this._viewport) {\r\n if (this._viewport.timePoint)\r\n this.animationFraction = (this._viewport.timePoint - timeRange.low) / timeRange.length();\r\n else\r\n this.animationFraction = 0;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public override onAnimationFractionChanged = (animationFraction: number) => {\r\n this.animationFraction = animationFraction;\r\n if (this._viewport) {\r\n const script = this._viewport.displayStyle.scheduleScript;\r\n if (script)\r\n this._viewport.timePoint = script.duration.fractionToPoint(animationFraction);\r\n }\r\n };\r\n\r\n public override onPlaybackSettingChanged = (settings: PlaybackSettings) => {\r\n this.updateSettings(settings);\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SolarTimelineDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/timeline/SolarTimelineDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Timeline\n */\n\nimport { Cartographic, ColorByName, ColorDef, SolarShadowSettings } from \"@itwin/core-common\";\nimport { DisplayStyle3dState, ScreenViewport, ViewState } from \"@itwin/core-frontend\";\nimport { BaseSolarDataProvider } from \"@itwin/imodel-components-react\";\n\n// the interface and class are in alpha state - it may change after usability testing - test coverage not complete\n/* istanbul ignore file */\n\n/** Default Solar Data Provider interface for getting and setting solar position from iModels view definitions.\n * @alpha\n */\nexport class SolarTimelineDataProvider extends BaseSolarDataProvider {\n protected _viewState: ViewState;\n\n protected get _displayStyle3d(): DisplayStyle3dState | undefined {\n return undefined !== this._viewport && this._viewport.view.is3d() ? this._viewport.view.displayStyle : undefined;\n }\n\n /** constructor that takes an optional viewport and optional position on globe that is used if the imodel is not \"GeoLocated\" */\n constructor(viewState: ViewState, viewport?: ScreenViewport, longitude?: number, latitude?: number) {\n super(viewport, longitude, latitude);\n this._viewState = viewState;\n\n if (viewState.is3d()) {\n this.supportsTimelineAnimation = true;\n this._cartographicCenter = this.getCartographicCenter(viewState.iModel);\n } else {\n this._cartographicCenter = Cartographic.fromDegrees({ longitude: this.longitude, latitude: this.latitude, height: 0.0 });\n }\n\n this._projectTimeZoneOffset = this.getZone(this._cartographicCenter);\n this.initializeData(this._projectTimeZoneOffset);\n this.onTimeChanged(this.timeOfDay);\n }\n\n public override get shouldShowTimeline() {\n const style = this._displayStyle3d;\n return undefined !== style && style.viewFlags.shadows;\n }\n\n public override onTimeChanged = (time: Date) => {\n if (this._viewport && this._viewport.view.is3d()) {\n this._viewport.view.displayStyle.setSunTime(time.getTime());\n }\n };\n\n public override get shadowColor(): ColorDef {\n const style = this._displayStyle3d;\n return style ? style.settings.solarShadows.color.toColorDef() : ColorDef.create(ColorByName.gray);\n }\n\n public override set shadowColor(color: ColorDef) {\n const displayStyle = this._displayStyle3d;\n if (!displayStyle)\n return;\n\n const prevColor = displayStyle.settings.solarShadows.color;\n const newColor = color.colors;\n if (prevColor.r === newColor.r && prevColor.g === newColor.g && prevColor.b === newColor.b)\n return;\n\n const newSettings = displayStyle.settings.solarShadows.toJSON();\n if (!newSettings)\n return;\n\n newSettings.color = color.tbgr;\n displayStyle.settings.solarShadows = SolarShadowSettings.fromJSON(newSettings);\n }\n}\n"]}
1
+ {"version":3,"file":"SolarTimelineDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/timeline/SolarTimelineDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Timeline\r\n */\r\n\r\nimport { Cartographic, ColorByName, ColorDef, SolarShadowSettings } from \"@itwin/core-common\";\r\nimport { DisplayStyle3dState, ScreenViewport, ViewState } from \"@itwin/core-frontend\";\r\nimport { BaseSolarDataProvider } from \"@itwin/imodel-components-react\";\r\n\r\n// the interface and class are in alpha state - it may change after usability testing - test coverage not complete\r\n/* istanbul ignore file */\r\n\r\n/** Default Solar Data Provider interface for getting and setting solar position from iModels view definitions.\r\n * @alpha\r\n */\r\nexport class SolarTimelineDataProvider extends BaseSolarDataProvider {\r\n protected _viewState: ViewState;\r\n\r\n protected get _displayStyle3d(): DisplayStyle3dState | undefined {\r\n return undefined !== this._viewport && this._viewport.view.is3d() ? this._viewport.view.displayStyle : undefined;\r\n }\r\n\r\n /** constructor that takes an optional viewport and optional position on globe that is used if the imodel is not \"GeoLocated\" */\r\n constructor(viewState: ViewState, viewport?: ScreenViewport, longitude?: number, latitude?: number) {\r\n super(viewport, longitude, latitude);\r\n this._viewState = viewState;\r\n\r\n if (viewState.is3d()) {\r\n this.supportsTimelineAnimation = true;\r\n this._cartographicCenter = this.getCartographicCenter(viewState.iModel);\r\n } else {\r\n this._cartographicCenter = Cartographic.fromDegrees({ longitude: this.longitude, latitude: this.latitude, height: 0.0 });\r\n }\r\n\r\n this._projectTimeZoneOffset = this.getZone(this._cartographicCenter);\r\n this.initializeData(this._projectTimeZoneOffset);\r\n this.onTimeChanged(this.timeOfDay);\r\n }\r\n\r\n public override get shouldShowTimeline() {\r\n const style = this._displayStyle3d;\r\n return undefined !== style && style.viewFlags.shadows;\r\n }\r\n\r\n public override onTimeChanged = (time: Date) => {\r\n if (this._viewport && this._viewport.view.is3d()) {\r\n this._viewport.view.displayStyle.setSunTime(time.getTime());\r\n }\r\n };\r\n\r\n public override get shadowColor(): ColorDef {\r\n const style = this._displayStyle3d;\r\n return style ? style.settings.solarShadows.color.toColorDef() : ColorDef.create(ColorByName.gray);\r\n }\r\n\r\n public override set shadowColor(color: ColorDef) {\r\n const displayStyle = this._displayStyle3d;\r\n if (!displayStyle)\r\n return;\r\n\r\n const prevColor = displayStyle.settings.solarShadows.color;\r\n const newColor = color.colors;\r\n if (prevColor.r === newColor.r && prevColor.g === newColor.g && prevColor.b === newColor.b)\r\n return;\r\n\r\n const newSettings = displayStyle.settings.solarShadows.toJSON();\r\n if (!newSettings)\r\n return;\r\n\r\n newSettings.color = color.tbgr;\r\n displayStyle.settings.solarShadows = SolarShadowSettings.fromJSON(newSettings);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ActionButtonItem.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAA0H;AAC1H,kDAAmD;AACnD,kEAAiD;AACjD,mDAAgD;AAChD,8EAA0E;AAU1E;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAwB;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,cAAc;YACtB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,OAAO,CAAC,oBAAC,yBAAI,IACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,UAAU,EAAE,wCAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7D,KAAK,EAAE,uCAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAClD,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,gDAAsB,EACjC,IAAI,EAAE,6BAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAC1C,KAAK,EAAE,2BAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,GAC9D,CAAC,CAAC;AACN,CAAC;AAjBD,4CAiBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport { ActionButton, ConditionalBooleanValue, ConditionalStringValue, OnItemExecutedFunc } from \"@itwin/appui-abstract\";\nimport { BadgeUtilities } from \"@itwin/core-react\";\nimport { Item } from \"@itwin/appui-layout-react\";\nimport { ToolbarHelper } from \"./ToolbarHelper\";\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\n\n/** Action button props\n * @internal\n */\ninterface ActionButtonProps {\n item: ActionButton;\n onItemExecuted?: OnItemExecutedFunc;\n}\n\n/** ActionItem toolbar Function component\n * @internal\n */\nexport function ActionButtonItem(props: ActionButtonProps) {\n const { item } = props;\n const execute = () => {\n item.execute();\n if (props.onItemExecuted)\n props.onItemExecuted(item);\n };\n return (<Item\n isActive={item.isActive}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n title={ConditionalStringValue.getValue(item.label)}\n key={item.id}\n onClick={execute}\n onKeyDown={onEscapeSetFocusToHome}\n icon={ToolbarHelper.getIconReactNode(item)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badgeType)}\n />);\n}\n"]}
1
+ {"version":3,"file":"ActionButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ActionButtonItem.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAA0H;AAC1H,kDAAmD;AACnD,kEAAiD;AACjD,mDAAgD;AAChD,8EAA0E;AAU1E;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAwB;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,cAAc;YACtB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,OAAO,CAAC,oBAAC,yBAAI,IACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,UAAU,EAAE,wCAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7D,KAAK,EAAE,uCAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAClD,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,gDAAsB,EACjC,IAAI,EAAE,6BAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAC1C,KAAK,EAAE,2BAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,GAC9D,CAAC,CAAC;AACN,CAAC;AAjBD,4CAiBC","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 * as React from \"react\";\r\nimport { ActionButton, ConditionalBooleanValue, ConditionalStringValue, OnItemExecutedFunc } from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities } from \"@itwin/core-react\";\r\nimport { Item } from \"@itwin/appui-layout-react\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Action button props\r\n * @internal\r\n */\r\ninterface ActionButtonProps {\r\n item: ActionButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\n/** ActionItem toolbar Function component\r\n * @internal\r\n */\r\nexport function ActionButtonItem(props: ActionButtonProps) {\r\n const { item } = props;\r\n const execute = () => {\r\n item.execute();\r\n if (props.onItemExecuted)\r\n props.onItemExecuted(item);\r\n };\r\n return (<Item\r\n isActive={item.isActive}\r\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\r\n title={ConditionalStringValue.getValue(item.label)}\r\n key={item.id}\r\n onClick={execute}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n icon={ToolbarHelper.getIconReactNode(item)}\r\n badge={BadgeUtilities.getComponentForBadgeType(item.badgeType)}\r\n />);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionItemButton.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ActionItemButton.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Item\n */\n\nimport * as React from \"react\";\nimport { BadgeUtilities, CommonProps, Icon, SizeProps } from \"@itwin/core-react\";\nimport { Item } from \"@itwin/appui-layout-react\";\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\nimport { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventArgs, SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { PropsHelper } from \"../utils/PropsHelper\";\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\n\n/** Properties that must be specified for an [[ActionItemButton]] component\n * @public\n */\nexport interface ActionItemButtonProps extends CommonProps {\n /** Action Button item definition containing the action information */\n actionItem: ActionButtonItemDef;\n /** Indicates whether the button is enabled or disabled */\n isEnabled?: boolean;\n /** Called when the button is initialized and the size is known */\n onSizeKnown?: (size: SizeProps) => void;\n}\n\n/** Helper method to set state from props */\nconst getItemStateFromProps = (props: ActionItemButtonProps): BaseItemState => {\n\n // Parent Component can only modify the isEnable state if the actionItem.isEnabled value is set to true.\n return {\n isEnabled: undefined !== props.isEnabled ? props.isEnabled && props.actionItem.isEnabled : props.actionItem.isEnabled, // eslint-disable-line deprecation/deprecation\n isVisible: props.actionItem.isVisible, // eslint-disable-line deprecation/deprecation\n isActive: undefined !== props.actionItem.isActive ? props.actionItem.isActive : /* istanbul ignore next */ false,\n };\n};\n\n/** A Toolbar button React Component that executes an action defined by a CommandItemDef or a ToolItemDef.\n * @public\n */\nexport class ActionItemButton extends React.Component<ActionItemButtonProps, BaseItemState> {\n private _componentUnmounting = false;\n\n /** @internal */\n public override readonly state: Readonly<BaseItemState>;\n\n constructor(props: ActionItemButtonProps) {\n super(props);\n\n this.state = getItemStateFromProps(props);\n }\n\n private _handleSyncUiEvent = (args: SyncUiEventArgs): void => {\n // istanbul ignore if\n if (this._componentUnmounting)\n return;\n\n let refreshState = false;\n let newState: BaseItemState = { ...this.state };\n\n // since this is a tool button automatically monitor the activation of tools so the active state of the button is updated.\n if (args.eventIds.has(SyncUiEventId.ToolActivated)) {\n newState.isActive = this.props.actionItem.id === FrontstageManager.activeToolId;\n refreshState = true;\n }\n\n if (!refreshState && this.props.actionItem.stateSyncIds && this.props.actionItem.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\n refreshState = this.props.actionItem.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\n\n if (refreshState) {\n if (this.props.actionItem.stateFunc) // eslint-disable-line deprecation/deprecation\n newState = this.props.actionItem.stateFunc(newState); // eslint-disable-line deprecation/deprecation\n\n if ((this.state.isActive !== newState.isActive) || (this.state.isEnabled !== newState.isEnabled) || (this.state.isVisible !== newState.isVisible)) {\n // update actionItem as it hold the 'truth' for all state\n /* istanbul ignore else */\n if (undefined !== newState.isVisible) // eslint-disable-line deprecation/deprecation\n this.props.actionItem.isVisible = newState.isVisible; // eslint-disable-line deprecation/deprecation\n\n /* istanbul ignore else */\n if (undefined !== newState.isActive)\n this.props.actionItem.isActive = newState.isActive;\n\n this.setState({\n isActive: newState.isActive,\n isEnabled: newState.isEnabled,\n isVisible: newState.isVisible,\n });\n }\n }\n };\n\n /** @internal */\n public static getDerivedStateFromProps(props: ActionItemButtonProps, state: BaseItemState) {\n const updatedState = getItemStateFromProps(props);\n // istanbul ignore else\n if (!PropsHelper.isShallowEqual(updatedState, state))\n return updatedState;\n\n return null;\n }\n\n /** @internal */\n public override componentDidMount() {\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\n }\n\n /** @internal */\n public override componentWillUnmount() {\n this._componentUnmounting = true;\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\n }\n\n private _execute = () => {\n // istanbul ignore else\n if (this.props.actionItem.execute) {\n this.props.actionItem.execute();\n }\n };\n\n /** @internal */\n public override render(): React.ReactNode {\n if (!this.state.isVisible)\n return null;\n\n const { actionItem, ...props } = this.props;\n const icon = <Icon iconSpec={actionItem.iconSpec} />;\n const badge = BadgeUtilities.getComponentForBadgeType(actionItem.badgeType);\n\n return (\n <Item\n {...props}\n isActive={this.state.isActive}\n isDisabled={!this.state.isEnabled}\n title={actionItem.label}\n key={actionItem.getKey()}\n onClick={this._execute}\n onKeyDown={onEscapeSetFocusToHome}\n icon={icon}\n onSizeKnown={this.props.onSizeKnown}\n badge={badge}\n />\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ActionItemButton.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ActionItemButton.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 { BadgeUtilities, CommonProps, Icon, SizeProps } from \"@itwin/core-react\";\r\nimport { Item } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Properties that must be specified for an [[ActionItemButton]] component\r\n * @public\r\n */\r\nexport interface ActionItemButtonProps extends CommonProps {\r\n /** Action Button item definition containing the action information */\r\n actionItem: ActionButtonItemDef;\r\n /** Indicates whether the button is enabled or disabled */\r\n isEnabled?: boolean;\r\n /** Called when the button is initialized and the size is known */\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\n/** Helper method to set state from props */\r\nconst getItemStateFromProps = (props: ActionItemButtonProps): BaseItemState => {\r\n\r\n // Parent Component can only modify the isEnable state if the actionItem.isEnabled value is set to true.\r\n return {\r\n isEnabled: undefined !== props.isEnabled ? props.isEnabled && props.actionItem.isEnabled : props.actionItem.isEnabled, // eslint-disable-line deprecation/deprecation\r\n isVisible: props.actionItem.isVisible, // eslint-disable-line deprecation/deprecation\r\n isActive: undefined !== props.actionItem.isActive ? props.actionItem.isActive : /* istanbul ignore next */ false,\r\n };\r\n};\r\n\r\n/** A Toolbar button React Component that executes an action defined by a CommandItemDef or a ToolItemDef.\r\n * @public\r\n */\r\nexport class ActionItemButton extends React.Component<ActionItemButtonProps, BaseItemState> {\r\n private _componentUnmounting = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BaseItemState>;\r\n\r\n constructor(props: ActionItemButtonProps) {\r\n super(props);\r\n\r\n this.state = getItemStateFromProps(props);\r\n }\r\n\r\n private _handleSyncUiEvent = (args: SyncUiEventArgs): void => {\r\n // istanbul ignore if\r\n if (this._componentUnmounting)\r\n 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.actionItem.id === FrontstageManager.activeToolId;\r\n refreshState = true;\r\n }\r\n\r\n if (!refreshState && this.props.actionItem.stateSyncIds && this.props.actionItem.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.actionItem.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.actionItem.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.actionItem.stateFunc(newState); // eslint-disable-line deprecation/deprecation\r\n\r\n if ((this.state.isActive !== newState.isActive) || (this.state.isEnabled !== newState.isEnabled) || (this.state.isVisible !== newState.isVisible)) {\r\n // update actionItem as it hold the 'truth' for all state\r\n /* istanbul ignore else */\r\n if (undefined !== newState.isVisible) // eslint-disable-line deprecation/deprecation\r\n this.props.actionItem.isVisible = newState.isVisible; // eslint-disable-line deprecation/deprecation\r\n\r\n /* istanbul ignore else */\r\n if (undefined !== newState.isActive)\r\n this.props.actionItem.isActive = newState.isActive;\r\n\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 /** @internal */\r\n public static getDerivedStateFromProps(props: ActionItemButtonProps, state: BaseItemState) {\r\n const updatedState = getItemStateFromProps(props);\r\n // istanbul ignore else\r\n if (!PropsHelper.isShallowEqual(updatedState, state))\r\n return updatedState;\r\n\r\n return null;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n /** @internal */\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 = () => {\r\n // istanbul ignore else\r\n if (this.props.actionItem.execute) {\r\n this.props.actionItem.execute();\r\n }\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const { actionItem, ...props } = this.props;\r\n const icon = <Icon iconSpec={actionItem.iconSpec} />;\r\n const badge = BadgeUtilities.getComponentForBadgeType(actionItem.badgeType);\r\n\r\n return (\r\n <Item\r\n {...props}\r\n isActive={this.state.isActive}\r\n isDisabled={!this.state.isEnabled}\r\n title={actionItem.label}\r\n key={actionItem.getKey()}\r\n onClick={this._execute}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n icon={icon}\r\n onSizeKnown={this.props.onSizeKnown}\r\n badge={badge}\r\n />\r\n );\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DragInteraction.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/DragInteraction.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B;;GAEG;AACU,QAAA,6BAA6B,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,2DAA2D","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Item\n */\n\nimport * as React from \"react\";\n\n/** Context used to enable toolbar drag interaction.\n * @beta\n */\nexport const ToolbarDragInteractionContext = React.createContext(false); // eslint-disable-line @typescript-eslint/naming-convention\n"]}
1
+ {"version":3,"file":"DragInteraction.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/DragInteraction.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B;;GAEG;AACU,QAAA,6BAA6B,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,2DAA2D","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\n\r\n/** Context used to enable toolbar drag interaction.\r\n * @beta\r\n */\r\nexport const ToolbarDragInteractionContext = React.createContext(false); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,2CAAoC;AACpC,+BAA+B;AAC/B,sDAA6C;AAC7C,0DAE+B;AAC/B,kDAAoF;AACpF,kEAGmC;AACnC,yEAAyE;AACzE,uEAA4F;AAC5F,gDAA6C;AAC7C,sDAAmD;AACnD,uDAAkE;AAClE,mDAAgD;AAEhD,8EAA0E;AAE1E,gEAAgE;AAChE,MAAM,SAAS,GAAG,IAAA,+BAAkB,EAAC,0BAAkB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC3E,gEAAgE;AAChE,MAAM,eAAe,GAAG,IAAA,+BAAkB,EAAC,gCAAwB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACvF,gEAAgE;AAChE,MAAM,uBAAuB,GAAG,IAAA,wCAAmB,EAAC,yBAAI,CAAC,CAAC;AAmC1D;;GAEG;AACH,MAAa,gBAAiB,SAAQ,KAAK,CAAC,SAAgE;IAO1G,YAAY,KAAqC;QAC/C,KAAK,CAAC,KAAK,CAAC,CAAC;QALP,eAAU,GAAG,CAAC,CAAC;QACf,wBAAmB,GAAG,IAAI,CAAC;QAC3B,SAAI,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QA2KzC,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,qCAAoB,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACxF,CAAC,CAAC;QAEM,uCAAkC,GAAG,CAAC,EAAc,EAAE,EAAE;YAC9D,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;QAEF,uBAAuB;QACf,8BAAyB,GAAG,CAAC,EAAE,MAAM,EAA0B,EAAE,EAAE;YACzE,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,uBAAuB;QACf,gCAA2B,GAAG,GAAG,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAC3B,OAAO;YACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QA+JM,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,0BAA0B,CAAC,SAAS,CAAC,MAAM,CAAC;gBAClJ,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;QA/XA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,iEAAiE;QACjE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK;YACR,YAAY;SACb,CAAC;IACJ,CAAC;IAEe,iBAAiB;QAC/B,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,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;IAEO,iBAAiB,CAAC,KAAqC;QAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,wCAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,wCAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE1E,OAAO;YACL,YAAY,EAAE,qCAAiB,CAAC,YAAY;YAC5C,SAAS;YACT,SAAS,EAAE,CAAC,UAAU;YACtB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,CAAC,QAAQ;YACpB,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,gBAAgB,CAAC,SAAsB,EAAE,MAAc,EAAE,KAAuB;QACtF,6BAA6B;QAC7B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC/C,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,qCAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzC,MAAM,aAAa,GAAkB;oBACnC,MAAM,EAAE,UAAU;oBAClB,IAAI;iBACL,CAAC;gBAEF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;aAChD;iBAAM;gBACL,MAAM,QAAQ,GAAkB,EAAE,IAAI,EAAE,CAAC;gBACzC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aAC9B;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YAChB,KAAK;YACL,KAAK,EAAE,uCAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;YAC5D,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEe,kBAAkB,CAAC,SAAyC,EAAE,UAAiC;QAC7G,IAAI,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;YACtD,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS;gBAC9C,qBAAM,CAAC,QAAQ,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,kDAAkD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YACjI,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;IAEe,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,uBAAuB;QACvB,IAAI,CAAC,UAAU;YACb,OAAO,IAAI,CAAC;QAEd,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtD,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,SAAS,CACV,CAAC;QACF,MAAM,KAAK,GAAG,2BAAc,CAAC,wBAAwB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAE,8CAA8C;QAE3H,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,OACT,KAAK,EACT,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAC5B,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,SAAS,EACpB,IAAI,EAAE,6BAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAChD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAC7D,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EACjC,OAAO,EAAE,IAAI,CAAC,2BAA2B,EACzC,SAAS,EAAE,gDAAsB,EACjC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,KAAK,EAAE,uCAAsB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GACxD,CACE,CACP,CAAC,CAAC;YACH,CACE,6BAAK,GAAG,EAAE,IAAI,CAAC,IAAI;gBACjB,oBAAC,yBAAI,IACH,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,6BAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAC/C,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EACjC,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,SAAS,EAAE,gDAAsB,EACjC,KAAK,EAAE,uCAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAClE,CACE,CACP,CACY,CAClB,CACsC,CAC1C,CACgC,CACpC,CAAC;IACJ,CAAC;IA4CO,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,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3E,uBAAuB;YACvB,IAAI,SAAS,EAAE;gBACb,uBAAuB;gBACvB,IAAI,qCAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBAClD,SAAS,CAAC,OAAO,EAAE,CAAC;oBACpB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc;wBAC3B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;iBACxC;aACF;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,aAAqB;QAC5C,IAAI,aAAa,IAAI,CAAC;YACpB,OAAO,aAAa,CAAC;QACvB,IAAI,aAAa,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,aAAa,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IACtC,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,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gCAAgC;YAE3F,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,IAC1B,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACzB,MAAM,IAAI,GAAG,6BAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,SAAS,GAAG,IAAI,CAAC;gBACvB,MAAM,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACrD,MAAM,KAAK,GAAG,2BAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEtE,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjB,OAAO,CACL,SAAS;wBACT,oBAAC,sCAAiB,IAChB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAC7B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,uCAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAClD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAO,CAAC,EACxD,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,SAAS,GAC9F,CACH,CAAC;iBACH;gBAED,OAAO,CACL,SAAS;oBACT,oBAAC,8BAAS,IACR,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAC7B,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,uCAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAClD,OAAO;wBACL,uBAAuB;wBACvB,GAAG,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAEnE,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;YACJ,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,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,EAC/H,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,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3E,IAAI,IAAI;gBACN,OAAO,IAAI,CAAC;SACf;QACD,uBAAuB;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;CAqBF;AA1YD,4CA0YC;AAED,gBAAgB;AAChB,MAAM,YAAY,GAAG,CAAC,SAAsB,EAA0C,EAAE;IACtF,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;QAClC,MAAM,QAAQ,GAAG,wCAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,wCAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErE,IAAI,qCAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACrC,uBAAuB;YACvB,IAAI,SAAS;gBACX,OAAO,SAAS,CAAC;YACnB,uBAAuB;YACvB,SAAS;SACV;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU;YAC1B,OAAO,IAAI,CAAC;KACf;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,cAAc,GAAG,CAAC,SAAsB,EAAU,EAAE;IACxD,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7B,CAAC,CAAC;AAUF;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAuB;IACrD,OAAO,CACL,oBAAC,gBAAgB,IACf,SAAS,EAAE,KAAK,CAAC,IAAI,EACrB,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAClB,cAAc,EAAE,KAAK,CAAC,cAAc,GACpC,CACH,CAAC;AACJ,CAAC;AARD,0CAQC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport {\n ActionButton, ConditionalBooleanValue, ConditionalStringValue, GroupButton, OnItemExecutedFunc, ToolbarItemUtilities,\n} from \"@itwin/appui-abstract\";\nimport { BadgeUtilities, CommonProps, withOnOutsideClick } from \"@itwin/core-react\";\nimport {\n ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\n Group as ToolGroupComponent, withDragInteraction,\n} from \"@itwin/appui-layout-react\";\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { PropsHelper } from \"../utils/PropsHelper\";\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\nimport { ToolbarHelper } from \"./ToolbarHelper\";\n\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst ItemWithDragInteraction = withDragInteraction(Item);\n\n// -----------------------------------------------------------------------------\n// ToolbarGroupItem component, props & state\n// -----------------------------------------------------------------------------\n\ninterface ToolGroupItem {\n trayId?: string;\n item: ActionButton | GroupButton;\n}\n\ninterface ToolGroupTray {\n title?: string;\n items: Map<string, ToolGroupItem>;\n groupItem: GroupButton;\n}\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\n\ninterface ToolbarGroupItemComponentProps extends CommonProps {\n groupItem: GroupButton;\n onItemExecuted?: OnItemExecutedFunc;\n}\n\ninterface ToolbarGroupItemState {\n activeItemId: string; // One of group items id.\n activeToolId: string; // FrontstageManager.activeToolId\n groupItem: GroupButton;\n trayId: string;\n backTrays: ReadonlyArray<string>;\n trays: ToolGroupTrayMap;\n isEnabled: boolean;\n isPressed: boolean;\n isVisible: boolean;\n}\n\n/** Group Item React component.\n * @internal\n */\nexport class ToolbarGroupItem extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {\n /** @internal */\n public override readonly state: Readonly<ToolbarGroupItemState>;\n private _trayIndex = 0;\n private _closeOnPanelOpened = true;\n private _ref = React.createRef<HTMLDivElement>();\n\n constructor(props: ToolbarGroupItemComponentProps) {\n super(props);\n\n const state = this.getGroupItemState(this.props);\n // TODO: The defaultActiveItemId should come from session storage\n const activeItemId = getFirstItemId(this.props.groupItem);\n this.state = {\n ...state,\n activeItemId,\n };\n }\n\n public override componentDidMount() {\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\n }\n\n public override componentWillUnmount() {\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\n }\n\n private getGroupItemState(props: ToolbarGroupItemComponentProps) {\n const groupItem = props.groupItem;\n // Separate into trays\n const trays = new Map<string, ToolGroupTray>();\n const trayId = this.resetTrayId();\n\n this.processGroupItem(groupItem, trayId, trays);\n const isHidden = ConditionalBooleanValue.getValue(groupItem.isHidden);\n const isDisabled = ConditionalBooleanValue.getValue(groupItem.isDisabled);\n\n return {\n activeToolId: FrontstageManager.activeToolId,\n groupItem,\n isEnabled: !isDisabled,\n isPressed: false,\n isVisible: !isHidden,\n trayId,\n backTrays: [],\n trays,\n };\n }\n\n private resetTrayId(): string {\n this._trayIndex = 1;\n return `tray-${this._trayIndex}`;\n }\n\n private generateTrayId(): string {\n return `tray-${this._trayIndex}`;\n }\n\n private processGroupItem(groupItem: GroupButton, trayId: string, trays: ToolGroupTrayMap): void {\n // Separate into column items\n const items = new Map<string, ToolGroupItem>();\n groupItem.items.forEach((item) => {\n if (ToolbarItemUtilities.isGroupButton(item)) {\n this._trayIndex++;\n const itemTrayId = this.generateTrayId();\n const toolGroupItem: ToolGroupItem = {\n trayId: itemTrayId,\n item,\n };\n\n items.set(item.id, toolGroupItem);\n this.processGroupItem(item, itemTrayId, trays);\n } else {\n const toolItem: ToolGroupItem = { item };\n items.set(item.id, toolItem);\n }\n });\n\n trays.set(trayId, {\n items,\n title: ConditionalStringValue.getValue(groupItem.panelLabel),\n groupItem,\n });\n }\n\n public override componentDidUpdate(prevProps: ToolbarGroupItemComponentProps, _prevState: ToolbarGroupItemState) {\n if (!PropsHelper.isShallowEqual(this.props, prevProps)) {\n // istanbul ignore else\n if (this.props.groupItem !== prevProps.groupItem)\n Logger.logTrace(UiFramework.loggerCategory(this), `Different ToolbarGroupItem for same groupId of ${this.state.groupItem.id}`);\n this.setState((_, props) => this.getGroupItemState(props));\n }\n }\n\n private get _tray() {\n const tray = this.state.trays.get(this.state.trayId);\n // istanbul ignore next\n if (!tray)\n throw new RangeError();\n\n return tray;\n }\n\n private getTray(trayId: string) {\n const tray = this.state.trays.get(trayId);\n // istanbul ignore next\n if (!tray)\n throw new RangeError();\n\n return tray;\n }\n\n public override render(): React.ReactNode {\n if (!this.state.isVisible)\n return null;\n\n const activeItem = this.getItemById(this.state.activeItemId);\n // istanbul ignore next\n if (!activeItem)\n return null;\n\n const { groupItem, className, ...props } = this.props;\n const classNames = classnames(\n className,\n );\n const badge = BadgeUtilities.getComponentForBadgeType(groupItem.badgeType); // eslint-disable-line deprecation/deprecation\n\n return (\n <ToolbarDirectionContext.Consumer>\n {(direction) => (\n <ToolbarDragInteractionContext.Consumer>\n {(dragInteraction) => (\n <ExpandableItem\n {...props}\n className={classNames}\n key={this.state.groupItem.id}\n panel={this.getGroupTray(dragInteraction)}\n >\n {dragInteraction ?\n (\n <div ref={this._ref}>\n <ItemWithDragInteraction\n badge={badge}\n direction={direction}\n icon={ToolbarHelper.getIconReactNode(activeItem)}\n isActive={this.state.activeToolId === this.state.activeItemId}\n isDisabled={!this.state.isEnabled}\n onClick={this._handleDragInteractionClick}\n onKeyDown={onEscapeSetFocusToHome}\n onOpenPanel={this._handleOpenPanel}\n title={ConditionalStringValue.getValue(activeItem.label)}\n />\n </div>\n ) :\n (\n <div ref={this._ref}>\n <Item\n badge={badge}\n icon={ToolbarHelper.getIconReactNode(groupItem)}\n isDisabled={!this.state.isEnabled}\n onClick={this._handleClick}\n onKeyDown={onEscapeSetFocusToHome}\n title={ConditionalStringValue.getValue(this.state.groupItem.label)}\n />\n </div>\n )}\n </ExpandableItem>\n )}\n </ToolbarDragInteractionContext.Consumer>\n )}\n </ToolbarDirectionContext.Consumer>\n );\n }\n\n private _handleOpenPanel = () => {\n this.setState({\n isPressed: true,\n });\n this._closeOnPanelOpened = false;\n FrontstageManager.onToolPanelOpenedEvent.emit();\n this._closeOnPanelOpened = true;\n };\n\n private _handleClick = () => {\n this.setState((prevState) => ({\n isPressed: !prevState.isPressed,\n }));\n };\n\n private _handleDragInteractionClick = () => {\n const activeItem = this.getItemById(this.state.activeItemId);\n activeItem && ToolbarItemUtilities.isActionButton(activeItem) && activeItem.execute();\n };\n\n private _handleDragInteractionOutsideClick = (_e: MouseEvent) => {\n this.closeGroupButton();\n };\n\n private _handleOutsideClick = (e: MouseEvent) => {\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\n };\n\n // istanbul ignore next\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\n this.setState({\n activeToolId: toolId,\n });\n };\n\n // istanbul ignore next\n private _handleToolPanelOpenedEvent = () => {\n if (!this._closeOnPanelOpened)\n return;\n this.closeGroupButton();\n };\n\n private closeGroupButton() {\n const trayId = this.resetTrayId();\n\n this.setState({\n isPressed: false,\n trayId,\n backTrays: [],\n });\n }\n\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\n const trayId = this.resetTrayId();\n this.setState(\n {\n activeItemId: itemKey,\n isPressed: false,\n trayId,\n backTrays: [],\n },\n () => {\n const tray = this.getTray(trayKey);\n const childItem = tray.groupItem.items.find((item) => itemKey === item.id);\n // istanbul ignore else\n if (childItem) {\n // istanbul ignore else\n if (ToolbarItemUtilities.isActionButton(childItem)) {\n childItem.execute();\n if (this.props.onItemExecuted)\n this.props.onItemExecuted(childItem);\n }\n }\n },\n );\n }\n\n private getItemsInColumn(numTotalItems: number): number {\n if (numTotalItems <= 6)\n return numTotalItems;\n if (numTotalItems <= 24)\n return Math.ceil(numTotalItems / 2);\n if (numTotalItems <= 36)\n return Math.ceil(numTotalItems / 3);\n return Math.ceil(numTotalItems / 4);\n }\n\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\n if (!this.state.isPressed)\n return undefined;\n\n return (\n <ToolGroupPanelContext.Consumer>\n {(activateOnPointerUp) => {\n const tray = this._tray;\n const items = [...tray.items.keys()];\n const itemsInColumn = this.getItemsInColumn(items.length); // tray.groupItem.itemsInColumn;\n\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\n\n // Divide items equally between columns.\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\n\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\n const columnIndex = Math.floor(index / numberItemsInColumn);\n if (columnIndex >= acc.length) {\n return [\n ...acc,\n [item],\n ];\n }\n return [\n ...acc.slice(0, columnIndex),\n [\n ...acc[columnIndex],\n item,\n ],\n ...acc.slice(columnIndex + 1),\n ];\n }, []);\n const columns = (columnToItems.map((columnItems, columnIndex) =>\n <GroupColumn key={columnIndex}>\n {columnItems.map((itemKey) => {\n const tgItem = tray.items.get(itemKey)!;\n const item = tgItem.item;\n const icon = ToolbarHelper.getIconReactNode(item);\n const isVisible = true;\n const isActive = itemKey === this.state.activeToolId;\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\n\n if (tgItem.trayId) {\n return (\n isVisible &&\n <GroupToolExpander\n isDisabled={!!item.isDisabled}\n key={itemKey}\n label={ConditionalStringValue.getValue(item.label)}\n icon={icon}\n badge={badge}\n onClick={() => this._handleExpanderClick(tgItem.trayId!)}\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(tgItem.trayId!) : undefined}\n />\n );\n }\n\n return (\n isVisible &&\n <GroupTool\n isDisabled={!!item.isDisabled}\n isActive={isActive}\n key={itemKey}\n label={ConditionalStringValue.getValue(item.label)}\n onClick={\n // istanbul ignore next\n () => this.handleToolGroupItemClicked(this.state.trayId, itemKey)\n }\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\n icon={icon}\n badge={badge}\n />\n );\n })}\n </GroupColumn>,\n ));\n\n if (this.state.backTrays.length > 0)\n return (\n <NestedToolGroup\n columns={columns}\n onBack={this._handleBack}\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : /* istanbul ignore next */ this._handleOutsideClick}\n title={tray.title}\n />\n );\n\n return (\n <ToolGroup\n columns={columns}\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\n title={tray.title}\n />\n );\n }}\n </ToolGroupPanelContext.Consumer>\n );\n }\n\n public getItemById(id: string): ActionButton | GroupButton | undefined {\n for (const [, tray] of this.state.trays) {\n const item = tray.groupItem.items.find((childItem) => id === childItem.id);\n if (item)\n return item;\n }\n // istanbul ignore next\n return undefined;\n }\n\n private _handleBack = () => {\n this.setState((prevState) => {\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : /* istanbul ignore next */ prevState.trayId;\n const backTrays = prevState.backTrays.slice(0, -1);\n return {\n trayId,\n backTrays,\n };\n });\n };\n\n private _handleExpanderClick = (trayId: string) => {\n this.setState((prevState) => {\n return {\n trayId,\n backTrays: [...prevState.backTrays, prevState.trayId],\n };\n });\n };\n}\n\n/** @internal */\nconst getFirstItem = (groupItem: GroupButton): ActionButton | GroupButton | undefined => {\n for (const item of groupItem.items) {\n const isHidden = ConditionalBooleanValue.getValue(item.isHidden);\n const isDisabled = ConditionalBooleanValue.getValue(item.isDisabled);\n\n if (ToolbarItemUtilities.isGroupButton(item)) {\n const firstItem = getFirstItem(item);\n // istanbul ignore else\n if (firstItem)\n return firstItem;\n // istanbul ignore next\n continue;\n }\n if (!isHidden && !isDisabled)\n return item;\n }\n return undefined;\n};\n\n/** @internal */\nconst getFirstItemId = (groupItem: GroupButton): string => {\n const item = getFirstItem(groupItem);\n return item ? item.id : \"\";\n};\n\n/** Action button props\n * @internal\n */\ninterface GroupButtonProps {\n item: GroupButton;\n onItemExecuted?: OnItemExecutedFunc;\n}\n\n/** Group Button React component\n * @internal\n */\nexport function GroupButtonItem(props: GroupButtonProps) {\n return (\n <ToolbarGroupItem\n groupItem={props.item}\n key={props.item.id}\n onItemExecuted={props.onItemExecuted}\n />\n );\n}\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\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"]}