@itwin/appui-react 4.13.2 → 4.13.3

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 (584) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/lib/cjs/appui-react/UiFramework.js +1 -1
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  5. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/Calculator.js +1 -1
  11. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/CalculatorEngine.js +2 -2
  13. package/lib/cjs/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +1 -1
  15. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  17. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  18. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  19. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +1 -1
  20. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  21. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -1
  22. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  23. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  24. package/lib/cjs/appui-react/childwindow/ChildWindowWidget.js.map +1 -1
  25. package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
  26. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  27. package/lib/cjs/appui-react/configurableui/ActivityTracker.js.map +1 -1
  28. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js +1 -1
  29. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  30. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  31. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  32. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  33. package/lib/cjs/appui-react/configurableui/state.js +1 -1
  34. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  35. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  36. package/lib/cjs/appui-react/content/ContentGroup.js +1 -1
  37. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  38. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  39. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  40. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  41. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  42. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -1
  43. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  44. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  45. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  46. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
  47. package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -1
  48. package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
  49. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -1
  50. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -1
  51. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  52. package/lib/cjs/appui-react/cursor/CursorInformation.js +3 -3
  53. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  54. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  55. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +2 -2
  56. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  57. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js +1 -1
  58. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  59. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  60. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  61. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +1 -1
  62. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  63. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js +1 -1
  64. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  65. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js +1 -1
  66. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  67. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js +1 -1
  68. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  69. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  70. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  71. package/lib/cjs/appui-react/feedback/ElementTooltip.js +1 -1
  72. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  73. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +1 -1
  74. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  75. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  76. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +1 -1
  77. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  78. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +1 -1
  79. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  80. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +1 -1
  81. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  82. package/lib/cjs/appui-react/frontstage/StageUsage.js +1 -1
  83. package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
  84. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  85. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  86. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  87. package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -1
  88. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  89. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  90. package/lib/cjs/appui-react/hooks/useTranslation.js.map +1 -1
  91. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js +1 -1
  92. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  93. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  94. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
  95. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  96. package/lib/cjs/appui-react/keyins/Keyins.js +1 -1
  97. package/lib/cjs/appui-react/keyins/Keyins.js.map +1 -1
  98. package/lib/cjs/appui-react/layout/backstage/Backstage.js +1 -1
  99. package/lib/cjs/appui-react/layout/backstage/Backstage.js.map +1 -1
  100. package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
  101. package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
  102. package/lib/cjs/appui-react/layout/base/SafeAreaInsets.js +1 -1
  103. package/lib/cjs/appui-react/layout/base/SafeAreaInsets.js.map +1 -1
  104. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  105. package/lib/cjs/appui-react/layout/footer/Indicator.js +1 -1
  106. package/lib/cjs/appui-react/layout/footer/Indicator.js.map +1 -1
  107. package/lib/cjs/appui-react/layout/outline/PanelOutline.js.map +1 -1
  108. package/lib/cjs/appui-react/layout/popup/Tooltip.js +1 -1
  109. package/lib/cjs/appui-react/layout/popup/Tooltip.js.map +1 -1
  110. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  111. package/lib/cjs/appui-react/layout/state/TabLocation.js.map +1 -1
  112. package/lib/cjs/appui-react/layout/state/WidgetLocation.js.map +1 -1
  113. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  114. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  115. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  116. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  117. package/lib/cjs/appui-react/layout/target/PanelTargets.js.map +1 -1
  118. package/lib/cjs/appui-react/layout/target/SectionTarget.js.map +1 -1
  119. package/lib/cjs/appui-react/layout/target/useAllowedSideTarget.js.map +1 -1
  120. package/lib/cjs/appui-react/layout/target/useAllowedWidgetTarget.js.map +1 -1
  121. package/lib/cjs/appui-react/layout/tool-settings/Docked.js.map +1 -1
  122. package/lib/cjs/appui-react/layout/widget/Buttons.js.map +1 -1
  123. package/lib/cjs/appui-react/layout/widget/ContentManager.js.map +1 -1
  124. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  125. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  126. package/lib/cjs/appui-react/layout/widget/Overflow.js.map +1 -1
  127. package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
  128. package/lib/cjs/appui-react/layout/widget/SendBack.js.map +1 -1
  129. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  130. package/lib/cjs/appui-react/layout/widget/TabBar.js.map +1 -1
  131. package/lib/cjs/appui-react/layout/widget/Tabs.js.map +1 -1
  132. package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
  133. package/lib/cjs/appui-react/layout/widget/tools/button/Button.js.map +1 -1
  134. package/lib/cjs/appui-react/layout/widget-panels/Expander.js.map +1 -1
  135. package/lib/cjs/appui-react/layout/widget-panels/Grip.js.map +1 -1
  136. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  137. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  138. package/lib/cjs/appui-react/layout/widget-panels/usePanelsAutoCollapse.js.map +1 -1
  139. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  140. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  141. package/lib/cjs/appui-react/messages/MessageManager.js +1 -1
  142. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  143. package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -1
  144. package/lib/cjs/appui-react/messages/Pointer.js +1 -1
  145. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  146. package/lib/cjs/appui-react/messages/StatusMessageManager.js.map +1 -1
  147. package/lib/cjs/appui-react/messages/getToastCategory.js.map +1 -1
  148. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js +1 -1
  149. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  150. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js +1 -1
  151. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  152. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +1 -1
  153. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  154. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +1 -1
  155. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  156. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -1
  157. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  158. package/lib/cjs/appui-react/pickers/ListPicker.js +1 -1
  159. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  160. package/lib/cjs/appui-react/pickers/ViewSelector.js +1 -1
  161. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  162. package/lib/cjs/appui-react/popup/CardPopup.js +1 -1
  163. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  164. package/lib/cjs/appui-react/popup/ComponentPopup.js.map +1 -1
  165. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  166. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  167. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  168. package/lib/cjs/appui-react/popup/PopupManager.js +2 -2
  169. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  170. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  171. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  172. package/lib/cjs/appui-react/popup/ToolbarPopup.js +1 -1
  173. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  174. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  175. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -1
  176. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  177. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js.map +1 -1
  178. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js.map +1 -1
  179. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js.map +1 -1
  180. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -1
  181. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js.map +1 -1
  182. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js.map +1 -1
  183. package/lib/cjs/appui-react/preview/reparent-popout-widgets/usePopoutsStore.js.map +1 -1
  184. package/lib/cjs/appui-react/preview/reparent-popout-widgets/useReparentPopoutWidget.js.map +1 -1
  185. package/lib/cjs/appui-react/preview/widget-action-dropdown/Button.js.map +1 -1
  186. package/lib/cjs/appui-react/redux/ReducerRegistry.js.map +1 -1
  187. package/lib/cjs/appui-react/redux/SessionState.js +2 -2
  188. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  189. package/lib/cjs/appui-react/redux/StateManager.js +1 -1
  190. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  191. package/lib/cjs/appui-react/redux/connectIModel.js +3 -3
  192. package/lib/cjs/appui-react/redux/connectIModel.js.map +1 -1
  193. package/lib/cjs/appui-react/safearea/SafeAreaInsets.js +1 -1
  194. package/lib/cjs/appui-react/safearea/SafeAreaInsets.js.map +1 -1
  195. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +3 -3
  196. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  197. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  198. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  199. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  200. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  201. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js +1 -1
  202. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  203. package/lib/cjs/appui-react/shared/CommandItemDef.js +1 -1
  204. package/lib/cjs/appui-react/shared/CommandItemDef.js.map +1 -1
  205. package/lib/cjs/appui-react/shared/CustomItemDef.js +1 -1
  206. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  207. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  208. package/lib/cjs/appui-react/shared/SelectionScope.js +1 -1
  209. package/lib/cjs/appui-react/shared/SelectionScope.js.map +1 -1
  210. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  211. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  212. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js +1 -1
  213. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  214. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js +1 -1
  215. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  216. package/lib/cjs/appui-react/stagepanels/StagePanelState.js +1 -1
  217. package/lib/cjs/appui-react/stagepanels/StagePanelState.js.map +1 -1
  218. package/lib/cjs/appui-react/statusbar/Field.js +2 -4
  219. package/lib/cjs/appui-react/statusbar/Field.js.map +1 -1
  220. package/lib/cjs/appui-react/statusbar/StatusBar.js +1 -1
  221. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  222. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  223. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +3 -3
  224. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  225. package/lib/cjs/appui-react/statusbar/StatusBarItem.js +2 -2
  226. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  227. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js +1 -1
  228. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  229. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  230. package/lib/cjs/appui-react/statusbar/dialog/Dialog.js +1 -1
  231. package/lib/cjs/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  232. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  233. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  234. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  235. package/lib/cjs/appui-react/statusfields/SelectionCount.js.map +1 -1
  236. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  237. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  238. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  239. package/lib/cjs/appui-react/statusfields/message-center/MessageCenterField.js.map +1 -1
  240. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  241. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  242. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  243. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -1
  244. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  245. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  246. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -1
  247. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  248. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  249. package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js +1 -1
  250. package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  251. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  252. package/lib/cjs/appui-react/toolbar/GroupItem.js +1 -1
  253. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  254. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  255. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  256. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  257. package/lib/cjs/appui-react/toolbar/ToolbarItem.js +2 -2
  258. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  259. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js +1 -1
  260. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  261. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  262. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  263. package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.js.map +1 -1
  264. package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.js.map +1 -1
  265. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  266. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  267. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  268. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +1 -1
  269. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  270. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +1 -1
  271. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  272. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +2 -2
  273. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  274. package/lib/cjs/appui-react/tools/ToolSettingsTools.js +2 -2
  275. package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
  276. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  277. package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js +1 -1
  278. package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  279. package/lib/cjs/appui-react/toolsettings/ToolInformation.js.map +1 -1
  280. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  281. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  282. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  283. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  284. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  285. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +1 -1
  286. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  287. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  288. package/lib/cjs/appui-react/uistate/AppUiSettings.js +1 -1
  289. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  290. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +2 -2
  291. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  292. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  293. package/lib/cjs/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  294. package/lib/cjs/appui-react/utils/matchesWords.js.map +1 -1
  295. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  296. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  297. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  298. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  299. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  300. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  301. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  302. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js +1 -1
  303. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  304. package/lib/cjs/appui-react/widgets/WidgetDef.js +2 -2
  305. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  306. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  307. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  308. package/lib/cjs/appui-react/widgets/WidgetState.js +1 -1
  309. package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
  310. package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
  311. package/lib/esm/appui-react/UiFramework.js +1 -2
  312. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  313. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  314. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  315. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +1 -2
  316. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  317. package/lib/esm/appui-react/accudraw/AccuDrawWidget.js +1 -2
  318. package/lib/esm/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  319. package/lib/esm/appui-react/accudraw/Calculator.js +1 -2
  320. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  321. package/lib/esm/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  322. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +1 -2
  323. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  324. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  325. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  326. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  327. package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -1
  328. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  329. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  330. package/lib/esm/appui-react/childwindow/ChildWindowWidget.js.map +1 -1
  331. package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
  332. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  333. package/lib/esm/appui-react/configurableui/ActivityTracker.js.map +1 -1
  334. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -2
  335. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  336. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  337. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  338. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  339. package/lib/esm/appui-react/content/ContentGroup.js +1 -2
  340. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  341. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  342. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  343. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  344. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  345. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  346. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  347. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -2
  348. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  349. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
  350. package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -1
  351. package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
  352. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -1
  353. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -1
  354. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  355. package/lib/esm/appui-react/cursor/CursorInformation.js +1 -2
  356. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  357. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  358. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +1 -2
  359. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  360. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +1 -2
  361. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  362. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  363. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  364. package/lib/esm/appui-react/dialog/DialogManagerBase.js +1 -2
  365. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  366. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js +1 -2
  367. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  368. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js +1 -2
  369. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  370. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js +1 -2
  371. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  372. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  373. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  374. package/lib/esm/appui-react/feedback/ElementTooltip.js +1 -2
  375. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  376. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  377. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  378. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +1 -2
  379. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  380. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +1 -2
  381. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  382. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +1 -2
  383. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  384. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  385. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  386. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  387. package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -1
  388. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  389. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  390. package/lib/esm/appui-react/hooks/useTranslation.js.map +1 -1
  391. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js +1 -2
  392. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  393. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  394. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -2
  395. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  396. package/lib/esm/appui-react/keyins/Keyins.js.map +1 -1
  397. package/lib/esm/appui-react/layout/backstage/Backstage.js +1 -2
  398. package/lib/esm/appui-react/layout/backstage/Backstage.js.map +1 -1
  399. package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
  400. package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
  401. package/lib/esm/appui-react/layout/base/SafeAreaInsets.js +1 -2
  402. package/lib/esm/appui-react/layout/base/SafeAreaInsets.js.map +1 -1
  403. package/lib/esm/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  404. package/lib/esm/appui-react/layout/footer/Indicator.js +1 -1
  405. package/lib/esm/appui-react/layout/footer/Indicator.js.map +1 -1
  406. package/lib/esm/appui-react/layout/outline/PanelOutline.js.map +1 -1
  407. package/lib/esm/appui-react/layout/popup/Tooltip.js +1 -2
  408. package/lib/esm/appui-react/layout/popup/Tooltip.js.map +1 -1
  409. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  410. package/lib/esm/appui-react/layout/state/TabLocation.js.map +1 -1
  411. package/lib/esm/appui-react/layout/state/WidgetLocation.js.map +1 -1
  412. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  413. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  414. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  415. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  416. package/lib/esm/appui-react/layout/target/PanelTargets.js.map +1 -1
  417. package/lib/esm/appui-react/layout/target/SectionTarget.js.map +1 -1
  418. package/lib/esm/appui-react/layout/target/useAllowedSideTarget.js.map +1 -1
  419. package/lib/esm/appui-react/layout/target/useAllowedWidgetTarget.js.map +1 -1
  420. package/lib/esm/appui-react/layout/tool-settings/Docked.js.map +1 -1
  421. package/lib/esm/appui-react/layout/widget/Buttons.js.map +1 -1
  422. package/lib/esm/appui-react/layout/widget/ContentManager.js.map +1 -1
  423. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  424. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  425. package/lib/esm/appui-react/layout/widget/Overflow.js.map +1 -1
  426. package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
  427. package/lib/esm/appui-react/layout/widget/SendBack.js.map +1 -1
  428. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  429. package/lib/esm/appui-react/layout/widget/TabBar.js.map +1 -1
  430. package/lib/esm/appui-react/layout/widget/Tabs.js.map +1 -1
  431. package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
  432. package/lib/esm/appui-react/layout/widget/tools/button/Button.js.map +1 -1
  433. package/lib/esm/appui-react/layout/widget-panels/Expander.js.map +1 -1
  434. package/lib/esm/appui-react/layout/widget-panels/Grip.js.map +1 -1
  435. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  436. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  437. package/lib/esm/appui-react/layout/widget-panels/usePanelsAutoCollapse.js.map +1 -1
  438. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  439. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  440. package/lib/esm/appui-react/messages/MessageManager.js +1 -2
  441. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  442. package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -1
  443. package/lib/esm/appui-react/messages/Pointer.js +1 -2
  444. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  445. package/lib/esm/appui-react/messages/StatusMessageManager.js.map +1 -1
  446. package/lib/esm/appui-react/messages/getToastCategory.js.map +1 -1
  447. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js +1 -2
  448. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  449. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js +1 -2
  450. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  451. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +1 -2
  452. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  453. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +1 -2
  454. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  455. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  456. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  457. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  458. package/lib/esm/appui-react/pickers/ViewSelector.js +1 -2
  459. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  460. package/lib/esm/appui-react/popup/CardPopup.js +1 -2
  461. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  462. package/lib/esm/appui-react/popup/ComponentPopup.js.map +1 -1
  463. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  464. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  465. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  466. package/lib/esm/appui-react/popup/PopupManager.js +2 -4
  467. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  468. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  469. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  470. package/lib/esm/appui-react/popup/ToolbarPopup.js +1 -2
  471. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  472. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  473. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -1
  474. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  475. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js.map +1 -1
  476. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js.map +1 -1
  477. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js.map +1 -1
  478. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -1
  479. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js.map +1 -1
  480. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js.map +1 -1
  481. package/lib/esm/appui-react/preview/reparent-popout-widgets/usePopoutsStore.js.map +1 -1
  482. package/lib/esm/appui-react/preview/reparent-popout-widgets/useReparentPopoutWidget.js.map +1 -1
  483. package/lib/esm/appui-react/preview/widget-action-dropdown/Button.js.map +1 -1
  484. package/lib/esm/appui-react/redux/ReducerRegistry.js.map +1 -1
  485. package/lib/esm/appui-react/redux/SessionState.js +1 -1
  486. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  487. package/lib/esm/appui-react/redux/StateManager.js +1 -2
  488. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  489. package/lib/esm/appui-react/redux/connectIModel.js +3 -3
  490. package/lib/esm/appui-react/redux/connectIModel.js.map +1 -1
  491. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +2 -4
  492. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  493. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  494. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  495. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  496. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  497. package/lib/esm/appui-react/shared/ActionButtonItemDef.js +1 -2
  498. package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  499. package/lib/esm/appui-react/shared/CommandItemDef.js +1 -2
  500. package/lib/esm/appui-react/shared/CommandItemDef.js.map +1 -1
  501. package/lib/esm/appui-react/shared/CustomItemDef.js +1 -2
  502. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  503. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  504. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  505. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  506. package/lib/esm/appui-react/statusbar/Field.js +2 -4
  507. package/lib/esm/appui-react/statusbar/Field.js.map +1 -1
  508. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  509. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +3 -3
  510. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  511. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  512. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  513. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  514. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  515. package/lib/esm/appui-react/statusfields/SelectionCount.js.map +1 -1
  516. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  517. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  518. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  519. package/lib/esm/appui-react/statusfields/message-center/MessageCenterField.js.map +1 -1
  520. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  521. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -2
  522. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  523. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -1
  524. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +1 -2
  525. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  526. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  527. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  528. package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js +1 -1
  529. package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  530. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  531. package/lib/esm/appui-react/toolbar/GroupItem.js +1 -2
  532. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  533. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  534. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  535. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  536. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  537. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  538. package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.js.map +1 -1
  539. package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.js.map +1 -1
  540. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  541. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  542. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  543. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +1 -2
  544. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  545. package/lib/esm/appui-react/tools/OpenSettingsTool.js +1 -2
  546. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  547. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +2 -4
  548. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  549. package/lib/esm/appui-react/tools/ToolSettingsTools.js +2 -4
  550. package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
  551. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  552. package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js +1 -2
  553. package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  554. package/lib/esm/appui-react/toolsettings/ToolInformation.js.map +1 -1
  555. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  556. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  557. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  558. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  559. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  560. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +1 -2
  561. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  562. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  563. package/lib/esm/appui-react/uistate/AppUiSettings.js +1 -2
  564. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  565. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +2 -4
  566. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  567. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  568. package/lib/esm/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  569. package/lib/esm/appui-react/utils/matchesWords.js.map +1 -1
  570. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  571. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  572. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  573. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  574. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  575. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  576. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  577. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js +1 -2
  578. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  579. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -2
  580. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  581. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  582. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  583. package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
  584. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"StageUsage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StageUsage.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,mCAAqB,CAAA;AACvB,CAAC,EAPW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAOrB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Item\n */\n\n/** Standard stage uses. Allows extension to target ui item to include on a stage without\n * knowing the stage name defined in the host application.\n * @public\n */\nexport enum StageUsage {\n Private = \"Private\",\n General = \"General\",\n Redline = \"Redline\",\n ViewOnly = \"ViewOnly\",\n Edit = \"Edit\",\n Settings = \"Settings\",\n}\n"]}
1
+ {"version":3,"file":"StageUsage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StageUsage.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,mCAAqB,CAAA;AACvB,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Item\n */\n\n/** Standard stage uses. Allows extension to target ui item to include on a stage without\n * knowing the stage name defined in the host application.\n * @public\n */\nexport enum StageUsage {\n Private = \"Private\",\n General = \"General\",\n Redline = \"Redline\",\n ViewOnly = \"ViewOnly\",\n Edit = \"Edit\",\n Settings = \"Settings\",\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveIModelConnection.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveIModelConnection.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA4C;AAE5C,wDAA6D;AAC7D,2EAAwE;AACxE,gDAA6C;AAG7C;;;;GAIG;AACH,SAAgB,yBAAyB;IACvC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EACtD,yBAAW,CAAC,mBAAmB,EAAE,CAClC,CAAC;IACF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,mDAAmD;QACnD,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,MAAM,QAAQ,GAAG,CAAC,mCAAoB,CAAC,mBAAmB,CAAC,CAAC;YAC5D,uBAAuB;YACvB,IACE,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACvC,EACD;gBACA,mBAAmB,CAAC,yBAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC;aACxD;QACH,CAAC,CAAC;QAEF,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACnE,OAAO,GAAG,EAAE;YACV,6CAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACxE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAzBD,8DAyBC","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 Hooks\n */\n\nimport { useEffect, useState } from \"react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n/** React hook that maintains the active IModelConnection. For this hook to work properly the\n * IModelConnection must be set using UiFramework.setIModelConnection method. This also requires\n * that the host app includes the UiFramework reducer into its Redux store.\n * @public\n */\nexport function useActiveIModelConnection(): IModelConnection | undefined {\n const [activeConnection, setActiveConnection] = useState(\n UiFramework.getIModelConnection()\n );\n useEffect(() => {\n // eslint-disable-next-line deprecation/deprecation\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n const eventIds = [SessionStateActionId.SetIModelConnection];\n // istanbul ignore else\n if (\n eventIds.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n setActiveConnection(UiFramework.getIModelConnection());\n }\n };\n\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n return () => {\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\n };\n }, [activeConnection]);\n\n return activeConnection;\n}\n"]}
1
+ {"version":3,"file":"useActiveIModelConnection.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveIModelConnection.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA4C;AAE5C,wDAA6D;AAC7D,2EAAwE;AACxE,gDAA6C;AAG7C;;;;GAIG;AACH,SAAgB,yBAAyB;IACvC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EACtD,yBAAW,CAAC,mBAAmB,EAAE,CAClC,CAAC;IACF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,mDAAmD;QACnD,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,MAAM,QAAQ,GAAG,CAAC,mCAAoB,CAAC,mBAAmB,CAAC,CAAC;YAC5D,uBAAuB;YACvB,IACE,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACvC,EACD,CAAC;gBACD,mBAAmB,CAAC,yBAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC;QAEF,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACnE,OAAO,GAAG,EAAE;YACV,6CAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACxE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAzBD,8DAyBC","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 Hooks\n */\n\nimport { useEffect, useState } from \"react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n/** React hook that maintains the active IModelConnection. For this hook to work properly the\n * IModelConnection must be set using UiFramework.setIModelConnection method. This also requires\n * that the host app includes the UiFramework reducer into its Redux store.\n * @public\n */\nexport function useActiveIModelConnection(): IModelConnection | undefined {\n const [activeConnection, setActiveConnection] = useState(\n UiFramework.getIModelConnection()\n );\n useEffect(() => {\n // eslint-disable-next-line deprecation/deprecation\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n const eventIds = [SessionStateActionId.SetIModelConnection];\n // istanbul ignore else\n if (\n eventIds.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n setActiveConnection(UiFramework.getIModelConnection());\n }\n };\n\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n return () => {\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\n };\n }, [activeConnection]);\n\n return activeConnection;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA4C;AAE5C,wDAAiD;AAEjD,2EAGyC;AACzC,gDAA6C;AAG7C;;GAEG;AACH,uBAAuB;AACvB,SAAgB,iBAAiB;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAClD,yBAAS,CAAC,WAAW,CAAC,YAAY,CACnC,CAAC;IACF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,mDAAmD;QACnD,MAAM,sBAAsB,GAAG,CAAC,KAAoC,EAAE,EAAE;YACtE,iBAAiB,CAAC,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,oGAAoG;QACpG,6GAA6G;QAC7G,sEAAsE;QACtE,yBAAW,CAAC,OAAO,CAAC,2BAA2B,CAAC,WAAW,CACzD,sBAAsB,CACvB,CAAC;QACF,OAAO,GAAG,EAAE;YACV,yBAAW,CAAC,OAAO,CAAC,2BAA2B,CAAC,cAAc,CAC5D,sBAAsB,CACvB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,iBAAiB,GAAG;YACxB,qCAAa,CAAC,oBAAoB;YAClC,qCAAa,CAAC,uBAAuB;YACrC,qCAAa,CAAC,eAAe;SAC9B,CAAC;QACF,mDAAmD;QACnD,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,uBAAuB;YACvB,IACE,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CACzB,EACD;gBACA,MAAM,oBAAoB,GACxB,yBAAW,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;gBAChD,iBAAiB,CACf,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CACtD,CAAC;aACH;QACH,CAAC,CAAC;QAEF,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,cAAc,CAAC;AACxB,CAAC;AAjDD,8CAiDC","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 Hooks\n */\n\nimport { useEffect, useState } from \"react\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n/** React hook that maintains the active viewport.\n * @public\n */\n// istanbul ignore next\nexport function useActiveViewport(): ScreenViewport | undefined {\n const [activeViewport, setActiveViewport] = useState(\n IModelApp.viewManager.selectedView\n );\n useEffect(() => {\n // eslint-disable-next-line deprecation/deprecation\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\n setActiveViewport(IModelApp.viewManager.selectedView);\n };\n\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\n // are loaded and when the IModelApp.viewManager.selectedView changes.\n UiFramework.content.onActiveContentChangedEvent.addListener(\n onActiveContentChanged\n );\n return () => {\n UiFramework.content.onActiveContentChangedEvent.removeListener(\n onActiveContentChanged\n );\n };\n }, []);\n\n useEffect(() => {\n const syncIdsOfInterest = [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ContentControlActivated,\n SyncUiEventId.FrontstageReady,\n ];\n // eslint-disable-next-line deprecation/deprecation\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n setActiveViewport(\n activeContentControl && activeContentControl.viewport\n );\n }\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, []);\n\n return activeViewport;\n}\n"]}
1
+ {"version":3,"file":"useActiveViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA4C;AAE5C,wDAAiD;AAEjD,2EAGyC;AACzC,gDAA6C;AAG7C;;GAEG;AACH,uBAAuB;AACvB,SAAgB,iBAAiB;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAClD,yBAAS,CAAC,WAAW,CAAC,YAAY,CACnC,CAAC;IACF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,mDAAmD;QACnD,MAAM,sBAAsB,GAAG,CAAC,KAAoC,EAAE,EAAE;YACtE,iBAAiB,CAAC,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,oGAAoG;QACpG,6GAA6G;QAC7G,sEAAsE;QACtE,yBAAW,CAAC,OAAO,CAAC,2BAA2B,CAAC,WAAW,CACzD,sBAAsB,CACvB,CAAC;QACF,OAAO,GAAG,EAAE;YACV,yBAAW,CAAC,OAAO,CAAC,2BAA2B,CAAC,cAAc,CAC5D,sBAAsB,CACvB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,iBAAiB,GAAG;YACxB,qCAAa,CAAC,oBAAoB;YAClC,qCAAa,CAAC,uBAAuB;YACrC,qCAAa,CAAC,eAAe;SAC9B,CAAC;QACF,mDAAmD;QACnD,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,uBAAuB;YACvB,IACE,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CACzB,EACD,CAAC;gBACD,MAAM,oBAAoB,GACxB,yBAAW,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;gBAChD,iBAAiB,CACf,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CACtD,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,cAAc,CAAC;AACxB,CAAC;AAjDD,8CAiDC","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 Hooks\n */\n\nimport { useEffect, useState } from \"react\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { ActiveContentChangedEventArgs } from \"../framework/FrameworkContent\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n/** React hook that maintains the active viewport.\n * @public\n */\n// istanbul ignore next\nexport function useActiveViewport(): ScreenViewport | undefined {\n const [activeViewport, setActiveViewport] = useState(\n IModelApp.viewManager.selectedView\n );\n useEffect(() => {\n // eslint-disable-next-line deprecation/deprecation\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\n setActiveViewport(IModelApp.viewManager.selectedView);\n };\n\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\n // so use UiFramework.content.onActiveContentChangedEvent which will always trigger once all stage components\n // are loaded and when the IModelApp.viewManager.selectedView changes.\n UiFramework.content.onActiveContentChangedEvent.addListener(\n onActiveContentChanged\n );\n return () => {\n UiFramework.content.onActiveContentChangedEvent.removeListener(\n onActiveContentChanged\n );\n };\n }, []);\n\n useEffect(() => {\n const syncIdsOfInterest = [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ContentControlActivated,\n SyncUiEventId.FrontstageReady,\n ];\n // eslint-disable-next-line deprecation/deprecation\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n setActiveViewport(\n activeContentControl && activeContentControl.viewport\n );\n }\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, []);\n\n return activeViewport;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useAnalysisAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useAnalysisAnimationDataProvider.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 Hooks\n */\n\nimport * as React from \"react\";\nimport { AnalysisAnimationTimelineDataProvider } from \"../timeline/AnalysisAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsAnalysisAnimation(viewport: Viewport | undefined) {\n const [supportsAnalysisAnimation, setSupportsAnalysisAnimation] =\n React.useState(!!viewport?.view?.analysisStyle);\n\n React.useEffect(() => {\n setSupportsAnalysisAnimation(!!viewport?.view?.analysisStyle);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasAnalysisData = !!vp?.view?.analysisStyle;\n if (hasAnalysisData !== supportsAnalysisAnimation)\n setSupportsAnalysisAnimation(hasAnalysisData);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsAnalysisAnimation, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasAnalysisData = !!vp?.view?.analysisStyle;\n if (hasAnalysisData !== supportsAnalysisAnimation)\n setSupportsAnalysisAnimation(hasAnalysisData);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsAnalysisAnimation]);\n return supportsAnalysisAnimation;\n}\n\n/** Hook that returns either a AnalysisAnimationTimelineDataProvider or undefined based on if the supplied viewport contains analysis data.\n * @public\n **/\n// istanbul ignore next\nexport function useAnalysisAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsAnalysisAnimation = useSupportsAnalysisAnimation(viewport);\n const [\n analysisAnimationTimelineDataProvider,\n setAnalysisAnimationTimelineDataProvider,\n ] = React.useState<AnalysisAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: AnalysisAnimationTimelineDataProvider | undefined =\n new AnalysisAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setAnalysisAnimationTimelineDataProvider(newProvider);\n }\n if (supportsAnalysisAnimation && viewport)\n void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setAnalysisAnimationTimelineDataProvider(undefined);\n }, [supportsAnalysisAnimation, viewport]);\n\n return analysisAnimationTimelineDataProvider;\n}\n"]}
1
+ {"version":3,"file":"useAnalysisAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useAnalysisAnimationDataProvider.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 Hooks\n */\n\nimport * as React from \"react\";\nimport { AnalysisAnimationTimelineDataProvider } from \"../timeline/AnalysisAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsAnalysisAnimation(viewport: Viewport | undefined) {\n const [supportsAnalysisAnimation, setSupportsAnalysisAnimation] =\n React.useState(!!viewport?.view?.analysisStyle);\n\n React.useEffect(() => {\n setSupportsAnalysisAnimation(!!viewport?.view?.analysisStyle);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasAnalysisData = !!vp?.view?.analysisStyle;\n if (hasAnalysisData !== supportsAnalysisAnimation)\n setSupportsAnalysisAnimation(hasAnalysisData);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsAnalysisAnimation, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasAnalysisData = !!vp?.view?.analysisStyle;\n if (hasAnalysisData !== supportsAnalysisAnimation)\n setSupportsAnalysisAnimation(hasAnalysisData);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsAnalysisAnimation]);\n return supportsAnalysisAnimation;\n}\n\n/** Hook that returns either a AnalysisAnimationTimelineDataProvider or undefined based on if the supplied viewport contains analysis data.\n * @public\n **/\n// istanbul ignore next\nexport function useAnalysisAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsAnalysisAnimation = useSupportsAnalysisAnimation(viewport);\n const [\n analysisAnimationTimelineDataProvider,\n setAnalysisAnimationTimelineDataProvider,\n ] = React.useState<AnalysisAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: AnalysisAnimationTimelineDataProvider | undefined =\n new AnalysisAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setAnalysisAnimationTimelineDataProvider(newProvider);\n }\n if (supportsAnalysisAnimation && viewport)\n void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setAnalysisAnimationTimelineDataProvider(undefined);\n }, [supportsAnalysisAnimation, viewport]);\n\n return analysisAnimationTimelineDataProvider;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,uDAAoE;AACpE,2EAAwE;AAYxE,iCAAiC;AACjC,SAAS,kBAAkB,CACzB,eAAmC;IAEnC,OAAO,CACL,OAAO,eAAe,KAAK,QAAQ;QACnC,eAAe;QACf,cAAc,IAAI,eAAe;QACjC,SAAS,IAAI,eAAe;QAC5B,OAAO,IAAI,eAAe,CAC3B,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAgB,mBAAmB,CAAI,eAAmC;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,aAAyB,EAAE,EAAE;QAC5B,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE;YACvC,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CACpD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9D,OAAO;gBACT,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC1B,aAAa,EAAE,CAAC;YAClB,CAAC,CACF,CAAC;SACH;QACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,kBAAkB,CAAC,eAAe,CAAC;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC;QACtE,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,IAAA,2BAAoB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAtBD,kDAsBC","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 Utilities\n */\n\nimport * as React from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Define a common interface for conditionals. */\ninterface ConditionalValue<T> {\n syncEventIds: string[];\n refresh: () => void;\n value: T;\n}\n\n/** Type that is usually used in a conditional prop. */\ntype ConditionalProp<T> = ConditionalValue<T> | T | undefined;\n\n/** Duck type the conditional. */\nfunction isConditionalValue<T>(\n conditionalProp: ConditionalProp<T>\n): conditionalProp is ConditionalValue<T> {\n return (\n typeof conditionalProp === \"object\" &&\n conditionalProp &&\n \"syncEventIds\" in conditionalProp &&\n \"refresh\" in conditionalProp &&\n \"value\" in conditionalProp\n );\n}\n\n/** @internal */\nexport function useConditionalValue<T>(conditionalProp: ConditionalProp<T>) {\n const subscribe = React.useCallback(\n (onStoreChange: () => void) => {\n if (isConditionalValue(conditionalProp)) {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(\n ({ eventIds }) => {\n if (!conditionalProp.syncEventIds.some((id) => eventIds.has(id)))\n return;\n conditionalProp.refresh();\n onStoreChange();\n }\n );\n }\n return () => {};\n },\n [conditionalProp]\n );\n const getSnapshot = React.useCallback(() => {\n if (isConditionalValue(conditionalProp)) return conditionalProp.value;\n return conditionalProp;\n }, [conditionalProp]);\n return useSyncExternalStore(subscribe, getSnapshot);\n}\n"]}
1
+ {"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,uDAAoE;AACpE,2EAAwE;AAYxE,iCAAiC;AACjC,SAAS,kBAAkB,CACzB,eAAmC;IAEnC,OAAO,CACL,OAAO,eAAe,KAAK,QAAQ;QACnC,eAAe;QACf,cAAc,IAAI,eAAe;QACjC,SAAS,IAAI,eAAe;QAC5B,OAAO,IAAI,eAAe,CAC3B,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAgB,mBAAmB,CAAI,eAAmC;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,aAAyB,EAAE,EAAE;QAC5B,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CACpD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9D,OAAO;gBACT,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC1B,aAAa,EAAE,CAAC;YAClB,CAAC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,kBAAkB,CAAC,eAAe,CAAC;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC;QACtE,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,IAAA,2BAAoB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAtBD,kDAsBC","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 Utilities\n */\n\nimport * as React from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Define a common interface for conditionals. */\ninterface ConditionalValue<T> {\n syncEventIds: string[];\n refresh: () => void;\n value: T;\n}\n\n/** Type that is usually used in a conditional prop. */\ntype ConditionalProp<T> = ConditionalValue<T> | T | undefined;\n\n/** Duck type the conditional. */\nfunction isConditionalValue<T>(\n conditionalProp: ConditionalProp<T>\n): conditionalProp is ConditionalValue<T> {\n return (\n typeof conditionalProp === \"object\" &&\n conditionalProp &&\n \"syncEventIds\" in conditionalProp &&\n \"refresh\" in conditionalProp &&\n \"value\" in conditionalProp\n );\n}\n\n/** @internal */\nexport function useConditionalValue<T>(conditionalProp: ConditionalProp<T>) {\n const subscribe = React.useCallback(\n (onStoreChange: () => void) => {\n if (isConditionalValue(conditionalProp)) {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(\n ({ eventIds }) => {\n if (!conditionalProp.syncEventIds.some((id) => eventIds.has(id)))\n return;\n conditionalProp.refresh();\n onStoreChange();\n }\n );\n }\n return () => {};\n },\n [conditionalProp]\n );\n const getSnapshot = React.useCallback(() => {\n if (isConditionalValue(conditionalProp)) return conditionalProp.value;\n return conditionalProp;\n }, [conditionalProp]);\n return useSyncExternalStore(subscribe, getSnapshot);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useEscapeSetFocusToHome.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useEscapeSetFocusToHome.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,6CAAkC;AAClC,gDAA6C;AAE7C;;GAEG;AACH,SAAgB,sBAAsB,CAAC,CAAsB;IAC3D,uBAAuB;IACvB,IAAI,CAAC,CAAC,GAAG,KAAK,iBAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;QAClC,yBAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;KAChD;AACH,CAAC;AALD,wDAKC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,OAAO,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAFD,0DAEC","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 Hooks\n */\n\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Keyboard Event handler to set focus to Home on Escape key\n * @internal\n */\nexport function onEscapeSetFocusToHome(e: React.KeyboardEvent): void {\n // istanbul ignore else\n if (e.key === Key.Escape.valueOf()) {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }\n}\n\n/** useCallback Hook for Keyboard Event handler to set focus to Home on Escape key\n * @internal\n */\nexport function useEscapeSetFocusToHome() {\n return React.useCallback(onEscapeSetFocusToHome, []);\n}\n"]}
1
+ {"version":3,"file":"useEscapeSetFocusToHome.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useEscapeSetFocusToHome.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,6CAAkC;AAClC,gDAA6C;AAE7C;;GAEG;AACH,SAAgB,sBAAsB,CAAC,CAAsB;IAC3D,uBAAuB;IACvB,IAAI,CAAC,CAAC,GAAG,KAAK,iBAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACnC,yBAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC;AACH,CAAC;AALD,wDAKC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,OAAO,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAFD,0DAEC","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 Hooks\n */\n\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Keyboard Event handler to set focus to Home on Escape key\n * @internal\n */\nexport function onEscapeSetFocusToHome(e: React.KeyboardEvent): void {\n // istanbul ignore else\n if (e.key === Key.Escape.valueOf()) {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }\n}\n\n/** useCallback Hook for Keyboard Event handler to set focus to Home on Escape key\n * @internal\n */\nexport function useEscapeSetFocusToHome() {\n return React.useCallback(onEscapeSetFocusToHome, []);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useScheduleAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useScheduleAnimationDataProvider.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 Hooks\n */\n\nimport * as React from \"react\";\nimport { ScheduleAnimationTimelineDataProvider } from \"../timeline/ScheduleAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsScheduleScript(viewport: Viewport | undefined) {\n const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(\n !!viewport?.view?.scheduleScript\n );\n\n React.useEffect(() => {\n setSupportsScheduleScript(!!viewport?.view?.scheduleScript);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsScheduleScript, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsScheduleScript]);\n return supportsScheduleScript;\n}\n\n/** Hook that returns either a ScheduleAnimationTimelineDataProvider or undefined based on if the supplied viewport contains schedule script.\n * @public\n **/\n// istanbul ignore next\nexport function useScheduleAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsScheduleScript = useSupportsScheduleScript(viewport);\n const [\n scheduleAnimationTimelineDataProvider,\n setScheduleAnimationTimelineDataProvider,\n ] = React.useState<ScheduleAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: ScheduleAnimationTimelineDataProvider | undefined =\n new ScheduleAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(newProvider);\n }\n if (supportsScheduleScript && viewport) void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(undefined);\n }, [supportsScheduleScript, viewport]);\n\n return scheduleAnimationTimelineDataProvider;\n}\n"]}
1
+ {"version":3,"file":"useScheduleAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useScheduleAnimationDataProvider.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 Hooks\n */\n\nimport * as React from \"react\";\nimport { ScheduleAnimationTimelineDataProvider } from \"../timeline/ScheduleAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsScheduleScript(viewport: Viewport | undefined) {\n const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(\n !!viewport?.view?.scheduleScript\n );\n\n React.useEffect(() => {\n setSupportsScheduleScript(!!viewport?.view?.scheduleScript);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsScheduleScript, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsScheduleScript]);\n return supportsScheduleScript;\n}\n\n/** Hook that returns either a ScheduleAnimationTimelineDataProvider or undefined based on if the supplied viewport contains schedule script.\n * @public\n **/\n// istanbul ignore next\nexport function useScheduleAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsScheduleScript = useSupportsScheduleScript(viewport);\n const [\n scheduleAnimationTimelineDataProvider,\n setScheduleAnimationTimelineDataProvider,\n ] = React.useState<ScheduleAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: ScheduleAnimationTimelineDataProvider | undefined =\n new ScheduleAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(newProvider);\n }\n if (supportsScheduleScript && viewport) void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(undefined);\n }, [supportsScheduleScript, viewport]);\n\n return scheduleAnimationTimelineDataProvider;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useTranslation.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useTranslation.tsx"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG,gDAAgD;AAChD,+BAA+B;AAC/B,kDAA0D;AAC1D,gDAA6C;AAE7C;;GAEG;AACH,SAAgB,cAAc;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAW,EAAE,EAAE;QACjD,IAAI,CAAC,yBAAW,CAAC,WAAW,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,yBAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,IAAA,kCAAqB,EAAC;QAC3B,SAAS,EAAE,yBAAW,CAAC,qBAAqB;QAC5C,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAZD,wCAYC","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 *--------------------------------------------------------------------------------------------*/\nimport * as defaults from \"../UiFramework.json\";\nimport * as React from \"react\";\nimport { usePackageTranslation } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Returns a translation function.\n * @internal\n */\nexport function useTranslation() {\n const fallback = React.useCallback((key: string) => {\n if (!UiFramework.initialized) {\n return undefined;\n }\n return UiFramework.translate(key);\n }, []);\n return usePackageTranslation({\n namespace: UiFramework.localizationNamespace,\n fallback,\n defaults,\n });\n}\n"]}
1
+ {"version":3,"file":"useTranslation.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useTranslation.tsx"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG,gDAAgD;AAChD,+BAA+B;AAC/B,kDAA0D;AAC1D,gDAA6C;AAE7C;;GAEG;AACH,SAAgB,cAAc;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAW,EAAE,EAAE;QACjD,IAAI,CAAC,yBAAW,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,yBAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,IAAA,kCAAqB,EAAC;QAC3B,SAAS,EAAE,yBAAW,CAAC,qBAAqB;QAC5C,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAZD,wCAYC","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 *--------------------------------------------------------------------------------------------*/\nimport * as defaults from \"../UiFramework.json\";\nimport * as React from \"react\";\nimport { usePackageTranslation } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Returns a translation function.\n * @internal\n */\nexport function useTranslation() {\n const fallback = React.useCallback((key: string) => {\n if (!UiFramework.initialized) {\n return undefined;\n }\n return UiFramework.translate(key);\n }, []);\n return usePackageTranslation({\n namespace: UiFramework.localizationNamespace,\n fallback,\n defaults,\n });\n}\n"]}
@@ -89,6 +89,7 @@ class InternalKeyboardShortcutManager {
89
89
  return CursorInformation_1.CursorInformation.cursorY;
90
90
  }
91
91
  }
92
+ exports.InternalKeyboardShortcutManager = InternalKeyboardShortcutManager;
92
93
  InternalKeyboardShortcutManager._shortcuts = new KeyboardShortcut_1.KeyboardShortcutContainer();
93
94
  // eslint-disable-next-line deprecation/deprecation
94
95
  InternalKeyboardShortcutManager._handleSyncUiEvent = (args) => {
@@ -113,5 +114,4 @@ InternalKeyboardShortcutManager._traverseShortcuts = (shortcuts, callback) => {
113
114
  }
114
115
  });
115
116
  };
116
- exports.InternalKeyboardShortcutManager = InternalKeyboardShortcutManager;
117
117
  //# sourceMappingURL=InternalKeyboardShortcut.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InternalKeyboardShortcut.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/InternalKeyboardShortcut.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 KeyboardShortcut\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { CursorInformation } from \"../cursor/CursorInformation\";\nimport type { KeyboardShortcutProps } from \"../framework/FrameworkKeyboardShortcuts\";\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu\";\nimport {\n KeyboardShortcut,\n KeyboardShortcutContainer,\n} from \"./KeyboardShortcut\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\ntype OnShortcutFunc = (shortcut: KeyboardShortcut) => void;\n\n/** Keyboard Shortcut Manager\n * @internal\n */\nexport class InternalKeyboardShortcutManager {\n private static _shortcuts: KeyboardShortcutContainer =\n new KeyboardShortcutContainer();\n\n /** Initialize the Keyboard Shortcut manager\n * @internal\n */\n public static initialize(): void {\n SyncUiEventDispatcher.onSyncUiEvent.addListener(\n InternalKeyboardShortcutManager._handleSyncUiEvent\n );\n }\n\n /** Loads Keyboard Shortcuts into the managed list */\n public static loadShortcuts(shortcutList: KeyboardShortcutProps[]) {\n shortcutList.forEach((shortcutProps: KeyboardShortcutProps) => {\n this.loadShortcut(shortcutProps);\n });\n }\n\n /** Loads a Keyboard Shortcut into the managed list */\n public static loadShortcut(shortcutProps: KeyboardShortcutProps) {\n const shortcut = new KeyboardShortcut(shortcutProps);\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\n }\n\n /** Processes a keystroke and invokes a matching Keyboard Shortcut */\n public static processKey(\n keyboardKey: string,\n isAltKeyPressed: boolean = false,\n isCtrlKeyPressed: boolean = false,\n isShiftKeyPressed: boolean = false\n ): boolean {\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(\n keyboardKey,\n isAltKeyPressed,\n isCtrlKeyPressed,\n isShiftKeyPressed\n );\n\n const shortcut = this.getShortcut(keyMapKey);\n if (shortcut) {\n shortcut.itemPicked();\n return true;\n }\n\n return false;\n }\n\n /** Returns the managed list of Keyboard Shortcuts */\n public static get shortcutContainer(): KeyboardShortcutContainer {\n return this._shortcuts;\n }\n\n /** Returns a Keyboard Shortcut from the managed lists */\n public static getShortcut(keyMapKey: string): KeyboardShortcut | undefined {\n return this._shortcuts.findKey(keyMapKey);\n }\n\n /** Determines if focus is set to Home */\n public static get isFocusOnHome(): boolean {\n const element = document.activeElement as HTMLElement;\n return element && element === document.body;\n }\n\n /** Sets focus to Home */\n public static setFocusToHome(): void {\n const element = document.activeElement as HTMLElement;\n if (element && element !== document.body) {\n element.blur();\n document.body.focus();\n }\n }\n\n /** Displays the Keyboard Shortcuts menu at the cursor */\n public static displayMenu(): void {\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\n this._shortcuts.showShortcutsMenu();\n }\n }\n\n /** Closes the Keyboard Shortcuts menu */\n public static closeMenu(): void {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\n menuVisible: false,\n menuX: 0,\n menuY: 0,\n shortcuts: undefined,\n });\n }\n\n /** Returns the cursor X position, which is mouseEvent.pageX. */\n public static get cursorX(): number {\n return CursorInformation.cursorX;\n }\n /** Returns the cursor Y position, which is mouseEvent.pageY. */\n public static get cursorY(): number {\n return CursorInformation.cursorY;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n private static _handleSyncUiEvent = (args: UiSyncEventArgs) => {\n const updateBooleanValue = (booleanValue: ConditionalBooleanValue) => {\n if (\n SyncUiEventDispatcher.hasEventOfInterest(\n args.eventIds,\n booleanValue.syncEventIds\n )\n )\n booleanValue.refresh();\n };\n const handleForSyncIds = (shortcut: KeyboardShortcut) => {\n if (shortcut.isDisabled instanceof ConditionalBooleanValue)\n updateBooleanValue(shortcut.isDisabled);\n if (shortcut.isHidden instanceof ConditionalBooleanValue)\n updateBooleanValue(shortcut.isHidden);\n };\n\n InternalKeyboardShortcutManager._traverseShortcuts(\n InternalKeyboardShortcutManager._shortcuts.getAvailableKeyboardShortcuts(),\n handleForSyncIds\n );\n };\n\n private static _traverseShortcuts = (\n shortcuts: KeyboardShortcut[],\n callback: OnShortcutFunc\n ) => {\n shortcuts.forEach((shortcut: KeyboardShortcut) => {\n callback(shortcut);\n\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\n const childShortcuts =\n shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\n InternalKeyboardShortcutManager._traverseShortcuts(\n childShortcuts,\n callback\n );\n }\n });\n };\n}\n"]}
1
+ {"version":3,"file":"InternalKeyboardShortcut.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/InternalKeyboardShortcut.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 KeyboardShortcut\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { CursorInformation } from \"../cursor/CursorInformation\";\nimport type { KeyboardShortcutProps } from \"../framework/FrameworkKeyboardShortcuts\";\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu\";\nimport {\n KeyboardShortcut,\n KeyboardShortcutContainer,\n} from \"./KeyboardShortcut\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\ntype OnShortcutFunc = (shortcut: KeyboardShortcut) => void;\n\n/** Keyboard Shortcut Manager\n * @internal\n */\nexport class InternalKeyboardShortcutManager {\n private static _shortcuts: KeyboardShortcutContainer =\n new KeyboardShortcutContainer();\n\n /** Initialize the Keyboard Shortcut manager\n * @internal\n */\n public static initialize(): void {\n SyncUiEventDispatcher.onSyncUiEvent.addListener(\n InternalKeyboardShortcutManager._handleSyncUiEvent\n );\n }\n\n /** Loads Keyboard Shortcuts into the managed list */\n public static loadShortcuts(shortcutList: KeyboardShortcutProps[]) {\n shortcutList.forEach((shortcutProps: KeyboardShortcutProps) => {\n this.loadShortcut(shortcutProps);\n });\n }\n\n /** Loads a Keyboard Shortcut into the managed list */\n public static loadShortcut(shortcutProps: KeyboardShortcutProps) {\n const shortcut = new KeyboardShortcut(shortcutProps);\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\n }\n\n /** Processes a keystroke and invokes a matching Keyboard Shortcut */\n public static processKey(\n keyboardKey: string,\n isAltKeyPressed: boolean = false,\n isCtrlKeyPressed: boolean = false,\n isShiftKeyPressed: boolean = false\n ): boolean {\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(\n keyboardKey,\n isAltKeyPressed,\n isCtrlKeyPressed,\n isShiftKeyPressed\n );\n\n const shortcut = this.getShortcut(keyMapKey);\n if (shortcut) {\n shortcut.itemPicked();\n return true;\n }\n\n return false;\n }\n\n /** Returns the managed list of Keyboard Shortcuts */\n public static get shortcutContainer(): KeyboardShortcutContainer {\n return this._shortcuts;\n }\n\n /** Returns a Keyboard Shortcut from the managed lists */\n public static getShortcut(keyMapKey: string): KeyboardShortcut | undefined {\n return this._shortcuts.findKey(keyMapKey);\n }\n\n /** Determines if focus is set to Home */\n public static get isFocusOnHome(): boolean {\n const element = document.activeElement as HTMLElement;\n return element && element === document.body;\n }\n\n /** Sets focus to Home */\n public static setFocusToHome(): void {\n const element = document.activeElement as HTMLElement;\n if (element && element !== document.body) {\n element.blur();\n document.body.focus();\n }\n }\n\n /** Displays the Keyboard Shortcuts menu at the cursor */\n public static displayMenu(): void {\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\n this._shortcuts.showShortcutsMenu();\n }\n }\n\n /** Closes the Keyboard Shortcuts menu */\n public static closeMenu(): void {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\n menuVisible: false,\n menuX: 0,\n menuY: 0,\n shortcuts: undefined,\n });\n }\n\n /** Returns the cursor X position, which is mouseEvent.pageX. */\n public static get cursorX(): number {\n return CursorInformation.cursorX;\n }\n /** Returns the cursor Y position, which is mouseEvent.pageY. */\n public static get cursorY(): number {\n return CursorInformation.cursorY;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n private static _handleSyncUiEvent = (args: UiSyncEventArgs) => {\n const updateBooleanValue = (booleanValue: ConditionalBooleanValue) => {\n if (\n SyncUiEventDispatcher.hasEventOfInterest(\n args.eventIds,\n booleanValue.syncEventIds\n )\n )\n booleanValue.refresh();\n };\n const handleForSyncIds = (shortcut: KeyboardShortcut) => {\n if (shortcut.isDisabled instanceof ConditionalBooleanValue)\n updateBooleanValue(shortcut.isDisabled);\n if (shortcut.isHidden instanceof ConditionalBooleanValue)\n updateBooleanValue(shortcut.isHidden);\n };\n\n InternalKeyboardShortcutManager._traverseShortcuts(\n InternalKeyboardShortcutManager._shortcuts.getAvailableKeyboardShortcuts(),\n handleForSyncIds\n );\n };\n\n private static _traverseShortcuts = (\n shortcuts: KeyboardShortcut[],\n callback: OnShortcutFunc\n ) => {\n shortcuts.forEach((shortcut: KeyboardShortcut) => {\n callback(shortcut);\n\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\n const childShortcuts =\n shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\n InternalKeyboardShortcutManager._traverseShortcuts(\n childShortcuts,\n callback\n );\n }\n });\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcut.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.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 KeyboardShortcut\n */\n\nimport { UiError } from \"@itwin/appui-abstract\";\nimport type { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\nimport type { KeyboardShortcutProps } from \"../framework/FrameworkKeyboardShortcuts\";\nimport { UiFramework } from \"../UiFramework\";\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu\";\n\nenum FunctionKey {\n F1 = \"F1\",\n F2 = \"F2\",\n F3 = \"F3\",\n F4 = \"F4\",\n F5 = \"F5\",\n F6 = \"F6\",\n F7 = \"F7\",\n F8 = \"F8\",\n F9 = \"F9\",\n F10 = \"F10\",\n F11 = \"F11\",\n F12 = \"F12\",\n}\n\nenum SpecialKey {\n Home = \"Home\",\n End = \"End\",\n PageUp = \"PageUp\",\n PageDown = \"PageDown\",\n Escape = \"Escape\",\n Delete = \"Delete\",\n Insert = \"Insert\",\n Tab = \"Tab\",\n ArrowLeft = \"ArrowLeft\",\n ArrowRight = \"ArrowRight\",\n ArrowUp = \"ArrowUp\",\n ArrowDown = \"ArrowDown\",\n Enter = \"Enter\",\n Return = \"Enter\", // eslint-disable-line @typescript-eslint/no-duplicate-enum-values\n Space = \" \",\n Backspace = \"Backspace\",\n Clear = \"Clear\",\n Divide = \"Divide\",\n Multiply = \"Multiply\",\n Subtract = \"Subtract\",\n Add = \"Add\",\n Decimal = \"Decimal\",\n}\n\n/** Keyboard Shortcut used to execute an action\n * @public\n */\nexport class KeyboardShortcut extends ItemDefBase {\n private _key: string;\n private _item?: ActionButtonItemDef;\n private _shortcuts: KeyboardShortcutContainer;\n\n private _isAltKeyRequired: boolean = false;\n private _isCtrlKeyRequired: boolean = false;\n private _isShiftKeyRequired: boolean = false;\n private _isFunctionKey: boolean = false;\n private _isSpecialKey: boolean = false;\n\n constructor(props: KeyboardShortcutProps) {\n super(props);\n\n this._key = props.key;\n\n if (this._key in FunctionKey) this._isFunctionKey = true;\n if (this._key in SpecialKey) this._isSpecialKey = true;\n\n this._shortcuts = new KeyboardShortcutContainer();\n\n if (props.item) {\n this._item = props.item;\n\n // Copy over icon, label & tooltip from the item\n if (!this.iconSpec) this.iconSpec = this._item.iconSpec;\n if (!this.label) this.setLabel(this._item.label);\n if (!this.tooltip) this.setTooltip(this._item.tooltip);\n if (this.isDisabled === undefined)\n this.isDisabled = this._item.isDisabled;\n if (this.isHidden === undefined) this.isHidden = this._item.isHidden;\n } else if (props.shortcuts) {\n props.shortcuts.forEach((childProps: KeyboardShortcutProps) => {\n const shortcut = new KeyboardShortcut(childProps);\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\n });\n } else {\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n `Either 'item' or 'shortcuts' must be specified for '${props.key}' key.`\n );\n }\n\n if (props.isAltKeyRequired !== undefined)\n this._isAltKeyRequired = props.isAltKeyRequired;\n if (props.isCtrlKeyRequired !== undefined)\n this._isCtrlKeyRequired = props.isCtrlKeyRequired;\n if (props.isShiftKeyRequired !== undefined)\n this._isShiftKeyRequired = props.isShiftKeyRequired;\n }\n\n /** Returns the id for this shortcut */\n public get id(): string {\n return this.keyMapKey;\n }\n\n /** Returns the shortcut container */\n public get shortcutContainer(): KeyboardShortcutContainer {\n return this._shortcuts;\n }\n\n /** Finds a shortcut with a given key in the shortcut's container */\n public getShortcut(mapKey: string): KeyboardShortcut | undefined {\n return this._shortcuts.findKey(mapKey);\n }\n\n /** Returns the shortcut's key map key used as the id */\n public get keyMapKey(): string {\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(\n this.key,\n this._isAltKeyRequired,\n this._isCtrlKeyRequired,\n this._isShiftKeyRequired\n );\n return keyMapKey;\n }\n\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\n public get item(): ActionButtonItemDef | undefined {\n return this._item;\n }\n\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\n public itemPicked(): void {\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\n this._shortcuts.showShortcutsMenu();\n } else {\n setTimeout(() => {\n // istanbul ignore else\n if (this._item) this._item.execute();\n });\n }\n }\n\n /** Gets the keyboard key */\n public get key(): string {\n return this._key;\n }\n /** Gets whether the Alt key required. */\n public get isAltKeyRequired(): boolean {\n return this._isAltKeyRequired;\n }\n /** Gets whether the Ctrl key required. */\n public get isCtrlKeyRequired(): boolean {\n return this._isCtrlKeyRequired;\n }\n /** Gets whether the Shift key required. */\n public get isShiftKeyRequired(): boolean {\n return this._isShiftKeyRequired;\n }\n /** Gets whether this is a Function key. */\n public get isFunctionKey(): boolean {\n return this._isFunctionKey;\n }\n /** Gets whether this is a Special key. */\n public get isSpecialKey(): boolean {\n return this._isSpecialKey;\n }\n}\n\n/** Keyboard Shortcut Container\n * @public\n */\nexport class KeyboardShortcutContainer {\n private _keyMap: Map<string, KeyboardShortcut> = new Map<\n string,\n KeyboardShortcut\n >();\n private _keyArray: KeyboardShortcut[] = new Array<KeyboardShortcut>();\n\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\n public registerKey(\n keyMapKey: string,\n inShortcut: KeyboardShortcut\n ): KeyboardShortcut | undefined {\n let shortcut: KeyboardShortcut | undefined;\n\n if ((shortcut = this.findKey(keyMapKey)) === undefined) {\n shortcut = inShortcut;\n this._keyArray.push(shortcut);\n } else {\n const index = this._keyArray.findIndex((value: KeyboardShortcut) => {\n return value.keyMapKey === keyMapKey;\n });\n // istanbul ignore else\n if (index >= 0) {\n shortcut = inShortcut;\n this._keyArray[index] = shortcut;\n }\n }\n\n // istanbul ignore else\n if (shortcut) this._keyMap.set(keyMapKey, shortcut);\n\n return shortcut;\n }\n\n /** Finds a Keyboard Shortcut associated with a given key */\n public findKey(keyMapKey: string): KeyboardShortcut | undefined {\n return this._keyMap.get(keyMapKey);\n }\n\n /** Determines if any Keyboard Shortcuts are available in this container */\n public areKeyboardShortcutsAvailable(): boolean {\n return this._keyMap.size !== 0;\n }\n\n /** Empties any Keyboard Shortcuts from this container */\n public emptyData(): void {\n this._keyMap.clear();\n this._keyArray.length = 0;\n }\n\n public getAvailableKeyboardShortcuts(): KeyboardShortcut[] {\n return this._keyArray.slice();\n }\n\n /** Generates a key used for storing and finding the Keyboard Shortcuts in this container */\n public static generateKeyMapKey(\n keyboardKey: string,\n isAltKeyRequired: boolean,\n isCtrlKeyRequired: boolean,\n isShiftKeyRequired: boolean\n ): string {\n let keyMapKey = keyboardKey;\n\n if (isAltKeyRequired) keyMapKey = `Alt+${keyMapKey}`;\n if (isShiftKeyRequired) keyMapKey = `Shift+${keyMapKey}`;\n if (isCtrlKeyRequired) keyMapKey = `Ctrl+${keyMapKey}`;\n\n return keyMapKey;\n }\n\n /** Displays a menu for the Keyboard Shortcuts in this container */\n public showShortcutsMenu() {\n const offset = 8;\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\n menuVisible: true,\n menuX: UiFramework.keyboardShortcuts.cursorX - offset,\n menuY: UiFramework.keyboardShortcuts.cursorY - offset,\n shortcuts: this.getAvailableKeyboardShortcuts(),\n });\n }\n}\n"]}
1
+ {"version":3,"file":"KeyboardShortcut.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.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 KeyboardShortcut\n */\n\nimport { UiError } from \"@itwin/appui-abstract\";\nimport type { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\nimport type { KeyboardShortcutProps } from \"../framework/FrameworkKeyboardShortcuts\";\nimport { UiFramework } from \"../UiFramework\";\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu\";\n\nenum FunctionKey {\n F1 = \"F1\",\n F2 = \"F2\",\n F3 = \"F3\",\n F4 = \"F4\",\n F5 = \"F5\",\n F6 = \"F6\",\n F7 = \"F7\",\n F8 = \"F8\",\n F9 = \"F9\",\n F10 = \"F10\",\n F11 = \"F11\",\n F12 = \"F12\",\n}\n\nenum SpecialKey {\n Home = \"Home\",\n End = \"End\",\n PageUp = \"PageUp\",\n PageDown = \"PageDown\",\n Escape = \"Escape\",\n Delete = \"Delete\",\n Insert = \"Insert\",\n Tab = \"Tab\",\n ArrowLeft = \"ArrowLeft\",\n ArrowRight = \"ArrowRight\",\n ArrowUp = \"ArrowUp\",\n ArrowDown = \"ArrowDown\",\n Enter = \"Enter\",\n Return = \"Enter\", // eslint-disable-line @typescript-eslint/no-duplicate-enum-values\n Space = \" \",\n Backspace = \"Backspace\",\n Clear = \"Clear\",\n Divide = \"Divide\",\n Multiply = \"Multiply\",\n Subtract = \"Subtract\",\n Add = \"Add\",\n Decimal = \"Decimal\",\n}\n\n/** Keyboard Shortcut used to execute an action\n * @public\n */\nexport class KeyboardShortcut extends ItemDefBase {\n private _key: string;\n private _item?: ActionButtonItemDef;\n private _shortcuts: KeyboardShortcutContainer;\n\n private _isAltKeyRequired: boolean = false;\n private _isCtrlKeyRequired: boolean = false;\n private _isShiftKeyRequired: boolean = false;\n private _isFunctionKey: boolean = false;\n private _isSpecialKey: boolean = false;\n\n constructor(props: KeyboardShortcutProps) {\n super(props);\n\n this._key = props.key;\n\n if (this._key in FunctionKey) this._isFunctionKey = true;\n if (this._key in SpecialKey) this._isSpecialKey = true;\n\n this._shortcuts = new KeyboardShortcutContainer();\n\n if (props.item) {\n this._item = props.item;\n\n // Copy over icon, label & tooltip from the item\n if (!this.iconSpec) this.iconSpec = this._item.iconSpec;\n if (!this.label) this.setLabel(this._item.label);\n if (!this.tooltip) this.setTooltip(this._item.tooltip);\n if (this.isDisabled === undefined)\n this.isDisabled = this._item.isDisabled;\n if (this.isHidden === undefined) this.isHidden = this._item.isHidden;\n } else if (props.shortcuts) {\n props.shortcuts.forEach((childProps: KeyboardShortcutProps) => {\n const shortcut = new KeyboardShortcut(childProps);\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\n });\n } else {\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n UiFramework.loggerCategory(this),\n `Either 'item' or 'shortcuts' must be specified for '${props.key}' key.`\n );\n }\n\n if (props.isAltKeyRequired !== undefined)\n this._isAltKeyRequired = props.isAltKeyRequired;\n if (props.isCtrlKeyRequired !== undefined)\n this._isCtrlKeyRequired = props.isCtrlKeyRequired;\n if (props.isShiftKeyRequired !== undefined)\n this._isShiftKeyRequired = props.isShiftKeyRequired;\n }\n\n /** Returns the id for this shortcut */\n public get id(): string {\n return this.keyMapKey;\n }\n\n /** Returns the shortcut container */\n public get shortcutContainer(): KeyboardShortcutContainer {\n return this._shortcuts;\n }\n\n /** Finds a shortcut with a given key in the shortcut's container */\n public getShortcut(mapKey: string): KeyboardShortcut | undefined {\n return this._shortcuts.findKey(mapKey);\n }\n\n /** Returns the shortcut's key map key used as the id */\n public get keyMapKey(): string {\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(\n this.key,\n this._isAltKeyRequired,\n this._isCtrlKeyRequired,\n this._isShiftKeyRequired\n );\n return keyMapKey;\n }\n\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\n public get item(): ActionButtonItemDef | undefined {\n return this._item;\n }\n\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\n public itemPicked(): void {\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\n this._shortcuts.showShortcutsMenu();\n } else {\n setTimeout(() => {\n // istanbul ignore else\n if (this._item) this._item.execute();\n });\n }\n }\n\n /** Gets the keyboard key */\n public get key(): string {\n return this._key;\n }\n /** Gets whether the Alt key required. */\n public get isAltKeyRequired(): boolean {\n return this._isAltKeyRequired;\n }\n /** Gets whether the Ctrl key required. */\n public get isCtrlKeyRequired(): boolean {\n return this._isCtrlKeyRequired;\n }\n /** Gets whether the Shift key required. */\n public get isShiftKeyRequired(): boolean {\n return this._isShiftKeyRequired;\n }\n /** Gets whether this is a Function key. */\n public get isFunctionKey(): boolean {\n return this._isFunctionKey;\n }\n /** Gets whether this is a Special key. */\n public get isSpecialKey(): boolean {\n return this._isSpecialKey;\n }\n}\n\n/** Keyboard Shortcut Container\n * @public\n */\nexport class KeyboardShortcutContainer {\n private _keyMap: Map<string, KeyboardShortcut> = new Map<\n string,\n KeyboardShortcut\n >();\n private _keyArray: KeyboardShortcut[] = new Array<KeyboardShortcut>();\n\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\n public registerKey(\n keyMapKey: string,\n inShortcut: KeyboardShortcut\n ): KeyboardShortcut | undefined {\n let shortcut: KeyboardShortcut | undefined;\n\n if ((shortcut = this.findKey(keyMapKey)) === undefined) {\n shortcut = inShortcut;\n this._keyArray.push(shortcut);\n } else {\n const index = this._keyArray.findIndex((value: KeyboardShortcut) => {\n return value.keyMapKey === keyMapKey;\n });\n // istanbul ignore else\n if (index >= 0) {\n shortcut = inShortcut;\n this._keyArray[index] = shortcut;\n }\n }\n\n // istanbul ignore else\n if (shortcut) this._keyMap.set(keyMapKey, shortcut);\n\n return shortcut;\n }\n\n /** Finds a Keyboard Shortcut associated with a given key */\n public findKey(keyMapKey: string): KeyboardShortcut | undefined {\n return this._keyMap.get(keyMapKey);\n }\n\n /** Determines if any Keyboard Shortcuts are available in this container */\n public areKeyboardShortcutsAvailable(): boolean {\n return this._keyMap.size !== 0;\n }\n\n /** Empties any Keyboard Shortcuts from this container */\n public emptyData(): void {\n this._keyMap.clear();\n this._keyArray.length = 0;\n }\n\n public getAvailableKeyboardShortcuts(): KeyboardShortcut[] {\n return this._keyArray.slice();\n }\n\n /** Generates a key used for storing and finding the Keyboard Shortcuts in this container */\n public static generateKeyMapKey(\n keyboardKey: string,\n isAltKeyRequired: boolean,\n isCtrlKeyRequired: boolean,\n isShiftKeyRequired: boolean\n ): string {\n let keyMapKey = keyboardKey;\n\n if (isAltKeyRequired) keyMapKey = `Alt+${keyMapKey}`;\n if (isShiftKeyRequired) keyMapKey = `Shift+${keyMapKey}`;\n if (isCtrlKeyRequired) keyMapKey = `Ctrl+${keyMapKey}`;\n\n return keyMapKey;\n }\n\n /** Displays a menu for the Keyboard Shortcuts in this container */\n public showShortcutsMenu() {\n const offset = 8;\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\n menuVisible: true,\n menuX: UiFramework.keyboardShortcuts.cursorX - offset,\n menuY: UiFramework.keyboardShortcuts.cursorY - offset,\n shortcuts: this.getAvailableKeyboardShortcuts(),\n });\n }\n}\n"]}
@@ -95,7 +95,7 @@ class KeyboardShortcutMenu extends React.PureComponent {
95
95
  return node;
96
96
  }
97
97
  }
98
+ exports.KeyboardShortcutMenu = KeyboardShortcutMenu;
98
99
  /** Get KeyboardShortcut Menu Event. */
99
100
  KeyboardShortcutMenu.onKeyboardShortcutMenuEvent = new KeyboardShortcutMenuEvent(); // eslint-disable-line deprecation/deprecation
100
- exports.KeyboardShortcutMenu = KeyboardShortcutMenu;
101
101
  //# sourceMappingURL=KeyboardShortcutMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcutMenu.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.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 KeyboardShortcut\n */\n\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n ContextMenuItem,\n ContextSubMenu,\n GlobalContextMenu,\n} from \"@itwin/core-react\";\nimport type { KeyboardShortcut } from \"./KeyboardShortcut\";\nimport { ConditionalBooleanValue, UiEvent } from \"@itwin/appui-abstract\";\n\n/** State for a [[KeyboardShortcutMenuEvent]] and [[KeyboardShortcutMenu]] component\n * @public\n */\nexport interface KeyboardShortcutMenuState {\n menuVisible: boolean;\n menuX: number;\n menuY: number;\n shortcuts?: KeyboardShortcut[];\n}\n\n/** KeyboardShortcut Menu Event class.\n * @public\n * @deprecated in 4.13.x. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class KeyboardShortcutMenuEvent extends UiEvent<KeyboardShortcutMenuState> {}\n\n/** React component that displays a context menu at the cursor containing keyboard shortcuts.\n * @public\n */\nexport class KeyboardShortcutMenu extends React.PureComponent<\n CommonProps,\n KeyboardShortcutMenuState\n> {\n /** @internal */\n public override readonly state: KeyboardShortcutMenuState = {\n menuVisible: false,\n menuX: 0,\n menuY: 0,\n };\n\n /** Get KeyboardShortcut Menu Event. */\n public static readonly onKeyboardShortcutMenuEvent =\n new KeyboardShortcutMenuEvent(); // eslint-disable-line deprecation/deprecation\n\n public override componentDidMount() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.addListener(\n this._handleKeyboardShortcutMenuEvent\n );\n }\n\n public override componentWillUnmount() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.removeListener(\n this._handleKeyboardShortcutMenuEvent\n );\n }\n\n private _handleKeyboardShortcutMenuEvent = (\n state: KeyboardShortcutMenuState\n ) => {\n this.setState(state);\n };\n\n public override render(): React.ReactNode {\n const { shortcuts, menuX, menuY, menuVisible } = this.state;\n const onClose = this._hideContextMenu;\n\n if (menuVisible) {\n const items = this.getShortcutMenuItems(shortcuts);\n\n return (\n <GlobalContextMenu\n className={this.props.className}\n style={this.props.style}\n identifier=\"keyboard-shortcuts\"\n x={menuX}\n y={menuY}\n opened={menuVisible}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n ignoreNextKeyUp={true} // Executing the shortcut on the keydown, so ignore the keyup in the menu\n >\n {items}\n </GlobalContextMenu>\n );\n }\n\n return null;\n }\n\n private getShortcutMenuItems(\n shortcuts?: KeyboardShortcut[]\n ): React.ReactNode[] {\n const items: React.ReactNode[] = [];\n\n // istanbul ignore else\n if (shortcuts) {\n shortcuts.forEach((shortcut: KeyboardShortcut, index: number) => {\n const item = this.getShortcutMenuItem(shortcut, index);\n // istanbul ignore else\n if (item) items.push(item);\n });\n }\n\n return items;\n }\n\n private getShortcutMenuItem(\n shortcut: KeyboardShortcut,\n index: number\n ): React.ReactNode {\n const shortcutKey = shortcut.key;\n const isHidden = ConditionalBooleanValue.getValue(shortcut.isHidden);\n\n // Only pure characters go into the context menu\n if (\n shortcutKey !== shortcut.keyMapKey ||\n shortcut.isFunctionKey ||\n shortcut.isSpecialKey ||\n isHidden\n )\n return null;\n\n let node: React.ReactNode = null;\n let label = shortcut.label;\n const iconSpec = shortcut.iconSpec;\n\n label = `~${shortcutKey.toLocaleUpperCase()} ${label}`;\n\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\n const shortcuts =\n shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\n const items = this.getShortcutMenuItems(shortcuts);\n\n node = (\n <ContextSubMenu\n key={index}\n icon={iconSpec}\n label={label}\n disabled={shortcut.isDisabled}\n >\n {items}\n </ContextSubMenu>\n );\n } else {\n const sel = () => this._itemPicked(shortcut);\n node = (\n <ContextMenuItem\n key={index}\n onSelect={sel}\n icon={iconSpec}\n disabled={shortcut.isDisabled}\n >\n {label}\n </ContextMenuItem>\n );\n }\n\n return node;\n }\n\n private _hideContextMenu = () => {\n this.setState({ menuVisible: false, shortcuts: undefined });\n };\n\n private _itemPicked = (shortcut: KeyboardShortcut): void => {\n this._hideContextMenu();\n shortcut.itemPicked();\n };\n}\n"]}
1
+ {"version":3,"file":"KeyboardShortcutMenu.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.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 KeyboardShortcut\n */\n\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n ContextMenuItem,\n ContextSubMenu,\n GlobalContextMenu,\n} from \"@itwin/core-react\";\nimport type { KeyboardShortcut } from \"./KeyboardShortcut\";\nimport { ConditionalBooleanValue, UiEvent } from \"@itwin/appui-abstract\";\n\n/** State for a [[KeyboardShortcutMenuEvent]] and [[KeyboardShortcutMenu]] component\n * @public\n */\nexport interface KeyboardShortcutMenuState {\n menuVisible: boolean;\n menuX: number;\n menuY: number;\n shortcuts?: KeyboardShortcut[];\n}\n\n/** KeyboardShortcut Menu Event class.\n * @public\n * @deprecated in 4.13.x. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class KeyboardShortcutMenuEvent extends UiEvent<KeyboardShortcutMenuState> {}\n\n/** React component that displays a context menu at the cursor containing keyboard shortcuts.\n * @public\n */\nexport class KeyboardShortcutMenu extends React.PureComponent<\n CommonProps,\n KeyboardShortcutMenuState\n> {\n /** @internal */\n public override readonly state: KeyboardShortcutMenuState = {\n menuVisible: false,\n menuX: 0,\n menuY: 0,\n };\n\n /** Get KeyboardShortcut Menu Event. */\n public static readonly onKeyboardShortcutMenuEvent =\n new KeyboardShortcutMenuEvent(); // eslint-disable-line deprecation/deprecation\n\n public override componentDidMount() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.addListener(\n this._handleKeyboardShortcutMenuEvent\n );\n }\n\n public override componentWillUnmount() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.removeListener(\n this._handleKeyboardShortcutMenuEvent\n );\n }\n\n private _handleKeyboardShortcutMenuEvent = (\n state: KeyboardShortcutMenuState\n ) => {\n this.setState(state);\n };\n\n public override render(): React.ReactNode {\n const { shortcuts, menuX, menuY, menuVisible } = this.state;\n const onClose = this._hideContextMenu;\n\n if (menuVisible) {\n const items = this.getShortcutMenuItems(shortcuts);\n\n return (\n <GlobalContextMenu\n className={this.props.className}\n style={this.props.style}\n identifier=\"keyboard-shortcuts\"\n x={menuX}\n y={menuY}\n opened={menuVisible}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n ignoreNextKeyUp={true} // Executing the shortcut on the keydown, so ignore the keyup in the menu\n >\n {items}\n </GlobalContextMenu>\n );\n }\n\n return null;\n }\n\n private getShortcutMenuItems(\n shortcuts?: KeyboardShortcut[]\n ): React.ReactNode[] {\n const items: React.ReactNode[] = [];\n\n // istanbul ignore else\n if (shortcuts) {\n shortcuts.forEach((shortcut: KeyboardShortcut, index: number) => {\n const item = this.getShortcutMenuItem(shortcut, index);\n // istanbul ignore else\n if (item) items.push(item);\n });\n }\n\n return items;\n }\n\n private getShortcutMenuItem(\n shortcut: KeyboardShortcut,\n index: number\n ): React.ReactNode {\n const shortcutKey = shortcut.key;\n const isHidden = ConditionalBooleanValue.getValue(shortcut.isHidden);\n\n // Only pure characters go into the context menu\n if (\n shortcutKey !== shortcut.keyMapKey ||\n shortcut.isFunctionKey ||\n shortcut.isSpecialKey ||\n isHidden\n )\n return null;\n\n let node: React.ReactNode = null;\n let label = shortcut.label;\n const iconSpec = shortcut.iconSpec;\n\n label = `~${shortcutKey.toLocaleUpperCase()} ${label}`;\n\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\n const shortcuts =\n shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\n const items = this.getShortcutMenuItems(shortcuts);\n\n node = (\n <ContextSubMenu\n key={index}\n icon={iconSpec}\n label={label}\n disabled={shortcut.isDisabled}\n >\n {items}\n </ContextSubMenu>\n );\n } else {\n const sel = () => this._itemPicked(shortcut);\n node = (\n <ContextMenuItem\n key={index}\n onSelect={sel}\n icon={iconSpec}\n disabled={shortcut.isDisabled}\n >\n {label}\n </ContextMenuItem>\n );\n }\n\n return node;\n }\n\n private _hideContextMenu = () => {\n this.setState({ menuVisible: false, shortcuts: undefined });\n };\n\n private _itemPicked = (shortcut: KeyboardShortcut): void => {\n this._hideContextMenu();\n shortcut.itemPicked();\n };\n}\n"]}
@@ -20,7 +20,7 @@ var KeyinFieldLocalization;
20
20
  KeyinFieldLocalization[KeyinFieldLocalization["Localized"] = 1] = "Localized";
21
21
  /** Include localized and non-localized strings for each key-in. */
22
22
  KeyinFieldLocalization[KeyinFieldLocalization["Both"] = 2] = "Both";
23
- })(KeyinFieldLocalization = exports.KeyinFieldLocalization || (exports.KeyinFieldLocalization = {}));
23
+ })(KeyinFieldLocalization || (exports.KeyinFieldLocalization = KeyinFieldLocalization = {}));
24
24
  /**
25
25
  * Parses a given ToolList for its tools keyins, filtering based on a KeyinFieldLocalization value.
26
26
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"Keyins.js","sourceRoot":"","sources":["../../../../src/appui-react/keyins/Keyins.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAiBH;;;GAGG;AACH,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,iDAAiD;IACjD,mFAAY,CAAA;IACZ,6CAA6C;IAC7C,6EAAS,CAAA;IACT,mEAAmE;IACnE,mEAAI,CAAA;AACN,CAAC,EAPW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAOjC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,QAAkB,EAClB,2BAAmD,sBAAsB,CAAC,YAAY;IAEtF,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC3B,QAAQ,wBAAwB,EAAE;YAChC,KAAK,sBAAsB,CAAC,SAAS;gBACnC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,sBAAsB,CAAC,IAAI;gBAC9B,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvC,uBAAuB;gBACvB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY;oBAAE,MAAM;YAC9C,uBAAuB;YACvB,QAAQ,CAAC,qCAAqC;YAC9C,KAAK,sBAAsB,CAAC,YAAY;gBACtC,uBAAuB;gBACvB,IACE,sBAAsB,CAAC,YAAY,KAAK,wBAAwB;oBAChE,CAAC,sBAAsB,CAAC,IAAI,KAAK,wBAAwB;wBACvD,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC;oBAEnC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAChD,MAAM;SACT;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AA7BD,sDA6BC","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 Tools\n */\n\nimport type { ToolList } from \"@itwin/core-frontend\";\nimport type { IMatch } from \"../utils/matchesWords\";\n/**\n * Defines a keyin entry to show/filter in UI\n * @public\n */\nexport interface KeyinEntry {\n /** string that matched a filter string */\n value: string;\n /** define array of start and end positions of filter matches. */\n matches?: IMatch[];\n /** true if entry was loaded from key-in history */\n isHistory?: boolean;\n}\n\n/**\n * Controls whether localized and/or non-localized key-in strings appear in a KeyinField's auto-completion list.\n * @public\n */\nexport enum KeyinFieldLocalization {\n /** Include only non-localized key-in strings. */\n NonLocalized,\n /** Include only localized key-in strings. */\n Localized,\n /** Include localized and non-localized strings for each key-in. */\n Both,\n}\n\n/**\n * Parses a given ToolList for its tools keyins, filtering based on a KeyinFieldLocalization value.\n * @internal\n */\nexport function getKeyinsFromToolList(\n toolList: ToolList,\n localizedKeyinPreference: KeyinFieldLocalization = KeyinFieldLocalization.NonLocalized\n): KeyinEntry[] {\n const toolKeyins: KeyinEntry[] = [];\n for (const tool of toolList) {\n switch (localizedKeyinPreference) {\n case KeyinFieldLocalization.Localized:\n toolKeyins.push({ value: tool.keyin });\n break;\n case KeyinFieldLocalization.Both:\n toolKeyins.push({ value: tool.keyin });\n // istanbul ignore else\n if (tool.keyin === tool.englishKeyin) break;\n // istanbul ignore next\n default: // eslint-disable-line no-fallthrough\n case KeyinFieldLocalization.NonLocalized:\n // istanbul ignore next\n if (\n KeyinFieldLocalization.NonLocalized === localizedKeyinPreference ||\n (KeyinFieldLocalization.Both === localizedKeyinPreference &&\n tool.englishKeyin !== tool.keyin)\n )\n toolKeyins.push({ value: tool.englishKeyin });\n break;\n }\n }\n\n return toolKeyins;\n}\n"]}
1
+ {"version":3,"file":"Keyins.js","sourceRoot":"","sources":["../../../../src/appui-react/keyins/Keyins.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAiBH;;;GAGG;AACH,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,iDAAiD;IACjD,mFAAY,CAAA;IACZ,6CAA6C;IAC7C,6EAAS,CAAA;IACT,mEAAmE;IACnE,mEAAI,CAAA;AACN,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,QAAkB,EAClB,2BAAmD,sBAAsB,CAAC,YAAY;IAEtF,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,QAAQ,wBAAwB,EAAE,CAAC;YACjC,KAAK,sBAAsB,CAAC,SAAS;gBACnC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,sBAAsB,CAAC,IAAI;gBAC9B,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvC,uBAAuB;gBACvB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY;oBAAE,MAAM;YAC9C,uBAAuB;YACvB,QAAQ,CAAC,qCAAqC;YAC9C,KAAK,sBAAsB,CAAC,YAAY;gBACtC,uBAAuB;gBACvB,IACE,sBAAsB,CAAC,YAAY,KAAK,wBAAwB;oBAChE,CAAC,sBAAsB,CAAC,IAAI,KAAK,wBAAwB;wBACvD,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC;oBAEnC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAChD,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AA7BD,sDA6BC","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 Tools\n */\n\nimport type { ToolList } from \"@itwin/core-frontend\";\nimport type { IMatch } from \"../utils/matchesWords\";\n/**\n * Defines a keyin entry to show/filter in UI\n * @public\n */\nexport interface KeyinEntry {\n /** string that matched a filter string */\n value: string;\n /** define array of start and end positions of filter matches. */\n matches?: IMatch[];\n /** true if entry was loaded from key-in history */\n isHistory?: boolean;\n}\n\n/**\n * Controls whether localized and/or non-localized key-in strings appear in a KeyinField's auto-completion list.\n * @public\n */\nexport enum KeyinFieldLocalization {\n /** Include only non-localized key-in strings. */\n NonLocalized,\n /** Include only localized key-in strings. */\n Localized,\n /** Include localized and non-localized strings for each key-in. */\n Both,\n}\n\n/**\n * Parses a given ToolList for its tools keyins, filtering based on a KeyinFieldLocalization value.\n * @internal\n */\nexport function getKeyinsFromToolList(\n toolList: ToolList,\n localizedKeyinPreference: KeyinFieldLocalization = KeyinFieldLocalization.NonLocalized\n): KeyinEntry[] {\n const toolKeyins: KeyinEntry[] = [];\n for (const tool of toolList) {\n switch (localizedKeyinPreference) {\n case KeyinFieldLocalization.Localized:\n toolKeyins.push({ value: tool.keyin });\n break;\n case KeyinFieldLocalization.Both:\n toolKeyins.push({ value: tool.keyin });\n // istanbul ignore else\n if (tool.keyin === tool.englishKeyin) break;\n // istanbul ignore next\n default: // eslint-disable-line no-fallthrough\n case KeyinFieldLocalization.NonLocalized:\n // istanbul ignore next\n if (\n KeyinFieldLocalization.NonLocalized === localizedKeyinPreference ||\n (KeyinFieldLocalization.Both === localizedKeyinPreference &&\n tool.englishKeyin !== tool.keyin)\n )\n toolKeyins.push({ value: tool.englishKeyin });\n break;\n }\n }\n\n return toolKeyins;\n}\n"]}
@@ -46,8 +46,8 @@ class Backstage extends React.PureComponent {
46
46
  this.props.footer && (React.createElement("div", { className: "nz-footer" }, this.props.footer)))));
47
47
  }
48
48
  }
49
+ exports.Backstage = Backstage;
49
50
  Backstage.defaultProps = {
50
51
  showOverlay: true,
51
52
  };
52
- exports.Backstage = Backstage;
53
53
  //# sourceMappingURL=Backstage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Backstage.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/backstage/Backstage.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAGH,2CAAoC;AACpC,+BAA+B;AAC/B,6CAAkC;AAElC,2DAA+D;AAC/D,4BAA0B;AA2B1B;;GAEG;AACH,MAAa,SAAU,SAAQ,KAAK,CAAC,aAA6B;IAAlE;;QA8CU,aAAQ,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC,CAAC;QAEM,WAAM,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,iBAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;gBAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;QACH,CAAC,CAAC;IACJ,CAAC;IAlDiB,iBAAiB;QAC/B,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEe,oBAAoB;QAClC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEe,MAAM;QACpB,MAAM,gBAAgB,GAAG,IAAA,oBAAU,EACjC,gCAAgC,EAChC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAY,CACvC,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAA,oBAAU,EACnC,wBAAwB,EACxB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAC9B,IAAI,CAAC,KAAK,CAAC,cAAc;YACvB,sCAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EACnE,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,CAAC;QACF,OAAO,CACL;YACE,6BACE,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,IAAI,EAAC,cAAc,GACnB;YACF,6BAAK,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;gBACxD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CACpB,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,CACrD;gBACD,4BAAI,IAAI,EAAC,MAAM,IAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAM;gBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CACpB,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,CACrD,CACG,CACL,CACJ,CAAC;IACJ,CAAC;;AA3CsB,sBAAY,GAA0B;IAC3D,WAAW,EAAE,IAAI;CAClB,AAFkC,CAEjC;AAHS,8BAAS","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 Backstage\n */\n\nimport type { CommonProps } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { SafeAreaInsets } from \"../../safearea/SafeAreaInsets\";\nimport { SafeAreaInsetsHelpers } from \"../base/SafeAreaInsets\";\nimport \"./Backstage.scss\";\n\n/** Properties of [[Backstage]] component.\n * @internal\n */\nexport interface BackstageProps extends CommonProps {\n /** Backstage items and separators. I.e. [[BackstageItem]], [[BackstageSeparator]] */\n children?: React.ReactNode;\n /** Optional footer content. */\n footer?: React.ReactNode;\n /** Optional header content. I.e. [[UserProfile]] */\n header?: React.ReactNode;\n /** Describes if the backstage is open. */\n isOpen?: boolean;\n /** Function called when backstage is closed. */\n onClose?: () => void;\n /** Describes respected safe area insets. */\n safeAreaInsets?: SafeAreaInsets;\n /** Describes if a ghosting overlay is shown. */\n showOverlay: boolean;\n}\n\n/** Default properties of [[Backstage]] component.\n * @internal\n */\nexport type BackstageDefaultProps = Pick<BackstageProps, \"showOverlay\">;\n\n/** Backstage component of 9-Zone UI app.\n * @internal\n */\nexport class Backstage extends React.PureComponent<BackstageProps> {\n public static readonly defaultProps: BackstageDefaultProps = {\n showOverlay: true,\n };\n\n public override componentDidMount(): void {\n document.addEventListener(\"keydown\", this._onEsc, false);\n }\n\n public override componentWillUnmount() {\n document.removeEventListener(\"keydown\", this._onEsc, false);\n }\n\n public override render() {\n const overlayClassName = classnames(\n \"nz-backstage-backstage_overlay\",\n this.props.isOpen && \"nz-open\",\n this.props.showOverlay && \"nz-overlay\"\n );\n const backstageClassName = classnames(\n \"nz-backstage-backstage\",\n this.props.isOpen && \"nz-open\",\n this.props.safeAreaInsets &&\n SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets),\n this.props.className\n );\n return (\n <>\n <div\n className={overlayClassName}\n onClick={this._onClose}\n role=\"presentation\"\n />\n <div className={backstageClassName} style={this.props.style}>\n {this.props.header && (\n <div className=\"nz-header\">{this.props.header}</div>\n )}\n <ul role=\"menu\">{this.props.children}</ul>\n {this.props.footer && (\n <div className=\"nz-footer\">{this.props.footer}</div>\n )}\n </div>\n </>\n );\n }\n\n private _onClose = () => {\n this.props.onClose && this.props.onClose();\n };\n\n private _onEsc = (event: KeyboardEvent): void => {\n if (this.props.isOpen && event.key === Key.Escape.valueOf()) {\n this._onClose();\n }\n };\n}\n"]}
1
+ {"version":3,"file":"Backstage.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/backstage/Backstage.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAGH,2CAAoC;AACpC,+BAA+B;AAC/B,6CAAkC;AAElC,2DAA+D;AAC/D,4BAA0B;AA2B1B;;GAEG;AACH,MAAa,SAAU,SAAQ,KAAK,CAAC,aAA6B;IAAlE;;QA8CU,aAAQ,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC,CAAC;QAEM,WAAM,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,iBAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAlDiB,iBAAiB;QAC/B,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEe,oBAAoB;QAClC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEe,MAAM;QACpB,MAAM,gBAAgB,GAAG,IAAA,oBAAU,EACjC,gCAAgC,EAChC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAY,CACvC,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAA,oBAAU,EACnC,wBAAwB,EACxB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAC9B,IAAI,CAAC,KAAK,CAAC,cAAc;YACvB,sCAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EACnE,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,CAAC;QACF,OAAO,CACL;YACE,6BACE,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,IAAI,EAAC,cAAc,GACnB;YACF,6BAAK,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;gBACxD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CACpB,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,CACrD;gBACD,4BAAI,IAAI,EAAC,MAAM,IAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAM;gBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CACpB,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,CACrD,CACG,CACL,CACJ,CAAC;IACJ,CAAC;;AA5CH,8BAuDC;AAtDwB,sBAAY,GAA0B;IAC3D,WAAW,EAAE,IAAI;CAClB,AAFkC,CAEjC","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 Backstage\n */\n\nimport type { CommonProps } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { SafeAreaInsets } from \"../../safearea/SafeAreaInsets\";\nimport { SafeAreaInsetsHelpers } from \"../base/SafeAreaInsets\";\nimport \"./Backstage.scss\";\n\n/** Properties of [[Backstage]] component.\n * @internal\n */\nexport interface BackstageProps extends CommonProps {\n /** Backstage items and separators. I.e. [[BackstageItem]], [[BackstageSeparator]] */\n children?: React.ReactNode;\n /** Optional footer content. */\n footer?: React.ReactNode;\n /** Optional header content. I.e. [[UserProfile]] */\n header?: React.ReactNode;\n /** Describes if the backstage is open. */\n isOpen?: boolean;\n /** Function called when backstage is closed. */\n onClose?: () => void;\n /** Describes respected safe area insets. */\n safeAreaInsets?: SafeAreaInsets;\n /** Describes if a ghosting overlay is shown. */\n showOverlay: boolean;\n}\n\n/** Default properties of [[Backstage]] component.\n * @internal\n */\nexport type BackstageDefaultProps = Pick<BackstageProps, \"showOverlay\">;\n\n/** Backstage component of 9-Zone UI app.\n * @internal\n */\nexport class Backstage extends React.PureComponent<BackstageProps> {\n public static readonly defaultProps: BackstageDefaultProps = {\n showOverlay: true,\n };\n\n public override componentDidMount(): void {\n document.addEventListener(\"keydown\", this._onEsc, false);\n }\n\n public override componentWillUnmount() {\n document.removeEventListener(\"keydown\", this._onEsc, false);\n }\n\n public override render() {\n const overlayClassName = classnames(\n \"nz-backstage-backstage_overlay\",\n this.props.isOpen && \"nz-open\",\n this.props.showOverlay && \"nz-overlay\"\n );\n const backstageClassName = classnames(\n \"nz-backstage-backstage\",\n this.props.isOpen && \"nz-open\",\n this.props.safeAreaInsets &&\n SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets),\n this.props.className\n );\n return (\n <>\n <div\n className={overlayClassName}\n onClick={this._onClose}\n role=\"presentation\"\n />\n <div className={backstageClassName} style={this.props.style}>\n {this.props.header && (\n <div className=\"nz-header\">{this.props.header}</div>\n )}\n <ul role=\"menu\">{this.props.children}</ul>\n {this.props.footer && (\n <div className=\"nz-footer\">{this.props.footer}</div>\n )}\n </div>\n </>\n );\n }\n\n private _onClose = () => {\n this.props.onClose && this.props.onClose();\n };\n\n private _onEsc = (event: KeyboardEvent): void => {\n if (this.props.isOpen && event.key === Key.Escape.valueOf()) {\n this._onClose();\n }\n };\n}\n"]}