@itwin/appui-react 3.0.0-extension.0 → 3.0.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 (937) hide show
  1. package/CHANGELOG.md +201 -16
  2. package/LICENSE.md +1 -1
  3. package/README.md +3 -3
  4. package/lib/cjs/appui-react/UiFramework.d.ts +37 -22
  5. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/UiFramework.js +53 -38
  7. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/Calculator.js +1 -1
  15. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  17. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +5 -4
  19. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  20. package/lib/cjs/appui-react/backstage/Backstage.d.ts +0 -2
  21. package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +2 -0
  24. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageComposer.js +26 -8
  26. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  27. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
  28. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -1
  29. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  30. package/lib/cjs/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  31. package/lib/cjs/appui-react/backstage/BackstageItemProps.js +1 -1
  32. package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
  33. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  34. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +3 -3
  35. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  36. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts +2 -0
  37. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/backstage/CommandLaunch.js +1 -0
  39. package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
  40. package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
  41. package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js +5 -6
  43. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  44. package/lib/cjs/appui-react/backstage/Separator.d.ts +1 -0
  45. package/lib/cjs/appui-react/backstage/Separator.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/backstage/Separator.js +3 -2
  47. package/lib/cjs/appui-react/backstage/Separator.js.map +1 -1
  48. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  49. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +4 -5
  51. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  52. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  54. package/lib/cjs/appui-react/configurableui/state.d.ts +10 -3
  55. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/configurableui/state.js +15 -2
  57. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  58. package/lib/cjs/appui-react/content/ContentControl.d.ts +1 -1
  59. package/lib/cjs/appui-react/content/ContentControl.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/content/ContentControl.js +2 -2
  61. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  62. package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -2
  63. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/content/ContentLayout.js +4 -3
  65. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  66. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +1 -1
  67. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/content/ContentViewManager.js +3 -3
  69. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  70. package/lib/cjs/appui-react/content/IModelViewport.d.ts +13 -1
  71. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/content/IModelViewport.js +18 -5
  73. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  74. package/lib/cjs/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
  75. package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -0
  76. package/lib/cjs/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +19 -17
  77. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -0
  78. package/lib/cjs/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
  79. package/lib/cjs/appui-react/content/ViewStateHelper.d.ts.map +1 -0
  80. package/lib/cjs/appui-react/content/{SavedView.js → ViewStateHelper.js} +4 -4
  81. package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -0
  82. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts +21 -0
  83. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  84. package/lib/cjs/appui-react/content/split-pane/Pane.js +43 -0
  85. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -0
  86. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts +23 -0
  87. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  88. package/lib/cjs/appui-react/content/split-pane/Resizer.js +39 -0
  89. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -0
  90. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  91. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  92. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +243 -0
  93. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -0
  94. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +1 -2
  95. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/cursor/CursorInformation.js +1 -1
  97. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  98. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  99. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  100. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  101. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  102. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js +3 -3
  103. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  104. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  105. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -2
  107. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  108. package/lib/cjs/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/dialog/StandardMessageBox.js +3 -0
  110. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  111. package/lib/cjs/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
  112. package/lib/cjs/appui-react/dragdrop/ZoneTargets.js +8 -4
  113. package/lib/cjs/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  114. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +2 -2
  115. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/feedback/ElementTooltip.js +4 -2
  117. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  118. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +1 -0
  119. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/frontstage/Frontstage.js +32 -13
  121. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  122. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  123. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +16 -1
  125. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  126. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +20 -2
  127. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  128. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +164 -3
  129. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  130. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +3 -0
  131. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +11 -1
  133. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  134. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  135. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  136. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  137. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  138. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  139. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  140. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  141. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts +12 -9
  142. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
  143. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js +19 -21
  144. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  145. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts +6 -0
  146. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
  147. package/lib/cjs/appui-react/hooks/useUiVisibility.js +27 -0
  148. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -0
  149. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
  150. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  151. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
  152. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  153. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
  154. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  155. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +3 -2
  156. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  157. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
  158. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  159. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  160. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
  161. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  162. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +81 -68
  163. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  164. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  165. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  166. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  167. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
  169. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  170. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  171. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  172. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
  173. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  174. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +1 -1
  175. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  176. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  177. package/lib/cjs/appui-react/messages/MessageManager.d.ts +1 -2
  178. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  179. package/lib/cjs/appui-react/messages/MessageManager.js +15 -9
  180. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  181. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  182. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  183. package/lib/cjs/appui-react/messages/Pointer.js +4 -3
  184. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  185. package/lib/cjs/appui-react/messages/ToastMessage.js +2 -1
  186. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  187. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  188. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js +2 -2
  190. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  191. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  192. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  194. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  195. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
  196. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  197. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +3 -0
  198. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  199. package/lib/cjs/appui-react/pickers/ListPicker.js +24 -9
  200. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  201. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  202. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  203. package/lib/cjs/appui-react/pickers/ViewSelector.js +9 -9
  204. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  205. package/lib/cjs/appui-react/popup/CardPopup.d.ts +7 -4
  206. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  207. package/lib/cjs/appui-react/popup/CardPopup.js +3 -2
  208. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  209. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +3 -2
  210. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  211. package/lib/cjs/appui-react/popup/InputEditorPopup.js +1 -1
  212. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  213. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +6 -6
  214. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  215. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
  216. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  217. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +1 -1
  218. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  219. package/lib/cjs/appui-react/popup/PopupManager.d.ts +10 -10
  220. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  221. package/lib/cjs/appui-react/popup/PopupManager.js +4 -4
  222. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  223. package/lib/cjs/appui-react/popup/PositionPopup.d.ts +5 -3
  224. package/lib/cjs/appui-react/popup/PositionPopup.d.ts.map +1 -1
  225. package/lib/cjs/appui-react/popup/PositionPopup.js +3 -2
  226. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  227. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
  228. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  229. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +1 -1
  230. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  231. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +4 -3
  232. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  233. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  234. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  235. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  236. package/lib/cjs/appui-react/redux/SessionState.d.ts +0 -6
  237. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  238. package/lib/cjs/appui-react/redux/SessionState.js +0 -8
  239. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  240. package/lib/cjs/appui-react/redux/StateManager.d.ts +1 -1
  241. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  242. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
  243. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  244. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  245. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
  246. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  247. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  248. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +28 -19
  249. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  250. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  251. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  252. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  253. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  254. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  255. package/lib/cjs/appui-react/shared/ItemDefBase.js +1 -1
  256. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  257. package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
  258. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  259. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts +1 -1
  260. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  261. package/lib/cjs/appui-react/shared/ToolItemDef.js +2 -2
  262. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  263. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  264. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
  265. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  266. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +2 -2
  267. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  268. package/lib/cjs/appui-react/stagepanels/StagePanel.js +1 -0
  269. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  270. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +26 -3
  271. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  272. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +26 -6
  273. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  274. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  275. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
  276. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js +2 -1
  277. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  278. package/lib/cjs/appui-react/statusbar/StatusBar.js +2 -1
  279. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  280. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  281. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +17 -5
  282. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  283. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  284. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  285. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  286. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +15 -14
  287. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  288. package/lib/cjs/appui-react/statusfields/Indicator.js +23 -21
  289. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  290. package/lib/cjs/appui-react/statusfields/Indicator.scss +29 -18
  291. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  292. package/lib/cjs/appui-react/statusfields/MessageCenter.js +2 -1
  293. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  294. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +1 -0
  295. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  296. package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -4
  297. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  298. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +13 -3
  299. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -10
  300. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  301. package/lib/cjs/appui-react/statusfields/SnapMode.js +4 -34
  302. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  303. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -6
  304. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  305. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +1 -25
  306. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  307. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  308. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  309. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +13 -12
  310. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  311. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
  312. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
  313. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  314. package/lib/cjs/appui-react/syncui/BooleanListener.js +2 -1
  315. package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
  316. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
  317. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  318. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +30 -103
  319. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  320. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js +2 -1
  321. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  322. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  323. package/lib/cjs/appui-react/toolbar/ActionItemButton.js +2 -1
  324. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  325. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js +24 -20
  326. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  327. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/toolbar/GroupItem.js +33 -29
  329. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  330. package/lib/cjs/appui-react/toolbar/ToolButton.js +3 -2
  331. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  332. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  333. package/lib/cjs/appui-react/toolbar/Toolbar.js +3 -2
  334. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  335. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  336. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +22 -20
  337. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  338. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  339. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +4 -4
  340. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  341. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
  342. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js +2 -2
  343. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  344. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
  345. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  346. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -36
  347. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  348. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
  349. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  350. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +12 -20
  351. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  352. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
  353. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  354. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +39 -50
  355. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  356. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +7 -4
  357. package/lib/{esm/appui-react/uisettings → cjs/appui-react/uistate}/AppUiSettings.d.ts +11 -9
  358. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  359. package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.js +12 -8
  360. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -0
  361. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  362. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  363. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +62 -0
  364. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  365. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  366. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  367. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +38 -0
  368. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -0
  369. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +5 -5
  370. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  371. package/lib/cjs/appui-react/utils/UiShowHideManager.js +8 -8
  372. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  373. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  374. package/lib/cjs/appui-react/widget-panels/Content.js +1 -4
  375. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  376. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +98 -8
  377. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  378. package/lib/cjs/appui-react/widget-panels/Frontstage.js +104 -104
  379. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  380. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +22 -0
  381. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
  382. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +56 -0
  383. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -0
  384. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  385. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +3 -2
  386. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  387. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +0 -2
  388. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  389. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +6 -18
  390. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  391. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
  392. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  393. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +12 -2
  394. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  395. package/lib/cjs/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  396. package/lib/cjs/appui-react/widgets/NavigationWidget.js +2 -1
  397. package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
  398. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +1 -0
  399. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  400. package/lib/cjs/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  401. package/lib/cjs/appui-react/widgets/StableWidgetDef.js +1 -1
  402. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  403. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js +2 -1
  404. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  405. package/lib/cjs/appui-react/widgets/ToolWidget.js +3 -2
  406. package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
  407. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
  408. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  409. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +1 -36
  410. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  411. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
  412. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
  413. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js +5 -2
  414. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  415. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  416. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  417. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +3 -3
  418. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  419. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +2 -3
  420. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  421. package/lib/cjs/appui-react/widgets/WidgetDef.js +18 -7
  422. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  423. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  424. package/lib/cjs/appui-react/widgets/WidgetHost.js +1 -0
  425. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  426. package/lib/cjs/appui-react/widgets/WidgetStack.d.ts.map +1 -1
  427. package/lib/cjs/appui-react/widgets/WidgetStack.js +2 -0
  428. package/lib/cjs/appui-react/widgets/WidgetStack.js.map +1 -1
  429. package/lib/cjs/appui-react/zones/FrameworkZone.js.map +1 -1
  430. package/lib/cjs/appui-react/zones/StatusBarZone.js.map +1 -1
  431. package/lib/cjs/appui-react/zones/Zone.d.ts +1 -1
  432. package/lib/cjs/appui-react/zones/Zone.d.ts.map +1 -1
  433. package/lib/cjs/appui-react/zones/Zone.js +2 -1
  434. package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
  435. package/lib/cjs/appui-react/zones/ZoneDef.d.ts +4 -4
  436. package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
  437. package/lib/cjs/appui-react/zones/ZoneDef.js +5 -4
  438. package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
  439. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  440. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  441. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js +3 -2
  442. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  443. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  444. package/lib/cjs/appui-react.d.ts +16 -18
  445. package/lib/cjs/appui-react.d.ts.map +1 -1
  446. package/lib/cjs/appui-react.js +16 -18
  447. package/lib/cjs/appui-react.js.map +1 -1
  448. package/lib/esm/appui-react/UiFramework.d.ts +37 -22
  449. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  450. package/lib/esm/appui-react/UiFramework.js +52 -37
  451. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  452. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  453. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  454. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  455. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  456. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  457. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  458. package/lib/esm/appui-react/accudraw/Calculator.js +1 -1
  459. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  460. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  461. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  462. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +6 -5
  463. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  464. package/lib/esm/appui-react/backstage/Backstage.d.ts +0 -2
  465. package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
  466. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  467. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +2 -0
  468. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  469. package/lib/esm/appui-react/backstage/BackstageComposer.js +27 -9
  470. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  471. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
  472. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -1
  473. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  474. package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  475. package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
  476. package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
  477. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  478. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +3 -3
  479. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  480. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts +2 -0
  481. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  482. package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -0
  483. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  484. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
  485. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  486. package/lib/esm/appui-react/backstage/FrontstageLaunch.js +5 -6
  487. package/lib/esm/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  488. package/lib/esm/appui-react/backstage/Separator.d.ts +1 -0
  489. package/lib/esm/appui-react/backstage/Separator.d.ts.map +1 -1
  490. package/lib/esm/appui-react/backstage/Separator.js +3 -2
  491. package/lib/esm/appui-react/backstage/Separator.js.map +1 -1
  492. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  493. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  494. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +4 -5
  495. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  496. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  497. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  498. package/lib/esm/appui-react/configurableui/state.d.ts +10 -3
  499. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  500. package/lib/esm/appui-react/configurableui/state.js +15 -2
  501. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  502. package/lib/esm/appui-react/content/ContentControl.d.ts +1 -1
  503. package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
  504. package/lib/esm/appui-react/content/ContentControl.js +1 -1
  505. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  506. package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -2
  507. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  508. package/lib/esm/appui-react/content/ContentLayout.js +3 -2
  509. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  510. package/lib/esm/appui-react/content/ContentViewManager.d.ts +1 -1
  511. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  512. package/lib/esm/appui-react/content/ContentViewManager.js +1 -1
  513. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  514. package/lib/esm/appui-react/content/IModelViewport.d.ts +13 -1
  515. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  516. package/lib/esm/appui-react/content/IModelViewport.js +16 -4
  517. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  518. package/lib/esm/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
  519. package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -0
  520. package/lib/esm/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +17 -15
  521. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -0
  522. package/lib/esm/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
  523. package/lib/esm/appui-react/content/ViewStateHelper.d.ts.map +1 -0
  524. package/lib/esm/appui-react/content/{SavedView.js → ViewStateHelper.js} +2 -2
  525. package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -0
  526. package/lib/esm/appui-react/content/split-pane/Pane.d.ts +21 -0
  527. package/lib/esm/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  528. package/lib/esm/appui-react/content/split-pane/Pane.js +39 -0
  529. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -0
  530. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts +23 -0
  531. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  532. package/lib/esm/appui-react/content/split-pane/Resizer.js +35 -0
  533. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -0
  534. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  535. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  536. package/lib/esm/appui-react/content/split-pane/SplitPane.js +239 -0
  537. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -0
  538. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +1 -2
  539. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  540. package/lib/esm/appui-react/cursor/CursorInformation.js +2 -2
  541. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  542. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  543. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  544. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  545. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  546. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +2 -2
  547. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  548. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  549. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  550. package/lib/esm/appui-react/dialog/DialogManagerBase.js +1 -1
  551. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  552. package/lib/esm/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
  553. package/lib/esm/appui-react/dialog/StandardMessageBox.js +3 -0
  554. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  555. package/lib/esm/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
  556. package/lib/esm/appui-react/dragdrop/ZoneTargets.js +8 -4
  557. package/lib/esm/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  558. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +2 -2
  559. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  560. package/lib/esm/appui-react/feedback/ElementTooltip.js +4 -2
  561. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  562. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +1 -0
  563. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  564. package/lib/esm/appui-react/frontstage/Frontstage.js +32 -13
  565. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  566. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  567. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  568. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +16 -1
  569. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  570. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +20 -2
  571. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  572. package/lib/esm/appui-react/frontstage/FrontstageDef.js +166 -5
  573. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  574. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +3 -0
  575. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  576. package/lib/esm/appui-react/frontstage/FrontstageManager.js +11 -1
  577. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  578. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  579. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  580. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  581. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  582. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  583. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  584. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  585. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts +12 -9
  586. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
  587. package/lib/esm/appui-react/hooks/useFrameworkVersion.js +19 -21
  588. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  589. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts +6 -0
  590. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
  591. package/lib/esm/appui-react/hooks/useUiVisibility.js +23 -0
  592. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -0
  593. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
  594. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  595. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
  596. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  597. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
  598. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  599. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +3 -2
  600. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  601. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
  602. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  603. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  604. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
  605. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  606. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +83 -70
  607. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  608. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  609. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  610. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  611. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  612. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +2 -2
  613. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  614. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  615. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  616. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
  617. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  618. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +1 -1
  619. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  620. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  621. package/lib/esm/appui-react/messages/MessageManager.d.ts +1 -2
  622. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  623. package/lib/esm/appui-react/messages/MessageManager.js +9 -3
  624. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  625. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  626. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  627. package/lib/esm/appui-react/messages/Pointer.js +4 -3
  628. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  629. package/lib/esm/appui-react/messages/ToastMessage.js +2 -1
  630. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  631. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  632. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  633. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js +1 -1
  634. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  635. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  636. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  637. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  638. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  639. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
  640. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  641. package/lib/esm/appui-react/pickers/ListPicker.d.ts +3 -0
  642. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  643. package/lib/esm/appui-react/pickers/ListPicker.js +23 -9
  644. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  645. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  646. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  647. package/lib/esm/appui-react/pickers/ViewSelector.js +7 -7
  648. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  649. package/lib/esm/appui-react/popup/CardPopup.d.ts +7 -4
  650. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  651. package/lib/esm/appui-react/popup/CardPopup.js +3 -2
  652. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  653. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +3 -2
  654. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  655. package/lib/esm/appui-react/popup/InputEditorPopup.js +1 -1
  656. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  657. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +7 -7
  658. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  659. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
  660. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  661. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +1 -1
  662. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  663. package/lib/esm/appui-react/popup/PopupManager.d.ts +10 -10
  664. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  665. package/lib/esm/appui-react/popup/PopupManager.js +5 -5
  666. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  667. package/lib/esm/appui-react/popup/PositionPopup.d.ts +5 -3
  668. package/lib/esm/appui-react/popup/PositionPopup.d.ts.map +1 -1
  669. package/lib/esm/appui-react/popup/PositionPopup.js +3 -2
  670. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  671. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
  672. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  673. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +1 -1
  674. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  675. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +4 -3
  676. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  677. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  678. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  679. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  680. package/lib/esm/appui-react/redux/SessionState.d.ts +0 -6
  681. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  682. package/lib/esm/appui-react/redux/SessionState.js +0 -8
  683. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  684. package/lib/esm/appui-react/redux/StateManager.d.ts +1 -1
  685. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  686. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
  687. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  688. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  689. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
  690. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  691. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  692. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +28 -19
  693. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  694. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  695. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  696. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  697. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  698. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  699. package/lib/esm/appui-react/shared/ItemDefBase.js +1 -1
  700. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  701. package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
  702. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  703. package/lib/esm/appui-react/shared/ToolItemDef.d.ts +1 -1
  704. package/lib/esm/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  705. package/lib/esm/appui-react/shared/ToolItemDef.js +2 -2
  706. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  707. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  708. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
  709. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  710. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +2 -2
  711. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  712. package/lib/esm/appui-react/stagepanels/StagePanel.js +1 -0
  713. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  714. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +26 -3
  715. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  716. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +25 -5
  717. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  718. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  719. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
  720. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js +2 -1
  721. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  722. package/lib/esm/appui-react/statusbar/StatusBar.js +2 -1
  723. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  724. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  725. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +17 -5
  726. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  727. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  728. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  729. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  730. package/lib/esm/appui-react/statusfields/Indicator.d.ts +15 -14
  731. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  732. package/lib/esm/appui-react/statusfields/Indicator.js +23 -21
  733. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  734. package/lib/esm/appui-react/statusfields/Indicator.scss +29 -18
  735. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  736. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -1
  737. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  738. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +1 -0
  739. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  740. package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -4
  741. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  742. package/lib/esm/appui-react/statusfields/SelectionScope.scss +13 -3
  743. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -10
  744. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  745. package/lib/esm/appui-react/statusfields/SnapMode.js +5 -35
  746. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  747. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -6
  748. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  749. package/lib/esm/appui-react/statusfields/ViewAttributes.js +2 -26
  750. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  751. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  752. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  753. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -13
  754. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  755. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
  756. package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
  757. package/lib/esm/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  758. package/lib/esm/appui-react/syncui/BooleanListener.js +2 -1
  759. package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
  760. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
  761. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  762. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +29 -101
  763. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  764. package/lib/esm/appui-react/toolbar/ActionButtonItem.js +2 -1
  765. package/lib/esm/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  766. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  767. package/lib/esm/appui-react/toolbar/ActionItemButton.js +2 -1
  768. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  769. package/lib/esm/appui-react/toolbar/GroupButtonItem.js +24 -20
  770. package/lib/esm/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  771. package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  772. package/lib/esm/appui-react/toolbar/GroupItem.js +33 -29
  773. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  774. package/lib/esm/appui-react/toolbar/ToolButton.js +3 -2
  775. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  776. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  777. package/lib/esm/appui-react/toolbar/Toolbar.js +3 -2
  778. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  779. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  780. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +22 -20
  781. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  782. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  783. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +4 -4
  784. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  785. package/lib/esm/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
  786. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js +2 -2
  787. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  788. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
  789. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  790. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +18 -37
  791. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  792. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
  793. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  794. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +13 -21
  795. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  796. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
  797. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  798. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +40 -51
  799. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  800. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +7 -4
  801. package/lib/{cjs/appui-react/uisettings → esm/appui-react/uistate}/AppUiSettings.d.ts +11 -9
  802. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  803. package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.js +13 -9
  804. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -0
  805. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  806. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  807. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +58 -0
  808. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  809. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  810. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  811. package/lib/esm/appui-react/uistate/useUiStateStorage.js +33 -0
  812. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -0
  813. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +5 -5
  814. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  815. package/lib/esm/appui-react/utils/UiShowHideManager.js +9 -9
  816. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  817. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  818. package/lib/esm/appui-react/widget-panels/Content.js +1 -4
  819. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  820. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +98 -8
  821. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  822. package/lib/esm/appui-react/widget-panels/Frontstage.js +104 -103
  823. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  824. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +22 -0
  825. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
  826. package/lib/esm/appui-react/widgets/BackstageAppButton.js +52 -0
  827. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -0
  828. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  829. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +2 -1
  830. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  831. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +0 -2
  832. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  833. package/lib/esm/appui-react/widgets/BasicToolWidget.js +4 -15
  834. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  835. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
  836. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  837. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +11 -1
  838. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  839. package/lib/esm/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  840. package/lib/esm/appui-react/widgets/NavigationWidget.js +2 -1
  841. package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
  842. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +1 -0
  843. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  844. package/lib/esm/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  845. package/lib/esm/appui-react/widgets/StableWidgetDef.js +1 -1
  846. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  847. package/lib/esm/appui-react/widgets/ToolSettingsContent.js +2 -1
  848. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  849. package/lib/esm/appui-react/widgets/ToolWidget.js +3 -2
  850. package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
  851. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
  852. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  853. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +2 -36
  854. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  855. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
  856. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
  857. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js +5 -2
  858. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  859. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  860. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  861. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +2 -2
  862. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  863. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +2 -3
  864. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  865. package/lib/esm/appui-react/widgets/WidgetDef.js +18 -7
  866. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  867. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  868. package/lib/esm/appui-react/widgets/WidgetHost.js +1 -0
  869. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  870. package/lib/esm/appui-react/widgets/WidgetStack.d.ts.map +1 -1
  871. package/lib/esm/appui-react/widgets/WidgetStack.js +2 -0
  872. package/lib/esm/appui-react/widgets/WidgetStack.js.map +1 -1
  873. package/lib/esm/appui-react/zones/FrameworkZone.js.map +1 -1
  874. package/lib/esm/appui-react/zones/StatusBarZone.js.map +1 -1
  875. package/lib/esm/appui-react/zones/Zone.d.ts +1 -1
  876. package/lib/esm/appui-react/zones/Zone.d.ts.map +1 -1
  877. package/lib/esm/appui-react/zones/Zone.js +2 -1
  878. package/lib/esm/appui-react/zones/Zone.js.map +1 -1
  879. package/lib/esm/appui-react/zones/ZoneDef.d.ts +4 -4
  880. package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
  881. package/lib/esm/appui-react/zones/ZoneDef.js +5 -4
  882. package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
  883. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  884. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  885. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js +2 -1
  886. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  887. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  888. package/lib/esm/appui-react.d.ts +16 -18
  889. package/lib/esm/appui-react.d.ts.map +1 -1
  890. package/lib/esm/appui-react.js +16 -18
  891. package/lib/esm/appui-react.js.map +1 -1
  892. package/lib/public/locales/en/UiFramework.json +9 -2
  893. package/package.json +45 -53
  894. package/lib/cjs/appui-react/UserInfo.d.ts +0 -58
  895. package/lib/cjs/appui-react/UserInfo.d.ts.map +0 -1
  896. package/lib/cjs/appui-react/UserInfo.js +0 -34
  897. package/lib/cjs/appui-react/UserInfo.js.map +0 -1
  898. package/lib/cjs/appui-react/content/SavedView.d.ts.map +0 -1
  899. package/lib/cjs/appui-react/content/SavedView.js.map +0 -1
  900. package/lib/cjs/appui-react/content/SavedViewLayout.d.ts.map +0 -1
  901. package/lib/cjs/appui-react/content/SavedViewLayout.js.map +0 -1
  902. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
  903. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
  904. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js +0 -34
  905. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
  906. package/lib/cjs/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  907. package/lib/cjs/appui-react/uisettings/AppUiSettings.js.map +0 -1
  908. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
  909. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  910. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js +0 -74
  911. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  912. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts +0 -21
  913. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  914. package/lib/cjs/appui-react/uisettings/useUiSettings.js +0 -28
  915. package/lib/cjs/appui-react/uisettings/useUiSettings.js.map +0 -1
  916. package/lib/esm/appui-react/UserInfo.d.ts +0 -58
  917. package/lib/esm/appui-react/UserInfo.d.ts.map +0 -1
  918. package/lib/esm/appui-react/UserInfo.js +0 -30
  919. package/lib/esm/appui-react/UserInfo.js.map +0 -1
  920. package/lib/esm/appui-react/content/SavedView.d.ts.map +0 -1
  921. package/lib/esm/appui-react/content/SavedView.js.map +0 -1
  922. package/lib/esm/appui-react/content/SavedViewLayout.d.ts.map +0 -1
  923. package/lib/esm/appui-react/content/SavedViewLayout.js.map +0 -1
  924. package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
  925. package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
  926. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js +0 -31
  927. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
  928. package/lib/esm/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  929. package/lib/esm/appui-react/uisettings/AppUiSettings.js.map +0 -1
  930. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
  931. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  932. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js +0 -68
  933. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  934. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts +0 -21
  935. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  936. package/lib/esm/appui-react/uisettings/useUiSettings.js +0 -23
  937. package/lib/esm/appui-react/uisettings/useUiSettings.js.map +0 -1
@@ -0,0 +1,239 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module ContentView
7
+ */
8
+ import * as React from "react";
9
+ import classnames from "classnames";
10
+ import { Pane } from "./Pane";
11
+ import { Resizer } from "./Resizer";
12
+ function unFocus(ownerDoc) {
13
+ var _a;
14
+ // istanbul ignore next
15
+ if (!ownerDoc)
16
+ return;
17
+ const docSelection = ownerDoc.getSelection();
18
+ // istanbul ignore else
19
+ if (docSelection) {
20
+ docSelection.empty();
21
+ }
22
+ else {
23
+ // istanbul ignore next
24
+ try {
25
+ const winSelection = (_a = ownerDoc.defaultView) === null || _a === void 0 ? void 0 : _a.getSelection();
26
+ winSelection === null || winSelection === void 0 ? void 0 : winSelection.removeAllRanges();
27
+ }
28
+ catch (_e) { }
29
+ }
30
+ }
31
+ function getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {
32
+ // istanbul ignore next
33
+ if (typeof draggedSize === "number") {
34
+ const min = typeof minSize === "number" ? minSize : 0;
35
+ const max = typeof maxSize === "number" && maxSize >= 0 ? maxSize : Infinity;
36
+ return Math.max(min, Math.min(max, draggedSize));
37
+ }
38
+ if (defaultSize !== undefined) {
39
+ return defaultSize;
40
+ }
41
+ return minSize;
42
+ }
43
+ function removeNullChildren(children) {
44
+ return React.Children.toArray(children).filter((c) => c);
45
+ }
46
+ /**
47
+ * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that
48
+ * package is not regularly maintained.
49
+ * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.
50
+ * @public
51
+ */
52
+ export function SplitPane(props) {
53
+ const { style, size, defaultSize, maxSize, children, paneStyle, pane1Style, pane2Style, className, paneClassName, pane1ClassName, pane2ClassName, onDragStarted, onDragFinished, step, onChange, onResizerClick, onResizerDoubleClick, } = props;
54
+ // honor same defaults as react-split-pane
55
+ const allowResize = React.useMemo(() => undefined !== props.allowResize ? props.allowResize : true, [props.allowResize]);
56
+ const minSize = React.useMemo(() => undefined !== props.minSize ? props.minSize : 50, [props.minSize]);
57
+ const primary = React.useMemo(() => undefined !== props.primary ? props.primary : "first", [props.primary]);
58
+ const split = React.useMemo(() => undefined !== props.split ? props.split : "vertical", [props.split]);
59
+ const initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);
60
+ const [position, setPosition] = React.useState(0);
61
+ const [draggedSize, setDraggedSize] = React.useState();
62
+ const [active, setActive] = React.useState(false);
63
+ const [pane1Size, setPane1Size] = React.useState(() => primary === "first" ? initialSize : undefined);
64
+ const [pane2Size, setPane2Size] = React.useState(() => primary === "second" ? initialSize : undefined);
65
+ const splitPane = React.useRef(null);
66
+ const pane1 = React.useRef(null);
67
+ const pane2 = React.useRef(null);
68
+ const notNullChildren = React.useMemo(() => removeNullChildren(children), [children]);
69
+ React.useEffect(() => {
70
+ primary === "first" ? setPane1Size(initialSize) : setPane2Size(initialSize);
71
+ primary === "first" ? setPane2Size(undefined) : setPane1Size(undefined);
72
+ }, [initialSize, primary]);
73
+ const splitPaneStyle = React.useMemo(() => {
74
+ const directionSpecificParts = (split === "vertical") ? {
75
+ flexDirection: "row",
76
+ left: 0,
77
+ right: 0,
78
+ } : {
79
+ bottom: 0,
80
+ flexDirection: "column",
81
+ minHeight: "100%",
82
+ top: 0,
83
+ width: "100%",
84
+ };
85
+ return {
86
+ display: "flex",
87
+ flex: 1,
88
+ height: "100%",
89
+ position: "absolute",
90
+ outline: "none",
91
+ overflow: "hidden",
92
+ MozUserSelect: "text",
93
+ WebkitUserSelect: "text",
94
+ msUserSelect: "text",
95
+ userSelect: "text",
96
+ ...style,
97
+ ...directionSpecificParts,
98
+ };
99
+ }, [split, style]);
100
+ const pane1DivStyle = { ...paneStyle, ...pane1Style };
101
+ const pane2DivStyle = { ...paneStyle, ...pane2Style };
102
+ const resizerStyle = React.useMemo(() => { var _a; return (_a = props.resizerStyle) !== null && _a !== void 0 ? _a : {}; }, [props.resizerStyle]);
103
+ const resizerClasses = React.useMemo(() => classnames("Resizer", !allowResize && "disabled"), [allowResize]);
104
+ const splitPaneClasses = React.useMemo(() => classnames("SplitPane", className, split, !allowResize && "disabled"), [className, split, allowResize]);
105
+ const pane1Classes = React.useMemo(() => classnames("Pane1", paneClassName, pane1ClassName), [paneClassName, pane1ClassName]);
106
+ const pane2Classes = React.useMemo(() => classnames("Pane2", paneClassName, pane2ClassName), [paneClassName, pane2ClassName]);
107
+ const initializeDrag = React.useCallback((x, y) => {
108
+ var _a;
109
+ // istanbul ignore next
110
+ unFocus((_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
111
+ const newPosition = split === "vertical" ? x : y;
112
+ onDragStarted && onDragStarted();
113
+ setActive(true);
114
+ setPosition(newPosition);
115
+ }, [onDragStarted, split]);
116
+ const onTouchStart = React.useCallback((event) => {
117
+ // istanbul ignore else
118
+ if (allowResize) {
119
+ initializeDrag(event.touches[0].clientX, event.touches[0].clientY);
120
+ }
121
+ }, [allowResize, initializeDrag]);
122
+ const processMove = React.useCallback((x, y) => {
123
+ var _a, _b, _c, _d, _f, _g, _h;
124
+ // istanbul ignore next
125
+ unFocus((_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
126
+ const isPrimaryFirst = primary === "first";
127
+ const ref = isPrimaryFirst ? pane1.current : pane2.current;
128
+ const ref2 = isPrimaryFirst ? pane2.current : pane1.current;
129
+ const splitPaneDiv = splitPane.current;
130
+ // istanbul ignore else
131
+ if (ref && ref2 && splitPaneDiv) {
132
+ const node = ref;
133
+ const node2 = ref2;
134
+ // istanbul ignore else
135
+ if (node.getBoundingClientRect) {
136
+ const width = node.getBoundingClientRect().width;
137
+ const height = node.getBoundingClientRect().height;
138
+ // istanbul ignore next
139
+ const current = split === "vertical" ? x : y;
140
+ // istanbul ignore next
141
+ const oldSize = split === "vertical" ? width : height;
142
+ let positionDelta = position - current;
143
+ if (step) {
144
+ // istanbul ignore next
145
+ if (Math.abs(positionDelta) < step) {
146
+ return;
147
+ }
148
+ // Integer division
149
+ // eslint-disable-next-line no-bitwise
150
+ positionDelta = ~~(positionDelta / step) * step;
151
+ }
152
+ let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;
153
+ // istanbul ignore next
154
+ 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
+ // istanbul ignore next
156
+ 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);
157
+ // istanbul ignore next
158
+ if (pane1Order > pane2Order) {
159
+ sizeDelta = -sizeDelta;
160
+ }
161
+ let newMaxSize = maxSize;
162
+ // istanbul ignore next
163
+ if (typeof maxSize === "number" && maxSize !== undefined && maxSize <= 0) {
164
+ if (split === "vertical") {
165
+ newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;
166
+ }
167
+ else {
168
+ newMaxSize = splitPaneDiv.getBoundingClientRect().height + maxSize;
169
+ }
170
+ }
171
+ let newSize = oldSize - sizeDelta;
172
+ const newPosition = position - positionDelta;
173
+ // istanbul ignore next
174
+ if (typeof minSize === "number" && newSize < minSize) {
175
+ newSize = minSize;
176
+ }
177
+ else if (typeof newMaxSize === "number" && newMaxSize !== undefined && newSize > newMaxSize) {
178
+ newSize = newMaxSize;
179
+ }
180
+ else {
181
+ setPosition(newPosition);
182
+ }
183
+ onChange && onChange(newSize);
184
+ setDraggedSize(newSize);
185
+ isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);
186
+ }
187
+ }
188
+ }, [maxSize, minSize, onChange, position, primary, split, step]);
189
+ const onTouchMove = React.useCallback((event) => {
190
+ // istanbul ignore next
191
+ if (!allowResize || !active)
192
+ return;
193
+ processMove(event.touches[0].clientX, event.touches[0].clientY);
194
+ }, [active, allowResize, processMove]);
195
+ const onMouseMove = React.useCallback((event) => {
196
+ if (!allowResize || !active)
197
+ return;
198
+ processMove(event.clientX, event.clientY);
199
+ }, [active, allowResize, processMove]);
200
+ const onMouseDown = React.useCallback((event) => {
201
+ // istanbul ignore else
202
+ if (allowResize) {
203
+ event.preventDefault();
204
+ initializeDrag(event.clientX, event.clientY);
205
+ }
206
+ }, [allowResize, initializeDrag]);
207
+ const processResizeFinished = React.useCallback(() => {
208
+ // istanbul ignore else
209
+ if (undefined !== draggedSize && allowResize && active) {
210
+ onDragFinished && onDragFinished(draggedSize);
211
+ }
212
+ setActive(false);
213
+ }, [draggedSize, allowResize, active, onDragFinished]);
214
+ const onMouseUp = React.useCallback((event) => {
215
+ event.preventDefault();
216
+ processResizeFinished();
217
+ }, [processResizeFinished]);
218
+ React.useEffect(() => {
219
+ var _a;
220
+ // istanbul ignore next
221
+ const ownerDoc = (_a = splitPane.current) === null || _a === void 0 ? void 0 : _a.ownerDocument;
222
+ // istanbul ignore next
223
+ if (!ownerDoc)
224
+ return;
225
+ ownerDoc.addEventListener("mouseup", onMouseUp);
226
+ ownerDoc.addEventListener("mousemove", onMouseMove);
227
+ ownerDoc.addEventListener("touchmove", onTouchMove);
228
+ return () => {
229
+ ownerDoc.removeEventListener("mouseup", onMouseUp);
230
+ ownerDoc.removeEventListener("mousemove", onMouseMove);
231
+ ownerDoc.removeEventListener("touchmove", onTouchMove);
232
+ };
233
+ }, [onMouseMove, onMouseUp, onTouchMove]);
234
+ return (React.createElement("div", { className: splitPaneClasses, ref: splitPane, style: splitPaneStyle },
235
+ React.createElement(Pane, { className: pane1Classes, key: "pane1", eleRef: pane1, size: pane1Size, split: split, style: pane1DivStyle }, notNullChildren[0]),
236
+ React.createElement(Resizer, { className: resizerClasses, onClick: onResizerClick, onDoubleClick: onResizerDoubleClick, onMouseDown: onMouseDown, onTouchStart: onTouchStart, onTouchEnd: processResizeFinished, key: "resizer", split: split, style: resizerStyle }),
237
+ React.createElement(Pane, { className: pane2Classes, key: "pane2", eleRef: pane2, size: pane2Size, split: split, style: pane2DivStyle }, notNullChildren[1])));
238
+ }
239
+ //# sourceMappingURL=SplitPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { Pane } from \"./Pane\";\r\nimport { Resizer } from \"./Resizer\";\r\n\r\n/**\r\n * Props for [[SplitPane]] component\r\n * @public\r\n */\r\nexport interface SplitPaneProps {\r\n /** Pass false to disable resizing */\r\n allowResize?: boolean;\r\n /** The array of two react nodes, one for each pane. */\r\n children: React.ReactNode[];\r\n /** Determines which pane maintains its size when browser window is resized.*/\r\n primary?: \"first\" | \"second\";\r\n\r\n minSize?: string | number;\r\n /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value\r\n * (measured in pixels but state just a number). If you wrap the SplitPane into a container component\r\n * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit\r\n * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane\r\n * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer\r\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.\r\n * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border\r\n * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the\r\n * full-screen case of use. */\r\n maxSize?: string | number;\r\n /** Default initial size of primary pane */\r\n defaultSize?: string | number;\r\n /** Size of primary pane */\r\n size?: string | number;\r\n /** You can use the step prop to only allow resizing in fixed increments. */\r\n step?: number;\r\n split?: \"vertical\" | \"horizontal\";\r\n /** This callback is invoked when a drag start. */\r\n onDragStarted?: () => void;\r\n /** This callback is invoked when a drag ends. */\r\n onDragFinished?: (newSize: number) => void;\r\n /** Callback is invoked with the current drag during a drag event.*/\r\n onChange?: (newSize: number) => void;\r\n /** Callback is invoked if user clicks on Resizer. */\r\n onResizerClick?: (event: MouseEvent) => void;\r\n /** Callback is invoked if user double clicks on Resizer. */\r\n onResizerDoubleClick?: (event: MouseEvent) => void;\r\n /** Styling to be applied to the main container */\r\n style?: React.CSSProperties;\r\n /** Styling to be applied to both panes */\r\n paneStyle?: React.CSSProperties;\r\n /** Styling to be applied to the first pane, with precedence over paneStyle */\r\n pane1Style?: React.CSSProperties;\r\n /** Styling to be applied to the second pane, with precedence over paneStyle */\r\n pane2Style?: React.CSSProperties;\r\n /** Styling to be applied to the resizer bar */\r\n resizerStyle?: React.CSSProperties;\r\n /** Class name to be added to the SplitPane div */\r\n className?: string;\r\n /** Class name to be added to each Pane's div */\r\n paneClassName?: string;\r\n /** Class name to be added to Pane1's div */\r\n pane1ClassName?: string;\r\n /** Class name to be added to Pane2's div */\r\n pane2ClassName?: string;\r\n}\r\n\r\nfunction unFocus(ownerDoc: Document | undefined) {\r\n // istanbul ignore next\r\n if (!ownerDoc)\r\n return;\r\n\r\n const docSelection = ownerDoc.getSelection();\r\n // istanbul ignore else\r\n if (docSelection) {\r\n docSelection.empty();\r\n } else {\r\n // istanbul ignore next\r\n try {\r\n const winSelection = ownerDoc.defaultView?.getSelection();\r\n winSelection?.removeAllRanges();\r\n } catch (_e) { }\r\n }\r\n}\r\n\r\nfunction getDefaultSize(defaultSize?: number | string, minSize?: string | number, maxSize?: string | number, draggedSize?: number) {\r\n // istanbul ignore next\r\n if (typeof draggedSize === \"number\") {\r\n const min = typeof minSize === \"number\" ? minSize : 0;\r\n const max =\r\n typeof maxSize === \"number\" && maxSize >= 0 ? maxSize : Infinity;\r\n return Math.max(min, Math.min(max, draggedSize));\r\n }\r\n if (defaultSize !== undefined) {\r\n return defaultSize;\r\n }\r\n return minSize;\r\n}\r\n\r\nfunction removeNullChildren(children: React.ReactNode[]) {\r\n return React.Children.toArray(children).filter((c) => c);\r\n}\r\n\r\n/**\r\n * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that\r\n * package is not regularly maintained.\r\n * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.\r\n * @public\r\n */\r\nexport function SplitPane(props: SplitPaneProps) {\r\n const { style, size, defaultSize, maxSize, children,\r\n paneStyle, pane1Style, pane2Style, className,\r\n paneClassName, pane1ClassName, pane2ClassName,\r\n onDragStarted, onDragFinished, step, onChange,\r\n onResizerClick, onResizerDoubleClick,\r\n } = props;\r\n\r\n // honor same defaults as react-split-pane\r\n const allowResize = React.useMemo(() => undefined !== props.allowResize ? props.allowResize : true, [props.allowResize]);\r\n const minSize = React.useMemo(() => undefined !== props.minSize ? props.minSize : 50, [props.minSize]);\r\n const primary = React.useMemo(() => undefined !== props.primary ? props.primary : \"first\", [props.primary]);\r\n const split = React.useMemo(() => undefined !== props.split ? props.split : \"vertical\", [props.split]);\r\n const initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);\r\n\r\n const [position, setPosition] = React.useState(0);\r\n const [draggedSize, setDraggedSize] = React.useState<number | undefined>();\r\n const [active, setActive] = React.useState(false);\r\n const [pane1Size, setPane1Size] = React.useState(() => primary === \"first\" ? initialSize : undefined);\r\n const [pane2Size, setPane2Size] = React.useState(() => primary === \"second\" ? initialSize : undefined);\r\n const splitPane = React.useRef<HTMLDivElement>(null);\r\n const pane1 = React.useRef<HTMLDivElement>(null);\r\n const pane2 = React.useRef<HTMLDivElement>(null);\r\n const notNullChildren = React.useMemo(() => removeNullChildren(children), [children]);\r\n\r\n React.useEffect(() => {\r\n primary === \"first\" ? setPane1Size(initialSize) : setPane2Size(initialSize);\r\n primary === \"first\" ? setPane2Size(undefined) : setPane1Size(undefined);\r\n }, [initialSize, primary]);\r\n\r\n const splitPaneStyle = React.useMemo(() => {\r\n const directionSpecificParts = (split === \"vertical\") ? {\r\n flexDirection: \"row\",\r\n left: 0,\r\n right: 0,\r\n } : {\r\n bottom: 0,\r\n flexDirection: \"column\",\r\n minHeight: \"100%\",\r\n top: 0,\r\n width: \"100%\",\r\n };\r\n\r\n return {\r\n display: \"flex\",\r\n flex: 1,\r\n height: \"100%\",\r\n position: \"absolute\",\r\n outline: \"none\",\r\n overflow: \"hidden\",\r\n MozUserSelect: \"text\",\r\n WebkitUserSelect: \"text\",\r\n msUserSelect: \"text\",\r\n userSelect: \"text\",\r\n ...style,\r\n ...directionSpecificParts,\r\n } as React.CSSProperties;\r\n }, [split, style]);\r\n\r\n const pane1DivStyle = { ...paneStyle, ...pane1Style };\r\n const pane2DivStyle = { ...paneStyle, ...pane2Style };\r\n const resizerStyle = React.useMemo(() => props.resizerStyle ?? {}, [props.resizerStyle]);\r\n const resizerClasses = React.useMemo(() => classnames(\"Resizer\", !allowResize && \"disabled\"), [allowResize]);\r\n const splitPaneClasses = React.useMemo(() => classnames(\"SplitPane\", className, split, !allowResize && \"disabled\"), [className, split, allowResize]);\r\n const pane1Classes = React.useMemo(() => classnames(\"Pane1\", paneClassName, pane1ClassName), [paneClassName, pane1ClassName]);\r\n const pane2Classes = React.useMemo(() => classnames(\"Pane2\", paneClassName, pane2ClassName), [paneClassName, pane2ClassName]);\r\n\r\n const initializeDrag = React.useCallback((x: number, y: number) => {\r\n // istanbul ignore next\r\n unFocus(splitPane.current?.ownerDocument);\r\n const newPosition = split === \"vertical\" ? x : y;\r\n onDragStarted && onDragStarted();\r\n setActive(true);\r\n setPosition(newPosition);\r\n }, [onDragStarted, split]);\r\n\r\n const onTouchStart = React.useCallback((event: TouchEvent) => {\r\n // istanbul ignore else\r\n if (allowResize) {\r\n initializeDrag(event.touches[0].clientX, event.touches[0].clientY);\r\n }\r\n }, [allowResize, initializeDrag]);\r\n\r\n const processMove = React.useCallback((x: number, y: number) => {\r\n // istanbul ignore next\r\n unFocus(splitPane.current?.ownerDocument);\r\n const isPrimaryFirst = primary === \"first\";\r\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\r\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\r\n const splitPaneDiv = splitPane.current;\r\n\r\n // istanbul ignore else\r\n if (ref && ref2 && splitPaneDiv) {\r\n const node = ref;\r\n const node2 = ref2;\r\n // istanbul ignore else\r\n if (node.getBoundingClientRect) {\r\n const width = node.getBoundingClientRect().width;\r\n const height = node.getBoundingClientRect().height;\r\n // istanbul ignore next\r\n const current = split === \"vertical\" ? x : y;\r\n // istanbul ignore next\r\n const oldSize = split === \"vertical\" ? width : height;\r\n let positionDelta = position - current;\r\n if (step) {\r\n // istanbul ignore next\r\n if (Math.abs(positionDelta) < step) {\r\n return;\r\n }\r\n // Integer division\r\n // eslint-disable-next-line no-bitwise\r\n positionDelta = ~~(positionDelta / step) * step;\r\n }\r\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\r\n\r\n // istanbul ignore next\r\n const pane1Order = parseInt(node.ownerDocument?.defaultView?.getComputedStyle(node).order ?? \"0\", 10);\r\n // istanbul ignore next\r\n const pane2Order = parseInt(node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ?? \"0\", 10);\r\n // istanbul ignore next\r\n if (pane1Order > pane2Order) {\r\n sizeDelta = -sizeDelta;\r\n }\r\n\r\n let newMaxSize = maxSize;\r\n // istanbul ignore next\r\n if (typeof maxSize === \"number\" && maxSize !== undefined && maxSize <= 0) {\r\n if (split === \"vertical\") {\r\n newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;\r\n } else {\r\n newMaxSize = splitPaneDiv.getBoundingClientRect().height + maxSize;\r\n }\r\n }\r\n\r\n let newSize = oldSize - sizeDelta;\r\n const newPosition = position - positionDelta;\r\n\r\n // istanbul ignore next\r\n if (typeof minSize === \"number\" && newSize < minSize) {\r\n newSize = minSize;\r\n } else if (typeof newMaxSize === \"number\" && newMaxSize !== undefined && newSize > newMaxSize) {\r\n newSize = newMaxSize;\r\n } else {\r\n setPosition(newPosition);\r\n }\r\n\r\n onChange && onChange(newSize);\r\n setDraggedSize(newSize);\r\n isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);\r\n }\r\n }\r\n }, [maxSize, minSize, onChange, position, primary, split, step]);\r\n\r\n const onTouchMove = React.useCallback((event: TouchEvent) => {\r\n // istanbul ignore next\r\n if (!allowResize || !active)\r\n return;\r\n processMove(event.touches[0].clientX, event.touches[0].clientY);\r\n }, [active, allowResize, processMove]);\r\n\r\n const onMouseMove = React.useCallback((event: MouseEvent) => {\r\n if (!allowResize || !active)\r\n return;\r\n processMove(event.clientX, event.clientY);\r\n }, [active, allowResize, processMove]);\r\n\r\n const onMouseDown = React.useCallback((event: MouseEvent) => {\r\n // istanbul ignore else\r\n if (allowResize) {\r\n event.preventDefault();\r\n initializeDrag(event.clientX, event.clientY);\r\n }\r\n }, [allowResize, initializeDrag]);\r\n\r\n const processResizeFinished = React.useCallback(() => {\r\n // istanbul ignore else\r\n if (undefined !== draggedSize && allowResize && active) {\r\n onDragFinished && onDragFinished(draggedSize);\r\n }\r\n setActive(false);\r\n }, [draggedSize, allowResize, active, onDragFinished]);\r\n\r\n const onMouseUp = React.useCallback((event: MouseEvent) => {\r\n event.preventDefault();\r\n processResizeFinished();\r\n }, [processResizeFinished]);\r\n\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const ownerDoc = splitPane.current?.ownerDocument;\r\n // istanbul ignore next\r\n if (!ownerDoc)\r\n return;\r\n\r\n ownerDoc.addEventListener(\"mouseup\", onMouseUp);\r\n ownerDoc.addEventListener(\"mousemove\", onMouseMove);\r\n ownerDoc.addEventListener(\"touchmove\", onTouchMove);\r\n return () => {\r\n ownerDoc.removeEventListener(\"mouseup\", onMouseUp);\r\n ownerDoc.removeEventListener(\"mousemove\", onMouseMove);\r\n ownerDoc.removeEventListener(\"touchmove\", onTouchMove);\r\n };\r\n }, [onMouseMove, onMouseUp, onTouchMove]);\r\n\r\n return (\r\n <div\r\n className={splitPaneClasses}\r\n ref={splitPane}\r\n style={splitPaneStyle}\r\n >\r\n <Pane\r\n className={pane1Classes}\r\n key=\"pane1\"\r\n eleRef={pane1}\r\n size={pane1Size}\r\n split={split}\r\n style={pane1DivStyle}\r\n >\r\n {notNullChildren[0]}\r\n </Pane>\r\n <Resizer\r\n className={resizerClasses}\r\n onClick={onResizerClick}\r\n onDoubleClick={onResizerDoubleClick}\r\n onMouseDown={onMouseDown}\r\n onTouchStart={onTouchStart}\r\n onTouchEnd={processResizeFinished}\r\n key=\"resizer\"\r\n split={split}\r\n style={resizerStyle}\r\n />\r\n <Pane\r\n className={pane2Classes}\r\n key=\"pane2\"\r\n eleRef={pane2}\r\n size={pane2Size}\r\n split={split}\r\n style={pane2DivStyle}\r\n >\r\n {notNullChildren[1]}\r\n </Pane>\r\n </div>\r\n );\r\n}\r\n"]}
@@ -1,8 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module Cursor
3
3
  */
4
- import { PointProps, RelativePosition } from "@itwin/appui-abstract";
5
- import { UiEvent } from "@itwin/core-react";
4
+ import { PointProps, RelativePosition, UiEvent } from "@itwin/appui-abstract";
6
5
  /** Enum for Cursor Direction parts
7
6
  * @public
8
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CursorInformation.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/cursor/CursorInformation.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAS,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,GAAG,OAAS;IACZ,IAAI,MAAS;IACb,KAAK,KAAS;IACd,MAAM,IAAS;CAChB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,IAAI;IACR,GAAG,OAA2B;IAC9B,IAAI,MAA4B;IAChC,KAAK,KAA6B;IAClC,MAAM,IAA8B;IACpC,OAAO,OAAuD;IAC9D,QAAQ,OAAwD;IAChE,UAAU,MAA0D;IACpE,WAAW,KAA2D;CACvE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,sBAAsB,CAAC;CAAI;AAE3E;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,eAAe,CAAsB;IACpD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAgD;IAE/E,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAgC;IAEhE,2BAA2B;IAC3B,WAAkB,cAAc,IAAI,UAAU,CAAiC;IAC/E,WAAkB,cAAc,CAAC,EAAE,EAAE,UAAU,EAA8C;IAE7F,kCAAkC;IAClC,WAAkB,OAAO,IAAI,MAAM,CAAmC;IACtE,kCAAkC;IAClC,WAAkB,OAAO,IAAI,MAAM,CAAmC;IAEtE,kDAAkD;IAClD,WAAkB,eAAe,IAAI,eAAe,CAAkC;IAEtF,uCAAuC;IACvC,gBAAuB,oBAAoB,qBAA4B;IAEvE,0GAA0G;WAC5F,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAUtD,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAQ9C,OAAO,CAAC,MAAM,CAAC,aAAa;IAwB5B,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAkBxC,gEAAgE;WAClD,sCAAsC,CAAC,eAAe,EAAE,eAAe,GAAG,gBAAgB;IAiCxG,8BAA8B;WAChB,qBAAqB,IAAI,IAAI;CAG5C"}
1
+ {"version":3,"file":"CursorInformation.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/cursor/CursorInformation.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG9E;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,GAAG,OAAS;IACZ,IAAI,MAAS;IACb,KAAK,KAAS;IACd,MAAM,IAAS;CAChB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,IAAI;IACR,GAAG,OAA2B;IAC9B,IAAI,MAA4B;IAChC,KAAK,KAA6B;IAClC,MAAM,IAA8B;IACpC,OAAO,OAAuD;IAC9D,QAAQ,OAAwD;IAChE,UAAU,MAA0D;IACpE,WAAW,KAA2D;CACvE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,sBAAsB,CAAC;CAAI;AAE3E;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,eAAe,CAAsB;IACpD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAgD;IAE/E,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAgC;IAEhE,2BAA2B;IAC3B,WAAkB,cAAc,IAAI,UAAU,CAAiC;IAC/E,WAAkB,cAAc,CAAC,EAAE,EAAE,UAAU,EAA8C;IAE7F,kCAAkC;IAClC,WAAkB,OAAO,IAAI,MAAM,CAAmC;IACtE,kCAAkC;IAClC,WAAkB,OAAO,IAAI,MAAM,CAAmC;IAEtE,kDAAkD;IAClD,WAAkB,eAAe,IAAI,eAAe,CAAkC;IAEtF,uCAAuC;IACvC,gBAAuB,oBAAoB,qBAA4B;IAEvE,0GAA0G;WAC5F,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAUtD,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAQ9C,OAAO,CAAC,MAAM,CAAC,aAAa;IAwB5B,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAkBxC,gEAAgE;WAClD,sCAAsC,CAAC,eAAe,EAAE,eAAe,GAAG,gBAAgB;IAiCxG,8BAA8B;WAChB,qBAAqB,IAAI,IAAI;CAG5C"}
@@ -5,8 +5,8 @@
5
5
  /** @packageDocumentation
6
6
  * @module Cursor
7
7
  */
8
- import { RelativePosition } from "@itwin/appui-abstract";
9
- import { Point, UiEvent } from "@itwin/core-react";
8
+ import { RelativePosition, UiEvent } from "@itwin/appui-abstract";
9
+ import { Point } from "@itwin/core-react";
10
10
  /** Enum for Cursor Direction parts
11
11
  * @public
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CursorInformation.js","sourceRoot":"","sources":["../../../../src/appui-react/cursor/CursorInformation.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\r\nimport { Point, UiEvent } from \"@itwin/core-react\";\r\n\r\n/** Enum for Cursor Direction parts\r\n * @public\r\n */\r\nexport enum CursorDirectionParts {\r\n Top = 0x1000,\r\n Left = 0x0100,\r\n Right = 0x0010,\r\n Bottom = 0x0001,\r\n}\r\n\r\n/** Enum for Cursor Direction\r\n * @public\r\n */\r\nexport enum CursorDirection {\r\n None = 0,\r\n Top = CursorDirectionParts.Top,\r\n Left = CursorDirectionParts.Left,\r\n Right = CursorDirectionParts.Right,\r\n Bottom = CursorDirectionParts.Bottom,\r\n TopLeft = CursorDirectionParts.Top | CursorDirectionParts.Left,\r\n TopRight = CursorDirectionParts.Top | CursorDirectionParts.Right,\r\n BottomLeft = CursorDirectionParts.Bottom | CursorDirectionParts.Left,\r\n BottomRight = CursorDirectionParts.Bottom | CursorDirectionParts.Right,\r\n}\r\n\r\n/** Cursor Updated Event Args interface.\r\n * @public\r\n */\r\nexport interface CursorUpdatedEventArgs {\r\n oldPt: PointProps;\r\n newPt: PointProps;\r\n direction: CursorDirection;\r\n}\r\n\r\n/** Cursor Updated Event class.\r\n * @public\r\n */\r\nexport class CursorUpdatedEvent extends UiEvent<CursorUpdatedEventArgs> { }\r\n\r\n/** Cursor Information class\r\n * @public\r\n */\r\nexport class CursorInformation {\r\n private static _cursorPosition: Point = new Point();\r\n private static _cursorDirection: CursorDirection = CursorDirection.BottomRight;\r\n\r\n private static _cursorDirections = new Array<CursorDirection>();\r\n\r\n /** The cursor position. */\r\n public static get cursorPosition(): PointProps { return this._cursorPosition; }\r\n public static set cursorPosition(pt: PointProps) { this._cursorPosition = Point.create(pt); }\r\n\r\n /** Gets the cursor X position. */\r\n public static get cursorX(): number { return this._cursorPosition.x; }\r\n /** Gets the cursor Y position. */\r\n public static get cursorY(): number { return this._cursorPosition.y; }\r\n\r\n /** Gets the general cursor movement direction. */\r\n public static get cursorDirection(): CursorDirection { return this._cursorDirection; }\r\n\r\n /** Gets the [[CursorUpdatedEvent]]. */\r\n public static readonly onCursorUpdatedEvent = new CursorUpdatedEvent();\r\n\r\n /** Handles the mouse movement. Sets the cursor position and direction and emits onCursorUpdatedEvent. */\r\n public static handleMouseMove(point: PointProps): void {\r\n const oldPt = CursorInformation.cursorPosition;\r\n const direction = this._determineMostFrequentDirection(this._cursorDirections, this._cursorPosition, Point.create(point));\r\n\r\n this.cursorPosition = point;\r\n this._cursorDirection = direction;\r\n\r\n this.onCursorUpdatedEvent.emit({ oldPt, newPt: point, direction });\r\n }\r\n\r\n private static _determineMostFrequentDirection(cursorDirections: CursorDirection[], oldPt: Point, newPt: Point): CursorDirection {\r\n const cursorDirection = this._determineCursorDirection(oldPt, newPt);\r\n cursorDirections.push(cursorDirection);\r\n if (cursorDirections.length > 10)\r\n cursorDirections.shift();\r\n return this._mostFrequent(cursorDirections);\r\n }\r\n\r\n private static _mostFrequent(array: CursorDirection[]): CursorDirection {\r\n const hashMap = new Map<CursorDirection, number>();\r\n let maxCount = 0, mostFrequent = CursorDirection.None;\r\n\r\n array.forEach((value: CursorDirection) => {\r\n const key = value;\r\n let frequency = hashMap.get(key);\r\n\r\n if (frequency !== undefined)\r\n frequency++;\r\n else\r\n frequency = 1;\r\n\r\n hashMap.set(key, frequency);\r\n\r\n if (frequency > maxCount) {\r\n mostFrequent = key;\r\n maxCount = frequency;\r\n }\r\n });\r\n\r\n return mostFrequent;\r\n }\r\n\r\n private static _determineCursorDirection(oldPt: Point, newPt: Point): CursorDirection {\r\n let directionParts: number = 0;\r\n\r\n if (newPt.x < oldPt.x)\r\n directionParts |= CursorDirectionParts.Left;\r\n else if (newPt.x > oldPt.x)\r\n directionParts |= CursorDirectionParts.Right;\r\n\r\n if (newPt.y < oldPt.y)\r\n directionParts |= CursorDirectionParts.Top;\r\n else if (newPt.y > oldPt.y)\r\n directionParts |= CursorDirectionParts.Bottom;\r\n\r\n const direction = directionParts as CursorDirection;\r\n\r\n return direction;\r\n }\r\n\r\n /** Gets the relative position based on the cursor direction. */\r\n public static getRelativePositionFromCursorDirection(cursorDirection: CursorDirection): RelativePosition {\r\n let relativePosition: RelativePosition = RelativePosition.BottomRight;\r\n\r\n switch (cursorDirection) {\r\n case CursorDirection.Top:\r\n relativePosition = RelativePosition.Top;\r\n break;\r\n case CursorDirection.Left:\r\n relativePosition = RelativePosition.Left;\r\n break;\r\n case CursorDirection.Right:\r\n relativePosition = RelativePosition.Right;\r\n break;\r\n case CursorDirection.Bottom:\r\n relativePosition = RelativePosition.Bottom;\r\n break;\r\n case CursorDirection.TopLeft:\r\n relativePosition = RelativePosition.TopLeft;\r\n break;\r\n case CursorDirection.TopRight:\r\n relativePosition = RelativePosition.TopRight;\r\n break;\r\n case CursorDirection.BottomLeft:\r\n relativePosition = RelativePosition.BottomLeft;\r\n break;\r\n case CursorDirection.BottomRight:\r\n relativePosition = RelativePosition.BottomRight;\r\n break;\r\n }\r\n\r\n return relativePosition;\r\n }\r\n\r\n /** @internal - for testing */\r\n public static clearCursorDirections(): void {\r\n this._cursorDirections.length = 0;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"CursorInformation.js","sourceRoot":"","sources":["../../../../src/appui-react/cursor/CursorInformation.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,gBAAgB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,gEAAY,CAAA;IACZ,iEAAa,CAAA;IACb,kEAAc,CAAA;IACd,mEAAe,CAAA;AACjB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,qDAAQ,CAAA;IACR,sDAA8B,CAAA;IAC9B,uDAAgC,CAAA;IAChC,wDAAkC,CAAA;IAClC,yDAAoC,CAAA;IACpC,8DAA8D,CAAA;IAC9D,gEAAgE,CAAA;IAChE,mEAAoE,CAAA;IACpE,oEAAsE,CAAA;AACxE,CAAC,EAVW,eAAe,KAAf,eAAe,QAU1B;AAWD;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,OAA+B;CAAI;AAE3E;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAM5B,2BAA2B;IACpB,MAAM,KAAK,cAAc,KAAiB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACxE,MAAM,KAAK,cAAc,CAAC,EAAc,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7F,kCAAkC;IAC3B,MAAM,KAAK,OAAO,KAAa,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,kCAAkC;IAC3B,MAAM,KAAK,OAAO,KAAa,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,kDAAkD;IAC3C,MAAM,KAAK,eAAe,KAAsB,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAKtF,0GAA0G;IACnG,MAAM,CAAC,eAAe,CAAC,KAAiB;QAC7C,MAAM,KAAK,GAAG,iBAAiB,CAAC,cAAc,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1H,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAElC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,MAAM,CAAC,+BAA+B,CAAC,gBAAmC,EAAE,KAAY,EAAE,KAAY;QAC5G,MAAM,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrE,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,gBAAgB,CAAC,MAAM,GAAG,EAAE;YAC9B,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,KAAwB;QACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;QACnD,IAAI,QAAQ,GAAG,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC;QAEtD,KAAK,CAAC,OAAO,CAAC,CAAC,KAAsB,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,KAAK,CAAC;YAClB,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,SAAS,KAAK,SAAS;gBACzB,SAAS,EAAE,CAAC;;gBAEZ,SAAS,GAAG,CAAC,CAAC;YAEhB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAE5B,IAAI,SAAS,GAAG,QAAQ,EAAE;gBACxB,YAAY,GAAG,GAAG,CAAC;gBACnB,QAAQ,GAAG,SAAS,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,KAAY,EAAE,KAAY;QACjE,IAAI,cAAc,GAAW,CAAC,CAAC;QAE/B,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACnB,cAAc,IAAI,oBAAoB,CAAC,IAAI,CAAC;aACzC,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACxB,cAAc,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAE/C,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACnB,cAAc,IAAI,oBAAoB,CAAC,GAAG,CAAC;aACxC,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACxB,cAAc,IAAI,oBAAoB,CAAC,MAAM,CAAC;QAEhD,MAAM,SAAS,GAAG,cAAiC,CAAC;QAEpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,gEAAgE;IACzD,MAAM,CAAC,sCAAsC,CAAC,eAAgC;QACnF,IAAI,gBAAgB,GAAqB,gBAAgB,CAAC,WAAW,CAAC;QAEtE,QAAQ,eAAe,EAAE;YACvB,KAAK,eAAe,CAAC,GAAG;gBACtB,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC;gBACxC,MAAM;YACR,KAAK,eAAe,CAAC,IAAI;gBACvB,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBACzC,MAAM;YACR,KAAK,eAAe,CAAC,KAAK;gBACxB,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBAC1C,MAAM;YACR,KAAK,eAAe,CAAC,MAAM;gBACzB,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC;gBAC3C,MAAM;YACR,KAAK,eAAe,CAAC,OAAO;gBAC1B,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBAC5C,MAAM;YACR,KAAK,eAAe,CAAC,QAAQ;gBAC3B,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC;gBAC7C,MAAM;YACR,KAAK,eAAe,CAAC,UAAU;gBAC7B,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC;gBAC/C,MAAM;YACR,KAAK,eAAe,CAAC,WAAW;gBAC9B,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,CAAC;gBAChD,MAAM;SACT;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,8BAA8B;IACvB,MAAM,CAAC,qBAAqB;QACjC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;;AAtHc,iCAAe,GAAU,IAAI,KAAK,EAAE,CAAC;AACrC,kCAAgB,GAAoB,eAAe,CAAC,WAAW,CAAC;AAEhE,mCAAiB,GAAG,IAAI,KAAK,EAAmB,CAAC;AAchE,uCAAuC;AAChB,sCAAoB,GAAG,IAAI,kBAAkB,EAAE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport { PointProps, RelativePosition, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { Point } from \"@itwin/core-react\";\r\n\r\n/** Enum for Cursor Direction parts\r\n * @public\r\n */\r\nexport enum CursorDirectionParts {\r\n Top = 0x1000,\r\n Left = 0x0100,\r\n Right = 0x0010,\r\n Bottom = 0x0001,\r\n}\r\n\r\n/** Enum for Cursor Direction\r\n * @public\r\n */\r\nexport enum CursorDirection {\r\n None = 0,\r\n Top = CursorDirectionParts.Top,\r\n Left = CursorDirectionParts.Left,\r\n Right = CursorDirectionParts.Right,\r\n Bottom = CursorDirectionParts.Bottom,\r\n TopLeft = CursorDirectionParts.Top | CursorDirectionParts.Left,\r\n TopRight = CursorDirectionParts.Top | CursorDirectionParts.Right,\r\n BottomLeft = CursorDirectionParts.Bottom | CursorDirectionParts.Left,\r\n BottomRight = CursorDirectionParts.Bottom | CursorDirectionParts.Right,\r\n}\r\n\r\n/** Cursor Updated Event Args interface.\r\n * @public\r\n */\r\nexport interface CursorUpdatedEventArgs {\r\n oldPt: PointProps;\r\n newPt: PointProps;\r\n direction: CursorDirection;\r\n}\r\n\r\n/** Cursor Updated Event class.\r\n * @public\r\n */\r\nexport class CursorUpdatedEvent extends UiEvent<CursorUpdatedEventArgs> { }\r\n\r\n/** Cursor Information class\r\n * @public\r\n */\r\nexport class CursorInformation {\r\n private static _cursorPosition: Point = new Point();\r\n private static _cursorDirection: CursorDirection = CursorDirection.BottomRight;\r\n\r\n private static _cursorDirections = new Array<CursorDirection>();\r\n\r\n /** The cursor position. */\r\n public static get cursorPosition(): PointProps { return this._cursorPosition; }\r\n public static set cursorPosition(pt: PointProps) { this._cursorPosition = Point.create(pt); }\r\n\r\n /** Gets the cursor X position. */\r\n public static get cursorX(): number { return this._cursorPosition.x; }\r\n /** Gets the cursor Y position. */\r\n public static get cursorY(): number { return this._cursorPosition.y; }\r\n\r\n /** Gets the general cursor movement direction. */\r\n public static get cursorDirection(): CursorDirection { return this._cursorDirection; }\r\n\r\n /** Gets the [[CursorUpdatedEvent]]. */\r\n public static readonly onCursorUpdatedEvent = new CursorUpdatedEvent();\r\n\r\n /** Handles the mouse movement. Sets the cursor position and direction and emits onCursorUpdatedEvent. */\r\n public static handleMouseMove(point: PointProps): void {\r\n const oldPt = CursorInformation.cursorPosition;\r\n const direction = this._determineMostFrequentDirection(this._cursorDirections, this._cursorPosition, Point.create(point));\r\n\r\n this.cursorPosition = point;\r\n this._cursorDirection = direction;\r\n\r\n this.onCursorUpdatedEvent.emit({ oldPt, newPt: point, direction });\r\n }\r\n\r\n private static _determineMostFrequentDirection(cursorDirections: CursorDirection[], oldPt: Point, newPt: Point): CursorDirection {\r\n const cursorDirection = this._determineCursorDirection(oldPt, newPt);\r\n cursorDirections.push(cursorDirection);\r\n if (cursorDirections.length > 10)\r\n cursorDirections.shift();\r\n return this._mostFrequent(cursorDirections);\r\n }\r\n\r\n private static _mostFrequent(array: CursorDirection[]): CursorDirection {\r\n const hashMap = new Map<CursorDirection, number>();\r\n let maxCount = 0, mostFrequent = CursorDirection.None;\r\n\r\n array.forEach((value: CursorDirection) => {\r\n const key = value;\r\n let frequency = hashMap.get(key);\r\n\r\n if (frequency !== undefined)\r\n frequency++;\r\n else\r\n frequency = 1;\r\n\r\n hashMap.set(key, frequency);\r\n\r\n if (frequency > maxCount) {\r\n mostFrequent = key;\r\n maxCount = frequency;\r\n }\r\n });\r\n\r\n return mostFrequent;\r\n }\r\n\r\n private static _determineCursorDirection(oldPt: Point, newPt: Point): CursorDirection {\r\n let directionParts: number = 0;\r\n\r\n if (newPt.x < oldPt.x)\r\n directionParts |= CursorDirectionParts.Left;\r\n else if (newPt.x > oldPt.x)\r\n directionParts |= CursorDirectionParts.Right;\r\n\r\n if (newPt.y < oldPt.y)\r\n directionParts |= CursorDirectionParts.Top;\r\n else if (newPt.y > oldPt.y)\r\n directionParts |= CursorDirectionParts.Bottom;\r\n\r\n const direction = directionParts as CursorDirection;\r\n\r\n return direction;\r\n }\r\n\r\n /** Gets the relative position based on the cursor direction. */\r\n public static getRelativePositionFromCursorDirection(cursorDirection: CursorDirection): RelativePosition {\r\n let relativePosition: RelativePosition = RelativePosition.BottomRight;\r\n\r\n switch (cursorDirection) {\r\n case CursorDirection.Top:\r\n relativePosition = RelativePosition.Top;\r\n break;\r\n case CursorDirection.Left:\r\n relativePosition = RelativePosition.Left;\r\n break;\r\n case CursorDirection.Right:\r\n relativePosition = RelativePosition.Right;\r\n break;\r\n case CursorDirection.Bottom:\r\n relativePosition = RelativePosition.Bottom;\r\n break;\r\n case CursorDirection.TopLeft:\r\n relativePosition = RelativePosition.TopLeft;\r\n break;\r\n case CursorDirection.TopRight:\r\n relativePosition = RelativePosition.TopRight;\r\n break;\r\n case CursorDirection.BottomLeft:\r\n relativePosition = RelativePosition.BottomLeft;\r\n break;\r\n case CursorDirection.BottomRight:\r\n relativePosition = RelativePosition.BottomRight;\r\n break;\r\n }\r\n\r\n return relativePosition;\r\n }\r\n\r\n /** @internal - for testing */\r\n public static clearCursorDirections(): void {\r\n this._cursorDirections.length = 0;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CursorMenu.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAmB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKvE;;GAEG;AACH,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;GAEG;AAEH,qBAAa,eAAgB,SAAQ,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,oBAAoB,CAAC;IACzF,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IAEpC,gBAAgB;IAChB,SAAyB,KAAK,EAAE,oBAAoB,CAKlD;IAEF,OAAO,CAAC,kBAAkB,CAcxB;IAEc,iBAAiB;IAIjB,oBAAoB;IAKpC,OAAO,CAAC,aAAa,CAKnB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IA0BzC,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW,CAEjB;CACH"}
1
+ {"version":3,"file":"CursorMenu.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAmB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKvE;;GAEG;AACH,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;GAEG;AAEH,qBAAa,eAAgB,SAAQ,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,oBAAoB,CAAC;IACzF,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IAEpC,gBAAgB;IAChB,SAAyB,KAAK,EAAE,oBAAoB,CAKlD;IAEF,OAAO,CAAC,kBAAkB,CAcxB;IAEc,iBAAiB;IAIjB,oBAAoB;IAKpC,OAAO,CAAC,aAAa,CAKnB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IA0BzC,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW,CAEjB;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"CursorMenu.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonProps, GlobalContextMenu } from \"@itwin/core-react\"; // ContextSubMenu,\r\nimport { SessionStateActionId } from \"../../redux/SessionState\";\r\nimport { MenuItemHelpers, MenuItemProps } from \"../../shared/MenuItem\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\n\r\n/** State for [[CursorPopupMenu]] component\r\n * @alpha\r\n */\r\ninterface CursorPopupMenuState {\r\n menuX: number;\r\n menuY: number;\r\n menuVisible: boolean;\r\n items?: MenuItemProps[];\r\n}\r\n\r\n/** Popup Menu to show at cursor typically used by tools to provide a right-click context menu.\r\n * @alpha\r\n */\r\n// istanbul ignore next\r\nexport class CursorPopupMenu extends React.PureComponent<CommonProps, CursorPopupMenuState> {\r\n private _componentUnmounting = false; // used to ensure _handleSyncUiEvent callback is not processed after componentWillUnmount is called\r\n private _hostChildWindowId?: string;\r\n\r\n /** @internal */\r\n public override readonly state: CursorPopupMenuState = {\r\n menuX: 0,\r\n menuY: 0,\r\n menuVisible: false,\r\n items: undefined,\r\n };\r\n\r\n private _handleSyncUiEvent = (args: SyncUiEventArgs): void => {\r\n /* istanbul ignore next */\r\n if (this._componentUnmounting)\r\n return;\r\n\r\n /* istanbul ignore else */\r\n if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [SessionStateActionId.UpdateCursorMenu])) {\r\n const menuData = UiFramework.getCursorMenuData();\r\n if (menuData && this._hostChildWindowId === menuData.childWindowId) {\r\n this.setState({ menuVisible: menuData.items && menuData.items.length > 0, items: menuData.items, menuX: menuData.position.x, menuY: menuData.position.y });\r\n } else {\r\n this.setState({ menuVisible: false, items: undefined });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n }\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;\r\n // if the window is not a pop out set to undefined\r\n this._hostChildWindowId = UiFramework.childWindowManager.findChildWindowId(parentWindow);\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `Cursor Menu for ${this._hostChildWindowId ?? \"main\"} window`);\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const { menuX, menuY, items, menuVisible } = this.state;\r\n const onClose = this._hideContextMenu;\r\n\r\n return (\r\n <div className=\"uifw-cursor-menu-container-div\" ref={this._handleRefSet}>\r\n {items && items.length > 0 && menuVisible &&\r\n <GlobalContextMenu\r\n className={this.props.className}\r\n style={this.props.style}\r\n identifier=\"cursor-popup-menu\"\r\n x={menuX}\r\n y={menuY}\r\n opened={menuVisible}\r\n onEsc={onClose}\r\n onOutsideClick={onClose}\r\n edgeLimit={false}\r\n autoflip={true}\r\n >\r\n {MenuItemHelpers.createMenuItemNodes(MenuItemHelpers.createMenuItems(items, this._itemPicked))}\r\n </GlobalContextMenu>\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n private _hideContextMenu = () => {\r\n this.setState({ menuVisible: false });\r\n };\r\n\r\n private _itemPicked = (): void => {\r\n this._hideContextMenu();\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"CursorMenu.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, GlobalContextMenu } from \"@itwin/core-react\"; // ContextSubMenu,\r\nimport { SessionStateActionId } from \"../../redux/SessionState\";\r\nimport { MenuItemHelpers, MenuItemProps } from \"../../shared/MenuItem\";\r\nimport { SyncUiEventDispatcher } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\n\r\n/** State for [[CursorPopupMenu]] component\r\n * @alpha\r\n */\r\ninterface CursorPopupMenuState {\r\n menuX: number;\r\n menuY: number;\r\n menuVisible: boolean;\r\n items?: MenuItemProps[];\r\n}\r\n\r\n/** Popup Menu to show at cursor typically used by tools to provide a right-click context menu.\r\n * @alpha\r\n */\r\n// istanbul ignore next\r\nexport class CursorPopupMenu extends React.PureComponent<CommonProps, CursorPopupMenuState> {\r\n private _componentUnmounting = false; // used to ensure _handleSyncUiEvent callback is not processed after componentWillUnmount is called\r\n private _hostChildWindowId?: string;\r\n\r\n /** @internal */\r\n public override readonly state: CursorPopupMenuState = {\r\n menuX: 0,\r\n menuY: 0,\r\n menuVisible: false,\r\n items: undefined,\r\n };\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n /* istanbul ignore next */\r\n if (this._componentUnmounting)\r\n return;\r\n\r\n /* istanbul ignore else */\r\n if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [SessionStateActionId.UpdateCursorMenu])) {\r\n const menuData = UiFramework.getCursorMenuData();\r\n if (menuData && this._hostChildWindowId === menuData.childWindowId) {\r\n this.setState({ menuVisible: menuData.items && menuData.items.length > 0, items: menuData.items, menuX: menuData.position.x, menuY: menuData.position.y });\r\n } else {\r\n this.setState({ menuVisible: false, items: undefined });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n }\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;\r\n // if the window is not a pop out set to undefined\r\n this._hostChildWindowId = UiFramework.childWindowManager.findChildWindowId(parentWindow);\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `Cursor Menu for ${this._hostChildWindowId ?? \"main\"} window`);\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const { menuX, menuY, items, menuVisible } = this.state;\r\n const onClose = this._hideContextMenu;\r\n\r\n return (\r\n <div className=\"uifw-cursor-menu-container-div\" ref={this._handleRefSet}>\r\n {items && items.length > 0 && menuVisible &&\r\n <GlobalContextMenu\r\n className={this.props.className}\r\n style={this.props.style}\r\n identifier=\"cursor-popup-menu\"\r\n x={menuX}\r\n y={menuY}\r\n opened={menuVisible}\r\n onEsc={onClose}\r\n onOutsideClick={onClose}\r\n edgeLimit={false}\r\n autoflip={true}\r\n >\r\n {MenuItemHelpers.createMenuItemNodes(MenuItemHelpers.createMenuItems(items, this._itemPicked))}\r\n </GlobalContextMenu>\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n private _hideContextMenu = () => {\r\n this.setState({ menuVisible: false });\r\n };\r\n\r\n private _itemPicked = (): void => {\r\n this._hideContextMenu();\r\n };\r\n}\r\n"]}
@@ -2,8 +2,8 @@
2
2
  * @module Cursor
3
3
  */
4
4
  import * as React from "react";
5
- import { PointProps, RelativePosition } from "@itwin/appui-abstract";
6
- import { Point, Size, UiEvent } from "@itwin/core-react";
5
+ import { PointProps, RelativePosition, UiEvent } from "@itwin/appui-abstract";
6
+ import { Point, Size } from "@itwin/core-react";
7
7
  /** Options for the [[CursorPopupManager]] open method
8
8
  * @public
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CursorPopupManager.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopupManager.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CursorPopupManager.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopupManager.tsx"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@
7
7
  */
8
8
  import * as React from "react";
9
9
  import { Logger } from "@itwin/core-bentley";
10
- import { RelativePosition } from "@itwin/appui-abstract";
11
- import { Point, Size, UiEvent } from "@itwin/core-react";
10
+ import { RelativePosition, UiEvent } from "@itwin/appui-abstract";
11
+ import { Point, Size } from "@itwin/core-react";
12
12
  import { UiFramework } from "../../UiFramework";
13
13
  import { CursorPopup } from "./CursorPopup";
14
14
  /** CursorPopup Update Position Event class.
@@ -1 +1 @@
1
- {"version":3,"file":"CursorPopupManager.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopupManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\r\nimport { Point, RectangleProps, Size, SizeProps, UiEvent } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { CursorPopup } from \"./CursorPopup\";\r\n\r\n/** Options for the [[CursorPopupManager]] open method\r\n * @public\r\n */\r\nexport interface CursorPopupOptions {\r\n /** Title of the popup */\r\n title?: string;\r\n /** Called on popup close */\r\n onClose?: () => void;\r\n /** Callback to apply changes */\r\n onApply?: () => void;\r\n /** Draw shadow */\r\n shadow?: boolean;\r\n}\r\n\r\n/** CursorPopup Update Position Event Args interface.\r\n * @internal\r\n */\r\nexport interface CursorPopupUpdatePositionEventArgs {\r\n pt: PointProps;\r\n}\r\n\r\n/** CursorPopup Update Position Event class.\r\n * @internal\r\n */\r\nexport class CursorPopupUpdatePositionEvent extends UiEvent<CursorPopupUpdatePositionEventArgs> { }\r\n\r\n/** CursorPopup FadeOut Event Args interface.\r\n * @internal\r\n */\r\nexport interface CursorPopupFadeOutEventArgs {\r\n id: string;\r\n}\r\n\r\n/** CursorPopup FadeOut Event class.\r\n * @internal\r\n */\r\nexport class CursorPopupFadeOutEvent extends UiEvent<CursorPopupFadeOutEventArgs> { }\r\n\r\n/** Information maintained by CursorPopupManager about a CursorPopup\r\n * @internal\r\n */\r\ninterface CursorPopupInfo {\r\n id: string;\r\n content: React.ReactNode;\r\n relativePosition: RelativePosition;\r\n offset: Point;\r\n priority: number;\r\n options?: CursorPopupOptions;\r\n\r\n renderRelativePosition: RelativePosition;\r\n popupSize?: Size;\r\n}\r\n\r\n/** Cursor Popups Changed Event class.\r\n * @internal\r\n */\r\nclass CursorPopupsChangedEvent extends UiEvent<{}> { }\r\n\r\n/** CursorPopup component\r\n * @public\r\n */\r\nexport class CursorPopupManager {\r\n private static _popups: CursorPopupInfo[] = new Array<CursorPopupInfo>();\r\n\r\n /** @internal */\r\n public static readonly onCursorPopupUpdatePositionEvent = new CursorPopupUpdatePositionEvent();\r\n /** @internal */\r\n public static readonly onCursorPopupFadeOutEvent = new CursorPopupFadeOutEvent();\r\n /** @internal */\r\n public static readonly onCursorPopupsChangedEvent = new CursorPopupsChangedEvent();\r\n /** @internal */\r\n public static clearPopups() {\r\n this._popups.length = 0;\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n\r\n public static get popups() { return this._popups; }\r\n\r\n public static get popupCount() { return this._popups.length; }\r\n\r\n private static _emitPopupsChangedEvent(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.emit({});\r\n }\r\n\r\n private static pushPopup(popupInfo: CursorPopupInfo): void {\r\n CursorPopupManager._popups.push(popupInfo);\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n\r\n /** Called to open popup with a new set of properties\r\n */\r\n public static open(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0, options?: CursorPopupOptions) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n if (popupInfo) {\r\n popupInfo.content = content;\r\n popupInfo.offset = Point.create(offset);\r\n popupInfo.relativePosition = relativePosition;\r\n popupInfo.renderRelativePosition = relativePosition;\r\n popupInfo.priority = priority;\r\n popupInfo.options = options;\r\n } else {\r\n const newPopupInfo: CursorPopupInfo = { id, content, offset: Point.create(offset), relativePosition, options, renderRelativePosition: relativePosition, priority };\r\n CursorPopupManager.pushPopup(newPopupInfo);\r\n }\r\n\r\n CursorPopupManager.updatePosition(pt);\r\n }\r\n\r\n /** Called to update popup with a new set of properties\r\n */\r\n public static update(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n if (popupInfo) {\r\n popupInfo.content = content;\r\n popupInfo.offset = Point.create(offset);\r\n popupInfo.relativePosition = relativePosition;\r\n popupInfo.renderRelativePosition = relativePosition;\r\n popupInfo.priority = priority;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `update: Could not find popup with id of '${id}'`);\r\n }\r\n\r\n CursorPopupManager.updatePosition(pt);\r\n }\r\n\r\n /** Called to move the open popup to new location\r\n */\r\n public static updatePosition(pt: PointProps) {\r\n CursorPopupManager.resetPopupsRenderRelativePosition(Point.create(pt));\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.emit({ pt });\r\n }\r\n\r\n /** Called when tool wants to close the popup\r\n */\r\n public static close(id: string, apply: boolean, fadeOut?: boolean) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n\r\n if (popupInfo) {\r\n if (popupInfo.options) {\r\n if (apply && popupInfo.options.onApply)\r\n popupInfo.options.onApply();\r\n\r\n if (popupInfo.options.onClose)\r\n popupInfo.options.onClose();\r\n }\r\n\r\n if (fadeOut) {\r\n CursorPopupManager.onCursorPopupFadeOutEvent.emit({ id });\r\n setTimeout(() => {\r\n CursorPopupManager.removePopup(id);\r\n }, CursorPopup.fadeOutTime);\r\n\r\n } else {\r\n CursorPopupManager.removePopup(id);\r\n }\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `close: Could not find popup with id of '${id}'`);\r\n }\r\n }\r\n\r\n private static removePopup(id: string): void {\r\n const index = CursorPopupManager._popups.findIndex((popupInfo: CursorPopupInfo) => id === popupInfo.id);\r\n // istanbul ignore else\r\n if (index >= 0) {\r\n CursorPopupManager._popups.splice(index, 1);\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n }\r\n\r\n private static resetPopupsRenderRelativePosition(pt: Point) {\r\n CursorPopupManager.popups.forEach((popupInfo: CursorPopupInfo) => {\r\n popupInfo.renderRelativePosition = popupInfo.relativePosition;\r\n\r\n const flipped = CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\r\n\r\n // If flipped, call again to validate again.\r\n if (flipped) {\r\n CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\r\n }\r\n });\r\n }\r\n\r\n private static validateRenderRelativePosition(pt: Point, popupInfo: CursorPopupInfo): boolean {\r\n const popupRect = CursorPopup.getPopupRect(pt, Point.create(popupInfo.offset), popupInfo.popupSize, popupInfo.renderRelativePosition);\r\n const { outPos, flipped } = CursorPopupManager.autoFlip(popupInfo.renderRelativePosition, popupRect, window.innerWidth, window.innerHeight);\r\n\r\n if (flipped)\r\n popupInfo.renderRelativePosition = outPos;\r\n\r\n return flipped;\r\n }\r\n\r\n private static autoFlip(inPos: RelativePosition, rect: RectangleProps, windowWidth: number, windowHeight: number): { outPos: RelativePosition, flipped: boolean } {\r\n let flipped = false;\r\n let outPos = inPos;\r\n\r\n if (rect.right > windowWidth) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Top:\r\n case RelativePosition.TopRight:\r\n outPos = RelativePosition.TopLeft;\r\n break;\r\n case RelativePosition.Right:\r\n outPos = RelativePosition.Left;\r\n break;\r\n case RelativePosition.Bottom:\r\n case RelativePosition.BottomRight:\r\n outPos = RelativePosition.BottomLeft;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.left < 0) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Top:\r\n case RelativePosition.TopLeft:\r\n outPos = RelativePosition.TopRight;\r\n break;\r\n case RelativePosition.Left:\r\n outPos = RelativePosition.Right;\r\n break;\r\n case RelativePosition.Bottom:\r\n case RelativePosition.BottomLeft:\r\n outPos = RelativePosition.BottomRight;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.bottom > windowHeight) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Left:\r\n case RelativePosition.BottomLeft:\r\n outPos = RelativePosition.TopLeft;\r\n break;\r\n case RelativePosition.Bottom:\r\n outPos = RelativePosition.Top;\r\n break;\r\n case RelativePosition.Right:\r\n case RelativePosition.BottomRight:\r\n outPos = RelativePosition.TopRight;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.top < 0) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Left:\r\n case RelativePosition.TopLeft:\r\n outPos = RelativePosition.BottomLeft;\r\n break;\r\n case RelativePosition.Top:\r\n outPos = RelativePosition.Bottom;\r\n break;\r\n case RelativePosition.Right:\r\n case RelativePosition.TopRight:\r\n outPos = RelativePosition.BottomRight;\r\n break;\r\n }\r\n }\r\n\r\n return { outPos, flipped };\r\n }\r\n\r\n}\r\n\r\n/** State for the [[CursorPopupRenderer]] React component */\r\ninterface CursorPopupRendererState {\r\n pt: Point;\r\n}\r\n\r\n/** CursorPopupRenderer React component.\r\n * @public\r\n */\r\nexport class CursorPopupRenderer extends React.Component<any, CursorPopupRendererState> {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n pt: new Point(),\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (CursorPopupManager.popupCount <= 0)\r\n return null;\r\n\r\n return (\r\n <>\r\n {this.renderPositions()}\r\n </>\r\n );\r\n }\r\n\r\n private _handleSizeKnown(popupInfo: CursorPopupInfo, size: SizeProps) {\r\n popupInfo.popupSize = Size.create(size);\r\n }\r\n\r\n private renderPositions(): React.ReactNode[] {\r\n const positions = new Array<React.ReactNode>();\r\n let renderedPosition: React.ReactNode;\r\n const begin = RelativePosition.Left;\r\n const end = RelativePosition.BottomRight;\r\n\r\n for (let position = begin; position <= end; position++) {\r\n renderedPosition = this.renderRelativePosition(position);\r\n if (renderedPosition)\r\n positions.push(renderedPosition);\r\n }\r\n\r\n return positions;\r\n }\r\n\r\n private renderRelativePosition(relativePosition: RelativePosition): React.ReactNode {\r\n const filteredInfo = CursorPopupManager.popups.filter((popupInfo: CursorPopupInfo) => popupInfo.renderRelativePosition === relativePosition);\r\n\r\n if (filteredInfo.length > 0) {\r\n let totalDimension = 0;\r\n const ascending =\r\n relativePosition === RelativePosition.Right ||\r\n relativePosition === RelativePosition.BottomRight ||\r\n relativePosition === RelativePosition.Bottom ||\r\n relativePosition === RelativePosition.BottomLeft;\r\n\r\n const positionPopups = filteredInfo\r\n .sort((a: CursorPopupInfo, b: CursorPopupInfo): number => ascending ? a.priority - b.priority : b.priority - a.priority)\r\n .map((popupInfo: CursorPopupInfo, index: number) => {\r\n\r\n const title = (popupInfo.options !== undefined) ? popupInfo.options.title : \"\";\r\n const shadow = (popupInfo.options !== undefined) ? popupInfo.options.shadow : false;\r\n let offset = popupInfo.offset;\r\n\r\n if (index > 0)\r\n offset = this.adjustOffset(offset, popupInfo.renderRelativePosition, totalDimension);\r\n\r\n if (popupInfo.popupSize)\r\n totalDimension += this.getDimension(popupInfo.popupSize, relativePosition);\r\n\r\n return (\r\n <CursorPopup key={popupInfo.id}\r\n id={popupInfo.id}\r\n content={popupInfo.content}\r\n pt={this.state.pt}\r\n offset={offset}\r\n relativePosition={popupInfo.renderRelativePosition}\r\n title={title}\r\n shadow={shadow}\r\n onSizeKnown={(size: SizeProps) => this._handleSizeKnown(popupInfo, size)} />\r\n );\r\n });\r\n\r\n return (\r\n <React.Fragment key={relativePosition.toString()}>\r\n {positionPopups}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private getDimension(popupSize: Size, relativePosition: RelativePosition): number {\r\n let dimension = 0;\r\n\r\n switch (relativePosition) {\r\n case RelativePosition.Top:\r\n case RelativePosition.Bottom:\r\n case RelativePosition.TopLeft:\r\n case RelativePosition.TopRight:\r\n case RelativePosition.BottomLeft:\r\n case RelativePosition.BottomRight:\r\n dimension = popupSize.height;\r\n break;\r\n case RelativePosition.Left:\r\n case RelativePosition.Right:\r\n dimension = popupSize.width;\r\n break;\r\n }\r\n\r\n return dimension;\r\n }\r\n\r\n private adjustOffset(offset: Point, relativePosition: RelativePosition, dimension: number): Point {\r\n let outOffset = Point.create(offset.toProps());\r\n\r\n switch (relativePosition) {\r\n case RelativePosition.Top:\r\n case RelativePosition.Bottom:\r\n case RelativePosition.TopLeft:\r\n case RelativePosition.TopRight:\r\n case RelativePosition.BottomLeft:\r\n case RelativePosition.BottomRight:\r\n outOffset = Point.create({ x: offset.x, y: offset.y + dimension });\r\n break;\r\n case RelativePosition.Left:\r\n case RelativePosition.Right:\r\n outOffset = Point.create({ x: offset.x + dimension, y: offset.y });\r\n break;\r\n }\r\n\r\n return outOffset;\r\n }\r\n\r\n public override componentDidMount(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.addListener(this._handlePopupChangedEvent);\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.addListener(this._handleCursorPopupUpdatePositionEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.removeListener(this._handlePopupChangedEvent);\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.removeListener(this._handleCursorPopupUpdatePositionEvent);\r\n }\r\n\r\n private _handlePopupChangedEvent = (_args: any) => {\r\n this.forceUpdate();\r\n };\r\n\r\n private _handleCursorPopupUpdatePositionEvent = (args: CursorPopupUpdatePositionEventArgs) => {\r\n this.setState({ pt: Point.create(args.pt) });\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"CursorPopupManager.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopupManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { PointProps, RelativePosition, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { Point, RectangleProps, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { CursorPopup } from \"./CursorPopup\";\r\n\r\n/** Options for the [[CursorPopupManager]] open method\r\n * @public\r\n */\r\nexport interface CursorPopupOptions {\r\n /** Title of the popup */\r\n title?: string;\r\n /** Called on popup close */\r\n onClose?: () => void;\r\n /** Callback to apply changes */\r\n onApply?: () => void;\r\n /** Draw shadow */\r\n shadow?: boolean;\r\n}\r\n\r\n/** CursorPopup Update Position Event Args interface.\r\n * @internal\r\n */\r\nexport interface CursorPopupUpdatePositionEventArgs {\r\n pt: PointProps;\r\n}\r\n\r\n/** CursorPopup Update Position Event class.\r\n * @internal\r\n */\r\nexport class CursorPopupUpdatePositionEvent extends UiEvent<CursorPopupUpdatePositionEventArgs> { }\r\n\r\n/** CursorPopup FadeOut Event Args interface.\r\n * @internal\r\n */\r\nexport interface CursorPopupFadeOutEventArgs {\r\n id: string;\r\n}\r\n\r\n/** CursorPopup FadeOut Event class.\r\n * @internal\r\n */\r\nexport class CursorPopupFadeOutEvent extends UiEvent<CursorPopupFadeOutEventArgs> { }\r\n\r\n/** Information maintained by CursorPopupManager about a CursorPopup\r\n * @internal\r\n */\r\ninterface CursorPopupInfo {\r\n id: string;\r\n content: React.ReactNode;\r\n relativePosition: RelativePosition;\r\n offset: Point;\r\n priority: number;\r\n options?: CursorPopupOptions;\r\n\r\n renderRelativePosition: RelativePosition;\r\n popupSize?: Size;\r\n}\r\n\r\n/** Cursor Popups Changed Event class.\r\n * @internal\r\n */\r\nclass CursorPopupsChangedEvent extends UiEvent<{}> { }\r\n\r\n/** CursorPopup component\r\n * @public\r\n */\r\nexport class CursorPopupManager {\r\n private static _popups: CursorPopupInfo[] = new Array<CursorPopupInfo>();\r\n\r\n /** @internal */\r\n public static readonly onCursorPopupUpdatePositionEvent = new CursorPopupUpdatePositionEvent();\r\n /** @internal */\r\n public static readonly onCursorPopupFadeOutEvent = new CursorPopupFadeOutEvent();\r\n /** @internal */\r\n public static readonly onCursorPopupsChangedEvent = new CursorPopupsChangedEvent();\r\n /** @internal */\r\n public static clearPopups() {\r\n this._popups.length = 0;\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n\r\n public static get popups() { return this._popups; }\r\n\r\n public static get popupCount() { return this._popups.length; }\r\n\r\n private static _emitPopupsChangedEvent(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.emit({});\r\n }\r\n\r\n private static pushPopup(popupInfo: CursorPopupInfo): void {\r\n CursorPopupManager._popups.push(popupInfo);\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n\r\n /** Called to open popup with a new set of properties\r\n */\r\n public static open(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0, options?: CursorPopupOptions) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n if (popupInfo) {\r\n popupInfo.content = content;\r\n popupInfo.offset = Point.create(offset);\r\n popupInfo.relativePosition = relativePosition;\r\n popupInfo.renderRelativePosition = relativePosition;\r\n popupInfo.priority = priority;\r\n popupInfo.options = options;\r\n } else {\r\n const newPopupInfo: CursorPopupInfo = { id, content, offset: Point.create(offset), relativePosition, options, renderRelativePosition: relativePosition, priority };\r\n CursorPopupManager.pushPopup(newPopupInfo);\r\n }\r\n\r\n CursorPopupManager.updatePosition(pt);\r\n }\r\n\r\n /** Called to update popup with a new set of properties\r\n */\r\n public static update(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n if (popupInfo) {\r\n popupInfo.content = content;\r\n popupInfo.offset = Point.create(offset);\r\n popupInfo.relativePosition = relativePosition;\r\n popupInfo.renderRelativePosition = relativePosition;\r\n popupInfo.priority = priority;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `update: Could not find popup with id of '${id}'`);\r\n }\r\n\r\n CursorPopupManager.updatePosition(pt);\r\n }\r\n\r\n /** Called to move the open popup to new location\r\n */\r\n public static updatePosition(pt: PointProps) {\r\n CursorPopupManager.resetPopupsRenderRelativePosition(Point.create(pt));\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.emit({ pt });\r\n }\r\n\r\n /** Called when tool wants to close the popup\r\n */\r\n public static close(id: string, apply: boolean, fadeOut?: boolean) {\r\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\r\n\r\n if (popupInfo) {\r\n if (popupInfo.options) {\r\n if (apply && popupInfo.options.onApply)\r\n popupInfo.options.onApply();\r\n\r\n if (popupInfo.options.onClose)\r\n popupInfo.options.onClose();\r\n }\r\n\r\n if (fadeOut) {\r\n CursorPopupManager.onCursorPopupFadeOutEvent.emit({ id });\r\n setTimeout(() => {\r\n CursorPopupManager.removePopup(id);\r\n }, CursorPopup.fadeOutTime);\r\n\r\n } else {\r\n CursorPopupManager.removePopup(id);\r\n }\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `close: Could not find popup with id of '${id}'`);\r\n }\r\n }\r\n\r\n private static removePopup(id: string): void {\r\n const index = CursorPopupManager._popups.findIndex((popupInfo: CursorPopupInfo) => id === popupInfo.id);\r\n // istanbul ignore else\r\n if (index >= 0) {\r\n CursorPopupManager._popups.splice(index, 1);\r\n CursorPopupManager._emitPopupsChangedEvent();\r\n }\r\n }\r\n\r\n private static resetPopupsRenderRelativePosition(pt: Point) {\r\n CursorPopupManager.popups.forEach((popupInfo: CursorPopupInfo) => {\r\n popupInfo.renderRelativePosition = popupInfo.relativePosition;\r\n\r\n const flipped = CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\r\n\r\n // If flipped, call again to validate again.\r\n if (flipped) {\r\n CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\r\n }\r\n });\r\n }\r\n\r\n private static validateRenderRelativePosition(pt: Point, popupInfo: CursorPopupInfo): boolean {\r\n const popupRect = CursorPopup.getPopupRect(pt, Point.create(popupInfo.offset), popupInfo.popupSize, popupInfo.renderRelativePosition);\r\n const { outPos, flipped } = CursorPopupManager.autoFlip(popupInfo.renderRelativePosition, popupRect, window.innerWidth, window.innerHeight);\r\n\r\n if (flipped)\r\n popupInfo.renderRelativePosition = outPos;\r\n\r\n return flipped;\r\n }\r\n\r\n private static autoFlip(inPos: RelativePosition, rect: RectangleProps, windowWidth: number, windowHeight: number): { outPos: RelativePosition, flipped: boolean } {\r\n let flipped = false;\r\n let outPos = inPos;\r\n\r\n if (rect.right > windowWidth) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Top:\r\n case RelativePosition.TopRight:\r\n outPos = RelativePosition.TopLeft;\r\n break;\r\n case RelativePosition.Right:\r\n outPos = RelativePosition.Left;\r\n break;\r\n case RelativePosition.Bottom:\r\n case RelativePosition.BottomRight:\r\n outPos = RelativePosition.BottomLeft;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.left < 0) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Top:\r\n case RelativePosition.TopLeft:\r\n outPos = RelativePosition.TopRight;\r\n break;\r\n case RelativePosition.Left:\r\n outPos = RelativePosition.Right;\r\n break;\r\n case RelativePosition.Bottom:\r\n case RelativePosition.BottomLeft:\r\n outPos = RelativePosition.BottomRight;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.bottom > windowHeight) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Left:\r\n case RelativePosition.BottomLeft:\r\n outPos = RelativePosition.TopLeft;\r\n break;\r\n case RelativePosition.Bottom:\r\n outPos = RelativePosition.Top;\r\n break;\r\n case RelativePosition.Right:\r\n case RelativePosition.BottomRight:\r\n outPos = RelativePosition.TopRight;\r\n break;\r\n }\r\n }\r\n\r\n if (rect.top < 0) {\r\n flipped = true;\r\n switch (inPos) {\r\n case RelativePosition.Left:\r\n case RelativePosition.TopLeft:\r\n outPos = RelativePosition.BottomLeft;\r\n break;\r\n case RelativePosition.Top:\r\n outPos = RelativePosition.Bottom;\r\n break;\r\n case RelativePosition.Right:\r\n case RelativePosition.TopRight:\r\n outPos = RelativePosition.BottomRight;\r\n break;\r\n }\r\n }\r\n\r\n return { outPos, flipped };\r\n }\r\n\r\n}\r\n\r\n/** State for the [[CursorPopupRenderer]] React component */\r\ninterface CursorPopupRendererState {\r\n pt: Point;\r\n}\r\n\r\n/** CursorPopupRenderer React component.\r\n * @public\r\n */\r\nexport class CursorPopupRenderer extends React.Component<any, CursorPopupRendererState> {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n pt: new Point(),\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (CursorPopupManager.popupCount <= 0)\r\n return null;\r\n\r\n return (\r\n <>\r\n {this.renderPositions()}\r\n </>\r\n );\r\n }\r\n\r\n private _handleSizeKnown(popupInfo: CursorPopupInfo, size: SizeProps) {\r\n popupInfo.popupSize = Size.create(size);\r\n }\r\n\r\n private renderPositions(): React.ReactNode[] {\r\n const positions = new Array<React.ReactNode>();\r\n let renderedPosition: React.ReactNode;\r\n const begin = RelativePosition.Left;\r\n const end = RelativePosition.BottomRight;\r\n\r\n for (let position = begin; position <= end; position++) {\r\n renderedPosition = this.renderRelativePosition(position);\r\n if (renderedPosition)\r\n positions.push(renderedPosition);\r\n }\r\n\r\n return positions;\r\n }\r\n\r\n private renderRelativePosition(relativePosition: RelativePosition): React.ReactNode {\r\n const filteredInfo = CursorPopupManager.popups.filter((popupInfo: CursorPopupInfo) => popupInfo.renderRelativePosition === relativePosition);\r\n\r\n if (filteredInfo.length > 0) {\r\n let totalDimension = 0;\r\n const ascending =\r\n relativePosition === RelativePosition.Right ||\r\n relativePosition === RelativePosition.BottomRight ||\r\n relativePosition === RelativePosition.Bottom ||\r\n relativePosition === RelativePosition.BottomLeft;\r\n\r\n const positionPopups = filteredInfo\r\n .sort((a: CursorPopupInfo, b: CursorPopupInfo): number => ascending ? a.priority - b.priority : b.priority - a.priority)\r\n .map((popupInfo: CursorPopupInfo, index: number) => {\r\n\r\n const title = (popupInfo.options !== undefined) ? popupInfo.options.title : \"\";\r\n const shadow = (popupInfo.options !== undefined) ? popupInfo.options.shadow : false;\r\n let offset = popupInfo.offset;\r\n\r\n if (index > 0)\r\n offset = this.adjustOffset(offset, popupInfo.renderRelativePosition, totalDimension);\r\n\r\n if (popupInfo.popupSize)\r\n totalDimension += this.getDimension(popupInfo.popupSize, relativePosition);\r\n\r\n return (\r\n <CursorPopup key={popupInfo.id}\r\n id={popupInfo.id}\r\n content={popupInfo.content}\r\n pt={this.state.pt}\r\n offset={offset}\r\n relativePosition={popupInfo.renderRelativePosition}\r\n title={title}\r\n shadow={shadow}\r\n onSizeKnown={(size: SizeProps) => this._handleSizeKnown(popupInfo, size)} />\r\n );\r\n });\r\n\r\n return (\r\n <React.Fragment key={relativePosition.toString()}>\r\n {positionPopups}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private getDimension(popupSize: Size, relativePosition: RelativePosition): number {\r\n let dimension = 0;\r\n\r\n switch (relativePosition) {\r\n case RelativePosition.Top:\r\n case RelativePosition.Bottom:\r\n case RelativePosition.TopLeft:\r\n case RelativePosition.TopRight:\r\n case RelativePosition.BottomLeft:\r\n case RelativePosition.BottomRight:\r\n dimension = popupSize.height;\r\n break;\r\n case RelativePosition.Left:\r\n case RelativePosition.Right:\r\n dimension = popupSize.width;\r\n break;\r\n }\r\n\r\n return dimension;\r\n }\r\n\r\n private adjustOffset(offset: Point, relativePosition: RelativePosition, dimension: number): Point {\r\n let outOffset = Point.create(offset.toProps());\r\n\r\n switch (relativePosition) {\r\n case RelativePosition.Top:\r\n case RelativePosition.Bottom:\r\n case RelativePosition.TopLeft:\r\n case RelativePosition.TopRight:\r\n case RelativePosition.BottomLeft:\r\n case RelativePosition.BottomRight:\r\n outOffset = Point.create({ x: offset.x, y: offset.y + dimension });\r\n break;\r\n case RelativePosition.Left:\r\n case RelativePosition.Right:\r\n outOffset = Point.create({ x: offset.x + dimension, y: offset.y });\r\n break;\r\n }\r\n\r\n return outOffset;\r\n }\r\n\r\n public override componentDidMount(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.addListener(this._handlePopupChangedEvent);\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.addListener(this._handleCursorPopupUpdatePositionEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n CursorPopupManager.onCursorPopupsChangedEvent.removeListener(this._handlePopupChangedEvent);\r\n CursorPopupManager.onCursorPopupUpdatePositionEvent.removeListener(this._handleCursorPopupUpdatePositionEvent);\r\n }\r\n\r\n private _handlePopupChangedEvent = (_args: any) => {\r\n this.forceUpdate();\r\n };\r\n\r\n private _handleCursorPopupUpdatePositionEvent = (args: CursorPopupUpdatePositionEventArgs) => {\r\n this.setState({ pt: Point.create(args.pt) });\r\n };\r\n}\r\n"]}
@@ -2,7 +2,7 @@
2
2
  * @module Dialog
3
3
  */
4
4
  import * as React from "react";
5
- import { UiEvent } from "@itwin/core-react";
5
+ import { UiEvent } from "@itwin/appui-abstract";
6
6
  /** Dialog Stack Changed Event Args class.
7
7
  * @public
8
8
  */