@itwin/appui-react 3.0.0-dev.133 → 3.0.0-dev.138

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 (220) hide show
  1. package/README.md +3 -3
  2. package/lib/cjs/appui-react/UiFramework.d.ts +19 -10
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +24 -13
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  11. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +5 -4
  13. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  14. package/lib/cjs/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  15. package/lib/cjs/appui-react/backstage/BackstageItemProps.js +1 -1
  16. package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
  17. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  18. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +3 -3
  19. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  20. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +2 -3
  22. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  23. package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/content/StageContentLayout.js +5 -3
  25. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
  26. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  27. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +1 -0
  28. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  29. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +13 -2
  30. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +129 -1
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  33. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  34. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +1 -1
  35. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  36. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  37. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +5 -5
  38. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  39. package/lib/cjs/appui-react/redux/StateManager.d.ts +1 -1
  40. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  41. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +1 -1
  42. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  43. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  44. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  45. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/shared/ItemDefBase.js +1 -1
  47. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  48. package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
  49. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  50. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +3 -3
  51. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  52. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +25 -5
  53. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  54. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  55. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  56. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  57. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  58. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +9 -9
  60. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  61. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +2 -2
  62. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  64. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  65. package/lib/cjs/appui-react/toolbar/ToolButton.js +1 -1
  66. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  67. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  68. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +1 -1
  69. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  70. package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.d.ts +7 -7
  71. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  72. package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.js +8 -8
  73. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -0
  74. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  75. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  76. package/lib/cjs/appui-react/{uisettings → uistate}/UserSettingsStorage.js +12 -13
  77. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  78. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  79. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  80. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +38 -0
  81. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -0
  82. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +5 -5
  83. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/utils/UiShowHideManager.js +6 -6
  85. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  86. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +4 -6
  87. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/widget-panels/Frontstage.js +11 -61
  89. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  90. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
  91. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  92. package/lib/cjs/appui-react/widgets/WidgetDef.js +17 -5
  93. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  94. package/lib/cjs/appui-react/zones/ZoneDef.d.ts +4 -4
  95. package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/zones/ZoneDef.js +4 -4
  97. package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
  98. package/lib/cjs/appui-react.d.ts +4 -4
  99. package/lib/cjs/appui-react.d.ts.map +1 -1
  100. package/lib/cjs/appui-react.js +4 -4
  101. package/lib/cjs/appui-react.js.map +1 -1
  102. package/lib/esm/appui-react/UiFramework.d.ts +19 -10
  103. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  104. package/lib/esm/appui-react/UiFramework.js +25 -14
  105. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  106. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  107. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  108. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  109. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  110. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  111. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  112. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +6 -5
  113. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  114. package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  115. package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
  116. package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
  117. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  118. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +3 -3
  119. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  120. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  121. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +2 -3
  122. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  123. package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -1
  124. package/lib/esm/appui-react/content/StageContentLayout.js +5 -3
  125. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
  126. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  127. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +1 -0
  128. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  129. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +13 -2
  130. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  131. package/lib/esm/appui-react/frontstage/FrontstageDef.js +131 -3
  132. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  133. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  134. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +1 -1
  135. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  136. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  137. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +6 -6
  138. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  139. package/lib/esm/appui-react/redux/StateManager.d.ts +1 -1
  140. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  141. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +1 -1
  142. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  143. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  144. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  145. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  146. package/lib/esm/appui-react/shared/ItemDefBase.js +1 -1
  147. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  148. package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
  149. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  150. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +3 -3
  151. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  152. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +25 -5
  153. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  154. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  155. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  156. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  157. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  158. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  159. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +10 -10
  160. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  161. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +2 -2
  162. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  163. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  164. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  165. package/lib/esm/appui-react/toolbar/ToolButton.js +1 -1
  166. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  167. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  168. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +1 -1
  169. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  170. package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.d.ts +7 -7
  171. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  172. package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.js +9 -9
  173. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -0
  174. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  175. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  176. package/lib/esm/appui-react/{uisettings → uistate}/UserSettingsStorage.js +13 -14
  177. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  178. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  179. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  180. package/lib/esm/appui-react/uistate/useUiStateStorage.js +33 -0
  181. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -0
  182. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +5 -5
  183. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  184. package/lib/esm/appui-react/utils/UiShowHideManager.js +7 -7
  185. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  186. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +4 -6
  187. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  188. package/lib/esm/appui-react/widget-panels/Frontstage.js +11 -60
  189. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  190. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
  191. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  192. package/lib/esm/appui-react/widgets/WidgetDef.js +17 -5
  193. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  194. package/lib/esm/appui-react/zones/ZoneDef.d.ts +4 -4
  195. package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
  196. package/lib/esm/appui-react/zones/ZoneDef.js +4 -4
  197. package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
  198. package/lib/esm/appui-react.d.ts +4 -4
  199. package/lib/esm/appui-react.d.ts.map +1 -1
  200. package/lib/esm/appui-react.js +4 -4
  201. package/lib/esm/appui-react.js.map +1 -1
  202. package/package.json +34 -34
  203. package/lib/cjs/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  204. package/lib/cjs/appui-react/uisettings/AppUiSettings.js.map +0 -1
  205. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts +0 -15
  206. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  207. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  208. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts +0 -22
  209. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  210. package/lib/cjs/appui-react/uisettings/useUiSettings.js +0 -29
  211. package/lib/cjs/appui-react/uisettings/useUiSettings.js.map +0 -1
  212. package/lib/esm/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  213. package/lib/esm/appui-react/uisettings/AppUiSettings.js.map +0 -1
  214. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts +0 -15
  215. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  216. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  217. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts +0 -22
  218. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  219. package/lib/esm/appui-react/uisettings/useUiSettings.js +0 -24
  220. package/lib/esm/appui-react/uisettings/useUiSettings.js.map +0 -1
package/README.md CHANGED
@@ -6,11 +6,11 @@ Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md
6
6
 
7
7
  The __@itwin/appui-react__ package contains application fragments for Login, Project, iModel and View selection, and configuration of the application UI including the Backstage, Frontstages, Widgets, etc.
8
8
 
9
- The ui-framework package is a portion of the iTwin.js User Interface library. It consists of major fragments of code that combine the
10
- functionality from the imodeljs-frontend and imodeljs client packages with the ui-core, ui-components and ui-ninezone packages to implement substantial
9
+ The AppUI React package is a portion of the iTwin.js User Interface library. It consists of major fragments of code that combine the
10
+ functionality from the `@itwin/core-frontend` with the core-react, imodel-components and appui-layout-react packages to implement substantial
11
11
  functionality that can be used within an iTwin.js application.
12
12
 
13
- The ui-framework package makes use of React for rendering of the user interface, and uses react-redux and its concept of the state store for
13
+ The package makes use of React for rendering of the user interface, and uses react-redux and its concept of the state store for
14
14
  actions using reducers.
15
15
 
16
16
  There are a number of sub-frameworks, each which has a set of components, actions, and reducers, and contributes to the overall State. Each such
@@ -5,7 +5,7 @@ import { Store } from "redux";
5
5
  import { GuidString } from "@itwin/core-bentley";
6
6
  import { Localization } from "@itwin/core-common";
7
7
  import { IModelConnection, SnapMode, ViewState } from "@itwin/core-frontend";
8
- import { SettingsManager, UiEvent, UiSettingsStorage } from "@itwin/core-react";
8
+ import { SettingsManager, UiEvent, UiStateStorage } from "@itwin/core-react";
9
9
  import { BackstageManager } from "./backstage/BackstageManager";
10
10
  import { ChildWindowManager } from "./childwindow/ChildWindowManager";
11
11
  import { FrameworkState } from "./redux/FrameworkState";
@@ -13,18 +13,18 @@ import { CursorMenuData, PresentationSelectionScope } from "./redux/SessionState
13
13
  import { HideIsolateEmphasizeActionHandler } from "./selection/HideIsolateEmphasizeManager";
14
14
  import { UserInfo } from "./UserInfo";
15
15
  import { WidgetManager } from "./widgets/WidgetManager";
16
- /** Defined that available Ui Versions. It is recommended to always use the latest version available.
16
+ /** Defined that available UI Versions. It is recommended to always use the latest version available.
17
17
  * @public
18
18
  */
19
19
  export declare type FrameworkVersionId = "1" | "2";
20
- /** Interface to be implemented but any classes that wants to load their user settings when the UiSetting storage class is set.
20
+ /** Interface to be implemented but any classes that wants to load their user settings when the UiStateEntry storage class is set.
21
21
  * @public
22
22
  */
23
23
  export interface UserSettingsProvider {
24
24
  /** Unique provider Id */
25
25
  providerId: string;
26
26
  /** Function to load settings from settings storage */
27
- loadUserSettings(storage: UiSettingsStorage): Promise<void>;
27
+ loadUserSettings(storage: UiStateStorage): Promise<void>;
28
28
  }
29
29
  /** UiVisibility Event Args interface.
30
30
  * @public
@@ -69,8 +69,8 @@ export declare class UiFramework {
69
69
  private static _widgetManager?;
70
70
  private static _uiVersion;
71
71
  private static _hideIsolateEmphasizeActionHandler?;
72
- /** this provides a default storage location for settings */
73
- private static _uiSettingsStorage;
72
+ /** this provides a default state storage handler */
73
+ private static _uiStateStorage;
74
74
  private static _settingsManager?;
75
75
  private static _uiSettingsProviderRegistry;
76
76
  private static _PopupWindowManager;
@@ -106,7 +106,8 @@ export declare class UiFramework {
106
106
  /** Determines if UiFramework has been initialized */
107
107
  static get initialized(): boolean;
108
108
  /** Property that returns the SettingManager used by AppUI-based applications.
109
- * @public */
109
+ * @public
110
+ */
110
111
  static get settingsManager(): SettingsManager;
111
112
  /** @public */
112
113
  static get frameworkStateKey(): string;
@@ -153,10 +154,18 @@ export declare class UiFramework {
153
154
  static setActiveIModelId(iModelId: string): void;
154
155
  static setIModelConnection(iModelConnection: IModelConnection | undefined, immediateSync?: boolean): void;
155
156
  static getIModelConnection(): IModelConnection | undefined;
157
+ /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders
158
+ * @public
159
+ */
160
+ static initializeStateFromUserSettingsProviders(immediateSync?: boolean): Promise<void>;
156
161
  /** @public */
157
- static setUiSettingsStorage(storage: UiSettingsStorage, immediateSync?: boolean): Promise<void>;
158
- /** @public */
159
- static getUiSettingsStorage(): UiSettingsStorage;
162
+ static setUiStateStorage(storage: UiStateStorage, immediateSync?: boolean): Promise<void>;
163
+ /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.
164
+ * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,
165
+ * which are now handled with user preferences.
166
+ * @public
167
+ */
168
+ static getUiStateStorage(): UiStateStorage;
160
169
  /** @public */
161
170
  static setUserInfo(userInfo: UserInfo | undefined, immediateSync?: boolean): void;
162
171
  /** @public */
@@ -1 +1 @@
1
- {"version":3,"file":"UiFramework.d.ts","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UiFramework.d.ts","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.ts"],"names":[],"mappings":"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"}
@@ -136,7 +136,8 @@ class UiFramework {
136
136
  /** Determines if UiFramework has been initialized */
137
137
  static get initialized() { return UiFramework._initialized; }
138
138
  /** Property that returns the SettingManager used by AppUI-based applications.
139
- * @public */
139
+ * @public
140
+ */
140
141
  static get settingsManager() {
141
142
  if (undefined === UiFramework._settingsManager)
142
143
  UiFramework._settingsManager = new core_react_1.SettingsManager();
@@ -286,25 +287,35 @@ class UiFramework {
286
287
  static getIModelConnection() {
287
288
  return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelConnection : /* istanbul ignore next */ undefined;
288
289
  }
289
- /** @public */
290
- static async setUiSettingsStorage(storage, immediateSync = false) {
291
- if (UiFramework._uiSettingsStorage === storage)
292
- return;
293
- UiFramework._uiSettingsStorage = storage;
290
+ /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders
291
+ * @public
292
+ */
293
+ static async initializeStateFromUserSettingsProviders(immediateSync = false) {
294
294
  // let any registered providers to load values from the new storage location
295
295
  const providerKeys = [...this._uiSettingsProviderRegistry.keys()];
296
296
  for await (const key of providerKeys) {
297
- await this._uiSettingsProviderRegistry.get(key).loadUserSettings(storage);
297
+ await this._uiSettingsProviderRegistry.get(key).loadUserSettings(UiFramework._uiStateStorage);
298
298
  }
299
299
  // istanbul ignore next
300
300
  if (immediateSync)
301
- SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventDispatcher_1.SyncUiEventId.UiSettingsChanged);
301
+ SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventDispatcher_1.SyncUiEventId.UiStateStorageChanged);
302
302
  else
303
- SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventDispatcher_1.SyncUiEventId.UiSettingsChanged);
303
+ SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventDispatcher_1.SyncUiEventId.UiStateStorageChanged);
304
304
  }
305
305
  /** @public */
306
- static getUiSettingsStorage() {
307
- return UiFramework._uiSettingsStorage;
306
+ static async setUiStateStorage(storage, immediateSync = false) {
307
+ if (UiFramework._uiStateStorage === storage)
308
+ return;
309
+ UiFramework._uiStateStorage = storage;
310
+ await this.initializeStateFromUserSettingsProviders(immediateSync);
311
+ }
312
+ /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.
313
+ * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,
314
+ * which are now handled with user preferences.
315
+ * @public
316
+ */
317
+ static getUiStateStorage() {
318
+ return UiFramework._uiStateStorage;
308
319
  }
309
320
  /** @public */
310
321
  static setUserInfo(userInfo, immediateSync = false) {
@@ -418,8 +429,8 @@ UiFramework._initialized = false;
418
429
  UiFramework._complaint = "UiFramework not initialized";
419
430
  UiFramework._frameworkStateKeyInStore = "frameworkState"; // default name
420
431
  UiFramework._uiVersion = "2";
421
- /** this provides a default storage location for settings */
422
- UiFramework._uiSettingsStorage = new core_react_1.LocalSettingsStorage(); // eslint-disable-line deprecation/deprecation
432
+ /** this provides a default state storage handler */
433
+ UiFramework._uiStateStorage = new core_react_1.LocalStateStorage();
423
434
  UiFramework._uiSettingsProviderRegistry = new Map();
424
435
  UiFramework._PopupWindowManager = new ChildWindowManager_1.ChildWindowManager();
425
436
  UiFramework.useDefaultPopoutUrl = false;
@@ -1 +1 @@
1
- {"version":3,"file":"UiFramework.js","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.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\n// cSpell:ignore configurableui clientservices\r\n\r\nimport { Store } from \"redux\";\r\nimport { GuidString, Logger, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { Localization, RpcActivity } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelConnection, SnapMode, ViewState } from \"@itwin/core-frontend\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { TelemetryEvent } from \"@itwin/core-telemetry\";\r\nimport { getClassName, UiAdmin, UiError } from \"@itwin/appui-abstract\";\r\nimport { LocalSettingsStorage, SettingsManager, UiEvent, UiSettingsStorage } from \"@itwin/core-react\";\r\nimport { UiIModelComponents } from \"@itwin/imodel-components-react\";\r\nimport { BackstageManager } from \"./backstage/BackstageManager\";\r\nimport { ChildWindowManager } from \"./childwindow/ChildWindowManager\";\r\nimport { ConfigurableUiManager } from \"./configurableui/ConfigurableUiManager\";\r\nimport { ConfigurableUiActionId } from \"./configurableui/state\";\r\nimport { FrameworkState } from \"./redux/FrameworkState\";\r\nimport { CursorMenuData, PresentationSelectionScope, SessionStateActionId } from \"./redux/SessionState\";\r\nimport { StateManager } from \"./redux/StateManager\";\r\nimport { HideIsolateEmphasizeActionHandler, HideIsolateEmphasizeManager } from \"./selection/HideIsolateEmphasizeManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"./syncui/SyncUiEventDispatcher\";\r\nimport { SYSTEM_PREFERRED_COLOR_THEME, WIDGET_OPACITY_DEFAULT } from \"./theme/ThemeManager\";\r\nimport * as keyinPaletteTools from \"./tools/KeyinPaletteTools\";\r\nimport * as openSettingTools from \"./tools/OpenSettingsTool\";\r\nimport * as restoreLayoutTools from \"./tools/RestoreLayoutTool\";\r\nimport * as toolSettingTools from \"./tools/ToolSettingsTools\";\r\nimport { UserInfo } from \"./UserInfo\";\r\nimport { UiShowHideManager, UiShowHideSettingsProvider } from \"./utils/UiShowHideManager\";\r\nimport { WidgetManager } from \"./widgets/WidgetManager\";\r\nimport { FrontstageManager } from \"./frontstage/FrontstageManager\";\r\n\r\n// cSpell:ignore Mobi\r\n\r\n/** Defined that available Ui Versions. It is recommended to always use the latest version available.\r\n * @public\r\n */\r\nexport type FrameworkVersionId = \"1\" | \"2\";\r\n\r\n/** Interface to be implemented but any classes that wants to load their user settings when the UiSetting storage class is set.\r\n * @public\r\n */\r\nexport interface UserSettingsProvider {\r\n /** Unique provider Id */\r\n providerId: string;\r\n /** Function to load settings from settings storage */\r\n loadUserSettings(storage: UiSettingsStorage): Promise<void>; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** UiVisibility Event Args interface.\r\n * @public\r\n */\r\nexport interface UiVisibilityEventArgs {\r\n visible: boolean;\r\n}\r\n\r\n/** UiVisibility Event class.\r\n * @public\r\n */\r\nexport class UiVisibilityChangedEvent extends UiEvent<UiVisibilityEventArgs> { }\r\n\r\n/** FrameworkVersion Changed Event Args interface.\r\n * @internal\r\n */\r\nexport interface FrameworkVersionChangedEventArgs {\r\n oldVersion: FrameworkVersionId;\r\n version: FrameworkVersionId;\r\n}\r\n\r\n/** FrameworkVersion Changed Event class.\r\n * @internal\r\n */\r\nexport class FrameworkVersionChangedEvent extends UiEvent<FrameworkVersionChangedEventArgs> { }\r\n\r\n/** TrackingTime time argument used by our feature tracking manager as an option argument to the TelemetryClient\r\n * @internal\r\n */\r\nexport interface TrackingTime {\r\n startTime: Date;\r\n endTime: Date;\r\n}\r\n\r\n/**\r\n * Manages the Redux store, localization service and iModel, Project and Login services for the ui-framework package.\r\n * @public\r\n */\r\nexport class UiFramework {\r\n private static _initialized = false;\r\n private static _store?: Store<any>;\r\n private static _complaint = \"UiFramework not initialized\";\r\n private static _frameworkStateKeyInStore: string = \"frameworkState\"; // default name\r\n private static _backstageManager?: BackstageManager;\r\n private static _widgetManager?: WidgetManager;\r\n private static _uiVersion: FrameworkVersionId = \"2\";\r\n private static _hideIsolateEmphasizeActionHandler?: HideIsolateEmphasizeActionHandler;\r\n /** this provides a default storage location for settings */\r\n private static _uiSettingsStorage: UiSettingsStorage = new LocalSettingsStorage(); // eslint-disable-line deprecation/deprecation\r\n private static _settingsManager?: SettingsManager;\r\n private static _uiSettingsProviderRegistry: Map<string, UserSettingsProvider> = new Map<string, UserSettingsProvider>();\r\n private static _PopupWindowManager = new ChildWindowManager();\r\n public static useDefaultPopoutUrl = false;\r\n\r\n /** @public */\r\n public static get childWindowManager(): ChildWindowManager {\r\n return UiFramework._PopupWindowManager;\r\n }\r\n\r\n /** Registers class that will be informed when the UserSettingsStorage location has been set or changed. This allows\r\n * classes to load any previously saved settings from the new storage location. Common storage locations are the browser's\r\n * local storage, or the iTwin Product Settings cloud storage available via the SettingsAdmin see `IModelApp.settingsAdmin`.\r\n * @beta\r\n */\r\n public static registerUserSettingsProvider(entry: UserSettingsProvider) {\r\n if (this._uiSettingsProviderRegistry.has(entry.providerId))\r\n return false;\r\n\r\n this._uiSettingsProviderRegistry.set(entry.providerId, entry);\r\n return true;\r\n }\r\n\r\n /** Get Show Ui event.\r\n * @public\r\n */\r\n public static readonly onUiVisibilityChanged = new UiVisibilityChangedEvent();\r\n\r\n /**\r\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\r\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\r\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\r\n */\r\n public static async initialize(store: Store<any> | undefined, frameworkStateKey?: string): Promise<void> {\r\n return this.initializeEx(store, frameworkStateKey);\r\n }\r\n\r\n /**\r\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\r\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\r\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\r\n *\r\n * @internal\r\n */\r\n public static async initializeEx(store: Store<any> | undefined, frameworkStateKey?: string): Promise<void> {\r\n if (UiFramework._initialized) {\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `UiFramework.initialize already called`);\r\n return;\r\n }\r\n\r\n /* if store is undefined then the StateManager class should have been initialized by parent app and the apps default set of reducers registered with it.\r\n If the app has no reducers to add and does not initialize a StateManager then just initialize the StateManager with the default framework reducer now */\r\n if (undefined === store && !StateManager.isInitialized(true))\r\n new StateManager();\r\n\r\n UiFramework._store = store;\r\n // ignore setting _frameworkStateKeyInStore if not using store\r\n if (frameworkStateKey && store)\r\n UiFramework._frameworkStateKeyInStore = frameworkStateKey;\r\n\r\n // set up namespace and register all tools from package\r\n const frameworkNamespace = IModelApp.localization?.registerNamespace(UiFramework.localizationNamespace);\r\n [\r\n restoreLayoutTools,\r\n keyinPaletteTools,\r\n openSettingTools,\r\n toolSettingTools,\r\n ].forEach((tool) => IModelApp.tools.registerModule(tool, this.localizationNamespace));\r\n\r\n UiFramework._backstageManager = new BackstageManager();\r\n UiFramework._hideIsolateEmphasizeActionHandler = new HideIsolateEmphasizeManager(); // this allows user to override the default HideIsolateEmphasizeManager implementation.\r\n UiFramework._widgetManager = new WidgetManager();\r\n\r\n // Initialize ui-imodel-components, ui-components, ui-core & ui-abstract\r\n await UiIModelComponents.initialize();\r\n\r\n UiFramework.settingsManager.onSettingsProvidersChanged.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SettingsProvidersChanged);\r\n });\r\n\r\n // Initialize the MessagePresenter interface in UiAdmin for Editor notifications\r\n UiAdmin.messagePresenter = IModelApp.notifications;\r\n\r\n UiFramework._initialized = true;\r\n\r\n // initialize any standalone settings providers that don't need to have defaults set by iModelApp\r\n UiShowHideSettingsProvider.initialize();\r\n\r\n ConfigurableUiManager.initialize();\r\n\r\n return frameworkNamespace;\r\n }\r\n\r\n /** Un-registers the UiFramework internationalization service namespace */\r\n public static terminate() {\r\n UiFramework._store = undefined;\r\n UiFramework._frameworkStateKeyInStore = \"frameworkState\";\r\n if (StateManager.isInitialized(true))\r\n StateManager.clearStore();\r\n // istanbul ignore next\r\n IModelApp.localization?.unregisterNamespace(UiFramework.localizationNamespace);\r\n UiFramework._backstageManager = undefined;\r\n UiFramework._widgetManager = undefined;\r\n UiFramework._hideIsolateEmphasizeActionHandler = undefined;\r\n UiFramework._settingsManager = undefined;\r\n\r\n UiIModelComponents.terminate();\r\n UiShowHideManager.terminate();\r\n UiFramework._initialized = false;\r\n }\r\n\r\n /** Determines if UiFramework has been initialized */\r\n public static get initialized(): boolean { return UiFramework._initialized; }\r\n\r\n /** Property that returns the SettingManager used by AppUI-based applications.\r\n * @public */\r\n public static get settingsManager() {\r\n if (undefined === UiFramework._settingsManager)\r\n UiFramework._settingsManager = new SettingsManager();\r\n return UiFramework._settingsManager;\r\n }\r\n\r\n /** @public */\r\n public static get frameworkStateKey(): string {\r\n return UiFramework._frameworkStateKeyInStore;\r\n }\r\n\r\n /** The UiFramework state maintained by Redux\r\n * @public\r\n */\r\n public static get frameworkState(): FrameworkState | undefined {\r\n try {\r\n // eslint-disable-next-line dot-notation\r\n return UiFramework.store.getState()[UiFramework.frameworkStateKey];\r\n } catch (_e) {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** The Redux store */\r\n public static get store(): Store<any> {\r\n if (UiFramework._store)\r\n return UiFramework._store;\r\n\r\n // istanbul ignore else\r\n if (!StateManager.isInitialized(true))\r\n throw new UiError(UiFramework.loggerCategory(this), `Error trying to access redux store before either store or StateManager has been initialized.`);\r\n\r\n // istanbul ignore next\r\n return StateManager.store;\r\n }\r\n\r\n /** The internationalization service created by the app.\r\n * @internal\r\n */\r\n public static get localization(): Localization {\r\n // istanbul ignore next\r\n if (!IModelApp.localization)\r\n throw new UiError(UiFramework.loggerCategory(this), `IModelApp.localization has not been defined.`);\r\n return IModelApp.localization;\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return \"UiFramework\";\r\n }\r\n\r\n /** @public */\r\n public static get backstageManager(): BackstageManager {\r\n // istanbul ignore next\r\n if (!UiFramework._backstageManager)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._backstageManager;\r\n }\r\n\r\n /** @alpha */\r\n public static get hideIsolateEmphasizeActionHandler(): HideIsolateEmphasizeActionHandler {\r\n // istanbul ignore next\r\n if (!UiFramework._hideIsolateEmphasizeActionHandler)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._hideIsolateEmphasizeActionHandler;\r\n }\r\n\r\n /** @alpha */\r\n public static setHideIsolateEmphasizeActionHandler(handler: HideIsolateEmphasizeActionHandler | undefined) {\r\n // istanbul ignore else\r\n if (handler)\r\n UiFramework._hideIsolateEmphasizeActionHandler = handler;\r\n else\r\n UiFramework._hideIsolateEmphasizeActionHandler = new HideIsolateEmphasizeManager();\r\n }\r\n\r\n /** @alpha */\r\n public static get widgetManager(): WidgetManager {\r\n // istanbul ignore next\r\n if (!UiFramework._widgetManager)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._widgetManager;\r\n }\r\n\r\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiFramework\" namespace. Do NOT include the namespace in the key.\r\n * @internal\r\n */\r\n public static translate(key: string | string[]): string {\r\n return IModelApp.localization.getLocalizedStringWithNamespace(UiFramework.localizationNamespace, key);\r\n }\r\n\r\n /** @internal */\r\n public static get packageName(): string {\r\n return \"appui-react\";\r\n }\r\n\r\n /** @internal */\r\n public static loggerCategory(obj: any): string {\r\n const className = getClassName(obj);\r\n const category = UiFramework.packageName + (className ? `.${className}` : \"\");\r\n return category;\r\n }\r\n\r\n public static dispatchActionToStore(type: string, payload: any, immediateSync = false) {\r\n UiFramework.store.dispatch({ type, payload });\r\n if (immediateSync)\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(type);\r\n else\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(type);\r\n }\r\n\r\n public static setAccudrawSnapMode(snapMode: SnapMode) {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetSnapMode, snapMode, true);\r\n }\r\n\r\n public static getAccudrawSnapMode(): SnapMode {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.snapMode : /* istanbul ignore next */ SnapMode.NearestKeypoint;\r\n }\r\n\r\n public static getActiveSelectionScope(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.activeSelectionScope : /* istanbul ignore next */ \"element\";\r\n }\r\n\r\n public static setActiveSelectionScope(selectionScopeId: string): void {\r\n // istanbul ignore else\r\n if (UiFramework.frameworkState) {\r\n const foundIndex = UiFramework.frameworkState.sessionState.availableSelectionScopes.findIndex((selectionScope: PresentationSelectionScope) => selectionScope.id === selectionScopeId);\r\n if (-1 !== foundIndex) {\r\n const scope = UiFramework.frameworkState.sessionState.availableSelectionScopes[foundIndex];\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetSelectionScope, scope.id);\r\n Presentation.selection.scopes.activeScope = scope.id;\r\n }\r\n }\r\n }\r\n\r\n /** @public */\r\n public static openCursorMenu(menuData: CursorMenuData | undefined): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.UpdateCursorMenu, menuData);\r\n }\r\n\r\n /** @public */\r\n public static closeCursorMenu(): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.UpdateCursorMenu, undefined);\r\n }\r\n\r\n /** @public */\r\n public static getCursorMenuData(): CursorMenuData | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.cursorMenuData : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static getActiveIModelId(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelId : /* istanbul ignore next */ \"\";\r\n }\r\n\r\n public static setActiveIModelId(iModelId: string): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetActiveIModelId, iModelId);\r\n }\r\n\r\n public static setIModelConnection(iModelConnection: IModelConnection | undefined, immediateSync = false) {\r\n const oldConnection = UiFramework.getIModelConnection();\r\n if (oldConnection !== iModelConnection) {\r\n if (oldConnection?.iModelId)\r\n FrontstageManager.clearFrontstageDefsForIModelId(oldConnection.iModelId);\r\n oldConnection && undefined === iModelConnection && SyncUiEventDispatcher.clearConnectionEvents(oldConnection);\r\n iModelConnection && SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetIModelConnection, iModelConnection, immediateSync);\r\n }\r\n UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? \"\");\r\n }\r\n\r\n public static getIModelConnection(): IModelConnection | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelConnection : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** @public */\r\n public static async setUiSettingsStorage(storage: UiSettingsStorage, immediateSync = false) { // eslint-disable-line deprecation/deprecation\r\n if (UiFramework._uiSettingsStorage === storage)\r\n return;\r\n\r\n UiFramework._uiSettingsStorage = storage;\r\n\r\n // let any registered providers to load values from the new storage location\r\n const providerKeys = [...this._uiSettingsProviderRegistry.keys()];\r\n for await (const key of providerKeys) {\r\n await this._uiSettingsProviderRegistry.get(key)!.loadUserSettings(storage);\r\n }\r\n\r\n // istanbul ignore next\r\n if (immediateSync)\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.UiSettingsChanged);\r\n else\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.UiSettingsChanged);\r\n }\r\n\r\n /** @public */\r\n public static getUiSettingsStorage(): UiSettingsStorage { // eslint-disable-line deprecation/deprecation\r\n return UiFramework._uiSettingsStorage;\r\n }\r\n\r\n /** @public */\r\n public static setUserInfo(userInfo: UserInfo | undefined, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetUserInfo, userInfo, immediateSync);\r\n }\r\n\r\n /** @public */\r\n public static getUserInfo(): UserInfo | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.userInfo : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultIModelViewportControlId(iModelViewportControlId: string, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultIModelViewportControlId, iModelViewportControlId, immediateSync);\r\n }\r\n\r\n public static getDefaultIModelViewportControlId(): string | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultIModelViewportControlId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultViewId(viewId: string, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultViewId, viewId, immediateSync);\r\n }\r\n\r\n public static getDefaultViewId(): string | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultViewId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultViewState(viewState: ViewState, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultViewState, viewState, immediateSync);\r\n }\r\n public static getDefaultViewState(): ViewState | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultViewState : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** @public */\r\n public static getAvailableSelectionScopes(): PresentationSelectionScope[] {\r\n return UiFramework.frameworkState ?\r\n UiFramework.frameworkState.sessionState.availableSelectionScopes :\r\n /* istanbul ignore next */\r\n [{ id: \"element\", label: \"Element\" } as PresentationSelectionScope];\r\n }\r\n\r\n public static getIsUiVisible() {\r\n return UiShowHideManager.isUiVisible;\r\n }\r\n\r\n public static setIsUiVisible(visible: boolean) {\r\n if (UiShowHideManager.isUiVisible !== visible) {\r\n UiShowHideManager.isUiVisible = visible;\r\n UiFramework.onUiVisibilityChanged.emit({ visible });\r\n }\r\n }\r\n\r\n public static setColorTheme(theme: string) {\r\n if (UiFramework.getColorTheme() === theme)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetTheme, theme, true);\r\n }\r\n\r\n public static getColorTheme(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.theme : /* istanbul ignore next */ SYSTEM_PREFERRED_COLOR_THEME;\r\n }\r\n\r\n public static setWidgetOpacity(opacity: number) {\r\n if (UiFramework.getWidgetOpacity() === opacity)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetWidgetOpacity, opacity, true);\r\n }\r\n\r\n public static getWidgetOpacity(): number {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.widgetOpacity : /* istanbul ignore next */ WIDGET_OPACITY_DEFAULT;\r\n }\r\n\r\n public static isMobile() { // eslint-disable-line @itwin/prefer-get\r\n return ProcessDetector.isMobileBrowser;\r\n }\r\n\r\n /** Returns the Ui Version.\r\n * @public\r\n */\r\n public static get uiVersion(): FrameworkVersionId {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.frameworkVersion : this._uiVersion;\r\n }\r\n\r\n public static setUiVersion(version: FrameworkVersionId) {\r\n if (UiFramework.uiVersion === version)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetFrameworkVersion, version === \"1\" ? \"1\" : \"2\", true);\r\n }\r\n\r\n public static get useDragInteraction(): boolean {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.useDragInteraction : false;\r\n }\r\n\r\n public static setUseDragInteraction(useDragInteraction: boolean) {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetDragInteraction, useDragInteraction, true);\r\n }\r\n\r\n /** Send logging message to the telemetry system\r\n * @internal\r\n */\r\n // istanbul ignore next\r\n public static async postTelemetry(eventName: string, eventId?: GuidString, iTwinId?: GuidString, iModeId?: GuidString, changeSetId?: string, time?: TrackingTime, additionalProperties?: { [key: string]: any }): Promise<void> {\r\n if (!IModelApp.authorizationClient)\r\n return;\r\n\r\n try {\r\n const activity: RpcActivity = {\r\n sessionId: IModelApp.sessionId,\r\n activityId: \"\",\r\n applicationId: IModelApp.applicationId,\r\n applicationVersion: IModelApp.applicationVersion,\r\n accessToken: (await IModelApp.authorizationClient.getAccessToken()) ?? \"\",\r\n };\r\n const telemetryEvent = new TelemetryEvent(eventName, eventId, iTwinId, iModeId, changeSetId, time, additionalProperties);\r\n await IModelApp.telemetry.postTelemetry(activity, telemetryEvent);\r\n } catch { }\r\n }\r\n private static _handleFrameworkVersionChangedEvent = (args: FrameworkVersionChangedEventArgs) => {\r\n // Log Ui Version used\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `Ui Version changed to ${args.version} `);\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n UiFramework.postTelemetry(`Ui Version changed to ${args.version} `, \"F2772C81-962D-4755-807C-2D675A5FF399\");\r\n UiFramework.setUiVersion(args.version);\r\n };\r\n\r\n /** Determines whether a ContextMenu is open\r\n * @alpha\r\n * */\r\n public static get isContextMenuOpen(): boolean {\r\n const contextMenu = document.querySelector(\"div.core-context-menu-opened\");\r\n return contextMenu !== null && contextMenu !== undefined;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"UiFramework.js","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.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\n// cSpell:ignore configurableui clientservices\r\n\r\nimport { Store } from \"redux\";\r\nimport { GuidString, Logger, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { Localization, RpcActivity } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelConnection, SnapMode, ViewState } from \"@itwin/core-frontend\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { TelemetryEvent } from \"@itwin/core-telemetry\";\r\nimport { getClassName, UiAdmin, UiError } from \"@itwin/appui-abstract\";\r\nimport { LocalStateStorage, SettingsManager, UiEvent, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiIModelComponents } from \"@itwin/imodel-components-react\";\r\nimport { BackstageManager } from \"./backstage/BackstageManager\";\r\nimport { ChildWindowManager } from \"./childwindow/ChildWindowManager\";\r\nimport { ConfigurableUiManager } from \"./configurableui/ConfigurableUiManager\";\r\nimport { ConfigurableUiActionId } from \"./configurableui/state\";\r\nimport { FrameworkState } from \"./redux/FrameworkState\";\r\nimport { CursorMenuData, PresentationSelectionScope, SessionStateActionId } from \"./redux/SessionState\";\r\nimport { StateManager } from \"./redux/StateManager\";\r\nimport { HideIsolateEmphasizeActionHandler, HideIsolateEmphasizeManager } from \"./selection/HideIsolateEmphasizeManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"./syncui/SyncUiEventDispatcher\";\r\nimport { SYSTEM_PREFERRED_COLOR_THEME, WIDGET_OPACITY_DEFAULT } from \"./theme/ThemeManager\";\r\nimport * as keyinPaletteTools from \"./tools/KeyinPaletteTools\";\r\nimport * as openSettingTools from \"./tools/OpenSettingsTool\";\r\nimport * as restoreLayoutTools from \"./tools/RestoreLayoutTool\";\r\nimport * as toolSettingTools from \"./tools/ToolSettingsTools\";\r\nimport { UserInfo } from \"./UserInfo\";\r\nimport { UiShowHideManager, UiShowHideSettingsProvider } from \"./utils/UiShowHideManager\";\r\nimport { WidgetManager } from \"./widgets/WidgetManager\";\r\nimport { FrontstageManager } from \"./frontstage/FrontstageManager\";\r\n\r\n// cSpell:ignore Mobi\r\n\r\n/** Defined that available UI Versions. It is recommended to always use the latest version available.\r\n * @public\r\n */\r\nexport type FrameworkVersionId = \"1\" | \"2\";\r\n\r\n/** Interface to be implemented but any classes that wants to load their user settings when the UiStateEntry storage class is set.\r\n * @public\r\n */\r\nexport interface UserSettingsProvider {\r\n /** Unique provider Id */\r\n providerId: string;\r\n /** Function to load settings from settings storage */\r\n loadUserSettings(storage: UiStateStorage): Promise<void>;\r\n}\r\n\r\n/** UiVisibility Event Args interface.\r\n * @public\r\n */\r\nexport interface UiVisibilityEventArgs {\r\n visible: boolean;\r\n}\r\n\r\n/** UiVisibility Event class.\r\n * @public\r\n */\r\nexport class UiVisibilityChangedEvent extends UiEvent<UiVisibilityEventArgs> { }\r\n\r\n/** FrameworkVersion Changed Event Args interface.\r\n * @internal\r\n */\r\nexport interface FrameworkVersionChangedEventArgs {\r\n oldVersion: FrameworkVersionId;\r\n version: FrameworkVersionId;\r\n}\r\n\r\n/** FrameworkVersion Changed Event class.\r\n * @internal\r\n */\r\nexport class FrameworkVersionChangedEvent extends UiEvent<FrameworkVersionChangedEventArgs> { }\r\n\r\n/** TrackingTime time argument used by our feature tracking manager as an option argument to the TelemetryClient\r\n * @internal\r\n */\r\nexport interface TrackingTime {\r\n startTime: Date;\r\n endTime: Date;\r\n}\r\n\r\n/**\r\n * Manages the Redux store, localization service and iModel, Project and Login services for the ui-framework package.\r\n * @public\r\n */\r\nexport class UiFramework {\r\n private static _initialized = false;\r\n private static _store?: Store<any>;\r\n private static _complaint = \"UiFramework not initialized\";\r\n private static _frameworkStateKeyInStore: string = \"frameworkState\"; // default name\r\n private static _backstageManager?: BackstageManager;\r\n private static _widgetManager?: WidgetManager;\r\n private static _uiVersion: FrameworkVersionId = \"2\";\r\n private static _hideIsolateEmphasizeActionHandler?: HideIsolateEmphasizeActionHandler;\r\n /** this provides a default state storage handler */\r\n private static _uiStateStorage: UiStateStorage = new LocalStateStorage();\r\n private static _settingsManager?: SettingsManager;\r\n private static _uiSettingsProviderRegistry: Map<string, UserSettingsProvider> = new Map<string, UserSettingsProvider>();\r\n private static _PopupWindowManager = new ChildWindowManager();\r\n public static useDefaultPopoutUrl = false;\r\n\r\n /** @public */\r\n public static get childWindowManager(): ChildWindowManager {\r\n return UiFramework._PopupWindowManager;\r\n }\r\n\r\n /** Registers class that will be informed when the UserSettingsStorage location has been set or changed. This allows\r\n * classes to load any previously saved settings from the new storage location. Common storage locations are the browser's\r\n * local storage, or the iTwin Product Settings cloud storage available via the SettingsAdmin see `IModelApp.settingsAdmin`.\r\n * @beta\r\n */\r\n public static registerUserSettingsProvider(entry: UserSettingsProvider) {\r\n if (this._uiSettingsProviderRegistry.has(entry.providerId))\r\n return false;\r\n\r\n this._uiSettingsProviderRegistry.set(entry.providerId, entry);\r\n return true;\r\n }\r\n\r\n /** Get Show Ui event.\r\n * @public\r\n */\r\n public static readonly onUiVisibilityChanged = new UiVisibilityChangedEvent();\r\n\r\n /**\r\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\r\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\r\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\r\n */\r\n public static async initialize(store: Store<any> | undefined, frameworkStateKey?: string): Promise<void> {\r\n return this.initializeEx(store, frameworkStateKey);\r\n }\r\n\r\n /**\r\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\r\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\r\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\r\n *\r\n * @internal\r\n */\r\n public static async initializeEx(store: Store<any> | undefined, frameworkStateKey?: string): Promise<void> {\r\n if (UiFramework._initialized) {\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `UiFramework.initialize already called`);\r\n return;\r\n }\r\n\r\n /* if store is undefined then the StateManager class should have been initialized by parent app and the apps default set of reducers registered with it.\r\n If the app has no reducers to add and does not initialize a StateManager then just initialize the StateManager with the default framework reducer now */\r\n if (undefined === store && !StateManager.isInitialized(true))\r\n new StateManager();\r\n\r\n UiFramework._store = store;\r\n // ignore setting _frameworkStateKeyInStore if not using store\r\n if (frameworkStateKey && store)\r\n UiFramework._frameworkStateKeyInStore = frameworkStateKey;\r\n\r\n // set up namespace and register all tools from package\r\n const frameworkNamespace = IModelApp.localization?.registerNamespace(UiFramework.localizationNamespace);\r\n [\r\n restoreLayoutTools,\r\n keyinPaletteTools,\r\n openSettingTools,\r\n toolSettingTools,\r\n ].forEach((tool) => IModelApp.tools.registerModule(tool, this.localizationNamespace));\r\n\r\n UiFramework._backstageManager = new BackstageManager();\r\n UiFramework._hideIsolateEmphasizeActionHandler = new HideIsolateEmphasizeManager(); // this allows user to override the default HideIsolateEmphasizeManager implementation.\r\n UiFramework._widgetManager = new WidgetManager();\r\n\r\n // Initialize ui-imodel-components, ui-components, ui-core & ui-abstract\r\n await UiIModelComponents.initialize();\r\n\r\n UiFramework.settingsManager.onSettingsProvidersChanged.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SettingsProvidersChanged);\r\n });\r\n\r\n // Initialize the MessagePresenter interface in UiAdmin for Editor notifications\r\n UiAdmin.messagePresenter = IModelApp.notifications;\r\n\r\n UiFramework._initialized = true;\r\n\r\n // initialize any standalone settings providers that don't need to have defaults set by iModelApp\r\n UiShowHideSettingsProvider.initialize();\r\n\r\n ConfigurableUiManager.initialize();\r\n\r\n return frameworkNamespace;\r\n }\r\n\r\n /** Un-registers the UiFramework internationalization service namespace */\r\n public static terminate() {\r\n UiFramework._store = undefined;\r\n UiFramework._frameworkStateKeyInStore = \"frameworkState\";\r\n if (StateManager.isInitialized(true))\r\n StateManager.clearStore();\r\n // istanbul ignore next\r\n IModelApp.localization?.unregisterNamespace(UiFramework.localizationNamespace);\r\n UiFramework._backstageManager = undefined;\r\n UiFramework._widgetManager = undefined;\r\n UiFramework._hideIsolateEmphasizeActionHandler = undefined;\r\n UiFramework._settingsManager = undefined;\r\n\r\n UiIModelComponents.terminate();\r\n UiShowHideManager.terminate();\r\n UiFramework._initialized = false;\r\n }\r\n\r\n /** Determines if UiFramework has been initialized */\r\n public static get initialized(): boolean { return UiFramework._initialized; }\r\n\r\n /** Property that returns the SettingManager used by AppUI-based applications.\r\n * @public\r\n */\r\n public static get settingsManager() {\r\n if (undefined === UiFramework._settingsManager)\r\n UiFramework._settingsManager = new SettingsManager();\r\n return UiFramework._settingsManager;\r\n }\r\n\r\n /** @public */\r\n public static get frameworkStateKey(): string {\r\n return UiFramework._frameworkStateKeyInStore;\r\n }\r\n\r\n /** The UiFramework state maintained by Redux\r\n * @public\r\n */\r\n public static get frameworkState(): FrameworkState | undefined {\r\n try {\r\n // eslint-disable-next-line dot-notation\r\n return UiFramework.store.getState()[UiFramework.frameworkStateKey];\r\n } catch (_e) {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** The Redux store */\r\n public static get store(): Store<any> {\r\n if (UiFramework._store)\r\n return UiFramework._store;\r\n\r\n // istanbul ignore else\r\n if (!StateManager.isInitialized(true))\r\n throw new UiError(UiFramework.loggerCategory(this), `Error trying to access redux store before either store or StateManager has been initialized.`);\r\n\r\n // istanbul ignore next\r\n return StateManager.store;\r\n }\r\n\r\n /** The internationalization service created by the app.\r\n * @internal\r\n */\r\n public static get localization(): Localization {\r\n // istanbul ignore next\r\n if (!IModelApp.localization)\r\n throw new UiError(UiFramework.loggerCategory(this), `IModelApp.localization has not been defined.`);\r\n return IModelApp.localization;\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return \"UiFramework\";\r\n }\r\n\r\n /** @public */\r\n public static get backstageManager(): BackstageManager {\r\n // istanbul ignore next\r\n if (!UiFramework._backstageManager)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._backstageManager;\r\n }\r\n\r\n /** @alpha */\r\n public static get hideIsolateEmphasizeActionHandler(): HideIsolateEmphasizeActionHandler {\r\n // istanbul ignore next\r\n if (!UiFramework._hideIsolateEmphasizeActionHandler)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._hideIsolateEmphasizeActionHandler;\r\n }\r\n\r\n /** @alpha */\r\n public static setHideIsolateEmphasizeActionHandler(handler: HideIsolateEmphasizeActionHandler | undefined) {\r\n // istanbul ignore else\r\n if (handler)\r\n UiFramework._hideIsolateEmphasizeActionHandler = handler;\r\n else\r\n UiFramework._hideIsolateEmphasizeActionHandler = new HideIsolateEmphasizeManager();\r\n }\r\n\r\n /** @alpha */\r\n public static get widgetManager(): WidgetManager {\r\n // istanbul ignore next\r\n if (!UiFramework._widgetManager)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._widgetManager;\r\n }\r\n\r\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiFramework\" namespace. Do NOT include the namespace in the key.\r\n * @internal\r\n */\r\n public static translate(key: string | string[]): string {\r\n return IModelApp.localization.getLocalizedStringWithNamespace(UiFramework.localizationNamespace, key);\r\n }\r\n\r\n /** @internal */\r\n public static get packageName(): string {\r\n return \"appui-react\";\r\n }\r\n\r\n /** @internal */\r\n public static loggerCategory(obj: any): string {\r\n const className = getClassName(obj);\r\n const category = UiFramework.packageName + (className ? `.${className}` : \"\");\r\n return category;\r\n }\r\n\r\n public static dispatchActionToStore(type: string, payload: any, immediateSync = false) {\r\n UiFramework.store.dispatch({ type, payload });\r\n if (immediateSync)\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(type);\r\n else\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(type);\r\n }\r\n\r\n public static setAccudrawSnapMode(snapMode: SnapMode) {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetSnapMode, snapMode, true);\r\n }\r\n\r\n public static getAccudrawSnapMode(): SnapMode {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.snapMode : /* istanbul ignore next */ SnapMode.NearestKeypoint;\r\n }\r\n\r\n public static getActiveSelectionScope(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.activeSelectionScope : /* istanbul ignore next */ \"element\";\r\n }\r\n\r\n public static setActiveSelectionScope(selectionScopeId: string): void {\r\n // istanbul ignore else\r\n if (UiFramework.frameworkState) {\r\n const foundIndex = UiFramework.frameworkState.sessionState.availableSelectionScopes.findIndex((selectionScope: PresentationSelectionScope) => selectionScope.id === selectionScopeId);\r\n if (-1 !== foundIndex) {\r\n const scope = UiFramework.frameworkState.sessionState.availableSelectionScopes[foundIndex];\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetSelectionScope, scope.id);\r\n Presentation.selection.scopes.activeScope = scope.id;\r\n }\r\n }\r\n }\r\n\r\n /** @public */\r\n public static openCursorMenu(menuData: CursorMenuData | undefined): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.UpdateCursorMenu, menuData);\r\n }\r\n\r\n /** @public */\r\n public static closeCursorMenu(): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.UpdateCursorMenu, undefined);\r\n }\r\n\r\n /** @public */\r\n public static getCursorMenuData(): CursorMenuData | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.cursorMenuData : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static getActiveIModelId(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelId : /* istanbul ignore next */ \"\";\r\n }\r\n\r\n public static setActiveIModelId(iModelId: string): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetActiveIModelId, iModelId);\r\n }\r\n\r\n public static setIModelConnection(iModelConnection: IModelConnection | undefined, immediateSync = false) {\r\n const oldConnection = UiFramework.getIModelConnection();\r\n if (oldConnection !== iModelConnection) {\r\n if (oldConnection?.iModelId)\r\n FrontstageManager.clearFrontstageDefsForIModelId(oldConnection.iModelId);\r\n oldConnection && undefined === iModelConnection && SyncUiEventDispatcher.clearConnectionEvents(oldConnection);\r\n iModelConnection && SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetIModelConnection, iModelConnection, immediateSync);\r\n }\r\n UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? \"\");\r\n }\r\n\r\n public static getIModelConnection(): IModelConnection | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelConnection : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders\r\n * @public\r\n */\r\n public static async initializeStateFromUserSettingsProviders(immediateSync = false) {\r\n // let any registered providers to load values from the new storage location\r\n const providerKeys = [...this._uiSettingsProviderRegistry.keys()];\r\n for await (const key of providerKeys) {\r\n await this._uiSettingsProviderRegistry.get(key)!.loadUserSettings(UiFramework._uiStateStorage);\r\n }\r\n\r\n // istanbul ignore next\r\n if (immediateSync)\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.UiStateStorageChanged);\r\n else\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.UiStateStorageChanged);\r\n }\r\n\r\n /** @public */\r\n public static async setUiStateStorage(storage: UiStateStorage, immediateSync = false) {\r\n if (UiFramework._uiStateStorage === storage)\r\n return;\r\n\r\n UiFramework._uiStateStorage = storage;\r\n await this.initializeStateFromUserSettingsProviders(immediateSync);\r\n }\r\n\r\n /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.\r\n * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,\r\n * which are now handled with user preferences.\r\n * @public\r\n */\r\n public static getUiStateStorage(): UiStateStorage {\r\n return UiFramework._uiStateStorage;\r\n }\r\n\r\n /** @public */\r\n public static setUserInfo(userInfo: UserInfo | undefined, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetUserInfo, userInfo, immediateSync);\r\n }\r\n\r\n /** @public */\r\n public static getUserInfo(): UserInfo | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.userInfo : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultIModelViewportControlId(iModelViewportControlId: string, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultIModelViewportControlId, iModelViewportControlId, immediateSync);\r\n }\r\n\r\n public static getDefaultIModelViewportControlId(): string | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultIModelViewportControlId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultViewId(viewId: string, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultViewId, viewId, immediateSync);\r\n }\r\n\r\n public static getDefaultViewId(): string | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultViewId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultViewState(viewState: ViewState, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultViewState, viewState, immediateSync);\r\n }\r\n public static getDefaultViewState(): ViewState | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultViewState : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** @public */\r\n public static getAvailableSelectionScopes(): PresentationSelectionScope[] {\r\n return UiFramework.frameworkState ?\r\n UiFramework.frameworkState.sessionState.availableSelectionScopes :\r\n /* istanbul ignore next */\r\n [{ id: \"element\", label: \"Element\" } as PresentationSelectionScope];\r\n }\r\n\r\n public static getIsUiVisible() {\r\n return UiShowHideManager.isUiVisible;\r\n }\r\n\r\n public static setIsUiVisible(visible: boolean) {\r\n if (UiShowHideManager.isUiVisible !== visible) {\r\n UiShowHideManager.isUiVisible = visible;\r\n UiFramework.onUiVisibilityChanged.emit({ visible });\r\n }\r\n }\r\n\r\n public static setColorTheme(theme: string) {\r\n if (UiFramework.getColorTheme() === theme)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetTheme, theme, true);\r\n }\r\n\r\n public static getColorTheme(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.theme : /* istanbul ignore next */ SYSTEM_PREFERRED_COLOR_THEME;\r\n }\r\n\r\n public static setWidgetOpacity(opacity: number) {\r\n if (UiFramework.getWidgetOpacity() === opacity)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetWidgetOpacity, opacity, true);\r\n }\r\n\r\n public static getWidgetOpacity(): number {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.widgetOpacity : /* istanbul ignore next */ WIDGET_OPACITY_DEFAULT;\r\n }\r\n\r\n public static isMobile() { // eslint-disable-line @itwin/prefer-get\r\n return ProcessDetector.isMobileBrowser;\r\n }\r\n\r\n /** Returns the Ui Version.\r\n * @public\r\n */\r\n public static get uiVersion(): FrameworkVersionId {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.frameworkVersion : this._uiVersion;\r\n }\r\n\r\n public static setUiVersion(version: FrameworkVersionId) {\r\n if (UiFramework.uiVersion === version)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetFrameworkVersion, version === \"1\" ? \"1\" : \"2\", true);\r\n }\r\n\r\n public static get useDragInteraction(): boolean {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.useDragInteraction : false;\r\n }\r\n\r\n public static setUseDragInteraction(useDragInteraction: boolean) {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetDragInteraction, useDragInteraction, true);\r\n }\r\n\r\n /** Send logging message to the telemetry system\r\n * @internal\r\n */\r\n // istanbul ignore next\r\n public static async postTelemetry(eventName: string, eventId?: GuidString, iTwinId?: GuidString, iModeId?: GuidString, changeSetId?: string, time?: TrackingTime, additionalProperties?: { [key: string]: any }): Promise<void> {\r\n if (!IModelApp.authorizationClient)\r\n return;\r\n\r\n try {\r\n const activity: RpcActivity = {\r\n sessionId: IModelApp.sessionId,\r\n activityId: \"\",\r\n applicationId: IModelApp.applicationId,\r\n applicationVersion: IModelApp.applicationVersion,\r\n accessToken: (await IModelApp.authorizationClient.getAccessToken()) ?? \"\",\r\n };\r\n const telemetryEvent = new TelemetryEvent(eventName, eventId, iTwinId, iModeId, changeSetId, time, additionalProperties);\r\n await IModelApp.telemetry.postTelemetry(activity, telemetryEvent);\r\n } catch { }\r\n }\r\n private static _handleFrameworkVersionChangedEvent = (args: FrameworkVersionChangedEventArgs) => {\r\n // Log Ui Version used\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `Ui Version changed to ${args.version} `);\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n UiFramework.postTelemetry(`Ui Version changed to ${args.version} `, \"F2772C81-962D-4755-807C-2D675A5FF399\");\r\n UiFramework.setUiVersion(args.version);\r\n };\r\n\r\n /** Determines whether a ContextMenu is open\r\n * @alpha\r\n * */\r\n public static get isContextMenuOpen(): boolean {\r\n const contextMenu = document.querySelector(\"div.core-context-menu-opened\");\r\n return contextMenu !== null && contextMenu !== undefined;\r\n }\r\n}\r\n"]}
@@ -3,14 +3,14 @@
3
3
  */
4
4
  /// <reference types="react" />
5
5
  import "./AccuDrawFieldContainer.scss";
6
- import { CommonProps, Orientation, UiSettingsStorage } from "@itwin/core-react";
6
+ import { CommonProps, Orientation, UiStateStorage } from "@itwin/core-react";
7
7
  /** Properties for [[AccuDrawFieldContainer]] component
8
8
  * @beta */
9
9
  export interface AccuDrawFieldContainerProps extends CommonProps {
10
10
  /** Orientation of the fields */
11
11
  orientation: Orientation;
12
- /** Optional parameter for persistent UI settings. Defaults to LocalSettingsStorage. */
13
- uiSettingsStorage?: UiSettingsStorage;
12
+ /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */
13
+ uiSettingsStorage?: UiStateStorage;
14
14
  /** @internal */
15
15
  showZOverride?: boolean;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawFieldContainer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,+BAA+B,CAAC;AAMvC,OAAO,EAAE,WAAW,EAAY,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAW1F;WACW;AACX,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC9D,gCAAgC;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAeD;WACW;AACX,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,eAiPxE"}
1
+ {"version":3,"file":"AccuDrawFieldContainer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,+BAA+B,CAAC;AAMvC,OAAO,EAAE,WAAW,EAAY,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWvF;WACW;AACX,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC9D,gCAAgC;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,gBAAgB;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAeD;WACW;AACX,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,eAiPxE"}
@@ -190,11 +190,11 @@ function AccuDrawFieldContainer(props) {
190
190
  setAngleIcon(settings && settings.angleIcon !== undefined ? settings.angleIcon : defaultAngleIcon);
191
191
  setDistanceIcon(settings && settings.distanceIcon !== undefined ? settings.distanceIcon : defaultDistanceIcon);
192
192
  };
193
- if (FrameworkAccuDraw_1.FrameworkAccuDraw.uiSettings)
194
- processAccuDrawUiSettings(FrameworkAccuDraw_1.FrameworkAccuDraw.uiSettings);
193
+ if (FrameworkAccuDraw_1.FrameworkAccuDraw.uiStateStorage)
194
+ processAccuDrawUiSettings(FrameworkAccuDraw_1.FrameworkAccuDraw.uiStateStorage);
195
195
  // istanbul ignore next
196
196
  const handleAccuDrawUiSettingsChanged = () => {
197
- processAccuDrawUiSettings(FrameworkAccuDraw_1.FrameworkAccuDraw.uiSettings);
197
+ processAccuDrawUiSettings(FrameworkAccuDraw_1.FrameworkAccuDraw.uiStateStorage);
198
198
  };
199
199
  return FrameworkAccuDraw_1.FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(handleAccuDrawUiSettingsChanged);
200
200
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.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 AccuDraw\r\n */\r\n\r\nimport \"./AccuDrawFieldContainer.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { CompassMode, IModelApp, ItemField, ScreenViewport, SelectedViewportChangedArgs } from \"@itwin/core-frontend\";\r\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, IconSpec, Orientation, UiSettingsStorage } from \"@itwin/core-react\";\r\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\r\n\r\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\r\nimport { KeyboardShortcutManager } from \"../keyboardshortcut/KeyboardShortcut\";\r\nimport { AccuDrawSetCompassModeEventArgs, AccuDrawSetFieldFocusEventArgs, AccuDrawSetFieldLockEventArgs, FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\r\nimport { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\r\n\r\nimport angleIconSvg from \"./angle.svg?sprite\";\r\nimport distanceIconSvg from \"./distance.svg?sprite\";\r\n\r\n/** Properties for [[AccuDrawFieldContainer]] component\r\n * @beta */\r\nexport interface AccuDrawFieldContainerProps extends CommonProps {\r\n /** Orientation of the fields */\r\n orientation: Orientation;\r\n /** Optional parameter for persistent UI settings. Defaults to LocalSettingsStorage. */\r\n uiSettingsStorage?: UiSettingsStorage; // eslint-disable-line deprecation/deprecation\r\n /** @internal */\r\n showZOverride?: boolean;\r\n}\r\n\r\nlet AccuDrawContainerIndex = 0;\r\n\r\nfunction determineShowZ(vp?: ScreenViewport): boolean {\r\n const showZ = (vp !== undefined) ? /* istanbul ignore next */ vp.view.is3d() : false;\r\n return showZ;\r\n}\r\n\r\nconst defaultXLabel = \"X\";\r\nconst defaultYLabel = \"Y\";\r\nconst defaultZLabel = \"Z\";\r\nconst defaultAngleIcon = IconSpecUtilities.createSvgIconSpec(angleIconSvg);\r\nconst defaultDistanceIcon = IconSpecUtilities.createSvgIconSpec(distanceIconSvg);\r\n\r\n/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field\r\n * @beta */\r\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { className, style, orientation, uiSettingsStorage, showZOverride, ...otherProps } = props;\r\n\r\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\r\n const xInputRef = React.useRef<HTMLInputElement>(null);\r\n const yInputRef = React.useRef<HTMLInputElement>(null);\r\n const zInputRef = React.useRef<HTMLInputElement>(null);\r\n const angleInputRef = React.useRef<HTMLInputElement>(null);\r\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\r\n const focusField = React.useRef<ItemField | undefined>(undefined);\r\n const [mode, setMode] = React.useState(CompassMode.Rectangular);\r\n const [xLock, setXLock] = React.useState(false);\r\n const [yLock, setYLock] = React.useState(false);\r\n const [zLock, setZLock] = React.useState(false);\r\n const [angleLock, setAngleLock] = React.useState(false);\r\n const [distanceLock, setDistanceLock] = React.useState(false);\r\n const [showZ, setShowZ] = React.useState(true);\r\n const [xLabel, setXLabel] = React.useState<string | undefined>(defaultXLabel);\r\n const [yLabel, setYLabel] = React.useState<string | undefined>(defaultYLabel);\r\n const [zLabel, setZLabel] = React.useState<string | undefined>(defaultZLabel);\r\n const [angleLabel, setAngleLabel] = React.useState<string | undefined>(undefined);\r\n const [distanceLabel, setDistanceLabel] = React.useState<string | undefined>(undefined);\r\n const [xIcon, setXIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [yIcon, setYIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [zIcon, setZIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [angleIcon, setAngleIcon] = React.useState<IconSpec | undefined>(defaultAngleIcon);\r\n const [distanceIcon, setDistanceIcon] = React.useState<IconSpec | undefined>(defaultDistanceIcon);\r\n const [xStyle, setXStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [yStyle, setYStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [zStyle, setZStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [angleStyle, setAngleStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [distanceStyle, setDistanceStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n\r\n const getInputRef = (field: ItemField): React.RefObject<HTMLInputElement> => {\r\n let inputRef: React.RefObject<HTMLInputElement>;\r\n switch (field) {\r\n case ItemField.X_Item:\r\n inputRef = xInputRef;\r\n break;\r\n case ItemField.Y_Item:\r\n inputRef = yInputRef;\r\n break;\r\n case ItemField.Z_Item:\r\n inputRef = zInputRef;\r\n break;\r\n case ItemField.ANGLE_Item:\r\n inputRef = angleInputRef;\r\n break;\r\n case ItemField.DIST_Item:\r\n inputRef = distanceInputRef;\r\n break;\r\n }\r\n return inputRef;\r\n };\r\n\r\n React.useEffect(() => {\r\n setXLock(IModelApp.accuDraw.getFieldLock(ItemField.X_Item));\r\n setYLock(IModelApp.accuDraw.getFieldLock(ItemField.Y_Item));\r\n setZLock(IModelApp.accuDraw.getFieldLock(ItemField.Z_Item));\r\n setAngleLock(IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item));\r\n setDistanceLock(IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item));\r\n\r\n const handleSetFieldLock = (args: AccuDrawSetFieldLockEventArgs) => {\r\n switch (args.field) {\r\n case ItemField.X_Item:\r\n setXLock(args.lock);\r\n break;\r\n case ItemField.Y_Item:\r\n setYLock(args.lock);\r\n break;\r\n case ItemField.Z_Item:\r\n setZLock(args.lock);\r\n break;\r\n case ItemField.ANGLE_Item:\r\n setAngleLock(args.lock);\r\n break;\r\n case ItemField.DIST_Item:\r\n setDistanceLock(args.lock);\r\n break;\r\n }\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener(handleSetFieldLock);\r\n }, []);\r\n\r\n const setFocusToField = React.useCallback((field: ItemField) => {\r\n const inputRef = getInputRef(field);\r\n\r\n // istanbul ignore else\r\n if (inputRef.current && document.activeElement !== inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.select();\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\r\n focusField.current = args.field;\r\n setFocusToField(focusField.current);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);\r\n }, [setFocusToField]);\r\n\r\n React.useEffect(() => {\r\n const handleGrabInputFocus = () => {\r\n // istanbul ignore else\r\n if (focusField.current)\r\n setFocusToField(focusField.current);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(handleGrabInputFocus);\r\n }, [setFocusToField]);\r\n\r\n React.useEffect(() => {\r\n setMode(IModelApp.accuDraw.compassMode);\r\n\r\n const handleSetMode = (args: AccuDrawSetCompassModeEventArgs) => {\r\n setMode(args.mode);\r\n };\r\n\r\n return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(handleSetMode);\r\n }, []);\r\n\r\n const handleValueChanged = React.useCallback((field: ItemField, stringValue: string) => {\r\n FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);\r\n }, []);\r\n\r\n const handleEscPressed = React.useCallback(() => {\r\n KeyboardShortcutManager.setFocusToHome();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setShowZ(showZOverride || determineShowZ(IModelApp.viewManager.selectedView));\r\n\r\n // istanbul ignore next\r\n const handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n setShowZ(determineShowZ(args.current));\r\n };\r\n\r\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(handleSelectedViewportChanged);\r\n }, [showZOverride]);\r\n\r\n React.useEffect(() => {\r\n\r\n const createFieldStyle = (inStyle: React.CSSProperties | undefined,\r\n backgroundColor: ColorDef | string | undefined,\r\n foregroundColor: ColorDef | string | undefined): React.CSSProperties | undefined => {\r\n let fieldStyle: React.CSSProperties | undefined;\r\n let rgbaString = \"\";\r\n if (inStyle || backgroundColor || foregroundColor) {\r\n fieldStyle = inStyle ? inStyle : {};\r\n if (backgroundColor) {\r\n rgbaString = typeof backgroundColor === \"string\" ? backgroundColor : getCSSColorFromDef(backgroundColor);\r\n fieldStyle = { ...fieldStyle, backgroundColor: rgbaString };\r\n }\r\n if (foregroundColor) {\r\n rgbaString = typeof foregroundColor === \"string\" ? foregroundColor : getCSSColorFromDef(foregroundColor);\r\n fieldStyle = { ...fieldStyle, color: rgbaString };\r\n }\r\n }\r\n return fieldStyle;\r\n };\r\n\r\n const processAccuDrawUiSettings = (settings?: AccuDrawUiSettings) => {\r\n setXStyle(settings ? createFieldStyle(settings.xStyle, settings.xBackgroundColor, settings.xForegroundColor) : undefined);\r\n setYStyle(settings ? createFieldStyle(settings.yStyle, settings.yBackgroundColor, settings.yForegroundColor) : undefined);\r\n setZStyle(settings ? createFieldStyle(settings.zStyle, settings.zBackgroundColor, settings.zForegroundColor) : undefined);\r\n setAngleStyle(settings ? createFieldStyle(settings.angleStyle, settings.angleBackgroundColor, settings.angleForegroundColor) : undefined);\r\n setDistanceStyle(settings ? createFieldStyle(settings.distanceStyle, settings.distanceBackgroundColor, settings.distanceForegroundColor) : undefined);\r\n\r\n setXLabel(settings && settings.xLabel !== undefined ? settings.xLabel : defaultXLabel);\r\n setYLabel(settings && settings.yLabel !== undefined ? settings.yLabel : defaultYLabel);\r\n setZLabel(settings && settings.zLabel !== undefined ? settings.zLabel : defaultZLabel);\r\n setAngleLabel(settings && settings.angleLabel !== undefined ? settings.angleLabel : undefined);\r\n setDistanceLabel(settings && settings.distanceLabel !== undefined ? settings.distanceLabel : undefined);\r\n\r\n setXIcon(settings && settings.xIcon !== undefined ? settings.xIcon : undefined);\r\n setYIcon(settings && settings.yIcon !== undefined ? settings.yIcon : undefined);\r\n setZIcon(settings && settings.zIcon !== undefined ? settings.zIcon : undefined);\r\n setAngleIcon(settings && settings.angleIcon !== undefined ? settings.angleIcon : defaultAngleIcon);\r\n setDistanceIcon(settings && settings.distanceIcon !== undefined ? settings.distanceIcon : defaultDistanceIcon);\r\n };\r\n\r\n if (FrameworkAccuDraw.uiSettings)\r\n processAccuDrawUiSettings(FrameworkAccuDraw.uiSettings);\r\n\r\n // istanbul ignore next\r\n const handleAccuDrawUiSettingsChanged = () => {\r\n processAccuDrawUiSettings(FrameworkAccuDraw.uiSettings);\r\n };\r\n\r\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(handleAccuDrawUiSettingsChanged);\r\n }, []);\r\n\r\n const classNames = classnames(\r\n \"uifw-accudraw-field-container\",\r\n (orientation === Orientation.Vertical) ? \"uifw-accudraw-field-container-vertical\" : \"uifw-accudraw-field-container-horizontal\",\r\n className,\r\n );\r\n\r\n const delay = 250;\r\n const labelCentered = (xLabel !== undefined && xLabel.length === 1 && yLabel !== undefined && yLabel.length === 1 && zLabel !== undefined && zLabel.length === 1);\r\n\r\n return (\r\n <div className={classNames} style={style} {...otherProps}>\r\n {mode === CompassMode.Rectangular &&\r\n <>\r\n <AccuDrawInputField ref={xInputRef} isLocked={xLock} className=\"uifw-accudraw-x-value\" style={xStyle}\r\n field={ItemField.X_Item} id={`uifw-accudraw-x-${containerIndex}`} data-testid=\"uifw-accudraw-x\"\r\n label={xLabel} iconSpec={xIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.X_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n <AccuDrawInputField ref={yInputRef} isLocked={yLock} className=\"uifw-accudraw-y-value\" style={yStyle}\r\n field={ItemField.Y_Item} id={`uifw-accudraw-y-${containerIndex}`} data-testid=\"uifw-accudraw-y\"\r\n label={yLabel} iconSpec={yIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.Y_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n {showZ &&\r\n <AccuDrawInputField ref={zInputRef} isLocked={zLock} className=\"uifw-accudraw-z-value\" style={zStyle}\r\n field={ItemField.Z_Item} id={`uifw-accudraw-z-${containerIndex}`} data-testid=\"uifw-accudraw-z\"\r\n label={zLabel} iconSpec={zIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.Z_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n }\r\n </>\r\n }\r\n {mode === CompassMode.Polar &&\r\n <>\r\n <AccuDrawInputField ref={angleInputRef} isLocked={angleLock} className=\"uifw-accudraw-angle-value\" style={angleStyle}\r\n field={ItemField.ANGLE_Item} id={`uifw-accudraw-angle-${containerIndex}`} data-testid=\"uifw-accudraw-angle\"\r\n label={angleLabel} iconSpec={angleIcon}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.ANGLE_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n <AccuDrawInputField ref={distanceInputRef} isLocked={distanceLock} className=\"uifw-accudraw-distance-value\" style={distanceStyle}\r\n field={ItemField.DIST_Item} id={`uifw-accudraw-distance-${containerIndex}`} data-testid=\"uifw-accudraw-distance\"\r\n label={distanceLabel} iconSpec={distanceIcon}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.DIST_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n </>\r\n }\r\n </div>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.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 AccuDraw\r\n */\r\n\r\nimport \"./AccuDrawFieldContainer.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { CompassMode, IModelApp, ItemField, ScreenViewport, SelectedViewportChangedArgs } from \"@itwin/core-frontend\";\r\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, IconSpec, Orientation, UiStateStorage } from \"@itwin/core-react\";\r\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\r\n\r\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\r\nimport { KeyboardShortcutManager } from \"../keyboardshortcut/KeyboardShortcut\";\r\nimport { AccuDrawSetCompassModeEventArgs, AccuDrawSetFieldFocusEventArgs, AccuDrawSetFieldLockEventArgs, FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\r\nimport { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\r\n\r\nimport angleIconSvg from \"./angle.svg?sprite\";\r\nimport distanceIconSvg from \"./distance.svg?sprite\";\r\n\r\n/** Properties for [[AccuDrawFieldContainer]] component\r\n * @beta */\r\nexport interface AccuDrawFieldContainerProps extends CommonProps {\r\n /** Orientation of the fields */\r\n orientation: Orientation;\r\n /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */\r\n uiSettingsStorage?: UiStateStorage;\r\n /** @internal */\r\n showZOverride?: boolean;\r\n}\r\n\r\nlet AccuDrawContainerIndex = 0;\r\n\r\nfunction determineShowZ(vp?: ScreenViewport): boolean {\r\n const showZ = (vp !== undefined) ? /* istanbul ignore next */ vp.view.is3d() : false;\r\n return showZ;\r\n}\r\n\r\nconst defaultXLabel = \"X\";\r\nconst defaultYLabel = \"Y\";\r\nconst defaultZLabel = \"Z\";\r\nconst defaultAngleIcon = IconSpecUtilities.createSvgIconSpec(angleIconSvg);\r\nconst defaultDistanceIcon = IconSpecUtilities.createSvgIconSpec(distanceIconSvg);\r\n\r\n/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field\r\n * @beta */\r\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { className, style, orientation, uiSettingsStorage, showZOverride, ...otherProps } = props;\r\n\r\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\r\n const xInputRef = React.useRef<HTMLInputElement>(null);\r\n const yInputRef = React.useRef<HTMLInputElement>(null);\r\n const zInputRef = React.useRef<HTMLInputElement>(null);\r\n const angleInputRef = React.useRef<HTMLInputElement>(null);\r\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\r\n const focusField = React.useRef<ItemField | undefined>(undefined);\r\n const [mode, setMode] = React.useState(CompassMode.Rectangular);\r\n const [xLock, setXLock] = React.useState(false);\r\n const [yLock, setYLock] = React.useState(false);\r\n const [zLock, setZLock] = React.useState(false);\r\n const [angleLock, setAngleLock] = React.useState(false);\r\n const [distanceLock, setDistanceLock] = React.useState(false);\r\n const [showZ, setShowZ] = React.useState(true);\r\n const [xLabel, setXLabel] = React.useState<string | undefined>(defaultXLabel);\r\n const [yLabel, setYLabel] = React.useState<string | undefined>(defaultYLabel);\r\n const [zLabel, setZLabel] = React.useState<string | undefined>(defaultZLabel);\r\n const [angleLabel, setAngleLabel] = React.useState<string | undefined>(undefined);\r\n const [distanceLabel, setDistanceLabel] = React.useState<string | undefined>(undefined);\r\n const [xIcon, setXIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [yIcon, setYIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [zIcon, setZIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [angleIcon, setAngleIcon] = React.useState<IconSpec | undefined>(defaultAngleIcon);\r\n const [distanceIcon, setDistanceIcon] = React.useState<IconSpec | undefined>(defaultDistanceIcon);\r\n const [xStyle, setXStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [yStyle, setYStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [zStyle, setZStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [angleStyle, setAngleStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [distanceStyle, setDistanceStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n\r\n const getInputRef = (field: ItemField): React.RefObject<HTMLInputElement> => {\r\n let inputRef: React.RefObject<HTMLInputElement>;\r\n switch (field) {\r\n case ItemField.X_Item:\r\n inputRef = xInputRef;\r\n break;\r\n case ItemField.Y_Item:\r\n inputRef = yInputRef;\r\n break;\r\n case ItemField.Z_Item:\r\n inputRef = zInputRef;\r\n break;\r\n case ItemField.ANGLE_Item:\r\n inputRef = angleInputRef;\r\n break;\r\n case ItemField.DIST_Item:\r\n inputRef = distanceInputRef;\r\n break;\r\n }\r\n return inputRef;\r\n };\r\n\r\n React.useEffect(() => {\r\n setXLock(IModelApp.accuDraw.getFieldLock(ItemField.X_Item));\r\n setYLock(IModelApp.accuDraw.getFieldLock(ItemField.Y_Item));\r\n setZLock(IModelApp.accuDraw.getFieldLock(ItemField.Z_Item));\r\n setAngleLock(IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item));\r\n setDistanceLock(IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item));\r\n\r\n const handleSetFieldLock = (args: AccuDrawSetFieldLockEventArgs) => {\r\n switch (args.field) {\r\n case ItemField.X_Item:\r\n setXLock(args.lock);\r\n break;\r\n case ItemField.Y_Item:\r\n setYLock(args.lock);\r\n break;\r\n case ItemField.Z_Item:\r\n setZLock(args.lock);\r\n break;\r\n case ItemField.ANGLE_Item:\r\n setAngleLock(args.lock);\r\n break;\r\n case ItemField.DIST_Item:\r\n setDistanceLock(args.lock);\r\n break;\r\n }\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener(handleSetFieldLock);\r\n }, []);\r\n\r\n const setFocusToField = React.useCallback((field: ItemField) => {\r\n const inputRef = getInputRef(field);\r\n\r\n // istanbul ignore else\r\n if (inputRef.current && document.activeElement !== inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.select();\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\r\n focusField.current = args.field;\r\n setFocusToField(focusField.current);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);\r\n }, [setFocusToField]);\r\n\r\n React.useEffect(() => {\r\n const handleGrabInputFocus = () => {\r\n // istanbul ignore else\r\n if (focusField.current)\r\n setFocusToField(focusField.current);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(handleGrabInputFocus);\r\n }, [setFocusToField]);\r\n\r\n React.useEffect(() => {\r\n setMode(IModelApp.accuDraw.compassMode);\r\n\r\n const handleSetMode = (args: AccuDrawSetCompassModeEventArgs) => {\r\n setMode(args.mode);\r\n };\r\n\r\n return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(handleSetMode);\r\n }, []);\r\n\r\n const handleValueChanged = React.useCallback((field: ItemField, stringValue: string) => {\r\n FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);\r\n }, []);\r\n\r\n const handleEscPressed = React.useCallback(() => {\r\n KeyboardShortcutManager.setFocusToHome();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setShowZ(showZOverride || determineShowZ(IModelApp.viewManager.selectedView));\r\n\r\n // istanbul ignore next\r\n const handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n setShowZ(determineShowZ(args.current));\r\n };\r\n\r\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(handleSelectedViewportChanged);\r\n }, [showZOverride]);\r\n\r\n React.useEffect(() => {\r\n\r\n const createFieldStyle = (inStyle: React.CSSProperties | undefined,\r\n backgroundColor: ColorDef | string | undefined,\r\n foregroundColor: ColorDef | string | undefined): React.CSSProperties | undefined => {\r\n let fieldStyle: React.CSSProperties | undefined;\r\n let rgbaString = \"\";\r\n if (inStyle || backgroundColor || foregroundColor) {\r\n fieldStyle = inStyle ? inStyle : {};\r\n if (backgroundColor) {\r\n rgbaString = typeof backgroundColor === \"string\" ? backgroundColor : getCSSColorFromDef(backgroundColor);\r\n fieldStyle = { ...fieldStyle, backgroundColor: rgbaString };\r\n }\r\n if (foregroundColor) {\r\n rgbaString = typeof foregroundColor === \"string\" ? foregroundColor : getCSSColorFromDef(foregroundColor);\r\n fieldStyle = { ...fieldStyle, color: rgbaString };\r\n }\r\n }\r\n return fieldStyle;\r\n };\r\n\r\n const processAccuDrawUiSettings = (settings?: AccuDrawUiSettings) => {\r\n setXStyle(settings ? createFieldStyle(settings.xStyle, settings.xBackgroundColor, settings.xForegroundColor) : undefined);\r\n setYStyle(settings ? createFieldStyle(settings.yStyle, settings.yBackgroundColor, settings.yForegroundColor) : undefined);\r\n setZStyle(settings ? createFieldStyle(settings.zStyle, settings.zBackgroundColor, settings.zForegroundColor) : undefined);\r\n setAngleStyle(settings ? createFieldStyle(settings.angleStyle, settings.angleBackgroundColor, settings.angleForegroundColor) : undefined);\r\n setDistanceStyle(settings ? createFieldStyle(settings.distanceStyle, settings.distanceBackgroundColor, settings.distanceForegroundColor) : undefined);\r\n\r\n setXLabel(settings && settings.xLabel !== undefined ? settings.xLabel : defaultXLabel);\r\n setYLabel(settings && settings.yLabel !== undefined ? settings.yLabel : defaultYLabel);\r\n setZLabel(settings && settings.zLabel !== undefined ? settings.zLabel : defaultZLabel);\r\n setAngleLabel(settings && settings.angleLabel !== undefined ? settings.angleLabel : undefined);\r\n setDistanceLabel(settings && settings.distanceLabel !== undefined ? settings.distanceLabel : undefined);\r\n\r\n setXIcon(settings && settings.xIcon !== undefined ? settings.xIcon : undefined);\r\n setYIcon(settings && settings.yIcon !== undefined ? settings.yIcon : undefined);\r\n setZIcon(settings && settings.zIcon !== undefined ? settings.zIcon : undefined);\r\n setAngleIcon(settings && settings.angleIcon !== undefined ? settings.angleIcon : defaultAngleIcon);\r\n setDistanceIcon(settings && settings.distanceIcon !== undefined ? settings.distanceIcon : defaultDistanceIcon);\r\n };\r\n\r\n if (FrameworkAccuDraw.uiStateStorage)\r\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\r\n\r\n // istanbul ignore next\r\n const handleAccuDrawUiSettingsChanged = () => {\r\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\r\n };\r\n\r\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(handleAccuDrawUiSettingsChanged);\r\n }, []);\r\n\r\n const classNames = classnames(\r\n \"uifw-accudraw-field-container\",\r\n (orientation === Orientation.Vertical) ? \"uifw-accudraw-field-container-vertical\" : \"uifw-accudraw-field-container-horizontal\",\r\n className,\r\n );\r\n\r\n const delay = 250;\r\n const labelCentered = (xLabel !== undefined && xLabel.length === 1 && yLabel !== undefined && yLabel.length === 1 && zLabel !== undefined && zLabel.length === 1);\r\n\r\n return (\r\n <div className={classNames} style={style} {...otherProps}>\r\n {mode === CompassMode.Rectangular &&\r\n <>\r\n <AccuDrawInputField ref={xInputRef} isLocked={xLock} className=\"uifw-accudraw-x-value\" style={xStyle}\r\n field={ItemField.X_Item} id={`uifw-accudraw-x-${containerIndex}`} data-testid=\"uifw-accudraw-x\"\r\n label={xLabel} iconSpec={xIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.X_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n <AccuDrawInputField ref={yInputRef} isLocked={yLock} className=\"uifw-accudraw-y-value\" style={yStyle}\r\n field={ItemField.Y_Item} id={`uifw-accudraw-y-${containerIndex}`} data-testid=\"uifw-accudraw-y\"\r\n label={yLabel} iconSpec={yIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.Y_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n {showZ &&\r\n <AccuDrawInputField ref={zInputRef} isLocked={zLock} className=\"uifw-accudraw-z-value\" style={zStyle}\r\n field={ItemField.Z_Item} id={`uifw-accudraw-z-${containerIndex}`} data-testid=\"uifw-accudraw-z\"\r\n label={zLabel} iconSpec={zIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.Z_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n }\r\n </>\r\n }\r\n {mode === CompassMode.Polar &&\r\n <>\r\n <AccuDrawInputField ref={angleInputRef} isLocked={angleLock} className=\"uifw-accudraw-angle-value\" style={angleStyle}\r\n field={ItemField.ANGLE_Item} id={`uifw-accudraw-angle-${containerIndex}`} data-testid=\"uifw-accudraw-angle\"\r\n label={angleLabel} iconSpec={angleIcon}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.ANGLE_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n <AccuDrawInputField ref={distanceInputRef} isLocked={distanceLock} className=\"uifw-accudraw-distance-value\" style={distanceStyle}\r\n field={ItemField.DIST_Item} id={`uifw-accudraw-distance-${containerIndex}`} data-testid=\"uifw-accudraw-distance\"\r\n label={distanceLabel} iconSpec={distanceIcon}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.DIST_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n </>\r\n }\r\n </div>\r\n );\r\n}\r\n"]}
@@ -4,7 +4,7 @@
4
4
  import { BeUiEvent } from "@itwin/core-bentley";
5
5
  import { AccuDraw, BeButtonEvent, CompassMode, ItemField } from "@itwin/core-frontend";
6
6
  import { ConditionalBooleanValue } from "@itwin/appui-abstract";
7
- import { UiSettings } from "@itwin/core-react";
7
+ import { UiStateStorage } from "@itwin/core-react";
8
8
  import { UserSettingsProvider } from "../UiFramework";
9
9
  import { AccuDrawUiSettings } from "./AccuDrawUiSettings";
10
10
  /** Arguments for [[AccuDrawSetFieldFocusEvent]]
@@ -106,10 +106,10 @@ export declare class FrameworkAccuDraw extends AccuDraw implements UserSettingsP
106
106
  /** Determines if notifications should be displayed for AccuDraw changes */
107
107
  static get displayNotifications(): boolean;
108
108
  static set displayNotifications(v: boolean);
109
- loadUserSettings(storage: UiSettings): Promise<void>;
109
+ loadUserSettings(storage: UiStateStorage): Promise<void>;
110
110
  /** AccuDraw User Interface settings */
111
- static get uiSettings(): AccuDrawUiSettings | undefined;
112
- static set uiSettings(v: AccuDrawUiSettings | undefined);
111
+ static get uiStateStorage(): AccuDrawUiSettings | undefined;
112
+ static set uiStateStorage(v: AccuDrawUiSettings | undefined);
113
113
  constructor();
114
114
  private handleSetFieldValueFromUiEvent;
115
115
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkAccuDraw.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/FrameworkAccuDraw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrameworkAccuDraw.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/FrameworkAccuDraw.ts"],"names":[],"mappings":"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"}