@itwin/appui-react 4.6.3 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +29 -14
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +28 -15
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +3 -3
  11. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  13. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  15. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/Calculator.js +11 -12
  21. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  23. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  25. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  26. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  27. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  28. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  29. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  30. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  31. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/childwindow/PopoutWidget.js +6 -3
  33. package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
  34. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  36. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/configurableui/state.js +5 -2
  39. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  40. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  42. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  43. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  44. package/lib/cjs/appui-react/content/IModelViewport.js +2 -0
  45. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  46. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +3 -3
  47. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  48. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  49. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  51. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  52. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +26 -16
  54. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +1 -1
  57. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  58. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +1 -2
  60. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  61. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  62. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  63. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +42 -2
  65. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  66. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +9 -3
  67. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/messages/AppNotificationManager.js +9 -3
  69. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  70. package/lib/cjs/appui-react/messages/MessageManager.d.ts +10 -0
  71. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/messages/MessageManager.js +51 -6
  73. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  74. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  75. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  76. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  77. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  78. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  79. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +8 -8
  80. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  81. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  82. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  83. package/lib/cjs/appui-react/pickers/ViewSelector.js +2 -3
  84. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  85. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  86. package/lib/cjs/appui-react/popup/CardPopup.js +2 -2
  87. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  88. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +7 -6
  90. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  91. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  92. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +2 -2
  93. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  94. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  95. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +2 -2
  96. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  97. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  98. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  99. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  100. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +47 -0
  101. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  102. package/lib/cjs/appui-react/preview/PreviewFeatures.js +95 -0
  103. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -0
  104. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  105. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/safearea/SafeAreaContext.js +9 -2
  107. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  108. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +10 -10
  110. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  111. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  112. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  113. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +9 -6
  114. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  115. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -28
  116. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  117. package/lib/cjs/appui-react/statusbar/StatusBar.js +1 -69
  118. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  119. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -3
  121. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  122. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/statusfields/SectionsField.js +1 -3
  124. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  125. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +4 -7
  126. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  127. package/lib/cjs/appui-react/statusfields/SelectionScope.js +2 -7
  128. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  129. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  130. package/lib/cjs/appui-react/statusfields/SnapMode.js +8 -10
  131. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  132. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  134. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  135. package/lib/cjs/appui-react/theme/ThemeManager.d.ts +38 -7
  136. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/theme/ThemeManager.js +52 -11
  138. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  139. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  140. package/lib/cjs/appui-react/toolbar/Toolbar.js +12 -1
  141. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  142. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  143. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  144. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  145. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  146. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +7 -7
  147. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  148. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  149. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  150. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +12 -4
  151. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  152. package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  153. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +1 -2
  154. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  155. package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +1 -2
  157. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  158. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  159. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +2 -3
  160. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  161. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  162. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  163. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +133 -105
  164. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  165. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  166. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +80 -65
  168. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  169. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  170. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  171. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  172. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  173. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  174. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  175. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  176. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -4
  177. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/uistate/AppUiSettings.js +2 -2
  179. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  180. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  181. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  182. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +10 -1
  183. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  184. package/lib/cjs/appui-react/utils/matchesWords.d.ts +22 -0
  185. package/lib/cjs/appui-react/utils/matchesWords.d.ts.map +1 -0
  186. package/lib/cjs/appui-react/utils/matchesWords.js +103 -0
  187. package/lib/cjs/appui-react/utils/matchesWords.js.map +1 -0
  188. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/widget-panels/Frontstage.js +42 -9
  190. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  191. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -0
  192. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  193. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  194. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +34 -12
  195. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  196. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +2 -7
  198. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  199. package/lib/cjs/appui-react/widgets/Widget.d.ts +23 -1
  200. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  201. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  202. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  203. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -0
  204. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  205. package/lib/cjs/appui-react.d.ts +1 -0
  206. package/lib/cjs/appui-react.d.ts.map +1 -1
  207. package/lib/cjs/appui-react.js +3 -0
  208. package/lib/cjs/appui-react.js.map +1 -1
  209. package/lib/esm/appui-react/UiFramework.d.ts +29 -14
  210. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  211. package/lib/esm/appui-react/UiFramework.js +29 -16
  212. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  213. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  214. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  215. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  216. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  217. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +3 -3
  218. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  219. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  220. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  221. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  222. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  223. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  224. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  225. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  226. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  227. package/lib/esm/appui-react/accudraw/Calculator.js +11 -12
  228. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  229. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  230. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  231. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  232. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  233. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  234. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  235. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  236. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  237. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  238. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  239. package/lib/esm/appui-react/childwindow/PopoutWidget.js +6 -3
  240. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  241. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  242. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  243. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  244. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  245. package/lib/esm/appui-react/configurableui/state.js +5 -2
  246. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  247. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  248. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  249. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  250. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  251. package/lib/esm/appui-react/content/IModelViewport.js +2 -0
  252. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  253. package/lib/esm/appui-react/feedback/ValidationTextbox.js +3 -3
  254. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  255. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  256. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  257. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  258. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  259. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  260. package/lib/esm/appui-react/frontstage/FrontstageDef.js +27 -17
  261. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  262. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  263. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  264. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  265. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  266. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +1 -2
  267. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  268. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  269. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  270. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  271. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +41 -1
  272. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  273. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +9 -3
  274. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  275. package/lib/esm/appui-react/messages/AppNotificationManager.js +9 -3
  276. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  277. package/lib/esm/appui-react/messages/MessageManager.d.ts +10 -0
  278. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  279. package/lib/esm/appui-react/messages/MessageManager.js +52 -7
  280. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  281. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  282. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  283. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  284. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  285. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  286. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +9 -9
  287. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  288. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  289. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  290. package/lib/esm/appui-react/pickers/ViewSelector.js +2 -3
  291. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  292. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  293. package/lib/esm/appui-react/popup/CardPopup.js +2 -2
  294. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  295. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  296. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +6 -5
  297. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  298. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  299. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +2 -2
  300. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  301. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  302. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +2 -2
  303. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  304. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  305. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  306. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  307. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +47 -0
  308. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  309. package/lib/esm/appui-react/preview/PreviewFeatures.js +90 -0
  310. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -0
  311. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  312. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  313. package/lib/esm/appui-react/safearea/SafeAreaContext.js +9 -2
  314. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  315. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  316. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +11 -11
  317. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  318. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  319. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  320. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +9 -6
  321. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  322. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -28
  323. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  324. package/lib/esm/appui-react/statusbar/StatusBar.js +1 -69
  325. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  326. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  327. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -4
  328. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  329. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  330. package/lib/esm/appui-react/statusfields/SectionsField.js +1 -3
  331. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  332. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +4 -7
  333. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  334. package/lib/esm/appui-react/statusfields/SelectionScope.js +2 -7
  335. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  336. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  337. package/lib/esm/appui-react/statusfields/SnapMode.js +8 -10
  338. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  339. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  340. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  341. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  342. package/lib/esm/appui-react/theme/ThemeManager.d.ts +38 -7
  343. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  344. package/lib/esm/appui-react/theme/ThemeManager.js +51 -10
  345. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  346. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  347. package/lib/esm/appui-react/toolbar/Toolbar.js +11 -0
  348. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  349. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  350. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  351. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  352. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  353. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +8 -8
  354. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  355. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  356. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  357. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +12 -4
  358. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  359. package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  360. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +1 -2
  361. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  362. package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  363. package/lib/esm/appui-react/tools/OpenSettingsTool.js +1 -2
  364. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  365. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  366. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +2 -3
  367. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  368. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  369. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  370. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +131 -104
  371. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  372. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  373. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  374. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +81 -66
  375. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  376. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  377. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  378. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  379. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  380. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  381. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  382. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  383. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -4
  384. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  385. package/lib/esm/appui-react/uistate/AppUiSettings.js +2 -2
  386. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  387. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  388. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  389. package/lib/esm/appui-react/uistate/useUiStateStorage.js +10 -1
  390. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  391. package/lib/esm/appui-react/utils/matchesWords.d.ts +22 -0
  392. package/lib/esm/appui-react/utils/matchesWords.d.ts.map +1 -0
  393. package/lib/esm/appui-react/utils/matchesWords.js +99 -0
  394. package/lib/esm/appui-react/utils/matchesWords.js.map +1 -0
  395. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  396. package/lib/esm/appui-react/widget-panels/Frontstage.js +44 -11
  397. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  398. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -0
  399. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  400. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  401. package/lib/esm/appui-react/widget-panels/ToolSettings.js +32 -11
  402. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  403. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  404. package/lib/esm/appui-react/widgets/BackstageAppButton.js +2 -7
  405. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  406. package/lib/esm/appui-react/widgets/Widget.d.ts +23 -1
  407. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  408. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  409. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  410. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -0
  411. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  412. package/lib/esm/appui-react.d.ts +1 -0
  413. package/lib/esm/appui-react.d.ts.map +1 -1
  414. package/lib/esm/appui-react.js +1 -0
  415. package/lib/esm/appui-react.js.map +1 -1
  416. package/lib/public/locales/en/UiFramework.json +6 -4
  417. package/package.json +13 -11
@@ -4,11 +4,12 @@
4
4
  import type { UiStateStorage } from "@itwin/core-react";
5
5
  import { UiStateEntry } from "@itwin/core-react";
6
6
  import type { UserSettingsProvider } from "../UiFramework";
7
+ import type { ThemeId } from "../theme/ThemeManager";
7
8
  /** Default values that may be specified for [[AppUiSettings]].
8
9
  * @public
9
10
  */
10
11
  export interface InitialAppUiSettings {
11
- colorTheme: string;
12
+ colorTheme: ThemeId;
12
13
  dragInteraction: boolean;
13
14
  widgetOpacity: number;
14
15
  showWidgetIcon?: boolean;
@@ -18,8 +19,8 @@ export interface InitialAppUiSettings {
18
19
  useToolAsToolSettingsLabel?: boolean;
19
20
  toolbarOpacity: number;
20
21
  }
21
- /** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,
22
- * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor
22
+ /** These are the UI settings that are stored in the Redux store. They control the color theme,
23
+ * how toolbar group buttons work, and the opacity of floating widget when the cursor
23
24
  * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with
24
25
  * defaults specific to their application. This would be done by calling the following.
25
26
  *
@@ -34,7 +35,7 @@ export declare class AppUiSettings implements UserSettingsProvider {
34
35
  private static _settingNamespace;
35
36
  private _settings;
36
37
  private _applyingLocalSettings;
37
- colorTheme: UiStateEntry<string>;
38
+ colorTheme: UiStateEntry<ThemeId>;
38
39
  dragInteraction: UiStateEntry<boolean>;
39
40
  widgetOpacity: UiStateEntry<number>;
40
41
  showWidgetIcon: UiStateEntry<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"AppUiSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAM3D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;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,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;IAC3C,0BAA0B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,CAAC,aAAa,CAInB;gBAEU,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC;IA8EnD,OAAO,CAAC,iBAAiB,CAsCvB;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,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIrD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;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,OAAO,CAAC,CAAC;IAClC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,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;IAC3C,0BAA0B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,CAAC,aAAa,CAInB;gBAEU,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC;IA8EnD,OAAO,CAAC,iBAAiB,CAsCvB;IAEW,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtE"}
@@ -11,8 +11,8 @@ exports.AppUiSettings = void 0;
11
11
  const core_react_1 = require("@itwin/core-react");
12
12
  const SyncUiEventDispatcher_1 = require("../syncui/SyncUiEventDispatcher");
13
13
  const UiFramework_1 = require("../UiFramework");
14
- /** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,
15
- * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor
14
+ /** These are the UI settings that are stored in the Redux store. They control the color theme,
15
+ * how toolbar group buttons work, and the opacity of floating widget when the cursor
16
16
  * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with
17
17
  * defaults specific to their application. This would be done by calling the following.
18
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { UiStateEntry } from \"@itwin/core-react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport type { UserSettingsProvider } from \"../UiFramework\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n// cSpell:ignore configurableui\n\n/** Default values that may be specified for [[AppUiSettings]].\n * @public\n */\nexport interface InitialAppUiSettings {\n colorTheme: string;\n dragInteraction: boolean;\n widgetOpacity: number;\n showWidgetIcon?: boolean;\n /** @alpha */\n autoCollapseUnpinnedPanels?: boolean;\n animateToolSettings?: boolean;\n useToolAsToolSettingsLabel?: boolean;\n toolbarOpacity: number;\n}\n\n/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,\n * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor\n * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with\n * defaults specific to their application. This would be done by calling the following.\n *\n * ```ts\n * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));\n * ```\n *\n * @public\n */\nexport class AppUiSettings implements UserSettingsProvider {\n public readonly providerId = \"AppUiSettingsProvider\";\n\n private static _settingNamespace = \"AppUiSettings\";\n private _settings: Array<UiStateEntry<any>> = [];\n private _applyingLocalSettings = false;\n\n public colorTheme: UiStateEntry<string>;\n public dragInteraction: UiStateEntry<boolean>;\n public widgetOpacity: UiStateEntry<number>;\n public showWidgetIcon: UiStateEntry<boolean>;\n public autoCollapseUnpinnedPanels: UiStateEntry<boolean>;\n public animateToolSettings: UiStateEntry<boolean>;\n public useToolAsToolSettingsLabel: UiStateEntry<boolean>;\n public toolbarOpacity: UiStateEntry<number>;\n\n private setColorTheme = (theme: string) => {\n UiFramework.setColorTheme(theme);\n // always store to local storage to avoid flicker during startup if user is not yet logged-in\n window.localStorage.setItem(\"uifw:defaultTheme\", theme);\n };\n\n constructor(defaults: Partial<InitialAppUiSettings>) {\n this._settings = [];\n\n this.colorTheme = new UiStateEntry<string>(\n AppUiSettings._settingNamespace,\n \"ColorTheme\",\n UiFramework.getColorTheme,\n this.setColorTheme,\n defaults.colorTheme\n );\n this._settings.push(this.colorTheme);\n\n this.dragInteraction = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"DragInteraction\",\n () => UiFramework.useDragInteraction,\n (value: boolean) => UiFramework.setUseDragInteraction(value),\n defaults.dragInteraction\n );\n this._settings.push(this.dragInteraction);\n\n this.showWidgetIcon = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"ShowWidgetIcon\",\n () => UiFramework.showWidgetIcon,\n (value: boolean) => UiFramework.setShowWidgetIcon(value),\n defaults.showWidgetIcon\n );\n this._settings.push(this.showWidgetIcon);\n\n this.autoCollapseUnpinnedPanels = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"AutoCollapseUnpinnedPanels\",\n () => UiFramework.autoCollapseUnpinnedPanels,\n (value: boolean) => UiFramework.setAutoCollapseUnpinnedPanels(value),\n defaults.autoCollapseUnpinnedPanels\n );\n this._settings.push(this.autoCollapseUnpinnedPanels);\n\n this.widgetOpacity = new UiStateEntry<number>(\n AppUiSettings._settingNamespace,\n \"WidgetOpacity\",\n () => UiFramework.getWidgetOpacity(),\n (value: number) => UiFramework.setWidgetOpacity(value),\n defaults.widgetOpacity\n );\n this._settings.push(this.widgetOpacity);\n\n this.animateToolSettings = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"AnimateToolSettings\",\n () => UiFramework.animateToolSettings,\n (value: boolean) => UiFramework.setAnimateToolSettings(value),\n defaults.animateToolSettings\n );\n this._settings.push(this.animateToolSettings);\n\n this.useToolAsToolSettingsLabel = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"UseToolAsToolSettingsLabel\",\n () => UiFramework.useToolAsToolSettingsLabel,\n (value: boolean) => UiFramework.setUseToolAsToolSettingsLabel(value),\n defaults.useToolAsToolSettingsLabel\n );\n this._settings.push(this.useToolAsToolSettingsLabel);\n\n this.toolbarOpacity = new UiStateEntry<number>(\n AppUiSettings._settingNamespace,\n \"ToolOpacity\",\n () => UiFramework.getToolbarOpacity(),\n (value: number) => UiFramework.setToolbarOpacity(value),\n defaults.toolbarOpacity\n );\n this._settings.push(this.toolbarOpacity);\n\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);\n }\n\n private handleSyncUiEvent = async (args: UiSyncEventArgs) => {\n if (this._applyingLocalSettings) return;\n\n if (args.eventIds.has(\"configurableui:set_theme\")) {\n await this.colorTheme.saveSetting(UiFramework.getUiStateStorage());\n // always store as default theme in local storage to avoid flicker during startup if user is not yet logged-in\n window.localStorage.setItem(\n \"uifw:defaultTheme\",\n UiFramework.getColorTheme()\n );\n }\n\n if (args.eventIds.has(\"configurableui:set-drag-interaction\"))\n await this.dragInteraction.saveSetting(UiFramework.getUiStateStorage());\n\n if (args.eventIds.has(\"configurableui:set-show-widget-icon\"))\n await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());\n\n if (args.eventIds.has(\"configurableui:set-auto-collapse-unpinned-panels\"))\n await this.autoCollapseUnpinnedPanels.saveSetting(\n UiFramework.getUiStateStorage()\n );\n\n if (args.eventIds.has(\"configurableui:set_widget_opacity\"))\n await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());\n\n if (args.eventIds.has(\"configurableui:set-animate-tool-settings\"))\n await this.animateToolSettings.saveSetting(\n UiFramework.getUiStateStorage()\n );\n\n if (args.eventIds.has(\"configurableui:set-use-tool-as-tool-settings-label\"))\n await this.useToolAsToolSettingsLabel.saveSetting(\n UiFramework.getUiStateStorage()\n );\n\n if (args.eventIds.has(\"configurableui:set-toolbar-opacity\"))\n await this.toolbarOpacity.saveSetting(UiFramework.getUiStateStorage());\n };\n\n public async apply(storage: UiStateStorage): Promise<void> {\n this._applyingLocalSettings = true;\n for await (const setting of this._settings) {\n await setting.getSettingAndApplyValue(storage);\n }\n this._applyingLocalSettings = false;\n }\n\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\n await this.apply(storage);\n }\n}\n"]}
1
+ {"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAGH,kDAAiD;AACjD,2EAAwE;AAExE,gDAA6C;AAqB7C;;;;;;;;;;GAUG;AACH,MAAa,aAAa;IAsBxB,YAAY,QAAuC;QArBnC,eAAU,GAAG,uBAAuB,CAAC;QAG7C,cAAS,GAA6B,EAAE,CAAC;QACzC,2BAAsB,GAAG,KAAK,CAAC;QAW/B,kBAAa,GAAG,CAAC,KAAc,EAAE,EAAE;YACzC,yBAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjC,6FAA6F;YAC7F,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC;QAgFM,sBAAiB,GAAG,KAAK,EAAE,IAAqB,EAAE,EAAE;YAC1D,IAAI,IAAI,CAAC,sBAAsB;gBAAE,OAAO;YAExC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE;gBACjD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACnE,8GAA8G;gBAC9G,MAAM,CAAC,YAAY,CAAC,OAAO,CACzB,mBAAmB,EACnB,yBAAW,CAAC,aAAa,EAAE,CAC5B,CAAC;aACH;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qCAAqC,CAAC;gBAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE1E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qCAAqC,CAAC;gBAC1D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAEzE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kDAAkD,CAAC;gBACvE,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAC/C,yBAAW,CAAC,iBAAiB,EAAE,CAChC,CAAC;YAEJ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mCAAmC,CAAC;gBACxD,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAExE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0CAA0C,CAAC;gBAC/D,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CACxC,yBAAW,CAAC,iBAAiB,EAAE,CAChC,CAAC;YAEJ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oDAAoD,CAAC;gBACzE,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAC/C,yBAAW,CAAC,iBAAiB,EAAE,CAChC,CAAC;YAEJ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oCAAoC,CAAC;gBACzD,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC;QAnHA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,UAAU,GAAG,IAAI,yBAAY,CAChC,aAAa,CAAC,iBAAiB,EAC/B,YAAY,EACZ,yBAAW,CAAC,aAAa,EACzB,IAAI,CAAC,aAAa,EAClB,QAAQ,CAAC,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAY,CACrC,aAAa,CAAC,iBAAiB,EAC/B,iBAAiB,EACjB,GAAG,EAAE,CAAC,yBAAW,CAAC,kBAAkB,EACpC,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAC5D,QAAQ,CAAC,eAAe,CACzB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE1C,IAAI,CAAC,cAAc,GAAG,IAAI,yBAAY,CACpC,aAAa,CAAC,iBAAiB,EAC/B,gBAAgB,EAChB,GAAG,EAAE,CAAC,yBAAW,CAAC,cAAc,EAChC,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACxD,QAAQ,CAAC,cAAc,CACxB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzC,IAAI,CAAC,0BAA0B,GAAG,IAAI,yBAAY,CAChD,aAAa,CAAC,iBAAiB,EAC/B,4BAA4B,EAC5B,GAAG,EAAE,CAAC,yBAAW,CAAC,0BAA0B,EAC5C,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,6BAA6B,CAAC,KAAK,CAAC,EACpE,QAAQ,CAAC,0BAA0B,CACpC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,GAAG,IAAI,yBAAY,CACnC,aAAa,CAAC,iBAAiB,EAC/B,eAAe,EACf,GAAG,EAAE,CAAC,yBAAW,CAAC,gBAAgB,EAAE,EACpC,CAAC,KAAa,EAAE,EAAE,CAAC,yBAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACtD,QAAQ,CAAC,aAAa,CACvB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAExC,IAAI,CAAC,mBAAmB,GAAG,IAAI,yBAAY,CACzC,aAAa,CAAC,iBAAiB,EAC/B,qBAAqB,EACrB,GAAG,EAAE,CAAC,yBAAW,CAAC,mBAAmB,EACrC,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAC7D,QAAQ,CAAC,mBAAmB,CAC7B,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE9C,IAAI,CAAC,0BAA0B,GAAG,IAAI,yBAAY,CAChD,aAAa,CAAC,iBAAiB,EAC/B,4BAA4B,EAC5B,GAAG,EAAE,CAAC,yBAAW,CAAC,0BAA0B,EAC5C,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,6BAA6B,CAAC,KAAK,CAAC,EACpE,QAAQ,CAAC,0BAA0B,CACpC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAErD,IAAI,CAAC,cAAc,GAAG,IAAI,yBAAY,CACpC,aAAa,CAAC,iBAAiB,EAC/B,aAAa,EACb,GAAG,EAAE,CAAC,yBAAW,CAAC,iBAAiB,EAAE,EACrC,CAAC,KAAa,EAAE,EAAE,CAAC,yBAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACvD,QAAQ,CAAC,cAAc,CACxB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzC,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1E,CAAC;IA0CM,KAAK,CAAC,KAAK,CAAC,OAAuB;QACxC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,OAAuB;QACnD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;;AAnJc,+BAAiB,GAAG,eAAe,AAAlB,CAAmB;AAHxC,sCAAa","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { UiStateEntry } from \"@itwin/core-react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport type { UserSettingsProvider } from \"../UiFramework\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\nimport type { ThemeId } from \"../theme/ThemeManager\";\n\n// cSpell:ignore configurableui\n\n/** Default values that may be specified for [[AppUiSettings]].\n * @public\n */\nexport interface InitialAppUiSettings {\n colorTheme: ThemeId;\n dragInteraction: boolean;\n widgetOpacity: number;\n showWidgetIcon?: boolean;\n /** @alpha */\n autoCollapseUnpinnedPanels?: boolean;\n animateToolSettings?: boolean;\n useToolAsToolSettingsLabel?: boolean;\n toolbarOpacity: number;\n}\n\n/** These are the UI settings that are stored in the Redux store. They control the color theme,\n * how toolbar group buttons work, and the opacity of floating widget when the cursor\n * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with\n * defaults specific to their application. This would be done by calling the following.\n *\n * ```ts\n * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));\n * ```\n *\n * @public\n */\nexport class AppUiSettings implements UserSettingsProvider {\n public readonly providerId = \"AppUiSettingsProvider\";\n\n private static _settingNamespace = \"AppUiSettings\";\n private _settings: Array<UiStateEntry<any>> = [];\n private _applyingLocalSettings = false;\n\n public colorTheme: UiStateEntry<ThemeId>;\n public dragInteraction: UiStateEntry<boolean>;\n public widgetOpacity: UiStateEntry<number>;\n public showWidgetIcon: UiStateEntry<boolean>;\n public autoCollapseUnpinnedPanels: UiStateEntry<boolean>;\n public animateToolSettings: UiStateEntry<boolean>;\n public useToolAsToolSettingsLabel: UiStateEntry<boolean>;\n public toolbarOpacity: UiStateEntry<number>;\n\n private setColorTheme = (theme: ThemeId) => {\n UiFramework.setColorTheme(theme);\n // always store to local storage to avoid flicker during startup if user is not yet logged-in\n window.localStorage.setItem(\"uifw:defaultTheme\", theme);\n };\n\n constructor(defaults: Partial<InitialAppUiSettings>) {\n this._settings = [];\n\n this.colorTheme = new UiStateEntry<ThemeId>(\n AppUiSettings._settingNamespace,\n \"ColorTheme\",\n UiFramework.getColorTheme,\n this.setColorTheme,\n defaults.colorTheme\n );\n this._settings.push(this.colorTheme);\n\n this.dragInteraction = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"DragInteraction\",\n () => UiFramework.useDragInteraction,\n (value: boolean) => UiFramework.setUseDragInteraction(value),\n defaults.dragInteraction\n );\n this._settings.push(this.dragInteraction);\n\n this.showWidgetIcon = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"ShowWidgetIcon\",\n () => UiFramework.showWidgetIcon,\n (value: boolean) => UiFramework.setShowWidgetIcon(value),\n defaults.showWidgetIcon\n );\n this._settings.push(this.showWidgetIcon);\n\n this.autoCollapseUnpinnedPanels = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"AutoCollapseUnpinnedPanels\",\n () => UiFramework.autoCollapseUnpinnedPanels,\n (value: boolean) => UiFramework.setAutoCollapseUnpinnedPanels(value),\n defaults.autoCollapseUnpinnedPanels\n );\n this._settings.push(this.autoCollapseUnpinnedPanels);\n\n this.widgetOpacity = new UiStateEntry<number>(\n AppUiSettings._settingNamespace,\n \"WidgetOpacity\",\n () => UiFramework.getWidgetOpacity(),\n (value: number) => UiFramework.setWidgetOpacity(value),\n defaults.widgetOpacity\n );\n this._settings.push(this.widgetOpacity);\n\n this.animateToolSettings = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"AnimateToolSettings\",\n () => UiFramework.animateToolSettings,\n (value: boolean) => UiFramework.setAnimateToolSettings(value),\n defaults.animateToolSettings\n );\n this._settings.push(this.animateToolSettings);\n\n this.useToolAsToolSettingsLabel = new UiStateEntry<boolean>(\n AppUiSettings._settingNamespace,\n \"UseToolAsToolSettingsLabel\",\n () => UiFramework.useToolAsToolSettingsLabel,\n (value: boolean) => UiFramework.setUseToolAsToolSettingsLabel(value),\n defaults.useToolAsToolSettingsLabel\n );\n this._settings.push(this.useToolAsToolSettingsLabel);\n\n this.toolbarOpacity = new UiStateEntry<number>(\n AppUiSettings._settingNamespace,\n \"ToolOpacity\",\n () => UiFramework.getToolbarOpacity(),\n (value: number) => UiFramework.setToolbarOpacity(value),\n defaults.toolbarOpacity\n );\n this._settings.push(this.toolbarOpacity);\n\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);\n }\n\n private handleSyncUiEvent = async (args: UiSyncEventArgs) => {\n if (this._applyingLocalSettings) return;\n\n if (args.eventIds.has(\"configurableui:set_theme\")) {\n await this.colorTheme.saveSetting(UiFramework.getUiStateStorage());\n // always store as default theme in local storage to avoid flicker during startup if user is not yet logged-in\n window.localStorage.setItem(\n \"uifw:defaultTheme\",\n UiFramework.getColorTheme()\n );\n }\n\n if (args.eventIds.has(\"configurableui:set-drag-interaction\"))\n await this.dragInteraction.saveSetting(UiFramework.getUiStateStorage());\n\n if (args.eventIds.has(\"configurableui:set-show-widget-icon\"))\n await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());\n\n if (args.eventIds.has(\"configurableui:set-auto-collapse-unpinned-panels\"))\n await this.autoCollapseUnpinnedPanels.saveSetting(\n UiFramework.getUiStateStorage()\n );\n\n if (args.eventIds.has(\"configurableui:set_widget_opacity\"))\n await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());\n\n if (args.eventIds.has(\"configurableui:set-animate-tool-settings\"))\n await this.animateToolSettings.saveSetting(\n UiFramework.getUiStateStorage()\n );\n\n if (args.eventIds.has(\"configurableui:set-use-tool-as-tool-settings-label\"))\n await this.useToolAsToolSettingsLabel.saveSetting(\n UiFramework.getUiStateStorage()\n );\n\n if (args.eventIds.has(\"configurableui:set-toolbar-opacity\"))\n await this.toolbarOpacity.saveSetting(UiFramework.getUiStateStorage());\n };\n\n public async apply(storage: UiStateStorage): Promise<void> {\n this._applyingLocalSettings = true;\n for await (const setting of this._settings) {\n await setting.getSettingAndApplyValue(storage);\n }\n this._applyingLocalSettings = false;\n }\n\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\n await this.apply(storage);\n }\n}\n"]}
@@ -13,7 +13,16 @@ export declare const UiStateStorageContext: React.Context<UiStateStorage>;
13
13
  export interface UiSettingsProviderProps {
14
14
  children?: React.ReactNode;
15
15
  }
16
- /** Allows to provide a custom [[UiStateStorage]] implementation to persist UI settings.
16
+ /** Allows to provide a custom [[UiStateStorage]] implementation to persist UI settings
17
+ * through [[UiFramework.setUiStateStorage]].
18
+ *
19
+ * This component should wrap the [[ConfigurableUiContent]].
20
+ *
21
+ * ```tsx
22
+ * <UiStateStorageHandler>
23
+ * <ConfigurableUiContent />
24
+ * </UiStateStorageHandler>
25
+ * ```
17
26
  * @public
18
27
  */
19
28
  export declare function UiStateStorageHandler(props: UiSettingsProviderProps): JSX.Element;
@@ -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;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,cAAc;AACd,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD;AAED,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,+BAEjC,CAAC;AAGF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,eAyBnE"}
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;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,cAAc;AACd,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD;AAED,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,+BAEjC,CAAC;AAGF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,eAyBnE"}
@@ -20,7 +20,16 @@ exports.useUiStateStorageHandler = useUiStateStorageHandler;
20
20
  /** @internal */
21
21
  exports.UiStateStorageContext = React.createContext(new core_react_1.LocalStateStorage());
22
22
  exports.UiStateStorageContext.displayName = "uifw:UiStateStorageContext";
23
- /** Allows to provide a custom [[UiStateStorage]] implementation to persist UI settings.
23
+ /** Allows to provide a custom [[UiStateStorage]] implementation to persist UI settings
24
+ * through [[UiFramework.setUiStateStorage]].
25
+ *
26
+ * This component should wrap the [[ConfigurableUiContent]].
27
+ *
28
+ * ```tsx
29
+ * <UiStateStorageHandler>
30
+ * <ConfigurableUiContent />
31
+ * </UiStateStorageHandler>
32
+ * ```
24
33
  * @public
25
34
  */
26
35
  function UiStateStorageHandler(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"useUiStateStorage.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/useUiStateStorage.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,kDAAsD;AACtD,gDAA6C;AAC7C,2EAGyC;AAGzC,cAAc;AACd,SAAgB,wBAAwB;IACtC,OAAO,KAAK,CAAC,UAAU,CAAC,6BAAqB,CAAC,CAAC;AACjD,CAAC;AAFD,4DAEC;AAED,gBAAgB;AACH,QAAA,qBAAqB,GAAG,KAAK,CAAC,aAAa,CACtD,IAAI,8BAAiB,EAAE,CACxB,CAAC;AACF,6BAAqB,CAAC,WAAW,GAAG,4BAA4B,CAAC;AASjE;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAA8B;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpD,yBAAW,CAAC,iBAAiB,EAAE,CAChC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,IACE,6CAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtD,qCAAa,CAAC,qBAAqB;aACpC,CAAC;gBAEF,eAAe,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,6BAAqB,CAAC,QAAQ,IAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,YAAY,GACnB,CACH,CAAC;AACJ,CAAC;AAzBD,sDAyBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module UiStateStorage\n */\n\nimport * as React from \"react\";\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { LocalStateStorage } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n/** @public */\nexport function useUiStateStorageHandler(): UiStateStorage {\n return React.useContext(UiStateStorageContext);\n}\n\n/** @internal */\nexport const UiStateStorageContext = React.createContext<UiStateStorage>(\n new LocalStateStorage()\n);\nUiStateStorageContext.displayName = \"uifw:UiStateStorageContext\";\n\n/** Properties for the [[UiStateStorageHandler]] component.\n * @public\n */\nexport interface UiSettingsProviderProps {\n children?: React.ReactNode;\n}\n\n/** Allows to provide a custom [[UiStateStorage]] implementation to persist UI settings.\n * @public\n */\nexport function UiStateStorageHandler(props: UiSettingsProviderProps) {\n const [stateStorage, setStateStorage] = React.useState(\n UiFramework.getUiStateStorage()\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n if (\n SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [\n SyncUiEventId.UiStateStorageChanged,\n ])\n )\n setStateStorage(UiFramework.getUiStateStorage());\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n });\n\n return (\n <UiStateStorageContext.Provider\n children={props.children} // eslint-disable-line react/no-children-prop\n value={stateStorage}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"useUiStateStorage.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/useUiStateStorage.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,kDAAsD;AACtD,gDAA6C;AAC7C,2EAGyC;AAGzC,cAAc;AACd,SAAgB,wBAAwB;IACtC,OAAO,KAAK,CAAC,UAAU,CAAC,6BAAqB,CAAC,CAAC;AACjD,CAAC;AAFD,4DAEC;AAED,gBAAgB;AACH,QAAA,qBAAqB,GAAG,KAAK,CAAC,aAAa,CACtD,IAAI,8BAAiB,EAAE,CACxB,CAAC;AACF,6BAAqB,CAAC,WAAW,GAAG,4BAA4B,CAAC;AASjE;;;;;;;;;;;GAWG;AACH,SAAgB,qBAAqB,CAAC,KAA8B;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpD,yBAAW,CAAC,iBAAiB,EAAE,CAChC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,IACE,6CAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtD,qCAAa,CAAC,qBAAqB;aACpC,CAAC;gBAEF,eAAe,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,6BAAqB,CAAC,QAAQ,IAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,YAAY,GACnB,CACH,CAAC;AACJ,CAAC;AAzBD,sDAyBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module UiStateStorage\n */\n\nimport * as React from \"react\";\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { LocalStateStorage } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport type { UiSyncEventArgs } from \"../syncui/UiSyncEvent\";\n\n/** @public */\nexport function useUiStateStorageHandler(): UiStateStorage {\n return React.useContext(UiStateStorageContext);\n}\n\n/** @internal */\nexport const UiStateStorageContext = React.createContext<UiStateStorage>(\n new LocalStateStorage()\n);\nUiStateStorageContext.displayName = \"uifw:UiStateStorageContext\";\n\n/** Properties for the [[UiStateStorageHandler]] component.\n * @public\n */\nexport interface UiSettingsProviderProps {\n children?: React.ReactNode;\n}\n\n/** Allows to provide a custom [[UiStateStorage]] implementation to persist UI settings\n * through [[UiFramework.setUiStateStorage]].\n *\n * This component should wrap the [[ConfigurableUiContent]].\n *\n * ```tsx\n * <UiStateStorageHandler>\n * <ConfigurableUiContent />\n * </UiStateStorageHandler>\n * ```\n * @public\n */\nexport function UiStateStorageHandler(props: UiSettingsProviderProps) {\n const [stateStorage, setStateStorage] = React.useState(\n UiFramework.getUiStateStorage()\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\n if (\n SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, [\n SyncUiEventId.UiStateStorageChanged,\n ])\n )\n setStateStorage(UiFramework.getUiStateStorage());\n };\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n });\n\n return (\n <UiStateStorageContext.Provider\n children={props.children} // eslint-disable-line react/no-children-prop\n value={stateStorage}\n />\n );\n}\n"]}
@@ -0,0 +1,22 @@
1
+ /** @packageDocumentation
2
+ * @module Utilities
3
+ */
4
+ /**
5
+ * Interface that returns indices of matches
6
+ * @internal
7
+ */
8
+ export interface IMatch {
9
+ start: number;
10
+ end: number;
11
+ }
12
+ /**
13
+ * Matches beginning of words supporting non-ASCII languages.
14
+ * @param word Filter string
15
+ * @param target String being searched
16
+ * @param contiguous - If true the filter string must be found "contiguous" in the searched string (E.g. "pul" will match "Git: Pull").
17
+ * Otherwise also matches sub string of the word with beginnings of the words in the target (e.g. "gp" or "g p" will match "Git: Pull").
18
+ * Useful in cases where the target is words (e.g. command labels)
19
+ * @internal
20
+ */
21
+ export declare function matchesWords(word: string, target: string, contiguous?: boolean): IMatch[] | null;
22
+ //# sourceMappingURL=matchesWords.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchesWords.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/utils/matchesWords.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,OAAe,GAC1B,MAAM,EAAE,GAAG,IAAI,CAkBjB"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Utilities
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.matchesWords = void 0;
11
+ /**
12
+ * Matches beginning of words supporting non-ASCII languages.
13
+ * @param word Filter string
14
+ * @param target String being searched
15
+ * @param contiguous - If true the filter string must be found "contiguous" in the searched string (E.g. "pul" will match "Git: Pull").
16
+ * Otherwise also matches sub string of the word with beginnings of the words in the target (e.g. "gp" or "g p" will match "Git: Pull").
17
+ * Useful in cases where the target is words (e.g. command labels)
18
+ * @internal
19
+ */
20
+ function matchesWords(word, target, contiguous = false) {
21
+ if (!target || target.length === 0) {
22
+ return null;
23
+ }
24
+ let result = null;
25
+ let i = 0;
26
+ word = word.toLowerCase();
27
+ target = target.toLowerCase();
28
+ while (i < target.length &&
29
+ (result = matchesWordsInternal(word, target, 0, i, contiguous)) === null) {
30
+ i = nextWord(target, i + 1);
31
+ }
32
+ return result;
33
+ }
34
+ exports.matchesWords = matchesWords;
35
+ function matchesWordsInternal(word, target, i, j, contiguous) {
36
+ if (i === word.length) {
37
+ return [];
38
+ }
39
+ else if (j === target.length) {
40
+ return null;
41
+ }
42
+ else if (!charactersMatch(word.charCodeAt(i), target.charCodeAt(j))) {
43
+ return null;
44
+ }
45
+ else {
46
+ let result = null;
47
+ let nextWordIndex = j + 1;
48
+ result = matchesWordsInternal(word, target, i + 1, j + 1, contiguous);
49
+ if (!contiguous) {
50
+ while (!result &&
51
+ (nextWordIndex = nextWord(target, nextWordIndex)) < target.length) {
52
+ result = matchesWordsInternal(word, target, i + 1, nextWordIndex, contiguous);
53
+ nextWordIndex++;
54
+ }
55
+ }
56
+ return result === null ? null : join({ start: j, end: j + 1 }, result);
57
+ }
58
+ }
59
+ function nextWord(word, start) {
60
+ for (let i = start; i < word.length; i++) {
61
+ if (isWordSeparator(word.charCodeAt(i)) ||
62
+ (i > 0 && isWordSeparator(word.charCodeAt(i - 1)))) {
63
+ return i;
64
+ }
65
+ }
66
+ return word.length;
67
+ }
68
+ var CharCode;
69
+ (function (CharCode) {
70
+ CharCode[CharCode["Space"] = 32] = "Space";
71
+ CharCode[CharCode["Tab"] = 9] = "Tab";
72
+ CharCode[CharCode["LineFeed"] = 10] = "LineFeed";
73
+ CharCode[CharCode["CarriageReturn"] = 13] = "CarriageReturn";
74
+ })(CharCode || (CharCode = {}));
75
+ function isWhitespace(code) {
76
+ return (code === CharCode.Space ||
77
+ code === CharCode.Tab ||
78
+ code === CharCode.LineFeed ||
79
+ code === CharCode.CarriageReturn);
80
+ }
81
+ const wordSeparators = new Set();
82
+ "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?"
83
+ .split("")
84
+ .forEach((s) => wordSeparators.add(s.charCodeAt(0)));
85
+ function isWordSeparator(code) {
86
+ return isWhitespace(code) || wordSeparators.has(code);
87
+ }
88
+ function charactersMatch(codeA, codeB) {
89
+ return codeA === codeB || (isWordSeparator(codeA) && isWordSeparator(codeB));
90
+ }
91
+ function join(head, tail) {
92
+ if (tail.length === 0) {
93
+ tail = [head];
94
+ }
95
+ else if (head.end === tail[0].start) {
96
+ tail[0].start = head.start;
97
+ }
98
+ else {
99
+ tail.unshift(head);
100
+ }
101
+ return tail;
102
+ }
103
+ //# sourceMappingURL=matchesWords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchesWords.js","sourceRoot":"","sources":["../../../../src/appui-react/utils/matchesWords.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\n/**\n * Interface that returns indices of matches\n * @internal\n */\nexport interface IMatch {\n start: number;\n end: number;\n}\n\n/**\n * Matches beginning of words supporting non-ASCII languages.\n * @param word Filter string\n * @param target String being searched\n * @param contiguous - If true the filter string must be found \"contiguous\" in the searched string (E.g. \"pul\" will match \"Git: Pull\").\n * Otherwise also matches sub string of the word with beginnings of the words in the target (e.g. \"gp\" or \"g p\" will match \"Git: Pull\").\n * Useful in cases where the target is words (e.g. command labels)\n * @internal\n */\nexport function matchesWords(\n word: string,\n target: string,\n contiguous: boolean = false\n): IMatch[] | null {\n if (!target || target.length === 0) {\n return null;\n }\n\n let result: IMatch[] | null = null;\n let i = 0;\n\n word = word.toLowerCase();\n target = target.toLowerCase();\n while (\n i < target.length &&\n (result = matchesWordsInternal(word, target, 0, i, contiguous)) === null\n ) {\n i = nextWord(target, i + 1);\n }\n\n return result;\n}\n\nfunction matchesWordsInternal(\n word: string,\n target: string,\n i: number,\n j: number,\n contiguous: boolean\n): IMatch[] | null {\n if (i === word.length) {\n return [];\n } else if (j === target.length) {\n return null;\n } else if (!charactersMatch(word.charCodeAt(i), target.charCodeAt(j))) {\n return null;\n } else {\n let result: IMatch[] | null = null;\n let nextWordIndex = j + 1;\n result = matchesWordsInternal(word, target, i + 1, j + 1, contiguous);\n if (!contiguous) {\n while (\n !result &&\n (nextWordIndex = nextWord(target, nextWordIndex)) < target.length\n ) {\n result = matchesWordsInternal(\n word,\n target,\n i + 1,\n nextWordIndex,\n contiguous\n );\n nextWordIndex++;\n }\n }\n return result === null ? null : join({ start: j, end: j + 1 }, result);\n }\n}\n\nfunction nextWord(word: string, start: number): number {\n for (let i = start; i < word.length; i++) {\n if (\n isWordSeparator(word.charCodeAt(i)) ||\n (i > 0 && isWordSeparator(word.charCodeAt(i - 1)))\n ) {\n return i;\n }\n }\n return word.length;\n}\n\nenum CharCode {\n Space = 32,\n Tab = 9,\n LineFeed = 10,\n CarriageReturn = 13,\n}\n\nfunction isWhitespace(code: number): boolean {\n return (\n code === CharCode.Space ||\n code === CharCode.Tab ||\n code === CharCode.LineFeed ||\n code === CharCode.CarriageReturn\n );\n}\nconst wordSeparators = new Set<number>();\n\"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\"\n .split(\"\")\n .forEach((s) => wordSeparators.add(s.charCodeAt(0)));\n\nfunction isWordSeparator(code: number): boolean {\n return isWhitespace(code) || wordSeparators.has(code);\n}\n\nfunction charactersMatch(codeA: number, codeB: number): boolean {\n return codeA === codeB || (isWordSeparator(codeA) && isWordSeparator(codeB));\n}\n\nfunction join(head: IMatch, tail: IMatch[]): IMatch[] {\n if (tail.length === 0) {\n tail = [head];\n } else if (head.end === tail[0].start) {\n tail[0].start = head.start;\n } else {\n tail.unshift(head);\n }\n return tail;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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"}
@@ -38,17 +38,29 @@ const WidgetState_1 = require("../widgets/WidgetState");
38
38
  const StagePanelSection_1 = require("../stagepanels/StagePanelSection");
39
39
  const StagePanelLocation_1 = require("../stagepanels/StagePanelLocation");
40
40
  const UiItemsManager_1 = require("../ui-items-provider/UiItemsManager");
41
+ const PreviewFeatures_1 = require("../preview/PreviewFeatures");
42
+ const classnames_1 = require("classnames");
41
43
  function WidgetPanelsFrontstageComponent() {
42
44
  const activeModalFrontstageInfo = (0, ModalFrontstageComposer_1.useActiveModalFrontstageInfo)();
43
45
  const uiIsVisible = (0, useUiVisibility_1.useUiVisibility)();
44
- return (React.createElement(React.Fragment, null,
45
- React.createElement(ToolSettings_1.WidgetPanelsToolSettings, null),
46
- React.createElement(components_react_1.ToolbarPopupAutoHideContext.Provider, { value: !uiIsVisible },
47
- React.createElement(ModalFrontstageComposer_1.ModalFrontstageComposer, { stageInfo: activeModalFrontstageInfo }),
48
- React.createElement(appui_layout_react_1.WidgetPanels, { className: "uifw-widgetPanels", centerContent: React.createElement(Toolbars_1.WidgetPanelsToolbars, null) },
49
- React.createElement(FrontstageContent_1.WidgetPanelsFrontstageContent, null)),
50
- React.createElement(StatusBar_1.WidgetPanelsStatusBar, null),
51
- React.createElement(appui_layout_react_1.FloatingWidgets, null))));
46
+ const previewFeatures = (0, PreviewFeatures_1.usePreviewFeatures)();
47
+ const previewContentAlwaysMaxSizeDockedClass = (0, ToolSettings_1.useShouldRenderDockedToolSettings)() &&
48
+ previewFeatures.contentAlwaysMaxSize &&
49
+ "preview-contentAlwaysMaxSize-toolSettingsDocked";
50
+ const previewContentAlwaysMaxSizeTopPanelClass = (0, appui_layout_react_1.useLayout)((state) => {
51
+ return state.panels.top.widgets.length > 0;
52
+ }) &&
53
+ previewFeatures.contentAlwaysMaxSize &&
54
+ "preview-contentAlwaysMaxSize-topPanelActive";
55
+ return (React.createElement(appui_layout_react_1.PreviewLayoutFeaturesProvider, { ...previewFeatures },
56
+ React.createElement(appui_layout_react_1.PreviewMaximizedWidgetFeatureProvider, { enabled: previewFeatures.enableMaximizedFloatingWidget },
57
+ React.createElement(ToolSettings_1.WidgetPanelsToolSettings, null),
58
+ React.createElement(components_react_1.ToolbarPopupAutoHideContext.Provider, { value: !uiIsVisible },
59
+ React.createElement(ModalFrontstageComposer_1.ModalFrontstageComposer, { stageInfo: activeModalFrontstageInfo }),
60
+ React.createElement(appui_layout_react_1.WidgetPanels, { className: (0, classnames_1.default)("uifw-widgetPanels", previewContentAlwaysMaxSizeDockedClass, previewContentAlwaysMaxSizeTopPanelClass), centerContent: React.createElement(Toolbars_1.WidgetPanelsToolbars, null) },
61
+ React.createElement(FrontstageContent_1.WidgetPanelsFrontstageContent, null)),
62
+ React.createElement(StatusBar_1.WidgetPanelsStatusBar, null),
63
+ React.createElement(appui_layout_react_1.FloatingWidgets, null)))));
52
64
  }
53
65
  const widgetContent = React.createElement(Content_1.WidgetContent, null);
54
66
  const toolSettingsContent = React.createElement(ToolSettings_1.ToolSettingsContent, null);
@@ -674,6 +686,7 @@ exports.useSavedFrontstageState = useSavedFrontstageState;
674
686
  /** @internal */
675
687
  function useSaveFrontstageSettings(frontstageDef, store) {
676
688
  const uiSettingsStorage = (0, useUiStateStorage_1.useUiStateStorageHandler)();
689
+ const pendingSave = React.useRef(() => { });
677
690
  const saveSetting = React.useMemo(() => {
678
691
  const debounced = debounce(async (frontstage, state) => {
679
692
  const id = frontstage.id;
@@ -691,8 +704,14 @@ function useSaveFrontstageSettings(frontstageDef, store) {
691
704
  debounced(frontstage, state);
692
705
  };
693
706
  save.cancel = debounced.cancel;
707
+ pendingSave.current = debounced.immediate;
694
708
  return save;
695
709
  }, [uiSettingsStorage]);
710
+ React.useEffect(() => {
711
+ return () => {
712
+ pendingSave.current();
713
+ };
714
+ }, [frontstageDef]);
696
715
  React.useEffect(() => {
697
716
  return () => {
698
717
  saveSetting.cancel();
@@ -718,16 +737,30 @@ exports.getFrontstageStateSettingName = getFrontstageStateSettingName;
718
737
  // istanbul ignore next
719
738
  function debounce(func, duration) {
720
739
  let timeout;
740
+ let handler;
721
741
  const debounced = (...args) => {
722
- const handler = () => {
742
+ handler = () => {
723
743
  timeout = undefined;
724
744
  return func(...args);
725
745
  };
726
746
  window.clearTimeout(timeout);
727
747
  timeout = window.setTimeout(handler, duration);
728
748
  };
749
+ /**
750
+ * Will cancel the timeout without running the function.
751
+ */
729
752
  debounced.cancel = () => {
730
753
  window.clearTimeout(timeout);
754
+ timeout = undefined;
755
+ };
756
+ /**
757
+ * If not already ran, will run the function immediately and remove the timeout.
758
+ */
759
+ debounced.immediate = () => {
760
+ if (timeout === undefined)
761
+ return;
762
+ debounced.cancel();
763
+ handler?.();
731
764
  };
732
765
  return debounced;
733
766
  }