@itwin/appui-react 5.0.5 → 5.2.0

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 (530) hide show
  1. package/CHANGELOG.md +57 -38
  2. package/lib/appui-react/UiFramework.d.ts +1 -1
  3. package/lib/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/appui-react/UiFramework.js +48 -46
  5. package/lib/appui-react/UiFramework.js.map +1 -1
  6. package/lib/appui-react/accudraw/AccuDrawCommandItems.js +1 -1
  7. package/lib/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  8. package/lib/appui-react/accudraw/AccuDrawDialog.js +1 -1
  9. package/lib/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  10. package/lib/appui-react/accudraw/AccuDrawFieldContainer.d.ts +2 -0
  11. package/lib/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  12. package/lib/appui-react/accudraw/AccuDrawFieldContainer.js +38 -26
  13. package/lib/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  14. package/lib/appui-react/accudraw/AccuDrawInputField.d.ts +4 -2
  15. package/lib/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  16. package/lib/appui-react/accudraw/AccuDrawInputField.js +45 -38
  17. package/lib/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  18. package/lib/appui-react/accudraw/AccuDrawInputField.scss +0 -15
  19. package/lib/appui-react/accudraw/AccuDrawPopupManager.js +3 -3
  20. package/lib/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  21. package/lib/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  22. package/lib/appui-react/accudraw/AccuDrawWidget.js +2 -2
  23. package/lib/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  24. package/lib/appui-react/accudraw/Calculator.js +1 -1
  25. package/lib/appui-react/accudraw/Calculator.js.map +1 -1
  26. package/lib/appui-react/accudraw/CalculatorPopup.js +1 -1
  27. package/lib/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  28. package/lib/appui-react/accudraw/FrameworkAccuDraw.d.ts +2 -2
  29. package/lib/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  30. package/lib/appui-react/accudraw/FrameworkAccuDraw.js +18 -15
  31. package/lib/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  32. package/lib/appui-react/accudraw/MenuButton.js +1 -1
  33. package/lib/appui-react/accudraw/MenuButton.js.map +1 -1
  34. package/lib/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  35. package/lib/appui-react/backstage/BackstageComposer.js +2 -3
  36. package/lib/appui-react/backstage/BackstageComposer.js.map +1 -1
  37. package/lib/appui-react/backstage/BackstageComposerItem.js +6 -6
  38. package/lib/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  39. package/lib/appui-react/backstage/BackstageItem.js.map +1 -1
  40. package/lib/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  41. package/lib/appui-react/backstage/BackstageManager.js +3 -3
  42. package/lib/appui-react/backstage/BackstageManager.js.map +1 -1
  43. package/lib/appui-react/backstage/InternalBackstageManager.js +2 -2
  44. package/lib/appui-react/backstage/InternalBackstageManager.js.map +1 -1
  45. package/lib/appui-react/configurableui/ActivityTracker.d.ts.map +1 -1
  46. package/lib/appui-react/configurableui/ActivityTracker.js +0 -1
  47. package/lib/appui-react/configurableui/ActivityTracker.js.map +1 -1
  48. package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +3 -1
  49. package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  50. package/lib/appui-react/configurableui/ConfigurableUiContent.js +20 -12
  51. package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  52. package/lib/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  53. package/lib/appui-react/configurableui/InternalConfigurableUiManager.d.ts +1 -1
  54. package/lib/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  55. package/lib/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  56. package/lib/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  57. package/lib/appui-react/content/ContentControl.js +1 -1
  58. package/lib/appui-react/content/ContentControl.js.map +1 -1
  59. package/lib/appui-react/content/ContentGroup.js +7 -7
  60. package/lib/appui-react/content/ContentGroup.js.map +1 -1
  61. package/lib/appui-react/content/ContentLayout.d.ts.map +1 -1
  62. package/lib/appui-react/content/ContentLayout.js +16 -17
  63. package/lib/appui-react/content/ContentLayout.js.map +1 -1
  64. package/lib/appui-react/content/DefaultViewOverlay.js +1 -1
  65. package/lib/appui-react/content/DefaultViewOverlay.js.map +1 -1
  66. package/lib/appui-react/content/FloatingViewportContent.js +4 -4
  67. package/lib/appui-react/content/FloatingViewportContent.js.map +1 -1
  68. package/lib/appui-react/content/IModelViewport.d.ts +1 -1
  69. package/lib/appui-react/content/IModelViewport.d.ts.map +1 -1
  70. package/lib/appui-react/content/IModelViewport.js +1 -1
  71. package/lib/appui-react/content/IModelViewport.js.map +1 -1
  72. package/lib/appui-react/content/InternalContentViewManager.js +26 -26
  73. package/lib/appui-react/content/InternalContentViewManager.js.map +1 -1
  74. package/lib/appui-react/content/ViewportContentControl.js +1 -1
  75. package/lib/appui-react/content/ViewportContentControl.js.map +1 -1
  76. package/lib/appui-react/content/split-pane/SplitPane.js +2 -2
  77. package/lib/appui-react/content/split-pane/SplitPane.js.map +1 -1
  78. package/lib/appui-react/cursor/CursorInformation.d.ts +7 -0
  79. package/lib/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  80. package/lib/appui-react/cursor/CursorInformation.js +15 -2
  81. package/lib/appui-react/cursor/CursorInformation.js.map +1 -1
  82. package/lib/appui-react/cursor/cursormenu/CursorMenu.d.ts +1 -1
  83. package/lib/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  84. package/lib/appui-react/cursor/cursormenu/CursorMenu.js +3 -3
  85. package/lib/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  86. package/lib/appui-react/cursor/cursorpopup/CursorPopup.d.ts +1 -1
  87. package/lib/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  88. package/lib/appui-react/cursor/cursorpopup/CursorPopup.js +4 -4
  89. package/lib/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  90. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +4 -1
  91. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  92. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js +45 -30
  93. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  94. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +12 -15
  95. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  96. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js +47 -38
  97. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  98. package/lib/appui-react/dialog/ContentDialog.js.map +1 -1
  99. package/lib/appui-react/dialog/ContentDialogManager.js +2 -2
  100. package/lib/appui-react/dialog/ContentDialogManager.js.map +1 -1
  101. package/lib/appui-react/dialog/DialogManagerBase.js +4 -4
  102. package/lib/appui-react/dialog/DialogManagerBase.js.map +1 -1
  103. package/lib/appui-react/dialog/InternalContentDialogManager.d.ts.map +1 -1
  104. package/lib/appui-react/dialog/InternalContentDialogManager.js +2 -3
  105. package/lib/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  106. package/lib/appui-react/dialog/InternalModalDialogManager.js +1 -1
  107. package/lib/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  108. package/lib/appui-react/dialog/InternalModelessDialogManager.d.ts.map +1 -1
  109. package/lib/appui-react/dialog/InternalModelessDialogManager.js +1 -2
  110. package/lib/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  111. package/lib/appui-react/dialog/ModalDialogManager.js +2 -2
  112. package/lib/appui-react/dialog/ModalDialogManager.js.map +1 -1
  113. package/lib/appui-react/dialog/ModelessDialog.js +1 -1
  114. package/lib/appui-react/dialog/ModelessDialog.js.map +1 -1
  115. package/lib/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
  116. package/lib/appui-react/dialog/ModelessDialogManager.js +2 -3
  117. package/lib/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  118. package/lib/appui-react/dialog/StandardMessageBox.js +1 -1
  119. package/lib/appui-react/dialog/StandardMessageBox.js.map +1 -1
  120. package/lib/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  121. package/lib/appui-react/feedback/ElementTooltip.d.ts +1 -1
  122. package/lib/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  123. package/lib/appui-react/feedback/ElementTooltip.js.map +1 -1
  124. package/lib/appui-react/feedback/ValidationTextbox.js.map +1 -1
  125. package/lib/appui-react/framework/FrameworkBackstage.js.map +1 -1
  126. package/lib/appui-react/framework/FrameworkContent.js +3 -3
  127. package/lib/appui-react/framework/FrameworkContent.js.map +1 -1
  128. package/lib/appui-react/framework/FrameworkControls.js.map +1 -1
  129. package/lib/appui-react/framework/FrameworkDialogs.js +2 -2
  130. package/lib/appui-react/framework/FrameworkDialogs.js.map +1 -1
  131. package/lib/appui-react/framework/FrameworkFrontstages.js +8 -8
  132. package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  133. package/lib/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  134. package/lib/appui-react/framework/FrameworkToolSettings.js +1 -1
  135. package/lib/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  136. package/lib/appui-react/frontstage/Frontstage.js.map +1 -1
  137. package/lib/appui-react/frontstage/FrontstageConfig.d.ts +5 -2
  138. package/lib/appui-react/frontstage/FrontstageConfig.d.ts.map +1 -1
  139. package/lib/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  140. package/lib/appui-react/frontstage/FrontstageDef.d.ts +5 -1
  141. package/lib/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  142. package/lib/appui-react/frontstage/FrontstageDef.js +22 -17
  143. package/lib/appui-react/frontstage/FrontstageDef.js.map +1 -1
  144. package/lib/appui-react/frontstage/InternalFrontstageManager.js +29 -29
  145. package/lib/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  146. package/lib/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  147. package/lib/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  148. package/lib/appui-react/frontstage/ModalSettingsStage.js +2 -2
  149. package/lib/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  150. package/lib/appui-react/frontstage/NestedFrontstage.js +1 -1
  151. package/lib/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  152. package/lib/appui-react/frontstage/StandardFrontstageProvider.js +1 -1
  153. package/lib/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  154. package/lib/appui-react/hooks/useActiveIModelConnection.js +1 -1
  155. package/lib/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  156. package/lib/appui-react/hooks/useUiVisibility.js +1 -1
  157. package/lib/appui-react/hooks/useUiVisibility.js.map +1 -1
  158. package/lib/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  159. package/lib/appui-react/keyboardshortcut/KeyboardShortcut.js +1 -1
  160. package/lib/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  161. package/lib/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  162. package/lib/appui-react/keyboardshortcut/KeyboardShortcutProps.js.map +1 -1
  163. package/lib/appui-react/layout/StandardLayout.d.ts.map +1 -1
  164. package/lib/appui-react/layout/StandardLayout.js +5 -1
  165. package/lib/appui-react/layout/StandardLayout.js.map +1 -1
  166. package/lib/appui-react/layout/backstage/Backstage.js.map +1 -1
  167. package/lib/appui-react/layout/backstage/Item.js.map +1 -1
  168. package/lib/appui-react/layout/backstage/Separator.js +1 -1
  169. package/lib/appui-react/layout/backstage/Separator.js.map +1 -1
  170. package/lib/appui-react/layout/base/usePointerCaptor.d.ts +1 -1
  171. package/lib/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  172. package/lib/appui-react/layout/footer/dialog/Dialog.js.map +1 -1
  173. package/lib/appui-react/layout/footer/dialog/TitleBar.js.map +1 -1
  174. package/lib/appui-react/layout/footer/snap-mode/Panel.js.map +1 -1
  175. package/lib/appui-react/layout/footer/snap-mode/Snap.js.map +1 -1
  176. package/lib/appui-react/layout/footer/tool-assistance/Dialog.js.map +1 -1
  177. package/lib/appui-react/layout/footer/tool-assistance/Instruction.js.map +1 -1
  178. package/lib/appui-react/layout/footer/tool-assistance/Item.js.map +1 -1
  179. package/lib/appui-react/layout/footer/tool-assistance/NewDot.js +1 -1
  180. package/lib/appui-react/layout/footer/tool-assistance/NewDot.js.map +1 -1
  181. package/lib/appui-react/layout/footer/tool-assistance/Separator.js.map +1 -1
  182. package/lib/appui-react/layout/outline/SectionOutline.js.map +1 -1
  183. package/lib/appui-react/layout/popup/Tooltip.js.map +1 -1
  184. package/lib/appui-react/layout/state/internal/PanelStateHelpers.js +1 -1
  185. package/lib/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  186. package/lib/appui-react/layout/state/internal/TabStateHelpers.js +6 -6
  187. package/lib/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  188. package/lib/appui-react/layout/state/internal/ToolSettingsStateHelpers.js +6 -6
  189. package/lib/appui-react/layout/state/internal/ToolSettingsStateHelpers.js.map +1 -1
  190. package/lib/appui-react/layout/state/internal/WidgetStateHelpers.js +13 -13
  191. package/lib/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  192. package/lib/appui-react/layout/target/TargetContainer.js.map +1 -1
  193. package/lib/appui-react/layout/target/useAllowedSideTarget.js +1 -1
  194. package/lib/appui-react/layout/target/useAllowedSideTarget.js.map +1 -1
  195. package/lib/appui-react/layout/tool-settings/Docked.js +1 -1
  196. package/lib/appui-react/layout/tool-settings/Docked.js.map +1 -1
  197. package/lib/appui-react/layout/tool-settings/Handle.js.map +1 -1
  198. package/lib/appui-react/layout/tool-settings/Overflow.js.map +1 -1
  199. package/lib/appui-react/layout/tool-settings/Panel.js +1 -1
  200. package/lib/appui-react/layout/tool-settings/Panel.js.map +1 -1
  201. package/lib/appui-react/layout/tool-settings/Setting.js.map +1 -1
  202. package/lib/appui-react/layout/widget/Menu.js +1 -1
  203. package/lib/appui-react/layout/widget/Menu.js.map +1 -1
  204. package/lib/appui-react/layout/widget/MenuTab.js.map +1 -1
  205. package/lib/appui-react/layout/widget/NavigationArea.js.map +1 -1
  206. package/lib/appui-react/layout/widget/Tab.js +1 -1
  207. package/lib/appui-react/layout/widget/Tab.js.map +1 -1
  208. package/lib/appui-react/layout/widget/TabBar.js +1 -1
  209. package/lib/appui-react/layout/widget/TabBar.js.map +1 -1
  210. package/lib/appui-react/layout/widget/ToolsArea.js.map +1 -1
  211. package/lib/appui-react/layout/widget/Widget.js.map +1 -1
  212. package/lib/appui-react/layout/widget/tools/button/Button.js.map +1 -1
  213. package/lib/appui-react/layout/widget/tools/button/Expandable.js.map +1 -1
  214. package/lib/appui-react/layout/widget-panels/Expander.js +1 -1
  215. package/lib/appui-react/layout/widget-panels/Expander.js.map +1 -1
  216. package/lib/appui-react/layout/widget-panels/Grip.d.ts.map +1 -1
  217. package/lib/appui-react/layout/widget-panels/Grip.js +3 -3
  218. package/lib/appui-react/layout/widget-panels/Grip.js.map +1 -1
  219. package/lib/appui-react/layout/widget-panels/Panel.d.ts.map +1 -1
  220. package/lib/appui-react/layout/widget-panels/useAnimatePanel.d.ts.map +1 -1
  221. package/lib/appui-react/messages/InputField.js +2 -2
  222. package/lib/appui-react/messages/InputField.js.map +1 -1
  223. package/lib/appui-react/messages/MessageManager.d.ts +4 -4
  224. package/lib/appui-react/messages/MessageManager.d.ts.map +1 -1
  225. package/lib/appui-react/messages/MessageManager.js +25 -25
  226. package/lib/appui-react/messages/MessageManager.js.map +1 -1
  227. package/lib/appui-react/messages/MessageRenderer.js.map +1 -1
  228. package/lib/appui-react/messages/Pointer.d.ts.map +1 -1
  229. package/lib/appui-react/messages/Pointer.js +7 -7
  230. package/lib/appui-react/messages/Pointer.js.map +1 -1
  231. package/lib/appui-react/messages/ReactNotifyMessageDetails.d.ts +2 -2
  232. package/lib/appui-react/messages/ReactNotifyMessageDetails.d.ts.map +1 -1
  233. package/lib/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  234. package/lib/appui-react/navigationaids/CubeNavigationAidControl.js +2 -2
  235. package/lib/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  236. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js +2 -2
  237. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  238. package/lib/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  239. package/lib/appui-react/navigationaids/SheetNavigationAid.js +2 -2
  240. package/lib/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  241. package/lib/appui-react/navigationaids/SheetsModalFrontstage.js +8 -8
  242. package/lib/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  243. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +1 -1
  244. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  245. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js +3 -3
  246. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  247. package/lib/appui-react/pickers/ListPicker.d.ts +1 -0
  248. package/lib/appui-react/pickers/ListPicker.d.ts.map +1 -1
  249. package/lib/appui-react/pickers/ListPicker.js +11 -10
  250. package/lib/appui-react/pickers/ListPicker.js.map +1 -1
  251. package/lib/appui-react/pickers/ViewSelector.d.ts +1 -0
  252. package/lib/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  253. package/lib/appui-react/pickers/ViewSelector.js +7 -6
  254. package/lib/appui-react/pickers/ViewSelector.js.map +1 -1
  255. package/lib/appui-react/popup/CardPopup.js +2 -2
  256. package/lib/appui-react/popup/CardPopup.js.map +1 -1
  257. package/lib/appui-react/popup/ComponentPopup.js.map +1 -1
  258. package/lib/appui-react/popup/HTMLElementPopup.js.map +1 -1
  259. package/lib/appui-react/popup/InputEditorPopup.js.map +1 -1
  260. package/lib/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  261. package/lib/appui-react/popup/KeyinPalettePanel.js +2 -3
  262. package/lib/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  263. package/lib/appui-react/popup/KeyinPalettePopup.js +1 -1
  264. package/lib/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  265. package/lib/appui-react/popup/PopupManager.d.ts +1 -1
  266. package/lib/appui-react/popup/PopupManager.d.ts.map +1 -1
  267. package/lib/appui-react/popup/PopupManager.js +4 -4
  268. package/lib/appui-react/popup/PopupManager.js.map +1 -1
  269. package/lib/appui-react/popup/PositionPopup.js +2 -2
  270. package/lib/appui-react/popup/PositionPopup.js.map +1 -1
  271. package/lib/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  272. package/lib/appui-react/popup/ToolbarPopup.js +1 -1
  273. package/lib/appui-react/popup/ToolbarPopup.js.map +1 -1
  274. package/lib/appui-react/preview/PreviewFeatures.d.ts +3 -5
  275. package/lib/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  276. package/lib/appui-react/preview/PreviewFeatures.js +1 -2
  277. package/lib/appui-react/preview/PreviewFeatures.js.map +1 -1
  278. package/lib/appui-react/preview/allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.d.ts +5 -0
  279. package/lib/appui-react/preview/allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.d.ts.map +1 -0
  280. package/lib/appui-react/preview/{allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.js → allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.js} +5 -5
  281. package/lib/appui-react/preview/allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.js.map +1 -0
  282. package/lib/appui-react/preview/control-widget-visibility/NavigationWidget.d.ts +1 -1
  283. package/lib/appui-react/preview/control-widget-visibility/NavigationWidget.d.ts.map +1 -1
  284. package/lib/appui-react/preview/control-widget-visibility/NavigationWidget.js +1 -1
  285. package/lib/appui-react/preview/control-widget-visibility/NavigationWidget.js.map +1 -1
  286. package/lib/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts +1 -1
  287. package/lib/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts.map +1 -1
  288. package/lib/appui-react/preview/enable-maximized-widget/MaximizedWidget.js.map +1 -1
  289. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts +1 -4
  290. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts.map +1 -1
  291. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +13 -13
  292. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  293. package/lib/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.d.ts +1 -1
  294. package/lib/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.d.ts.map +1 -1
  295. package/lib/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.js +1 -1
  296. package/lib/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.js.map +1 -1
  297. package/lib/appui-react/preview/widget-action-dropdown/MoreButton.d.ts +1 -1
  298. package/lib/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  299. package/lib/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  300. package/lib/appui-react/redux/ConfigurableUiState.d.ts.map +1 -1
  301. package/lib/appui-react/redux/ConfigurableUiState.js +1 -1
  302. package/lib/appui-react/redux/ConfigurableUiState.js.map +1 -1
  303. package/lib/appui-react/redux/FrameworkState.d.ts +1 -1
  304. package/lib/appui-react/redux/FrameworkState.js.map +1 -1
  305. package/lib/appui-react/redux/ReducerRegistry.js +1 -1
  306. package/lib/appui-react/redux/ReducerRegistry.js.map +1 -1
  307. package/lib/appui-react/redux/SessionState.d.ts +2 -2
  308. package/lib/appui-react/redux/SessionState.d.ts.map +1 -1
  309. package/lib/appui-react/redux/SessionState.js.map +1 -1
  310. package/lib/appui-react/redux/StateManager.js +2 -2
  311. package/lib/appui-react/redux/StateManager.js.map +1 -1
  312. package/lib/appui-react/redux/connectIModel.js +1 -1
  313. package/lib/appui-react/redux/connectIModel.js.map +1 -1
  314. package/lib/appui-react/redux/redux-ts.js.map +1 -1
  315. package/lib/appui-react/selection/SelectionContextItemDef.js +2 -2
  316. package/lib/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  317. package/lib/appui-react/settings/SettingsManager.js +1 -1
  318. package/lib/appui-react/settings/SettingsManager.js.map +1 -1
  319. package/lib/appui-react/settings/quantityformatting/QuantityFormat.js +3 -3
  320. package/lib/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  321. package/lib/appui-react/settings/ui/UiSettingsPage.js +5 -5
  322. package/lib/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  323. package/lib/appui-react/shared/ActionButtonItemDef.js +1 -1
  324. package/lib/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  325. package/lib/appui-react/shared/AnyItemDef.js.map +1 -1
  326. package/lib/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  327. package/lib/appui-react/shared/CommandItemDef.js +1 -1
  328. package/lib/appui-react/shared/CommandItemDef.js.map +1 -1
  329. package/lib/appui-react/shared/CustomItemDef.js +1 -1
  330. package/lib/appui-react/shared/CustomItemDef.js.map +1 -1
  331. package/lib/appui-react/shared/CustomItemProps.js.map +1 -1
  332. package/lib/appui-react/shared/GroupItemProps.js.map +1 -1
  333. package/lib/appui-react/shared/ItemDefBase.js.map +1 -1
  334. package/lib/appui-react/shared/ItemMap.js +1 -1
  335. package/lib/appui-react/shared/ItemMap.js.map +1 -1
  336. package/lib/appui-react/shared/ItemProps.js.map +1 -1
  337. package/lib/appui-react/shared/MenuItem.js +1 -1
  338. package/lib/appui-react/shared/MenuItem.js.map +1 -1
  339. package/lib/appui-react/shared/ToolItemDef.js +1 -1
  340. package/lib/appui-react/shared/ToolItemDef.js.map +1 -1
  341. package/lib/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  342. package/lib/appui-react/stagepanels/StagePanelDef.js +2 -2
  343. package/lib/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  344. package/lib/appui-react/statusbar/Field.js.map +1 -1
  345. package/lib/appui-react/statusbar/Indicator.js +2 -2
  346. package/lib/appui-react/statusbar/Indicator.js.map +1 -1
  347. package/lib/appui-react/statusbar/LabelIndicator.js +2 -2
  348. package/lib/appui-react/statusbar/LabelIndicator.js.map +1 -1
  349. package/lib/appui-react/statusbar/Overflow.js.map +1 -1
  350. package/lib/appui-react/statusbar/Separator.js +1 -1
  351. package/lib/appui-react/statusbar/Separator.js.map +1 -1
  352. package/lib/appui-react/statusbar/StatusBar.js.map +1 -1
  353. package/lib/appui-react/statusbar/StatusBarComposer.js +6 -6
  354. package/lib/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  355. package/lib/appui-react/statusbar/StatusBarItem.js.map +1 -1
  356. package/lib/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  357. package/lib/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  358. package/lib/appui-react/statusbar/dialog/Button.js.map +1 -1
  359. package/lib/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  360. package/lib/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
  361. package/lib/appui-react/statusbar/popup/Popup.js +2 -2
  362. package/lib/appui-react/statusbar/popup/Popup.js.map +1 -1
  363. package/lib/appui-react/statusfields/ActivityCenter.js +2 -2
  364. package/lib/appui-react/statusfields/ActivityCenter.js.map +1 -1
  365. package/lib/appui-react/statusfields/SectionsField.js.map +1 -1
  366. package/lib/appui-react/statusfields/SelectionCount.js.map +1 -1
  367. package/lib/appui-react/statusfields/SelectionInfo.js +2 -2
  368. package/lib/appui-react/statusfields/SelectionInfo.js.map +1 -1
  369. package/lib/appui-react/statusfields/SelectionScope.js +3 -3
  370. package/lib/appui-react/statusfields/SelectionScope.js.map +1 -1
  371. package/lib/appui-react/statusfields/SnapMode.js +2 -2
  372. package/lib/appui-react/statusfields/SnapMode.js.map +1 -1
  373. package/lib/appui-react/statusfields/ViewAttributes.d.ts +1 -1
  374. package/lib/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  375. package/lib/appui-react/statusfields/ViewAttributes.js +1 -1
  376. package/lib/appui-react/statusfields/ViewAttributes.js.map +1 -1
  377. package/lib/appui-react/statusfields/message-center/MessageCenterField.js +1 -1
  378. package/lib/appui-react/statusfields/message-center/MessageCenterField.js.map +1 -1
  379. package/lib/appui-react/statusfields/message-center/MessageCenterMessage.js.map +1 -1
  380. package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts +1 -1
  381. package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  382. package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  383. package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  384. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +11 -7
  385. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  386. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js +27 -9
  387. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  388. package/lib/appui-react/syncui/InternalSyncUiEventDispatcher.js +2 -2
  389. package/lib/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -1
  390. package/lib/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  391. package/lib/appui-react/syncui/SyncUiEventDispatcher.js +3 -8
  392. package/lib/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  393. package/lib/appui-react/syncui/UiSyncEvent.js +1 -1
  394. package/lib/appui-react/syncui/UiSyncEvent.js.map +1 -1
  395. package/lib/appui-react/theme/ThemeManager.d.ts +1 -1
  396. package/lib/appui-react/theme/ThemeManager.js +2 -2
  397. package/lib/appui-react/theme/ThemeManager.js.map +1 -1
  398. package/lib/appui-react/toolbar/GroupItem.js +1 -1
  399. package/lib/appui-react/toolbar/GroupItem.js.map +1 -1
  400. package/lib/appui-react/toolbar/Toolbar.js.map +1 -1
  401. package/lib/appui-react/toolbar/ToolbarComposer.js +3 -3
  402. package/lib/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  403. package/lib/appui-react/toolbar/ToolbarHelper.js +4 -4
  404. package/lib/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  405. package/lib/appui-react/toolbar/ToolbarItem.js.map +1 -1
  406. package/lib/appui-react/toolbar/ToolbarItemUtilities.js +1 -1
  407. package/lib/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  408. package/lib/appui-react/toolbar/ToolbarItemsManager.js +10 -10
  409. package/lib/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  410. package/lib/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  411. package/lib/appui-react/toolbar/new-toolbars/Badge.d.ts +1 -1
  412. package/lib/appui-react/toolbar/new-toolbars/Badge.d.ts.map +1 -1
  413. package/lib/appui-react/toolbar/new-toolbars/Badge.js +1 -1
  414. package/lib/appui-react/toolbar/new-toolbars/Badge.js.map +1 -1
  415. package/lib/appui-react/toolbar/new-toolbars/GroupItem.js +2 -2
  416. package/lib/appui-react/toolbar/new-toolbars/GroupItem.js.map +1 -1
  417. package/lib/appui-react/toolbar/new-toolbars/Item.js +1 -1
  418. package/lib/appui-react/toolbar/new-toolbars/Item.js.map +1 -1
  419. package/lib/appui-react/toolbar/new-toolbars/ToolGroup.js.map +1 -1
  420. package/lib/appui-react/toolbar/new-toolbars/useOverflow.d.ts.map +1 -1
  421. package/lib/appui-react/toolbar/useDefaultToolbarItems.js +1 -1
  422. package/lib/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  423. package/lib/appui-react/toolbar/useUiItemsProviderToolbarItems.js +1 -1
  424. package/lib/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  425. package/lib/appui-react/tools/CoreToolDefinitions.js +2 -2
  426. package/lib/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  427. package/lib/appui-react/tools/KeyinPaletteTools.d.ts +1 -1
  428. package/lib/appui-react/tools/OpenSettingsTool.d.ts +1 -1
  429. package/lib/appui-react/tools/RestoreLayoutTool.d.ts +2 -2
  430. package/lib/appui-react/tools/ToolbarItems.js +1 -1
  431. package/lib/appui-react/tools/ToolbarItems.js.map +1 -1
  432. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.d.ts.map +1 -1
  433. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -3
  434. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  435. package/lib/appui-react/toolsettings/InternalToolSettingsManager.js +2 -2
  436. package/lib/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  437. package/lib/appui-react/toolsettings/ToolInformation.js +1 -1
  438. package/lib/appui-react/toolsettings/ToolInformation.js.map +1 -1
  439. package/lib/appui-react/toolsettings/ToolUiProvider.js +1 -1
  440. package/lib/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
  441. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +5 -5
  442. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js +1 -1
  443. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  444. package/lib/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  445. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js +4 -4
  446. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  447. package/lib/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  448. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +3 -3
  449. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  450. package/lib/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  451. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -3
  452. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  453. package/lib/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  454. package/lib/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -1
  455. package/lib/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  456. package/lib/appui-react/ui-items-provider/UiItemsManager.js +3 -3
  457. package/lib/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  458. package/lib/appui-react/uiadmin/FrameworkUiAdmin.js +3 -3
  459. package/lib/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  460. package/lib/appui-react/uiprovider/ComponentGenerator.d.ts.map +1 -1
  461. package/lib/appui-react/uistate/AppUiSettings.js +2 -2
  462. package/lib/appui-react/uistate/AppUiSettings.js.map +1 -1
  463. package/lib/appui-react/uistate/LocalStateStorage.js +1 -1
  464. package/lib/appui-react/uistate/LocalStateStorage.js.map +1 -1
  465. package/lib/appui-react/uistate/UiStateStorage.js +1 -1
  466. package/lib/appui-react/uistate/UiStateStorage.js.map +1 -1
  467. package/lib/appui-react/uistate/useReduxFrameworkState.js +1 -1
  468. package/lib/appui-react/uistate/useReduxFrameworkState.js.map +1 -1
  469. package/lib/appui-react/uistate/useUiStateStorage.js +1 -1
  470. package/lib/appui-react/uistate/useUiStateStorage.js.map +1 -1
  471. package/lib/appui-react/utils/PropsHelper.js +5 -5
  472. package/lib/appui-react/utils/PropsHelper.js.map +1 -1
  473. package/lib/appui-react/utils/RectangleProps.js.map +1 -1
  474. package/lib/appui-react/utils/SizeProps.js.map +1 -1
  475. package/lib/appui-react/utils/ViewUtilities.d.ts.map +1 -1
  476. package/lib/appui-react/utils/ViewUtilities.js.map +1 -1
  477. package/lib/appui-react/utils/getActiveViewport.js +1 -1
  478. package/lib/appui-react/utils/getActiveViewport.js.map +1 -1
  479. package/lib/appui-react/widget-panels/DockedBar.js.map +1 -1
  480. package/lib/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  481. package/lib/appui-react/widget-panels/Frontstage.js +9 -7
  482. package/lib/appui-react/widget-panels/Frontstage.js.map +1 -1
  483. package/lib/appui-react/widget-panels/StatusBar.js +5 -5
  484. package/lib/appui-react/widget-panels/StatusBar.js.map +1 -1
  485. package/lib/appui-react/widget-panels/Tab.js +4 -4
  486. package/lib/appui-react/widget-panels/Tab.js.map +1 -1
  487. package/lib/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  488. package/lib/appui-react/widget-panels/ToolSettings.js +8 -5
  489. package/lib/appui-react/widget-panels/ToolSettings.js.map +1 -1
  490. package/lib/appui-react/widgets/BackstageAppButton.js +2 -2
  491. package/lib/appui-react/widgets/BackstageAppButton.js.map +1 -1
  492. package/lib/appui-react/widgets/BasicNavigationWidget.js +1 -1
  493. package/lib/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  494. package/lib/appui-react/widgets/BasicToolWidget.js +1 -1
  495. package/lib/appui-react/widgets/BasicToolWidget.js.map +1 -1
  496. package/lib/appui-react/widgets/ContentToolWidgetComposer.js +1 -1
  497. package/lib/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  498. package/lib/appui-react/widgets/NavigationWidgetComposer.js +10 -10
  499. package/lib/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  500. package/lib/appui-react/widgets/StatusBarWidgetComposerControl.js +1 -1
  501. package/lib/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  502. package/lib/appui-react/widgets/ToolWidgetComposer.js +1 -1
  503. package/lib/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  504. package/lib/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  505. package/lib/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  506. package/lib/appui-react/widgets/Widget.d.ts +11 -2
  507. package/lib/appui-react/widgets/Widget.d.ts.map +1 -1
  508. package/lib/appui-react/widgets/Widget.js.map +1 -1
  509. package/lib/appui-react/widgets/WidgetControl.js +1 -1
  510. package/lib/appui-react/widgets/WidgetControl.js.map +1 -1
  511. package/lib/appui-react/widgets/WidgetDef.js +21 -21
  512. package/lib/appui-react/widgets/WidgetDef.js.map +1 -1
  513. package/lib/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  514. package/lib/appui-react/widgets/useWidget.d.ts.map +1 -1
  515. package/lib/appui-react.js +1 -1
  516. package/lib/appui-react.js.map +1 -1
  517. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +0 -15
  518. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +0 -15
  519. package/package.json +20 -21
  520. package/lib/appui-react/layout/widget/tools/button/Back.d.ts +0 -21
  521. package/lib/appui-react/layout/widget/tools/button/Back.d.ts.map +0 -1
  522. package/lib/appui-react/layout/widget/tools/button/Back.js +0 -23
  523. package/lib/appui-react/layout/widget/tools/button/Back.js.map +0 -1
  524. package/lib/appui-react/preview/allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.d.ts +0 -5
  525. package/lib/appui-react/preview/allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.d.ts.map +0 -1
  526. package/lib/appui-react/preview/allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.js.map +0 -1
  527. package/lib/appui-react/preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.d.ts +0 -5
  528. package/lib/appui-react/preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.d.ts.map +0 -1
  529. package/lib/appui-react/preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.js +0 -13
  530. package/lib/appui-react/preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SessionState.js","sourceRoot":"","sources":["../../../src/appui-react/redux/SessionState.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAoC7C;;;;;GAKG;AACH,MAAM,CAAN,IAAY,oBAUX;AAVD,WAAY,oBAAoB;IAC9B,mFAA2D,CAAA;IAC3D,mGAA2E,CAAA;IAC3E,8EAAsD,CAAA;IACtD,8EAAsD,CAAA;IACtD,kFAA0D,CAAA;IAC1D,iGAAyE,CAAA;IACzE,4EAAoD,CAAA;IACpD,mFAA2D,CAAA;IAC3D,4EAAoD,CAAA;AACtD,CAAC,EAVW,oBAAoB,KAApB,oBAAoB,QAU/B;AA6BD,MAAM,qBAAqB,GAAG;IAC5B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,SAAS;CAC6B,CAAC;AAEhD,iDAAiD;AACjD,MAAM,mBAAmB,GAAiB;IACxC,yDAAyD;IACzD,gBAAgB,EAAE,CAAC;IACnB,gHAAgH;IAChH,wBAAwB,EAAE,CAAC,qBAAqB,CAAC;IACjD,uHAAuH;IACvH,oBAAoB,EAAE,qBAAqB,CAAC,EAAE;IAC9C,uGAAuG;IACvG,QAAQ,EAAE,EAAE;IACZ,8BAA8B,EAAE,SAAS;IACzC,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,SAAS;IAC3B,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,SAAS;CAC7B,CAAC;AAkBF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,CAAC,QAAgB,EAAE,EAAE,CACtC,YAAY,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAChE,2BAA2B,EAAE,CAC3B,wBAAsD,EACtD,EAAE,CACF,YAAY,CACV,oBAAoB,CAAC,2BAA2B,EAChD,wBAAwB,CACzB;IACH,iCAAiC,EAAE,CAAC,uBAA+B,EAAE,EAAE,CACrE,YAAY,CACV,oBAAoB,CAAC,iCAAiC,EACtD,uBAAuB,CACxB;IACH,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE,CACnC,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC7D,mBAAmB,EAAE,CAAC,SAAc,EAAE,EAAE,CACtC,YAAY,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,SAAS,CAAC;IACnE,mBAAmB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAC3C,YAAY,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,WAAW,CAAC;IACrE,mBAAmB,EAAE,CAAC,gBAAqB,EAAE,EAAE,CAC7C,YAAY,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC1E,iBAAiB,EAAE,CAAC,oBAA4B,EAAE,EAAE,CAClD,YAAY,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;IAC5E,gBAAgB,EAAE,CAAC,cAAkD,EAAE,EAAE,CACvE,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,cAAc,CAAC;CACtE,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAC;AAQzE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAsB,mBAAmB,EACzC,MAAgC;IAEhC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9C,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;gBAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;;gBACnD,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;QAChD,CAAC;QACD,KAAK,oBAAoB,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACtD,MAAM,YAAY,GAAiC,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;gBAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC;;gBAE5D,OAAO,EAAE,GAAG,KAAK,EAAE,wBAAwB,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC3E,CAAC;QACD,KAAK,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC5C,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;gBAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,oBAAoB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;;gBACvD,OAAO,EAAE,GAAG,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,EAAE,EAAE,CAAC;QAC3E,CAAC;QACD,KAAK,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC5C,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;gBAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;;gBAC3C,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;QACD,KAAK,oBAAoB,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,OAAO,EAAE,GAAG,KAAK,EAAE,8BAA8B,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACtE,CAAC;QACD,KAAK,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC3C,OAAO,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACrD,CAAC;QACD,KAAK,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9C,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACxD,CAAC;QACD,KAAK,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9C,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACxD,CAAC;QACD,KAAK,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC3C,OAAO;gBACL,GAAG,KAAK;gBACR,iBAAiB,EAAE,MAAM,CAAC,OAA4B;gBACtD,cAAc,EAAE,MAAM,CAAC,OAAyB;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","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 State\n */\n\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { CursorMenuItemProps, MenuItemProps } from \"../shared/MenuItem.js\";\nimport type { ActionsUnion, DeepReadonly } from \"./redux-ts.js\";\nimport type { UiFramework } from \"../UiFramework.js\";\nimport { createAction } from \"./redux-ts.js\";\nimport type { useActiveIModelConnection } from \"../hooks/useActiveIModelConnection.js\";\nimport { SelectionScopeField } from \"../statusfields/SelectionScope.js\";\n\n/** Definition of a cursor menu. If menuItems are empty the menu control is not displayed.\n * @public\n */\nexport interface CursorMenuPayload {\n position: XAndY;\n childWindowId?: string;\n items: CursorMenuItemProps[];\n}\n\n/* eslint-disable deprecation/deprecation */\n\n/** PresentationSelectionScope holds the id and the localized label for a selection scope supported for a specific iModel.\n * Added to avoid an api-extract error caused by using SelectionScope.\n * @public\n * @deprecated in 4.15.0. Use `selectionScopes` prop of {@link SelectionScopeField} component.\n */\nexport interface PresentationSelectionScope {\n id: string;\n label: string;\n}\n\n/** Definition of data added to Redux store to define cursor menu. If menuItems are empty the menu control is not displayed.\n * To close the menu clear the menuItems or pass in undefined as the CursorData.\n * @public\n * @deprecated in 4.11.0. Use {@link CursorMenuPayload} instead.\n */\nexport interface CursorMenuData {\n position: XAndY;\n childWindowId?: string;\n items: MenuItemProps[];\n}\n\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\n * Since these are also used as sync ids they should be in lowercase.\n * @note This is used by sync UI event APIs.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport enum SessionStateActionId {\n SetNumItemsSelected = \"sessionstate:set-num-items-selected\",\n SetAvailableSelectionScopes = \"sessionstate:set-available-selection-scopes\",\n SetSelectionScope = \"sessionstate:set-selection-scope\",\n SetActiveIModelId = \"sessionstate:set-active-imodelid\",\n SetIModelConnection = \"sessionstate:set-imodel-connection\",\n SetDefaultIModelViewportControlId = \"sessionstate:set-default-viewportid\",\n SetDefaultViewId = \"sessionstate:set-default-viewid\",\n SetDefaultViewState = \"sessionstate:set-default-view-state\",\n UpdateCursorMenu = \"sessionstate:update-cursor-menu\",\n}\n\n/** The portion of state managed by the SessionStateReducer.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface SessionState {\n /** @deprecated in 4.15.0. Use {@link UiFramework.getNumItemsSelected} instead. */\n numItemsSelected: number;\n /** @deprecated in 4.15.0. Use `selectionScopes` prop of {@link SelectionScopeField} instead. */\n availableSelectionScopes: PresentationSelectionScope[];\n /** @deprecated in 4.15.0. Use `activeScope` prop of {@link SelectionScopeField} instead. */\n activeSelectionScope: string;\n /** @deprecated in 4.15.0. Not used by AppUI components. */\n iModelId: string;\n /** @deprecated in 4.15.0. Not used by AppUI components. */\n defaultIModelViewportControlId: string | undefined;\n /** @deprecated in 4.15.0. Not used by AppUI components. */\n defaultViewId: string | undefined;\n /** @deprecated in 4.15.0. Use {@link UiFramework.getDefaultViewState} or {@link useActiveIModelConnection} instead. */\n defaultViewState: any;\n /** @deprecated in 4.15.0. Use {@link UiFramework.getIModelConnection} or {@link useActiveIModelConnection} instead. */\n iModelConnection: any;\n /** @deprecated in 4.11.0. Use {@link CursorMenuPayload} instead */\n cursorMenuData: CursorMenuData | undefined;\n /** @deprecated in 4.15.0. Use cursor APIs of {@link UiFramework}. */\n cursorMenuPayload: CursorMenuPayload | undefined;\n}\n\nconst defaultSelectionScope = {\n id: \"element\",\n label: \"Element\",\n} as const satisfies PresentationSelectionScope;\n\n/** Used on first call of SessionStateReducer. */\nconst initialSessionState: SessionState = {\n /** number of selected items in Presentation Selection */\n numItemsSelected: 0,\n /** initialize to only support \"Element\" scope, this will be overwritten when iModelConnection is established */\n availableSelectionScopes: [defaultSelectionScope],\n /** initialize to active selection scope to \"Element\", this will be overwritten when iModelConnection is established */\n activeSelectionScope: defaultSelectionScope.id,\n /** set to iModelId if an iModel is active else it is an empty string, so initialize to empty string */\n iModelId: \"\",\n defaultIModelViewportControlId: undefined,\n defaultViewId: undefined,\n defaultViewState: undefined,\n iModelConnection: undefined,\n cursorMenuData: undefined,\n cursorMenuPayload: undefined,\n};\n\n/** An interface that allows redux connected object to dispatch changes to the SessionState reducer.\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface SessionStateActionsProps {\n setActiveIModelId: typeof SessionStateActions.setActiveIModelId;\n setAvailableSelectionScopes: typeof SessionStateActions.setAvailableSelectionScopes;\n setDefaultIModelViewportControlId: typeof SessionStateActions.setDefaultIModelViewportControlId;\n setDefaultViewId: typeof SessionStateActions.setDefaultViewId;\n setDefaultViewState: typeof SessionStateActions.setDefaultViewState;\n setIModelConnection: typeof SessionStateActions.setIModelConnection;\n setNumItemsSelected: typeof SessionStateActions.setNumItemsSelected;\n setSelectionScope: typeof SessionStateActions.setSelectionScope;\n updateCursorMenu: typeof SessionStateActions.updateCursorMenu;\n}\n\n/** An object with a function that creates each SessionStateReducer that can be handled by our reducer.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport const SessionStateActions = {\n setActiveIModelId: (iModelId: string) =>\n createAction(SessionStateActionId.SetActiveIModelId, iModelId),\n setAvailableSelectionScopes: (\n availableSelectionScopes: PresentationSelectionScope[]\n ) =>\n createAction(\n SessionStateActionId.SetAvailableSelectionScopes,\n availableSelectionScopes\n ),\n setDefaultIModelViewportControlId: (iModelViewportControlId: string) =>\n createAction(\n SessionStateActionId.SetDefaultIModelViewportControlId,\n iModelViewportControlId\n ),\n setDefaultViewId: (viewId: string) =>\n createAction(SessionStateActionId.SetDefaultViewId, viewId),\n setDefaultViewState: (viewState: any) =>\n createAction(SessionStateActionId.SetDefaultViewState, viewState),\n setNumItemsSelected: (numSelected: number) =>\n createAction(SessionStateActionId.SetNumItemsSelected, numSelected),\n setIModelConnection: (iModelConnection: any) =>\n createAction(SessionStateActionId.SetIModelConnection, iModelConnection),\n setSelectionScope: (activeSelectionScope: string) =>\n createAction(SessionStateActionId.SetSelectionScope, activeSelectionScope),\n updateCursorMenu: (cursorMenuData: CursorMenuData | CursorMenuPayload) =>\n createAction(SessionStateActionId.UpdateCursorMenu, cursorMenuData),\n};\n\n/** Object that contains available actions that modify SessionState. Parent control's props should\n * extend from SessionStateActionsProps before using this in Redux 'connect' function.\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport const sessionStateMapDispatchToProps = { ...SessionStateActions };\n\n/** Union of SessionState Redux actions\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport type SessionStateActionsUnion = ActionsUnion<typeof SessionStateActions>;\n\n/** Handles actions to update SessionState.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport function SessionStateReducer(\n state: SessionState = initialSessionState,\n action: SessionStateActionsUnion\n): DeepReadonly<SessionState> {\n switch (action.type) {\n case SessionStateActionId.SetNumItemsSelected: {\n if (undefined !== action.payload)\n return { ...state, numItemsSelected: action.payload };\n else return { ...state, numItemsSelected: 0 };\n }\n case SessionStateActionId.SetAvailableSelectionScopes: {\n const payloadArray: PresentationSelectionScope[] = [];\n action.payload.forEach((scope) => payloadArray.push(scope));\n if (undefined !== action.payload)\n return { ...state, availableSelectionScopes: payloadArray };\n else\n return { ...state, availableSelectionScopes: [defaultSelectionScope] };\n }\n case SessionStateActionId.SetSelectionScope: {\n if (undefined !== action.payload)\n return { ...state, activeSelectionScope: action.payload };\n else return { ...state, activeSelectionScope: defaultSelectionScope.id };\n }\n case SessionStateActionId.SetActiveIModelId: {\n if (undefined !== action.payload)\n return { ...state, iModelId: action.payload };\n else return { ...state, iModelId: \"\" };\n }\n case SessionStateActionId.SetDefaultIModelViewportControlId: {\n return { ...state, defaultIModelViewportControlId: action.payload };\n }\n case SessionStateActionId.SetDefaultViewId: {\n return { ...state, defaultViewId: action.payload };\n }\n case SessionStateActionId.SetDefaultViewState: {\n return { ...state, defaultViewState: action.payload };\n }\n case SessionStateActionId.SetIModelConnection: {\n return { ...state, iModelConnection: action.payload };\n }\n case SessionStateActionId.UpdateCursorMenu: {\n return {\n ...state,\n cursorMenuPayload: action.payload as CursorMenuPayload,\n cursorMenuData: action.payload as CursorMenuData,\n };\n }\n }\n\n return state;\n}\n"]}
1
+ {"version":3,"file":"SessionState.js","sourceRoot":"","sources":["../../../src/appui-react/redux/SessionState.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 State\n */\n\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { CursorMenuItemProps, MenuItemProps } from \"../shared/MenuItem.js\";\nimport type { ActionsUnion, DeepReadonly } from \"./redux-ts.js\";\nimport type { UiFramework } from \"../UiFramework.js\";\nimport { createAction } from \"./redux-ts.js\";\nimport type { useActiveIModelConnection } from \"../hooks/useActiveIModelConnection.js\";\nimport { SelectionScopeField } from \"../statusfields/SelectionScope.js\";\n\n/** Definition of a cursor menu. If menuItems are empty the menu control is not displayed.\n * @public\n */\nexport interface CursorMenuPayload {\n position: XAndY;\n childWindowId?: string;\n items: CursorMenuItemProps[];\n}\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** PresentationSelectionScope holds the id and the localized label for a selection scope supported for a specific iModel.\n * Added to avoid an api-extract error caused by using SelectionScope.\n * @public\n * @deprecated in 4.15.0. Use `selectionScopes` prop of {@link SelectionScopeField} component.\n */\nexport interface PresentationSelectionScope {\n id: string;\n label: string;\n}\n\n/** Definition of data added to Redux store to define cursor menu. If menuItems are empty the menu control is not displayed.\n * To close the menu clear the menuItems or pass in undefined as the CursorData.\n * @public\n * @deprecated in 4.11.0. Use {@link CursorMenuPayload} instead.\n */\nexport interface CursorMenuData {\n position: XAndY;\n childWindowId?: string;\n items: MenuItemProps[];\n}\n\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\n * Since these are also used as sync ids they should be in lowercase.\n * @note This is used by sync UI event APIs.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport enum SessionStateActionId {\n SetNumItemsSelected = \"sessionstate:set-num-items-selected\",\n SetAvailableSelectionScopes = \"sessionstate:set-available-selection-scopes\",\n SetSelectionScope = \"sessionstate:set-selection-scope\",\n SetActiveIModelId = \"sessionstate:set-active-imodelid\",\n SetIModelConnection = \"sessionstate:set-imodel-connection\",\n SetDefaultIModelViewportControlId = \"sessionstate:set-default-viewportid\",\n SetDefaultViewId = \"sessionstate:set-default-viewid\",\n SetDefaultViewState = \"sessionstate:set-default-view-state\",\n UpdateCursorMenu = \"sessionstate:update-cursor-menu\",\n}\n\n/** The portion of state managed by the SessionStateReducer.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface SessionState {\n /** @deprecated in 4.15.0. Use {@link UiFramework.getNumItemsSelected} instead. */\n numItemsSelected: number;\n /** @deprecated in 4.15.0. Use `selectionScopes` prop of {@link SelectionScopeField} instead. */\n availableSelectionScopes: PresentationSelectionScope[];\n /** @deprecated in 4.15.0. Use `activeScope` prop of {@link SelectionScopeField} instead. */\n activeSelectionScope: string;\n /** @deprecated in 4.15.0. Not used by AppUI components. */\n iModelId: string;\n /** @deprecated in 4.15.0. Not used by AppUI components. */\n defaultIModelViewportControlId: string | undefined;\n /** @deprecated in 4.15.0. Not used by AppUI components. */\n defaultViewId: string | undefined;\n /** @deprecated in 4.15.0. Use {@link UiFramework.getDefaultViewState} or {@link useActiveIModelConnection} instead. */\n defaultViewState: any;\n /** @deprecated in 4.15.0. Use {@link UiFramework.getIModelConnection} or {@link useActiveIModelConnection} instead. */\n iModelConnection: any;\n /** @deprecated in 4.11.0. Use {@link CursorMenuPayload} instead */\n cursorMenuData: CursorMenuData | undefined;\n /** @deprecated in 4.15.0. Use cursor APIs of {@link UiFramework}. */\n cursorMenuPayload: CursorMenuPayload | undefined;\n}\n\nconst defaultSelectionScope = {\n id: \"element\",\n label: \"Element\",\n} as const satisfies PresentationSelectionScope;\n\n/** Used on first call of SessionStateReducer. */\nconst initialSessionState: SessionState = {\n /** number of selected items in Presentation Selection */\n numItemsSelected: 0,\n /** initialize to only support \"Element\" scope, this will be overwritten when iModelConnection is established */\n availableSelectionScopes: [defaultSelectionScope],\n /** initialize to active selection scope to \"Element\", this will be overwritten when iModelConnection is established */\n activeSelectionScope: defaultSelectionScope.id,\n /** set to iModelId if an iModel is active else it is an empty string, so initialize to empty string */\n iModelId: \"\",\n defaultIModelViewportControlId: undefined,\n defaultViewId: undefined,\n defaultViewState: undefined,\n iModelConnection: undefined,\n cursorMenuData: undefined,\n cursorMenuPayload: undefined,\n};\n\n/** An interface that allows redux connected object to dispatch changes to the SessionState reducer.\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface SessionStateActionsProps {\n setActiveIModelId: typeof SessionStateActions.setActiveIModelId;\n setAvailableSelectionScopes: typeof SessionStateActions.setAvailableSelectionScopes;\n setDefaultIModelViewportControlId: typeof SessionStateActions.setDefaultIModelViewportControlId;\n setDefaultViewId: typeof SessionStateActions.setDefaultViewId;\n setDefaultViewState: typeof SessionStateActions.setDefaultViewState;\n setIModelConnection: typeof SessionStateActions.setIModelConnection;\n setNumItemsSelected: typeof SessionStateActions.setNumItemsSelected;\n setSelectionScope: typeof SessionStateActions.setSelectionScope;\n updateCursorMenu: typeof SessionStateActions.updateCursorMenu;\n}\n\n/** An object with a function that creates each SessionStateReducer that can be handled by our reducer.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport const SessionStateActions = {\n setActiveIModelId: (iModelId: string) =>\n createAction(SessionStateActionId.SetActiveIModelId, iModelId),\n setAvailableSelectionScopes: (\n availableSelectionScopes: PresentationSelectionScope[]\n ) =>\n createAction(\n SessionStateActionId.SetAvailableSelectionScopes,\n availableSelectionScopes\n ),\n setDefaultIModelViewportControlId: (iModelViewportControlId: string) =>\n createAction(\n SessionStateActionId.SetDefaultIModelViewportControlId,\n iModelViewportControlId\n ),\n setDefaultViewId: (viewId: string) =>\n createAction(SessionStateActionId.SetDefaultViewId, viewId),\n setDefaultViewState: (viewState: any) =>\n createAction(SessionStateActionId.SetDefaultViewState, viewState),\n setNumItemsSelected: (numSelected: number) =>\n createAction(SessionStateActionId.SetNumItemsSelected, numSelected),\n setIModelConnection: (iModelConnection: any) =>\n createAction(SessionStateActionId.SetIModelConnection, iModelConnection),\n setSelectionScope: (activeSelectionScope: string) =>\n createAction(SessionStateActionId.SetSelectionScope, activeSelectionScope),\n updateCursorMenu: (cursorMenuData: CursorMenuData | CursorMenuPayload) =>\n createAction(SessionStateActionId.UpdateCursorMenu, cursorMenuData),\n};\n\n/** Object that contains available actions that modify SessionState. Parent control's props should\n * extend from SessionStateActionsProps before using this in Redux 'connect' function.\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport const sessionStateMapDispatchToProps = { ...SessionStateActions };\n\n/** Union of SessionState Redux actions\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport type SessionStateActionsUnion = ActionsUnion<typeof SessionStateActions>;\n\n/** Handles actions to update SessionState.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport function SessionStateReducer(\n state: SessionState = initialSessionState,\n action: SessionStateActionsUnion\n): DeepReadonly<SessionState> {\n switch (action.type) {\n case SessionStateActionId.SetNumItemsSelected: {\n if (undefined !== action.payload)\n return { ...state, numItemsSelected: action.payload };\n else return { ...state, numItemsSelected: 0 };\n }\n case SessionStateActionId.SetAvailableSelectionScopes: {\n const payloadArray: PresentationSelectionScope[] = [];\n action.payload.forEach((scope) => payloadArray.push(scope));\n if (undefined !== action.payload)\n return { ...state, availableSelectionScopes: payloadArray };\n else\n return { ...state, availableSelectionScopes: [defaultSelectionScope] };\n }\n case SessionStateActionId.SetSelectionScope: {\n if (undefined !== action.payload)\n return { ...state, activeSelectionScope: action.payload };\n else return { ...state, activeSelectionScope: defaultSelectionScope.id };\n }\n case SessionStateActionId.SetActiveIModelId: {\n if (undefined !== action.payload)\n return { ...state, iModelId: action.payload };\n else return { ...state, iModelId: \"\" };\n }\n case SessionStateActionId.SetDefaultIModelViewportControlId: {\n return { ...state, defaultIModelViewportControlId: action.payload };\n }\n case SessionStateActionId.SetDefaultViewId: {\n return { ...state, defaultViewId: action.payload };\n }\n case SessionStateActionId.SetDefaultViewState: {\n return { ...state, defaultViewState: action.payload };\n }\n case SessionStateActionId.SetIModelConnection: {\n return { ...state, iModelConnection: action.payload };\n }\n case SessionStateActionId.UpdateCursorMenu: {\n return {\n ...state,\n cursorMenuPayload: action.payload as CursorMenuPayload,\n cursorMenuData: action.payload as CursorMenuData,\n };\n }\n }\n\n return state;\n}\n"]}
@@ -38,7 +38,7 @@ export class StateManager {
38
38
  const dynamicallyRegisteredReducers = ReducerRegistryInstance.getReducers();
39
39
  let allReducers = this.combineDynamicAndDefaultReducers(dynamicallyRegisteredReducers, this._defaultReducers);
40
40
  // create the Redux Store.
41
- // eslint-disable-next-line deprecation/deprecation
41
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
42
42
  this._store = createStore(allReducers, window.__REDUX_DEVTOOLS_EXTENSION__ &&
43
43
  window.__REDUX_DEVTOOLS_EXTENSION__());
44
44
  ReducerRegistryInstance.setChangeListener((newDynamicReducers) => {
@@ -66,7 +66,7 @@ export class StateManager {
66
66
  return StateManager._singletonStore;
67
67
  }
68
68
  else {
69
- // eslint-disable-next-line deprecation/deprecation
69
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
70
70
  throw new UiError(StateManager._LOG_CATEGORY, `Redux Store has not been initialized`);
71
71
  }
72
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../../src/appui-react/redux/StateManager.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 State\n */\n\nimport type { ReducersMapObject, Store } from \"redux\";\nimport { combineReducers, createStore } from \"redux\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { FrameworkReducer, type FrameworkState } from \"./FrameworkState.js\";\nimport type { NameToReducerMap } from \"./ReducerRegistry.js\";\nimport { ReducerRegistryInstance } from \"./ReducerRegistry.js\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Generic 'root' state for the appui-react package. Since this state contains common values needed by many applications\n * it is automatically added to the Redux store when using [[StateManager]].\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface FrameworkRootState {\n frameworkState: FrameworkState;\n}\n\n/** Centralized state management class using Redux actions, reducers and store. This class monitors the ReducerRegistry and will\n * automatically update the store when a new reducer is registered. This allows the store to be incrementally constructed as modules\n * and/or extensions are loaded.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport class StateManager {\n private static _LOG_CATEGORY = \"StateManager\";\n private _store: Store<any>;\n private _defaultReducers: NameToReducerMap;\n\n private static _singletonStore: Store<any> | undefined;\n\n /**\n * StateManager construct.\n * @param defaultReducers Default set of Reducers used by the current application. If this object does not contain the [[FrameworkReducer]] it will automatically be added.\n */\n constructor(defaultReducers?: NameToReducerMap) {\n if (defaultReducers) {\n this._defaultReducers = defaultReducers;\n const keys = Object.keys(defaultReducers);\n // ensure frameworkState is included in the set of defaultReducers\n if (-1 === keys.findIndex((key) => key === \"frameworkState\"))\n this._defaultReducers = {\n ...defaultReducers,\n frameworkState: FrameworkReducer,\n };\n } else {\n this._defaultReducers = { frameworkState: FrameworkReducer };\n }\n\n const dynamicallyRegisteredReducers = ReducerRegistryInstance.getReducers();\n let allReducers: any = this.combineDynamicAndDefaultReducers(\n dynamicallyRegisteredReducers,\n this._defaultReducers\n );\n\n // create the Redux Store.\n // eslint-disable-next-line deprecation/deprecation\n this._store = createStore(\n allReducers,\n (window as any).__REDUX_DEVTOOLS_EXTENSION__ &&\n (window as any).__REDUX_DEVTOOLS_EXTENSION__()\n );\n\n ReducerRegistryInstance.setChangeListener((newDynamicReducers) => {\n allReducers = this.combineDynamicAndDefaultReducers(\n newDynamicReducers,\n this._defaultReducers\n );\n this._store.replaceReducer(allReducers);\n });\n StateManager._singletonStore = this._store;\n }\n\n /** Method to test if the StateManager has been initialized.\n * @param suppressErrorLog If true and the StateManager is not initialized a log message will be output.\n */\n\n public static isInitialized(suppressErrorLog = false): boolean {\n if (!StateManager._singletonStore) {\n if (!suppressErrorLog)\n Logger.logError(\n StateManager._LOG_CATEGORY,\n \"Accessing store before it is created.\"\n );\n return false;\n } else {\n return true;\n }\n }\n\n /** Return the current Redux store. Useful when using connect method to connect a Ui Component to the store. */\n public static get store(): Store<any> {\n if (StateManager.isInitialized()) {\n return StateManager._singletonStore!;\n } else {\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n StateManager._LOG_CATEGORY,\n `Redux Store has not been initialized`\n );\n }\n }\n\n /** Return the current state from the Redux store. */\n public static get state(): any {\n if (StateManager.isInitialized()) {\n return StateManager._singletonStore!.getState();\n } else {\n return undefined;\n }\n }\n\n private combineDynamicAndDefaultReducers(\n dynamicallyRegisteredReducers: ReducersMapObject,\n defaultReducers: ReducersMapObject\n ) {\n const allReducers = {\n ...defaultReducers,\n ...dynamicallyRegisteredReducers,\n };\n\n return combineReducers(allReducers);\n }\n\n /** To be used only in unit test\n * @internal\n */\n public static clearStore() {\n StateManager._singletonStore = undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../../src/appui-react/redux/StateManager.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 State\n */\n\nimport type { ReducersMapObject, Store } from \"redux\";\nimport { combineReducers, createStore } from \"redux\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { FrameworkReducer, type FrameworkState } from \"./FrameworkState.js\";\nimport type { NameToReducerMap } from \"./ReducerRegistry.js\";\nimport { ReducerRegistryInstance } from \"./ReducerRegistry.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Generic 'root' state for the appui-react package. Since this state contains common values needed by many applications\n * it is automatically added to the Redux store when using [[StateManager]].\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface FrameworkRootState {\n frameworkState: FrameworkState;\n}\n\n/** Centralized state management class using Redux actions, reducers and store. This class monitors the ReducerRegistry and will\n * automatically update the store when a new reducer is registered. This allows the store to be incrementally constructed as modules\n * and/or extensions are loaded.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport class StateManager {\n private static _LOG_CATEGORY = \"StateManager\";\n private _store: Store<any>;\n private _defaultReducers: NameToReducerMap;\n\n private static _singletonStore: Store<any> | undefined;\n\n /**\n * StateManager construct.\n * @param defaultReducers Default set of Reducers used by the current application. If this object does not contain the [[FrameworkReducer]] it will automatically be added.\n */\n constructor(defaultReducers?: NameToReducerMap) {\n if (defaultReducers) {\n this._defaultReducers = defaultReducers;\n const keys = Object.keys(defaultReducers);\n // ensure frameworkState is included in the set of defaultReducers\n if (-1 === keys.findIndex((key) => key === \"frameworkState\"))\n this._defaultReducers = {\n ...defaultReducers,\n frameworkState: FrameworkReducer,\n };\n } else {\n this._defaultReducers = { frameworkState: FrameworkReducer };\n }\n\n const dynamicallyRegisteredReducers = ReducerRegistryInstance.getReducers();\n let allReducers: any = this.combineDynamicAndDefaultReducers(\n dynamicallyRegisteredReducers,\n this._defaultReducers\n );\n\n // create the Redux Store.\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._store = createStore(\n allReducers,\n (window as any).__REDUX_DEVTOOLS_EXTENSION__ &&\n (window as any).__REDUX_DEVTOOLS_EXTENSION__()\n );\n\n ReducerRegistryInstance.setChangeListener((newDynamicReducers) => {\n allReducers = this.combineDynamicAndDefaultReducers(\n newDynamicReducers,\n this._defaultReducers\n );\n this._store.replaceReducer(allReducers);\n });\n StateManager._singletonStore = this._store;\n }\n\n /** Method to test if the StateManager has been initialized.\n * @param suppressErrorLog If true and the StateManager is not initialized a log message will be output.\n */\n\n public static isInitialized(suppressErrorLog = false): boolean {\n if (!StateManager._singletonStore) {\n if (!suppressErrorLog)\n Logger.logError(\n StateManager._LOG_CATEGORY,\n \"Accessing store before it is created.\"\n );\n return false;\n } else {\n return true;\n }\n }\n\n /** Return the current Redux store. Useful when using connect method to connect a Ui Component to the store. */\n public static get store(): Store<any> {\n if (StateManager.isInitialized()) {\n return StateManager._singletonStore!;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n throw new UiError(\n StateManager._LOG_CATEGORY,\n `Redux Store has not been initialized`\n );\n }\n }\n\n /** Return the current state from the Redux store. */\n public static get state(): any {\n if (StateManager.isInitialized()) {\n return StateManager._singletonStore!.getState();\n } else {\n return undefined;\n }\n }\n\n private combineDynamicAndDefaultReducers(\n dynamicallyRegisteredReducers: ReducersMapObject,\n defaultReducers: ReducersMapObject\n ) {\n const allReducers = {\n ...defaultReducers,\n ...dynamicallyRegisteredReducers,\n };\n\n return combineReducers(allReducers);\n }\n\n /** To be used only in unit test\n * @internal\n */\n public static clearStore() {\n StateManager._singletonStore = undefined;\n }\n}\n"]}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { connect } from "react-redux";
9
9
  import { UiFramework } from "../UiFramework.js";
10
- /* eslint-disable deprecation/deprecation */
10
+ /* eslint-disable @typescript-eslint/no-deprecated */
11
11
  /** Private function that will map store's iModelConnection to the 'iModelConnection', 'iModel', and 'imodel' properties of props. This
12
12
  * is not ideal but it is a result of not having standard prop name for an iModelConnection.
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"connectIModel.js","sourceRoot":"","sources":["../../../src/appui-react/redux/connectIModel.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,4CAA4C;AAE5C;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,eAAoB,EAAE,EAAE;IACpD,OAAO,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE;QACnC,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,8CAA8C;QAE3G,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,eAAe;gBAAE,OAAO,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG;YACjB,gBAAgB,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB;YAC9D,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB;YACpD,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB;SACrD,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO;gBACL,GAAG,UAAU;gBACb,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;aACpC,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,4BAA4B,GAAG,CAAC,eAAoB,EAAE,EAAE;IAC5D,OAAO,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE;QACnC,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,8CAA8C;QAE3G,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG;YACZ,GAAG,QAAQ;YACX,gBAAgB,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB,EAAE,wEAAwE;YACxI,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB,EAAE,yCAAyC;YAC/F,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB,EAAE,uCAAuC;YAC7F,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB;SACxD,CAAC;QACF,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE1D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,eAAqB,EACrB,kBAAwB,EACxB,EAAE;IACF,OAAO,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,eAAqB,EACrB,kBAAwB,EACxB,EAAE;IACF,OAAO,OAAO,CACZ,4BAA4B,CAAC,eAAe,CAAC,EAC7C,kBAAkB,CACnB,CAAC;AACJ,CAAC,CAAC","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 State\n */\n\nimport { connect } from \"react-redux\";\nimport { UiFramework } from \"../UiFramework.js\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Private function that will map store's iModelConnection to the 'iModelConnection', 'iModel', and 'imodel' properties of props. This\n * is not ideal but it is a result of not having standard prop name for an iModelConnection.\n */\nconst iModeMapStateToProps = (mapStateToProps: any) => {\n return (state: any, ownProps: any) => {\n const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name\n\n if (!frameworkState) {\n if (mapStateToProps) return mapStateToProps(state, ownProps);\n return {};\n }\n\n const storeProps = {\n iModelConnection: frameworkState.sessionState.iModelConnection,\n imodel: frameworkState.sessionState.iModelConnection,\n iModel: frameworkState.sessionState.iModelConnection,\n };\n\n if (mapStateToProps) {\n return {\n ...storeProps,\n ...mapStateToProps(state, ownProps),\n };\n }\n\n return storeProps;\n };\n};\n\n/** Function that will map store's iModelConnection and defaultViewState to the props 'iModelConnection', 'iModel', 'imodel',\n * and 'viewState' property of props\n */\nconst iModelAndViewMapStateToProps = (mapStateToProps: any) => {\n return (state: any, ownProps: any) => {\n const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name\n\n if (!frameworkState) return {};\n\n const props = {\n ...ownProps,\n iModelConnection: frameworkState.sessionState.iModelConnection, // this prop is required by Unified Selection (TODO: standardize on use)\n iModel: frameworkState.sessionState.iModelConnection, // this prop is needed by many components\n imodel: frameworkState.sessionState.iModelConnection, // this prop is needed by ViewportProps\n viewState: frameworkState.sessionState.defaultViewState,\n };\n if (mapStateToProps) return mapStateToProps(state, props);\n\n return props;\n };\n};\n\n/** Function that will connect a component to the IModelConnection data in the Redux store.\n * @param mapStateToProps optional user function that, if defined, will be executed to provide additional properties from store.\n * @param mapDispatchToProps data passed to Redux connect function.\n * @public\n * @deprecated in 4.15.0. Components should take iModel connection as props.\n */\nexport const connectIModelConnection = (\n mapStateToProps?: any,\n mapDispatchToProps?: any\n) => {\n return connect(iModeMapStateToProps(mapStateToProps), mapDispatchToProps);\n};\n\n/** Function that will connect a component to the IModelConnection data in the Redux store\n * @param mapStateToProps optional user function that, if defined, will be executed to provide additional properties from store.\n * @param mapDispatchToProps data passed to Redux connect function.\n * @beta\n *\n * @example\n * // connect component for both getting and setting ImodelConnection data from Redux store.\n * import { connectIModelConnection, sessionStateMapDispatchToProps, SessionStateActionsProps } from \"@itwin/appui-react\";\n *\n * export interface ComponentProps extends SessionStateActionsProps {\n * myData: string;\n * }\n *\n * export const ConnectControl = connectIModelConnection(null, sessionStateMapDispatchToProps)(ComponentClass);\n *\n * // this then allows connected control to update the store using a call like shown below.\n * this.props.setNumItemsSelected(30);\n * @deprecated in 4.15.0. Components should take iModel connection and view state as props.\n */\nexport const connectIModelConnectionAndViewState = (\n mapStateToProps?: any,\n mapDispatchToProps?: any\n) => {\n return connect(\n iModelAndViewMapStateToProps(mapStateToProps),\n mapDispatchToProps\n );\n};\n"]}
1
+ {"version":3,"file":"connectIModel.js","sourceRoot":"","sources":["../../../src/appui-react/redux/connectIModel.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qDAAqD;AAErD;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,eAAoB,EAAE,EAAE;IACpD,OAAO,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE;QACnC,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,8CAA8C;QAE3G,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,eAAe;gBAAE,OAAO,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG;YACjB,gBAAgB,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB;YAC9D,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB;YACpD,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB;SACrD,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO;gBACL,GAAG,UAAU;gBACb,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;aACpC,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,4BAA4B,GAAG,CAAC,eAAoB,EAAE,EAAE;IAC5D,OAAO,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE;QACnC,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,8CAA8C;QAE3G,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG;YACZ,GAAG,QAAQ;YACX,gBAAgB,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB,EAAE,wEAAwE;YACxI,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB,EAAE,yCAAyC;YAC/F,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB,EAAE,uCAAuC;YAC7F,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB;SACxD,CAAC;QACF,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE1D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,eAAqB,EACrB,kBAAwB,EACxB,EAAE;IACF,OAAO,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,eAAqB,EACrB,kBAAwB,EACxB,EAAE;IACF,OAAO,OAAO,CACZ,4BAA4B,CAAC,eAAe,CAAC,EAC7C,kBAAkB,CACnB,CAAC;AACJ,CAAC,CAAC","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 State\n */\n\nimport { connect } from \"react-redux\";\nimport { UiFramework } from \"../UiFramework.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Private function that will map store's iModelConnection to the 'iModelConnection', 'iModel', and 'imodel' properties of props. This\n * is not ideal but it is a result of not having standard prop name for an iModelConnection.\n */\nconst iModeMapStateToProps = (mapStateToProps: any) => {\n return (state: any, ownProps: any) => {\n const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name\n\n if (!frameworkState) {\n if (mapStateToProps) return mapStateToProps(state, ownProps);\n return {};\n }\n\n const storeProps = {\n iModelConnection: frameworkState.sessionState.iModelConnection,\n imodel: frameworkState.sessionState.iModelConnection,\n iModel: frameworkState.sessionState.iModelConnection,\n };\n\n if (mapStateToProps) {\n return {\n ...storeProps,\n ...mapStateToProps(state, ownProps),\n };\n }\n\n return storeProps;\n };\n};\n\n/** Function that will map store's iModelConnection and defaultViewState to the props 'iModelConnection', 'iModel', 'imodel',\n * and 'viewState' property of props\n */\nconst iModelAndViewMapStateToProps = (mapStateToProps: any) => {\n return (state: any, ownProps: any) => {\n const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name\n\n if (!frameworkState) return {};\n\n const props = {\n ...ownProps,\n iModelConnection: frameworkState.sessionState.iModelConnection, // this prop is required by Unified Selection (TODO: standardize on use)\n iModel: frameworkState.sessionState.iModelConnection, // this prop is needed by many components\n imodel: frameworkState.sessionState.iModelConnection, // this prop is needed by ViewportProps\n viewState: frameworkState.sessionState.defaultViewState,\n };\n if (mapStateToProps) return mapStateToProps(state, props);\n\n return props;\n };\n};\n\n/** Function that will connect a component to the IModelConnection data in the Redux store.\n * @param mapStateToProps optional user function that, if defined, will be executed to provide additional properties from store.\n * @param mapDispatchToProps data passed to Redux connect function.\n * @public\n * @deprecated in 4.15.0. Components should take iModel connection as props.\n */\nexport const connectIModelConnection = (\n mapStateToProps?: any,\n mapDispatchToProps?: any\n) => {\n return connect(iModeMapStateToProps(mapStateToProps), mapDispatchToProps);\n};\n\n/** Function that will connect a component to the IModelConnection data in the Redux store\n * @param mapStateToProps optional user function that, if defined, will be executed to provide additional properties from store.\n * @param mapDispatchToProps data passed to Redux connect function.\n * @beta\n *\n * @example\n * // connect component for both getting and setting ImodelConnection data from Redux store.\n * import { connectIModelConnection, sessionStateMapDispatchToProps, SessionStateActionsProps } from \"@itwin/appui-react\";\n *\n * export interface ComponentProps extends SessionStateActionsProps {\n * myData: string;\n * }\n *\n * export const ConnectControl = connectIModelConnection(null, sessionStateMapDispatchToProps)(ComponentClass);\n *\n * // this then allows connected control to update the store using a call like shown below.\n * this.props.setNumItemsSelected(30);\n * @deprecated in 4.15.0. Components should take iModel connection and view state as props.\n */\nexport const connectIModelConnectionAndViewState = (\n mapStateToProps?: any,\n mapDispatchToProps?: any\n) => {\n return connect(\n iModelAndViewMapStateToProps(mapStateToProps),\n mapDispatchToProps\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"redux-ts.js","sourceRoot":"","sources":["../../../src/appui-react/redux/redux-ts.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAgH/D,MAAM;AACN,MAAM,UAAU,YAAY,CAAsB,IAAO,EAAE,OAAW;IACpE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC9D,CAAC;AAsHD,8EAA8E;AAC9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,eAAe,GAC1B,mBAA0B,CAAC","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 State\n */\n\nimport { combineReducers as baseCombineReducers } from \"redux\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Shorthand for \"any function\". TSLint doesn't like the built-in `Function` type for some reason.\n * @public\n * @deprecated in 4.15.0. Use `(...args: any[]) => any` instead.\n */\nexport type FunctionType = (...args: any[]) => any;\n\n/** Similar to the built-in [Readonly](https://www.typescriptlang.org/docs/handbook/advanced-types.html#mapped-types), type alias but applied recursively.\n * This basically makes all nested properties/members of an object/array immutable.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type DeepReadonly<T> = T extends ReadonlyArray<infer R>\n ? R extends object\n ? DeepReadonlyArray<R>\n : ReadonlyArray<R>\n : T extends FunctionType\n ? T\n : T extends object\n ? DeepReadonlyObject<T>\n : T;\n\n/** TypeScript doesn't actually allow recursive type aliases, so these are just sort of a hack to make DeepReadonly work\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type DeepReadonlyArray<T> = ReadonlyArray<DeepReadonly<T>>;\n\n/** TypeScript doesn't actually allow recursive type aliases, so these are just sort of a hack to make DeepReadonly work\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type DeepReadonlyObject<T> = {\n readonly [P in keyof T]: DeepReadonly<T[P]>;\n};\n\n/** A basic Redux [Action](https://redux.js.org/basics/actions).\n * Technically, redux only requires actions to have a `type` property.\n *\n * We use a TypeScript [Generic](https://www.typescriptlang.org/docs/handbook/generics.html) interface here to preserve the \"literal-ness\" of the `type` property.\n * In other words, `Action<\"FOO\">` will be of type `{ type: \"FOO\" }`; it won't be simplified to `{ type: string }`.\n *\n * See the [TS Handbook](https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types) for more info on TypeScript string literal types.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport interface Action<T extends string> {\n type: T;\n}\n\n/** A Redux [Action](https://redux.js.org/basics/actions), with additional \"payload\" information.\n * Technically, Redux allows actions to take any shape, provided they specify a `type` property.\n *\n * However, in order to simplify TypeScript typings, we follow this [Flux Standard Actions](https://github.com/redux-utilities/flux-standard-action)-like\n * convention, where all additional action information goes into a `payload` property.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport interface ActionWithPayload<T extends string, P> extends Action<T> {\n payload: P;\n}\n\n/** Creates a basic Redux Redux [Action](https://redux.js.org/basics/actions) without a payload.\n * **This is meant to be used as a shortcut for defining Action Creators.**\n *\n * For example,\n * ```\n * () => createAction(\"FOO\", ids)\n * ```\n * defines an action creator of type:\n * ```\n * () => { type: \"FOO\" }\n * // which is equivalent to:\n * () => Action<\"FOO\">\n * ```\n *\n * Note that the generic type parameters can always be omitted - TypeScript will be able to infer them.\n * @param type The string to use as the action's type property. Should have a [string literal type](https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types).\n * @public\n * @deprecated in 4.15.0. Use your state management types instead, i.e. {@link https://redux-toolkit.js.org/api/createAction createAction} from `@reduxjs/toolkit` instead.\n */\nexport function createAction<T extends string>(type: T): Action<T>;\n\n/**\n * Creates a basic Redux Redux [Action](https://redux.js.org/basics/actions) _with_ a payload value.\n * **This is meant to be used as a shortcut for defining Action Creators.**\n *\n * For example,\n * ```\n * (ids: number[]) => createAction(\"FOO\", ids)\n * ```\n * defines an action creator of type:\n * ```\n * (ids: number[]) => { type: \"FOO\", payload: ReadonlyArray<number> }\n * // which is equivalent to:\n * (ids: number[]) => ActionWithPayload<\"FOO\", ReadonlyArray<number>>\n * ```\n *\n * Note that the generic type parameters can always be omitted - TypeScript will be able to infer them.\n * @param type The string to use as the action's type property. Should have a [string literal type](https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types).\n * @param payload The value to use as the action's payload property. May be of any type.\n * @public\n * @deprecated in 4.15.0. Use {@link https://redux-toolkit.js.org/api/createAction createAction} from `@reduxjs/toolkit` instead.\n */\nexport function createAction<T extends string, P>(\n type: T,\n payload: P\n): ActionWithPayload<T, DeepReadonly<P>>;\n\n/** */\nexport function createAction<T extends string, P>(type: T, payload?: P) {\n return payload === undefined ? { type } : { type, payload };\n}\n\n/** Just an object where every property is a Redux [Action Creator](https://redux.js.org/basics/actions#action-creators).\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport interface ActionCreatorsObject {\n [actionCreatorName: string]: FunctionType;\n}\n\n/** A TypeScript type alias that represents the [Union Type](https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types) of all actions\n * possibly created by _any_ of the action creators in a given `ActionCreatorsObject`.\n *\n * For example,\n * ```\n * // given:\n * const MyActionCreators = {\n * createBanana: () => createAction(\"BANANA\"),\n * createApple: () => createAction(\"APPLE\", true),\n * createOrange: (n: number) => createAction(\"BANANA\", n),\n * }\n * // then:\n * type X = ActionsUnion<typeof MyActionCreators>;\n * // is equivalent to:\n * type X = Action<\"BANANA\">\n * | ActionWithPayload<\"APPLE\", boolean>\n * | ActionWithPayload<\"ORANGE\", number>;\n * ```\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type ActionsUnion<A extends ActionCreatorsObject> = ReturnType<\n A[keyof A]\n>;\n\n/** A TypeScript type alias that uses [conditional types](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html) (read: magic)\n * to represent the _exact_ (literal) type of an action's `type` property.\n *\n * More importantly, this can be used to determine a union type which represents the `type` string literal types for _any_ action in a given `ActionsUnion`.\n *\n * For example,\n * ```\n * // given:\n * type MyActions = Action<\"BANANA\">\n * | ActionWithPayload<\"APPLE\", boolean>\n * | ActionWithPayload<\"ORANGE\", number>;\n * // then:\n * type X = ActionTypes<MyActions>;\n * // is equivalent to:\n * type X = \"BANANA\" | \"APPLE\" | \"ORANGE\";\n * ```\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type ActionTypes<A extends Action<any>> = A[\"type\"] extends infer X\n ? X extends string\n ? X\n : never\n : never;\n\n/** A Redux [Reducer](https://redux.js.org/basics/reducers).\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type Reducer<S, A> = (state: S, action: A) => S;\n\n/** A TypeScript type alias that represents a union of all action types handled by a Redux [Reducer](https://redux.js.org/basics/reducers).\n *\n * If you have created a type-safe reducer function using `combineReducers`, you can use this to infer your actions union type instead of having to define it manually.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type ReducerActions<R> = R extends Reducer<any, infer X>\n ? X extends ActionWithPayload<infer T, infer P>\n ? DeepReadonly<ActionWithPayload<T, P>>\n : X extends Action<infer T2>\n ? DeepReadonly<Action<T2>>\n : X\n : R;\n\n/** A TypeScript type alias that represents the return type of a Redux [Reducer](https://redux.js.org/basics/reducers).\n *\n * If you have created a type-safe reducer function using `combineReducers`, you can use this to infer your state type instead of having to define it manually.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type StateType<R extends Reducer<any, any>> = DeepReadonly<\n ReturnType<R>\n>;\n\n/** So we don't actually need to implement our own version of combineReducers, but we are going to cast it\n * to this type, which will do a better job of preserving/deducing the Action and State types.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type CombineReducersFunction = <A>(\n reducers: A\n) => (\n state: CombinedReducerState<A>,\n action: ReducerMapActions<A>\n) => CombinedReducerState<A>;\n\n/** A type alias which represents the state created by the reducer returned by combineReducers for a given `reducers` argument.\n * Used above by `CombineReducersFunction`, our custom type definition for combineReducers.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type CombinedReducerState<R> = {\n readonly [K in keyof R]: R[K] extends FunctionType ? StateType<R[K]> : never;\n};\n\n/** A type alias which represents the union type of all actions handled by the reducer returned by combineReducers for a given `reducers` argument.\n * Used above by `CombineReducersFunction`, our custom type definition for combineReducers.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type ReducerMapActions<R> = ReducerActions<R[keyof R]>;\n\n// Since the implementation is copied from redux, we'll copy the docs as well:\n/** Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * //@template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n * functions that need to be combined into one. One handy way to obtain it\n * is to use ES6 `import * as reducers` syntax. The reducers may never\n * return undefined for any action. Instead, they should return their\n * initial state if the state passed to them was undefined, and the current\n * state for any unrecognized action.\n *\n * Returns: A reducer function that invokes every reducer inside the passed\n * object, and builds a state object with the same shape.\n * @public\n * @deprecated in 4.15.0. Use your state management APIs instead.\n */\nexport const combineReducers: CombineReducersFunction =\n baseCombineReducers as any;\n"]}
1
+ {"version":3,"file":"redux-ts.js","sourceRoot":"","sources":["../../../src/appui-react/redux/redux-ts.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAgH/D,MAAM;AACN,MAAM,UAAU,YAAY,CAAsB,IAAO,EAAE,OAAW;IACpE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC9D,CAAC;AAsHD,8EAA8E;AAC9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,eAAe,GAC1B,mBAA0B,CAAC","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 State\n */\n\nimport { combineReducers as baseCombineReducers } from \"redux\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Shorthand for \"any function\". TSLint doesn't like the built-in `Function` type for some reason.\n * @public\n * @deprecated in 4.15.0. Use `(...args: any[]) => any` instead.\n */\nexport type FunctionType = (...args: any[]) => any;\n\n/** Similar to the built-in [Readonly](https://www.typescriptlang.org/docs/handbook/advanced-types.html#mapped-types), type alias but applied recursively.\n * This basically makes all nested properties/members of an object/array immutable.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type DeepReadonly<T> = T extends ReadonlyArray<infer R>\n ? R extends object\n ? DeepReadonlyArray<R>\n : ReadonlyArray<R>\n : T extends FunctionType\n ? T\n : T extends object\n ? DeepReadonlyObject<T>\n : T;\n\n/** TypeScript doesn't actually allow recursive type aliases, so these are just sort of a hack to make DeepReadonly work\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type DeepReadonlyArray<T> = ReadonlyArray<DeepReadonly<T>>;\n\n/** TypeScript doesn't actually allow recursive type aliases, so these are just sort of a hack to make DeepReadonly work\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type DeepReadonlyObject<T> = {\n readonly [P in keyof T]: DeepReadonly<T[P]>;\n};\n\n/** A basic Redux [Action](https://redux.js.org/basics/actions).\n * Technically, redux only requires actions to have a `type` property.\n *\n * We use a TypeScript [Generic](https://www.typescriptlang.org/docs/handbook/generics.html) interface here to preserve the \"literal-ness\" of the `type` property.\n * In other words, `Action<\"FOO\">` will be of type `{ type: \"FOO\" }`; it won't be simplified to `{ type: string }`.\n *\n * See the [TS Handbook](https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types) for more info on TypeScript string literal types.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport interface Action<T extends string> {\n type: T;\n}\n\n/** A Redux [Action](https://redux.js.org/basics/actions), with additional \"payload\" information.\n * Technically, Redux allows actions to take any shape, provided they specify a `type` property.\n *\n * However, in order to simplify TypeScript typings, we follow this [Flux Standard Actions](https://github.com/redux-utilities/flux-standard-action)-like\n * convention, where all additional action information goes into a `payload` property.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport interface ActionWithPayload<T extends string, P> extends Action<T> {\n payload: P;\n}\n\n/** Creates a basic Redux Redux [Action](https://redux.js.org/basics/actions) without a payload.\n * **This is meant to be used as a shortcut for defining Action Creators.**\n *\n * For example,\n * ```\n * () => createAction(\"FOO\", ids)\n * ```\n * defines an action creator of type:\n * ```\n * () => { type: \"FOO\" }\n * // which is equivalent to:\n * () => Action<\"FOO\">\n * ```\n *\n * Note that the generic type parameters can always be omitted - TypeScript will be able to infer them.\n * @param type The string to use as the action's type property. Should have a [string literal type](https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types).\n * @public\n * @deprecated in 4.15.0. Use your state management types instead, i.e. {@link https://redux-toolkit.js.org/api/createAction createAction} from `@reduxjs/toolkit` instead.\n */\nexport function createAction<T extends string>(type: T): Action<T>;\n\n/**\n * Creates a basic Redux Redux [Action](https://redux.js.org/basics/actions) _with_ a payload value.\n * **This is meant to be used as a shortcut for defining Action Creators.**\n *\n * For example,\n * ```\n * (ids: number[]) => createAction(\"FOO\", ids)\n * ```\n * defines an action creator of type:\n * ```\n * (ids: number[]) => { type: \"FOO\", payload: ReadonlyArray<number> }\n * // which is equivalent to:\n * (ids: number[]) => ActionWithPayload<\"FOO\", ReadonlyArray<number>>\n * ```\n *\n * Note that the generic type parameters can always be omitted - TypeScript will be able to infer them.\n * @param type The string to use as the action's type property. Should have a [string literal type](https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types).\n * @param payload The value to use as the action's payload property. May be of any type.\n * @public\n * @deprecated in 4.15.0. Use {@link https://redux-toolkit.js.org/api/createAction createAction} from `@reduxjs/toolkit` instead.\n */\nexport function createAction<T extends string, P>(\n type: T,\n payload: P\n): ActionWithPayload<T, DeepReadonly<P>>;\n\n/** */\nexport function createAction<T extends string, P>(type: T, payload?: P) {\n return payload === undefined ? { type } : { type, payload };\n}\n\n/** Just an object where every property is a Redux [Action Creator](https://redux.js.org/basics/actions#action-creators).\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport interface ActionCreatorsObject {\n [actionCreatorName: string]: FunctionType;\n}\n\n/** A TypeScript type alias that represents the [Union Type](https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types) of all actions\n * possibly created by _any_ of the action creators in a given `ActionCreatorsObject`.\n *\n * For example,\n * ```\n * // given:\n * const MyActionCreators = {\n * createBanana: () => createAction(\"BANANA\"),\n * createApple: () => createAction(\"APPLE\", true),\n * createOrange: (n: number) => createAction(\"BANANA\", n),\n * }\n * // then:\n * type X = ActionsUnion<typeof MyActionCreators>;\n * // is equivalent to:\n * type X = Action<\"BANANA\">\n * | ActionWithPayload<\"APPLE\", boolean>\n * | ActionWithPayload<\"ORANGE\", number>;\n * ```\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type ActionsUnion<A extends ActionCreatorsObject> = ReturnType<\n A[keyof A]\n>;\n\n/** A TypeScript type alias that uses [conditional types](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html) (read: magic)\n * to represent the _exact_ (literal) type of an action's `type` property.\n *\n * More importantly, this can be used to determine a union type which represents the `type` string literal types for _any_ action in a given `ActionsUnion`.\n *\n * For example,\n * ```\n * // given:\n * type MyActions = Action<\"BANANA\">\n * | ActionWithPayload<\"APPLE\", boolean>\n * | ActionWithPayload<\"ORANGE\", number>;\n * // then:\n * type X = ActionTypes<MyActions>;\n * // is equivalent to:\n * type X = \"BANANA\" | \"APPLE\" | \"ORANGE\";\n * ```\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type ActionTypes<A extends Action<any>> = A[\"type\"] extends infer X\n ? X extends string\n ? X\n : never\n : never;\n\n/** A Redux [Reducer](https://redux.js.org/basics/reducers).\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type Reducer<S, A> = (state: S, action: A) => S;\n\n/** A TypeScript type alias that represents a union of all action types handled by a Redux [Reducer](https://redux.js.org/basics/reducers).\n *\n * If you have created a type-safe reducer function using `combineReducers`, you can use this to infer your actions union type instead of having to define it manually.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type ReducerActions<R> = R extends Reducer<any, infer X>\n ? X extends ActionWithPayload<infer T, infer P>\n ? DeepReadonly<ActionWithPayload<T, P>>\n : X extends Action<infer T2>\n ? DeepReadonly<Action<T2>>\n : X\n : R;\n\n/** A TypeScript type alias that represents the return type of a Redux [Reducer](https://redux.js.org/basics/reducers).\n *\n * If you have created a type-safe reducer function using `combineReducers`, you can use this to infer your state type instead of having to define it manually.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type StateType<R extends Reducer<any, any>> = DeepReadonly<\n ReturnType<R>\n>;\n\n/** So we don't actually need to implement our own version of combineReducers, but we are going to cast it\n * to this type, which will do a better job of preserving/deducing the Action and State types.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type CombineReducersFunction = <A>(\n reducers: A\n) => (\n state: CombinedReducerState<A>,\n action: ReducerMapActions<A>\n) => CombinedReducerState<A>;\n\n/** A type alias which represents the state created by the reducer returned by combineReducers for a given `reducers` argument.\n * Used above by `CombineReducersFunction`, our custom type definition for combineReducers.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type CombinedReducerState<R> = {\n readonly [K in keyof R]: R[K] extends FunctionType ? StateType<R[K]> : never;\n};\n\n/** A type alias which represents the union type of all actions handled by the reducer returned by combineReducers for a given `reducers` argument.\n * Used above by `CombineReducersFunction`, our custom type definition for combineReducers.\n * @public\n * @deprecated in 4.15.0. Use your state management types instead.\n */\nexport type ReducerMapActions<R> = ReducerActions<R[keyof R]>;\n\n// Since the implementation is copied from redux, we'll copy the docs as well:\n/** Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * //@template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n * functions that need to be combined into one. One handy way to obtain it\n * is to use ES6 `import * as reducers` syntax. The reducers may never\n * return undefined for any action. Instead, they should return their\n * initial state if the state passed to them was undefined, and the current\n * state for any unrecognized action.\n *\n * Returns: A reducer function that invokes every reducer inside the passed\n * object, and builds a state object with the same shape.\n * @public\n * @deprecated in 4.15.0. Use your state management APIs instead.\n */\nexport const combineReducers: CombineReducersFunction =\n baseCombineReducers as any;\n"]}
@@ -23,7 +23,7 @@ import { SvgVisibilityHide } from "@itwin/itwinui-icons-react";
23
23
  import { SvgVisibilityShow } from "@itwin/itwinui-icons-react";
24
24
  import { getActiveViewport } from "../utils/getActiveViewport.js";
25
25
  import * as React from "react";
26
- /* eslint-disable deprecation/deprecation */
26
+ /* eslint-disable @typescript-eslint/no-deprecated */
27
27
  /** Return SyncEventIds that trigger selection state function refresh.
28
28
  * @beta
29
29
  * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.
@@ -45,7 +45,7 @@ export function getSelectionContextSyncEventIds() {
45
45
  SyncUiEventId.SelectionSetChanged,
46
46
  SyncUiEventId.ActiveContentChanged,
47
47
  SyncUiEventId.ActiveViewportChanged,
48
- // eslint-disable-next-line deprecation/deprecation
48
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
49
49
  SessionStateActionId.SetNumItemsSelected,
50
50
  SyncUiEventId.FeatureOverridesChanged,
51
51
  SyncUiEventId.ViewedModelsChanged,
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.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 Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState.js\";\nimport { CommandItemDef } from \"../shared/CommandItemDef.js\";\nimport type { BaseItemState } from \"../shared/ItemDefBase.js\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher.js\";\nimport { GroupItemDef } from \"../toolbar/GroupItem.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { SvgModelIsolate } from \"../icons/SvgModelIsolate.js\";\nimport { SvgLayersIsolate } from \"../icons/SvgLayersIsolate.js\";\nimport { SvgAssetIsolate } from \"../icons/SvgAssetIsolate.js\";\nimport { SvgIsolate } from \"@itwin/itwinui-icons-react\";\nimport { SvgModelHide } from \"../icons/SvgModelHide.js\";\nimport { SvgLayersHide } from \"../icons/SvgLayersHide.js\";\nimport { SvgAssetClassificationHide } from \"../icons/SvgAssetClassificationHide.js\";\nimport { SvgVisibilityHalf } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityHide } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport type { ToolbarItems } from \"../tools/ToolbarItems.js\";\nimport { getActiveViewport } from \"../utils/getActiveViewport.js\";\nimport * as React from \"react\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n // eslint-disable-next-line deprecation/deprecation\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function isNoSelectionActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n if (selectionCount > 0) return false;\n\n // TODO: add check for categories, subcategories and models\n const hiddenElementsSet = viewport.neverDrawn;\n const selectedElementsSet = viewport.view.iModel.selectionSet.elements;\n if (![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))\n return false;\n\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n}\n\n/** Return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n return { ...state, isVisible };\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n const isVisible =\n viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItems} instead.\n */\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: <SvgModelIsolate />,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: <SvgLayersIsolate />,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: <SvgAssetIsolate />,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: <SvgIsolate />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: <SvgModelHide />,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: <SvgLayersHide />,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: <SvgAssetClassificationHide />,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: <SvgVisibilityHide />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: <SvgVisibilityHalf />,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: <SvgVisibilityShow />,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
1
+ {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.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 Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState.js\";\nimport { CommandItemDef } from \"../shared/CommandItemDef.js\";\nimport type { BaseItemState } from \"../shared/ItemDefBase.js\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher.js\";\nimport { GroupItemDef } from \"../toolbar/GroupItem.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { SvgModelIsolate } from \"../icons/SvgModelIsolate.js\";\nimport { SvgLayersIsolate } from \"../icons/SvgLayersIsolate.js\";\nimport { SvgAssetIsolate } from \"../icons/SvgAssetIsolate.js\";\nimport { SvgIsolate } from \"@itwin/itwinui-icons-react\";\nimport { SvgModelHide } from \"../icons/SvgModelHide.js\";\nimport { SvgLayersHide } from \"../icons/SvgLayersHide.js\";\nimport { SvgAssetClassificationHide } from \"../icons/SvgAssetClassificationHide.js\";\nimport { SvgVisibilityHalf } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityHide } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport type { ToolbarItems } from \"../tools/ToolbarItems.js\";\nimport { getActiveViewport } from \"../utils/getActiveViewport.js\";\nimport * as React from \"react\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function isNoSelectionActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n if (selectionCount > 0) return false;\n\n // TODO: add check for categories, subcategories and models\n const hiddenElementsSet = viewport.neverDrawn;\n const selectedElementsSet = viewport.view.iModel.selectionSet.elements;\n if (![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))\n return false;\n\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n}\n\n/** Return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n return { ...state, isVisible };\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n const isVisible =\n viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItems} instead.\n */\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: <SvgModelIsolate />,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: <SvgLayersIsolate />,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: <SvgAssetIsolate />,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: <SvgIsolate />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: <SvgModelHide />,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: <SvgLayersHide />,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: <SvgAssetClassificationHide />,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: <SvgVisibilityHide />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: <SvgVisibilityHalf />,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: <SvgVisibilityShow />,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
@@ -7,6 +7,6 @@
7
7
  */
8
8
  import { SettingsManager as _SettingsManager } from "@itwin/core-react";
9
9
  /** @public */
10
- // eslint-disable-next-line @typescript-eslint/no-redeclare, deprecation/deprecation
10
+ // eslint-disable-next-line @typescript-eslint/no-redeclare, @typescript-eslint/no-deprecated
11
11
  export const SettingsManager = _SettingsManager;
12
12
  //# sourceMappingURL=SettingsManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsManager.js","sourceRoot":"","sources":["../../../src/appui-react/settings/SettingsManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAMH,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAoBxE,cAAc;AACd,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC","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 Settings\n */\n\nimport type {\n SettingsTabEntry as _SettingsTabEntry,\n SettingsTabsProvider as _SettingsTabsProvider,\n} from \"@itwin/core-react\";\nimport { SettingsManager as _SettingsManager } from \"@itwin/core-react\";\n\n/** Interface used to populate a tab entry in the SettingContainer control\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport type SettingsTabEntry = _SettingsTabEntry;\n\n/** Setting Provider interface. Implemented by classes that want to supply settings pages for display in the SettingContainer. The\n * classes that implement this interface need to be registered with the [[SettingsManager]].\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport type SettingsTabsProvider = _SettingsTabsProvider;\n\n/** Settings Manager class. Hold registration of settings providers and supplies events for the provided settings pages to listen.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport type SettingsManager = _SettingsManager;\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-redeclare, deprecation/deprecation\nexport const SettingsManager = _SettingsManager;\n"]}
1
+ {"version":3,"file":"SettingsManager.js","sourceRoot":"","sources":["../../../src/appui-react/settings/SettingsManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAMH,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAoBxE,cAAc;AACd,6FAA6F;AAC7F,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC","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 Settings\n */\n\nimport type {\n SettingsTabEntry as _SettingsTabEntry,\n SettingsTabsProvider as _SettingsTabsProvider,\n} from \"@itwin/core-react\";\nimport { SettingsManager as _SettingsManager } from \"@itwin/core-react\";\n\n/** Interface used to populate a tab entry in the SettingContainer control\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type SettingsTabEntry = _SettingsTabEntry;\n\n/** Setting Provider interface. Implemented by classes that want to supply settings pages for display in the SettingContainer. The\n * classes that implement this interface need to be registered with the [[SettingsManager]].\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type SettingsTabsProvider = _SettingsTabsProvider;\n\n/** Settings Manager class. Hold registration of settings providers and supplies events for the provided settings pages to listen.\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type SettingsManager = _SettingsManager;\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-redeclare, @typescript-eslint/no-deprecated\nexport const SettingsManager = _SettingsManager;\n"]}
@@ -89,9 +89,9 @@ export function QuantityFormatSettingsPage({ initialQuantityType, availableUnitS
89
89
  }
90
90
  afterSaveFunction(args);
91
91
  }, [activeFormatterSpec, activeQuantityType]);
92
- // eslint-disable-next-line deprecation/deprecation
92
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
93
93
  useSaveBeforeActivatingNewSettingsTab(UiFramework.settingsManager, saveChanges);
94
- // eslint-disable-next-line deprecation/deprecation
94
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
95
95
  useSaveBeforeClosingSettingsContainer(UiFramework.settingsManager, saveChanges);
96
96
  const processListboxValueChange = React.useCallback((newQuantityType) => {
97
97
  const volumeFormatterSpec = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(newQuantityType);
@@ -153,7 +153,7 @@ export function QuantityFormatSettingsPage({ initialQuantityType, availableUnitS
153
153
  const description = entry.description;
154
154
  const label = entry.label;
155
155
  return (
156
- // eslint-disable-next-line deprecation/deprecation
156
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
157
157
  React.createElement(ListboxItem, { key: entry.key, className: "quantity-type-list-entry", value: entry.key },
158
158
  React.createElement("span", { className: "map-source-list-entry-name", title: description }, label)));
159
159
  }))),
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../src/appui-react/settings/quantityformatting/QuantityFormat.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 Settings\n */\n\nimport \"./QuantityFormat.scss\";\nimport * as React from \"react\";\nimport { DeepCompare } from \"@itwin/core-geometry\";\nimport type { QuantityTypeArg, QuantityTypeKey } from \"@itwin/core-frontend\";\nimport {\n getQuantityTypeKey,\n IModelApp,\n QuantityType,\n} from \"@itwin/core-frontend\";\nimport type {\n FormatProps,\n FormatterSpec,\n UnitSystemKey,\n} from \"@itwin/core-quantity\";\nimport {\n FormatSample,\n QuantityFormatPanel,\n} from \"@itwin/imodel-components-react\";\nimport {\n Listbox,\n ListboxItem,\n useSaveBeforeActivatingNewSettingsTab,\n useSaveBeforeClosingSettingsContainer,\n} from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework.js\";\nimport { UnitSystemSelector } from \"./UnitSystemSelector.js\";\nimport { Button, Dialog } from \"@itwin/itwinui-react\";\nimport { SvgMeasure } from \"@itwin/itwinui-icons-react\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\nimport type { SettingsTabEntry } from \"../SettingsManager.js\";\n\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\n const compare = new DeepCompare();\n return compare.compare(obj1, obj2);\n}\n\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport interface QuantityFormatterSettingsOptions {\n initialQuantityType: QuantityTypeArg;\n availableUnitSystems: Set<UnitSystemKey>;\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport function getQuantityFormatsSettingsManagerEntry(\n itemPriority: number,\n opts?: Partial<QuantityFormatterSettingsOptions>\n): SettingsTabEntry {\n const { availableUnitSystems, initialQuantityType } = { ...opts };\n return {\n itemPriority,\n tabId: \"uifw:Quantity\",\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\n page: (\n <QuantityFormatSettingsPage\n initialQuantityType={initialQuantityType ?? QuantityType.Length}\n availableUnitSystems={\n availableUnitSystems ??\n new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])\n }\n />\n ),\n isDisabled: false,\n icon: <SvgMeasure />,\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\n pageWillHandleCloseRequest: true,\n };\n}\n\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\n * @beta\n */\nexport function QuantityFormatSettingsPage({\n initialQuantityType,\n availableUnitSystems,\n}: QuantityFormatterSettingsOptions) {\n const { translate } = useTranslation();\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(\n IModelApp.quantityFormatter.activeUnitSystem\n );\n const [activeQuantityType, setActiveQuantityType] = React.useState(\n getQuantityTypeKey(initialQuantityType)\n );\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<\n FormatterSpec | undefined\n >(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n getQuantityTypeKey(activeQuantityType)\n )\n );\n const [saveEnabled, setSaveEnabled] = React.useState(false);\n const [clearEnabled, setClearEnabled] = React.useState(\n IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true)\n );\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n () => {\n if (\n activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem\n ) {\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n }\n );\n }, [activeQuantityType, activeUnitSystemKey]);\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n (args) => {\n if (!newQuantityTypeRef.current) {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\n if (args.quantityType === quantityKey) {\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n }\n newQuantityTypeRef.current = undefined;\n }\n );\n }, [activeQuantityType]);\n\n const saveChanges = React.useCallback(\n (afterSaveFunction: (args: any) => void, args?: any) => {\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={args}\n onDialogClose={afterSaveFunction}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n afterSaveFunction(args);\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n // eslint-disable-next-line deprecation/deprecation\n useSaveBeforeActivatingNewSettingsTab(\n UiFramework.settingsManager,\n saveChanges\n );\n // eslint-disable-next-line deprecation/deprecation\n useSaveBeforeClosingSettingsContainer(\n UiFramework.settingsManager,\n saveChanges\n );\n\n const processListboxValueChange = React.useCallback(\n (newQuantityType: QuantityTypeKey) => {\n const volumeFormatterSpec =\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n newQuantityType\n );\n setActiveFormatterSpec(volumeFormatterSpec);\n setActiveQuantityType(newQuantityType);\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true)\n );\n },\n []\n );\n\n const onListboxValueChange = React.useCallback(\n (newQuantityType: string) => {\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n newQuantityTypeRef.current = newQuantityType;\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={newQuantityType}\n onDialogClose={processListboxValueChange}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n processListboxValueChange(newQuantityType);\n },\n [activeFormatterSpec, activeQuantityType, processListboxValueChange]\n );\n\n const handleOnFormatChanged = React.useCallback(\n async (formatProps: FormatProps) => {\n if (activeFormatterSpec) {\n const newSpec =\n await IModelApp.quantityFormatter.generateFormatterSpecByType(\n activeQuantityType,\n formatProps\n );\n const formatPropsInUse =\n IModelApp.quantityFormatter.getFormatPropsByQuantityType(\n activeQuantityType\n );\n if (formatPropsInUse)\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\n setActiveFormatterSpec(newSpec);\n }\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n const handleOnFormatSave = React.useCallback(async () => {\n if (activeFormatterSpec) {\n const format = activeFormatterSpec.format.toJSON();\n await IModelApp.quantityFormatter.setOverrideFormat(\n activeQuantityType,\n format\n );\n setClearEnabled(true);\n }\n }, [activeFormatterSpec, activeQuantityType]);\n\n const handleOnFormatReset = React.useCallback(async () => {\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\n setClearEnabled(false);\n }, [activeQuantityType]);\n\n const processNewUnitSystem = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\n },\n []\n );\n\n const handleUnitSystemSelected = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n if (unitSystem === activeUnitSystemKey) return;\n saveChanges(processNewUnitSystem, unitSystem);\n },\n [activeUnitSystemKey, processNewUnitSystem, saveChanges]\n );\n\n return (\n <div className=\"quantity-formatting-container\">\n <UnitSystemSelector\n selectedUnitSystemKey={activeUnitSystemKey}\n availableUnitSystems={availableUnitSystems}\n onUnitSystemSelected={handleUnitSystemSelected}\n />\n <span className=\"uifw-quantity-format-section-label\">\n {translate(\"settings.quantity-formatting.formatSectionLabel\")}\n </span>\n <div className=\"uifw-quantity-types-container\">\n <div className=\"left-panel\">\n {/* eslint-disable-next-line deprecation/deprecation */}\n <Listbox\n id=\"uifw-quantity-types-list\"\n className=\"uifw-quantity-types\"\n onListboxValueChange={onListboxValueChange}\n selectedValue={activeQuantityType}\n >\n {[...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map(\n (key) => {\n const entry =\n IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\n const description = entry.description;\n const label = entry.label;\n return (\n // eslint-disable-next-line deprecation/deprecation\n <ListboxItem\n key={entry.key}\n className=\"quantity-type-list-entry\"\n value={entry.key}\n >\n <span\n className=\"map-source-list-entry-name\"\n title={description}\n >\n {label}\n </span>\n </ListboxItem>\n );\n }\n )}\n </Listbox>\n </div>\n <div className=\"right-panel\">\n {activeFormatterSpec && (\n <>\n <div className=\"uifw-quantity-types-right-top\">\n <div className=\"uifw-quantity-types-right-top-sample\">\n <FormatSample\n formatSpec={activeFormatterSpec}\n initialMagnitude={1234.56}\n hideLabels\n />\n </div>\n </div>\n <div className=\"uifw-quantity-types-formats\">\n <QuantityFormatPanel\n onFormatChange={handleOnFormatChanged}\n quantityType={activeQuantityType}\n />\n </div>\n <div className=\"components-button-panel\">\n <Button\n styleType=\"cta\"\n onClick={handleOnFormatSave}\n disabled={!saveEnabled}\n >\n {translate(\"settings.quantity-formatting.setButtonLabel\")}\n </Button>\n <Button\n styleType=\"default\"\n onClick={handleOnFormatReset}\n disabled={!clearEnabled}\n >\n {translate(\"settings.quantity-formatting.clearButtonLabel\")}\n </Button>\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SaveFormatModalDialog({\n formatProps,\n quantityType,\n onDialogCloseArgs,\n onDialogClose,\n}: {\n formatProps: FormatProps;\n quantityType: QuantityTypeKey;\n onDialogCloseArgs?: any;\n onDialogClose: (args?: any) => void;\n}) {\n const { translate } = useTranslation();\n const [isOpen, setIsOpen] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false);\n UiFramework.dialogs.modal.close();\n onDialogClose && onDialogClose(onDialogCloseArgs);\n }, [onDialogClose, onDialogCloseArgs]);\n\n const handleOK = React.useCallback(() => {\n void IModelApp.quantityFormatter.setOverrideFormat(\n quantityType,\n formatProps\n );\n handleClose();\n }, [formatProps, handleClose, quantityType]);\n\n const handleCancel = React.useCallback(() => {\n handleClose();\n }, [handleClose]);\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={handleCancel}\n className=\"uifw-settings-quantityFormatting-saveFormatModalDialog\"\n closeOnEsc\n closeOnExternalClick\n preventDocumentScroll\n >\n <Dialog.Backdrop />\n <Dialog.Main\n style={{ minWidth: 200, maxWidth: 400, minHeight: 150, maxHeight: 400 }}\n >\n <Dialog.TitleBar titleText={\"Save Format Changes\"} />\n <Dialog.Content>\n Do you want to save changes to format before changing to another type?\n </Dialog.Content>\n <Dialog.ButtonBar>\n <Button styleType=\"high-visibility\" onClick={handleOK}>\n {translate(\"dialog.yes\")}\n </Button>\n <Button onClick={handleCancel}>{translate(\"dialog.no\")}</Button>\n </Dialog.ButtonBar>\n </Dialog.Main>\n </Dialog>\n );\n}\n"]}
1
+ {"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,YAAY,GACb,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,OAAO,EACP,WAAW,EACX,qCAAqC,EACrC,qCAAqC,GACtC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,SAAS,cAAc,CAAC,IAAiB,EAAE,IAAiB;IAC1D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAUD;;;;;GAKG;AACH,MAAM,UAAU,sCAAsC,CACpD,YAAoB,EACpB,IAAgD;IAEhD,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAClE,OAAO;QACL,YAAY;QACZ,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC;QAClE,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,uCAAuC,CAAC;QACxE,IAAI,EAAE,CACJ,oBAAC,0BAA0B,IACzB,mBAAmB,EAAE,mBAAmB,IAAI,YAAY,CAAC,MAAM,EAC/D,oBAAoB,EAClB,oBAAoB;gBACpB,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,GAE5D,CACH;QACD,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,oBAAC,UAAU,OAAG;QACpB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,sCAAsC,CAAC;QACtE,0BAA0B,EAAE,IAAI;KACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,EACzC,mBAAmB,EACnB,oBAAoB,GACa;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IACvC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAClE,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAC7C,CAAC;IACF,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAChE,kBAAkB,CAAC,mBAAmB,CAAC,CACxC,CAAC;IACF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAGlE,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CACzD,kBAAkB,CAAC,kBAAkB,CAAC,CACvC,CACF,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,CACzE,CAAC;IACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,EAAmB,CAAC;IAE3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,SAAS,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,WAAW,CAChF,GAAG,EAAE;YACH,IACE,mBAAmB,KAAK,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,EACpE,CAAC;gBACD,sBAAsB,CAAC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBACrE,sBAAsB,CACpB,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CACzD,kBAAkB,CACnB,CACF,CAAC;gBACF,cAAc,CAAC,KAAK,CAAC,CAAC;gBACtB,eAAe,CACb,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAC3C,kBAAkB,EAClB,IAAI,CACL,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE9C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,SAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,WAAW,CACrE,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAChC,MAAM,WAAW,GACf,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;gBACrE,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;oBACtC,sBAAsB,CACpB,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CACzD,kBAAkB,CACnB,CACF,CAAC;oBACF,cAAc,CAAC,KAAK,CAAC,CAAC;oBACtB,eAAe,CACb,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAC3C,kBAAkB,EAClB,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,kBAAkB,CAAC,OAAO,GAAG,SAAS,CAAC;QACzC,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,iBAAsC,EAAE,IAAU,EAAE,EAAE;QACrD,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAiB;iBACjD,+BAA+B,CAAC,kBAAkB,CAAE;iBACpD,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,IACE,gBAAgB;gBAChB,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAC9C,CAAC;gBACD,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAC5B,oBAAC,qBAAqB,IACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,kBAAkB,EAChC,iBAAiB,EAAE,IAAI,EACvB,aAAa,EAAE,iBAAiB,GAChC,EACF,oBAAoB,CACrB,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;QACD,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EACD,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAC1C,CAAC;IAEF,4DAA4D;IAC5D,qCAAqC,CACnC,WAAW,CAAC,eAAe,EAC3B,WAAW,CACZ,CAAC;IACF,4DAA4D;IAC5D,qCAAqC,CACnC,WAAW,CAAC,eAAe,EAC3B,WAAW,CACZ,CAAC;IAEF,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CACjD,CAAC,eAAgC,EAAE,EAAE;QACnC,MAAM,mBAAmB,GACvB,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CACzD,eAAe,CAChB,CAAC;QACJ,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;QAC5C,qBAAqB,CAAC,eAAe,CAAC,CAAC;QACvC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,eAAe,CACb,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,CACrE,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC5C,CAAC,eAAuB,EAAE,EAAE;QAC1B,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAiB;iBACjD,+BAA+B,CAAC,kBAAkB,CAAE;iBACpD,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,IACE,gBAAgB;gBAChB,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAC9C,CAAC;gBACD,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;gBAC7C,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAC5B,oBAAC,qBAAqB,IACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,kBAAkB,EAChC,iBAAiB,EAAE,eAAe,EAClC,aAAa,EAAE,yBAAyB,GACxC,EACF,oBAAoB,CACrB,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;QACD,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,EACD,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,CACrE,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,KAAK,EAAE,WAAwB,EAAE,EAAE;QACjC,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,OAAO,GACX,MAAM,SAAS,CAAC,iBAAiB,CAAC,2BAA2B,CAC3D,kBAAkB,EAClB,WAAW,CACZ,CAAC;YACJ,MAAM,gBAAgB,GACpB,SAAS,CAAC,iBAAiB,CAAC,4BAA4B,CACtD,kBAAkB,CACnB,CAAC;YACJ,IAAI,gBAAgB;gBAClB,cAAc,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACjE,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,EACD,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAC1C,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CACjD,kBAAkB,EAClB,MAAM,CACP,CAAC;YACF,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE9C,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACvD,MAAM,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAC3E,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC5C,KAAK,EAAE,UAAyB,EAAE,EAAE;QAClC,MAAM,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAChD,KAAK,EAAE,UAAyB,EAAE,EAAE;QAClC,IAAI,UAAU,KAAK,mBAAmB;YAAE,OAAO;QAC/C,WAAW,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC,EACD,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,CAAC,CACzD,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,+BAA+B;QAC5C,oBAAC,kBAAkB,IACjB,qBAAqB,EAAE,mBAAmB,EAC1C,oBAAoB,EAAE,oBAAoB,EAC1C,oBAAoB,EAAE,wBAAwB,GAC9C;QACF,8BAAM,SAAS,EAAC,oCAAoC,IACjD,SAAS,CAAC,iDAAiD,CAAC,CACxD;QACP,6BAAK,SAAS,EAAC,+BAA+B;YAC5C,6BAAK,SAAS,EAAC,YAAY;gBAEzB,oBAAC,OAAO,IACN,EAAE,EAAC,0BAA0B,EAC7B,SAAS,EAAC,qBAAqB,EAC/B,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,kBAAkB,IAEhC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAChE,CAAC,GAAG,EAAE,EAAE;oBACN,MAAM,KAAK,GACT,SAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;oBAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;oBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,OAAO;oBACL,4DAA4D;oBAC5D,oBAAC,WAAW,IACV,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,SAAS,EAAC,0BAA0B,EACpC,KAAK,EAAE,KAAK,CAAC,GAAG;wBAEhB,8BACE,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE,WAAW,IAEjB,KAAK,CACD,CACK,CACf,CAAC;gBACJ,CAAC,CACF,CACO,CACN;YACN,6BAAK,SAAS,EAAC,aAAa,IACzB,mBAAmB,IAAI,CACtB;gBACE,6BAAK,SAAS,EAAC,+BAA+B;oBAC5C,6BAAK,SAAS,EAAC,sCAAsC;wBACnD,oBAAC,YAAY,IACX,UAAU,EAAE,mBAAmB,EAC/B,gBAAgB,EAAE,OAAO,EACzB,UAAU,SACV,CACE,CACF;gBACN,6BAAK,SAAS,EAAC,6BAA6B;oBAC1C,oBAAC,mBAAmB,IAClB,cAAc,EAAE,qBAAqB,EACrC,YAAY,EAAE,kBAAkB,GAChC,CACE;gBACN,6BAAK,SAAS,EAAC,yBAAyB;oBACtC,oBAAC,MAAM,IACL,SAAS,EAAC,KAAK,EACf,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,CAAC,WAAW,IAErB,SAAS,CAAC,6CAA6C,CAAC,CAClD;oBACT,oBAAC,MAAM,IACL,SAAS,EAAC,SAAS,EACnB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,CAAC,YAAY,IAEtB,SAAS,CAAC,+CAA+C,CAAC,CACpD,CACL,CACL,CACJ,CACG,CACF,CACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,GAMd;IACC,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IACvC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,aAAa,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,KAAK,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAChD,YAAY,EACZ,WAAW,CACZ,CAAC;QACF,WAAW,EAAE,CAAC;IAChB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1C,WAAW,EAAE,CAAC;IAChB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,oBAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,wDAAwD,EAClE,UAAU,QACV,oBAAoB,QACpB,qBAAqB;QAErB,oBAAC,MAAM,CAAC,QAAQ,OAAG;QACnB,oBAAC,MAAM,CAAC,IAAI,IACV,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;YAEvE,oBAAC,MAAM,CAAC,QAAQ,IAAC,SAAS,EAAE,qBAAqB,GAAI;YACrD,oBAAC,MAAM,CAAC,OAAO,iFAEE;YACjB,oBAAC,MAAM,CAAC,SAAS;gBACf,oBAAC,MAAM,IAAC,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,QAAQ,IAClD,SAAS,CAAC,YAAY,CAAC,CACjB;gBACT,oBAAC,MAAM,IAAC,OAAO,EAAE,YAAY,IAAG,SAAS,CAAC,WAAW,CAAC,CAAU,CAC/C,CACP,CACP,CACV,CAAC;AACJ,CAAC","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 Settings\n */\n\nimport \"./QuantityFormat.scss\";\nimport * as React from \"react\";\nimport { DeepCompare } from \"@itwin/core-geometry\";\nimport type { QuantityTypeArg, QuantityTypeKey } from \"@itwin/core-frontend\";\nimport {\n getQuantityTypeKey,\n IModelApp,\n QuantityType,\n} from \"@itwin/core-frontend\";\nimport type {\n FormatProps,\n FormatterSpec,\n UnitSystemKey,\n} from \"@itwin/core-quantity\";\nimport {\n FormatSample,\n QuantityFormatPanel,\n} from \"@itwin/imodel-components-react\";\nimport {\n Listbox,\n ListboxItem,\n useSaveBeforeActivatingNewSettingsTab,\n useSaveBeforeClosingSettingsContainer,\n} from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework.js\";\nimport { UnitSystemSelector } from \"./UnitSystemSelector.js\";\nimport { Button, Dialog } from \"@itwin/itwinui-react\";\nimport { SvgMeasure } from \"@itwin/itwinui-icons-react\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\nimport type { SettingsTabEntry } from \"../SettingsManager.js\";\n\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\n const compare = new DeepCompare();\n return compare.compare(obj1, obj2);\n}\n\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport interface QuantityFormatterSettingsOptions {\n initialQuantityType: QuantityTypeArg;\n availableUnitSystems: Set<UnitSystemKey>;\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport function getQuantityFormatsSettingsManagerEntry(\n itemPriority: number,\n opts?: Partial<QuantityFormatterSettingsOptions>\n): SettingsTabEntry {\n const { availableUnitSystems, initialQuantityType } = { ...opts };\n return {\n itemPriority,\n tabId: \"uifw:Quantity\",\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\n page: (\n <QuantityFormatSettingsPage\n initialQuantityType={initialQuantityType ?? QuantityType.Length}\n availableUnitSystems={\n availableUnitSystems ??\n new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])\n }\n />\n ),\n isDisabled: false,\n icon: <SvgMeasure />,\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\n pageWillHandleCloseRequest: true,\n };\n}\n\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\n * @beta\n */\nexport function QuantityFormatSettingsPage({\n initialQuantityType,\n availableUnitSystems,\n}: QuantityFormatterSettingsOptions) {\n const { translate } = useTranslation();\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(\n IModelApp.quantityFormatter.activeUnitSystem\n );\n const [activeQuantityType, setActiveQuantityType] = React.useState(\n getQuantityTypeKey(initialQuantityType)\n );\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<\n FormatterSpec | undefined\n >(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n getQuantityTypeKey(activeQuantityType)\n )\n );\n const [saveEnabled, setSaveEnabled] = React.useState(false);\n const [clearEnabled, setClearEnabled] = React.useState(\n IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true)\n );\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n () => {\n if (\n activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem\n ) {\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n }\n );\n }, [activeQuantityType, activeUnitSystemKey]);\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n (args) => {\n if (!newQuantityTypeRef.current) {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\n if (args.quantityType === quantityKey) {\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n }\n newQuantityTypeRef.current = undefined;\n }\n );\n }, [activeQuantityType]);\n\n const saveChanges = React.useCallback(\n (afterSaveFunction: (args: any) => void, args?: any) => {\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={args}\n onDialogClose={afterSaveFunction}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n afterSaveFunction(args);\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n useSaveBeforeActivatingNewSettingsTab(\n UiFramework.settingsManager,\n saveChanges\n );\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n useSaveBeforeClosingSettingsContainer(\n UiFramework.settingsManager,\n saveChanges\n );\n\n const processListboxValueChange = React.useCallback(\n (newQuantityType: QuantityTypeKey) => {\n const volumeFormatterSpec =\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n newQuantityType\n );\n setActiveFormatterSpec(volumeFormatterSpec);\n setActiveQuantityType(newQuantityType);\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true)\n );\n },\n []\n );\n\n const onListboxValueChange = React.useCallback(\n (newQuantityType: string) => {\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n newQuantityTypeRef.current = newQuantityType;\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={newQuantityType}\n onDialogClose={processListboxValueChange}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n processListboxValueChange(newQuantityType);\n },\n [activeFormatterSpec, activeQuantityType, processListboxValueChange]\n );\n\n const handleOnFormatChanged = React.useCallback(\n async (formatProps: FormatProps) => {\n if (activeFormatterSpec) {\n const newSpec =\n await IModelApp.quantityFormatter.generateFormatterSpecByType(\n activeQuantityType,\n formatProps\n );\n const formatPropsInUse =\n IModelApp.quantityFormatter.getFormatPropsByQuantityType(\n activeQuantityType\n );\n if (formatPropsInUse)\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\n setActiveFormatterSpec(newSpec);\n }\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n const handleOnFormatSave = React.useCallback(async () => {\n if (activeFormatterSpec) {\n const format = activeFormatterSpec.format.toJSON();\n await IModelApp.quantityFormatter.setOverrideFormat(\n activeQuantityType,\n format\n );\n setClearEnabled(true);\n }\n }, [activeFormatterSpec, activeQuantityType]);\n\n const handleOnFormatReset = React.useCallback(async () => {\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\n setClearEnabled(false);\n }, [activeQuantityType]);\n\n const processNewUnitSystem = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\n },\n []\n );\n\n const handleUnitSystemSelected = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n if (unitSystem === activeUnitSystemKey) return;\n saveChanges(processNewUnitSystem, unitSystem);\n },\n [activeUnitSystemKey, processNewUnitSystem, saveChanges]\n );\n\n return (\n <div className=\"quantity-formatting-container\">\n <UnitSystemSelector\n selectedUnitSystemKey={activeUnitSystemKey}\n availableUnitSystems={availableUnitSystems}\n onUnitSystemSelected={handleUnitSystemSelected}\n />\n <span className=\"uifw-quantity-format-section-label\">\n {translate(\"settings.quantity-formatting.formatSectionLabel\")}\n </span>\n <div className=\"uifw-quantity-types-container\">\n <div className=\"left-panel\">\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <Listbox\n id=\"uifw-quantity-types-list\"\n className=\"uifw-quantity-types\"\n onListboxValueChange={onListboxValueChange}\n selectedValue={activeQuantityType}\n >\n {[...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map(\n (key) => {\n const entry =\n IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\n const description = entry.description;\n const label = entry.label;\n return (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <ListboxItem\n key={entry.key}\n className=\"quantity-type-list-entry\"\n value={entry.key}\n >\n <span\n className=\"map-source-list-entry-name\"\n title={description}\n >\n {label}\n </span>\n </ListboxItem>\n );\n }\n )}\n </Listbox>\n </div>\n <div className=\"right-panel\">\n {activeFormatterSpec && (\n <>\n <div className=\"uifw-quantity-types-right-top\">\n <div className=\"uifw-quantity-types-right-top-sample\">\n <FormatSample\n formatSpec={activeFormatterSpec}\n initialMagnitude={1234.56}\n hideLabels\n />\n </div>\n </div>\n <div className=\"uifw-quantity-types-formats\">\n <QuantityFormatPanel\n onFormatChange={handleOnFormatChanged}\n quantityType={activeQuantityType}\n />\n </div>\n <div className=\"components-button-panel\">\n <Button\n styleType=\"cta\"\n onClick={handleOnFormatSave}\n disabled={!saveEnabled}\n >\n {translate(\"settings.quantity-formatting.setButtonLabel\")}\n </Button>\n <Button\n styleType=\"default\"\n onClick={handleOnFormatReset}\n disabled={!clearEnabled}\n >\n {translate(\"settings.quantity-formatting.clearButtonLabel\")}\n </Button>\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SaveFormatModalDialog({\n formatProps,\n quantityType,\n onDialogCloseArgs,\n onDialogClose,\n}: {\n formatProps: FormatProps;\n quantityType: QuantityTypeKey;\n onDialogCloseArgs?: any;\n onDialogClose: (args?: any) => void;\n}) {\n const { translate } = useTranslation();\n const [isOpen, setIsOpen] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false);\n UiFramework.dialogs.modal.close();\n onDialogClose && onDialogClose(onDialogCloseArgs);\n }, [onDialogClose, onDialogCloseArgs]);\n\n const handleOK = React.useCallback(() => {\n void IModelApp.quantityFormatter.setOverrideFormat(\n quantityType,\n formatProps\n );\n handleClose();\n }, [formatProps, handleClose, quantityType]);\n\n const handleCancel = React.useCallback(() => {\n handleClose();\n }, [handleClose]);\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={handleCancel}\n className=\"uifw-settings-quantityFormatting-saveFormatModalDialog\"\n closeOnEsc\n closeOnExternalClick\n preventDocumentScroll\n >\n <Dialog.Backdrop />\n <Dialog.Main\n style={{ minWidth: 200, maxWidth: 400, minHeight: 150, maxHeight: 400 }}\n >\n <Dialog.TitleBar titleText={\"Save Format Changes\"} />\n <Dialog.Content>\n Do you want to save changes to format before changing to another type?\n </Dialog.Content>\n <Dialog.ButtonBar>\n <Button styleType=\"high-visibility\" onClick={handleOK}>\n {translate(\"dialog.yes\")}\n </Button>\n <Button onClick={handleCancel}>{translate(\"dialog.no\")}</Button>\n </Dialog.ButtonBar>\n </Dialog.Main>\n </Dialog>\n );\n}\n"]}
@@ -14,7 +14,7 @@ import { Select, Slider, ToggleSwitch } from "@itwin/itwinui-react";
14
14
  import { useTranslation } from "../../hooks/useTranslation.js";
15
15
  import { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME, } from "../../theme/ThemeId.js";
16
16
  import { ConfigurableUiActionId } from "../../redux/ConfigurableUiState.js";
17
- /* eslint-disable deprecation/deprecation */
17
+ /* eslint-disable @typescript-eslint/no-deprecated */
18
18
  /** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.
19
19
  *
20
20
  * - theme - Dark, Light, with or without High contrast, or based on OS preference.
@@ -39,7 +39,7 @@ export function UiSettingsPage() {
39
39
  const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());
40
40
  const [autoHideUi, setAutoHideUi] = React.useState(() => UiFramework.visibility.autoHideUi);
41
41
  const [useProximityOpacity, setUseProximityOpacity] = React.useState(
42
- // eslint-disable-next-line deprecation/deprecation
42
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
43
43
  () => UiFramework.visibility.useProximityOpacity);
44
44
  const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiFramework.visibility.snapWidgetOpacity);
45
45
  const [toolbarOpacity, setToolbarOpacity] = React.useState(() => UiFramework.getToolbarOpacity());
@@ -71,9 +71,9 @@ export function UiSettingsPage() {
71
71
  setWidgetOpacity(UiFramework.getWidgetOpacity());
72
72
  if (UiFramework.visibility.autoHideUi !== autoHideUi)
73
73
  setAutoHideUi(UiFramework.visibility.autoHideUi);
74
- // eslint-disable-next-line deprecation/deprecation
74
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
75
75
  if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)
76
- // eslint-disable-next-line deprecation/deprecation
76
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
77
77
  setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);
78
78
  if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)
79
79
  setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);
@@ -132,7 +132,7 @@ export function UiSettingsPage() {
132
132
  UiFramework.visibility.autoHideUi = !autoHideUi;
133
133
  }, [autoHideUi]);
134
134
  const onUseProximityOpacityChange = React.useCallback(async () => {
135
- // eslint-disable-next-line deprecation/deprecation
135
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
136
136
  UiFramework.visibility.useProximityOpacity = !useProximityOpacity;
137
137
  }, [useProximityOpacity]);
138
138
  const onSnapWidgetOpacityChange = React.useCallback(async () => {