@itwin/appui-react 4.0.0-dev.10 → 4.0.0-dev.12

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 (709) hide show
  1. package/lib/cjs/appui-react/_variables.scss +4 -5
  2. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +2 -1
  3. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  4. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +4 -10
  5. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/Calculator.js +3 -2
  7. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/Calculator.scss +12 -14
  9. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/MenuButton.js +2 -1
  11. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/SquareButton.scss +10 -25
  13. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +1 -1
  14. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/backstage/BackstageComposer.js +16 -19
  16. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  17. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +1 -2
  18. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +5 -5
  20. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  21. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +44 -13
  22. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageItem.js +4 -5
  24. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageItemsManager.d.ts +39 -0
  26. package/lib/cjs/appui-react/backstage/BackstageItemsManager.d.ts.map +1 -0
  27. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js +130 -0
  28. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -0
  29. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.d.ts +2 -1
  30. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.d.ts.map +1 -1
  31. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js +2 -6
  32. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  33. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +1 -1
  34. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -6
  36. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.d.ts +1 -1
  38. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js +1 -1
  39. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  40. package/lib/cjs/appui-react/configurableui/configurableui.scss +0 -3
  41. package/lib/cjs/appui-react/content/ContentLayout.scss +4 -4
  42. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +10 -7
  43. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts +2 -10
  44. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/content/FloatingViewportContent.js +15 -14
  46. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  47. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -3
  48. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js +2 -1
  50. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  51. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +1 -1
  52. package/lib/cjs/appui-react/feedback/ValidationTextbox.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +2 -1
  54. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  55. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +3 -6
  56. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  57. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +4 -2
  58. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  59. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +9 -12
  60. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts +1 -1
  61. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -2
  63. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  64. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +1 -3
  65. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts +1 -0
  66. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  67. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +4 -1
  68. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  69. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts +9 -8
  70. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/frontstage/StageUsage.js +10 -3
  72. package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
  73. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +3 -3
  74. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  75. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +4 -4
  76. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  77. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.d.ts.map +1 -1
  78. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js +5 -9
  79. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  80. package/lib/cjs/appui-react/messages/ActivityMessage.js +1 -1
  81. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  82. package/lib/cjs/appui-react/messages/InputField.d.ts.map +1 -1
  83. package/lib/cjs/appui-react/messages/InputField.js +8 -7
  84. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  85. package/lib/cjs/appui-react/messages/InputField.scss +8 -8
  86. package/lib/cjs/appui-react/messages/MessageManager.d.ts +10 -1
  87. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/messages/MessageManager.js +30 -5
  89. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  90. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  91. package/lib/cjs/appui-react/messages/Pointer.js +1 -1
  92. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  93. package/lib/cjs/appui-react/messages/Pointer.scss +6 -6
  94. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  95. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +5 -2
  96. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  97. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +1 -21
  98. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +3 -3
  99. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  100. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +8 -6
  101. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  102. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +2 -2
  103. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  104. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +19 -10
  105. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  106. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +1 -1
  107. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/pickers/ListPicker.js +4 -3
  109. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  110. package/lib/cjs/appui-react/pickers/ListPicker.scss +5 -5
  111. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  112. package/lib/cjs/appui-react/pickers/ViewSelector.js +3 -1
  113. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  114. package/lib/cjs/appui-react/popup/CardPopup.js +2 -2
  115. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  116. package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +1 -1
  117. package/lib/cjs/appui-react/popup/PositionPopup.scss +1 -1
  118. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +3 -2
  119. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/popup/ToolbarPopup.js +3 -1
  121. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  122. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +20 -10
  124. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  125. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  126. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  127. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  128. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +2 -2
  129. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +3 -4
  130. package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
  131. package/lib/cjs/appui-react/shared/ItemProps.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  133. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts +1 -1
  134. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  135. package/lib/cjs/appui-react/shared/ToolItemDef.js +2 -2
  136. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  137. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +27 -0
  138. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts +7 -7
  140. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -1
  141. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js +8 -3
  142. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  143. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts +5 -7
  144. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -1
  145. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js +6 -3
  146. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  147. package/lib/cjs/appui-react/statusbar/Indicator.scss +14 -15
  148. package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts +1 -1
  149. package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts.map +1 -1
  150. package/lib/cjs/appui-react/statusbar/LabelIndicator.js +2 -3
  151. package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
  152. package/lib/cjs/appui-react/statusbar/Separator.scss +1 -3
  153. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -0
  154. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  155. package/lib/cjs/appui-react/statusbar/StatusBar.js +2 -1
  156. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  157. package/lib/cjs/appui-react/statusbar/StatusBar.scss +1 -3
  158. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +2 -2
  159. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +34 -35
  161. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  162. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +71 -39
  163. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  164. package/lib/cjs/appui-react/statusbar/StatusBarItem.js +33 -20
  165. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  166. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts +5 -14
  167. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js +28 -20
  169. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  170. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +40 -0
  171. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts.map +1 -0
  172. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +135 -0
  173. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -0
  174. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts +3 -2
  175. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
  176. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js +2 -7
  177. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  178. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +3 -3
  179. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  180. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  181. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  182. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +5 -3
  183. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  184. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  185. package/lib/cjs/appui-react/statusfields/MessageCenter.js +5 -2
  186. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  187. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  188. package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -1
  189. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  190. package/lib/cjs/appui-react/statusfields/SectionsField.scss +3 -4
  191. package/lib/cjs/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  192. package/lib/cjs/appui-react/statusfields/SelectionInfo.js +2 -1
  193. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  194. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +1 -1
  195. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -0
  196. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/statusfields/SnapMode.js +40 -2
  198. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  199. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  200. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +2 -1
  201. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  202. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  203. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +5 -4
  204. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  205. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +12 -12
  206. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  207. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -2
  208. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  209. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +2 -3
  210. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  211. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +29 -32
  212. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  213. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts +6 -10
  214. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  215. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +8 -18
  216. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  217. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +77 -26
  218. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  219. package/lib/cjs/appui-react/toolbar/ToolbarItem.js +22 -11
  220. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  221. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts +6 -4
  222. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
  223. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js +31 -6
  224. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  225. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts +46 -0
  226. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -0
  227. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +248 -0
  228. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -0
  229. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.d.ts +8 -0
  230. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.d.ts.map +1 -0
  231. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js +26 -0
  232. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -0
  233. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts +3 -2
  234. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
  235. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js +2 -6
  236. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  237. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +3 -3
  238. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
  239. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -7
  240. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  241. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  242. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +13 -8
  243. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  244. package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  245. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +3 -1
  246. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  247. package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  248. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +3 -1
  249. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  250. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  251. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +4 -2
  252. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  253. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +20 -3
  254. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  255. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +58 -4
  256. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  257. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts +4 -3
  258. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -1
  259. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  260. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +6 -4
  261. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  262. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +9 -65
  263. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  264. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +5 -3
  265. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  266. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +6 -5
  267. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  268. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +4 -3
  269. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  270. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +8 -34
  271. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  272. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
  273. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  274. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +4 -4
  275. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  276. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +4 -3
  277. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  278. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -43
  279. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  280. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +3 -2
  281. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  282. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +10 -17
  283. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  284. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +73 -5
  285. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  286. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +162 -3
  287. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  288. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +21 -3
  289. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  290. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  291. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.d.ts +7 -0
  292. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.d.ts.map +1 -0
  293. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js +16 -0
  294. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js.map +1 -0
  295. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +2 -3
  296. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -1
  297. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  298. package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -2
  299. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  300. package/lib/cjs/appui-react/utils/PropsHelper.js +2 -1
  301. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  302. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  303. package/lib/cjs/appui-react/widget-panels/Content.js +10 -12
  304. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  305. package/lib/cjs/appui-react/widget-panels/Frontstage.js +7 -5
  306. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  307. package/lib/cjs/appui-react/widget-panels/StatusBar.d.ts.map +1 -1
  308. package/lib/cjs/appui-react/widget-panels/StatusBar.js +3 -2
  309. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  310. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +2 -1
  311. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  312. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  313. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts +4 -4
  314. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  315. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +2 -2
  316. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  317. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +4 -4
  318. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  319. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +2 -2
  320. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  321. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +2 -2
  322. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +4 -4
  323. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  324. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  325. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +2 -2
  326. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  327. package/lib/cjs/appui-react/widgets/Widget.d.ts +39 -0
  328. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -0
  329. package/lib/cjs/appui-react/widgets/{WidgetProps.js → Widget.js} +1 -1
  330. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -0
  331. package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts +4 -14
  332. package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts.map +1 -1
  333. package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -1
  334. package/lib/cjs/appui-react/widgets/WidgetControl.d.ts +1 -1
  335. package/lib/cjs/appui-react/widgets/WidgetControl.d.ts.map +1 -1
  336. package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
  337. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +7 -5
  338. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  339. package/lib/cjs/appui-react/widgets/WidgetDef.js +30 -42
  340. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  341. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  342. package/lib/cjs/appui-react/widgets/WidgetManager.js +2 -15
  343. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  344. package/lib/cjs/appui-react/widgets/WidgetState.d.ts +8 -7
  345. package/lib/cjs/appui-react/widgets/WidgetState.d.ts.map +1 -1
  346. package/lib/cjs/appui-react/widgets/WidgetState.js +9 -3
  347. package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
  348. package/lib/cjs/appui-react.d.ts +4 -4
  349. package/lib/cjs/appui-react.d.ts.map +1 -1
  350. package/lib/cjs/appui-react.js +4 -4
  351. package/lib/cjs/appui-react.js.map +1 -1
  352. package/lib/esm/appui-react/_variables.scss +4 -5
  353. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +2 -1
  354. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  355. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +4 -10
  356. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  357. package/lib/esm/appui-react/accudraw/Calculator.js +3 -2
  358. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  359. package/lib/esm/appui-react/accudraw/Calculator.scss +12 -14
  360. package/lib/esm/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  361. package/lib/esm/appui-react/accudraw/MenuButton.js +2 -1
  362. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  363. package/lib/esm/appui-react/accudraw/SquareButton.scss +10 -25
  364. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +1 -1
  365. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  366. package/lib/esm/appui-react/backstage/BackstageComposer.js +12 -15
  367. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  368. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +1 -2
  369. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  370. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +7 -7
  371. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  372. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +44 -13
  373. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  374. package/lib/esm/appui-react/backstage/BackstageItem.js +4 -5
  375. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  376. package/lib/esm/appui-react/backstage/BackstageItemsManager.d.ts +39 -0
  377. package/lib/esm/appui-react/backstage/BackstageItemsManager.d.ts.map +1 -0
  378. package/lib/esm/appui-react/backstage/BackstageItemsManager.js +126 -0
  379. package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -0
  380. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.d.ts +2 -1
  381. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.d.ts.map +1 -1
  382. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js +2 -6
  383. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  384. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +1 -1
  385. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  386. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -6
  387. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  388. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.d.ts +1 -1
  389. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js +1 -1
  390. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  391. package/lib/esm/appui-react/configurableui/configurableui.scss +0 -3
  392. package/lib/esm/appui-react/content/ContentLayout.scss +4 -4
  393. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +10 -7
  394. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts +2 -10
  395. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  396. package/lib/esm/appui-react/content/FloatingViewportContent.js +15 -14
  397. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  398. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -3
  399. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  400. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js +3 -2
  401. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  402. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +1 -1
  403. package/lib/esm/appui-react/feedback/ValidationTextbox.d.ts.map +1 -1
  404. package/lib/esm/appui-react/feedback/ValidationTextbox.js +2 -1
  405. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  406. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +3 -6
  407. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  408. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +5 -3
  409. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  410. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +9 -12
  411. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts +1 -1
  412. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  413. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +3 -3
  414. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  415. package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +1 -3
  416. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts +1 -0
  417. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  418. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +4 -1
  419. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  420. package/lib/esm/appui-react/frontstage/StageUsage.d.ts +9 -8
  421. package/lib/esm/appui-react/frontstage/StageUsage.d.ts.map +1 -1
  422. package/lib/esm/appui-react/frontstage/StageUsage.js +10 -3
  423. package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -1
  424. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +3 -3
  425. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  426. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +4 -4
  427. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  428. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.d.ts.map +1 -1
  429. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js +5 -9
  430. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  431. package/lib/esm/appui-react/messages/ActivityMessage.js +2 -2
  432. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  433. package/lib/esm/appui-react/messages/InputField.d.ts.map +1 -1
  434. package/lib/esm/appui-react/messages/InputField.js +9 -8
  435. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  436. package/lib/esm/appui-react/messages/InputField.scss +8 -8
  437. package/lib/esm/appui-react/messages/MessageManager.d.ts +10 -1
  438. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  439. package/lib/esm/appui-react/messages/MessageManager.js +31 -6
  440. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  441. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  442. package/lib/esm/appui-react/messages/Pointer.js +2 -2
  443. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  444. package/lib/esm/appui-react/messages/Pointer.scss +6 -6
  445. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  446. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +6 -3
  447. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  448. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +1 -21
  449. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +3 -3
  450. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  451. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +9 -7
  452. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  453. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +2 -2
  454. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  455. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +20 -11
  456. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  457. package/lib/esm/appui-react/pickers/ListPicker.d.ts +1 -1
  458. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  459. package/lib/esm/appui-react/pickers/ListPicker.js +4 -3
  460. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  461. package/lib/esm/appui-react/pickers/ListPicker.scss +5 -5
  462. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  463. package/lib/esm/appui-react/pickers/ViewSelector.js +4 -2
  464. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  465. package/lib/esm/appui-react/popup/CardPopup.js +3 -3
  466. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  467. package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +1 -1
  468. package/lib/esm/appui-react/popup/PositionPopup.scss +1 -1
  469. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +3 -2
  470. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  471. package/lib/esm/appui-react/popup/ToolbarPopup.js +3 -1
  472. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  473. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  474. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +21 -11
  475. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  476. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  477. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  478. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  479. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +2 -2
  480. package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +3 -4
  481. package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
  482. package/lib/esm/appui-react/shared/ItemProps.d.ts.map +1 -1
  483. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  484. package/lib/esm/appui-react/shared/ToolItemDef.d.ts +1 -1
  485. package/lib/esm/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  486. package/lib/esm/appui-react/shared/ToolItemDef.js +2 -2
  487. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  488. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +27 -0
  489. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  490. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts +7 -7
  491. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -1
  492. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js +8 -3
  493. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  494. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts +5 -7
  495. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -1
  496. package/lib/esm/appui-react/stagepanels/StagePanelSection.js +6 -3
  497. package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  498. package/lib/esm/appui-react/statusbar/Indicator.scss +14 -15
  499. package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts +1 -1
  500. package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts.map +1 -1
  501. package/lib/esm/appui-react/statusbar/LabelIndicator.js +2 -3
  502. package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
  503. package/lib/esm/appui-react/statusbar/Separator.scss +1 -3
  504. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -0
  505. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  506. package/lib/esm/appui-react/statusbar/StatusBar.js +2 -1
  507. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  508. package/lib/esm/appui-react/statusbar/StatusBar.scss +1 -3
  509. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +2 -2
  510. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  511. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +17 -18
  512. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  513. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +71 -39
  514. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  515. package/lib/esm/appui-react/statusbar/StatusBarItem.js +32 -18
  516. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  517. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts +5 -14
  518. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  519. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js +28 -19
  520. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  521. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +40 -0
  522. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts.map +1 -0
  523. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +131 -0
  524. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -0
  525. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts +3 -2
  526. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
  527. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js +2 -7
  528. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  529. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +3 -3
  530. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  531. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  532. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  533. package/lib/esm/appui-react/statusfields/ActivityCenter.js +6 -4
  534. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  535. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  536. package/lib/esm/appui-react/statusfields/MessageCenter.js +5 -2
  537. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  538. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  539. package/lib/esm/appui-react/statusfields/SectionsField.js +4 -1
  540. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  541. package/lib/esm/appui-react/statusfields/SectionsField.scss +3 -4
  542. package/lib/esm/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  543. package/lib/esm/appui-react/statusfields/SelectionInfo.js +2 -1
  544. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  545. package/lib/esm/appui-react/statusfields/SelectionScope.scss +1 -1
  546. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -0
  547. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  548. package/lib/esm/appui-react/statusfields/SnapMode.js +40 -2
  549. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  550. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  551. package/lib/esm/appui-react/statusfields/ViewAttributes.js +2 -1
  552. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  553. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  554. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +6 -5
  555. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  556. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +12 -12
  557. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  558. package/lib/esm/appui-react/theme/ThemeManager.js +1 -2
  559. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  560. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +2 -3
  561. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  562. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +25 -28
  563. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  564. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts +6 -10
  565. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  566. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +9 -19
  567. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  568. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +77 -26
  569. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  570. package/lib/esm/appui-react/toolbar/ToolbarItem.js +22 -11
  571. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  572. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts +6 -4
  573. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
  574. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js +31 -6
  575. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  576. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts +46 -0
  577. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -0
  578. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +244 -0
  579. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -0
  580. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.d.ts +8 -0
  581. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.d.ts.map +1 -0
  582. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js +22 -0
  583. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -0
  584. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts +3 -2
  585. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
  586. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js +2 -6
  587. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  588. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +3 -3
  589. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
  590. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -7
  591. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  592. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  593. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +13 -8
  594. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  595. package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  596. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +3 -1
  597. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  598. package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  599. package/lib/esm/appui-react/tools/OpenSettingsTool.js +3 -1
  600. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  601. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  602. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +4 -2
  603. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  604. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +20 -3
  605. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  606. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +58 -4
  607. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  608. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts +4 -3
  609. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -1
  610. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  611. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +6 -4
  612. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  613. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +7 -63
  614. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  615. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +5 -3
  616. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  617. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +4 -3
  618. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  619. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +4 -3
  620. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  621. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +6 -32
  622. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  623. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
  624. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  625. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +4 -4
  626. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  627. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +4 -3
  628. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  629. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +5 -41
  630. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  631. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +3 -2
  632. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  633. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +10 -17
  634. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  635. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +73 -5
  636. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  637. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +162 -3
  638. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  639. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +21 -3
  640. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  641. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  642. package/lib/esm/appui-react/ui-items-provider/isProviderItem.d.ts +7 -0
  643. package/lib/esm/appui-react/ui-items-provider/isProviderItem.d.ts.map +1 -0
  644. package/lib/esm/appui-react/ui-items-provider/isProviderItem.js +12 -0
  645. package/lib/esm/appui-react/ui-items-provider/isProviderItem.js.map +1 -0
  646. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +2 -3
  647. package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -1
  648. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  649. package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -2
  650. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  651. package/lib/esm/appui-react/utils/PropsHelper.js +2 -1
  652. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  653. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  654. package/lib/esm/appui-react/widget-panels/Content.js +10 -12
  655. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  656. package/lib/esm/appui-react/widget-panels/Frontstage.js +7 -5
  657. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  658. package/lib/esm/appui-react/widget-panels/StatusBar.d.ts.map +1 -1
  659. package/lib/esm/appui-react/widget-panels/StatusBar.js +3 -2
  660. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  661. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +2 -1
  662. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  663. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  664. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts +4 -4
  665. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  666. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -1
  667. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  668. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +4 -4
  669. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  670. package/lib/esm/appui-react/widgets/BasicToolWidget.js +1 -1
  671. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  672. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +2 -2
  673. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +3 -3
  674. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  675. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  676. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  677. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  678. package/lib/esm/appui-react/widgets/Widget.d.ts +39 -0
  679. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -0
  680. package/lib/esm/appui-react/widgets/{WidgetProps.js → Widget.js} +1 -1
  681. package/lib/esm/appui-react/widgets/Widget.js.map +1 -0
  682. package/lib/esm/appui-react/widgets/WidgetConfig.d.ts +4 -14
  683. package/lib/esm/appui-react/widgets/WidgetConfig.d.ts.map +1 -1
  684. package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -1
  685. package/lib/esm/appui-react/widgets/WidgetControl.d.ts +1 -1
  686. package/lib/esm/appui-react/widgets/WidgetControl.d.ts.map +1 -1
  687. package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
  688. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +7 -5
  689. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  690. package/lib/esm/appui-react/widgets/WidgetDef.js +22 -34
  691. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  692. package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  693. package/lib/esm/appui-react/widgets/WidgetManager.js +2 -15
  694. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  695. package/lib/esm/appui-react/widgets/WidgetState.d.ts +8 -7
  696. package/lib/esm/appui-react/widgets/WidgetState.d.ts.map +1 -1
  697. package/lib/esm/appui-react/widgets/WidgetState.js +9 -3
  698. package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -1
  699. package/lib/esm/appui-react.d.ts +4 -4
  700. package/lib/esm/appui-react.d.ts.map +1 -1
  701. package/lib/esm/appui-react.js +4 -4
  702. package/lib/esm/appui-react.js.map +1 -1
  703. package/package.json +28 -46
  704. package/lib/cjs/appui-react/widgets/WidgetProps.d.ts +0 -12
  705. package/lib/cjs/appui-react/widgets/WidgetProps.d.ts.map +0 -1
  706. package/lib/cjs/appui-react/widgets/WidgetProps.js.map +0 -1
  707. package/lib/esm/appui-react/widgets/WidgetProps.d.ts +0 -12
  708. package/lib/esm/appui-react/widgets/WidgetProps.d.ts.map +0 -1
  709. package/lib/esm/appui-react/widgets/WidgetProps.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../../src/appui-react/pickers/ViewSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Picker\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, ViewState } from \"@itwin/core-frontend\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { SupportsViewSelectorChange } from \"../content/ContentControl\";\r\nimport { connectIModelConnection } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ListItem, ListItemType, ListPicker } from \"./ListPicker\";\r\n\r\n// cSpell:ignore Spatials\r\n\r\n/** [[ViewSelectorChangedEvent]] Args interface.\r\n * @beta\r\n */\r\nexport interface ViewSelectorChangedEventArgs {\r\n iModelConnection: IModelConnection;\r\n viewDefinitionId: Id64String;\r\n viewState: ViewState;\r\n name: string;\r\n}\r\n\r\n/** ViewSelector Changed Event class.\r\n * @beta\r\n */\r\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> { }\r\n\r\n/** Properties for the [[ViewSelector]] component\r\n * @beta\r\n */\r\nexport interface ViewSelectorProps {\r\n imodel?: IModelConnection;\r\n listenForShowUpdates?: boolean;\r\n\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** State for the [[ViewSelector]] component\r\n * @beta\r\n */\r\ninterface ViewSelectorState {\r\n items: ListItem[];\r\n title: string;\r\n initialized: boolean;\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** Default properties of [[ViewSelector]] component.\r\n * @beta\r\n */\r\nexport type ViewSelectorDefaultProps = Pick<ViewSelectorProps, \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\">;\r\n\r\n/** ViewSelector Show Update Event Args interface.\r\n */\r\ninterface ViewSelectorShowUpdateEventArgs {\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** ViewSelector Show Update Event class.\r\n */\r\nclass ViewSelectorShowUpdateEvent extends UiEvent<ViewSelectorShowUpdateEventArgs> { }\r\n\r\n/** View Selector React component\r\n * @beta\r\n */\r\nexport class ViewSelector extends React.Component<ViewSelectorProps, ViewSelectorState> {\r\n\r\n private static readonly _onViewSelectorShowUpdateEvent = new ViewSelectorShowUpdateEvent();\r\n private _removeShowUpdateListener?: () => void;\r\n private _isMounted = false;\r\n\r\n public static readonly defaultProps: ViewSelectorDefaultProps = {\r\n showSpatials: true,\r\n showDrawings: true,\r\n showSheets: true,\r\n showUnknown: true,\r\n };\r\n\r\n /** Gets the [[ViewSelectorChangedEvent]] */\r\n public static readonly onViewSelectorChangedEvent = new ViewSelectorChangedEvent();\r\n\r\n /** Updates the ViewSelector show settings.\r\n */\r\n public static updateShowSettings(showSpatials: boolean, showDrawings: boolean, showSheets: boolean, showUnknown: boolean): void {\r\n ViewSelector._onViewSelectorShowUpdateEvent.emit({ showSpatials, showDrawings, showSheets, showUnknown });\r\n }\r\n\r\n /** Creates a ViewSelector */\r\n constructor(props: ViewSelectorProps) {\r\n super(props);\r\n\r\n this.state = {\r\n items: new Array<ListItem>(),\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: false,\r\n showSpatials: props.showSpatials,\r\n showDrawings: props.showDrawings,\r\n showSheets: props.showSheets,\r\n showUnknown: props.showUnknown,\r\n };\r\n }\r\n\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n if (this.props.listenForShowUpdates)\r\n this._removeShowUpdateListener = ViewSelector._onViewSelectorShowUpdateEvent.addListener(this._handleViewSelectorShowUpdateEvent);\r\n\r\n await this.loadViews();\r\n }\r\n\r\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\r\n if (this.props.imodel !== prevProps.imodel) {\r\n await this.loadViews();\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n // istanbul ignore else\r\n if (this._removeShowUpdateListener)\r\n this._removeShowUpdateListener();\r\n }\r\n\r\n private _handleViewSelectorShowUpdateEvent = (args: ViewSelectorShowUpdateEventArgs): void => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState(args, async () => this.loadViews());\r\n };\r\n\r\n private setStateContainers(views3d: ListItem[], views2d: ListItem[], sheets: ListItem[], unknown?: ListItem[]) {\r\n const views3dContainer: ListItem = {\r\n key: \"views3dContainer\",\r\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views3d,\r\n };\r\n\r\n const views2dContainer: ListItem = {\r\n key: \"views2dContainer\",\r\n name: UiFramework.translate(\"viewTypes.drawings\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views2d,\r\n };\r\n\r\n const sheetContainer: ListItem = {\r\n key: \"sheetContainer\",\r\n name: UiFramework.translate(\"viewTypes.sheets\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: sheets,\r\n };\r\n\r\n const containers = [views3dContainer, views2dContainer, sheetContainer];\r\n\r\n // istanbul ignore if\r\n if (unknown && unknown.length > 0) {\r\n // This should never show, but just in case we missed a type of view state\r\n const unknownContainer: ListItem = {\r\n key: \"unknownContainer\",\r\n name: UiFramework.translate(\"viewTypes.others\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: unknown,\r\n };\r\n\r\n if (unknown.length !== 0)\r\n containers.push(unknownContainer);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState({\r\n items: containers,\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: true,\r\n });\r\n }\r\n /**\r\n * Query the views and set the initial state with the iModel's views.\r\n */\r\n public async loadViews(): Promise<void> {\r\n // Query views and add them to state\r\n const views3d: ListItem[] = [];\r\n const views2d: ListItem[] = [];\r\n const sheets: ListItem[] = [];\r\n const unknown: ListItem[] = [];\r\n\r\n if (this.props.imodel && this.props.imodel.views.getViewList) {\r\n const query = { wantPrivate: false };\r\n const specs = await this.props.imodel.views.getViewList(query);\r\n\r\n specs.forEach((spec: IModelConnection.ViewSpec) => {\r\n const viewItem: ListItem = {\r\n key: spec.id,\r\n name: spec.name,\r\n enabled: false,\r\n type: ListItemType.Item,\r\n };\r\n\r\n const className = ViewUtilities.getBisBaseClass(spec.class);\r\n\r\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\r\n views3d.push(viewItem);\r\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\r\n views2d.push(viewItem);\r\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\r\n sheets.push(viewItem);\r\n else if (this.state.showUnknown)\r\n unknown.push(viewItem);\r\n });\r\n }\r\n\r\n this.setStateContainers(views3d, views2d, sheets, unknown);\r\n }\r\n\r\n /**\r\n * Update state of the entries in the widget.\r\n * @param viewId Identifier for the relevant view\r\n */\r\n // istanbul ignore next\r\n public async updateState(viewId?: any): Promise<void> {\r\n // Wait for initialization finished\r\n if (!this.state.initialized)\r\n return;\r\n\r\n // Query views and add them to state\r\n const views3d: ListItem[] = this.state.items[0].children!;\r\n const views2d: ListItem[] = this.state.items[1].children!;\r\n const sheets: ListItem[] = this.state.items[2].children!;\r\n const unknown: ListItem[] = this.state.items.length > 3 ? this.state.items[3].children! : [];\r\n\r\n const updateChildren = (item: ListItem) => {\r\n if (item.key === viewId)\r\n return { ...item, enabled: true };\r\n else\r\n return { ...item, enabled: false };\r\n };\r\n\r\n this.setStateContainers(views3d.map(updateChildren), views2d.map(updateChildren), sheets.map(updateChildren), unknown.map(updateChildren));\r\n }\r\n\r\n // enable/disable the models\r\n // istanbul ignore next\r\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\r\n const activeContentControl = UiFramework.content.getActiveContentControl() as unknown as SupportsViewSelectorChange;\r\n if (!activeContentControl || !activeContentControl.supportsViewSelectorChange) {\r\n Logger.logError(UiFramework.loggerCategory(this), `No active ContentControl for ViewSelector change`);\r\n return;\r\n }\r\n\r\n // Enable the item temporarily to let user see that their click was registered\r\n // while we query for view state and change the current view which may take a bit\r\n if (_enabled && item.type !== ListItemType.Container) {\r\n // This itemMapper simply looks through all the list items and their nested children and enables the one\r\n // that we have registered to enable\r\n // Also disable all other items\r\n const itemMapper: (tempItem: ListItem) => ListItem = (tempItem: ListItem) => {\r\n if (tempItem.type === ListItemType.Container) {\r\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\r\n } else if (tempItem.key === item.key) {\r\n return { ...tempItem, enabled: true };\r\n } else {\r\n return { ...tempItem, enabled: false };\r\n }\r\n };\r\n\r\n // Create the new array with the current item enabled\r\n const itemsWithEnabled = this.state.items.map(itemMapper);\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n // Update the state so that we show the user it was enabled while we work in the background\r\n this.setState({ items: itemsWithEnabled });\r\n }\r\n\r\n // Load the view state using the viewSpec's ID\r\n const viewState = await this.props.imodel!.views.load(item.key);\r\n\r\n // Let activeContentControl process the ViewSelector change\r\n await activeContentControl.processViewSelectorChange(this.props.imodel!, item.key, viewState, item.name!);\r\n\r\n // Emit a change event\r\n ViewSelector.onViewSelectorChangedEvent.emit({\r\n iModelConnection: this.props.imodel!,\r\n viewDefinitionId: item.key,\r\n viewState,\r\n name: item.name!,\r\n });\r\n\r\n // Set state to show enabled the view that got selected\r\n this.updateState(item.key); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n // Hook on the category selector being expanded so that we may initialize if needed\r\n // istanbul ignore next\r\n private _onExpanded = (expand: boolean) => {\r\n if (expand)\r\n this.updateState(IModelApp.viewManager.selectedView ? IModelApp.viewManager.selectedView.view.id : undefined); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n /**\r\n * Renders ViewSelector component\r\n */\r\n public override render() {\r\n if (!this.state.initialized)\r\n return null;\r\n\r\n const { imodel, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n return (\r\n <ListPicker\r\n {...props}\r\n title={this.state.title}\r\n setEnabled={this._setEnabled}\r\n items={this.state.items}\r\n iconSpec={\"icon-saved-view\"}\r\n onExpanded={this._onExpanded}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @beta\r\n */\r\nexport const IModelConnectedViewSelector = connectIModelConnection(null, null)(ViewSelector); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
1
+ {"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../../src/appui-react/pickers/ViewSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Picker\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, ViewState } from \"@itwin/core-frontend\";\r\nimport { IconSpecUtilities, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { SupportsViewSelectorChange } from \"../content/ContentControl\";\r\nimport { connectIModelConnection } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ListItem, ListItemType, ListPicker } from \"./ListPicker\";\r\nimport svgSavedView from \"@bentley/icons-generic/icons/saved-view.svg\";\r\n\r\n// cSpell:ignore Spatials\r\n\r\n/** [[ViewSelectorChangedEvent]] Args interface.\r\n * @beta\r\n */\r\nexport interface ViewSelectorChangedEventArgs {\r\n iModelConnection: IModelConnection;\r\n viewDefinitionId: Id64String;\r\n viewState: ViewState;\r\n name: string;\r\n}\r\n\r\n/** ViewSelector Changed Event class.\r\n * @beta\r\n */\r\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> { }\r\n\r\n/** Properties for the [[ViewSelector]] component\r\n * @beta\r\n */\r\nexport interface ViewSelectorProps {\r\n imodel?: IModelConnection;\r\n listenForShowUpdates?: boolean;\r\n\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** State for the [[ViewSelector]] component\r\n * @beta\r\n */\r\ninterface ViewSelectorState {\r\n items: ListItem[];\r\n title: string;\r\n initialized: boolean;\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** Default properties of [[ViewSelector]] component.\r\n * @beta\r\n */\r\nexport type ViewSelectorDefaultProps = Pick<ViewSelectorProps, \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\">;\r\n\r\n/** ViewSelector Show Update Event Args interface.\r\n */\r\ninterface ViewSelectorShowUpdateEventArgs {\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** ViewSelector Show Update Event class.\r\n */\r\nclass ViewSelectorShowUpdateEvent extends UiEvent<ViewSelectorShowUpdateEventArgs> { }\r\n\r\n/** View Selector React component\r\n * @beta\r\n */\r\nexport class ViewSelector extends React.Component<ViewSelectorProps, ViewSelectorState> {\r\n\r\n private static readonly _onViewSelectorShowUpdateEvent = new ViewSelectorShowUpdateEvent();\r\n private _removeShowUpdateListener?: () => void;\r\n private _isMounted = false;\r\n\r\n public static readonly defaultProps: ViewSelectorDefaultProps = {\r\n showSpatials: true,\r\n showDrawings: true,\r\n showSheets: true,\r\n showUnknown: true,\r\n };\r\n\r\n /** Gets the [[ViewSelectorChangedEvent]] */\r\n public static readonly onViewSelectorChangedEvent = new ViewSelectorChangedEvent();\r\n\r\n /** Updates the ViewSelector show settings.\r\n */\r\n public static updateShowSettings(showSpatials: boolean, showDrawings: boolean, showSheets: boolean, showUnknown: boolean): void {\r\n ViewSelector._onViewSelectorShowUpdateEvent.emit({ showSpatials, showDrawings, showSheets, showUnknown });\r\n }\r\n\r\n /** Creates a ViewSelector */\r\n constructor(props: ViewSelectorProps) {\r\n super(props);\r\n\r\n this.state = {\r\n items: new Array<ListItem>(),\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: false,\r\n showSpatials: props.showSpatials,\r\n showDrawings: props.showDrawings,\r\n showSheets: props.showSheets,\r\n showUnknown: props.showUnknown,\r\n };\r\n }\r\n\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n if (this.props.listenForShowUpdates)\r\n this._removeShowUpdateListener = ViewSelector._onViewSelectorShowUpdateEvent.addListener(this._handleViewSelectorShowUpdateEvent);\r\n\r\n await this.loadViews();\r\n }\r\n\r\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\r\n if (this.props.imodel !== prevProps.imodel) {\r\n await this.loadViews();\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n // istanbul ignore else\r\n if (this._removeShowUpdateListener)\r\n this._removeShowUpdateListener();\r\n }\r\n\r\n private _handleViewSelectorShowUpdateEvent = (args: ViewSelectorShowUpdateEventArgs): void => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState(args, async () => this.loadViews());\r\n };\r\n\r\n private setStateContainers(views3d: ListItem[], views2d: ListItem[], sheets: ListItem[], unknown?: ListItem[]) {\r\n const views3dContainer: ListItem = {\r\n key: \"views3dContainer\",\r\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views3d,\r\n };\r\n\r\n const views2dContainer: ListItem = {\r\n key: \"views2dContainer\",\r\n name: UiFramework.translate(\"viewTypes.drawings\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views2d,\r\n };\r\n\r\n const sheetContainer: ListItem = {\r\n key: \"sheetContainer\",\r\n name: UiFramework.translate(\"viewTypes.sheets\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: sheets,\r\n };\r\n\r\n const containers = [views3dContainer, views2dContainer, sheetContainer];\r\n\r\n // istanbul ignore if\r\n if (unknown && unknown.length > 0) {\r\n // This should never show, but just in case we missed a type of view state\r\n const unknownContainer: ListItem = {\r\n key: \"unknownContainer\",\r\n name: UiFramework.translate(\"viewTypes.others\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: unknown,\r\n };\r\n\r\n if (unknown.length !== 0)\r\n containers.push(unknownContainer);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState({\r\n items: containers,\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: true,\r\n });\r\n }\r\n /**\r\n * Query the views and set the initial state with the iModel's views.\r\n */\r\n public async loadViews(): Promise<void> {\r\n // Query views and add them to state\r\n const views3d: ListItem[] = [];\r\n const views2d: ListItem[] = [];\r\n const sheets: ListItem[] = [];\r\n const unknown: ListItem[] = [];\r\n\r\n if (this.props.imodel && this.props.imodel.views.getViewList) {\r\n const query = { wantPrivate: false };\r\n const specs = await this.props.imodel.views.getViewList(query);\r\n\r\n specs.forEach((spec: IModelConnection.ViewSpec) => {\r\n const viewItem: ListItem = {\r\n key: spec.id,\r\n name: spec.name,\r\n enabled: false,\r\n type: ListItemType.Item,\r\n };\r\n\r\n const className = ViewUtilities.getBisBaseClass(spec.class);\r\n\r\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\r\n views3d.push(viewItem);\r\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\r\n views2d.push(viewItem);\r\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\r\n sheets.push(viewItem);\r\n else if (this.state.showUnknown)\r\n unknown.push(viewItem);\r\n });\r\n }\r\n\r\n this.setStateContainers(views3d, views2d, sheets, unknown);\r\n }\r\n\r\n /**\r\n * Update state of the entries in the widget.\r\n * @param viewId Identifier for the relevant view\r\n */\r\n // istanbul ignore next\r\n public async updateState(viewId?: any): Promise<void> {\r\n // Wait for initialization finished\r\n if (!this.state.initialized)\r\n return;\r\n\r\n // Query views and add them to state\r\n const views3d: ListItem[] = this.state.items[0].children!;\r\n const views2d: ListItem[] = this.state.items[1].children!;\r\n const sheets: ListItem[] = this.state.items[2].children!;\r\n const unknown: ListItem[] = this.state.items.length > 3 ? this.state.items[3].children! : [];\r\n\r\n const updateChildren = (item: ListItem) => {\r\n if (item.key === viewId)\r\n return { ...item, enabled: true };\r\n else\r\n return { ...item, enabled: false };\r\n };\r\n\r\n this.setStateContainers(views3d.map(updateChildren), views2d.map(updateChildren), sheets.map(updateChildren), unknown.map(updateChildren));\r\n }\r\n\r\n // enable/disable the models\r\n // istanbul ignore next\r\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\r\n const activeContentControl = UiFramework.content.getActiveContentControl() as unknown as SupportsViewSelectorChange;\r\n if (!activeContentControl || !activeContentControl.supportsViewSelectorChange) {\r\n Logger.logError(UiFramework.loggerCategory(this), `No active ContentControl for ViewSelector change`);\r\n return;\r\n }\r\n\r\n // Enable the item temporarily to let user see that their click was registered\r\n // while we query for view state and change the current view which may take a bit\r\n if (_enabled && item.type !== ListItemType.Container) {\r\n // This itemMapper simply looks through all the list items and their nested children and enables the one\r\n // that we have registered to enable\r\n // Also disable all other items\r\n const itemMapper: (tempItem: ListItem) => ListItem = (tempItem: ListItem) => {\r\n if (tempItem.type === ListItemType.Container) {\r\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\r\n } else if (tempItem.key === item.key) {\r\n return { ...tempItem, enabled: true };\r\n } else {\r\n return { ...tempItem, enabled: false };\r\n }\r\n };\r\n\r\n // Create the new array with the current item enabled\r\n const itemsWithEnabled = this.state.items.map(itemMapper);\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n // Update the state so that we show the user it was enabled while we work in the background\r\n this.setState({ items: itemsWithEnabled });\r\n }\r\n\r\n // Load the view state using the viewSpec's ID\r\n const viewState = await this.props.imodel!.views.load(item.key);\r\n\r\n // Let activeContentControl process the ViewSelector change\r\n await activeContentControl.processViewSelectorChange(this.props.imodel!, item.key, viewState, item.name!);\r\n\r\n // Emit a change event\r\n ViewSelector.onViewSelectorChangedEvent.emit({\r\n iModelConnection: this.props.imodel!,\r\n viewDefinitionId: item.key,\r\n viewState,\r\n name: item.name!,\r\n });\r\n\r\n // Set state to show enabled the view that got selected\r\n this.updateState(item.key); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n // Hook on the category selector being expanded so that we may initialize if needed\r\n // istanbul ignore next\r\n private _onExpanded = (expand: boolean) => {\r\n if (expand)\r\n this.updateState(IModelApp.viewManager.selectedView ? IModelApp.viewManager.selectedView.view.id : undefined); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n /**\r\n * Renders ViewSelector component\r\n */\r\n public override render() {\r\n if (!this.state.initialized)\r\n return null;\r\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(svgSavedView);\r\n\r\n const { imodel, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n return (\r\n <ListPicker\r\n {...props}\r\n title={this.state.title}\r\n setEnabled={this._setEnabled}\r\n items={this.state.items}\r\n iconSpec={iconSpec}\r\n onExpanded={this._onExpanded}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @beta\r\n */\r\nexport const IModelConnectedViewSelector = connectIModelConnection(null, null)(ViewSelector); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
@@ -66,11 +66,11 @@ function Card(props) {
66
66
  // istanbul ignore else
67
67
  if (props.title) {
68
68
  if (typeof props.title === "string")
69
- titleNode = React.createElement(itwinui_react_1.Leading, null, props.title);
69
+ titleNode = React.createElement(itwinui_react_1.Text, { variant: "leading" }, props.title);
70
70
  else {
71
71
  const propertyValueRendererManager = components_react_1.PropertyValueRendererManager.defaultManager;
72
72
  const titleValue = propertyValueRendererManager.render(props.title);
73
- titleNode = React.createElement(itwinui_react_1.Leading, null, titleValue);
73
+ titleNode = React.createElement(itwinui_react_1.Text, { variant: "leading" }, titleValue);
74
74
  }
75
75
  }
76
76
  const content = (0, PopupManager_1.isReactContent)(props.content) ? props.content.reactNode : React.createElement(MessageSpan_1.MessageDiv, { message: props.content });
@@ -1 +1 @@
1
- {"version":3,"file":"CardPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport \"./CardPopup.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { CommonToolbarItem, OnCancelFunc, OnItemExecutedFunc, PropertyRecord, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Leading } from \"@itwin/itwinui-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { isReactContent, PopupContentType, PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { MessageDiv } from \"../messages/MessageSpan\";\r\nimport { Direction, PropertyValueRendererManager, ToolbarOpacitySetting, ToolbarPanelAlignment, ToolbarWithOverflow } from \"@itwin/components-react\";\r\n\r\n/** Props for defining a CardPopup editor\r\n * @beta */\r\nexport interface CardPopupProps extends PopupPropsBase {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface CardPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Input Editor\r\n * @beta\r\n */\r\nexport class CardPopup extends React.PureComponent<CardPopupProps, CardPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className={classnames(\"uifw-no-border\", \"uifw-card\")}\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Card content={this.props.content} title={this.props.title} items={this.props.items}\r\n onItemExecuted={this.props.onItemExecuted} />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n\r\n/** Props defining a Card component\r\n * @beta */\r\nexport interface CardProps {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** Card component\r\n * @beta */\r\nexport function Card(props: CardProps) {\r\n let titleNode: React.ReactNode;\r\n // istanbul ignore else\r\n if (props.title) {\r\n if (typeof props.title === \"string\")\r\n titleNode = <Leading>{props.title}</Leading>;\r\n else {\r\n const propertyValueRendererManager = PropertyValueRendererManager.defaultManager;\r\n const titleValue = propertyValueRendererManager.render(props.title);\r\n titleNode = <Leading>{titleValue}</Leading>;\r\n }\r\n }\r\n\r\n const content = isReactContent(props.content) ? props.content.reactNode : <MessageDiv message={props.content} />;\r\n\r\n return (\r\n <>\r\n <div className=\"uifw-card-content\">\r\n {props.title &&\r\n <>\r\n {titleNode}\r\n <div className=\"uifw-card-gap\" />\r\n </>\r\n }\r\n {content}\r\n </div>\r\n {props.items &&\r\n <>\r\n <div className=\"uifw-card-separator\" />\r\n <ToolbarWithOverflow\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={props.items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Transparent}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n </>\r\n }\r\n </>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"CardPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport \"./CardPopup.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { CommonToolbarItem, OnCancelFunc, OnItemExecutedFunc, PropertyRecord, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Text } from \"@itwin/itwinui-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { isReactContent, PopupContentType, PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { MessageDiv } from \"../messages/MessageSpan\";\r\nimport { Direction, PropertyValueRendererManager, ToolbarOpacitySetting, ToolbarPanelAlignment, ToolbarWithOverflow } from \"@itwin/components-react\";\r\n\r\n/** Props for defining a CardPopup editor\r\n * @beta */\r\nexport interface CardPopupProps extends PopupPropsBase {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface CardPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Input Editor\r\n * @beta\r\n */\r\nexport class CardPopup extends React.PureComponent<CardPopupProps, CardPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className={classnames(\"uifw-no-border\", \"uifw-card\")}\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Card content={this.props.content} title={this.props.title} items={this.props.items}\r\n onItemExecuted={this.props.onItemExecuted} />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n\r\n/** Props defining a Card component\r\n * @beta */\r\nexport interface CardProps {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** Card component\r\n * @beta */\r\nexport function Card(props: CardProps) {\r\n let titleNode: React.ReactNode;\r\n // istanbul ignore else\r\n if (props.title) {\r\n if (typeof props.title === \"string\")\r\n titleNode = <Text variant=\"leading\">{props.title}</Text>;\r\n else {\r\n const propertyValueRendererManager = PropertyValueRendererManager.defaultManager;\r\n const titleValue = propertyValueRendererManager.render(props.title);\r\n titleNode = <Text variant=\"leading\">{titleValue}</Text>;\r\n }\r\n }\r\n\r\n const content = isReactContent(props.content) ? props.content.reactNode : <MessageDiv message={props.content} />;\r\n\r\n return (\r\n <>\r\n <div className=\"uifw-card-content\">\r\n {props.title &&\r\n <>\r\n {titleNode}\r\n <div className=\"uifw-card-gap\" />\r\n </>\r\n }\r\n {content}\r\n </div>\r\n {props.items &&\r\n <>\r\n <div className=\"uifw-card-separator\" />\r\n <ToolbarWithOverflow\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={props.items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Transparent}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n </>\r\n }\r\n </>\r\n );\r\n}\r\n"]}
@@ -10,7 +10,7 @@
10
10
 
11
11
  box-sizing: border-box;
12
12
  background: $buic-background-control;
13
- color: $buic-foreground-body;
13
+ color: var(--iui-color-text);
14
14
  -webkit-box-shadow: 0 3px 6px $buic-popup-boxshadow;
15
15
  box-shadow: 0px 3px 6px $buic-popup-boxshadow;
16
16
 
@@ -12,7 +12,7 @@
12
12
  width: $uifw-popup-border-width;
13
13
  }
14
14
 
15
- background-color: rgba($buic-background-2-rgb, $uifw-popup-opacity);
15
+ background-color: hsl(var(--iui-color-background-hsl) / $uifw-popup-opacity);
16
16
  position: fixed;
17
17
  height: fit-content;
18
18
  width: fit-content;
@@ -2,13 +2,14 @@
2
2
  * @module Popup
3
3
  */
4
4
  import * as React from "react";
5
- import { CommonToolbarItem, OnCancelFunc, OnItemExecutedFunc, RelativePosition } from "@itwin/appui-abstract";
5
+ import { OnCancelFunc, OnItemExecutedFunc, RelativePosition } from "@itwin/appui-abstract";
6
6
  import { Orientation, Size } from "@itwin/core-react";
7
7
  import { PopupPropsBase } from "./PopupManager";
8
+ import { ToolbarItem } from "../toolbar/ToolbarItem";
8
9
  /** Props for a popup toolbar
9
10
  * @beta */
10
11
  export interface ToolbarPopupProps extends PopupPropsBase {
11
- items: CommonToolbarItem[];
12
+ items: ToolbarItem[];
12
13
  relativePosition: RelativePosition;
13
14
  orientation: Orientation;
14
15
  onCancel: OnCancelFunc;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarPopup.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAc,MAAM,uBAAuB,CAAC;AAC1H,OAAO,EAAkC,WAAW,EAAS,IAAI,EAAa,MAAM,mBAAmB,CAAC;AAGxG,OAAO,EAAgB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG9D;WACW;AACX,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACzF,gBAAgB;IAChB,SAAyB,KAAK;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,OAAO;IAOC,MAAM;CA0BvB"}
1
+ {"version":3,"file":"ToolbarPopup.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAc,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAkC,WAAW,EAAS,IAAI,EAAa,MAAM,mBAAmB,CAAC;AAGxG,OAAO,EAAgB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD;WACW;AACX,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACzF,gBAAgB;IAChB,SAAyB,KAAK;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,OAAO;IAOC,MAAM;CA0BvB"}
@@ -15,6 +15,7 @@ const components_react_1 = require("@itwin/components-react");
15
15
  const CursorPopup_1 = require("../cursor/cursorpopup/CursorPopup");
16
16
  const PopupManager_1 = require("./PopupManager");
17
17
  const PositionPopup_1 = require("./PositionPopup");
18
+ const toUIAToolbarItem_1 = require("../toolbar/toUIAToolbarItem");
18
19
  /** Popup component for Toolbar
19
20
  * @beta
20
21
  */
@@ -48,10 +49,11 @@ class ToolbarPopup extends React.PureComponent {
48
49
  let point = PopupManager_1.PopupManager.getPopupPosition(this.props.el, this.props.pt, new core_react_1.Point(), this.state.size);
49
50
  const popupRect = CursorPopup_1.CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);
50
51
  point = new core_react_1.Point(popupRect.left, popupRect.top);
52
+ const items = this.props.items.map((item) => (0, toUIAToolbarItem_1.toUIAToolbarItem)(item));
51
53
  return (React.createElement(PositionPopup_1.PositionPopup, { key: this.props.id, className: "uifw-no-border", point: point, onSizeKnown: this._onSizeKnown },
52
54
  React.createElement(core_react_1.DivWithOutsideClick, { onOutsideClick: this.props.onCancel, onKeyDown: this._handleKeyDown },
53
55
  React.createElement(core_react_1.FocusTrap, { active: true, returnFocusOnDeactivate: true },
54
- React.createElement(components_react_1.Toolbar, { expandsTo: components_react_1.Direction.Bottom, panelAlignment: components_react_1.ToolbarPanelAlignment.Start, items: this.props.items, useDragInteraction: true, toolbarOpacitySetting: components_react_1.ToolbarOpacitySetting.Defaults, onItemExecuted: this.props.onItemExecuted })))));
56
+ React.createElement(components_react_1.Toolbar, { expandsTo: components_react_1.Direction.Bottom, panelAlignment: components_react_1.ToolbarPanelAlignment.Start, items: items, useDragInteraction: true, toolbarOpacitySetting: components_react_1.ToolbarOpacitySetting.Defaults, onItemExecuted: this.props.onItemExecuted })))));
55
57
  }
56
58
  }
57
59
  exports.ToolbarPopup = ToolbarPopup;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAA0H;AAC1H,kDAAwG;AACxG,8DAA2G;AAC3G,mEAAgE;AAChE,iDAA8D;AAC9D,mDAAgD;AAiBhD;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK,CAAC,aAAmD;IAA3F;;QACE,gBAAgB;QACS,UAAK,GAAG;YAC/B,IAAI,EAAE,IAAI,iBAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB,CAAC;QAEM,iBAAY,GAAG,CAAC,OAAkB,EAAE,EAAE;YAC5C,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,KAA0C,EAAQ,EAAE;YAC5E,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,2BAAU,CAAC,MAAM;oBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM;aACT;QACH,CAAC,CAAC;IAmCJ,CAAC;IAjCS,OAAO;QACb,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC;IAEe,MAAM;QACpB,IAAI,KAAK,GAAG,2BAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,kBAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,yBAAW,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnH,KAAK,GAAG,IAAI,kBAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAEjD,OAAO,CACL,oBAAC,6BAAa,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAC/B,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,IAAI,CAAC,YAAY;YAE9B,oBAAC,gCAAmB,IAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc;gBACtF,oBAAC,sBAAS,IAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI;oBACpD,oBAAC,0BAAO,IACN,SAAS,EAAE,4BAAS,CAAC,MAAM,EAC3B,cAAc,EAAE,wCAAqB,CAAC,KAAK,EAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,kBAAkB,EAAE,IAAI,EACxB,qBAAqB,EAAE,wCAAqB,CAAC,QAAQ,EACrD,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GACzC,CACQ,CACQ,CACR,CACjB,CAAC;IACJ,CAAC;CACF;AArDD,oCAqDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonToolbarItem, OnCancelFunc, OnItemExecutedFunc, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Direction, Toolbar, ToolbarOpacitySetting, ToolbarPanelAlignment } from \"@itwin/components-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\n\r\n/** Props for a popup toolbar\r\n * @beta */\r\nexport interface ToolbarPopupProps extends PopupPropsBase {\r\n items: CommonToolbarItem[];\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface ToolbarPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Toolbar\r\n * @beta\r\n */\r\nexport class ToolbarPopup extends React.PureComponent<ToolbarPopupProps, ToolbarPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className=\"uifw-no-border\"\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Toolbar\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={this.props.items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Defaults}\r\n onItemExecuted={this.props.onItemExecuted}\r\n />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ToolbarPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAAuG;AACvG,kDAAwG;AACxG,8DAA2G;AAC3G,mEAAgE;AAChE,iDAA8D;AAC9D,mDAAgD;AAEhD,kEAA+D;AAiB/D;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK,CAAC,aAAmD;IAA3F;;QACE,gBAAgB;QACS,UAAK,GAAG;YAC/B,IAAI,EAAE,IAAI,iBAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB,CAAC;QAEM,iBAAY,GAAG,CAAC,OAAkB,EAAE,EAAE;YAC5C,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,KAA0C,EAAQ,EAAE;YAC5E,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,2BAAU,CAAC,MAAM;oBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM;aACT;QACH,CAAC,CAAC;IAmCJ,CAAC;IAjCS,OAAO;QACb,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC;IAEe,MAAM;QACpB,IAAI,KAAK,GAAG,2BAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,kBAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,yBAAW,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnH,KAAK,GAAG,IAAI,kBAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,CACL,oBAAC,6BAAa,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAC/B,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,IAAI,CAAC,YAAY;YAE9B,oBAAC,gCAAmB,IAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc;gBACtF,oBAAC,sBAAS,IAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI;oBACpD,oBAAC,0BAAO,IACN,SAAS,EAAE,4BAAS,CAAC,MAAM,EAC3B,cAAc,EAAE,wCAAqB,CAAC,KAAK,EAC3C,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,IAAI,EACxB,qBAAqB,EAAE,wCAAqB,CAAC,QAAQ,EACrD,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GACzC,CACQ,CACQ,CACR,CACjB,CAAC;IACJ,CAAC;CACF;AArDD,oCAqDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { OnCancelFunc, OnItemExecutedFunc, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Direction, Toolbar, ToolbarOpacitySetting, ToolbarPanelAlignment } from \"@itwin/components-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { ToolbarItem } from \"../toolbar/ToolbarItem\";\r\nimport { toUIAToolbarItem } from \"../toolbar/toUIAToolbarItem\";\r\n\r\n/** Props for a popup toolbar\r\n * @beta */\r\nexport interface ToolbarPopupProps extends PopupPropsBase {\r\n items: ToolbarItem[];\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface ToolbarPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Toolbar\r\n * @beta\r\n */\r\nexport class ToolbarPopup extends React.PureComponent<ToolbarPopupProps, ToolbarPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n const items = this.props.items.map((item) => toUIAToolbarItem(item));\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className=\"uifw-no-border\"\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Toolbar\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Defaults}\r\n onItemExecuted={this.props.onItemExecuted}\r\n />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAEzD;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAY7C;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAOrD;AAED;;GAEG;AACH,wBAAgB,mCAAmC,IAAI,uBAAuB,CAE7E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CAEzE;AAED;;GAEG;AAEH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CAS7F;AAED;;GAEG;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CAWvF;AAED;;GAEG;AAEH,qBAAa,+BAA+B;IAE1C,WAAkB,+BAA+B,mBAOhD;IAED,WAAkB,mCAAmC,mBAOpD;IAED,WAAkB,sBAAsB,mBAQvC;IAED,WAAkB,yBAAyB,iBAS1C;IAED,WAAkB,4BAA4B,mBAO7C;IAED,WAAkB,gCAAgC,mBAOjD;IAED,WAAkB,mBAAmB,mBAQpC;IAED,WAAkB,oBAAoB,iBASrC;IAED,WAAkB,wBAAwB,mBAQzC;IAED,WAAkB,wCAAwC,mBAYzD;CAEF"}
1
+ {"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAqB,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAcpD;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAEzD;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAY7C;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAOrD;AAED;;GAEG;AACH,wBAAgB,mCAAmC,IAAI,uBAAuB,CAE7E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CAEzE;AAED;;GAEG;AAEH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CAS7F;AAED;;GAEG;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CAWvF;AAED;;GAEG;AAEH,qBAAa,+BAA+B;IAE1C,WAAkB,+BAA+B,mBAOhD;IAED,WAAkB,mCAAmC,mBAOpD;IAED,WAAkB,sBAAsB,mBAQvC;IAED,WAAkB,yBAAyB,iBAS1C;IAED,WAAkB,4BAA4B,mBAO7C;IAED,WAAkB,gCAAgC,mBAOjD;IAED,WAAkB,mBAAmB,mBAQpC;IAED,WAAkB,oBAAoB,iBASrC;IAED,WAAkB,wBAAwB,mBAQzC;IAED,WAAkB,wCAAwC,mBAYzD;CAEF"}
@@ -15,6 +15,16 @@ const SyncUiEventDispatcher_1 = require("../syncui/SyncUiEventDispatcher");
15
15
  const GroupItem_1 = require("../toolbar/GroupItem");
16
16
  const UiFramework_1 = require("../UiFramework");
17
17
  const HideIsolateEmphasizeManager_1 = require("./HideIsolateEmphasizeManager");
18
+ const model_isolate_svg_1 = require("@bentley/icons-generic/icons/model-isolate.svg");
19
+ const layers_isolate_svg_1 = require("@bentley/icons-generic/icons/layers-isolate.svg");
20
+ const asset_isolate_svg_1 = require("@bentley/icons-generic/icons/asset-isolate.svg");
21
+ const isolate_svg_1 = require("@bentley/icons-generic/icons/isolate.svg");
22
+ const model_hide_svg_1 = require("@bentley/icons-generic/icons/model-hide.svg");
23
+ const layers_hide_svg_1 = require("@bentley/icons-generic/icons/layers-hide.svg");
24
+ const asset_classification_hide_svg_1 = require("@bentley/icons-generic/icons/asset-classification-hide.svg");
25
+ const visibility_semi_transparent_svg_1 = require("@bentley/icons-generic/icons/visibility-semi-transparent.svg");
26
+ const visibility_hide_2_svg_1 = require("@bentley/icons-generic/icons/visibility-hide_2.svg");
27
+ const visibility_svg_1 = require("@bentley/icons-generic/icons/visibility.svg");
18
28
  /** return SyncEventIds that trigger selection state function refresh.
19
29
  * @beta
20
30
  */
@@ -106,7 +116,7 @@ class SelectionContextToolDefinitions {
106
116
  static get isolateModelsInSelectionItemDef() {
107
117
  return new CommandItemDef_1.CommandItemDef({
108
118
  commandId: "UiFramework.IsolateModel",
109
- iconSpec: "icon-model-isolate",
119
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(model_isolate_svg_1.default),
110
120
  labelKey: "UiFramework:tools.isolateModels",
111
121
  execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),
112
122
  });
@@ -114,7 +124,7 @@ class SelectionContextToolDefinitions {
114
124
  static get isolateCategoriesInSelectionItemDef() {
115
125
  return new CommandItemDef_1.CommandItemDef({
116
126
  commandId: "UiFramework.IsolateCategory",
117
- iconSpec: "icon-layers-isolate",
127
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(layers_isolate_svg_1.default),
118
128
  labelKey: "UiFramework:tools.isolateCategories",
119
129
  execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),
120
130
  });
@@ -122,7 +132,7 @@ class SelectionContextToolDefinitions {
122
132
  static get isolateElementsItemDef() {
123
133
  return new CommandItemDef_1.CommandItemDef({
124
134
  commandId: "UiFramework.IsolateSelected",
125
- iconSpec: "icon-asset-isolate",
135
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(asset_isolate_svg_1.default),
126
136
  labelKey: "UiFramework:tools.isolateSelected",
127
137
  isHidden: getIsHiddenIfSelectionNotActive(),
128
138
  execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),
@@ -132,7 +142,7 @@ class SelectionContextToolDefinitions {
132
142
  return new GroupItem_1.GroupItemDef({
133
143
  groupId: "UiFramework.IsolateSelectionGroup",
134
144
  labelKey: "UiFramework:tools.isolate",
135
- iconSpec: "icon-isolate",
145
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(isolate_svg_1.default),
136
146
  isHidden: getIsHiddenIfSelectionNotActive(),
137
147
  items: [this.isolateElementsItemDef, this.isolateCategoriesInSelectionItemDef, this.isolateModelsInSelectionItemDef],
138
148
  itemsInColumn: 3,
@@ -141,7 +151,7 @@ class SelectionContextToolDefinitions {
141
151
  static get hideModelsInSelectionItemDef() {
142
152
  return new CommandItemDef_1.CommandItemDef({
143
153
  commandId: "UiFramework.HideModel",
144
- iconSpec: "icon-model-hide",
154
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(model_hide_svg_1.default),
145
155
  labelKey: "UiFramework:tools.hideModels",
146
156
  execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),
147
157
  });
@@ -149,7 +159,7 @@ class SelectionContextToolDefinitions {
149
159
  static get hideCategoriesInSelectionItemDef() {
150
160
  return new CommandItemDef_1.CommandItemDef({
151
161
  commandId: "UiFramework.HideCategory",
152
- iconSpec: "icon-layers-hide",
162
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(layers_hide_svg_1.default),
153
163
  labelKey: "UiFramework:tools.hideCategories",
154
164
  execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),
155
165
  });
@@ -157,7 +167,7 @@ class SelectionContextToolDefinitions {
157
167
  static get hideElementsItemDef() {
158
168
  return new CommandItemDef_1.CommandItemDef({
159
169
  commandId: "UiFramework.HideSelected",
160
- iconSpec: "icon-asset-classification-hide",
170
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(asset_classification_hide_svg_1.default),
161
171
  labelKey: "UiFramework:tools.hideSelected",
162
172
  isHidden: getIsHiddenIfSelectionNotActive(),
163
173
  execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),
@@ -167,7 +177,7 @@ class SelectionContextToolDefinitions {
167
177
  return new GroupItem_1.GroupItemDef({
168
178
  groupId: "UiFramework.HideSelectionGroup",
169
179
  labelKey: "UiFramework:tools.hide",
170
- iconSpec: "icon-visibility-hide-2",
180
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(visibility_hide_2_svg_1.default),
171
181
  isHidden: getIsHiddenIfSelectionNotActive(),
172
182
  items: [this.hideElementsItemDef, this.hideCategoriesInSelectionItemDef, this.hideModelsInSelectionItemDef],
173
183
  itemsInColumn: 3,
@@ -176,7 +186,7 @@ class SelectionContextToolDefinitions {
176
186
  static get emphasizeElementsItemDef() {
177
187
  return new CommandItemDef_1.CommandItemDef({
178
188
  commandId: "UiFramework.EmphasizeSelected",
179
- iconSpec: "icon-visibility-semi-transparent",
189
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(visibility_semi_transparent_svg_1.default),
180
190
  labelKey: "UiFramework:tools.emphasizeSelected",
181
191
  isHidden: getIsHiddenIfSelectionNotActive(),
182
192
  execute: async () => UiFramework_1.UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),
@@ -185,7 +195,7 @@ class SelectionContextToolDefinitions {
185
195
  static get clearHideIsolateEmphasizeElementsItemDef() {
186
196
  return new CommandItemDef_1.CommandItemDef({
187
197
  commandId: "UiFramework.ClearHideIsolateEmphasize",
188
- iconSpec: "icon-visibility",
198
+ iconSpec: appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(visibility_svg_1.default),
189
199
  labelKey: "UiFramework:tools.clearVisibility",
190
200
  isHidden: getIsHiddenIfFeatureOverridesActive(),
191
201
  execute: async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { HideIsolateEmphasizeActionHandler } from \"./HideIsolateEmphasizeManager\";\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function getFeatureOverrideSyncEventIds(): string[] {\r\n return [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ActiveViewportChanged, HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId];\r\n}\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function getSelectionContextSyncEventIds(): string[] {\r\n return [SyncUiEventId.SelectionSetChanged, SyncUiEventId.ActiveContentChanged, SyncUiEventId.ActiveViewportChanged, SessionStateActionId.SetNumItemsSelected];\r\n}\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function isNoSelectionActive(): boolean {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let selectionCount = 0;\r\n // istanbul ignore if\r\n if (!UiFramework.frameworkStateKey)\r\n selectionCount = UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState.sessionState.numItemsSelected;\r\n\r\n // istanbul ignore if\r\n if (activeContentControl && /* istanbul ignore next */ activeContentControl.viewport\r\n && (/* istanbul ignore next */ activeContentControl.viewport.view.iModel.selectionSet.size > 0 || /* istanbul ignore next */ selectionCount > 0))\r\n return false;\r\n return true;\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show items if selection set is active.\r\n * @beta\r\n */\r\nexport function areNoFeatureOverridesActive(): boolean {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n // istanbul ignore next\r\n if (activeContentControl && activeContentControl.viewport)\r\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeContentControl.viewport);\r\n\r\n return true;\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\r\n * @beta\r\n */\r\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\r\n return new ConditionalBooleanValue(areNoFeatureOverridesActive, getFeatureOverrideSyncEventIds());\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show items if selection set is active.\r\n * @beta\r\n */\r\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\r\n return new ConditionalBooleanValue(isNoSelectionActive, getSelectionContextSyncEventIds());\r\n}\r\n\r\n/** return state with isVisible set to true is SectionSet is active.\r\n * @beta\r\n */\r\n// istanbul ignore next\r\nexport function featureOverridesActiveStateFunc(state: Readonly<BaseItemState>): BaseItemState {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let isVisible = false;\r\n\r\n // istanbul ignore next\r\n if (activeContentControl && activeContentControl.viewport)\r\n isVisible = UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeContentControl.viewport);\r\n\r\n return { ...state, isVisible };\r\n}\r\n\r\n/** return state with isVisible set to true is SectionSet is active.\r\n * @beta\r\n */\r\n// istanbul ignore next\r\nexport function selectionContextStateFunc(state: Readonly<BaseItemState>): BaseItemState {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let isVisible = false;\r\n\r\n let selectionCount = 0;\r\n if (!UiFramework.frameworkStateKey)\r\n selectionCount = UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState.sessionState.numItemsSelected;\r\n\r\n if (activeContentControl && activeContentControl.viewport && (activeContentControl.viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0))\r\n isVisible = true;\r\n return { ...state, isVisible };\r\n}\r\n\r\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class SelectionContextToolDefinitions {\r\n\r\n public static get isolateModelsInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateModel\",\r\n iconSpec: \"icon-model-isolate\",\r\n labelKey: \"UiFramework:tools.isolateModels\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\r\n });\r\n }\r\n\r\n public static get isolateCategoriesInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateCategory\",\r\n iconSpec: \"icon-layers-isolate\",\r\n labelKey: \"UiFramework:tools.isolateCategories\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\r\n });\r\n }\r\n\r\n public static get isolateElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateSelected\",\r\n iconSpec: \"icon-asset-isolate\",\r\n labelKey: \"UiFramework:tools.isolateSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\r\n });\r\n }\r\n\r\n public static get isolateSelectionToolGroup() {\r\n return new GroupItemDef({\r\n groupId: \"UiFramework.IsolateSelectionGroup\",\r\n labelKey: \"UiFramework:tools.isolate\",\r\n iconSpec: \"icon-isolate\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n items: [this.isolateElementsItemDef, this.isolateCategoriesInSelectionItemDef, this.isolateModelsInSelectionItemDef],\r\n itemsInColumn: 3,\r\n });\r\n }\r\n\r\n public static get hideModelsInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideModel\",\r\n iconSpec: \"icon-model-hide\",\r\n labelKey: \"UiFramework:tools.hideModels\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\r\n });\r\n }\r\n\r\n public static get hideCategoriesInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideCategory\",\r\n iconSpec: \"icon-layers-hide\",\r\n labelKey: \"UiFramework:tools.hideCategories\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\r\n });\r\n }\r\n\r\n public static get hideElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideSelected\",\r\n iconSpec: \"icon-asset-classification-hide\",\r\n labelKey: \"UiFramework:tools.hideSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\r\n });\r\n }\r\n\r\n public static get hideSectionToolGroup() {\r\n return new GroupItemDef({\r\n groupId: \"UiFramework.HideSelectionGroup\",\r\n labelKey: \"UiFramework:tools.hide\",\r\n iconSpec: \"icon-visibility-hide-2\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n items: [this.hideElementsItemDef, this.hideCategoriesInSelectionItemDef, this.hideModelsInSelectionItemDef],\r\n itemsInColumn: 3,\r\n });\r\n }\r\n\r\n public static get emphasizeElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.EmphasizeSelected\",\r\n iconSpec: \"icon-visibility-semi-transparent\",\r\n labelKey: \"UiFramework:tools.emphasizeSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\r\n });\r\n }\r\n\r\n public static get clearHideIsolateEmphasizeElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\r\n iconSpec: \"icon-visibility\",\r\n labelKey: \"UiFramework:tools.clearVisibility\",\r\n isHidden: getIsHiddenIfFeatureOverridesActive(),\r\n execute: async () => {\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\r\n },\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { ConditionalBooleanValue, IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { HideIsolateEmphasizeActionHandler } from \"./HideIsolateEmphasizeManager\";\r\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\r\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\r\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\r\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\r\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\r\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\r\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\r\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\r\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\r\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function getFeatureOverrideSyncEventIds(): string[] {\r\n return [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ActiveViewportChanged, HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId];\r\n}\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function getSelectionContextSyncEventIds(): string[] {\r\n return [SyncUiEventId.SelectionSetChanged, SyncUiEventId.ActiveContentChanged, SyncUiEventId.ActiveViewportChanged, SessionStateActionId.SetNumItemsSelected];\r\n}\r\n\r\n/** return SyncEventIds that trigger selection state function refresh.\r\n * @beta\r\n */\r\nexport function isNoSelectionActive(): boolean {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let selectionCount = 0;\r\n // istanbul ignore if\r\n if (!UiFramework.frameworkStateKey)\r\n selectionCount = UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState.sessionState.numItemsSelected;\r\n\r\n // istanbul ignore if\r\n if (activeContentControl && /* istanbul ignore next */ activeContentControl.viewport\r\n && (/* istanbul ignore next */ activeContentControl.viewport.view.iModel.selectionSet.size > 0 || /* istanbul ignore next */ selectionCount > 0))\r\n return false;\r\n return true;\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show items if selection set is active.\r\n * @beta\r\n */\r\nexport function areNoFeatureOverridesActive(): boolean {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n // istanbul ignore next\r\n if (activeContentControl && activeContentControl.viewport)\r\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeContentControl.viewport);\r\n\r\n return true;\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\r\n * @beta\r\n */\r\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\r\n return new ConditionalBooleanValue(areNoFeatureOverridesActive, getFeatureOverrideSyncEventIds());\r\n}\r\n\r\n/** return ConditionalBooleanValue object used to show items if selection set is active.\r\n * @beta\r\n */\r\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\r\n return new ConditionalBooleanValue(isNoSelectionActive, getSelectionContextSyncEventIds());\r\n}\r\n\r\n/** return state with isVisible set to true is SectionSet is active.\r\n * @beta\r\n */\r\n// istanbul ignore next\r\nexport function featureOverridesActiveStateFunc(state: Readonly<BaseItemState>): BaseItemState {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let isVisible = false;\r\n\r\n // istanbul ignore next\r\n if (activeContentControl && activeContentControl.viewport)\r\n isVisible = UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeContentControl.viewport);\r\n\r\n return { ...state, isVisible };\r\n}\r\n\r\n/** return state with isVisible set to true is SectionSet is active.\r\n * @beta\r\n */\r\n// istanbul ignore next\r\nexport function selectionContextStateFunc(state: Readonly<BaseItemState>): BaseItemState {\r\n const activeContentControl = UiFramework.content.getActiveContentControl();\r\n let isVisible = false;\r\n\r\n let selectionCount = 0;\r\n if (!UiFramework.frameworkStateKey)\r\n selectionCount = UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState.sessionState.numItemsSelected;\r\n\r\n if (activeContentControl && activeContentControl.viewport && (activeContentControl.viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0))\r\n isVisible = true;\r\n return { ...state, isVisible };\r\n}\r\n\r\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class SelectionContextToolDefinitions {\r\n\r\n public static get isolateModelsInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateModel\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelIsolate),\r\n labelKey: \"UiFramework:tools.isolateModels\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\r\n });\r\n }\r\n\r\n public static get isolateCategoriesInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateCategory\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersIsolate),\r\n labelKey: \"UiFramework:tools.isolateCategories\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\r\n });\r\n }\r\n\r\n public static get isolateElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.IsolateSelected\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgAssetIsolate),\r\n labelKey: \"UiFramework:tools.isolateSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\r\n });\r\n }\r\n\r\n public static get isolateSelectionToolGroup() {\r\n return new GroupItemDef({\r\n groupId: \"UiFramework.IsolateSelectionGroup\",\r\n labelKey: \"UiFramework:tools.isolate\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgIsolate),\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n items: [this.isolateElementsItemDef, this.isolateCategoriesInSelectionItemDef, this.isolateModelsInSelectionItemDef],\r\n itemsInColumn: 3,\r\n });\r\n }\r\n\r\n public static get hideModelsInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideModel\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelHide),\r\n labelKey: \"UiFramework:tools.hideModels\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\r\n });\r\n }\r\n\r\n public static get hideCategoriesInSelectionItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideCategory\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersHide),\r\n labelKey: \"UiFramework:tools.hideCategories\",\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\r\n });\r\n }\r\n\r\n public static get hideElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.HideSelected\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgAssetClassificationHide),\r\n labelKey: \"UiFramework:tools.hideSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\r\n });\r\n }\r\n\r\n public static get hideSectionToolGroup() {\r\n return new GroupItemDef({\r\n groupId: \"UiFramework.HideSelectionGroup\",\r\n labelKey: \"UiFramework:tools.hide\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibilityHide),\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n items: [this.hideElementsItemDef, this.hideCategoriesInSelectionItemDef, this.hideModelsInSelectionItemDef],\r\n itemsInColumn: 3,\r\n });\r\n }\r\n\r\n public static get emphasizeElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.EmphasizeSelected\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibilitySemiTransparent),\r\n labelKey: \"UiFramework:tools.emphasizeSelected\",\r\n isHidden: getIsHiddenIfSelectionNotActive(),\r\n execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\r\n });\r\n }\r\n\r\n public static get clearHideIsolateEmphasizeElementsItemDef() {\r\n return new CommandItemDef({\r\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\r\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibility),\r\n labelKey: \"UiFramework:tools.clearVisibility\",\r\n isHidden: getIsHiddenIfFeatureOverridesActive(),\r\n execute: async () => {\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\r\n },\r\n });\r\n }\r\n\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormat.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,uBAAuB,CAAC;AAG/B,OAAO,EACoE,eAAe,EACzF,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA8B,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EACyB,gBAAgB,EAE/C,MAAM,mBAAmB,CAAC;AAU3B;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,eAAe,CAAC;IACrC,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAAG,gBAAgB,CAa/I;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,EAAE,gCAAgC,eAoKzH"}
1
+ {"version":3,"file":"QuantityFormat.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,uBAAuB,CAAC;AAG/B,OAAO,EACoE,eAAe,EACzF,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA8B,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EACyB,gBAAgB,EAE/C,MAAM,mBAAmB,CAAC;AAW3B;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,eAAe,CAAC;IACrC,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAAG,gBAAgB,CAa/I;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,EAAE,gCAAgC,eAoKzH"}
@@ -18,6 +18,7 @@ const core_react_1 = require("@itwin/core-react");
18
18
  const UiFramework_1 = require("../../UiFramework");
19
19
  const UnitSystemSelector_1 = require("./UnitSystemSelector");
20
20
  const itwinui_react_1 = require("@itwin/itwinui-react");
21
+ const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
21
22
  function formatAreEqual(obj1, obj2) {
22
23
  const compare = new core_geometry_1.DeepCompare();
23
24
  return compare.compare(obj1, obj2);
@@ -36,7 +37,7 @@ function getQuantityFormatsSettingsManagerEntry(itemPriority, opts) {
36
37
  subLabel: UiFramework_1.UiFramework.translate("settings.quantity-formatting.subLabel"),
37
38
  page: React.createElement(QuantityFormatSettingsPage, { initialQuantityType: initialQuantityType !== null && initialQuantityType !== void 0 ? initialQuantityType : core_frontend_1.QuantityType.Length, availableUnitSystems: availableUnitSystems !== null && availableUnitSystems !== void 0 ? availableUnitSystems : new Set(["metric", "imperial", "usCustomary", "usSurvey"]) }),
38
39
  isDisabled: false,
39
- icon: "icon-measure",
40
+ icon: React.createElement(itwinui_icons_react_1.SvgMeasure, null),
40
41
  tooltip: UiFramework_1.UiFramework.translate("settings.quantity-formatting.tooltip"),
41
42
  pageWillHandleCloseRequest: true,
42
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport \"./QuantityFormat.scss\";\r\nimport * as React from \"react\";\r\nimport { DeepCompare } from \"@itwin/core-geometry\";\r\nimport {\r\n getQuantityTypeKey, IModelApp, QuantityFormatsChangedArgs, QuantityType, QuantityTypeArg, QuantityTypeKey,\r\n} from \"@itwin/core-frontend\";\r\nimport { FormatProps, FormatterSpec, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\r\nimport { FormatSample, QuantityFormatPanel } from \"@itwin/imodel-components-react\";\r\nimport {\r\n Dialog, Listbox, ListboxItem, SettingsTabEntry,\r\n useSaveBeforeActivatingNewSettingsTab, useSaveBeforeClosingSettingsContainer,\r\n} from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { UnitSystemSelector } from \"./UnitSystemSelector\";\r\nimport { Button } from \"@itwin/itwinui-react\";\r\n\r\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\r\n const compare = new DeepCompare();\r\n return compare.compare(obj1, obj2);\r\n}\r\n\r\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\r\n * @beta\r\n */\r\nexport interface QuantityFormatterSettingsOptions {\r\n initialQuantityType: QuantityTypeArg;\r\n availableUnitSystems: Set<UnitSystemKey>;\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\r\n * @beta\r\n */\r\nexport function getQuantityFormatsSettingsManagerEntry(itemPriority: number, opts?: Partial<QuantityFormatterSettingsOptions>): SettingsTabEntry {\r\n const { availableUnitSystems, initialQuantityType } = { ...opts };\r\n return {\r\n itemPriority, tabId: \"uifw:Quantity\",\r\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\r\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\r\n page: <QuantityFormatSettingsPage initialQuantityType={initialQuantityType ?? QuantityType.Length}\r\n availableUnitSystems={availableUnitSystems ?? new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])} />,\r\n isDisabled: false,\r\n icon: \"icon-measure\",\r\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\r\n pageWillHandleCloseRequest: true,\r\n };\r\n}\r\n\r\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\r\n * @beta\r\n */\r\nexport function QuantityFormatSettingsPage({ initialQuantityType, availableUnitSystems }: QuantityFormatterSettingsOptions) {\r\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(IModelApp.quantityFormatter.activeUnitSystem);\r\n const [activeQuantityType, setActiveQuantityType] = React.useState(getQuantityTypeKey(initialQuantityType));\r\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<FormatterSpec | undefined>(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(getQuantityTypeKey(activeQuantityType)));\r\n const [saveEnabled, setSaveEnabled] = React.useState(false);\r\n const [clearEnabled, setClearEnabled] = React.useState(IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true));\r\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\r\n const formatSectionLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.formatSectionLabel\"));\r\n const setButtonLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.setButtonLabel\"));\r\n const clearButtonLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.clearButtonLabel\"));\r\n\r\n React.useEffect(() => {\r\n const handleUnitSystemChanged = ((): void => {\r\n // istanbul ignore else\r\n if (activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem) {\r\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\r\n setActiveFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType));\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(activeQuantityType, true));\r\n }\r\n });\r\n\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);\r\n };\r\n }, [activeQuantityType, activeUnitSystemKey]);\r\n\r\n React.useEffect(() => {\r\n const handleFormatChanged = ((args: QuantityFormatsChangedArgs): void => {\r\n if (!newQuantityTypeRef.current) {\r\n const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\r\n // istanbul ignore else\r\n if (args.quantityType === quantityKey) {\r\n setActiveFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType));\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(activeQuantityType, true));\r\n }\r\n }\r\n newQuantityTypeRef.current = undefined;\r\n });\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleFormatChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleFormatChanged);\r\n };\r\n }, [activeQuantityType]);\r\n\r\n const saveChanges = React.useCallback((afterSaveFunction: (args: any) => void, args?: any) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const formatProps = activeFormatterSpec.format.toJSON();\r\n const formatPropsInUse = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType)!.format.toJSON();\r\n if (formatPropsInUse && !formatAreEqual(formatProps, formatPropsInUse)) {\r\n UiFramework.dialogs.modal.open(<SaveFormatModalDialog formatProps={formatProps} quantityType={activeQuantityType} onDialogCloseArgs={args} onDialogClose={afterSaveFunction} />, \"saveQuantityFormat\");\r\n return;\r\n }\r\n }\r\n afterSaveFunction(args);\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n useSaveBeforeActivatingNewSettingsTab(UiFramework.settingsManager, saveChanges);\r\n useSaveBeforeClosingSettingsContainer(UiFramework.settingsManager, saveChanges);\r\n\r\n const processListboxValueChange = React.useCallback((newQuantityType: QuantityTypeKey) => {\r\n const volumeFormatterSpec = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(newQuantityType);\r\n setActiveFormatterSpec(volumeFormatterSpec);\r\n setActiveQuantityType(newQuantityType);\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true));\r\n }, []);\r\n\r\n const onListboxValueChange = React.useCallback((newQuantityType: string) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const formatProps = activeFormatterSpec.format.toJSON();\r\n const formatPropsInUse = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType)!.format.toJSON();\r\n if (formatPropsInUse && !formatAreEqual(formatProps, formatPropsInUse)) {\r\n newQuantityTypeRef.current = newQuantityType;\r\n UiFramework.dialogs.modal.open(<SaveFormatModalDialog formatProps={formatProps} quantityType={activeQuantityType} onDialogCloseArgs={newQuantityType} onDialogClose={processListboxValueChange} />, \"saveQuantityFormat\");\r\n return;\r\n }\r\n }\r\n processListboxValueChange(newQuantityType);\r\n }, [activeFormatterSpec, activeQuantityType, processListboxValueChange]);\r\n\r\n const handleOnFormatChanged = React.useCallback(async (formatProps: FormatProps) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const newSpec = await IModelApp.quantityFormatter.generateFormatterSpecByType(activeQuantityType, formatProps);\r\n const formatPropsInUse = IModelApp.quantityFormatter.getFormatPropsByQuantityType(activeQuantityType);\r\n // istanbul ignore else\r\n if (formatPropsInUse)\r\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\r\n setActiveFormatterSpec(newSpec);\r\n }\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n const handleOnFormatSave = React.useCallback(async () => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const format = activeFormatterSpec.format.toJSON();\r\n await IModelApp.quantityFormatter.setOverrideFormat(activeQuantityType, format);\r\n setClearEnabled(true);\r\n }\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n const handleOnFormatReset = React.useCallback(async () => {\r\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\r\n setClearEnabled(false);\r\n }, [activeQuantityType]);\r\n\r\n const processNewUnitSystem = React.useCallback(async (unitSystem: UnitSystemKey) => {\r\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\r\n }, []);\r\n\r\n const handleUnitSystemSelected = React.useCallback(async (unitSystem: UnitSystemKey) => {\r\n if (unitSystem === activeUnitSystemKey)\r\n return;\r\n saveChanges(processNewUnitSystem, unitSystem);\r\n }, [activeUnitSystemKey, processNewUnitSystem, saveChanges]);\r\n\r\n return (\r\n <div className=\"quantity-formatting-container\">\r\n <UnitSystemSelector selectedUnitSystemKey={activeUnitSystemKey} availableUnitSystems={availableUnitSystems} onUnitSystemSelected={handleUnitSystemSelected} />\r\n <span className=\"uifw-quantity-format-section-label\">{formatSectionLabel.current}</span>\r\n <div className=\"uifw-quantity-types-container\">\r\n <div className=\"left-panel\">\r\n <Listbox id=\"uifw-quantity-types-list\" className=\"uifw-quantity-types\"\r\n onListboxValueChange={onListboxValueChange} selectedValue={activeQuantityType} >\r\n {\r\n [...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map((key) => {\r\n const entry = IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\r\n const description = entry.description;\r\n const label = entry.label;\r\n return (\r\n <ListboxItem key={entry.key} className=\"quantity-type-list-entry\" value={entry.key}>\r\n <span className=\"map-source-list-entry-name\" title={description}>{label}</span>\r\n </ListboxItem>\r\n );\r\n })\r\n }\r\n </Listbox>\r\n </div>\r\n <div className=\"right-panel\">\r\n {activeFormatterSpec &&\r\n <>\r\n <div className=\"uifw-quantity-types-right-top\">\r\n <div className=\"uifw-quantity-types-right-top-sample\">\r\n <FormatSample formatSpec={activeFormatterSpec} initialMagnitude={1234.56} hideLabels />\r\n </div>\r\n </div>\r\n <div className=\"uifw-quantity-types-formats\">\r\n <QuantityFormatPanel onFormatChange={handleOnFormatChanged} quantityType={activeQuantityType} />\r\n </div>\r\n <div className=\"components-button-panel\">\r\n <Button styleType=\"cta\" onClick={handleOnFormatSave} disabled={!saveEnabled}>{setButtonLabel.current}</Button>\r\n <Button styleType=\"default\" onClick={handleOnFormatReset} disabled={!clearEnabled}>{clearButtonLabel.current}</Button>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SaveFormatModalDialog({ formatProps, quantityType, onDialogCloseArgs, onDialogClose }: { formatProps: FormatProps, quantityType: QuantityTypeKey, onDialogCloseArgs?: any, onDialogClose: (args?: any) => void }) {\r\n const [isOpen, setIsOpen] = React.useState(true);\r\n\r\n const handleClose = React.useCallback(() => {\r\n setIsOpen(false);\r\n UiFramework.dialogs.modal.close();\r\n onDialogClose && onDialogClose(onDialogCloseArgs);\r\n }, [onDialogClose, onDialogCloseArgs]);\r\n\r\n const handleOK = React.useCallback(() => {\r\n IModelApp.quantityFormatter.setOverrideFormat(quantityType, formatProps); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n handleClose();\r\n }, [formatProps, handleClose, quantityType]);\r\n\r\n const handleCancel = React.useCallback(() => {\r\n handleClose();\r\n }, [handleClose]);\r\n\r\n return (\r\n <Dialog\r\n title={\"Save Format Changes\"}\r\n opened={isOpen}\r\n resizable={false}\r\n movable={false}\r\n modal={true}\r\n buttonCluster={[\r\n { type: DialogButtonType.Yes, onClick: handleOK },\r\n { type: DialogButtonType.No, onClick: handleCancel },\r\n ]}\r\n onEscape={handleCancel}\r\n onClose={handleCancel}\r\n onOutsideClick={handleCancel}\r\n minHeight={150}\r\n maxHeight={400}\r\n maxWidth={400}\r\n minWidth={200}\r\n >\r\n <div className=\"modal-dialog2\">\r\n Do you want to save changes to format before changing to another type?\r\n </div>\r\n </Dialog >\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAA+B;AAC/B,+BAA+B;AAC/B,wDAAmD;AACnD,wDAE8B;AAE9B,0DAAyD;AACzD,4EAAmF;AACnF,kDAG2B;AAC3B,mDAAgD;AAChD,6DAA0D;AAC1D,wDAA8C;AAC9C,oEAAwD;AAExD,SAAS,cAAc,CAAC,IAAiB,EAAE,IAAiB;IAC1D,MAAM,OAAO,GAAG,IAAI,2BAAW,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAUD;;;;;GAKG;AACH,SAAgB,sCAAsC,CAAC,YAAoB,EAAE,IAAgD;IAC3H,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAClE,OAAO;QACL,YAAY,EAAE,KAAK,EAAE,eAAe;QACpC,KAAK,EAAE,yBAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC;QAClE,QAAQ,EAAE,yBAAW,CAAC,SAAS,CAAC,uCAAuC,CAAC;QACxE,IAAI,EAAE,oBAAC,0BAA0B,IAAC,mBAAmB,EAAE,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,4BAAY,CAAC,MAAM,EAC/F,oBAAoB,EAAE,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,GAAI;QAC9G,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,oBAAC,gCAAU,OAAG;QACpB,OAAO,EAAE,yBAAW,CAAC,SAAS,CAAC,sCAAsC,CAAC;QACtE,0BAA0B,EAAE,IAAI;KACjC,CAAC;AACJ,CAAC;AAbD,wFAaC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CAAC,EAAE,mBAAmB,EAAE,oBAAoB,EAAoC;IACxH,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,yBAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACnH,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAA,kCAAkB,EAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5G,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAA4B,yBAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAA,kCAAkB,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACrM,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,CAAC,yBAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;IACjI,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,EAAmB,CAAC;IAC3D,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAClH,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC1G,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAE9G,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,CAAC,GAAS,EAAE;YAC1C,uBAAuB;YACvB,IAAI,mBAAmB,KAAK,yBAAS,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;gBACxE,sBAAsB,CAAC,yBAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBACrE,sBAAsB,CAAC,yBAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACxG,cAAc,CAAC,KAAK,CAAC,CAAC;gBACtB,eAAe,CAAC,yBAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;aAC1F;QACH,CAAC,CAAC,CAAC;QAEH,yBAAS,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;QACrG,OAAO,GAAG,EAAE;YACV,yBAAS,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAC1G,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE9C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAgC,EAAQ,EAAE;YACtE,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBAC/B,MAAM,WAAW,GAAG,yBAAS,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;gBACvF,uBAAuB;gBACvB,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE;oBACrC,sBAAsB,CAAC,yBAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBACxG,cAAc,CAAC,KAAK,CAAC,CAAC;oBACtB,eAAe,CAAC,yBAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;iBAC1F;aACF;YACD,kBAAkB,CAAC,OAAO,GAAG,SAAS,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,yBAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACtF,OAAO,GAAG,EAAE;YACV,yBAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC3F,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,iBAAsC,EAAE,IAAU,EAAE,EAAE;QAC3F,uBAAuB;QACvB,IAAI,mBAAmB,EAAE;YACvB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAG,yBAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,kBAAkB,CAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC1H,IAAI,gBAAgB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE;gBACtE,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAC,qBAAqB,IAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,GAAI,EAAE,oBAAoB,CAAC,CAAC;gBACvM,OAAO;aACR;SACF;QACD,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE9C,IAAA,kDAAqC,EAAC,yBAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAChF,IAAA,kDAAqC,EAAC,yBAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAEhF,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,eAAgC,EAAE,EAAE;QACvF,MAAM,mBAAmB,GAAG,yBAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,eAAe,CAAC,CAAC;QACzG,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;QAC5C,qBAAqB,CAAC,eAAe,CAAC,CAAC;QACvC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,eAAe,CAAC,yBAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,eAAuB,EAAE,EAAE;QACzE,uBAAuB;QACvB,IAAI,mBAAmB,EAAE;YACvB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAG,yBAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,kBAAkB,CAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC1H,IAAI,gBAAgB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE;gBACtE,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;gBAC7C,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAC,qBAAqB,IAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,yBAAyB,GAAI,EAAE,oBAAoB,CAAC,CAAC;gBAC1N,OAAO;aACR;SACF;QACD,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAEzE,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,WAAwB,EAAE,EAAE;QACjF,uBAAuB;QACvB,IAAI,mBAAmB,EAAE;YACvB,MAAM,OAAO,GAAG,MAAM,yBAAS,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;YAC/G,MAAM,gBAAgB,GAAG,yBAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;YACtG,uBAAuB;YACvB,IAAI,gBAAgB;gBAClB,cAAc,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACjE,sBAAsB,CAAC,OAAO,CAAC,CAAC;SACjC;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE9C,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,uBAAuB;QACvB,IAAI,mBAAmB,EAAE;YACvB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,yBAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAChF,eAAe,CAAC,IAAI,CAAC,CAAC;SACvB;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE9C,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACvD,MAAM,yBAAS,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,CAAC,KAAK,EAAE,UAAyB,EAAE,EAAE;QACjF,MAAM,yBAAS,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAyB,EAAE,EAAE;QACrF,IAAI,UAAU,KAAK,mBAAmB;YACpC,OAAO;QACT,WAAW,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7D,OAAO,CACL,6BAAK,SAAS,EAAC,+BAA+B;QAC5C,oBAAC,uCAAkB,IAAC,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,GAAI;QAC9J,8BAAM,SAAS,EAAC,oCAAoC,IAAE,kBAAkB,CAAC,OAAO,CAAQ;QACxF,6BAAK,SAAS,EAAC,+BAA+B;YAC5C,6BAAK,SAAS,EAAC,YAAY;gBACzB,oBAAC,oBAAO,IAAC,EAAE,EAAC,0BAA0B,EAAC,SAAS,EAAC,qBAAqB,EACpE,oBAAoB,EAAE,oBAAoB,EAAE,aAAa,EAAE,kBAAkB,IAE3E,CAAC,GAAG,yBAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACxE,MAAM,KAAK,GAAG,yBAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;oBAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;oBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,OAAO,CACL,oBAAC,wBAAW,IAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAC,0BAA0B,EAAC,KAAK,EAAE,KAAK,CAAC,GAAG;wBAChF,8BAAM,SAAS,EAAC,4BAA4B,EAAC,KAAK,EAAE,WAAW,IAAG,KAAK,CAAQ,CACnE,CACf,CAAC;gBACJ,CAAC,CAAC,CAEI,CACN;YACN,6BAAK,SAAS,EAAC,aAAa,IACzB,mBAAmB;gBAClB;oBACE,6BAAK,SAAS,EAAC,+BAA+B;wBAC5C,6BAAK,SAAS,EAAC,sCAAsC;4BACnD,oBAAC,sCAAY,IAAC,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,SAAG,CACnF,CACF;oBACN,6BAAK,SAAS,EAAC,6BAA6B;wBAC1C,oBAAC,6CAAmB,IAAC,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,kBAAkB,GAAI,CAC5F;oBACN,6BAAK,SAAS,EAAC,yBAAyB;wBACtC,oBAAC,sBAAM,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,WAAW,IAAG,cAAc,CAAC,OAAO,CAAU;wBAC9G,oBAAC,sBAAM,IAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,YAAY,IAAG,gBAAgB,CAAC,OAAO,CAAU,CAClH,CACL,CAED,CACF,CACF,CACP,CAAC;AACJ,CAAC;AApKD,gEAoKC;AAED,SAAS,qBAAqB,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAA6H;IACvN,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,yBAAW,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,yBAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,8DAA8D;QACxI,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,mBAAM,IACL,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,IAAI,EACX,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,iCAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE;YACjD,EAAE,IAAI,EAAE,iCAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;SACrD,EACD,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,YAAY,EAC5B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,GAAG,EACd,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG;QAEb,6BAAK,SAAS,EAAC,eAAe,6EAExB,CACE,CACX,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport \"./QuantityFormat.scss\";\r\nimport * as React from \"react\";\r\nimport { DeepCompare } from \"@itwin/core-geometry\";\r\nimport {\r\n getQuantityTypeKey, IModelApp, QuantityFormatsChangedArgs, QuantityType, QuantityTypeArg, QuantityTypeKey,\r\n} from \"@itwin/core-frontend\";\r\nimport { FormatProps, FormatterSpec, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\r\nimport { FormatSample, QuantityFormatPanel } from \"@itwin/imodel-components-react\";\r\nimport {\r\n Dialog, Listbox, ListboxItem, SettingsTabEntry,\r\n useSaveBeforeActivatingNewSettingsTab, useSaveBeforeClosingSettingsContainer,\r\n} from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { UnitSystemSelector } from \"./UnitSystemSelector\";\r\nimport { Button } from \"@itwin/itwinui-react\";\r\nimport { SvgMeasure } from \"@itwin/itwinui-icons-react\";\r\n\r\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\r\n const compare = new DeepCompare();\r\n return compare.compare(obj1, obj2);\r\n}\r\n\r\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\r\n * @beta\r\n */\r\nexport interface QuantityFormatterSettingsOptions {\r\n initialQuantityType: QuantityTypeArg;\r\n availableUnitSystems: Set<UnitSystemKey>;\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\r\n * @beta\r\n */\r\nexport function getQuantityFormatsSettingsManagerEntry(itemPriority: number, opts?: Partial<QuantityFormatterSettingsOptions>): SettingsTabEntry {\r\n const { availableUnitSystems, initialQuantityType } = { ...opts };\r\n return {\r\n itemPriority, tabId: \"uifw:Quantity\",\r\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\r\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\r\n page: <QuantityFormatSettingsPage initialQuantityType={initialQuantityType ?? QuantityType.Length}\r\n availableUnitSystems={availableUnitSystems ?? new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])} />,\r\n isDisabled: false,\r\n icon: <SvgMeasure />,\r\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\r\n pageWillHandleCloseRequest: true,\r\n };\r\n}\r\n\r\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\r\n * @beta\r\n */\r\nexport function QuantityFormatSettingsPage({ initialQuantityType, availableUnitSystems }: QuantityFormatterSettingsOptions) {\r\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(IModelApp.quantityFormatter.activeUnitSystem);\r\n const [activeQuantityType, setActiveQuantityType] = React.useState(getQuantityTypeKey(initialQuantityType));\r\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<FormatterSpec | undefined>(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(getQuantityTypeKey(activeQuantityType)));\r\n const [saveEnabled, setSaveEnabled] = React.useState(false);\r\n const [clearEnabled, setClearEnabled] = React.useState(IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true));\r\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\r\n const formatSectionLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.formatSectionLabel\"));\r\n const setButtonLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.setButtonLabel\"));\r\n const clearButtonLabel = React.useRef(UiFramework.translate(\"settings.quantity-formatting.clearButtonLabel\"));\r\n\r\n React.useEffect(() => {\r\n const handleUnitSystemChanged = ((): void => {\r\n // istanbul ignore else\r\n if (activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem) {\r\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\r\n setActiveFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType));\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(activeQuantityType, true));\r\n }\r\n });\r\n\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);\r\n };\r\n }, [activeQuantityType, activeUnitSystemKey]);\r\n\r\n React.useEffect(() => {\r\n const handleFormatChanged = ((args: QuantityFormatsChangedArgs): void => {\r\n if (!newQuantityTypeRef.current) {\r\n const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\r\n // istanbul ignore else\r\n if (args.quantityType === quantityKey) {\r\n setActiveFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType));\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(activeQuantityType, true));\r\n }\r\n }\r\n newQuantityTypeRef.current = undefined;\r\n });\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleFormatChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleFormatChanged);\r\n };\r\n }, [activeQuantityType]);\r\n\r\n const saveChanges = React.useCallback((afterSaveFunction: (args: any) => void, args?: any) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const formatProps = activeFormatterSpec.format.toJSON();\r\n const formatPropsInUse = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType)!.format.toJSON();\r\n if (formatPropsInUse && !formatAreEqual(formatProps, formatPropsInUse)) {\r\n UiFramework.dialogs.modal.open(<SaveFormatModalDialog formatProps={formatProps} quantityType={activeQuantityType} onDialogCloseArgs={args} onDialogClose={afterSaveFunction} />, \"saveQuantityFormat\");\r\n return;\r\n }\r\n }\r\n afterSaveFunction(args);\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n useSaveBeforeActivatingNewSettingsTab(UiFramework.settingsManager, saveChanges);\r\n useSaveBeforeClosingSettingsContainer(UiFramework.settingsManager, saveChanges);\r\n\r\n const processListboxValueChange = React.useCallback((newQuantityType: QuantityTypeKey) => {\r\n const volumeFormatterSpec = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(newQuantityType);\r\n setActiveFormatterSpec(volumeFormatterSpec);\r\n setActiveQuantityType(newQuantityType);\r\n setSaveEnabled(false);\r\n setClearEnabled(IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true));\r\n }, []);\r\n\r\n const onListboxValueChange = React.useCallback((newQuantityType: string) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const formatProps = activeFormatterSpec.format.toJSON();\r\n const formatPropsInUse = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(activeQuantityType)!.format.toJSON();\r\n if (formatPropsInUse && !formatAreEqual(formatProps, formatPropsInUse)) {\r\n newQuantityTypeRef.current = newQuantityType;\r\n UiFramework.dialogs.modal.open(<SaveFormatModalDialog formatProps={formatProps} quantityType={activeQuantityType} onDialogCloseArgs={newQuantityType} onDialogClose={processListboxValueChange} />, \"saveQuantityFormat\");\r\n return;\r\n }\r\n }\r\n processListboxValueChange(newQuantityType);\r\n }, [activeFormatterSpec, activeQuantityType, processListboxValueChange]);\r\n\r\n const handleOnFormatChanged = React.useCallback(async (formatProps: FormatProps) => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const newSpec = await IModelApp.quantityFormatter.generateFormatterSpecByType(activeQuantityType, formatProps);\r\n const formatPropsInUse = IModelApp.quantityFormatter.getFormatPropsByQuantityType(activeQuantityType);\r\n // istanbul ignore else\r\n if (formatPropsInUse)\r\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\r\n setActiveFormatterSpec(newSpec);\r\n }\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n const handleOnFormatSave = React.useCallback(async () => {\r\n // istanbul ignore else\r\n if (activeFormatterSpec) {\r\n const format = activeFormatterSpec.format.toJSON();\r\n await IModelApp.quantityFormatter.setOverrideFormat(activeQuantityType, format);\r\n setClearEnabled(true);\r\n }\r\n }, [activeFormatterSpec, activeQuantityType]);\r\n\r\n const handleOnFormatReset = React.useCallback(async () => {\r\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\r\n setClearEnabled(false);\r\n }, [activeQuantityType]);\r\n\r\n const processNewUnitSystem = React.useCallback(async (unitSystem: UnitSystemKey) => {\r\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\r\n }, []);\r\n\r\n const handleUnitSystemSelected = React.useCallback(async (unitSystem: UnitSystemKey) => {\r\n if (unitSystem === activeUnitSystemKey)\r\n return;\r\n saveChanges(processNewUnitSystem, unitSystem);\r\n }, [activeUnitSystemKey, processNewUnitSystem, saveChanges]);\r\n\r\n return (\r\n <div className=\"quantity-formatting-container\">\r\n <UnitSystemSelector selectedUnitSystemKey={activeUnitSystemKey} availableUnitSystems={availableUnitSystems} onUnitSystemSelected={handleUnitSystemSelected} />\r\n <span className=\"uifw-quantity-format-section-label\">{formatSectionLabel.current}</span>\r\n <div className=\"uifw-quantity-types-container\">\r\n <div className=\"left-panel\">\r\n <Listbox id=\"uifw-quantity-types-list\" className=\"uifw-quantity-types\"\r\n onListboxValueChange={onListboxValueChange} selectedValue={activeQuantityType} >\r\n {\r\n [...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map((key) => {\r\n const entry = IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\r\n const description = entry.description;\r\n const label = entry.label;\r\n return (\r\n <ListboxItem key={entry.key} className=\"quantity-type-list-entry\" value={entry.key}>\r\n <span className=\"map-source-list-entry-name\" title={description}>{label}</span>\r\n </ListboxItem>\r\n );\r\n })\r\n }\r\n </Listbox>\r\n </div>\r\n <div className=\"right-panel\">\r\n {activeFormatterSpec &&\r\n <>\r\n <div className=\"uifw-quantity-types-right-top\">\r\n <div className=\"uifw-quantity-types-right-top-sample\">\r\n <FormatSample formatSpec={activeFormatterSpec} initialMagnitude={1234.56} hideLabels />\r\n </div>\r\n </div>\r\n <div className=\"uifw-quantity-types-formats\">\r\n <QuantityFormatPanel onFormatChange={handleOnFormatChanged} quantityType={activeQuantityType} />\r\n </div>\r\n <div className=\"components-button-panel\">\r\n <Button styleType=\"cta\" onClick={handleOnFormatSave} disabled={!saveEnabled}>{setButtonLabel.current}</Button>\r\n <Button styleType=\"default\" onClick={handleOnFormatReset} disabled={!clearEnabled}>{clearButtonLabel.current}</Button>\r\n </div>\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SaveFormatModalDialog({ formatProps, quantityType, onDialogCloseArgs, onDialogClose }: { formatProps: FormatProps, quantityType: QuantityTypeKey, onDialogCloseArgs?: any, onDialogClose: (args?: any) => void }) {\r\n const [isOpen, setIsOpen] = React.useState(true);\r\n\r\n const handleClose = React.useCallback(() => {\r\n setIsOpen(false);\r\n UiFramework.dialogs.modal.close();\r\n onDialogClose && onDialogClose(onDialogCloseArgs);\r\n }, [onDialogClose, onDialogCloseArgs]);\r\n\r\n const handleOK = React.useCallback(() => {\r\n IModelApp.quantityFormatter.setOverrideFormat(quantityType, formatProps); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n handleClose();\r\n }, [formatProps, handleClose, quantityType]);\r\n\r\n const handleCancel = React.useCallback(() => {\r\n handleClose();\r\n }, [handleClose]);\r\n\r\n return (\r\n <Dialog\r\n title={\"Save Format Changes\"}\r\n opened={isOpen}\r\n resizable={false}\r\n movable={false}\r\n modal={true}\r\n buttonCluster={[\r\n { type: DialogButtonType.Yes, onClick: handleOK },\r\n { type: DialogButtonType.No, onClick: handleCancel },\r\n ]}\r\n onEscape={handleCancel}\r\n onClose={handleCancel}\r\n onOutsideClick={handleCancel}\r\n minHeight={150}\r\n maxHeight={400}\r\n maxWidth={400}\r\n minWidth={200}\r\n >\r\n <div className=\"modal-dialog2\">\r\n Do you want to save changes to format before changing to another type?\r\n </div>\r\n </Dialog >\r\n );\r\n}\r\n"]}