@itwin/appui-react 4.6.4 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/CHANGELOG.md +19 -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/feedback/ValidationTextbox.js +3 -3
  44. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  45. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  46. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  47. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  48. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  49. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +26 -16
  51. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  52. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +1 -1
  54. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +1 -2
  57. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  58. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  59. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  60. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  61. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +42 -2
  62. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  63. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +9 -3
  64. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  65. package/lib/cjs/appui-react/messages/AppNotificationManager.js +9 -3
  66. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  67. package/lib/cjs/appui-react/messages/MessageManager.d.ts +10 -0
  68. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  69. package/lib/cjs/appui-react/messages/MessageManager.js +51 -6
  70. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  71. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  73. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  74. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  75. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  76. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +8 -8
  77. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  78. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  79. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  80. package/lib/cjs/appui-react/pickers/ViewSelector.js +2 -3
  81. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  82. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  83. package/lib/cjs/appui-react/popup/CardPopup.js +2 -2
  84. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  85. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  86. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +7 -6
  87. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  88. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +2 -2
  90. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  91. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  92. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +2 -2
  93. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  94. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  95. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  96. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  97. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +47 -0
  98. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  99. package/lib/cjs/appui-react/preview/PreviewFeatures.js +95 -0
  100. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -0
  101. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  102. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  103. package/lib/cjs/appui-react/safearea/SafeAreaContext.js +9 -2
  104. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  105. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +10 -10
  107. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  108. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  109. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  110. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +9 -6
  111. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  112. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -28
  113. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  114. package/lib/cjs/appui-react/statusbar/StatusBar.js +1 -69
  115. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  116. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  117. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -3
  118. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  119. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/statusfields/SectionsField.js +1 -3
  121. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  122. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +4 -7
  123. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/statusfields/SelectionScope.js +2 -7
  125. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  126. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  127. package/lib/cjs/appui-react/statusfields/SnapMode.js +8 -10
  128. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  129. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  130. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  131. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  132. package/lib/cjs/appui-react/theme/ThemeManager.d.ts +38 -7
  133. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  134. package/lib/cjs/appui-react/theme/ThemeManager.js +52 -11
  135. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  136. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/toolbar/Toolbar.js +12 -1
  138. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  139. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  140. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  141. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  142. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  143. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +7 -7
  144. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  145. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  146. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  147. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +12 -4
  148. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  149. package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  150. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +1 -2
  151. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  152. package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  153. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +1 -2
  154. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  155. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +2 -3
  157. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  158. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  159. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +133 -105
  161. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  162. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  163. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  164. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +80 -65
  165. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  166. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  167. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  169. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  170. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  171. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  172. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  173. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -4
  174. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  175. package/lib/cjs/appui-react/uistate/AppUiSettings.js +2 -2
  176. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  177. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  178. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  179. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +10 -1
  180. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  181. package/lib/cjs/appui-react/utils/matchesWords.d.ts +22 -0
  182. package/lib/cjs/appui-react/utils/matchesWords.d.ts.map +1 -0
  183. package/lib/cjs/appui-react/utils/matchesWords.js +103 -0
  184. package/lib/cjs/appui-react/utils/matchesWords.js.map +1 -0
  185. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  186. package/lib/cjs/appui-react/widget-panels/Frontstage.js +25 -13
  187. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  188. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -0
  189. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  190. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  191. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +11 -5
  192. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  193. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  194. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +2 -7
  195. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  196. package/lib/cjs/appui-react/widgets/Widget.d.ts +23 -1
  197. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  198. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  199. package/lib/cjs/appui-react.d.ts +1 -0
  200. package/lib/cjs/appui-react.d.ts.map +1 -1
  201. package/lib/cjs/appui-react.js +3 -0
  202. package/lib/cjs/appui-react.js.map +1 -1
  203. package/lib/esm/appui-react/UiFramework.d.ts +29 -14
  204. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  205. package/lib/esm/appui-react/UiFramework.js +29 -16
  206. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  207. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  208. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  209. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  210. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  211. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +3 -3
  212. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  213. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  214. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  215. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  216. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  217. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  218. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  219. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  220. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  221. package/lib/esm/appui-react/accudraw/Calculator.js +11 -12
  222. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  223. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  224. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  225. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  226. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  227. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  228. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  229. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  230. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  231. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  232. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  233. package/lib/esm/appui-react/childwindow/PopoutWidget.js +6 -3
  234. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  235. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  236. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  237. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  238. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  239. package/lib/esm/appui-react/configurableui/state.js +5 -2
  240. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  241. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  242. package/lib/esm/appui-react/content/IModelViewport.js +2 -0
  243. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  244. package/lib/esm/appui-react/feedback/ValidationTextbox.js +3 -3
  245. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  246. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  247. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  248. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  249. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  250. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  251. package/lib/esm/appui-react/frontstage/FrontstageDef.js +27 -17
  252. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  253. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  254. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  255. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  256. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  257. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +1 -2
  258. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  259. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  260. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  261. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  262. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +41 -1
  263. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  264. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +9 -3
  265. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  266. package/lib/esm/appui-react/messages/AppNotificationManager.js +9 -3
  267. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  268. package/lib/esm/appui-react/messages/MessageManager.d.ts +10 -0
  269. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  270. package/lib/esm/appui-react/messages/MessageManager.js +52 -7
  271. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  272. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  273. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  274. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  275. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  276. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  277. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +9 -9
  278. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  279. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  280. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  281. package/lib/esm/appui-react/pickers/ViewSelector.js +2 -3
  282. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  283. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  284. package/lib/esm/appui-react/popup/CardPopup.js +2 -2
  285. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  286. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  287. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +6 -5
  288. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  289. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  290. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +2 -2
  291. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  292. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  293. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +2 -2
  294. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  295. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  296. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  297. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  298. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +47 -0
  299. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  300. package/lib/esm/appui-react/preview/PreviewFeatures.js +90 -0
  301. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -0
  302. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  303. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  304. package/lib/esm/appui-react/safearea/SafeAreaContext.js +9 -2
  305. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  306. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  307. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +11 -11
  308. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  309. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  310. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  311. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +9 -6
  312. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  313. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -28
  314. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  315. package/lib/esm/appui-react/statusbar/StatusBar.js +1 -69
  316. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  317. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  318. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -4
  319. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  320. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  321. package/lib/esm/appui-react/statusfields/SectionsField.js +1 -3
  322. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  323. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +4 -7
  324. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  325. package/lib/esm/appui-react/statusfields/SelectionScope.js +2 -7
  326. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  327. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  328. package/lib/esm/appui-react/statusfields/SnapMode.js +8 -10
  329. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  330. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  331. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  332. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  333. package/lib/esm/appui-react/theme/ThemeManager.d.ts +38 -7
  334. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  335. package/lib/esm/appui-react/theme/ThemeManager.js +51 -10
  336. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  337. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  338. package/lib/esm/appui-react/toolbar/Toolbar.js +11 -0
  339. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  340. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  341. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  342. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  343. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  344. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +8 -8
  345. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  346. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  347. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  348. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +12 -4
  349. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  350. package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  351. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +1 -2
  352. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  353. package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  354. package/lib/esm/appui-react/tools/OpenSettingsTool.js +1 -2
  355. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  356. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  357. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +2 -3
  358. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  359. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  360. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  361. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +131 -104
  362. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  363. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  364. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  365. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +81 -66
  366. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  367. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  368. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  369. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  370. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  371. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  372. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  373. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  374. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -4
  375. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  376. package/lib/esm/appui-react/uistate/AppUiSettings.js +2 -2
  377. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  378. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  379. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  380. package/lib/esm/appui-react/uistate/useUiStateStorage.js +10 -1
  381. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  382. package/lib/esm/appui-react/utils/matchesWords.d.ts +22 -0
  383. package/lib/esm/appui-react/utils/matchesWords.d.ts.map +1 -0
  384. package/lib/esm/appui-react/utils/matchesWords.js +99 -0
  385. package/lib/esm/appui-react/utils/matchesWords.js.map +1 -0
  386. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  387. package/lib/esm/appui-react/widget-panels/Frontstage.js +27 -15
  388. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  389. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -0
  390. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  391. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  392. package/lib/esm/appui-react/widget-panels/ToolSettings.js +9 -4
  393. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  394. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  395. package/lib/esm/appui-react/widgets/BackstageAppButton.js +2 -7
  396. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  397. package/lib/esm/appui-react/widgets/Widget.d.ts +23 -1
  398. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  399. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  400. package/lib/esm/appui-react.d.ts +1 -0
  401. package/lib/esm/appui-react.d.ts.map +1 -1
  402. package/lib/esm/appui-react.js +1 -0
  403. package/lib/esm/appui-react.js.map +1 -1
  404. package/lib/public/locales/en/UiFramework.json +6 -4
  405. package/package.json +13 -11
@@ -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"}
@@ -12,10 +12,8 @@ require("./StatusBar.scss");
12
12
  const React = require("react");
13
13
  const core_react_1 = require("@itwin/core-react");
14
14
  const appui_layout_react_1 = require("@itwin/appui-layout-react");
15
- const MessageManager_1 = require("../messages/MessageManager");
16
15
  const SafeAreaContext_1 = require("../safearea/SafeAreaContext");
17
16
  const SafeAreaHelpers_1 = require("../safearea/SafeAreaHelpers");
18
- const ActivityMessage_1 = require("../messages/ActivityMessage");
19
17
  const UiFramework_1 = require("../UiFramework");
20
18
  const Field_1 = require("./Field");
21
19
  const Popup_1 = require("./Popup");
@@ -23,77 +21,11 @@ const Popup_1 = require("./Popup");
23
21
  * @public
24
22
  */
25
23
  class StatusBar extends React.Component {
26
- /** @internal */
27
- constructor(props) {
28
- super(props);
29
- this.messages = [];
30
- this._handleMessageAddedEvent = (_args) => {
31
- this._updateMessages();
32
- const messagesToAdd = MessageManager_1.MessageManager.activeMessageManager.messages.filter((msg) => !this.messages.find((m) => m.id === msg.id));
33
- messagesToAdd.forEach((msg) => {
34
- const displayedMessage = MessageManager_1.MessageManager.displayMessage(msg.messageDetails, { onRemove: () => this._closeMessage(msg.id) });
35
- if (!!displayedMessage)
36
- this.messages.push({ close: displayedMessage.close, id: msg.id });
37
- });
38
- };
39
- this._updateMessages = () => {
40
- const updatedMessages = [...this.messages];
41
- this.messages.forEach((m) => {
42
- if (!MessageManager_1.MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {
43
- m.close();
44
- const index = updatedMessages.findIndex((msg) => msg.id === m.id);
45
- updatedMessages.splice(index, 1);
46
- }
47
- });
48
- this.messages = updatedMessages;
49
- };
50
- /** Respond to clearing the message list */
51
- this._handleMessagesUpdatedEvent = () => {
52
- this._updateMessages();
53
- };
54
- /**
55
- * Sets state of the status bar to updated values reflecting activity progress.
56
- * @param args New values to set for ActivityMessage
57
- */
58
- this._handleActivityMessageUpdatedEvent = (args) => {
59
- this.setState({
60
- activityMessageInfo: args,
61
- });
62
- };
63
- /**
64
- * Hides ActivityMessage after cancellation
65
- */
66
- this._handleActivityMessageCancelledEvent = () => {
67
- this.setState({
68
- activityMessageInfo: undefined,
69
- });
70
- };
71
- this._closeMessage = (id) => {
72
- MessageManager_1.MessageManager.activeMessageManager.remove(id);
73
- MessageManager_1.MessageManager.updateMessages();
74
- };
75
- this.state = {
76
- activityMessageInfo: undefined,
77
- };
78
- }
79
24
  render() {
80
- return (React.createElement(SafeAreaContext_1.SafeAreaContext.Consumer, null, (safeAreaInsets) => (React.createElement(appui_layout_react_1.Footer, { className: this.props.className, messages: React.createElement(ActivityMessage_1.ActivityMessageRenderer, null), onMouseEnter: UiFramework_1.UiFramework.visibility.handleWidgetMouseEnter, safeAreaInsets: (0, SafeAreaHelpers_1.toLayoutSafeAreaInsets)(safeAreaInsets), style: this.props.style },
25
+ return (React.createElement(SafeAreaContext_1.SafeAreaContext.Consumer, null, (safeAreaInsets) => (React.createElement(appui_layout_react_1.Footer, { className: this.props.className, onMouseEnter: UiFramework_1.UiFramework.visibility.handleWidgetMouseEnter, safeAreaInsets: (0, SafeAreaHelpers_1.toLayoutSafeAreaInsets)(safeAreaInsets), style: this.props.style },
81
26
  this.props.widgetControl?.getReactNode?.() ?? null,
82
27
  this.props.children))));
83
28
  }
84
- componentDidMount() {
85
- MessageManager_1.MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);
86
- MessageManager_1.MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);
87
- MessageManager_1.MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);
88
- MessageManager_1.MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);
89
- MessageManager_1.MessageManager.updateMessages();
90
- }
91
- componentWillUnmount() {
92
- MessageManager_1.MessageManager.onMessageAddedEvent.removeListener(this._handleMessageAddedEvent);
93
- MessageManager_1.MessageManager.onActivityMessageUpdatedEvent.removeListener(this._handleActivityMessageUpdatedEvent);
94
- MessageManager_1.MessageManager.onActivityMessageCancelledEvent.removeListener(this._handleActivityMessageCancelledEvent);
95
- MessageManager_1.MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);
96
- }
97
29
  }
98
30
  exports.StatusBar = StatusBar;
99
31
  /** StatusBar With Space Between Items React functional component
@@ -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,4BAA0B;AAC1B,+BAA+B;AAE/B,kDAAwC;AACxC,kEAAmD;AACnD,iEAA8D;AAE9D,iEAAqE;AACrE,gDAA6C;AAC7C,mCAAyC;AACzC,mCAAyC;AAYzC;;GAEG;AACH,MAAa,SAAU,SAAQ,KAAK,CAAC,SAAyB;IAC5C,MAAM;QACpB,OAAO,CACL,oBAAC,iCAAe,CAAC,QAAQ,QACtB,CAAC,cAAc,EAAE,EAAE,CAAC,CACnB,oBAAC,2BAAM,IACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,YAAY,EAAE,yBAAW,CAAC,UAAU,CAAC,sBAAsB,EAC3D,cAAc,EAAE,IAAA,wCAAsB,EAAC,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;AAlBD,8BAkBC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAqB;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CACL,oBAAC,gBAAG,OACE,QAAQ,EACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,GACrE,CACH,CAAC;AACJ,CAAC;AARD,sDAQC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,KAAqB;IACxD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CACL,oBAAC,gBAAG,OACE,QAAQ,EACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,GAC5D,CACH,CAAC;AACJ,CAAC;AARD,oDAQC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,KAAqB;IAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CACL,oBAAC,gBAAG,OACE,QAAQ,EACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,GAC9D,CACH,CAAC;AACJ,CAAC;AARD,wDAQC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAqB;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CACL,oBAAC,gBAAG,OACE,QAAQ,EACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,GAC7D,CACH,CAAC;AACJ,CAAC;AARD,sDAQC;AAED;;GAEG;AACH,WAAiB,SAAS;IACxB;;OAEG;IACU,eAAK,GAAG,sBAAc,CAAC;IAEpC;;OAEG;IACU,eAAK,GAAG,sBAAc,CAAC;AACtC,CAAC,EAVgB,SAAS,GAAT,iBAAS,KAAT,iBAAS,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"}
@@ -107,9 +107,7 @@ class MessageCenterField extends React.Component {
107
107
  const message = details.briefMessage;
108
108
  tabRows.push(React.createElement(appui_layout_react_1.MessageCenterMessage, { key: index.toString(), icon: React.createElement(core_react_1.Icon, { iconSpec: iconSpec, className: iconClassName }) },
109
109
  React.createElement(MessageSpan_1.MessageSpan, { message: message }),
110
- details.detailedMessage && (React.createElement(React.Fragment, null,
111
- React.createElement("br", null),
112
- React.createElement(MessageSpan_1.MessageSpan, { className: "iui-text-small", message: details.detailedMessage })))));
110
+ details.detailedMessage && (React.createElement(MessageSpan_1.MessageDiv, { className: "iui-text-small", message: details.detailedMessage }))));
113
111
  }
114
112
  });
115
113
  return tabRows;
@@ -1 +1 @@
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 { 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"}
@@ -17,7 +17,6 @@ const itwinui_react_1 = require("@itwin/itwinui-react");
17
17
  const useActiveViewport_1 = require("../hooks/useActiveViewport");
18
18
  const UiFramework_1 = require("../UiFramework");
19
19
  const LabelIndicator_1 = require("../statusbar/LabelIndicator");
20
- const appui_abstract_1 = require("@itwin/appui-abstract");
21
20
  const section_tool_svg_1 = require("@bentley/icons-generic/icons/section-tool.svg");
22
21
  /** Status Field for showing section extra tools for clearing and showing manipulators
23
22
  * @beta
@@ -67,10 +66,9 @@ function SectionsStatusField(props) {
67
66
  await core_frontend_1.IModelApp.tools.run(core_frontend_1.ViewClipClearTool.toolId, core_frontend_1.ViewClipDecorationProvider.create());
68
67
  setPopupOpen(false);
69
68
  };
70
- const iconSpec = appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(section_tool_svg_1.default);
71
69
  return (React.createElement("div", { className: "uifw-section-footer-popup-container" }, showIndicator && (React.createElement(React.Fragment, null,
72
70
  React.createElement("div", { ref: targetDiv, title: toolTip },
73
- React.createElement(LabelIndicator_1.StatusBarLabelIndicator, { className: classes, iconSpec: iconSpec, onClick: () => setPopupOpen(!isPopupOpen) })),
71
+ React.createElement(LabelIndicator_1.StatusBarLabelIndicator, { className: classes, iconSpec: section_tool_svg_1.default, onClick: () => setPopupOpen(!isPopupOpen) })),
74
72
  React.createElement(appui_layout_react_1.FooterPopup, { target: targetDiv.current, onClose: () => setPopupOpen(false), isOpen: isPopupOpen },
75
73
  React.createElement(appui_layout_react_1.Dialog, { titleBar: React.createElement(appui_layout_react_1.TitleBar, { title: toolTip }) },
76
74
  React.createElement("div", { className: "uifw-sections-footer-contents" },
@@ -1 +1 @@
1
- {"version":3,"file":"SectionsField.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SectionsField.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,gCAA8B;AAC9B,2CAAoC;AACpC,+BAA+B;AAC/B,kEAA0E;AAE1E,wDAK8B;AAE9B,wDAA4D;AAC5D,kEAA+D;AAC/D,gDAA6C;AAC7C,gEAAsE;AACtE,0DAA0D;AAC1D,oFAA2E;AAS3E;;GAEG;AACH,SAAgB,mBAAmB,CAAC,KAA+B;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,OAAO,CAC3D,GAAG,EAAE,CAAC;QACJ,yBAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC3C,yBAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC3C,yBAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC;KAClD,EACD,EAAE,CACH,CAAC;IACF,MAAM,cAAc,GAAG,IAAA,qCAAiB,GAAE,CAAC;IAC3C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAC7E,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,aAAa,GAAG,CACpB,QAAkB,EAClB,UAAyB,EACzB,SAAqC,EACrC,EAAE;YACF,IAAI,QAAQ,KAAK,cAAc;gBAAE,OAAO;YAExC,uBAAuB,CAAC,CAAC,CAAC,kCAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACzD,gBAAgB,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,MAAM,UAAU,GACd,CAAC,CAAC,cAAc;YAChB,0BAA0B,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjE,gBAAgB,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtD,uBAAuB,CACrB,UAAU;YACR,0BAA0B,CAAC,CAAC,CAAC,cAAc;YAC3C,0BAA0B,CAAC,CAAC,CAAC,kCAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CACtE,CAAC;QAEF,0CAA0B,CAAC,MAAM,EAAE,CAAC,mBAAmB,CAAC,WAAW,CACjE,aAAa,CACd,CAAC;QACF,OAAO,GAAG,EAAE;YACV,kDAAkD;YAClD,0CAA0B,CAAC,MAAM,EAAE,CAAC,mBAAmB,CAAC,cAAc,CACpE,aAAa,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAExD,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,KAAK,EAAE,CAAsC,EAAE,EAAE;QAC1E,IAAI,cAAc,EAAE;YAClB,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,0CAA0B,CAAC,MAAM,EAAE,CAAC,gBAAgB,CACxD,cAAc,CACf,CAAC;SACH;IACH,CAAC,CAAC;IAEF,uBAAuB;IACvB,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC7B,MAAM,yBAAS,CAAC,KAAK,CAAC,GAAG,CACvB,iCAAiB,CAAC,MAAM,EACxB,0CAA0B,CAAC,MAAM,EAAE,CACpC,CAAC;QACF,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,kCAAiB,CAAC,0BAA0B,CAAC,0BAAc,CAAC,CAAC;IAE9E,OAAO,CACL,6BAAK,SAAS,EAAC,qCAAqC,IACjD,aAAa,IAAI,CAChB;QACE,6BAAK,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO;YACjC,oBAAC,wCAAuB,IACtB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,GACzC,CACE;QACN,oBAAC,gCAAW,IACV,MAAM,EAAE,SAAS,CAAC,OAAO,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAClC,MAAM,EAAE,WAAW;YAEnB,oBAAC,2BAAM,IAAC,QAAQ,EAAE,oBAAC,6BAAQ,IAAC,KAAK,EAAE,OAAO,GAAI;gBAC5C,6BAAK,SAAS,EAAC,+BAA+B;oBAC5C,oBAAC,sBAAM,IAAC,OAAO,EAAE,WAAW,IAAG,UAAU,CAAU;oBACnD,6BAAK,SAAS,EAAC,qCAAqC;wBAClD,6BAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,qBAAqB,CAAC,IAC9C,gBAAgB,CACb;wBACN,oBAAC,4BAAY,IACX,SAAS,EAAC,sBAAsB,EAChC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,oBAAoB,GAC7B,CACE,CACF,CACC,CACG,CACb,CACJ,CACG,CACP,CAAC;AACJ,CAAC;AA3GD,kDA2GC","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 \"./SectionsField.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Dialog, FooterPopup, TitleBar } from \"@itwin/appui-layout-react\";\nimport type { ClipEventType, Viewport } from \"@itwin/core-frontend\";\nimport {\n IModelApp,\n ViewClipClearTool,\n ViewClipDecoration,\n ViewClipDecorationProvider,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Button, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\nimport { UiFramework } from \"../UiFramework\";\nimport { StatusBarLabelIndicator } from \"../statusbar/LabelIndicator\";\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\nimport svgSectionTool from \"@bentley/icons-generic/icons/section-tool.svg\";\n\n/** Sections Status Field Props\n * @beta\n */\nexport interface SectionsStatusFieldProps extends CommonProps {\n hideWhenUnused?: boolean;\n}\n\n/** Status Field for showing section extra tools for clearing and showing manipulators\n * @beta\n */\nexport function SectionsStatusField(props: SectionsStatusFieldProps) {\n const [toolTip, clearLabel, showHandlesLabel] = React.useMemo(\n () => [\n UiFramework.translate(\"tools.sectionTools\"),\n UiFramework.translate(\"tools.sectionClear\"),\n UiFramework.translate(\"tools.sectionShowHandles\"),\n ],\n []\n );\n const activeViewport = useActiveViewport();\n const [showIndicator, setShowIndicator] = React.useState(false);\n const [isPopupOpen, setPopupOpen] = React.useState(false);\n const targetDiv = React.useRef<HTMLDivElement>(null);\n const classes = showIndicator ? \"uifw-field-fade-in\" : \"uifw-field-fade-out\";\n const [hasManipulatorsShown, setHasManipulatorsShown] = React.useState(false);\n\n React.useEffect(() => {\n // istanbul ignore next\n const onClipChanged = (\n viewport: Viewport,\n _eventType: ClipEventType,\n _provider: ViewClipDecorationProvider\n ) => {\n if (viewport !== activeViewport) return;\n\n setHasManipulatorsShown(!!ViewClipDecoration.get(activeViewport));\n const isClipActive = !!activeViewport.view.getViewClip();\n setShowIndicator(isClipActive || !props.hideWhenUnused);\n };\n\n const clipActive =\n !!activeViewport &&\n /* istanbul ignore next */ !!activeViewport.view.getViewClip();\n setShowIndicator(clipActive || !props.hideWhenUnused);\n setHasManipulatorsShown(\n clipActive &&\n /* istanbul ignore next */ !!activeViewport &&\n /* istanbul ignore next */ !!ViewClipDecoration.get(activeViewport)\n );\n\n ViewClipDecorationProvider.create().onActiveClipChanged.addListener(\n onClipChanged\n );\n return () => {\n // Get or create static ViewClipDecorationProvider\n ViewClipDecorationProvider.create().onActiveClipChanged.removeListener(\n onClipChanged\n );\n };\n }, [activeViewport, props.hideWhenUnused, isPopupOpen]);\n\n // istanbul ignore next\n const toggleManipulators = async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (activeViewport) {\n setHasManipulatorsShown(e.target.checked);\n await ViewClipDecorationProvider.create().toggleDecoration(\n activeViewport\n );\n }\n };\n\n // istanbul ignore next\n const handleClear = async () => {\n await IModelApp.tools.run(\n ViewClipClearTool.toolId,\n ViewClipDecorationProvider.create()\n );\n setPopupOpen(false);\n };\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(svgSectionTool);\n\n return (\n <div className=\"uifw-section-footer-popup-container\">\n {showIndicator && (\n <>\n <div ref={targetDiv} title={toolTip}>\n <StatusBarLabelIndicator\n className={classes}\n iconSpec={iconSpec}\n onClick={() => setPopupOpen(!isPopupOpen)}\n />\n </div>\n <FooterPopup\n target={targetDiv.current}\n onClose={() => setPopupOpen(false)}\n isOpen={isPopupOpen}\n >\n <Dialog titleBar={<TitleBar title={toolTip} />}>\n <div className=\"uifw-sections-footer-contents\">\n <Button onClick={handleClear}>{clearLabel}</Button>\n <div className=\"uifw-uifw-sections-toggle-container\">\n <div className={classnames(\"uifw-sections-label\")}>\n {showHandlesLabel}\n </div>\n <ToggleSwitch\n className=\"uifw-sections-toggle\"\n onChange={toggleManipulators}\n checked={hasManipulatorsShown}\n />\n </div>\n </div>\n </Dialog>\n </FooterPopup>\n </>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SectionsField.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SectionsField.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 \"./SectionsField.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Dialog, FooterPopup, TitleBar } from \"@itwin/appui-layout-react\";\nimport type { ClipEventType, Viewport } from \"@itwin/core-frontend\";\nimport {\n IModelApp,\n ViewClipClearTool,\n ViewClipDecoration,\n ViewClipDecorationProvider,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Button, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\nimport { UiFramework } from \"../UiFramework\";\nimport { StatusBarLabelIndicator } from \"../statusbar/LabelIndicator\";\nimport svgSectionTool from \"@bentley/icons-generic/icons/section-tool.svg\";\n\n/** Sections Status Field Props\n * @beta\n */\nexport interface SectionsStatusFieldProps extends CommonProps {\n hideWhenUnused?: boolean;\n}\n\n/** Status Field for showing section extra tools for clearing and showing manipulators\n * @beta\n */\nexport function SectionsStatusField(props: SectionsStatusFieldProps) {\n const [toolTip, clearLabel, showHandlesLabel] = React.useMemo(\n () => [\n UiFramework.translate(\"tools.sectionTools\"),\n UiFramework.translate(\"tools.sectionClear\"),\n UiFramework.translate(\"tools.sectionShowHandles\"),\n ],\n []\n );\n const activeViewport = useActiveViewport();\n const [showIndicator, setShowIndicator] = React.useState(false);\n const [isPopupOpen, setPopupOpen] = React.useState(false);\n const targetDiv = React.useRef<HTMLDivElement>(null);\n const classes = showIndicator ? \"uifw-field-fade-in\" : \"uifw-field-fade-out\";\n const [hasManipulatorsShown, setHasManipulatorsShown] = React.useState(false);\n\n React.useEffect(() => {\n // istanbul ignore next\n const onClipChanged = (\n viewport: Viewport,\n _eventType: ClipEventType,\n _provider: ViewClipDecorationProvider\n ) => {\n if (viewport !== activeViewport) return;\n\n setHasManipulatorsShown(!!ViewClipDecoration.get(activeViewport));\n const isClipActive = !!activeViewport.view.getViewClip();\n setShowIndicator(isClipActive || !props.hideWhenUnused);\n };\n\n const clipActive =\n !!activeViewport &&\n /* istanbul ignore next */ !!activeViewport.view.getViewClip();\n setShowIndicator(clipActive || !props.hideWhenUnused);\n setHasManipulatorsShown(\n clipActive &&\n /* istanbul ignore next */ !!activeViewport &&\n /* istanbul ignore next */ !!ViewClipDecoration.get(activeViewport)\n );\n\n ViewClipDecorationProvider.create().onActiveClipChanged.addListener(\n onClipChanged\n );\n return () => {\n // Get or create static ViewClipDecorationProvider\n ViewClipDecorationProvider.create().onActiveClipChanged.removeListener(\n onClipChanged\n );\n };\n }, [activeViewport, props.hideWhenUnused, isPopupOpen]);\n\n // istanbul ignore next\n const toggleManipulators = async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (activeViewport) {\n setHasManipulatorsShown(e.target.checked);\n await ViewClipDecorationProvider.create().toggleDecoration(\n activeViewport\n );\n }\n };\n\n // istanbul ignore next\n const handleClear = async () => {\n await IModelApp.tools.run(\n ViewClipClearTool.toolId,\n ViewClipDecorationProvider.create()\n );\n setPopupOpen(false);\n };\n\n return (\n <div className=\"uifw-section-footer-popup-container\">\n {showIndicator && (\n <>\n <div ref={targetDiv} title={toolTip}>\n <StatusBarLabelIndicator\n className={classes}\n iconSpec={svgSectionTool}\n onClick={() => setPopupOpen(!isPopupOpen)}\n />\n </div>\n <FooterPopup\n target={targetDiv.current}\n onClose={() => setPopupOpen(false)}\n isOpen={isPopupOpen}\n >\n <Dialog titleBar={<TitleBar title={toolTip} />}>\n <div className=\"uifw-sections-footer-contents\">\n <Button onClick={handleClear}>{clearLabel}</Button>\n <div className=\"uifw-uifw-sections-toggle-container\">\n <div className={classnames(\"uifw-sections-label\")}>\n {showHandlesLabel}\n </div>\n <ToggleSwitch\n className=\"uifw-sections-toggle\"\n onChange={toggleManipulators}\n checked={hasManipulatorsShown}\n />\n </div>\n </div>\n </Dialog>\n </FooterPopup>\n </>\n )}\n </div>\n );\n}\n"]}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  /// <reference types="react" />
5
5
  import "./SelectionScope.scss";
6
+ import type { ConnectedComponent } from "react-redux";
6
7
  import type { PresentationSelectionScope } from "../redux/SessionState";
7
8
  import type { CommonProps } from "@itwin/core-react";
8
9
  /** Defines properties supported by the SelectionScopeField Component.
@@ -14,19 +15,15 @@ interface SelectionScopeFieldProps extends CommonProps {
14
15
  }
15
16
  /**
16
17
  * Status Field React component. This component is designed to be specified in a status bar definition.
17
- * It is used to display the number of selected items based on the Presentation Rules Selection Manager.
18
- * The IModelApp should call either UiFramework.setIModelConnection or SyncUiEventDispatcher.initializeConnectionEvents
19
- * with the active iModelConnection each time a new iModel is opened so the selection scope data is properly updated
20
- * in the Redux state.
21
- * @public
22
18
  */
23
19
  declare function SelectionScopeFieldComponent(props: SelectionScopeFieldProps): JSX.Element;
24
20
  /**
25
21
  * SelectionScopeField React component. This component is designed to be specified in a status bar definition. It will
26
- * display the active selection scope that is used by the PresentationManager to determine what elements are added to the selection nap mode.
22
+ * display the active selection scope from `UiFramework.getActiveSelectionScope()`, and display the stored list of scopes from
23
+ * `UiFramework.getAvailableSelectionScopes()` to allow the user to change the active selection scope, using `UiFramework.setActiveSelectionScope()`.
27
24
  * This React component is Redux connected.
28
25
  * @public
29
26
  */
30
- export declare const SelectionScopeField: import("react-redux").ConnectedComponent<typeof SelectionScopeFieldComponent, import("react-redux").Omit<SelectionScopeFieldProps, "availableSelectionScopes" | "activeSelectionScope">>;
27
+ export declare const SelectionScopeField: ConnectedComponent<typeof SelectionScopeFieldComponent, CommonProps>;
31
28
  export {};
32
29
  //# sourceMappingURL=SelectionScope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionScope.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,UAAU,wBAAyB,SAAQ,WAAW;IACpD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;CACxD;AAED;;;;;;;GAOG;AACH,iBAAS,4BAA4B,CAAC,KAAK,EAAE,wBAAwB,eAuCpE;AAgBD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,0LAE/B,CAAC"}
1
+ {"version":3,"file":"SelectionScope.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,UAAU,wBAAyB,SAAQ,WAAW;IACpD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;CACxD;AAED;;GAEG;AACH,iBAAS,4BAA4B,CAAC,KAAK,EAAE,wBAAwB,eAuCpE;AAeD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAClD,OAAO,4BAA4B,EACnC,WAAW,CAC6C,CAAC"}
@@ -17,11 +17,6 @@ const itwinui_react_1 = require("@itwin/itwinui-react");
17
17
  const UiFramework_1 = require("../UiFramework");
18
18
  /**
19
19
  * Status Field React component. This component is designed to be specified in a status bar definition.
20
- * It is used to display the number of selected items based on the Presentation Rules Selection Manager.
21
- * The IModelApp should call either UiFramework.setIModelConnection or SyncUiEventDispatcher.initializeConnectionEvents
22
- * with the active iModelConnection each time a new iModel is opened so the selection scope data is properly updated
23
- * in the Redux state.
24
- * @public
25
20
  */
26
21
  function SelectionScopeFieldComponent(props) {
27
22
  const label = UiFramework_1.UiFramework.translate("selectionScopeField.label");
@@ -52,10 +47,10 @@ function mapStateToProps(state) {
52
47
  availableSelectionScopes: frameworkState.sessionState.availableSelectionScopes,
53
48
  };
54
49
  }
55
- // we declare the variable and export that rather than using export default.
56
50
  /**
57
51
  * SelectionScopeField React component. This component is designed to be specified in a status bar definition. It will
58
- * display the active selection scope that is used by the PresentationManager to determine what elements are added to the selection nap mode.
52
+ * display the active selection scope from `UiFramework.getActiveSelectionScope()`, and display the stored list of scopes from
53
+ * `UiFramework.getAvailableSelectionScopes()` to allow the user to change the active selection scope, using `UiFramework.setActiveSelectionScope()`.
59
54
  * This React component is Redux connected.
60
55
  * @public
61
56
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionScope.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA+B;AAC/B,2CAAoC;AACpC,+BAA+B;AAC/B,6CAAsC;AACtC,kEAA4D;AAC5D,wDAA8C;AAE9C,gDAA6C;AAW7C;;;;;;;GAOG;AACH,SAAS,4BAA4B,CAAC,KAA+B;IACnE,MAAM,KAAK,GAAG,yBAAW,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,yBAAW,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,GAAG,EAAE,CACH,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACjC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC7C,uBAAuB;QACvB,IAAI,QAAQ,EAAE;YACZ,yBAAW,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;SAC/C;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,oCAAe,IACd,SAAS,EAAE,IAAA,oBAAU,EACnB,kCAAkC,EAClC,KAAK,CAAC,SAAS,CAChB,EACD,KAAK,EAAE,KAAK,CAAC,KAAK;QAElB,+BAAO,SAAS,EAAC,wCAAwC;YAAE,KAAK;gBAAU;QAC1E,oBAAC,sBAAM,IACL,SAAS,EAAC,2CAA2C,EACrD,KAAK,EAAE,KAAK,CAAC,oBAAoB,EACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,iBACf,oCAAoC,EAChD,KAAK,EAAE,OAAO,EACd,IAAI,EAAC,OAAO,GACZ,CACc,CACnB,CAAC;AACJ,CAAC;AAED,+GAA+G;AAC/G,SAAS,eAAe,CAAC,KAAU;IACjC,MAAM,cAAc,GAAG,KAAK,CAAC,yBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,8CAA8C;IAC3G,0BAA0B;IAC1B,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IAEtC,OAAO;QACL,oBAAoB,EAAE,cAAc,CAAC,YAAY,CAAC,oBAAoB;QACtE,wBAAwB,EACtB,cAAc,CAAC,YAAY,CAAC,wBAAwB;KACvD,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,IAAA,qBAAO,EAAC,eAAe,CAAC,CACzD,4BAA4B,CAC7B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport \"./SelectionScope.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { FooterIndicator } from \"@itwin/appui-layout-react\";\nimport { Select } from \"@itwin/itwinui-react\";\nimport type { PresentationSelectionScope } from \"../redux/SessionState\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { CommonProps } from \"@itwin/core-react\";\n\n/** Defines properties supported by the SelectionScopeField Component.\n * @public\n */\ninterface SelectionScopeFieldProps extends CommonProps {\n activeSelectionScope: string;\n availableSelectionScopes: PresentationSelectionScope[];\n}\n\n/**\n * Status Field React component. This component is designed to be specified in a status bar definition.\n * It is used to display the number of selected items based on the Presentation Rules Selection Manager.\n * The IModelApp should call either UiFramework.setIModelConnection or SyncUiEventDispatcher.initializeConnectionEvents\n * with the active iModelConnection each time a new iModel is opened so the selection scope data is properly updated\n * in the Redux state.\n * @public\n */\nfunction SelectionScopeFieldComponent(props: SelectionScopeFieldProps) {\n const label = UiFramework.translate(\"selectionScopeField.label\");\n const toolTip = UiFramework.translate(\"selectionScopeField.toolTip\");\n\n const options = React.useMemo(\n () =>\n props.availableSelectionScopes.map((scope) => {\n return { value: scope.id, label: scope.label };\n }),\n [props.availableSelectionScopes]\n );\n\n const updateSelectValue = (newValue: string) => {\n // istanbul ignore else\n if (newValue) {\n UiFramework.setActiveSelectionScope(newValue);\n }\n };\n\n return (\n <FooterIndicator\n className={classnames(\n \"uifw-statusFields-selectionScope\",\n props.className\n )}\n style={props.style}\n >\n <label className=\"uifw-statusFields-selectionScope-label\">{label}:</label>\n <Select\n className=\"uifw-statusFields-selectionScope-selector\"\n value={props.activeSelectionScope}\n options={options}\n onChange={updateSelectValue}\n data-testid=\"components-selectionScope-selector\"\n title={toolTip}\n size=\"small\"\n />\n </FooterIndicator>\n );\n}\n\n/** Function used by Redux to map state data in Redux store to props that are used to render this component. */\nfunction mapStateToProps(state: any) {\n const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name\n /* istanbul ignore next */\n if (!frameworkState) return undefined;\n\n return {\n activeSelectionScope: frameworkState.sessionState.activeSelectionScope,\n availableSelectionScopes:\n frameworkState.sessionState.availableSelectionScopes,\n };\n}\n\n// we declare the variable and export that rather than using export default.\n/**\n * SelectionScopeField React component. This component is designed to be specified in a status bar definition. It will\n * display the active selection scope that is used by the PresentationManager to determine what elements are added to the selection nap mode.\n * This React component is Redux connected.\n * @public\n */\nexport const SelectionScopeField = connect(mapStateToProps)(\n SelectionScopeFieldComponent\n);\n"]}
1
+ {"version":3,"file":"SelectionScope.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA+B;AAC/B,2CAAoC;AACpC,+BAA+B;AAE/B,6CAAsC;AACtC,kEAA4D;AAC5D,wDAA8C;AAE9C,gDAA6C;AAW7C;;GAEG;AACH,SAAS,4BAA4B,CAAC,KAA+B;IACnE,MAAM,KAAK,GAAG,yBAAW,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,yBAAW,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,GAAG,EAAE,CACH,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACjC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC7C,uBAAuB;QACvB,IAAI,QAAQ,EAAE;YACZ,yBAAW,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;SAC/C;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,oCAAe,IACd,SAAS,EAAE,IAAA,oBAAU,EACnB,kCAAkC,EAClC,KAAK,CAAC,SAAS,CAChB,EACD,KAAK,EAAE,KAAK,CAAC,KAAK;QAElB,+BAAO,SAAS,EAAC,wCAAwC;YAAE,KAAK;gBAAU;QAC1E,oBAAC,sBAAM,IACL,SAAS,EAAC,2CAA2C,EACrD,KAAK,EAAE,KAAK,CAAC,oBAAoB,EACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,iBACf,oCAAoC,EAChD,KAAK,EAAE,OAAO,EACd,IAAI,EAAC,OAAO,GACZ,CACc,CACnB,CAAC;AACJ,CAAC;AAED,+GAA+G;AAC/G,SAAS,eAAe,CAAC,KAAU;IACjC,MAAM,cAAc,GAAG,KAAK,CAAC,yBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,8CAA8C;IAC3G,0BAA0B;IAC1B,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IAEtC,OAAO;QACL,oBAAoB,EAAE,cAAc,CAAC,YAAY,CAAC,oBAAoB;QACtE,wBAAwB,EACtB,cAAc,CAAC,YAAY,CAAC,wBAAwB;KACvD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACU,QAAA,mBAAmB,GAG5B,IAAA,qBAAO,EAAC,eAAe,CAAC,CAAC,4BAA4B,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport \"./SelectionScope.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ConnectedComponent } from \"react-redux\";\nimport { connect } from \"react-redux\";\nimport { FooterIndicator } from \"@itwin/appui-layout-react\";\nimport { Select } from \"@itwin/itwinui-react\";\nimport type { PresentationSelectionScope } from \"../redux/SessionState\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { CommonProps } from \"@itwin/core-react\";\n\n/** Defines properties supported by the SelectionScopeField Component.\n * @public\n */\ninterface SelectionScopeFieldProps extends CommonProps {\n activeSelectionScope: string;\n availableSelectionScopes: PresentationSelectionScope[];\n}\n\n/**\n * Status Field React component. This component is designed to be specified in a status bar definition.\n */\nfunction SelectionScopeFieldComponent(props: SelectionScopeFieldProps) {\n const label = UiFramework.translate(\"selectionScopeField.label\");\n const toolTip = UiFramework.translate(\"selectionScopeField.toolTip\");\n\n const options = React.useMemo(\n () =>\n props.availableSelectionScopes.map((scope) => {\n return { value: scope.id, label: scope.label };\n }),\n [props.availableSelectionScopes]\n );\n\n const updateSelectValue = (newValue: string) => {\n // istanbul ignore else\n if (newValue) {\n UiFramework.setActiveSelectionScope(newValue);\n }\n };\n\n return (\n <FooterIndicator\n className={classnames(\n \"uifw-statusFields-selectionScope\",\n props.className\n )}\n style={props.style}\n >\n <label className=\"uifw-statusFields-selectionScope-label\">{label}:</label>\n <Select\n className=\"uifw-statusFields-selectionScope-selector\"\n value={props.activeSelectionScope}\n options={options}\n onChange={updateSelectValue}\n data-testid=\"components-selectionScope-selector\"\n title={toolTip}\n size=\"small\"\n />\n </FooterIndicator>\n );\n}\n\n/** Function used by Redux to map state data in Redux store to props that are used to render this component. */\nfunction mapStateToProps(state: any) {\n const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name\n /* istanbul ignore next */\n if (!frameworkState) return undefined;\n\n return {\n activeSelectionScope: frameworkState.sessionState.activeSelectionScope,\n availableSelectionScopes:\n frameworkState.sessionState.availableSelectionScopes,\n };\n}\n\n/**\n * SelectionScopeField React component. This component is designed to be specified in a status bar definition. It will\n * display the active selection scope from `UiFramework.getActiveSelectionScope()`, and display the stored list of scopes from\n * `UiFramework.getAvailableSelectionScopes()` to allow the user to change the active selection scope, using `UiFramework.setActiveSelectionScope()`.\n * This React component is Redux connected.\n * @public\n */\nexport const SelectionScopeField: ConnectedComponent<\n typeof SelectionScopeFieldComponent,\n CommonProps\n> = connect(mapStateToProps)(SelectionScopeFieldComponent);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SnapMode.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SnapMode.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAOH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,mBAAmB,CAAC;AAc/D;GACG;AACH,UAAU,kBAAmB,SAAQ,WAAW;IAC9C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAsCD;;;GAGG;AACH,iBAAS,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,eAuFxD;AAYD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,qIAAmD,CAAC"}
1
+ {"version":3,"file":"SnapMode.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SnapMode.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAOH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,mBAAmB,CAAC;AAa/D;GACG;AACH,UAAU,kBAAmB,SAAQ,WAAW;IAC9C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqCD;;;GAGG;AACH,iBAAS,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,eAuFxD;AAYD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,qIAAmD,CAAC"}