@itwin/appui-react 4.9.0 → 4.10.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 (807) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/appui-react/UiFramework.js +4 -7
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
  5. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +2 -2
  10. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  11. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +2 -0
  12. package/lib/cjs/appui-react/accudraw/Calculator.js +9 -9
  13. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/SquareButton.d.ts +3 -1
  15. package/lib/cjs/appui-react/accudraw/SquareButton.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/SquareButton.js +1 -4
  17. package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
  18. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
  19. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  20. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +2 -2
  21. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  22. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
  23. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +19 -15
  25. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  26. package/lib/cjs/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
  27. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  28. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  29. package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
  30. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  31. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/content/ContentGroup.js +2 -2
  33. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  34. package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
  35. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  36. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
  37. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  38. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  39. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  40. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/content/IModelViewport.js +6 -9
  42. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  43. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
  44. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  45. package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
  46. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  47. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
  48. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  49. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  50. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  51. package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
  52. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  53. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
  54. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  55. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/feedback/ElementTooltip.js +2 -3
  57. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  58. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +2 -2
  59. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  60. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +10 -14
  61. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  62. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
  63. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +2 -3
  65. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  66. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +1 -1
  67. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
  68. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  69. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  70. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  71. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  72. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  73. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +1 -1
  74. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  75. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  76. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  77. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
  78. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  79. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  80. package/lib/cjs/appui-react/{layout/widget-panels/CenterContent.scss → layers.scss} +6 -2
  81. package/lib/cjs/appui-react/layout/StandardLayout.d.ts +24 -0
  82. package/lib/cjs/appui-react/layout/StandardLayout.d.ts.map +1 -0
  83. package/lib/cjs/appui-react/layout/StandardLayout.js +56 -0
  84. package/lib/cjs/appui-react/layout/StandardLayout.js.map +1 -0
  85. package/lib/cjs/appui-react/layout/StandardLayout.scss +94 -0
  86. package/lib/cjs/appui-react/layout/backstage/Backstage.js +1 -1
  87. package/lib/cjs/appui-react/layout/backstage/Backstage.js.map +1 -1
  88. package/lib/cjs/appui-react/layout/base/DragManager.js +1 -2
  89. package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
  90. package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
  91. package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
  92. package/lib/cjs/appui-react/layout/base/SafeAreaInsets.js +4 -4
  93. package/lib/cjs/appui-react/layout/base/SafeAreaInsets.js.map +1 -1
  94. package/lib/cjs/appui-react/layout/outline/PanelOutline.scss +1 -10
  95. package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
  96. package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
  97. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
  98. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  99. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +12 -14
  100. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  101. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
  102. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  103. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.d.ts.map +1 -1
  104. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js +1 -0
  105. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  106. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +7 -3
  108. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  109. package/lib/cjs/appui-react/layout/state/internal/ToolSettingsStateHelpers.d.ts.map +1 -1
  110. package/lib/cjs/appui-react/layout/state/internal/ToolSettingsStateHelpers.js +6 -0
  111. package/lib/cjs/appui-react/layout/state/internal/ToolSettingsStateHelpers.js.map +1 -1
  112. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.d.ts.map +1 -1
  113. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +6 -4
  114. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  115. package/lib/cjs/appui-react/layout/target/PanelTargets.scss +2 -0
  116. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
  117. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  118. package/lib/cjs/appui-react/layout/tool-settings/Docked.d.ts +12 -6
  119. package/lib/cjs/appui-react/layout/tool-settings/Docked.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/layout/tool-settings/Docked.js +52 -21
  121. package/lib/cjs/appui-react/layout/tool-settings/Docked.js.map +1 -1
  122. package/lib/cjs/appui-react/layout/tool-settings/Docked.scss +15 -23
  123. package/lib/cjs/appui-react/layout/tool-settings/Handle.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/layout/tool-settings/Handle.js +3 -1
  125. package/lib/cjs/appui-react/layout/tool-settings/Handle.js.map +1 -1
  126. package/lib/cjs/appui-react/layout/tool-settings/Handle.scss +6 -12
  127. package/lib/cjs/appui-react/layout/tool-settings/Overflow.d.ts.map +1 -1
  128. package/lib/cjs/appui-react/layout/tool-settings/Overflow.js +4 -5
  129. package/lib/cjs/appui-react/layout/tool-settings/Overflow.js.map +1 -1
  130. package/lib/cjs/appui-react/layout/tool-settings/Overflow.scss +0 -15
  131. package/lib/cjs/appui-react/layout/tool-settings/Setting.scss +1 -12
  132. package/lib/cjs/appui-react/layout/widget/Button.d.ts +2 -9
  133. package/lib/cjs/appui-react/layout/widget/Button.d.ts.map +1 -1
  134. package/lib/cjs/appui-react/layout/widget/Button.js.map +1 -1
  135. package/lib/cjs/appui-react/layout/widget/Buttons.d.ts +4 -4
  136. package/lib/cjs/appui-react/layout/widget/Buttons.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/layout/widget/Buttons.js +8 -31
  138. package/lib/cjs/appui-react/layout/widget/Buttons.js.map +1 -1
  139. package/lib/cjs/appui-react/layout/widget/ContentContainer.d.ts.map +1 -1
  140. package/lib/cjs/appui-react/layout/widget/ContentContainer.js +2 -0
  141. package/lib/cjs/appui-react/layout/widget/ContentContainer.js.map +1 -1
  142. package/lib/cjs/appui-react/layout/widget/ContentManager.d.ts +1 -1
  143. package/lib/cjs/appui-react/layout/widget/ContentManager.d.ts.map +1 -1
  144. package/lib/cjs/appui-react/layout/widget/ContentManager.js +1 -1
  145. package/lib/cjs/appui-react/layout/widget/ContentManager.js.map +1 -1
  146. package/lib/cjs/appui-react/layout/widget/ContentRenderer.d.ts.map +1 -1
  147. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +8 -2
  148. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  149. package/lib/cjs/appui-react/layout/widget/Dock.d.ts +2 -0
  150. package/lib/cjs/appui-react/layout/widget/Dock.d.ts.map +1 -1
  151. package/lib/cjs/appui-react/layout/widget/Dock.js +10 -1
  152. package/lib/cjs/appui-react/layout/widget/Dock.js.map +1 -1
  153. package/lib/cjs/appui-react/layout/widget/FloatingTab.js +5 -6
  154. package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
  155. package/lib/cjs/appui-react/layout/widget/FloatingWidget.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +17 -21
  157. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  158. package/lib/cjs/appui-react/layout/widget/FloatingWidget.scss +92 -105
  159. package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
  160. package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
  161. package/lib/cjs/appui-react/layout/widget/PinToggle.d.ts +2 -0
  162. package/lib/cjs/appui-react/layout/widget/PinToggle.d.ts.map +1 -1
  163. package/lib/cjs/appui-react/layout/widget/PinToggle.js +10 -1
  164. package/lib/cjs/appui-react/layout/widget/PinToggle.js.map +1 -1
  165. package/lib/cjs/appui-react/layout/widget/SendBack.d.ts.map +1 -1
  166. package/lib/cjs/appui-react/layout/widget/SendBack.js +4 -5
  167. package/lib/cjs/appui-react/layout/widget/SendBack.js.map +1 -1
  168. package/lib/cjs/appui-react/layout/widget/Tab.d.ts.map +1 -1
  169. package/lib/cjs/appui-react/layout/widget/Tab.js +9 -14
  170. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  171. package/lib/cjs/appui-react/layout/widget/TabBar.d.ts.map +1 -1
  172. package/lib/cjs/appui-react/layout/widget/TabBar.js +4 -1
  173. package/lib/cjs/appui-react/layout/widget/TabBar.js.map +1 -1
  174. package/lib/cjs/appui-react/layout/widget/TabBar.scss +17 -19
  175. package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
  176. package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
  177. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  178. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  179. package/lib/cjs/appui-react/layout/widget/usePanelWidgetId.d.ts +8 -0
  180. package/lib/cjs/appui-react/layout/widget/usePanelWidgetId.d.ts.map +1 -0
  181. package/lib/cjs/appui-react/layout/widget/usePanelWidgetId.js +39 -0
  182. package/lib/cjs/appui-react/layout/widget/usePanelWidgetId.js.map +1 -0
  183. package/lib/cjs/appui-react/layout/widget-panels/Grip.d.ts +1 -1
  184. package/lib/cjs/appui-react/layout/widget-panels/Grip.d.ts.map +1 -1
  185. package/lib/cjs/appui-react/layout/widget-panels/Grip.js +4 -0
  186. package/lib/cjs/appui-react/layout/widget-panels/Grip.js.map +1 -1
  187. package/lib/cjs/appui-react/layout/widget-panels/Grip.scss +106 -104
  188. package/lib/cjs/appui-react/layout/widget-panels/Panel.d.ts +1 -1
  189. package/lib/cjs/appui-react/layout/widget-panels/Panel.d.ts.map +1 -1
  190. package/lib/cjs/appui-react/layout/widget-panels/Panel.js +10 -16
  191. package/lib/cjs/appui-react/layout/widget-panels/Panel.js.map +1 -1
  192. package/lib/cjs/appui-react/layout/widget-panels/Panel.scss +175 -243
  193. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.d.ts +1 -0
  194. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.d.ts.map +1 -1
  195. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +39 -38
  196. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  197. package/lib/cjs/appui-react/layout/widget-panels/{Panels.scss → PanelSections.scss} +1 -11
  198. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
  199. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  200. package/lib/cjs/appui-react/layout/widget-panels/usePanelsAutoCollapse.d.ts +7 -0
  201. package/lib/cjs/appui-react/layout/widget-panels/usePanelsAutoCollapse.d.ts.map +1 -0
  202. package/lib/cjs/appui-react/layout/widget-panels/{AppContent.js → usePanelsAutoCollapse.js} +3 -26
  203. package/lib/cjs/appui-react/layout/widget-panels/usePanelsAutoCollapse.js.map +1 -0
  204. package/lib/cjs/appui-react/messages/InputField.d.ts.map +1 -1
  205. package/lib/cjs/appui-react/messages/InputField.js +2 -3
  206. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  207. package/lib/cjs/appui-react/messages/MessageLabel.js +2 -2
  208. package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
  209. package/lib/cjs/appui-react/messages/MessageManager.d.ts +15 -5
  210. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  211. package/lib/cjs/appui-react/messages/MessageManager.js +22 -41
  212. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  213. package/lib/cjs/appui-react/messages/MessageRenderer.d.ts +8 -0
  214. package/lib/cjs/appui-react/messages/MessageRenderer.d.ts.map +1 -0
  215. package/lib/cjs/appui-react/messages/MessageRenderer.js +136 -0
  216. package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -0
  217. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  218. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  219. package/lib/cjs/appui-react/messages/Pointer.js +5 -6
  220. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  221. package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
  222. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -1
  223. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  224. package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
  225. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  226. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  227. package/lib/cjs/appui-react/popup/CardPopup.js +2 -3
  228. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  229. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  230. package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -2
  231. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  232. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  233. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +7 -6
  234. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  235. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +1 -1
  236. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  237. package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
  238. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  239. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +1 -1
  240. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  241. package/lib/cjs/appui-react/popup/ToolbarPopup.js +1 -1
  242. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  243. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +6 -1
  244. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  245. package/lib/cjs/appui-react/preview/PreviewFeatures.js +2 -1
  246. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  247. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizeToggle.d.ts +9 -0
  248. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizeToggle.d.ts.map +1 -0
  249. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizeToggle.js +51 -0
  250. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizeToggle.js.map +1 -0
  251. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts +18 -0
  252. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts.map +1 -0
  253. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizedWidget.js +27 -0
  254. package/lib/cjs/appui-react/preview/enable-maximized-widget/MaximizedWidget.js.map +1 -0
  255. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +50 -0
  256. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -0
  257. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +115 -0
  258. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -0
  259. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +36 -0
  260. package/lib/{esm/appui-react/layout/widget → cjs/appui-react/preview/horizontal-panel-alignment}/PreviewHorizontalPanelAlign.d.ts +4 -6
  261. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts.map +1 -0
  262. package/lib/cjs/appui-react/{layout/widget → preview/horizontal-panel-alignment}/PreviewHorizontalPanelAlign.js +18 -22
  263. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -0
  264. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.d.ts +19 -0
  265. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.d.ts.map +1 -0
  266. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +30 -0
  267. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -0
  268. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +49 -0
  269. package/lib/cjs/appui-react/preview/widget-action-dropdown/Button.d.ts +1 -1
  270. package/lib/cjs/appui-react/preview/widget-action-dropdown/Button.js +1 -1
  271. package/lib/cjs/appui-react/preview/widget-action-dropdown/Button.js.map +1 -1
  272. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.d.ts +3 -2
  273. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  274. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +10 -10
  275. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  276. package/lib/cjs/appui-react/redux/SessionState.d.ts +2 -2
  277. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  278. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  279. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  280. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  281. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  282. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  283. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
  284. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +11 -16
  285. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  286. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  287. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  288. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  289. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  290. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -1
  291. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  292. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  293. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  294. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +1 -0
  295. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  296. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +1 -1
  297. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  298. package/lib/cjs/appui-react/statusfields/MessageCenter.js +5 -4
  299. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  300. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +1 -3
  301. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  302. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  303. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  304. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
  305. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  306. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
  307. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  308. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
  309. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  310. package/lib/cjs/appui-react/theme/ThemeManager.js +3 -1
  311. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  312. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +6 -4
  313. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  314. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  315. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  316. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  317. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +18 -25
  318. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  319. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  320. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +2 -1
  321. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  322. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  323. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  324. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
  325. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  326. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +3 -3
  327. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  328. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  329. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  330. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  331. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  332. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  333. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  334. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  335. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  336. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  337. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  338. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +0 -7
  339. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
  340. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  341. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +19 -16
  342. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  343. package/lib/cjs/appui-react/utils/matchesWords.js +4 -4
  344. package/lib/cjs/appui-react/utils/matchesWords.js.map +1 -1
  345. package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
  346. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  347. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  348. package/lib/cjs/appui-react/widget-panels/Frontstage.js +23 -30
  349. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  350. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +0 -23
  351. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  352. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  353. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  354. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  355. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -23
  356. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  357. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +1 -7
  358. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  359. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  360. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  361. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  362. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
  363. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  364. package/lib/cjs/appui-react/widgets/WidgetDef.js +4 -5
  365. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  366. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  367. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  368. package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
  369. package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
  370. package/lib/cjs/appui-react.d.ts +1 -0
  371. package/lib/cjs/appui-react.d.ts.map +1 -1
  372. package/lib/cjs/appui-react.js +1 -0
  373. package/lib/cjs/appui-react.js.map +1 -1
  374. package/lib/esm/appui-react/UiFramework.js +4 -7
  375. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  376. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +4 -2
  377. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  378. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +17 -29
  379. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  380. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +10 -17
  381. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +2 -2
  382. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  383. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +2 -0
  384. package/lib/esm/appui-react/accudraw/Calculator.js +9 -9
  385. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  386. package/lib/esm/appui-react/accudraw/SquareButton.d.ts +3 -1
  387. package/lib/esm/appui-react/accudraw/SquareButton.d.ts.map +1 -1
  388. package/lib/esm/appui-react/accudraw/SquareButton.js +1 -4
  389. package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
  390. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  391. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  392. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +2 -2
  393. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  394. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
  395. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  396. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +19 -15
  397. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  398. package/lib/esm/appui-react/configurableui/{configurableui.scss → ConfigurableUiContent.scss} +14 -0
  399. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  400. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  401. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  402. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  403. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  404. package/lib/esm/appui-react/content/ContentGroup.js +2 -2
  405. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  406. package/lib/esm/appui-react/content/ContentLayout.js +9 -12
  407. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  408. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  409. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  410. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  411. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  412. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  413. package/lib/esm/appui-react/content/IModelViewport.js +6 -9
  414. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  415. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  416. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  417. package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
  418. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  419. package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
  420. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  421. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  422. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  423. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  424. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  425. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  426. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  427. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  428. package/lib/esm/appui-react/feedback/ElementTooltip.js +3 -4
  429. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  430. package/lib/esm/appui-react/feedback/ValidationTextbox.js +2 -2
  431. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  432. package/lib/esm/appui-react/frontstage/FrontstageDef.js +10 -14
  433. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  434. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +2 -4
  435. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  436. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +2 -3
  437. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  438. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +1 -1
  439. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  440. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  441. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  442. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  443. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  444. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  445. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +1 -1
  446. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  447. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  448. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  449. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  450. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  451. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  452. package/lib/esm/appui-react/{layout/widget-panels/CenterContent.scss → layers.scss} +6 -2
  453. package/lib/esm/appui-react/layout/StandardLayout.d.ts +24 -0
  454. package/lib/esm/appui-react/layout/StandardLayout.d.ts.map +1 -0
  455. package/lib/esm/appui-react/layout/StandardLayout.js +52 -0
  456. package/lib/esm/appui-react/layout/StandardLayout.js.map +1 -0
  457. package/lib/esm/appui-react/layout/StandardLayout.scss +94 -0
  458. package/lib/esm/appui-react/layout/backstage/Backstage.js +1 -1
  459. package/lib/esm/appui-react/layout/backstage/Backstage.js.map +1 -1
  460. package/lib/esm/appui-react/layout/base/DragManager.js +1 -2
  461. package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
  462. package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
  463. package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
  464. package/lib/esm/appui-react/layout/base/SafeAreaInsets.js +4 -4
  465. package/lib/esm/appui-react/layout/base/SafeAreaInsets.js.map +1 -1
  466. package/lib/esm/appui-react/layout/outline/PanelOutline.scss +1 -10
  467. package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
  468. package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
  469. package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
  470. package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  471. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +12 -14
  472. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  473. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +1 -2
  474. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  475. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.d.ts.map +1 -1
  476. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js +1 -0
  477. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  478. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.d.ts.map +1 -1
  479. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +7 -3
  480. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  481. package/lib/esm/appui-react/layout/state/internal/ToolSettingsStateHelpers.d.ts.map +1 -1
  482. package/lib/esm/appui-react/layout/state/internal/ToolSettingsStateHelpers.js +6 -0
  483. package/lib/esm/appui-react/layout/state/internal/ToolSettingsStateHelpers.js.map +1 -1
  484. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.d.ts.map +1 -1
  485. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +6 -4
  486. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  487. package/lib/esm/appui-react/layout/target/PanelTargets.scss +2 -0
  488. package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
  489. package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  490. package/lib/esm/appui-react/layout/tool-settings/Docked.d.ts +12 -6
  491. package/lib/esm/appui-react/layout/tool-settings/Docked.d.ts.map +1 -1
  492. package/lib/esm/appui-react/layout/tool-settings/Docked.js +53 -22
  493. package/lib/esm/appui-react/layout/tool-settings/Docked.js.map +1 -1
  494. package/lib/esm/appui-react/layout/tool-settings/Docked.scss +15 -23
  495. package/lib/esm/appui-react/layout/tool-settings/Handle.d.ts.map +1 -1
  496. package/lib/esm/appui-react/layout/tool-settings/Handle.js +3 -1
  497. package/lib/esm/appui-react/layout/tool-settings/Handle.js.map +1 -1
  498. package/lib/esm/appui-react/layout/tool-settings/Handle.scss +6 -12
  499. package/lib/esm/appui-react/layout/tool-settings/Overflow.d.ts.map +1 -1
  500. package/lib/esm/appui-react/layout/tool-settings/Overflow.js +4 -5
  501. package/lib/esm/appui-react/layout/tool-settings/Overflow.js.map +1 -1
  502. package/lib/esm/appui-react/layout/tool-settings/Overflow.scss +0 -15
  503. package/lib/esm/appui-react/layout/tool-settings/Setting.scss +1 -12
  504. package/lib/esm/appui-react/layout/widget/Button.d.ts +2 -9
  505. package/lib/esm/appui-react/layout/widget/Button.d.ts.map +1 -1
  506. package/lib/esm/appui-react/layout/widget/Button.js.map +1 -1
  507. package/lib/esm/appui-react/layout/widget/Buttons.d.ts +4 -4
  508. package/lib/esm/appui-react/layout/widget/Buttons.d.ts.map +1 -1
  509. package/lib/esm/appui-react/layout/widget/Buttons.js +8 -30
  510. package/lib/esm/appui-react/layout/widget/Buttons.js.map +1 -1
  511. package/lib/esm/appui-react/layout/widget/ContentContainer.d.ts.map +1 -1
  512. package/lib/esm/appui-react/layout/widget/ContentContainer.js +2 -0
  513. package/lib/esm/appui-react/layout/widget/ContentContainer.js.map +1 -1
  514. package/lib/esm/appui-react/layout/widget/ContentManager.d.ts +1 -1
  515. package/lib/esm/appui-react/layout/widget/ContentManager.d.ts.map +1 -1
  516. package/lib/esm/appui-react/layout/widget/ContentManager.js +1 -1
  517. package/lib/esm/appui-react/layout/widget/ContentManager.js.map +1 -1
  518. package/lib/esm/appui-react/layout/widget/ContentRenderer.d.ts.map +1 -1
  519. package/lib/esm/appui-react/layout/widget/ContentRenderer.js +8 -2
  520. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  521. package/lib/esm/appui-react/layout/widget/Dock.d.ts +2 -0
  522. package/lib/esm/appui-react/layout/widget/Dock.d.ts.map +1 -1
  523. package/lib/esm/appui-react/layout/widget/Dock.js +8 -0
  524. package/lib/esm/appui-react/layout/widget/Dock.js.map +1 -1
  525. package/lib/esm/appui-react/layout/widget/FloatingTab.js +5 -6
  526. package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
  527. package/lib/esm/appui-react/layout/widget/FloatingWidget.d.ts.map +1 -1
  528. package/lib/esm/appui-react/layout/widget/FloatingWidget.js +17 -21
  529. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  530. package/lib/esm/appui-react/layout/widget/FloatingWidget.scss +92 -105
  531. package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
  532. package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
  533. package/lib/esm/appui-react/layout/widget/PinToggle.d.ts +2 -0
  534. package/lib/esm/appui-react/layout/widget/PinToggle.d.ts.map +1 -1
  535. package/lib/esm/appui-react/layout/widget/PinToggle.js +8 -0
  536. package/lib/esm/appui-react/layout/widget/PinToggle.js.map +1 -1
  537. package/lib/esm/appui-react/layout/widget/SendBack.d.ts.map +1 -1
  538. package/lib/esm/appui-react/layout/widget/SendBack.js +4 -5
  539. package/lib/esm/appui-react/layout/widget/SendBack.js.map +1 -1
  540. package/lib/esm/appui-react/layout/widget/Tab.d.ts.map +1 -1
  541. package/lib/esm/appui-react/layout/widget/Tab.js +9 -14
  542. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  543. package/lib/esm/appui-react/layout/widget/TabBar.d.ts.map +1 -1
  544. package/lib/esm/appui-react/layout/widget/TabBar.js +4 -1
  545. package/lib/esm/appui-react/layout/widget/TabBar.js.map +1 -1
  546. package/lib/esm/appui-react/layout/widget/TabBar.scss +17 -19
  547. package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
  548. package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
  549. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  550. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  551. package/lib/esm/appui-react/layout/widget/usePanelWidgetId.d.ts +8 -0
  552. package/lib/esm/appui-react/layout/widget/usePanelWidgetId.d.ts.map +1 -0
  553. package/lib/esm/appui-react/layout/widget/usePanelWidgetId.js +34 -0
  554. package/lib/esm/appui-react/layout/widget/usePanelWidgetId.js.map +1 -0
  555. package/lib/esm/appui-react/layout/widget-panels/Grip.d.ts +1 -1
  556. package/lib/esm/appui-react/layout/widget-panels/Grip.d.ts.map +1 -1
  557. package/lib/esm/appui-react/layout/widget-panels/Grip.js +4 -0
  558. package/lib/esm/appui-react/layout/widget-panels/Grip.js.map +1 -1
  559. package/lib/esm/appui-react/layout/widget-panels/Grip.scss +106 -104
  560. package/lib/esm/appui-react/layout/widget-panels/Panel.d.ts +1 -1
  561. package/lib/esm/appui-react/layout/widget-panels/Panel.d.ts.map +1 -1
  562. package/lib/esm/appui-react/layout/widget-panels/Panel.js +10 -16
  563. package/lib/esm/appui-react/layout/widget-panels/Panel.js.map +1 -1
  564. package/lib/esm/appui-react/layout/widget-panels/Panel.scss +175 -243
  565. package/lib/esm/appui-react/layout/widget-panels/PanelSections.d.ts +1 -0
  566. package/lib/esm/appui-react/layout/widget-panels/PanelSections.d.ts.map +1 -1
  567. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +38 -37
  568. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  569. package/lib/esm/appui-react/layout/widget-panels/{Panels.scss → PanelSections.scss} +1 -11
  570. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +1 -2
  571. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  572. package/lib/esm/appui-react/layout/widget-panels/usePanelsAutoCollapse.d.ts +7 -0
  573. package/lib/esm/appui-react/layout/widget-panels/usePanelsAutoCollapse.d.ts.map +1 -0
  574. package/lib/esm/appui-react/layout/widget-panels/{AppContent.js → usePanelsAutoCollapse.js} +3 -25
  575. package/lib/esm/appui-react/layout/widget-panels/usePanelsAutoCollapse.js.map +1 -0
  576. package/lib/esm/appui-react/messages/InputField.d.ts.map +1 -1
  577. package/lib/esm/appui-react/messages/InputField.js +3 -4
  578. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  579. package/lib/esm/appui-react/messages/MessageLabel.js +2 -2
  580. package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
  581. package/lib/esm/appui-react/messages/MessageManager.d.ts +15 -5
  582. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  583. package/lib/esm/appui-react/messages/MessageManager.js +22 -41
  584. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  585. package/lib/esm/appui-react/messages/MessageRenderer.d.ts +8 -0
  586. package/lib/esm/appui-react/messages/MessageRenderer.d.ts.map +1 -0
  587. package/lib/esm/appui-react/messages/MessageRenderer.js +132 -0
  588. package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -0
  589. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  590. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  591. package/lib/esm/appui-react/messages/Pointer.js +6 -7
  592. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  593. package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
  594. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -1
  595. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  596. package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
  597. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  598. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  599. package/lib/esm/appui-react/popup/CardPopup.js +3 -4
  600. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  601. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  602. package/lib/esm/appui-react/popup/HTMLElementPopup.js +2 -3
  603. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  604. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  605. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +7 -6
  606. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  607. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +1 -1
  608. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  609. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  610. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  611. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +1 -1
  612. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  613. package/lib/esm/appui-react/popup/ToolbarPopup.js +1 -1
  614. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  615. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +6 -1
  616. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  617. package/lib/esm/appui-react/preview/PreviewFeatures.js +2 -1
  618. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  619. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizeToggle.d.ts +9 -0
  620. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizeToggle.d.ts.map +1 -0
  621. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizeToggle.js +46 -0
  622. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizeToggle.js.map +1 -0
  623. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts +18 -0
  624. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts.map +1 -0
  625. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizedWidget.js +23 -0
  626. package/lib/esm/appui-react/preview/enable-maximized-widget/MaximizedWidget.js.map +1 -0
  627. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +50 -0
  628. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -0
  629. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +106 -0
  630. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -0
  631. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +36 -0
  632. package/lib/{cjs/appui-react/layout/widget → esm/appui-react/preview/horizontal-panel-alignment}/PreviewHorizontalPanelAlign.d.ts +4 -6
  633. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts.map +1 -0
  634. package/lib/esm/appui-react/{layout/widget → preview/horizontal-panel-alignment}/PreviewHorizontalPanelAlign.js +16 -19
  635. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -0
  636. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.d.ts +19 -0
  637. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.d.ts.map +1 -0
  638. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +26 -0
  639. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -0
  640. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +49 -0
  641. package/lib/esm/appui-react/preview/widget-action-dropdown/Button.d.ts +1 -1
  642. package/lib/esm/appui-react/preview/widget-action-dropdown/Button.js +1 -1
  643. package/lib/esm/appui-react/preview/widget-action-dropdown/Button.js.map +1 -1
  644. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.d.ts +3 -2
  645. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  646. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +10 -10
  647. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  648. package/lib/esm/appui-react/redux/SessionState.d.ts +2 -2
  649. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  650. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  651. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  652. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  653. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  654. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  655. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +1 -4
  656. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +11 -16
  657. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  658. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  659. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  660. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  661. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  662. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -1
  663. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  664. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  665. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  666. package/lib/esm/appui-react/statusfields/ActivityCenter.js +1 -0
  667. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  668. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +1 -1
  669. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  670. package/lib/esm/appui-react/statusfields/MessageCenter.js +6 -5
  671. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  672. package/lib/esm/appui-react/statusfields/SelectionScope.scss +1 -3
  673. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  674. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  675. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  676. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +1 -1
  677. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  678. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -2
  679. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  680. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -12
  681. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  682. package/lib/esm/appui-react/theme/ThemeManager.js +3 -1
  683. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  684. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +6 -4
  685. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  686. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  687. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  688. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  689. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +15 -22
  690. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  691. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  692. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +2 -1
  693. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  694. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  695. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  696. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +20 -22
  697. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  698. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +3 -3
  699. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  700. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  701. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  702. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  703. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  704. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  705. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  706. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  707. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  708. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  709. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  710. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +0 -7
  711. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts +1 -0
  712. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  713. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +19 -16
  714. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  715. package/lib/esm/appui-react/utils/matchesWords.js +4 -4
  716. package/lib/esm/appui-react/utils/matchesWords.js.map +1 -1
  717. package/lib/esm/appui-react/widget-panels/Content.js +8 -9
  718. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  719. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  720. package/lib/esm/appui-react/widget-panels/Frontstage.js +25 -32
  721. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  722. package/lib/esm/appui-react/widget-panels/Frontstage.scss +0 -23
  723. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  724. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  725. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  726. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  727. package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -23
  728. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  729. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +1 -7
  730. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  731. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  732. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  733. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  734. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
  735. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  736. package/lib/esm/appui-react/widgets/WidgetDef.js +4 -5
  737. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  738. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  739. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  740. package/lib/esm/appui-react/widgets/useWidget.js +1 -1
  741. package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
  742. package/lib/esm/appui-react.d.ts +1 -0
  743. package/lib/esm/appui-react.d.ts.map +1 -1
  744. package/lib/esm/appui-react.js +1 -0
  745. package/lib/esm/appui-react.js.map +1 -1
  746. package/lib/public/locales/en/UiFramework.json +1 -1
  747. package/package.json +24 -26
  748. package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.d.ts.map +0 -1
  749. package/lib/cjs/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +0 -1
  750. package/lib/cjs/appui-react/layout/widget/PreviewMaximizeToggle.d.ts +0 -30
  751. package/lib/cjs/appui-react/layout/widget/PreviewMaximizeToggle.d.ts.map +0 -1
  752. package/lib/cjs/appui-react/layout/widget/PreviewMaximizeToggle.js +0 -65
  753. package/lib/cjs/appui-react/layout/widget/PreviewMaximizeToggle.js.map +0 -1
  754. package/lib/cjs/appui-react/layout/widget-panels/AppContent.d.ts +0 -11
  755. package/lib/cjs/appui-react/layout/widget-panels/AppContent.d.ts.map +0 -1
  756. package/lib/cjs/appui-react/layout/widget-panels/AppContent.js.map +0 -1
  757. package/lib/cjs/appui-react/layout/widget-panels/CenterContent.d.ts +0 -10
  758. package/lib/cjs/appui-react/layout/widget-panels/CenterContent.d.ts.map +0 -1
  759. package/lib/cjs/appui-react/layout/widget-panels/CenterContent.js +0 -23
  760. package/lib/cjs/appui-react/layout/widget-panels/CenterContent.js.map +0 -1
  761. package/lib/cjs/appui-react/layout/widget-panels/Content.d.ts +0 -21
  762. package/lib/cjs/appui-react/layout/widget-panels/Content.d.ts.map +0 -1
  763. package/lib/cjs/appui-react/layout/widget-panels/Content.js +0 -21
  764. package/lib/cjs/appui-react/layout/widget-panels/Content.js.map +0 -1
  765. package/lib/cjs/appui-react/layout/widget-panels/Content.scss +0 -37
  766. package/lib/cjs/appui-react/layout/widget-panels/Panels.d.ts +0 -24
  767. package/lib/cjs/appui-react/layout/widget-panels/Panels.d.ts.map +0 -1
  768. package/lib/cjs/appui-react/layout/widget-panels/Panels.js +0 -48
  769. package/lib/cjs/appui-react/layout/widget-panels/Panels.js.map +0 -1
  770. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +0 -10
  771. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +0 -1
  772. package/lib/cjs/appui-react/messages/ActivityMessage.js +0 -92
  773. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +0 -1
  774. package/lib/cjs/appui-react/messages/MessageSpan.d.ts +0 -15
  775. package/lib/cjs/appui-react/messages/MessageSpan.d.ts.map +0 -1
  776. package/lib/cjs/appui-react/messages/MessageSpan.js +0 -23
  777. package/lib/cjs/appui-react/messages/MessageSpan.js.map +0 -1
  778. package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.d.ts.map +0 -1
  779. package/lib/esm/appui-react/layout/widget/PreviewHorizontalPanelAlign.js.map +0 -1
  780. package/lib/esm/appui-react/layout/widget/PreviewMaximizeToggle.d.ts +0 -30
  781. package/lib/esm/appui-react/layout/widget/PreviewMaximizeToggle.d.ts.map +0 -1
  782. package/lib/esm/appui-react/layout/widget/PreviewMaximizeToggle.js +0 -58
  783. package/lib/esm/appui-react/layout/widget/PreviewMaximizeToggle.js.map +0 -1
  784. package/lib/esm/appui-react/layout/widget-panels/AppContent.d.ts +0 -11
  785. package/lib/esm/appui-react/layout/widget-panels/AppContent.d.ts.map +0 -1
  786. package/lib/esm/appui-react/layout/widget-panels/AppContent.js.map +0 -1
  787. package/lib/esm/appui-react/layout/widget-panels/CenterContent.d.ts +0 -10
  788. package/lib/esm/appui-react/layout/widget-panels/CenterContent.d.ts.map +0 -1
  789. package/lib/esm/appui-react/layout/widget-panels/CenterContent.js +0 -19
  790. package/lib/esm/appui-react/layout/widget-panels/CenterContent.js.map +0 -1
  791. package/lib/esm/appui-react/layout/widget-panels/Content.d.ts +0 -21
  792. package/lib/esm/appui-react/layout/widget-panels/Content.d.ts.map +0 -1
  793. package/lib/esm/appui-react/layout/widget-panels/Content.js +0 -18
  794. package/lib/esm/appui-react/layout/widget-panels/Content.js.map +0 -1
  795. package/lib/esm/appui-react/layout/widget-panels/Content.scss +0 -37
  796. package/lib/esm/appui-react/layout/widget-panels/Panels.d.ts +0 -24
  797. package/lib/esm/appui-react/layout/widget-panels/Panels.d.ts.map +0 -1
  798. package/lib/esm/appui-react/layout/widget-panels/Panels.js +0 -44
  799. package/lib/esm/appui-react/layout/widget-panels/Panels.js.map +0 -1
  800. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +0 -10
  801. package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +0 -1
  802. package/lib/esm/appui-react/messages/ActivityMessage.js +0 -88
  803. package/lib/esm/appui-react/messages/ActivityMessage.js.map +0 -1
  804. package/lib/esm/appui-react/messages/MessageSpan.d.ts +0 -15
  805. package/lib/esm/appui-react/messages/MessageSpan.d.ts.map +0 -1
  806. package/lib/esm/appui-react/messages/MessageSpan.js +0 -18
  807. package/lib/esm/appui-react/messages/MessageSpan.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawInputField.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 AccuDraw\n */\n\nimport \"./AccuDrawInputField.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec } from \"@itwin/core-react\";\nimport { Icon, useRefs } from \"@itwin/core-react\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport type {\n AccuDrawSetFieldFocusEventArgs,\n AccuDrawSetFieldValueToUiEventArgs,\n} from \"./FrameworkAccuDraw\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport { UiFramework } from \"../UiFramework\";\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\n\nfunction isLetter(char: string): boolean {\n return char.length === 1 && char.toLowerCase() !== char.toUpperCase();\n}\n\n/** Properties for [[AccuDrawInputField]] component\n * @beta\n */\nexport interface AccuDrawInputFieldProps extends CommonProps {\n /** Which AccuDraw field this represents */\n field: ItemField;\n /** id for the input element */\n id: string;\n /** Indicates whether field is locked */\n isLocked?: boolean;\n /** label for the input element */\n label?: string;\n /** icon for the input element */\n iconSpec?: IconSpec;\n /** Custom CSS class name for the label */\n labelClassName?: string;\n /** Custom CSS Style for the label */\n labelStyle?: React.CSSProperties;\n /** Center justified label */\n labelCentered?: boolean;\n /** Triggered when the content is changed */\n onValueChanged: (stringValue: string) => void;\n /** Frequency to poll for changes in value, in milliseconds */\n valueChangedDelay?: number;\n /** Listens for <Enter> keypress */\n onEnterPressed?: () => void;\n /** Listens for <Esc> keypress */\n onEscPressed?: () => void;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n}\n\nconst ForwardRefAccuDrawInput = React.forwardRef<\n HTMLInputElement,\n AccuDrawInputFieldProps\n>(function ForwardRefAccuDrawInputField(props: AccuDrawInputFieldProps, ref) {\n const {\n className,\n style,\n id,\n label,\n iconSpec,\n labelClassName,\n labelStyle,\n labelCentered,\n field,\n isLocked,\n onValueChanged,\n valueChangedDelay,\n onEnterPressed,\n onEscPressed,\n ...inputProps\n } = props;\n const [stringValue, setStringValue] = React.useState(\"\");\n const timeoutId = React.useRef(0);\n const [needValueChanged, setNeedValueChanged] = React.useState(false);\n const [needSelection, setNeedSelection] = React.useState(false);\n const [isFocusField, setIsFocusField] = React.useState(false);\n const inputElementRef = React.useRef<HTMLInputElement>(null);\n const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.\n\n React.useEffect(() => {\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);\n setStringValue(formattedValue);\n }, [field]);\n\n const handleChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>): void => {\n const value = event.currentTarget.value;\n\n // istanbul ignore next\n if (value === undefined) return;\n\n // istanbul ignore else\n if (stringValue !== value) {\n setStringValue(value);\n setNeedValueChanged(true);\n }\n },\n [stringValue]\n );\n\n const unsetTimeout = (): void => {\n // istanbul ignore else\n if (timeoutId) {\n window.clearTimeout(timeoutId.current);\n timeoutId.current = 0;\n }\n };\n\n React.useEffect(() => {\n // After setStringValue & re-render\n // istanbul ignore else\n if (needValueChanged) {\n if (valueChangedDelay) {\n unsetTimeout();\n timeoutId.current = window.setTimeout(() => {\n onValueChanged(stringValue);\n }, valueChangedDelay);\n } else {\n onValueChanged(stringValue);\n }\n setNeedValueChanged(false);\n }\n }, [onValueChanged, valueChangedDelay, stringValue, needValueChanged]);\n\n React.useEffect(() => {\n // On unmount\n return () => unsetTimeout();\n }, []);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n switch (e.key) {\n case Key.Escape:\n onEscPressed && onEscPressed();\n return;\n case Key.Enter:\n onEnterPressed && onEnterPressed();\n return;\n }\n\n if (isLetter(e.key)) {\n e.preventDefault();\n UiFramework.keyboardShortcuts.processKey(e.key);\n return;\n }\n },\n [onEscPressed, onEnterPressed]\n );\n\n React.useEffect(() => {\n const handleSetFieldValueToUi = (\n args: AccuDrawSetFieldValueToUiEventArgs\n ) => {\n if (args.field === field && stringValue !== args.formattedValue) {\n setStringValue(args.formattedValue);\n // istanbul ignore else\n if (isFocusField) setNeedSelection(true);\n }\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener(\n handleSetFieldValueToUi\n );\n }, [field, isFocusField, stringValue]);\n\n React.useEffect(() => {\n if (needSelection) {\n // istanbul ignore else\n if (inputElementRef.current) inputElementRef.current.select();\n setNeedSelection(false);\n }\n }, [needSelection]);\n\n React.useEffect(() => {\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\n setIsFocusField(args.field === field);\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(\n handleSetFieldFocus\n );\n }, [field]);\n\n const inputClassNames = classnames(\"uifw-accudraw-input-field\", className);\n const labelClassNames = classnames(\n \"uifw-accudraw-input-label\",\n labelCentered && \"uifw-label-centered\",\n labelClassName\n );\n\n return (\n <>\n <label htmlFor={id} className={labelClassNames} style={labelStyle}>\n {label}\n {iconSpec && <Icon iconSpec={iconSpec} />}\n </label>\n <Input\n {...inputProps}\n ref={refs}\n id={id}\n value={stringValue}\n className={inputClassNames}\n style={style}\n autoComplete=\"off\"\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n size=\"small\"\n />\n <span className=\"uifw-accudraw-lock\">\n {isLocked && <Icon iconSpec={<SvgLock />} />}\n </span>\n </>\n );\n});\n\n/** Input field for AccuDraw Ui\n * @beta\n */\nexport const AccuDrawInputField: (\n props: AccuDrawInputFieldProps\n) => React.ReactElement | null = ForwardRefAccuDrawInput;\n"]}
1
+ {"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,qCAAmC;AACnC,2CAAoC;AACpC,+BAA+B;AAC/B,6CAAkC;AAGlC,kDAAkD;AAClD,wDAA6C;AAK7C,2DAAwD;AACxD,gDAA6C;AAC7C,oEAAqD;AAErD,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;AACxE,CAAC;AAkCD,MAAM,uBAAuB,GAAG,KAAK,CAAC,UAAU,CAG9C,SAAS,4BAA4B,CAAC,KAA8B,EAAE,GAAG;IACzE,MAAM,EACJ,SAAS,EACT,KAAK,EACL,EAAE,EACF,KAAK,EACL,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,KAAK,EACL,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,GAAG,UAAU,EACd,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAA,oBAAO,EAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,uGAAuG;IAEnJ,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,cAAc,GAAG,qCAAiB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACrE,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,KAA0C,EAAQ,EAAE;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;QAExC,uBAAuB;QACvB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,uBAAuB;QACvB,IAAI,WAAW,KAAK,KAAK,EAAE;YACzB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,mBAAmB,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,uBAAuB;QACvB,IAAI,SAAS,EAAE;YACb,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACvC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;SACvB;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,mCAAmC;QACnC,uBAAuB;QACvB,IAAI,gBAAgB,EAAE;YACpB,IAAI,iBAAiB,EAAE;gBACrB,YAAY,EAAE,CAAC;gBACf,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;oBACzC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC9B,CAAC,EAAE,iBAAiB,CAAC,CAAC;aACvB;iBAAM;gBACL,cAAc,CAAC,WAAW,CAAC,CAAC;aAC7B;YACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEvE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,aAAa;QACb,OAAO,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,CAAsB,EAAE,EAAE;QACzB,QAAQ,CAAC,CAAC,GAAG,EAAE;YACb,KAAK,iBAAG,CAAC,MAAM,CAAC,OAAO,EAAE;gBACvB,YAAY,IAAI,YAAY,EAAE,CAAC;gBAC/B,OAAO;YACT,KAAK,iBAAG,CAAC,KAAK,CAAC,OAAO,EAAE;gBACtB,cAAc,IAAI,cAAc,EAAE,CAAC;gBACnC,OAAO;SACV;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,yBAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChD,OAAO;SACR;IACH,CAAC,EACD,CAAC,YAAY,EAAE,cAAc,CAAC,CAC/B,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,CAC9B,IAAwC,EACxC,EAAE;YACF,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,WAAW,KAAK,IAAI,CAAC,cAAc,EAAE;gBAC/D,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpC,uBAAuB;gBACvB,IAAI,YAAY;oBAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC;QACF,OAAO,qCAAiB,CAAC,gCAAgC,CAAC,WAAW,CACnE,uBAAuB,CACxB,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,aAAa,EAAE;YACjB,uBAAuB;YACvB,IAAI,eAAe,CAAC,OAAO;gBAAE,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9D,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,mBAAmB,GAAG,CAAC,IAAoC,EAAE,EAAE;YACnE,eAAe,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,OAAO,qCAAiB,CAAC,4BAA4B,CAAC,WAAW,CAC/D,mBAAmB,CACpB,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,eAAe,GAAG,IAAA,oBAAU,EAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,IAAA,oBAAU,EAChC,2BAA2B,EAC3B,aAAa,IAAI,qBAAqB,EACtC,cAAc,CACf,CAAC;IAEF,OAAO,CACL;QACE,+BAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU;YAC9D,KAAK;YACL,QAAQ,IAAI,oBAAC,iBAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CACnC;QACR,oBAAC,qBAAK,OACA,UAAU,EACd,GAAG,EAAE,IAAI,EACT,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAC,KAAK,EAClB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,IAAI,EAAC,OAAO,GACZ;QACF,8BAAM,SAAS,EAAC,oBAAoB,IACjC,QAAQ,IAAI,oBAAC,iBAAI,IAAC,QAAQ,EAAE,oBAAC,6BAAO,OAAG,GAAI,CACvC,CACN,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,kBAAkB,GAEE,uBAAuB,CAAC","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 \"./AccuDrawInputField.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec } from \"@itwin/core-react\";\nimport { Icon, useRefs } from \"@itwin/core-react\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport type {\n AccuDrawSetFieldFocusEventArgs,\n AccuDrawSetFieldValueToUiEventArgs,\n} from \"./FrameworkAccuDraw\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport { UiFramework } from \"../UiFramework\";\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\n\nfunction isLetter(char: string): boolean {\n return char.length === 1 && char.toLowerCase() !== char.toUpperCase();\n}\n\n/** Properties for [[AccuDrawInputField]] component\n * @beta\n */\nexport interface AccuDrawInputFieldProps extends CommonProps {\n /** Which AccuDraw field this represents */\n field: ItemField;\n /** id for the input element */\n id: string;\n /** Indicates whether field is locked */\n isLocked?: boolean;\n /** label for the input element */\n label?: string;\n /** icon for the input element */\n iconSpec?: IconSpec;\n /** Custom CSS class name for the label */\n labelClassName?: string;\n /** Custom CSS Style for the label */\n labelStyle?: React.CSSProperties;\n /** Center justified label */\n labelCentered?: boolean;\n /** Triggered when the content is changed */\n onValueChanged: (stringValue: string) => void;\n /** Frequency to poll for changes in value, in milliseconds */\n valueChangedDelay?: number;\n /** Listens for <Enter> keypress */\n onEnterPressed?: () => void;\n /** Listens for <Esc> keypress */\n onEscPressed?: () => void;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n}\n\nconst ForwardRefAccuDrawInput = React.forwardRef<\n HTMLInputElement,\n AccuDrawInputFieldProps\n>(function ForwardRefAccuDrawInputField(props: AccuDrawInputFieldProps, ref) {\n const {\n className,\n style,\n id,\n label,\n iconSpec,\n labelClassName,\n labelStyle,\n labelCentered,\n field,\n isLocked,\n onValueChanged,\n valueChangedDelay,\n onEnterPressed,\n onEscPressed,\n ...inputProps\n } = props;\n const [stringValue, setStringValue] = React.useState(\"\");\n const timeoutId = React.useRef(0);\n const [needValueChanged, setNeedValueChanged] = React.useState(false);\n const [needSelection, setNeedSelection] = React.useState(false);\n const [isFocusField, setIsFocusField] = React.useState(false);\n const inputElementRef = React.useRef<HTMLInputElement>(null);\n const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.\n\n React.useEffect(() => {\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);\n setStringValue(formattedValue);\n }, [field]);\n\n const handleChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>): void => {\n const value = event.currentTarget.value;\n\n // istanbul ignore next\n if (value === undefined) return;\n\n // istanbul ignore else\n if (stringValue !== value) {\n setStringValue(value);\n setNeedValueChanged(true);\n }\n },\n [stringValue]\n );\n\n const unsetTimeout = (): void => {\n // istanbul ignore else\n if (timeoutId) {\n window.clearTimeout(timeoutId.current);\n timeoutId.current = 0;\n }\n };\n\n React.useEffect(() => {\n // After setStringValue & re-render\n // istanbul ignore else\n if (needValueChanged) {\n if (valueChangedDelay) {\n unsetTimeout();\n timeoutId.current = window.setTimeout(() => {\n onValueChanged(stringValue);\n }, valueChangedDelay);\n } else {\n onValueChanged(stringValue);\n }\n setNeedValueChanged(false);\n }\n }, [onValueChanged, valueChangedDelay, stringValue, needValueChanged]);\n\n React.useEffect(() => {\n // On unmount\n return () => unsetTimeout();\n }, []);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n switch (e.key) {\n case Key.Escape.valueOf():\n onEscPressed && onEscPressed();\n return;\n case Key.Enter.valueOf():\n onEnterPressed && onEnterPressed();\n return;\n }\n\n if (isLetter(e.key)) {\n e.preventDefault();\n UiFramework.keyboardShortcuts.processKey(e.key);\n return;\n }\n },\n [onEscPressed, onEnterPressed]\n );\n\n React.useEffect(() => {\n const handleSetFieldValueToUi = (\n args: AccuDrawSetFieldValueToUiEventArgs\n ) => {\n if (args.field === field && stringValue !== args.formattedValue) {\n setStringValue(args.formattedValue);\n // istanbul ignore else\n if (isFocusField) setNeedSelection(true);\n }\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener(\n handleSetFieldValueToUi\n );\n }, [field, isFocusField, stringValue]);\n\n React.useEffect(() => {\n if (needSelection) {\n // istanbul ignore else\n if (inputElementRef.current) inputElementRef.current.select();\n setNeedSelection(false);\n }\n }, [needSelection]);\n\n React.useEffect(() => {\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\n setIsFocusField(args.field === field);\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(\n handleSetFieldFocus\n );\n }, [field]);\n\n const inputClassNames = classnames(\"uifw-accudraw-input-field\", className);\n const labelClassNames = classnames(\n \"uifw-accudraw-input-label\",\n labelCentered && \"uifw-label-centered\",\n labelClassName\n );\n\n return (\n <>\n <label htmlFor={id} className={labelClassNames} style={labelStyle}>\n {label}\n {iconSpec && <Icon iconSpec={iconSpec} />}\n </label>\n <Input\n {...inputProps}\n ref={refs}\n id={id}\n value={stringValue}\n className={inputClassNames}\n style={style}\n autoComplete=\"off\"\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n size=\"small\"\n />\n <span className=\"uifw-accudraw-lock\">\n {isLocked && <Icon iconSpec={<SvgLock />} />}\n </span>\n </>\n );\n});\n\n/** Input field for AccuDraw Ui\n * @beta\n */\nexport const AccuDrawInputField: (\n props: AccuDrawInputFieldProps\n) => React.ReactElement | null = ForwardRefAccuDrawInput;\n"]}
@@ -3,6 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  @import "~@itwin/core-react/lib/cjs/core-react/base/base";
6
+ @import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
6
7
  @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
7
8
 
8
9
  .uifw-accudraw-input-label {
@@ -31,6 +32,7 @@
31
32
  }
32
33
 
33
34
  .uifw-accudraw-input-field {
35
+ padding: $uicore-iui-input-padding;
34
36
  flex: 1;
35
37
  }
36
38
 
@@ -66,39 +66,39 @@ class Calculator extends React.PureComponent {
66
66
  break;
67
67
  case "c":
68
68
  case "C":
69
- case ts_key_enum_1.Key.Clear:
69
+ case ts_key_enum_1.Key.Clear.valueOf():
70
70
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Clear);
71
71
  break;
72
- case ts_key_enum_1.Key.Escape:
72
+ case ts_key_enum_1.Key.Escape.valueOf():
73
73
  this._cancel();
74
74
  break;
75
- case ts_key_enum_1.Key.Backspace:
75
+ case ts_key_enum_1.Key.Backspace.valueOf():
76
76
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Backspace);
77
77
  break;
78
78
  case "/":
79
- case ts_key_enum_1.Key.Divide:
79
+ case ts_key_enum_1.Key.Divide.valueOf():
80
80
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Divide);
81
81
  break;
82
82
  case "*":
83
- case ts_key_enum_1.Key.Multiply:
83
+ case ts_key_enum_1.Key.Multiply.valueOf():
84
84
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Multiply);
85
85
  break;
86
86
  case "-":
87
- case ts_key_enum_1.Key.Subtract:
87
+ case ts_key_enum_1.Key.Subtract.valueOf():
88
88
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Subtract);
89
89
  break;
90
90
  case "+":
91
- case ts_key_enum_1.Key.Add:
91
+ case ts_key_enum_1.Key.Add.valueOf():
92
92
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Add);
93
93
  break;
94
94
  case ".":
95
- case ts_key_enum_1.Key.Decimal:
95
+ case ts_key_enum_1.Key.Decimal.valueOf():
96
96
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Decimal);
97
97
  break;
98
98
  case "=":
99
99
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Equals);
100
100
  break;
101
- case ts_key_enum_1.Key.Enter:
101
+ case ts_key_enum_1.Key.Enter.valueOf():
102
102
  if (!this._equalsClicked)
103
103
  this._onOperatorButtonClick(CalculatorEngine_1.CalculatorOperator.Equals);
104
104
  this._ok();
@@ -1 +1 @@
1
- {"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.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 AccuDraw\n */\n\nimport \"./Calculator.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { OnCancelFunc, OnNumberCommitFunc } from \"@itwin/appui-abstract\";\nimport type { CommonProps, Omit } from \"@itwin/core-react\";\nimport { Icon, IconInput } from \"@itwin/core-react\";\nimport { Button, Input } from \"@itwin/itwinui-react\";\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine\";\nimport type { SquareButtonProps } from \"./SquareButton\";\nimport { SquareButton } from \"./SquareButton\";\nimport { SvgCheckmark, SvgRemove } from \"@itwin/itwinui-icons-react\";\nimport backspaceIcon from \"./backspace.svg\";\n\n// cSpell:ignore plusmn\n\n/** @alpha */\nexport interface CalculatorProps extends CommonProps {\n /** Initial value */\n initialValue?: number;\n /** Icon to display beside the calculated result */\n resultIcon?: React.ReactNode;\n /** A function to be run when the OK button is clicked */\n onOk?: OnNumberCommitFunc;\n /** A function to be run when the Cancel button is clicked */\n onCancel?: OnCancelFunc;\n\n /** @internal Calculator state machine. */\n engine: CalculatorEngine;\n}\n\ninterface CalculatorState {\n displayValue: string;\n}\n\n/** @internal */\nexport type CalculatorPropsProps = Pick<CalculatorProps, \"engine\">;\n\n/** @alpha */\nexport class Calculator extends React.PureComponent<\n CalculatorProps,\n CalculatorState\n> {\n private _mainDiv = React.createRef<HTMLDivElement>();\n private _equalsClicked = false;\n\n /** @internal */\n public static readonly defaultProps: CalculatorPropsProps = {\n engine: new CalculatorEngine(),\n };\n\n constructor(props: CalculatorProps) {\n super(props);\n\n let displayValue = \"0\";\n if (this.props.initialValue)\n displayValue = this.props.engine.processValue(\n this.props.initialValue.toString()\n );\n\n this.state = {\n displayValue,\n };\n }\n\n private _onValueButtonClick = (keyChar: string) => {\n const displayValue = this.props.engine.processValue(keyChar);\n this._mainDivFocus();\n this.setState({ displayValue });\n };\n\n private _onOperatorButtonClick = (operator: CalculatorOperator) => {\n if (operator === CalculatorOperator.Clear && this._equalsClicked)\n operator = CalculatorOperator.ClearAll;\n\n const displayValue = this.props.engine.processOperator(operator);\n this._mainDivFocus();\n this.setState({ displayValue });\n\n if (operator === CalculatorOperator.Equals) this._equalsClicked = true;\n else if (operator === CalculatorOperator.ClearAll)\n this._equalsClicked = false;\n };\n\n private _handleOk = (_event: React.MouseEvent): void => {\n this._ok();\n };\n\n private _ok() {\n // istanbul ignore else\n if (this.props.onOk) {\n this.props.onOk(this.props.engine.result);\n }\n this._clearAll();\n }\n\n private _handleCancel = (_event: React.MouseEvent): void => {\n this._cancel();\n };\n\n private _cancel() {\n // istanbul ignore else\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n this._clearAll();\n }\n\n private _clearAll() {\n this.props.engine.clearAll();\n this._equalsClicked = false;\n }\n\n public override componentDidMount() {\n this._mainDivFocus();\n }\n\n private _mainDivFocus() {\n if (this._mainDiv.current) this._mainDiv.current.focus();\n }\n\n public override render() {\n const { className, resultIcon, onOk, onCancel, initialValue, ...props } =\n this.props;\n\n const classNames = classnames(\"uifw-calculator\", className);\n\n const topSection = resultIcon ? (\n <IconInput\n containerClassName=\"uifw-calculator-top-input\"\n value={this.state.displayValue}\n readOnly={true}\n icon={resultIcon}\n />\n ) : (\n <Input value={this.state.displayValue} readOnly={true} size=\"small\" />\n );\n\n return (\n // The event handler is only being used to capture bubbled events\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n {...props}\n ref={this._mainDiv}\n tabIndex={-1}\n className={classNames}\n onKeyDown={this._handleKeyDown}\n >\n <div className=\"uifw-calculator-top\">{topSection}</div>\n <CalculatorKeyPad\n onValueClick={this._onValueButtonClick}\n onOperatorClick={this._onOperatorButtonClick}\n />\n <div className=\"uifw-calculator-bottom-buttons\">\n <Button\n className={classnames(\n \"uifw-calculator-large-button\",\n \"uifw-calculator-ok-button\"\n )}\n styleType=\"cta\"\n onClick={this._handleOk}\n >\n <Icon iconSpec={<SvgCheckmark />} />\n </Button>\n <Button\n className={classnames(\n \"uifw-calculator-large-button\",\n \"uifw-calculator-cancel-button\"\n )}\n onClick={this._handleCancel}\n >\n <Icon iconSpec={<SvgRemove />} />\n </Button>\n </div>\n </div>\n );\n }\n\n private _handleKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>\n ): void => {\n switch (event.key) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n this._onValueButtonClick(event.key);\n break;\n case \"a\":\n case \"A\":\n this._onOperatorButtonClick(CalculatorOperator.ClearAll);\n break;\n case \"c\":\n case \"C\":\n case Key.Clear:\n this._onOperatorButtonClick(CalculatorOperator.Clear);\n break;\n case Key.Escape:\n this._cancel();\n break;\n case Key.Backspace:\n this._onOperatorButtonClick(CalculatorOperator.Backspace);\n break;\n case \"/\":\n case Key.Divide:\n this._onOperatorButtonClick(CalculatorOperator.Divide);\n break;\n case \"*\":\n case Key.Multiply:\n this._onOperatorButtonClick(CalculatorOperator.Multiply);\n break;\n case \"-\":\n case Key.Subtract:\n this._onOperatorButtonClick(CalculatorOperator.Subtract);\n break;\n case \"+\":\n case Key.Add:\n this._onOperatorButtonClick(CalculatorOperator.Add);\n break;\n case \".\":\n case Key.Decimal:\n this._onOperatorButtonClick(CalculatorOperator.Decimal);\n break;\n case \"=\":\n this._onOperatorButtonClick(CalculatorOperator.Equals);\n break;\n case Key.Enter:\n if (!this._equalsClicked)\n this._onOperatorButtonClick(CalculatorOperator.Equals);\n this._ok();\n break;\n }\n };\n}\n\ninterface CalculatorKeyPadProps extends CommonProps {\n /** A function to be run when a value is clicked */\n onValueClick: (key: string) => void;\n /** A function to be run when a value is clicked */\n onOperatorClick: (operator: CalculatorOperator) => void;\n}\n\nclass CalculatorKeyPad extends React.PureComponent<CalculatorKeyPadProps> {\n public override render() {\n return (\n <div className={classnames(\"uifw-calculator-button-grid\")}>\n <OperatorButton\n operator={CalculatorOperator.ClearAll}\n onClick={this.props.onOperatorClick}\n >\n AC\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Clear}\n onClick={this.props.onOperatorClick}\n >\n C\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Backspace}\n onClick={this.props.onOperatorClick}\n >\n <div className=\"uifw-calculator-button-svg\">\n <Icon iconSpec={backspaceIcon} />\n </div>\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Divide}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &divide;\n </OperatorButton>\n\n <ValueButton keyChar=\"7\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"8\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"9\" onClick={this.props.onValueClick} />\n <OperatorButton\n operator={CalculatorOperator.Multiply}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &times;\n </OperatorButton>\n\n <ValueButton keyChar=\"4\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"5\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"6\" onClick={this.props.onValueClick} />\n <OperatorButton\n operator={CalculatorOperator.Subtract}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &minus;\n </OperatorButton>\n\n <ValueButton keyChar=\"1\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"2\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"3\" onClick={this.props.onValueClick} />\n <OperatorButton\n operator={CalculatorOperator.Add}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &#43;\n </OperatorButton>\n\n <ValueButton keyChar=\"0\" onClick={this.props.onValueClick} />\n <OperatorButton\n operator={CalculatorOperator.NegPos}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &plusmn;\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Decimal}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n .\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Equals}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &#61;\n </OperatorButton>\n <span />\n </div>\n );\n }\n}\n\ninterface ValueButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\n /** Key to display */\n keyChar: string;\n /** A function to be run when the element is clicked */\n onClick: (key: string) => void;\n}\n\nclass ValueButton extends React.PureComponent<ValueButtonProps> {\n private _handleOnClick = (\n _event: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n this.props.onClick(this.props.keyChar);\n };\n\n public override render() {\n const { className, keyChar, onClick, ...props } = this.props;\n\n const itemClassNames = classnames(\"uifw-calculator-item\", className);\n\n return (\n <SquareButton\n {...props}\n className={itemClassNames}\n onClick={this._handleOnClick}\n >\n {keyChar}\n </SquareButton>\n );\n }\n}\n\ninterface OperatorButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\n /** Key to display */\n operator: CalculatorOperator;\n /** A function to be run when the element is clicked */\n onClick: (operator: CalculatorOperator) => void;\n}\n\nclass OperatorButton extends React.PureComponent<OperatorButtonProps> {\n private _handleOnClick = (\n _event: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n this.props.onClick(this.props.operator);\n };\n\n public override render() {\n const { className, children, operator, onClick, ...props } = this.props;\n\n const itemClassNames = classnames(\"uifw-calculator-item\", className);\n\n return (\n <SquareButton\n {...props}\n className={itemClassNames}\n onClick={this._handleOnClick}\n >\n {children}\n </SquareButton>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,6BAA2B;AAC3B,2CAAoC;AACpC,+BAA+B;AAC/B,6CAAkC;AAGlC,kDAAoD;AACpD,wDAAqD;AACrD,yDAA0E;AAE1E,iDAA8C;AAC9C,oEAAqE;AACrE,mDAA4C;AA0B5C,aAAa;AACb,MAAa,UAAW,SAAQ,KAAK,CAAC,aAGrC;IASC,YAAY,KAAsB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QATP,aAAQ,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QAC7C,mBAAc,GAAG,KAAK,CAAC;QAqBvB,wBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE;YAChD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QAEM,2BAAsB,GAAG,CAAC,QAA4B,EAAE,EAAE;YAChE,IAAI,QAAQ,KAAK,qCAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc;gBAC9D,QAAQ,GAAG,qCAAkB,CAAC,QAAQ,CAAC;YAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YAEhC,IAAI,QAAQ,KAAK,qCAAkB,CAAC,MAAM;gBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;iBAClE,IAAI,QAAQ,KAAK,qCAAkB,CAAC,QAAQ;gBAC/C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAChC,CAAC,CAAC;QAEM,cAAS,GAAG,CAAC,MAAwB,EAAQ,EAAE;YACrD,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC,CAAC;QAUM,kBAAa,GAAG,CAAC,MAAwB,EAAQ,EAAE;YACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC;QAgFM,mBAAc,GAAG,CACvB,KAA0C,EACpC,EAAE;YACR,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACpC,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,QAAQ,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,iBAAG,CAAC,KAAK,CAAC,OAAO,EAAE;oBACtB,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,KAAK,CAAC,CAAC;oBACtD,MAAM;gBACR,KAAK,iBAAG,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM;gBACR,KAAK,iBAAG,CAAC,SAAS,CAAC,OAAO,EAAE;oBAC1B,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,SAAS,CAAC,CAAC;oBAC1D,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,iBAAG,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,iBAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;oBACzB,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,QAAQ,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,iBAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;oBACzB,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,QAAQ,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,iBAAG,CAAC,GAAG,CAAC,OAAO,EAAE;oBACpB,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,GAAG,CAAC,CAAC;oBACpD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,iBAAG,CAAC,OAAO,CAAC,OAAO,EAAE;oBACxB,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,iBAAG,CAAC,KAAK,CAAC,OAAO,EAAE;oBACtB,IAAI,CAAC,IAAI,CAAC,cAAc;wBACtB,IAAI,CAAC,sBAAsB,CAAC,qCAAkB,CAAC,MAAM,CAAC,CAAC;oBACzD,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,MAAM;aACT;QACH,CAAC,CAAC;QAxLA,IAAI,YAAY,GAAG,GAAG,CAAC;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY;YACzB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAC3C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CACnC,CAAC;QAEJ,IAAI,CAAC,KAAK,GAAG;YACX,YAAY;SACb,CAAC;IACJ,CAAC;IAyBO,GAAG;QACT,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAMO,OAAO;QACb,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAEe,iBAAiB;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3D,CAAC;IAEe,MAAM;QACpB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,GACrE,IAAI,CAAC,KAAK,CAAC;QAEb,MAAM,UAAU,GAAG,IAAA,oBAAU,EAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAC9B,oBAAC,sBAAS,IACR,kBAAkB,EAAC,2BAA2B,EAC9C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAC9B,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,UAAU,GAChB,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,qBAAK,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,OAAO,GAAG,CACvE,CAAC;QAEF,OAAO;QACL,iEAAiE;QACjE,mEAAmE;QACnE,gCACM,KAAK,EACT,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,IAAI,CAAC,cAAc;YAE9B,6BAAK,SAAS,EAAC,qBAAqB,IAAE,UAAU,CAAO;YACvD,oBAAC,gBAAgB,IACf,YAAY,EAAE,IAAI,CAAC,mBAAmB,EACtC,eAAe,EAAE,IAAI,CAAC,sBAAsB,GAC5C;YACF,6BAAK,SAAS,EAAC,gCAAgC;gBAC7C,oBAAC,sBAAM,IACL,SAAS,EAAE,IAAA,oBAAU,EACnB,8BAA8B,EAC9B,2BAA2B,CAC5B,EACD,SAAS,EAAC,KAAK,EACf,OAAO,EAAE,IAAI,CAAC,SAAS;oBAEvB,oBAAC,iBAAI,IAAC,QAAQ,EAAE,oBAAC,kCAAY,OAAG,GAAI,CAC7B;gBACT,oBAAC,sBAAM,IACL,SAAS,EAAE,IAAA,oBAAU,EACnB,8BAA8B,EAC9B,+BAA+B,CAChC,EACD,OAAO,EAAE,IAAI,CAAC,aAAa;oBAE3B,oBAAC,iBAAI,IAAC,QAAQ,EAAE,oBAAC,+BAAS,OAAG,GAAI,CAC1B,CACL,CACF,CACP,CAAC;IACJ,CAAC;;AAlID,gBAAgB;AACO,uBAAY,GAAyB;IAC1D,MAAM,EAAE,IAAI,mCAAgB,EAAE;CAC/B,AAFkC,CAEjC;AAVS,gCAAU;AAiNvB,MAAM,gBAAiB,SAAQ,KAAK,CAAC,aAAoC;IACvD,MAAM;QACpB,OAAO,CACL,6BAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,6BAA6B,CAAC;YACvD,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,QAAQ,EACrC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,SAGpB;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,KAAK,EAClC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,QAGpB;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,SAAS,EACtC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;gBAEnC,6BAAK,SAAS,EAAC,4BAA4B;oBACzC,oBAAC,iBAAI,IAAC,QAAQ,EAAE,uBAAa,GAAI,CAC7B,CACS;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,MAAM,EACnC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,aAGvB;YAEjB,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,QAAQ,EACrC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,aAGvB;YAEjB,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,QAAQ,EACrC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,aAGvB;YAEjB,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,GAAG,EAChC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,QAGvB;YAEjB,oBAAC,WAAW,IAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;YAC7D,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,MAAM,EACnC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,aAGvB;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,OAAO,EACpC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,QAGvB;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,qCAAkB,CAAC,MAAM,EACnC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,QAGvB;YACjB,iCAAQ,CACJ,CACP,CAAC;IACJ,CAAC;CACF;AASD,MAAM,WAAY,SAAQ,KAAK,CAAC,aAA+B;IAA/D;;QACU,mBAAc,GAAG,CACvB,MAAuD,EACvD,EAAE;YACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC;IAiBJ,CAAC;IAfiB,MAAM;QACpB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7D,MAAM,cAAc,GAAG,IAAA,oBAAU,EAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAErE,OAAO,CACL,oBAAC,2BAAY,OACP,KAAK,EACT,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,IAAI,CAAC,cAAc,IAE3B,OAAO,CACK,CAChB,CAAC;IACJ,CAAC;CACF;AASD,MAAM,cAAe,SAAQ,KAAK,CAAC,aAAkC;IAArE;;QACU,mBAAc,GAAG,CACvB,MAAuD,EACvD,EAAE;YACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC;IAiBJ,CAAC;IAfiB,MAAM;QACpB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAExE,MAAM,cAAc,GAAG,IAAA,oBAAU,EAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAErE,OAAO,CACL,oBAAC,2BAAY,OACP,KAAK,EACT,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,IAAI,CAAC,cAAc,IAE3B,QAAQ,CACI,CAChB,CAAC;IACJ,CAAC;CACF","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 \"./Calculator.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { OnCancelFunc, OnNumberCommitFunc } from \"@itwin/appui-abstract\";\nimport type { CommonProps, Omit } from \"@itwin/core-react\";\nimport { Icon, IconInput } from \"@itwin/core-react\";\nimport { Button, Input } from \"@itwin/itwinui-react\";\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine\";\nimport type { SquareButtonProps } from \"./SquareButton\";\nimport { SquareButton } from \"./SquareButton\";\nimport { SvgCheckmark, SvgRemove } from \"@itwin/itwinui-icons-react\";\nimport backspaceIcon from \"./backspace.svg\";\n\n// cSpell:ignore plusmn\n\n/** @alpha */\nexport interface CalculatorProps extends CommonProps {\n /** Initial value */\n initialValue?: number;\n /** Icon to display beside the calculated result */\n resultIcon?: React.ReactNode;\n /** A function to be run when the OK button is clicked */\n onOk?: OnNumberCommitFunc;\n /** A function to be run when the Cancel button is clicked */\n onCancel?: OnCancelFunc;\n\n /** @internal Calculator state machine. */\n engine: CalculatorEngine;\n}\n\ninterface CalculatorState {\n displayValue: string;\n}\n\n/** @internal */\nexport type CalculatorPropsProps = Pick<CalculatorProps, \"engine\">;\n\n/** @alpha */\nexport class Calculator extends React.PureComponent<\n CalculatorProps,\n CalculatorState\n> {\n private _mainDiv = React.createRef<HTMLDivElement>();\n private _equalsClicked = false;\n\n /** @internal */\n public static readonly defaultProps: CalculatorPropsProps = {\n engine: new CalculatorEngine(),\n };\n\n constructor(props: CalculatorProps) {\n super(props);\n\n let displayValue = \"0\";\n if (this.props.initialValue)\n displayValue = this.props.engine.processValue(\n this.props.initialValue.toString()\n );\n\n this.state = {\n displayValue,\n };\n }\n\n private _onValueButtonClick = (keyChar: string) => {\n const displayValue = this.props.engine.processValue(keyChar);\n this._mainDivFocus();\n this.setState({ displayValue });\n };\n\n private _onOperatorButtonClick = (operator: CalculatorOperator) => {\n if (operator === CalculatorOperator.Clear && this._equalsClicked)\n operator = CalculatorOperator.ClearAll;\n\n const displayValue = this.props.engine.processOperator(operator);\n this._mainDivFocus();\n this.setState({ displayValue });\n\n if (operator === CalculatorOperator.Equals) this._equalsClicked = true;\n else if (operator === CalculatorOperator.ClearAll)\n this._equalsClicked = false;\n };\n\n private _handleOk = (_event: React.MouseEvent): void => {\n this._ok();\n };\n\n private _ok() {\n // istanbul ignore else\n if (this.props.onOk) {\n this.props.onOk(this.props.engine.result);\n }\n this._clearAll();\n }\n\n private _handleCancel = (_event: React.MouseEvent): void => {\n this._cancel();\n };\n\n private _cancel() {\n // istanbul ignore else\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n this._clearAll();\n }\n\n private _clearAll() {\n this.props.engine.clearAll();\n this._equalsClicked = false;\n }\n\n public override componentDidMount() {\n this._mainDivFocus();\n }\n\n private _mainDivFocus() {\n if (this._mainDiv.current) this._mainDiv.current.focus();\n }\n\n public override render() {\n const { className, resultIcon, onOk, onCancel, initialValue, ...props } =\n this.props;\n\n const classNames = classnames(\"uifw-calculator\", className);\n\n const topSection = resultIcon ? (\n <IconInput\n containerClassName=\"uifw-calculator-top-input\"\n value={this.state.displayValue}\n readOnly={true}\n icon={resultIcon}\n />\n ) : (\n <Input value={this.state.displayValue} readOnly={true} size=\"small\" />\n );\n\n return (\n // The event handler is only being used to capture bubbled events\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n {...props}\n ref={this._mainDiv}\n tabIndex={-1}\n className={classNames}\n onKeyDown={this._handleKeyDown}\n >\n <div className=\"uifw-calculator-top\">{topSection}</div>\n <CalculatorKeyPad\n onValueClick={this._onValueButtonClick}\n onOperatorClick={this._onOperatorButtonClick}\n />\n <div className=\"uifw-calculator-bottom-buttons\">\n <Button\n className={classnames(\n \"uifw-calculator-large-button\",\n \"uifw-calculator-ok-button\"\n )}\n styleType=\"cta\"\n onClick={this._handleOk}\n >\n <Icon iconSpec={<SvgCheckmark />} />\n </Button>\n <Button\n className={classnames(\n \"uifw-calculator-large-button\",\n \"uifw-calculator-cancel-button\"\n )}\n onClick={this._handleCancel}\n >\n <Icon iconSpec={<SvgRemove />} />\n </Button>\n </div>\n </div>\n );\n }\n\n private _handleKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>\n ): void => {\n switch (event.key) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n this._onValueButtonClick(event.key);\n break;\n case \"a\":\n case \"A\":\n this._onOperatorButtonClick(CalculatorOperator.ClearAll);\n break;\n case \"c\":\n case \"C\":\n case Key.Clear.valueOf():\n this._onOperatorButtonClick(CalculatorOperator.Clear);\n break;\n case Key.Escape.valueOf():\n this._cancel();\n break;\n case Key.Backspace.valueOf():\n this._onOperatorButtonClick(CalculatorOperator.Backspace);\n break;\n case \"/\":\n case Key.Divide.valueOf():\n this._onOperatorButtonClick(CalculatorOperator.Divide);\n break;\n case \"*\":\n case Key.Multiply.valueOf():\n this._onOperatorButtonClick(CalculatorOperator.Multiply);\n break;\n case \"-\":\n case Key.Subtract.valueOf():\n this._onOperatorButtonClick(CalculatorOperator.Subtract);\n break;\n case \"+\":\n case Key.Add.valueOf():\n this._onOperatorButtonClick(CalculatorOperator.Add);\n break;\n case \".\":\n case Key.Decimal.valueOf():\n this._onOperatorButtonClick(CalculatorOperator.Decimal);\n break;\n case \"=\":\n this._onOperatorButtonClick(CalculatorOperator.Equals);\n break;\n case Key.Enter.valueOf():\n if (!this._equalsClicked)\n this._onOperatorButtonClick(CalculatorOperator.Equals);\n this._ok();\n break;\n }\n };\n}\n\ninterface CalculatorKeyPadProps extends CommonProps {\n /** A function to be run when a value is clicked */\n onValueClick: (key: string) => void;\n /** A function to be run when a value is clicked */\n onOperatorClick: (operator: CalculatorOperator) => void;\n}\n\nclass CalculatorKeyPad extends React.PureComponent<CalculatorKeyPadProps> {\n public override render() {\n return (\n <div className={classnames(\"uifw-calculator-button-grid\")}>\n <OperatorButton\n operator={CalculatorOperator.ClearAll}\n onClick={this.props.onOperatorClick}\n >\n AC\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Clear}\n onClick={this.props.onOperatorClick}\n >\n C\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Backspace}\n onClick={this.props.onOperatorClick}\n >\n <div className=\"uifw-calculator-button-svg\">\n <Icon iconSpec={backspaceIcon} />\n </div>\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Divide}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &divide;\n </OperatorButton>\n\n <ValueButton keyChar=\"7\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"8\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"9\" onClick={this.props.onValueClick} />\n <OperatorButton\n operator={CalculatorOperator.Multiply}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &times;\n </OperatorButton>\n\n <ValueButton keyChar=\"4\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"5\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"6\" onClick={this.props.onValueClick} />\n <OperatorButton\n operator={CalculatorOperator.Subtract}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &minus;\n </OperatorButton>\n\n <ValueButton keyChar=\"1\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"2\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"3\" onClick={this.props.onValueClick} />\n <OperatorButton\n operator={CalculatorOperator.Add}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &#43;\n </OperatorButton>\n\n <ValueButton keyChar=\"0\" onClick={this.props.onValueClick} />\n <OperatorButton\n operator={CalculatorOperator.NegPos}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &plusmn;\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Decimal}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n .\n </OperatorButton>\n <OperatorButton\n operator={CalculatorOperator.Equals}\n onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\"\n >\n &#61;\n </OperatorButton>\n <span />\n </div>\n );\n }\n}\n\ninterface ValueButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\n /** Key to display */\n keyChar: string;\n /** A function to be run when the element is clicked */\n onClick: (key: string) => void;\n}\n\nclass ValueButton extends React.PureComponent<ValueButtonProps> {\n private _handleOnClick = (\n _event: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n this.props.onClick(this.props.keyChar);\n };\n\n public override render() {\n const { className, keyChar, onClick, ...props } = this.props;\n\n const itemClassNames = classnames(\"uifw-calculator-item\", className);\n\n return (\n <SquareButton\n {...props}\n className={itemClassNames}\n onClick={this._handleOnClick}\n >\n {keyChar}\n </SquareButton>\n );\n }\n}\n\ninterface OperatorButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\n /** Key to display */\n operator: CalculatorOperator;\n /** A function to be run when the element is clicked */\n onClick: (operator: CalculatorOperator) => void;\n}\n\nclass OperatorButton extends React.PureComponent<OperatorButtonProps> {\n private _handleOnClick = (\n _event: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n this.props.onClick(this.props.operator);\n };\n\n public override render() {\n const { className, children, operator, onClick, ...props } = this.props;\n\n const itemClassNames = classnames(\"uifw-calculator-item\", className);\n\n return (\n <SquareButton\n {...props}\n className={itemClassNames}\n onClick={this._handleOnClick}\n >\n {children}\n </SquareButton>\n );\n }\n}\n"]}
@@ -4,7 +4,8 @@
4
4
  import "./SquareButton.scss";
5
5
  import * as React from "react";
6
6
  import type { Omit } from "@itwin/core-react";
7
- import type { ButtonProps } from "@itwin/itwinui-react";
7
+ import { Button } from "@itwin/itwinui-react";
8
+ type ButtonProps = React.ComponentPropsWithoutRef<typeof Button>;
8
9
  /** @alpha */
9
10
  export interface SquareButtonProps// eslint-disable-line @typescript-eslint/no-empty-interface
10
11
  extends Omit<ButtonProps, "size" | "styleType"> {
@@ -13,4 +14,5 @@ export interface SquareButtonProps// eslint-disable-line @typescript-eslint/no-e
13
14
  export declare class SquareButton extends React.PureComponent<SquareButtonProps> {
14
15
  render(): React.JSX.Element;
15
16
  }
17
+ export {};
16
18
  //# sourceMappingURL=SquareButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SquareButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/SquareButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,aAAa;AACb,MAAM,WAAW,iBAAkB,4DAA4D;AAC7F,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC;CAAG;AAEpD,aAAa;AACb,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC;IACtD,MAAM;CAiBvB"}
1
+ {"version":3,"file":"SquareButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/SquareButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,KAAK,WAAW,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,CAAC;AAEjE,aAAa;AACb,MAAM,WAAW,iBAAkB,4DAA4D;AAC7F,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC;CAAG;AAEpD,aAAa;AACb,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC;IACtD,MAAM;CAavB"}
@@ -17,10 +17,7 @@ class SquareButton extends React.PureComponent {
17
17
  render() {
18
18
  const { className, style, ...buttonProps } = this.props;
19
19
  const buttonClassNames = (0, classnames_1.default)("uifw-square-button", className);
20
- const buttonStyle = {
21
- ...style,
22
- };
23
- return (React.createElement(itwinui_react_1.Button, { ...buttonProps, size: "small", className: buttonClassNames, style: buttonStyle }));
20
+ return (React.createElement(itwinui_react_1.Button, { ...buttonProps, size: "small", className: buttonClassNames, style: style }));
24
21
  }
25
22
  }
26
23
  exports.SquareButton = SquareButton;
@@ -1 +1 @@
1
- {"version":3,"file":"SquareButton.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/SquareButton.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA6B;AAC7B,2CAAoC;AACpC,+BAA+B;AAG/B,wDAA8C;AAM9C,aAAa;AACb,MAAa,YAAa,SAAQ,KAAK,CAAC,aAAgC;IACtD,MAAM;QACpB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAExD,MAAM,gBAAgB,GAAG,IAAA,oBAAU,EAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,WAAW,GAAwB;YACvC,GAAG,KAAK;SACT,CAAC;QAEF,OAAO,CACL,oBAAC,sBAAM,OACD,WAAW,EACf,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,WAAW,GAClB,CACH,CAAC;IACJ,CAAC;CACF;AAlBD,oCAkBC","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 \"./SquareButton.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { Omit } from \"@itwin/core-react\";\nimport type { ButtonProps } from \"@itwin/itwinui-react\";\nimport { Button } from \"@itwin/itwinui-react\";\n\n/** @alpha */\nexport interface SquareButtonProps // eslint-disable-line @typescript-eslint/no-empty-interface\n extends Omit<ButtonProps, \"size\" | \"styleType\"> {}\n\n/** @alpha */\nexport class SquareButton extends React.PureComponent<SquareButtonProps> {\n public override render() {\n const { className, style, ...buttonProps } = this.props;\n\n const buttonClassNames = classnames(\"uifw-square-button\", className);\n const buttonStyle: React.CSSProperties = {\n ...style,\n };\n\n return (\n <Button\n {...buttonProps}\n size=\"small\"\n className={buttonClassNames}\n style={buttonStyle}\n />\n );\n }\n}\n"]}
1
+ {"version":3,"file":"SquareButton.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/SquareButton.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA6B;AAC7B,2CAAoC;AACpC,+BAA+B;AAE/B,wDAA8C;AAQ9C,aAAa;AACb,MAAa,YAAa,SAAQ,KAAK,CAAC,aAAgC;IACtD,MAAM;QACpB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAExD,MAAM,gBAAgB,GAAG,IAAA,oBAAU,EAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACrE,OAAO,CACL,oBAAC,sBAAM,OACD,WAAW,EACf,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;IACJ,CAAC;CACF;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 AccuDraw\n */\n\nimport \"./SquareButton.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { Omit } from \"@itwin/core-react\";\nimport { Button } from \"@itwin/itwinui-react\";\n\ntype ButtonProps = React.ComponentPropsWithoutRef<typeof Button>;\n\n/** @alpha */\nexport interface SquareButtonProps // eslint-disable-line @typescript-eslint/no-empty-interface\n extends Omit<ButtonProps, \"size\" | \"styleType\"> {}\n\n/** @alpha */\nexport class SquareButton extends React.PureComponent<SquareButtonProps> {\n public override render() {\n const { className, style, ...buttonProps } = this.props;\n\n const buttonClassNames = classnames(\"uifw-square-button\", className);\n return (\n <Button\n {...buttonProps}\n size=\"small\"\n className={buttonClassNames}\n style={style}\n />\n );\n }\n}\n"]}
@@ -30,7 +30,6 @@ function BackstageComposerActionItem({ item, }) {
30
30
  exports.BackstageComposerActionItem = BackstageComposerActionItem;
31
31
  /** @internal */
32
32
  function BackstageComposerStageLauncher({ item, }) {
33
- var _a;
34
33
  const manager = (0, BackstageManager_1.useBackstageManager)();
35
34
  const handleClick = React.useCallback(() => {
36
35
  manager.close();
@@ -39,7 +38,7 @@ function BackstageComposerStageLauncher({ item, }) {
39
38
  void UiFramework_1.UiFramework.frontstages.setActiveFrontstage(item.stageId);
40
39
  }, [manager, item.stageId]);
41
40
  const activeFrontstageId = (0, FrontstageDef_1.useActiveFrontstageId)();
42
- const isActive = appui_abstract_1.ConditionalBooleanValue.getValue((_a = item.isActive) !== null && _a !== void 0 ? _a : item.stageId === activeFrontstageId);
41
+ const isActive = appui_abstract_1.ConditionalBooleanValue.getValue(item.isActive ?? item.stageId === activeFrontstageId);
43
42
  return (React.createElement(Item_1.BackstageItem, { itemId: item.id, providerId: (0, isProviderItem_1.isProviderItem)(item) ? item.providerId : undefined, itemPriority: item.itemPriority, groupPriority: item.groupPriority, icon: React.createElement(core_react_1.Icon, { iconSpec: item.icon }), isActive: isActive, isDisabled: appui_abstract_1.ConditionalBooleanValue.getValue(item.isDisabled), onClick: handleClick, subtitle: appui_abstract_1.ConditionalStringValue.getValue(item.subtitle), badge: core_react_1.BadgeUtilities.getComponentForBadgeType(item.badge) }, appui_abstract_1.ConditionalStringValue.getValue(item.label)));
44
43
  }
45
44
  exports.BackstageComposerStageLauncher = BackstageComposerStageLauncher;
@@ -1 +1 @@
1
- {"version":3,"file":"BackstageComposerItem.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposerItem.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 Backstage\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { BadgeUtilities, Icon } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useActiveFrontstageId } from \"../frontstage/FrontstageDef\";\nimport { BackstageItem as NZ_BackstageItem } from \"../layout/backstage/Item\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\nimport type {\n BackstageActionItem,\n BackstageItem,\n BackstageStageLauncher,\n} from \"./BackstageItem\";\nimport { isBackstageStageLauncher } from \"./BackstageItem\";\nimport { useBackstageManager } from \"./BackstageManager\";\n\n/** @internal */\nexport interface BackstageComposerActionItemProps {\n readonly item: BackstageActionItem;\n}\n\n/** @internal */\nexport function BackstageComposerActionItem({\n item,\n}: BackstageComposerActionItemProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n item.execute();\n }, [manager, item]);\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={<Icon iconSpec={item.icon} />}\n isActive={ConditionalBooleanValue.getValue(item.isActive)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badge)}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** @internal */\nexport interface BackstageComposerStageLauncherProps {\n readonly item: BackstageStageLauncher;\n}\n\n/** @internal */\nexport function BackstageComposerStageLauncher({\n item,\n}: BackstageComposerStageLauncherProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n if (!UiFramework.frontstages.hasFrontstage(item.stageId))\n return Logger.logError(\n \"BackstageComposerStageLauncher\",\n `Frontstage with id '${item.stageId}' not found`\n );\n void UiFramework.frontstages.setActiveFrontstage(item.stageId);\n }, [manager, item.stageId]);\n const activeFrontstageId = useActiveFrontstageId();\n const isActive = ConditionalBooleanValue.getValue(\n item.isActive ?? item.stageId === activeFrontstageId\n );\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={<Icon iconSpec={item.icon} />}\n isActive={isActive}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badge)}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** Props of [[BackstageComposerItem]] component.\n * @internal\n */\nexport interface BackstageComposerItemProps {\n /** Backstage item to render */\n readonly item: BackstageItem;\n}\n\n/** Item of [[BackstageComposer]].\n * @internal\n */\nexport function BackstageComposerItem({ item }: BackstageComposerItemProps) {\n if (isBackstageStageLauncher(item)) {\n return <BackstageComposerStageLauncher item={item} />;\n }\n return <BackstageComposerActionItem item={item} />;\n}\n"]}
1
+ {"version":3,"file":"BackstageComposerItem.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposerItem.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 Backstage\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { BadgeUtilities, Icon } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useActiveFrontstageId } from \"../frontstage/FrontstageDef\";\nimport { BackstageItem as NZ_BackstageItem } from \"../layout/backstage/Item\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\nimport type {\n BackstageActionItem,\n BackstageItem,\n BackstageStageLauncher,\n} from \"./BackstageItem\";\nimport { isBackstageStageLauncher } from \"./BackstageItem\";\nimport { useBackstageManager } from \"./BackstageManager\";\n\n/** @internal */\nexport interface BackstageComposerActionItemProps {\n readonly item: BackstageActionItem;\n}\n\n/** @internal */\nexport function BackstageComposerActionItem({\n item,\n}: BackstageComposerActionItemProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n item.execute();\n }, [manager, item]);\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={<Icon iconSpec={item.icon} />}\n isActive={ConditionalBooleanValue.getValue(item.isActive)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badge)}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** @internal */\nexport interface BackstageComposerStageLauncherProps {\n readonly item: BackstageStageLauncher;\n}\n\n/** @internal */\nexport function BackstageComposerStageLauncher({\n item,\n}: BackstageComposerStageLauncherProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n if (!UiFramework.frontstages.hasFrontstage(item.stageId))\n return Logger.logError(\n \"BackstageComposerStageLauncher\",\n `Frontstage with id '${item.stageId}' not found`\n );\n void UiFramework.frontstages.setActiveFrontstage(item.stageId);\n }, [manager, item.stageId]);\n const activeFrontstageId = useActiveFrontstageId();\n const isActive = ConditionalBooleanValue.getValue(\n item.isActive ?? item.stageId === activeFrontstageId\n );\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={<Icon iconSpec={item.icon} />}\n isActive={isActive}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badge)}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** Props of [[BackstageComposerItem]] component.\n * @internal\n */\nexport interface BackstageComposerItemProps {\n /** Backstage item to render */\n readonly item: BackstageItem;\n}\n\n/** Item of [[BackstageComposer]].\n * @internal\n */\nexport function BackstageComposerItem({ item }: BackstageComposerItemProps) {\n if (isBackstageStageLauncher(item)) {\n return <BackstageComposerStageLauncher item={item} />;\n }\n return <BackstageComposerActionItem item={item} />;\n}\n"]}
@@ -38,7 +38,7 @@ const childHtml = `<!DOCTYPE html>
38
38
  }
39
39
  </style>
40
40
  </head>
41
- <body class="iui-root">
41
+ <body>
42
42
  <noscript>You need to enable JavaScript to run this app.</noscript>
43
43
  <div id="root"></div>
44
44
  </body>
@@ -132,7 +132,7 @@ class InternalChildWindowManager {
132
132
  if (!contentWindow)
133
133
  return undefined;
134
134
  const childWindow = this.openChildWindows.find((openWindow) => openWindow.window === contentWindow);
135
- return childWindow === null || childWindow === void 0 ? void 0 : childWindow.childWindowId;
135
+ return childWindow?.childWindowId;
136
136
  }
137
137
  // istanbul ignore next: Used in `open` which is not tested.
138
138
  renderChildWindowContents(childWindow, childWindowId, content, title) {
@@ -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 * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { UiFramework } from \"../UiFramework\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\nimport { TabIdContext } from \"../layout/widget/ContentRenderer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport type { ChildWindow } from \"./ChildWindowConfig\";\nimport { copyStyles } from \"./CopyStyles\";\nimport \"./InternalChildWindowManager.scss\";\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: ChildWindow,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n if (childWindow.expectedHeight && childWindow.expectedWidth) {\n childWindow.deltaWidth =\n childWindow.expectedWidth -\n (childWindow.shouldUseOuterSized\n ? childWindow.outerWidth\n : childWindow.innerWidth);\n childWindow.deltaHeight =\n childWindow.expectedHeight -\n (childWindow.shouldUseOuterSized\n ? childWindow.outerHeight\n : childWindow.innerHeight);\n }\n\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv && content && React.isValidElement(content)) {\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 let element: React.FunctionComponentElement<any>;\n if (content.props.widgetDef) {\n const tabId = content.props.widgetDef.id as string;\n element = (\n <Provider store={UiFramework.store}>\n <TabIdContext.Provider value={tabId}>\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 </TabIdContext.Provider>\n </Provider>\n );\n } else {\n element = (\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 );\n }\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(element, reactConnectionDiv);\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 // Trigger first so popout can be converted back to main window widget\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: ChildWindow | null = 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 childWindow.expectedHeight = location.height;\n childWindow.expectedWidth = location.width;\n\n // Edge needs to use outer size\n childWindow.shouldUseOuterSized =\n navigator.userAgent.toLowerCase().indexOf(\"edg/\") > -1;\n\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":";AAAA;;;gGAGgG;;;AAEhG;;GAEG;AAEH,+BAA+B;AAC/B,sCAAsC;AACtC,6CAAuC;AACvC,gDAA6C;AAC7C,gEAAkE;AAClE,qEAAmE;AACnE,2EAAyE;AAMzE,sEAAgE;AAChE,wDAAsD;AACtD,wDAAqD;AACrD,oEAAqE;AAErE,6CAA0C;AAC1C,6CAA2C;AAE3C,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;QAqBV,CAAC;AAST;;;;KAIK;AACL,MAAa,0BAA0B;IAAvC;QACU,sBAAiB,GAA0B,EAAE,CAAC;QAE9C,WAAM,GAAqC,EAAE,CAAC;QAqLtD;;;;;WAKG;QACI,UAAK,GAAG,CAAC,aAAqB,EAAE,kBAAkB,GAAG,IAAI,EAAE,EAAE;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACjD,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,CAAC;YACF,IAAI,CAAC,CAAC,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,kBAAkB,EAAE;gBACtB,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;aAC5B;iBAAM;gBACL,wDAAwD;gBACxD,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;gBAClE,aAAa;oBACX,aAAa,CAAC,gCAAgC,CAAC,aAAa,CAAC,CAAC;aACjE;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IA8FJ,CAAC;IAvSC,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACH,kGAAkG;IAC3F,aAAa,CAAC,YAAwB;QAC3C,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,4DAA4D;IACpD,MAAM,CACZ,OAA4C,EAC5C,SAAqC;QAErC,wEAAwE;QACxE,qEAAqE;QACrE,cAAc;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,aAAa,GAAG,yBAAW,CAAC,YAAY,CAAC,MAAM,CACnD,SAAS,CAAC,aAAa,CAAC,WAAW,CACpC,CAAC;YACF,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aAC5C;SACF;aAAM;YACL,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SACrC;IACH,CAAC;IAED;;;;OAIG;IACI,IAAI,CACT,aAAiC;QAEjC,IAAI,SAAS,KAAK,aAAa;YAAE,OAAO,SAAS,CAAC;QAElD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC/B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAwC;QACpD,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC5C,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CACpD,CAAC;QACF,OAAO,WAAW,EAAE,aAAa,CAAC;IACpC,CAAC;IAED,4DAA4D;IACpD,yBAAyB,CAC/B,WAAwB,EACxB,aAAqB,EACrB,OAAwB,EACxB,KAAa;QAEb,WAAW,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACnC,IAAI,WAAW,CAAC,cAAc,IAAI,WAAW,CAAC,aAAa,EAAE;YAC3D,WAAW,CAAC,UAAU;gBACpB,WAAW,CAAC,aAAa;oBACzB,CAAC,WAAW,CAAC,mBAAmB;wBAC9B,CAAC,CAAC,WAAW,CAAC,UAAU;wBACxB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC9B,WAAW,CAAC,WAAW;gBACrB,WAAW,CAAC,cAAc;oBAC1B,CAAC,WAAW,CAAC,mBAAmB;wBAC9B,CAAC,CAAC,WAAW,CAAC,WAAW;wBACzB,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SAChC;QAED,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,kBAAkB,IAAI,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAClE,oEAAoE;YACpE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC1B,aAAa;gBACb,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,IAAI,OAA4C,CAAC;YACjD,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAY,CAAC;gBACnD,OAAO,GAAG,CACR,oBAAC,sBAAQ,IAAC,KAAK,EAAE,yBAAW,CAAC,KAAK;oBAChC,oBAAC,8BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;wBACjC,oBAAC,yCAAqB;4BACpB,oBAAC,2BAAY;gCACX,6BAAK,SAAS,EAAC,kCAAkC;oCAC/C,oBAAC,4BAAa,OAAG;oCACjB,oBAAC,wCAAmB,OAAG;oCACvB,oBAAC,8CAAsB,OAAG;oCAC1B,oBAAC,4BAAe,OAAG;oCACnB,6BAAK,SAAS,EAAC,8CAA8C,IAC1D,OAAO,CACJ,CACF,CACO,CACO,CACF,CACf,CACZ,CAAC;aACH;iBAAM;gBACL,OAAO,GAAG,CACR,oBAAC,sBAAQ,IAAC,KAAK,EAAE,yBAAW,CAAC,KAAK;oBAChC,oBAAC,yCAAqB;wBACpB,oBAAC,2BAAY;4BACX,6BAAK,SAAS,EAAC,kCAAkC;gCAC/C,oBAAC,4BAAa,OAAG;gCACjB,oBAAC,wCAAmB,OAAG;gCACvB,oBAAC,8CAAsB,OAAG;gCAC1B,oBAAC,4BAAe,OAAG;gCACnB,6BAAK,SAAS,EAAC,8CAA8C,IAC1D,OAAO,CACJ,CACF,CACO,CACO,CACf,CACZ,CAAC;aACH;YAED,UAAU,CAAC,GAAG,EAAE;gBACd,IAAA,uBAAU,EAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACjC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC5C,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;gBAClE,IAAI,CAAC,aAAa;oBAAE,OAAO;gBAC3B,aAAa,CAAC,8BAA8B,CAC1C,aAAa,EACb,WAAW,CACZ,CAAC;gBACF,sEAAsE;gBACtE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBACjC,mEAAmE;gBACnE,iEAAiE;gBACjE,eAAe;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;oBAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;iBACtC;;oBAAM,QAAQ,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,gGAAgG;IACzF,QAAQ;QACb,uBAAuB;QACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE,CAChD,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IA0BD,4DAA4D;IACpD,mBAAmB,CACzB,QAAkC;QAElC,MAAM,WAAW,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE;YAC7C,4GAA4G;YAC5G,WAAW,CAAC,IAAI;gBACd,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;YAC9D,WAAW,CAAC,GAAG;gBACb,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;SACjE;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACH,qFAAqF;IAC9E,IAAI,CACT,aAAqB,EACrB,KAAa,EACb,OAAwB,EACxB,QAAkC,EAClC,mBAA6B;QAE7B,gEAAgE;QAChE,IACE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC7B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,IAAI,CAAC,EACN;YACA,OAAO,KAAK,CAAC;SACd;QAED,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAuB,MAAM,CAAC,IAAI,CACjD,GAAG,EACH,EAAE,EACF,SAAS,QAAQ,CAAC,KAAK,WAAW,QAAQ,CAAC,MAAM,SAAS,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,GAAG,+DAA+D,CAC3J,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC/B,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC7C,WAAW,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE3C,+BAA+B;QAC/B,WAAW,CAAC,mBAAmB;YAC7B,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE;YACpB,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,yBAAyB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,CACN,CAAC;SACH;aAAM;YACL,WAAW,CAAC,gBAAgB,CAC1B,MAAM,EACN,GAAG,EAAE;gBACH,IAAI,CAAC,yBAAyB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,CACN,CAAC;YACJ,CAAC,EACD,KAAK,CACN,CAAC;SACH;QAED,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EACR,GAAG,EAAE;YACH,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClE,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;aACjC;QACH,CAAC,EACD,KAAK,CACN,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA5SD,gEA4SC","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 * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { UiFramework } from \"../UiFramework\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\nimport { TabIdContext } from \"../layout/widget/ContentRenderer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport type { ChildWindow } from \"./ChildWindowConfig\";\nimport { copyStyles } from \"./CopyStyles\";\nimport \"./InternalChildWindowManager.scss\";\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>\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: ChildWindow,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n if (childWindow.expectedHeight && childWindow.expectedWidth) {\n childWindow.deltaWidth =\n childWindow.expectedWidth -\n (childWindow.shouldUseOuterSized\n ? childWindow.outerWidth\n : childWindow.innerWidth);\n childWindow.deltaHeight =\n childWindow.expectedHeight -\n (childWindow.shouldUseOuterSized\n ? childWindow.outerHeight\n : childWindow.innerHeight);\n }\n\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv && content && React.isValidElement(content)) {\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 let element: React.FunctionComponentElement<any>;\n if (content.props.widgetDef) {\n const tabId = content.props.widgetDef.id as string;\n element = (\n <Provider store={UiFramework.store}>\n <TabIdContext.Provider value={tabId}>\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 </TabIdContext.Provider>\n </Provider>\n );\n } else {\n element = (\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 );\n }\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(element, reactConnectionDiv);\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 // Trigger first so popout can be converted back to main window widget\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: ChildWindow | null = 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 childWindow.expectedHeight = location.height;\n childWindow.expectedWidth = location.width;\n\n // Edge needs to use outer size\n childWindow.shouldUseOuterSized =\n navigator.userAgent.toLowerCase().indexOf(\"edg/\") > -1;\n\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,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module ConfigurableUi
3
3
  */
4
- import "./configurableui.scss";
4
+ import "./ConfigurableUiContent.scss";
5
5
  import * as React from "react";
6
6
  import type { CommonProps } from "@itwin/core-react";
7
7
  /** Properties for [[ConfigurableUiContent]]
@@ -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;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,qBA0CtE"}
1
+ {"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBrD;;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,qBAsDtE"}
@@ -8,9 +8,10 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.ConfigurableUiContent = void 0;
11
- require("./configurableui.scss");
11
+ require("./ConfigurableUiContent.scss");
12
12
  const React = require("react");
13
13
  const core_react_1 = require("@itwin/core-react");
14
+ const itwinui_react_1 = require("@itwin/itwinui-react");
14
15
  const CursorInformation_1 = require("../cursor/CursorInformation");
15
16
  const CursorMenu_1 = require("../cursor/cursormenu/CursorMenu");
16
17
  const CursorPopupManager_1 = require("../cursor/cursorpopup/CursorPopupManager");
@@ -25,11 +26,12 @@ const Frontstage_1 = require("../widget-panels/Frontstage");
25
26
  const ContentDialogManager_1 = require("../dialog/ContentDialogManager");
26
27
  const UiFramework_1 = require("../UiFramework");
27
28
  const InternalConfigurableUiManager_1 = require("./InternalConfigurableUiManager");
28
- const ActivityMessage_1 = require("../messages/ActivityMessage");
29
+ const MessageRenderer_1 = require("../messages/MessageRenderer");
29
30
  /** The ConfigurableUiContent component is the component the pages specified using ConfigurableUi
30
31
  * @public
31
32
  */
32
33
  function ConfigurableUiContent(props) {
34
+ const [portalContainer, setPortalContainer] = React.useState();
33
35
  React.useEffect(() => {
34
36
  UiFramework_1.UiFramework.keyboardShortcuts.setFocusToHome();
35
37
  }, []);
@@ -47,19 +49,21 @@ function ConfigurableUiContent(props) {
47
49
  CursorInformation_1.CursorInformation.handleMouseMove(point);
48
50
  }, []);
49
51
  return (React.createElement("main", { role: "main", id: "uifw-configurableui-wrapper", className: props.className, style: props.style, onMouseMove: handleMouseMove },
50
- props.appBackstage,
51
- React.createElement(Frontstage_1.WidgetPanelsFrontstage, null),
52
- React.createElement(ContentDialogManager_1.ContentDialogRenderer, null),
53
- React.createElement(ModelessDialogManager_1.ModelessDialogRenderer, null),
54
- React.createElement(ModalDialogManager_1.ModalDialogRenderer, null),
55
- React.createElement(ElementTooltip_1.ElementTooltip, null),
56
- React.createElement(Pointer_1.PointerMessage, null),
57
- React.createElement(KeyboardShortcutMenu_1.KeyboardShortcutMenu, null),
58
- React.createElement(InputField_1.InputFieldMessage, null),
59
- React.createElement(CursorMenu_1.CursorPopupMenu, null),
60
- React.createElement(CursorPopupManager_1.CursorPopupRenderer, null),
61
- React.createElement(PopupManager_1.PopupRenderer, null),
62
- React.createElement(ActivityMessage_1.ActivityMessageRenderer, null)));
52
+ React.createElement(itwinui_react_1.ThemeProvider, { style: { height: "100%" }, portalContainer: portalContainer },
53
+ props.appBackstage,
54
+ React.createElement(Frontstage_1.WidgetPanelsFrontstage, null),
55
+ React.createElement(ContentDialogManager_1.ContentDialogRenderer, null),
56
+ React.createElement(ModelessDialogManager_1.ModelessDialogRenderer, null),
57
+ React.createElement(ModalDialogManager_1.ModalDialogRenderer, null),
58
+ React.createElement(ElementTooltip_1.ElementTooltip, null),
59
+ React.createElement(Pointer_1.PointerMessage, null),
60
+ React.createElement(KeyboardShortcutMenu_1.KeyboardShortcutMenu, null),
61
+ React.createElement(InputField_1.InputFieldMessage, null),
62
+ React.createElement(CursorMenu_1.CursorPopupMenu, null),
63
+ React.createElement(CursorPopupManager_1.CursorPopupRenderer, null),
64
+ React.createElement(PopupManager_1.PopupRenderer, null),
65
+ React.createElement(MessageRenderer_1.MessageRenderer, null)),
66
+ React.createElement("div", { className: "uifw-configurableui-portalContainer", ref: (instance) => setPortalContainer(instance ?? undefined) })));
63
67
  }
64
68
  exports.ConfigurableUiContent = ConfigurableUiContent;
65
69
  //# 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;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
+ {"version":3,"file":"ConfigurableUiContent.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,wCAAsC;AACtC,+BAA+B;AAE/B,kDAA0C;AAC1C,wDAAqD;AACrD,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,iEAA8D;AAiB9D;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAiC;IACrE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAEzD,CAAC;IACJ,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;QAE5B,oBAAC,6BAAa,IACZ,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,eAAe;YAE/B,KAAK,CAAC,YAAY;YACnB,oBAAC,mCAAsB,OAAG;YAC1B,oBAAC,4CAAqB,OAAG;YACzB,oBAAC,8CAAsB,OAAG;YAC1B,oBAAC,wCAAmB,OAAG;YACvB,oBAAC,+BAAc,OAAG;YAClB,oBAAC,wBAAc,OAAG;YAClB,oBAAC,2CAAoB,OAAG;YACxB,oBAAC,8BAAiB,OAAG;YACrB,oBAAC,4BAAe,OAAG;YACnB,oBAAC,wCAAmB,OAAG;YACvB,oBAAC,4BAAa,OAAG;YACjB,oBAAC,iCAAe,OAAG,CACL;QAChB,6BACE,SAAS,EAAC,qCAAqC,EAC/C,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,IAAI,SAAS,CAAC,GAC5D,CACG,CACR,CAAC;AACJ,CAAC;AAtDD,sDAsDC","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 \"./ConfigurableUiContent.scss\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Point } from \"@itwin/core-react\";\nimport { ThemeProvider } from \"@itwin/itwinui-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 { MessageRenderer } from \"../messages/MessageRenderer\";\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 const [portalContainer, setPortalContainer] = React.useState<\n HTMLElement | undefined\n >();\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 <ThemeProvider\n style={{ height: \"100%\" }}\n portalContainer={portalContainer}\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 <MessageRenderer />\n </ThemeProvider>\n <div\n className=\"uifw-configurableui-portalContainer\"\n ref={(instance) => setPortalContainer(instance ?? undefined)}\n />\n </main>\n );\n}\n"]}
@@ -72,3 +72,17 @@
72
72
  .uifw-app-button-small {
73
73
  margin-bottom: 6px;
74
74
  }
75
+
76
+ .uifw-configurableui-portalContainer {
77
+ position: absolute;
78
+ top: 0;
79
+ left: 0;
80
+ width: 100%;
81
+ height: 100%;
82
+ z-index: 99999;
83
+ pointer-events: none;
84
+
85
+ > * {
86
+ pointer-events: all;
87
+ }
88
+ }
@@ -119,7 +119,7 @@ class InternalConfigurableUiManager {
119
119
  * @returns the created control
120
120
  */
121
121
  static create(classId, uniqueId, options, controlId) {
122
- const info = new ConfigurableUiControl_1.ConfigurableCreateInfo(classId, uniqueId, controlId !== null && controlId !== void 0 ? controlId : uniqueId);
122
+ const info = new ConfigurableUiControl_1.ConfigurableCreateInfo(classId, uniqueId, controlId ?? uniqueId);
123
123
  const constructor = this._registeredControls.get(info.classId);
124
124
  if (!constructor) {
125
125
  // eslint-disable-next-line deprecation/deprecation