@itwin/appui-react 4.6.4 → 4.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/CHANGELOG.md +26 -3
  2. package/lib/cjs/appui-react/UiFramework.d.ts +29 -14
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +28 -15
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +3 -3
  11. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  13. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  15. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/Calculator.js +11 -12
  21. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  23. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  25. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  26. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  27. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  28. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  29. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  30. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  31. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/childwindow/PopoutWidget.js +6 -3
  33. package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
  34. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  36. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/configurableui/state.js +5 -2
  39. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  40. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/content/IModelViewport.js +2 -0
  42. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  43. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  44. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  45. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +3 -3
  46. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  47. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  48. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  50. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  51. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  52. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +26 -16
  53. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  54. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +1 -1
  56. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  57. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  58. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +1 -2
  59. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  60. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  61. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  62. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +42 -2
  64. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  65. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +9 -3
  66. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  67. package/lib/cjs/appui-react/messages/AppNotificationManager.js +9 -3
  68. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  69. package/lib/cjs/appui-react/messages/MessageManager.d.ts +10 -0
  70. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/messages/MessageManager.js +51 -6
  72. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  73. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  75. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  76. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  77. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  78. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +8 -8
  79. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  80. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  81. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  82. package/lib/cjs/appui-react/pickers/ViewSelector.js +2 -3
  83. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  84. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/popup/CardPopup.js +2 -2
  86. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  87. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +7 -6
  89. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  90. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  91. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +2 -2
  92. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  93. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  94. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +2 -2
  95. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  96. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  98. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  99. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +47 -0
  100. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  101. package/lib/cjs/appui-react/preview/PreviewFeatures.js +95 -0
  102. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -0
  103. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  104. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  105. package/lib/cjs/appui-react/safearea/SafeAreaContext.js +9 -2
  106. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  107. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +10 -10
  109. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  110. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  111. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  112. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +9 -6
  113. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  114. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -28
  115. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/statusbar/StatusBar.js +1 -69
  117. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  118. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  119. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -3
  120. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  121. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  122. package/lib/cjs/appui-react/statusfields/SectionsField.js +1 -3
  123. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  124. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +4 -7
  125. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  126. package/lib/cjs/appui-react/statusfields/SelectionScope.js +2 -7
  127. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  128. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  129. package/lib/cjs/appui-react/statusfields/SnapMode.js +8 -10
  130. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  131. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  133. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  134. package/lib/cjs/appui-react/theme/ThemeManager.d.ts +38 -7
  135. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  136. package/lib/cjs/appui-react/theme/ThemeManager.js +52 -11
  137. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  138. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/toolbar/Toolbar.js +12 -1
  140. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  141. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  142. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  143. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  144. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  145. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +7 -7
  146. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  147. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  148. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  149. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +12 -4
  150. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  151. package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  152. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +1 -2
  153. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  154. package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  155. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +1 -2
  156. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  157. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  158. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +2 -3
  159. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  160. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  161. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  162. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +133 -105
  163. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  164. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  165. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  166. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +80 -65
  167. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  168. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  169. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  170. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  171. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  172. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  173. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  174. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  175. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -4
  176. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  177. package/lib/cjs/appui-react/uistate/AppUiSettings.js +2 -2
  178. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  179. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  180. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  181. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +10 -1
  182. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  183. package/lib/cjs/appui-react/utils/matchesWords.d.ts +22 -0
  184. package/lib/cjs/appui-react/utils/matchesWords.d.ts.map +1 -0
  185. package/lib/cjs/appui-react/utils/matchesWords.js +103 -0
  186. package/lib/cjs/appui-react/utils/matchesWords.js.map +1 -0
  187. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  188. package/lib/cjs/appui-react/widget-panels/Frontstage.js +25 -13
  189. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  190. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -0
  191. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  192. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +11 -5
  194. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  195. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  196. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +2 -7
  197. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  198. package/lib/cjs/appui-react/widgets/Widget.d.ts +23 -1
  199. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  200. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  201. package/lib/cjs/appui-react.d.ts +1 -0
  202. package/lib/cjs/appui-react.d.ts.map +1 -1
  203. package/lib/cjs/appui-react.js +3 -0
  204. package/lib/cjs/appui-react.js.map +1 -1
  205. package/lib/esm/appui-react/UiFramework.d.ts +29 -14
  206. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  207. package/lib/esm/appui-react/UiFramework.js +29 -16
  208. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  209. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  210. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  211. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  212. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  213. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +3 -3
  214. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  215. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  216. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  217. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  218. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  219. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  220. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  221. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  222. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  223. package/lib/esm/appui-react/accudraw/Calculator.js +11 -12
  224. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  225. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  226. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  227. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  228. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  229. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  230. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  231. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  232. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  233. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  234. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  235. package/lib/esm/appui-react/childwindow/PopoutWidget.js +6 -3
  236. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  237. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  238. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  239. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  240. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  241. package/lib/esm/appui-react/configurableui/state.js +5 -2
  242. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  243. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  244. package/lib/esm/appui-react/content/IModelViewport.js +2 -0
  245. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  246. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  247. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  248. package/lib/esm/appui-react/feedback/ValidationTextbox.js +3 -3
  249. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  250. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  251. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  252. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  253. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  254. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  255. package/lib/esm/appui-react/frontstage/FrontstageDef.js +27 -17
  256. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  257. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  258. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  259. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  260. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  261. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +1 -2
  262. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  263. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  264. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  265. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  266. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +41 -1
  267. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  268. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +9 -3
  269. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  270. package/lib/esm/appui-react/messages/AppNotificationManager.js +9 -3
  271. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  272. package/lib/esm/appui-react/messages/MessageManager.d.ts +10 -0
  273. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  274. package/lib/esm/appui-react/messages/MessageManager.js +52 -7
  275. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  276. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  277. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  278. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  279. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  280. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  281. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +9 -9
  282. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  283. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  284. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  285. package/lib/esm/appui-react/pickers/ViewSelector.js +2 -3
  286. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  287. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  288. package/lib/esm/appui-react/popup/CardPopup.js +2 -2
  289. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  290. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  291. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +6 -5
  292. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  293. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  294. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +2 -2
  295. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  296. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  297. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +2 -2
  298. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  299. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  300. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  301. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  302. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +47 -0
  303. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  304. package/lib/esm/appui-react/preview/PreviewFeatures.js +90 -0
  305. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -0
  306. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  307. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  308. package/lib/esm/appui-react/safearea/SafeAreaContext.js +9 -2
  309. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  310. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  311. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +11 -11
  312. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  313. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  314. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  315. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +9 -6
  316. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  317. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -28
  318. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  319. package/lib/esm/appui-react/statusbar/StatusBar.js +1 -69
  320. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  321. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  322. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -4
  323. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  324. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  325. package/lib/esm/appui-react/statusfields/SectionsField.js +1 -3
  326. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  327. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +4 -7
  328. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  329. package/lib/esm/appui-react/statusfields/SelectionScope.js +2 -7
  330. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  331. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  332. package/lib/esm/appui-react/statusfields/SnapMode.js +8 -10
  333. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  334. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  335. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  336. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  337. package/lib/esm/appui-react/theme/ThemeManager.d.ts +38 -7
  338. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  339. package/lib/esm/appui-react/theme/ThemeManager.js +51 -10
  340. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  341. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  342. package/lib/esm/appui-react/toolbar/Toolbar.js +11 -0
  343. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  344. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  345. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  346. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  347. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  348. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +8 -8
  349. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  350. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  351. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  352. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +12 -4
  353. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  354. package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  355. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +1 -2
  356. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  357. package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  358. package/lib/esm/appui-react/tools/OpenSettingsTool.js +1 -2
  359. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  360. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  361. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +2 -3
  362. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  363. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  364. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  365. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +131 -104
  366. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  367. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  368. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  369. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +81 -66
  370. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  371. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  372. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  373. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  374. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  375. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  376. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  377. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  378. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -4
  379. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  380. package/lib/esm/appui-react/uistate/AppUiSettings.js +2 -2
  381. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  382. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  383. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  384. package/lib/esm/appui-react/uistate/useUiStateStorage.js +10 -1
  385. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  386. package/lib/esm/appui-react/utils/matchesWords.d.ts +22 -0
  387. package/lib/esm/appui-react/utils/matchesWords.d.ts.map +1 -0
  388. package/lib/esm/appui-react/utils/matchesWords.js +99 -0
  389. package/lib/esm/appui-react/utils/matchesWords.js.map +1 -0
  390. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  391. package/lib/esm/appui-react/widget-panels/Frontstage.js +27 -15
  392. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  393. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -0
  394. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  395. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  396. package/lib/esm/appui-react/widget-panels/ToolSettings.js +9 -4
  397. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  398. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  399. package/lib/esm/appui-react/widgets/BackstageAppButton.js +2 -7
  400. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  401. package/lib/esm/appui-react/widgets/Widget.d.ts +23 -1
  402. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  403. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  404. package/lib/esm/appui-react.d.ts +1 -0
  405. package/lib/esm/appui-react.d.ts.map +1 -1
  406. package/lib/esm/appui-react.js +1 -0
  407. package/lib/esm/appui-react.js.map +1 -1
  408. package/lib/public/locales/en/UiFramework.json +6 -4
  409. package/package.json +13 -11
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport {\n ConditionalBooleanValue,\n IconSpecUtilities,\n} from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport type { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { UiFramework } from \"../UiFramework\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function isNoSelectionActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let selectionCount = 0;\n // istanbul ignore if\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n // istanbul ignore if\n if (activeContentControl?.viewport) {\n const hiddenElementsSet = activeContentControl.viewport.neverDrawn;\n const selectedElementsSet =\n activeContentControl.viewport.view.iModel.selectionSet.elements;\n // TODO: add check for categories, subcategories and models\n if (\n selectionCount > 0 ||\n ![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value))\n )\n return false;\n }\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return { ...state, isVisible };\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n let selectionCount = 0;\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n if (\n activeContentControl &&\n activeContentControl.viewport &&\n (activeContentControl.viewport.view.iModel.selectionSet.size > 0 ||\n selectionCount > 0)\n )\n isVisible = true;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n */\n// istanbul ignore next\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelIsolate),\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersIsolate),\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgAssetIsolate),\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgIsolate),\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgModelHide),\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgLayersHide),\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(\n svgAssetClassificationHide\n ),\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibilityHide),\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(\n svgVisibilitySemiTransparent\n ),\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgVisibility),\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
1
+ {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport type { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { UiFramework } from \"../UiFramework\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function isNoSelectionActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let selectionCount = 0;\n // istanbul ignore if\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n // istanbul ignore if\n if (activeContentControl?.viewport) {\n const hiddenElementsSet = activeContentControl.viewport.neverDrawn;\n const selectedElementsSet =\n activeContentControl.viewport.view.iModel.selectionSet.elements;\n // TODO: add check for categories, subcategories and models\n if (\n selectionCount > 0 ||\n ![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value))\n )\n return false;\n }\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return { ...state, isVisible };\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n let selectionCount = 0;\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n if (\n activeContentControl &&\n activeContentControl.viewport &&\n (activeContentControl.viewport.view.iModel.selectionSet.size > 0 ||\n selectionCount > 0)\n )\n isVisible = true;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n */\n// istanbul ignore next\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: svgModelIsolate,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: svgLayersIsolate,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: svgAssetIsolate,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: svgIsolate,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: svgModelHide,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: svgLayersHide,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: svgAssetClassificationHide,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: svgVisibilityHide,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: svgVisibilitySemiTransparent,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: svgVisibility,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
@@ -6,15 +6,14 @@ import "./UiSettingsPage.scss";
6
6
  import type { SettingsTabEntry } from "@itwin/core-react";
7
7
  /** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.
8
8
  *
9
- * - theme - Dark, Light, or based on OS preference.
9
+ * - theme - Dark, Light, with or without High contrast, or based on OS preference.
10
10
  * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.
11
11
  * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action
12
12
  * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the
13
13
  * active group button item.
14
14
  * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.
15
15
  * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.
16
- * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.
17
- * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.
16
+ * - widget opacity - determines how transparent floating widgets become when the mouse in not in them.
18
17
  *
19
18
  * @beta
20
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAe1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,gBAiY7B;AAsBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAUlB"}
1
+ {"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAc1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,gBA4Y7B;AAsBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAUlB"}
@@ -12,19 +12,17 @@ import * as React from "react";
12
12
  import { UiFramework } from "../../UiFramework";
13
13
  import { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME, } from "../../theme/ThemeManager";
14
14
  import { SyncUiEventDispatcher, SyncUiEventId, } from "../../syncui/SyncUiEventDispatcher";
15
- import { IconSpecUtilities } from "@itwin/appui-abstract";
16
15
  import { Select, Slider, ToggleSwitch } from "@itwin/itwinui-react";
17
16
  /** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.
18
17
  *
19
- * - theme - Dark, Light, or based on OS preference.
18
+ * - theme - Dark, Light, with or without High contrast, or based on OS preference.
20
19
  * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.
21
20
  * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action
22
21
  * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the
23
22
  * active group button item.
24
23
  * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.
25
24
  * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.
26
- * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.
27
- * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.
25
+ * - widget opacity - determines how transparent floating widgets become when the mouse in not in them.
28
26
  *
29
27
  * @beta
30
28
  */
@@ -41,6 +39,9 @@ export function UiSettingsPage() {
41
39
  const snapWidgetOpacityDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.snapWidgetOpacityDescription"));
42
40
  const darkLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.dark"));
43
41
  const lightLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.light"));
42
+ const darkHCLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.darkHighContrast"));
43
+ const lightHCLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.lightHighContrast"));
44
+ const inheritLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.inherit"));
44
45
  const systemPreferredLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.systemPreferred"));
45
46
  const widgetOpacityTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetOpacityTitle"));
46
47
  const widgetOpacityDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetOpacityDescription"));
@@ -71,7 +72,6 @@ export function UiSettingsPage() {
71
72
  "configurableui:set_widget_opacity",
72
73
  "configurableui:set-show-widget-icon",
73
74
  "configurableui:set-drag-interaction",
74
- "configurableui:set-framework-version",
75
75
  "configurableui:set-auto-collapse-unpinned-panels",
76
76
  "configurableui:set-animate-tool-settings",
77
77
  "configurableui:set-use-tool-as-tool-settings-label",
@@ -129,6 +129,9 @@ export function UiSettingsPage() {
129
129
  defaultThemeOption,
130
130
  { label: lightLabel.current, value: ColorTheme.Light },
131
131
  { label: darkLabel.current, value: ColorTheme.Dark },
132
+ { label: lightHCLabel.current, value: ColorTheme.HighContrastLight },
133
+ { label: darkHCLabel.current, value: ColorTheme.HighContrastDark },
134
+ { label: inheritLabel.current, value: ColorTheme.Inherit },
132
135
  ];
133
136
  const onThemeChange = React.useCallback((newValue) => {
134
137
  UiFramework.setColorTheme(newValue);
@@ -202,7 +205,7 @@ export function getUiSettingsManagerEntry(itemPriority) {
202
205
  itemPriority,
203
206
  tabId: "uifw:UiStateStorage",
204
207
  label: UiFramework.translate("settings.uiSettingsPage.label"),
205
- icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),
208
+ icon: widowSettingsIconSvg,
206
209
  page: React.createElement(UiSettingsPage, null),
207
210
  isDisabled: false,
208
211
  tooltip: UiFramework.translate("settings.uiSettingsPage.tooltip"),
@@ -1 +1 @@
1
- {"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\n// cSpell:ignore configurableui checkmark\n\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\nimport \"./UiSettingsPage.scss\";\nimport * as React from \"react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport {\n ColorTheme,\n SYSTEM_PREFERRED_COLOR_THEME,\n} from \"../../theme/ThemeManager\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../../syncui/SyncUiEventDispatcher\";\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport type { UiSyncEventArgs } from \"../../syncui/UiSyncEvent\";\n\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\n *\n * - theme - Dark, Light, or based on OS preference.\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\n * active group button item.\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\n *\n * @beta\n */\nexport function UiSettingsPage() {\n const themeTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.themeTitle\")\n );\n const themeDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.themeDescription\")\n );\n const autoHideTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\")\n );\n const autoHideDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\")\n );\n const dragInteractionTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\")\n );\n const dragInteractionDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\")\n );\n const useProximityOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\")\n );\n const useProximityOpacityDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useProximityOpacityDescription\"\n )\n );\n const snapWidgetOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\")\n );\n const snapWidgetOpacityDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.snapWidgetOpacityDescription\"\n )\n );\n const darkLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dark\")\n );\n const lightLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.light\")\n );\n const systemPreferredLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\")\n );\n const widgetOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\")\n );\n const widgetOpacityDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\")\n );\n const widgetIconTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\")\n );\n const widgetIconDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\")\n );\n const autoCollapseUnpinnedPanelsTitle = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"\n )\n );\n const autoCollapseUnpinnedPanelsDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"\n )\n );\n const animateToolSettingsTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\")\n );\n const animateToolSettingsDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.animateToolSettingsDescription\"\n )\n );\n const useToolAsToolSettingsLabelTitle = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"\n )\n );\n const useToolAsToolSettingsLabelDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"\n )\n );\n const toolbarOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityTitle\")\n );\n const toolbarOpacityDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityDescription\")\n );\n\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\n const [useDragInteraction, setUseDragInteraction] = React.useState(\n () => UiFramework.useDragInteraction\n );\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(\n () => UiFramework.showWidgetIcon\n );\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] =\n React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\n const [animateToolSettings, setAnimateToolSettings] = React.useState(\n () => UiFramework.animateToolSettings\n );\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] =\n React.useState(() => UiFramework.useToolAsToolSettingsLabel);\n const [widgetOpacity, setWidgetOpacity] = React.useState(() =>\n UiFramework.getWidgetOpacity()\n );\n const [autoHideUi, setAutoHideUi] = React.useState(\n () => UiFramework.visibility.autoHideUi\n );\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(\n () => UiFramework.visibility.useProximityOpacity\n );\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(\n () => UiFramework.visibility.snapWidgetOpacity\n );\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() =>\n UiFramework.getToolbarOpacity()\n );\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n \"configurableui:set_theme\",\n \"configurableui:set_widget_opacity\",\n \"configurableui:set-show-widget-icon\",\n \"configurableui:set-drag-interaction\",\n \"configurableui:set-framework-version\",\n \"configurableui:set-auto-collapse-unpinned-panels\",\n \"configurableui:set-animate-tool-settings\",\n \"configurableui:set-use-tool-as-tool-settings-label\",\n \"configurableui:set-toolbar-opacity\",\n SyncUiEventId.ShowHideManagerSettingChange,\n ];\n\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n if (UiFramework.getColorTheme() !== theme)\n setTheme(UiFramework.getColorTheme());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.useDragInteraction !== useDragInteraction)\n setUseDragInteraction(UiFramework.useDragInteraction);\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\n setShowWidgetIcon(UiFramework.showWidgetIcon);\n if (\n UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels\n )\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\n setWidgetOpacity(UiFramework.getWidgetOpacity());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)\n setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);\n if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)\n setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);\n if (UiFramework.animateToolSettings !== animateToolSettings)\n setAnimateToolSettings(UiFramework.animateToolSettings);\n if (\n UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel\n )\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\n setToolbarOpacity(UiFramework.getToolbarOpacity());\n }\n };\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, [\n autoCollapseUnpinnedPanels,\n autoHideUi,\n showWidgetIcon,\n snapWidgetOpacity,\n theme,\n useDragInteraction,\n useProximityOpacity,\n widgetOpacity,\n animateToolSettings,\n useToolAsToolSettingsLabel,\n toolbarOpacity,\n ]);\n\n const defaultThemeOption = {\n label: systemPreferredLabel.current,\n value: SYSTEM_PREFERRED_COLOR_THEME,\n };\n const themeOptions: SelectOption<string>[] = [\n defaultThemeOption,\n { label: lightLabel.current, value: ColorTheme.Light },\n { label: darkLabel.current, value: ColorTheme.Dark },\n ];\n\n const onThemeChange = React.useCallback((newValue: string) => {\n UiFramework.setColorTheme(newValue);\n }, []);\n\n const onAutoHideChange = React.useCallback(async () => {\n UiFramework.visibility.autoHideUi = !autoHideUi;\n }, [autoHideUi]);\n\n const onUseProximityOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.useProximityOpacity = !useProximityOpacity;\n }, [useProximityOpacity]);\n\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.snapWidgetOpacity = !snapWidgetOpacity;\n }, [snapWidgetOpacity]);\n\n const onWidgetIconChange = React.useCallback(async () => {\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\n }, [showWidgetIcon]);\n\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\n }, [autoCollapseUnpinnedPanels]);\n\n const onWidgetOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n // istanbul ignore else\n if (values.length > 0) {\n UiFramework.setWidgetOpacity(values[0]);\n }\n },\n []\n );\n\n const onToggleDragInteraction = React.useCallback(async () => {\n UiFramework.setUseDragInteraction(!useDragInteraction);\n }, [useDragInteraction]);\n\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\n UiFramework.setAnimateToolSettings(!animateToolSettings);\n }, [animateToolSettings]);\n const currentTheme = UiFramework.getColorTheme();\n\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\n }, [useToolAsToolSettingsLabel]);\n\n const onToolbarOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n // istanbul ignore else\n if (values.length > 0) {\n UiFramework.setToolbarOpacity(values[0]);\n }\n },\n []\n );\n\n return (\n <div className=\"uifw-settings\">\n <SettingsItem\n title={themeTitle.current}\n description={themeDescription.current}\n settingUi={\n <div\n data-testid=\"select-theme-container\"\n className=\"select-theme-container\"\n >\n <Select\n value={currentTheme}\n onChange={onThemeChange}\n options={themeOptions}\n data-testid=\"select-theme\"\n size=\"small\"\n />\n </div>\n }\n />\n <SettingsItem\n title={autoHideTitle.current}\n description={autoHideDescription.current}\n settingUi={\n <ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />\n }\n />\n <SettingsItem\n title={dragInteractionTitle.current}\n description={dragInteractionDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useDragInteraction}\n onChange={onToggleDragInteraction}\n />\n }\n />\n <SettingsItem\n title={useProximityOpacityTitle.current}\n description={useProximityOpacityDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useProximityOpacity}\n onChange={onUseProximityOpacityChange}\n />\n }\n />\n <SettingsItem\n title={snapWidgetOpacityTitle.current}\n description={snapWidgetOpacityDescription.current}\n settingUi={\n <ToggleSwitch\n checked={snapWidgetOpacity}\n onChange={onSnapWidgetOpacityChange}\n />\n }\n />\n <SettingsItem\n title={widgetIconTitle.current}\n description={widgetIconDescription.current}\n settingUi={\n <ToggleSwitch\n checked={showWidgetIcon}\n onChange={onWidgetIconChange}\n />\n }\n />\n <SettingsItem\n title={autoCollapseUnpinnedPanelsTitle.current}\n description={autoCollapseUnpinnedPanelsDescription.current}\n settingUi={\n <ToggleSwitch\n checked={autoCollapseUnpinnedPanels}\n onChange={onAutoCollapseUnpinnedPanelsChange}\n />\n }\n />\n <SettingsItem\n title={animateToolSettingsTitle.current}\n description={animateToolSettingsDescription.current}\n settingUi={\n <ToggleSwitch\n checked={animateToolSettings}\n onChange={OnToggleAnimateToolSettings}\n />\n }\n />\n <SettingsItem\n title={useToolAsToolSettingsLabelTitle.current}\n description={useToolAsToolSettingsLabelDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useToolAsToolSettingsLabel}\n onChange={OnToggleUseToolAsToolSettingsLabel}\n />\n }\n />\n <SettingsItem\n title={toolbarOpacityTitle.current}\n description={toolbarOpacityDescription.current}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[toolbarOpacity]}\n step={0.05}\n onChange={onToolbarOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n <SettingsItem\n title={widgetOpacityTitle.current}\n description={widgetOpacityDescription.current}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[widgetOpacity]}\n step={0.05}\n onChange={onWidgetOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n </div>\n );\n}\n\ninterface SettingsItemProps {\n title: string;\n description: string;\n settingUi: React.ReactNode;\n}\n\nfunction SettingsItem(props: SettingsItemProps) {\n const { title, description, settingUi } = props;\n\n return (\n <div className=\"uifw-settings-item\">\n <div className=\"panel left-panel\">\n <span className=\"title\">{title}</span>\n <span className=\"description\">{description}</span>\n </div>\n <div className=\"panel right-panel\">{settingUi}</div>\n </div>\n );\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @beta\n */\nexport function getUiSettingsManagerEntry(\n itemPriority: number\n): SettingsTabEntry {\n return {\n itemPriority,\n tabId: \"uifw:UiStateStorage\",\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\n page: <UiSettingsPage />,\n isDisabled: false,\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\n };\n}\n"]}
1
+ {"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\n// cSpell:ignore configurableui checkmark\n\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\nimport \"./UiSettingsPage.scss\";\nimport * as React from \"react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport {\n ColorTheme,\n SYSTEM_PREFERRED_COLOR_THEME,\n} from \"../../theme/ThemeManager\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../../syncui/SyncUiEventDispatcher\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport type { UiSyncEventArgs } from \"../../syncui/UiSyncEvent\";\n\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\n *\n * - theme - Dark, Light, with or without High contrast, or based on OS preference.\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\n * active group button item.\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\n * - widget opacity - determines how transparent floating widgets become when the mouse in not in them.\n *\n * @beta\n */\nexport function UiSettingsPage() {\n const themeTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.themeTitle\")\n );\n const themeDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.themeDescription\")\n );\n const autoHideTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\")\n );\n const autoHideDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\")\n );\n const dragInteractionTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\")\n );\n const dragInteractionDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\")\n );\n const useProximityOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\")\n );\n const useProximityOpacityDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useProximityOpacityDescription\"\n )\n );\n const snapWidgetOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\")\n );\n const snapWidgetOpacityDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.snapWidgetOpacityDescription\"\n )\n );\n const darkLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dark\")\n );\n const lightLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.light\")\n );\n const darkHCLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.darkHighContrast\")\n );\n const lightHCLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.lightHighContrast\")\n );\n const inheritLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.inherit\")\n );\n const systemPreferredLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\")\n );\n const widgetOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\")\n );\n const widgetOpacityDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\")\n );\n const widgetIconTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\")\n );\n const widgetIconDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\")\n );\n const autoCollapseUnpinnedPanelsTitle = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"\n )\n );\n const autoCollapseUnpinnedPanelsDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"\n )\n );\n const animateToolSettingsTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\")\n );\n const animateToolSettingsDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.animateToolSettingsDescription\"\n )\n );\n const useToolAsToolSettingsLabelTitle = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"\n )\n );\n const useToolAsToolSettingsLabelDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"\n )\n );\n const toolbarOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityTitle\")\n );\n const toolbarOpacityDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityDescription\")\n );\n\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\n const [useDragInteraction, setUseDragInteraction] = React.useState(\n () => UiFramework.useDragInteraction\n );\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(\n () => UiFramework.showWidgetIcon\n );\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] =\n React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\n const [animateToolSettings, setAnimateToolSettings] = React.useState(\n () => UiFramework.animateToolSettings\n );\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] =\n React.useState(() => UiFramework.useToolAsToolSettingsLabel);\n const [widgetOpacity, setWidgetOpacity] = React.useState(() =>\n UiFramework.getWidgetOpacity()\n );\n const [autoHideUi, setAutoHideUi] = React.useState(\n () => UiFramework.visibility.autoHideUi\n );\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(\n () => UiFramework.visibility.useProximityOpacity\n );\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(\n () => UiFramework.visibility.snapWidgetOpacity\n );\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() =>\n UiFramework.getToolbarOpacity()\n );\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n \"configurableui:set_theme\",\n \"configurableui:set_widget_opacity\",\n \"configurableui:set-show-widget-icon\",\n \"configurableui:set-drag-interaction\",\n \"configurableui:set-auto-collapse-unpinned-panels\",\n \"configurableui:set-animate-tool-settings\",\n \"configurableui:set-use-tool-as-tool-settings-label\",\n \"configurableui:set-toolbar-opacity\",\n SyncUiEventId.ShowHideManagerSettingChange,\n ];\n\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n if (UiFramework.getColorTheme() !== theme)\n setTheme(UiFramework.getColorTheme());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.useDragInteraction !== useDragInteraction)\n setUseDragInteraction(UiFramework.useDragInteraction);\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\n setShowWidgetIcon(UiFramework.showWidgetIcon);\n if (\n UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels\n )\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\n setWidgetOpacity(UiFramework.getWidgetOpacity());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)\n setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);\n if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)\n setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);\n if (UiFramework.animateToolSettings !== animateToolSettings)\n setAnimateToolSettings(UiFramework.animateToolSettings);\n if (\n UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel\n )\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\n setToolbarOpacity(UiFramework.getToolbarOpacity());\n }\n };\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, [\n autoCollapseUnpinnedPanels,\n autoHideUi,\n showWidgetIcon,\n snapWidgetOpacity,\n theme,\n useDragInteraction,\n useProximityOpacity,\n widgetOpacity,\n animateToolSettings,\n useToolAsToolSettingsLabel,\n toolbarOpacity,\n ]);\n\n const defaultThemeOption = {\n label: systemPreferredLabel.current,\n value: SYSTEM_PREFERRED_COLOR_THEME,\n };\n const themeOptions: SelectOption<string>[] = [\n defaultThemeOption,\n { label: lightLabel.current, value: ColorTheme.Light },\n { label: darkLabel.current, value: ColorTheme.Dark },\n { label: lightHCLabel.current, value: ColorTheme.HighContrastLight },\n { label: darkHCLabel.current, value: ColorTheme.HighContrastDark },\n { label: inheritLabel.current, value: ColorTheme.Inherit },\n ];\n\n const onThemeChange = React.useCallback((newValue: string) => {\n UiFramework.setColorTheme(newValue);\n }, []);\n\n const onAutoHideChange = React.useCallback(async () => {\n UiFramework.visibility.autoHideUi = !autoHideUi;\n }, [autoHideUi]);\n\n const onUseProximityOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.useProximityOpacity = !useProximityOpacity;\n }, [useProximityOpacity]);\n\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.snapWidgetOpacity = !snapWidgetOpacity;\n }, [snapWidgetOpacity]);\n\n const onWidgetIconChange = React.useCallback(async () => {\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\n }, [showWidgetIcon]);\n\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\n }, [autoCollapseUnpinnedPanels]);\n\n const onWidgetOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n // istanbul ignore else\n if (values.length > 0) {\n UiFramework.setWidgetOpacity(values[0]);\n }\n },\n []\n );\n\n const onToggleDragInteraction = React.useCallback(async () => {\n UiFramework.setUseDragInteraction(!useDragInteraction);\n }, [useDragInteraction]);\n\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\n UiFramework.setAnimateToolSettings(!animateToolSettings);\n }, [animateToolSettings]);\n const currentTheme = UiFramework.getColorTheme();\n\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\n }, [useToolAsToolSettingsLabel]);\n\n const onToolbarOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n // istanbul ignore else\n if (values.length > 0) {\n UiFramework.setToolbarOpacity(values[0]);\n }\n },\n []\n );\n\n return (\n <div className=\"uifw-settings\">\n <SettingsItem\n title={themeTitle.current}\n description={themeDescription.current}\n settingUi={\n <div\n data-testid=\"select-theme-container\"\n className=\"select-theme-container\"\n >\n <Select\n value={currentTheme}\n onChange={onThemeChange}\n options={themeOptions}\n data-testid=\"select-theme\"\n size=\"small\"\n />\n </div>\n }\n />\n <SettingsItem\n title={autoHideTitle.current}\n description={autoHideDescription.current}\n settingUi={\n <ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />\n }\n />\n <SettingsItem\n title={dragInteractionTitle.current}\n description={dragInteractionDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useDragInteraction}\n onChange={onToggleDragInteraction}\n />\n }\n />\n <SettingsItem\n title={useProximityOpacityTitle.current}\n description={useProximityOpacityDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useProximityOpacity}\n onChange={onUseProximityOpacityChange}\n />\n }\n />\n <SettingsItem\n title={snapWidgetOpacityTitle.current}\n description={snapWidgetOpacityDescription.current}\n settingUi={\n <ToggleSwitch\n checked={snapWidgetOpacity}\n onChange={onSnapWidgetOpacityChange}\n />\n }\n />\n <SettingsItem\n title={widgetIconTitle.current}\n description={widgetIconDescription.current}\n settingUi={\n <ToggleSwitch\n checked={showWidgetIcon}\n onChange={onWidgetIconChange}\n />\n }\n />\n <SettingsItem\n title={autoCollapseUnpinnedPanelsTitle.current}\n description={autoCollapseUnpinnedPanelsDescription.current}\n settingUi={\n <ToggleSwitch\n checked={autoCollapseUnpinnedPanels}\n onChange={onAutoCollapseUnpinnedPanelsChange}\n />\n }\n />\n <SettingsItem\n title={animateToolSettingsTitle.current}\n description={animateToolSettingsDescription.current}\n settingUi={\n <ToggleSwitch\n checked={animateToolSettings}\n onChange={OnToggleAnimateToolSettings}\n />\n }\n />\n <SettingsItem\n title={useToolAsToolSettingsLabelTitle.current}\n description={useToolAsToolSettingsLabelDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useToolAsToolSettingsLabel}\n onChange={OnToggleUseToolAsToolSettingsLabel}\n />\n }\n />\n <SettingsItem\n title={toolbarOpacityTitle.current}\n description={toolbarOpacityDescription.current}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[toolbarOpacity]}\n step={0.05}\n onChange={onToolbarOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n <SettingsItem\n title={widgetOpacityTitle.current}\n description={widgetOpacityDescription.current}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[widgetOpacity]}\n step={0.05}\n onChange={onWidgetOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n </div>\n );\n}\n\ninterface SettingsItemProps {\n title: string;\n description: string;\n settingUi: React.ReactNode;\n}\n\nfunction SettingsItem(props: SettingsItemProps) {\n const { title, description, settingUi } = props;\n\n return (\n <div className=\"uifw-settings-item\">\n <div className=\"panel left-panel\">\n <span className=\"title\">{title}</span>\n <span className=\"description\">{description}</span>\n </div>\n <div className=\"panel right-panel\">{settingUi}</div>\n </div>\n );\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @beta\n */\nexport function getUiSettingsManagerEntry(\n itemPriority: number\n): SettingsTabEntry {\n return {\n itemPriority,\n tabId: \"uifw:UiStateStorage\",\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\n icon: widowSettingsIconSvg,\n page: <UiSettingsPage />,\n isDisabled: false,\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\n };\n}\n"]}
@@ -4,15 +4,8 @@
4
4
  import "./StatusBar.scss";
5
5
  import * as React from "react";
6
6
  import type { CommonDivProps, CommonProps } from "@itwin/core-react";
7
- import type { ActivityMessageEventArgs } from "../messages/MessageManager";
8
7
  import type { StatusBarWidgetControl } from "./StatusBarWidgetControl";
9
8
  import { StatusBarPopup } from "./Popup";
10
- /** State for the [[StatusBar]] React component
11
- * @internal
12
- */
13
- interface StatusBarState {
14
- activityMessageInfo: ActivityMessageEventArgs | undefined;
15
- }
16
9
  /** Properties for the [[StatusBar]] React component
17
10
  * @public
18
11
  */
@@ -23,27 +16,8 @@ export interface StatusBarProps extends CommonProps {
23
16
  /** Status Bar React component.
24
17
  * @public
25
18
  */
26
- export declare class StatusBar extends React.Component<StatusBarProps, StatusBarState> {
27
- private messages;
28
- /** @internal */
29
- constructor(props: StatusBarProps);
19
+ export declare class StatusBar extends React.Component<StatusBarProps> {
30
20
  render(): React.ReactNode;
31
- componentDidMount(): void;
32
- componentWillUnmount(): void;
33
- private _handleMessageAddedEvent;
34
- private _updateMessages;
35
- /** Respond to clearing the message list */
36
- private _handleMessagesUpdatedEvent;
37
- /**
38
- * Sets state of the status bar to updated values reflecting activity progress.
39
- * @param args New values to set for ActivityMessage
40
- */
41
- private _handleActivityMessageUpdatedEvent;
42
- /**
43
- * Hides ActivityMessage after cancellation
44
- */
45
- private _handleActivityMessageCancelledEvent;
46
- private _closeMessage;
47
21
  }
48
22
  /** StatusBar With Space Between Items React functional component
49
23
  * @public
@@ -74,5 +48,4 @@ export declare namespace StatusBar {
74
48
  */
75
49
  const Popup: typeof StatusBarPopup;
76
50
  }
77
- export {};
78
51
  //# sourceMappingURL=StatusBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAKvE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC;;GAEG;AACH,UAAU,cAAc;IACtB,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC;AAUD;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAC5E,OAAO,CAAC,QAAQ,CAA0B;IAE1C,gBAAgB;gBACJ,KAAK,EAAE,cAAc;IAQjB,MAAM,IAAI,KAAK,CAAC,SAAS;IAmBzB,iBAAiB;IAiBjB,oBAAoB;IAepC,OAAO,CAAC,wBAAwB,CAa9B;IAEF,OAAO,CAAC,eAAe,CAcrB;IAEF,2CAA2C;IAC3C,OAAO,CAAC,2BAA2B,CAEjC;IAEF;;;OAGG;IACH,OAAO,CAAC,kCAAkC,CAMxC;IAEF;;OAEG;IACH,OAAO,CAAC,oCAAoC,CAI1C;IAEF,OAAO,CAAC,aAAa,CAGnB;CACH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAQ1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,eAQzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,eAQ3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAQ1D;AAED;;GAEG;AACH,yBAAiB,SAAS,CAAC;IACzB;;OAEG;IACI,MAAM,KAAK,8GAAiB,CAAC;IAEpC;;OAEG;IACI,MAAM,KAAK,uBAAiB,CAAC;CACrC"}
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIvE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;IAC5C,MAAM,IAAI,KAAK,CAAC,SAAS;CAiB1C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAQ1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,eAQzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,eAQ3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAQ1D;AAED;;GAEG;AACH,yBAAiB,SAAS,CAAC;IACzB;;OAEG;IACI,MAAM,KAAK,8GAAiB,CAAC;IAEpC;;OAEG;IACI,MAAM,KAAK,uBAAiB,CAAC;CACrC"}
@@ -9,10 +9,8 @@ import "./StatusBar.scss";
9
9
  import * as React from "react";
10
10
  import { Div } from "@itwin/core-react";
11
11
  import { Footer } from "@itwin/appui-layout-react";
12
- import { MessageManager } from "../messages/MessageManager";
13
12
  import { SafeAreaContext } from "../safearea/SafeAreaContext";
14
13
  import { toLayoutSafeAreaInsets } from "../safearea/SafeAreaHelpers";
15
- import { ActivityMessageRenderer } from "../messages/ActivityMessage";
16
14
  import { UiFramework } from "../UiFramework";
17
15
  import { StatusBarField } from "./Field";
18
16
  import { StatusBarPopup } from "./Popup";
@@ -20,77 +18,11 @@ import { StatusBarPopup } from "./Popup";
20
18
  * @public
21
19
  */
22
20
  export class StatusBar extends React.Component {
23
- /** @internal */
24
- constructor(props) {
25
- super(props);
26
- this.messages = [];
27
- this._handleMessageAddedEvent = (_args) => {
28
- this._updateMessages();
29
- const messagesToAdd = MessageManager.activeMessageManager.messages.filter((msg) => !this.messages.find((m) => m.id === msg.id));
30
- messagesToAdd.forEach((msg) => {
31
- const displayedMessage = MessageManager.displayMessage(msg.messageDetails, { onRemove: () => this._closeMessage(msg.id) });
32
- if (!!displayedMessage)
33
- this.messages.push({ close: displayedMessage.close, id: msg.id });
34
- });
35
- };
36
- this._updateMessages = () => {
37
- const updatedMessages = [...this.messages];
38
- this.messages.forEach((m) => {
39
- if (!MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {
40
- m.close();
41
- const index = updatedMessages.findIndex((msg) => msg.id === m.id);
42
- updatedMessages.splice(index, 1);
43
- }
44
- });
45
- this.messages = updatedMessages;
46
- };
47
- /** Respond to clearing the message list */
48
- this._handleMessagesUpdatedEvent = () => {
49
- this._updateMessages();
50
- };
51
- /**
52
- * Sets state of the status bar to updated values reflecting activity progress.
53
- * @param args New values to set for ActivityMessage
54
- */
55
- this._handleActivityMessageUpdatedEvent = (args) => {
56
- this.setState({
57
- activityMessageInfo: args,
58
- });
59
- };
60
- /**
61
- * Hides ActivityMessage after cancellation
62
- */
63
- this._handleActivityMessageCancelledEvent = () => {
64
- this.setState({
65
- activityMessageInfo: undefined,
66
- });
67
- };
68
- this._closeMessage = (id) => {
69
- MessageManager.activeMessageManager.remove(id);
70
- MessageManager.updateMessages();
71
- };
72
- this.state = {
73
- activityMessageInfo: undefined,
74
- };
75
- }
76
21
  render() {
77
- return (React.createElement(SafeAreaContext.Consumer, null, (safeAreaInsets) => (React.createElement(Footer, { className: this.props.className, messages: React.createElement(ActivityMessageRenderer, null), onMouseEnter: UiFramework.visibility.handleWidgetMouseEnter, safeAreaInsets: toLayoutSafeAreaInsets(safeAreaInsets), style: this.props.style },
22
+ return (React.createElement(SafeAreaContext.Consumer, null, (safeAreaInsets) => (React.createElement(Footer, { className: this.props.className, onMouseEnter: UiFramework.visibility.handleWidgetMouseEnter, safeAreaInsets: toLayoutSafeAreaInsets(safeAreaInsets), style: this.props.style },
78
23
  this.props.widgetControl?.getReactNode?.() ?? null,
79
24
  this.props.children))));
80
25
  }
81
- componentDidMount() {
82
- MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);
83
- MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);
84
- MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);
85
- MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);
86
- MessageManager.updateMessages();
87
- }
88
- componentWillUnmount() {
89
- MessageManager.onMessageAddedEvent.removeListener(this._handleMessageAddedEvent);
90
- MessageManager.onActivityMessageUpdatedEvent.removeListener(this._handleActivityMessageUpdatedEvent);
91
- MessageManager.onActivityMessageCancelledEvent.removeListener(this._handleActivityMessageCancelledEvent);
92
- MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);
93
- }
94
26
  }
95
27
  /** StatusBar With Space Between Items React functional component
96
28
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport \"./StatusBar.scss\";\nimport * as React from \"react\";\nimport type { CommonDivProps, CommonProps } from \"@itwin/core-react\";\nimport { Div } from \"@itwin/core-react\";\nimport { Footer } from \"@itwin/appui-layout-react\";\nimport type {\n ActivityMessageEventArgs,\n MessageAddedEventArgs,\n} from \"../messages/MessageManager\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\nimport type { StatusBarWidgetControl } from \"./StatusBarWidgetControl\";\nimport { toLayoutSafeAreaInsets } from \"../safearea/SafeAreaHelpers\";\nimport { ActivityMessageRenderer } from \"../messages/ActivityMessage\";\nimport { UiFramework } from \"../UiFramework\";\nimport { StatusBarField } from \"./Field\";\nimport { StatusBarPopup } from \"./Popup\";\n\n// cspell:ignore safearea\n\n/** State for the [[StatusBar]] React component\n * @internal\n */\ninterface StatusBarState {\n activityMessageInfo: ActivityMessageEventArgs | undefined;\n}\n\n/** Properties for the [[StatusBar]] React component\n * @public\n */\nexport interface StatusBarProps extends CommonProps {\n children?: React.ReactNode;\n widgetControl?: StatusBarWidgetControl;\n}\n\n/** Message type for the [[StatusBar]] React component\n * @internal\n */\ninterface StatusBarMessage {\n close: () => void;\n id: string;\n}\n\n/** Status Bar React component.\n * @public\n */\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\n private messages: StatusBarMessage[] = [];\n\n /** @internal */\n constructor(props: StatusBarProps) {\n super(props);\n\n this.state = {\n activityMessageInfo: undefined,\n };\n }\n\n public override render(): React.ReactNode {\n return (\n <SafeAreaContext.Consumer>\n {(safeAreaInsets) => (\n <Footer\n className={this.props.className}\n messages={<ActivityMessageRenderer />}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n safeAreaInsets={toLayoutSafeAreaInsets(safeAreaInsets)}\n style={this.props.style}\n >\n {this.props.widgetControl?.getReactNode?.() ?? null}\n {this.props.children}\n </Footer>\n )}\n </SafeAreaContext.Consumer>\n );\n }\n\n public override componentDidMount() {\n MessageManager.onMessageAddedEvent.addListener(\n this._handleMessageAddedEvent\n );\n MessageManager.onActivityMessageUpdatedEvent.addListener(\n this._handleActivityMessageUpdatedEvent\n );\n MessageManager.onActivityMessageCancelledEvent.addListener(\n this._handleActivityMessageCancelledEvent\n );\n MessageManager.onMessagesUpdatedEvent.addListener(\n this._handleMessagesUpdatedEvent\n );\n\n MessageManager.updateMessages();\n }\n\n public override componentWillUnmount() {\n MessageManager.onMessageAddedEvent.removeListener(\n this._handleMessageAddedEvent\n );\n MessageManager.onActivityMessageUpdatedEvent.removeListener(\n this._handleActivityMessageUpdatedEvent\n );\n MessageManager.onActivityMessageCancelledEvent.removeListener(\n this._handleActivityMessageCancelledEvent\n );\n MessageManager.onMessagesUpdatedEvent.removeListener(\n this._handleMessagesUpdatedEvent\n );\n }\n\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\n this._updateMessages();\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter(\n (msg) => !this.messages.find((m) => m.id === msg.id)\n );\n messagesToAdd.forEach((msg) => {\n const displayedMessage = MessageManager.displayMessage(\n msg.messageDetails,\n { onRemove: () => this._closeMessage(msg.id) }\n );\n if (!!displayedMessage)\n this.messages.push({ close: displayedMessage.close, id: msg.id });\n });\n };\n\n private _updateMessages = () => {\n const updatedMessages = [...this.messages];\n this.messages.forEach((m) => {\n if (\n !MessageManager.activeMessageManager.messages.some(\n (msg) => m.id === msg.id\n )\n ) {\n m.close();\n const index = updatedMessages.findIndex((msg) => msg.id === m.id);\n updatedMessages.splice(index, 1);\n }\n });\n this.messages = updatedMessages;\n };\n\n /** Respond to clearing the message list */\n private _handleMessagesUpdatedEvent = () => {\n this._updateMessages();\n };\n\n /**\n * Sets state of the status bar to updated values reflecting activity progress.\n * @param args New values to set for ActivityMessage\n */\n private _handleActivityMessageUpdatedEvent = (\n args: ActivityMessageEventArgs\n ) => {\n this.setState({\n activityMessageInfo: args,\n });\n };\n\n /**\n * Hides ActivityMessage after cancellation\n */\n private _handleActivityMessageCancelledEvent = () => {\n this.setState({\n activityMessageInfo: undefined,\n });\n };\n\n private _closeMessage = (id: string) => {\n MessageManager.activeMessageManager.remove(id);\n MessageManager.updateMessages();\n };\n}\n\n/** StatusBar With Space Between Items React functional component\n * @public\n */\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-space-between\"}\n />\n );\n}\n\n/** StatusBar Left Section React functional component\n * @public\n */\nexport function StatusBarLeftSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-left\"}\n />\n );\n}\n\n/** StatusBar Center Section React functional component\n * @public\n */\nexport function StatusBarCenterSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-center\"}\n />\n );\n}\n\n/** StatusBar Right Section React functional component\n * @public\n */\nexport function StatusBarRightSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-right\"}\n />\n );\n}\n\n/** Components used in a [[StatusBar]].\n * @public\n */\nexport namespace StatusBar {\n /** Field of a [[StatusBar]].\n * @beta\n */\n export const Field = StatusBarField;\n\n /** Popup of a [[StatusBar]].\n * @beta\n */\n export const Popup = StatusBarPopup;\n}\n"]}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAYzC;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAyB;IAC5C,MAAM;QACpB,OAAO,CACL,oBAAC,eAAe,CAAC,QAAQ,QACtB,CAAC,cAAc,EAAE,EAAE,CAAC,CACnB,oBAAC,MAAM,IACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,sBAAsB,EAC3D,cAAc,EAAE,sBAAsB,CAAC,cAAc,CAAC,EACtD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YAEtB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE,IAAI,IAAI;YAClD,IAAI,CAAC,KAAK,CAAC,QAAQ,CACb,CACV,CACwB,CAC5B,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CACL,oBAAC,GAAG,OACE,QAAQ,EACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,GACrE,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAqB;IACxD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CACL,oBAAC,GAAG,OACE,QAAQ,EACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,GAC5D,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAqB;IAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CACL,oBAAC,GAAG,OACE,QAAQ,EACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,GAC9D,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CACL,oBAAC,GAAG,OACE,QAAQ,EACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,GAC7D,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,WAAiB,SAAS;IACxB;;OAEG;IACU,eAAK,GAAG,cAAc,CAAC;IAEpC;;OAEG;IACU,eAAK,GAAG,cAAc,CAAC;AACtC,CAAC,EAVgB,SAAS,KAAT,SAAS,QAUzB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport \"./StatusBar.scss\";\nimport * as React from \"react\";\nimport type { CommonDivProps, CommonProps } from \"@itwin/core-react\";\nimport { Div } from \"@itwin/core-react\";\nimport { Footer } from \"@itwin/appui-layout-react\";\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\nimport type { StatusBarWidgetControl } from \"./StatusBarWidgetControl\";\nimport { toLayoutSafeAreaInsets } from \"../safearea/SafeAreaHelpers\";\nimport { UiFramework } from \"../UiFramework\";\nimport { StatusBarField } from \"./Field\";\nimport { StatusBarPopup } from \"./Popup\";\n\n// cspell:ignore safearea\n\n/** Properties for the [[StatusBar]] React component\n * @public\n */\nexport interface StatusBarProps extends CommonProps {\n children?: React.ReactNode;\n widgetControl?: StatusBarWidgetControl;\n}\n\n/** Status Bar React component.\n * @public\n */\nexport class StatusBar extends React.Component<StatusBarProps> {\n public override render(): React.ReactNode {\n return (\n <SafeAreaContext.Consumer>\n {(safeAreaInsets) => (\n <Footer\n className={this.props.className}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n safeAreaInsets={toLayoutSafeAreaInsets(safeAreaInsets)}\n style={this.props.style}\n >\n {this.props.widgetControl?.getReactNode?.() ?? null}\n {this.props.children}\n </Footer>\n )}\n </SafeAreaContext.Consumer>\n );\n }\n}\n\n/** StatusBar With Space Between Items React functional component\n * @public\n */\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-space-between\"}\n />\n );\n}\n\n/** StatusBar Left Section React functional component\n * @public\n */\nexport function StatusBarLeftSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-left\"}\n />\n );\n}\n\n/** StatusBar Center Section React functional component\n * @public\n */\nexport function StatusBarCenterSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-center\"}\n />\n );\n}\n\n/** StatusBar Right Section React functional component\n * @public\n */\nexport function StatusBarRightSection(props: CommonDivProps) {\n const { className, ...divProps } = props;\n return (\n <Div\n {...divProps}\n mainClassName={className ? className : \"uifw-statusbar-right\"}\n />\n );\n}\n\n/** Components used in a [[StatusBar]].\n * @public\n */\nexport namespace StatusBar {\n /** Field of a [[StatusBar]].\n * @beta\n */\n export const Field = StatusBarField;\n\n /** Popup of a [[StatusBar]].\n * @beta\n */\n export const Popup = StatusBarPopup;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;GAEG;AACH,aAAK,sBAAsB;IACzB,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CACrD,WAAW,EACX,kBAAkB,CACnB;IACC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,6BAA6B,CAAC,CAAa;IACnD,OAAO,CAAC,gCAAgC,CAAC,CAAa;gBAE1C,CAAC,EAAE,WAAW;IAW1B,gBAAgB;IACA,iBAAiB;IAcjC,gBAAgB;IACA,oBAAoB;IAapC,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,6BAA6B,CAEnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAyDzC,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,mBAAmB,CASzB;IAEF,OAAO,CAAC,4BAA4B,CAElC;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"MessageCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;GAEG;AACH,aAAK,sBAAsB;IACzB,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CACrD,WAAW,EACX,kBAAkB,CACnB;IACC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,6BAA6B,CAAC,CAAa;IACnD,OAAO,CAAC,gCAAgC,CAAC,CAAa;gBAE1C,CAAC,EAAE,WAAW;IAW1B,gBAAgB;IACA,iBAAiB;IAcjC,gBAAgB;IACA,oBAAoB;IAapC,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,6BAA6B,CAEnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAyDzC,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,mBAAmB,CASzB;IAEF,OAAO,CAAC,4BAA4B,CAElC;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;CAGlB"}
@@ -9,7 +9,7 @@ import * as React from "react";
9
9
  import { OutputMessagePriority } from "@itwin/core-frontend";
10
10
  import { FooterPopup, MessageCenter, MessageCenterDialog, MessageCenterMessage, MessageCenterTab, } from "@itwin/appui-layout-react";
11
11
  import { MessageManager } from "../messages/MessageManager";
12
- import { MessageSpan } from "../messages/MessageSpan";
12
+ import { MessageDiv, MessageSpan } from "../messages/MessageSpan";
13
13
  import { UiFramework } from "../UiFramework";
14
14
  import { Icon } from "@itwin/core-react";
15
15
  /** Enum for the [[MessageCenterField]] active tab
@@ -104,9 +104,7 @@ export class MessageCenterField extends React.Component {
104
104
  const message = details.briefMessage;
105
105
  tabRows.push(React.createElement(MessageCenterMessage, { key: index.toString(), icon: React.createElement(Icon, { iconSpec: iconSpec, className: iconClassName }) },
106
106
  React.createElement(MessageSpan, { message: message }),
107
- details.detailedMessage && (React.createElement(React.Fragment, null,
108
- React.createElement("br", null),
109
- React.createElement(MessageSpan, { className: "iui-text-small", message: details.detailedMessage })))));
107
+ details.detailedMessage && (React.createElement(MessageDiv, { className: "iui-text-small", message: details.detailedMessage }))));
110
108
  }
111
109
  });
112
110
  return tabRows;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageCenter.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC;;GAEG;AACH,IAAK,sBAGJ;AAHD,WAAK,sBAAsB;IACzB,iFAAW,CAAA;IACX,2EAAQ,CAAA;AACV,CAAC,EAHI,sBAAsB,KAAtB,sBAAsB,QAG1B;AAYD;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK,CAAC,SAG7C;IAMC,YAAY,CAAc;QACxB,KAAK,CAAC,CAAC,CAAC,CAAC;QANH,eAAU,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QAC/C,WAAM,GAAG,WAAW,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QA4CzD,gCAA2B,GAAG,GAAG,EAAE;YACzC,uBAAuB;YACvB,IAAI,IAAI,CAAC,6BAA6B;gBACpC,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC;QAEM,kCAA6B,GAAG,GAAG,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC;QA2DM,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC9C,IACE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO;gBACxB,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBAE1C,OAAO;YAET,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC;QAEM,iCAA4B,GAAG,GAAG,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC;QAEM,qBAAgB,GAAG,CAAC,GAA2B,EAAE,EAAE;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC;QA7HA,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,sBAAsB,CAAC,WAAW;YAC7C,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM;YAC5C,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,gBAAgB;IACA,iBAAiB;QAC/B,IAAI,CAAC,6BAA6B;YAChC,cAAc,CAAC,sBAAsB,CAAC,WAAW,CAC/C,IAAI,CAAC,2BAA2B,EAChC,IAAI,CACL,CAAC;QACJ,IAAI,CAAC,gCAAgC;YACnC,cAAc,CAAC,wBAAwB,CAAC,WAAW,CACjD,IAAI,CAAC,6BAA6B,EAClC,IAAI,CACL,CAAC;QACJ,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB;IACA,oBAAoB;QAClC,uBAAuB;QACvB,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACrC,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;SAChD;QACD,uBAAuB;QACvB,IAAI,IAAI,CAAC,gCAAgC,EAAE;YACzC,IAAI,CAAC,gCAAgC,EAAE,CAAC;YACxC,IAAI,CAAC,gCAAgC,GAAG,SAAS,CAAC;SACnD;IACH,CAAC;IAYe,MAAM;QACpB,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,CACrB;YACE,6BAAK,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;gBACnE,oBAAC,aAAa,IACZ,YAAY,EAAE,IAAI,CAAC,UAAU,EAC7B,KAAK,EAAE,IAAI,CAAC,MAAM,EAClB,OAAO,EAAE,IAAI,CAAC,4BAA4B,IAEzC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CACrB,CACZ;YACN,oBAAC,WAAW,IACV,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,cAAc,EAAE,IAAI,CAAC,mBAAmB,EACxC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;gBAE/B,oBAAC,mBAAmB,IAClB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,EACrD,IAAI,EACF;wBACE,oBAAC,gBAAgB,IACf,QAAQ,EACN,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,WAAW,EAE7D,OAAO,EAAE,GAAG,EAAE,CACZ,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAG1D,WAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAC1B;wBACnB,oBAAC,gBAAgB,IACf,QAAQ,EACN,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,QAAQ,EAE1D,OAAO,EAAE,GAAG,EAAE,CACZ,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAGvD,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAC7B,CAClB,EAEL,KAAK,EAAE,IAAI,CAAC,MAAM,IAEjB,IAAI,CAAC,WAAW,EAAE,CACC,CACV,CACb,CACJ,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAyBO,WAAW;QACjB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAuB,IAAI,KAAK,EAAoB,CAAC;QAElE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAiC,EAAE,KAAa,EAAE,EAAE;YACpE,0BAA0B;YAC1B,IACE,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,WAAW;gBAC3D,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EACtC;gBACA,MAAM,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;gBAErC,OAAO,CAAC,IAAI,CACV,oBAAC,oBAAoB,IACnB,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,EACrB,IAAI,EAAE,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAI;oBAE5D,oBAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI;oBAChC,OAAO,CAAC,eAAe,IAAI,CAC1B;wBACE,+BAAM;wBACN,oBAAC,WAAW,IACV,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,OAAO,CAAC,eAAe,GAChC,CACD,CACJ,CACoB,CACxB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,QAA+B;QACrD,oEAAoE;QAEpE,IACE,QAAQ,KAAK,qBAAqB,CAAC,KAAK;YACxC,QAAQ,KAAK,qBAAqB,CAAC,KAAK;YAExC,OAAO,IAAI,CAAC;QAEd,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,SAAS,CAAC,MAAe;QAC/B,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport * as React from \"react\";\nimport { OutputMessagePriority } from \"@itwin/core-frontend\";\nimport {\n FooterPopup,\n MessageCenter,\n MessageCenterDialog,\n MessageCenterMessage,\n MessageCenterTab,\n} from \"@itwin/appui-layout-react\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { MessageSpan } from \"../messages/MessageSpan\";\nimport type { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Icon } from \"@itwin/core-react\";\n\n/** Enum for the [[MessageCenterField]] active tab\n * @internal\n */\nenum MessageCenterActiveTab {\n AllMessages,\n Problems,\n}\n\n/** State for the [[MessageCenterField]] React component\n * @internal\n */\ninterface MessageCenterState {\n activeTab: MessageCenterActiveTab;\n target: HTMLDivElement | null;\n messageCount: number;\n isOpen: boolean;\n}\n\n/** Message Center Field React component.\n * @public\n */\nexport class MessageCenterField extends React.Component<\n CommonProps,\n MessageCenterState\n> {\n private _indicator = React.createRef<HTMLDivElement>();\n private _title = UiFramework.translate(\"messageCenter.messages\");\n private _unloadMessagesUpdatedHandler?: () => void;\n private _removeOpenMessagesCenterHandler?: () => void;\n\n constructor(p: CommonProps) {\n super(p);\n\n this.state = {\n activeTab: MessageCenterActiveTab.AllMessages,\n target: null,\n messageCount: MessageManager.messages.length,\n isOpen: false,\n };\n }\n\n /** @internal */\n public override componentDidMount() {\n this._unloadMessagesUpdatedHandler =\n MessageManager.onMessagesUpdatedEvent.addListener(\n this._handleMessagesUpdatedEvent,\n this\n );\n this._removeOpenMessagesCenterHandler =\n MessageManager.onOpenMessageCenterEvent.addListener(\n this._handleOpenMessageCenterEvent,\n this\n );\n MessageManager.registerAnimateOutToElement(this._indicator.current);\n }\n\n /** @internal */\n public override componentWillUnmount() {\n // istanbul ignore else\n if (this._unloadMessagesUpdatedHandler) {\n this._unloadMessagesUpdatedHandler();\n this._unloadMessagesUpdatedHandler = undefined;\n }\n // istanbul ignore else\n if (this._removeOpenMessagesCenterHandler) {\n this._removeOpenMessagesCenterHandler();\n this._removeOpenMessagesCenterHandler = undefined;\n }\n }\n\n private _handleMessagesUpdatedEvent = () => {\n // istanbul ignore else\n if (this._unloadMessagesUpdatedHandler)\n this.setState({ messageCount: MessageManager.messages.length });\n };\n\n private _handleOpenMessageCenterEvent = () => {\n this.setIsOpen(true);\n };\n\n public override render(): React.ReactNode {\n const tooltip = `${this.state.messageCount} ${this._title}`;\n const divStyle = { ...this.props.style, height: \"100%\" };\n const footerMessages = (\n <>\n <div className={this.props.className} style={divStyle} title={tooltip}>\n <MessageCenter\n indicatorRef={this._indicator}\n label={this._title}\n onClick={this._handleMessageIndicatorClick}\n >\n {this.state.messageCount.toString()}\n </MessageCenter>\n </div>\n <FooterPopup\n isOpen={this.state.isOpen}\n onClose={this._handleClose}\n onOutsideClick={this._handleOutsideClick}\n target={this._indicator.current}\n >\n <MessageCenterDialog\n prompt={UiFramework.translate(\"messageCenter.prompt\")}\n tabs={\n <>\n <MessageCenterTab\n isActive={\n this.state.activeTab === MessageCenterActiveTab.AllMessages\n }\n onClick={() =>\n this._changeActiveTab(MessageCenterActiveTab.AllMessages)\n }\n >\n {UiFramework.translate(\"messageCenter.all\")}\n </MessageCenterTab>\n <MessageCenterTab\n isActive={\n this.state.activeTab === MessageCenterActiveTab.Problems\n }\n onClick={() =>\n this._changeActiveTab(MessageCenterActiveTab.Problems)\n }\n >\n {UiFramework.translate(\"messageCenter.errors\")}\n </MessageCenterTab>\n </>\n }\n title={this._title}\n >\n {this.getMessages()}\n </MessageCenterDialog>\n </FooterPopup>\n </>\n );\n\n return footerMessages;\n }\n\n private _handleClose = () => {\n this.setIsOpen(false);\n };\n\n private _handleOutsideClick = (e: MouseEvent) => {\n if (\n !this._indicator.current ||\n !(e.target instanceof Node) ||\n this._indicator.current.contains(e.target)\n )\n return;\n\n this._handleClose();\n };\n\n private _handleMessageIndicatorClick = () => {\n this.setIsOpen(!this.state.isOpen);\n };\n\n private _changeActiveTab = (tab: MessageCenterActiveTab) => {\n this.setState({ activeTab: tab });\n };\n\n private getMessages(): React.ReactChild[] {\n const messages = MessageManager.messages.slice(0).reverse();\n const tabRows: React.ReactChild[] = new Array<React.ReactChild>();\n\n messages.forEach((details: NotifyMessageDetailsType, index: number) => {\n /* istanbul ignore else */\n if (\n this.state.activeTab === MessageCenterActiveTab.AllMessages ||\n this.isProblemStatus(details.priority)\n ) {\n const iconClassName = MessageManager.getIconClassName(details);\n const iconSpec = MessageManager.getIconSpecFromDetails(details);\n const message = details.briefMessage;\n\n tabRows.push(\n <MessageCenterMessage\n key={index.toString()}\n icon={<Icon iconSpec={iconSpec} className={iconClassName} />}\n >\n <MessageSpan message={message} />\n {details.detailedMessage && (\n <>\n <br />\n <MessageSpan\n className=\"iui-text-small\"\n message={details.detailedMessage}\n />\n </>\n )}\n </MessageCenterMessage>\n );\n }\n });\n\n return tabRows;\n }\n\n private isProblemStatus(priority: OutputMessagePriority): boolean {\n // See priority values in DgnPlatform defined in NotificationManager\n\n if (\n priority === OutputMessagePriority.Error ||\n priority === OutputMessagePriority.Fatal\n )\n return true;\n\n return false;\n }\n\n private setIsOpen(isOpen: boolean) {\n this.setState({ isOpen });\n }\n}\n"]}
1
+ {"version":3,"file":"MessageCenter.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport * as React from \"react\";\nimport { OutputMessagePriority } from \"@itwin/core-frontend\";\nimport {\n FooterPopup,\n MessageCenter,\n MessageCenterDialog,\n MessageCenterMessage,\n MessageCenterTab,\n} from \"@itwin/appui-layout-react\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { MessageDiv, MessageSpan } from \"../messages/MessageSpan\";\nimport type { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Icon } from \"@itwin/core-react\";\n\n/** Enum for the [[MessageCenterField]] active tab\n * @internal\n */\nenum MessageCenterActiveTab {\n AllMessages,\n Problems,\n}\n\n/** State for the [[MessageCenterField]] React component\n * @internal\n */\ninterface MessageCenterState {\n activeTab: MessageCenterActiveTab;\n target: HTMLDivElement | null;\n messageCount: number;\n isOpen: boolean;\n}\n\n/** Message Center Field React component.\n * @public\n */\nexport class MessageCenterField extends React.Component<\n CommonProps,\n MessageCenterState\n> {\n private _indicator = React.createRef<HTMLDivElement>();\n private _title = UiFramework.translate(\"messageCenter.messages\");\n private _unloadMessagesUpdatedHandler?: () => void;\n private _removeOpenMessagesCenterHandler?: () => void;\n\n constructor(p: CommonProps) {\n super(p);\n\n this.state = {\n activeTab: MessageCenterActiveTab.AllMessages,\n target: null,\n messageCount: MessageManager.messages.length,\n isOpen: false,\n };\n }\n\n /** @internal */\n public override componentDidMount() {\n this._unloadMessagesUpdatedHandler =\n MessageManager.onMessagesUpdatedEvent.addListener(\n this._handleMessagesUpdatedEvent,\n this\n );\n this._removeOpenMessagesCenterHandler =\n MessageManager.onOpenMessageCenterEvent.addListener(\n this._handleOpenMessageCenterEvent,\n this\n );\n MessageManager.registerAnimateOutToElement(this._indicator.current);\n }\n\n /** @internal */\n public override componentWillUnmount() {\n // istanbul ignore else\n if (this._unloadMessagesUpdatedHandler) {\n this._unloadMessagesUpdatedHandler();\n this._unloadMessagesUpdatedHandler = undefined;\n }\n // istanbul ignore else\n if (this._removeOpenMessagesCenterHandler) {\n this._removeOpenMessagesCenterHandler();\n this._removeOpenMessagesCenterHandler = undefined;\n }\n }\n\n private _handleMessagesUpdatedEvent = () => {\n // istanbul ignore else\n if (this._unloadMessagesUpdatedHandler)\n this.setState({ messageCount: MessageManager.messages.length });\n };\n\n private _handleOpenMessageCenterEvent = () => {\n this.setIsOpen(true);\n };\n\n public override render(): React.ReactNode {\n const tooltip = `${this.state.messageCount} ${this._title}`;\n const divStyle = { ...this.props.style, height: \"100%\" };\n const footerMessages = (\n <>\n <div className={this.props.className} style={divStyle} title={tooltip}>\n <MessageCenter\n indicatorRef={this._indicator}\n label={this._title}\n onClick={this._handleMessageIndicatorClick}\n >\n {this.state.messageCount.toString()}\n </MessageCenter>\n </div>\n <FooterPopup\n isOpen={this.state.isOpen}\n onClose={this._handleClose}\n onOutsideClick={this._handleOutsideClick}\n target={this._indicator.current}\n >\n <MessageCenterDialog\n prompt={UiFramework.translate(\"messageCenter.prompt\")}\n tabs={\n <>\n <MessageCenterTab\n isActive={\n this.state.activeTab === MessageCenterActiveTab.AllMessages\n }\n onClick={() =>\n this._changeActiveTab(MessageCenterActiveTab.AllMessages)\n }\n >\n {UiFramework.translate(\"messageCenter.all\")}\n </MessageCenterTab>\n <MessageCenterTab\n isActive={\n this.state.activeTab === MessageCenterActiveTab.Problems\n }\n onClick={() =>\n this._changeActiveTab(MessageCenterActiveTab.Problems)\n }\n >\n {UiFramework.translate(\"messageCenter.errors\")}\n </MessageCenterTab>\n </>\n }\n title={this._title}\n >\n {this.getMessages()}\n </MessageCenterDialog>\n </FooterPopup>\n </>\n );\n\n return footerMessages;\n }\n\n private _handleClose = () => {\n this.setIsOpen(false);\n };\n\n private _handleOutsideClick = (e: MouseEvent) => {\n if (\n !this._indicator.current ||\n !(e.target instanceof Node) ||\n this._indicator.current.contains(e.target)\n )\n return;\n\n this._handleClose();\n };\n\n private _handleMessageIndicatorClick = () => {\n this.setIsOpen(!this.state.isOpen);\n };\n\n private _changeActiveTab = (tab: MessageCenterActiveTab) => {\n this.setState({ activeTab: tab });\n };\n\n private getMessages(): React.ReactChild[] {\n const messages = MessageManager.messages.slice(0).reverse();\n const tabRows: React.ReactChild[] = new Array<React.ReactChild>();\n\n messages.forEach((details: NotifyMessageDetailsType, index: number) => {\n /* istanbul ignore else */\n if (\n this.state.activeTab === MessageCenterActiveTab.AllMessages ||\n this.isProblemStatus(details.priority)\n ) {\n const iconClassName = MessageManager.getIconClassName(details);\n const iconSpec = MessageManager.getIconSpecFromDetails(details);\n const message = details.briefMessage;\n\n tabRows.push(\n <MessageCenterMessage\n key={index.toString()}\n icon={<Icon iconSpec={iconSpec} className={iconClassName} />}\n >\n <MessageSpan message={message} />\n {details.detailedMessage && (\n <MessageDiv\n className=\"iui-text-small\"\n message={details.detailedMessage}\n />\n )}\n </MessageCenterMessage>\n );\n }\n });\n\n return tabRows;\n }\n\n private isProblemStatus(priority: OutputMessagePriority): boolean {\n // See priority values in DgnPlatform defined in NotificationManager\n\n if (\n priority === OutputMessagePriority.Error ||\n priority === OutputMessagePriority.Fatal\n )\n return true;\n\n return false;\n }\n\n private setIsOpen(isOpen: boolean) {\n this.setState({ isOpen });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SectionsField.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SectionsField.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,sBAAsB,CAAC;AAW9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQrD;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,eA2GlE"}
1
+ {"version":3,"file":"SectionsField.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SectionsField.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,sBAAsB,CAAC;AAW9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,eA0GlE"}