@itwin/appui-react 4.6.3 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +29 -14
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +28 -15
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +3 -3
  11. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  13. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  15. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/Calculator.js +11 -12
  21. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  23. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  25. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  26. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  27. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  28. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  29. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  30. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  31. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/childwindow/PopoutWidget.js +6 -3
  33. package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
  34. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  36. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/configurableui/state.js +5 -2
  39. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  40. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  42. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  43. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  44. package/lib/cjs/appui-react/content/IModelViewport.js +2 -0
  45. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  46. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +3 -3
  47. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  48. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  49. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  51. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  52. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +26 -16
  54. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +1 -1
  57. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  58. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +1 -2
  60. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  61. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  62. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  63. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +42 -2
  65. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  66. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +9 -3
  67. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/messages/AppNotificationManager.js +9 -3
  69. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  70. package/lib/cjs/appui-react/messages/MessageManager.d.ts +10 -0
  71. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/messages/MessageManager.js +51 -6
  73. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  74. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  75. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  76. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  77. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  78. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  79. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +8 -8
  80. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  81. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  82. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  83. package/lib/cjs/appui-react/pickers/ViewSelector.js +2 -3
  84. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  85. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  86. package/lib/cjs/appui-react/popup/CardPopup.js +2 -2
  87. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  88. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +7 -6
  90. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  91. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  92. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +2 -2
  93. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  94. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  95. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +2 -2
  96. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  97. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  98. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  99. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  100. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +47 -0
  101. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  102. package/lib/cjs/appui-react/preview/PreviewFeatures.js +95 -0
  103. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -0
  104. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  105. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/safearea/SafeAreaContext.js +9 -2
  107. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  108. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +10 -10
  110. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  111. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  112. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  113. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +9 -6
  114. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  115. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -28
  116. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  117. package/lib/cjs/appui-react/statusbar/StatusBar.js +1 -69
  118. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  119. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -3
  121. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  122. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/statusfields/SectionsField.js +1 -3
  124. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  125. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +4 -7
  126. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  127. package/lib/cjs/appui-react/statusfields/SelectionScope.js +2 -7
  128. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  129. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  130. package/lib/cjs/appui-react/statusfields/SnapMode.js +8 -10
  131. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  132. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  134. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  135. package/lib/cjs/appui-react/theme/ThemeManager.d.ts +38 -7
  136. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/theme/ThemeManager.js +52 -11
  138. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  139. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  140. package/lib/cjs/appui-react/toolbar/Toolbar.js +12 -1
  141. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  142. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  143. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  144. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  145. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  146. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +7 -7
  147. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  148. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  149. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  150. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +12 -4
  151. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  152. package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  153. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +1 -2
  154. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  155. package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +1 -2
  157. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  158. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  159. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +2 -3
  160. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  161. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  162. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  163. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +133 -105
  164. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  165. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  166. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +80 -65
  168. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  169. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  170. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  171. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  172. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  173. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  174. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  175. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  176. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -4
  177. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/uistate/AppUiSettings.js +2 -2
  179. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  180. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  181. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  182. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +10 -1
  183. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  184. package/lib/cjs/appui-react/utils/matchesWords.d.ts +22 -0
  185. package/lib/cjs/appui-react/utils/matchesWords.d.ts.map +1 -0
  186. package/lib/cjs/appui-react/utils/matchesWords.js +103 -0
  187. package/lib/cjs/appui-react/utils/matchesWords.js.map +1 -0
  188. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/widget-panels/Frontstage.js +42 -9
  190. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  191. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -0
  192. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  193. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  194. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +34 -12
  195. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  196. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +2 -7
  198. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  199. package/lib/cjs/appui-react/widgets/Widget.d.ts +23 -1
  200. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  201. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  202. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  203. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -0
  204. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  205. package/lib/cjs/appui-react.d.ts +1 -0
  206. package/lib/cjs/appui-react.d.ts.map +1 -1
  207. package/lib/cjs/appui-react.js +3 -0
  208. package/lib/cjs/appui-react.js.map +1 -1
  209. package/lib/esm/appui-react/UiFramework.d.ts +29 -14
  210. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  211. package/lib/esm/appui-react/UiFramework.js +29 -16
  212. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  213. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  214. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  215. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  216. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  217. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +3 -3
  218. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  219. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  220. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  221. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  222. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  223. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  224. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  225. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  226. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  227. package/lib/esm/appui-react/accudraw/Calculator.js +11 -12
  228. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  229. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  230. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  231. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  232. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  233. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  234. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  235. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  236. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  237. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  238. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  239. package/lib/esm/appui-react/childwindow/PopoutWidget.js +6 -3
  240. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  241. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  242. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  243. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  244. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  245. package/lib/esm/appui-react/configurableui/state.js +5 -2
  246. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  247. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  248. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  249. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  250. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  251. package/lib/esm/appui-react/content/IModelViewport.js +2 -0
  252. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  253. package/lib/esm/appui-react/feedback/ValidationTextbox.js +3 -3
  254. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  255. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  256. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  257. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  258. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  259. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  260. package/lib/esm/appui-react/frontstage/FrontstageDef.js +27 -17
  261. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  262. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  263. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  264. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  265. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  266. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +1 -2
  267. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  268. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  269. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  270. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  271. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +41 -1
  272. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  273. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +9 -3
  274. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  275. package/lib/esm/appui-react/messages/AppNotificationManager.js +9 -3
  276. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  277. package/lib/esm/appui-react/messages/MessageManager.d.ts +10 -0
  278. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  279. package/lib/esm/appui-react/messages/MessageManager.js +52 -7
  280. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  281. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  282. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  283. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  284. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  285. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  286. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +9 -9
  287. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  288. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  289. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  290. package/lib/esm/appui-react/pickers/ViewSelector.js +2 -3
  291. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  292. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  293. package/lib/esm/appui-react/popup/CardPopup.js +2 -2
  294. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  295. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  296. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +6 -5
  297. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  298. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  299. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +2 -2
  300. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  301. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  302. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +2 -2
  303. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  304. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  305. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  306. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  307. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +47 -0
  308. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  309. package/lib/esm/appui-react/preview/PreviewFeatures.js +90 -0
  310. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -0
  311. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  312. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  313. package/lib/esm/appui-react/safearea/SafeAreaContext.js +9 -2
  314. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  315. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  316. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +11 -11
  317. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  318. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  319. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  320. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +9 -6
  321. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  322. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -28
  323. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  324. package/lib/esm/appui-react/statusbar/StatusBar.js +1 -69
  325. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  326. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  327. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -4
  328. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  329. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  330. package/lib/esm/appui-react/statusfields/SectionsField.js +1 -3
  331. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  332. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +4 -7
  333. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  334. package/lib/esm/appui-react/statusfields/SelectionScope.js +2 -7
  335. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  336. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  337. package/lib/esm/appui-react/statusfields/SnapMode.js +8 -10
  338. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  339. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  340. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  341. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  342. package/lib/esm/appui-react/theme/ThemeManager.d.ts +38 -7
  343. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  344. package/lib/esm/appui-react/theme/ThemeManager.js +51 -10
  345. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  346. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  347. package/lib/esm/appui-react/toolbar/Toolbar.js +11 -0
  348. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  349. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  350. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  351. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  352. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  353. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +8 -8
  354. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  355. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  356. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  357. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +12 -4
  358. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  359. package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  360. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +1 -2
  361. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  362. package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  363. package/lib/esm/appui-react/tools/OpenSettingsTool.js +1 -2
  364. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  365. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  366. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +2 -3
  367. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  368. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  369. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  370. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +131 -104
  371. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  372. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  373. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  374. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +81 -66
  375. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  376. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  377. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  378. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  379. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  380. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  381. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  382. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  383. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -4
  384. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  385. package/lib/esm/appui-react/uistate/AppUiSettings.js +2 -2
  386. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  387. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  388. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  389. package/lib/esm/appui-react/uistate/useUiStateStorage.js +10 -1
  390. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  391. package/lib/esm/appui-react/utils/matchesWords.d.ts +22 -0
  392. package/lib/esm/appui-react/utils/matchesWords.d.ts.map +1 -0
  393. package/lib/esm/appui-react/utils/matchesWords.js +99 -0
  394. package/lib/esm/appui-react/utils/matchesWords.js.map +1 -0
  395. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  396. package/lib/esm/appui-react/widget-panels/Frontstage.js +44 -11
  397. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  398. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -0
  399. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  400. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  401. package/lib/esm/appui-react/widget-panels/ToolSettings.js +32 -11
  402. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  403. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  404. package/lib/esm/appui-react/widgets/BackstageAppButton.js +2 -7
  405. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  406. package/lib/esm/appui-react/widgets/Widget.d.ts +23 -1
  407. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  408. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  409. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  410. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -0
  411. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  412. package/lib/esm/appui-react.d.ts +1 -0
  413. package/lib/esm/appui-react.d.ts.map +1 -1
  414. package/lib/esm/appui-react.js +1 -0
  415. package/lib/esm/appui-react.js.map +1 -1
  416. package/lib/public/locales/en/UiFramework.json +6 -4
  417. package/package.json +13 -11
@@ -62,7 +62,15 @@ exports.AccuDrawGrabInputFocusEvent = AccuDrawGrabInputFocusEvent;
62
62
  class AccuDrawUiSettingsChangedEvent extends core_bentley_1.BeUiEvent {
63
63
  }
64
64
  exports.AccuDrawUiSettingsChangedEvent = AccuDrawUiSettingsChangedEvent;
65
- /** Implementation of AccuDraw that sends events for UI and status changes
65
+ /** Subclass of `AccuDraw` in `@itwin/core-frontend` to be used to initialize `IModelApp`.
66
+ *
67
+ * This implementation will generate the required events for the AppUI provided UI to update correctly.
68
+ *
69
+ * ```ts
70
+ * await IModelApp.startup({
71
+ * accuDraw: new FrameworkAccuDraw()
72
+ * });
73
+ * ```
66
74
  * @beta
67
75
  */
68
76
  class FrameworkAccuDraw extends core_frontend_1.AccuDraw {
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkAccuDraw.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/FrameworkAccuDraw.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport { BeUiEvent } from \"@itwin/core-bentley\";\nimport type { BeButtonEvent } from \"@itwin/core-frontend\";\nimport {\n AccuDraw,\n CompassMode,\n IModelApp,\n ItemField,\n NotifyMessageDetails,\n OutputMessagePriority,\n QuantityType,\n RotationMode,\n} from \"@itwin/core-frontend\";\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { UiStateStorageStatus } from \"@itwin/core-react\";\nimport type { UserSettingsProvider } from \"../UiFramework\";\nimport { UiFramework } from \"../UiFramework\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\n\n// cspell:ignore dont\n\nconst compassModeToKeyMap = new Map<CompassMode, string>([\n [CompassMode.Polar, \"polar\"],\n [CompassMode.Rectangular, \"rectangular\"],\n]);\n\nconst rotationModeToKeyMap = new Map<RotationMode, string>([\n [RotationMode.Top, \"top\"],\n [RotationMode.Front, \"front\"],\n [RotationMode.Side, \"side\"],\n [RotationMode.View, \"view\"],\n [RotationMode.ACS, \"ACS\"],\n [RotationMode.Context, \"context\"],\n]);\n\n/** Arguments for [[AccuDrawSetFieldFocusEvent]]\n * @beta */\nexport interface AccuDrawSetFieldFocusEventArgs {\n field: ItemField;\n}\n\n/** AccuDraw Set Field Focus event\n * @beta */\nexport class AccuDrawSetFieldFocusEvent extends BeUiEvent<AccuDrawSetFieldFocusEventArgs> {}\n\n/** Arguments for [[AccuDrawSetFieldValueToUiEvent]]\n * @beta */\nexport interface AccuDrawSetFieldValueToUiEventArgs {\n field: ItemField;\n value: number;\n formattedValue: string;\n}\n\n/** AccuDraw Set Field Value to Ui event\n * @beta */\nexport class AccuDrawSetFieldValueToUiEvent extends BeUiEvent<AccuDrawSetFieldValueToUiEventArgs> {}\n\n/** Arguments for [[AccuDrawSetFieldValueFromUiEvent]]\n * @beta */\nexport interface AccuDrawSetFieldValueFromUiEventArgs {\n field: ItemField;\n stringValue: string;\n}\n\n/** AccuDraw Set Field Value from Ui event\n * @beta */\nexport class AccuDrawSetFieldValueFromUiEvent extends BeUiEvent<AccuDrawSetFieldValueFromUiEventArgs> {}\n\n/** Arguments for [[AccuDrawSetFieldLockEvent]]\n * @beta */\nexport interface AccuDrawSetFieldLockEventArgs {\n field: ItemField;\n lock: boolean;\n}\n\n/** AccuDraw Set Field Lock event\n * @beta */\nexport class AccuDrawSetFieldLockEvent extends BeUiEvent<AccuDrawSetFieldLockEventArgs> {}\n\n/** Arguments for [[AccuDrawSetCompassModeEvent]]\n * @beta */\nexport interface AccuDrawSetCompassModeEventArgs {\n mode: CompassMode;\n}\n\n/** AccuDraw Set Compass Mode event\n * @beta */\nexport class AccuDrawSetCompassModeEvent extends BeUiEvent<AccuDrawSetCompassModeEventArgs> {}\n\n/** AccuDraw Grab Input Focus event\n * @beta */\nexport class AccuDrawGrabInputFocusEvent extends BeUiEvent<{}> {}\n\n/** AccuDraw Ui Settings Changed event\n * @beta */\nexport class AccuDrawUiSettingsChangedEvent extends BeUiEvent<{}> {}\n\n/** Implementation of AccuDraw that sends events for UI and status changes\n * @beta\n */\nexport class FrameworkAccuDraw\n extends AccuDraw\n implements UserSettingsProvider\n{\n private static _displayNotifications = false;\n private static _uiSettings: AccuDrawUiSettings | undefined;\n private static _settingsNamespace = \"AppUiSettings\";\n private static _notificationsKey = \"AccuDrawNotifications\";\n public readonly providerId = \"FrameworkAccuDraw\";\n\n /** AccuDraw Set Field Focus event. */\n public static readonly onAccuDrawSetFieldFocusEvent =\n new AccuDrawSetFieldFocusEvent();\n /** AccuDraw Set Field Value to Ui event. */\n public static readonly onAccuDrawSetFieldValueToUiEvent =\n new AccuDrawSetFieldValueToUiEvent();\n /** AccuDraw Set Field Value from Ui event. */\n public static readonly onAccuDrawSetFieldValueFromUiEvent =\n new AccuDrawSetFieldValueFromUiEvent();\n /** AccuDraw Set Field Lock event. */\n public static readonly onAccuDrawSetFieldLockEvent =\n new AccuDrawSetFieldLockEvent();\n /** AccuDraw Set Mode event. */\n public static readonly onAccuDrawSetCompassModeEvent =\n new AccuDrawSetCompassModeEvent();\n /** AccuDraw Grab Input Focus event. */\n public static readonly onAccuDrawGrabInputFocusEvent =\n new AccuDrawGrabInputFocusEvent();\n\n /** Determines if AccuDraw.rotationMode === RotationMode.Top */\n public static readonly isTopRotationConditional = new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.Top,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.Front */\n public static readonly isFrontRotationConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.Front,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.Side */\n public static readonly isSideRotationConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.Side,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.View */\n public static readonly isViewRotationConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.View,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.ACS */\n public static readonly isACSRotationConditional = new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.ACS,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.Context */\n public static readonly isContextRotationConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.Context,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.compassMode === CompassMode.Polar */\n public static readonly isPolarModeConditional = new ConditionalBooleanValue(\n () => IModelApp.accuDraw.compassMode === CompassMode.Polar,\n [SyncUiEventId.AccuDrawCompassModeChanged]\n );\n /** Determines if AccuDraw.compassMode === CompassMode.Rectangular */\n public static readonly isRectangularModeConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.compassMode === CompassMode.Rectangular,\n [SyncUiEventId.AccuDrawCompassModeChanged]\n );\n\n /** AccuDraw Grab Input Focus event. */\n public static readonly onAccuDrawUiSettingsChangedEvent =\n new AccuDrawUiSettingsChangedEvent();\n\n /** Determines if notifications should be displayed for AccuDraw changes */\n public static get displayNotifications(): boolean {\n return FrameworkAccuDraw._displayNotifications;\n }\n public static set displayNotifications(v: boolean) {\n FrameworkAccuDraw._displayNotifications = v;\n void UiFramework.getUiStateStorage().saveSetting(\n this._settingsNamespace,\n this._notificationsKey,\n v\n );\n }\n\n /* @internal */\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\n const result = await storage.getSetting(\n FrameworkAccuDraw._settingsNamespace,\n FrameworkAccuDraw._notificationsKey\n );\n if (result.status === UiStateStorageStatus.Success)\n FrameworkAccuDraw._displayNotifications = result.setting;\n }\n\n /** AccuDraw User Interface settings */\n public static get uiStateStorage(): AccuDrawUiSettings | undefined {\n return FrameworkAccuDraw._uiSettings;\n }\n public static set uiStateStorage(v: AccuDrawUiSettings | undefined) {\n FrameworkAccuDraw._uiSettings = v;\n FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.emit({});\n }\n\n constructor() {\n super();\n FrameworkAccuDraw.onAccuDrawSetFieldValueFromUiEvent.addListener(\n this.handleSetFieldValueFromUiEvent\n );\n UiFramework.registerUserSettingsProvider(this);\n }\n\n private handleSetFieldValueFromUiEvent = async (\n args: AccuDrawSetFieldValueFromUiEventArgs\n ) => {\n return this.processFieldInput(args.field, args.stringValue, false);\n };\n\n /** @internal */\n public override onCompassModeChange(): void {\n FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.emit({\n mode: this.compassMode,\n });\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.AccuDrawCompassModeChanged\n );\n\n this.outputCompassModeMessage();\n }\n\n /** @internal */\n public override onRotationModeChange(): void {\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.AccuDrawRotationChanged\n );\n\n this.outputRotationMessage();\n }\n\n /** @internal */\n public override onFieldLockChange(index: ItemField): void {\n FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.emit({\n field: index,\n lock: this.getFieldLock(index),\n });\n }\n\n /** @internal */\n public override onFieldValueChange(index: ItemField): void {\n const value = this.getValueByIndex(index);\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(index);\n FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.emit({\n field: index,\n value,\n formattedValue,\n });\n }\n\n private fieldValuesChanged(): void {\n this.onFieldValueChange(ItemField.X_Item);\n this.onFieldValueChange(ItemField.Y_Item);\n this.onFieldValueChange(ItemField.Z_Item);\n this.onFieldValueChange(ItemField.ANGLE_Item);\n this.onFieldValueChange(ItemField.DIST_Item);\n }\n\n /** @internal */\n public override setFocusItem(index: ItemField): void {\n FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.emit({ field: index });\n }\n\n /** Implemented by sub-classes to update ui fields to show current deltas or coordinates when inactive.\n * Should also choose active x or y input field in rectangular mode based on cursor position when\n * axis isn't locked to support \"smart lock\".\n * @internal\n */\n public override onMotion(_ev: BeButtonEvent): void {\n if (!this.isEnabled || this.isDeactivated || UiFramework.isContextMenuOpen)\n return;\n\n this.fieldValuesChanged();\n\n if (!this.dontMoveFocus) this.setFocusItem(this.newFocus);\n }\n\n /** Determine if the AccuDraw UI has focus\n * @internal\n */\n public override get hasInputFocus(): boolean {\n let hasFocus = false;\n const el = document.querySelector(\"div.uifw-accudraw-field-container\");\n if (el) hasFocus = el.contains(document.activeElement);\n return hasFocus;\n }\n\n /** Implement this method to set focus to the AccuDraw UI.\n * @internal\n */\n public override grabInputFocus(): void {\n FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.emit({});\n }\n\n /** Gets the display value for an AccuDraw field */\n public static getFieldDisplayValue(index: ItemField): string {\n const value = IModelApp.accuDraw.getValueByIndex(index);\n let formattedValue = value.toString();\n\n const formatterSpec =\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n ItemField.ANGLE_Item === index\n ? QuantityType.Angle\n : QuantityType.Length\n );\n // istanbul ignore else\n if (formatterSpec)\n formattedValue = IModelApp.quantityFormatter.formatQuantity(\n value,\n formatterSpec\n );\n\n return formattedValue;\n }\n\n /** AccuDraw Set Field Value from Ui. */\n public static setFieldValueFromUi(\n field: ItemField,\n stringValue: string\n ): void {\n FrameworkAccuDraw.onAccuDrawSetFieldValueFromUiEvent.emit({\n field,\n stringValue,\n });\n }\n\n private outputInfoMessage(message: string): void {\n // istanbul ignore else\n if (FrameworkAccuDraw.displayNotifications)\n IModelApp.notifications.outputMessage(\n new NotifyMessageDetails(OutputMessagePriority.Info, message)\n );\n }\n\n private outputCompassModeMessage(): void {\n if (FrameworkAccuDraw.displayNotifications) {\n let modeKey = compassModeToKeyMap.get(this.compassMode);\n // istanbul ignore if\n if (modeKey === undefined) modeKey = \"polar\";\n const modeString = UiFramework.translate(\n `accuDraw.compassMode.${modeKey}`\n );\n const modeMessage = UiFramework.localization.getLocalizedString(\n \"accuDraw.compassModeSet\",\n { modeString, ns: UiFramework.localizationNamespace }\n );\n this.outputInfoMessage(modeMessage);\n }\n }\n\n private outputRotationMessage(): void {\n if (FrameworkAccuDraw.displayNotifications) {\n let rotationKey = rotationModeToKeyMap.get(this.rotationMode);\n // istanbul ignore if\n if (rotationKey === undefined) rotationKey = \"top\";\n const rotationString = UiFramework.translate(\n `accuDraw.rotation.${rotationKey}`\n );\n const rotationMessage = UiFramework.localization.getLocalizedString(\n \"accuDraw.rotationSet\",\n { rotationString, ns: UiFramework.localizationNamespace }\n );\n this.outputInfoMessage(rotationMessage);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"FrameworkAccuDraw.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/FrameworkAccuDraw.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport { BeUiEvent } from \"@itwin/core-bentley\";\nimport type { BeButtonEvent } from \"@itwin/core-frontend\";\nimport {\n AccuDraw,\n CompassMode,\n IModelApp,\n ItemField,\n NotifyMessageDetails,\n OutputMessagePriority,\n QuantityType,\n RotationMode,\n} from \"@itwin/core-frontend\";\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { UiStateStorageStatus } from \"@itwin/core-react\";\nimport type { UserSettingsProvider } from \"../UiFramework\";\nimport { UiFramework } from \"../UiFramework\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../syncui/SyncUiEventDispatcher\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\n\n// cspell:ignore dont\n\nconst compassModeToKeyMap = new Map<CompassMode, string>([\n [CompassMode.Polar, \"polar\"],\n [CompassMode.Rectangular, \"rectangular\"],\n]);\n\nconst rotationModeToKeyMap = new Map<RotationMode, string>([\n [RotationMode.Top, \"top\"],\n [RotationMode.Front, \"front\"],\n [RotationMode.Side, \"side\"],\n [RotationMode.View, \"view\"],\n [RotationMode.ACS, \"ACS\"],\n [RotationMode.Context, \"context\"],\n]);\n\n/** Arguments for [[AccuDrawSetFieldFocusEvent]]\n * @beta */\nexport interface AccuDrawSetFieldFocusEventArgs {\n field: ItemField;\n}\n\n/** AccuDraw Set Field Focus event\n * @beta */\nexport class AccuDrawSetFieldFocusEvent extends BeUiEvent<AccuDrawSetFieldFocusEventArgs> {}\n\n/** Arguments for [[AccuDrawSetFieldValueToUiEvent]]\n * @beta */\nexport interface AccuDrawSetFieldValueToUiEventArgs {\n field: ItemField;\n value: number;\n formattedValue: string;\n}\n\n/** AccuDraw Set Field Value to Ui event\n * @beta */\nexport class AccuDrawSetFieldValueToUiEvent extends BeUiEvent<AccuDrawSetFieldValueToUiEventArgs> {}\n\n/** Arguments for [[AccuDrawSetFieldValueFromUiEvent]]\n * @beta */\nexport interface AccuDrawSetFieldValueFromUiEventArgs {\n field: ItemField;\n stringValue: string;\n}\n\n/** AccuDraw Set Field Value from Ui event\n * @beta */\nexport class AccuDrawSetFieldValueFromUiEvent extends BeUiEvent<AccuDrawSetFieldValueFromUiEventArgs> {}\n\n/** Arguments for [[AccuDrawSetFieldLockEvent]]\n * @beta */\nexport interface AccuDrawSetFieldLockEventArgs {\n field: ItemField;\n lock: boolean;\n}\n\n/** AccuDraw Set Field Lock event\n * @beta */\nexport class AccuDrawSetFieldLockEvent extends BeUiEvent<AccuDrawSetFieldLockEventArgs> {}\n\n/** Arguments for [[AccuDrawSetCompassModeEvent]]\n * @beta */\nexport interface AccuDrawSetCompassModeEventArgs {\n mode: CompassMode;\n}\n\n/** AccuDraw Set Compass Mode event\n * @beta */\nexport class AccuDrawSetCompassModeEvent extends BeUiEvent<AccuDrawSetCompassModeEventArgs> {}\n\n/** AccuDraw Grab Input Focus event\n * @beta */\nexport class AccuDrawGrabInputFocusEvent extends BeUiEvent<{}> {}\n\n/** AccuDraw Ui Settings Changed event\n * @beta */\nexport class AccuDrawUiSettingsChangedEvent extends BeUiEvent<{}> {}\n\n/** Subclass of `AccuDraw` in `@itwin/core-frontend` to be used to initialize `IModelApp`.\n *\n * This implementation will generate the required events for the AppUI provided UI to update correctly.\n *\n * ```ts\n * await IModelApp.startup({\n * accuDraw: new FrameworkAccuDraw()\n * });\n * ```\n * @beta\n */\nexport class FrameworkAccuDraw\n extends AccuDraw\n implements UserSettingsProvider\n{\n private static _displayNotifications = false;\n private static _uiSettings: AccuDrawUiSettings | undefined;\n private static _settingsNamespace = \"AppUiSettings\";\n private static _notificationsKey = \"AccuDrawNotifications\";\n public readonly providerId = \"FrameworkAccuDraw\";\n\n /** AccuDraw Set Field Focus event. */\n public static readonly onAccuDrawSetFieldFocusEvent =\n new AccuDrawSetFieldFocusEvent();\n /** AccuDraw Set Field Value to Ui event. */\n public static readonly onAccuDrawSetFieldValueToUiEvent =\n new AccuDrawSetFieldValueToUiEvent();\n /** AccuDraw Set Field Value from Ui event. */\n public static readonly onAccuDrawSetFieldValueFromUiEvent =\n new AccuDrawSetFieldValueFromUiEvent();\n /** AccuDraw Set Field Lock event. */\n public static readonly onAccuDrawSetFieldLockEvent =\n new AccuDrawSetFieldLockEvent();\n /** AccuDraw Set Mode event. */\n public static readonly onAccuDrawSetCompassModeEvent =\n new AccuDrawSetCompassModeEvent();\n /** AccuDraw Grab Input Focus event. */\n public static readonly onAccuDrawGrabInputFocusEvent =\n new AccuDrawGrabInputFocusEvent();\n\n /** Determines if AccuDraw.rotationMode === RotationMode.Top */\n public static readonly isTopRotationConditional = new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.Top,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.Front */\n public static readonly isFrontRotationConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.Front,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.Side */\n public static readonly isSideRotationConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.Side,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.View */\n public static readonly isViewRotationConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.View,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.ACS */\n public static readonly isACSRotationConditional = new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.ACS,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.rotationMode === RotationMode.Context */\n public static readonly isContextRotationConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.rotationMode === RotationMode.Context,\n [SyncUiEventId.AccuDrawRotationChanged]\n );\n /** Determines if AccuDraw.compassMode === CompassMode.Polar */\n public static readonly isPolarModeConditional = new ConditionalBooleanValue(\n () => IModelApp.accuDraw.compassMode === CompassMode.Polar,\n [SyncUiEventId.AccuDrawCompassModeChanged]\n );\n /** Determines if AccuDraw.compassMode === CompassMode.Rectangular */\n public static readonly isRectangularModeConditional =\n new ConditionalBooleanValue(\n () => IModelApp.accuDraw.compassMode === CompassMode.Rectangular,\n [SyncUiEventId.AccuDrawCompassModeChanged]\n );\n\n /** AccuDraw Grab Input Focus event. */\n public static readonly onAccuDrawUiSettingsChangedEvent =\n new AccuDrawUiSettingsChangedEvent();\n\n /** Determines if notifications should be displayed for AccuDraw changes */\n public static get displayNotifications(): boolean {\n return FrameworkAccuDraw._displayNotifications;\n }\n public static set displayNotifications(v: boolean) {\n FrameworkAccuDraw._displayNotifications = v;\n void UiFramework.getUiStateStorage().saveSetting(\n this._settingsNamespace,\n this._notificationsKey,\n v\n );\n }\n\n /* @internal */\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\n const result = await storage.getSetting(\n FrameworkAccuDraw._settingsNamespace,\n FrameworkAccuDraw._notificationsKey\n );\n if (result.status === UiStateStorageStatus.Success)\n FrameworkAccuDraw._displayNotifications = result.setting;\n }\n\n /** AccuDraw User Interface settings */\n public static get uiStateStorage(): AccuDrawUiSettings | undefined {\n return FrameworkAccuDraw._uiSettings;\n }\n public static set uiStateStorage(v: AccuDrawUiSettings | undefined) {\n FrameworkAccuDraw._uiSettings = v;\n FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.emit({});\n }\n\n constructor() {\n super();\n FrameworkAccuDraw.onAccuDrawSetFieldValueFromUiEvent.addListener(\n this.handleSetFieldValueFromUiEvent\n );\n UiFramework.registerUserSettingsProvider(this);\n }\n\n private handleSetFieldValueFromUiEvent = async (\n args: AccuDrawSetFieldValueFromUiEventArgs\n ) => {\n return this.processFieldInput(args.field, args.stringValue, false);\n };\n\n /** @internal */\n public override onCompassModeChange(): void {\n FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.emit({\n mode: this.compassMode,\n });\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.AccuDrawCompassModeChanged\n );\n\n this.outputCompassModeMessage();\n }\n\n /** @internal */\n public override onRotationModeChange(): void {\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.AccuDrawRotationChanged\n );\n\n this.outputRotationMessage();\n }\n\n /** @internal */\n public override onFieldLockChange(index: ItemField): void {\n FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.emit({\n field: index,\n lock: this.getFieldLock(index),\n });\n }\n\n /** @internal */\n public override onFieldValueChange(index: ItemField): void {\n const value = this.getValueByIndex(index);\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(index);\n FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.emit({\n field: index,\n value,\n formattedValue,\n });\n }\n\n private fieldValuesChanged(): void {\n this.onFieldValueChange(ItemField.X_Item);\n this.onFieldValueChange(ItemField.Y_Item);\n this.onFieldValueChange(ItemField.Z_Item);\n this.onFieldValueChange(ItemField.ANGLE_Item);\n this.onFieldValueChange(ItemField.DIST_Item);\n }\n\n /** @internal */\n public override setFocusItem(index: ItemField): void {\n FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.emit({ field: index });\n }\n\n /** Implemented by sub-classes to update ui fields to show current deltas or coordinates when inactive.\n * Should also choose active x or y input field in rectangular mode based on cursor position when\n * axis isn't locked to support \"smart lock\".\n * @internal\n */\n public override onMotion(_ev: BeButtonEvent): void {\n if (!this.isEnabled || this.isDeactivated || UiFramework.isContextMenuOpen)\n return;\n\n this.fieldValuesChanged();\n\n if (!this.dontMoveFocus) this.setFocusItem(this.newFocus);\n }\n\n /** Determine if the AccuDraw UI has focus\n * @internal\n */\n public override get hasInputFocus(): boolean {\n let hasFocus = false;\n const el = document.querySelector(\"div.uifw-accudraw-field-container\");\n if (el) hasFocus = el.contains(document.activeElement);\n return hasFocus;\n }\n\n /** Implement this method to set focus to the AccuDraw UI.\n * @internal\n */\n public override grabInputFocus(): void {\n FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.emit({});\n }\n\n /** Gets the display value for an AccuDraw field */\n public static getFieldDisplayValue(index: ItemField): string {\n const value = IModelApp.accuDraw.getValueByIndex(index);\n let formattedValue = value.toString();\n\n const formatterSpec =\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n ItemField.ANGLE_Item === index\n ? QuantityType.Angle\n : QuantityType.Length\n );\n // istanbul ignore else\n if (formatterSpec)\n formattedValue = IModelApp.quantityFormatter.formatQuantity(\n value,\n formatterSpec\n );\n\n return formattedValue;\n }\n\n /** AccuDraw Set Field Value from Ui. */\n public static setFieldValueFromUi(\n field: ItemField,\n stringValue: string\n ): void {\n FrameworkAccuDraw.onAccuDrawSetFieldValueFromUiEvent.emit({\n field,\n stringValue,\n });\n }\n\n private outputInfoMessage(message: string): void {\n // istanbul ignore else\n if (FrameworkAccuDraw.displayNotifications)\n IModelApp.notifications.outputMessage(\n new NotifyMessageDetails(OutputMessagePriority.Info, message)\n );\n }\n\n private outputCompassModeMessage(): void {\n if (FrameworkAccuDraw.displayNotifications) {\n let modeKey = compassModeToKeyMap.get(this.compassMode);\n // istanbul ignore if\n if (modeKey === undefined) modeKey = \"polar\";\n const modeString = UiFramework.translate(\n `accuDraw.compassMode.${modeKey}`\n );\n const modeMessage = UiFramework.localization.getLocalizedString(\n \"accuDraw.compassModeSet\",\n { modeString, ns: UiFramework.localizationNamespace }\n );\n this.outputInfoMessage(modeMessage);\n }\n }\n\n private outputRotationMessage(): void {\n if (FrameworkAccuDraw.displayNotifications) {\n let rotationKey = rotationModeToKeyMap.get(this.rotationMode);\n // istanbul ignore if\n if (rotationKey === undefined) rotationKey = \"top\";\n const rotationString = UiFramework.translate(\n `accuDraw.rotation.${rotationKey}`\n );\n const rotationMessage = UiFramework.localization.getLocalizedString(\n \"accuDraw.rotationSet\",\n { rotationString, ns: UiFramework.localizationNamespace }\n );\n this.outputInfoMessage(rotationMessage);\n }\n }\n}\n"]}
@@ -21,13 +21,13 @@ export declare class InternalChildWindowManager implements FrameworkChildWindows
21
21
  private _roots;
22
22
  get openChildWindows(): OpenChildWindowInfo[];
23
23
  /**
24
- * When using React18, the `createRoot` function must be provided in order to render Popout content with React18.
24
+ * When using React 18, the `createRoot` function must be provided in order to render Popout content with React 18.
25
25
  * Do not call if using React 17 or before.
26
26
  *
27
27
  * Note: The type of the function is intentionally simplified here.
28
28
  *
29
29
  * @param createRootFn Function imported from `import { createRoot } from "react-dom/client";`
30
- * @beta Will be removed once the transition to react 18 is complete.
30
+ * @beta Will be removed once the transition to React 18 is complete.
31
31
  */
32
32
  useCreateRoot(createRootFn: CreateRoot): void;
33
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"InternalChildWindowManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAyB5C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/E;;;;KAIK;AACL,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,MAAM,CAAwC;IAEtD,IAAW,gBAAgB,0BAE1B;IAED;;;;;;;;OAQG;IAEI,aAAa,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI;IAIpD;;;;OAIG;IAEH,OAAO,CAAC,MAAM;IAoBd;;;;OAIG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,mBAAmB,GAAG,SAAS;IAQlC;;;;OAIG;IACI,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAU3E,OAAO,CAAC,yBAAyB;IA0DjC,gGAAgG;IACzF,QAAQ;IAQf;;;;;OAKG;IACI,KAAK,kBAAmB,MAAM,2CAgBnC;IAGF,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;;OAQG;IAEI,IAAI,CACT,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,QAAQ,EAAE,wBAAwB,EAClC,mBAAmB,CAAC,EAAE,OAAO;CAuDhC"}
1
+ {"version":3,"file":"InternalChildWindowManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AA0B5C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/E;;;;KAIK;AACL,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,MAAM,CAAwC;IAEtD,IAAW,gBAAgB,0BAE1B;IAED;;;;;;;;OAQG;IAEI,aAAa,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI;IAIpD;;;;OAIG;IAEH,OAAO,CAAC,MAAM;IAoBd;;;;OAIG;IACI,IAAI,CACT,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,mBAAmB,GAAG,SAAS;IAQlC;;;;OAIG;IACI,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAU3E,OAAO,CAAC,yBAAyB;IAqEjC,gGAAgG;IACzF,QAAQ;IAQf;;;;;OAKG;IACI,KAAK,kBAAmB,MAAM,2CAgBnC;IAGF,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;;OAQG;IAEI,IAAI,CACT,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,QAAQ,EAAE,wBAAwB,EAClC,mBAAmB,CAAC,EAAE,OAAO;CAuDhC"}
@@ -20,6 +20,7 @@ const ModalDialogManager_1 = require("../dialog/ModalDialogManager");
20
20
  const CursorMenu_1 = require("../cursor/cursormenu/CursorMenu");
21
21
  const ThemeManager_1 = require("../theme/ThemeManager");
22
22
  const UiFramework_1 = require("../UiFramework");
23
+ const appui_layout_react_1 = require("@itwin/appui-layout-react");
23
24
  const childHtml = `<!DOCTYPE html>
24
25
  <html>
25
26
  <head>
@@ -79,13 +80,13 @@ class InternalChildWindowManager {
79
80
  return this._openChildWindows;
80
81
  }
81
82
  /**
82
- * When using React18, the `createRoot` function must be provided in order to render Popout content with React18.
83
+ * When using React 18, the `createRoot` function must be provided in order to render Popout content with React 18.
83
84
  * Do not call if using React 17 or before.
84
85
  *
85
86
  * Note: The type of the function is intentionally simplified here.
86
87
  *
87
88
  * @param createRootFn Function imported from `import { createRoot } from "react-dom/client";`
88
- * @beta Will be removed once the transition to react 18 is complete.
89
+ * @beta Will be removed once the transition to React 18 is complete.
89
90
  */
90
91
  // istanbul ignore next: Result of this assignment is only visible in `open`, which is not tested.
91
92
  useCreateRoot(createRootFn) {
@@ -148,14 +149,15 @@ class InternalChildWindowManager {
148
149
  (0, CopyStyles_1.copyStyles)(childWindow.document);
149
150
  setTimeout(() => {
150
151
  this.render(React.createElement(react_redux_1.Provider, { store: UiFramework_1.UiFramework.store },
151
- React.createElement(useUiStateStorage_1.UiStateStorageHandler, null,
152
- React.createElement(ThemeManager_1.ThemeManager, null,
153
- React.createElement("div", { className: "uifw-child-window-container-host" },
154
- React.createElement(PopupManager_1.PopupRenderer, null),
155
- React.createElement(ModalDialogManager_1.ModalDialogRenderer, null),
156
- React.createElement(ModelessDialogManager_1.ModelessDialogRenderer, null),
157
- React.createElement(CursorMenu_1.CursorPopupMenu, null),
158
- React.createElement("div", { className: "uifw-child-window-container nz-widget-widget" }, content))))), reactConnectionDiv);
152
+ React.createElement(appui_layout_react_1.NineZone, { dispatch: () => { }, layout: (0, appui_layout_react_1.createLayoutStore)(UiFramework_1.UiFramework.frontstages.activeFrontstageDef?.nineZoneState) },
153
+ React.createElement(useUiStateStorage_1.UiStateStorageHandler, null,
154
+ React.createElement(ThemeManager_1.ThemeManager, null,
155
+ React.createElement("div", { className: "uifw-child-window-container-host" },
156
+ React.createElement(PopupManager_1.PopupRenderer, null),
157
+ React.createElement(ModalDialogManager_1.ModalDialogRenderer, null),
158
+ React.createElement(ModelessDialogManager_1.ModelessDialogRenderer, null),
159
+ React.createElement(CursorMenu_1.CursorPopupMenu, null),
160
+ React.createElement("div", { className: "uifw-child-window-container nz-widget-widget" }, content)))))), reactConnectionDiv);
159
161
  });
160
162
  });
161
163
  childWindow.addEventListener("pagehide", () => {
@@ -163,7 +165,6 @@ class InternalChildWindowManager {
163
165
  if (!frontStageDef)
164
166
  return;
165
167
  frontStageDef.saveChildWindowSizeAndPosition(childWindowId, childWindow);
166
- this.close(childWindowId, false);
167
168
  // UnmountComponentAtNode is deprecated in React 18, so if they are
168
169
  // using React 18 and passing in a createRoot function, unmount()
169
170
  // will be used
@@ -172,6 +173,10 @@ class InternalChildWindowManager {
172
173
  }
173
174
  else
174
175
  ReactDOM.unmountComponentAtNode(reactConnectionDiv);
176
+ // We need to unmount the child window content before we close it because
177
+ // it is docked in this function and the widget will disappear if we
178
+ // unmount after docked.
179
+ this.close(childWindowId, false);
175
180
  });
176
181
  }
177
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport \"./InternalChildWindowManager.scss\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { copyStyles } from \"./CopyStyles\";\nimport { Provider } from \"react-redux\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body class=\"iui-root\">\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/**\n * Simplification of non exported CreateRoot parameter, only to be used\n * in InternalChildWindowManager and ChildWindowManager\n * @internal\n */\nexport type CreateRoot = Parameters<FrameworkChildWindows[\"useCreateRoot\"]>[0];\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n * */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: OpenChildWindowInfo[] = [];\n private _createRoot?: CreateRoot;\n private _roots: { [childwindowId: string]: any } = {};\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * When using React18, the `createRoot` function must be provided in order to render Popout content with React18.\n * Do not call if using React 17 or before.\n *\n * Note: The type of the function is intentionally simplified here.\n *\n * @param createRootFn Function imported from `import { createRoot } from \"react-dom/client\";`\n * @beta Will be removed once the transition to react 18 is complete.\n */\n // istanbul ignore next: Result of this assignment is only visible in `open`, which is not tested.\n public useCreateRoot(createRootFn: CreateRoot): void {\n this._createRoot = createRootFn;\n }\n\n /**\n * Abstracts ReactDOM.render to use either the _createRoot method or the default ReactDOM.render.\n * @param element Element to render.\n * @param container Container to render to.\n */\n // istanbul ignore next: Used in `open` which is not tested.\n private render(\n element: React.FunctionComponentElement<any>,\n container: Element | DocumentFragment\n ) {\n // If createRoot is passed in for React 18 we have to render differently\n // than without it. React 17 vs React 18. We need to save the root to\n // unmount it.\n if (this._createRoot) {\n const childWindowId = UiFramework.childWindows.findId(\n container.ownerDocument.defaultView\n );\n if (childWindowId) {\n this._roots[childWindowId] = this._createRoot(container);\n this._roots[childWindowId].render(element);\n }\n } else {\n ReactDOM.render(element, container);\n }\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n // istanbul ignore next: Used in `open` which is not tested.\n private renderChildWindowContents(\n childWindow: Window,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv) {\n // set openChildWindows now so components can use it when they mount\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n });\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(\n <Provider store={UiFramework.store}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </Provider>,\n reactConnectionDiv\n );\n });\n });\n\n childWindow.addEventListener(\"pagehide\", () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(\n childWindowId,\n childWindow\n );\n this.close(childWindowId, false);\n // UnmountComponentAtNode is deprecated in React 18, so if they are\n // using React 18 and passing in a createRoot function, unmount()\n // will be used\n if (this._roots[childWindowId]) {\n this._roots[childWindowId].unmount();\n } else ReactDOM.unmountComponentAtNode(reactConnectionDiv);\n });\n }\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n // istanbul ignore next\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._openChildWindows = [];\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true)\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (-1 === windowIndex) return false;\n const childWindow = this.openChildWindows[windowIndex];\n this.openChildWindows.splice(windowIndex, 1);\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef &&\n frontStageDef.dockWidgetContainerByContainerId(childWindowId);\n }\n return true;\n };\n\n // istanbul ignore next: Used in `open` which is not tested.\n private adjustWidowLocation(\n location: ChildWindowLocationProps\n ): ChildWindowLocationProps {\n const outLocation = { ...location };\n if (0 === location.top && 0 === location.left) {\n // If no location is provided, prepare position of the new window to be centered against the current window.\n outLocation.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n outLocation.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n return outLocation;\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n // istanbul ignore next: Would require mocking window.open to return a window object.\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n // first check to see if content is already open in child window\n if (\n this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n ) >= 0\n ) {\n return false;\n }\n\n location = this.adjustWidowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return false;\n if (0 === url.length) {\n childWindow.document.write(childHtml);\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n } else {\n childWindow.addEventListener(\n \"load\",\n () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n },\n false\n );\n }\n\n window.addEventListener(\n \"unload\",\n () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n },\n false\n );\n\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport \"./InternalChildWindowManager.scss\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { copyStyles } from \"./CopyStyles\";\nimport { Provider } from \"react-redux\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\nimport { createLayoutStore, NineZone } from \"@itwin/appui-layout-react\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body class=\"iui-root\">\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/**\n * Simplification of non exported CreateRoot parameter, only to be used\n * in InternalChildWindowManager and ChildWindowManager\n * @internal\n */\nexport type CreateRoot = Parameters<FrameworkChildWindows[\"useCreateRoot\"]>[0];\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n * */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: OpenChildWindowInfo[] = [];\n private _createRoot?: CreateRoot;\n private _roots: { [childwindowId: string]: any } = {};\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * When using React 18, the `createRoot` function must be provided in order to render Popout content with React 18.\n * Do not call if using React 17 or before.\n *\n * Note: The type of the function is intentionally simplified here.\n *\n * @param createRootFn Function imported from `import { createRoot } from \"react-dom/client\";`\n * @beta Will be removed once the transition to React 18 is complete.\n */\n // istanbul ignore next: Result of this assignment is only visible in `open`, which is not tested.\n public useCreateRoot(createRootFn: CreateRoot): void {\n this._createRoot = createRootFn;\n }\n\n /**\n * Abstracts ReactDOM.render to use either the _createRoot method or the default ReactDOM.render.\n * @param element Element to render.\n * @param container Container to render to.\n */\n // istanbul ignore next: Used in `open` which is not tested.\n private render(\n element: React.FunctionComponentElement<any>,\n container: Element | DocumentFragment\n ) {\n // If createRoot is passed in for React 18 we have to render differently\n // than without it. React 17 vs React 18. We need to save the root to\n // unmount it.\n if (this._createRoot) {\n const childWindowId = UiFramework.childWindows.findId(\n container.ownerDocument.defaultView\n );\n if (childWindowId) {\n this._roots[childWindowId] = this._createRoot(container);\n this._roots[childWindowId].render(element);\n }\n } else {\n ReactDOM.render(element, container);\n }\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n // istanbul ignore next: Used in `open` which is not tested.\n private renderChildWindowContents(\n childWindow: Window,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv) {\n // set openChildWindows now so components can use it when they mount\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n });\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(\n <Provider store={UiFramework.store}>\n <NineZone\n dispatch={() => {}}\n layout={createLayoutStore(\n UiFramework.frontstages.activeFrontstageDef?.nineZoneState\n )}\n >\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </NineZone>\n </Provider>,\n reactConnectionDiv\n );\n });\n });\n\n childWindow.addEventListener(\"pagehide\", () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(\n childWindowId,\n childWindow\n );\n // UnmountComponentAtNode is deprecated in React 18, so if they are\n // using React 18 and passing in a createRoot function, unmount()\n // will be used\n if (this._roots[childWindowId]) {\n this._roots[childWindowId].unmount();\n } else ReactDOM.unmountComponentAtNode(reactConnectionDiv);\n\n // We need to unmount the child window content before we close it because\n // it is docked in this function and the widget will disappear if we\n // unmount after docked.\n this.close(childWindowId, false);\n });\n }\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n // istanbul ignore next\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._openChildWindows = [];\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true)\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (-1 === windowIndex) return false;\n const childWindow = this.openChildWindows[windowIndex];\n this.openChildWindows.splice(windowIndex, 1);\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef &&\n frontStageDef.dockWidgetContainerByContainerId(childWindowId);\n }\n return true;\n };\n\n // istanbul ignore next: Used in `open` which is not tested.\n private adjustWidowLocation(\n location: ChildWindowLocationProps\n ): ChildWindowLocationProps {\n const outLocation = { ...location };\n if (0 === location.top && 0 === location.left) {\n // If no location is provided, prepare position of the new window to be centered against the current window.\n outLocation.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n outLocation.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n return outLocation;\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n // istanbul ignore next: Would require mocking window.open to return a window object.\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n // first check to see if content is already open in child window\n if (\n this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n ) >= 0\n ) {\n return false;\n }\n\n location = this.adjustWidowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return false;\n if (0 === url.length) {\n childWindow.document.write(childHtml);\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n } else {\n childWindow.addEventListener(\n \"load\",\n () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n },\n false\n );\n }\n\n window.addEventListener(\n \"unload\",\n () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n },\n false\n );\n\n return true;\n }\n}\n"]}
@@ -3,14 +3,12 @@
3
3
  */
4
4
  /// <reference types="react" />
5
5
  import "./PopoutWidget.scss";
6
- import type { WidgetDef } from "../widgets/WidgetDef";
7
6
  interface PopoutWidgetProps {
8
7
  widgetContainerId: string;
9
- widgetDef: WidgetDef;
10
8
  }
11
- /** Component used to wrap a widget for use is a child window.
9
+ /** Component used to wrap a widget for use in a child window.
12
10
  * @internal
13
11
  */
14
- export declare function PopoutWidget({ widgetContainerId, widgetDef, }: PopoutWidgetProps): JSX.Element;
12
+ export declare function PopoutWidget({ widgetContainerId }: PopoutWidgetProps): JSX.Element;
15
13
  export {};
16
14
  //# sourceMappingURL=PopoutWidget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopoutWidget.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/PopoutWidget.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,UAAU,iBAAiB;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,iBAAiB,EACjB,SAAS,GACV,EAAE,iBAAiB,eASnB"}
1
+ {"version":3,"file":"PopoutWidget.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/PopoutWidget.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,qBAAqB,CAAC;AAO7B,UAAU,iBAAiB;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,eAcpE"}
@@ -10,11 +10,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.PopoutWidget = void 0;
11
11
  require("./PopoutWidget.scss");
12
12
  const React = require("react");
13
- /** Component used to wrap a widget for use is a child window.
13
+ const appui_layout_react_1 = require("@itwin/appui-layout-react");
14
+ /** Component used to wrap a widget for use in a child window.
14
15
  * @internal
15
16
  */
16
- function PopoutWidget({ widgetContainerId, widgetDef, }) {
17
- return (React.createElement("div", { className: "uifw-popout-widget-filled-container", "data-widget-id": widgetContainerId }, widgetDef.reactNode));
17
+ function PopoutWidget({ widgetContainerId }) {
18
+ const content = React.useMemo(() => React.createElement(appui_layout_react_1.WidgetContentContainer, null), []);
19
+ return (React.createElement("div", { className: "uifw-popout-widget-filled-container", "data-widget-id": widgetContainerId },
20
+ React.createElement(appui_layout_react_1.WidgetProvider, { id: widgetContainerId }, content)));
18
21
  }
19
22
  exports.PopoutWidget = PopoutWidget;
20
23
  //# sourceMappingURL=PopoutWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopoutWidget.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/PopoutWidget.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA6B;AAC7B,+BAA+B;AAQ/B;;GAEG;AACH,SAAgB,YAAY,CAAC,EAC3B,iBAAiB,EACjB,SAAS,GACS;IAClB,OAAO,CACL,6BACE,SAAS,EAAC,qCAAqC,oBAC/B,iBAAiB,IAEhC,SAAS,CAAC,SAAS,CAChB,CACP,CAAC;AACJ,CAAC;AAZD,oCAYC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport \"./PopoutWidget.scss\";\nimport * as React from \"react\";\nimport type { WidgetDef } from \"../widgets/WidgetDef\";\n\ninterface PopoutWidgetProps {\n widgetContainerId: string;\n widgetDef: WidgetDef;\n}\n\n/** Component used to wrap a widget for use is a child window.\n * @internal\n */\nexport function PopoutWidget({\n widgetContainerId,\n widgetDef,\n}: PopoutWidgetProps) {\n return (\n <div\n className=\"uifw-popout-widget-filled-container\"\n data-widget-id={widgetContainerId}\n >\n {widgetDef.reactNode}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"PopoutWidget.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/PopoutWidget.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA6B;AAC7B,+BAA+B;AAC/B,kEAGmC;AAMnC;;GAEG;AACH,SAAgB,YAAY,CAAC,EAAE,iBAAiB,EAAqB;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,GAAG,EAAE,CAAC,oBAAC,2CAAsB,OAA0B,EACvD,EAAE,CACH,CAAC;IAEF,OAAO,CACL,6BACE,SAAS,EAAC,qCAAqC,oBAC/B,iBAAiB;QAEjC,oBAAC,mCAAc,IAAC,EAAE,EAAE,iBAAiB,IAAG,OAAO,CAAkB,CAC7D,CACP,CAAC;AACJ,CAAC;AAdD,oCAcC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport \"./PopoutWidget.scss\";\nimport * as React from \"react\";\nimport {\n WidgetContentContainer,\n WidgetProvider,\n} from \"@itwin/appui-layout-react\";\n\ninterface PopoutWidgetProps {\n widgetContainerId: string;\n}\n\n/** Component used to wrap a widget for use in a child window.\n * @internal\n */\nexport function PopoutWidget({ widgetContainerId }: PopoutWidgetProps) {\n const content = React.useMemo(\n () => <WidgetContentContainer></WidgetContentContainer>,\n []\n );\n\n return (\n <div\n className=\"uifw-popout-widget-filled-container\"\n data-widget-id={widgetContainerId}\n >\n <WidgetProvider id={widgetContainerId}>{content}</WidgetProvider>\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAmBrD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,kCAAkC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,eAyCtE"}
1
+ {"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoBrD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,kCAAkC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,eA0CtE"}
@@ -25,6 +25,7 @@ const Frontstage_1 = require("../widget-panels/Frontstage");
25
25
  const ContentDialogManager_1 = require("../dialog/ContentDialogManager");
26
26
  const UiFramework_1 = require("../UiFramework");
27
27
  const InternalConfigurableUiManager_1 = require("./InternalConfigurableUiManager");
28
+ const ActivityMessage_1 = require("../messages/ActivityMessage");
28
29
  /** The ConfigurableUiContent component is the component the pages specified using ConfigurableUi
29
30
  * @public
30
31
  */
@@ -57,7 +58,8 @@ function ConfigurableUiContent(props) {
57
58
  React.createElement(InputField_1.InputFieldMessage, null),
58
59
  React.createElement(CursorMenu_1.CursorPopupMenu, null),
59
60
  React.createElement(CursorPopupManager_1.CursorPopupRenderer, null),
60
- React.createElement(PopupManager_1.PopupRenderer, null)));
61
+ React.createElement(PopupManager_1.PopupRenderer, null),
62
+ React.createElement(ActivityMessage_1.ActivityMessageRenderer, null)));
61
63
  }
62
64
  exports.ConfigurableUiContent = ConfigurableUiContent;
63
65
  //# sourceMappingURL=ConfigurableUiContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurableUiContent.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA+B;AAC/B,+BAA+B;AAE/B,kDAA0C;AAC1C,mEAAgE;AAChE,gEAAkE;AAClE,iFAA+E;AAC/E,qEAAmE;AACnE,2EAAyE;AACzE,+DAA4D;AAC5D,mFAAgF;AAChF,uDAA2D;AAC3D,iDAAqD;AACrD,wDAAsD;AACtD,4DAAqE;AACrE,yEAAuE;AACvE,gDAA6C;AAC7C,mFAAgF;AAiBhF;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAiC;IACrE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,yBAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,6DAA6B,CAAC,eAAe,CAAC,UAAU,CAAC;YACvD,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;SACvC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,6DAA6B,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAE/C,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAmB,EAAE,EAAE;QAChE,MAAM,KAAK,GAAG,IAAI,kBAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,qCAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,8BACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,6BAA6B,EAChC,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,eAAe;QAE3B,KAAK,CAAC,YAAY;QACnB,oBAAC,mCAAsB,OAAG;QAC1B,oBAAC,4CAAqB,OAAG;QACzB,oBAAC,8CAAsB,OAAG;QAC1B,oBAAC,wCAAmB,OAAG;QACvB,oBAAC,+BAAc,OAAG;QAClB,oBAAC,wBAAc,OAAG;QAClB,oBAAC,2CAAoB,OAAG;QACxB,oBAAC,8BAAiB,OAAG;QACrB,oBAAC,4BAAe,OAAG;QACnB,oBAAC,wCAAmB,OAAG;QACvB,oBAAC,4BAAa,OAAG,CACZ,CACR,CAAC;AACJ,CAAC;AAzCD,sDAyCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ConfigurableUi\n */\n\nimport \"./configurableui.scss\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Point } from \"@itwin/core-react\";\nimport { CursorInformation } from \"../cursor/CursorInformation\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { CursorPopupRenderer } from \"../cursor/cursorpopup/CursorPopupManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\nimport { KeyboardShortcutMenu } from \"../keyboardshortcut/KeyboardShortcutMenu\";\nimport { InputFieldMessage } from \"../messages/InputField\";\nimport { PointerMessage } from \"../messages/Pointer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { WidgetPanelsFrontstage } from \"../widget-panels/Frontstage\";\nimport { ContentDialogRenderer } from \"../dialog/ContentDialogManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalConfigurableUiManager } from \"./InternalConfigurableUiManager\";\n\n// cSpell:ignore cursormenu cursorpopup\n\n/** Properties for [[ConfigurableUiContent]]\n * @public\n */\nexport interface ConfigurableUiContentProps extends CommonProps {\n /** React node of the Backstage */\n appBackstage?: React.ReactNode;\n\n /** @internal */\n idleTimeout?: number;\n /** @internal */\n intervalTimeout?: number;\n}\n\n/** The ConfigurableUiContent component is the component the pages specified using ConfigurableUi\n * @public\n */\nexport function ConfigurableUiContent(props: ConfigurableUiContentProps) {\n React.useEffect(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n React.useEffect(() => {\n InternalConfigurableUiManager.activityTracker.initialize({\n idleTimeout: props.idleTimeout,\n intervalTimeout: props.intervalTimeout,\n });\n return () => {\n InternalConfigurableUiManager.activityTracker.terminate();\n };\n }, [props.idleTimeout, props.intervalTimeout]);\n\n const handleMouseMove = React.useCallback((e: React.MouseEvent) => {\n const point = new Point(e.pageX, e.pageY);\n CursorInformation.handleMouseMove(point);\n }, []);\n\n return (\n <main\n role=\"main\"\n id=\"uifw-configurableui-wrapper\"\n className={props.className}\n style={props.style}\n onMouseMove={handleMouseMove}\n >\n {props.appBackstage}\n <WidgetPanelsFrontstage />\n <ContentDialogRenderer />\n <ModelessDialogRenderer />\n <ModalDialogRenderer />\n <ElementTooltip />\n <PointerMessage />\n <KeyboardShortcutMenu />\n <InputFieldMessage />\n <CursorPopupMenu />\n <CursorPopupRenderer />\n <PopupRenderer />\n </main>\n );\n}\n"]}
1
+ {"version":3,"file":"ConfigurableUiContent.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA+B;AAC/B,+BAA+B;AAE/B,kDAA0C;AAC1C,mEAAgE;AAChE,gEAAkE;AAClE,iFAA+E;AAC/E,qEAAmE;AACnE,2EAAyE;AACzE,+DAA4D;AAC5D,mFAAgF;AAChF,uDAA2D;AAC3D,iDAAqD;AACrD,wDAAsD;AACtD,4DAAqE;AACrE,yEAAuE;AACvE,gDAA6C;AAC7C,mFAAgF;AAChF,iEAAsE;AAiBtE;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAiC;IACrE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,yBAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,6DAA6B,CAAC,eAAe,CAAC,UAAU,CAAC;YACvD,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;SACvC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,6DAA6B,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAE/C,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAmB,EAAE,EAAE;QAChE,MAAM,KAAK,GAAG,IAAI,kBAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,qCAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,8BACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,6BAA6B,EAChC,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,eAAe;QAE3B,KAAK,CAAC,YAAY;QACnB,oBAAC,mCAAsB,OAAG;QAC1B,oBAAC,4CAAqB,OAAG;QACzB,oBAAC,8CAAsB,OAAG;QAC1B,oBAAC,wCAAmB,OAAG;QACvB,oBAAC,+BAAc,OAAG;QAClB,oBAAC,wBAAc,OAAG;QAClB,oBAAC,2CAAoB,OAAG;QACxB,oBAAC,8BAAiB,OAAG;QACrB,oBAAC,4BAAe,OAAG;QACnB,oBAAC,wCAAmB,OAAG;QACvB,oBAAC,4BAAa,OAAG;QACjB,oBAAC,yCAAuB,OAAG,CACtB,CACR,CAAC;AACJ,CAAC;AA1CD,sDA0CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ConfigurableUi\n */\n\nimport \"./configurableui.scss\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Point } from \"@itwin/core-react\";\nimport { CursorInformation } from \"../cursor/CursorInformation\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { CursorPopupRenderer } from \"../cursor/cursorpopup/CursorPopupManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\nimport { KeyboardShortcutMenu } from \"../keyboardshortcut/KeyboardShortcutMenu\";\nimport { InputFieldMessage } from \"../messages/InputField\";\nimport { PointerMessage } from \"../messages/Pointer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { WidgetPanelsFrontstage } from \"../widget-panels/Frontstage\";\nimport { ContentDialogRenderer } from \"../dialog/ContentDialogManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalConfigurableUiManager } from \"./InternalConfigurableUiManager\";\nimport { ActivityMessageRenderer } from \"../messages/ActivityMessage\";\n\n// cSpell:ignore cursormenu cursorpopup\n\n/** Properties for [[ConfigurableUiContent]]\n * @public\n */\nexport interface ConfigurableUiContentProps extends CommonProps {\n /** React node of the Backstage */\n appBackstage?: React.ReactNode;\n\n /** @internal */\n idleTimeout?: number;\n /** @internal */\n intervalTimeout?: number;\n}\n\n/** The ConfigurableUiContent component is the component the pages specified using ConfigurableUi\n * @public\n */\nexport function ConfigurableUiContent(props: ConfigurableUiContentProps) {\n React.useEffect(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n React.useEffect(() => {\n InternalConfigurableUiManager.activityTracker.initialize({\n idleTimeout: props.idleTimeout,\n intervalTimeout: props.intervalTimeout,\n });\n return () => {\n InternalConfigurableUiManager.activityTracker.terminate();\n };\n }, [props.idleTimeout, props.intervalTimeout]);\n\n const handleMouseMove = React.useCallback((e: React.MouseEvent) => {\n const point = new Point(e.pageX, e.pageY);\n CursorInformation.handleMouseMove(point);\n }, []);\n\n return (\n <main\n role=\"main\"\n id=\"uifw-configurableui-wrapper\"\n className={props.className}\n style={props.style}\n onMouseMove={handleMouseMove}\n >\n {props.appBackstage}\n <WidgetPanelsFrontstage />\n <ContentDialogRenderer />\n <ModelessDialogRenderer />\n <ModalDialogRenderer />\n <ElementTooltip />\n <PointerMessage />\n <KeyboardShortcutMenu />\n <InputFieldMessage />\n <CursorPopupMenu />\n <CursorPopupRenderer />\n <PopupRenderer />\n <ActivityMessageRenderer />\n </main>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/state.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUtD;;;GAGG;AACH,oBAAY,sBAAsB;IAChC,WAAW,gCAAgC;IAC3C,QAAQ,6BAA6B;IACrC,aAAa,kCAAkC;IAC/C,gBAAgB,sCAAsC;IACtD,kBAAkB,wCAAwC;IAC1D,iBAAiB,wCAAwC;IACzD,0BAA0B,qDAAqD;IAC/E,qBAAqB,4CAA4C;IACjE,mBAAmB,6CAA6C;IAChE,0BAA0B,uDAAuD;IACjF,iBAAiB,uCAAuC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,0BAA0B,EAAE,OAAO,CAAC;IACpC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,EAAE,OAAO,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;CACxB;AAiBD;;GAEG;AACH,eAAO,MAAM,qBAAqB;4BACR,MAAM;sBAIpB,MAAM;gCAGD,MAAM;gCAIT,MAAM;0CAEoB,OAAO;wCAET,OAAO;kDAEG,OAAO;gDAKT,OAAO;kDAKL,OAAO;gEAKO,OAAO;iCAKtC,MAAM;CAEpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,YAAY,CACnD,OAAO,qBAAqB,CAC7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,iCAAoC,EACzC,MAAM,EAAE,0BAA0B,GACjC,mBAAmB,CAuCrB"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/state.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAWtD;;;GAGG;AACH,oBAAY,sBAAsB;IAChC,WAAW,gCAAgC;IAC3C,QAAQ,6BAA6B;IACrC,aAAa,kCAAkC;IAC/C,gBAAgB,sCAAsC;IACtD,kBAAkB,wCAAwC;IAC1D,iBAAiB,wCAAwC;IACzD,0BAA0B,qDAAqD;IAC/E,qBAAqB,4CAA4C;IACjE,mBAAmB,6CAA6C;IAChE,0BAA0B,uDAAuD;IACjF,iBAAiB,uCAAuC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,0BAA0B,EAAE,OAAO,CAAC;IACpC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,EAAE,OAAO,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;CACxB;AAiBD;;GAEG;AACH,eAAO,MAAM,qBAAqB;4BACR,MAAM;sBAOpB,MAAM;gCAGD,MAAM;gCAIT,MAAM;0CAEoB,OAAO;wCAET,OAAO;kDAEG,OAAO;gDAKT,OAAO;kDAKL,OAAO;gEAKO,OAAO;iCAKtC,MAAM;CAEpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,YAAY,CACnD,OAAO,qBAAqB,CAC7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,iCAAoC,EACzC,MAAM,EAAE,0BAA0B,GACjC,mBAAmB,CAuCrB"}
@@ -50,7 +50,10 @@ const initialState = {
50
50
  exports.ConfigurableUiActions = {
51
51
  setSnapMode: (snapMode) => (0, redux_ts_1.createAction)(ConfigurableUiActionId.SetSnapMode, snapMode),
52
52
  setTheme:
53
- // istanbul ignore next
53
+ /**
54
+ * Use `UiFramework.setColorTheme` instead which is conveniently typed with available theme union.
55
+ * @param theme ThemeId
56
+ */
54
57
  (theme) => (0, redux_ts_1.createAction)(ConfigurableUiActionId.SetTheme, theme),
55
58
  setToolPrompt:
56
59
  // istanbul ignore next
@@ -79,7 +82,7 @@ function ConfigurableUiReducer(state = initialState, action) {
79
82
  return { ...state, toolPrompt: action.payload };
80
83
  }
81
84
  case ConfigurableUiActionId.SetTheme: {
82
- return { ...state, theme: action.payload };
85
+ return { ...state, theme: action.payload }; // Need to cast because of the (string & {}) trick.
83
86
  }
84
87
  case ConfigurableUiActionId.SetWidgetOpacity: {
85
88
  return { ...state, widgetOpacity: action.payload };
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/state.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module State\n */\n\nimport { SnapMode } from \"@itwin/core-frontend\";\nimport type { ActionsUnion } from \"../redux/redux-ts\";\nimport { createAction } from \"../redux/redux-ts\";\nimport {\n SYSTEM_PREFERRED_COLOR_THEME,\n TOOLBAR_OPACITY_DEFAULT,\n WIDGET_OPACITY_DEFAULT,\n} from \"../theme/ThemeManager\";\n\n// cSpell:ignore configurableui snapmode toolprompt\n\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\n * Since these are also used as sync ids they should be in lowercase.\n * @public\n */\nexport enum ConfigurableUiActionId {\n SetSnapMode = \"configurableui:set_snapmode\",\n SetTheme = \"configurableui:set_theme\",\n SetToolPrompt = \"configurableui:set_toolprompt\",\n SetWidgetOpacity = \"configurableui:set_widget_opacity\",\n SetDragInteraction = \"configurableui:set-drag-interaction\",\n SetShowWidgetIcon = \"configurableui:set-show-widget-icon\",\n AutoCollapseUnpinnedPanels = \"configurableui:set-auto-collapse-unpinned-panels\",\n SetViewOverlayDisplay = \"configurableui:set-view-overlay-display\",\n AnimateToolSettings = \"configurableui:set-animate-tool-settings\",\n UseToolAsToolSettingsLabel = \"configurableui:set-use-tool-as-tool-settings-label\",\n SetToolbarOpacity = \"configurableui:set-toolbar-opacity\",\n}\n\n/** The portion of state managed by the ConfigurableUiReducer.\n * @public\n */\nexport interface ConfigurableUiState {\n snapMode: number;\n toolPrompt: string;\n theme: string;\n widgetOpacity: number;\n useDragInteraction: boolean;\n showWidgetIcon: boolean;\n autoCollapseUnpinnedPanels: boolean;\n viewOverlayDisplay: boolean;\n animateToolSettings: boolean;\n useToolAsToolSettingsLabel: boolean;\n toolbarOpacity: number;\n}\n\n/** used on first call of ConfigurableUiReducer */\nconst initialState: ConfigurableUiState = {\n snapMode: SnapMode.NearestKeypoint as number,\n toolPrompt: \"\",\n theme: SYSTEM_PREFERRED_COLOR_THEME,\n widgetOpacity: WIDGET_OPACITY_DEFAULT,\n useDragInteraction: false,\n showWidgetIcon: true,\n autoCollapseUnpinnedPanels: false,\n viewOverlayDisplay: true,\n animateToolSettings: false,\n useToolAsToolSettingsLabel: false,\n toolbarOpacity: TOOLBAR_OPACITY_DEFAULT,\n};\n\n/** An object with a function that creates each ConfigurableUiReducer that can be handled by our reducer.\n * @public\n */\nexport const ConfigurableUiActions = {\n setSnapMode: (snapMode: number) =>\n createAction(ConfigurableUiActionId.SetSnapMode, snapMode),\n setTheme:\n // istanbul ignore next\n (theme: string) => createAction(ConfigurableUiActionId.SetTheme, theme),\n setToolPrompt:\n // istanbul ignore next\n (toolPrompt: string) =>\n createAction(ConfigurableUiActionId.SetToolPrompt, toolPrompt),\n setWidgetOpacity:\n // istanbul ignore next\n (opacity: number) =>\n createAction(ConfigurableUiActionId.SetWidgetOpacity, opacity),\n setDragInteraction: (dragInteraction: boolean) =>\n createAction(ConfigurableUiActionId.SetDragInteraction, dragInteraction),\n setShowWidgetIcon: (showWidgetIcon: boolean) =>\n createAction(ConfigurableUiActionId.SetShowWidgetIcon, showWidgetIcon),\n setAutoCollapseUnpinnedPanels: (autoCollapse: boolean) =>\n createAction(\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n autoCollapse\n ),\n setViewOverlayDisplay: (displayViewOverlay: boolean) =>\n createAction(\n ConfigurableUiActionId.SetViewOverlayDisplay,\n displayViewOverlay\n ),\n setAnimateToolSettings: (animateToolSettings: boolean) =>\n createAction(\n ConfigurableUiActionId.AnimateToolSettings,\n animateToolSettings\n ),\n setUseToolAsToolSettingsLabel: (useToolAsToolSettingsLabel: boolean) =>\n createAction(\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n useToolAsToolSettingsLabel\n ),\n setToolbarOpacity: (opacity: number) =>\n createAction(ConfigurableUiActionId.SetToolbarOpacity, opacity),\n};\n\n/** Union of ConfigurableUi Redux actions\n * @public\n */\nexport type ConfigurableUiActionsUnion = ActionsUnion<\n typeof ConfigurableUiActions\n>;\n\n/** Handles actions to update ConfigurableUiState.\n * @public\n */\nexport function ConfigurableUiReducer(\n state: ConfigurableUiState = initialState,\n action: ConfigurableUiActionsUnion\n): ConfigurableUiState {\n const outState = state;\n\n switch (action.type) {\n case ConfigurableUiActionId.SetSnapMode: {\n return { ...state, snapMode: action.payload };\n }\n case ConfigurableUiActionId.SetToolPrompt: {\n return { ...state, toolPrompt: action.payload };\n }\n case ConfigurableUiActionId.SetTheme: {\n return { ...state, theme: action.payload };\n }\n case ConfigurableUiActionId.SetWidgetOpacity: {\n return { ...state, widgetOpacity: action.payload };\n }\n case ConfigurableUiActionId.SetDragInteraction: {\n return { ...state, useDragInteraction: action.payload };\n }\n case ConfigurableUiActionId.SetShowWidgetIcon: {\n return { ...state, showWidgetIcon: action.payload };\n }\n case ConfigurableUiActionId.AutoCollapseUnpinnedPanels: {\n return { ...state, autoCollapseUnpinnedPanels: action.payload };\n }\n case ConfigurableUiActionId.SetViewOverlayDisplay: {\n return { ...state, viewOverlayDisplay: action.payload };\n }\n case ConfigurableUiActionId.AnimateToolSettings: {\n return { ...state, animateToolSettings: action.payload };\n }\n case ConfigurableUiActionId.UseToolAsToolSettingsLabel: {\n return { ...state, useToolAsToolSettingsLabel: action.payload };\n }\n case ConfigurableUiActionId.SetToolbarOpacity: {\n return { ...state, toolbarOpacity: action.payload };\n }\n }\n return outState;\n}\n"]}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/state.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module State\n */\n\nimport { SnapMode } from \"@itwin/core-frontend\";\nimport type { ActionsUnion } from \"../redux/redux-ts\";\nimport { createAction } from \"../redux/redux-ts\";\nimport type { ThemeId } from \"../theme/ThemeManager\";\nimport {\n SYSTEM_PREFERRED_COLOR_THEME,\n TOOLBAR_OPACITY_DEFAULT,\n WIDGET_OPACITY_DEFAULT,\n} from \"../theme/ThemeManager\";\n\n// cSpell:ignore configurableui snapmode toolprompt\n\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\n * Since these are also used as sync ids they should be in lowercase.\n * @public\n */\nexport enum ConfigurableUiActionId {\n SetSnapMode = \"configurableui:set_snapmode\",\n SetTheme = \"configurableui:set_theme\",\n SetToolPrompt = \"configurableui:set_toolprompt\",\n SetWidgetOpacity = \"configurableui:set_widget_opacity\",\n SetDragInteraction = \"configurableui:set-drag-interaction\",\n SetShowWidgetIcon = \"configurableui:set-show-widget-icon\",\n AutoCollapseUnpinnedPanels = \"configurableui:set-auto-collapse-unpinned-panels\",\n SetViewOverlayDisplay = \"configurableui:set-view-overlay-display\",\n AnimateToolSettings = \"configurableui:set-animate-tool-settings\",\n UseToolAsToolSettingsLabel = \"configurableui:set-use-tool-as-tool-settings-label\",\n SetToolbarOpacity = \"configurableui:set-toolbar-opacity\",\n}\n\n/** The portion of state managed by the ConfigurableUiReducer.\n * @public\n */\nexport interface ConfigurableUiState {\n snapMode: number;\n toolPrompt: string;\n theme: string;\n widgetOpacity: number;\n useDragInteraction: boolean;\n showWidgetIcon: boolean;\n autoCollapseUnpinnedPanels: boolean;\n viewOverlayDisplay: boolean;\n animateToolSettings: boolean;\n useToolAsToolSettingsLabel: boolean;\n toolbarOpacity: number;\n}\n\n/** used on first call of ConfigurableUiReducer */\nconst initialState: ConfigurableUiState = {\n snapMode: SnapMode.NearestKeypoint as number,\n toolPrompt: \"\",\n theme: SYSTEM_PREFERRED_COLOR_THEME,\n widgetOpacity: WIDGET_OPACITY_DEFAULT,\n useDragInteraction: false,\n showWidgetIcon: true,\n autoCollapseUnpinnedPanels: false,\n viewOverlayDisplay: true,\n animateToolSettings: false,\n useToolAsToolSettingsLabel: false,\n toolbarOpacity: TOOLBAR_OPACITY_DEFAULT,\n};\n\n/** An object with a function that creates each ConfigurableUiReducer that can be handled by our reducer.\n * @public\n */\nexport const ConfigurableUiActions = {\n setSnapMode: (snapMode: number) =>\n createAction(ConfigurableUiActionId.SetSnapMode, snapMode),\n setTheme:\n /**\n * Use `UiFramework.setColorTheme` instead which is conveniently typed with available theme union.\n * @param theme ThemeId\n */\n (theme: string) => createAction(ConfigurableUiActionId.SetTheme, theme),\n setToolPrompt:\n // istanbul ignore next\n (toolPrompt: string) =>\n createAction(ConfigurableUiActionId.SetToolPrompt, toolPrompt),\n setWidgetOpacity:\n // istanbul ignore next\n (opacity: number) =>\n createAction(ConfigurableUiActionId.SetWidgetOpacity, opacity),\n setDragInteraction: (dragInteraction: boolean) =>\n createAction(ConfigurableUiActionId.SetDragInteraction, dragInteraction),\n setShowWidgetIcon: (showWidgetIcon: boolean) =>\n createAction(ConfigurableUiActionId.SetShowWidgetIcon, showWidgetIcon),\n setAutoCollapseUnpinnedPanels: (autoCollapse: boolean) =>\n createAction(\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n autoCollapse\n ),\n setViewOverlayDisplay: (displayViewOverlay: boolean) =>\n createAction(\n ConfigurableUiActionId.SetViewOverlayDisplay,\n displayViewOverlay\n ),\n setAnimateToolSettings: (animateToolSettings: boolean) =>\n createAction(\n ConfigurableUiActionId.AnimateToolSettings,\n animateToolSettings\n ),\n setUseToolAsToolSettingsLabel: (useToolAsToolSettingsLabel: boolean) =>\n createAction(\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n useToolAsToolSettingsLabel\n ),\n setToolbarOpacity: (opacity: number) =>\n createAction(ConfigurableUiActionId.SetToolbarOpacity, opacity),\n};\n\n/** Union of ConfigurableUi Redux actions\n * @public\n */\nexport type ConfigurableUiActionsUnion = ActionsUnion<\n typeof ConfigurableUiActions\n>;\n\n/** Handles actions to update ConfigurableUiState.\n * @public\n */\nexport function ConfigurableUiReducer(\n state: ConfigurableUiState = initialState,\n action: ConfigurableUiActionsUnion\n): ConfigurableUiState {\n const outState = state;\n\n switch (action.type) {\n case ConfigurableUiActionId.SetSnapMode: {\n return { ...state, snapMode: action.payload };\n }\n case ConfigurableUiActionId.SetToolPrompt: {\n return { ...state, toolPrompt: action.payload };\n }\n case ConfigurableUiActionId.SetTheme: {\n return { ...state, theme: action.payload as ThemeId }; // Need to cast because of the (string & {}) trick.\n }\n case ConfigurableUiActionId.SetWidgetOpacity: {\n return { ...state, widgetOpacity: action.payload };\n }\n case ConfigurableUiActionId.SetDragInteraction: {\n return { ...state, useDragInteraction: action.payload };\n }\n case ConfigurableUiActionId.SetShowWidgetIcon: {\n return { ...state, showWidgetIcon: action.payload };\n }\n case ConfigurableUiActionId.AutoCollapseUnpinnedPanels: {\n return { ...state, autoCollapseUnpinnedPanels: action.payload };\n }\n case ConfigurableUiActionId.SetViewOverlayDisplay: {\n return { ...state, viewOverlayDisplay: action.payload };\n }\n case ConfigurableUiActionId.AnimateToolSettings: {\n return { ...state, animateToolSettings: action.payload };\n }\n case ConfigurableUiActionId.UseToolAsToolSettingsLabel: {\n return { ...state, useToolAsToolSettingsLabel: action.payload };\n }\n case ConfigurableUiActionId.SetToolbarOpacity: {\n return { ...state, toolbarOpacity: action.payload };\n }\n }\n return outState;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingViewportContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/FloatingViewportContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAOpE;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,wFAAwF;IACxF,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC;IACjD,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,iIAAiI;IACjI,gBAAgB,EAAE,aAAa,CAAC;IAChC,wDAAwD;IACxD,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACzC;AAED,YAAY;AACZ,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,eAO1E;AAED,aAAa;AACb,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACrC;AAED,aAAa;AACb,wBAAgB,8BAA8B,CAAC,EAC7C,QAAQ,GACT,EAAE,mCAAmC,eAarC;AAED,aAAa;AACb,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,4BAA4B;;EAyErE"}
1
+ {"version":3,"file":"FloatingViewportContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/FloatingViewportContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAOpE;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,wFAAwF;IACxF,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC;IACjD,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,iIAAiI;IACjI,gBAAgB,EAAE,aAAa,CAAC;IAChC,wDAAwD;IACxD,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACzC;AAED,YAAY;AACZ,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,eAO1E;AAED,aAAa;AACb,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACrC;AAED,aAAa;AACb,wBAAgB,8BAA8B,CAAC,EAC7C,QAAQ,GACT,EAAE,mCAAmC,eAarC;AAED,aAAa;AACb,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,4BAA4B;;EAwErE"}
@@ -61,9 +61,8 @@ function useFloatingViewport(args) {
61
61
  if (null === contentControl.current.reactNode) {
62
62
  contentControl.current.reactNode = viewportControl;
63
63
  }
64
- void contentControl.current.viewport.changeView(viewState);
65
64
  }
66
- }, [viewState, viewport, viewportControl]);
65
+ }, [viewport, viewportControl]);
67
66
  React.useEffect(() => {
68
67
  const onViewClose = (vp) => {
69
68
  if (contentControl.current?.viewport === vp) {
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingViewportContent.js","sourceRoot":"","sources":["../../../../src/appui-react/content/FloatingViewportContent.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport * as React from \"react\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { ViewStateProp } from \"@itwin/imodel-components-react\";\nimport { ViewportComponent } from \"@itwin/imodel-components-react\";\nimport { FloatingViewportContentControl } from \"./ViewportContentControl\";\nimport { ContentWrapper } from \"./ContentLayout\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useRefs } from \"@itwin/core-react\";\n\n/**\n * @beta\n */\nexport interface FloatingViewportContentProps {\n /** callback used to construct context menu when user right-clicks on canvas/viewport */\n onContextMenu?: (e: React.MouseEvent) => boolean;\n /** viewport/content control uniqueId */\n contentId: string;\n /** The initial view state used to create the viewport, or a function that returns it (will refresh when the function changes) */\n initialViewState: ViewStateProp;\n /** Function to get a reference to the ScreenViewport */\n viewportRef?: React.Ref<ScreenViewport>;\n}\n\n/** @beta */\nexport function FloatingViewportContent(props: FloatingViewportContentProps) {\n const { viewportControl } = useFloatingViewport(props);\n return (\n <FloatingViewportContentWrapper>\n {viewportControl}\n </FloatingViewportContentWrapper>\n );\n}\n\n/** @alpha */\nexport interface FloatingViewportContentWrapperProps {\n readonly children?: React.ReactNode;\n}\n\n/** @alpha */\nexport function FloatingViewportContentWrapper({\n children,\n}: FloatingViewportContentWrapperProps) {\n return (\n <div\n onMouseMove={UiFramework.visibility.handleContentMouseMove}\n className=\"uifw-dialog-imodel-content\"\n style={{ height: \"100%\", position: \"relative\" }}\n >\n <ContentWrapper\n content={children}\n style={{ height: \"100%\", position: \"relative\" }}\n />\n </div>\n );\n}\n\n/** @alpha */\nexport function useFloatingViewport(args: FloatingViewportContentProps) {\n const { contentId, initialViewState, onContextMenu, viewportRef } = args;\n const [viewport, setViewport] = React.useState<ScreenViewport | undefined>();\n const contentControl = React.useRef<\n FloatingViewportContentControl | undefined\n >();\n\n const viewState = React.useMemo(\n () =>\n typeof initialViewState === \"function\"\n ? initialViewState()\n : initialViewState,\n [initialViewState]\n );\n const ref = React.useCallback((v: ScreenViewport) => {\n setViewport(v);\n }, []);\n\n const refs = useRefs(ref, viewportRef);\n const viewportControl = React.useMemo(() => {\n const node = (\n <ViewportComponent\n key={contentId}\n imodel={viewState.iModel}\n viewState={viewState}\n controlId={contentId}\n onContextMenu={onContextMenu}\n viewportRef={refs}\n />\n );\n return node;\n }, [refs, onContextMenu, viewState, contentId]);\n\n React.useEffect(() => {\n if (!contentControl.current) {\n contentControl.current = new FloatingViewportContentControl(\n contentId,\n contentId,\n null\n );\n UiFramework.content.addFloatingContentControl(contentControl.current);\n }\n return () => {\n if (contentControl.current) {\n UiFramework.content.dropFloatingContentControl(contentControl.current);\n contentControl.current = undefined;\n }\n };\n }, [contentId]);\n\n React.useEffect(() => {\n if (viewport && contentControl.current) {\n contentControl.current.viewport = viewport;\n if (null === contentControl.current.reactNode) {\n contentControl.current.reactNode = viewportControl;\n }\n void contentControl.current.viewport.changeView(viewState);\n }\n }, [viewState, viewport, viewportControl]);\n\n React.useEffect(() => {\n const onViewClose = (vp: ScreenViewport) => {\n if (contentControl.current?.viewport === vp) {\n UiFramework.content.dropFloatingContentControl(contentControl.current);\n contentControl.current = undefined;\n }\n };\n return IModelApp.viewManager.onViewClose.addListener(onViewClose);\n }, []);\n\n return {\n viewportControl,\n };\n}\n"]}
1
+ {"version":3,"file":"FloatingViewportContent.js","sourceRoot":"","sources":["../../../../src/appui-react/content/FloatingViewportContent.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ContentView\n */\n\nimport * as React from \"react\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { ViewStateProp } from \"@itwin/imodel-components-react\";\nimport { ViewportComponent } from \"@itwin/imodel-components-react\";\nimport { FloatingViewportContentControl } from \"./ViewportContentControl\";\nimport { ContentWrapper } from \"./ContentLayout\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useRefs } from \"@itwin/core-react\";\n\n/**\n * @beta\n */\nexport interface FloatingViewportContentProps {\n /** callback used to construct context menu when user right-clicks on canvas/viewport */\n onContextMenu?: (e: React.MouseEvent) => boolean;\n /** viewport/content control uniqueId */\n contentId: string;\n /** The initial view state used to create the viewport, or a function that returns it (will refresh when the function changes) */\n initialViewState: ViewStateProp;\n /** Function to get a reference to the ScreenViewport */\n viewportRef?: React.Ref<ScreenViewport>;\n}\n\n/** @beta */\nexport function FloatingViewportContent(props: FloatingViewportContentProps) {\n const { viewportControl } = useFloatingViewport(props);\n return (\n <FloatingViewportContentWrapper>\n {viewportControl}\n </FloatingViewportContentWrapper>\n );\n}\n\n/** @alpha */\nexport interface FloatingViewportContentWrapperProps {\n readonly children?: React.ReactNode;\n}\n\n/** @alpha */\nexport function FloatingViewportContentWrapper({\n children,\n}: FloatingViewportContentWrapperProps) {\n return (\n <div\n onMouseMove={UiFramework.visibility.handleContentMouseMove}\n className=\"uifw-dialog-imodel-content\"\n style={{ height: \"100%\", position: \"relative\" }}\n >\n <ContentWrapper\n content={children}\n style={{ height: \"100%\", position: \"relative\" }}\n />\n </div>\n );\n}\n\n/** @alpha */\nexport function useFloatingViewport(args: FloatingViewportContentProps) {\n const { contentId, initialViewState, onContextMenu, viewportRef } = args;\n const [viewport, setViewport] = React.useState<ScreenViewport | undefined>();\n const contentControl = React.useRef<\n FloatingViewportContentControl | undefined\n >();\n\n const viewState = React.useMemo(\n () =>\n typeof initialViewState === \"function\"\n ? initialViewState()\n : initialViewState,\n [initialViewState]\n );\n const ref = React.useCallback((v: ScreenViewport) => {\n setViewport(v);\n }, []);\n\n const refs = useRefs(ref, viewportRef);\n const viewportControl = React.useMemo(() => {\n const node = (\n <ViewportComponent\n key={contentId}\n imodel={viewState.iModel}\n viewState={viewState}\n controlId={contentId}\n onContextMenu={onContextMenu}\n viewportRef={refs}\n />\n );\n return node;\n }, [refs, onContextMenu, viewState, contentId]);\n\n React.useEffect(() => {\n if (!contentControl.current) {\n contentControl.current = new FloatingViewportContentControl(\n contentId,\n contentId,\n null\n );\n UiFramework.content.addFloatingContentControl(contentControl.current);\n }\n return () => {\n if (contentControl.current) {\n UiFramework.content.dropFloatingContentControl(contentControl.current);\n contentControl.current = undefined;\n }\n };\n }, [contentId]);\n\n React.useEffect(() => {\n if (viewport && contentControl.current) {\n contentControl.current.viewport = viewport;\n if (null === contentControl.current.reactNode) {\n contentControl.current.reactNode = viewportControl;\n }\n }\n }, [viewport, viewportControl]);\n\n React.useEffect(() => {\n const onViewClose = (vp: ScreenViewport) => {\n if (contentControl.current?.viewport === vp) {\n UiFramework.content.dropFloatingContentControl(contentControl.current);\n contentControl.current = undefined;\n }\n };\n return IModelApp.viewManager.onViewClose.addListener(onViewClose);\n }, []);\n\n return {\n viewportControl,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IModelViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/IModelViewport.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IModelViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/IModelViewport.tsx"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ class IModelViewportControl extends ViewportContentControl_1.ViewportContentCont
47
47
  return "UiFramework.IModelViewportControl";
48
48
  }
49
49
  constructor(info, _options) {
50
+ _options = _options ?? {};
50
51
  super(info, _options);
51
52
  this._options = _options;
52
53
  this._featureOptions = {};
@@ -72,6 +73,7 @@ class IModelViewportControl extends ViewportContentControl_1.ViewportContentCont
72
73
  this._getViewOverlay = (vp) => {
73
74
  return (React.createElement(ViewOverlayHost, { viewport: vp, featureOptions: this._featureOptions, userSuppliedOverlay: this._userSuppliedViewOverlay, "data-testid": "ViewOverlay" }));
74
75
  };
76
+ this._options = _options;
75
77
  if (_options.featureOptions)
76
78
  this._featureOptions = _options.featureOptions;
77
79
  this._alwaysUseSuppliedViewState =