@itwin/appui-react 3.2.0-dev.9 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/CHANGELOG.md +54 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +10 -0
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +22 -0
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
  11. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/accudraw/Calculator.js +3 -2
  14. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  15. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -2
  17. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  18. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +2 -2
  19. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  20. package/lib/cjs/appui-react/configurableui/state.d.ts +9 -1
  21. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/configurableui/state.js +13 -0
  23. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  24. package/lib/cjs/appui-react/content/ContentGroup.d.ts +1 -1
  25. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  27. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +1 -0
  28. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/feedback/ElementTooltip.js +16 -0
  30. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +5 -0
  32. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/frontstage/Frontstage.js +9 -1
  34. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  35. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  36. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +2 -0
  37. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  38. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +18 -9
  40. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  41. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -2
  42. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  43. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  44. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -2
  46. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  47. package/lib/cjs/appui-react/imodel-components/VisibilityTreeBase.scss +3 -3
  48. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -1
  49. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  50. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  51. package/lib/cjs/appui-react/redux/StateManager.d.ts.map +1 -1
  52. package/lib/cjs/appui-react/redux/StateManager.js +1 -0
  53. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  54. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  55. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +25 -5
  56. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  57. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +1 -1
  58. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  60. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  61. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +6 -10
  63. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  64. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -1
  65. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  66. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -3
  67. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  69. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  70. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  71. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +35 -33
  73. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  74. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -1
  75. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  76. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +1 -0
  77. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  78. package/lib/cjs/appui-react/toolbar/Toolbar.js +8 -3
  79. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  80. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +5 -26
  81. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  82. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +16 -16
  83. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  84. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -0
  85. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -0
  86. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +96 -0
  87. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -0
  88. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +1 -18
  89. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  90. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  91. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +33 -0
  92. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -0
  93. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +51 -0
  94. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -0
  95. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +3 -18
  96. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  98. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  99. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +31 -0
  100. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -0
  101. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +79 -0
  102. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -0
  103. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -0
  104. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  105. package/lib/cjs/appui-react/uistate/AppUiSettings.js +8 -0
  106. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  107. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +3 -0
  109. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  110. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  111. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -0
  112. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  113. package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -1
  114. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/utils/PropsHelper.js +10 -0
  116. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  117. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  118. package/lib/cjs/appui-react/utils/UiShowHideManager.js +1 -0
  119. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  120. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +17 -1
  121. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  122. package/lib/cjs/appui-react/widget-panels/Frontstage.js +143 -129
  123. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  124. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  125. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -2
  126. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  127. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +17 -1
  128. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -3
  129. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  130. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +1 -1
  131. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  133. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -1
  134. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  135. package/lib/cjs/appui-react/widgets/WidgetDef.js +14 -4
  136. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  137. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts +1 -1
  138. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/widgets/WidgetHost.js +106 -7
  140. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  141. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/widgets/WidgetManager.js +2 -1
  143. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  144. package/lib/cjs/appui-react.d.ts +3 -0
  145. package/lib/cjs/appui-react.d.ts.map +1 -1
  146. package/lib/cjs/appui-react.js +3 -0
  147. package/lib/cjs/appui-react.js.map +1 -1
  148. package/lib/esm/appui-react/UiFramework.d.ts +10 -0
  149. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  150. package/lib/esm/appui-react/UiFramework.js +22 -0
  151. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  152. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  153. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  154. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  155. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  156. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
  157. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  158. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  159. package/lib/esm/appui-react/accudraw/Calculator.js +5 -4
  160. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  161. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  162. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +5 -3
  163. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  164. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +2 -2
  165. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  166. package/lib/esm/appui-react/configurableui/state.d.ts +9 -1
  167. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  168. package/lib/esm/appui-react/configurableui/state.js +13 -0
  169. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  170. package/lib/esm/appui-react/content/ContentGroup.d.ts +1 -1
  171. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  172. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  173. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +1 -0
  174. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  175. package/lib/esm/appui-react/feedback/ElementTooltip.js +16 -0
  176. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  177. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +5 -0
  178. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  179. package/lib/esm/appui-react/frontstage/Frontstage.js +7 -0
  180. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  181. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  182. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +2 -0
  183. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  184. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  185. package/lib/esm/appui-react/frontstage/FrontstageDef.js +18 -9
  186. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  187. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  188. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  189. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  190. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  191. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -2
  192. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  193. package/lib/esm/appui-react/imodel-components/VisibilityTreeBase.scss +3 -3
  194. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -1
  195. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  196. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  197. package/lib/esm/appui-react/redux/StateManager.d.ts.map +1 -1
  198. package/lib/esm/appui-react/redux/StateManager.js +1 -0
  199. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  200. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  201. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +25 -5
  202. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  203. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +1 -1
  204. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  205. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  206. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  207. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  208. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +6 -10
  209. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  210. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -1
  211. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  212. package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -3
  213. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  214. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  215. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  216. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  217. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  218. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +20 -18
  219. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  220. package/lib/esm/appui-react/theme/ThemeManager.js +1 -1
  221. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  222. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +1 -0
  223. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  224. package/lib/esm/appui-react/toolbar/Toolbar.js +8 -3
  225. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  226. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +5 -26
  227. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  228. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -17
  229. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  230. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -0
  231. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -0
  232. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +92 -0
  233. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -0
  234. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +1 -18
  235. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  236. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  237. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +33 -0
  238. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -0
  239. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +47 -0
  240. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -0
  241. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +3 -18
  242. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  243. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  244. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  245. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +31 -0
  246. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -0
  247. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +75 -0
  248. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -0
  249. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -0
  250. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  251. package/lib/esm/appui-react/uistate/AppUiSettings.js +8 -0
  252. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  253. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -1
  254. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +3 -0
  255. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  256. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  257. package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -0
  258. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  259. package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -1
  260. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  261. package/lib/esm/appui-react/utils/PropsHelper.js +11 -1
  262. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  263. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  264. package/lib/esm/appui-react/utils/UiShowHideManager.js +1 -0
  265. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  266. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +17 -1
  267. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  268. package/lib/esm/appui-react/widget-panels/Frontstage.js +144 -130
  269. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  270. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  271. package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -2
  272. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  273. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +17 -1
  274. package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -3
  275. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  276. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +1 -1
  277. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  278. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  279. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -1
  280. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  281. package/lib/esm/appui-react/widgets/WidgetDef.js +14 -4
  282. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  283. package/lib/esm/appui-react/widgets/WidgetHost.d.ts +1 -1
  284. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  285. package/lib/esm/appui-react/widgets/WidgetHost.js +106 -7
  286. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  287. package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  288. package/lib/esm/appui-react/widgets/WidgetManager.js +2 -1
  289. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  290. package/lib/esm/appui-react.d.ts +3 -0
  291. package/lib/esm/appui-react.d.ts.map +1 -1
  292. package/lib/esm/appui-react.js +3 -0
  293. package/lib/esm/appui-react.js.map +1 -1
  294. package/lib/public/locales/en/UiFramework.json +7 -2
  295. package/package.json +37 -37
@@ -0,0 +1,75 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module StandardUiItemsProvider
7
+ */
8
+ import * as React from "react";
9
+ import { StatusBarSection } from "@itwin/appui-abstract";
10
+ import { FooterSeparator } from "@itwin/appui-layout-react";
11
+ import { StatusBarItemUtilities } from "../statusbar/StatusBarItemUtilities";
12
+ import { ToolAssistanceField } from "../statusfields/toolassistance/ToolAssistanceField";
13
+ import { withStatusFieldProps } from "../statusbar/withStatusFieldProps";
14
+ import { MessageCenterField } from "../statusfields/MessageCenter";
15
+ import { withMessageCenterFieldProps } from "../statusbar/withMessageCenterFieldProps";
16
+ import { ActivityCenterField } from "../statusfields/ActivityCenter";
17
+ import { SnapModeField } from "../statusfields/SnapMode";
18
+ import { SelectionInfoField } from "../statusfields/SelectionInfo";
19
+ import { TileLoadingIndicator } from "../statusfields/tileloading/TileLoadingIndicator";
20
+ import { SelectionScopeField } from "../statusfields/SelectionScope";
21
+ /**
22
+ * Provide standard statusbar fields for the SimpleStatusbarWidget
23
+ * @beta
24
+ */
25
+ export class StandardStatusbarUiItemsProvider {
26
+ constructor(_defaultItems) {
27
+ this._defaultItems = _defaultItems;
28
+ }
29
+ get id() { return "appui-react:StandardStatusbarUiItemsProvider"; }
30
+ provideStatusBarItems(_stageId, _stageUsage, _stageAppData) {
31
+ var _a;
32
+ const statusBarItems = [];
33
+ // istanbul ignore else
34
+ if (!this._defaultItems || this._defaultItems.messageCenter) {
35
+ const MessageCenter = withMessageCenterFieldProps(MessageCenterField);
36
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.MessageCenter", StatusBarSection.Left, 10, React.createElement(MessageCenter, null)));
37
+ }
38
+ // istanbul ignore else
39
+ if (!this._defaultItems || this._defaultItems.toolAssistance) {
40
+ if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)
41
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(FooterSeparator, null)));
42
+ const ToolAssistance = withStatusFieldProps(ToolAssistanceField);
43
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ToolAssistance", StatusBarSection.Left, 20, React.createElement(ToolAssistance, null)));
44
+ if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)
45
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PostToolAssistance", StatusBarSection.Left, 25, React.createElement(FooterSeparator, null)));
46
+ }
47
+ // istanbul ignore else
48
+ if ((_a = this._defaultItems) === null || _a === void 0 ? void 0 : _a.activityCenter) {
49
+ const ActivityCenter = withStatusFieldProps(ActivityCenterField);
50
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ActivityCenter", StatusBarSection.Left, 30, React.createElement(ActivityCenter, null)));
51
+ }
52
+ // istanbul ignore else
53
+ if (!this._defaultItems || this._defaultItems.accuSnapModePicker) {
54
+ const SnapMode = withMessageCenterFieldProps(SnapModeField);
55
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SnapMode", StatusBarSection.Center, 10, React.createElement(SnapMode, null)));
56
+ }
57
+ // istanbul ignore else
58
+ if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {
59
+ const TileLoadIndicator = withStatusFieldProps(TileLoadingIndicator);
60
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.TileLoadIndicator", StatusBarSection.Right, 10, React.createElement(TileLoadIndicator, null)));
61
+ }
62
+ // istanbul ignore else
63
+ if (!this._defaultItems || this._defaultItems.selectionScope) {
64
+ const SelectionScope = withStatusFieldProps(SelectionScopeField);
65
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionScope", StatusBarSection.Right, 20, React.createElement(SelectionScope, null)));
66
+ }
67
+ // istanbul ignore else
68
+ if (!this._defaultItems || this._defaultItems.selectionInfo) {
69
+ const SelectionInfo = withStatusFieldProps(SelectionInfoField);
70
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionInfo", StatusBarSection.Right, 30, React.createElement(SelectionInfo, null)));
71
+ }
72
+ return statusBarItems;
73
+ }
74
+ }
75
+ //# sourceMappingURL=StandardStatusbarUiItemsProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StandardStatusbarUiItemsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonStatusBarItem, StatusBarSection, UiItemsProvider } from \"@itwin/appui-abstract\";\r\nimport { FooterSeparator } from \"@itwin/appui-layout-react\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { ToolAssistanceField } from \"../statusfields/toolassistance/ToolAssistanceField\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { MessageCenterField } from \"../statusfields/MessageCenter\";\r\nimport { withMessageCenterFieldProps } from \"../statusbar/withMessageCenterFieldProps\";\r\nimport { ActivityCenterField } from \"../statusfields/ActivityCenter\";\r\nimport { SnapModeField } from \"../statusfields/SnapMode\";\r\nimport { SelectionInfoField } from \"../statusfields/SelectionInfo\";\r\nimport { TileLoadingIndicator } from \"../statusfields/tileloading/TileLoadingIndicator\";\r\nimport { SelectionScopeField } from \"../statusfields/SelectionScope\";\r\n\r\n/**\r\n * Defines what items to include from the provider. If any items are\r\n * specified then only those items will be added to statusbar.\r\n * @public\r\n */\r\nexport interface DefaultStatusbarItems {\r\n messageCenter?: boolean;\r\n preToolAssistanceSeparator?: boolean;\r\n toolAssistance?: boolean;\r\n postToolAssistanceSeparator?: boolean;\r\n activityCenter?: boolean;\r\n accuSnapModePicker?: boolean;\r\n tileLoadIndicator?: boolean;\r\n selectionScope?: boolean;\r\n selectionInfo?: boolean;\r\n}\r\n\r\n/**\r\n * Provide standard statusbar fields for the SimpleStatusbarWidget\r\n * @beta\r\n */\r\nexport class StandardStatusbarUiItemsProvider implements UiItemsProvider {\r\n public get id(): string { return \"appui-react:StandardStatusbarUiItemsProvider\"; }\r\n\r\n constructor(private _defaultItems?: DefaultStatusbarItems) { }\r\n\r\n public provideStatusBarItems(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n // istanbul ignore else\r\n if (!this._defaultItems || this._defaultItems.messageCenter) {\r\n const MessageCenter = withMessageCenterFieldProps(MessageCenterField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.MessageCenter\", StatusBarSection.Left, 10, <MessageCenter />));\r\n }\r\n // istanbul ignore else\r\n if (!this._defaultItems || this._defaultItems.toolAssistance) {\r\n if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.PreToolAssistance\", StatusBarSection.Left, 15, <FooterSeparator />));\r\n\r\n const ToolAssistance = withStatusFieldProps(ToolAssistanceField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.ToolAssistance\", StatusBarSection.Left, 20, <ToolAssistance />));\r\n\r\n if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.PostToolAssistance\", StatusBarSection.Left, 25, <FooterSeparator />));\r\n }\r\n // istanbul ignore else\r\n if (this._defaultItems?.activityCenter) {\r\n const ActivityCenter = withStatusFieldProps(ActivityCenterField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.ActivityCenter\", StatusBarSection.Left, 30, <ActivityCenter />));\r\n }\r\n // istanbul ignore else\r\n if (!this._defaultItems || this._defaultItems.accuSnapModePicker) {\r\n const SnapMode = withMessageCenterFieldProps(SnapModeField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SnapMode\", StatusBarSection.Center, 10, <SnapMode />));\r\n }\r\n\r\n // istanbul ignore else\r\n if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {\r\n const TileLoadIndicator = withStatusFieldProps(TileLoadingIndicator);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.TileLoadIndicator\", StatusBarSection.Right, 10, <TileLoadIndicator />));\r\n }\r\n\r\n // istanbul ignore else\r\n if (!this._defaultItems || this._defaultItems.selectionScope) {\r\n const SelectionScope = withStatusFieldProps(SelectionScopeField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SelectionScope\", StatusBarSection.Right, 20, <SelectionScope />));\r\n }\r\n\r\n // istanbul ignore else\r\n if (!this._defaultItems || this._defaultItems.selectionInfo) {\r\n const SelectionInfo = withStatusFieldProps(SelectionInfoField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SelectionInfo\", StatusBarSection.Right, 30, <SelectionInfo />));\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n}\r\n"]}
@@ -12,6 +12,9 @@ export interface InitialAppUiSettings {
12
12
  frameworkVersion: FrameworkVersionId;
13
13
  widgetOpacity: number;
14
14
  showWidgetIcon?: boolean;
15
+ /** @alpha */
16
+ autoCollapseUnpinnedPanels?: boolean;
17
+ animateToolSettings?: boolean;
15
18
  }
16
19
  /** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,
17
20
  * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor
@@ -34,6 +37,8 @@ export declare class AppUiSettings implements UserSettingsProvider {
34
37
  frameworkVersion: UiStateEntry<FrameworkVersionId>;
35
38
  widgetOpacity: UiStateEntry<number>;
36
39
  showWidgetIcon: UiStateEntry<boolean>;
40
+ autoCollapseUnpinnedPanels: UiStateEntry<boolean>;
41
+ animateToolSettings: UiStateEntry<boolean>;
37
42
  private setColorTheme;
38
43
  constructor(defaults: Partial<InitialAppUiSettings>);
39
44
  private handleSyncUiEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"AppUiSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAe,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIvF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,oBAAoB;IACxD,SAAgB,UAAU,2BAA2B;IAErD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAmB;IACnD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,sBAAsB,CAAS;IAEhC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACnD,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO,CAAC,aAAa,CAInB;gBAEU,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC;IA4BnD,OAAO,CAAC,iBAAiB,CAqBvB;IAEW,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtE"}
1
+ {"version":3,"file":"AppUiSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAe,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIvF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,oBAAoB;IACxD,SAAgB,UAAU,2BAA2B;IAErD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAmB;IACnD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,sBAAsB,CAAS;IAEhC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACnD,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,0BAA0B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,mBAAmB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAElD,OAAO,CAAC,aAAa,CAInB;gBAEU,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAsCnD,OAAO,CAAC,iBAAiB,CA2BvB;IAEW,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtE"}
@@ -43,8 +43,12 @@ export class AppUiSettings {
43
43
  await this.frameworkVersion.saveSetting(UiFramework.getUiStateStorage());
44
44
  if (args.eventIds.has("configurableui:set-show-widget-icon"))
45
45
  await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());
46
+ if (args.eventIds.has("configurableui:set-auto-collapse-unpinned-panels"))
47
+ await this.autoCollapseUnpinnedPanels.saveSetting(UiFramework.getUiStateStorage());
46
48
  if (args.eventIds.has("configurableui:set_widget_opacity"))
47
49
  await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());
50
+ if (args.eventIds.has("configurableui:set-animate-tool-settings"))
51
+ await this.animateToolSettings.saveSetting(UiFramework.getUiStateStorage());
48
52
  };
49
53
  this._settings = [];
50
54
  this.colorTheme = new UiStateEntry(AppUiSettings._settingNamespace, "ColorTheme", UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);
@@ -53,10 +57,14 @@ export class AppUiSettings {
53
57
  this._settings.push(this.dragInteraction);
54
58
  this.showWidgetIcon = new UiStateEntry(AppUiSettings._settingNamespace, "ShowWidgetIcon", () => UiFramework.showWidgetIcon, (value) => UiFramework.setShowWidgetIcon(value), defaults.showWidgetIcon);
55
59
  this._settings.push(this.showWidgetIcon);
60
+ this.autoCollapseUnpinnedPanels = new UiStateEntry(AppUiSettings._settingNamespace, "AutoCollapseUnpinnedPanels", () => UiFramework.autoCollapseUnpinnedPanels, (value) => UiFramework.setAutoCollapseUnpinnedPanels(value), defaults.autoCollapseUnpinnedPanels);
61
+ this._settings.push(this.autoCollapseUnpinnedPanels);
56
62
  this.frameworkVersion = new UiStateEntry(AppUiSettings._settingNamespace, "FrameworkVersion", () => UiFramework.uiVersion, (value) => UiFramework.setUiVersion(value), defaults.frameworkVersion);
57
63
  this._settings.push(this.frameworkVersion);
58
64
  this.widgetOpacity = new UiStateEntry(AppUiSettings._settingNamespace, "WidgetOpacity", () => UiFramework.getWidgetOpacity(), (value) => UiFramework.setWidgetOpacity(value), defaults.widgetOpacity);
59
65
  this._settings.push(this.widgetOpacity);
66
+ this.animateToolSettings = new UiStateEntry(AppUiSettings._settingNamespace, "AnimateToolSettings", () => UiFramework.animateToolSettings, (value) => UiFramework.setAnimateToolSettings(value), defaults.animateToolSettings);
67
+ this._settings.push(this.animateToolSettings);
60
68
  SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);
61
69
  }
62
70
  async apply(storage) {
@@ -1 +1 @@
1
- {"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport { UiStateEntry, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { FrameworkVersionId, UiFramework, UserSettingsProvider } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui\r\n\r\n/** Default values that may be specified for [[AppUiSettings]].\r\n * @public\r\n */\r\nexport interface InitialAppUiSettings {\r\n colorTheme: string;\r\n dragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId;\r\n widgetOpacity: number;\r\n showWidgetIcon?: boolean;\r\n}\r\n\r\n/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,\r\n * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor\r\n * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with\r\n * defaults specific to their application. This would be done by calling the following.\r\n *\r\n * ```ts\r\n * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class AppUiSettings implements UserSettingsProvider {\r\n public readonly providerId = \"AppUiSettingsProvider\";\r\n\r\n private static _settingNamespace = \"AppUiSettings\";\r\n private _settings: Array<UiStateEntry<any>> = [];\r\n private _applyingLocalSettings = false;\r\n\r\n public colorTheme: UiStateEntry<string>;\r\n public dragInteraction: UiStateEntry<boolean>;\r\n public frameworkVersion: UiStateEntry<FrameworkVersionId>;\r\n public widgetOpacity: UiStateEntry<number>;\r\n public showWidgetIcon: UiStateEntry<boolean>;\r\n\r\n private setColorTheme = (theme: string) => {\r\n UiFramework.setColorTheme(theme);\r\n // always store to local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", theme);\r\n };\r\n\r\n constructor(defaults: Partial<InitialAppUiSettings>) {\r\n this._settings = [];\r\n\r\n this.colorTheme = new UiStateEntry<string>(AppUiSettings._settingNamespace, \"ColorTheme\", UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);\r\n this._settings.push(this.colorTheme);\r\n\r\n this.dragInteraction = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"DragInteraction\",\r\n () => UiFramework.useDragInteraction,\r\n (value: boolean) => UiFramework.setUseDragInteraction(value), defaults.dragInteraction);\r\n this._settings.push(this.dragInteraction);\r\n\r\n this.showWidgetIcon = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"ShowWidgetIcon\",\r\n () => UiFramework.showWidgetIcon,\r\n (value: boolean) => UiFramework.setShowWidgetIcon(value), defaults.showWidgetIcon);\r\n this._settings.push(this.showWidgetIcon);\r\n\r\n this.frameworkVersion = new UiStateEntry<FrameworkVersionId>(AppUiSettings._settingNamespace, \"FrameworkVersion\",\r\n () => UiFramework.uiVersion,\r\n (value: FrameworkVersionId) => UiFramework.setUiVersion(value), defaults.frameworkVersion);\r\n this._settings.push(this.frameworkVersion);\r\n\r\n this.widgetOpacity = new UiStateEntry<number>(AppUiSettings._settingNamespace, \"WidgetOpacity\",\r\n () => UiFramework.getWidgetOpacity(), (value: number) => UiFramework.setWidgetOpacity(value), defaults.widgetOpacity);\r\n this._settings.push(this.widgetOpacity);\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);\r\n }\r\n\r\n private handleSyncUiEvent = async (args: UiSyncEventArgs) => {\r\n if (this._applyingLocalSettings)\r\n return;\r\n\r\n if (args.eventIds.has(\"configurableui:set_theme\")) {\r\n await this.colorTheme.saveSetting(UiFramework.getUiStateStorage());\r\n // always store as default theme in local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", UiFramework.getColorTheme());\r\n }\r\n\r\n if (args.eventIds.has(\"configurableui:set-drag-interaction\"))\r\n await this.dragInteraction.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-framework-version\"))\r\n await this.frameworkVersion.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-show-widget-icon\"))\r\n await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set_widget_opacity\"))\r\n await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());\r\n };\r\n\r\n public async apply(storage: UiStateStorage): Promise<void> {\r\n this._applyingLocalSettings = true;\r\n for await (const setting of this._settings) {\r\n await setting.getSettingAndApplyValue(storage);\r\n }\r\n this._applyingLocalSettings = false;\r\n }\r\n\r\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\r\n await this.apply(storage);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport { UiStateEntry, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { FrameworkVersionId, UiFramework, UserSettingsProvider } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui\r\n\r\n/** Default values that may be specified for [[AppUiSettings]].\r\n * @public\r\n */\r\nexport interface InitialAppUiSettings {\r\n colorTheme: string;\r\n dragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId;\r\n widgetOpacity: number;\r\n showWidgetIcon?: boolean;\r\n /** @alpha */\r\n autoCollapseUnpinnedPanels?: boolean;\r\n animateToolSettings?: boolean;\r\n}\r\n\r\n/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,\r\n * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor\r\n * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with\r\n * defaults specific to their application. This would be done by calling the following.\r\n *\r\n * ```ts\r\n * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class AppUiSettings implements UserSettingsProvider {\r\n public readonly providerId = \"AppUiSettingsProvider\";\r\n\r\n private static _settingNamespace = \"AppUiSettings\";\r\n private _settings: Array<UiStateEntry<any>> = [];\r\n private _applyingLocalSettings = false;\r\n\r\n public colorTheme: UiStateEntry<string>;\r\n public dragInteraction: UiStateEntry<boolean>;\r\n public frameworkVersion: UiStateEntry<FrameworkVersionId>;\r\n public widgetOpacity: UiStateEntry<number>;\r\n public showWidgetIcon: UiStateEntry<boolean>;\r\n public autoCollapseUnpinnedPanels: UiStateEntry<boolean>;\r\n public animateToolSettings: UiStateEntry<boolean>;\r\n\r\n private setColorTheme = (theme: string) => {\r\n UiFramework.setColorTheme(theme);\r\n // always store to local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", theme);\r\n };\r\n\r\n constructor(defaults: Partial<InitialAppUiSettings>) {\r\n this._settings = [];\r\n\r\n this.colorTheme = new UiStateEntry<string>(AppUiSettings._settingNamespace, \"ColorTheme\", UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);\r\n this._settings.push(this.colorTheme);\r\n\r\n this.dragInteraction = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"DragInteraction\",\r\n () => UiFramework.useDragInteraction,\r\n (value: boolean) => UiFramework.setUseDragInteraction(value), defaults.dragInteraction);\r\n this._settings.push(this.dragInteraction);\r\n\r\n this.showWidgetIcon = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"ShowWidgetIcon\",\r\n () => UiFramework.showWidgetIcon,\r\n (value: boolean) => UiFramework.setShowWidgetIcon(value), defaults.showWidgetIcon);\r\n this._settings.push(this.showWidgetIcon);\r\n\r\n this.autoCollapseUnpinnedPanels = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AutoCollapseUnpinnedPanels\",\r\n () => UiFramework.autoCollapseUnpinnedPanels,\r\n (value: boolean) => UiFramework.setAutoCollapseUnpinnedPanels(value), defaults.autoCollapseUnpinnedPanels);\r\n this._settings.push(this.autoCollapseUnpinnedPanels);\r\n\r\n this.frameworkVersion = new UiStateEntry<FrameworkVersionId>(AppUiSettings._settingNamespace, \"FrameworkVersion\",\r\n () => UiFramework.uiVersion,\r\n (value: FrameworkVersionId) => UiFramework.setUiVersion(value), defaults.frameworkVersion);\r\n this._settings.push(this.frameworkVersion);\r\n\r\n this.widgetOpacity = new UiStateEntry<number>(AppUiSettings._settingNamespace, \"WidgetOpacity\",\r\n () => UiFramework.getWidgetOpacity(), (value: number) => UiFramework.setWidgetOpacity(value), defaults.widgetOpacity);\r\n this._settings.push(this.widgetOpacity);\r\n\r\n this.animateToolSettings = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AnimateToolSettings\",\r\n () => UiFramework.animateToolSettings,\r\n (value: boolean) => UiFramework.setAnimateToolSettings(value), defaults.animateToolSettings);\r\n this._settings.push(this.animateToolSettings);\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);\r\n }\r\n\r\n private handleSyncUiEvent = async (args: UiSyncEventArgs) => {\r\n if (this._applyingLocalSettings)\r\n return;\r\n\r\n if (args.eventIds.has(\"configurableui:set_theme\")) {\r\n await this.colorTheme.saveSetting(UiFramework.getUiStateStorage());\r\n // always store as default theme in local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", UiFramework.getColorTheme());\r\n }\r\n\r\n if (args.eventIds.has(\"configurableui:set-drag-interaction\"))\r\n await this.dragInteraction.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-framework-version\"))\r\n await this.frameworkVersion.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-show-widget-icon\"))\r\n await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-auto-collapse-unpinned-panels\"))\r\n await this.autoCollapseUnpinnedPanels.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set_widget_opacity\"))\r\n await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-animate-tool-settings\"))\r\n await this.animateToolSettings.saveSetting(UiFramework.getUiStateStorage());\r\n };\r\n\r\n public async apply(storage: UiStateStorage): Promise<void> {\r\n this._applyingLocalSettings = true;\r\n for await (const setting of this._settings) {\r\n await setting.getSettingAndApplyValue(storage);\r\n }\r\n this._applyingLocalSettings = false;\r\n }\r\n\r\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\r\n await this.apply(storage);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UserSettingsStorage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/UserSettingsStorage.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAwB,MAAM,mBAAmB,CAAC;AAE/F;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IAC3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB1E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAezF,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAa3F"}
1
+ {"version":3,"file":"UserSettingsStorage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/UserSettingsStorage.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAwB,MAAM,mBAAmB,CAAC;AAE/F;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IAC3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiB1E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgBzF,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAc3F"}
@@ -19,6 +19,7 @@ export class UserSettingsStorage {
19
19
  const accessToken = await IModelApp.getAccessToken();
20
20
  if (accessToken === "")
21
21
  return { status: UiStateStorageStatus.AuthorizationError };
22
+ // istanbul ignore next
22
23
  if (!IModelApp.userPreferences)
23
24
  return { status: UiStateStorageStatus.Uninitialized };
24
25
  const result = await IModelApp.userPreferences.get({ accessToken, key: `${namespace}.${name}` });
@@ -28,6 +29,7 @@ export class UserSettingsStorage {
28
29
  };
29
30
  }
30
31
  async saveSetting(namespace, name, setting) {
32
+ // istanbul ignore next
31
33
  if (!IModelApp.userPreferences)
32
34
  return { status: UiStateStorageStatus.Uninitialized };
33
35
  const accessToken = await IModelApp.getAccessToken();
@@ -40,6 +42,7 @@ export class UserSettingsStorage {
40
42
  };
41
43
  }
42
44
  async deleteSetting(namespace, name) {
45
+ // istanbul ignore next
43
46
  if (!IModelApp.userPreferences)
44
47
  return { status: UiStateStorageStatus.Uninitialized };
45
48
  const accessToken = await IModelApp.getAccessToken();
@@ -1 +1 @@
1
- {"version":3,"file":"UserSettingsStorage.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/UserSettingsStorage.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAwC,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE/F;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACvB,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,IAAY;QACrD,IAAI,SAAS,KAAK,SAAS,CAAC,mBAAmB;YAC7C,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,WAAW,KAAK,EAAE;YACpB,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAE7D,IAAI,CAAC,SAAS,CAAC,eAAe;YAC5B,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACjG,OAAO;YACL,MAAM,EAAE,oBAAoB,CAAC,OAAO;YACpC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,IAAY,EAAE,OAAY;QACpE,IAAI,CAAC,SAAS,CAAC,eAAe;YAC5B,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,CAAC;QAExD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,WAAW,KAAK,EAAE;YACpB,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAE7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACpH,OAAO;YACL,MAAM,EAAE,oBAAoB,CAAC,OAAO;YACpC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,IAAY;QACxD,IAAI,CAAC,SAAS,CAAC,eAAe;YAC5B,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,CAAC;QAExD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,WAAW,KAAK,EAAE;YACpB,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACpG,OAAO;YACL,MAAM,EAAE,oBAAoB,CAAC,OAAO;YACpC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;CACF","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 UiStateStorage\r\n */\r\n\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { UiStateStorage, UiStateStorageResult, UiStateStorageStatus } from \"@itwin/core-react\";\r\n\r\n/**\r\n * Implementation of [[UiStateStorage]] that uses settings admin from [IModelApp.userPreferences]($core-frontend).\r\n * @public\r\n * @deprecated Use [IModelApp.userPreferences]($core-frontend) API directly to store user preferences as a replacement.\r\n */\r\nexport class UserSettingsStorage implements UiStateStorage {\r\n public async getSetting(namespace: string, name: string): Promise<UiStateStorageResult> {\r\n if (undefined === IModelApp.authorizationClient)\r\n return { status: UiStateStorageStatus.AuthorizationError };\r\n const accessToken = await IModelApp.getAccessToken();\r\n if (accessToken === \"\")\r\n return { status: UiStateStorageStatus.AuthorizationError };\r\n\r\n if (!IModelApp.userPreferences)\r\n return { status: UiStateStorageStatus.Uninitialized };\r\n const result = await IModelApp.userPreferences.get({ accessToken, key: `${namespace}.${name}` });\r\n return {\r\n status: UiStateStorageStatus.Success,\r\n setting: result,\r\n };\r\n }\r\n\r\n public async saveSetting(namespace: string, name: string, setting: any): Promise<UiStateStorageResult> {\r\n if (!IModelApp.userPreferences)\r\n return { status: UiStateStorageStatus.Uninitialized };\r\n\r\n const accessToken = await IModelApp.getAccessToken();\r\n if (accessToken === \"\")\r\n return { status: UiStateStorageStatus.AuthorizationError };\r\n\r\n const result = await IModelApp.userPreferences.save({ accessToken, content: setting, key: `${namespace}.${name}` });\r\n return {\r\n status: UiStateStorageStatus.Success,\r\n setting: result,\r\n };\r\n }\r\n\r\n public async deleteSetting(namespace: string, name: string): Promise<UiStateStorageResult> {\r\n if (!IModelApp.userPreferences)\r\n return { status: UiStateStorageStatus.Uninitialized };\r\n\r\n const accessToken = await IModelApp.getAccessToken();\r\n if (accessToken === \"\")\r\n return { status: UiStateStorageStatus.AuthorizationError };\r\n const result = await IModelApp.userPreferences.delete({ accessToken, key: `${namespace}.${name}` });\r\n return {\r\n status: UiStateStorageStatus.Success,\r\n setting: result,\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"UserSettingsStorage.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/UserSettingsStorage.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAwC,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE/F;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACvB,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,IAAY;QACrD,IAAI,SAAS,KAAK,SAAS,CAAC,mBAAmB;YAC7C,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,WAAW,KAAK,EAAE;YACpB,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAE7D,uBAAuB;QACvB,IAAI,CAAC,SAAS,CAAC,eAAe;YAC5B,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACjG,OAAO;YACL,MAAM,EAAE,oBAAoB,CAAC,OAAO;YACpC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,IAAY,EAAE,OAAY;QACpE,uBAAuB;QACvB,IAAI,CAAC,SAAS,CAAC,eAAe;YAC5B,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,CAAC;QAExD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,WAAW,KAAK,EAAE;YACpB,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAE7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACpH,OAAO;YACL,MAAM,EAAE,oBAAoB,CAAC,OAAO;YACpC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,IAAY;QACxD,uBAAuB;QACvB,IAAI,CAAC,SAAS,CAAC,eAAe;YAC5B,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,CAAC;QAExD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,WAAW,KAAK,EAAE;YACpB,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACpG,OAAO;YACL,MAAM,EAAE,oBAAoB,CAAC,OAAO;YACpC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;CACF","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 UiStateStorage\r\n */\r\n\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { UiStateStorage, UiStateStorageResult, UiStateStorageStatus } from \"@itwin/core-react\";\r\n\r\n/**\r\n * Implementation of [[UiStateStorage]] that uses settings admin from [IModelApp.userPreferences]($core-frontend).\r\n * @public\r\n * @deprecated Use [IModelApp.userPreferences]($core-frontend) API directly to store user preferences as a replacement.\r\n */\r\nexport class UserSettingsStorage implements UiStateStorage {\r\n public async getSetting(namespace: string, name: string): Promise<UiStateStorageResult> {\r\n if (undefined === IModelApp.authorizationClient)\r\n return { status: UiStateStorageStatus.AuthorizationError };\r\n const accessToken = await IModelApp.getAccessToken();\r\n if (accessToken === \"\")\r\n return { status: UiStateStorageStatus.AuthorizationError };\r\n\r\n // istanbul ignore next\r\n if (!IModelApp.userPreferences)\r\n return { status: UiStateStorageStatus.Uninitialized };\r\n const result = await IModelApp.userPreferences.get({ accessToken, key: `${namespace}.${name}` });\r\n return {\r\n status: UiStateStorageStatus.Success,\r\n setting: result,\r\n };\r\n }\r\n\r\n public async saveSetting(namespace: string, name: string, setting: any): Promise<UiStateStorageResult> {\r\n // istanbul ignore next\r\n if (!IModelApp.userPreferences)\r\n return { status: UiStateStorageStatus.Uninitialized };\r\n\r\n const accessToken = await IModelApp.getAccessToken();\r\n if (accessToken === \"\")\r\n return { status: UiStateStorageStatus.AuthorizationError };\r\n\r\n const result = await IModelApp.userPreferences.save({ accessToken, content: setting, key: `${namespace}.${name}` });\r\n return {\r\n status: UiStateStorageStatus.Success,\r\n setting: result,\r\n };\r\n }\r\n\r\n public async deleteSetting(namespace: string, name: string): Promise<UiStateStorageResult> {\r\n // istanbul ignore next\r\n if (!IModelApp.userPreferences)\r\n return { status: UiStateStorageStatus.Uninitialized };\r\n\r\n const accessToken = await IModelApp.getAccessToken();\r\n if (accessToken === \"\")\r\n return { status: UiStateStorageStatus.AuthorizationError };\r\n const result = await IModelApp.userPreferences.delete({ accessToken, key: `${namespace}.${name}` });\r\n return {\r\n status: UiStateStorageStatus.Success,\r\n setting: result,\r\n };\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useUiStateStorage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/useUiStateStorage.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAqB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAItE,cAAc;AACd,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD;AAED,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,+BAA+D,CAAC;AAGlG;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,eAkBnE"}
1
+ {"version":3,"file":"useUiStateStorage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/useUiStateStorage.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAqB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAItE,cAAc;AACd,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD;AAED,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,+BAA+D,CAAC;AAGlG;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,eAmBnE"}
@@ -22,6 +22,7 @@ UiStateStorageContext.displayName = "uifw:UiStateStorageContext";
22
22
  export function UiStateStorageHandler(props) {
23
23
  const [stateStorage, setStateStorage] = React.useState(UiFramework.getUiStateStorage());
24
24
  React.useEffect(() => {
25
+ // istanbul ignore next
25
26
  const handleSyncUiEvent = (args) => {
26
27
  if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [SyncUiEventId.UiStateStorageChanged]))
27
28
  setStateStorage(UiFramework.getUiStateStorage());
@@ -1 +1 @@
1
- {"version":3,"file":"useUiStateStorage.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/useUiStateStorage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAkB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEvF,cAAc;AACd,MAAM,UAAU,wBAAwB;IACtC,OAAO,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AACjD,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAiB,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,2DAA2D;AAC9J,qBAAqB,CAAC,WAAW,GAAG,4BAA4B,CAAC;AASjE;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA8B;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAExF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,IAAI,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBAChG,eAAe,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,qBAAqB,CAAC,QAAQ,IAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,YAAY,GACnB,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 UiStateStorage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { LocalStateStorage, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\n\r\n/** @public */\r\nexport function useUiStateStorageHandler(): UiStateStorage {\r\n return React.useContext(UiStateStorageContext);\r\n}\r\n\r\n/** @internal */\r\nexport const UiStateStorageContext = React.createContext<UiStateStorage>(new LocalStateStorage()); // eslint-disable-line @typescript-eslint/naming-convention\r\nUiStateStorageContext.displayName = \"uifw:UiStateStorageContext\";\r\n\r\n/** Properties for the [[UiStateStorageHandler]] component.\r\n * @public\r\n */\r\nexport interface UiSettingsProviderProps {\r\n children?: React.ReactNode;\r\n}\r\n\r\n/** Allows to provide a custom [[UiStateStorage]] implementation to persist UI settings.\r\n * @public\r\n */\r\nexport function UiStateStorageHandler(props: UiSettingsProviderProps) {\r\n const [stateStorage, setStateStorage] = React.useState(UiFramework.getUiStateStorage());\r\n\r\n React.useEffect(() => {\r\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [SyncUiEventId.UiStateStorageChanged]))\r\n setStateStorage(UiFramework.getUiStateStorage());\r\n };\r\n\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n });\r\n\r\n return (\r\n <UiStateStorageContext.Provider\r\n children={props.children} // eslint-disable-line react/no-children-prop\r\n value={stateStorage}\r\n />\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"useUiStateStorage.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/useUiStateStorage.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAkB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEvF,cAAc;AACd,MAAM,UAAU,wBAAwB;IACtC,OAAO,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AACjD,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAiB,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,2DAA2D;AAC9J,qBAAqB,CAAC,WAAW,GAAG,4BAA4B,CAAC;AASjE;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA8B;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAExF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,IAAI,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBAChG,eAAe,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,qBAAqB,CAAC,QAAQ,IAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,YAAY,GACnB,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 UiStateStorage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { LocalStateStorage, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\n\r\n/** @public */\r\nexport function useUiStateStorageHandler(): UiStateStorage {\r\n return React.useContext(UiStateStorageContext);\r\n}\r\n\r\n/** @internal */\r\nexport const UiStateStorageContext = React.createContext<UiStateStorage>(new LocalStateStorage()); // eslint-disable-line @typescript-eslint/naming-convention\r\nUiStateStorageContext.displayName = \"uifw:UiStateStorageContext\";\r\n\r\n/** Properties for the [[UiStateStorageHandler]] component.\r\n * @public\r\n */\r\nexport interface UiSettingsProviderProps {\r\n children?: React.ReactNode;\r\n}\r\n\r\n/** Allows to provide a custom [[UiStateStorage]] implementation to persist UI settings.\r\n * @public\r\n */\r\nexport function UiStateStorageHandler(props: UiSettingsProviderProps) {\r\n const [stateStorage, setStateStorage] = React.useState(UiFramework.getUiStateStorage());\r\n\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [SyncUiEventId.UiStateStorageChanged]))\r\n setStateStorage(UiFramework.getUiStateStorage());\r\n };\r\n\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n });\r\n\r\n return (\r\n <UiStateStorageContext.Provider\r\n children={props.children} // eslint-disable-line react/no-children-prop\r\n value={stateStorage}\r\n />\r\n );\r\n}\r\n"]}
@@ -2,7 +2,8 @@
2
2
  * @module Utilities
3
3
  */
4
4
  import * as React from "react";
5
- import { ConditionalStringValue, StringGetter } from "@itwin/appui-abstract";
5
+ import { AbstractWidgetProps, BackstageItem, ConditionalStringValue, StringGetter } from "@itwin/appui-abstract";
6
+ import { IconSpec } from "@itwin/core-react";
6
7
  /** A set of helper methods for various props
7
8
  * @public
8
9
  */
@@ -15,5 +16,6 @@ export declare class PropsHelper {
15
16
  static getIcon(iconSpec: string | ConditionalStringValue | React.ReactNode): JSX.Element | undefined;
16
17
  /** returns true if the two objects are the same using a shallow compare of each property */
17
18
  static isShallowEqual(newObj: any, prevObj: any): boolean;
19
+ static getAbstractPropsForReactIcon(iconSpec: IconSpec, internalData?: Map<string, any>): Partial<AbstractWidgetProps> | Partial<BackstageItem>;
18
20
  }
19
21
  //# sourceMappingURL=PropsHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropsHelper.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/utils/PropsHelper.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI7E;;GAEG;AACH,qBAAa,WAAW;IACtB,sHAAsH;WACxG,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,sBAAsB;IAW1K,8BAA8B;WAChB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,GAAG,MAAM;IAW7F,+JAA+J;WAEjJ,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS;IAO3G,4FAA4F;WAC9E,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;CAMvD"}
1
+ {"version":3,"file":"PropsHelper.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/utils/PropsHelper.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAoB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG/D;;GAEG;AACH,qBAAa,WAAW;IACtB,sHAAsH;WACxG,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,sBAAsB;IAW1K,8BAA8B;WAChB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,GAAG,MAAM;IAW7F,+JAA+J;WAEjJ,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS;IAO3G,4FAA4F;WAC9E,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;WAMxC,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CAavJ"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import * as React from "react";
9
9
  import { ConditionalStringValue } from "@itwin/appui-abstract";
10
- import { Icon } from "@itwin/core-react";
10
+ import { Icon, IconHelper } from "@itwin/core-react";
11
11
  import { UiFramework } from "../UiFramework";
12
12
  /** A set of helper methods for various props
13
13
  * @public
@@ -49,5 +49,15 @@ export class PropsHelper {
49
49
  }
50
50
  return true;
51
51
  }
52
+ static getAbstractPropsForReactIcon(iconSpec, internalData) {
53
+ // istanbul ignore else
54
+ if (!iconSpec || !React.isValidElement(iconSpec))
55
+ return {};
56
+ // istanbul ignore else
57
+ if (!internalData)
58
+ internalData = new Map();
59
+ const icon = IconHelper.getIconData(iconSpec, internalData);
60
+ return (icon === "" ? { icon } : { icon, internalData });
61
+ }
52
62
  }
53
63
  //# sourceMappingURL=PropsHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropsHelper.js","sourceRoot":"","sources":["../../../../src/appui-react/utils/PropsHelper.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAgB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB,sHAAsH;IAC/G,MAAM,CAAC,aAAa,CAAC,aAAyE,EAAE,SAAkB;QACvH,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAC;SACtB;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS;YACX,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAA8B;IACvB,MAAM,CAAC,iBAAiB,CAAC,IAAoD;QAClF,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,OAAO,IAAI,KAAK,QAAQ;YAC1B,KAAK,GAAG,IAAI,CAAC;aACV,IAAI,IAAI,YAAY,sBAAsB;YAC7C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;YAEnB,KAAK,GAAG,IAAI,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+JAA+J;IAC/J,gEAAgE;IACzD,MAAM,CAAC,OAAO,CAAC,QAA2D;QAC/E,IAAI,QAAQ,YAAY,sBAAsB;YAC5C,OAAO,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,GAAI,CAAC;QAE5C,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAED,4FAA4F;IACrF,MAAM,CAAC,cAAc,CAAC,MAAW,EAAE,OAAY;QACpD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;SAChD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF","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 Utilities\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ConditionalStringValue, StringGetter } from \"@itwin/appui-abstract\";\r\nimport { Icon } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** A set of helper methods for various props\r\n * @public\r\n */\r\nexport class PropsHelper {\r\n /** Get spec for returning a string. Could be a simple string of a 'StringGetter' method used to return the string. */\r\n public static getStringSpec(explicitValue: string | StringGetter | ConditionalStringValue | undefined, stringKey?: string): string | StringGetter | ConditionalStringValue {\r\n if (explicitValue) {\r\n return explicitValue;\r\n }\r\n\r\n let outValue = \"\";\r\n if (stringKey)\r\n outValue = UiFramework.localization.getLocalizedString(stringKey);\r\n return outValue;\r\n }\r\n\r\n /** Get the display string. */\r\n public static getStringFromSpec(spec: string | StringGetter | ConditionalStringValue): string {\r\n let label = \"\";\r\n if (typeof spec === \"string\")\r\n label = spec;\r\n else if (spec instanceof ConditionalStringValue)\r\n label = spec.value;\r\n else\r\n label = spec();\r\n return label;\r\n }\r\n\r\n /** Get JSX element that defines an icon. If iconSpec is a string, then a web-font icon class is used otherwise a ReactNode holding an SVG icon is assumed. */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static getIcon(iconSpec: string | ConditionalStringValue | React.ReactNode): JSX.Element | undefined {\r\n if (iconSpec instanceof ConditionalStringValue)\r\n return <Icon iconSpec={iconSpec.value} />;\r\n\r\n return (iconSpec) ? <Icon iconSpec={iconSpec} /> : undefined;\r\n }\r\n\r\n /** returns true if the two objects are the same using a shallow compare of each property */\r\n public static isShallowEqual(newObj: any, prevObj: any) {\r\n for (const key in newObj) {\r\n if (newObj[key] !== prevObj[key]) return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PropsHelper.js","sourceRoot":"","sources":["../../../../src/appui-react/utils/PropsHelper.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAsC,sBAAsB,EAAgB,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAY,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB,sHAAsH;IAC/G,MAAM,CAAC,aAAa,CAAC,aAAyE,EAAE,SAAkB;QACvH,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAC;SACtB;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS;YACX,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAA8B;IACvB,MAAM,CAAC,iBAAiB,CAAC,IAAoD;QAClF,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,OAAO,IAAI,KAAK,QAAQ;YAC1B,KAAK,GAAG,IAAI,CAAC;aACV,IAAI,IAAI,YAAY,sBAAsB;YAC7C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;YAEnB,KAAK,GAAG,IAAI,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+JAA+J;IAC/J,gEAAgE;IACzD,MAAM,CAAC,OAAO,CAAC,QAA2D;QAC/E,IAAI,QAAQ,YAAY,sBAAsB;YAC5C,OAAO,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,GAAI,CAAC;QAE5C,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAED,4FAA4F;IACrF,MAAM,CAAC,cAAc,CAAC,MAAW,EAAE,OAAY;QACpD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;SAChD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACM,MAAM,CAAC,4BAA4B,CAAC,QAAkB,EAAE,YAA+B;QAC5F,uBAAuB;QACvB,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,CAAC;QAEZ,uBAAuB;QACvB,IAAI,CAAC,YAAY;YACf,YAAY,GAAG,IAAI,GAAG,EAAc,CAAC;QAEvC,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE5D,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IACxD,CAAC;CACF","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 Utilities\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { AbstractWidgetProps, BackstageItem, ConditionalStringValue, StringGetter } from \"@itwin/appui-abstract\";\r\nimport { Icon, IconHelper, IconSpec } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** A set of helper methods for various props\r\n * @public\r\n */\r\nexport class PropsHelper {\r\n /** Get spec for returning a string. Could be a simple string of a 'StringGetter' method used to return the string. */\r\n public static getStringSpec(explicitValue: string | StringGetter | ConditionalStringValue | undefined, stringKey?: string): string | StringGetter | ConditionalStringValue {\r\n if (explicitValue) {\r\n return explicitValue;\r\n }\r\n\r\n let outValue = \"\";\r\n if (stringKey)\r\n outValue = UiFramework.localization.getLocalizedString(stringKey);\r\n return outValue;\r\n }\r\n\r\n /** Get the display string. */\r\n public static getStringFromSpec(spec: string | StringGetter | ConditionalStringValue): string {\r\n let label = \"\";\r\n if (typeof spec === \"string\")\r\n label = spec;\r\n else if (spec instanceof ConditionalStringValue)\r\n label = spec.value;\r\n else\r\n label = spec();\r\n return label;\r\n }\r\n\r\n /** Get JSX element that defines an icon. If iconSpec is a string, then a web-font icon class is used otherwise a ReactNode holding an SVG icon is assumed. */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static getIcon(iconSpec: string | ConditionalStringValue | React.ReactNode): JSX.Element | undefined {\r\n if (iconSpec instanceof ConditionalStringValue)\r\n return <Icon iconSpec={iconSpec.value} />;\r\n\r\n return (iconSpec) ? <Icon iconSpec={iconSpec} /> : undefined;\r\n }\r\n\r\n /** returns true if the two objects are the same using a shallow compare of each property */\r\n public static isShallowEqual(newObj: any, prevObj: any) {\r\n for (const key in newObj) {\r\n if (newObj[key] !== prevObj[key]) return false;\r\n }\r\n return true;\r\n }\r\n public static getAbstractPropsForReactIcon(iconSpec: IconSpec, internalData?: Map<string, any>): Partial<AbstractWidgetProps> | Partial<BackstageItem> {\r\n // istanbul ignore else\r\n if (!iconSpec || !React.isValidElement(iconSpec))\r\n return {};\r\n\r\n // istanbul ignore else\r\n if (!internalData)\r\n internalData = new Map<string,any>();\r\n\r\n const icon = IconHelper.getIconData(iconSpec, internalData);\r\n\r\n return (icon === \"\" ? {icon} : {icon, internalData });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UiShowHideManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/utils/UiShowHideManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UiShowHideManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/utils/UiShowHideManager.ts"],"names":[],"mappings":"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"}
@@ -126,6 +126,7 @@ export class UiShowHideManager {
126
126
  }
127
127
  /** Handler for when a Frontstage is ready */
128
128
  static handleFrontstageReady() {
129
+ // istanbul ignore next
129
130
  if (!UiShowHideManager._autoHideUi)
130
131
  return;
131
132
  UiShowHideManager.showUiAndResetTimer();
@@ -1 +1 @@
1
- {"version":3,"file":"UiShowHideManager.js","sourceRoot":"","sources":["../../../../src/appui-react/utils/UiShowHideManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport { UiStateStorage, UiStateStorageStatus } from \"@itwin/core-react\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework, UserSettingsProvider } from \"../UiFramework\";\r\n\r\n/** Class that maintain UiShowHide user settings between sessions\r\n * @internal\r\n */\r\nexport class UiShowHideSettingsProvider implements UserSettingsProvider {\r\n private static _settingsNamespace = \"AppUiSettings\";\r\n private static _autoHideUiKey = \"AutoHideUi\";\r\n private static _useProximityOpacityKey = \"UseProximityOpacity\";\r\n private static _snapWidgetOpacityKey = \"SnapWidgetOpacity\";\r\n public readonly providerId = \"UiShowHideSettingsProvider\";\r\n\r\n public static initialize() {\r\n UiFramework.registerUserSettingsProvider(new UiShowHideSettingsProvider());\r\n }\r\n\r\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\r\n let result = await storage.getSetting(UiShowHideSettingsProvider._settingsNamespace, UiShowHideSettingsProvider._autoHideUiKey);\r\n if (result.status === UiStateStorageStatus.Success)\r\n UiShowHideManager.setAutoHideUi(result.setting);\r\n\r\n result = await storage.getSetting(UiShowHideSettingsProvider._settingsNamespace, UiShowHideSettingsProvider._useProximityOpacityKey);\r\n if (result.status === UiStateStorageStatus.Success)\r\n UiShowHideManager.setUseProximityOpacity(result.setting);\r\n\r\n result = await storage.getSetting(UiShowHideSettingsProvider._settingsNamespace, UiShowHideSettingsProvider._snapWidgetOpacityKey);\r\n if (result.status === UiStateStorageStatus.Success)\r\n UiShowHideManager.setSnapWidgetOpacity(result.setting);\r\n }\r\n\r\n public static async storeAutoHideUi(v: boolean, storage?: UiStateStorage) {\r\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._autoHideUiKey, v);\r\n }\r\n\r\n public static async storeUseProximityOpacity(v: boolean, storage?: UiStateStorage) {\r\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._useProximityOpacityKey, v);\r\n }\r\n\r\n public static async storeSnapWidgetOpacity(v: boolean, storage?: UiStateStorage) {\r\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._snapWidgetOpacityKey, v);\r\n }\r\n}\r\n\r\n/** The default inactivity time.\r\n * @internal\r\n */\r\nexport const INACTIVITY_TIME_DEFAULT = 3500; /** Wait 3.5 seconds */\r\n\r\n/** Maintains Ui Show/Hide state. The `Ui` includes widgets, panels and the status bar.\r\n * @public\r\n */\r\nexport class UiShowHideManager {\r\n private static _isUiVisible: boolean = true;\r\n private static _autoHideUi: boolean = true;\r\n private static _showHidePanels: boolean = false;\r\n private static _showHideFooter: boolean = false;\r\n private static _inactivityTime: number = INACTIVITY_TIME_DEFAULT;\r\n private static _timeout: NodeJS.Timeout;\r\n private static _useProximityOpacity: boolean = false;\r\n private static _snapWidgetOpacity: boolean = false;\r\n\r\n /** Determines if the Ui is visible */\r\n public static get isUiVisible() {\r\n return UiShowHideManager._isUiVisible;\r\n }\r\n public static set isUiVisible(visible: boolean) {\r\n UiShowHideManager._isUiVisible = visible;\r\n }\r\n\r\n /** @internal */\r\n public static setAutoHideUi(value: boolean) {\r\n UiShowHideManager._autoHideUi = value;\r\n }\r\n\r\n /** @internal */\r\n public static setUseProximityOpacity(value: boolean) {\r\n UiShowHideManager._useProximityOpacity = value;\r\n }\r\n\r\n /** @internal */\r\n public static setSnapWidgetOpacity(value: boolean) {\r\n UiShowHideManager._snapWidgetOpacity = value;\r\n }\r\n\r\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\r\n * When true, the Ui automatically hides after a few seconds of inactivity.\r\n */\r\n public static get autoHideUi(): boolean {\r\n return UiShowHideManager._autoHideUi;\r\n }\r\n\r\n public static set autoHideUi(autoHide: boolean) {\r\n void UiShowHideSettingsProvider.storeAutoHideUi(autoHide);\r\n UiShowHideManager._autoHideUi = autoHide;\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.ShowHideManagerSettingChange);\r\n }\r\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\r\n public static get showHidePanels(): boolean {\r\n return UiShowHideManager._showHidePanels;\r\n }\r\n public static set showHidePanels(showHide: boolean) {\r\n UiShowHideManager._showHidePanels = showHide;\r\n UiFramework.onUiVisibilityChanged.emit({ visible: UiFramework.getIsUiVisible() });\r\n }\r\n\r\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\r\n public static get showHideFooter(): boolean {\r\n return UiShowHideManager._showHideFooter;\r\n }\r\n public static set showHideFooter(showHide: boolean) {\r\n UiShowHideManager._showHideFooter = showHide;\r\n UiFramework.onUiVisibilityChanged.emit({ visible: UiFramework.getIsUiVisible() });\r\n }\r\n\r\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\r\n public static get inactivityTime(): number {\r\n return UiShowHideManager._inactivityTime;\r\n }\r\n public static set inactivityTime(time: number) {\r\n UiShowHideManager._inactivityTime = time;\r\n }\r\n\r\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\r\n public static get useProximityOpacity(): boolean {\r\n return UiShowHideManager._useProximityOpacity;\r\n }\r\n public static set useProximityOpacity(value: boolean) {\r\n UiShowHideManager._useProximityOpacity = value;\r\n void UiShowHideSettingsProvider.storeUseProximityOpacity(value);\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.ShowHideManagerSettingChange);\r\n UiFramework.onUiVisibilityChanged.emit({ visible: UiFramework.getIsUiVisible() });\r\n }\r\n\r\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\r\n public static get snapWidgetOpacity(): boolean {\r\n return UiShowHideManager._snapWidgetOpacity;\r\n }\r\n public static set snapWidgetOpacity(value: boolean) {\r\n UiShowHideManager._snapWidgetOpacity = value;\r\n void UiShowHideSettingsProvider.storeSnapWidgetOpacity(value);\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.ShowHideManagerSettingChange);\r\n UiFramework.onUiVisibilityChanged.emit({ visible: UiFramework.getIsUiVisible() });\r\n }\r\n\r\n /** Handler for when a Frontstage is ready */\r\n public static handleFrontstageReady() {\r\n if (!UiShowHideManager._autoHideUi)\r\n return;\r\n\r\n UiShowHideManager.showUiAndResetTimer();\r\n }\r\n\r\n /** Handler for when the mouse moves over the content area */\r\n public static handleContentMouseMove(_event?: React.MouseEvent<HTMLElement, MouseEvent>) {\r\n if (!UiShowHideManager._autoHideUi)\r\n return;\r\n\r\n UiShowHideManager.showUiAndResetTimer();\r\n }\r\n\r\n /** Handler for when the mouse enters a widget */\r\n public static handleWidgetMouseEnter(_event?: React.MouseEvent<HTMLElement, MouseEvent>) {\r\n if (!UiShowHideManager._autoHideUi)\r\n return;\r\n\r\n UiShowHideManager.showUiAndCancelTimer();\r\n }\r\n\r\n /** Shows the Ui and resets the inactivity timer */\r\n public static showUiAndResetTimer() {\r\n setTimeout(() => {\r\n UiShowHideManager.showUi();\r\n UiShowHideManager.resetTimer();\r\n });\r\n }\r\n\r\n /** Shows the Ui and cancels the inactivity timer */\r\n public static showUiAndCancelTimer() {\r\n setTimeout(() => {\r\n UiShowHideManager.showUi();\r\n UiShowHideManager.cancelTimer();\r\n });\r\n }\r\n\r\n private static cancelTimer() {\r\n clearTimeout(UiShowHideManager._timeout);\r\n }\r\n\r\n private static resetTimer() {\r\n UiShowHideManager.cancelTimer();\r\n UiShowHideManager._timeout = setTimeout(UiShowHideManager.hideUi, UiShowHideManager._inactivityTime);\r\n }\r\n\r\n private static showUi() {\r\n UiFramework.setIsUiVisible(true);\r\n }\r\n\r\n private static hideUi() {\r\n UiFramework.setIsUiVisible(false);\r\n }\r\n\r\n /** @internal */\r\n public static terminate() {\r\n UiShowHideManager.cancelTimer();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"UiShowHideManager.js","sourceRoot":"","sources":["../../../../src/appui-react/utils/UiShowHideManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport { UiStateStorage, UiStateStorageStatus } from \"@itwin/core-react\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework, UserSettingsProvider } from \"../UiFramework\";\r\n\r\n/** Class that maintain UiShowHide user settings between sessions\r\n * @internal\r\n */\r\nexport class UiShowHideSettingsProvider implements UserSettingsProvider {\r\n private static _settingsNamespace = \"AppUiSettings\";\r\n private static _autoHideUiKey = \"AutoHideUi\";\r\n private static _useProximityOpacityKey = \"UseProximityOpacity\";\r\n private static _snapWidgetOpacityKey = \"SnapWidgetOpacity\";\r\n public readonly providerId = \"UiShowHideSettingsProvider\";\r\n\r\n public static initialize() {\r\n UiFramework.registerUserSettingsProvider(new UiShowHideSettingsProvider());\r\n }\r\n\r\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\r\n let result = await storage.getSetting(UiShowHideSettingsProvider._settingsNamespace, UiShowHideSettingsProvider._autoHideUiKey);\r\n if (result.status === UiStateStorageStatus.Success)\r\n UiShowHideManager.setAutoHideUi(result.setting);\r\n\r\n result = await storage.getSetting(UiShowHideSettingsProvider._settingsNamespace, UiShowHideSettingsProvider._useProximityOpacityKey);\r\n if (result.status === UiStateStorageStatus.Success)\r\n UiShowHideManager.setUseProximityOpacity(result.setting);\r\n\r\n result = await storage.getSetting(UiShowHideSettingsProvider._settingsNamespace, UiShowHideSettingsProvider._snapWidgetOpacityKey);\r\n if (result.status === UiStateStorageStatus.Success)\r\n UiShowHideManager.setSnapWidgetOpacity(result.setting);\r\n }\r\n\r\n public static async storeAutoHideUi(v: boolean, storage?: UiStateStorage) {\r\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._autoHideUiKey, v);\r\n }\r\n\r\n public static async storeUseProximityOpacity(v: boolean, storage?: UiStateStorage) {\r\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._useProximityOpacityKey, v);\r\n }\r\n\r\n public static async storeSnapWidgetOpacity(v: boolean, storage?: UiStateStorage) {\r\n void (storage ?? UiFramework.getUiStateStorage()).saveSetting(this._settingsNamespace, this._snapWidgetOpacityKey, v);\r\n }\r\n}\r\n\r\n/** The default inactivity time.\r\n * @internal\r\n */\r\nexport const INACTIVITY_TIME_DEFAULT = 3500; /** Wait 3.5 seconds */\r\n\r\n/** Maintains Ui Show/Hide state. The `Ui` includes widgets, panels and the status bar.\r\n * @public\r\n */\r\nexport class UiShowHideManager {\r\n private static _isUiVisible: boolean = true;\r\n private static _autoHideUi: boolean = true;\r\n private static _showHidePanels: boolean = false;\r\n private static _showHideFooter: boolean = false;\r\n private static _inactivityTime: number = INACTIVITY_TIME_DEFAULT;\r\n private static _timeout: NodeJS.Timeout;\r\n private static _useProximityOpacity: boolean = false;\r\n private static _snapWidgetOpacity: boolean = false;\r\n\r\n /** Determines if the Ui is visible */\r\n public static get isUiVisible() {\r\n return UiShowHideManager._isUiVisible;\r\n }\r\n public static set isUiVisible(visible: boolean) {\r\n UiShowHideManager._isUiVisible = visible;\r\n }\r\n\r\n /** @internal */\r\n public static setAutoHideUi(value: boolean) {\r\n UiShowHideManager._autoHideUi = value;\r\n }\r\n\r\n /** @internal */\r\n public static setUseProximityOpacity(value: boolean) {\r\n UiShowHideManager._useProximityOpacity = value;\r\n }\r\n\r\n /** @internal */\r\n public static setSnapWidgetOpacity(value: boolean) {\r\n UiShowHideManager._snapWidgetOpacity = value;\r\n }\r\n\r\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\r\n * When true, the Ui automatically hides after a few seconds of inactivity.\r\n */\r\n public static get autoHideUi(): boolean {\r\n return UiShowHideManager._autoHideUi;\r\n }\r\n\r\n public static set autoHideUi(autoHide: boolean) {\r\n void UiShowHideSettingsProvider.storeAutoHideUi(autoHide);\r\n UiShowHideManager._autoHideUi = autoHide;\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.ShowHideManagerSettingChange);\r\n }\r\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\r\n public static get showHidePanels(): boolean {\r\n return UiShowHideManager._showHidePanels;\r\n }\r\n public static set showHidePanels(showHide: boolean) {\r\n UiShowHideManager._showHidePanels = showHide;\r\n UiFramework.onUiVisibilityChanged.emit({ visible: UiFramework.getIsUiVisible() });\r\n }\r\n\r\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\r\n public static get showHideFooter(): boolean {\r\n return UiShowHideManager._showHideFooter;\r\n }\r\n public static set showHideFooter(showHide: boolean) {\r\n UiShowHideManager._showHideFooter = showHide;\r\n UiFramework.onUiVisibilityChanged.emit({ visible: UiFramework.getIsUiVisible() });\r\n }\r\n\r\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\r\n public static get inactivityTime(): number {\r\n return UiShowHideManager._inactivityTime;\r\n }\r\n public static set inactivityTime(time: number) {\r\n UiShowHideManager._inactivityTime = time;\r\n }\r\n\r\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\r\n public static get useProximityOpacity(): boolean {\r\n return UiShowHideManager._useProximityOpacity;\r\n }\r\n public static set useProximityOpacity(value: boolean) {\r\n UiShowHideManager._useProximityOpacity = value;\r\n void UiShowHideSettingsProvider.storeUseProximityOpacity(value);\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.ShowHideManagerSettingChange);\r\n UiFramework.onUiVisibilityChanged.emit({ visible: UiFramework.getIsUiVisible() });\r\n }\r\n\r\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\r\n public static get snapWidgetOpacity(): boolean {\r\n return UiShowHideManager._snapWidgetOpacity;\r\n }\r\n public static set snapWidgetOpacity(value: boolean) {\r\n UiShowHideManager._snapWidgetOpacity = value;\r\n void UiShowHideSettingsProvider.storeSnapWidgetOpacity(value);\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.ShowHideManagerSettingChange);\r\n UiFramework.onUiVisibilityChanged.emit({ visible: UiFramework.getIsUiVisible() });\r\n }\r\n\r\n /** Handler for when a Frontstage is ready */\r\n public static handleFrontstageReady() {\r\n // istanbul ignore next\r\n if (!UiShowHideManager._autoHideUi)\r\n return;\r\n\r\n UiShowHideManager.showUiAndResetTimer();\r\n }\r\n\r\n /** Handler for when the mouse moves over the content area */\r\n public static handleContentMouseMove(_event?: React.MouseEvent<HTMLElement, MouseEvent>) {\r\n if (!UiShowHideManager._autoHideUi)\r\n return;\r\n\r\n UiShowHideManager.showUiAndResetTimer();\r\n }\r\n\r\n /** Handler for when the mouse enters a widget */\r\n public static handleWidgetMouseEnter(_event?: React.MouseEvent<HTMLElement, MouseEvent>) {\r\n if (!UiShowHideManager._autoHideUi)\r\n return;\r\n\r\n UiShowHideManager.showUiAndCancelTimer();\r\n }\r\n\r\n /** Shows the Ui and resets the inactivity timer */\r\n public static showUiAndResetTimer() {\r\n setTimeout(() => {\r\n UiShowHideManager.showUi();\r\n UiShowHideManager.resetTimer();\r\n });\r\n }\r\n\r\n /** Shows the Ui and cancels the inactivity timer */\r\n public static showUiAndCancelTimer() {\r\n setTimeout(() => {\r\n UiShowHideManager.showUi();\r\n UiShowHideManager.cancelTimer();\r\n });\r\n }\r\n\r\n private static cancelTimer() {\r\n clearTimeout(UiShowHideManager._timeout);\r\n }\r\n\r\n private static resetTimer() {\r\n UiShowHideManager.cancelTimer();\r\n UiShowHideManager._timeout = setTimeout(UiShowHideManager.hideUi, UiShowHideManager._inactivityTime);\r\n }\r\n\r\n private static showUi() {\r\n UiFramework.setIsUiVisible(true);\r\n }\r\n\r\n private static hideUi() {\r\n UiFramework.setIsUiVisible(false);\r\n }\r\n\r\n /** @internal */\r\n public static terminate() {\r\n UiShowHideManager.cancelTimer();\r\n }\r\n}\r\n"]}
@@ -38,7 +38,7 @@ export declare function addMissingWidgets(frontstageDef: FrontstageDef, initialS
38
38
  * @internal
39
39
  */
40
40
  export declare function removeMissingWidgets(frontstageDef: FrontstageDef, initialState: NineZoneState): NineZoneState;
41
- declare type WidgetIdTypes = "leftStart" | "leftMiddle" | "leftEnd" | "rightStart" | "rightMiddle" | "rightEnd" | "topStart" | "topEnd" | "bottomStart" | "bottomEnd";
41
+ declare type WidgetIdTypes = "leftStart" | "leftEnd" | "rightStart" | "rightEnd" | "topStart" | "topEnd" | "bottomStart" | "bottomEnd";
42
42
  /** @internal */
43
43
  export declare function getWidgetId(side: PanelSide, key: StagePanelZoneDefKeys): WidgetIdTypes;
44
44
  /** @internal */
@@ -150,6 +150,7 @@ export declare const setWidgetState: (base: {
150
150
  readonly size: number | undefined;
151
151
  readonly widgets: readonly string[];
152
152
  readonly maxWidgetCount: number;
153
+ readonly splitterPercent: number | undefined;
153
154
  };
154
155
  readonly left: {
155
156
  readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
@@ -162,6 +163,7 @@ export declare const setWidgetState: (base: {
162
163
  readonly size: number | undefined;
163
164
  readonly widgets: readonly string[];
164
165
  readonly maxWidgetCount: number;
166
+ readonly splitterPercent: number | undefined;
165
167
  };
166
168
  readonly right: {
167
169
  readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
@@ -174,6 +176,7 @@ export declare const setWidgetState: (base: {
174
176
  readonly size: number | undefined;
175
177
  readonly widgets: readonly string[];
176
178
  readonly maxWidgetCount: number;
179
+ readonly splitterPercent: number | undefined;
177
180
  };
178
181
  readonly top: {
179
182
  readonly span: boolean;
@@ -187,6 +190,7 @@ export declare const setWidgetState: (base: {
187
190
  readonly size: number | undefined;
188
191
  readonly widgets: readonly string[];
189
192
  readonly maxWidgetCount: number;
193
+ readonly splitterPercent: number | undefined;
190
194
  };
191
195
  };
192
196
  readonly tabs: {
@@ -318,6 +322,7 @@ export declare const showWidget: (base: {
318
322
  readonly size: number | undefined;
319
323
  readonly widgets: readonly string[];
320
324
  readonly maxWidgetCount: number;
325
+ readonly splitterPercent: number | undefined;
321
326
  };
322
327
  readonly left: {
323
328
  readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
@@ -330,6 +335,7 @@ export declare const showWidget: (base: {
330
335
  readonly size: number | undefined;
331
336
  readonly widgets: readonly string[];
332
337
  readonly maxWidgetCount: number;
338
+ readonly splitterPercent: number | undefined;
333
339
  };
334
340
  readonly right: {
335
341
  readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
@@ -342,6 +348,7 @@ export declare const showWidget: (base: {
342
348
  readonly size: number | undefined;
343
349
  readonly widgets: readonly string[];
344
350
  readonly maxWidgetCount: number;
351
+ readonly splitterPercent: number | undefined;
345
352
  };
346
353
  readonly top: {
347
354
  readonly span: boolean;
@@ -355,6 +362,7 @@ export declare const showWidget: (base: {
355
362
  readonly size: number | undefined;
356
363
  readonly widgets: readonly string[];
357
364
  readonly maxWidgetCount: number;
365
+ readonly splitterPercent: number | undefined;
358
366
  };
359
367
  };
360
368
  readonly tabs: {
@@ -486,6 +494,7 @@ export declare const expandWidget: (base: {
486
494
  readonly size: number | undefined;
487
495
  readonly widgets: readonly string[];
488
496
  readonly maxWidgetCount: number;
497
+ readonly splitterPercent: number | undefined;
489
498
  };
490
499
  readonly left: {
491
500
  readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
@@ -498,6 +507,7 @@ export declare const expandWidget: (base: {
498
507
  readonly size: number | undefined;
499
508
  readonly widgets: readonly string[];
500
509
  readonly maxWidgetCount: number;
510
+ readonly splitterPercent: number | undefined;
501
511
  };
502
512
  readonly right: {
503
513
  readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
@@ -510,6 +520,7 @@ export declare const expandWidget: (base: {
510
520
  readonly size: number | undefined;
511
521
  readonly widgets: readonly string[];
512
522
  readonly maxWidgetCount: number;
523
+ readonly splitterPercent: number | undefined;
513
524
  };
514
525
  readonly top: {
515
526
  readonly span: boolean;
@@ -523,6 +534,7 @@ export declare const expandWidget: (base: {
523
534
  readonly size: number | undefined;
524
535
  readonly widgets: readonly string[];
525
536
  readonly maxWidgetCount: number;
537
+ readonly splitterPercent: number | undefined;
526
538
  };
527
539
  };
528
540
  readonly tabs: {
@@ -654,6 +666,7 @@ export declare const setWidgetLabel: (base: {
654
666
  readonly size: number | undefined;
655
667
  readonly widgets: readonly string[];
656
668
  readonly maxWidgetCount: number;
669
+ readonly splitterPercent: number | undefined;
657
670
  };
658
671
  readonly left: {
659
672
  readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
@@ -666,6 +679,7 @@ export declare const setWidgetLabel: (base: {
666
679
  readonly size: number | undefined;
667
680
  readonly widgets: readonly string[];
668
681
  readonly maxWidgetCount: number;
682
+ readonly splitterPercent: number | undefined;
669
683
  };
670
684
  readonly right: {
671
685
  readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
@@ -678,6 +692,7 @@ export declare const setWidgetLabel: (base: {
678
692
  readonly size: number | undefined;
679
693
  readonly widgets: readonly string[];
680
694
  readonly maxWidgetCount: number;
695
+ readonly splitterPercent: number | undefined;
681
696
  };
682
697
  readonly top: {
683
698
  readonly span: boolean;
@@ -691,6 +706,7 @@ export declare const setWidgetLabel: (base: {
691
706
  readonly size: number | undefined;
692
707
  readonly widgets: readonly string[];
693
708
  readonly maxWidgetCount: number;
709
+ readonly splitterPercent: number | undefined;
694
710
  };
695
711
  };
696
712
  readonly tabs: {