@itwin/appui-react 4.0.0 → 4.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 (731) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/lib/cjs/appui-react/UiFramework.js +5 -9
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/_variables.scss +11 -11
  5. package/lib/cjs/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.scss +14 -14
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
  10. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +4 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +55 -55
  14. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  15. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  18. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/Calculator.scss +84 -84
  20. package/lib/cjs/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  21. package/lib/cjs/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  23. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/MenuButton.scss +18 -18
  25. package/lib/cjs/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
  26. package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
  27. package/lib/cjs/appui-react/accudraw/SquareButton.scss +29 -29
  28. package/lib/cjs/appui-react/accudraw/backspace.svg +9 -9
  29. package/lib/cjs/appui-react/accudraw/constraint-2d.svg +11 -11
  30. package/lib/cjs/appui-react/accudraw/height-2.svg +10 -10
  31. package/lib/cjs/appui-react/accudraw/height.svg +11 -11
  32. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  33. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
  34. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  35. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  36. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  37. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -1
  38. package/lib/cjs/appui-react/backstage/BackstageManager.js.map +1 -1
  39. package/lib/cjs/appui-react/backstage/InternalBackstageManager.js.map +1 -1
  40. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  41. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  42. package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
  43. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +24 -25
  44. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  45. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
  46. package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
  47. package/lib/cjs/appui-react/childwindow/PopoutWidget.scss +10 -10
  48. package/lib/cjs/appui-react/configurableui/ActivityTracker.js.map +1 -1
  49. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  50. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  51. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  52. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  53. package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
  54. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  55. package/lib/cjs/appui-react/configurableui/configurableui.scss +74 -74
  56. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  57. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  58. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  59. package/lib/cjs/appui-react/content/ContentLayout.js +6 -11
  60. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  61. package/lib/cjs/appui-react/content/ContentLayout.scss +99 -99
  62. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
  63. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  64. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +46 -46
  65. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  66. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  67. package/lib/cjs/appui-react/content/IModelViewport.js +3 -6
  68. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  69. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
  70. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  71. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  72. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  73. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
  74. package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -1
  75. package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
  76. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -1
  77. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -1
  78. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +8 -12
  79. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  80. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  81. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  82. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  83. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  84. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
  85. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  86. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  87. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
  88. package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
  89. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  90. package/lib/cjs/appui-react/dialog/ContentDialog.scss +25 -25
  91. package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
  92. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
  93. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  94. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  95. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  96. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  97. package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
  98. package/lib/cjs/appui-react/dialog/ModelessDialog.js.map +1 -1
  99. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  100. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  101. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  102. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  103. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  104. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +50 -50
  105. package/lib/cjs/appui-react/framework/FrameworkBackstage.js.map +1 -1
  106. package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  107. package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
  108. package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -1
  109. package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -1
  110. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  111. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  112. package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  113. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  114. package/lib/cjs/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  115. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +3 -4
  116. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  117. package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  118. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  119. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  120. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +80 -80
  121. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
  122. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  123. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +11 -11
  124. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  125. package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
  126. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  127. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  128. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  129. package/lib/cjs/appui-react/hooks/useActiveStageId.js.map +1 -1
  130. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  131. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  132. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  133. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  134. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  135. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  136. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  137. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
  138. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  139. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -1
  140. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  141. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  142. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  143. package/lib/cjs/appui-react/messages/ActivityMessage.js +5 -7
  144. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  145. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  146. package/lib/cjs/appui-react/messages/HollowIcon.js.map +1 -1
  147. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  148. package/lib/cjs/appui-react/messages/InputField.scss +82 -82
  149. package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
  150. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  151. package/lib/cjs/appui-react/messages/MessageSpan.js.map +1 -1
  152. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  153. package/lib/cjs/appui-react/messages/Pointer.scss +42 -42
  154. package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  155. package/lib/cjs/appui-react/messages/StatusMessageManager.js.map +1 -1
  156. package/lib/cjs/appui-react/messages/getToastCategory.js.map +1 -1
  157. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  158. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  159. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  160. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  161. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
  162. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  163. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
  164. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  165. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
  166. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  167. package/lib/cjs/appui-react/pickers/ListPicker.scss +305 -305
  168. package/lib/cjs/appui-react/pickers/ViewSelector.js +4 -4
  169. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  170. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  171. package/lib/cjs/appui-react/popup/CardPopup.scss +25 -25
  172. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  173. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  174. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
  175. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  176. package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +30 -30
  177. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  178. package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
  179. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  180. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  181. package/lib/cjs/appui-react/popup/PositionPopup.scss +28 -28
  182. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  183. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  184. package/lib/cjs/appui-react/redux/FrameworkState.js.map +1 -1
  185. package/lib/cjs/appui-react/redux/ReducerRegistry.js.map +1 -1
  186. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  187. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  188. package/lib/cjs/appui-react/redux/connectIModel.js.map +1 -1
  189. package/lib/cjs/appui-react/redux/redux-ts.js.map +1 -1
  190. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  191. package/lib/cjs/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
  192. package/lib/cjs/appui-react/safearea/SafeAreaInsets.js.map +1 -1
  193. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  194. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  195. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +1 -1
  196. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  197. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
  198. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  199. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  200. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +65 -65
  201. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  202. package/lib/cjs/appui-react/shared/AnyItemDef.js.map +1 -1
  203. package/lib/cjs/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  204. package/lib/cjs/appui-react/shared/CommandItemDef.js.map +1 -1
  205. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  206. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  207. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  208. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  209. package/lib/cjs/appui-react/shared/ItemMap.js.map +1 -1
  210. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  211. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  212. package/lib/cjs/appui-react/shared/SelectionScope.js.map +1 -1
  213. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  214. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  215. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +5 -7
  216. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  217. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  218. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  219. package/lib/cjs/appui-react/statusbar/Field.js.map +1 -1
  220. package/lib/cjs/appui-react/statusbar/Field.scss +109 -109
  221. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  222. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  223. package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
  224. package/lib/cjs/appui-react/statusbar/LabelIndicator.scss +43 -43
  225. package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
  226. package/lib/cjs/appui-react/statusbar/Overflow.scss +27 -27
  227. package/lib/cjs/appui-react/statusbar/OverflowPanel.js.map +1 -1
  228. package/lib/cjs/appui-react/statusbar/OverflowPanel.scss +22 -22
  229. package/lib/cjs/appui-react/statusbar/Popup.js.map +1 -1
  230. package/lib/cjs/appui-react/statusbar/Separator.js.map +1 -1
  231. package/lib/cjs/appui-react/statusbar/Separator.scss +12 -12
  232. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  233. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  234. package/lib/cjs/appui-react/statusbar/StatusBar.scss +41 -41
  235. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  236. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  237. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  238. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  239. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  240. package/lib/cjs/appui-react/statusbar/dialog/Button.js.map +1 -1
  241. package/lib/cjs/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  242. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
  243. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  244. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  245. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  246. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  247. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  248. package/lib/cjs/appui-react/statusfields/SectionsField.scss +35 -35
  249. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  250. package/lib/cjs/appui-react/statusfields/SelectionInfo.scss +14 -14
  251. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  252. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +46 -46
  253. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  254. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  255. package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +10 -10
  256. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  257. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
  258. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  259. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  260. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
  261. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  262. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -2
  263. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  264. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  265. package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  266. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  267. package/lib/cjs/appui-react/toolbar/DragInteraction.js.map +1 -1
  268. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  269. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  270. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  271. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  272. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  273. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  274. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  275. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  276. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  277. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  278. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  279. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +7 -14
  280. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  281. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  282. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  283. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  284. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  285. package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
  286. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +1 -2
  287. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  288. package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  289. package/lib/cjs/appui-react/toolsettings/ToolInformation.js.map +1 -1
  290. package/lib/cjs/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
  291. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  292. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +25 -18
  293. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  294. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  295. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  296. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  297. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +8 -10
  298. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  299. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  300. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  301. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  302. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  303. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  304. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  305. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  306. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  307. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
  308. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  309. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  310. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  311. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  312. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  313. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
  314. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  315. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  316. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  317. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  318. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  319. package/lib/cjs/appui-react/utils/PropsHelper.js +2 -1
  320. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  321. package/lib/cjs/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  322. package/lib/cjs/appui-react/utils/ViewUtilities.js.map +1 -1
  323. package/lib/cjs/appui-react/widget-panels/Content.js +7 -8
  324. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  325. package/lib/cjs/appui-react/widget-panels/FloatingWidget.js.map +1 -1
  326. package/lib/cjs/appui-react/widget-panels/Frontstage.js +30 -39
  327. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  328. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -19
  329. package/lib/cjs/appui-react/widget-panels/FrontstageContent.js.map +1 -1
  330. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  331. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  332. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  333. package/lib/cjs/appui-react/widget-panels/StatusBar.scss +10 -10
  334. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  335. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  336. package/lib/cjs/appui-react/widget-panels/Tab.scss +14 -14
  337. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +9 -17
  338. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  339. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +41 -41
  340. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  341. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  342. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +20 -20
  343. package/lib/cjs/appui-react/widget-panels/useTransientState.js.map +1 -1
  344. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  345. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  346. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  347. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  348. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  349. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  350. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  351. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  352. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  353. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  354. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  355. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  356. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  357. package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -1
  358. package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
  359. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
  360. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  361. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  362. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  363. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  364. package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
  365. package/lib/cjs/appui-react.js.map +1 -1
  366. package/lib/esm/appui-react/UiFramework.js +5 -9
  367. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  368. package/lib/esm/appui-react/_variables.scss +11 -11
  369. package/lib/esm/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  370. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  371. package/lib/esm/appui-react/accudraw/AccuDrawDialog.scss +14 -14
  372. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  373. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
  374. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  375. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +4 -1
  376. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  377. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +55 -55
  378. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  379. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  380. package/lib/esm/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  381. package/lib/esm/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  382. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  383. package/lib/esm/appui-react/accudraw/Calculator.scss +84 -84
  384. package/lib/esm/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  385. package/lib/esm/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  386. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  387. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  388. package/lib/esm/appui-react/accudraw/MenuButton.scss +18 -18
  389. package/lib/esm/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
  390. package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
  391. package/lib/esm/appui-react/accudraw/SquareButton.scss +29 -29
  392. package/lib/esm/appui-react/accudraw/backspace.svg +9 -9
  393. package/lib/esm/appui-react/accudraw/constraint-2d.svg +11 -11
  394. package/lib/esm/appui-react/accudraw/height-2.svg +10 -10
  395. package/lib/esm/appui-react/accudraw/height.svg +11 -11
  396. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  397. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  398. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  399. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  400. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  401. package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -1
  402. package/lib/esm/appui-react/backstage/BackstageManager.js.map +1 -1
  403. package/lib/esm/appui-react/backstage/InternalBackstageManager.js.map +1 -1
  404. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  405. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  406. package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
  407. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +24 -25
  408. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  409. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
  410. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  411. package/lib/esm/appui-react/childwindow/PopoutWidget.scss +10 -10
  412. package/lib/esm/appui-react/configurableui/ActivityTracker.js.map +1 -1
  413. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  414. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  415. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  416. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  417. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  418. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  419. package/lib/esm/appui-react/configurableui/configurableui.scss +74 -74
  420. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  421. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  422. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  423. package/lib/esm/appui-react/content/ContentLayout.js +6 -11
  424. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  425. package/lib/esm/appui-react/content/ContentLayout.scss +99 -99
  426. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  427. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  428. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +46 -46
  429. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  430. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  431. package/lib/esm/appui-react/content/IModelViewport.js +3 -6
  432. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  433. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  434. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  435. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  436. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  437. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
  438. package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -1
  439. package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
  440. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -1
  441. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -1
  442. package/lib/esm/appui-react/content/split-pane/SplitPane.js +8 -12
  443. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  444. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  445. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  446. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  447. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  448. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
  449. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  450. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  451. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
  452. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  453. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  454. package/lib/esm/appui-react/dialog/ContentDialog.scss +25 -25
  455. package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
  456. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  457. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  458. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  459. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  460. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  461. package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
  462. package/lib/esm/appui-react/dialog/ModelessDialog.js.map +1 -1
  463. package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  464. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  465. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  466. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  467. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  468. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +50 -50
  469. package/lib/esm/appui-react/framework/FrameworkBackstage.js.map +1 -1
  470. package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  471. package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
  472. package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -1
  473. package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -1
  474. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  475. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  476. package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  477. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  478. package/lib/esm/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  479. package/lib/esm/appui-react/frontstage/FrontstageDef.js +3 -4
  480. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  481. package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  482. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  483. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  484. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +80 -80
  485. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  486. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  487. package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +11 -11
  488. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  489. package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -1
  490. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  491. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  492. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  493. package/lib/esm/appui-react/hooks/useActiveStageId.js.map +1 -1
  494. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  495. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  496. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  497. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  498. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  499. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  500. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  501. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  502. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  503. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -1
  504. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  505. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  506. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  507. package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
  508. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  509. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  510. package/lib/esm/appui-react/messages/HollowIcon.js.map +1 -1
  511. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  512. package/lib/esm/appui-react/messages/InputField.scss +82 -82
  513. package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
  514. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  515. package/lib/esm/appui-react/messages/MessageSpan.js.map +1 -1
  516. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  517. package/lib/esm/appui-react/messages/Pointer.scss +42 -42
  518. package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  519. package/lib/esm/appui-react/messages/StatusMessageManager.js.map +1 -1
  520. package/lib/esm/appui-react/messages/getToastCategory.js.map +1 -1
  521. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  522. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  523. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  524. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  525. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
  526. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  527. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
  528. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  529. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
  530. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  531. package/lib/esm/appui-react/pickers/ListPicker.scss +305 -305
  532. package/lib/esm/appui-react/pickers/ViewSelector.js +4 -4
  533. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  534. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  535. package/lib/esm/appui-react/popup/CardPopup.scss +25 -25
  536. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  537. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  538. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
  539. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  540. package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +30 -30
  541. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  542. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  543. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  544. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  545. package/lib/esm/appui-react/popup/PositionPopup.scss +28 -28
  546. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  547. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  548. package/lib/esm/appui-react/redux/FrameworkState.js.map +1 -1
  549. package/lib/esm/appui-react/redux/ReducerRegistry.js.map +1 -1
  550. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  551. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  552. package/lib/esm/appui-react/redux/connectIModel.js.map +1 -1
  553. package/lib/esm/appui-react/redux/redux-ts.js.map +1 -1
  554. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  555. package/lib/esm/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
  556. package/lib/esm/appui-react/safearea/SafeAreaInsets.js.map +1 -1
  557. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  558. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  559. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +1 -1
  560. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  561. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
  562. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  563. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  564. package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +65 -65
  565. package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  566. package/lib/esm/appui-react/shared/AnyItemDef.js.map +1 -1
  567. package/lib/esm/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  568. package/lib/esm/appui-react/shared/CommandItemDef.js.map +1 -1
  569. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  570. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  571. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  572. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  573. package/lib/esm/appui-react/shared/ItemMap.js.map +1 -1
  574. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  575. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  576. package/lib/esm/appui-react/shared/SelectionScope.js.map +1 -1
  577. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  578. package/lib/esm/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  579. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +5 -7
  580. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  581. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  582. package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  583. package/lib/esm/appui-react/statusbar/Field.js.map +1 -1
  584. package/lib/esm/appui-react/statusbar/Field.scss +109 -109
  585. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  586. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  587. package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
  588. package/lib/esm/appui-react/statusbar/LabelIndicator.scss +43 -43
  589. package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
  590. package/lib/esm/appui-react/statusbar/Overflow.scss +27 -27
  591. package/lib/esm/appui-react/statusbar/OverflowPanel.js.map +1 -1
  592. package/lib/esm/appui-react/statusbar/OverflowPanel.scss +22 -22
  593. package/lib/esm/appui-react/statusbar/Popup.js.map +1 -1
  594. package/lib/esm/appui-react/statusbar/Separator.js.map +1 -1
  595. package/lib/esm/appui-react/statusbar/Separator.scss +12 -12
  596. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  597. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  598. package/lib/esm/appui-react/statusbar/StatusBar.scss +41 -41
  599. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  600. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  601. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  602. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  603. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  604. package/lib/esm/appui-react/statusbar/dialog/Button.js.map +1 -1
  605. package/lib/esm/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  606. package/lib/esm/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
  607. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  608. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  609. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  610. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  611. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  612. package/lib/esm/appui-react/statusfields/SectionsField.scss +35 -35
  613. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  614. package/lib/esm/appui-react/statusfields/SelectionInfo.scss +14 -14
  615. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  616. package/lib/esm/appui-react/statusfields/SelectionScope.scss +46 -46
  617. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  618. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  619. package/lib/esm/appui-react/statusfields/ViewAttributes.scss +10 -10
  620. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  621. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
  622. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  623. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  624. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
  625. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  626. package/lib/esm/appui-react/theme/ThemeManager.js +1 -2
  627. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  628. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  629. package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  630. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  631. package/lib/esm/appui-react/toolbar/DragInteraction.js.map +1 -1
  632. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  633. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  634. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  635. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  636. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  637. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  638. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  639. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  640. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  641. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  642. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  643. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +7 -14
  644. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  645. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  646. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  647. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  648. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  649. package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
  650. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +1 -2
  651. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  652. package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  653. package/lib/esm/appui-react/toolsettings/ToolInformation.js.map +1 -1
  654. package/lib/esm/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
  655. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  656. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +25 -18
  657. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  658. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  659. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  660. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  661. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +8 -10
  662. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  663. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  664. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  665. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  666. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  667. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  668. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  669. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  670. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  671. package/lib/esm/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
  672. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  673. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  674. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  675. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  676. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  677. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
  678. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  679. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  680. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  681. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  682. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  683. package/lib/esm/appui-react/utils/PropsHelper.js +2 -1
  684. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  685. package/lib/esm/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  686. package/lib/esm/appui-react/utils/ViewUtilities.js.map +1 -1
  687. package/lib/esm/appui-react/widget-panels/Content.js +7 -8
  688. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  689. package/lib/esm/appui-react/widget-panels/FloatingWidget.js.map +1 -1
  690. package/lib/esm/appui-react/widget-panels/Frontstage.js +30 -39
  691. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  692. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -19
  693. package/lib/esm/appui-react/widget-panels/FrontstageContent.js.map +1 -1
  694. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  695. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  696. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  697. package/lib/esm/appui-react/widget-panels/StatusBar.scss +10 -10
  698. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  699. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  700. package/lib/esm/appui-react/widget-panels/Tab.scss +14 -14
  701. package/lib/esm/appui-react/widget-panels/ToolSettings.js +9 -17
  702. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  703. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +41 -41
  704. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  705. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  706. package/lib/esm/appui-react/widget-panels/Toolbars.scss +20 -20
  707. package/lib/esm/appui-react/widget-panels/useTransientState.js.map +1 -1
  708. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  709. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  710. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  711. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  712. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  713. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  714. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  715. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  716. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  717. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  718. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  719. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  720. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  721. package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -1
  722. package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
  723. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
  724. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  725. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  726. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  727. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  728. package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -1
  729. package/lib/esm/appui-react.js.map +1 -1
  730. package/lib/public/locales/en/UiFramework.json +331 -331
  731. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"CursorPopup.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopup.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 \"./CursorPopup.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\r\nimport { CommonDivProps, CommonProps, Div, RectangleProps, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { TitleBar } from \"@itwin/appui-layout-react\";\r\nimport { CursorPopupFadeOutEventArgs, CursorPopupManager } from \"./CursorPopupManager\";\r\n\r\n/** Properties for the [[CursorPopup]] React component\r\n * @public\r\n */\r\nexport interface CursorPopupProps extends CommonProps {\r\n id: string;\r\n content: React.ReactNode;\r\n pt: PointProps;\r\n offset: PointProps;\r\n relativePosition: RelativePosition;\r\n title?: string;\r\n shadow?: boolean;\r\n /** Function called when size is known. */\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\n/** Enum for showing CursorPopup\r\n * @internal - unit testing\r\n */\r\nexport enum CursorPopupShow {\r\n Open,\r\n FadeOut,\r\n}\r\n\r\n/** State for the [[CursorPopup]] React component\r\n * @internal\r\n */\r\ninterface CursorPopupState {\r\n showPopup: CursorPopupShow;\r\n size: Size;\r\n}\r\n\r\n/** CursorPopup React component\r\n * @public\r\n */\r\nexport class CursorPopup extends React.Component<CursorPopupProps, CursorPopupState> {\r\n\r\n private _isMounted: boolean = false;\r\n\r\n /** @internal */\r\n public static fadeOutTime = 500;\r\n\r\n /** @internal */\r\n constructor(props: CursorPopupProps) {\r\n super(props);\r\n\r\n this.state = {\r\n showPopup: CursorPopupShow.Open,\r\n size: new Size(-1, -1),\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n CursorPopupManager.onCursorPopupFadeOutEvent.addListener(this._handleCursorPopupFadeOutEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n CursorPopupManager.onCursorPopupFadeOutEvent.removeListener(this._handleCursorPopupFadeOutEvent);\r\n }\r\n\r\n private _handleCursorPopupFadeOutEvent = (args: CursorPopupFadeOutEventArgs) => {\r\n if (this.props.id === args.id) {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ showPopup: CursorPopupShow.FadeOut });\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static getPopupRect(pt: PointProps, offset: PointProps, popupSize: SizeProps | undefined, relativePosition: RelativePosition): RectangleProps {\r\n const popupRect = { top: 0, left: 0, right: 0, bottom: 0 };\r\n\r\n if (popupSize === undefined)\r\n return popupRect;\r\n\r\n switch (relativePosition) {\r\n case RelativePosition.Top:\r\n popupRect.bottom = pt.y - offset.y;\r\n popupRect.left = pt.x - (popupSize.width / 2);\r\n popupRect.top = popupRect.bottom - popupSize.height;\r\n popupRect.right = popupRect.left + popupSize.width;\r\n break;\r\n case RelativePosition.Left:\r\n popupRect.right = pt.x - offset.x;\r\n popupRect.top = pt.y - (popupSize.height / 2);\r\n popupRect.left = popupRect.right - popupSize.width;\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n break;\r\n case RelativePosition.Right:\r\n popupRect.left = pt.x + offset.x;\r\n popupRect.top = pt.y - (popupSize.height / 2);\r\n popupRect.right = popupRect.left + popupSize.width;\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n break;\r\n case RelativePosition.Bottom:\r\n popupRect.top = pt.y + offset.y;\r\n popupRect.left = pt.x - (popupSize.width / 2);\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n popupRect.right = popupRect.left + popupSize.width;\r\n break;\r\n case RelativePosition.TopLeft:\r\n popupRect.bottom = pt.y - offset.y;\r\n popupRect.right = pt.x - offset.x;\r\n popupRect.top = popupRect.bottom - popupSize.height;\r\n popupRect.left = popupRect.right - popupSize.width;\r\n break;\r\n case RelativePosition.TopRight:\r\n popupRect.bottom = pt.y - offset.y;\r\n popupRect.left = pt.x + offset.x;\r\n popupRect.top = popupRect.bottom - popupSize.height;\r\n popupRect.right = popupRect.left + popupSize.width;\r\n break;\r\n case RelativePosition.BottomLeft:\r\n popupRect.top = pt.y + offset.y;\r\n popupRect.right = pt.x - offset.x;\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n popupRect.left = popupRect.right - popupSize.width;\r\n break;\r\n case RelativePosition.BottomRight:\r\n popupRect.top = pt.y + offset.y;\r\n popupRect.left = pt.x + offset.x;\r\n popupRect.bottom = popupRect.top + popupSize.height;\r\n popupRect.right = popupRect.left + popupSize.width;\r\n break;\r\n }\r\n\r\n return popupRect;\r\n }\r\n\r\n private setDivRef(div: HTMLDivElement | null) {\r\n // istanbul ignore else\r\n if (div) {\r\n const rect = div.getBoundingClientRect();\r\n const newSize = new Size(rect.width, rect.height);\r\n\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize)) {\r\n // istanbul ignore else\r\n if (this.props.onSizeKnown)\r\n this.props.onSizeKnown(newSize);\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ size: newSize });\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override render() {\r\n const popupRect = CursorPopup.getPopupRect(this.props.pt, this.props.offset, this.state.size, this.props.relativePosition);\r\n\r\n const positioningStyle: React.CSSProperties = {\r\n left: popupRect.left,\r\n top: popupRect.top,\r\n };\r\n\r\n const classNames = classnames(\r\n \"uifw-cursorpopup\",\r\n this.props.shadow && \"core-popup-shadow\",\r\n this.state.showPopup === CursorPopupShow.FadeOut && \"uifw-cursorpopup-fadeOut\",\r\n );\r\n\r\n return (\r\n <div className={classNames} ref={(e) => this.setDivRef(e)} style={positioningStyle}>\r\n {this.props.title &&\r\n <TitleBar\r\n title={this.props.title}\r\n className=\"uifw-cursorpopup-title\" />\r\n }\r\n {this.props.content}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/** CursorPopup content with padding\r\n * @public\r\n */\r\nexport function CursorPopupContent(props: CommonDivProps) {\r\n return <Div {...props} mainClassName=\"uifw-cursorpopup-content\" />;\r\n}\r\n"]}
1
+ {"version":3,"file":"CursorPopup.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,8BAA4B;AAC5B,+BAA+B;AAC/B,2CAAoC;AACpC,0DAAqE;AACrE,kDAAsG;AACtG,kEAAqD;AACrD,6DAAuF;AAiBvF;;GAEG;AACH,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,qDAAI,CAAA;IACJ,2DAAO,CAAA;AACT,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAUD;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK,CAAC,SAA6C;IAOlF,gBAAgB;IAChB,YAAY,KAAuB;QACjC,KAAK,CAAC,KAAK,CAAC,CAAC;QAPP,eAAU,GAAY,KAAK,CAAC;QAyB5B,mCAA8B,GAAG,CAAC,IAAiC,EAAE,EAAE;YAC7E,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;gBAC7B,uBAAuB;gBACvB,IAAI,IAAI,CAAC,UAAU;oBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;aACzD;QACH,CAAC,CAAC;QAtBA,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,eAAe,CAAC,IAAI;YAC/B,IAAI,EAAE,IAAI,iBAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB,CAAC;IACJ,CAAC;IAEe,iBAAiB;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,uCAAkB,CAAC,yBAAyB,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAChG,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,uCAAkB,CAAC,yBAAyB,CAAC,cAAc,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACnG,CAAC;IAUD,gBAAgB;IACT,MAAM,CAAC,YAAY,CAAC,EAAc,EAAE,MAAkB,EAAE,SAAgC,EAAE,gBAAkC;QACjI,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAE3D,IAAI,SAAS,KAAK,SAAS;YACzB,OAAO,SAAS,CAAC;QAEnB,QAAQ,gBAAgB,EAAE;YACxB,KAAK,iCAAgB,CAAC,GAAG;gBACvB,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC9C,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpD,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnD,MAAM;YACR,KAAK,iCAAgB,CAAC,IAAI;gBACxB,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC9C,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnD,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpD,MAAM;YACR,KAAK,iCAAgB,CAAC,KAAK;gBACzB,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACjC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC9C,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnD,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpD,MAAM;YACR,KAAK,iCAAgB,CAAC,MAAM;gBAC1B,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAChC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC9C,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpD,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnD,MAAM;YACR,KAAK,iCAAgB,CAAC,OAAO;gBAC3B,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpD,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnD,MAAM;YACR,KAAK,iCAAgB,CAAC,QAAQ;gBAC5B,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACjC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpD,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnD,MAAM;YACR,KAAK,iCAAgB,CAAC,UAAU;gBAC9B,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAChC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpD,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnD,MAAM;YACR,KAAK,iCAAgB,CAAC,WAAW;gBAC/B,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAChC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACjC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpD,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnD,MAAM;SACT;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,SAAS,CAAC,GAA0B;QAC1C,uBAAuB;QACvB,IAAI,GAAG,EAAE;YACP,MAAM,IAAI,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,iBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAElD,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBACpC,uBAAuB;gBACvB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW;oBACxB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAElC,uBAAuB;gBACvB,IAAI,IAAI,CAAC,UAAU;oBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;aACpC;SACF;IACH,CAAC;IAED,gBAAgB;IACA,MAAM;QACpB,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAE3H,MAAM,gBAAgB,GAAwB;YAC5C,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,GAAG,EAAE,SAAS,CAAC,GAAG;SACnB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,kBAAkB,EAClB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,mBAAmB,EACxC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,eAAe,CAAC,OAAO,IAAI,0BAA0B,CAC/E,CAAC;QAEF,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB;YAC/E,IAAI,CAAC,KAAK,CAAC,KAAK;gBACf,oBAAC,6BAAQ,IACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,SAAS,EAAC,wBAAwB,GAAG;YAExC,IAAI,CAAC,KAAK,CAAC,OAAO,CACf,CACP,CAAC;IACJ,CAAC;;AAxID,gBAAgB;AACF,uBAAW,GAAG,GAAG,AAAN,CAAO;AALrB,kCAAW;AA+IxB;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAAqB;IACtD,OAAO,oBAAC,gBAAG,OAAK,KAAK,EAAE,aAAa,EAAC,0BAA0B,GAAG,CAAC;AACrE,CAAC;AAFD,gDAEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Cursor\n */\n\nimport \"./CursorPopup.scss\";\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\nimport { CommonDivProps, CommonProps, Div, RectangleProps, Size, SizeProps } from \"@itwin/core-react\";\nimport { TitleBar } from \"@itwin/appui-layout-react\";\nimport { CursorPopupFadeOutEventArgs, CursorPopupManager } from \"./CursorPopupManager\";\n\n/** Properties for the [[CursorPopup]] React component\n * @public\n */\nexport interface CursorPopupProps extends CommonProps {\n id: string;\n content: React.ReactNode;\n pt: PointProps;\n offset: PointProps;\n relativePosition: RelativePosition;\n title?: string;\n shadow?: boolean;\n /** Function called when size is known. */\n onSizeKnown?: (size: SizeProps) => void;\n}\n\n/** Enum for showing CursorPopup\n * @internal - unit testing\n */\nexport enum CursorPopupShow {\n Open,\n FadeOut,\n}\n\n/** State for the [[CursorPopup]] React component\n * @internal\n */\ninterface CursorPopupState {\n showPopup: CursorPopupShow;\n size: Size;\n}\n\n/** CursorPopup React component\n * @public\n */\nexport class CursorPopup extends React.Component<CursorPopupProps, CursorPopupState> {\n\n private _isMounted: boolean = false;\n\n /** @internal */\n public static fadeOutTime = 500;\n\n /** @internal */\n constructor(props: CursorPopupProps) {\n super(props);\n\n this.state = {\n showPopup: CursorPopupShow.Open,\n size: new Size(-1, -1),\n };\n }\n\n public override componentDidMount() {\n this._isMounted = true;\n CursorPopupManager.onCursorPopupFadeOutEvent.addListener(this._handleCursorPopupFadeOutEvent);\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n CursorPopupManager.onCursorPopupFadeOutEvent.removeListener(this._handleCursorPopupFadeOutEvent);\n }\n\n private _handleCursorPopupFadeOutEvent = (args: CursorPopupFadeOutEventArgs) => {\n if (this.props.id === args.id) {\n // istanbul ignore else\n if (this._isMounted)\n this.setState({ showPopup: CursorPopupShow.FadeOut });\n }\n };\n\n /** @internal */\n public static getPopupRect(pt: PointProps, offset: PointProps, popupSize: SizeProps | undefined, relativePosition: RelativePosition): RectangleProps {\n const popupRect = { top: 0, left: 0, right: 0, bottom: 0 };\n\n if (popupSize === undefined)\n return popupRect;\n\n switch (relativePosition) {\n case RelativePosition.Top:\n popupRect.bottom = pt.y - offset.y;\n popupRect.left = pt.x - (popupSize.width / 2);\n popupRect.top = popupRect.bottom - popupSize.height;\n popupRect.right = popupRect.left + popupSize.width;\n break;\n case RelativePosition.Left:\n popupRect.right = pt.x - offset.x;\n popupRect.top = pt.y - (popupSize.height / 2);\n popupRect.left = popupRect.right - popupSize.width;\n popupRect.bottom = popupRect.top + popupSize.height;\n break;\n case RelativePosition.Right:\n popupRect.left = pt.x + offset.x;\n popupRect.top = pt.y - (popupSize.height / 2);\n popupRect.right = popupRect.left + popupSize.width;\n popupRect.bottom = popupRect.top + popupSize.height;\n break;\n case RelativePosition.Bottom:\n popupRect.top = pt.y + offset.y;\n popupRect.left = pt.x - (popupSize.width / 2);\n popupRect.bottom = popupRect.top + popupSize.height;\n popupRect.right = popupRect.left + popupSize.width;\n break;\n case RelativePosition.TopLeft:\n popupRect.bottom = pt.y - offset.y;\n popupRect.right = pt.x - offset.x;\n popupRect.top = popupRect.bottom - popupSize.height;\n popupRect.left = popupRect.right - popupSize.width;\n break;\n case RelativePosition.TopRight:\n popupRect.bottom = pt.y - offset.y;\n popupRect.left = pt.x + offset.x;\n popupRect.top = popupRect.bottom - popupSize.height;\n popupRect.right = popupRect.left + popupSize.width;\n break;\n case RelativePosition.BottomLeft:\n popupRect.top = pt.y + offset.y;\n popupRect.right = pt.x - offset.x;\n popupRect.bottom = popupRect.top + popupSize.height;\n popupRect.left = popupRect.right - popupSize.width;\n break;\n case RelativePosition.BottomRight:\n popupRect.top = pt.y + offset.y;\n popupRect.left = pt.x + offset.x;\n popupRect.bottom = popupRect.top + popupSize.height;\n popupRect.right = popupRect.left + popupSize.width;\n break;\n }\n\n return popupRect;\n }\n\n private setDivRef(div: HTMLDivElement | null) {\n // istanbul ignore else\n if (div) {\n const rect = div.getBoundingClientRect();\n const newSize = new Size(rect.width, rect.height);\n\n // istanbul ignore else\n if (!this.state.size.equals(newSize)) {\n // istanbul ignore else\n if (this.props.onSizeKnown)\n this.props.onSizeKnown(newSize);\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState({ size: newSize });\n }\n }\n }\n\n /** @internal */\n public override render() {\n const popupRect = CursorPopup.getPopupRect(this.props.pt, this.props.offset, this.state.size, this.props.relativePosition);\n\n const positioningStyle: React.CSSProperties = {\n left: popupRect.left,\n top: popupRect.top,\n };\n\n const classNames = classnames(\n \"uifw-cursorpopup\",\n this.props.shadow && \"core-popup-shadow\",\n this.state.showPopup === CursorPopupShow.FadeOut && \"uifw-cursorpopup-fadeOut\",\n );\n\n return (\n <div className={classNames} ref={(e) => this.setDivRef(e)} style={positioningStyle}>\n {this.props.title &&\n <TitleBar\n title={this.props.title}\n className=\"uifw-cursorpopup-title\" />\n }\n {this.props.content}\n </div>\n );\n }\n}\n\n/** CursorPopup content with padding\n * @public\n */\nexport function CursorPopupContent(props: CommonDivProps) {\n return <Div {...props} mainClassName=\"uifw-cursorpopup-content\" />;\n}\n"]}
@@ -1,34 +1,34 @@
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
- @import "../../variables";
6
-
7
- .uifw-cursorpopup {
8
- border: {
9
- color: $uifw-popup-border-color;
10
- radius: $uifw-popup-border-radius;
11
- style: solid;
12
- width: $uifw-popup-border-width;
13
- }
14
-
15
- background-color: hsl(var(--iui-color-background-hsl) / $uifw-popup-opacity);
16
- position: fixed;
17
- height: fit-content;
18
- width: fit-content;
19
- transition: opacity 500ms;
20
-
21
- > .uifw-cursorpopup-title {
22
- min-height: $uifw-popup-title-bar-min-height;
23
- opacity: $uifw-popup-opacity;
24
- }
25
-
26
- > .uifw-cursorpopup-content {
27
- padding: $uifw-popup-content-padding;
28
- }
29
-
30
- &.uifw-cursorpopup-fadeOut {
31
- opacity: 0;
32
- }
33
-
34
- }
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
+ @import "../../variables";
6
+
7
+ .uifw-cursorpopup {
8
+ border: {
9
+ color: $uifw-popup-border-color;
10
+ radius: $uifw-popup-border-radius;
11
+ style: solid;
12
+ width: $uifw-popup-border-width;
13
+ }
14
+
15
+ background-color: hsl(var(--iui-color-background-hsl) / $uifw-popup-opacity);
16
+ position: fixed;
17
+ height: fit-content;
18
+ width: fit-content;
19
+ transition: opacity 500ms;
20
+
21
+ > .uifw-cursorpopup-title {
22
+ min-height: $uifw-popup-title-bar-min-height;
23
+ opacity: $uifw-popup-opacity;
24
+ }
25
+
26
+ > .uifw-cursorpopup-content {
27
+ padding: $uifw-popup-content-padding;
28
+ }
29
+
30
+ &.uifw-cursorpopup-fadeOut {
31
+ opacity: 0;
32
+ }
33
+
34
+ }
@@ -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, 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"]}
1
+ {"version":3,"file":"CursorPopupManager.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorpopup/CursorPopupManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Cursor\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { PointProps, RelativePosition, UiEvent } from \"@itwin/appui-abstract\";\nimport { Point, RectangleProps, Size, SizeProps } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { CursorPopup } from \"./CursorPopup\";\n\n/** Options for the [[CursorPopupManager]] open method\n * @public\n */\nexport interface CursorPopupOptions {\n /** Title of the popup */\n title?: string;\n /** Called on popup close */\n onClose?: () => void;\n /** Callback to apply changes */\n onApply?: () => void;\n /** Draw shadow */\n shadow?: boolean;\n}\n\n/** CursorPopup Update Position Event Args interface.\n * @internal\n */\nexport interface CursorPopupUpdatePositionEventArgs {\n pt: PointProps;\n}\n\n/** CursorPopup Update Position Event class.\n * @internal\n */\nexport class CursorPopupUpdatePositionEvent extends UiEvent<CursorPopupUpdatePositionEventArgs> { }\n\n/** CursorPopup FadeOut Event Args interface.\n * @internal\n */\nexport interface CursorPopupFadeOutEventArgs {\n id: string;\n}\n\n/** CursorPopup FadeOut Event class.\n * @internal\n */\nexport class CursorPopupFadeOutEvent extends UiEvent<CursorPopupFadeOutEventArgs> { }\n\n/** Information maintained by CursorPopupManager about a CursorPopup\n * @internal\n */\ninterface CursorPopupInfo {\n id: string;\n content: React.ReactNode;\n relativePosition: RelativePosition;\n offset: Point;\n priority: number;\n options?: CursorPopupOptions;\n\n renderRelativePosition: RelativePosition;\n popupSize?: Size;\n}\n\n/** Cursor Popups Changed Event class.\n * @internal\n */\nclass CursorPopupsChangedEvent extends UiEvent<{}> { }\n\n/** CursorPopup component\n * @public\n */\nexport class CursorPopupManager {\n private static _popups: CursorPopupInfo[] = new Array<CursorPopupInfo>();\n\n /** @internal */\n public static readonly onCursorPopupUpdatePositionEvent = new CursorPopupUpdatePositionEvent();\n /** @internal */\n public static readonly onCursorPopupFadeOutEvent = new CursorPopupFadeOutEvent();\n /** @internal */\n public static readonly onCursorPopupsChangedEvent = new CursorPopupsChangedEvent();\n /** @internal */\n public static clearPopups() {\n this._popups.length = 0;\n CursorPopupManager._emitPopupsChangedEvent();\n }\n\n public static get popups() { return this._popups; }\n\n public static get popupCount() { return this._popups.length; }\n\n private static _emitPopupsChangedEvent(): void {\n CursorPopupManager.onCursorPopupsChangedEvent.emit({});\n }\n\n private static pushPopup(popupInfo: CursorPopupInfo): void {\n CursorPopupManager._popups.push(popupInfo);\n CursorPopupManager._emitPopupsChangedEvent();\n }\n\n /** Called to open popup with a new set of properties\n */\n public static open(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0, options?: CursorPopupOptions) {\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\n if (popupInfo) {\n popupInfo.content = content;\n popupInfo.offset = Point.create(offset);\n popupInfo.relativePosition = relativePosition;\n popupInfo.renderRelativePosition = relativePosition;\n popupInfo.priority = priority;\n popupInfo.options = options;\n } else {\n const newPopupInfo: CursorPopupInfo = { id, content, offset: Point.create(offset), relativePosition, options, renderRelativePosition: relativePosition, priority };\n CursorPopupManager.pushPopup(newPopupInfo);\n }\n\n CursorPopupManager.updatePosition(pt);\n }\n\n /** Called to update popup with a new set of properties\n */\n public static update(id: string, content: React.ReactNode, pt: PointProps, offset: PointProps, relativePosition: RelativePosition, priority: number = 0) {\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\n if (popupInfo) {\n popupInfo.content = content;\n popupInfo.offset = Point.create(offset);\n popupInfo.relativePosition = relativePosition;\n popupInfo.renderRelativePosition = relativePosition;\n popupInfo.priority = priority;\n } else {\n Logger.logError(UiFramework.loggerCategory(this), `update: Could not find popup with id of '${id}'`);\n }\n\n CursorPopupManager.updatePosition(pt);\n }\n\n /** Called to move the open popup to new location\n */\n public static updatePosition(pt: PointProps) {\n CursorPopupManager.resetPopupsRenderRelativePosition(Point.create(pt));\n CursorPopupManager.onCursorPopupUpdatePositionEvent.emit({ pt });\n }\n\n /** Called when tool wants to close the popup\n */\n public static close(id: string, apply: boolean, fadeOut?: boolean) {\n const popupInfo = CursorPopupManager._popups.find((info: CursorPopupInfo) => id === info.id);\n\n if (popupInfo) {\n if (popupInfo.options) {\n if (apply && popupInfo.options.onApply)\n popupInfo.options.onApply();\n\n if (popupInfo.options.onClose)\n popupInfo.options.onClose();\n }\n\n if (fadeOut) {\n CursorPopupManager.onCursorPopupFadeOutEvent.emit({ id });\n setTimeout(() => {\n CursorPopupManager.removePopup(id);\n }, CursorPopup.fadeOutTime);\n\n } else {\n CursorPopupManager.removePopup(id);\n }\n } else {\n Logger.logError(UiFramework.loggerCategory(this), `close: Could not find popup with id of '${id}'`);\n }\n }\n\n private static removePopup(id: string): void {\n const index = CursorPopupManager._popups.findIndex((popupInfo: CursorPopupInfo) => id === popupInfo.id);\n // istanbul ignore else\n if (index >= 0) {\n CursorPopupManager._popups.splice(index, 1);\n CursorPopupManager._emitPopupsChangedEvent();\n }\n }\n\n private static resetPopupsRenderRelativePosition(pt: Point) {\n CursorPopupManager.popups.forEach((popupInfo: CursorPopupInfo) => {\n popupInfo.renderRelativePosition = popupInfo.relativePosition;\n\n const flipped = CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\n\n // If flipped, call again to validate again.\n if (flipped) {\n CursorPopupManager.validateRenderRelativePosition(pt, popupInfo);\n }\n });\n }\n\n private static validateRenderRelativePosition(pt: Point, popupInfo: CursorPopupInfo): boolean {\n const popupRect = CursorPopup.getPopupRect(pt, Point.create(popupInfo.offset), popupInfo.popupSize, popupInfo.renderRelativePosition);\n const { outPos, flipped } = CursorPopupManager.autoFlip(popupInfo.renderRelativePosition, popupRect, window.innerWidth, window.innerHeight);\n\n if (flipped)\n popupInfo.renderRelativePosition = outPos;\n\n return flipped;\n }\n\n private static autoFlip(inPos: RelativePosition, rect: RectangleProps, windowWidth: number, windowHeight: number): { outPos: RelativePosition, flipped: boolean } {\n let flipped = false;\n let outPos = inPos;\n\n if (rect.right > windowWidth) {\n flipped = true;\n switch (inPos) {\n case RelativePosition.Top:\n case RelativePosition.TopRight:\n outPos = RelativePosition.TopLeft;\n break;\n case RelativePosition.Right:\n outPos = RelativePosition.Left;\n break;\n case RelativePosition.Bottom:\n case RelativePosition.BottomRight:\n outPos = RelativePosition.BottomLeft;\n break;\n }\n }\n\n if (rect.left < 0) {\n flipped = true;\n switch (inPos) {\n case RelativePosition.Top:\n case RelativePosition.TopLeft:\n outPos = RelativePosition.TopRight;\n break;\n case RelativePosition.Left:\n outPos = RelativePosition.Right;\n break;\n case RelativePosition.Bottom:\n case RelativePosition.BottomLeft:\n outPos = RelativePosition.BottomRight;\n break;\n }\n }\n\n if (rect.bottom > windowHeight) {\n flipped = true;\n switch (inPos) {\n case RelativePosition.Left:\n case RelativePosition.BottomLeft:\n outPos = RelativePosition.TopLeft;\n break;\n case RelativePosition.Bottom:\n outPos = RelativePosition.Top;\n break;\n case RelativePosition.Right:\n case RelativePosition.BottomRight:\n outPos = RelativePosition.TopRight;\n break;\n }\n }\n\n if (rect.top < 0) {\n flipped = true;\n switch (inPos) {\n case RelativePosition.Left:\n case RelativePosition.TopLeft:\n outPos = RelativePosition.BottomLeft;\n break;\n case RelativePosition.Top:\n outPos = RelativePosition.Bottom;\n break;\n case RelativePosition.Right:\n case RelativePosition.TopRight:\n outPos = RelativePosition.BottomRight;\n break;\n }\n }\n\n return { outPos, flipped };\n }\n\n}\n\n/** State for the [[CursorPopupRenderer]] React component */\ninterface CursorPopupRendererState {\n pt: Point;\n}\n\n/** CursorPopupRenderer React component.\n * @public\n */\nexport class CursorPopupRenderer extends React.Component<any, CursorPopupRendererState> {\n\n constructor(props: any) {\n super(props);\n\n this.state = {\n pt: new Point(),\n };\n }\n\n public override render(): React.ReactNode {\n if (CursorPopupManager.popupCount <= 0)\n return null;\n\n return (\n <>\n {this.renderPositions()}\n </>\n );\n }\n\n private _handleSizeKnown(popupInfo: CursorPopupInfo, size: SizeProps) {\n popupInfo.popupSize = Size.create(size);\n }\n\n private renderPositions(): React.ReactNode[] {\n const positions = new Array<React.ReactNode>();\n let renderedPosition: React.ReactNode;\n const begin = RelativePosition.Left;\n const end = RelativePosition.BottomRight;\n\n for (let position = begin; position <= end; position++) {\n renderedPosition = this.renderRelativePosition(position);\n if (renderedPosition)\n positions.push(renderedPosition);\n }\n\n return positions;\n }\n\n private renderRelativePosition(relativePosition: RelativePosition): React.ReactNode {\n const filteredInfo = CursorPopupManager.popups.filter((popupInfo: CursorPopupInfo) => popupInfo.renderRelativePosition === relativePosition);\n\n if (filteredInfo.length > 0) {\n let totalDimension = 0;\n const ascending =\n relativePosition === RelativePosition.Right ||\n relativePosition === RelativePosition.BottomRight ||\n relativePosition === RelativePosition.Bottom ||\n relativePosition === RelativePosition.BottomLeft;\n\n const positionPopups = filteredInfo\n .sort((a: CursorPopupInfo, b: CursorPopupInfo): number => ascending ? a.priority - b.priority : b.priority - a.priority)\n .map((popupInfo: CursorPopupInfo, index: number) => {\n\n const title = (popupInfo.options !== undefined) ? popupInfo.options.title : \"\";\n const shadow = (popupInfo.options !== undefined) ? popupInfo.options.shadow : false;\n let offset = popupInfo.offset;\n\n if (index > 0)\n offset = this.adjustOffset(offset, popupInfo.renderRelativePosition, totalDimension);\n\n if (popupInfo.popupSize)\n totalDimension += this.getDimension(popupInfo.popupSize, relativePosition);\n\n return (\n <CursorPopup key={popupInfo.id}\n id={popupInfo.id}\n content={popupInfo.content}\n pt={this.state.pt}\n offset={offset}\n relativePosition={popupInfo.renderRelativePosition}\n title={title}\n shadow={shadow}\n onSizeKnown={(size: SizeProps) => this._handleSizeKnown(popupInfo, size)} />\n );\n });\n\n return (\n <React.Fragment key={relativePosition.toString()}>\n {positionPopups}\n </React.Fragment>\n );\n }\n\n return null;\n }\n\n private getDimension(popupSize: Size, relativePosition: RelativePosition): number {\n let dimension = 0;\n\n switch (relativePosition) {\n case RelativePosition.Top:\n case RelativePosition.Bottom:\n case RelativePosition.TopLeft:\n case RelativePosition.TopRight:\n case RelativePosition.BottomLeft:\n case RelativePosition.BottomRight:\n dimension = popupSize.height;\n break;\n case RelativePosition.Left:\n case RelativePosition.Right:\n dimension = popupSize.width;\n break;\n }\n\n return dimension;\n }\n\n private adjustOffset(offset: Point, relativePosition: RelativePosition, dimension: number): Point {\n let outOffset = Point.create(offset.toProps());\n\n switch (relativePosition) {\n case RelativePosition.Top:\n case RelativePosition.Bottom:\n case RelativePosition.TopLeft:\n case RelativePosition.TopRight:\n case RelativePosition.BottomLeft:\n case RelativePosition.BottomRight:\n outOffset = Point.create({ x: offset.x, y: offset.y + dimension });\n break;\n case RelativePosition.Left:\n case RelativePosition.Right:\n outOffset = Point.create({ x: offset.x + dimension, y: offset.y });\n break;\n }\n\n return outOffset;\n }\n\n public override componentDidMount(): void {\n CursorPopupManager.onCursorPopupsChangedEvent.addListener(this._handlePopupChangedEvent);\n CursorPopupManager.onCursorPopupUpdatePositionEvent.addListener(this._handleCursorPopupUpdatePositionEvent);\n }\n\n public override componentWillUnmount(): void {\n CursorPopupManager.onCursorPopupsChangedEvent.removeListener(this._handlePopupChangedEvent);\n CursorPopupManager.onCursorPopupUpdatePositionEvent.removeListener(this._handleCursorPopupUpdatePositionEvent);\n }\n\n private _handlePopupChangedEvent = (_args: any) => {\n this.forceUpdate();\n };\n\n private _handleCursorPopupUpdatePositionEvent = (args: CursorPopupUpdatePositionEventArgs) => {\n this.setState({ pt: Point.create(args.pt) });\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CursorPrompt.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorprompt/CursorPrompt.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 Notification\r\n */\r\n\r\nimport \"./CursorPrompt.scss\";\r\nimport * as React from \"react\";\r\nimport { ToolAssistanceInstruction } from \"@itwin/core-frontend\";\r\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\r\nimport { Icon, Point, Timer } from \"@itwin/core-react\";\r\nimport { Text } from \"@itwin/itwinui-react\";\r\nimport { CursorInformation, CursorUpdatedEventArgs } from \"../CursorInformation\";\r\nimport { CursorPopupManager } from \"../cursorpopup/CursorPopupManager\";\r\n\r\n/** @internal */\r\nexport class CursorPrompt {\r\n private _timeOut: number;\r\n private _fadeOut: boolean;\r\n private _timer: Timer;\r\n private _relativePosition = RelativePosition.BottomRight;\r\n private _offset: Point = new Point(20, 20);\r\n private _popupId = \"cursor-prompt\";\r\n\r\n constructor(timeOut: number, fadeOut: boolean) {\r\n this._timeOut = timeOut;\r\n this._fadeOut = fadeOut;\r\n this._timer = new Timer(timeOut);\r\n }\r\n\r\n public display(toolIconSpec: string, instruction: ToolAssistanceInstruction, offset: PointProps = { x: 20, y: 20 }, relativePosition: RelativePosition = RelativePosition.BottomRight) {\r\n if (!instruction.text) {\r\n // istanbul ignore else\r\n if (this._timer.isRunning)\r\n this.close(false);\r\n return;\r\n }\r\n\r\n this._relativePosition = relativePosition;\r\n this._offset = Point.create(offset);\r\n\r\n const promptElement = (\r\n <div className=\"uifw-cursor-prompt\">\r\n {toolIconSpec && <span className=\"uifw-cursor-prompt-icon\"><Icon iconSpec={toolIconSpec} /></span>}\r\n <Text variant=\"body\" className=\"uifw-cursor-prompt-text\">{instruction.text}</Text>\r\n </div >\r\n );\r\n\r\n this._startCursorPopup(promptElement);\r\n\r\n this._timer.setOnExecute(() => this._endCursorPopup(this._fadeOut));\r\n this._timer.delay = this._timeOut;\r\n this._timer.start();\r\n }\r\n\r\n /** @internal - unit testing */\r\n public close(fadeOut: boolean) {\r\n this._timer.stop();\r\n this._endCursorPopup(fadeOut);\r\n }\r\n\r\n private _startCursorPopup = (promptElement: React.ReactElement) => {\r\n CursorPopupManager.open(this._popupId, promptElement, CursorInformation.cursorPosition, this._offset, this._relativePosition, 0, { shadow: true });\r\n\r\n if (!CursorInformation.onCursorUpdatedEvent.has(this._handleCursorUpdated))\r\n CursorInformation.onCursorUpdatedEvent.addListener(this._handleCursorUpdated);\r\n };\r\n\r\n private _endCursorPopup = (fadeOut?: boolean) => {\r\n CursorPopupManager.close(this._popupId, false, fadeOut);\r\n CursorInformation.onCursorUpdatedEvent.removeListener(this._handleCursorUpdated);\r\n };\r\n\r\n private _handleCursorUpdated = (args: CursorUpdatedEventArgs) => {\r\n CursorPopupManager.updatePosition(args.newPt);\r\n };\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"CursorPrompt.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursorprompt/CursorPrompt.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport \"./CursorPrompt.scss\";\nimport * as React from \"react\";\nimport { ToolAssistanceInstruction } from \"@itwin/core-frontend\";\nimport { PointProps, RelativePosition } from \"@itwin/appui-abstract\";\nimport { Icon, Point, Timer } from \"@itwin/core-react\";\nimport { Text } from \"@itwin/itwinui-react\";\nimport { CursorInformation, CursorUpdatedEventArgs } from \"../CursorInformation\";\nimport { CursorPopupManager } from \"../cursorpopup/CursorPopupManager\";\n\n/** @internal */\nexport class CursorPrompt {\n private _timeOut: number;\n private _fadeOut: boolean;\n private _timer: Timer;\n private _relativePosition = RelativePosition.BottomRight;\n private _offset: Point = new Point(20, 20);\n private _popupId = \"cursor-prompt\";\n\n constructor(timeOut: number, fadeOut: boolean) {\n this._timeOut = timeOut;\n this._fadeOut = fadeOut;\n this._timer = new Timer(timeOut);\n }\n\n public display(toolIconSpec: string, instruction: ToolAssistanceInstruction, offset: PointProps = { x: 20, y: 20 }, relativePosition: RelativePosition = RelativePosition.BottomRight) {\n if (!instruction.text) {\n // istanbul ignore else\n if (this._timer.isRunning)\n this.close(false);\n return;\n }\n\n this._relativePosition = relativePosition;\n this._offset = Point.create(offset);\n\n const promptElement = (\n <div className=\"uifw-cursor-prompt\">\n {toolIconSpec && <span className=\"uifw-cursor-prompt-icon\"><Icon iconSpec={toolIconSpec} /></span>}\n <Text variant=\"body\" className=\"uifw-cursor-prompt-text\">{instruction.text}</Text>\n </div >\n );\n\n this._startCursorPopup(promptElement);\n\n this._timer.setOnExecute(() => this._endCursorPopup(this._fadeOut));\n this._timer.delay = this._timeOut;\n this._timer.start();\n }\n\n /** @internal - unit testing */\n public close(fadeOut: boolean) {\n this._timer.stop();\n this._endCursorPopup(fadeOut);\n }\n\n private _startCursorPopup = (promptElement: React.ReactElement) => {\n CursorPopupManager.open(this._popupId, promptElement, CursorInformation.cursorPosition, this._offset, this._relativePosition, 0, { shadow: true });\n\n if (!CursorInformation.onCursorUpdatedEvent.has(this._handleCursorUpdated))\n CursorInformation.onCursorUpdatedEvent.addListener(this._handleCursorUpdated);\n };\n\n private _endCursorPopup = (fadeOut?: boolean) => {\n CursorPopupManager.close(this._popupId, false, fadeOut);\n CursorInformation.onCursorUpdatedEvent.removeListener(this._handleCursorUpdated);\n };\n\n private _handleCursorUpdated = (args: CursorUpdatedEventArgs) => {\n CursorPopupManager.updatePosition(args.newPt);\n };\n\n}\n"]}
@@ -1,31 +1,31 @@
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
- @import "~@itwin/core-react/lib/cjs/core-react/icons/variables";
6
- @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
7
-
8
- .uifw-cursor-prompt {
9
- padding: 5px;
10
-
11
- color: var(--iui-color-text);
12
- min-width: 100px;
13
- max-width: 340px;
14
-
15
- display: flex;
16
- flex-direction: row;
17
- align-items: center;
18
-
19
- >.uifw-cursor-prompt-icon {
20
- padding-left: 3px;
21
- padding-right: 3px;
22
-
23
- width: $uicore-icons-small;
24
- height: $uicore-icons-small;
25
- }
26
-
27
- >.uifw-cursor-prompt-text {
28
- padding-left: 3px;
29
- padding-right: 3px;
30
- }
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
+ @import "~@itwin/core-react/lib/cjs/core-react/icons/variables";
6
+ @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
7
+
8
+ .uifw-cursor-prompt {
9
+ padding: 5px;
10
+
11
+ color: var(--iui-color-text);
12
+ min-width: 100px;
13
+ max-width: 340px;
14
+
15
+ display: flex;
16
+ flex-direction: row;
17
+ align-items: center;
18
+
19
+ >.uifw-cursor-prompt-icon {
20
+ padding-left: 3px;
21
+ padding-right: 3px;
22
+
23
+ width: $uicore-icons-small;
24
+ height: $uicore-icons-small;
25
+ }
26
+
27
+ >.uifw-cursor-prompt-text {
28
+ padding-left: 3px;
29
+ padding-right: 3px;
30
+ }
31
31
  }
@@ -19,12 +19,10 @@ const classnames_1 = require("classnames");
19
19
  *@internal
20
20
  */
21
21
  function useActiveContentControlId() {
22
- var _a;
23
- const [activeContentId, setActiveContentId] = React.useState((_a = UiFramework_1.UiFramework.content.getActiveContentControl()) === null || _a === void 0 ? void 0 : _a.uniqueId);
22
+ const [activeContentId, setActiveContentId] = React.useState(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
24
23
  React.useEffect(() => {
25
24
  const onActiveContentChanged = (_args) => {
26
- var _a;
27
- setActiveContentId((_a = UiFramework_1.UiFramework.content.getActiveContentControl()) === null || _a === void 0 ? void 0 : _a.uniqueId);
25
+ setActiveContentId(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
28
26
  };
29
27
  // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted
30
28
  // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components
@@ -37,10 +35,9 @@ function useActiveContentControlId() {
37
35
  React.useEffect(() => {
38
36
  const syncIdsOfInterest = [SyncUiEventDispatcher_1.SyncUiEventId.ActiveContentChanged, SyncUiEventDispatcher_1.SyncUiEventId.ContentControlActivated, SyncUiEventDispatcher_1.SyncUiEventId.FrontstageReady];
39
37
  const handleSyncUiEvent = (args) => {
40
- var _a;
41
38
  // istanbul ignore else
42
39
  if (syncIdsOfInterest.some((value) => args.eventIds.has(value))) {
43
- setActiveContentId((_a = UiFramework_1.UiFramework.content.getActiveContentControl()) === null || _a === void 0 ? void 0 : _a.uniqueId);
40
+ setActiveContentId(UiFramework_1.UiFramework.content.getActiveContentControl()?.uniqueId);
44
41
  }
45
42
  };
46
43
  return SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);
@@ -1 +1 @@
1
- {"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\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 Dialog\r\n */\r\n\r\nimport \"./ContentDialog.scss\";\r\nimport * as React from \"react\";\r\nimport { Dialog, DialogProps } from \"@itwin/core-react\";\r\nimport { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport classnames from \"classnames\";\r\n\r\n// istanbul ignore next\r\n/**\r\n *@internal\r\n */\r\nexport function useActiveContentControlId(): string | undefined {\r\n const [activeContentId, setActiveContentId] = React.useState(UiFramework.content.getActiveContentControl()?.uniqueId);\r\n\r\n React.useEffect(() => {\r\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\r\n setActiveContentId(UiFramework.content.getActiveContentControl()?.uniqueId);\r\n };\r\n\r\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\r\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\r\n // are loaded and when the IModelApp.viewManager.selectedView changes.\r\n UiFramework.content.onActiveContentChangedEvent.addListener(onActiveContentChanged);\r\n return () => {\r\n UiFramework.content.onActiveContentChangedEvent.removeListener(onActiveContentChanged);\r\n };\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ContentControlActivated, SyncUiEventId.FrontstageReady];\r\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n setActiveContentId(UiFramework.content.getActiveContentControl()?.uniqueId);\r\n }\r\n };\r\n\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, []);\r\n\r\n return activeContentId;\r\n}\r\n\r\n/** Properties for the [[ContentDialog]] component\r\n * @public\r\n */\r\nexport interface ContentDialogProps extends DialogProps {\r\n dialogId: string;\r\n movable?: boolean;\r\n children: React.ReactNode;\r\n}\r\n\r\n/** Content Dialog React component uses the Dialog component with a modal={false} prop.\r\n * It controls the z-index to keep the focused dialog above content but below widgets.\r\n * @public\r\n */\r\nexport function ContentDialog(props: ContentDialogProps) {\r\n const { className, children, dialogId, style, modal, modelessId, onModelessPointerDown, ...otherProps } = props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n const activeContentControlId = useActiveContentControlId();\r\n // istanbul ignore next\r\n const dialogClassName = React.useMemo(() => classnames(activeContentControlId === dialogId ? \"active-content-dialog\" : \"inactive-content-dialog\", className),\r\n [activeContentControlId, className, dialogId]);\r\n\r\n const [zIndex, setZIndex] = React.useState(UiFramework.content.dialogs.getZIndex(dialogId));\r\n const updateZIndex = React.useCallback(() => {\r\n const newZ = UiFramework.content.dialogs.getZIndex(dialogId);\r\n // istanbul ignore else\r\n if (newZ !== zIndex) {\r\n setZIndex(newZ);\r\n }\r\n }, [dialogId, zIndex]);\r\n\r\n return (\r\n <Dialog\r\n className={dialogClassName}\r\n data-item-type=\"content-dialog\"\r\n data-item-id={dialogId}\r\n resizable={true}\r\n movable={true}\r\n trapFocus={false}\r\n modal={false}\r\n {...otherProps}\r\n modelessId={dialogId}\r\n onModelessPointerDown={(event) => UiFramework.content.dialogs.handlePointerDownEvent(event, dialogId, updateZIndex)}\r\n style={{ zIndex, ...style }}\r\n >\r\n {children}\r\n </Dialog >\r\n );\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport \"./ContentDialog.scss\";\nimport * as React from \"react\";\nimport { Dialog, DialogProps } from \"@itwin/core-react\";\nimport { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\nimport classnames from \"classnames\";\n\n// istanbul ignore next\n/**\n *@internal\n */\nexport function useActiveContentControlId(): string | undefined {\n const [activeContentId, setActiveContentId] = React.useState(UiFramework.content.getActiveContentControl()?.uniqueId);\n\n React.useEffect(() => {\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\n setActiveContentId(UiFramework.content.getActiveContentControl()?.uniqueId);\n };\n\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\n // are loaded and when the IModelApp.viewManager.selectedView changes.\n UiFramework.content.onActiveContentChangedEvent.addListener(onActiveContentChanged);\n return () => {\n UiFramework.content.onActiveContentChangedEvent.removeListener(onActiveContentChanged);\n };\n }, []);\n\n React.useEffect(() => {\n const syncIdsOfInterest = [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ContentControlActivated, SyncUiEventId.FrontstageReady];\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n // istanbul ignore else\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\n setActiveContentId(UiFramework.content.getActiveContentControl()?.uniqueId);\n }\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, []);\n\n return activeContentId;\n}\n\n/** Properties for the [[ContentDialog]] component\n * @public\n */\nexport interface ContentDialogProps extends DialogProps {\n dialogId: string;\n movable?: boolean;\n children: React.ReactNode;\n}\n\n/** Content Dialog React component uses the Dialog component with a modal={false} prop.\n * It controls the z-index to keep the focused dialog above content but below widgets.\n * @public\n */\nexport function ContentDialog(props: ContentDialogProps) {\n const { className, children, dialogId, style, modal, modelessId, onModelessPointerDown, ...otherProps } = props; // eslint-disable-line @typescript-eslint/no-unused-vars\n const activeContentControlId = useActiveContentControlId();\n // istanbul ignore next\n const dialogClassName = React.useMemo(() => classnames(activeContentControlId === dialogId ? \"active-content-dialog\" : \"inactive-content-dialog\", className),\n [activeContentControlId, className, dialogId]);\n\n const [zIndex, setZIndex] = React.useState(UiFramework.content.dialogs.getZIndex(dialogId));\n const updateZIndex = React.useCallback(() => {\n const newZ = UiFramework.content.dialogs.getZIndex(dialogId);\n // istanbul ignore else\n if (newZ !== zIndex) {\n setZIndex(newZ);\n }\n }, [dialogId, zIndex]);\n\n return (\n <Dialog\n className={dialogClassName}\n data-item-type=\"content-dialog\"\n data-item-id={dialogId}\n resizable={true}\n movable={true}\n trapFocus={false}\n modal={false}\n {...otherProps}\n modelessId={dialogId}\n onModelessPointerDown={(event) => UiFramework.content.dialogs.handlePointerDownEvent(event, dialogId, updateZIndex)}\n style={{ zIndex, ...style }}\n >\n {children}\n </Dialog >\n );\n}\n\n"]}
@@ -1,25 +1,25 @@
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
- @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
-
7
- .core-dialog.active-content-dialog {
8
- .core-dialog-area {
9
- > .core-dialog-head {
10
- color: $buic-text-color-highlight;
11
- background-color: $buic-background-titlebar;
12
- > .core-dialog-title {
13
- font-weight: 800;
14
- }
15
- }
16
- }
17
-
18
- .core-dialog.inactive-content-dialog {
19
- .core-dialog-area {
20
- > .core-dialog-head {
21
- background-color: $buic-background-titlebar-outoffocus;
22
- }
23
- }
24
- }
25
- }
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
+ @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
+
7
+ .core-dialog.active-content-dialog {
8
+ .core-dialog-area {
9
+ > .core-dialog-head {
10
+ color: $buic-text-color-highlight;
11
+ background-color: $buic-background-titlebar;
12
+ > .core-dialog-title {
13
+ font-weight: 800;
14
+ }
15
+ }
16
+ }
17
+
18
+ .core-dialog.inactive-content-dialog {
19
+ .core-dialog-area {
20
+ > .core-dialog-head {
21
+ background-color: $buic-background-titlebar-outoffocus;
22
+ }
23
+ }
24
+ }
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+BAA+B;AAC/B,2DAAyD;AACzD,iFAA0F;AAE1F;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK,CAAC,aAA0B;IAEzE,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,sCAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,2DAAQ,CAAC,aAAa,GAAI,CAC9E,CAAC;IACJ,CAAC;CACF;AAXD,sDAWC","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 Dialog\r\n */\r\n\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport * as React from \"react\";\r\nimport { DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { InternalContentDialogManager as internal } from \"./InternalContentDialogManager\";\r\n\r\n/** ContentDialogRenderer React component renders modeless dialogs.\r\n * @public\r\n */\r\nexport class ContentDialogRenderer extends React.PureComponent<CommonProps> {\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n return (\r\n <DialogRendererBase {...this.props} dialogManager={internal.dialogManager} />\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+BAA+B;AAC/B,2DAAyD;AACzD,iFAA0F;AAE1F;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK,CAAC,aAA0B;IAEzE,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,sCAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,2DAAQ,CAAC,aAAa,GAAI,CAC9E,CAAC;IACJ,CAAC;CACF;AAXD,sDAWC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport { CommonProps } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport { DialogRendererBase } from \"./DialogManagerBase\";\nimport { InternalContentDialogManager as internal } from \"./InternalContentDialogManager\";\n\n/** ContentDialogRenderer React component renders modeless dialogs.\n * @public\n */\nexport class ContentDialogRenderer extends React.PureComponent<CommonProps> {\n\n constructor(props: CommonProps) {\n super(props);\n }\n\n public override render(): React.ReactNode {\n return (\n <DialogRendererBase {...this.props} dialogManager={internal.dialogManager} />\n );\n }\n}\n"]}
@@ -56,7 +56,7 @@ class DialogManagerBase {
56
56
  if (!id)
57
57
  id = `Dialog-${++DialogManagerBase._sId}`;
58
58
  // istanbul ignore next
59
- const owningDoc = parentDocument !== null && parentDocument !== void 0 ? parentDocument : document;
59
+ const owningDoc = parentDocument ?? document;
60
60
  this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });
61
61
  }
62
62
  /** @internal */
@@ -115,8 +115,7 @@ class DialogRendererBase extends React.PureComponent {
115
115
  parentDocument: null,
116
116
  };
117
117
  this._handleRefSet = (popupDiv) => {
118
- var _a;
119
- this.setState({ parentDocument: (_a = popupDiv === null || popupDiv === void 0 ? void 0 : popupDiv.ownerDocument) !== null && _a !== void 0 ? _a : null });
118
+ this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });
120
119
  };
121
120
  this._handleDialogChangedEvent = (_args) => {
122
121
  this.forceUpdate();
@@ -1 +1 @@
1
- {"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\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 Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\r\n\r\n/** Dialog Stack Changed Event Args class.\r\n * @public\r\n */\r\nexport interface DialogChangedEventArgs {\r\n dialogCount: number;\r\n activeDialog: React.ReactNode | undefined;\r\n}\r\n\r\n/** Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> { }\r\n\r\n/** Information maintained by a Dialog Manager about a dialog\r\n * @public\r\n */\r\nexport interface DialogInfo {\r\n reactNode: React.ReactNode;\r\n id: string;\r\n parentDocument: Document;\r\n}\r\n\r\n/** Used if the 'dialog' z-index CSS variable cannot be read */\r\nconst ZINDEX_DEFAULT = 12000;\r\n\r\n/** Dialog Manager class.\r\n * @internal\r\n */\r\nexport class DialogManagerBase {\r\n private static _sId = 0;\r\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\r\n private _onDialogChangedEvent: DialogChangedEvent;\r\n private static _topZIndex = ZINDEX_DEFAULT;\r\n\r\n constructor(onDialogChangedEvent: DialogChangedEvent) {\r\n this._onDialogChangedEvent = onDialogChangedEvent;\r\n }\r\n\r\n /** Initialize the modeless dialog manager */\r\n public static initialize(): void {\r\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\r\n }\r\n\r\n public static get topZIndex(): number { return DialogManagerBase._topZIndex; }\r\n\r\n public static set topZIndex(zIndex: number) { DialogManagerBase._topZIndex = zIndex; }\r\n public get dialogs() { return this._dialogs; }\r\n\r\n public get onDialogChangedEvent(): DialogChangedEvent { return this._onDialogChangedEvent; }\r\n\r\n public static getDialogZIndexDefault(): number {\r\n const variable = \"--uicore-z-index-dialog\";\r\n const value = getCssVariableAsNumber(variable);\r\n\r\n // istanbul ignore next\r\n if (!isNaN(value))\r\n return value;\r\n\r\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\r\n return ZINDEX_DEFAULT;\r\n }\r\n\r\n /**\r\n * Triggers opening a dialog.\r\n * @param dialog Dialog React component.\r\n * @param id The unique Id the identifies the dialog.\r\n * @param parentDocument Optional document required when displaying a dialog in a child popup window.\r\n */\r\n public openDialog(dialog: React.ReactNode, id?: string, parentDocument?: Document): void {\r\n if (!id)\r\n id = `Dialog-${++DialogManagerBase._sId}`;\r\n\r\n // istanbul ignore next\r\n const owningDoc = parentDocument ?? document;\r\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\r\n }\r\n\r\n /** @internal */\r\n public pushDialog(dialogInfo: DialogInfo): void {\r\n this._dialogs.push(dialogInfo);\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n public closeDialog(dialog?: React.ReactNode): void {\r\n let targetDialog = dialog;\r\n if (!dialog)\r\n targetDialog = this.activeDialog;\r\n\r\n this.removeDialog(targetDialog);\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n /** @internal */\r\n public closeAll(): void {\r\n this._dialogs = [];\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n /** @internal */\r\n public removeDialog(dialog: React.ReactNode): void {\r\n const index = this._dialogs.findIndex((dialogInfo: DialogInfo) => {\r\n return dialog === dialogInfo.reactNode;\r\n });\r\n if (index >= 0)\r\n this._dialogs.splice(index, 1);\r\n if (this._dialogs.length < 1)\r\n DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();\r\n }\r\n\r\n public emitDialogChangedEvent(): void {\r\n this._onDialogChangedEvent.emit({ dialogCount: this.dialogCount, activeDialog: this.activeDialog });\r\n }\r\n\r\n public update(): void {\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n public get activeDialog(): React.ReactNode | undefined {\r\n if (this._dialogs.length > 0)\r\n return this._dialogs[this._dialogs.length - 1].reactNode;\r\n\r\n return undefined;\r\n }\r\n\r\n public get dialogCount(): number {\r\n return this._dialogs.length;\r\n }\r\n}\r\n\r\n/** Properties for the [[DialogRendererBase]] component\r\n * @internal\r\n */\r\nexport interface DialogRendererProps {\r\n dialogManager: DialogManagerBase;\r\n style?: React.CSSProperties;\r\n}\r\n\r\n/** @internal */\r\ninterface DialogRendererState {\r\n parentDocument: Document | null;\r\n}\r\n/** DialogRenderer React component.\r\n * @internal\r\n */\r\nexport class DialogRendererBase extends React.PureComponent<DialogRendererProps, DialogRendererState> {\r\n /** @internal */\r\n public override readonly state: DialogRendererState = {\r\n parentDocument: null,\r\n };\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (this.props.dialogManager.dialogCount <= 0)\r\n return null;\r\n\r\n return (\r\n <div className=\"appui-react-dialog-render-container\" ref={this._handleRefSet}>\r\n {this.state.parentDocument &&\r\n this.props.dialogManager.dialogs.filter((info) => info.parentDocument === this.state.parentDocument)\r\n .map((dialogInfo: DialogInfo) => {\r\n return (\r\n <React.Fragment key={dialogInfo.id} >\r\n {dialogInfo.reactNode}\r\n </React.Fragment>\r\n );\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n this.props.dialogManager.onDialogChangedEvent.addListener(this._handleDialogChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this.props.dialogManager.onDialogChangedEvent.removeListener(this._handleDialogChangedEvent);\r\n }\r\n\r\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\r\n this.forceUpdate();\r\n };\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\n\n/** Dialog Stack Changed Event Args class.\n * @public\n */\nexport interface DialogChangedEventArgs {\n dialogCount: number;\n activeDialog: React.ReactNode | undefined;\n}\n\n/** Dialog Changed Event class.\n * @public\n */\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> { }\n\n/** Information maintained by a Dialog Manager about a dialog\n * @public\n */\nexport interface DialogInfo {\n reactNode: React.ReactNode;\n id: string;\n parentDocument: Document;\n}\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst ZINDEX_DEFAULT = 12000;\n\n/** Dialog Manager class.\n * @internal\n */\nexport class DialogManagerBase {\n private static _sId = 0;\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\n private _onDialogChangedEvent: DialogChangedEvent;\n private static _topZIndex = ZINDEX_DEFAULT;\n\n constructor(onDialogChangedEvent: DialogChangedEvent) {\n this._onDialogChangedEvent = onDialogChangedEvent;\n }\n\n /** Initialize the modeless dialog manager */\n public static initialize(): void {\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public static get topZIndex(): number { return DialogManagerBase._topZIndex; }\n\n public static set topZIndex(zIndex: number) { DialogManagerBase._topZIndex = zIndex; }\n public get dialogs() { return this._dialogs; }\n\n public get onDialogChangedEvent(): DialogChangedEvent { return this._onDialogChangedEvent; }\n\n public static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-dialog\";\n const value = getCssVariableAsNumber(variable);\n\n // istanbul ignore next\n if (!isNaN(value))\n return value;\n\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\n return ZINDEX_DEFAULT;\n }\n\n /**\n * Triggers opening a dialog.\n * @param dialog Dialog React component.\n * @param id The unique Id the identifies the dialog.\n * @param parentDocument Optional document required when displaying a dialog in a child popup window.\n */\n public openDialog(dialog: React.ReactNode, id?: string, parentDocument?: Document): void {\n if (!id)\n id = `Dialog-${++DialogManagerBase._sId}`;\n\n // istanbul ignore next\n const owningDoc = parentDocument ?? document;\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\n }\n\n /** @internal */\n public pushDialog(dialogInfo: DialogInfo): void {\n this._dialogs.push(dialogInfo);\n this.emitDialogChangedEvent();\n }\n\n public closeDialog(dialog?: React.ReactNode): void {\n let targetDialog = dialog;\n if (!dialog)\n targetDialog = this.activeDialog;\n\n this.removeDialog(targetDialog);\n this.emitDialogChangedEvent();\n }\n\n /** @internal */\n public closeAll(): void {\n this._dialogs = [];\n this.emitDialogChangedEvent();\n }\n\n /** @internal */\n public removeDialog(dialog: React.ReactNode): void {\n const index = this._dialogs.findIndex((dialogInfo: DialogInfo) => {\n return dialog === dialogInfo.reactNode;\n });\n if (index >= 0)\n this._dialogs.splice(index, 1);\n if (this._dialogs.length < 1)\n DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();\n }\n\n public emitDialogChangedEvent(): void {\n this._onDialogChangedEvent.emit({ dialogCount: this.dialogCount, activeDialog: this.activeDialog });\n }\n\n public update(): void {\n this.emitDialogChangedEvent();\n }\n\n public get activeDialog(): React.ReactNode | undefined {\n if (this._dialogs.length > 0)\n return this._dialogs[this._dialogs.length - 1].reactNode;\n\n return undefined;\n }\n\n public get dialogCount(): number {\n return this._dialogs.length;\n }\n}\n\n/** Properties for the [[DialogRendererBase]] component\n * @internal\n */\nexport interface DialogRendererProps {\n dialogManager: DialogManagerBase;\n style?: React.CSSProperties;\n}\n\n/** @internal */\ninterface DialogRendererState {\n parentDocument: Document | null;\n}\n/** DialogRenderer React component.\n * @internal\n */\nexport class DialogRendererBase extends React.PureComponent<DialogRendererProps, DialogRendererState> {\n /** @internal */\n public override readonly state: DialogRendererState = {\n parentDocument: null,\n };\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });\n };\n\n public override render(): React.ReactNode {\n if (this.props.dialogManager.dialogCount <= 0)\n return null;\n\n return (\n <div className=\"appui-react-dialog-render-container\" ref={this._handleRefSet}>\n {this.state.parentDocument &&\n this.props.dialogManager.dialogs.filter((info) => info.parentDocument === this.state.parentDocument)\n .map((dialogInfo: DialogInfo) => {\n return (\n <React.Fragment key={dialogInfo.id} >\n {dialogInfo.reactNode}\n </React.Fragment>\n );\n })\n }\n </div>\n );\n }\n\n public override componentDidMount(): void {\n this.props.dialogManager.onDialogChangedEvent.addListener(this._handleDialogChangedEvent);\n }\n\n public override componentWillUnmount(): void {\n this.props.dialogManager.onDialogChangedEvent.removeListener(this._handleDialogChangedEvent);\n }\n\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\n this.forceUpdate();\n };\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"InternalContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/InternalContentDialogManager.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 Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DialogManagerBase } from \"./DialogManagerBase\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\nimport { ContentDialogChangedEvent, ContentDialogInfo } from \"../framework/FrameworkContent\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** Used if the 'dialog' z-index CSS variable cannot be read */\r\nconst CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;\r\n\r\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\r\n * @internal\r\n */\r\nexport class InternalContentDialogManager {\r\n /** Content Dialog Changed Event */\r\n public static readonly onContentDialogChangedEvent = new ContentDialogChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(InternalContentDialogManager.onContentDialogChangedEvent);\r\n\r\n /** Get the array of modeless dialogs */\r\n public static get dialogs() { return InternalContentDialogManager.dialogManager.dialogs; }\r\n\r\n private static _dialogMap = new Map<string, ContentDialogInfo>();\r\n private static _idArray = new Array<string>();\r\n\r\n private static _topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;\r\n\r\n /** Initialize the modeless dialog manager.\r\n * @internal\r\n */\r\n public static initialize(): void {\r\n InternalContentDialogManager._topZIndex = InternalContentDialogManager.getDialogZIndexDefault();\r\n }\r\n\r\n private static getDialogZIndexDefault(): number {\r\n const variable = \"--uicore-z-index-view-content-dialog\";\r\n const value = getCssVariableAsNumber(variable);\r\n\r\n // istanbul ignore next\r\n if (!isNaN(value))\r\n return value;\r\n\r\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\r\n return CONTENT_DIALOG_ZINDEX_DEFAULT;\r\n }\r\n\r\n /** Open a modeless dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog to open\r\n */\r\n public static open(dialog: React.ReactNode, id: string, parentDocument = document): void {\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n const message = `Dialog with id of '${id}' already opened`;\r\n Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));\r\n return;\r\n }\r\n InternalContentDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++InternalContentDialogManager._topZIndex, parentDocument });\r\n InternalContentDialogManager._idArray.push(id);\r\n InternalContentDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\r\n }\r\n\r\n /** Close a modeless dialog\r\n * @param id The id of the Dialog to close.\r\n */\r\n public static close(id: string): void {\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n InternalContentDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\r\n InternalContentDialogManager._dialogMap.delete(id);\r\n const index = InternalContentDialogManager._idArray.indexOf(id);\r\n // istanbul ignore else\r\n if (index >= 0)\r\n InternalContentDialogManager._idArray.splice(index, 1);\r\n\r\n if (InternalContentDialogManager.active === undefined)\r\n InternalContentDialogManager._topZIndex = InternalContentDialogManager.getDialogZIndexDefault();\r\n\r\n this.update();\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static closeAll(): void {\r\n InternalContentDialogManager.dialogManager.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n InternalContentDialogManager.dialogManager.update();\r\n }\r\n\r\n /** Get the active modeless dialog */\r\n public static get active(): React.ReactNode | undefined {\r\n if (InternalContentDialogManager._idArray.length > 0) {\r\n const id = InternalContentDialogManager._idArray[InternalContentDialogManager._idArray.length - 1];\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n return dialogInfo.reactNode;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Get the count of modeless dialogs */\r\n public static get count(): number {\r\n return InternalContentDialogManager.dialogManager.dialogCount;\r\n }\r\n\r\n /** Handle a pointer down event on a modeless dialog */\r\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo && dialogInfo.reactNode !== InternalContentDialogManager.active) {\r\n dialogInfo.zIndex = ++InternalContentDialogManager._topZIndex;\r\n\r\n InternalContentDialogManager._idArray.splice(InternalContentDialogManager._idArray.indexOf(id), 1);\r\n InternalContentDialogManager._idArray.push(id);\r\n\r\n updateFunc();\r\n this.update();\r\n }\r\n }\r\n\r\n /** Get the z-index for a modeless dialog */\r\n public static getZIndex(id: string): number {\r\n let zIndex = InternalContentDialogManager.getDialogZIndexDefault();\r\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n zIndex = dialogInfo.zIndex;\r\n return zIndex;\r\n }\r\n\r\n public static getInfo(id: string): ContentDialogInfo | undefined {\r\n return InternalContentDialogManager._dialogMap.get(id);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"InternalContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/InternalContentDialogManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,sDAA6C;AAC7C,kDAA2D;AAC3D,gDAA6C;AAC7C,2DAAwD;AACxD,wDAAiH;AACjH,oEAA6F;AAE7F,gCAAgC;AAEhC,+DAA+D;AAC/D,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C;;GAEG;AACH,MAAa,4BAA4B;IAOvC,wCAAwC;IACjC,MAAM,KAAK,OAAO,KAAK,OAAO,4BAA4B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAO1F;;MAEE;IACK,MAAM,CAAC,UAAU;QACtB,4BAA4B,CAAC,UAAU,GAAG,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;IAClG,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACnC,MAAM,QAAQ,GAAG,sCAAsC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAA,mCAAsB,EAAC,QAAQ,CAAC,CAAC;QAE/C,uBAAuB;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACf,OAAO,KAAK,CAAC;QAEf,qBAAM,CAAC,QAAQ,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,0BAA0B,CAAC,CAAC;QAC1F,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAI,CAAC,MAAuB,EAAE,EAAU,EAAE,cAAc,GAAG,QAAQ;QAC/E,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE;YACd,MAAM,OAAO,GAAG,sBAAsB,EAAE,kBAAkB,CAAC;YAC3D,qBAAM,CAAC,OAAO,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,eAAe,OAAO,EAAE,CAAC,CAAC;YAC3E,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,iCAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACzI,OAAO;SACR;QACD,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,4BAA4B,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAC1I,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,4BAA4B,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,EAAU;QAC5B,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE;YACd,4BAA4B,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC9E,4BAA4B,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChE,uBAAuB;YACvB,IAAI,KAAK,IAAI,CAAC;gBACZ,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEzD,IAAI,4BAA4B,CAAC,MAAM,KAAK,SAAS;gBACnD,4BAA4B,CAAC,UAAU,GAAG,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;YAElG,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM;YACL,qBAAM,CAAC,QAAQ,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,kDAAkD,EAAE,GAAG,CAAC,CAAC;SAC5G;IACH,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,4BAA4B,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,4BAA4B,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACtD,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,MAAM;QACtB,IAAI,4BAA4B,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,MAAM,EAAE,GAAG,4BAA4B,CAAC,QAAQ,CAAC,4BAA4B,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnG,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnE,uBAAuB;YACvB,IAAI,UAAU;gBACZ,OAAO,UAAU,CAAC,SAAS,CAAC;SAC/B;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wCAAwC;IACjC,MAAM,KAAK,KAAK;QACrB,OAAO,4BAA4B,CAAC,aAAa,CAAC,WAAW,CAAC;IAChE,CAAC;IAED,uDAAuD;IAChD,MAAM,CAAC,sBAAsB,CAAC,MAA0B,EAAE,EAAU,EAAE,UAAsB;QACjG,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,KAAK,4BAA4B,CAAC,MAAM,EAAE;YAC9E,UAAU,CAAC,MAAM,GAAG,EAAE,4BAA4B,CAAC,UAAU,CAAC;YAE9D,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnG,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE/C,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;IACH,CAAC;IAED,4CAA4C;IACrC,MAAM,CAAC,SAAS,CAAC,EAAU;QAChC,IAAI,MAAM,GAAG,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,uBAAuB;QACvB,IAAI,UAAU;YACZ,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,EAAU;QAC9B,OAAO,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;;AA9HD,mCAAmC;AACZ,wDAA2B,GAAG,IAAI,4CAAyB,EAAE,CAAC;AAErF,gBAAgB;AACO,0CAAa,GAAsB,IAAI,qCAAiB,CAAC,4BAA4B,CAAC,2BAA2B,CAAC,CAAC;AAK3H,uCAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;AAClD,qCAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;AAE/B,uCAAU,GAAG,6BAA6B,CAAC;AAb/C,oEAA4B","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { DialogManagerBase } from \"./DialogManagerBase\";\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\nimport { ContentDialogChangedEvent, ContentDialogInfo } from \"../framework/FrameworkContent\";\n\n// cSpell:ignore ZINDEX modeless\n\n/** Used if the 'dialog' z-index CSS variable cannot be read */\nconst CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;\n\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\n * @internal\n */\nexport class InternalContentDialogManager {\n /** Content Dialog Changed Event */\n public static readonly onContentDialogChangedEvent = new ContentDialogChangedEvent();\n\n /** @internal */\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(InternalContentDialogManager.onContentDialogChangedEvent);\n\n /** Get the array of modeless dialogs */\n public static get dialogs() { return InternalContentDialogManager.dialogManager.dialogs; }\n\n private static _dialogMap = new Map<string, ContentDialogInfo>();\n private static _idArray = new Array<string>();\n\n private static _topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;\n\n /** Initialize the modeless dialog manager.\n * @internal\n */\n public static initialize(): void {\n InternalContentDialogManager._topZIndex = InternalContentDialogManager.getDialogZIndexDefault();\n }\n\n private static getDialogZIndexDefault(): number {\n const variable = \"--uicore-z-index-view-content-dialog\";\n const value = getCssVariableAsNumber(variable);\n\n // istanbul ignore next\n if (!isNaN(value))\n return value;\n\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\n return CONTENT_DIALOG_ZINDEX_DEFAULT;\n }\n\n /** Open a modeless dialog\n * @param dialog The Dialog to open\n * @param id The id of the Dialog to open\n */\n public static open(dialog: React.ReactNode, id: string, parentDocument = document): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n const message = `Dialog with id of '${id}' already opened`;\n Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));\n return;\n }\n InternalContentDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++InternalContentDialogManager._topZIndex, parentDocument });\n InternalContentDialogManager._idArray.push(id);\n InternalContentDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\n }\n\n /** Close a modeless dialog\n * @param id The id of the Dialog to close.\n */\n public static close(id: string): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo) {\n InternalContentDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\n InternalContentDialogManager._dialogMap.delete(id);\n const index = InternalContentDialogManager._idArray.indexOf(id);\n // istanbul ignore else\n if (index >= 0)\n InternalContentDialogManager._idArray.splice(index, 1);\n\n if (InternalContentDialogManager.active === undefined)\n InternalContentDialogManager._topZIndex = InternalContentDialogManager.getDialogZIndexDefault();\n\n this.update();\n } else {\n Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);\n }\n }\n\n /** @internal */\n public static closeAll(): void {\n InternalContentDialogManager.dialogManager.closeAll();\n }\n\n /** Update the dialogs */\n public static update(): void {\n InternalContentDialogManager.dialogManager.update();\n }\n\n /** Get the active modeless dialog */\n public static get active(): React.ReactNode | undefined {\n if (InternalContentDialogManager._idArray.length > 0) {\n const id = InternalContentDialogManager._idArray[InternalContentDialogManager._idArray.length - 1];\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n // istanbul ignore else\n if (dialogInfo)\n return dialogInfo.reactNode;\n }\n\n return undefined;\n }\n\n /** Get the count of modeless dialogs */\n public static get count(): number {\n return InternalContentDialogManager.dialogManager.dialogCount;\n }\n\n /** Handle a pointer down event on a modeless dialog */\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n if (dialogInfo && dialogInfo.reactNode !== InternalContentDialogManager.active) {\n dialogInfo.zIndex = ++InternalContentDialogManager._topZIndex;\n\n InternalContentDialogManager._idArray.splice(InternalContentDialogManager._idArray.indexOf(id), 1);\n InternalContentDialogManager._idArray.push(id);\n\n updateFunc();\n this.update();\n }\n }\n\n /** Get the z-index for a modeless dialog */\n public static getZIndex(id: string): number {\n let zIndex = InternalContentDialogManager.getDialogZIndexDefault();\n const dialogInfo = InternalContentDialogManager._dialogMap.get(id);\n // istanbul ignore else\n if (dialogInfo)\n zIndex = dialogInfo.zIndex;\n return zIndex;\n }\n\n public static getInfo(id: string): ContentDialogInfo | undefined {\n return InternalContentDialogManager._dialogMap.get(id);\n }\n}\n"]}