@itwin/appui-react 3.3.0-dev.9 → 3.3.2

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 (395) hide show
  1. package/CHANGELOG.md +88 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +3 -0
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +9 -0
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +2 -2
  7. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  9. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +1 -1
  10. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  11. package/lib/cjs/appui-react/configurableui/state.d.ts +4 -3
  12. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/configurableui/state.js +6 -1
  14. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  15. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/content/ContentGroup.js +0 -2
  17. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  18. package/lib/cjs/appui-react/content/ContentLayout.d.ts +4 -1
  19. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  21. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/content/ContentViewManager.js +6 -2
  23. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  24. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  25. package/lib/cjs/appui-react/feedback/ElementTooltip.js +1 -0
  26. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  27. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +3 -1
  28. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/frontstage/Frontstage.js +1 -1
  30. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +14 -3
  33. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  34. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +2 -0
  35. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  36. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +4 -3
  37. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  38. package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +2 -0
  39. package/lib/cjs/appui-react/imodel-components/models-tree/Hierarchy.json +2 -0
  40. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +49 -44
  42. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  43. package/lib/cjs/appui-react/imodel-components/models-tree/Utils.d.ts +10 -0
  44. package/lib/cjs/appui-react/imodel-components/models-tree/Utils.d.ts.map +1 -0
  45. package/lib/cjs/appui-react/imodel-components/models-tree/Utils.js +23 -0
  46. package/lib/cjs/appui-react/imodel-components/models-tree/Utils.js.map +1 -0
  47. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +26 -0
  48. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/messages/ActivityMessage.js +64 -5
  50. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  51. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
  52. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +3 -11
  54. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  55. package/lib/cjs/appui-react/messages/MessageManager.d.ts +17 -0
  56. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  57. package/lib/cjs/appui-react/messages/MessageManager.js +44 -0
  58. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  59. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
  60. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
  61. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js +33 -28
  62. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  63. package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
  64. package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
  65. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js +1 -0
  66. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  67. package/lib/cjs/appui-react/messages/StickyMessage.d.ts +1 -0
  68. package/lib/cjs/appui-react/messages/StickyMessage.d.ts.map +1 -1
  69. package/lib/cjs/appui-react/messages/StickyMessage.js +8 -6
  70. package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
  71. package/lib/cjs/appui-react/messages/ToastMessage.d.ts +1 -0
  72. package/lib/cjs/appui-react/messages/ToastMessage.d.ts.map +1 -1
  73. package/lib/cjs/appui-react/messages/ToastMessage.js +7 -5
  74. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  75. package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
  76. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +13 -10
  78. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  79. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  80. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js +4 -1
  82. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  83. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +12 -3
  85. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  86. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +2 -0
  87. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +6 -9
  89. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  90. package/lib/cjs/appui-react/statusbar/StatusBar.js +38 -28
  91. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  92. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  93. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -0
  94. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  95. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts +9 -3
  96. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  98. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
  99. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
  100. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  101. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts +1 -0
  102. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts.map +1 -1
  103. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js +1 -0
  104. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  105. package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts +4 -1
  106. package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/statusfields/ConditionalField.js +4 -1
  108. package/lib/cjs/appui-react/statusfields/ConditionalField.js.map +1 -1
  109. package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts +2 -3
  110. package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts.map +1 -1
  111. package/lib/cjs/appui-react/statusfields/FooterModeField.js +9 -8
  112. package/lib/cjs/appui-react/statusfields/FooterModeField.js.map +1 -1
  113. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -1
  114. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/statusfields/Indicator.js +1 -0
  116. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  117. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +4 -2
  118. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  119. package/lib/cjs/appui-react/statusfields/MessageCenter.js +33 -15
  120. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  121. package/lib/cjs/appui-react/statusfields/PromptField.d.ts.map +1 -1
  122. package/lib/cjs/appui-react/statusfields/PromptField.js +4 -1
  123. package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
  124. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  125. package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -1
  126. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  127. package/lib/cjs/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  128. package/lib/cjs/appui-react/statusfields/SelectionInfo.js +4 -1
  129. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  130. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  131. package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -3
  132. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  133. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +0 -1
  134. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  135. package/lib/cjs/appui-react/statusfields/SnapMode.js +0 -2
  136. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  137. package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts +12 -6
  138. package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/statusfields/StatusFieldProps.js +0 -7
  140. package/lib/cjs/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  141. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +5 -1
  143. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  144. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  145. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +4 -1
  146. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  147. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +1 -0
  148. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  149. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -10
  150. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  151. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  152. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +19 -16
  153. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  154. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  155. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +14 -4
  156. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  157. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  158. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
  159. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  160. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  161. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
  162. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  163. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  164. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -2
  165. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  166. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +7 -2
  168. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  169. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +2 -0
  170. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  171. package/lib/cjs/appui-react/uistate/AppUiSettings.js +4 -0
  172. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  173. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  174. package/lib/cjs/appui-react/widget-panels/Content.js +10 -0
  175. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  176. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +9 -1
  177. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/widget-panels/Frontstage.js +131 -34
  179. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  180. package/lib/cjs/appui-react/widget-panels/useTransientState.d.ts +8 -0
  181. package/lib/cjs/appui-react/widget-panels/useTransientState.d.ts.map +1 -0
  182. package/lib/cjs/appui-react/widget-panels/useTransientState.js +19 -0
  183. package/lib/cjs/appui-react/widget-panels/useTransientState.js.map +1 -0
  184. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.d.ts.map +1 -1
  185. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js +1 -0
  186. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  187. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +4 -0
  188. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/widgets/WidgetDef.js +9 -2
  190. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  191. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  192. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -1
  193. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  194. package/lib/cjs/appui-react.d.ts +1 -0
  195. package/lib/cjs/appui-react.d.ts.map +1 -1
  196. package/lib/cjs/appui-react.js +1 -0
  197. package/lib/cjs/appui-react.js.map +1 -1
  198. package/lib/esm/appui-react/UiFramework.d.ts +3 -0
  199. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  200. package/lib/esm/appui-react/UiFramework.js +9 -0
  201. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  202. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +2 -2
  203. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  204. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  205. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +1 -1
  206. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  207. package/lib/esm/appui-react/configurableui/state.d.ts +4 -3
  208. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  209. package/lib/esm/appui-react/configurableui/state.js +6 -1
  210. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  211. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  212. package/lib/esm/appui-react/content/ContentGroup.js +0 -2
  213. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  214. package/lib/esm/appui-react/content/ContentLayout.d.ts +4 -1
  215. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  216. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  217. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  218. package/lib/esm/appui-react/content/ContentViewManager.js +6 -2
  219. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  220. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  221. package/lib/esm/appui-react/feedback/ElementTooltip.js +1 -0
  222. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  223. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +3 -1
  224. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  225. package/lib/esm/appui-react/frontstage/Frontstage.js +1 -1
  226. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  227. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  228. package/lib/esm/appui-react/frontstage/FrontstageDef.js +14 -3
  229. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  230. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +2 -0
  231. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  232. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +4 -3
  233. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  234. package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.GroupedByClass.json +2 -0
  235. package/lib/esm/appui-react/imodel-components/models-tree/Hierarchy.json +2 -0
  236. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  237. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +47 -42
  238. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  239. package/lib/esm/appui-react/imodel-components/models-tree/Utils.d.ts +10 -0
  240. package/lib/esm/appui-react/imodel-components/models-tree/Utils.d.ts.map +1 -0
  241. package/lib/esm/appui-react/imodel-components/models-tree/Utils.js +19 -0
  242. package/lib/esm/appui-react/imodel-components/models-tree/Utils.js.map +1 -0
  243. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +26 -0
  244. package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +1 -1
  245. package/lib/esm/appui-react/messages/ActivityMessage.js +63 -7
  246. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  247. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
  248. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
  249. package/lib/esm/appui-react/messages/ActivityMessagePopup.js +4 -12
  250. package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  251. package/lib/esm/appui-react/messages/MessageManager.d.ts +17 -0
  252. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  253. package/lib/esm/appui-react/messages/MessageManager.js +44 -0
  254. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  255. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
  256. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
  257. package/lib/esm/appui-react/messages/StatusMessageRenderer.js +33 -28
  258. package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  259. package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
  260. package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
  261. package/lib/esm/appui-react/messages/StatusMessagesContainer.js +1 -0
  262. package/lib/esm/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  263. package/lib/esm/appui-react/messages/StickyMessage.d.ts +1 -0
  264. package/lib/esm/appui-react/messages/StickyMessage.d.ts.map +1 -1
  265. package/lib/esm/appui-react/messages/StickyMessage.js +9 -7
  266. package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
  267. package/lib/esm/appui-react/messages/ToastMessage.d.ts +1 -0
  268. package/lib/esm/appui-react/messages/ToastMessage.d.ts.map +1 -1
  269. package/lib/esm/appui-react/messages/ToastMessage.js +8 -6
  270. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  271. package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
  272. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  273. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +13 -10
  274. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  275. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  276. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.d.ts.map +1 -1
  277. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js +4 -1
  278. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  279. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  280. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +12 -3
  281. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  282. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +2 -0
  283. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  284. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +6 -9
  285. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  286. package/lib/esm/appui-react/statusbar/StatusBar.js +38 -28
  287. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  288. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  289. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -0
  290. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  291. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts +9 -3
  292. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
  293. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  294. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
  295. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
  296. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  297. package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts +1 -0
  298. package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts.map +1 -1
  299. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js +1 -0
  300. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  301. package/lib/esm/appui-react/statusfields/ConditionalField.d.ts +4 -1
  302. package/lib/esm/appui-react/statusfields/ConditionalField.d.ts.map +1 -1
  303. package/lib/esm/appui-react/statusfields/ConditionalField.js +4 -1
  304. package/lib/esm/appui-react/statusfields/ConditionalField.js.map +1 -1
  305. package/lib/esm/appui-react/statusfields/FooterModeField.d.ts +2 -3
  306. package/lib/esm/appui-react/statusfields/FooterModeField.d.ts.map +1 -1
  307. package/lib/esm/appui-react/statusfields/FooterModeField.js +9 -8
  308. package/lib/esm/appui-react/statusfields/FooterModeField.js.map +1 -1
  309. package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -1
  310. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  311. package/lib/esm/appui-react/statusfields/Indicator.js +1 -0
  312. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  313. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +4 -2
  314. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  315. package/lib/esm/appui-react/statusfields/MessageCenter.js +33 -15
  316. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  317. package/lib/esm/appui-react/statusfields/PromptField.d.ts.map +1 -1
  318. package/lib/esm/appui-react/statusfields/PromptField.js +4 -1
  319. package/lib/esm/appui-react/statusfields/PromptField.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 +4 -1
  322. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  323. package/lib/esm/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  324. package/lib/esm/appui-react/statusfields/SelectionInfo.js +4 -1
  325. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  326. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  327. package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -3
  328. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  329. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +0 -1
  330. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  331. package/lib/esm/appui-react/statusfields/SnapMode.js +0 -2
  332. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  333. package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts +12 -6
  334. package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts.map +1 -1
  335. package/lib/esm/appui-react/statusfields/StatusFieldProps.js +0 -7
  336. package/lib/esm/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  337. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  338. package/lib/esm/appui-react/statusfields/ViewAttributes.js +5 -1
  339. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  340. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  341. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +4 -1
  342. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  343. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +1 -0
  344. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  345. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -10
  346. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  347. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  348. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +19 -16
  349. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  350. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  351. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +15 -5
  352. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  353. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  354. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
  355. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  356. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  357. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
  358. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  359. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  360. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -2
  361. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  362. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  363. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +7 -2
  364. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  365. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +2 -0
  366. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  367. package/lib/esm/appui-react/uistate/AppUiSettings.js +4 -0
  368. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  369. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  370. package/lib/esm/appui-react/widget-panels/Content.js +10 -0
  371. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  372. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +9 -1
  373. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  374. package/lib/esm/appui-react/widget-panels/Frontstage.js +132 -35
  375. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  376. package/lib/esm/appui-react/widget-panels/useTransientState.d.ts +8 -0
  377. package/lib/esm/appui-react/widget-panels/useTransientState.d.ts.map +1 -0
  378. package/lib/esm/appui-react/widget-panels/useTransientState.js +15 -0
  379. package/lib/esm/appui-react/widget-panels/useTransientState.js.map +1 -0
  380. package/lib/esm/appui-react/widget-panels/useWidgetDirection.d.ts.map +1 -1
  381. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js +1 -0
  382. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  383. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +4 -0
  384. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  385. package/lib/esm/appui-react/widgets/WidgetDef.js +9 -2
  386. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  387. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  388. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -1
  389. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  390. package/lib/esm/appui-react.d.ts +1 -0
  391. package/lib/esm/appui-react.d.ts.map +1 -1
  392. package/lib/esm/appui-react.js +1 -0
  393. package/lib/esm/appui-react.js.map +1 -1
  394. package/lib/public/locales/en/UiFramework.json +9 -2
  395. package/package.json +38 -37
@@ -8,16 +8,16 @@
8
8
  import "./StickyMessage.scss";
9
9
  import * as React from "react";
10
10
  import classnames from "classnames";
11
- import { MessageLayout } from "@itwin/appui-layout-react";
12
- import { ToastPresentation } from "@itwin/itwinui-react/cjs/core/Toast/Toast";
11
+ import { Message, MessageButton, MessageLayout, StatusHelpers, } from "@itwin/appui-layout-react";
13
12
  import { MessageLabel } from "./MessageLabel";
14
- import { getToastCategory } from "./getToastCategory";
13
+ import { HollowIcon } from "./HollowIcon";
14
+ import { Icon, MessageContainer } from "@itwin/core-react";
15
15
  /** Sticky Message React component
16
16
  * @public
17
+ * @deprecated
17
18
  */
18
19
  export function StickyMessage(props) {
19
20
  const { id, messageDetails, severity, closeMessage } = props;
20
- const category = getToastCategory(severity);
21
21
  const [closing, setClosing] = React.useState(false);
22
22
  const handleClose = () => {
23
23
  setClosing(true);
@@ -25,9 +25,11 @@ export function StickyMessage(props) {
25
25
  };
26
26
  const classNames = classnames("uifw-statusbar-sticky-message", closing && "uifw-closing");
27
27
  return (React.createElement("div", { className: classNames },
28
- React.createElement(ToastPresentation, { category: category, hasCloseButton: true, onClose: handleClose, content: React.createElement(MessageLayout, null,
28
+ React.createElement(Message // eslint-disable-line deprecation/deprecation
29
+ , { status: StatusHelpers.severityToStatus(severity), icon: React.createElement(HollowIcon, { iconSpec: MessageContainer.getIconClassName(severity, true) }) },
30
+ React.createElement(MessageLayout, { buttons: React.createElement(MessageButton, { onClick: handleClose, className: "uifw-statusbar-sticky-close" },
31
+ React.createElement(Icon, { iconSpec: "icon-close" })) },
29
32
  React.createElement(MessageLabel, { message: messageDetails.briefMessage, className: "uifw-statusbar-message-brief" }),
30
- messageDetails.detailedMessage &&
31
- React.createElement(MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" })) })));
33
+ messageDetails.detailedMessage && (React.createElement(MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))))));
32
34
  }
33
35
  //# sourceMappingURL=StickyMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StickyMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAYtD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,UAAU,CAC3B,+BAA+B,EAC/B,OAAO,IAAI,cAAc,CAC1B,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU;QACxB,oBAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,IAAI,EACpB,OAAO,EAAE,WAAW,EACpB,OAAO,EACL,oBAAC,aAAa;gBACZ,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,EAAC,8BAA8B,GAAG;gBAC9F,cAAc,CAAC,eAAe;oBAC7B,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAEzF,GAElB,CACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./StickyMessage.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport { MessageLayout } from \"@itwin/appui-layout-react\";\r\nimport { ToastPresentation } from \"@itwin/itwinui-react/cjs/core/Toast/Toast\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { getToastCategory } from \"./getToastCategory\";\r\n\r\n/** Properties for a [[StickyMessage]]\r\n * @public\r\n */\r\nexport interface StickyMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Sticky Message React component\r\n * @public\r\n */\r\nexport function StickyMessage(props: StickyMessageProps) {\r\n const { id, messageDetails, severity, closeMessage } = props;\r\n const category = getToastCategory(severity);\r\n const [closing, setClosing] = React.useState(false);\r\n\r\n const handleClose = () => {\r\n setClosing(true);\r\n setTimeout(() => closeMessage(id), 500);\r\n };\r\n\r\n const classNames = classnames(\r\n \"uifw-statusbar-sticky-message\",\r\n closing && \"uifw-closing\",\r\n );\r\n\r\n return (\r\n <div className={classNames}>\r\n <ToastPresentation\r\n category={category}\r\n hasCloseButton={true}\r\n onClose={handleClose}\r\n content={\r\n <MessageLayout>\r\n <MessageLabel message={messageDetails.briefMessage} className=\"uifw-statusbar-message-brief\" />\r\n {messageDetails.detailedMessage &&\r\n <MessageLabel message={messageDetails.detailedMessage} className=\"uifw-statusbar-message-detailed\" />\r\n }\r\n </MessageLayout>\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"StickyMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAY3D;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,UAAU,CAC3B,+BAA+B,EAC/B,OAAO,IAAI,cAAc,CAC1B,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU;QACxB,oBAAC,OAAO,CAAC,8CAA8C;YACrD,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAChD,IAAI,EACF,oBAAC,UAAU,IACT,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC3D;YAGJ,oBAAC,aAAa,IACZ,OAAO,EACL,oBAAC,aAAa,IACZ,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,6BAA6B;oBAEvC,oBAAC,IAAI,IAAC,QAAQ,EAAC,YAAY,GAAG,CAChB;gBAGlB,oBAAC,YAAY,IACX,OAAO,EAAE,cAAc,CAAC,YAAY,EACpC,SAAS,EAAC,8BAA8B,GACxC;gBACD,cAAc,CAAC,eAAe,IAAI,CACjC,oBAAC,YAAY,IACX,OAAO,EAAE,cAAc,CAAC,eAAe,EACvC,SAAS,EAAC,iCAAiC,GAC3C,CACH,CACa,CACR,CACN,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./StickyMessage.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport {\r\n Message,\r\n MessageButton,\r\n MessageLayout,\r\n StatusHelpers,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { Icon, MessageContainer } from \"@itwin/core-react\";\r\n\r\n/** Properties for a [[StickyMessage]]\r\n * @public\r\n */\r\nexport interface StickyMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Sticky Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function StickyMessage(props: StickyMessageProps) {\r\n const { id, messageDetails, severity, closeMessage } = props;\r\n const [closing, setClosing] = React.useState(false);\r\n\r\n const handleClose = () => {\r\n setClosing(true);\r\n setTimeout(() => closeMessage(id), 500);\r\n };\r\n\r\n const classNames = classnames(\r\n \"uifw-statusbar-sticky-message\",\r\n closing && \"uifw-closing\",\r\n );\r\n\r\n return (\r\n <div className={classNames}>\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={StatusHelpers.severityToStatus(severity)}\r\n icon={\r\n <HollowIcon\r\n iconSpec={MessageContainer.getIconClassName(severity, true)}\r\n />\r\n }\r\n >\r\n <MessageLayout\r\n buttons={\r\n <MessageButton\r\n onClick={handleClose}\r\n className=\"uifw-statusbar-sticky-close\"\r\n >\r\n <Icon iconSpec=\"icon-close\" />\r\n </MessageButton>\r\n }\r\n >\r\n <MessageLabel\r\n message={messageDetails.briefMessage}\r\n className=\"uifw-statusbar-message-brief\"\r\n />\r\n {messageDetails.detailedMessage && (\r\n <MessageLabel\r\n message={messageDetails.detailedMessage}\r\n className=\"uifw-statusbar-message-detailed\"\r\n />\r\n )}\r\n </MessageLayout>\r\n </Message>\r\n </div>\r\n );\r\n}\r\n"]}
@@ -16,6 +16,7 @@ export interface ToastMessageProps {
16
16
  }
17
17
  /** Toast Message React component
18
18
  * @public
19
+ * @deprecated
19
20
  */
20
21
  export declare function ToastMessage(props: ToastMessageProps): JSX.Element;
21
22
  //# sourceMappingURL=ToastMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAIjF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eAwBpD"}
1
+ {"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAKjF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eA2BpD"}
@@ -6,20 +6,22 @@
6
6
  * @module Notification
7
7
  */
8
8
  import * as React from "react";
9
- import { MessageLayout, Toast } from "@itwin/appui-layout-react";
10
- import { ToastPresentation } from "@itwin/itwinui-react/cjs/core/Toast/Toast";
9
+ import { Message, MessageLayout, StatusHelpers, Toast, } from "@itwin/appui-layout-react";
11
10
  import { MessageLabel } from "./MessageLabel";
12
- import { getToastCategory } from "./getToastCategory";
11
+ import { HollowIcon } from "./HollowIcon";
12
+ import { MessageContainer } from "@itwin/core-react";
13
13
  /** Toast Message React component
14
14
  * @public
15
+ * @deprecated
15
16
  */
16
17
  export function ToastMessage(props) {
17
18
  const { id, messageDetails, severity, toastTarget, closeMessage } = props;
18
- const category = getToastCategory(severity);
19
19
  return (React.createElement(Toast // eslint-disable-line deprecation/deprecation
20
- , { animateOutTo: toastTarget, onAnimatedOut: () => closeMessage(id), timeout: messageDetails.displayTime.milliseconds, content: React.createElement(ToastPresentation, { category: category, content: React.createElement(MessageLayout, null,
20
+ , { animateOutTo: toastTarget, onAnimatedOut: () => closeMessage(id), timeout: messageDetails.displayTime.milliseconds, content: React.createElement(Message // eslint-disable-line deprecation/deprecation
21
+ , { status: StatusHelpers.severityToStatus(severity), icon: React.createElement(HollowIcon, { iconSpec: MessageContainer.getIconClassName(severity, true) }) },
22
+ React.createElement(MessageLayout, null,
21
23
  React.createElement(MessageLabel, { message: messageDetails.briefMessage, className: "uifw-statusbar-message-brief" }),
22
24
  messageDetails.detailedMessage &&
23
- React.createElement(MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" })) }) }));
25
+ React.createElement(MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))) }));
24
26
  }
25
27
  //# sourceMappingURL=ToastMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToastMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAatD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC1E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE5C,OAAO,CACL,oBAAC,KAAK,CAAC,8CAA8C;QACnD,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EACrC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,YAAY,EAChD,OAAO,EACL,oBAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EACL,oBAAC,aAAa;gBACZ,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,EAAC,8BAA8B,GAAG;gBAC9F,cAAc,CAAC,eAAe;oBAC7B,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAEzF,GAElB,GAEJ,CACH,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport { MessageLayout, Toast } from \"@itwin/appui-layout-react\";\r\nimport { ToastPresentation } from \"@itwin/itwinui-react/cjs/core/Toast/Toast\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { getToastCategory } from \"./getToastCategory\";\r\n\r\n/** Properties for a [[ToastMessage]]\r\n * @public\r\n */\r\nexport interface ToastMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Toast Message React component\r\n * @public\r\n */\r\nexport function ToastMessage(props: ToastMessageProps) {\r\n const { id, messageDetails, severity, toastTarget, closeMessage } = props;\r\n const category = getToastCategory(severity);\r\n\r\n return (\r\n <Toast // eslint-disable-line deprecation/deprecation\r\n animateOutTo={toastTarget}\r\n onAnimatedOut={() => closeMessage(id)}\r\n timeout={messageDetails.displayTime.milliseconds}\r\n content={\r\n <ToastPresentation\r\n category={category}\r\n content={\r\n <MessageLayout>\r\n <MessageLabel message={messageDetails.briefMessage} className=\"uifw-statusbar-message-brief\" />\r\n {messageDetails.detailedMessage &&\r\n <MessageLabel message={messageDetails.detailedMessage} className=\"uifw-statusbar-message-detailed\" />\r\n }\r\n </MessageLayout>\r\n }\r\n />\r\n }\r\n />\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"ToastMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,KAAK,GACN,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAarD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAE1E,OAAO,CACL,oBAAC,KAAK,CAAC,8CAA8C;QACnD,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EACrC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,YAAY,EAChD,OAAO,EACL,oBAAC,OAAO,CAAC,8CAA8C;YACrD,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAChD,IAAI,EACF,oBAAC,UAAU,IACT,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC3D;YAGJ,oBAAC,aAAa;gBACZ,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,EAAC,8BAA8B,GAAG;gBAC9F,cAAc,CAAC,eAAe;oBAC7B,oBAAC,YAAY,IAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAEzF,CACR,GAEZ,CACH,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport {\r\n Message,\r\n MessageLayout,\r\n StatusHelpers,\r\n Toast,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { MessageContainer } from \"@itwin/core-react\";\r\n\r\n/** Properties for a [[ToastMessage]]\r\n * @public\r\n */\r\nexport interface ToastMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Toast Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function ToastMessage(props: ToastMessageProps) {\r\n const { id, messageDetails, severity, toastTarget, closeMessage } = props;\r\n\r\n return (\r\n <Toast // eslint-disable-line deprecation/deprecation\r\n animateOutTo={toastTarget}\r\n onAnimatedOut={() => closeMessage(id)}\r\n timeout={messageDetails.displayTime.milliseconds}\r\n content={\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={StatusHelpers.severityToStatus(severity)}\r\n icon={\r\n <HollowIcon\r\n iconSpec={MessageContainer.getIconClassName(severity, true)}\r\n />\r\n }\r\n >\r\n <MessageLayout>\r\n <MessageLabel message={messageDetails.briefMessage} className=\"uifw-statusbar-message-brief\" />\r\n {messageDetails.detailedMessage &&\r\n <MessageLabel message={messageDetails.detailedMessage} className=\"uifw-statusbar-message-detailed\" />\r\n }\r\n </MessageLayout>\r\n </Message>\r\n }\r\n />\r\n );\r\n}\r\n"]}
@@ -3,5 +3,5 @@
3
3
  */
4
4
  import { MessageSeverity } from "@itwin/appui-abstract";
5
5
  /** @internal */
6
- export declare function getToastCategory(severity: MessageSeverity): "informational" | "warning" | "negative" | "positive";
6
+ export declare function getToastCategory(severity: MessageSeverity): "positive" | "negative" | "informational" | "warning";
7
7
  //# sourceMappingURL=getToastCategory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyinPalettePanel.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/KeyinPalettePanel.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,0BAA0B,CAAC;AAIlC,OAAO,EAAgB,kBAAkB,EAAc,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAMzD,gBAAgB;AAChB,wBAAgB,wBAAwB,SAOvC;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAwB,EAAE,EAAE,sBAAsB,eAyO7H"}
1
+ {"version":3,"file":"KeyinPalettePanel.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/KeyinPalettePanel.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,0BAA0B,CAAC;AAIlC,OAAO,EAAgB,kBAAkB,EAAc,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAMzD,gBAAgB;AAChB,wBAAgB,wBAAwB,SAOvC;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAwB,EAAE,EAAE,sBAAsB,eA4O7H"}
@@ -181,18 +181,21 @@ export function KeyinPalettePanel({ keyins, onKeyinExecuted, historyLength: allo
181
181
  else {
182
182
  const newKeyinSet = [];
183
183
  allKeyins.forEach((value) => {
184
- const matches = matchesWords(currentKeyin, value.value);
185
- if (matches && matches.length) {
186
- // istanbul ignore else
187
- if (value.isHistory) {
188
- filteredHistory.push(value);
189
- newKeyinSet.push({ ...value, matches });
190
- }
191
- else {
192
- // only add entry if no match in filtered history
184
+ if (value.value.length >= currentKeyin.length) {
185
+ // Force contiguous searches if key-in is over 60 characters long for performance.
186
+ const matches = matchesWords(currentKeyin, value.value, currentKeyin.length > 60);
187
+ if (matches && matches.length) {
193
188
  // istanbul ignore else
194
- if (-1 === filteredHistory.findIndex((historyEntry) => historyEntry.value === value.value))
189
+ if (value.isHistory) {
190
+ filteredHistory.push(value);
195
191
  newKeyinSet.push({ ...value, matches });
192
+ }
193
+ else {
194
+ // only add entry if no match in filtered history
195
+ // istanbul ignore else
196
+ if (-1 === filteredHistory.findIndex((historyEntry) => historyEntry.value === value.value))
197
+ newKeyinSet.push({ ...value, matches });
198
+ }
196
199
  }
197
200
  }
198
201
  });
@@ -1 +1 @@
1
- {"version":3,"file":"KeyinPalettePanel.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/KeyinPalettePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\n// cSpell:ignore focusvalue uiadmin\r\n\r\nimport * as React from \"react\";\r\nimport \"./KeyinPalettePanel.scss\";\r\nimport { FilteredText, Listbox, ListboxItem, UiStateStorageStatus } from \"@itwin/core-react\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType, ParseAndRunResult } from \"@itwin/core-frontend\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { matchesWords, OnItemExecutedFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { ClearKeyinPaletteHistoryTool } from \"../tools/KeyinPaletteTools\";\r\nimport { useUiStateStorageHandler } from \"../uistate/useUiStateStorage\";\r\nimport { KeyinEntry } from \"../uiadmin/FrameworkUiAdmin\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\n\r\nconst KEYIN_PALETTE_NAMESPACE = \"KeyinPalettePanel\";\r\nconst KEYIN_HISTORY_KEY = \"historyArray\";\r\n\r\n/** @internal */\r\nexport function clearKeyinPaletteHistory() {\r\n const uiSettingsStorage = UiFramework.getUiStateStorage();\r\n // istanbul ignore else\r\n if (uiSettingsStorage) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n uiSettingsStorage.deleteSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY);\r\n }\r\n}\r\n\r\ninterface KeyinPalettePanelProps {\r\n keyins: KeyinEntry[];\r\n onKeyinExecuted?: OnItemExecutedFunc;\r\n historyLength?: number;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function KeyinPalettePanel({ keyins, onKeyinExecuted, historyLength: allowedHistoryLength = 6 }: KeyinPalettePanelProps) {\r\n const [currentKeyin, setCurrentKeyin] = React.useState<string>(\"\");\r\n const placeholderLabel = React.useRef(UiFramework.translate(\"keyinbrowser.placeholder\"));\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const keyinSeparator = \"--#--\";\r\n const [historyKeyins, setHistoryKeyins] = React.useState<string[]>([]);\r\n const uiSettingsStorage = useUiStateStorageHandler();\r\n\r\n React.useEffect(() => {\r\n async function fetchState() {\r\n const settingsResult = await uiSettingsStorage.getSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY);\r\n // istanbul ignore else\r\n if (UiStateStorageStatus.Success === settingsResult.status) {\r\n const filteredHistory = (settingsResult.setting as string[]).filter((keyin) => {\r\n const result = IModelApp.tools.parseKeyin(keyin);\r\n return result.ok;\r\n });\r\n setHistoryKeyins(filteredHistory);\r\n } else {\r\n setHistoryKeyins([]);\r\n }\r\n }\r\n\r\n fetchState(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }, [uiSettingsStorage]);\r\n\r\n // istanbul ignore next\r\n const storeHistoryKeyins = React.useCallback(async (value: string[]) => {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n const result = await uiSettingsStorage.saveSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY, value);\r\n if (result.status !== UiStateStorageStatus.Success) {\r\n const briefMessage = UiFramework.translate(\"keyinbrowser.couldNotSaveHistory\");\r\n const errorDetails = new NotifyMessageDetails(OutputMessagePriority.Error, briefMessage);\r\n IModelApp.notifications.outputMessage(errorDetails);\r\n }\r\n }, [uiSettingsStorage]);\r\n\r\n const allKeyins = React.useMemo(() => {\r\n const availableKeyins = [];\r\n historyKeyins.forEach((value: string) => {\r\n availableKeyins.push({ value, isHistory: true });\r\n });\r\n availableKeyins.push(...keyins.sort((a, b) => a.value.toLowerCase().localeCompare(b.value.toLowerCase())));\r\n return availableKeyins;\r\n }, [historyKeyins, keyins]);\r\n\r\n const submitKeyin = React.useCallback(async (value: string) => {\r\n let detailedMessage: string | undefined;\r\n let message: string | undefined;\r\n try {\r\n switch (await IModelApp.tools.parseAndRun(value)) {\r\n case ParseAndRunResult.ToolNotFound:\r\n message = `UiFramework.translate(\"keyinbrowser.couldNotFindTool\")} ${value}`;\r\n break;\r\n // istanbul ignore next\r\n case ParseAndRunResult.BadArgumentCount:\r\n message = UiFramework.translate(\"keyinbrowser.incorrectArgs\");\r\n break;\r\n // istanbul ignore next\r\n case ParseAndRunResult.FailedToRun:\r\n message = UiFramework.translate(\"keyinbrowser.failedToRun\");\r\n break;\r\n }\r\n } catch (ex) {\r\n // istanbul ignore next\r\n {\r\n message = UiFramework.translate(\"keyinbrowser.exceptionOccurred\");\r\n detailedMessage = `${UiFramework.translate(\"keyinbrowser.exceptionOccurred\")}: ${ex}`;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (undefined !== message) {\r\n const errorDetails = new NotifyMessageDetails(OutputMessagePriority.Error, message, detailedMessage, OutputMessageType.Sticky);\r\n IModelApp.notifications.outputMessage(errorDetails);\r\n } else {\r\n // istanbul ignore next\r\n if (value.length < 400 && value !== ClearKeyinPaletteHistoryTool.keyin && value !== ClearKeyinPaletteHistoryTool.englishKeyin) {\r\n const newHistoryEntries: string[] = [value];\r\n for (const entry of historyKeyins) {\r\n if (entry !== value) {\r\n newHistoryEntries.push(entry);\r\n if (newHistoryEntries.length >= allowedHistoryLength)\r\n break;\r\n }\r\n }\r\n await storeHistoryKeyins(newHistoryEntries);\r\n }\r\n\r\n // close the popup by processing the supplied onKeyinExecuted function\r\n if (onKeyinExecuted)\r\n onKeyinExecuted(value);\r\n }\r\n }, [storeHistoryKeyins, onKeyinExecuted, historyKeyins, allowedHistoryLength]);\r\n\r\n const selectKeyin = React.useCallback(() => {\r\n // istanbul ignore else\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\r\n }\r\n }, [inputRef]);\r\n\r\n const updateKeyin = React.useCallback((value: string) => {\r\n setCurrentKeyin(value);\r\n selectKeyin();\r\n }, [selectKeyin]);\r\n\r\n const getKeyinFromListboxValue = (value: string | undefined) => {\r\n // istanbul ignore else\r\n if (value) {\r\n const indexSeparator = value.search(keyinSeparator);\r\n // istanbul ignore else\r\n if (indexSeparator)\r\n return value.substr(0, indexSeparator);\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n };\r\n\r\n const handleKeypressOnKeyinsList = React.useCallback(async (event: React.KeyboardEvent<HTMLUListElement>) => {\r\n const key = event.key;\r\n // built into listbox a \"Space\" key will trigger the selection of a entry so if an Enter key is pressed\r\n // assume user wants to execute the entry.\r\n // istanbul ignore else\r\n if (key === SpecialKey.Enter) {\r\n event.preventDefault();\r\n // istanbul ignore next\r\n const keyinToSend = getKeyinFromListboxValue(event.currentTarget?.dataset?.focusvalue);\r\n // istanbul ignore else\r\n if (keyinToSend) {\r\n if (event.ctrlKey)\r\n updateKeyin(keyinToSend);\r\n else\r\n await submitKeyin(keyinToSend);\r\n }\r\n }\r\n }, [submitKeyin, updateKeyin]);\r\n\r\n const onListboxValueChange = React.useCallback(async (value: string, isControlOrCommandPressed?: boolean) => {\r\n const keyin = getKeyinFromListboxValue(value);\r\n // istanbul ignore else\r\n if (keyin) {\r\n if (isControlOrCommandPressed)\r\n updateKeyin(keyin);\r\n else\r\n await submitKeyin(keyin);\r\n }\r\n }, [submitKeyin, updateKeyin]);\r\n\r\n const onInputValueChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n setCurrentKeyin(event.target.value);\r\n }, []);\r\n\r\n const filteredKeyins = React.useMemo(() => {\r\n const filteredHistory: KeyinEntry[] = [];\r\n if (undefined === currentKeyin || 0 === currentKeyin.length) {\r\n return allKeyins;\r\n } else {\r\n const newKeyinSet: KeyinEntry[] = [];\r\n allKeyins.forEach((value) => {\r\n const matches = matchesWords(currentKeyin, value.value);\r\n if (matches && matches.length) {\r\n // istanbul ignore else\r\n if (value.isHistory) {\r\n filteredHistory.push(value);\r\n newKeyinSet.push({ ...value, matches });\r\n } else {\r\n // only add entry if no match in filtered history\r\n // istanbul ignore else\r\n if (-1 === filteredHistory.findIndex((historyEntry: KeyinEntry) => historyEntry.value === value.value))\r\n newKeyinSet.push({ ...value, matches });\r\n }\r\n }\r\n });\r\n return newKeyinSet;\r\n }\r\n }, [allKeyins, currentKeyin]);\r\n\r\n const onInputValueKeyDown = React.useCallback(async (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (SpecialKey.Enter === event.key) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (1 === filteredKeyins.length) {\r\n if (event.ctrlKey)\r\n updateKeyin(filteredKeyins[0].value);\r\n else\r\n await submitKeyin(filteredKeyins[0].value);\r\n } else {\r\n if (currentKeyin)\r\n await submitKeyin(currentKeyin);\r\n }\r\n } else if (SpecialKey.Tab === event.key && 1 === filteredKeyins.length) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n updateKeyin(filteredKeyins[0].value);\r\n } else {\r\n if (event.key === SpecialKey.ArrowDown && filteredKeyins.length > 0) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (inputRef.current) {\r\n const nextElement = inputRef.current.nextElementSibling as HTMLElement;\r\n nextElement && nextElement.focus();\r\n }\r\n }\r\n }\r\n\r\n }, [filteredKeyins, submitKeyin, currentKeyin, updateKeyin]);\r\n\r\n const lastHistoryIndex = filteredKeyins.findIndex((entry) => (true !== entry.isHistory)) - 1;\r\n\r\n return <div className=\"uifw-command-palette-panel\">\r\n <Input ref={inputRef} type=\"text\" onKeyDown={onInputValueKeyDown}\r\n className={\"uifw-command-palette-input\"} data-testid=\"command-palette-input\" onChange={onInputValueChange}\r\n placeholder={placeholderLabel.current} value={currentKeyin} size=\"small\"\r\n />\r\n {(filteredKeyins.length > 0) &&\r\n <Listbox id=\"uifw-command-sources\" className=\"map-manager-source-list\" onKeyDown={handleKeypressOnKeyinsList}\r\n onListboxValueChange={onListboxValueChange} >\r\n {\r\n filteredKeyins.map((entry, index) => {\r\n const value = `${entry.value}${keyinSeparator}${entry.isHistory ? \"history\" : \"registry\"}`;\r\n const itemClass = `uifw-command-palette-value-entry${index === lastHistoryIndex ? \" uifw-history-bottom-border\" : \"\"}`;\r\n return <ListboxItem key={`${entry.value}-${index}`} className={itemClass} value={value} >\r\n <FilteredText value={entry.value} matches={entry.matches} />\r\n </ListboxItem>;\r\n })\r\n }\r\n </Listbox >\r\n }\r\n </div >;\r\n}\r\n"]}
1
+ {"version":3,"file":"KeyinPalettePanel.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/KeyinPalettePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\n// cSpell:ignore focusvalue uiadmin\r\n\r\nimport * as React from \"react\";\r\nimport \"./KeyinPalettePanel.scss\";\r\nimport { FilteredText, Listbox, ListboxItem, UiStateStorageStatus } from \"@itwin/core-react\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType, ParseAndRunResult } from \"@itwin/core-frontend\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { matchesWords, OnItemExecutedFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { ClearKeyinPaletteHistoryTool } from \"../tools/KeyinPaletteTools\";\r\nimport { useUiStateStorageHandler } from \"../uistate/useUiStateStorage\";\r\nimport { KeyinEntry } from \"../uiadmin/FrameworkUiAdmin\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\n\r\nconst KEYIN_PALETTE_NAMESPACE = \"KeyinPalettePanel\";\r\nconst KEYIN_HISTORY_KEY = \"historyArray\";\r\n\r\n/** @internal */\r\nexport function clearKeyinPaletteHistory() {\r\n const uiSettingsStorage = UiFramework.getUiStateStorage();\r\n // istanbul ignore else\r\n if (uiSettingsStorage) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n uiSettingsStorage.deleteSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY);\r\n }\r\n}\r\n\r\ninterface KeyinPalettePanelProps {\r\n keyins: KeyinEntry[];\r\n onKeyinExecuted?: OnItemExecutedFunc;\r\n historyLength?: number;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function KeyinPalettePanel({ keyins, onKeyinExecuted, historyLength: allowedHistoryLength = 6 }: KeyinPalettePanelProps) {\r\n const [currentKeyin, setCurrentKeyin] = React.useState<string>(\"\");\r\n const placeholderLabel = React.useRef(UiFramework.translate(\"keyinbrowser.placeholder\"));\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const keyinSeparator = \"--#--\";\r\n const [historyKeyins, setHistoryKeyins] = React.useState<string[]>([]);\r\n const uiSettingsStorage = useUiStateStorageHandler();\r\n\r\n React.useEffect(() => {\r\n async function fetchState() {\r\n const settingsResult = await uiSettingsStorage.getSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY);\r\n // istanbul ignore else\r\n if (UiStateStorageStatus.Success === settingsResult.status) {\r\n const filteredHistory = (settingsResult.setting as string[]).filter((keyin) => {\r\n const result = IModelApp.tools.parseKeyin(keyin);\r\n return result.ok;\r\n });\r\n setHistoryKeyins(filteredHistory);\r\n } else {\r\n setHistoryKeyins([]);\r\n }\r\n }\r\n\r\n fetchState(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }, [uiSettingsStorage]);\r\n\r\n // istanbul ignore next\r\n const storeHistoryKeyins = React.useCallback(async (value: string[]) => {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n const result = await uiSettingsStorage.saveSetting(KEYIN_PALETTE_NAMESPACE, KEYIN_HISTORY_KEY, value);\r\n if (result.status !== UiStateStorageStatus.Success) {\r\n const briefMessage = UiFramework.translate(\"keyinbrowser.couldNotSaveHistory\");\r\n const errorDetails = new NotifyMessageDetails(OutputMessagePriority.Error, briefMessage);\r\n IModelApp.notifications.outputMessage(errorDetails);\r\n }\r\n }, [uiSettingsStorage]);\r\n\r\n const allKeyins = React.useMemo(() => {\r\n const availableKeyins = [];\r\n historyKeyins.forEach((value: string) => {\r\n availableKeyins.push({ value, isHistory: true });\r\n });\r\n availableKeyins.push(...keyins.sort((a, b) => a.value.toLowerCase().localeCompare(b.value.toLowerCase())));\r\n return availableKeyins;\r\n }, [historyKeyins, keyins]);\r\n\r\n const submitKeyin = React.useCallback(async (value: string) => {\r\n let detailedMessage: string | undefined;\r\n let message: string | undefined;\r\n try {\r\n switch (await IModelApp.tools.parseAndRun(value)) {\r\n case ParseAndRunResult.ToolNotFound:\r\n message = `UiFramework.translate(\"keyinbrowser.couldNotFindTool\")} ${value}`;\r\n break;\r\n // istanbul ignore next\r\n case ParseAndRunResult.BadArgumentCount:\r\n message = UiFramework.translate(\"keyinbrowser.incorrectArgs\");\r\n break;\r\n // istanbul ignore next\r\n case ParseAndRunResult.FailedToRun:\r\n message = UiFramework.translate(\"keyinbrowser.failedToRun\");\r\n break;\r\n }\r\n } catch (ex) {\r\n // istanbul ignore next\r\n {\r\n message = UiFramework.translate(\"keyinbrowser.exceptionOccurred\");\r\n detailedMessage = `${UiFramework.translate(\"keyinbrowser.exceptionOccurred\")}: ${ex}`;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (undefined !== message) {\r\n const errorDetails = new NotifyMessageDetails(OutputMessagePriority.Error, message, detailedMessage, OutputMessageType.Sticky);\r\n IModelApp.notifications.outputMessage(errorDetails);\r\n } else {\r\n // istanbul ignore next\r\n if (value.length < 400 && value !== ClearKeyinPaletteHistoryTool.keyin && value !== ClearKeyinPaletteHistoryTool.englishKeyin) {\r\n const newHistoryEntries: string[] = [value];\r\n for (const entry of historyKeyins) {\r\n if (entry !== value) {\r\n newHistoryEntries.push(entry);\r\n if (newHistoryEntries.length >= allowedHistoryLength)\r\n break;\r\n }\r\n }\r\n await storeHistoryKeyins(newHistoryEntries);\r\n }\r\n\r\n // close the popup by processing the supplied onKeyinExecuted function\r\n if (onKeyinExecuted)\r\n onKeyinExecuted(value);\r\n }\r\n }, [storeHistoryKeyins, onKeyinExecuted, historyKeyins, allowedHistoryLength]);\r\n\r\n const selectKeyin = React.useCallback(() => {\r\n // istanbul ignore else\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\r\n }\r\n }, [inputRef]);\r\n\r\n const updateKeyin = React.useCallback((value: string) => {\r\n setCurrentKeyin(value);\r\n selectKeyin();\r\n }, [selectKeyin]);\r\n\r\n const getKeyinFromListboxValue = (value: string | undefined) => {\r\n // istanbul ignore else\r\n if (value) {\r\n const indexSeparator = value.search(keyinSeparator);\r\n // istanbul ignore else\r\n if (indexSeparator)\r\n return value.substr(0, indexSeparator);\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n };\r\n\r\n const handleKeypressOnKeyinsList = React.useCallback(async (event: React.KeyboardEvent<HTMLUListElement>) => {\r\n const key = event.key;\r\n // built into listbox a \"Space\" key will trigger the selection of a entry so if an Enter key is pressed\r\n // assume user wants to execute the entry.\r\n // istanbul ignore else\r\n if (key === SpecialKey.Enter) {\r\n event.preventDefault();\r\n // istanbul ignore next\r\n const keyinToSend = getKeyinFromListboxValue(event.currentTarget?.dataset?.focusvalue);\r\n // istanbul ignore else\r\n if (keyinToSend) {\r\n if (event.ctrlKey)\r\n updateKeyin(keyinToSend);\r\n else\r\n await submitKeyin(keyinToSend);\r\n }\r\n }\r\n }, [submitKeyin, updateKeyin]);\r\n\r\n const onListboxValueChange = React.useCallback(async (value: string, isControlOrCommandPressed?: boolean) => {\r\n const keyin = getKeyinFromListboxValue(value);\r\n // istanbul ignore else\r\n if (keyin) {\r\n if (isControlOrCommandPressed)\r\n updateKeyin(keyin);\r\n else\r\n await submitKeyin(keyin);\r\n }\r\n }, [submitKeyin, updateKeyin]);\r\n\r\n const onInputValueChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n setCurrentKeyin(event.target.value);\r\n }, []);\r\n\r\n const filteredKeyins = React.useMemo(() => {\r\n const filteredHistory: KeyinEntry[] = [];\r\n if (undefined === currentKeyin || 0 === currentKeyin.length) {\r\n return allKeyins;\r\n } else {\r\n const newKeyinSet: KeyinEntry[] = [];\r\n allKeyins.forEach((value) => {\r\n if (value.value.length >= currentKeyin.length) {\r\n // Force contiguous searches if key-in is over 60 characters long for performance.\r\n const matches = matchesWords(currentKeyin, value.value, currentKeyin.length > 60);\r\n if (matches && matches.length) {\r\n // istanbul ignore else\r\n if (value.isHistory) {\r\n filteredHistory.push(value);\r\n newKeyinSet.push({ ...value, matches });\r\n } else {\r\n // only add entry if no match in filtered history\r\n // istanbul ignore else\r\n if (-1 === filteredHistory.findIndex((historyEntry: KeyinEntry) => historyEntry.value === value.value))\r\n newKeyinSet.push({ ...value, matches });\r\n }\r\n }\r\n }\r\n });\r\n return newKeyinSet;\r\n }\r\n }, [allKeyins, currentKeyin]);\r\n\r\n const onInputValueKeyDown = React.useCallback(async (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (SpecialKey.Enter === event.key) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (1 === filteredKeyins.length) {\r\n if (event.ctrlKey)\r\n updateKeyin(filteredKeyins[0].value);\r\n else\r\n await submitKeyin(filteredKeyins[0].value);\r\n } else {\r\n if (currentKeyin)\r\n await submitKeyin(currentKeyin);\r\n }\r\n } else if (SpecialKey.Tab === event.key && 1 === filteredKeyins.length) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n updateKeyin(filteredKeyins[0].value);\r\n } else {\r\n if (event.key === SpecialKey.ArrowDown && filteredKeyins.length > 0) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // istanbul ignore else\r\n if (inputRef.current) {\r\n const nextElement = inputRef.current.nextElementSibling as HTMLElement;\r\n nextElement && nextElement.focus();\r\n }\r\n }\r\n }\r\n\r\n }, [filteredKeyins, submitKeyin, currentKeyin, updateKeyin]);\r\n\r\n const lastHistoryIndex = filteredKeyins.findIndex((entry) => (true !== entry.isHistory)) - 1;\r\n\r\n return <div className=\"uifw-command-palette-panel\">\r\n <Input ref={inputRef} type=\"text\" onKeyDown={onInputValueKeyDown}\r\n className={\"uifw-command-palette-input\"} data-testid=\"command-palette-input\" onChange={onInputValueChange}\r\n placeholder={placeholderLabel.current} value={currentKeyin} size=\"small\"\r\n />\r\n {(filteredKeyins.length > 0) &&\r\n <Listbox id=\"uifw-command-sources\" className=\"map-manager-source-list\" onKeyDown={handleKeypressOnKeyinsList}\r\n onListboxValueChange={onListboxValueChange} >\r\n {\r\n filteredKeyins.map((entry, index) => {\r\n const value = `${entry.value}${keyinSeparator}${entry.isHistory ? \"history\" : \"registry\"}`;\r\n const itemClass = `uifw-command-palette-value-entry${index === lastHistoryIndex ? \" uifw-history-bottom-border\" : \"\"}`;\r\n return <ListboxItem key={`${entry.value}-${index}`} className={itemClass} value={value} >\r\n <FilteredText value={entry.value} matches={entry.matches} />\r\n </ListboxItem>;\r\n })\r\n }\r\n </Listbox >\r\n }\r\n </div >;\r\n}\r\n"]}
@@ -16,7 +16,7 @@ export interface FrameworkState {
16
16
  export declare const FrameworkReducer: (state: import("./redux-ts").CombinedReducerState<{
17
17
  configurableUiState: typeof ConfigurableUiReducer;
18
18
  sessionState: typeof SessionStateReducer;
19
- }>, action: import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetSnapMode, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetTheme, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetToolPrompt, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetWidgetOpacity, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetDragInteraction, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetFrameworkVersion, import("../UiFramework").FrameworkVersionId>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetShowWidgetIcon, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.AutoCollapseUnpinnedPanels, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetViewOverlayDisplay, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.AnimateToolSettings, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetActiveIModelId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetAvailableSelectionScopes, import("./redux-ts").DeepReadonlyArray<import("./SessionState").PresentationSelectionScope>>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultIModelViewportControlId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultViewId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultViewState, any>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetNumItemsSelected, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetIModelConnection, any>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetSelectionScope, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.UpdateCursorMenu, import("./redux-ts").DeepReadonlyObject<import("./SessionState").CursorMenuData>>>) => import("./redux-ts").CombinedReducerState<{
19
+ }>, action: import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetSnapMode, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetTheme, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetToolPrompt, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetWidgetOpacity, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetDragInteraction, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetFrameworkVersion, import("../UiFramework").FrameworkVersionId>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetShowWidgetIcon, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.AutoCollapseUnpinnedPanels, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.SetViewOverlayDisplay, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.AnimateToolSettings, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("../configurableui/state").ConfigurableUiActionId.UseToolAsToolSettingsLabel, boolean>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetActiveIModelId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetAvailableSelectionScopes, import("./redux-ts").DeepReadonlyArray<import("./SessionState").PresentationSelectionScope>>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultIModelViewportControlId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultViewId, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetDefaultViewState, any>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetNumItemsSelected, number>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetIModelConnection, any>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.SetSelectionScope, string>> | import("./redux-ts").DeepReadonlyObject<import("./redux-ts").ActionWithPayload<import("./SessionState").SessionStateActionId.UpdateCursorMenu, import("./redux-ts").DeepReadonlyObject<import("./SessionState").CursorMenuData>>>) => import("./redux-ts").CombinedReducerState<{
20
20
  configurableUiState: typeof ConfigurableUiReducer;
21
21
  sessionState: typeof SessionStateReducer;
22
22
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"ClearEmphasisStatusField.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/ClearEmphasisStatusField.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIpE;;GAEG;AACH,UAAU,6BAA8B,SAAQ,gBAAgB;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,eAyC5E"}
1
+ {"version":3,"file":"ClearEmphasisStatusField.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/ClearEmphasisStatusField.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIpE;;GAEG;AACH,UAAU,6BAA8B,SAAQ,gBAAgB;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,eA0C5E"}
@@ -16,6 +16,7 @@ import { HideIsolateEmphasizeActionHandler } from "./HideIsolateEmphasizeManager
16
16
  * @deprecated use clear emphasis tool button option instead.
17
17
  */
18
18
  export function ClearEmphasisStatusField(props) {
19
+ var _a;
19
20
  const [toolTip] = React.useState(UiFramework.translate("tools.clearVisibility"));
20
21
  const activeViewport = useActiveViewport();
21
22
  const [showIndicator, setShowIndicator] = React.useState(false);
@@ -44,6 +45,8 @@ export function ClearEmphasisStatusField(props) {
44
45
  const clearEmphasize = async () => {
45
46
  await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();
46
47
  };
47
- return (React.createElement(Indicator, { toolTip: toolTip, className: classes, opened: false, onClick: clearEmphasize, iconName: "icon-visibility", isInFooterMode: props.isInFooterMode }));
48
+ return (React.createElement(Indicator, { toolTip: toolTip, className: classes, opened: false, onClick: clearEmphasize, iconName: "icon-visibility",
49
+ // eslint-disable-next-line deprecation/deprecation
50
+ isInFooterMode: (_a = props.isInFooterMode) !== null && _a !== void 0 ? _a : true }));
48
51
  }
49
52
  //# sourceMappingURL=ClearEmphasisStatusField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClearEmphasisStatusField.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/ClearEmphasisStatusField.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,6BAA6B;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AASlF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAoC;IAC3E,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,uBAAuB;YACvB,MAAM,oBAAoB,GAAG,CAAC,CAAC,cAAc,IAAI,WAAW,CAAC,iCAAiC,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;YACzI,gBAAgB,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF,uBAAuB;QACvB,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,WAAW,CAAC,iCAAiC,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEzJ,iCAAiC,CAAC,wBAAwB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC1F,qBAAqB;QACrB,IAAI,cAAc;YAChB,cAAc,CAAC,yBAAyB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAE1E,OAAO,GAAG,EAAE;YACV,qBAAqB;YACrB,IAAI,cAAc;gBAChB,cAAc,CAAC,yBAAyB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAE7E,iCAAiC,CAAC,wBAAwB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC/F,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAEvF,uBAAuB;IACvB,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,WAAW,CAAC,iCAAiC,CAAC,qBAAqB,EAAE,CAAC;IAC9E,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,SAAS,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAC,iBAAiB,EACjH,cAAc,EAAE,KAAK,CAAC,cAAc,GAAI,CAC3C,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\n// cSpell:ignore statusfields\r\n\r\nimport * as React from \"react\";\r\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\r\nimport { Indicator } from \"../statusfields/Indicator\";\r\nimport { StatusFieldProps } from \"../statusfields/StatusFieldProps\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { HideIsolateEmphasizeActionHandler } from \"./HideIsolateEmphasizeManager\";\r\n\r\n/** Clear Emphasis StatusField Props\r\n * @beta\r\n */\r\ninterface ClearEmphasisStatusFieldProps extends StatusFieldProps {\r\n hideWhenUnused?: boolean;\r\n}\r\n\r\n/** Clear Emphasis StatusField\r\n * @beta\r\n * @deprecated use clear emphasis tool button option instead.\r\n */\r\nexport function ClearEmphasisStatusField(props: ClearEmphasisStatusFieldProps) {\r\n const [toolTip] = React.useState(UiFramework.translate(\"tools.clearVisibility\"));\r\n const activeViewport = useActiveViewport();\r\n const [showIndicator, setShowIndicator] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const onEmphasizeChange = () => {\r\n // istanbul ignore next\r\n const hasEmphasizeElements = !!activeViewport && UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeViewport);\r\n setShowIndicator(hasEmphasizeElements || !props.hideWhenUnused);\r\n };\r\n\r\n // istanbul ignore next\r\n setShowIndicator((!!activeViewport && UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeViewport)) || !props.hideWhenUnused);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.addListener(onEmphasizeChange);\r\n // istanbul ignore if\r\n if (activeViewport)\r\n activeViewport.onFeatureOverridesChanged.addListener(onEmphasizeChange);\r\n\r\n return () => {\r\n // istanbul ignore if\r\n if (activeViewport)\r\n activeViewport.onFeatureOverridesChanged.removeListener(onEmphasizeChange);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.removeListener(onEmphasizeChange);\r\n };\r\n }, [activeViewport, props.hideWhenUnused]);\r\n\r\n const classes = (showIndicator) ? \"uifw-indicator-fade-in\" : \"uifw-indicator-fade-out\";\r\n\r\n // istanbul ignore next\r\n const clearEmphasize = async () => {\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\r\n };\r\n\r\n return (\r\n <Indicator toolTip={toolTip} className={classes} opened={false} onClick={clearEmphasize} iconName=\"icon-visibility\"\r\n isInFooterMode={props.isInFooterMode} />\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"ClearEmphasisStatusField.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/ClearEmphasisStatusField.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,6BAA6B;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AASlF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAoC;;IAC3E,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,uBAAuB;YACvB,MAAM,oBAAoB,GAAG,CAAC,CAAC,cAAc,IAAI,WAAW,CAAC,iCAAiC,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;YACzI,gBAAgB,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF,uBAAuB;QACvB,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,WAAW,CAAC,iCAAiC,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEzJ,iCAAiC,CAAC,wBAAwB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC1F,qBAAqB;QACrB,IAAI,cAAc;YAChB,cAAc,CAAC,yBAAyB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAE1E,OAAO,GAAG,EAAE;YACV,qBAAqB;YACrB,IAAI,cAAc;gBAChB,cAAc,CAAC,yBAAyB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAE7E,iCAAiC,CAAC,wBAAwB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC/F,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAEvF,uBAAuB;IACvB,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,WAAW,CAAC,iCAAiC,CAAC,qBAAqB,EAAE,CAAC;IAC9E,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,SAAS,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAC,iBAAiB;QACjH,mDAAmD;QACnD,cAAc,EAAE,MAAA,KAAK,CAAC,cAAc,mCAAI,IAAI,GAAI,CACnD,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\n// cSpell:ignore statusfields\r\n\r\nimport * as React from \"react\";\r\nimport { useActiveViewport } from \"../hooks/useActiveViewport\";\r\nimport { Indicator } from \"../statusfields/Indicator\";\r\nimport { StatusFieldProps } from \"../statusfields/StatusFieldProps\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { HideIsolateEmphasizeActionHandler } from \"./HideIsolateEmphasizeManager\";\r\n\r\n/** Clear Emphasis StatusField Props\r\n * @beta\r\n */\r\ninterface ClearEmphasisStatusFieldProps extends StatusFieldProps {\r\n hideWhenUnused?: boolean;\r\n}\r\n\r\n/** Clear Emphasis StatusField\r\n * @beta\r\n * @deprecated use clear emphasis tool button option instead.\r\n */\r\nexport function ClearEmphasisStatusField(props: ClearEmphasisStatusFieldProps) {\r\n const [toolTip] = React.useState(UiFramework.translate(\"tools.clearVisibility\"));\r\n const activeViewport = useActiveViewport();\r\n const [showIndicator, setShowIndicator] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const onEmphasizeChange = () => {\r\n // istanbul ignore next\r\n const hasEmphasizeElements = !!activeViewport && UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeViewport);\r\n setShowIndicator(hasEmphasizeElements || !props.hideWhenUnused);\r\n };\r\n\r\n // istanbul ignore next\r\n setShowIndicator((!!activeViewport && UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(activeViewport)) || !props.hideWhenUnused);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.addListener(onEmphasizeChange);\r\n // istanbul ignore if\r\n if (activeViewport)\r\n activeViewport.onFeatureOverridesChanged.addListener(onEmphasizeChange);\r\n\r\n return () => {\r\n // istanbul ignore if\r\n if (activeViewport)\r\n activeViewport.onFeatureOverridesChanged.removeListener(onEmphasizeChange);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.removeListener(onEmphasizeChange);\r\n };\r\n }, [activeViewport, props.hideWhenUnused]);\r\n\r\n const classes = (showIndicator) ? \"uifw-indicator-fade-in\" : \"uifw-indicator-fade-out\";\r\n\r\n // istanbul ignore next\r\n const clearEmphasize = async () => {\r\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\r\n };\r\n\r\n return (\r\n <Indicator toolTip={toolTip} className={classes} opened={false} onClick={clearEmphasize} iconName=\"icon-visibility\"\r\n // eslint-disable-next-line deprecation/deprecation\r\n isInFooterMode={props.isInFooterMode ?? true} />\r\n );\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAAE,8BAA8B,EAAE,EAAE;IAAE,8BAA8B,EAAE,OAAO,CAAA;CAAE,eA6K7G;AAwBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,8BAA8B,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAS1H"}
1
+ {"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAKH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAAE,8BAA8B,EAAE,EAAE;IAAE,8BAA8B,EAAE,OAAO,CAAA;CAAE,eAwL7G;AAwBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,8BAA8B,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAS1H"}
@@ -53,12 +53,15 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
53
53
  const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription"));
54
54
  const animateToolSettingsTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.animateToolSettingsTitle"));
55
55
  const animateToolSettingsDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.animateToolSettingsDescription"));
56
+ const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.useToolAsToolSettingsLabelTitle"));
57
+ const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.useToolAsToolSettingsLabelDescription"));
56
58
  const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());
57
59
  const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);
58
60
  const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);
59
61
  const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);
60
62
  const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);
61
63
  const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);
64
+ const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);
62
65
  const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());
63
66
  const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);
64
67
  const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);
@@ -66,7 +69,7 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
66
69
  React.useEffect(() => {
67
70
  const syncIdsOfInterest = ["configurableui:set_theme", "configurableui:set_widget_opacity", "configurableui:set-show-widget-icon",
68
71
  "configurableui:set-drag-interaction", "configurableui:set-framework-version",
69
- "configurableui:set-auto-collapse-unpinned-panels", "configurableui:set-animate-tool-settings", SyncUiEventId.ShowHideManagerSettingChange];
72
+ "configurableui:set-auto-collapse-unpinned-panels", "configurableui:set-animate-tool-settings", "configurableui:set-use-tool-as-tool-settings-label", SyncUiEventId.ShowHideManagerSettingChange];
70
73
  const handleSyncUiEvent = (args) => {
71
74
  // istanbul ignore else
72
75
  if (syncIdsOfInterest.some((value) => args.eventIds.has(value))) {
@@ -92,11 +95,13 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
92
95
  setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);
93
96
  if (UiFramework.animateToolSettings !== animateToolSettings)
94
97
  setAnimateToolSettings(UiFramework.animateToolSettings);
98
+ if (UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel)
99
+ setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);
95
100
  }
96
101
  };
97
102
  return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);
98
103
  }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,
99
- useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings]);
104
+ useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings, useToolAsToolSettingsLabel]);
100
105
  const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };
101
106
  const themeOptions = [
102
107
  defaultThemeOption,
@@ -137,6 +142,9 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
137
142
  UiFramework.setAnimateToolSettings(!animateToolSettings);
138
143
  }, [animateToolSettings]);
139
144
  const currentTheme = UiFramework.getColorTheme();
145
+ const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {
146
+ UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);
147
+ }, [useToolAsToolSettingsLabel]);
140
148
  return (React.createElement("div", { className: "uifw-settings" },
141
149
  React.createElement(SettingsItem, { title: themeTitle.current, description: themeDescription.current, settingUi: React.createElement("div", { "data-testid": "select-theme-container", className: "select-theme-container" },
142
150
  React.createElement(Select, { value: currentTheme, onChange: onThemeChange, options: themeOptions, "data-testid": "select-theme", size: "small" })) }),
@@ -148,7 +156,8 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
148
156
  React.createElement(SettingsItem, { title: snapWidgetOpacityTitle.current, description: snapWidgetOpacityDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: snapWidgetOpacity, onChange: onSnapWidgetOpacityChange }) }),
149
157
  React.createElement(SettingsItem, { title: widgetIconTitle.current, description: widgetIconDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: showWidgetIcon, onChange: onWidgetIconChange }) }),
150
158
  React.createElement(SettingsItem, { title: autoCollapseUnpinnedPanelsTitle.current, description: autoCollapseUnpinnedPanelsDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: autoCollapseUnpinnedPanels, onChange: onAutoCollapseUnpinnedPanelsChange }) }),
151
- React.createElement(SettingsItem, { title: animateToolSettingsTitle.current, description: animateToolSettingsDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: animateToolSettings, onChange: OnToggleAnimateToolSettings }) })),
159
+ React.createElement(SettingsItem, { title: animateToolSettingsTitle.current, description: animateToolSettingsDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: animateToolSettings, onChange: OnToggleAnimateToolSettings }) }),
160
+ React.createElement(SettingsItem, { title: useToolAsToolSettingsLabelTitle.current, description: useToolAsToolSettingsLabelDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: useToolAsToolSettingsLabel, onChange: OnToggleUseToolAsToolSettingsLabel }) })),
152
161
  React.createElement(SettingsItem, { title: widgetOpacityTitle.current, description: widgetOpacityDescription.current, settingUi: React.createElement(Slider, { style: { flex: "1" }, values: [widgetOpacity], step: 0.05, onChange: onWidgetOpacityChange, min: 0.20, max: 1.0, maxLabel: "1.0", tickLabels: ["", "", "", "", ""] }) })));
153
162
  }
154
163
  function SettingsItem(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\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.\r\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\r\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\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\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.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"));\r\n const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"));\r\n const animateToolSettingsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\"));\r\n const animateToolSettingsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\r\n const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\",\r\n \"configurableui:set-auto-collapse-unpinned-panels\", \"configurableui:set-animate-tool-settings\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels)\r\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n if (UiFramework.animateToolSettings !== animateToolSettings)\r\n setAnimateToolSettings(UiFramework.animateToolSettings);\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,\r\n useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\r\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\r\n }, [autoCollapseUnpinnedPanels]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\r\n UiFramework.setAnimateToolSettings(!animateToolSettings);\r\n }, [animateToolSettings]);\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n <SettingsItem title={autoCollapseUnpinnedPanelsTitle.current} description={autoCollapseUnpinnedPanelsDescription.current}\r\n settingUi={<ToggleSwitch checked={autoCollapseUnpinnedPanels} onChange={onAutoCollapseUnpinnedPanelsChange} />}\r\n />\r\n <SettingsItem title={animateToolSettingsTitle.current} description={animateToolSettingsDescription.current}\r\n settingUi={<ToggleSwitch checked={animateToolSettings} onChange={OnToggleAnimateToolSettings} />}\r\n />\r\n\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\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.\r\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\r\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\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\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.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"));\r\n const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"));\r\n const animateToolSettingsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\"));\r\n const animateToolSettingsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsDescription\"));\r\n const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"));\r\n const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\r\n const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);\r\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\",\r\n \"configurableui:set-auto-collapse-unpinned-panels\", \"configurableui:set-animate-tool-settings\", \"configurableui:set-use-tool-as-tool-settings-label\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels)\r\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n if (UiFramework.animateToolSettings !== animateToolSettings)\r\n setAnimateToolSettings(UiFramework.animateToolSettings);\r\n if (UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel)\r\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,\r\n useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings, useToolAsToolSettingsLabel]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\r\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\r\n }, [autoCollapseUnpinnedPanels]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\r\n UiFramework.setAnimateToolSettings(!animateToolSettings);\r\n }, [animateToolSettings]);\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\r\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\r\n }, [useToolAsToolSettingsLabel]);\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n <SettingsItem title={autoCollapseUnpinnedPanelsTitle.current} description={autoCollapseUnpinnedPanelsDescription.current}\r\n settingUi={<ToggleSwitch checked={autoCollapseUnpinnedPanels} onChange={onAutoCollapseUnpinnedPanelsChange} />}\r\n />\r\n <SettingsItem title={animateToolSettingsTitle.current} description={animateToolSettingsDescription.current}\r\n settingUi={<ToggleSwitch checked={animateToolSettings} onChange={OnToggleAnimateToolSettings} />}\r\n />\r\n <SettingsItem title={useToolAsToolSettingsLabelTitle.current} description={useToolAsToolSettingsLabelDescription.current}\r\n settingUi={<ToggleSwitch checked={useToolAsToolSettingsLabel} onChange={OnToggleUseToolAsToolSettingsLabel} />}\r\n />\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
@@ -143,6 +143,7 @@ export declare const setPanelSize: (base: {
143
143
  readonly side: PanelSide;
144
144
  };
145
145
  readonly userSized?: boolean | undefined;
146
+ readonly hidden?: boolean | undefined;
146
147
  };
147
148
  };
148
149
  readonly allIds: readonly string[];
@@ -264,6 +265,7 @@ export declare const setPanelSize: (base: {
264
265
  readonly canPopout?: boolean | undefined;
265
266
  readonly userSized?: boolean | undefined;
266
267
  readonly isFloatingStateWindowResizable?: boolean | undefined;
268
+ readonly hideWithUiWhenFloating?: boolean | undefined;
267
269
  };
268
270
  };
269
271
  readonly toolSettings: {