@itwin/appui-react 4.9.0 → 4.10.0-dev.1

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 (447) hide show
  1. package/lib/cjs/appui-react/UiFramework.js +4 -7
  2. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  3. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
  4. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  5. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
  8. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +2 -0
  9. package/lib/cjs/appui-react/accudraw/SquareButton.d.ts +3 -1
  10. package/lib/cjs/appui-react/accudraw/SquareButton.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/accudraw/SquareButton.js +1 -4
  12. package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
  13. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
  14. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  15. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +2 -2
  16. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  17. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
  18. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +19 -15
  20. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  21. package/lib/cjs/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
  22. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  23. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  24. package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
  25. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  26. package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
  27. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  28. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
  29. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  30. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  31. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  32. package/lib/cjs/appui-react/content/IModelViewport.js +4 -7
  33. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  34. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
  35. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  36. package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
  37. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  38. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
  39. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  40. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  41. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  42. package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
  43. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  44. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
  45. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  46. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  47. package/lib/cjs/appui-react/feedback/ElementTooltip.js +2 -3
  48. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  49. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +10 -14
  50. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  51. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
  52. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +2 -3
  54. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +1 -1
  56. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
  57. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  58. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  59. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  60. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  61. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  62. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  63. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  64. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
  65. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  66. package/lib/cjs/appui-react/layout/base/DragManager.js +1 -2
  67. package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
  68. package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
  69. package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
  70. package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
  71. package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
  72. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
  73. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  74. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +12 -14
  75. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  76. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
  77. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  78. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +2 -3
  79. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  80. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  81. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  82. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
  83. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  84. package/lib/cjs/appui-react/layout/tool-settings/Docked.scss +1 -1
  85. package/lib/cjs/appui-react/layout/widget/Button.d.ts +2 -9
  86. package/lib/cjs/appui-react/layout/widget/Button.d.ts.map +1 -1
  87. package/lib/cjs/appui-react/layout/widget/Button.js.map +1 -1
  88. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +2 -2
  89. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  90. package/lib/cjs/appui-react/layout/widget/FloatingTab.js +5 -6
  91. package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
  92. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +2 -4
  93. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  94. package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
  95. package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
  96. package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js +1 -1
  97. package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +1 -1
  98. package/lib/cjs/appui-react/layout/widget/Tab.js +4 -4
  99. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  100. package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
  101. package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
  102. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  103. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  104. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +5 -8
  105. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  106. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
  107. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  108. package/lib/cjs/appui-react/messages/InputField.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/messages/InputField.js +2 -3
  110. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  111. package/lib/cjs/appui-react/messages/MessageLabel.js +2 -2
  112. package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
  113. package/lib/cjs/appui-react/messages/MessageManager.d.ts +15 -5
  114. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/messages/MessageManager.js +23 -41
  116. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  117. package/lib/cjs/appui-react/messages/MessageRenderer.d.ts +8 -0
  118. package/lib/cjs/appui-react/messages/MessageRenderer.d.ts.map +1 -0
  119. package/lib/cjs/appui-react/messages/MessageRenderer.js +136 -0
  120. package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -0
  121. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  122. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/messages/Pointer.js +5 -6
  124. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  125. package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
  126. package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
  127. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  128. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  129. package/lib/cjs/appui-react/popup/CardPopup.js +1 -2
  130. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  131. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -2
  133. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  134. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
  135. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  136. package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
  137. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  138. package/lib/cjs/appui-react/preview/PreviewFeatures.js +1 -1
  139. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  140. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  141. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
  142. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  143. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  144. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  145. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  146. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  147. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
  148. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +11 -16
  149. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  150. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  151. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  152. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  153. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  154. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +1 -1
  155. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/statusfields/MessageCenter.js +5 -4
  157. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  158. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +1 -3
  159. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  161. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  162. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
  163. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  164. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
  165. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  166. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
  167. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/theme/ThemeManager.js +3 -1
  169. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  170. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +6 -4
  171. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  172. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  173. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  174. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  175. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +18 -25
  176. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  177. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  178. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  179. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
  180. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  181. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  182. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  183. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  184. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  185. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  186. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  187. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  188. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  189. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  190. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  191. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
  192. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +19 -16
  194. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  195. package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
  196. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  197. package/lib/cjs/appui-react/widget-panels/Frontstage.js +10 -14
  198. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  199. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  200. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  201. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  202. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  203. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -23
  204. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  205. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +1 -1
  206. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  207. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  208. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  209. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  210. package/lib/cjs/appui-react/widgets/WidgetDef.js +4 -5
  211. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  212. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  213. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  214. package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
  215. package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
  216. package/lib/esm/appui-react/UiFramework.js +4 -7
  217. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  218. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
  219. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  220. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
  221. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  222. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
  223. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +2 -0
  224. package/lib/esm/appui-react/accudraw/SquareButton.d.ts +3 -1
  225. package/lib/esm/appui-react/accudraw/SquareButton.d.ts.map +1 -1
  226. package/lib/esm/appui-react/accudraw/SquareButton.js +1 -4
  227. package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
  228. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  229. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  230. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +2 -2
  231. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  232. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
  233. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  234. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +19 -15
  235. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  236. package/lib/esm/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
  237. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  238. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  239. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  240. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  241. package/lib/esm/appui-react/content/ContentLayout.js +9 -12
  242. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  243. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  244. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  245. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  246. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  247. package/lib/esm/appui-react/content/IModelViewport.js +4 -7
  248. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  249. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  250. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  251. package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
  252. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  253. package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
  254. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  255. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  256. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  257. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  258. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  259. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  260. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  261. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  262. package/lib/esm/appui-react/feedback/ElementTooltip.js +3 -4
  263. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  264. package/lib/esm/appui-react/frontstage/FrontstageDef.js +10 -14
  265. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  266. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
  267. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  268. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +2 -3
  269. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  270. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +1 -1
  271. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  272. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  273. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  274. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  275. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  276. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  277. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  278. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  279. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  280. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  281. package/lib/esm/appui-react/layout/base/DragManager.js +1 -2
  282. package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
  283. package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
  284. package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
  285. package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
  286. package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
  287. package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
  288. package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  289. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +12 -14
  290. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  291. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
  292. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  293. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +2 -3
  294. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  295. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  296. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  297. package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
  298. package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  299. package/lib/esm/appui-react/layout/tool-settings/Docked.scss +1 -1
  300. package/lib/esm/appui-react/layout/widget/Button.d.ts +2 -9
  301. package/lib/esm/appui-react/layout/widget/Button.d.ts.map +1 -1
  302. package/lib/esm/appui-react/layout/widget/Button.js.map +1 -1
  303. package/lib/esm/appui-react/layout/widget/ContentRenderer.js +2 -2
  304. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  305. package/lib/esm/appui-react/layout/widget/FloatingTab.js +5 -6
  306. package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
  307. package/lib/esm/appui-react/layout/widget/FloatingWidget.js +2 -4
  308. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  309. package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
  310. package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
  311. package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js +1 -1
  312. package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +1 -1
  313. package/lib/esm/appui-react/layout/widget/Tab.js +4 -4
  314. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  315. package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
  316. package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
  317. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  318. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  319. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +5 -8
  320. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  321. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
  322. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  323. package/lib/esm/appui-react/messages/InputField.d.ts.map +1 -1
  324. package/lib/esm/appui-react/messages/InputField.js +3 -4
  325. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  326. package/lib/esm/appui-react/messages/MessageLabel.js +2 -2
  327. package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
  328. package/lib/esm/appui-react/messages/MessageManager.d.ts +15 -5
  329. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  330. package/lib/esm/appui-react/messages/MessageManager.js +23 -41
  331. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  332. package/lib/esm/appui-react/messages/MessageRenderer.d.ts +8 -0
  333. package/lib/esm/appui-react/messages/MessageRenderer.d.ts.map +1 -0
  334. package/lib/esm/appui-react/messages/MessageRenderer.js +132 -0
  335. package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -0
  336. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  337. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  338. package/lib/esm/appui-react/messages/Pointer.js +6 -7
  339. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  340. package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
  341. package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
  342. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  343. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  344. package/lib/esm/appui-react/popup/CardPopup.js +2 -3
  345. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  346. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  347. package/lib/esm/appui-react/popup/HTMLElementPopup.js +2 -3
  348. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  349. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
  350. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  351. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  352. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  353. package/lib/esm/appui-react/preview/PreviewFeatures.js +1 -1
  354. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  355. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  356. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +5 -5
  357. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  358. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  359. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  360. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  361. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  362. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
  363. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +11 -16
  364. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  365. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  366. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  367. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  368. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  369. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +1 -1
  370. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  371. package/lib/esm/appui-react/statusfields/MessageCenter.js +6 -5
  372. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  373. package/lib/esm/appui-react/statusfields/SelectionScope.scss +1 -3
  374. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  375. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  376. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  377. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
  378. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  379. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
  380. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  381. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
  382. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  383. package/lib/esm/appui-react/theme/ThemeManager.js +3 -1
  384. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  385. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +6 -4
  386. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  387. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  388. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  389. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  390. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +15 -22
  391. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  392. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  393. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  394. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
  395. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  396. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  397. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  398. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  399. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  400. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  401. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  402. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  403. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  404. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  405. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  406. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
  407. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  408. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +19 -16
  409. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  410. package/lib/esm/appui-react/widget-panels/Content.js +8 -9
  411. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  412. package/lib/esm/appui-react/widget-panels/Frontstage.js +10 -14
  413. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  414. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  415. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  416. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  417. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  418. package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -23
  419. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  420. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +1 -1
  421. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  422. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  423. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  424. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  425. package/lib/esm/appui-react/widgets/WidgetDef.js +4 -5
  426. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  427. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  428. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  429. package/lib/esm/appui-react/widgets/useWidget.js +1 -1
  430. package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
  431. package/package.json +12 -14
  432. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +0 -10
  433. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +0 -1
  434. package/lib/cjs/appui-react/messages/ActivityMessage.js +0 -92
  435. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +0 -1
  436. package/lib/cjs/appui-react/messages/MessageSpan.d.ts +0 -15
  437. package/lib/cjs/appui-react/messages/MessageSpan.d.ts.map +0 -1
  438. package/lib/cjs/appui-react/messages/MessageSpan.js +0 -23
  439. package/lib/cjs/appui-react/messages/MessageSpan.js.map +0 -1
  440. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +0 -10
  441. package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +0 -1
  442. package/lib/esm/appui-react/messages/ActivityMessage.js +0 -88
  443. package/lib/esm/appui-react/messages/ActivityMessage.js.map +0 -1
  444. package/lib/esm/appui-react/messages/MessageSpan.d.ts +0 -15
  445. package/lib/esm/appui-react/messages/MessageSpan.d.ts.map +0 -1
  446. package/lib/esm/appui-react/messages/MessageSpan.js +0 -18
  447. package/lib/esm/appui-react/messages/MessageSpan.js.map +0 -1
@@ -13,7 +13,6 @@ const classnames_1 = require("classnames");
13
13
  const Pane_1 = require("./Pane");
14
14
  const Resizer_1 = require("./Resizer");
15
15
  function unFocus(ownerDoc) {
16
- var _a;
17
16
  // istanbul ignore next
18
17
  if (!ownerDoc)
19
18
  return;
@@ -25,8 +24,8 @@ function unFocus(ownerDoc) {
25
24
  else {
26
25
  // istanbul ignore next
27
26
  try {
28
- const winSelection = (_a = ownerDoc.defaultView) === null || _a === void 0 ? void 0 : _a.getSelection();
29
- winSelection === null || winSelection === void 0 ? void 0 : winSelection.removeAllRanges();
27
+ const winSelection = ownerDoc.defaultView?.getSelection();
28
+ winSelection?.removeAllRanges();
30
29
  }
31
30
  catch (_e) { }
32
31
  }
@@ -104,15 +103,14 @@ function SplitPane(props) {
104
103
  }, [split, style]);
105
104
  const pane1DivStyle = { ...paneStyle, ...pane1Style };
106
105
  const pane2DivStyle = { ...paneStyle, ...pane2Style };
107
- const resizerStyle = React.useMemo(() => { var _a; return (_a = props.resizerStyle) !== null && _a !== void 0 ? _a : {}; }, [props.resizerStyle]);
106
+ const resizerStyle = React.useMemo(() => props.resizerStyle ?? {}, [props.resizerStyle]);
108
107
  const resizerClasses = React.useMemo(() => (0, classnames_1.default)("Resizer", !allowResize && "disabled"), [allowResize]);
109
108
  const splitPaneClasses = React.useMemo(() => (0, classnames_1.default)("SplitPane", className, split, !allowResize && "disabled"), [className, split, allowResize]);
110
109
  const pane1Classes = React.useMemo(() => (0, classnames_1.default)("Pane1", paneClassName, pane1ClassName), [paneClassName, pane1ClassName]);
111
110
  const pane2Classes = React.useMemo(() => (0, classnames_1.default)("Pane2", paneClassName, pane2ClassName), [paneClassName, pane2ClassName]);
112
111
  const initializeDrag = React.useCallback((x, y) => {
113
- var _a;
114
112
  // istanbul ignore next
115
- unFocus((_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
113
+ unFocus(splitPane.current?.ownerDocument);
116
114
  const newPosition = split === "vertical" ? x : y;
117
115
  onDragStarted && onDragStarted();
118
116
  setActive(true);
@@ -125,9 +123,8 @@ function SplitPane(props) {
125
123
  }
126
124
  }, [allowResize, initializeDrag]);
127
125
  const processMove = React.useCallback((x, y) => {
128
- var _a, _b, _c, _d, _f, _g, _h;
129
126
  // istanbul ignore next
130
- unFocus((_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
127
+ unFocus(splitPane.current?.ownerDocument);
131
128
  const isPrimaryFirst = primary === "first";
132
129
  const ref = isPrimaryFirst ? pane1.current : pane2.current;
133
130
  const ref2 = isPrimaryFirst ? pane2.current : pane1.current;
@@ -155,9 +152,11 @@ function SplitPane(props) {
155
152
  }
156
153
  let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;
157
154
  // istanbul ignore next
158
- const pane1Order = parseInt((_d = (_c = (_b = node.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.getComputedStyle(node).order) !== null && _d !== void 0 ? _d : "0", 10);
155
+ const pane1Order = parseInt(node.ownerDocument?.defaultView?.getComputedStyle(node).order ??
156
+ "0", 10);
159
157
  // istanbul ignore next
160
- const pane2Order = parseInt((_h = (_g = (_f = node2.ownerDocument) === null || _f === void 0 ? void 0 : _f.defaultView) === null || _g === void 0 ? void 0 : _g.getComputedStyle(node2).order) !== null && _h !== void 0 ? _h : "0", 10);
158
+ const pane2Order = parseInt(node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ??
159
+ "0", 10);
161
160
  // istanbul ignore next
162
161
  if (pane1Order > pane2Order) {
163
162
  sizeDelta = -sizeDelta;
@@ -225,9 +224,8 @@ function SplitPane(props) {
225
224
  processResizeFinished();
226
225
  }, [processResizeFinished]);
227
226
  React.useEffect(() => {
228
- var _a;
229
227
  // istanbul ignore next
230
- const ownerDoc = (_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument;
228
+ const ownerDoc = splitPane.current?.ownerDocument;
231
229
  // istanbul ignore next
232
230
  if (!ownerDoc)
233
231
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.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 ContentView\n */\n\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { Pane } from \"./Pane\";\nimport { Resizer } from \"./Resizer\";\n\n/**\n * Props for [[SplitPane]] component\n * @public\n */\nexport interface SplitPaneProps {\n /** Pass false to disable resizing */\n allowResize?: boolean;\n /** The array of two react nodes, one for each pane. */\n children: React.ReactNode[];\n /** Determines which pane maintains its size when browser window is resized.*/\n primary?: \"first\" | \"second\";\n\n minSize?: string | number;\n /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value\n * (measured in pixels but state just a number). If you wrap the SplitPane into a container component\n * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit\n * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane\n * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer\n * will stop at the border of the SplitPane component and think this you'll be able to pick it again and drag it back then.\n * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border\n * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the\n * full-screen case of use. */\n maxSize?: string | number;\n /** Default initial size of primary pane */\n defaultSize?: string | number;\n /** Size of primary pane */\n size?: string | number;\n /** You can use the step prop to only allow resizing in fixed increments. */\n step?: number;\n split?: \"vertical\" | \"horizontal\";\n /** This callback is invoked when a drag start. */\n onDragStarted?: () => void;\n /** This callback is invoked when a drag ends. */\n onDragFinished?: (newSize: number) => void;\n /** Callback is invoked with the current drag during a drag event.*/\n onChange?: (newSize: number) => void;\n /** Callback is invoked if user clicks on Resizer. */\n onResizerClick?: (event: MouseEvent) => void;\n /** Callback is invoked if user double clicks on Resizer. */\n onResizerDoubleClick?: (event: MouseEvent) => void;\n /** Styling to be applied to the main container */\n style?: React.CSSProperties;\n /** Styling to be applied to both panes */\n paneStyle?: React.CSSProperties;\n /** Styling to be applied to the first pane, with precedence over paneStyle */\n pane1Style?: React.CSSProperties;\n /** Styling to be applied to the second pane, with precedence over paneStyle */\n pane2Style?: React.CSSProperties;\n /** Styling to be applied to the resizer bar */\n resizerStyle?: React.CSSProperties;\n /** Class name to be added to the SplitPane div */\n className?: string;\n /** Class name to be added to each Pane's div */\n paneClassName?: string;\n /** Class name to be added to Pane1's div */\n pane1ClassName?: string;\n /** Class name to be added to Pane2's div */\n pane2ClassName?: string;\n}\n\nfunction unFocus(ownerDoc: Document | undefined) {\n // istanbul ignore next\n if (!ownerDoc) return;\n\n const docSelection = ownerDoc.getSelection();\n // istanbul ignore else\n if (docSelection) {\n docSelection.empty();\n } else {\n // istanbul ignore next\n try {\n const winSelection = ownerDoc.defaultView?.getSelection();\n winSelection?.removeAllRanges();\n } catch (_e) {}\n }\n}\n\nfunction getDefaultSize(\n defaultSize?: number | string,\n minSize?: string | number,\n maxSize?: string | number,\n draggedSize?: number\n) {\n // istanbul ignore next\n if (typeof draggedSize === \"number\") {\n const min = typeof minSize === \"number\" ? minSize : 0;\n const max =\n typeof maxSize === \"number\" && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n return minSize;\n}\n\nfunction removeNullChildren(children: React.ReactNode[]) {\n return React.Children.toArray(children).filter((c) => c);\n}\n\n/**\n * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that\n * package is not regularly maintained.\n * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.\n * @public\n */\nexport function SplitPane(props: SplitPaneProps) {\n const {\n style,\n size,\n defaultSize,\n maxSize,\n children,\n paneStyle,\n pane1Style,\n pane2Style,\n className,\n paneClassName,\n pane1ClassName,\n pane2ClassName,\n onDragStarted,\n onDragFinished,\n step,\n onChange,\n onResizerClick,\n onResizerDoubleClick,\n } = props;\n\n // honor same defaults as react-split-pane\n const allowResize = React.useMemo(\n () => (undefined !== props.allowResize ? props.allowResize : true),\n [props.allowResize]\n );\n const minSize = React.useMemo(\n () => (undefined !== props.minSize ? props.minSize : 50),\n [props.minSize]\n );\n const primary = React.useMemo(\n () => (undefined !== props.primary ? props.primary : \"first\"),\n [props.primary]\n );\n const split = React.useMemo(\n () => (undefined !== props.split ? props.split : \"vertical\"),\n [props.split]\n );\n const initialSize =\n size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);\n\n const [position, setPosition] = React.useState(0);\n const [draggedSize, setDraggedSize] = React.useState<number | undefined>();\n const [active, setActive] = React.useState(false);\n const [pane1Size, setPane1Size] = React.useState(() =>\n primary === \"first\" ? initialSize : undefined\n );\n const [pane2Size, setPane2Size] = React.useState(() =>\n primary === \"second\" ? initialSize : undefined\n );\n const splitPane = React.useRef<HTMLDivElement>(null);\n const pane1 = React.useRef<HTMLDivElement>(null);\n const pane2 = React.useRef<HTMLDivElement>(null);\n const notNullChildren = React.useMemo(\n () => removeNullChildren(children),\n [children]\n );\n\n React.useEffect(() => {\n primary === \"first\" ? setPane1Size(initialSize) : setPane2Size(initialSize);\n primary === \"first\" ? setPane2Size(undefined) : setPane1Size(undefined);\n }, [initialSize, primary]);\n\n const splitPaneStyle = React.useMemo(() => {\n const directionSpecificParts =\n split === \"vertical\"\n ? {\n flexDirection: \"row\",\n left: 0,\n right: 0,\n }\n : {\n bottom: 0,\n flexDirection: \"column\",\n minHeight: \"100%\",\n top: 0,\n width: \"100%\",\n };\n\n return {\n display: \"flex\",\n flex: 1,\n height: \"100%\",\n position: \"absolute\",\n outline: \"none\",\n overflow: \"hidden\",\n MozUserSelect: \"text\",\n WebkitUserSelect: \"text\",\n msUserSelect: \"text\",\n userSelect: \"text\",\n ...style,\n ...directionSpecificParts,\n } as React.CSSProperties;\n }, [split, style]);\n\n const pane1DivStyle = { ...paneStyle, ...pane1Style };\n const pane2DivStyle = { ...paneStyle, ...pane2Style };\n const resizerStyle = React.useMemo(\n () => props.resizerStyle ?? {},\n [props.resizerStyle]\n );\n const resizerClasses = React.useMemo(\n () => classnames(\"Resizer\", !allowResize && \"disabled\"),\n [allowResize]\n );\n const splitPaneClasses = React.useMemo(\n () => classnames(\"SplitPane\", className, split, !allowResize && \"disabled\"),\n [className, split, allowResize]\n );\n const pane1Classes = React.useMemo(\n () => classnames(\"Pane1\", paneClassName, pane1ClassName),\n [paneClassName, pane1ClassName]\n );\n const pane2Classes = React.useMemo(\n () => classnames(\"Pane2\", paneClassName, pane2ClassName),\n [paneClassName, pane2ClassName]\n );\n\n const initializeDrag = React.useCallback(\n (x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const newPosition = split === \"vertical\" ? x : y;\n onDragStarted && onDragStarted();\n setActive(true);\n setPosition(newPosition);\n },\n [onDragStarted, split]\n );\n\n const onTouchStart = React.useCallback(\n (event: TouchEvent) => {\n // istanbul ignore else\n if (allowResize) {\n initializeDrag(event.touches[0].clientX, event.touches[0].clientY);\n }\n },\n [allowResize, initializeDrag]\n );\n\n const processMove = React.useCallback(\n (x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const isPrimaryFirst = primary === \"first\";\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\n const splitPaneDiv = splitPane.current;\n\n // istanbul ignore else\n if (ref && ref2 && splitPaneDiv) {\n const node = ref;\n const node2 = ref2;\n // istanbul ignore else\n if (node.getBoundingClientRect) {\n const width = node.getBoundingClientRect().width;\n const height = node.getBoundingClientRect().height;\n // istanbul ignore next\n const current = split === \"vertical\" ? x : y;\n // istanbul ignore next\n const oldSize = split === \"vertical\" ? width : height;\n let positionDelta = position - current;\n if (step) {\n // istanbul ignore next\n if (Math.abs(positionDelta) < step) {\n return;\n }\n // Integer division\n positionDelta = ~~(positionDelta / step) * step;\n }\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n\n // istanbul ignore next\n const pane1Order = parseInt(\n node.ownerDocument?.defaultView?.getComputedStyle(node).order ??\n \"0\",\n 10\n );\n // istanbul ignore next\n const pane2Order = parseInt(\n node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ??\n \"0\",\n 10\n );\n // istanbul ignore next\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n let newMaxSize = maxSize;\n // istanbul ignore next\n if (\n typeof maxSize === \"number\" &&\n maxSize !== undefined &&\n maxSize <= 0\n ) {\n if (split === \"vertical\") {\n newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize =\n splitPaneDiv.getBoundingClientRect().height + maxSize;\n }\n }\n\n let newSize = oldSize - sizeDelta;\n const newPosition = position - positionDelta;\n\n // istanbul ignore next\n if (typeof minSize === \"number\" && newSize < minSize) {\n newSize = minSize;\n } else if (\n typeof newMaxSize === \"number\" &&\n newMaxSize !== undefined &&\n newSize > newMaxSize\n ) {\n newSize = newMaxSize;\n } else {\n setPosition(newPosition);\n }\n\n onChange && onChange(newSize);\n setDraggedSize(newSize);\n isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);\n }\n }\n },\n [maxSize, minSize, onChange, position, primary, split, step]\n );\n\n const onTouchMove = React.useCallback(\n (event: TouchEvent) => {\n // istanbul ignore next\n if (!allowResize || !active) return;\n processMove(event.touches[0].clientX, event.touches[0].clientY);\n },\n [active, allowResize, processMove]\n );\n\n const onMouseMove = React.useCallback(\n (event: MouseEvent) => {\n if (!allowResize || !active) return;\n processMove(event.clientX, event.clientY);\n },\n [active, allowResize, processMove]\n );\n\n const onMouseDown = React.useCallback(\n (event: MouseEvent) => {\n // istanbul ignore else\n if (allowResize) {\n event.preventDefault();\n initializeDrag(event.clientX, event.clientY);\n }\n },\n [allowResize, initializeDrag]\n );\n\n const processResizeFinished = React.useCallback(() => {\n // istanbul ignore else\n if (undefined !== draggedSize && allowResize && active) {\n onDragFinished && onDragFinished(draggedSize);\n }\n setActive(false);\n }, [draggedSize, allowResize, active, onDragFinished]);\n\n const onMouseUp = React.useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n processResizeFinished();\n },\n [processResizeFinished]\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const ownerDoc = splitPane.current?.ownerDocument;\n // istanbul ignore next\n if (!ownerDoc) return;\n\n ownerDoc.addEventListener(\"mouseup\", onMouseUp);\n ownerDoc.addEventListener(\"mousemove\", onMouseMove);\n ownerDoc.addEventListener(\"touchmove\", onTouchMove);\n return () => {\n ownerDoc.removeEventListener(\"mouseup\", onMouseUp);\n ownerDoc.removeEventListener(\"mousemove\", onMouseMove);\n ownerDoc.removeEventListener(\"touchmove\", onTouchMove);\n };\n }, [onMouseMove, onMouseUp, onTouchMove]);\n\n return (\n <div className={splitPaneClasses} ref={splitPane} style={splitPaneStyle}>\n <Pane\n className={pane1Classes}\n key=\"pane1\"\n eleRef={pane1}\n size={pane1Size}\n split={split}\n style={pane1DivStyle}\n >\n {notNullChildren[0]}\n </Pane>\n <Resizer\n className={resizerClasses}\n onClick={onResizerClick}\n onDoubleClick={onResizerDoubleClick}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n onTouchEnd={processResizeFinished}\n key=\"resizer\"\n split={split}\n style={resizerStyle}\n />\n <Pane\n className={pane2Classes}\n key=\"pane2\"\n eleRef={pane2}\n size={pane2Size}\n split={split}\n style={pane2DivStyle}\n >\n {notNullChildren[1]}\n </Pane>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.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 ContentView\n */\n\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { Pane } from \"./Pane\";\nimport { Resizer } from \"./Resizer\";\n\n/**\n * Props for [[SplitPane]] component\n * @public\n */\nexport interface SplitPaneProps {\n /** Pass false to disable resizing */\n allowResize?: boolean;\n /** The array of two react nodes, one for each pane. */\n children: React.ReactNode[];\n /** Determines which pane maintains its size when browser window is resized.*/\n primary?: \"first\" | \"second\";\n\n minSize?: string | number;\n /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value\n * (measured in pixels but state just a number). If you wrap the SplitPane into a container component\n * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit\n * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane\n * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer\n * will stop at the border of the SplitPane component and think this you'll be able to pick it again and drag it back then.\n * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border\n * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the\n * full-screen case of use. */\n maxSize?: string | number;\n /** Default initial size of primary pane */\n defaultSize?: string | number;\n /** Size of primary pane */\n size?: string | number;\n /** You can use the step prop to only allow resizing in fixed increments. */\n step?: number;\n split?: \"vertical\" | \"horizontal\";\n /** This callback is invoked when a drag start. */\n onDragStarted?: () => void;\n /** This callback is invoked when a drag ends. */\n onDragFinished?: (newSize: number) => void;\n /** Callback is invoked with the current drag during a drag event.*/\n onChange?: (newSize: number) => void;\n /** Callback is invoked if user clicks on Resizer. */\n onResizerClick?: (event: MouseEvent) => void;\n /** Callback is invoked if user double clicks on Resizer. */\n onResizerDoubleClick?: (event: MouseEvent) => void;\n /** Styling to be applied to the main container */\n style?: React.CSSProperties;\n /** Styling to be applied to both panes */\n paneStyle?: React.CSSProperties;\n /** Styling to be applied to the first pane, with precedence over paneStyle */\n pane1Style?: React.CSSProperties;\n /** Styling to be applied to the second pane, with precedence over paneStyle */\n pane2Style?: React.CSSProperties;\n /** Styling to be applied to the resizer bar */\n resizerStyle?: React.CSSProperties;\n /** Class name to be added to the SplitPane div */\n className?: string;\n /** Class name to be added to each Pane's div */\n paneClassName?: string;\n /** Class name to be added to Pane1's div */\n pane1ClassName?: string;\n /** Class name to be added to Pane2's div */\n pane2ClassName?: string;\n}\n\nfunction unFocus(ownerDoc: Document | undefined) {\n // istanbul ignore next\n if (!ownerDoc) return;\n\n const docSelection = ownerDoc.getSelection();\n // istanbul ignore else\n if (docSelection) {\n docSelection.empty();\n } else {\n // istanbul ignore next\n try {\n const winSelection = ownerDoc.defaultView?.getSelection();\n winSelection?.removeAllRanges();\n } catch (_e) {}\n }\n}\n\nfunction getDefaultSize(\n defaultSize?: number | string,\n minSize?: string | number,\n maxSize?: string | number,\n draggedSize?: number\n) {\n // istanbul ignore next\n if (typeof draggedSize === \"number\") {\n const min = typeof minSize === \"number\" ? minSize : 0;\n const max =\n typeof maxSize === \"number\" && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n return minSize;\n}\n\nfunction removeNullChildren(children: React.ReactNode[]) {\n return React.Children.toArray(children).filter((c) => c);\n}\n\n/**\n * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that\n * package is not regularly maintained.\n * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.\n * @public\n */\nexport function SplitPane(props: SplitPaneProps) {\n const {\n style,\n size,\n defaultSize,\n maxSize,\n children,\n paneStyle,\n pane1Style,\n pane2Style,\n className,\n paneClassName,\n pane1ClassName,\n pane2ClassName,\n onDragStarted,\n onDragFinished,\n step,\n onChange,\n onResizerClick,\n onResizerDoubleClick,\n } = props;\n\n // honor same defaults as react-split-pane\n const allowResize = React.useMemo(\n () => (undefined !== props.allowResize ? props.allowResize : true),\n [props.allowResize]\n );\n const minSize = React.useMemo(\n () => (undefined !== props.minSize ? props.minSize : 50),\n [props.minSize]\n );\n const primary = React.useMemo(\n () => (undefined !== props.primary ? props.primary : \"first\"),\n [props.primary]\n );\n const split = React.useMemo(\n () => (undefined !== props.split ? props.split : \"vertical\"),\n [props.split]\n );\n const initialSize =\n size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);\n\n const [position, setPosition] = React.useState(0);\n const [draggedSize, setDraggedSize] = React.useState<number | undefined>();\n const [active, setActive] = React.useState(false);\n const [pane1Size, setPane1Size] = React.useState(() =>\n primary === \"first\" ? initialSize : undefined\n );\n const [pane2Size, setPane2Size] = React.useState(() =>\n primary === \"second\" ? initialSize : undefined\n );\n const splitPane = React.useRef<HTMLDivElement>(null);\n const pane1 = React.useRef<HTMLDivElement>(null);\n const pane2 = React.useRef<HTMLDivElement>(null);\n const notNullChildren = React.useMemo(\n () => removeNullChildren(children),\n [children]\n );\n\n React.useEffect(() => {\n primary === \"first\" ? setPane1Size(initialSize) : setPane2Size(initialSize);\n primary === \"first\" ? setPane2Size(undefined) : setPane1Size(undefined);\n }, [initialSize, primary]);\n\n const splitPaneStyle = React.useMemo(() => {\n const directionSpecificParts =\n split === \"vertical\"\n ? {\n flexDirection: \"row\",\n left: 0,\n right: 0,\n }\n : {\n bottom: 0,\n flexDirection: \"column\",\n minHeight: \"100%\",\n top: 0,\n width: \"100%\",\n };\n\n return {\n display: \"flex\",\n flex: 1,\n height: \"100%\",\n position: \"absolute\",\n outline: \"none\",\n overflow: \"hidden\",\n MozUserSelect: \"text\",\n WebkitUserSelect: \"text\",\n msUserSelect: \"text\",\n userSelect: \"text\",\n ...style,\n ...directionSpecificParts,\n } as React.CSSProperties;\n }, [split, style]);\n\n const pane1DivStyle = { ...paneStyle, ...pane1Style };\n const pane2DivStyle = { ...paneStyle, ...pane2Style };\n const resizerStyle = React.useMemo(\n () => props.resizerStyle ?? {},\n [props.resizerStyle]\n );\n const resizerClasses = React.useMemo(\n () => classnames(\"Resizer\", !allowResize && \"disabled\"),\n [allowResize]\n );\n const splitPaneClasses = React.useMemo(\n () => classnames(\"SplitPane\", className, split, !allowResize && \"disabled\"),\n [className, split, allowResize]\n );\n const pane1Classes = React.useMemo(\n () => classnames(\"Pane1\", paneClassName, pane1ClassName),\n [paneClassName, pane1ClassName]\n );\n const pane2Classes = React.useMemo(\n () => classnames(\"Pane2\", paneClassName, pane2ClassName),\n [paneClassName, pane2ClassName]\n );\n\n const initializeDrag = React.useCallback(\n (x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const newPosition = split === \"vertical\" ? x : y;\n onDragStarted && onDragStarted();\n setActive(true);\n setPosition(newPosition);\n },\n [onDragStarted, split]\n );\n\n const onTouchStart = React.useCallback(\n (event: TouchEvent) => {\n // istanbul ignore else\n if (allowResize) {\n initializeDrag(event.touches[0].clientX, event.touches[0].clientY);\n }\n },\n [allowResize, initializeDrag]\n );\n\n const processMove = React.useCallback(\n (x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const isPrimaryFirst = primary === \"first\";\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\n const splitPaneDiv = splitPane.current;\n\n // istanbul ignore else\n if (ref && ref2 && splitPaneDiv) {\n const node = ref;\n const node2 = ref2;\n // istanbul ignore else\n if (node.getBoundingClientRect) {\n const width = node.getBoundingClientRect().width;\n const height = node.getBoundingClientRect().height;\n // istanbul ignore next\n const current = split === \"vertical\" ? x : y;\n // istanbul ignore next\n const oldSize = split === \"vertical\" ? width : height;\n let positionDelta = position - current;\n if (step) {\n // istanbul ignore next\n if (Math.abs(positionDelta) < step) {\n return;\n }\n // Integer division\n positionDelta = ~~(positionDelta / step) * step;\n }\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n\n // istanbul ignore next\n const pane1Order = parseInt(\n node.ownerDocument?.defaultView?.getComputedStyle(node).order ??\n \"0\",\n 10\n );\n // istanbul ignore next\n const pane2Order = parseInt(\n node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ??\n \"0\",\n 10\n );\n // istanbul ignore next\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n let newMaxSize = maxSize;\n // istanbul ignore next\n if (\n typeof maxSize === \"number\" &&\n maxSize !== undefined &&\n maxSize <= 0\n ) {\n if (split === \"vertical\") {\n newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize =\n splitPaneDiv.getBoundingClientRect().height + maxSize;\n }\n }\n\n let newSize = oldSize - sizeDelta;\n const newPosition = position - positionDelta;\n\n // istanbul ignore next\n if (typeof minSize === \"number\" && newSize < minSize) {\n newSize = minSize;\n } else if (\n typeof newMaxSize === \"number\" &&\n newMaxSize !== undefined &&\n newSize > newMaxSize\n ) {\n newSize = newMaxSize;\n } else {\n setPosition(newPosition);\n }\n\n onChange && onChange(newSize);\n setDraggedSize(newSize);\n isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);\n }\n }\n },\n [maxSize, minSize, onChange, position, primary, split, step]\n );\n\n const onTouchMove = React.useCallback(\n (event: TouchEvent) => {\n // istanbul ignore next\n if (!allowResize || !active) return;\n processMove(event.touches[0].clientX, event.touches[0].clientY);\n },\n [active, allowResize, processMove]\n );\n\n const onMouseMove = React.useCallback(\n (event: MouseEvent) => {\n if (!allowResize || !active) return;\n processMove(event.clientX, event.clientY);\n },\n [active, allowResize, processMove]\n );\n\n const onMouseDown = React.useCallback(\n (event: MouseEvent) => {\n // istanbul ignore else\n if (allowResize) {\n event.preventDefault();\n initializeDrag(event.clientX, event.clientY);\n }\n },\n [allowResize, initializeDrag]\n );\n\n const processResizeFinished = React.useCallback(() => {\n // istanbul ignore else\n if (undefined !== draggedSize && allowResize && active) {\n onDragFinished && onDragFinished(draggedSize);\n }\n setActive(false);\n }, [draggedSize, allowResize, active, onDragFinished]);\n\n const onMouseUp = React.useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n processResizeFinished();\n },\n [processResizeFinished]\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const ownerDoc = splitPane.current?.ownerDocument;\n // istanbul ignore next\n if (!ownerDoc) return;\n\n ownerDoc.addEventListener(\"mouseup\", onMouseUp);\n ownerDoc.addEventListener(\"mousemove\", onMouseMove);\n ownerDoc.addEventListener(\"touchmove\", onTouchMove);\n return () => {\n ownerDoc.removeEventListener(\"mouseup\", onMouseUp);\n ownerDoc.removeEventListener(\"mousemove\", onMouseMove);\n ownerDoc.removeEventListener(\"touchmove\", onTouchMove);\n };\n }, [onMouseMove, onMouseUp, onTouchMove]);\n\n return (\n <div className={splitPaneClasses} ref={splitPane} style={splitPaneStyle}>\n <Pane\n className={pane1Classes}\n key=\"pane1\"\n eleRef={pane1}\n size={pane1Size}\n split={split}\n style={pane1DivStyle}\n >\n {notNullChildren[0]}\n </Pane>\n <Resizer\n className={resizerClasses}\n onClick={onResizerClick}\n onDoubleClick={onResizerDoubleClick}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n onTouchEnd={processResizeFinished}\n key=\"resizer\"\n split={split}\n style={resizerStyle}\n />\n <Pane\n className={pane2Classes}\n key=\"pane2\"\n eleRef={pane2}\n size={pane2Size}\n split={split}\n style={pane2DivStyle}\n >\n {notNullChildren[1]}\n </Pane>\n </div>\n );\n}\n"]}
@@ -53,11 +53,10 @@ class CursorPopupMenu extends React.PureComponent {
53
53
  }
54
54
  };
55
55
  this._handleRefSet = (popupDiv) => {
56
- var _a, _b;
57
- const parentWindow = (_a = popupDiv === null || popupDiv === void 0 ? void 0 : popupDiv.ownerDocument.defaultView) !== null && _a !== void 0 ? _a : undefined;
56
+ const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;
58
57
  // if the window is not a pop out set to undefined
59
58
  this._hostChildWindowId = UiFramework_1.UiFramework.childWindows.findId(parentWindow);
60
- core_bentley_1.Logger.logInfo(UiFramework_1.UiFramework.loggerCategory(UiFramework_1.UiFramework), `Cursor Menu for ${(_b = this._hostChildWindowId) !== null && _b !== void 0 ? _b : "main"} window`);
59
+ core_bentley_1.Logger.logInfo(UiFramework_1.UiFramework.loggerCategory(UiFramework_1.UiFramework), `Cursor Menu for ${this._hostChildWindowId ?? "main"} window`);
61
60
  };
62
61
  this._hideContextMenu = () => {
63
62
  this.setState({ menuVisible: false });
@@ -1 +1 @@
1
- {"version":3,"file":"CursorMenu.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.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 Cursor\n */\n\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { GlobalContextMenu } from \"@itwin/core-react\"; // ContextSubMenu,\nimport { SessionStateActionId } from \"../../redux/SessionState\";\nimport type { MenuItemProps } from \"../../shared/MenuItem\";\nimport { MenuItemHelpers } from \"../../shared/MenuItem\";\nimport { SyncUiEventDispatcher } from \"../../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport type { UiSyncEventArgs } from \"../../syncui/UiSyncEvent\";\n\n/** State for [[CursorPopupMenu]] component\n * @alpha\n */\ninterface CursorPopupMenuState {\n menuX: number;\n menuY: number;\n menuVisible: boolean;\n items?: MenuItemProps[];\n}\n\n/** Popup Menu to show at cursor typically used by tools to provide a right-click context menu.\n * @alpha\n */\n// istanbul ignore next\nexport class CursorPopupMenu extends React.PureComponent<\n CommonProps,\n CursorPopupMenuState\n> {\n private _isMounted = false; // used to ensure _handleSyncUiEvent callback is not processed after componentWillUnmount is called\n private _hostChildWindowId?: string;\n\n /** @internal */\n public override readonly state: CursorPopupMenuState = {\n menuX: 0,\n menuY: 0,\n menuVisible: false,\n items: undefined,\n };\n\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n /* istanbul ignore next */\n if (!this._isMounted) return;\n\n /* istanbul ignore else */\n if (\n SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [\n SessionStateActionId.UpdateCursorMenu,\n ])\n ) {\n const menuData = UiFramework.getCursorMenuData();\n if (menuData && this._hostChildWindowId === menuData.childWindowId) {\n this.setState({\n menuVisible: menuData.items && menuData.items.length > 0,\n items: menuData.items,\n menuX: menuData.position.x,\n menuY: menuData.position.y,\n });\n } else {\n this.setState({ menuVisible: false, items: undefined });\n }\n }\n };\n\n public override componentDidMount() {\n this._isMounted = true;\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\n }\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;\n // if the window is not a pop out set to undefined\n this._hostChildWindowId = UiFramework.childWindows.findId(parentWindow);\n Logger.logInfo(\n UiFramework.loggerCategory(UiFramework),\n `Cursor Menu for ${this._hostChildWindowId ?? \"main\"} window`\n );\n };\n\n public override render(): React.ReactNode {\n const { menuX, menuY, items, menuVisible } = this.state;\n const onClose = this._hideContextMenu;\n\n return (\n <div className=\"uifw-cursor-menu-container-div\" ref={this._handleRefSet}>\n {items && items.length > 0 && menuVisible && (\n <GlobalContextMenu\n className={this.props.className}\n style={this.props.style}\n identifier=\"cursor-popup-menu\"\n x={menuX}\n y={menuY}\n opened={menuVisible}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n >\n {MenuItemHelpers.createMenuItemNodes(\n MenuItemHelpers.createMenuItems(items, this._itemPicked)\n )}\n </GlobalContextMenu>\n )}\n </div>\n );\n }\n\n private _hideContextMenu = () => {\n this.setState({ menuVisible: false });\n };\n\n private _itemPicked = (): void => {\n this._hideContextMenu();\n };\n}\n"]}
1
+ {"version":3,"file":"CursorMenu.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.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 Cursor\n */\n\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { GlobalContextMenu } from \"@itwin/core-react\"; // ContextSubMenu,\nimport { SessionStateActionId } from \"../../redux/SessionState\";\nimport type { MenuItemProps } from \"../../shared/MenuItem\";\nimport { MenuItemHelpers } from \"../../shared/MenuItem\";\nimport { SyncUiEventDispatcher } from \"../../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport type { UiSyncEventArgs } from \"../../syncui/UiSyncEvent\";\n\n/** State for [[CursorPopupMenu]] component\n * @alpha\n */\ninterface CursorPopupMenuState {\n menuX: number;\n menuY: number;\n menuVisible: boolean;\n items?: MenuItemProps[];\n}\n\n/** Popup Menu to show at cursor typically used by tools to provide a right-click context menu.\n * @alpha\n */\n// istanbul ignore next\nexport class CursorPopupMenu extends React.PureComponent<\n CommonProps,\n CursorPopupMenuState\n> {\n private _isMounted = false; // used to ensure _handleSyncUiEvent callback is not processed after componentWillUnmount is called\n private _hostChildWindowId?: string;\n\n /** @internal */\n public override readonly state: CursorPopupMenuState = {\n menuX: 0,\n menuY: 0,\n menuVisible: false,\n items: undefined,\n };\n\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n /* istanbul ignore next */\n if (!this._isMounted) return;\n\n /* istanbul ignore else */\n if (\n SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [\n SessionStateActionId.UpdateCursorMenu,\n ])\n ) {\n const menuData = UiFramework.getCursorMenuData();\n if (menuData && this._hostChildWindowId === menuData.childWindowId) {\n this.setState({\n menuVisible: menuData.items && menuData.items.length > 0,\n items: menuData.items,\n menuX: menuData.position.x,\n menuY: menuData.position.y,\n });\n } else {\n this.setState({ menuVisible: false, items: undefined });\n }\n }\n };\n\n public override componentDidMount() {\n this._isMounted = true;\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\n }\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;\n // if the window is not a pop out set to undefined\n this._hostChildWindowId = UiFramework.childWindows.findId(parentWindow);\n Logger.logInfo(\n UiFramework.loggerCategory(UiFramework),\n `Cursor Menu for ${this._hostChildWindowId ?? \"main\"} window`\n );\n };\n\n public override render(): React.ReactNode {\n const { menuX, menuY, items, menuVisible } = this.state;\n const onClose = this._hideContextMenu;\n\n return (\n <div className=\"uifw-cursor-menu-container-div\" ref={this._handleRefSet}>\n {items && items.length > 0 && menuVisible && (\n <GlobalContextMenu\n className={this.props.className}\n style={this.props.style}\n identifier=\"cursor-popup-menu\"\n x={menuX}\n y={menuY}\n opened={menuVisible}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n >\n {MenuItemHelpers.createMenuItemNodes(\n MenuItemHelpers.createMenuItems(items, this._itemPicked)\n )}\n </GlobalContextMenu>\n )}\n </div>\n );\n }\n\n private _hideContextMenu = () => {\n this.setState({ menuVisible: false });\n };\n\n private _itemPicked = (): void => {\n this._hideContextMenu();\n };\n}\n"]}
@@ -19,12 +19,10 @@ const classnames_1 = require("classnames");
19
19
  *@internal
20
20
  */
21
21
  function useActiveContentControlId() {
22
- var _a;
23
- const [activeContentId, setActiveContentId] = React.useState((_a = UiFramework_1.UiFramework.content.getActiveContentControl()) === null || _a === void 0 ? void 0 : _a.uniqueId);
22
+ const [activeContentId, setActiveContentId] = React.useState(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
24
23
  React.useEffect(() => {
25
24
  const onActiveContentChanged = (_args) => {
26
- var _a;
27
- setActiveContentId((_a = UiFramework_1.UiFramework.content.getActiveContentControl()) === null || _a === void 0 ? void 0 : _a.uniqueId);
25
+ setActiveContentId(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
28
26
  };
29
27
  // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted
30
28
  // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components
@@ -41,10 +39,9 @@ function useActiveContentControlId() {
41
39
  SyncUiEventDispatcher_1.SyncUiEventId.FrontstageReady,
42
40
  ];
43
41
  const handleSyncUiEvent = (args) => {
44
- var _a;
45
42
  // istanbul ignore else
46
43
  if (syncIdsOfInterest.some((value) => args.eventIds.has(value))) {
47
- setActiveContentId((_a = UiFramework_1.UiFramework.content.getActiveContentControl()) === null || _a === void 0 ? void 0 : _a.uniqueId);
44
+ setActiveContentId(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
48
45
  }
49
46
  };
50
47
  return SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);
@@ -1 +1 @@
1
- {"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.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 Dialog\n */\n\nimport \"./ContentDialog.scss\";\nimport * as React from \"react\";\nimport type { DialogProps } from \"@itwin/core-react\";\nimport { Dialog } from \"@itwin/core-react\";\nimport type { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport classnames from \"classnames\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n// istanbul ignore next\n/**\n *@internal\n */\nexport function useActiveContentControlId(): string | undefined {\n const [activeContentId, setActiveContentId] = React.useState(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n\n React.useEffect(() => {\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\n setActiveContentId(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n };\n\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\n // are loaded and when the IModelApp.viewManager.selectedView changes.\n UiFramework.content.onActiveContentChangedEvent.addListener(\n onActiveContentChanged\n );\n return () => {\n UiFramework.content.onActiveContentChangedEvent.removeListener(\n onActiveContentChanged\n );\n };\n }, []);\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ContentControlActivated,\n SyncUiEventId.FrontstageReady,\n ];\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n setActiveContentId(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n }\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, []);\n\n return activeContentId;\n}\n\n/** Properties for the [[ContentDialog]] component\n * @public\n */\nexport interface ContentDialogProps extends DialogProps {\n dialogId: string;\n movable?: boolean;\n children: React.ReactNode;\n}\n\n/** Content Dialog React component uses the Dialog component with a modal={false} prop.\n * It controls the z-index to keep the focused dialog above content but below widgets.\n * @public\n */\nexport function ContentDialog(props: ContentDialogProps) {\n const {\n className,\n children,\n dialogId,\n style,\n modal,\n modelessId,\n onModelessPointerDown,\n ...otherProps\n } = props;\n const activeContentControlId = useActiveContentControlId();\n // istanbul ignore next\n const dialogClassName = React.useMemo(\n () =>\n classnames(\n activeContentControlId === dialogId\n ? \"active-content-dialog\"\n : \"inactive-content-dialog\",\n className\n ),\n [activeContentControlId, className, dialogId]\n );\n\n const [zIndex, setZIndex] = React.useState(\n UiFramework.content.dialogs.getZIndex(dialogId)\n );\n const updateZIndex = React.useCallback(() => {\n const newZ = UiFramework.content.dialogs.getZIndex(dialogId);\n // istanbul ignore else\n if (newZ !== zIndex) {\n setZIndex(newZ);\n }\n }, [dialogId, zIndex]);\n\n return (\n <Dialog\n className={dialogClassName}\n data-item-type=\"content-dialog\"\n data-item-id={dialogId}\n resizable={true}\n movable={true}\n trapFocus={false}\n modal={false}\n {...otherProps}\n modelessId={dialogId}\n onModelessPointerDown={(event) =>\n UiFramework.content.dialogs.handlePointerDownEvent(\n event,\n dialogId,\n updateZIndex\n )\n }\n style={{ zIndex, ...style }}\n >\n {children}\n </Dialog>\n );\n}\n"]}
1
+ {"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.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 Dialog\n */\n\nimport \"./ContentDialog.scss\";\nimport * as React from \"react\";\nimport type { DialogProps } from \"@itwin/core-react\";\nimport { Dialog } from \"@itwin/core-react\";\nimport type { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport classnames from \"classnames\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n// istanbul ignore next\n/**\n *@internal\n */\nexport function useActiveContentControlId(): string | undefined {\n const [activeContentId, setActiveContentId] = React.useState(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n\n React.useEffect(() => {\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\n setActiveContentId(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n };\n\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\n // are loaded and when the IModelApp.viewManager.selectedView changes.\n UiFramework.content.onActiveContentChangedEvent.addListener(\n onActiveContentChanged\n );\n return () => {\n UiFramework.content.onActiveContentChangedEvent.removeListener(\n onActiveContentChanged\n );\n };\n }, []);\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ContentControlActivated,\n SyncUiEventId.FrontstageReady,\n ];\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n setActiveContentId(\n UiFramework.content.getActiveContentControl()?.uniqueId\n );\n }\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, []);\n\n return activeContentId;\n}\n\n/** Properties for the [[ContentDialog]] component\n * @public\n */\nexport interface ContentDialogProps extends DialogProps {\n dialogId: string;\n movable?: boolean;\n children: React.ReactNode;\n}\n\n/** Content Dialog React component uses the Dialog component with a modal={false} prop.\n * It controls the z-index to keep the focused dialog above content but below widgets.\n * @public\n */\nexport function ContentDialog(props: ContentDialogProps) {\n const {\n className,\n children,\n dialogId,\n style,\n modal,\n modelessId,\n onModelessPointerDown,\n ...otherProps\n } = props;\n const activeContentControlId = useActiveContentControlId();\n // istanbul ignore next\n const dialogClassName = React.useMemo(\n () =>\n classnames(\n activeContentControlId === dialogId\n ? \"active-content-dialog\"\n : \"inactive-content-dialog\",\n className\n ),\n [activeContentControlId, className, dialogId]\n );\n\n const [zIndex, setZIndex] = React.useState(\n UiFramework.content.dialogs.getZIndex(dialogId)\n );\n const updateZIndex = React.useCallback(() => {\n const newZ = UiFramework.content.dialogs.getZIndex(dialogId);\n // istanbul ignore else\n if (newZ !== zIndex) {\n setZIndex(newZ);\n }\n }, [dialogId, zIndex]);\n\n return (\n <Dialog\n className={dialogClassName}\n data-item-type=\"content-dialog\"\n data-item-id={dialogId}\n resizable={true}\n movable={true}\n trapFocus={false}\n modal={false}\n {...otherProps}\n modelessId={dialogId}\n onModelessPointerDown={(event) =>\n UiFramework.content.dialogs.handlePointerDownEvent(\n event,\n dialogId,\n updateZIndex\n )\n }\n style={{ zIndex, ...style }}\n >\n {children}\n </Dialog>\n );\n}\n"]}
@@ -65,7 +65,7 @@ class DialogManagerBase {
65
65
  if (!id)
66
66
  id = `Dialog-${++DialogManagerBase._sId}`;
67
67
  // istanbul ignore next
68
- const owningDoc = parentDocument !== null && parentDocument !== void 0 ? parentDocument : document;
68
+ const owningDoc = parentDocument ?? document;
69
69
  this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });
70
70
  }
71
71
  /** @internal */
@@ -127,8 +127,7 @@ class DialogRendererBase extends React.PureComponent {
127
127
  parentDocument: null,
128
128
  };
129
129
  this._handleRefSet = (popupDiv) => {
130
- var _a;
131
- this.setState({ parentDocument: (_a = popupDiv === null || popupDiv === void 0 ? void 0 : popupDiv.ownerDocument) !== null && _a !== void 0 ? _a : null });
130
+ this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });
132
131
  };
133
132
  this._handleDialogChangedEvent = (_args) => {
134
133
  this.forceUpdate();
@@ -1 +1 @@
1
- {"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.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 Dialog\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\n\n/** Dialog Stack Changed Event Args class.\n * @public\n */\nexport interface DialogChangedEventArgs {\n dialogCount: number;\n activeDialog: React.ReactNode | undefined;\n}\n\n/** Dialog Changed Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> {}\n\n/** Information maintained by a Dialog Manager about a dialog\n * @public\n */\nexport interface DialogInfo {\n reactNode: React.ReactNode;\n id: string;\n parentDocument: Document;\n}\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst ZINDEX_DEFAULT = 12000;\n\n/** Dialog Manager class.\n * @internal\n */\nexport class DialogManagerBase {\n private static _sId = 0;\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\n private _onDialogChangedEvent: DialogChangedEvent;\n private static _topZIndex = ZINDEX_DEFAULT;\n\n constructor(onDialogChangedEvent: DialogChangedEvent) {\n this._onDialogChangedEvent = onDialogChangedEvent;\n }\n\n /** Initialize the modeless dialog manager */\n public static initialize(): void {\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public static get topZIndex(): number {\n return DialogManagerBase._topZIndex;\n }\n\n public static set topZIndex(zIndex: number) {\n DialogManagerBase._topZIndex = zIndex;\n }\n public get dialogs() {\n return this._dialogs;\n }\n\n public get onDialogChangedEvent(): DialogChangedEvent {\n return this._onDialogChangedEvent;\n }\n\n public static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-dialog\";\n const value = getCssVariableAsNumber(variable);\n\n // istanbul ignore next\n if (!isNaN(value)) return value;\n\n Logger.logError(\n UiFramework.loggerCategory(this),\n `'${variable}' CSS variable not found`\n );\n return ZINDEX_DEFAULT;\n }\n\n /**\n * Triggers opening a dialog.\n * @param dialog Dialog React component.\n * @param id The unique Id the identifies the dialog.\n * @param parentDocument Optional document required when displaying a dialog in a child popup window.\n */\n public openDialog(\n dialog: React.ReactNode,\n id?: string,\n parentDocument?: Document\n ): void {\n if (!id) id = `Dialog-${++DialogManagerBase._sId}`;\n\n // istanbul ignore next\n const owningDoc = parentDocument ?? document;\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\n }\n\n /** @internal */\n public pushDialog(dialogInfo: DialogInfo): void {\n this._dialogs.push(dialogInfo);\n this.emitDialogChangedEvent();\n }\n\n public closeDialog(dialog?: React.ReactNode): void {\n let targetDialog = dialog;\n if (!dialog) targetDialog = this.activeDialog;\n\n this.removeDialog(targetDialog);\n this.emitDialogChangedEvent();\n }\n\n /** @internal */\n public closeAll(): void {\n this._dialogs = [];\n this.emitDialogChangedEvent();\n }\n\n /** @internal */\n public removeDialog(dialog: React.ReactNode): void {\n const index = this._dialogs.findIndex((dialogInfo: DialogInfo) => {\n return dialog === dialogInfo.reactNode;\n });\n if (index >= 0) this._dialogs.splice(index, 1);\n if (this._dialogs.length < 1)\n DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public emitDialogChangedEvent(): void {\n this._onDialogChangedEvent.emit({\n dialogCount: this.dialogCount,\n activeDialog: this.activeDialog,\n });\n }\n\n public update(): void {\n this.emitDialogChangedEvent();\n }\n\n public get activeDialog(): React.ReactNode | undefined {\n if (this._dialogs.length > 0)\n return this._dialogs[this._dialogs.length - 1].reactNode;\n\n return undefined;\n }\n\n public get dialogCount(): number {\n return this._dialogs.length;\n }\n}\n\n/** Properties for the [[DialogRendererBase]] component\n * @internal\n */\nexport interface DialogRendererProps {\n dialogManager: DialogManagerBase;\n style?: React.CSSProperties;\n}\n\n/** @internal */\ninterface DialogRendererState {\n parentDocument: Document | null;\n}\n/** DialogRenderer React component.\n * @internal\n */\nexport class DialogRendererBase extends React.PureComponent<\n DialogRendererProps,\n DialogRendererState\n> {\n /** @internal */\n public override readonly state: DialogRendererState = {\n parentDocument: null,\n };\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });\n };\n\n public override render(): React.ReactNode {\n if (this.props.dialogManager.dialogCount <= 0) return null;\n\n return (\n <div\n className=\"appui-react-dialog-render-container\"\n ref={this._handleRefSet}\n >\n {this.state.parentDocument &&\n this.props.dialogManager.dialogs\n .filter((info) => info.parentDocument === this.state.parentDocument)\n .map((dialogInfo: DialogInfo) => {\n return (\n <React.Fragment key={dialogInfo.id}>\n {dialogInfo.reactNode}\n </React.Fragment>\n );\n })}\n </div>\n );\n }\n\n public override componentDidMount(): void {\n this.props.dialogManager.onDialogChangedEvent.addListener(\n this._handleDialogChangedEvent\n );\n }\n\n public override componentWillUnmount(): void {\n this.props.dialogManager.onDialogChangedEvent.removeListener(\n this._handleDialogChangedEvent\n );\n }\n\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\n this.forceUpdate();\n };\n}\n"]}
1
+ {"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,sDAA6C;AAC7C,0DAAgD;AAChD,gDAA6C;AAC7C,kDAA2D;AAU3D;;GAEG;AACH,mDAAmD;AACnD,MAAa,kBAAmB,SAAQ,wBAA+B;CAAG;AAA1E,gDAA0E;AAW1E,+DAA+D;AAC/D,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B;;GAEG;AACH,MAAa,iBAAiB;IAM5B,YAAY,oBAAwC;QAJ5C,aAAQ,GAAiB,IAAI,KAAK,EAAc,CAAC;QAKvD,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;IACpD,CAAC;IAED,6CAA6C;IACtC,MAAM,CAAC,UAAU;QACtB,iBAAiB,CAAC,UAAU,GAAG,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;IAC5E,CAAC;IAEM,MAAM,KAAK,SAAS;QACzB,OAAO,iBAAiB,CAAC,UAAU,CAAC;IACtC,CAAC;IAEM,MAAM,KAAK,SAAS,CAAC,MAAc;QACxC,iBAAiB,CAAC,UAAU,GAAG,MAAM,CAAC;IACxC,CAAC;IACD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,oBAAoB;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,sBAAsB;QAClC,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAA,mCAAsB,EAAC,QAAQ,CAAC,CAAC;QAE/C,uBAAuB;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEhC,qBAAM,CAAC,QAAQ,CACb,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAChC,IAAI,QAAQ,0BAA0B,CACvC,CAAC;QACF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACI,UAAU,CACf,MAAuB,EACvB,EAAW,EACX,cAAyB;QAEzB,IAAI,CAAC,EAAE;YAAE,EAAE,GAAG,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAEnD,uBAAuB;QACvB,MAAM,SAAS,GAAG,cAAc,IAAI,QAAQ,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,gBAAgB;IACT,UAAU,CAAC,UAAsB;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAEM,WAAW,CAAC,MAAwB;QACzC,IAAI,YAAY,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM;YAAE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAE9C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB;IACT,QAAQ;QACb,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB;IACT,YAAY,CAAC,MAAuB;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAsB,EAAE,EAAE;YAC/D,OAAO,MAAM,KAAK,UAAU,CAAC,SAAS,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,IAAI,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC1B,iBAAiB,CAAC,SAAS,GAAG,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;IAC7E,CAAC;IAEM,sBAAsB;QAC3B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,IAAW,YAAY;QACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;;AA/Gc,sBAAI,GAAG,CAAC,AAAJ,CAAK;AAGT,4BAAU,GAAG,cAAc,AAAjB,CAAkB;AAJhC,8CAAiB;AA+H9B;;GAEG;AACH,MAAa,kBAAmB,SAAQ,KAAK,CAAC,aAG7C;IAHD;;QAIE,gBAAgB;QACS,UAAK,GAAwB;YACpD,cAAc,EAAE,IAAI;SACrB,CAAC;QAEM,kBAAa,GAAG,CAAC,QAA4B,EAAE,EAAE;YACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC;QAoCM,8BAAyB,GAAG,CAAC,KAA6B,EAAE,EAAE;YACpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC;IArCiB,MAAM;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3D,OAAO,CACL,6BACE,SAAS,EAAC,qCAAqC,EAC/C,GAAG,EAAE,IAAI,CAAC,aAAa,IAEtB,IAAI,CAAC,KAAK,CAAC,cAAc;YACxB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO;iBAC7B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;iBACnE,GAAG,CAAC,CAAC,UAAsB,EAAE,EAAE;gBAC9B,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,UAAU,CAAC,EAAE,IAC/B,UAAU,CAAC,SAAS,CACN,CAClB,CAAC;YACJ,CAAC,CAAC,CACF,CACP,CAAC;IACJ,CAAC;IAEe,iBAAiB;QAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,WAAW,CACvD,IAAI,CAAC,yBAAyB,CAC/B,CAAC;IACJ,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,CAC1D,IAAI,CAAC,yBAAyB,CAC/B,CAAC;IACJ,CAAC;CAKF;AAlDD,gDAkDC","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 Dialog\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\n\n/** Dialog Stack Changed Event Args class.\n * @public\n */\nexport interface DialogChangedEventArgs {\n dialogCount: number;\n activeDialog: React.ReactNode | undefined;\n}\n\n/** Dialog Changed Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> {}\n\n/** Information maintained by a Dialog Manager about a dialog\n * @public\n */\nexport interface DialogInfo {\n reactNode: React.ReactNode;\n id: string;\n parentDocument: Document;\n}\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst ZINDEX_DEFAULT = 12000;\n\n/** Dialog Manager class.\n * @internal\n */\nexport class DialogManagerBase {\n private static _sId = 0;\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\n private _onDialogChangedEvent: DialogChangedEvent;\n private static _topZIndex = ZINDEX_DEFAULT;\n\n constructor(onDialogChangedEvent: DialogChangedEvent) {\n this._onDialogChangedEvent = onDialogChangedEvent;\n }\n\n /** Initialize the modeless dialog manager */\n public static initialize(): void {\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public static get topZIndex(): number {\n return DialogManagerBase._topZIndex;\n }\n\n public static set topZIndex(zIndex: number) {\n DialogManagerBase._topZIndex = zIndex;\n }\n public get dialogs() {\n return this._dialogs;\n }\n\n public get onDialogChangedEvent(): DialogChangedEvent {\n return this._onDialogChangedEvent;\n }\n\n public static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-dialog\";\n const value = getCssVariableAsNumber(variable);\n\n // istanbul ignore next\n if (!isNaN(value)) return value;\n\n Logger.logError(\n UiFramework.loggerCategory(this),\n `'${variable}' CSS variable not found`\n );\n return ZINDEX_DEFAULT;\n }\n\n /**\n * Triggers opening a dialog.\n * @param dialog Dialog React component.\n * @param id The unique Id the identifies the dialog.\n * @param parentDocument Optional document required when displaying a dialog in a child popup window.\n */\n public openDialog(\n dialog: React.ReactNode,\n id?: string,\n parentDocument?: Document\n ): void {\n if (!id) id = `Dialog-${++DialogManagerBase._sId}`;\n\n // istanbul ignore next\n const owningDoc = parentDocument ?? document;\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\n }\n\n /** @internal */\n public pushDialog(dialogInfo: DialogInfo): void {\n this._dialogs.push(dialogInfo);\n this.emitDialogChangedEvent();\n }\n\n public closeDialog(dialog?: React.ReactNode): void {\n let targetDialog = dialog;\n if (!dialog) targetDialog = this.activeDialog;\n\n this.removeDialog(targetDialog);\n this.emitDialogChangedEvent();\n }\n\n /** @internal */\n public closeAll(): void {\n this._dialogs = [];\n this.emitDialogChangedEvent();\n }\n\n /** @internal */\n public removeDialog(dialog: React.ReactNode): void {\n const index = this._dialogs.findIndex((dialogInfo: DialogInfo) => {\n return dialog === dialogInfo.reactNode;\n });\n if (index >= 0) this._dialogs.splice(index, 1);\n if (this._dialogs.length < 1)\n DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public emitDialogChangedEvent(): void {\n this._onDialogChangedEvent.emit({\n dialogCount: this.dialogCount,\n activeDialog: this.activeDialog,\n });\n }\n\n public update(): void {\n this.emitDialogChangedEvent();\n }\n\n public get activeDialog(): React.ReactNode | undefined {\n if (this._dialogs.length > 0)\n return this._dialogs[this._dialogs.length - 1].reactNode;\n\n return undefined;\n }\n\n public get dialogCount(): number {\n return this._dialogs.length;\n }\n}\n\n/** Properties for the [[DialogRendererBase]] component\n * @internal\n */\nexport interface DialogRendererProps {\n dialogManager: DialogManagerBase;\n style?: React.CSSProperties;\n}\n\n/** @internal */\ninterface DialogRendererState {\n parentDocument: Document | null;\n}\n/** DialogRenderer React component.\n * @internal\n */\nexport class DialogRendererBase extends React.PureComponent<\n DialogRendererProps,\n DialogRendererState\n> {\n /** @internal */\n public override readonly state: DialogRendererState = {\n parentDocument: null,\n };\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });\n };\n\n public override render(): React.ReactNode {\n if (this.props.dialogManager.dialogCount <= 0) return null;\n\n return (\n <div\n className=\"appui-react-dialog-render-container\"\n ref={this._handleRefSet}\n >\n {this.state.parentDocument &&\n this.props.dialogManager.dialogs\n .filter((info) => info.parentDocument === this.state.parentDocument)\n .map((dialogInfo: DialogInfo) => {\n return (\n <React.Fragment key={dialogInfo.id}>\n {dialogInfo.reactNode}\n </React.Fragment>\n );\n })}\n </div>\n );\n }\n\n public override componentDidMount(): void {\n this.props.dialogManager.onDialogChangedEvent.addListener(\n this._handleDialogChangedEvent\n );\n }\n\n public override componentWillUnmount(): void {\n this.props.dialogManager.onDialogChangedEvent.removeListener(\n this._handleDialogChangedEvent\n );\n }\n\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\n this.forceUpdate();\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ElementTooltip.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/feedback/ElementTooltip.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAGvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E;;GAEG;AACH,UAAU,mBAAmB;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AAEH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAG;AAE1F;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CACjD,WAAW,EACX,mBAAmB,CACpB;IACC,OAAO,CAAC,MAAM,CAAC,2BAA2B,CACP;IACnC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAU;IAC1C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAU;IAEzC,WAAkB,4BAA4B,IAAI,0BAA0B,CAE3E;IACD,WAAkB,gBAAgB,IAAI,OAAO,CAE5C;WAEa,WAAW,CACvB,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,iBAAiB,EAC1B,EAAE,CAAC,EAAE,KAAK,EACV,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI;WAiBO,WAAW,IAAI,IAAI;IASjC,WAAkB,eAAe,IAAI,OAAO,CAE3C;IAED,WAAkB,eAAe,CAAC,IAAI,EAAE,OAAO,EAG9C;IAED,OAAO,CAAC,KAAK,CAGX;IACF,OAAO,CAAC,QAAQ,CAAC,CAAc;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAE1B,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAO3D;gBAEU,KAAK,EAAE,WAAW;IAId,MAAM;IAqBN,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5C,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAwB/B,OAAO,CAAC,iCAAiC,CAUvC;IAGF,OAAO,CAAC,kBAAkB,CAGxB;IAEF,OAAO,CAAC,cAAc;CA4BvB"}
1
+ {"version":3,"file":"ElementTooltip.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/feedback/ElementTooltip.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAGvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E;;GAEG;AACH,UAAU,mBAAmB;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AAEH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAG;AAE1F;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CACjD,WAAW,EACX,mBAAmB,CACpB;IACC,OAAO,CAAC,MAAM,CAAC,2BAA2B,CACP;IACnC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAU;IAC1C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAU;IAEzC,WAAkB,4BAA4B,IAAI,0BAA0B,CAE3E;IACD,WAAkB,gBAAgB,IAAI,OAAO,CAE5C;WAEa,WAAW,CACvB,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,iBAAiB,EAC1B,EAAE,CAAC,EAAE,KAAK,EACV,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI;WAiBO,WAAW,IAAI,IAAI;IASjC,WAAkB,eAAe,IAAI,OAAO,CAE3C;IAED,WAAkB,eAAe,CAAC,IAAI,EAAE,OAAO,EAG9C;IAED,OAAO,CAAC,KAAK,CAGX;IACF,OAAO,CAAC,QAAQ,CAAC,CAAc;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAE1B,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAO3D;gBAEU,KAAK,EAAE,WAAW;IAId,MAAM;IAkBN,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5C,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAwB/B,OAAO,CAAC,iCAAiC,CAUvC;IAGF,OAAO,CAAC,kBAAkB,CAGxB;IAEF,OAAO,CAAC,cAAc;CA4BvB"}
@@ -13,7 +13,6 @@ const core_react_1 = require("@itwin/core-react");
13
13
  const classnames_1 = require("classnames");
14
14
  const React = require("react");
15
15
  const Tooltip_1 = require("../layout/popup/Tooltip");
16
- const MessageSpan_1 = require("../messages/MessageSpan");
17
16
  /** ElementTooltip Changed Event class.
18
17
  * @public
19
18
  */
@@ -96,9 +95,9 @@ class ElementTooltip extends React.Component {
96
95
  if (!this.state.isVisible)
97
96
  return null;
98
97
  const className = (0, classnames_1.default)("uifw-element-tooltip", this.props.className);
99
- const messageNode = React.createElement(MessageSpan_1.MessageDiv, { message: this.state.message });
100
98
  return (React.createElement("div", { className: "uifw-element-tooltip-container" },
101
- React.createElement(Tooltip_1.Tooltip, { className: className, style: this.props.style, position: this.state.position, onSizeChanged: this._handleSizeChanged }, messageNode)));
99
+ React.createElement(Tooltip_1.Tooltip, { className: className, style: this.props.style, position: this.state.position, onSizeChanged: this._handleSizeChanged },
100
+ React.createElement(core_react_1.MessageRenderer, { message: this.state.message }))));
102
101
  }
103
102
  componentDidMount() {
104
103
  ElementTooltip.onElementTooltipChangedEvent.addListener(this._handleElementTooltipChangedEvent);
@@ -1 +1 @@
1
- {"version":3,"file":"ElementTooltip.js","sourceRoot":"","sources":["../../../../src/appui-react/feedback/ElementTooltip.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 Notification\n */\n\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { ToolTipOptions } from \"@itwin/core-frontend\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { CommonProps, Point, SizeProps } from \"@itwin/core-react\";\nimport { Rectangle } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { offsetAndContainInContainer, Tooltip } from \"../layout/popup/Tooltip\";\nimport { MessageDiv } from \"../messages/MessageSpan\";\nimport type { NotifyMessageType } from \"../messages/ReactNotifyMessageDetails\";\n\n/** [[ElementTooltip]] State.\n * @internal\n */\ninterface ElementTooltipState {\n isVisible: boolean;\n message: NotifyMessageType;\n position: XAndY;\n options?: ToolTipOptions;\n}\n\n/** [[ElementTooltipChangedEvent]] arguments.\n * @public\n */\nexport interface ElementTooltipChangedEventArgs {\n isTooltipVisible: boolean;\n message: NotifyMessageType;\n el?: HTMLElement;\n pt?: XAndY;\n options?: ToolTipOptions;\n}\n\n/** ElementTooltip Changed Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ElementTooltipChangedEvent extends UiEvent<ElementTooltipChangedEventArgs> {}\n\n/** ElementTooltip React component.\n * @public\n */\nexport class ElementTooltip extends React.Component<\n CommonProps,\n ElementTooltipState\n> {\n private static _elementTooltipChangedEvent: ElementTooltipChangedEvent =\n new ElementTooltipChangedEvent();\n private static _isTooltipVisible: boolean;\n private static _isTooltipHalted: boolean;\n\n public static get onElementTooltipChangedEvent(): ElementTooltipChangedEvent {\n return ElementTooltip._elementTooltipChangedEvent;\n }\n public static get isTooltipVisible(): boolean {\n return ElementTooltip._isTooltipVisible;\n }\n\n public static showTooltip(\n el: HTMLElement,\n message: NotifyMessageType,\n pt?: XAndY,\n options?: ToolTipOptions\n ): void {\n // istanbul ignore if\n if (ElementTooltip._isTooltipHalted) return;\n ElementTooltip._isTooltipVisible = true;\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: true,\n el,\n message,\n pt,\n options,\n });\n el.ownerDocument.addEventListener(\n \"mousemove\",\n ElementTooltip._handleMouseMove\n );\n }\n\n public static hideTooltip(): void {\n ElementTooltip._isTooltipVisible = false;\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: false,\n message: \"\",\n });\n }\n\n // istanbul ignore next\n public static get isTooltipHalted(): boolean {\n return ElementTooltip._isTooltipHalted;\n }\n // istanbul ignore next\n public static set isTooltipHalted(halt: boolean) {\n ElementTooltip._isTooltipHalted = halt;\n if (halt && ElementTooltip._isTooltipVisible) ElementTooltip.hideTooltip();\n }\n\n private _size: SizeProps = {\n height: 0,\n width: 0,\n };\n private _element?: HTMLElement;\n private _position?: XAndY;\n\n /** @internal */\n public override readonly state: Readonly<ElementTooltipState> = {\n message: \"\",\n isVisible: false,\n position: {\n x: 0,\n y: 0,\n },\n };\n\n constructor(props: CommonProps) {\n super(props);\n }\n\n public override render() {\n if (!this.state.isVisible) return null;\n\n const className = classnames(\"uifw-element-tooltip\", this.props.className);\n\n const messageNode = <MessageDiv message={this.state.message} />;\n\n return (\n <div className=\"uifw-element-tooltip-container\">\n <Tooltip\n className={className}\n style={this.props.style}\n position={this.state.position}\n onSizeChanged={this._handleSizeChanged}\n >\n {messageNode}\n </Tooltip>\n </div>\n );\n }\n\n public override componentDidMount(): void {\n ElementTooltip.onElementTooltipChangedEvent.addListener(\n this._handleElementTooltipChangedEvent\n );\n }\n\n public override componentWillUnmount(): void {\n ElementTooltip.onElementTooltipChangedEvent.removeListener(\n this._handleElementTooltipChangedEvent\n );\n }\n\n private static _handleMouseMove(event: MouseEvent) {\n const el = event.currentTarget as Document;\n /* Only monitor mouse movement when an ElementTooltip is open. */\n if (\n (el && ElementTooltip._isTooltipHalted) ||\n !ElementTooltip._isTooltipVisible\n ) {\n el.removeEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\n return;\n }\n const hoveredElement = el\n ? el.elementFromPoint(event.clientX, event.clientY)\n : undefined;\n /* If the mouse has moved to an element that is not the view canvas, close the ElementTooltip. */\n // istanbul ignore next.\n if (hoveredElement && hoveredElement.localName !== \"canvas\") {\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: false,\n message: \"\",\n });\n el.removeEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\n return;\n }\n }\n private _handleElementTooltipChangedEvent = (\n args: ElementTooltipChangedEventArgs\n ) => {\n this._element = args.el;\n this._position = args.pt;\n this.setState({\n isVisible: args.isTooltipVisible,\n message: args.message,\n });\n this.updatePosition();\n };\n\n // istanbul ignore next\n private _handleSizeChanged = (size: SizeProps) => {\n this._size = size;\n this.updatePosition();\n };\n\n private updatePosition() {\n this.setState((prevState) => {\n if (!this._element) return null;\n // istanbul ignore next\n if (!this._position) return null;\n\n const containerBounds = Rectangle.create(\n this._element.getBoundingClientRect()\n );\n const relativeBounds = Rectangle.createFromSize(this._size).offset(\n this._position\n );\n const adjustedPosition: Point = offsetAndContainInContainer(\n relativeBounds,\n containerBounds.getSize(),\n { x: 8, y: 8 }\n );\n const position = adjustedPosition.offset(containerBounds.topLeft());\n\n // istanbul ignore else\n if (position.equals(prevState.position)) return null;\n\n // istanbul ignore next\n return {\n position,\n };\n });\n }\n}\n"]}
1
+ {"version":3,"file":"ElementTooltip.js","sourceRoot":"","sources":["../../../../src/appui-react/feedback/ElementTooltip.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 Notification\n */\n\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { ToolTipOptions } from \"@itwin/core-frontend\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { CommonProps, Point, SizeProps } from \"@itwin/core-react\";\nimport { MessageRenderer, Rectangle } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { offsetAndContainInContainer, Tooltip } from \"../layout/popup/Tooltip\";\nimport type { NotifyMessageType } from \"../messages/ReactNotifyMessageDetails\";\n\n/** [[ElementTooltip]] State.\n * @internal\n */\ninterface ElementTooltipState {\n isVisible: boolean;\n message: NotifyMessageType;\n position: XAndY;\n options?: ToolTipOptions;\n}\n\n/** [[ElementTooltipChangedEvent]] arguments.\n * @public\n */\nexport interface ElementTooltipChangedEventArgs {\n isTooltipVisible: boolean;\n message: NotifyMessageType;\n el?: HTMLElement;\n pt?: XAndY;\n options?: ToolTipOptions;\n}\n\n/** ElementTooltip Changed Event class.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ElementTooltipChangedEvent extends UiEvent<ElementTooltipChangedEventArgs> {}\n\n/** ElementTooltip React component.\n * @public\n */\nexport class ElementTooltip extends React.Component<\n CommonProps,\n ElementTooltipState\n> {\n private static _elementTooltipChangedEvent: ElementTooltipChangedEvent =\n new ElementTooltipChangedEvent();\n private static _isTooltipVisible: boolean;\n private static _isTooltipHalted: boolean;\n\n public static get onElementTooltipChangedEvent(): ElementTooltipChangedEvent {\n return ElementTooltip._elementTooltipChangedEvent;\n }\n public static get isTooltipVisible(): boolean {\n return ElementTooltip._isTooltipVisible;\n }\n\n public static showTooltip(\n el: HTMLElement,\n message: NotifyMessageType,\n pt?: XAndY,\n options?: ToolTipOptions\n ): void {\n // istanbul ignore if\n if (ElementTooltip._isTooltipHalted) return;\n ElementTooltip._isTooltipVisible = true;\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: true,\n el,\n message,\n pt,\n options,\n });\n el.ownerDocument.addEventListener(\n \"mousemove\",\n ElementTooltip._handleMouseMove\n );\n }\n\n public static hideTooltip(): void {\n ElementTooltip._isTooltipVisible = false;\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: false,\n message: \"\",\n });\n }\n\n // istanbul ignore next\n public static get isTooltipHalted(): boolean {\n return ElementTooltip._isTooltipHalted;\n }\n // istanbul ignore next\n public static set isTooltipHalted(halt: boolean) {\n ElementTooltip._isTooltipHalted = halt;\n if (halt && ElementTooltip._isTooltipVisible) ElementTooltip.hideTooltip();\n }\n\n private _size: SizeProps = {\n height: 0,\n width: 0,\n };\n private _element?: HTMLElement;\n private _position?: XAndY;\n\n /** @internal */\n public override readonly state: Readonly<ElementTooltipState> = {\n message: \"\",\n isVisible: false,\n position: {\n x: 0,\n y: 0,\n },\n };\n\n constructor(props: CommonProps) {\n super(props);\n }\n\n public override render() {\n if (!this.state.isVisible) return null;\n\n const className = classnames(\"uifw-element-tooltip\", this.props.className);\n return (\n <div className=\"uifw-element-tooltip-container\">\n <Tooltip\n className={className}\n style={this.props.style}\n position={this.state.position}\n onSizeChanged={this._handleSizeChanged}\n >\n <MessageRenderer message={this.state.message} />\n </Tooltip>\n </div>\n );\n }\n\n public override componentDidMount(): void {\n ElementTooltip.onElementTooltipChangedEvent.addListener(\n this._handleElementTooltipChangedEvent\n );\n }\n\n public override componentWillUnmount(): void {\n ElementTooltip.onElementTooltipChangedEvent.removeListener(\n this._handleElementTooltipChangedEvent\n );\n }\n\n private static _handleMouseMove(event: MouseEvent) {\n const el = event.currentTarget as Document;\n /* Only monitor mouse movement when an ElementTooltip is open. */\n if (\n (el && ElementTooltip._isTooltipHalted) ||\n !ElementTooltip._isTooltipVisible\n ) {\n el.removeEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\n return;\n }\n const hoveredElement = el\n ? el.elementFromPoint(event.clientX, event.clientY)\n : undefined;\n /* If the mouse has moved to an element that is not the view canvas, close the ElementTooltip. */\n // istanbul ignore next.\n if (hoveredElement && hoveredElement.localName !== \"canvas\") {\n ElementTooltip.onElementTooltipChangedEvent.emit({\n isTooltipVisible: false,\n message: \"\",\n });\n el.removeEventListener(\"mousemove\", ElementTooltip._handleMouseMove);\n return;\n }\n }\n private _handleElementTooltipChangedEvent = (\n args: ElementTooltipChangedEventArgs\n ) => {\n this._element = args.el;\n this._position = args.pt;\n this.setState({\n isVisible: args.isTooltipVisible,\n message: args.message,\n });\n this.updatePosition();\n };\n\n // istanbul ignore next\n private _handleSizeChanged = (size: SizeProps) => {\n this._size = size;\n this.updatePosition();\n };\n\n private updatePosition() {\n this.setState((prevState) => {\n if (!this._element) return null;\n // istanbul ignore next\n if (!this._position) return null;\n\n const containerBounds = Rectangle.create(\n this._element.getBoundingClientRect()\n );\n const relativeBounds = Rectangle.createFromSize(this._size).offset(\n this._position\n );\n const adjustedPosition: Point = offsetAndContainInContainer(\n relativeBounds,\n containerBounds.getSize(),\n { x: 8, y: 8 }\n );\n const position = adjustedPosition.offset(containerBounds.topLeft());\n\n // istanbul ignore else\n if (position.equals(prevState.position)) return null;\n\n // istanbul ignore next\n return {\n position,\n };\n });\n }\n}\n"]}
@@ -104,7 +104,6 @@ class FrontstageDef {
104
104
  }
105
105
  }
106
106
  populateStateMaps(nineZone, panelMap, widgetMap) {
107
- var _a;
108
107
  for (const panelSide of Panel_1.panelSides) {
109
108
  const panel = nineZone.panels[panelSide];
110
109
  const location = this.toStagePanelLocation(panelSide);
@@ -128,7 +127,7 @@ class FrontstageDef {
128
127
  continue;
129
128
  }
130
129
  }
131
- if (((_a = nineZone.draggedTab) === null || _a === void 0 ? void 0 : _a.tabId) === widgetId) {
130
+ if (nineZone.draggedTab?.tabId === widgetId) {
132
131
  widgetMap.set(widgetDef, WidgetState_1.WidgetState.Closed);
133
132
  continue;
134
133
  }
@@ -186,8 +185,8 @@ class FrontstageDef {
186
185
  }
187
186
  handlePopouts(oldState) {
188
187
  const newState = this.nineZoneState;
189
- const oldPopouts = (oldState === null || oldState === void 0 ? void 0 : oldState.popoutWidgets.allIds) || [];
190
- const newPopouts = (newState === null || newState === void 0 ? void 0 : newState.popoutWidgets.allIds) || [];
188
+ const oldPopouts = oldState?.popoutWidgets.allIds || [];
189
+ const newPopouts = newState?.popoutWidgets.allIds || [];
191
190
  const popoutsToClose = oldPopouts.filter((p) => !newPopouts.includes(p));
192
191
  const popoutsToOpen = newPopouts.filter((p) => !oldPopouts.includes(p));
193
192
  for (const popoutId of popoutsToClose) {
@@ -229,13 +228,12 @@ class FrontstageDef {
229
228
  }
230
229
  /** @internal */
231
230
  get dispatch() {
232
- var _a;
233
- return ((_a = this._dispatch) !== null && _a !== void 0 ? _a : (this._dispatch = (action) => {
231
+ return (this._dispatch ??= (action) => {
234
232
  const state = this.nineZoneState;
235
233
  if (!state)
236
234
  return;
237
235
  this.nineZoneState = (0, NineZoneStateReducer_1.NineZoneStateReducer)(state, action);
238
- }));
236
+ });
239
237
  }
240
238
  set dispatch(dispatch) {
241
239
  this._dispatch = dispatch;
@@ -545,11 +543,10 @@ class FrontstageDef {
545
543
  * @beta
546
544
  */
547
545
  restoreLayout() {
548
- var _a, _b;
549
546
  for (const panelDef of this.panelDefs) {
550
547
  panelDef.size = panelDef.defaultSize;
551
548
  panelDef.panelState = panelDef.defaultState;
552
- panelDef.pinned = (_b = (_a = panelDef.initialConfig) === null || _a === void 0 ? void 0 : _a.pinned) !== null && _b !== void 0 ? _b : true;
549
+ panelDef.pinned = panelDef.initialConfig?.pinned ?? true;
553
550
  }
554
551
  for (const widgetDef of this.widgetDefs) {
555
552
  widgetDef.setWidgetState(widgetDef.defaultState);
@@ -562,7 +559,6 @@ class FrontstageDef {
562
559
  * @internal
563
560
  */
564
561
  getWidgetCurrentState(widgetDef) {
565
- var _a, _b;
566
562
  const state = this.nineZoneState;
567
563
  if (!state)
568
564
  return widgetDef.defaultState;
@@ -570,9 +566,9 @@ class FrontstageDef {
570
566
  if (tab && tab.unloaded) {
571
567
  return WidgetState_1.WidgetState.Unloaded;
572
568
  }
573
- const toolSettingsTabId = (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId;
569
+ const toolSettingsTabId = state.toolSettings?.tabId;
574
570
  if (toolSettingsTabId === widgetDef.id &&
575
- ((_b = state.toolSettings) === null || _b === void 0 ? void 0 : _b.type) === "docked") {
571
+ state.toolSettings?.type === "docked") {
576
572
  return WidgetState_1.WidgetState.Open;
577
573
  }
578
574
  const location = (0, TabLocation_1.getTabLocation)(state, widgetDef.id);
@@ -925,9 +921,9 @@ exports.useActiveFrontstageDef = useActiveFrontstageDef;
925
921
  */
926
922
  function useSpecificWidgetDef(widgetId) {
927
923
  const frontstageDef = useActiveFrontstageDef();
928
- const [widgetDef, setWidgetDef] = React.useState(() => frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.findWidgetDef(widgetId));
924
+ const [widgetDef, setWidgetDef] = React.useState(() => frontstageDef?.findWidgetDef(widgetId));
929
925
  React.useEffect(() => {
930
- setWidgetDef(frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.findWidgetDef(widgetId));
926
+ setWidgetDef(frontstageDef?.findWidgetDef(widgetId));
931
927
  return InternalFrontstageManager_1.InternalFrontstageManager.onFrontstageWidgetsChangedEvent.addListener((args) => {
932
928
  if (args.frontstageDef !== frontstageDef)
933
929
  return;