@itwin/appui-react 4.0.0-dev.13 → 4.0.0-dev.15

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 (646) hide show
  1. package/CHANGELOG.md +154 -1
  2. package/README.md +2 -2
  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.js.map +1 -1
  11. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +55 -55
  12. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  15. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/Calculator.scss +84 -84
  18. package/lib/cjs/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  21. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/MenuButton.scss +18 -18
  23. package/lib/cjs/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
  25. package/lib/cjs/appui-react/accudraw/SquareButton.scss +29 -29
  26. package/lib/cjs/appui-react/accudraw/backspace.svg +9 -9
  27. package/lib/cjs/appui-react/accudraw/constraint-2d.svg +11 -11
  28. package/lib/cjs/appui-react/accudraw/height-2.svg +10 -10
  29. package/lib/cjs/appui-react/accudraw/height.svg +11 -11
  30. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  31. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  32. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  33. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  34. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -1
  35. package/lib/cjs/appui-react/backstage/BackstageManager.js.map +1 -1
  36. package/lib/cjs/appui-react/backstage/InternalBackstageManager.js.map +1 -1
  37. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  38. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  39. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  40. package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
  41. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +21 -21
  42. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  43. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
  44. package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
  45. package/lib/cjs/appui-react/childwindow/PopoutWidget.scss +10 -10
  46. package/lib/cjs/appui-react/configurableui/ActivityTracker.js.map +1 -1
  47. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  48. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  49. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  50. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  51. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  52. package/lib/cjs/appui-react/configurableui/configurableui.scss +74 -74
  53. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  54. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  55. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  56. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  57. package/lib/cjs/appui-react/content/ContentLayout.scss +99 -99
  58. package/lib/cjs/appui-react/content/ContentLayoutManager.js.map +1 -1
  59. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  60. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  61. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +46 -46
  62. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  63. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  64. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  65. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  66. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
  67. package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -1
  68. package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
  69. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -1
  70. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -1
  71. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  72. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  73. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  74. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  75. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
  76. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  77. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  78. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
  79. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  80. package/lib/cjs/appui-react/dialog/ContentDialog.scss +25 -25
  81. package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
  82. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  83. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  84. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  85. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  86. package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
  87. package/lib/cjs/appui-react/dialog/ModelessDialog.js.map +1 -1
  88. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  89. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  90. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  91. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  92. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  93. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +50 -50
  94. package/lib/cjs/appui-react/framework/FrameworkBackstage.js.map +1 -1
  95. package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  96. package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
  97. package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -1
  98. package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -1
  99. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  100. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  101. package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  102. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  103. package/lib/cjs/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  104. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  105. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  106. package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  107. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  108. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  109. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +80 -80
  110. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  111. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +11 -11
  112. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  113. package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
  114. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  115. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  116. package/lib/cjs/appui-react/hooks/useActiveStageId.js.map +1 -1
  117. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  118. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  119. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  120. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  121. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  122. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  123. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -1
  124. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  125. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  126. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  127. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  128. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  129. package/lib/cjs/appui-react/messages/HollowIcon.js.map +1 -1
  130. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  131. package/lib/cjs/appui-react/messages/InputField.scss +82 -82
  132. package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
  133. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  134. package/lib/cjs/appui-react/messages/MessageSpan.js.map +1 -1
  135. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  136. package/lib/cjs/appui-react/messages/Pointer.scss +42 -42
  137. package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  138. package/lib/cjs/appui-react/messages/StatusMessageManager.js.map +1 -1
  139. package/lib/cjs/appui-react/messages/getToastCategory.js.map +1 -1
  140. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  141. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  142. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  143. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  144. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
  145. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  146. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
  147. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  148. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
  149. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +3 -0
  150. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  151. package/lib/cjs/appui-react/pickers/ListPicker.js +3 -1
  152. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  153. package/lib/cjs/appui-react/pickers/ListPicker.scss +306 -299
  154. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +6 -1
  155. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/pickers/ViewSelector.js +24 -9
  157. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  158. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  159. package/lib/cjs/appui-react/popup/CardPopup.scss +25 -25
  160. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  161. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  162. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  163. package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +30 -30
  164. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  165. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  166. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  167. package/lib/cjs/appui-react/popup/PositionPopup.scss +28 -28
  168. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  169. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  170. package/lib/cjs/appui-react/redux/FrameworkState.js.map +1 -1
  171. package/lib/cjs/appui-react/redux/ReducerRegistry.js.map +1 -1
  172. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  173. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  174. package/lib/cjs/appui-react/redux/connectIModel.js.map +1 -1
  175. package/lib/cjs/appui-react/redux/redux-ts.js.map +1 -1
  176. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  177. package/lib/cjs/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
  178. package/lib/cjs/appui-react/safearea/SafeAreaInsets.js.map +1 -1
  179. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  180. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  181. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  182. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
  183. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  184. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  185. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +65 -65
  186. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  187. package/lib/cjs/appui-react/shared/AnyItemDef.js.map +1 -1
  188. package/lib/cjs/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  189. package/lib/cjs/appui-react/shared/CommandItemDef.js.map +1 -1
  190. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  191. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  192. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  193. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  194. package/lib/cjs/appui-react/shared/ItemMap.js.map +1 -1
  195. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  196. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  197. package/lib/cjs/appui-react/shared/SelectionScope.js.map +1 -1
  198. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  199. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  200. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  201. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  202. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  203. package/lib/cjs/appui-react/statusbar/Field.js.map +1 -1
  204. package/lib/cjs/appui-react/statusbar/Field.scss +109 -109
  205. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  206. package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
  207. package/lib/cjs/appui-react/statusbar/LabelIndicator.scss +43 -43
  208. package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
  209. package/lib/cjs/appui-react/statusbar/Overflow.scss +27 -27
  210. package/lib/cjs/appui-react/statusbar/OverflowPanel.js.map +1 -1
  211. package/lib/cjs/appui-react/statusbar/OverflowPanel.scss +22 -22
  212. package/lib/cjs/appui-react/statusbar/Popup.js.map +1 -1
  213. package/lib/cjs/appui-react/statusbar/Separator.js.map +1 -1
  214. package/lib/cjs/appui-react/statusbar/Separator.scss +12 -12
  215. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  216. package/lib/cjs/appui-react/statusbar/StatusBar.scss +41 -41
  217. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  218. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  219. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  220. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  221. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  222. package/lib/cjs/appui-react/statusbar/dialog/Button.js.map +1 -1
  223. package/lib/cjs/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  224. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
  225. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  226. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  227. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  228. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  229. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  230. package/lib/cjs/appui-react/statusfields/SectionsField.scss +35 -35
  231. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  232. package/lib/cjs/appui-react/statusfields/SelectionInfo.scss +14 -14
  233. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  234. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +46 -46
  235. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  236. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  237. package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +10 -10
  238. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  239. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
  240. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  241. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
  242. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  243. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  244. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  245. package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  246. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  247. package/lib/cjs/appui-react/toolbar/DragInteraction.js.map +1 -1
  248. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  249. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  250. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  251. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  252. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  253. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  254. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  255. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  256. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  257. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  258. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  259. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  260. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  261. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  262. package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
  263. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  264. package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  265. package/lib/cjs/appui-react/toolsettings/ToolInformation.js.map +1 -1
  266. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js.map +1 -1
  267. package/lib/cjs/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
  268. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  269. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  270. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  271. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  272. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  273. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  274. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  275. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  276. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  277. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  278. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
  279. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  280. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  281. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  282. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
  283. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  284. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  285. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  286. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  287. package/lib/cjs/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  288. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  289. package/lib/cjs/appui-react/utils/ViewUtilities.js.map +1 -1
  290. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  291. package/lib/cjs/appui-react/widget-panels/FloatingWidget.js.map +1 -1
  292. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  293. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -19
  294. package/lib/cjs/appui-react/widget-panels/FrontstageContent.js.map +1 -1
  295. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  296. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  297. package/lib/cjs/appui-react/widget-panels/StatusBar.scss +10 -10
  298. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  299. package/lib/cjs/appui-react/widget-panels/Tab.scss +14 -14
  300. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  301. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +41 -41
  302. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  303. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +20 -20
  304. package/lib/cjs/appui-react/widget-panels/useTransientState.js.map +1 -1
  305. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  306. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  307. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  308. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  309. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  310. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  311. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  312. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  313. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  314. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  315. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  316. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  317. package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -1
  318. package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
  319. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  320. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  321. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  322. package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
  323. package/lib/cjs/appui-react.js.map +1 -1
  324. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  325. package/lib/esm/appui-react/_variables.scss +11 -11
  326. package/lib/esm/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  327. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  328. package/lib/esm/appui-react/accudraw/AccuDrawDialog.scss +14 -14
  329. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  330. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
  331. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  332. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +55 -55
  333. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  334. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  335. package/lib/esm/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  336. package/lib/esm/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  337. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  338. package/lib/esm/appui-react/accudraw/Calculator.scss +84 -84
  339. package/lib/esm/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  340. package/lib/esm/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  341. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  342. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  343. package/lib/esm/appui-react/accudraw/MenuButton.scss +18 -18
  344. package/lib/esm/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
  345. package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
  346. package/lib/esm/appui-react/accudraw/SquareButton.scss +29 -29
  347. package/lib/esm/appui-react/accudraw/backspace.svg +9 -9
  348. package/lib/esm/appui-react/accudraw/constraint-2d.svg +11 -11
  349. package/lib/esm/appui-react/accudraw/height-2.svg +10 -10
  350. package/lib/esm/appui-react/accudraw/height.svg +11 -11
  351. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  352. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  353. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  354. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  355. package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -1
  356. package/lib/esm/appui-react/backstage/BackstageManager.js.map +1 -1
  357. package/lib/esm/appui-react/backstage/InternalBackstageManager.js.map +1 -1
  358. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  359. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  360. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  361. package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
  362. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +21 -21
  363. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  364. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
  365. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  366. package/lib/esm/appui-react/childwindow/PopoutWidget.scss +10 -10
  367. package/lib/esm/appui-react/configurableui/ActivityTracker.js.map +1 -1
  368. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  369. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  370. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  371. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  372. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  373. package/lib/esm/appui-react/configurableui/configurableui.scss +74 -74
  374. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  375. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  376. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  377. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  378. package/lib/esm/appui-react/content/ContentLayout.scss +99 -99
  379. package/lib/esm/appui-react/content/ContentLayoutManager.js.map +1 -1
  380. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  381. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  382. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +46 -46
  383. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  384. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  385. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  386. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  387. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
  388. package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -1
  389. package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
  390. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -1
  391. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -1
  392. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  393. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  394. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  395. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  396. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
  397. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  398. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  399. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
  400. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  401. package/lib/esm/appui-react/dialog/ContentDialog.scss +25 -25
  402. package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
  403. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  404. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  405. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  406. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  407. package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
  408. package/lib/esm/appui-react/dialog/ModelessDialog.js.map +1 -1
  409. package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  410. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  411. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  412. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  413. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  414. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +50 -50
  415. package/lib/esm/appui-react/framework/FrameworkBackstage.js.map +1 -1
  416. package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  417. package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
  418. package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -1
  419. package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -1
  420. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  421. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  422. package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  423. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  424. package/lib/esm/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  425. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  426. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  427. package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  428. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  429. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  430. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +80 -80
  431. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  432. package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +11 -11
  433. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  434. package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -1
  435. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  436. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  437. package/lib/esm/appui-react/hooks/useActiveStageId.js.map +1 -1
  438. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  439. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  440. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  441. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  442. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  443. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  444. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -1
  445. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  446. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  447. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  448. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  449. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  450. package/lib/esm/appui-react/messages/HollowIcon.js.map +1 -1
  451. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  452. package/lib/esm/appui-react/messages/InputField.scss +82 -82
  453. package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
  454. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  455. package/lib/esm/appui-react/messages/MessageSpan.js.map +1 -1
  456. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  457. package/lib/esm/appui-react/messages/Pointer.scss +42 -42
  458. package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  459. package/lib/esm/appui-react/messages/StatusMessageManager.js.map +1 -1
  460. package/lib/esm/appui-react/messages/getToastCategory.js.map +1 -1
  461. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  462. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  463. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  464. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  465. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
  466. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  467. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
  468. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  469. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
  470. package/lib/esm/appui-react/pickers/ListPicker.d.ts +3 -0
  471. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  472. package/lib/esm/appui-react/pickers/ListPicker.js +4 -2
  473. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  474. package/lib/esm/appui-react/pickers/ListPicker.scss +306 -299
  475. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +6 -1
  476. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  477. package/lib/esm/appui-react/pickers/ViewSelector.js +24 -9
  478. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  479. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  480. package/lib/esm/appui-react/popup/CardPopup.scss +25 -25
  481. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  482. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  483. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  484. package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +30 -30
  485. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  486. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  487. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  488. package/lib/esm/appui-react/popup/PositionPopup.scss +28 -28
  489. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  490. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  491. package/lib/esm/appui-react/redux/FrameworkState.js.map +1 -1
  492. package/lib/esm/appui-react/redux/ReducerRegistry.js.map +1 -1
  493. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  494. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  495. package/lib/esm/appui-react/redux/connectIModel.js.map +1 -1
  496. package/lib/esm/appui-react/redux/redux-ts.js.map +1 -1
  497. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  498. package/lib/esm/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
  499. package/lib/esm/appui-react/safearea/SafeAreaInsets.js.map +1 -1
  500. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  501. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  502. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  503. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
  504. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  505. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  506. package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +65 -65
  507. package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  508. package/lib/esm/appui-react/shared/AnyItemDef.js.map +1 -1
  509. package/lib/esm/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  510. package/lib/esm/appui-react/shared/CommandItemDef.js.map +1 -1
  511. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  512. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  513. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  514. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  515. package/lib/esm/appui-react/shared/ItemMap.js.map +1 -1
  516. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  517. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  518. package/lib/esm/appui-react/shared/SelectionScope.js.map +1 -1
  519. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  520. package/lib/esm/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  521. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  522. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  523. package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  524. package/lib/esm/appui-react/statusbar/Field.js.map +1 -1
  525. package/lib/esm/appui-react/statusbar/Field.scss +109 -109
  526. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  527. package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
  528. package/lib/esm/appui-react/statusbar/LabelIndicator.scss +43 -43
  529. package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
  530. package/lib/esm/appui-react/statusbar/Overflow.scss +27 -27
  531. package/lib/esm/appui-react/statusbar/OverflowPanel.js.map +1 -1
  532. package/lib/esm/appui-react/statusbar/OverflowPanel.scss +22 -22
  533. package/lib/esm/appui-react/statusbar/Popup.js.map +1 -1
  534. package/lib/esm/appui-react/statusbar/Separator.js.map +1 -1
  535. package/lib/esm/appui-react/statusbar/Separator.scss +12 -12
  536. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  537. package/lib/esm/appui-react/statusbar/StatusBar.scss +41 -41
  538. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  539. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  540. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  541. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  542. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  543. package/lib/esm/appui-react/statusbar/dialog/Button.js.map +1 -1
  544. package/lib/esm/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  545. package/lib/esm/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
  546. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  547. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  548. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  549. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  550. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  551. package/lib/esm/appui-react/statusfields/SectionsField.scss +35 -35
  552. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  553. package/lib/esm/appui-react/statusfields/SelectionInfo.scss +14 -14
  554. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  555. package/lib/esm/appui-react/statusfields/SelectionScope.scss +46 -46
  556. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  557. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  558. package/lib/esm/appui-react/statusfields/ViewAttributes.scss +10 -10
  559. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  560. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
  561. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  562. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
  563. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  564. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  565. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  566. package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  567. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  568. package/lib/esm/appui-react/toolbar/DragInteraction.js.map +1 -1
  569. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  570. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  571. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  572. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  573. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  574. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  575. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  576. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  577. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  578. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  579. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  580. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  581. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  582. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  583. package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
  584. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  585. package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  586. package/lib/esm/appui-react/toolsettings/ToolInformation.js.map +1 -1
  587. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js.map +1 -1
  588. package/lib/esm/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
  589. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  590. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  591. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  592. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  593. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  594. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  595. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  596. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  597. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  598. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  599. package/lib/esm/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
  600. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  601. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  602. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  603. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
  604. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  605. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  606. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  607. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  608. package/lib/esm/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  609. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  610. package/lib/esm/appui-react/utils/ViewUtilities.js.map +1 -1
  611. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  612. package/lib/esm/appui-react/widget-panels/FloatingWidget.js.map +1 -1
  613. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  614. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -19
  615. package/lib/esm/appui-react/widget-panels/FrontstageContent.js.map +1 -1
  616. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  617. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  618. package/lib/esm/appui-react/widget-panels/StatusBar.scss +10 -10
  619. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  620. package/lib/esm/appui-react/widget-panels/Tab.scss +14 -14
  621. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  622. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +41 -41
  623. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  624. package/lib/esm/appui-react/widget-panels/Toolbars.scss +20 -20
  625. package/lib/esm/appui-react/widget-panels/useTransientState.js.map +1 -1
  626. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  627. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  628. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  629. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  630. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  631. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  632. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  633. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  634. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  635. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  636. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  637. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  638. package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -1
  639. package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
  640. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  641. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  642. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  643. package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -1
  644. package/lib/esm/appui-react.js.map +1 -1
  645. package/lib/public/locales/en/UiFramework.json +381 -381
  646. package/package.json +31 -29
@@ -1 +1 @@
1
- {"version":3,"file":"IModelViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/content/IModelViewport.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport * as React from \"react\";\nimport { Id64String } from \"@itwin/core-bentley\";\nimport { IModelConnection, ScreenViewport, ViewState } from \"@itwin/core-frontend\";\nimport { ViewportComponent, ViewStateProp } from \"@itwin/imodel-components-react\";\nimport { FillCentered } from \"@itwin/core-react\";\n\nimport { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl\";\nimport { connectIModelConnectionAndViewState } from \"../redux/connectIModel\";\nimport { UiFramework } from \"../UiFramework\";\nimport { DefaultViewOverlay } from \"./DefaultViewOverlay\";\nimport { ViewportContentControl } from \"./ViewportContentControl\";\nimport { StandardRotationNavigationAidControl } from \"../navigationaids/StandardRotationNavigationAid\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { useSelector } from \"react-redux\";\nimport { FrameworkState } from \"../redux/FrameworkState\";\n\n/** Viewport that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\n * @public\n */\nexport const IModelConnectedViewport = connectIModelConnectionAndViewState(null, null)(ViewportComponent); // eslint-disable-line @typescript-eslint/naming-convention\n\n/** [[IModelViewportControl]] options. These options are set in the applicationData property of the [[ContentProps]].\n * @public\n */\nexport interface IModelViewportControlOptions {\n /** ViewState or a function to return a ViewState */\n viewState?: ViewStateProp;\n /** IModelConnection of data in Viewport */\n iModelConnection?: IModelConnection | (() => IModelConnection);\n /** Map of options that can be used to enable/disable features within the view */\n featureOptions?: { [key: string]: any };\n /** Optional background color which may be used if viewState and iModelConnection are undefined */\n bgColor?: string;\n /** Optional property to always use the supplied `viewState` property instead of using viewport.view when set */\n alwaysUseSuppliedViewState?: boolean;\n /** Optional property to supply custom view overlay. Uses when caller want to supply custom overlay component. */\n supplyViewOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\n /** Optional property to defer reactNode initialization until first reactNode property is needed. Useful when subclassing the `IModelViewportControl`. */\n deferNodeInitialization?: boolean;\n}\n\ninterface ViewOverlayHostProps {\n viewport: ScreenViewport;\n featureOptions?: { [key: string]: any };\n userSuppliedOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\n}\n/** View Overlay component -- exported for testing\n * @internal\n */\n// istanbul ignore next\nexport function ViewOverlayHost({ viewport, featureOptions, userSuppliedOverlay }: ViewOverlayHostProps) {\n const displayViewOverlay = useSelector((state: FrameworkState) => {\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\n return frameworkState ? frameworkState.configurableUiState.viewOverlayDisplay : true;\n });\n if (!displayViewOverlay)\n return null;\n return userSuppliedOverlay ? <React.Fragment>{userSuppliedOverlay(viewport)}</React.Fragment> : <DefaultViewOverlay viewport={viewport} featureOptions={featureOptions} />;\n}\n/** iModel Viewport Control\n * @public\n */\n// istanbul ignore next\nexport class IModelViewportControl extends ViewportContentControl {\n public static get id() {\n return \"UiFramework.IModelViewportControl\";\n }\n protected _featureOptions: { [key: string]: boolean | string } = {};\n protected _viewState: ViewStateProp | undefined;\n protected _iModelConnection: IModelConnection | undefined;\n protected _alwaysUseSuppliedViewState: boolean;\n private _userSuppliedViewOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\n\n constructor(info: ConfigurableCreateInfo, protected _options: IModelViewportControlOptions) {\n super(info, _options);\n\n if (_options.featureOptions)\n this._featureOptions = _options.featureOptions;\n this._alwaysUseSuppliedViewState = _options.alwaysUseSuppliedViewState ?? false;\n this._userSuppliedViewOverlay = _options.supplyViewOverlay;\n\n if (!_options.deferNodeInitialization)\n this.initializeReactNode();\n }\n\n protected initializeReactNode() {\n const options = this._options;\n\n if (options.viewState)\n this._viewState = options.viewState;\n\n const iModelConnection = (typeof options.iModelConnection === \"function\") ? options.iModelConnection() : options.iModelConnection;\n\n if (this._viewState && iModelConnection) {\n /** Passing _determineViewState as a function reference; it is not called here. */\n this._reactNode = this.getImodelViewportReactElement(iModelConnection, this._determineViewState);\n } else {\n if (UiFramework.getIModelConnection() && UiFramework.getDefaultViewState()) {\n this._reactNode = this.getImodelConnectedViewportReactElement();\n } else {\n this._reactNode = this.getNoContentReactElement(options);\n this.setIsReady();\n }\n }\n }\n\n protected override getReactNode(): React.ReactNode {\n if (!React.isValidElement(this._reactNode) && this._options.deferNodeInitialization)\n this.initializeReactNode();\n\n return this.getKeyedReactNode();\n }\n\n /**\n * This is passed as a function to the ViewportComponent as the `viewState` prop in getImodelViewportReactElement().\n * It is called by ViewportComponent on a mount to resolve the viewState.\n */\n private _determineViewState = (): ViewState => {\n let viewState: ViewState;\n\n if (this.viewport && !this._alwaysUseSuppliedViewState)\n viewState = this.viewport.view;\n else if (this._viewState) {\n if (typeof this._viewState === \"function\")\n viewState = this._viewState();\n else\n viewState = this._viewState;\n } else\n throw new UiError(UiFramework.loggerCategory(this), \"No ViewState could be determined\");\n\n return viewState!;\n };\n\n /** Get the React component that will contain the Viewport */\n protected getImodelConnectedViewportReactElement(): React.ReactNode {\n return <IModelConnectedViewport\n viewportRef={(v: ScreenViewport) => {\n this.viewport = v;\n // for convenience, if window defined bind viewport to window\n if (undefined !== window)\n (window as any).viewport = v;\n if (!UiFramework.frontstages.isLoading)\n UiFramework.frontstages.activeFrontstageDef?.setActiveViewFromViewport(v);\n }}\n getViewOverlay={this._getViewOverlay}\n />;\n }\n\n /** Get the React component that will contain the Viewport */\n protected getImodelViewportReactElement(iModelConnection: IModelConnection, viewState: ViewStateProp): React.ReactNode {\n return <ViewportComponent\n viewState={viewState}\n imodel={iModelConnection}\n controlId={this.controlId}\n viewportRef={(v: ScreenViewport) => {\n this.viewport = v;\n // for convenience, if window defined bind viewport to window\n if (undefined !== window)\n (window as any).viewport = v;\n if (!UiFramework.frontstages.isLoading)\n UiFramework.frontstages.activeFrontstageDef?.setActiveViewFromViewport(v);\n }}\n getViewOverlay={this._getViewOverlay}\n />;\n }\n\n /** Get the React component that will be shown when no iModel data is available */\n protected getNoContentReactElement(_options: IModelViewportControlOptions): React.ReactNode {\n const noContent = UiFramework.translate(\"general.no-content\");\n return <FillCentered> {noContent} </FillCentered>;\n }\n\n /** Get the React.Element for a ViewSelector change. */\n public override getReactElementForViewSelectorChange(iModelConnection: IModelConnection, _unusedViewDefinitionId: Id64String, viewState: ViewState, _name: string): React.ReactNode {\n return this.getImodelViewportReactElement(iModelConnection, viewState);\n }\n\n /** Get the default ViewOverlay unless parameter is set to not use it. May be override in an application specific sub-class */\n protected _getViewOverlay = (vp: ScreenViewport): React.ReactNode => {\n return <ViewOverlayHost viewport={vp} featureOptions={this._featureOptions} userSuppliedOverlay={this._userSuppliedViewOverlay} data-testid=\"ViewOverlay\" />;\n };\n\n /** Get the NavigationAidControl associated with this ContentControl */\n public override get navigationAidControl(): string {\n if (this.viewport)\n return super.navigationAidControl;\n else\n return StandardRotationNavigationAidControl.navigationAidId;\n }\n}\n\nUiFramework.controls.register(IModelViewportControl.id, IModelViewportControl);\n"]}
1
+ {"version":3,"file":"IModelViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/content/IModelViewport.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelConnection, ScreenViewport, ViewState } from \"@itwin/core-frontend\";\r\nimport { ViewportComponent, ViewStateProp } from \"@itwin/imodel-components-react\";\r\nimport { FillCentered } from \"@itwin/core-react\";\r\n\r\nimport { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl\";\r\nimport { connectIModelConnectionAndViewState } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DefaultViewOverlay } from \"./DefaultViewOverlay\";\r\nimport { ViewportContentControl } from \"./ViewportContentControl\";\r\nimport { StandardRotationNavigationAidControl } from \"../navigationaids/StandardRotationNavigationAid\";\r\nimport { UiError } from \"@itwin/appui-abstract\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { FrameworkState } from \"../redux/FrameworkState\";\r\n\r\n/** Viewport that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @public\r\n */\r\nexport const IModelConnectedViewport = connectIModelConnectionAndViewState(null, null)(ViewportComponent); // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n/** [[IModelViewportControl]] options. These options are set in the applicationData property of the [[ContentProps]].\r\n * @public\r\n */\r\nexport interface IModelViewportControlOptions {\r\n /** ViewState or a function to return a ViewState */\r\n viewState?: ViewStateProp;\r\n /** IModelConnection of data in Viewport */\r\n iModelConnection?: IModelConnection | (() => IModelConnection);\r\n /** Map of options that can be used to enable/disable features within the view */\r\n featureOptions?: { [key: string]: any };\r\n /** Optional background color which may be used if viewState and iModelConnection are undefined */\r\n bgColor?: string;\r\n /** Optional property to always use the supplied `viewState` property instead of using viewport.view when set */\r\n alwaysUseSuppliedViewState?: boolean;\r\n /** Optional property to supply custom view overlay. Uses when caller want to supply custom overlay component. */\r\n supplyViewOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\r\n /** Optional property to defer reactNode initialization until first reactNode property is needed. Useful when subclassing the `IModelViewportControl`. */\r\n deferNodeInitialization?: boolean;\r\n}\r\n\r\ninterface ViewOverlayHostProps {\r\n viewport: ScreenViewport;\r\n featureOptions?: { [key: string]: any };\r\n userSuppliedOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\r\n}\r\n/** View Overlay component -- exported for testing\r\n * @internal\r\n */\r\n// istanbul ignore next\r\nexport function ViewOverlayHost({ viewport, featureOptions, userSuppliedOverlay }: ViewOverlayHostProps) {\r\n const displayViewOverlay = useSelector((state: FrameworkState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return frameworkState ? frameworkState.configurableUiState.viewOverlayDisplay : true;\r\n });\r\n if (!displayViewOverlay)\r\n return null;\r\n return userSuppliedOverlay ? <React.Fragment>{userSuppliedOverlay(viewport)}</React.Fragment> : <DefaultViewOverlay viewport={viewport} featureOptions={featureOptions} />;\r\n}\r\n/** iModel Viewport Control\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class IModelViewportControl extends ViewportContentControl {\r\n public static get id() {\r\n return \"UiFramework.IModelViewportControl\";\r\n }\r\n protected _featureOptions: { [key: string]: boolean | string } = {};\r\n protected _viewState: ViewStateProp | undefined;\r\n protected _iModelConnection: IModelConnection | undefined;\r\n protected _alwaysUseSuppliedViewState: boolean;\r\n private _userSuppliedViewOverlay?: (_viewport: ScreenViewport) => React.ReactNode;\r\n\r\n constructor(info: ConfigurableCreateInfo, protected _options: IModelViewportControlOptions) {\r\n super(info, _options);\r\n\r\n if (_options.featureOptions)\r\n this._featureOptions = _options.featureOptions;\r\n this._alwaysUseSuppliedViewState = _options.alwaysUseSuppliedViewState ?? false;\r\n this._userSuppliedViewOverlay = _options.supplyViewOverlay;\r\n\r\n if (!_options.deferNodeInitialization)\r\n this.initializeReactNode();\r\n }\r\n\r\n protected initializeReactNode() {\r\n const options = this._options;\r\n\r\n if (options.viewState)\r\n this._viewState = options.viewState;\r\n\r\n const iModelConnection = (typeof options.iModelConnection === \"function\") ? options.iModelConnection() : options.iModelConnection;\r\n\r\n if (this._viewState && iModelConnection) {\r\n /** Passing _determineViewState as a function reference; it is not called here. */\r\n this._reactNode = this.getImodelViewportReactElement(iModelConnection, this._determineViewState);\r\n } else {\r\n if (UiFramework.getIModelConnection() && UiFramework.getDefaultViewState()) {\r\n this._reactNode = this.getImodelConnectedViewportReactElement();\r\n } else {\r\n this._reactNode = this.getNoContentReactElement(options);\r\n this.setIsReady();\r\n }\r\n }\r\n }\r\n\r\n protected override getReactNode(): React.ReactNode {\r\n if (!React.isValidElement(this._reactNode) && this._options.deferNodeInitialization)\r\n this.initializeReactNode();\r\n\r\n return this.getKeyedReactNode();\r\n }\r\n\r\n /**\r\n * This is passed as a function to the ViewportComponent as the `viewState` prop in getImodelViewportReactElement().\r\n * It is called by ViewportComponent on a mount to resolve the viewState.\r\n */\r\n private _determineViewState = (): ViewState => {\r\n let viewState: ViewState;\r\n\r\n if (this.viewport && !this._alwaysUseSuppliedViewState)\r\n viewState = this.viewport.view;\r\n else if (this._viewState) {\r\n if (typeof this._viewState === \"function\")\r\n viewState = this._viewState();\r\n else\r\n viewState = this._viewState;\r\n } else\r\n throw new UiError(UiFramework.loggerCategory(this), \"No ViewState could be determined\");\r\n\r\n return viewState!;\r\n };\r\n\r\n /** Get the React component that will contain the Viewport */\r\n protected getImodelConnectedViewportReactElement(): React.ReactNode {\r\n return <IModelConnectedViewport\r\n viewportRef={(v: ScreenViewport) => {\r\n this.viewport = v;\r\n // for convenience, if window defined bind viewport to window\r\n if (undefined !== window)\r\n (window as any).viewport = v;\r\n if (!UiFramework.frontstages.isLoading)\r\n UiFramework.frontstages.activeFrontstageDef?.setActiveViewFromViewport(v);\r\n }}\r\n getViewOverlay={this._getViewOverlay}\r\n />;\r\n }\r\n\r\n /** Get the React component that will contain the Viewport */\r\n protected getImodelViewportReactElement(iModelConnection: IModelConnection, viewState: ViewStateProp): React.ReactNode {\r\n return <ViewportComponent\r\n viewState={viewState}\r\n imodel={iModelConnection}\r\n controlId={this.controlId}\r\n viewportRef={(v: ScreenViewport) => {\r\n this.viewport = v;\r\n // for convenience, if window defined bind viewport to window\r\n if (undefined !== window)\r\n (window as any).viewport = v;\r\n if (!UiFramework.frontstages.isLoading)\r\n UiFramework.frontstages.activeFrontstageDef?.setActiveViewFromViewport(v);\r\n }}\r\n getViewOverlay={this._getViewOverlay}\r\n />;\r\n }\r\n\r\n /** Get the React component that will be shown when no iModel data is available */\r\n protected getNoContentReactElement(_options: IModelViewportControlOptions): React.ReactNode {\r\n const noContent = UiFramework.translate(\"general.no-content\");\r\n return <FillCentered> {noContent} </FillCentered>;\r\n }\r\n\r\n /** Get the React.Element for a ViewSelector change. */\r\n public override getReactElementForViewSelectorChange(iModelConnection: IModelConnection, _unusedViewDefinitionId: Id64String, viewState: ViewState, _name: string): React.ReactNode {\r\n return this.getImodelViewportReactElement(iModelConnection, viewState);\r\n }\r\n\r\n /** Get the default ViewOverlay unless parameter is set to not use it. May be override in an application specific sub-class */\r\n protected _getViewOverlay = (vp: ScreenViewport): React.ReactNode => {\r\n return <ViewOverlayHost viewport={vp} featureOptions={this._featureOptions} userSuppliedOverlay={this._userSuppliedViewOverlay} data-testid=\"ViewOverlay\" />;\r\n };\r\n\r\n /** Get the NavigationAidControl associated with this ContentControl */\r\n public override get navigationAidControl(): string {\r\n if (this.viewport)\r\n return super.navigationAidControl;\r\n else\r\n return StandardRotationNavigationAidControl.navigationAidId;\r\n }\r\n}\r\n\r\nUiFramework.controls.register(IModelViewportControl.id, IModelViewportControl);\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"InternalContentLayoutManager.js","sourceRoot":"","sources":["../../../../src/appui-react/content/InternalContentLayoutManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport { ContentLayoutProps } from \"@itwin/appui-abstract\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ContentGroup, ContentGroupProps } from \"./ContentGroup\";\nimport { ContentLayoutDef } from \"./ContentLayout\";\n\n/** ContentLayout Manager class.\n * @internal\n */\nexport class InternalContentLayoutManager {\n private static _layoutDefs: Map<string, ContentLayoutDef> = new Map<string, ContentLayoutDef>();\n\n /** build a layout key that is unique for group layout combination */\n public static getKey(props: { contentGroupId: string, layoutId: string }): string {\n return `${props.contentGroupId}-${props.layoutId}`;\n }\n\n /** Return a LayoutDef that is specific to a content group.\n * @returns the [[ContentLayoutDef]] if found, or undefined otherwise\n */\n public static getForGroup(contentGroupProps: ContentGroupProps | ContentGroup, overrideContentLayout?: ContentLayoutProps): ContentLayoutDef {\n const layoutId = overrideContentLayout?.id ?? contentGroupProps.layout.id;\n const layoutKey = this.getKey({ contentGroupId: contentGroupProps.id, layoutId });\n\n if (!overrideContentLayout && InternalContentLayoutManager._layoutDefs.has(layoutKey)) {\n return InternalContentLayoutManager._layoutDefs.get(layoutKey)!;\n }\n\n const newContentLayoutProps = { ...contentGroupProps.layout, ...overrideContentLayout };\n const newLayoutDef = new ContentLayoutDef(newContentLayoutProps);\n this.add(layoutKey, newLayoutDef);\n return newLayoutDef;\n }\n\n /** Finds a Content Layout with a given id.\n * @param layoutKey group specific layout id, see `getLayoutKey`\n * @returns the [[ContentLayoutDef]] if found, or undefined otherwise\n */\n public static find(layoutKey: string): ContentLayoutDef | undefined {\n return InternalContentLayoutManager._layoutDefs.get(layoutKey)!;\n }\n\n /** Adds a Content Layout.\n * @param layoutId the id of the Content Layout to add\n * @param layoutDef the Content Layout definition to add\n */\n public static add(layoutId: string, layoutDef: ContentLayoutDef): void {\n InternalContentLayoutManager._layoutDefs.set(layoutId, layoutDef);\n }\n\n /** Gets the active Content Layout */\n public static get activeLayout(): ContentLayoutDef | undefined {\n let layoutDef: ContentLayoutDef | undefined;\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n\n if (activeFrontstageDef)\n layoutDef = activeFrontstageDef.contentLayoutDef;\n\n return layoutDef;\n }\n\n /** Gets the active Content Group */\n public static get activeContentGroup(): ContentGroup | undefined {\n let contentGroup: ContentGroup | undefined;\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n\n if (activeFrontstageDef)\n contentGroup = activeFrontstageDef.contentGroup;\n\n return contentGroup;\n }\n\n /** Sets the active Content Layout, Content Group and Content Control.\n * @param contentLayoutDef Content layout to make active\n * @param contentGroup Content Group to make active\n */\n public static async setActive(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\n await InternalFrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\n }\n\n /** Sets the active Content Group.\n * @param contentGroup Content Group to make active\n */\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\n await InternalFrontstageManager.setActiveContentGroup(contentGroup);\n }\n\n /** Refreshes the active layout and content group.\n */\n public static refreshActive(): void {\n // istanbul ignore else\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (activeFrontstageDef && activeFrontstageDef.contentLayoutDef && activeFrontstageDef.contentGroup) {\n UiFramework.frontstages.onContentLayoutActivatedEvent.emit({\n contentLayout: activeFrontstageDef.contentLayoutDef,\n contentGroup: activeFrontstageDef.contentGroup,\n });\n\n activeFrontstageDef.contentGroup.refreshContentNodes();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"InternalContentLayoutManager.js","sourceRoot":"","sources":["../../../../src/appui-react/content/InternalContentLayoutManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport { ContentLayoutProps } from \"@itwin/appui-abstract\";\r\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ContentGroup, ContentGroupProps } from \"./ContentGroup\";\r\nimport { ContentLayoutDef } from \"./ContentLayout\";\r\n\r\n/** ContentLayout Manager class.\r\n * @internal\r\n */\r\nexport class InternalContentLayoutManager {\r\n private static _layoutDefs: Map<string, ContentLayoutDef> = new Map<string, ContentLayoutDef>();\r\n\r\n /** build a layout key that is unique for group layout combination */\r\n public static getKey(props: { contentGroupId: string, layoutId: string }): string {\r\n return `${props.contentGroupId}-${props.layoutId}`;\r\n }\r\n\r\n /** Return a LayoutDef that is specific to a content group.\r\n * @returns the [[ContentLayoutDef]] if found, or undefined otherwise\r\n */\r\n public static getForGroup(contentGroupProps: ContentGroupProps | ContentGroup, overrideContentLayout?: ContentLayoutProps): ContentLayoutDef {\r\n const layoutId = overrideContentLayout?.id ?? contentGroupProps.layout.id;\r\n const layoutKey = this.getKey({ contentGroupId: contentGroupProps.id, layoutId });\r\n\r\n if (!overrideContentLayout && InternalContentLayoutManager._layoutDefs.has(layoutKey)) {\r\n return InternalContentLayoutManager._layoutDefs.get(layoutKey)!;\r\n }\r\n\r\n const newContentLayoutProps = { ...contentGroupProps.layout, ...overrideContentLayout };\r\n const newLayoutDef = new ContentLayoutDef(newContentLayoutProps);\r\n this.add(layoutKey, newLayoutDef);\r\n return newLayoutDef;\r\n }\r\n\r\n /** Finds a Content Layout with a given id.\r\n * @param layoutKey group specific layout id, see `getLayoutKey`\r\n * @returns the [[ContentLayoutDef]] if found, or undefined otherwise\r\n */\r\n public static find(layoutKey: string): ContentLayoutDef | undefined {\r\n return InternalContentLayoutManager._layoutDefs.get(layoutKey)!;\r\n }\r\n\r\n /** Adds a Content Layout.\r\n * @param layoutId the id of the Content Layout to add\r\n * @param layoutDef the Content Layout definition to add\r\n */\r\n public static add(layoutId: string, layoutDef: ContentLayoutDef): void {\r\n InternalContentLayoutManager._layoutDefs.set(layoutId, layoutDef);\r\n }\r\n\r\n /** Gets the active Content Layout */\r\n public static get activeLayout(): ContentLayoutDef | undefined {\r\n let layoutDef: ContentLayoutDef | undefined;\r\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n\r\n if (activeFrontstageDef)\r\n layoutDef = activeFrontstageDef.contentLayoutDef;\r\n\r\n return layoutDef;\r\n }\r\n\r\n /** Gets the active Content Group */\r\n public static get activeContentGroup(): ContentGroup | undefined {\r\n let contentGroup: ContentGroup | undefined;\r\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n\r\n if (activeFrontstageDef)\r\n contentGroup = activeFrontstageDef.contentGroup;\r\n\r\n return contentGroup;\r\n }\r\n\r\n /** Sets the active Content Layout, Content Group and Content Control.\r\n * @param contentLayoutDef Content layout to make active\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActive(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\r\n await InternalFrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\r\n }\r\n\r\n /** Sets the active Content Group.\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\r\n await InternalFrontstageManager.setActiveContentGroup(contentGroup);\r\n }\r\n\r\n /** Refreshes the active layout and content group.\r\n */\r\n public static refreshActive(): void {\r\n // istanbul ignore else\r\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n if (activeFrontstageDef && activeFrontstageDef.contentLayoutDef && activeFrontstageDef.contentGroup) {\r\n UiFramework.frontstages.onContentLayoutActivatedEvent.emit({\r\n contentLayout: activeFrontstageDef.contentLayoutDef,\r\n contentGroup: activeFrontstageDef.contentGroup,\r\n });\r\n\r\n activeFrontstageDef.contentGroup.refreshContentNodes();\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"InternalContentViewManager.js","sourceRoot":"","sources":["../../../../src/appui-react/content/InternalContentViewManager.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0DAAgD;AAChD,0DAAuD;AAEvD,iFAA8E;AAC9E,wDAAiD;AAEjD,sDAA6C;AAC7C,gDAA6C;AAC7C,oEAAiG;AACjG,yFAAsF;AAEtF;;GAEG;AACH,MAAa,0BAA0B;IAOrC,wDAAwD;IACjD,MAAM,KAAK,WAAW;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,oDAAoD;IAC7C,MAAM,CAAC,YAAY,CAAC,SAAkB;QAC3C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IASD,oDAAoD;IAC7C,MAAM,CAAC,SAAS;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,OAAwB,EAAE,kBAA4C,EAAE,gBAA8C,EAAE,aAAa,GAAG,KAAK;QAChL,IAAI,gBAAgB,EAAE,MAAM,EAAE;YAC5B,8EAA8E;YAC9E,IAAI,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;YAC9F,IAAI,OAAO;gBACT,OAAO,OAAO,CAAC;YAEjB,8FAA8F;YAC9F,IAAI,SAAiB,CAAC;YACtB,IAAI,OAAO,IAAK,OAAmC,CAAC,GAAG,EAAE;gBACvD,MAAM,GAAG,GAAK,OAAmC,CAAC,GAAc,CAAC;gBACjE,oFAAoF;gBACpF,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACnC;YACD,gBAAgB,CAAC,OAAO,CAAE,CAAC,cAA8B,EAAE,EAAE;gBAC3D,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC;gBACtC,MAAM,GAAG,GAAK,IAAgC,CAAC,GAAc,CAAC;gBAC9D,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,MAAM,KAAK,SAAS;oBACtB,OAAO,GAAG,cAAc,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,IAAI,OAAO;gBACT,OAAO,OAAO,CAAC;SAClB;QAED,sEAAsE;QACtE,uBAAuB;QACvB,IAAI,kBAAkB,EAAE;YACtB,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,oBAAoB;gBACtB,OAAO,oBAAoB,CAAC;SAC/B;QAED,IAAI,aAAa;YACf,qBAAM,CAAC,QAAQ,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,qDAAqD,CAAC,CAAC;QAE3G,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wCAAwC;IACjC,MAAM,CAAC,uBAAuB;QACnC,IAAI,oBAAgD,CAAC;QACrD,MAAM,mBAAmB,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAExE,uBAAuB;QACvB,IAAI,IAAI,CAAC,cAAc,IAAI,mBAAmB,EAAE;YAC9C,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,YAAY,CAAC;YAC5D,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;SACzI;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,yBAAyB,CAAC,cAA+B;QACrE,MAAM,mBAAmB,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;QACxE,uBAAuB;QACvB,IAAI,mBAAmB,IAAI,cAAc,EAAE;YACzC,mBAAmB,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;SAC/D;IACH,CAAC;IAEM,MAAM,CAAC,0BAA0B,CAAC,cAA+B;QACtE,MAAM,mBAAmB,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;QACxE,uBAAuB;QACvB,IAAI,mBAAmB,IAAI,cAAc;YACvC,mBAAmB,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;IAED,yCAAyC;IAClC,MAAM,CAAC,SAAS,CAAC,aAA+B,EAAE,oBAAoB,GAAG,KAAK;QACnF,uBAAuB;QACvB,IAAI,IAAI,CAAC,cAAc,KAAK,aAAa,IAAI,oBAAoB,EAAE;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAEpC,MAAM,mBAAmB,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAExE,uBAAuB;YACvB,IAAI,mBAAmB,EAAE;gBACvB,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,YAAY,CAAC;gBAE5D,uBAAuB;gBACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;gBAClI,MAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;gBAE9I,mFAAmF;gBACnF,uBAAuB;gBACvB,IAAI,oBAAoB,EAAE;oBACxB,uBAAuB;oBACvB,MAAM,eAAe,GACnB,oBAAoB,IAAI,CAAC,CAAC,oBAAoB,CAAC,QAAQ;wBACrD,EAAC,0BAA2B,iBAAiB,IAAI,0BAA0B,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAE9G,uBAAuB;oBACvB,IAAI,eAAe,EAAE;wBACnB,mBAAmB,CAAC,aAAa,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;wBAC3E,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;qBACtE;yBAAM;wBACL,IAAI,oBAAoB,CAAC,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,KAAK,yBAAS,CAAC,WAAW,CAAC,YAAY,EAAE;4BACzG,mEAAmE;4BACnE,yBAAS,CAAC,WAAW,CAAC,eAAe,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;yBACtE;qBACF;iBACF;aACF;SACF;IACH,CAAC;IAED,8CAA8C;IACvC,MAAM,CAAC,aAAa,CAAC,aAA8B;QACxD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,kBAAkB,CAAC,OAAmC;QAClE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,KAAK,CAAC;QACf,OAAO,CAAC,6BAAa,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,oBAAoB,CAAC,OAAmC;QACpE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,KAAK,CAAC;QACf,OAAO,CAAC,6BAAa,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,oBAAoB,CAAC,OAAmC;QACpE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,KAAK,CAAC;QACf,OAAO,CAAC,6BAAa,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,yBAAyB,CAAC,OAAmC;QACzE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,KAAK,CAAC;QACf,OAAO,CAAC,6BAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,OAAmC;QAC/D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,KAAK,CAAC;QACf,OAAO,CAAC,6BAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,OAAmC;QACrE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,KAAK,CAAC;QACf,OAAO,CAAC,6BAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACI,MAAM,KAAK,OAAO;QACvB,OAAO,2DAA4B,CAAC;IACtC,CAAC;IACD;;;OAGG;IACI,MAAM,KAAK,OAAO;QACvB,OAAO,2DAA4B,CAAC;IACtC,CAAC;;AAxNc,qCAAU,GAAY,KAAK,CAAC;AAG3C,yCAAyC;AAClB,kDAAuB,GAAG,IAAI,wCAAqB,EAAE,CAAC;AAa7E,6CAA6C;AACtB,sDAA2B,GAAG,IAAI,4CAAyB,EAAE,CAAC;AAErF,wDAAwD;AAEjC,yDAA8B,GAAG,IAAI,wBAAO,EAAyB,CAAC;AAvBlF,gEAA0B","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport * as React from \"react\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\nimport { ContentControl } from \"./ContentControl\";\nimport { InternalContentLayoutManager } from \"./InternalContentLayoutManager\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { ContentGroup } from \"./ContentGroup\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ActiveContentChangedEvent, MouseDownChangedEvent } from \"../framework/FrameworkContent\";\nimport { InternalContentDialogManager } from \"../dialog/InternalContentDialogManager\";\n\n/** Content View Manager class.\n * @internal\n */\nexport class InternalContentViewManager {\n private static _mouseDown: boolean = false;\n private static _activeContent?: React.ReactNode;\n\n /** Gets the [[MouseDownChangedEvent]] */\n public static readonly onMouseDownChangedEvent = new MouseDownChangedEvent();\n\n /** Determines if the mouse is down in a content view */\n public static get isMouseDown(): boolean {\n return this._mouseDown;\n }\n\n /** Sets the mouse down status for a content view */\n public static setMouseDown(mouseDown: boolean): void {\n this._mouseDown = mouseDown;\n this.onMouseDownChangedEvent.emit({ mouseDown });\n }\n\n /** Gets the [[ActiveContentChangedEvent]] */\n public static readonly onActiveContentChangedEvent = new ActiveContentChangedEvent();\n\n /** Fires when floating contents are added or removed */\n\n public static readonly onAvailableContentChangedEvent = new UiEvent<{ contentId: string }>();\n\n /** Gets the active content as a React.ReactNode. */\n public static getActive(): React.ReactNode | undefined {\n return this._activeContent;\n }\n\n private static getControlFromElement(content: React.ReactNode, activeContentGroup: ContentGroup | undefined, floatingControls: ContentControl[] | undefined, logIfNotFound = false) {\n if (floatingControls?.length) {\n // if we find a React node that matches exactly, return its containing control\n let control = floatingControls.find((contentControl) => contentControl.reactNode === content);\n if (control)\n return control;\n\n // if we don't find a React node that matches exactly, rely on the id specified by the creator\n let controlId: string;\n if (content && (content as React.ReactElement<any>).key) {\n const key = ((content as React.ReactElement<any>).key as string);\n // key has format `${contentProps.id}::${this.groupId}` which is stored as unique id\n controlId = key.split(\"::\", 1)[0];\n }\n floatingControls.forEach ((contentControl: ContentControl) => {\n const node = contentControl.reactNode;\n const key = ((node as React.ReactElement<any>).key as string);\n const nodeId = key && key.split(\"::\", 1)[0];\n if (nodeId === controlId)\n control = contentControl;\n });\n if (control)\n return control;\n }\n\n // if it's not a floating control, look through the content area views\n // istanbul ignore else\n if (activeContentGroup) {\n const activeContentControl = activeContentGroup.getControlFromElement(content);\n if (activeContentControl)\n return activeContentControl;\n }\n\n if (logIfNotFound)\n Logger.logError(UiFramework.loggerCategory(this), `getControlFromElement: no control found for element`);\n\n return undefined;\n }\n\n /** Return the active ContentControl. */\n public static getActiveContentControl(): ContentControl | undefined {\n let activeContentControl: ContentControl | undefined;\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n\n // istanbul ignore else\n if (this._activeContent && activeFrontstageDef) {\n const activeContentGroup = activeFrontstageDef.contentGroup;\n activeContentControl = this.getControlFromElement(this._activeContent, activeContentGroup, activeFrontstageDef.floatingContentControls);\n }\n\n return activeContentControl;\n }\n\n public static addFloatingContentControl(contentControl?: ContentControl) {\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (activeFrontstageDef && contentControl) {\n activeFrontstageDef.addFloatingContentControl(contentControl);\n }\n }\n\n public static dropFloatingContentControl(contentControl?: ContentControl) {\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (activeFrontstageDef && contentControl)\n activeFrontstageDef.dropFloatingContentControl(contentControl);\n }\n\n /** Sets the active [[ContentControl]] */\n public static setActive(activeContent?: React.ReactNode, forceEventProcessing = false): void {\n // istanbul ignore else\n if (this._activeContent !== activeContent || forceEventProcessing) {\n const oldContent = this._activeContent;\n this._activeContent = activeContent;\n\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n\n // istanbul ignore else\n if (activeFrontstageDef) {\n const activeContentGroup = activeFrontstageDef.contentGroup;\n\n // istanbul ignore else\n const oldContentControl = this.getControlFromElement(oldContent, activeContentGroup, activeFrontstageDef.floatingContentControls);\n const activeContentControl = this.getControlFromElement(activeContent, activeContentGroup, activeFrontstageDef.floatingContentControls, true);\n\n // Only call setActiveView if going to or coming from a non-viewport ContentControl\n // istanbul ignore else\n if (activeContentControl) {\n // istanbul ignore next\n const doSetActiveView =\n forceEventProcessing || (!activeContentControl.viewport ||\n (/* istanbul ignore next */ oldContentControl && /* istanbul ignore next */ !oldContentControl.viewport));\n\n // istanbul ignore else\n if (doSetActiveView) {\n activeFrontstageDef.setActiveView(activeContentControl, oldContentControl);\n this.onActiveContentChangedEvent.emit({ activeContent, oldContent });\n } else {\n if (activeContentControl.viewport && activeContentControl.viewport !== IModelApp.viewManager.selectedView) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n IModelApp.viewManager.setSelectedView(activeContentControl.viewport);\n }\n }\n }\n }\n }\n }\n\n /** Refreshes the active [[ContentControl]] */\n public static refreshActive(activeContent: React.ReactNode) {\n this.layouts.refreshActive();\n this.setActive(activeContent, true);\n }\n\n /**\n * Determines if content displays a Sheet view.\n * @param content ContentControl to check\n */\n public static isContentSheetView(content: ContentControl | undefined): boolean {\n if (!content || !content.viewport)\n return false;\n return (ViewUtilities.isSheetView(content.viewport));\n }\n\n /**\n * Determines if content displays a Drawing view.\n * @param content ContentControl to check\n */\n public static isContentDrawingView(content: ContentControl | undefined): boolean {\n if (!content || !content.viewport)\n return false;\n return (ViewUtilities.isDrawingView(content.viewport));\n }\n\n /**\n * Determines if content displays a Spatial view.\n * @param content ContentControl to check\n */\n public static isContentSpatialView(content: ContentControl | undefined): boolean {\n if (!content || !content.viewport)\n return false;\n return (ViewUtilities.isSpatialView(content.viewport));\n }\n\n /**\n * Determines if content displays a Orthographic view.\n * @param content ContentControl to check\n */\n public static isContentOrthographicView(content: ContentControl | undefined): boolean {\n if (!content || !content.viewport)\n return false;\n return (ViewUtilities.isOrthographicView(content.viewport));\n }\n\n /**\n * Determines if content displays a 3d view.\n * @param content ContentControl to check\n */\n public static isContent3dView(content: ContentControl | undefined): boolean {\n if (!content || !content.viewport)\n return false;\n return (ViewUtilities.is3dView(content.viewport));\n }\n\n /**\n * Determines if viewport supports use of a camera.\n * @param content ContentControl to check\n */\n public static contentSupportsCamera(content: ContentControl | undefined): boolean {\n if (!content || !content.viewport)\n return false;\n return (ViewUtilities.viewSupportsCamera(content.viewport));\n }\n\n /**\n * Manage content layouts.\n * @beta\n */\n public static get layouts() {\n return InternalContentLayoutManager;\n }\n /**\n * Manage dialogs displaying managed content.\n * @beta\n */\n public static get dialogs() {\n return InternalContentDialogManager;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalContentViewManager.js","sourceRoot":"","sources":["../../../../src/appui-react/content/InternalContentViewManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ContentControl } from \"./ContentControl\";\r\nimport { InternalContentLayoutManager } from \"./InternalContentLayoutManager\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { ContentGroup } from \"./ContentGroup\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ActiveContentChangedEvent, MouseDownChangedEvent } from \"../framework/FrameworkContent\";\r\nimport { InternalContentDialogManager } from \"../dialog/InternalContentDialogManager\";\r\n\r\n/** Content View Manager class.\r\n * @internal\r\n */\r\nexport class InternalContentViewManager {\r\n private static _mouseDown: boolean = false;\r\n private static _activeContent?: React.ReactNode;\r\n\r\n /** Gets the [[MouseDownChangedEvent]] */\r\n public static readonly onMouseDownChangedEvent = new MouseDownChangedEvent();\r\n\r\n /** Determines if the mouse is down in a content view */\r\n public static get isMouseDown(): boolean {\r\n return this._mouseDown;\r\n }\r\n\r\n /** Sets the mouse down status for a content view */\r\n public static setMouseDown(mouseDown: boolean): void {\r\n this._mouseDown = mouseDown;\r\n this.onMouseDownChangedEvent.emit({ mouseDown });\r\n }\r\n\r\n /** Gets the [[ActiveContentChangedEvent]] */\r\n public static readonly onActiveContentChangedEvent = new ActiveContentChangedEvent();\r\n\r\n /** Fires when floating contents are added or removed */\r\n\r\n public static readonly onAvailableContentChangedEvent = new UiEvent<{ contentId: string }>();\r\n\r\n /** Gets the active content as a React.ReactNode. */\r\n public static getActive(): React.ReactNode | undefined {\r\n return this._activeContent;\r\n }\r\n\r\n private static getControlFromElement(content: React.ReactNode, activeContentGroup: ContentGroup | undefined, floatingControls: ContentControl[] | undefined, logIfNotFound = false) {\r\n if (floatingControls?.length) {\r\n // if we find a React node that matches exactly, return its containing control\r\n let control = floatingControls.find((contentControl) => contentControl.reactNode === content);\r\n if (control)\r\n return control;\r\n\r\n // if we don't find a React node that matches exactly, rely on the id specified by the creator\r\n let controlId: string;\r\n if (content && (content as React.ReactElement<any>).key) {\r\n const key = ((content as React.ReactElement<any>).key as string);\r\n // key has format `${contentProps.id}::${this.groupId}` which is stored as unique id\r\n controlId = key.split(\"::\", 1)[0];\r\n }\r\n floatingControls.forEach ((contentControl: ContentControl) => {\r\n const node = contentControl.reactNode;\r\n const key = ((node as React.ReactElement<any>).key as string);\r\n const nodeId = key && key.split(\"::\", 1)[0];\r\n if (nodeId === controlId)\r\n control = contentControl;\r\n });\r\n if (control)\r\n return control;\r\n }\r\n\r\n // if it's not a floating control, look through the content area views\r\n // istanbul ignore else\r\n if (activeContentGroup) {\r\n const activeContentControl = activeContentGroup.getControlFromElement(content);\r\n if (activeContentControl)\r\n return activeContentControl;\r\n }\r\n\r\n if (logIfNotFound)\r\n Logger.logError(UiFramework.loggerCategory(this), `getControlFromElement: no control found for element`);\r\n\r\n return undefined;\r\n }\r\n\r\n /** Return the active ContentControl. */\r\n public static getActiveContentControl(): ContentControl | undefined {\r\n let activeContentControl: ContentControl | undefined;\r\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (this._activeContent && activeFrontstageDef) {\r\n const activeContentGroup = activeFrontstageDef.contentGroup;\r\n activeContentControl = this.getControlFromElement(this._activeContent, activeContentGroup, activeFrontstageDef.floatingContentControls);\r\n }\r\n\r\n return activeContentControl;\r\n }\r\n\r\n public static addFloatingContentControl(contentControl?: ContentControl) {\r\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef && contentControl) {\r\n activeFrontstageDef.addFloatingContentControl(contentControl);\r\n }\r\n }\r\n\r\n public static dropFloatingContentControl(contentControl?: ContentControl) {\r\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef && contentControl)\r\n activeFrontstageDef.dropFloatingContentControl(contentControl);\r\n }\r\n\r\n /** Sets the active [[ContentControl]] */\r\n public static setActive(activeContent?: React.ReactNode, forceEventProcessing = false): void {\r\n // istanbul ignore else\r\n if (this._activeContent !== activeContent || forceEventProcessing) {\r\n const oldContent = this._activeContent;\r\n this._activeContent = activeContent;\r\n\r\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n const activeContentGroup = activeFrontstageDef.contentGroup;\r\n\r\n // istanbul ignore else\r\n const oldContentControl = this.getControlFromElement(oldContent, activeContentGroup, activeFrontstageDef.floatingContentControls);\r\n const activeContentControl = this.getControlFromElement(activeContent, activeContentGroup, activeFrontstageDef.floatingContentControls, true);\r\n\r\n // Only call setActiveView if going to or coming from a non-viewport ContentControl\r\n // istanbul ignore else\r\n if (activeContentControl) {\r\n // istanbul ignore next\r\n const doSetActiveView =\r\n forceEventProcessing || (!activeContentControl.viewport ||\r\n (/* istanbul ignore next */ oldContentControl && /* istanbul ignore next */ !oldContentControl.viewport));\r\n\r\n // istanbul ignore else\r\n if (doSetActiveView) {\r\n activeFrontstageDef.setActiveView(activeContentControl, oldContentControl);\r\n this.onActiveContentChangedEvent.emit({ activeContent, oldContent });\r\n } else {\r\n if (activeContentControl.viewport && activeContentControl.viewport !== IModelApp.viewManager.selectedView) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n IModelApp.viewManager.setSelectedView(activeContentControl.viewport);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Refreshes the active [[ContentControl]] */\r\n public static refreshActive(activeContent: React.ReactNode) {\r\n this.layouts.refreshActive();\r\n this.setActive(activeContent, true);\r\n }\r\n\r\n /**\r\n * Determines if content displays a Sheet view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentSheetView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isSheetView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Drawing view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentDrawingView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isDrawingView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Spatial view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentSpatialView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isSpatialView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a Orthographic view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContentOrthographicView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.isOrthographicView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if content displays a 3d view.\r\n * @param content ContentControl to check\r\n */\r\n public static isContent3dView(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.is3dView(content.viewport));\r\n }\r\n\r\n /**\r\n * Determines if viewport supports use of a camera.\r\n * @param content ContentControl to check\r\n */\r\n public static contentSupportsCamera(content: ContentControl | undefined): boolean {\r\n if (!content || !content.viewport)\r\n return false;\r\n return (ViewUtilities.viewSupportsCamera(content.viewport));\r\n }\r\n\r\n /**\r\n * Manage content layouts.\r\n * @beta\r\n */\r\n public static get layouts() {\r\n return InternalContentLayoutManager;\r\n }\r\n /**\r\n * Manage dialogs displaying managed content.\r\n * @beta\r\n */\r\n public static get dialogs() {\r\n return InternalContentDialogManager;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StageContentLayout.js","sourceRoot":"","sources":["../../../../src/appui-react/content/StageContentLayout.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH,uDAA0E;AAqB1E;;GAEG;AACH,MAAa,kBAAkB;IAC7B,qCAAqC;IAC9B,MAAM,CAAC,iBAAiB,CAAC,gBAAkC,EAAE,YAA0B,EAAE,oBAA6B,KAAK,EAAE,eAAiC;QACnK,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACrD,oHAAoH;QACpH,MAAM,iBAAiB,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAClG,MAAM,cAAc,GAAG,IAAI,KAAK,EAAwB,CAAC;QACzD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,uBAAuB;YACvB,IAAI,QAAQ,EAAE;gBACZ,MAAM,cAAc,GAAG,iCAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvE,IAAI,iBAAiB;oBACnB,iCAAe,CAAC,wBAAwB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACrE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACrC;SACF;QAED,MAAM,oBAAoB,GAA4B;YACpD,iBAAiB;YACjB,cAAc;SACf,CAAC;QAEF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,gEAAgE;IACzD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAkC,EAAE,UAAmC;QAC7G,MAAM,UAAU,GAAG,IAAI,KAAK,EAAyB,CAAC;QAEtD,IAAI,UAAU,CAAC,cAAc,EAAE;YAC7B,KAAK,MAAM,cAAc,IAAI,UAAU,CAAC,cAAc,EAAE;gBACtD,MAAM,SAAS,GAAG,MAAM,iCAAe,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBAC7F,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC5B;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iDAAiD;IAC1C,MAAM,CAAC,0BAA0B,CAAC,YAA0B,EAAE,UAAmC;QACtG,MAAM,WAAW,GAAG,IAAI,KAAK,EAAW,CAAC;QACzC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAE9C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,cAAc,IAAI,UAAU,CAAC,cAAc,EAAE;YACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,uBAAuB;YACvB,IAAI,QAAQ,EAAE;gBACZ,MAAM,OAAO,GAAG,iCAAe,CAAC,0BAA0B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACrF,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC3B;YACD,KAAK,EAAE,CAAC;SACT;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;CACF;AA1DD,gDA0DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { ContentCallback, ContentGroup, ContentGroupProps } from \"./ContentGroup\";\nimport { ContentLayoutDef } from \"./ContentLayout\";\nimport { ViewStateHelper, ViewStateHelperProps } from \"./ViewStateHelper\";\nimport { ContentLayoutProps } from \"@itwin/appui-abstract\";\n\n/** StageContentLayoutProps interface for sharing view layout information.\n * @public\n */\nexport interface StageContentLayoutProps {\n contentLayoutProps?: ContentLayoutProps;\n contentGroupProps: ContentGroupProps;\n viewStateProps: ViewStateHelperProps[];\n}\n\n/** ViewLayout interface for sharing view layout information.\n * @public\n */\nexport interface ViewLayout {\n contentLayoutDef: ContentLayoutDef;\n contentGroup: ContentGroup;\n viewStates: Array<ViewState | undefined>;\n}\n\n/** StageContentLayout class. Used to serialize/deserialize a View Layout with Saved Views.\n * @public\n */\nexport class StageContentLayout {\n /** Create props for a View Layout */\n public static viewLayoutToProps(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup, emphasizeElements: boolean = false, contentCallback?: ContentCallback): StageContentLayoutProps {\n const contentLayoutProps = contentLayoutDef.toJSON();\n // update layout in contentGroup to contain latest values from contentLayoutDef this way we don't need to save both.\n const contentGroupProps = { ...contentGroup.toJSON(contentCallback), layout: contentLayoutProps };\n const viewStateProps = new Array<ViewStateHelperProps>();\n const viewports = contentGroup.getViewports();\n for (const viewport of viewports) {\n // istanbul ignore else\n if (viewport) {\n const savedViewProps = ViewStateHelper.viewStateToProps(viewport.view);\n if (emphasizeElements)\n ViewStateHelper.emphasizeElementsToProps(viewport, savedViewProps);\n viewStateProps.push(savedViewProps);\n }\n }\n\n const savedViewLayoutProps: StageContentLayoutProps = {\n contentGroupProps,\n viewStateProps,\n };\n\n return savedViewLayoutProps;\n }\n\n /** Create an array of ViewStates from the StageContentLayout */\n public static async viewStatesFromProps(iModelConnection: IModelConnection, savedProps: StageContentLayoutProps): Promise<Array<ViewState | undefined>> {\n const viewStates = new Array<ViewState | undefined>();\n\n if (savedProps.viewStateProps) {\n for (const savedViewProps of savedProps.viewStateProps) {\n const viewState = await ViewStateHelper.viewStateFromProps(iModelConnection, savedViewProps);\n viewStates.push(viewState);\n }\n }\n\n return viewStates;\n }\n\n /** Apply EmphasizeElements from the SavedView */\n public static emphasizeElementsFromProps(contentGroup: ContentGroup, savedProps: StageContentLayoutProps): boolean {\n const changedList = new Array<boolean>();\n const viewports = contentGroup.getViewports();\n\n let index = 0;\n for (const savedViewProps of savedProps.viewStateProps) {\n const viewport = viewports[index];\n // istanbul ignore else\n if (viewport) {\n const changed = ViewStateHelper.emphasizeElementsFromProps(viewport, savedViewProps);\n changedList.push(changed);\n }\n index++;\n }\n\n return changedList.some((changed: boolean) => changed);\n }\n}\n"]}
1
+ {"version":3,"file":"StageContentLayout.js","sourceRoot":"","sources":["../../../../src/appui-react/content/StageContentLayout.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH,uDAA0E;AAqB1E;;GAEG;AACH,MAAa,kBAAkB;IAC7B,qCAAqC;IAC9B,MAAM,CAAC,iBAAiB,CAAC,gBAAkC,EAAE,YAA0B,EAAE,oBAA6B,KAAK,EAAE,eAAiC;QACnK,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACrD,oHAAoH;QACpH,MAAM,iBAAiB,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAClG,MAAM,cAAc,GAAG,IAAI,KAAK,EAAwB,CAAC;QACzD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,uBAAuB;YACvB,IAAI,QAAQ,EAAE;gBACZ,MAAM,cAAc,GAAG,iCAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvE,IAAI,iBAAiB;oBACnB,iCAAe,CAAC,wBAAwB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACrE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACrC;SACF;QAED,MAAM,oBAAoB,GAA4B;YACpD,iBAAiB;YACjB,cAAc;SACf,CAAC;QAEF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,gEAAgE;IACzD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAkC,EAAE,UAAmC;QAC7G,MAAM,UAAU,GAAG,IAAI,KAAK,EAAyB,CAAC;QAEtD,IAAI,UAAU,CAAC,cAAc,EAAE;YAC7B,KAAK,MAAM,cAAc,IAAI,UAAU,CAAC,cAAc,EAAE;gBACtD,MAAM,SAAS,GAAG,MAAM,iCAAe,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBAC7F,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC5B;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iDAAiD;IAC1C,MAAM,CAAC,0BAA0B,CAAC,YAA0B,EAAE,UAAmC;QACtG,MAAM,WAAW,GAAG,IAAI,KAAK,EAAW,CAAC;QACzC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAE9C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,cAAc,IAAI,UAAU,CAAC,cAAc,EAAE;YACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,uBAAuB;YACvB,IAAI,QAAQ,EAAE;gBACZ,MAAM,OAAO,GAAG,iCAAe,CAAC,0BAA0B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACrF,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC3B;YACD,KAAK,EAAE,CAAC;SACT;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;CACF;AA1DD,gDA0DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport { IModelConnection, ViewState } from \"@itwin/core-frontend\";\r\nimport { ContentCallback, ContentGroup, ContentGroupProps } from \"./ContentGroup\";\r\nimport { ContentLayoutDef } from \"./ContentLayout\";\r\nimport { ViewStateHelper, ViewStateHelperProps } from \"./ViewStateHelper\";\r\nimport { ContentLayoutProps } from \"@itwin/appui-abstract\";\r\n\r\n/** StageContentLayoutProps interface for sharing view layout information.\r\n * @public\r\n */\r\nexport interface StageContentLayoutProps {\r\n contentLayoutProps?: ContentLayoutProps;\r\n contentGroupProps: ContentGroupProps;\r\n viewStateProps: ViewStateHelperProps[];\r\n}\r\n\r\n/** ViewLayout interface for sharing view layout information.\r\n * @public\r\n */\r\nexport interface ViewLayout {\r\n contentLayoutDef: ContentLayoutDef;\r\n contentGroup: ContentGroup;\r\n viewStates: Array<ViewState | undefined>;\r\n}\r\n\r\n/** StageContentLayout class. Used to serialize/deserialize a View Layout with Saved Views.\r\n * @public\r\n */\r\nexport class StageContentLayout {\r\n /** Create props for a View Layout */\r\n public static viewLayoutToProps(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup, emphasizeElements: boolean = false, contentCallback?: ContentCallback): StageContentLayoutProps {\r\n const contentLayoutProps = contentLayoutDef.toJSON();\r\n // update layout in contentGroup to contain latest values from contentLayoutDef this way we don't need to save both.\r\n const contentGroupProps = { ...contentGroup.toJSON(contentCallback), layout: contentLayoutProps };\r\n const viewStateProps = new Array<ViewStateHelperProps>();\r\n const viewports = contentGroup.getViewports();\r\n for (const viewport of viewports) {\r\n // istanbul ignore else\r\n if (viewport) {\r\n const savedViewProps = ViewStateHelper.viewStateToProps(viewport.view);\r\n if (emphasizeElements)\r\n ViewStateHelper.emphasizeElementsToProps(viewport, savedViewProps);\r\n viewStateProps.push(savedViewProps);\r\n }\r\n }\r\n\r\n const savedViewLayoutProps: StageContentLayoutProps = {\r\n contentGroupProps,\r\n viewStateProps,\r\n };\r\n\r\n return savedViewLayoutProps;\r\n }\r\n\r\n /** Create an array of ViewStates from the StageContentLayout */\r\n public static async viewStatesFromProps(iModelConnection: IModelConnection, savedProps: StageContentLayoutProps): Promise<Array<ViewState | undefined>> {\r\n const viewStates = new Array<ViewState | undefined>();\r\n\r\n if (savedProps.viewStateProps) {\r\n for (const savedViewProps of savedProps.viewStateProps) {\r\n const viewState = await ViewStateHelper.viewStateFromProps(iModelConnection, savedViewProps);\r\n viewStates.push(viewState);\r\n }\r\n }\r\n\r\n return viewStates;\r\n }\r\n\r\n /** Apply EmphasizeElements from the SavedView */\r\n public static emphasizeElementsFromProps(contentGroup: ContentGroup, savedProps: StageContentLayoutProps): boolean {\r\n const changedList = new Array<boolean>();\r\n const viewports = contentGroup.getViewports();\r\n\r\n let index = 0;\r\n for (const savedViewProps of savedProps.viewStateProps) {\r\n const viewport = viewports[index];\r\n // istanbul ignore else\r\n if (viewport) {\r\n const changed = ViewStateHelper.emphasizeElementsFromProps(viewport, savedViewProps);\r\n changedList.push(changed);\r\n }\r\n index++;\r\n }\r\n\r\n return changedList.some((changed: boolean) => changed);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewStateHelper.js","sourceRoot":"","sources":["../../../../src/appui-react/content/ViewStateHelper.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,wDAE8B;AAC9B,0DAAuD;AAUvD;;GAEG;AACH,MAAa,eAAe;IAC1B,4CAA4C;IACrC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,gBAAkC,EAAE,cAAoC;QAC7G,MAAM,SAAS,GAAG,cAAc,CAAC,mBAAmB,CAAC,aAAa,CAAC;QACnE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAqB,SAAS,EAAE,SAAS,CAAiC,CAAC;QAE3H,uBAAuB;QACvB,IAAI,SAAS,KAAK,IAAI;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,SAAS,GAAG,CAAC,CAAC;QAEpE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAE,CAAC;QAC1E,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,iCAAiC;QAEzD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iDAAiD;IAC1C,MAAM,CAAC,0BAA0B,CAAC,EAAkB,EAAE,cAAoC;QAC/F,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,cAAc,CAAC,sBAAsB,EAAE;YACzC,MAAM,iBAAiB,GAAG,IAAI,iCAAiB,EAAE,CAAC;YAClD,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;SACjF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mCAAmC;IAC5B,MAAM,CAAC,gBAAgB,CAAC,SAAoB;QACjD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,EAA0B,CAAC;QACnE,cAAc,CAAC,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,wEAAwE;IACjE,MAAM,CAAC,wBAAwB,CAAC,EAAkB,EAAE,cAAoC;QAC7F,MAAM,EAAE,GAAG,iCAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,cAAc,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACjE,CAAC;CAEF;AAxCD,0CAwCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport { EmphasizeElementsProps, ViewStateProps } from \"@itwin/core-common\";\nimport {\n EmphasizeElements, EntityState, IModelConnection, ScreenViewport, ViewState,\n} from \"@itwin/core-frontend\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\n\n/** SavedViewProps interface for sharing ViewState and EmphasizeElements information.\n * @public\n */\nexport interface ViewStateHelperProps extends ViewStateProps {\n bisBaseClass: string;\n emphasizeElementsProps?: EmphasizeElementsProps;\n}\n\n/** SavedView class. Used to serialize/deserialize a ViewState.\n * @public\n */\nexport class ViewStateHelper {\n /** Create a ViewState from the SavedView */\n public static async viewStateFromProps(iModelConnection: IModelConnection, savedViewProps: ViewStateHelperProps): Promise<ViewState | undefined> {\n const className = savedViewProps.viewDefinitionProps.classFullName;\n const ctor = await iModelConnection.findClassFor<typeof EntityState>(className, undefined) as typeof ViewState | undefined;\n\n // istanbul ignore next\n if (undefined === ctor)\n throw new Error(`Invalid ViewState class name of [${className}]`);\n\n const viewState = ctor.createFromProps(savedViewProps, iModelConnection)!;\n await viewState.load(); // loads models for ModelSelector\n\n return viewState;\n }\n\n /** Apply EmphasizeElements from the SavedView */\n public static emphasizeElementsFromProps(vp: ScreenViewport, savedViewProps: ViewStateHelperProps): boolean {\n let changed = false;\n if (savedViewProps.emphasizeElementsProps) {\n const emphasizeElements = new EmphasizeElements();\n changed = emphasizeElements.fromJSON(savedViewProps.emphasizeElementsProps, vp);\n }\n return changed;\n }\n\n /** Create props for a ViewState */\n public static viewStateToProps(viewState: ViewState): ViewStateHelperProps {\n const savedViewProps = viewState.toProps() as ViewStateHelperProps;\n savedViewProps.bisBaseClass = ViewUtilities.getBisBaseClass(viewState.classFullName);\n return savedViewProps;\n }\n\n /** Create props for an EmphasizeElements and store in SavedViewProps */\n public static emphasizeElementsToProps(vp: ScreenViewport, savedViewProps: ViewStateHelperProps): void {\n const ee = EmphasizeElements.get(vp);\n const emphasizeElementsProps = ee ? ee.toJSON(vp) : undefined;\n savedViewProps.emphasizeElementsProps = emphasizeElementsProps;\n }\n\n}\n"]}
1
+ {"version":3,"file":"ViewStateHelper.js","sourceRoot":"","sources":["../../../../src/appui-react/content/ViewStateHelper.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,wDAE8B;AAC9B,0DAAuD;AAUvD;;GAEG;AACH,MAAa,eAAe;IAC1B,4CAA4C;IACrC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,gBAAkC,EAAE,cAAoC;QAC7G,MAAM,SAAS,GAAG,cAAc,CAAC,mBAAmB,CAAC,aAAa,CAAC;QACnE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAqB,SAAS,EAAE,SAAS,CAAiC,CAAC;QAE3H,uBAAuB;QACvB,IAAI,SAAS,KAAK,IAAI;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,SAAS,GAAG,CAAC,CAAC;QAEpE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAE,CAAC;QAC1E,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,iCAAiC;QAEzD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iDAAiD;IAC1C,MAAM,CAAC,0BAA0B,CAAC,EAAkB,EAAE,cAAoC;QAC/F,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,cAAc,CAAC,sBAAsB,EAAE;YACzC,MAAM,iBAAiB,GAAG,IAAI,iCAAiB,EAAE,CAAC;YAClD,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;SACjF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mCAAmC;IAC5B,MAAM,CAAC,gBAAgB,CAAC,SAAoB;QACjD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,EAA0B,CAAC;QACnE,cAAc,CAAC,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,wEAAwE;IACjE,MAAM,CAAC,wBAAwB,CAAC,EAAkB,EAAE,cAAoC;QAC7F,MAAM,EAAE,GAAG,iCAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,cAAc,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACjE,CAAC;CAEF;AAxCD,0CAwCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport { EmphasizeElementsProps, ViewStateProps } from \"@itwin/core-common\";\r\nimport {\r\n EmphasizeElements, EntityState, IModelConnection, ScreenViewport, ViewState,\r\n} from \"@itwin/core-frontend\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\n\r\n/** SavedViewProps interface for sharing ViewState and EmphasizeElements information.\r\n * @public\r\n */\r\nexport interface ViewStateHelperProps extends ViewStateProps {\r\n bisBaseClass: string;\r\n emphasizeElementsProps?: EmphasizeElementsProps;\r\n}\r\n\r\n/** SavedView class. Used to serialize/deserialize a ViewState.\r\n * @public\r\n */\r\nexport class ViewStateHelper {\r\n /** Create a ViewState from the SavedView */\r\n public static async viewStateFromProps(iModelConnection: IModelConnection, savedViewProps: ViewStateHelperProps): Promise<ViewState | undefined> {\r\n const className = savedViewProps.viewDefinitionProps.classFullName;\r\n const ctor = await iModelConnection.findClassFor<typeof EntityState>(className, undefined) as typeof ViewState | undefined;\r\n\r\n // istanbul ignore next\r\n if (undefined === ctor)\r\n throw new Error(`Invalid ViewState class name of [${className}]`);\r\n\r\n const viewState = ctor.createFromProps(savedViewProps, iModelConnection)!;\r\n await viewState.load(); // loads models for ModelSelector\r\n\r\n return viewState;\r\n }\r\n\r\n /** Apply EmphasizeElements from the SavedView */\r\n public static emphasizeElementsFromProps(vp: ScreenViewport, savedViewProps: ViewStateHelperProps): boolean {\r\n let changed = false;\r\n if (savedViewProps.emphasizeElementsProps) {\r\n const emphasizeElements = new EmphasizeElements();\r\n changed = emphasizeElements.fromJSON(savedViewProps.emphasizeElementsProps, vp);\r\n }\r\n return changed;\r\n }\r\n\r\n /** Create props for a ViewState */\r\n public static viewStateToProps(viewState: ViewState): ViewStateHelperProps {\r\n const savedViewProps = viewState.toProps() as ViewStateHelperProps;\r\n savedViewProps.bisBaseClass = ViewUtilities.getBisBaseClass(viewState.classFullName);\r\n return savedViewProps;\r\n }\r\n\r\n /** Create props for an EmphasizeElements and store in SavedViewProps */\r\n public static emphasizeElementsToProps(vp: ScreenViewport, savedViewProps: ViewStateHelperProps): void {\r\n const ee = EmphasizeElements.get(vp);\r\n const emphasizeElementsProps = ee ? ee.toJSON(vp) : undefined;\r\n savedViewProps.emphasizeElementsProps = emphasizeElementsProps;\r\n }\r\n\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewportContentControl.js","sourceRoot":"","sources":["../../../../src/appui-react/content/ViewportContentControl.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport {\n DrawingViewState, IModelApp, IModelConnection, OrthographicViewState, ScreenViewport, SheetViewState, SpatialViewState, ViewState,\n} from \"@itwin/core-frontend\";\nimport { ConfigurableCreateInfo, ConfigurableUiControlType } from \"../configurableui/ConfigurableUiControl\";\nimport { CubeNavigationAidControl } from \"../navigationaids/CubeNavigationAidControl\";\nimport { DrawingNavigationAidControl } from \"../navigationaids/DrawingNavigationAidControl\";\nimport { SheetNavigationAidControl } from \"../navigationaids/SheetNavigationAid\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\nimport { ContentControl, SupportsViewSelectorChange } from \"./ContentControl\";\n\n/**\n * The base class for frontstage Viewport content controls that connects to a `ScreenViewport`\n * that is managed by the `ViewManager`.\n * @public\n */\nexport class ViewportContentControl extends ContentControl implements SupportsViewSelectorChange {\n private _viewport: ScreenViewport | undefined;\n private _isReady: Promise<void>;\n private _viewportReadyCallback?: () => void;\n\n /** Creates an instance of ViewportContentControl.\n * @param info An object that the subclass must pass to this base class.\n * @param options Options provided via the applicationData in a [[ContentProps]].\n */\n constructor(info: ConfigurableCreateInfo, options: any) {\n super(info, options);\n\n this._isReady = new Promise<void>((onSuccess: () => void, _onFailure: () => void): void => {\n this._viewportReadyCallback = onSuccess;\n });\n }\n\n /** Gets the type of ConfigurableUiControl, which is 'Viewport' in this case */\n public override getType(): ConfigurableUiControlType { return ConfigurableUiControlType.Viewport; }\n\n /** Returns true if this control is a Viewport control. */\n public override get isViewport(): boolean { return true; }\n\n /** The underlying ScreenViewport */\n public override get viewport(): ScreenViewport | undefined { return this._viewport; }\n public override set viewport(v: ScreenViewport | undefined) {\n this._viewport = v;\n this.setIsReady();\n }\n\n /** Returns a promise that resolves when the control is ready for usage.\n */\n public setIsReady(): void {\n // istanbul ignore else\n if (this._viewportReadyCallback) {\n this._viewportReadyCallback();\n }\n }\n\n /** Returns a promise that resolves when the control is ready for usage.\n */\n public override get isReady(): Promise<void> { return this._isReady; }\n\n /** Called when this ContentControl is activated */\n public override onActivated(): void {\n super.onActivated();\n }\n\n /** Get the NavigationAidControl associated with this ContentControl */\n public override get navigationAidControl(): string {\n let navigationAidId = \"\";\n\n // istanbul ignore else\n if (this.viewport) {\n navigationAidId = this._getNavigationAid(this.viewport.view.classFullName);\n }\n\n return navigationAidId;\n }\n\n /**\n * Fetches appropriate NavigationAid based on the class of the current viewport.\n * @param classFullName The full name of the current viewport class.\n * @returns The ID of the navigation aid to be displayed.\n */\n private _getNavigationAid = (classFullName: string) => {\n const className = ViewUtilities.getBisBaseClass(classFullName);\n let navigationAidId = \"\";\n\n switch (className) {\n case SheetViewState.className:\n navigationAidId = SheetNavigationAidControl.navigationAidId;\n break;\n case DrawingViewState.className:\n navigationAidId = DrawingNavigationAidControl.navigationAidId;\n break;\n case SpatialViewState.className:\n case OrthographicViewState.className:\n navigationAidId = CubeNavigationAidControl.navigationAidId;\n break;\n }\n\n return navigationAidId;\n };\n\n /** Returns true if this control supports processing ViewSelector changes. */\n public get supportsViewSelectorChange(): boolean { return true; }\n\n /** Process a ViewSelector change. */\n // istanbul ignore next\n public async processViewSelectorChange(iModel: IModelConnection, viewDefinitionId: Id64String, viewState: ViewState, name: string): Promise<void> {\n if (this.viewport) {\n if (IModelApp.viewManager && this.viewport === IModelApp.viewManager.selectedView)\n this.viewport.changeView(viewState);\n } else {\n this.reactNode = this.getReactElementForViewSelectorChange(iModel, viewDefinitionId, viewState, name);\n }\n UiFramework.content.refreshActive(this.reactNode);\n }\n\n /** Get the React.Element for a ViewSelector change. */\n // istanbul ignore next\n public getReactElementForViewSelectorChange(_iModel: IModelConnection, _viewDefinitionId: Id64String, _viewState: ViewState, _name: string): React.ReactNode { return null; }\n}\n\n/**\n * @beta\n */\nexport class FloatingViewportContentControl extends ViewportContentControl {\n constructor(uniqueId: string, name: string, node: React.ReactNode) {\n super(new ConfigurableCreateInfo(name, uniqueId, name), undefined);\n this._reactNode = node;\n this.setIsReady();\n }\n\n /** The React node associated with this control. */\n public override get reactNode(): React.ReactNode {\n return this._reactNode;\n }\n\n public override set reactNode(r: React.ReactNode) {\n this._reactNode = r;\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n\n // istanbul ignore else\n if (this.viewport && activeFrontstageDef)\n activeFrontstageDef.setActiveViewFromViewport(this.viewport);\n }\n}\n"]}
1
+ {"version":3,"file":"ViewportContentControl.js","sourceRoot":"","sources":["../../../../src/appui-react/content/ViewportContentControl.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n DrawingViewState, IModelApp, IModelConnection, OrthographicViewState, ScreenViewport, SheetViewState, SpatialViewState, ViewState,\r\n} from \"@itwin/core-frontend\";\r\nimport { ConfigurableCreateInfo, ConfigurableUiControlType } from \"../configurableui/ConfigurableUiControl\";\r\nimport { CubeNavigationAidControl } from \"../navigationaids/CubeNavigationAidControl\";\r\nimport { DrawingNavigationAidControl } from \"../navigationaids/DrawingNavigationAidControl\";\r\nimport { SheetNavigationAidControl } from \"../navigationaids/SheetNavigationAid\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ContentControl, SupportsViewSelectorChange } from \"./ContentControl\";\r\n\r\n/**\r\n * The base class for frontstage Viewport content controls that connects to a `ScreenViewport`\r\n * that is managed by the `ViewManager`.\r\n * @public\r\n */\r\nexport class ViewportContentControl extends ContentControl implements SupportsViewSelectorChange {\r\n private _viewport: ScreenViewport | undefined;\r\n private _isReady: Promise<void>;\r\n private _viewportReadyCallback?: () => void;\r\n\r\n /** Creates an instance of ViewportContentControl.\r\n * @param info An object that the subclass must pass to this base class.\r\n * @param options Options provided via the applicationData in a [[ContentProps]].\r\n */\r\n constructor(info: ConfigurableCreateInfo, options: any) {\r\n super(info, options);\r\n\r\n this._isReady = new Promise<void>((onSuccess: () => void, _onFailure: () => void): void => {\r\n this._viewportReadyCallback = onSuccess;\r\n });\r\n }\r\n\r\n /** Gets the type of ConfigurableUiControl, which is 'Viewport' in this case */\r\n public override getType(): ConfigurableUiControlType { return ConfigurableUiControlType.Viewport; }\r\n\r\n /** Returns true if this control is a Viewport control. */\r\n public override get isViewport(): boolean { return true; }\r\n\r\n /** The underlying ScreenViewport */\r\n public override get viewport(): ScreenViewport | undefined { return this._viewport; }\r\n public override set viewport(v: ScreenViewport | undefined) {\r\n this._viewport = v;\r\n this.setIsReady();\r\n }\r\n\r\n /** Returns a promise that resolves when the control is ready for usage.\r\n */\r\n public setIsReady(): void {\r\n // istanbul ignore else\r\n if (this._viewportReadyCallback) {\r\n this._viewportReadyCallback();\r\n }\r\n }\r\n\r\n /** Returns a promise that resolves when the control is ready for usage.\r\n */\r\n public override get isReady(): Promise<void> { return this._isReady; }\r\n\r\n /** Called when this ContentControl is activated */\r\n public override onActivated(): void {\r\n super.onActivated();\r\n }\r\n\r\n /** Get the NavigationAidControl associated with this ContentControl */\r\n public override get navigationAidControl(): string {\r\n let navigationAidId = \"\";\r\n\r\n // istanbul ignore else\r\n if (this.viewport) {\r\n navigationAidId = this._getNavigationAid(this.viewport.view.classFullName);\r\n }\r\n\r\n return navigationAidId;\r\n }\r\n\r\n /**\r\n * Fetches appropriate NavigationAid based on the class of the current viewport.\r\n * @param classFullName The full name of the current viewport class.\r\n * @returns The ID of the navigation aid to be displayed.\r\n */\r\n private _getNavigationAid = (classFullName: string) => {\r\n const className = ViewUtilities.getBisBaseClass(classFullName);\r\n let navigationAidId = \"\";\r\n\r\n switch (className) {\r\n case SheetViewState.className:\r\n navigationAidId = SheetNavigationAidControl.navigationAidId;\r\n break;\r\n case DrawingViewState.className:\r\n navigationAidId = DrawingNavigationAidControl.navigationAidId;\r\n break;\r\n case SpatialViewState.className:\r\n case OrthographicViewState.className:\r\n navigationAidId = CubeNavigationAidControl.navigationAidId;\r\n break;\r\n }\r\n\r\n return navigationAidId;\r\n };\r\n\r\n /** Returns true if this control supports processing ViewSelector changes. */\r\n public get supportsViewSelectorChange(): boolean { return true; }\r\n\r\n /** Process a ViewSelector change. */\r\n // istanbul ignore next\r\n public async processViewSelectorChange(iModel: IModelConnection, viewDefinitionId: Id64String, viewState: ViewState, name: string): Promise<void> {\r\n if (this.viewport) {\r\n if (IModelApp.viewManager && this.viewport === IModelApp.viewManager.selectedView)\r\n this.viewport.changeView(viewState);\r\n } else {\r\n this.reactNode = this.getReactElementForViewSelectorChange(iModel, viewDefinitionId, viewState, name);\r\n }\r\n UiFramework.content.refreshActive(this.reactNode);\r\n }\r\n\r\n /** Get the React.Element for a ViewSelector change. */\r\n // istanbul ignore next\r\n public getReactElementForViewSelectorChange(_iModel: IModelConnection, _viewDefinitionId: Id64String, _viewState: ViewState, _name: string): React.ReactNode { return null; }\r\n}\r\n\r\n/**\r\n * @beta\r\n */\r\nexport class FloatingViewportContentControl extends ViewportContentControl {\r\n constructor(uniqueId: string, name: string, node: React.ReactNode) {\r\n super(new ConfigurableCreateInfo(name, uniqueId, name), undefined);\r\n this._reactNode = node;\r\n this.setIsReady();\r\n }\r\n\r\n /** The React node associated with this control. */\r\n public override get reactNode(): React.ReactNode {\r\n return this._reactNode;\r\n }\r\n\r\n public override set reactNode(r: React.ReactNode) {\r\n this._reactNode = r;\r\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (this.viewport && activeFrontstageDef)\r\n activeFrontstageDef.setActiveViewFromViewport(this.viewport);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Pane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/Pane.tsx"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,+BAA+B;AAC/B,2CAAoC;AAgBpC;;GAEG;AACH,SAAgB,IAAI,CAAC,KAAgB;IACnC,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,GACP,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,oBAAU,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAElG,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,MAAM,SAAS,GAAiC;YAC9C,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,MAAM;SAChB,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,IAAI,KAAK,KAAK,UAAU,EAAE;gBACxB,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;aACxB;iBAAM;gBACL,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;gBACxB,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B;YACD,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;SACzB;QAED,OAAO;YACL,GAAG,KAAK;YACR,GAAG,SAAS;SACU,CAAC;IAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzB,OAAO,CACL,6BAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,IACvD,QAAQ,CACL,CACP,CAAC;AACJ,CAAC;AAxCD,oBAwCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\nimport * as React from \"react\";\nimport classnames from \"classnames\";\n\n/** Based on react-split-pane package. See https://github.com/tomkp/react-split-pane/blob/master/LICENSE */\n\n/**\n * @internal\n */\nexport interface PaneProps {\n className?: string;\n size?: string | number;\n split?: \"vertical\" | \"horizontal\";\n style?: React.CSSProperties;\n eleRef: React.RefObject<HTMLDivElement>;\n children?: React.ReactNode;\n}\n\n/**\n * @internal\n */\nexport function Pane(props: PaneProps) {\n const {\n children,\n className,\n split,\n style,\n size,\n eleRef,\n } = props;\n\n const paneClasses = React.useMemo(() => classnames(\"Pane\", split, className), [split, className]);\n\n const paneStyle = React.useMemo(() => {\n const baseStyle: Partial<React.CSSProperties> = {\n flex: 1,\n position: \"relative\",\n outline: \"none\",\n };\n\n if (size !== undefined) {\n if (split === \"vertical\") {\n baseStyle.width = size;\n } else {\n baseStyle.height = size;\n baseStyle.display = \"flex\";\n }\n baseStyle.flex = \"none\";\n }\n\n return {\n ...style,\n ...baseStyle,\n } as React.CSSProperties;\n }, [size, split, style]);\n\n return (\n <div ref={eleRef} className={paneClasses} style={paneStyle}>\n {children}\n </div>\n );\n}\n\n"]}
1
+ {"version":3,"file":"Pane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/Pane.tsx"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,+BAA+B;AAC/B,2CAAoC;AAgBpC;;GAEG;AACH,SAAgB,IAAI,CAAC,KAAgB;IACnC,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,GACP,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,oBAAU,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAElG,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,MAAM,SAAS,GAAiC;YAC9C,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,MAAM;SAChB,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,IAAI,KAAK,KAAK,UAAU,EAAE;gBACxB,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;aACxB;iBAAM;gBACL,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;gBACxB,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B;YACD,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;SACzB;QAED,OAAO;YACL,GAAG,KAAK;YACR,GAAG,SAAS;SACU,CAAC;IAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzB,OAAO,CACL,6BAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,IACvD,QAAQ,CACL,CACP,CAAC;AACJ,CAAC;AAxCD,oBAwCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\n/** Based on react-split-pane package. See https://github.com/tomkp/react-split-pane/blob/master/LICENSE */\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface PaneProps {\r\n className?: string;\r\n size?: string | number;\r\n split?: \"vertical\" | \"horizontal\";\r\n style?: React.CSSProperties;\r\n eleRef: React.RefObject<HTMLDivElement>;\r\n children?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function Pane(props: PaneProps) {\r\n const {\r\n children,\r\n className,\r\n split,\r\n style,\r\n size,\r\n eleRef,\r\n } = props;\r\n\r\n const paneClasses = React.useMemo(() => classnames(\"Pane\", split, className), [split, className]);\r\n\r\n const paneStyle = React.useMemo(() => {\r\n const baseStyle: Partial<React.CSSProperties> = {\r\n flex: 1,\r\n position: \"relative\",\r\n outline: \"none\",\r\n };\r\n\r\n if (size !== undefined) {\r\n if (split === \"vertical\") {\r\n baseStyle.width = size;\r\n } else {\r\n baseStyle.height = size;\r\n baseStyle.display = \"flex\";\r\n }\r\n baseStyle.flex = \"none\";\r\n }\r\n\r\n return {\r\n ...style,\r\n ...baseStyle,\r\n } as React.CSSProperties;\r\n }, [size, split, style]);\r\n\r\n return (\r\n <div ref={eleRef} className={paneClasses} style={paneStyle}>\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Resizer.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/Resizer.tsx"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,+BAA+B;AAC/B,2CAAoC;AAkBpC;;GAEG;AACH,SAAgB,OAAO,CAAC,KAAmB;IACzC,MAAM,EACJ,SAAS,EACT,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,GACN,GAAG,KAAK,CAAC;IAEV,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,oBAAU,EAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7F,OAAO,CACL,8BACE,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EACtD,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC,EACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACpB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,UAAU,EAAE,CAAC;QACf,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,uBAAuB;YACvB,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAC5B;QACH,CAAC,EACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,uBAAuB;YACvB,IAAI,aAAa,EAAE;gBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAClC;QACH,CAAC,GACD,CACH,CAAC;AACJ,CAAC;AA3CD,0BA2CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\nimport * as React from \"react\";\nimport classnames from \"classnames\";\n\n/** Based on react-split-pane package. See https://github.com/tomkp/react-split-pane/blob/master/LICENSE */\n\n/**\n * @internal\n */\nexport interface ResizerProps {\n split?: \"vertical\" | \"horizontal\";\n style?: React.CSSProperties;\n className: string;\n onMouseDown: (event: MouseEvent) => void;\n onTouchEnd: () => void;\n onTouchStart: (event: TouchEvent) => void;\n onClick?: (event: MouseEvent) => void;\n onDoubleClick?: (event: MouseEvent) => void;\n}\n\n/**\n * @internal\n */\nexport function Resizer(props: ResizerProps) {\n const {\n className,\n onClick,\n onDoubleClick,\n onMouseDown,\n onTouchEnd,\n onTouchStart,\n split,\n style,\n } = props;\n\n const resizerClasses = React.useMemo(() => classnames(split, className), [split, className]);\n\n return (\n <span\n role=\"presentation\"\n className={resizerClasses}\n style={style}\n onMouseDown={(event) => onMouseDown(event.nativeEvent)}\n onTouchStart={(event) => {\n onTouchStart(event.nativeEvent);\n }}\n onTouchEnd={(event) => {\n event.preventDefault();\n onTouchEnd();\n }}\n onClick={(event) => {\n // istanbul ignore else\n if (onClick) {\n event.preventDefault();\n onClick(event.nativeEvent);\n }\n }}\n onDoubleClick={(event) => {\n // istanbul ignore else\n if (onDoubleClick) {\n event.preventDefault();\n onDoubleClick(event.nativeEvent);\n }\n }}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"Resizer.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/Resizer.tsx"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,+BAA+B;AAC/B,2CAAoC;AAkBpC;;GAEG;AACH,SAAgB,OAAO,CAAC,KAAmB;IACzC,MAAM,EACJ,SAAS,EACT,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,GACN,GAAG,KAAK,CAAC;IAEV,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,oBAAU,EAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7F,OAAO,CACL,8BACE,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EACtD,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC,EACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACpB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,UAAU,EAAE,CAAC;QACf,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,uBAAuB;YACvB,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAC5B;QACH,CAAC,EACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,uBAAuB;YACvB,IAAI,aAAa,EAAE;gBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAClC;QACH,CAAC,GACD,CACH,CAAC;AACJ,CAAC;AA3CD,0BA2CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\n/** Based on react-split-pane package. See https://github.com/tomkp/react-split-pane/blob/master/LICENSE */\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface ResizerProps {\r\n split?: \"vertical\" | \"horizontal\";\r\n style?: React.CSSProperties;\r\n className: string;\r\n onMouseDown: (event: MouseEvent) => void;\r\n onTouchEnd: () => void;\r\n onTouchStart: (event: TouchEvent) => void;\r\n onClick?: (event: MouseEvent) => void;\r\n onDoubleClick?: (event: MouseEvent) => void;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function Resizer(props: ResizerProps) {\r\n const {\r\n className,\r\n onClick,\r\n onDoubleClick,\r\n onMouseDown,\r\n onTouchEnd,\r\n onTouchStart,\r\n split,\r\n style,\r\n } = props;\r\n\r\n const resizerClasses = React.useMemo(() => classnames(split, className), [split, className]);\r\n\r\n return (\r\n <span\r\n role=\"presentation\"\r\n className={resizerClasses}\r\n style={style}\r\n onMouseDown={(event) => onMouseDown(event.nativeEvent)}\r\n onTouchStart={(event) => {\r\n onTouchStart(event.nativeEvent);\r\n }}\r\n onTouchEnd={(event) => {\r\n event.preventDefault();\r\n onTouchEnd();\r\n }}\r\n onClick={(event) => {\r\n // istanbul ignore else\r\n if (onClick) {\r\n event.preventDefault();\r\n onClick(event.nativeEvent);\r\n }\r\n }}\r\n onDoubleClick={(event) => {\r\n // istanbul ignore else\r\n if (onDoubleClick) {\r\n event.preventDefault();\r\n onDoubleClick(event.nativeEvent);\r\n }\r\n }}\r\n />\r\n );\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { Pane } from \"./Pane\";\nimport { Resizer } from \"./Resizer\";\n\n/**\n * Props for [[SplitPane]] component\n * @public\n */\nexport interface SplitPaneProps {\n /** Pass false to disable resizing */\n allowResize?: boolean;\n /** The array of two react nodes, one for each pane. */\n children: React.ReactNode[];\n /** Determines which pane maintains its size when browser window is resized.*/\n primary?: \"first\" | \"second\";\n\n minSize?: string | number;\n /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value\n * (measured in pixels but state just a number). If you wrap the SplitPane into a container component\n * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit\n * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane\n * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer\n * will stop at the border of the SplitPane component and think this you'll be able to pick it again and drag it back then.\n * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border\n * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the\n * full-screen case of use. */\n maxSize?: string | number;\n /** Default initial size of primary pane */\n defaultSize?: string | number;\n /** Size of primary pane */\n size?: string | number;\n /** You can use the step prop to only allow resizing in fixed increments. */\n step?: number;\n split?: \"vertical\" | \"horizontal\";\n /** This callback is invoked when a drag start. */\n onDragStarted?: () => void;\n /** This callback is invoked when a drag ends. */\n onDragFinished?: (newSize: number) => void;\n /** Callback is invoked with the current drag during a drag event.*/\n onChange?: (newSize: number) => void;\n /** Callback is invoked if user clicks on Resizer. */\n onResizerClick?: (event: MouseEvent) => void;\n /** Callback is invoked if user double clicks on Resizer. */\n onResizerDoubleClick?: (event: MouseEvent) => void;\n /** Styling to be applied to the main container */\n style?: React.CSSProperties;\n /** Styling to be applied to both panes */\n paneStyle?: React.CSSProperties;\n /** Styling to be applied to the first pane, with precedence over paneStyle */\n pane1Style?: React.CSSProperties;\n /** Styling to be applied to the second pane, with precedence over paneStyle */\n pane2Style?: React.CSSProperties;\n /** Styling to be applied to the resizer bar */\n resizerStyle?: React.CSSProperties;\n /** Class name to be added to the SplitPane div */\n className?: string;\n /** Class name to be added to each Pane's div */\n paneClassName?: string;\n /** Class name to be added to Pane1's div */\n pane1ClassName?: string;\n /** Class name to be added to Pane2's div */\n pane2ClassName?: string;\n}\n\nfunction unFocus(ownerDoc: Document | undefined) {\n // istanbul ignore next\n if (!ownerDoc)\n return;\n\n const docSelection = ownerDoc.getSelection();\n // istanbul ignore else\n if (docSelection) {\n docSelection.empty();\n } else {\n // istanbul ignore next\n try {\n const winSelection = ownerDoc.defaultView?.getSelection();\n winSelection?.removeAllRanges();\n } catch (_e) { }\n }\n}\n\nfunction getDefaultSize(defaultSize?: number | string, minSize?: string | number, maxSize?: string | number, draggedSize?: number) {\n // istanbul ignore next\n if (typeof draggedSize === \"number\") {\n const min = typeof minSize === \"number\" ? minSize : 0;\n const max =\n typeof maxSize === \"number\" && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n return minSize;\n}\n\nfunction removeNullChildren(children: React.ReactNode[]) {\n return React.Children.toArray(children).filter((c) => c);\n}\n\n/**\n * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that\n * package is not regularly maintained.\n * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.\n * @public\n */\nexport function SplitPane(props: SplitPaneProps) {\n const { style, size, defaultSize, maxSize, children,\n paneStyle, pane1Style, pane2Style, className,\n paneClassName, pane1ClassName, pane2ClassName,\n onDragStarted, onDragFinished, step, onChange,\n onResizerClick, onResizerDoubleClick,\n } = props;\n\n // honor same defaults as react-split-pane\n const allowResize = React.useMemo(() => undefined !== props.allowResize ? props.allowResize : true, [props.allowResize]);\n const minSize = React.useMemo(() => undefined !== props.minSize ? props.minSize : 50, [props.minSize]);\n const primary = React.useMemo(() => undefined !== props.primary ? props.primary : \"first\", [props.primary]);\n const split = React.useMemo(() => undefined !== props.split ? props.split : \"vertical\", [props.split]);\n const initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);\n\n const [position, setPosition] = React.useState(0);\n const [draggedSize, setDraggedSize] = React.useState<number | undefined>();\n const [active, setActive] = React.useState(false);\n const [pane1Size, setPane1Size] = React.useState(() => primary === \"first\" ? initialSize : undefined);\n const [pane2Size, setPane2Size] = React.useState(() => primary === \"second\" ? initialSize : undefined);\n const splitPane = React.useRef<HTMLDivElement>(null);\n const pane1 = React.useRef<HTMLDivElement>(null);\n const pane2 = React.useRef<HTMLDivElement>(null);\n const notNullChildren = React.useMemo(() => removeNullChildren(children), [children]);\n\n React.useEffect(() => {\n primary === \"first\" ? setPane1Size(initialSize) : setPane2Size(initialSize);\n primary === \"first\" ? setPane2Size(undefined) : setPane1Size(undefined);\n }, [initialSize, primary]);\n\n const splitPaneStyle = React.useMemo(() => {\n const directionSpecificParts = (split === \"vertical\") ? {\n flexDirection: \"row\",\n left: 0,\n right: 0,\n } : {\n bottom: 0,\n flexDirection: \"column\",\n minHeight: \"100%\",\n top: 0,\n width: \"100%\",\n };\n\n return {\n display: \"flex\",\n flex: 1,\n height: \"100%\",\n position: \"absolute\",\n outline: \"none\",\n overflow: \"hidden\",\n MozUserSelect: \"text\",\n WebkitUserSelect: \"text\",\n msUserSelect: \"text\",\n userSelect: \"text\",\n ...style,\n ...directionSpecificParts,\n } as React.CSSProperties;\n }, [split, style]);\n\n const pane1DivStyle = { ...paneStyle, ...pane1Style };\n const pane2DivStyle = { ...paneStyle, ...pane2Style };\n const resizerStyle = React.useMemo(() => props.resizerStyle ?? {}, [props.resizerStyle]);\n const resizerClasses = React.useMemo(() => classnames(\"Resizer\", !allowResize && \"disabled\"), [allowResize]);\n const splitPaneClasses = React.useMemo(() => classnames(\"SplitPane\", className, split, !allowResize && \"disabled\"), [className, split, allowResize]);\n const pane1Classes = React.useMemo(() => classnames(\"Pane1\", paneClassName, pane1ClassName), [paneClassName, pane1ClassName]);\n const pane2Classes = React.useMemo(() => classnames(\"Pane2\", paneClassName, pane2ClassName), [paneClassName, pane2ClassName]);\n\n const initializeDrag = React.useCallback((x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const newPosition = split === \"vertical\" ? x : y;\n onDragStarted && onDragStarted();\n setActive(true);\n setPosition(newPosition);\n }, [onDragStarted, split]);\n\n const onTouchStart = React.useCallback((event: TouchEvent) => {\n // istanbul ignore else\n if (allowResize) {\n initializeDrag(event.touches[0].clientX, event.touches[0].clientY);\n }\n }, [allowResize, initializeDrag]);\n\n const processMove = React.useCallback((x: number, y: number) => {\n // istanbul ignore next\n unFocus(splitPane.current?.ownerDocument);\n const isPrimaryFirst = primary === \"first\";\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\n const splitPaneDiv = splitPane.current;\n\n // istanbul ignore else\n if (ref && ref2 && splitPaneDiv) {\n const node = ref;\n const node2 = ref2;\n // istanbul ignore else\n if (node.getBoundingClientRect) {\n const width = node.getBoundingClientRect().width;\n const height = node.getBoundingClientRect().height;\n // istanbul ignore next\n const current = split === \"vertical\" ? x : y;\n // istanbul ignore next\n const oldSize = split === \"vertical\" ? width : height;\n let positionDelta = position - current;\n if (step) {\n // istanbul ignore next\n if (Math.abs(positionDelta) < step) {\n return;\n }\n // Integer division\n // eslint-disable-next-line no-bitwise\n positionDelta = ~~(positionDelta / step) * step;\n }\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n\n // istanbul ignore next\n const pane1Order = parseInt(node.ownerDocument?.defaultView?.getComputedStyle(node).order ?? \"0\", 10);\n // istanbul ignore next\n const pane2Order = parseInt(node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ?? \"0\", 10);\n // istanbul ignore next\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n let newMaxSize = maxSize;\n // istanbul ignore next\n if (typeof maxSize === \"number\" && maxSize !== undefined && maxSize <= 0) {\n if (split === \"vertical\") {\n newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize = splitPaneDiv.getBoundingClientRect().height + maxSize;\n }\n }\n\n let newSize = oldSize - sizeDelta;\n const newPosition = position - positionDelta;\n\n // istanbul ignore next\n if (typeof minSize === \"number\" && newSize < minSize) {\n newSize = minSize;\n } else if (typeof newMaxSize === \"number\" && newMaxSize !== undefined && newSize > newMaxSize) {\n newSize = newMaxSize;\n } else {\n setPosition(newPosition);\n }\n\n onChange && onChange(newSize);\n setDraggedSize(newSize);\n isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);\n }\n }\n }, [maxSize, minSize, onChange, position, primary, split, step]);\n\n const onTouchMove = React.useCallback((event: TouchEvent) => {\n // istanbul ignore next\n if (!allowResize || !active)\n return;\n processMove(event.touches[0].clientX, event.touches[0].clientY);\n }, [active, allowResize, processMove]);\n\n const onMouseMove = React.useCallback((event: MouseEvent) => {\n if (!allowResize || !active)\n return;\n processMove(event.clientX, event.clientY);\n }, [active, allowResize, processMove]);\n\n const onMouseDown = React.useCallback((event: MouseEvent) => {\n // istanbul ignore else\n if (allowResize) {\n event.preventDefault();\n initializeDrag(event.clientX, event.clientY);\n }\n }, [allowResize, initializeDrag]);\n\n const processResizeFinished = React.useCallback(() => {\n // istanbul ignore else\n if (undefined !== draggedSize && allowResize && active) {\n onDragFinished && onDragFinished(draggedSize);\n }\n setActive(false);\n }, [draggedSize, allowResize, active, onDragFinished]);\n\n const onMouseUp = React.useCallback((event: MouseEvent) => {\n event.preventDefault();\n processResizeFinished();\n }, [processResizeFinished]);\n\n React.useEffect(() => {\n // istanbul ignore next\n const ownerDoc = splitPane.current?.ownerDocument;\n // istanbul ignore next\n if (!ownerDoc)\n return;\n\n ownerDoc.addEventListener(\"mouseup\", onMouseUp);\n ownerDoc.addEventListener(\"mousemove\", onMouseMove);\n ownerDoc.addEventListener(\"touchmove\", onTouchMove);\n return () => {\n ownerDoc.removeEventListener(\"mouseup\", onMouseUp);\n ownerDoc.removeEventListener(\"mousemove\", onMouseMove);\n ownerDoc.removeEventListener(\"touchmove\", onTouchMove);\n };\n }, [onMouseMove, onMouseUp, onTouchMove]);\n\n return (\n <div\n className={splitPaneClasses}\n ref={splitPane}\n style={splitPaneStyle}\n >\n <Pane\n className={pane1Classes}\n key=\"pane1\"\n eleRef={pane1}\n size={pane1Size}\n split={split}\n style={pane1DivStyle}\n >\n {notNullChildren[0]}\n </Pane>\n <Resizer\n className={resizerClasses}\n onClick={onResizerClick}\n onDoubleClick={onResizerDoubleClick}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n onTouchEnd={processResizeFinished}\n key=\"resizer\"\n split={split}\n style={resizerStyle}\n />\n <Pane\n className={pane2Classes}\n key=\"pane2\"\n eleRef={pane2}\n size={pane2Size}\n split={split}\n style={pane2DivStyle}\n >\n {notNullChildren[1]}\n </Pane>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../../../src/appui-react/content/split-pane/SplitPane.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ContentView\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { Pane } from \"./Pane\";\r\nimport { Resizer } from \"./Resizer\";\r\n\r\n/**\r\n * Props for [[SplitPane]] component\r\n * @public\r\n */\r\nexport interface SplitPaneProps {\r\n /** Pass false to disable resizing */\r\n allowResize?: boolean;\r\n /** The array of two react nodes, one for each pane. */\r\n children: React.ReactNode[];\r\n /** Determines which pane maintains its size when browser window is resized.*/\r\n primary?: \"first\" | \"second\";\r\n\r\n minSize?: string | number;\r\n /** You can limit the maximal size of the 'fixed' pane using the maxSize parameter with a positive value\r\n * (measured in pixels but state just a number). If you wrap the SplitPane into a container component\r\n * (yes you can, just remember the container has to have the relative or absolute positioning), then you'll need to limit\r\n * the movement of the splitter (resizer) at the end of the SplitPane (otherwise it can be dragged outside the SplitPane\r\n * and you don't catch it never more). For this purpose use the maxSize parameter with value 0. When dragged the splitter/resizer\r\n * will stop at the border of the SplitPane component and think this you'll be able to pick it again and drag it back then.\r\n * And more: if you set the maxSize to negative value (e.g. -200), then the splitter stops 200px before the border\r\n * (in other words it sets the minimal size of the 'resizable' pane in this case). This can be useful also in the\r\n * full-screen case of use. */\r\n maxSize?: string | number;\r\n /** Default initial size of primary pane */\r\n defaultSize?: string | number;\r\n /** Size of primary pane */\r\n size?: string | number;\r\n /** You can use the step prop to only allow resizing in fixed increments. */\r\n step?: number;\r\n split?: \"vertical\" | \"horizontal\";\r\n /** This callback is invoked when a drag start. */\r\n onDragStarted?: () => void;\r\n /** This callback is invoked when a drag ends. */\r\n onDragFinished?: (newSize: number) => void;\r\n /** Callback is invoked with the current drag during a drag event.*/\r\n onChange?: (newSize: number) => void;\r\n /** Callback is invoked if user clicks on Resizer. */\r\n onResizerClick?: (event: MouseEvent) => void;\r\n /** Callback is invoked if user double clicks on Resizer. */\r\n onResizerDoubleClick?: (event: MouseEvent) => void;\r\n /** Styling to be applied to the main container */\r\n style?: React.CSSProperties;\r\n /** Styling to be applied to both panes */\r\n paneStyle?: React.CSSProperties;\r\n /** Styling to be applied to the first pane, with precedence over paneStyle */\r\n pane1Style?: React.CSSProperties;\r\n /** Styling to be applied to the second pane, with precedence over paneStyle */\r\n pane2Style?: React.CSSProperties;\r\n /** Styling to be applied to the resizer bar */\r\n resizerStyle?: React.CSSProperties;\r\n /** Class name to be added to the SplitPane div */\r\n className?: string;\r\n /** Class name to be added to each Pane's div */\r\n paneClassName?: string;\r\n /** Class name to be added to Pane1's div */\r\n pane1ClassName?: string;\r\n /** Class name to be added to Pane2's div */\r\n pane2ClassName?: string;\r\n}\r\n\r\nfunction unFocus(ownerDoc: Document | undefined) {\r\n // istanbul ignore next\r\n if (!ownerDoc)\r\n return;\r\n\r\n const docSelection = ownerDoc.getSelection();\r\n // istanbul ignore else\r\n if (docSelection) {\r\n docSelection.empty();\r\n } else {\r\n // istanbul ignore next\r\n try {\r\n const winSelection = ownerDoc.defaultView?.getSelection();\r\n winSelection?.removeAllRanges();\r\n } catch (_e) { }\r\n }\r\n}\r\n\r\nfunction getDefaultSize(defaultSize?: number | string, minSize?: string | number, maxSize?: string | number, draggedSize?: number) {\r\n // istanbul ignore next\r\n if (typeof draggedSize === \"number\") {\r\n const min = typeof minSize === \"number\" ? minSize : 0;\r\n const max =\r\n typeof maxSize === \"number\" && maxSize >= 0 ? maxSize : Infinity;\r\n return Math.max(min, Math.min(max, draggedSize));\r\n }\r\n if (defaultSize !== undefined) {\r\n return defaultSize;\r\n }\r\n return minSize;\r\n}\r\n\r\nfunction removeNullChildren(children: React.ReactNode[]) {\r\n return React.Children.toArray(children).filter((c) => c);\r\n}\r\n\r\n/**\r\n * Local TypeScript implementation of `SplitPane` from `react-split-pane` package since that\r\n * package is not regularly maintained.\r\n * See https://github.com/tomkp/react-split-pane/blob/master/LICENSE.\r\n * @public\r\n */\r\nexport function SplitPane(props: SplitPaneProps) {\r\n const { style, size, defaultSize, maxSize, children,\r\n paneStyle, pane1Style, pane2Style, className,\r\n paneClassName, pane1ClassName, pane2ClassName,\r\n onDragStarted, onDragFinished, step, onChange,\r\n onResizerClick, onResizerDoubleClick,\r\n } = props;\r\n\r\n // honor same defaults as react-split-pane\r\n const allowResize = React.useMemo(() => undefined !== props.allowResize ? props.allowResize : true, [props.allowResize]);\r\n const minSize = React.useMemo(() => undefined !== props.minSize ? props.minSize : 50, [props.minSize]);\r\n const primary = React.useMemo(() => undefined !== props.primary ? props.primary : \"first\", [props.primary]);\r\n const split = React.useMemo(() => undefined !== props.split ? props.split : \"vertical\", [props.split]);\r\n const initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize);\r\n\r\n const [position, setPosition] = React.useState(0);\r\n const [draggedSize, setDraggedSize] = React.useState<number | undefined>();\r\n const [active, setActive] = React.useState(false);\r\n const [pane1Size, setPane1Size] = React.useState(() => primary === \"first\" ? initialSize : undefined);\r\n const [pane2Size, setPane2Size] = React.useState(() => primary === \"second\" ? initialSize : undefined);\r\n const splitPane = React.useRef<HTMLDivElement>(null);\r\n const pane1 = React.useRef<HTMLDivElement>(null);\r\n const pane2 = React.useRef<HTMLDivElement>(null);\r\n const notNullChildren = React.useMemo(() => removeNullChildren(children), [children]);\r\n\r\n React.useEffect(() => {\r\n primary === \"first\" ? setPane1Size(initialSize) : setPane2Size(initialSize);\r\n primary === \"first\" ? setPane2Size(undefined) : setPane1Size(undefined);\r\n }, [initialSize, primary]);\r\n\r\n const splitPaneStyle = React.useMemo(() => {\r\n const directionSpecificParts = (split === \"vertical\") ? {\r\n flexDirection: \"row\",\r\n left: 0,\r\n right: 0,\r\n } : {\r\n bottom: 0,\r\n flexDirection: \"column\",\r\n minHeight: \"100%\",\r\n top: 0,\r\n width: \"100%\",\r\n };\r\n\r\n return {\r\n display: \"flex\",\r\n flex: 1,\r\n height: \"100%\",\r\n position: \"absolute\",\r\n outline: \"none\",\r\n overflow: \"hidden\",\r\n MozUserSelect: \"text\",\r\n WebkitUserSelect: \"text\",\r\n msUserSelect: \"text\",\r\n userSelect: \"text\",\r\n ...style,\r\n ...directionSpecificParts,\r\n } as React.CSSProperties;\r\n }, [split, style]);\r\n\r\n const pane1DivStyle = { ...paneStyle, ...pane1Style };\r\n const pane2DivStyle = { ...paneStyle, ...pane2Style };\r\n const resizerStyle = React.useMemo(() => props.resizerStyle ?? {}, [props.resizerStyle]);\r\n const resizerClasses = React.useMemo(() => classnames(\"Resizer\", !allowResize && \"disabled\"), [allowResize]);\r\n const splitPaneClasses = React.useMemo(() => classnames(\"SplitPane\", className, split, !allowResize && \"disabled\"), [className, split, allowResize]);\r\n const pane1Classes = React.useMemo(() => classnames(\"Pane1\", paneClassName, pane1ClassName), [paneClassName, pane1ClassName]);\r\n const pane2Classes = React.useMemo(() => classnames(\"Pane2\", paneClassName, pane2ClassName), [paneClassName, pane2ClassName]);\r\n\r\n const initializeDrag = React.useCallback((x: number, y: number) => {\r\n // istanbul ignore next\r\n unFocus(splitPane.current?.ownerDocument);\r\n const newPosition = split === \"vertical\" ? x : y;\r\n onDragStarted && onDragStarted();\r\n setActive(true);\r\n setPosition(newPosition);\r\n }, [onDragStarted, split]);\r\n\r\n const onTouchStart = React.useCallback((event: TouchEvent) => {\r\n // istanbul ignore else\r\n if (allowResize) {\r\n initializeDrag(event.touches[0].clientX, event.touches[0].clientY);\r\n }\r\n }, [allowResize, initializeDrag]);\r\n\r\n const processMove = React.useCallback((x: number, y: number) => {\r\n // istanbul ignore next\r\n unFocus(splitPane.current?.ownerDocument);\r\n const isPrimaryFirst = primary === \"first\";\r\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\r\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\r\n const splitPaneDiv = splitPane.current;\r\n\r\n // istanbul ignore else\r\n if (ref && ref2 && splitPaneDiv) {\r\n const node = ref;\r\n const node2 = ref2;\r\n // istanbul ignore else\r\n if (node.getBoundingClientRect) {\r\n const width = node.getBoundingClientRect().width;\r\n const height = node.getBoundingClientRect().height;\r\n // istanbul ignore next\r\n const current = split === \"vertical\" ? x : y;\r\n // istanbul ignore next\r\n const oldSize = split === \"vertical\" ? width : height;\r\n let positionDelta = position - current;\r\n if (step) {\r\n // istanbul ignore next\r\n if (Math.abs(positionDelta) < step) {\r\n return;\r\n }\r\n // Integer division\r\n // eslint-disable-next-line no-bitwise\r\n positionDelta = ~~(positionDelta / step) * step;\r\n }\r\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\r\n\r\n // istanbul ignore next\r\n const pane1Order = parseInt(node.ownerDocument?.defaultView?.getComputedStyle(node).order ?? \"0\", 10);\r\n // istanbul ignore next\r\n const pane2Order = parseInt(node2.ownerDocument?.defaultView?.getComputedStyle(node2).order ?? \"0\", 10);\r\n // istanbul ignore next\r\n if (pane1Order > pane2Order) {\r\n sizeDelta = -sizeDelta;\r\n }\r\n\r\n let newMaxSize = maxSize;\r\n // istanbul ignore next\r\n if (typeof maxSize === \"number\" && maxSize !== undefined && maxSize <= 0) {\r\n if (split === \"vertical\") {\r\n newMaxSize = splitPaneDiv.getBoundingClientRect().width + maxSize;\r\n } else {\r\n newMaxSize = splitPaneDiv.getBoundingClientRect().height + maxSize;\r\n }\r\n }\r\n\r\n let newSize = oldSize - sizeDelta;\r\n const newPosition = position - positionDelta;\r\n\r\n // istanbul ignore next\r\n if (typeof minSize === \"number\" && newSize < minSize) {\r\n newSize = minSize;\r\n } else if (typeof newMaxSize === \"number\" && newMaxSize !== undefined && newSize > newMaxSize) {\r\n newSize = newMaxSize;\r\n } else {\r\n setPosition(newPosition);\r\n }\r\n\r\n onChange && onChange(newSize);\r\n setDraggedSize(newSize);\r\n isPrimaryFirst ? setPane1Size(newSize) : setPane2Size(newSize);\r\n }\r\n }\r\n }, [maxSize, minSize, onChange, position, primary, split, step]);\r\n\r\n const onTouchMove = React.useCallback((event: TouchEvent) => {\r\n // istanbul ignore next\r\n if (!allowResize || !active)\r\n return;\r\n processMove(event.touches[0].clientX, event.touches[0].clientY);\r\n }, [active, allowResize, processMove]);\r\n\r\n const onMouseMove = React.useCallback((event: MouseEvent) => {\r\n if (!allowResize || !active)\r\n return;\r\n processMove(event.clientX, event.clientY);\r\n }, [active, allowResize, processMove]);\r\n\r\n const onMouseDown = React.useCallback((event: MouseEvent) => {\r\n // istanbul ignore else\r\n if (allowResize) {\r\n event.preventDefault();\r\n initializeDrag(event.clientX, event.clientY);\r\n }\r\n }, [allowResize, initializeDrag]);\r\n\r\n const processResizeFinished = React.useCallback(() => {\r\n // istanbul ignore else\r\n if (undefined !== draggedSize && allowResize && active) {\r\n onDragFinished && onDragFinished(draggedSize);\r\n }\r\n setActive(false);\r\n }, [draggedSize, allowResize, active, onDragFinished]);\r\n\r\n const onMouseUp = React.useCallback((event: MouseEvent) => {\r\n event.preventDefault();\r\n processResizeFinished();\r\n }, [processResizeFinished]);\r\n\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const ownerDoc = splitPane.current?.ownerDocument;\r\n // istanbul ignore next\r\n if (!ownerDoc)\r\n return;\r\n\r\n ownerDoc.addEventListener(\"mouseup\", onMouseUp);\r\n ownerDoc.addEventListener(\"mousemove\", onMouseMove);\r\n ownerDoc.addEventListener(\"touchmove\", onTouchMove);\r\n return () => {\r\n ownerDoc.removeEventListener(\"mouseup\", onMouseUp);\r\n ownerDoc.removeEventListener(\"mousemove\", onMouseMove);\r\n ownerDoc.removeEventListener(\"touchmove\", onTouchMove);\r\n };\r\n }, [onMouseMove, onMouseUp, onTouchMove]);\r\n\r\n return (\r\n <div\r\n className={splitPaneClasses}\r\n ref={splitPane}\r\n style={splitPaneStyle}\r\n >\r\n <Pane\r\n className={pane1Classes}\r\n key=\"pane1\"\r\n eleRef={pane1}\r\n size={pane1Size}\r\n split={split}\r\n style={pane1DivStyle}\r\n >\r\n {notNullChildren[0]}\r\n </Pane>\r\n <Resizer\r\n className={resizerClasses}\r\n onClick={onResizerClick}\r\n onDoubleClick={onResizerDoubleClick}\r\n onMouseDown={onMouseDown}\r\n onTouchStart={onTouchStart}\r\n onTouchEnd={processResizeFinished}\r\n key=\"resizer\"\r\n split={split}\r\n style={resizerStyle}\r\n />\r\n <Pane\r\n className={pane2Classes}\r\n key=\"pane2\"\r\n eleRef={pane2}\r\n size={pane2Size}\r\n split={split}\r\n style={pane2DivStyle}\r\n >\r\n {notNullChildren[1]}\r\n </Pane>\r\n </div>\r\n );\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CursorInformation.js","sourceRoot":"","sources":["../../../../src/appui-react/cursor/CursorInformation.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Cursor\n */\n\nimport { PointProps, RelativePosition, UiEvent } from \"@itwin/appui-abstract\";\nimport { Point } from \"@itwin/core-react\";\n\n/** Enum for Cursor Direction parts\n * @public\n */\nexport enum CursorDirectionParts {\n Top = 0x1000,\n Left = 0x0100,\n Right = 0x0010,\n Bottom = 0x0001,\n}\n\n/** Enum for Cursor Direction\n * @public\n */\nexport enum CursorDirection {\n None = 0,\n Top = CursorDirectionParts.Top,\n Left = CursorDirectionParts.Left,\n Right = CursorDirectionParts.Right,\n Bottom = CursorDirectionParts.Bottom,\n TopLeft = CursorDirectionParts.Top | CursorDirectionParts.Left,\n TopRight = CursorDirectionParts.Top | CursorDirectionParts.Right,\n BottomLeft = CursorDirectionParts.Bottom | CursorDirectionParts.Left,\n BottomRight = CursorDirectionParts.Bottom | CursorDirectionParts.Right,\n}\n\n/** Cursor Updated Event Args interface.\n * @public\n */\nexport interface CursorUpdatedEventArgs {\n oldPt: PointProps;\n newPt: PointProps;\n direction: CursorDirection;\n}\n\n/** Cursor Updated Event class.\n * @public\n */\nexport class CursorUpdatedEvent extends UiEvent<CursorUpdatedEventArgs> { }\n\n/** Cursor Information class\n * @public\n */\nexport class CursorInformation {\n private static _cursorPosition: Point = new Point();\n private static _cursorDirection: CursorDirection = CursorDirection.BottomRight;\n\n private static _cursorDirections = new Array<CursorDirection>();\n\n /** The cursor position. */\n public static get cursorPosition(): PointProps { return this._cursorPosition; }\n public static set cursorPosition(pt: PointProps) { this._cursorPosition = Point.create(pt); }\n\n /** Gets the cursor X position. */\n public static get cursorX(): number { return this._cursorPosition.x; }\n /** Gets the cursor Y position. */\n public static get cursorY(): number { return this._cursorPosition.y; }\n\n /** Gets the general cursor movement direction. */\n public static get cursorDirection(): CursorDirection { return this._cursorDirection; }\n\n /** Gets the [[CursorUpdatedEvent]]. */\n public static readonly onCursorUpdatedEvent = new CursorUpdatedEvent();\n\n /** Handles the mouse movement. Sets the cursor position and direction and emits onCursorUpdatedEvent. */\n public static handleMouseMove(point: PointProps): void {\n const oldPt = CursorInformation.cursorPosition;\n const direction = this._determineMostFrequentDirection(this._cursorDirections, this._cursorPosition, Point.create(point));\n\n this.cursorPosition = point;\n this._cursorDirection = direction;\n\n this.onCursorUpdatedEvent.emit({ oldPt, newPt: point, direction });\n }\n\n private static _determineMostFrequentDirection(cursorDirections: CursorDirection[], oldPt: Point, newPt: Point): CursorDirection {\n const cursorDirection = this._determineCursorDirection(oldPt, newPt);\n cursorDirections.push(cursorDirection);\n if (cursorDirections.length > 10)\n cursorDirections.shift();\n return this._mostFrequent(cursorDirections);\n }\n\n private static _mostFrequent(array: CursorDirection[]): CursorDirection {\n const hashMap = new Map<CursorDirection, number>();\n let maxCount = 0, mostFrequent = CursorDirection.None;\n\n array.forEach((value: CursorDirection) => {\n const key = value;\n let frequency = hashMap.get(key);\n\n if (frequency !== undefined)\n frequency++;\n else\n frequency = 1;\n\n hashMap.set(key, frequency);\n\n if (frequency > maxCount) {\n mostFrequent = key;\n maxCount = frequency;\n }\n });\n\n return mostFrequent;\n }\n\n private static _determineCursorDirection(oldPt: Point, newPt: Point): CursorDirection {\n let directionParts: number = 0;\n\n if (newPt.x < oldPt.x)\n directionParts |= CursorDirectionParts.Left;\n else if (newPt.x > oldPt.x)\n directionParts |= CursorDirectionParts.Right;\n\n if (newPt.y < oldPt.y)\n directionParts |= CursorDirectionParts.Top;\n else if (newPt.y > oldPt.y)\n directionParts |= CursorDirectionParts.Bottom;\n\n const direction = directionParts as CursorDirection;\n\n return direction;\n }\n\n /** Gets the relative position based on the cursor direction. */\n public static getRelativePositionFromCursorDirection(cursorDirection: CursorDirection): RelativePosition {\n let relativePosition: RelativePosition = RelativePosition.BottomRight;\n\n switch (cursorDirection) {\n case CursorDirection.Top:\n relativePosition = RelativePosition.Top;\n break;\n case CursorDirection.Left:\n relativePosition = RelativePosition.Left;\n break;\n case CursorDirection.Right:\n relativePosition = RelativePosition.Right;\n break;\n case CursorDirection.Bottom:\n relativePosition = RelativePosition.Bottom;\n break;\n case CursorDirection.TopLeft:\n relativePosition = RelativePosition.TopLeft;\n break;\n case CursorDirection.TopRight:\n relativePosition = RelativePosition.TopRight;\n break;\n case CursorDirection.BottomLeft:\n relativePosition = RelativePosition.BottomLeft;\n break;\n case CursorDirection.BottomRight:\n relativePosition = RelativePosition.BottomRight;\n break;\n }\n\n return relativePosition;\n }\n\n /** @internal - for testing */\n public static clearCursorDirections(): void {\n this._cursorDirections.length = 0;\n }\n}\n"]}
1
+ {"version":3,"file":"CursorInformation.js","sourceRoot":"","sources":["../../../../src/appui-react/cursor/CursorInformation.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport { PointProps, RelativePosition, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { Point } from \"@itwin/core-react\";\r\n\r\n/** Enum for Cursor Direction parts\r\n * @public\r\n */\r\nexport enum CursorDirectionParts {\r\n Top = 0x1000,\r\n Left = 0x0100,\r\n Right = 0x0010,\r\n Bottom = 0x0001,\r\n}\r\n\r\n/** Enum for Cursor Direction\r\n * @public\r\n */\r\nexport enum CursorDirection {\r\n None = 0,\r\n Top = CursorDirectionParts.Top,\r\n Left = CursorDirectionParts.Left,\r\n Right = CursorDirectionParts.Right,\r\n Bottom = CursorDirectionParts.Bottom,\r\n TopLeft = CursorDirectionParts.Top | CursorDirectionParts.Left,\r\n TopRight = CursorDirectionParts.Top | CursorDirectionParts.Right,\r\n BottomLeft = CursorDirectionParts.Bottom | CursorDirectionParts.Left,\r\n BottomRight = CursorDirectionParts.Bottom | CursorDirectionParts.Right,\r\n}\r\n\r\n/** Cursor Updated Event Args interface.\r\n * @public\r\n */\r\nexport interface CursorUpdatedEventArgs {\r\n oldPt: PointProps;\r\n newPt: PointProps;\r\n direction: CursorDirection;\r\n}\r\n\r\n/** Cursor Updated Event class.\r\n * @public\r\n */\r\nexport class CursorUpdatedEvent extends UiEvent<CursorUpdatedEventArgs> { }\r\n\r\n/** Cursor Information class\r\n * @public\r\n */\r\nexport class CursorInformation {\r\n private static _cursorPosition: Point = new Point();\r\n private static _cursorDirection: CursorDirection = CursorDirection.BottomRight;\r\n\r\n private static _cursorDirections = new Array<CursorDirection>();\r\n\r\n /** The cursor position. */\r\n public static get cursorPosition(): PointProps { return this._cursorPosition; }\r\n public static set cursorPosition(pt: PointProps) { this._cursorPosition = Point.create(pt); }\r\n\r\n /** Gets the cursor X position. */\r\n public static get cursorX(): number { return this._cursorPosition.x; }\r\n /** Gets the cursor Y position. */\r\n public static get cursorY(): number { return this._cursorPosition.y; }\r\n\r\n /** Gets the general cursor movement direction. */\r\n public static get cursorDirection(): CursorDirection { return this._cursorDirection; }\r\n\r\n /** Gets the [[CursorUpdatedEvent]]. */\r\n public static readonly onCursorUpdatedEvent = new CursorUpdatedEvent();\r\n\r\n /** Handles the mouse movement. Sets the cursor position and direction and emits onCursorUpdatedEvent. */\r\n public static handleMouseMove(point: PointProps): void {\r\n const oldPt = CursorInformation.cursorPosition;\r\n const direction = this._determineMostFrequentDirection(this._cursorDirections, this._cursorPosition, Point.create(point));\r\n\r\n this.cursorPosition = point;\r\n this._cursorDirection = direction;\r\n\r\n this.onCursorUpdatedEvent.emit({ oldPt, newPt: point, direction });\r\n }\r\n\r\n private static _determineMostFrequentDirection(cursorDirections: CursorDirection[], oldPt: Point, newPt: Point): CursorDirection {\r\n const cursorDirection = this._determineCursorDirection(oldPt, newPt);\r\n cursorDirections.push(cursorDirection);\r\n if (cursorDirections.length > 10)\r\n cursorDirections.shift();\r\n return this._mostFrequent(cursorDirections);\r\n }\r\n\r\n private static _mostFrequent(array: CursorDirection[]): CursorDirection {\r\n const hashMap = new Map<CursorDirection, number>();\r\n let maxCount = 0, mostFrequent = CursorDirection.None;\r\n\r\n array.forEach((value: CursorDirection) => {\r\n const key = value;\r\n let frequency = hashMap.get(key);\r\n\r\n if (frequency !== undefined)\r\n frequency++;\r\n else\r\n frequency = 1;\r\n\r\n hashMap.set(key, frequency);\r\n\r\n if (frequency > maxCount) {\r\n mostFrequent = key;\r\n maxCount = frequency;\r\n }\r\n });\r\n\r\n return mostFrequent;\r\n }\r\n\r\n private static _determineCursorDirection(oldPt: Point, newPt: Point): CursorDirection {\r\n let directionParts: number = 0;\r\n\r\n if (newPt.x < oldPt.x)\r\n directionParts |= CursorDirectionParts.Left;\r\n else if (newPt.x > oldPt.x)\r\n directionParts |= CursorDirectionParts.Right;\r\n\r\n if (newPt.y < oldPt.y)\r\n directionParts |= CursorDirectionParts.Top;\r\n else if (newPt.y > oldPt.y)\r\n directionParts |= CursorDirectionParts.Bottom;\r\n\r\n const direction = directionParts as CursorDirection;\r\n\r\n return direction;\r\n }\r\n\r\n /** Gets the relative position based on the cursor direction. */\r\n public static getRelativePositionFromCursorDirection(cursorDirection: CursorDirection): RelativePosition {\r\n let relativePosition: RelativePosition = RelativePosition.BottomRight;\r\n\r\n switch (cursorDirection) {\r\n case CursorDirection.Top:\r\n relativePosition = RelativePosition.Top;\r\n break;\r\n case CursorDirection.Left:\r\n relativePosition = RelativePosition.Left;\r\n break;\r\n case CursorDirection.Right:\r\n relativePosition = RelativePosition.Right;\r\n break;\r\n case CursorDirection.Bottom:\r\n relativePosition = RelativePosition.Bottom;\r\n break;\r\n case CursorDirection.TopLeft:\r\n relativePosition = RelativePosition.TopLeft;\r\n break;\r\n case CursorDirection.TopRight:\r\n relativePosition = RelativePosition.TopRight;\r\n break;\r\n case CursorDirection.BottomLeft:\r\n relativePosition = RelativePosition.BottomLeft;\r\n break;\r\n case CursorDirection.BottomRight:\r\n relativePosition = RelativePosition.BottomRight;\r\n break;\r\n }\r\n\r\n return relativePosition;\r\n }\r\n\r\n /** @internal - for testing */\r\n public static clearCursorDirections(): void {\r\n this._cursorDirections.length = 0;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CursorMenu.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Cursor\n */\n\nimport * as React from \"react\";\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\nimport { CommonProps, GlobalContextMenu } from \"@itwin/core-react\"; // ContextSubMenu,\nimport { SessionStateActionId } from \"../../redux/SessionState\";\nimport { MenuItemHelpers, MenuItemProps } from \"../../shared/MenuItem\";\nimport { SyncUiEventDispatcher } from \"../../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { Logger } from \"@itwin/core-bentley\";\n\n/** State for [[CursorPopupMenu]] component\n * @alpha\n */\ninterface CursorPopupMenuState {\n menuX: number;\n menuY: number;\n menuVisible: boolean;\n items?: MenuItemProps[];\n}\n\n/** Popup Menu to show at cursor typically used by tools to provide a right-click context menu.\n * @alpha\n */\n// istanbul ignore next\nexport class CursorPopupMenu extends React.PureComponent<CommonProps, CursorPopupMenuState> {\n private _componentUnmounting = false; // used to ensure _handleSyncUiEvent callback is not processed after componentWillUnmount is called\n private _hostChildWindowId?: string;\n\n /** @internal */\n public override readonly state: CursorPopupMenuState = {\n menuX: 0,\n menuY: 0,\n menuVisible: false,\n items: undefined,\n };\n\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n /* istanbul ignore next */\n if (this._componentUnmounting)\n return;\n\n /* istanbul ignore else */\n if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [SessionStateActionId.UpdateCursorMenu])) {\n const menuData = UiFramework.getCursorMenuData();\n if (menuData && this._hostChildWindowId === menuData.childWindowId) {\n this.setState({ menuVisible: menuData.items && menuData.items.length > 0, items: menuData.items, menuX: menuData.position.x, menuY: menuData.position.y });\n } else {\n this.setState({ menuVisible: false, items: undefined });\n }\n }\n };\n\n public override componentDidMount() {\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\n }\n\n public override componentWillUnmount() {\n this._componentUnmounting = true;\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\n }\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;\n // if the window is not a pop out set to undefined\n this._hostChildWindowId = UiFramework.childWindows.findId(parentWindow);\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `Cursor Menu for ${this._hostChildWindowId ?? \"main\"} window`);\n };\n\n public override render(): React.ReactNode {\n const { menuX, menuY, items, menuVisible } = this.state;\n const onClose = this._hideContextMenu;\n\n return (\n <div className=\"uifw-cursor-menu-container-div\" ref={this._handleRefSet}>\n {items && items.length > 0 && menuVisible &&\n <GlobalContextMenu\n className={this.props.className}\n style={this.props.style}\n identifier=\"cursor-popup-menu\"\n x={menuX}\n y={menuY}\n opened={menuVisible}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n >\n {MenuItemHelpers.createMenuItemNodes(MenuItemHelpers.createMenuItems(items, this._itemPicked))}\n </GlobalContextMenu>\n }\n </div>\n );\n }\n\n private _hideContextMenu = () => {\n this.setState({ menuVisible: false });\n };\n\n private _itemPicked = (): void => {\n this._hideContextMenu();\n };\n}\n"]}
1
+ {"version":3,"file":"CursorMenu.js","sourceRoot":"","sources":["../../../../../src/appui-react/cursor/cursormenu/CursorMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Cursor\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, GlobalContextMenu } from \"@itwin/core-react\"; // ContextSubMenu,\r\nimport { SessionStateActionId } from \"../../redux/SessionState\";\r\nimport { MenuItemHelpers, MenuItemProps } from \"../../shared/MenuItem\";\r\nimport { SyncUiEventDispatcher } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\n\r\n/** State for [[CursorPopupMenu]] component\r\n * @alpha\r\n */\r\ninterface CursorPopupMenuState {\r\n menuX: number;\r\n menuY: number;\r\n menuVisible: boolean;\r\n items?: MenuItemProps[];\r\n}\r\n\r\n/** Popup Menu to show at cursor typically used by tools to provide a right-click context menu.\r\n * @alpha\r\n */\r\n// istanbul ignore next\r\nexport class CursorPopupMenu extends React.PureComponent<CommonProps, CursorPopupMenuState> {\r\n private _componentUnmounting = false; // used to ensure _handleSyncUiEvent callback is not processed after componentWillUnmount is called\r\n private _hostChildWindowId?: string;\r\n\r\n /** @internal */\r\n public override readonly state: CursorPopupMenuState = {\r\n menuX: 0,\r\n menuY: 0,\r\n menuVisible: false,\r\n items: undefined,\r\n };\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n /* istanbul ignore next */\r\n if (this._componentUnmounting)\r\n return;\r\n\r\n /* istanbul ignore else */\r\n if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [SessionStateActionId.UpdateCursorMenu])) {\r\n const menuData = UiFramework.getCursorMenuData();\r\n if (menuData && this._hostChildWindowId === menuData.childWindowId) {\r\n this.setState({ menuVisible: menuData.items && menuData.items.length > 0, items: menuData.items, menuX: menuData.position.x, menuY: menuData.position.y });\r\n } else {\r\n this.setState({ menuVisible: false, items: undefined });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n }\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n const parentWindow = popupDiv?.ownerDocument.defaultView ?? undefined;\r\n // if the window is not a pop out set to undefined\r\n this._hostChildWindowId = UiFramework.childWindows.findId(parentWindow);\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `Cursor Menu for ${this._hostChildWindowId ?? \"main\"} window`);\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const { menuX, menuY, items, menuVisible } = this.state;\r\n const onClose = this._hideContextMenu;\r\n\r\n return (\r\n <div className=\"uifw-cursor-menu-container-div\" ref={this._handleRefSet}>\r\n {items && items.length > 0 && menuVisible &&\r\n <GlobalContextMenu\r\n className={this.props.className}\r\n style={this.props.style}\r\n identifier=\"cursor-popup-menu\"\r\n x={menuX}\r\n y={menuY}\r\n opened={menuVisible}\r\n onEsc={onClose}\r\n onOutsideClick={onClose}\r\n edgeLimit={false}\r\n autoflip={true}\r\n >\r\n {MenuItemHelpers.createMenuItemNodes(MenuItemHelpers.createMenuItems(items, this._itemPicked))}\r\n </GlobalContextMenu>\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n private _hideContextMenu = () => {\r\n this.setState({ menuVisible: false });\r\n };\r\n\r\n private _itemPicked = (): void => {\r\n this._hideContextMenu();\r\n };\r\n}\r\n"]}