@itwin/appui-react 3.5.0-dev.5 → 3.5.0-dev.52

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 (341) hide show
  1. package/CHANGELOG.md +53 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +1 -0
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +1 -1
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/backstage/Backstage.d.ts +3 -0
  7. package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/backstage/Backstage.js +3 -1
  9. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  10. package/lib/cjs/appui-react/backstage/CommandLaunch.js +1 -1
  11. package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
  12. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +1 -0
  13. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  14. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +1 -1
  15. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  16. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  17. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +2 -2
  18. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  19. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  20. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  22. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +2 -0
  23. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +4 -0
  25. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  26. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts +13 -3
  27. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
  28. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js +15 -7
  29. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  30. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +1 -0
  31. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  33. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +2 -0
  34. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +1 -0
  36. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  37. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +1 -0
  38. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  40. package/lib/cjs/appui-react/messages/StickyMessage.d.ts +1 -0
  41. package/lib/cjs/appui-react/messages/StickyMessage.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
  43. package/lib/cjs/appui-react/messages/ToastMessage.d.ts +1 -0
  44. package/lib/cjs/appui-react/messages/ToastMessage.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  46. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +1 -0
  47. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  48. package/lib/cjs/appui-react/pickers/ListPicker.js +4 -2
  49. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  50. package/lib/cjs/appui-react/pickers/ListPicker.scss +2 -1
  51. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +1 -0
  52. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/safearea/SafeAreaContext.js +2 -1
  54. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  55. package/lib/cjs/appui-react/safearea/SafeAreaInsets.d.ts +13 -0
  56. package/lib/cjs/appui-react/safearea/SafeAreaInsets.d.ts.map +1 -0
  57. package/lib/cjs/appui-react/safearea/SafeAreaInsets.js +16 -0
  58. package/lib/cjs/appui-react/safearea/SafeAreaInsets.js.map +1 -0
  59. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js +2 -1
  60. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  61. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js +2 -1
  62. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  63. package/lib/cjs/appui-react/statusbar/Indicator.d.ts +26 -0
  64. package/lib/cjs/appui-react/statusbar/Indicator.d.ts.map +1 -0
  65. package/lib/cjs/appui-react/statusbar/Indicator.js +38 -0
  66. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -0
  67. package/lib/cjs/appui-react/statusbar/Indicator.scss +110 -0
  68. package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts +24 -0
  69. package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts.map +1 -0
  70. package/lib/cjs/appui-react/statusbar/LabelIndicator.js +29 -0
  71. package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -0
  72. package/lib/cjs/appui-react/statusbar/LabelIndicator.scss +43 -0
  73. package/lib/cjs/appui-react/statusbar/Separator.d.ts +10 -0
  74. package/lib/cjs/appui-react/statusbar/Separator.d.ts.map +1 -0
  75. package/lib/cjs/appui-react/statusbar/Separator.js +21 -0
  76. package/lib/cjs/appui-react/statusbar/Separator.js.map +1 -0
  77. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +2 -1
  78. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  79. package/lib/cjs/appui-react/statusbar/dialog/Button.d.ts +21 -0
  80. package/lib/cjs/appui-react/statusbar/dialog/Button.d.ts.map +1 -0
  81. package/lib/cjs/appui-react/statusbar/dialog/Button.js +20 -0
  82. package/lib/cjs/appui-react/statusbar/dialog/Button.js.map +1 -0
  83. package/lib/cjs/appui-react/statusbar/dialog/Dialog.d.ts +30 -0
  84. package/lib/cjs/appui-react/statusbar/dialog/Dialog.d.ts.map +1 -0
  85. package/lib/cjs/appui-react/statusbar/dialog/Dialog.js +31 -0
  86. package/lib/cjs/appui-react/statusbar/dialog/Dialog.js.map +1 -0
  87. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.d.ts +19 -0
  88. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.d.ts.map +1 -0
  89. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js +20 -0
  90. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js.map +1 -0
  91. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +1 -0
  92. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  93. package/lib/cjs/appui-react/statusfields/Indicator.js +1 -0
  94. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  95. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/statusfields/MessageCenter.js +2 -5
  97. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  98. package/lib/cjs/appui-react/statusfields/PromptField.js +2 -1
  99. package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
  100. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  101. package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -2
  102. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  103. package/lib/cjs/appui-react/statusfields/SelectionInfo.js +2 -1
  104. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  105. package/lib/cjs/appui-react/statusfields/SelectionScope.js +2 -1
  106. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  107. package/lib/cjs/appui-react/statusfields/SnapMode.js +2 -1
  108. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  109. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  110. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +3 -2
  111. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  112. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +0 -1
  113. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  114. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +13 -11
  115. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  116. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -1
  117. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  118. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +14 -0
  119. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  120. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts +2 -0
  121. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  122. package/lib/cjs/appui-react/toolbar/ActionItemButton.js +1 -0
  123. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  124. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts +2 -0
  125. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  126. package/lib/cjs/appui-react/toolbar/GroupItem.js +1 -0
  127. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  128. package/lib/cjs/appui-react/toolbar/ToolButton.d.ts +2 -0
  129. package/lib/cjs/appui-react/toolbar/ToolButton.d.ts.map +1 -1
  130. package/lib/cjs/appui-react/toolbar/ToolButton.js +1 -0
  131. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  132. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +1 -1
  133. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  134. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts +9 -0
  135. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  136. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +17 -1
  137. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  138. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -3
  140. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  141. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +3 -3
  142. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  143. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js +1 -1
  144. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  145. package/lib/cjs/appui-react/uistate/AppUiSettings.js +2 -1
  146. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  147. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  148. package/lib/cjs/appui-react/utils/UiShowHideManager.js +8 -0
  149. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  150. package/lib/cjs/appui-react/widget-panels/FloatingWidget.d.ts +7 -0
  151. package/lib/cjs/appui-react/widget-panels/FloatingWidget.d.ts.map +1 -0
  152. package/lib/cjs/appui-react/widget-panels/FloatingWidget.js +19 -0
  153. package/lib/cjs/appui-react/widget-panels/FloatingWidget.js.map +1 -0
  154. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  155. package/lib/cjs/appui-react/widget-panels/Frontstage.js +31 -20
  156. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  157. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js +1 -1
  158. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  159. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +2 -2
  160. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  161. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +1 -1
  162. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  163. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +4 -0
  164. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  165. package/lib/cjs/appui-react/widgets/WidgetDef.js +8 -1
  166. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  167. package/lib/cjs/appui-react.d.ts +5 -0
  168. package/lib/cjs/appui-react.d.ts.map +1 -1
  169. package/lib/cjs/appui-react.js +5 -0
  170. package/lib/cjs/appui-react.js.map +1 -1
  171. package/lib/esm/appui-react/UiFramework.d.ts +1 -0
  172. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  173. package/lib/esm/appui-react/UiFramework.js +1 -1
  174. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  175. package/lib/esm/appui-react/backstage/Backstage.d.ts +3 -0
  176. package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
  177. package/lib/esm/appui-react/backstage/Backstage.js +3 -1
  178. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  179. package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -1
  180. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  181. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +1 -0
  182. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  183. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +1 -1
  184. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  185. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  186. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +2 -2
  187. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  188. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  189. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  190. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  191. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +2 -0
  192. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  193. package/lib/esm/appui-react/frontstage/FrontstageManager.js +4 -0
  194. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  195. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts +13 -3
  196. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
  197. package/lib/esm/appui-react/hooks/useFrameworkVersion.js +15 -7
  198. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  199. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +1 -0
  200. package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +1 -1
  201. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  202. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +2 -0
  203. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
  204. package/lib/esm/appui-react/messages/ActivityMessagePopup.js +1 -0
  205. package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  206. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +1 -0
  207. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
  208. package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  209. package/lib/esm/appui-react/messages/StickyMessage.d.ts +1 -0
  210. package/lib/esm/appui-react/messages/StickyMessage.d.ts.map +1 -1
  211. package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
  212. package/lib/esm/appui-react/messages/ToastMessage.d.ts +1 -0
  213. package/lib/esm/appui-react/messages/ToastMessage.d.ts.map +1 -1
  214. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  215. package/lib/esm/appui-react/pickers/ListPicker.d.ts +1 -0
  216. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  217. package/lib/esm/appui-react/pickers/ListPicker.js +4 -2
  218. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  219. package/lib/esm/appui-react/pickers/ListPicker.scss +2 -1
  220. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +1 -0
  221. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  222. package/lib/esm/appui-react/safearea/SafeAreaContext.js +2 -1
  223. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  224. package/lib/esm/appui-react/safearea/SafeAreaInsets.d.ts +13 -0
  225. package/lib/esm/appui-react/safearea/SafeAreaInsets.d.ts.map +1 -0
  226. package/lib/esm/appui-react/safearea/SafeAreaInsets.js +13 -0
  227. package/lib/esm/appui-react/safearea/SafeAreaInsets.js.map +1 -0
  228. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js +2 -1
  229. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  230. package/lib/esm/appui-react/shared/ActionButtonItemDef.js +2 -1
  231. package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  232. package/lib/esm/appui-react/statusbar/Indicator.d.ts +26 -0
  233. package/lib/esm/appui-react/statusbar/Indicator.d.ts.map +1 -0
  234. package/lib/esm/appui-react/statusbar/Indicator.js +34 -0
  235. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -0
  236. package/lib/esm/appui-react/statusbar/Indicator.scss +110 -0
  237. package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts +24 -0
  238. package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts.map +1 -0
  239. package/lib/esm/appui-react/statusbar/LabelIndicator.js +25 -0
  240. package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -0
  241. package/lib/esm/appui-react/statusbar/LabelIndicator.scss +43 -0
  242. package/lib/esm/appui-react/statusbar/Separator.d.ts +10 -0
  243. package/lib/esm/appui-react/statusbar/Separator.d.ts.map +1 -0
  244. package/lib/esm/appui-react/statusbar/Separator.js +17 -0
  245. package/lib/esm/appui-react/statusbar/Separator.js.map +1 -0
  246. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +2 -1
  247. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  248. package/lib/esm/appui-react/statusbar/dialog/Button.d.ts +21 -0
  249. package/lib/esm/appui-react/statusbar/dialog/Button.d.ts.map +1 -0
  250. package/lib/esm/appui-react/statusbar/dialog/Button.js +16 -0
  251. package/lib/esm/appui-react/statusbar/dialog/Button.js.map +1 -0
  252. package/lib/esm/appui-react/statusbar/dialog/Dialog.d.ts +30 -0
  253. package/lib/esm/appui-react/statusbar/dialog/Dialog.d.ts.map +1 -0
  254. package/lib/esm/appui-react/statusbar/dialog/Dialog.js +27 -0
  255. package/lib/esm/appui-react/statusbar/dialog/Dialog.js.map +1 -0
  256. package/lib/esm/appui-react/statusbar/dialog/TitleBar.d.ts +19 -0
  257. package/lib/esm/appui-react/statusbar/dialog/TitleBar.d.ts.map +1 -0
  258. package/lib/esm/appui-react/statusbar/dialog/TitleBar.js +16 -0
  259. package/lib/esm/appui-react/statusbar/dialog/TitleBar.js.map +1 -0
  260. package/lib/esm/appui-react/statusfields/Indicator.d.ts +1 -0
  261. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  262. package/lib/esm/appui-react/statusfields/Indicator.js +1 -0
  263. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  264. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  265. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -5
  266. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  267. package/lib/esm/appui-react/statusfields/PromptField.js +2 -1
  268. package/lib/esm/appui-react/statusfields/PromptField.js.map +1 -1
  269. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  270. package/lib/esm/appui-react/statusfields/SectionsField.js +5 -3
  271. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  272. package/lib/esm/appui-react/statusfields/SelectionInfo.js +2 -1
  273. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  274. package/lib/esm/appui-react/statusfields/SelectionScope.js +2 -1
  275. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  276. package/lib/esm/appui-react/statusfields/SnapMode.js +2 -1
  277. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  278. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  279. package/lib/esm/appui-react/statusfields/ViewAttributes.js +3 -2
  280. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  281. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +0 -1
  282. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  283. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +15 -13
  284. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  285. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -1
  286. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  287. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +14 -0
  288. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  289. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts +2 -0
  290. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  291. package/lib/esm/appui-react/toolbar/ActionItemButton.js +1 -0
  292. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  293. package/lib/esm/appui-react/toolbar/GroupItem.d.ts +2 -0
  294. package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  295. package/lib/esm/appui-react/toolbar/GroupItem.js +1 -0
  296. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  297. package/lib/esm/appui-react/toolbar/ToolButton.d.ts +2 -0
  298. package/lib/esm/appui-react/toolbar/ToolButton.d.ts.map +1 -1
  299. package/lib/esm/appui-react/toolbar/ToolButton.js +1 -0
  300. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  301. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +1 -1
  302. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  303. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts +9 -0
  304. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  305. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +15 -0
  306. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  307. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  308. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -3
  309. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  310. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +3 -3
  311. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  312. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js +1 -1
  313. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  314. package/lib/esm/appui-react/uistate/AppUiSettings.js +2 -1
  315. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  316. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  317. package/lib/esm/appui-react/utils/UiShowHideManager.js +8 -0
  318. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  319. package/lib/esm/appui-react/widget-panels/FloatingWidget.d.ts +7 -0
  320. package/lib/esm/appui-react/widget-panels/FloatingWidget.d.ts.map +1 -0
  321. package/lib/esm/appui-react/widget-panels/FloatingWidget.js +15 -0
  322. package/lib/esm/appui-react/widget-panels/FloatingWidget.js.map +1 -0
  323. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  324. package/lib/esm/appui-react/widget-panels/Frontstage.js +31 -20
  325. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  326. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js +1 -1
  327. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  328. package/lib/esm/appui-react/widgets/BackstageAppButton.js +2 -2
  329. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  330. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +1 -1
  331. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  332. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +4 -0
  333. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  334. package/lib/esm/appui-react/widgets/WidgetDef.js +8 -1
  335. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  336. package/lib/esm/appui-react.d.ts +5 -0
  337. package/lib/esm/appui-react.d.ts.map +1 -1
  338. package/lib/esm/appui-react.js +5 -0
  339. package/lib/esm/appui-react.js.map +1 -1
  340. package/lib/public/locales/en/UiFramework.json +8 -3
  341. package/package.json +34 -34
@@ -7,7 +7,6 @@
7
7
  */
8
8
  import * as React from "react";
9
9
  import { StatusBarSection } from "@itwin/appui-abstract";
10
- import { FooterSeparator } from "@itwin/appui-layout-react";
11
10
  import { StatusBarItemUtilities } from "../statusbar/StatusBarItemUtilities";
12
11
  import { ToolAssistanceField } from "../statusfields/toolassistance/ToolAssistanceField";
13
12
  import { withStatusFieldProps } from "../statusbar/withStatusFieldProps";
@@ -18,6 +17,7 @@ import { SnapModeField } from "../statusfields/SnapMode";
18
17
  import { SelectionInfoField } from "../statusfields/SelectionInfo";
19
18
  import { TileLoadingIndicator } from "../statusfields/tileloading/TileLoadingIndicator";
20
19
  import { SelectionScopeField } from "../statusfields/SelectionScope";
20
+ import { StatusBarSeparator } from "../statusbar/Separator";
21
21
  /**
22
22
  * Provide standard statusbar fields for the SimpleStatusbarWidget
23
23
  * @beta
@@ -39,12 +39,12 @@ export class StandardStatusbarUiItemsProvider {
39
39
  // istanbul ignore else
40
40
  if (!this._defaultItems || this._defaultItems.toolAssistance) {
41
41
  if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)
42
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(FooterSeparator, null)));
42
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(StatusBarSeparator, null)));
43
43
  // eslint-disable-next-line deprecation/deprecation
44
44
  const ToolAssistance = withStatusFieldProps(ToolAssistanceField);
45
45
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ToolAssistance", StatusBarSection.Left, 20, React.createElement(ToolAssistance, null)));
46
46
  if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)
47
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PostToolAssistance", StatusBarSection.Left, 25, React.createElement(FooterSeparator, null)));
47
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PostToolAssistance", StatusBarSection.Left, 25, React.createElement(StatusBarSeparator, null)));
48
48
  }
49
49
  // istanbul ignore else
50
50
  if ((_a = this._defaultItems) === null || _a === void 0 ? void 0 : _a.activityCenter) {
@@ -1 +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 // eslint-disable-next-line deprecation/deprecation\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 // eslint-disable-next-line deprecation/deprecation\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 // eslint-disable-next-line deprecation/deprecation\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 statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SnapMode\", StatusBarSection.Center, 10, <SnapModeField />));\r\n }\r\n\r\n // istanbul ignore else\r\n if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {\r\n // eslint-disable-next-line deprecation/deprecation\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 // eslint-disable-next-line deprecation/deprecation\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 // eslint-disable-next-line deprecation/deprecation\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"]}
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 { 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\nimport { StatusBarSeparator } from \"../statusbar/Separator\";\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 // eslint-disable-next-line deprecation/deprecation\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, <StatusBarSeparator />));\r\n\r\n // eslint-disable-next-line deprecation/deprecation\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, <StatusBarSeparator />));\r\n }\r\n // istanbul ignore else\r\n if (this._defaultItems?.activityCenter) {\r\n // eslint-disable-next-line deprecation/deprecation\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 statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SnapMode\", StatusBarSection.Center, 10, <SnapModeField />));\r\n }\r\n\r\n // istanbul ignore else\r\n if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {\r\n // eslint-disable-next-line deprecation/deprecation\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 // eslint-disable-next-line deprecation/deprecation\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 // eslint-disable-next-line deprecation/deprecation\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"]}
@@ -21,7 +21,7 @@ var LayoutMode;
21
21
  */
22
22
  export function ToolSettingsGridContainer({ componentGenerator }) {
23
23
  const { availableContentWidth } = React.useContext(ToolSettingsContentContext);
24
- const version = useFrameworkVersion();
24
+ const version = useFrameworkVersion(); // eslint-disable-line deprecation/deprecation
25
25
  const layoutMode = toLayoutMode(availableContentWidth);
26
26
  const className = classnames("uifw-tool-settings-grid-container", version === "1" && "uifw-fill",
27
27
  // istanbul ignore next
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultDialogGridContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/uiprovider/DefaultDialogGridContainer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAG5E,IAAK,UAGJ;AAHD,WAAK,UAAU;IACb,2CAAQ,CAAA;IACR,+CAAU,CAAA;AACZ,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAE,kBAAkB,EAA8C;IAC1G,MAAM,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,UAAU,CAC1B,mCAAmC,EACnC,OAAO,KAAK,GAAG,IAAI,WAAW;IAC9B,uBAAuB;IACvB,UAAU,CAAC,MAAM,KAAK,UAAU,IAAI,qBAAqB,CAC1D,CAAC;IACF,OAAO,CACL,oBAAC,mBAAmB,IAClB,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EAAE,SAAS,GAC7B,CACH,CAAC;AACJ,CAAC;AAOD,gBAAgB;AAChB,uBAAuB;AACvB,MAAM,UAAU,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,EAA4B;IACtG,MAAM,SAAS,GAAG,UAAU,CAC1B,wBAAwB,EACxB,kBAAkB,CACnB,CAAC;IACF,OAAO,CACL,6BAAK,SAAS,EAAC,6BAA6B;QAC1C,6BAAK,SAAS,EAAE,SAAS,IACtB,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAc,EAAE,KAAa,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CACjH,CACF,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,EAAE,kBAAkB,EAAE,cAAc,EAAwE;IACrJ,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACxB,oBAAC,yBAAyB,IAAC,kBAAkB,EAAE,kBAAkB,GAAI,CAAC,CAAC;QACvE,0BAA0B;QAC1B,oBAAC,mBAAmB,IAAC,kBAAkB,EAAE,kBAAkB,GAAI,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;IACrC,OAAO,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AACrG,CAAC,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 UiProvider\r\n */\r\n\r\nimport \"./DefaultDialogGridContainer.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { DialogRow } from \"@itwin/appui-abstract\";\r\nimport { useFrameworkVersion } from \"../hooks/useFrameworkVersion\";\r\nimport { ToolSettingsContentContext } from \"../widgets/ToolSettingsContent\";\r\nimport { ComponentGenerator } from \"./ComponentGenerator\";\r\n\r\nenum LayoutMode {\r\n Wide = 0,\r\n Narrow = 1,\r\n}\r\n\r\n/**\r\n * Component to provide grid of property editors\r\n * @public\r\n */\r\nexport function ToolSettingsGridContainer({ componentGenerator }: { componentGenerator: ComponentGenerator }) {\r\n const { availableContentWidth } = React.useContext(ToolSettingsContentContext);\r\n const version = useFrameworkVersion();\r\n const layoutMode = toLayoutMode(availableContentWidth);\r\n const className = classnames(\r\n \"uifw-tool-settings-grid-container\",\r\n version === \"1\" && \"uifw-fill\",\r\n // istanbul ignore next\r\n LayoutMode.Narrow === layoutMode && \"uifw-default-narrow\",\r\n );\r\n return (\r\n <DialogGridContainer\r\n componentGenerator={componentGenerator}\r\n containerClassName={className}\r\n />\r\n );\r\n}\r\n\r\ninterface DialogGridContainerProps {\r\n componentGenerator: ComponentGenerator;\r\n containerClassName?: string;\r\n}\r\n\r\n/** @internal */\r\n// istanbul ignore next\r\nexport function DialogGridContainer({ componentGenerator, containerClassName }: DialogGridContainerProps) {\r\n const className = classnames(\r\n \"uifw-default-container\",\r\n containerClassName,\r\n );\r\n return (\r\n <div className=\"uifw-default-resizer-parent\">\r\n <div className={className}>\r\n {componentGenerator.uiDataProvider.rows.map((row: DialogRow, index: number) => componentGenerator.getRow(row, index))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/** DefaultDialogGridContainer populates a React node with the items specified by the UiLayoutDataProvider\r\n * @public\r\n */\r\nexport function DefaultDialogGridContainer({ componentGenerator, isToolSettings }: { componentGenerator: ComponentGenerator, isToolSettings?: boolean }) {\r\n return (!!isToolSettings ?\r\n <ToolSettingsGridContainer componentGenerator={componentGenerator} /> :\r\n /* istanbul ignore next */\r\n <DialogGridContainer componentGenerator={componentGenerator} />);\r\n}\r\n\r\nconst toLayoutMode = (width: number) => {\r\n return (width < 250 && width > 0) ? /* istanbul ignore next */ LayoutMode.Narrow : LayoutMode.Wide;\r\n};\r\n"]}
1
+ {"version":3,"file":"DefaultDialogGridContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/uiprovider/DefaultDialogGridContainer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAG5E,IAAK,UAGJ;AAHD,WAAK,UAAU;IACb,2CAAQ,CAAA;IACR,+CAAU,CAAA;AACZ,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAE,kBAAkB,EAA8C;IAC1G,MAAM,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC,CAAC,8CAA8C;IACrF,MAAM,UAAU,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,UAAU,CAC1B,mCAAmC,EACnC,OAAO,KAAK,GAAG,IAAI,WAAW;IAC9B,uBAAuB;IACvB,UAAU,CAAC,MAAM,KAAK,UAAU,IAAI,qBAAqB,CAC1D,CAAC;IACF,OAAO,CACL,oBAAC,mBAAmB,IAClB,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EAAE,SAAS,GAC7B,CACH,CAAC;AACJ,CAAC;AAOD,gBAAgB;AAChB,uBAAuB;AACvB,MAAM,UAAU,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,EAA4B;IACtG,MAAM,SAAS,GAAG,UAAU,CAC1B,wBAAwB,EACxB,kBAAkB,CACnB,CAAC;IACF,OAAO,CACL,6BAAK,SAAS,EAAC,6BAA6B;QAC1C,6BAAK,SAAS,EAAE,SAAS,IACtB,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAc,EAAE,KAAa,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CACjH,CACF,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,EAAE,kBAAkB,EAAE,cAAc,EAAwE;IACrJ,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACxB,oBAAC,yBAAyB,IAAC,kBAAkB,EAAE,kBAAkB,GAAI,CAAC,CAAC;QACvE,0BAA0B;QAC1B,oBAAC,mBAAmB,IAAC,kBAAkB,EAAE,kBAAkB,GAAI,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;IACrC,OAAO,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AACrG,CAAC,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 UiProvider\r\n */\r\n\r\nimport \"./DefaultDialogGridContainer.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { DialogRow } from \"@itwin/appui-abstract\";\r\nimport { useFrameworkVersion } from \"../hooks/useFrameworkVersion\";\r\nimport { ToolSettingsContentContext } from \"../widgets/ToolSettingsContent\";\r\nimport { ComponentGenerator } from \"./ComponentGenerator\";\r\n\r\nenum LayoutMode {\r\n Wide = 0,\r\n Narrow = 1,\r\n}\r\n\r\n/**\r\n * Component to provide grid of property editors\r\n * @public\r\n */\r\nexport function ToolSettingsGridContainer({ componentGenerator }: { componentGenerator: ComponentGenerator }) {\r\n const { availableContentWidth } = React.useContext(ToolSettingsContentContext);\r\n const version = useFrameworkVersion(); // eslint-disable-line deprecation/deprecation\r\n const layoutMode = toLayoutMode(availableContentWidth);\r\n const className = classnames(\r\n \"uifw-tool-settings-grid-container\",\r\n version === \"1\" && \"uifw-fill\",\r\n // istanbul ignore next\r\n LayoutMode.Narrow === layoutMode && \"uifw-default-narrow\",\r\n );\r\n return (\r\n <DialogGridContainer\r\n componentGenerator={componentGenerator}\r\n containerClassName={className}\r\n />\r\n );\r\n}\r\n\r\ninterface DialogGridContainerProps {\r\n componentGenerator: ComponentGenerator;\r\n containerClassName?: string;\r\n}\r\n\r\n/** @internal */\r\n// istanbul ignore next\r\nexport function DialogGridContainer({ componentGenerator, containerClassName }: DialogGridContainerProps) {\r\n const className = classnames(\r\n \"uifw-default-container\",\r\n containerClassName,\r\n );\r\n return (\r\n <div className=\"uifw-default-resizer-parent\">\r\n <div className={className}>\r\n {componentGenerator.uiDataProvider.rows.map((row: DialogRow, index: number) => componentGenerator.getRow(row, index))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/** DefaultDialogGridContainer populates a React node with the items specified by the UiLayoutDataProvider\r\n * @public\r\n */\r\nexport function DefaultDialogGridContainer({ componentGenerator, isToolSettings }: { componentGenerator: ComponentGenerator, isToolSettings?: boolean }) {\r\n return (!!isToolSettings ?\r\n <ToolSettingsGridContainer componentGenerator={componentGenerator} /> :\r\n /* istanbul ignore next */\r\n <DialogGridContainer componentGenerator={componentGenerator} />);\r\n}\r\n\r\nconst toLayoutMode = (width: number) => {\r\n return (width < 250 && width > 0) ? /* istanbul ignore next */ LayoutMode.Narrow : LayoutMode.Wide;\r\n};\r\n"]}
@@ -61,7 +61,8 @@ export class AppUiSettings {
61
61
  this._settings.push(this.showWidgetIcon);
62
62
  this.autoCollapseUnpinnedPanels = new UiStateEntry(AppUiSettings._settingNamespace, "AutoCollapseUnpinnedPanels", () => UiFramework.autoCollapseUnpinnedPanels, (value) => UiFramework.setAutoCollapseUnpinnedPanels(value), defaults.autoCollapseUnpinnedPanels);
63
63
  this._settings.push(this.autoCollapseUnpinnedPanels);
64
- this.frameworkVersion = new UiStateEntry(AppUiSettings._settingNamespace, "FrameworkVersion", () => UiFramework.uiVersion, (value) => UiFramework.setUiVersion(value), defaults.frameworkVersion);
64
+ this.frameworkVersion = new UiStateEntry(AppUiSettings._settingNamespace, "FrameworkVersion", // eslint-disable-line deprecation/deprecation
65
+ () => UiFramework.uiVersion, (value) => UiFramework.setUiVersion(value), defaults.frameworkVersion); // eslint-disable-line deprecation/deprecation
65
66
  this._settings.push(this.frameworkVersion);
66
67
  this.widgetOpacity = new UiStateEntry(AppUiSettings._settingNamespace, "WidgetOpacity", () => UiFramework.getWidgetOpacity(), (value) => UiFramework.setWidgetOpacity(value), defaults.widgetOpacity);
67
68
  this._settings.push(this.widgetOpacity);
@@ -1 +1 @@
1
- {"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAsB,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAmBvF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IAsBxB,YAAY,QAAuC;QArBnC,eAAU,GAAG,uBAAuB,CAAC;QAG7C,cAAS,GAA6B,EAAE,CAAC;QACzC,2BAAsB,GAAG,KAAK,CAAC;QAW/B,kBAAa,GAAG,CAAC,KAAa,EAAE,EAAE;YACxC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjC,6FAA6F;YAC7F,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC;QA6CM,sBAAiB,GAAG,KAAK,EAAE,IAAqB,EAAE,EAAE;YAC1D,IAAI,IAAI,CAAC,sBAAsB;gBAC7B,OAAO;YAET,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE;gBACjD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACnE,8GAA8G;gBAC9G,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;aAC/E;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qCAAqC,CAAC;gBAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE1E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,sCAAsC,CAAC;gBAC3D,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE3E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qCAAqC,CAAC;gBAC1D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAEzE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kDAAkD,CAAC;gBACvE,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAErF,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mCAAmC,CAAC;gBACxD,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAExE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0CAA0C,CAAC;gBAC/D,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE9E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oDAAoD,CAAC;gBACzE,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC;QAxEA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAS,aAAa,CAAC,iBAAiB,EAAE,YAAY,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9J,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,IAAI,YAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,EACjG,GAAG,EAAE,CAAC,WAAW,CAAC,kBAAkB,EACpC,CAAC,KAAc,EAAE,EAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC1F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE1C,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,gBAAgB,EAC/F,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,EAChC,CAAC,KAAc,EAAE,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QACrF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzC,IAAI,CAAC,0BAA0B,GAAG,IAAI,YAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,4BAA4B,EACvH,GAAG,EAAE,CAAC,WAAW,CAAC,0BAA0B,EAC5C,CAAC,KAAc,EAAE,EAAE,CAAC,WAAW,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC7G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAErD,IAAI,CAAC,gBAAgB,GAAG,IAAI,YAAY,CAAqB,aAAa,CAAC,iBAAiB,EAAE,kBAAkB,EAC9G,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAC3B,CAAC,KAAyB,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC7F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE3C,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAS,aAAa,CAAC,iBAAiB,EAAE,eAAe,EAC5F,GAAG,EAAE,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAExC,IAAI,CAAC,mBAAmB,GAAG,IAAI,YAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,qBAAqB,EACzG,GAAG,EAAE,CAAC,WAAW,CAAC,mBAAmB,EACrC,CAAC,KAAc,EAAE,EAAE,CAAC,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC/F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE9C,IAAI,CAAC,0BAA0B,GAAG,IAAI,YAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,4BAA4B,EACvH,GAAG,EAAE,CAAC,WAAW,CAAC,0BAA0B,EAC5C,CAAC,KAAc,EAAE,EAAE,CAAC,WAAW,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC7G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAErD,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1E,CAAC;IAkCM,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;;AAxGc,+BAAiB,GAAG,eAAe,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 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 useToolAsToolSettingsLabel?: 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 public useToolAsToolSettingsLabel: 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 this.useToolAsToolSettingsLabel = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"UseToolAsToolSettingsLabel\",\r\n () => UiFramework.useToolAsToolSettingsLabel,\r\n (value: boolean) => UiFramework.setUseToolAsToolSettingsLabel(value), defaults.useToolAsToolSettingsLabel);\r\n this._settings.push(this.useToolAsToolSettingsLabel);\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 if (args.eventIds.has(\"configurableui:set-use-tool-as-tool-settings-label\"))\r\n await this.useToolAsToolSettingsLabel.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; // eslint-disable-line deprecation/deprecation\r\n widgetOpacity: number;\r\n showWidgetIcon?: boolean;\r\n /** @alpha */\r\n autoCollapseUnpinnedPanels?: boolean;\r\n animateToolSettings?: boolean;\r\n useToolAsToolSettingsLabel?: 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>; // eslint-disable-line deprecation/deprecation\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 public useToolAsToolSettingsLabel: 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\", // eslint-disable-line deprecation/deprecation\r\n () => UiFramework.uiVersion,\r\n (value: FrameworkVersionId) => UiFramework.setUiVersion(value), defaults.frameworkVersion); // eslint-disable-line deprecation/deprecation\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 this.useToolAsToolSettingsLabel = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"UseToolAsToolSettingsLabel\",\r\n () => UiFramework.useToolAsToolSettingsLabel,\r\n (value: boolean) => UiFramework.setUseToolAsToolSettingsLabel(value), defaults.useToolAsToolSettingsLabel);\r\n this._settings.push(this.useToolAsToolSettingsLabel);\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 if (args.eventIds.has(\"configurableui:set-use-tool-as-tool-settings-label\"))\r\n await this.useToolAsToolSettingsLabel.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":"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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"}
@@ -173,6 +173,14 @@ export class UiShowHideManager {
173
173
  /** @internal */
174
174
  static terminate() {
175
175
  UiShowHideManager.cancelTimer();
176
+ // Ensure that next use will have default values for tests.
177
+ UiShowHideManager._isUiVisible = true;
178
+ UiShowHideManager._autoHideUi = true;
179
+ UiShowHideManager._showHidePanels = false;
180
+ UiShowHideManager._showHideFooter = false;
181
+ UiShowHideManager._inactivityTime = INACTIVITY_TIME_DEFAULT;
182
+ UiShowHideManager._useProximityOpacity = false;
183
+ UiShowHideManager._snapWidgetOpacity = false;
176
184
  }
177
185
  }
178
186
  UiShowHideManager._isUiVisible = true;
@@ -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 // 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"]}
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 // Ensure that next use will have default values for tests.\r\n UiShowHideManager._isUiVisible = true;\r\n UiShowHideManager._autoHideUi = true;\r\n UiShowHideManager._showHidePanels = false;\r\n UiShowHideManager._showHideFooter = false;\r\n UiShowHideManager._inactivityTime = INACTIVITY_TIME_DEFAULT;\r\n UiShowHideManager._useProximityOpacity = false;\r\n UiShowHideManager._snapWidgetOpacity = false;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,7 @@
1
+ /** @packageDocumentation
2
+ * @module Widget
3
+ */
4
+ /// <reference types="react" />
5
+ /** @internal */
6
+ export declare function FloatingWidget(): JSX.Element;
7
+ //# sourceMappingURL=FloatingWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingWidget.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/FloatingWidget.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAMH,gBAAgB;AAChB,wBAAgB,cAAc,gBAM7B"}
@@ -0,0 +1,15 @@
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 Widget
7
+ */
8
+ import * as React from "react";
9
+ import { FloatingWidget as FloatingWidgetComponent } from "@itwin/appui-layout-react";
10
+ import { UiShowHideManager } from "../utils/UiShowHideManager";
11
+ /** @internal */
12
+ export function FloatingWidget() {
13
+ return (React.createElement(FloatingWidgetComponent, { onMouseEnter: UiShowHideManager.handleWidgetMouseEnter }));
14
+ }
15
+ //# sourceMappingURL=FloatingWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingWidget.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/FloatingWidget.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,gBAAgB;AAChB,MAAM,UAAU,cAAc;IAC5B,OAAO,CACL,oBAAC,uBAAuB,IACtB,YAAY,EAAE,iBAAiB,CAAC,sBAAsB,GACtD,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 Widget\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { FloatingWidget as FloatingWidgetComponent } from \"@itwin/appui-layout-react\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\n\r\n/** @internal */\r\nexport function FloatingWidget() {\r\n return (\r\n <FloatingWidgetComponent\r\n onMouseEnter={UiShowHideManager.handleWidgetMouseEnter}\r\n />\r\n );\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"AAMA;;GAEG;AAIH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAsC,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAa,cAAc,EAAmB,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE3H,OAAO,EAIqF,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAwB,SAAS,EAC9H,QAAQ,EACrD,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAgE,MAAM,6BAA6B,CAAC;AAG1H,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGtF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAgD,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAoD7C,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,aAAa,6BAgB5D;AAcD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,QAejE;AAsBD,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,oBA8B/D;AAED,gBAAgB;AAChB,eAAO,MAAM,sBAAsB,oCAqBjC,CAAC;AAKH,gBAAgB;AAChB,wBAAgB,2BAA2B,CAAC,EAAE,aAAa,EAAE,EAAE;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,eAmD9F;AAED,gBAAgB;AAChB,wBAAgB,SAAS,mBAYxB;AAED,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa,CA+B3I;AAED,gBAAgB;AAEhB,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,GAAG,aAAa,CAmEtJ;AAoBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,GAAG,aAAa,CA0B1G;AAkBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,GAAG,aAAa,CAW7G;AAMD,aAAK,aAAa,GAChB,WAAW,GACX,SAAS,GACT,YAAY,GACZ,UAAU,GACV,UAAU,GACV,QAAQ,GACR,aAAa,GACb,WAAW,CAAC;AAed,gBAAgB;AAChB,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,GAAG,aAAa,CA0BtF;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,SAAS,EAAE,CAqFvG;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,SAAS,GACd,aAAa,CASf;AAED,gBAAgB;AAChB,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,oBAAoB,GAAG,cAAc,IAAI;IACtG,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC;IACrC,OAAO,EAAE,2BAA2B,CAAC;CACtC,CAIA;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,iBAiBvG;AAYD,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAsDnF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAqE3G;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,kBAAkB,CAmB1E;AAsDD,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC,WAIzI;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACxB,mHAAmH;IACnH,OAAO,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;CACxC;AAED,gBAAgB;AAChB,oBAAY,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAGtD,aAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,gCAAgC,GAAG,UAAU,CAAC,CAAC;AAE3G,UAAU,cAAc;IACtB,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;CACtC;AASD,UAAU,kBAAmB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAE/B;AAsCD,gBAAgB;AAChB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,iBAoEzB;AAiCD,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAiBlE;AAED,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAgBpE;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,iBAQrF;AAED,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,QAyCnE;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,aAAa,QA2BrE;AAED,gBAAgB;AAChB,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AAEvE,gBAAgB;AAChB,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAE5F;AA2BD,gBAAgB;AAChB,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,0BAA0B,CAAC,EAAE,OAAO,QA0FtG;AAED,gBAAgB;AAEhB,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,QAsB3D"}
1
+ {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"AAMA;;GAEG;AAIH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAsC,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAa,cAAc,EAAmB,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE3H,OAAO,EAIqF,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAwB,SAAS,EAC9H,QAAQ,EACrD,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAgE,MAAM,6BAA6B,CAAC;AAG1H,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGtF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAgD,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAqD7C,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,aAAa,6BAgB5D;AAcD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,QAejE;AAsBD,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,oBA8B/D;AAED,gBAAgB;AAChB,eAAO,MAAM,sBAAsB,oCAqBjC,CAAC;AAMH,gBAAgB;AAChB,wBAAgB,2BAA2B,CAAC,EAAE,aAAa,EAAE,EAAE;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,eAoD9F;AAED,gBAAgB;AAChB,wBAAgB,SAAS,mBAYxB;AAED,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa,CAgC3I;AAED,gBAAgB;AAEhB,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,GAAG,aAAa,CAoEtJ;AAoBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,GAAG,aAAa,CA0B1G;AAkBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,GAAG,aAAa,CAW7G;AAMD,aAAK,aAAa,GAChB,WAAW,GACX,SAAS,GACT,YAAY,GACZ,UAAU,GACV,UAAU,GACV,QAAQ,GACR,aAAa,GACb,WAAW,CAAC;AAed,gBAAgB;AAChB,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,GAAG,aAAa,CA0BtF;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,SAAS,EAAE,CAqFvG;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,SAAS,GACd,aAAa,CASf;AAED,gBAAgB;AAChB,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,oBAAoB,GAAG,cAAc,IAAI;IACtG,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC;IACrC,OAAO,EAAE,2BAA2B,CAAC;CACtC,CAIA;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,iBAiBvG;AAYD,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAsDnF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAsE3G;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,kBAAkB,CAmB1E;AA2DD,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC,WAIzI;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACxB,mHAAmH;IACnH,OAAO,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;CACxC;AAED,gBAAgB;AAChB,oBAAY,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAGtD,aAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,gCAAgC,GAAG,UAAU,CAAC,CAAC;AAE3G,UAAU,cAAc;IACtB,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;CACtC;AASD,UAAU,kBAAmB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAE/B;AAsCD,gBAAgB;AAChB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,iBAoEzB;AAiCD,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAiBlE;AAED,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAgBpE;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,iBAQrF;AAED,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,QA2CnE;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,aAAa,QA4BrE;AAED,gBAAgB;AAChB,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AAEvE,gBAAgB;AAChB,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAE5F;AA2BD,gBAAgB;AAChB,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,0BAA0B,CAAC,EAAE,OAAO,QA0FtG;AAED,gBAAgB;AAEhB,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,QAuB3D"}
@@ -32,6 +32,7 @@ import { useEscapeSetFocusToHome } from "../hooks/useEscapeSetFocusToHome";
32
32
  import { useSelector } from "react-redux";
33
33
  import { useUiVisibility } from "../hooks/useUiVisibility";
34
34
  import { IModelApp } from "@itwin/core-frontend";
35
+ import { FloatingWidget } from "./FloatingWidget";
35
36
  const panelZoneKeys = ["start", "end"];
36
37
  const WidgetInternals = React.memo(function WidgetInternals() {
37
38
  const activeModalFrontstageInfo = useActiveModalFrontstageInfo();
@@ -171,6 +172,7 @@ export const WidgetPanelsFrontstage = React.memo(function WidgetPanelsFrontstage
171
172
  });
172
173
  const defaultNineZone = createNineZoneState();
173
174
  const tabElement = React.createElement(WidgetPanelsTab, null);
175
+ const floatingWidgetElement = React.createElement(FloatingWidget, null);
174
176
  /** @internal */
175
177
  export function ActiveFrontstageDefProvider({ frontstageDef }) {
176
178
  let nineZone = useNineZoneState(frontstageDef);
@@ -201,7 +203,7 @@ export function ActiveFrontstageDefProvider({ frontstageDef }) {
201
203
  useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel);
202
204
  const handleKeyDown = useEscapeSetFocusToHome();
203
205
  return (React.createElement("div", { className: "uifw-widgetPanels-frontstage", onKeyDown: handleKeyDown, role: "presentation" },
204
- React.createElement(NineZone, { dispatch: dispatch, labels: labels, state: nineZone, tab: tabElement, showWidgetIcon: showWidgetIcon, autoCollapseUnpinnedPanels: autoCollapseUnpinnedPanels, toolSettingsContent: toolSettingsContent, widgetContent: widgetContent, animateDockedToolSettings: animateToolSettings, uiIsVisible: uiIsVisible }, widgetPanelsFrontstage)));
206
+ React.createElement(NineZone, { dispatch: dispatch, labels: labels, state: nineZone, tab: tabElement, floatingWidget: floatingWidgetElement, showWidgetIcon: showWidgetIcon, autoCollapseUnpinnedPanels: autoCollapseUnpinnedPanels, toolSettingsContent: toolSettingsContent, widgetContent: widgetContent, animateDockedToolSettings: animateToolSettings, uiIsVisible: uiIsVisible }, widgetPanelsFrontstage)));
205
207
  }
206
208
  /** @internal */
207
209
  export function useLabels() {
@@ -233,6 +235,7 @@ export function addWidgets(state, widgets, side, widgetId) {
233
235
  canPopout: widget.canPopout,
234
236
  isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,
235
237
  hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,
238
+ allowedPanelTargets: widget.allowedPanelTargets,
236
239
  });
237
240
  tabs.push(widget.id);
238
241
  }
@@ -271,6 +274,7 @@ export function appendWidgets(state, widgetDefs, side, preferredWidgetIndex) {
271
274
  userSized,
272
275
  isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
273
276
  hideWithUiWhenFloating: !!widgetDef.hideWithUiWhenFloating,
277
+ allowedPanelTargets: widgetDef.allowedPanelTargets,
274
278
  });
275
279
  if (widgetDef.isFloatingStateSupported && widgetDef.defaultState === WidgetState.Floating) {
276
280
  const floatingContainerId = (_a = widgetDef.floatingContainerId) !== null && _a !== void 0 ? _a : getUniqueId();
@@ -643,6 +647,7 @@ export function restoreNineZoneState(frontstageDef, saved) {
643
647
  iconSpec: widgetDef.iconSpec,
644
648
  canPopout: widgetDef.canPopout,
645
649
  isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
650
+ allowedPanelTargets: widgetDef.allowedPanelTargets,
646
651
  };
647
652
  });
648
653
  }
@@ -709,9 +714,9 @@ export function packNineZoneState(state) {
709
714
  });
710
715
  return packed;
711
716
  }
712
- // TODO: clean-up of saved widgets.
713
717
  // istanbul ignore next
714
- function packSavedWidgets(savedWidgets, frontstageDef) {
718
+ function packSavedWidgets(frontstageDef) {
719
+ let savedWidgets = [];
715
720
  for (const widgetDef of frontstageDef.widgetDefs) {
716
721
  const id = widgetDef.id;
717
722
  const initialWidget = {
@@ -727,17 +732,25 @@ function packSavedWidgets(savedWidgets, frontstageDef) {
727
732
  });
728
733
  if (widget === initialWidget)
729
734
  continue;
730
- savedWidgets = produce(savedWidgets, (draft) => {
731
- draft.push(widget);
732
- });
735
+ savedWidgets.push(widget);
736
+ }
737
+ // Add previously saved widgets.
738
+ const prevSavedWidgets = frontstageDef.savedWidgetDefs || [];
739
+ for (const prevWidget of prevSavedWidgets) {
740
+ if (savedWidgets.find((w) => w.id === prevWidget.id))
741
+ continue;
742
+ savedWidgets.push(prevWidget);
733
743
  }
744
+ // Limit number of saved widgets.
745
+ const maxWidgets = 100;
746
+ if (savedWidgets.length > maxWidgets)
747
+ savedWidgets = savedWidgets.slice(0, maxWidgets);
734
748
  return savedWidgets;
735
749
  }
736
750
  // istanbul ignore next
737
- function restoreSavedWidgets(savedWidgets, frontstage) {
738
- let i = savedWidgets.length;
739
- while (i--) {
740
- const savedWidget = savedWidgets[i];
751
+ function restoreSavedWidgets(frontstage) {
752
+ const savedWidgets = frontstage.savedWidgetDefs || [];
753
+ for (const savedWidget of savedWidgets) {
741
754
  const widgetId = savedWidget.id;
742
755
  const widgetDef = frontstage.findWidgetDef(widgetId);
743
756
  if (!widgetDef)
@@ -748,11 +761,7 @@ function restoreSavedWidgets(savedWidgets, frontstage) {
748
761
  if (savedWidget.popoutBounds) {
749
762
  widgetDef.popoutBounds = Rectangle.create(savedWidget.popoutBounds);
750
763
  }
751
- savedWidgets = produce(savedWidgets, (draft) => {
752
- draft.splice(i, 1);
753
- });
754
764
  }
755
- return savedWidgets;
756
765
  }
757
766
  /** @internal */
758
767
  export function isPanelCollapsed(zoneStates, panelStates) {
@@ -963,12 +972,12 @@ export function useSavedFrontstageState(frontstageDef) {
963
972
  const setting = settingResult.setting;
964
973
  if (setting.version >= version && setting.stateVersion >= stateVersion) {
965
974
  const restored = restoreNineZoneState(frontstageDef, setting.nineZone);
966
- const savedWidgets = restoreSavedWidgets(setting.widgets, frontstageDef);
975
+ frontstageDef.savedWidgetDefs = setting.widgets;
976
+ restoreSavedWidgets(frontstageDef);
967
977
  let state = addMissingWidgets(frontstageDef, restored);
968
978
  state = hideWidgets(state, frontstageDef);
969
979
  state = processPopoutWidgets(state, frontstageDef);
970
980
  frontstageDef.nineZoneState = state;
971
- frontstageDef.savedWidgetDefs = savedWidgets;
972
981
  return;
973
982
  }
974
983
  }
@@ -982,14 +991,16 @@ export function useSaveFrontstageSettings(frontstageDef) {
982
991
  const nineZone = useNineZoneState(frontstageDef);
983
992
  const uiSettingsStorage = useUiStateStorageHandler();
984
993
  const saveSetting = React.useMemo(() => {
985
- return debounce(async (frontstage, state, savedWidgets) => {
994
+ return debounce(async (frontstage, state) => {
986
995
  const id = frontstage.id;
996
+ const widgets = packSavedWidgets(frontstage);
997
+ frontstage.savedWidgetDefs = widgets;
987
998
  const setting = {
988
999
  id,
989
1000
  version: frontstage.version,
990
1001
  stateVersion,
991
1002
  nineZone: packNineZoneState(state),
992
- widgets: packSavedWidgets(savedWidgets, frontstage),
1003
+ widgets,
993
1004
  };
994
1005
  await uiSettingsStorage.saveSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id), setting);
995
1006
  }, 1000);
@@ -1002,8 +1013,7 @@ export function useSaveFrontstageSettings(frontstageDef) {
1002
1013
  React.useEffect(() => {
1003
1014
  if (!nineZone || nineZone.draggedTab)
1004
1015
  return;
1005
- const savedWidgets = frontstageDef.savedWidgetDefs || [];
1006
- saveSetting(frontstageDef, nineZone, savedWidgets);
1016
+ saveSetting(frontstageDef, nineZone);
1007
1017
  }, [frontstageDef, nineZone, saveSetting]);
1008
1018
  }
1009
1019
  /** @internal */
@@ -1132,6 +1142,7 @@ export function useItemsManager(frontstageDef) {
1132
1142
  const refreshNineZoneState = (def) => {
1133
1143
  // Fired for both registered/unregistered. Update definitions and remove/add missing widgets.
1134
1144
  def.updateWidgetDefs();
1145
+ restoreSavedWidgets(def);
1135
1146
  let state = def.nineZoneState;
1136
1147
  if (!state)
1137
1148
  return;