@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
@@ -25,7 +25,8 @@ const defaultXLabel = "X";
25
25
  const defaultYLabel = "Y";
26
26
  const defaultZLabel = "Z";
27
27
  /** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field
28
- * @beta */
28
+ * @beta
29
+ */
29
30
  export function AccuDrawFieldContainer(props) {
30
31
  const { className, style, orientation, uiSettingsStorage, showZOverride, ...otherProps } = props;
31
32
  const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);
@@ -35,12 +36,12 @@ export function AccuDrawFieldContainer(props) {
35
36
  const angleInputRef = React.useRef(null);
36
37
  const distanceInputRef = React.useRef(null);
37
38
  const focusField = React.useRef(undefined);
38
- const [mode, setMode] = React.useState(CompassMode.Rectangular);
39
- const [xLock, setXLock] = React.useState(false);
40
- const [yLock, setYLock] = React.useState(false);
41
- const [zLock, setZLock] = React.useState(false);
42
- const [angleLock, setAngleLock] = React.useState(false);
43
- const [distanceLock, setDistanceLock] = React.useState(false);
39
+ const [mode, setMode] = React.useState(() => IModelApp.accuDraw.compassMode);
40
+ const [xLock, setXLock] = React.useState(() => IModelApp.accuDraw.getFieldLock(ItemField.X_Item));
41
+ const [yLock, setYLock] = React.useState(() => IModelApp.accuDraw.getFieldLock(ItemField.Y_Item));
42
+ const [zLock, setZLock] = React.useState(() => IModelApp.accuDraw.getFieldLock(ItemField.Z_Item));
43
+ const [angleLock, setAngleLock] = React.useState(() => IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item));
44
+ const [distanceLock, setDistanceLock] = React.useState(() => IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item));
44
45
  const [showZ, setShowZ] = React.useState(true);
45
46
  const [xLabel, setXLabel] = React.useState(defaultXLabel);
46
47
  const [yLabel, setYLabel] = React.useState(defaultYLabel);
@@ -79,12 +80,7 @@ export function AccuDrawFieldContainer(props) {
79
80
  return inputRef;
80
81
  };
81
82
  React.useEffect(() => {
82
- setXLock(IModelApp.accuDraw.getFieldLock(ItemField.X_Item));
83
- setYLock(IModelApp.accuDraw.getFieldLock(ItemField.Y_Item));
84
- setZLock(IModelApp.accuDraw.getFieldLock(ItemField.Z_Item));
85
- setAngleLock(IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item));
86
- setDistanceLock(IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item));
87
- const handleSetFieldLock = (args) => {
83
+ return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener((args) => {
88
84
  switch (args.field) {
89
85
  case ItemField.X_Item:
90
86
  setXLock(args.lock);
@@ -102,8 +98,7 @@ export function AccuDrawFieldContainer(props) {
102
98
  setDistanceLock(args.lock);
103
99
  break;
104
100
  }
105
- };
106
- return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener(handleSetFieldLock);
101
+ });
107
102
  }, []);
108
103
  const setFocusToField = React.useCallback((field) => {
109
104
  const inputRef = getInputRef(field);
@@ -114,26 +109,21 @@ export function AccuDrawFieldContainer(props) {
114
109
  }
115
110
  }, []);
116
111
  React.useEffect(() => {
117
- const handleSetFieldFocus = (args) => {
112
+ return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener((args) => {
118
113
  focusField.current = args.field;
119
114
  setFocusToField(focusField.current);
120
- };
121
- return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);
115
+ });
122
116
  }, [setFocusToField]);
123
117
  React.useEffect(() => {
124
- const handleGrabInputFocus = () => {
125
- // istanbul ignore else
118
+ return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(() => {
126
119
  if (focusField.current)
127
120
  setFocusToField(focusField.current);
128
- };
129
- return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(handleGrabInputFocus);
121
+ });
130
122
  }, [setFocusToField]);
131
123
  React.useEffect(() => {
132
- setMode(IModelApp.accuDraw.compassMode);
133
- const handleSetMode = (args) => {
124
+ return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener((args) => {
134
125
  setMode(args.mode);
135
- };
136
- return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(handleSetMode);
126
+ });
137
127
  }, []);
138
128
  const handleValueChanged = React.useCallback((field, stringValue) => {
139
129
  FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);
@@ -221,9 +211,7 @@ export function AccuDrawFieldContainer(props) {
221
211
  };
222
212
  return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(handleAccuDrawUiSettingsChanged);
223
213
  }, []);
224
- const classNames = classnames("uifw-accudraw-field-container", orientation === Orientation.Vertical
225
- ? "uifw-accudraw-field-container-vertical"
226
- : "uifw-accudraw-field-container-horizontal", className);
214
+ const classNames = classnames("uifw-accudraw-field-container", orientation === Orientation.Vertical ? "uifw-vertical" : "uifw-horizontal", className);
227
215
  const delay = 250;
228
216
  const labelCentered = xLabel !== undefined &&
229
217
  xLabel.length === 1 &&
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.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 \"./AccuDrawFieldContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport type {\n ScreenViewport,\n SelectedViewportChangedArgs,\n} from \"@itwin/core-frontend\";\nimport { CompassMode, IModelApp, ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec, UiStateStorage } from \"@itwin/core-react\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\n\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\nimport type {\n AccuDrawSetCompassModeEventArgs,\n AccuDrawSetFieldFocusEventArgs,\n AccuDrawSetFieldLockEventArgs,\n} from \"./FrameworkAccuDraw\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\nimport angleIconSvg from \"./angle.svg\";\nimport distanceIconSvg from \"./distance.svg\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Properties for [[AccuDrawFieldContainer]] component\n * @beta */\nexport interface AccuDrawFieldContainerProps extends CommonProps {\n /** Orientation of the fields */\n orientation: Orientation;\n /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */\n uiSettingsStorage?: UiStateStorage;\n /** @internal */\n showZOverride?: boolean;\n}\n\nlet AccuDrawContainerIndex = 0;\n\nfunction determineShowZ(vp?: ScreenViewport): boolean {\n const showZ =\n vp !== undefined ? /* istanbul ignore next */ vp.view.is3d() : false;\n return showZ;\n}\n\nconst defaultXLabel = \"X\";\nconst defaultYLabel = \"Y\";\nconst defaultZLabel = \"Z\";\n\n/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field\n * @beta */\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\n const {\n className,\n style,\n orientation,\n uiSettingsStorage,\n showZOverride,\n ...otherProps\n } = props;\n\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\n const xInputRef = React.useRef<HTMLInputElement>(null);\n const yInputRef = React.useRef<HTMLInputElement>(null);\n const zInputRef = React.useRef<HTMLInputElement>(null);\n const angleInputRef = React.useRef<HTMLInputElement>(null);\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\n const focusField = React.useRef<ItemField | undefined>(undefined);\n const [mode, setMode] = React.useState(CompassMode.Rectangular);\n const [xLock, setXLock] = React.useState(false);\n const [yLock, setYLock] = React.useState(false);\n const [zLock, setZLock] = React.useState(false);\n const [angleLock, setAngleLock] = React.useState(false);\n const [distanceLock, setDistanceLock] = React.useState(false);\n const [showZ, setShowZ] = React.useState(true);\n const [xLabel, setXLabel] = React.useState<string | undefined>(defaultXLabel);\n const [yLabel, setYLabel] = React.useState<string | undefined>(defaultYLabel);\n const [zLabel, setZLabel] = React.useState<string | undefined>(defaultZLabel);\n const [angleLabel, setAngleLabel] = React.useState<string | undefined>(\n undefined\n );\n const [distanceLabel, setDistanceLabel] = React.useState<string | undefined>(\n undefined\n );\n const [xIcon, setXIcon] = React.useState<IconSpec | undefined>(undefined);\n const [yIcon, setYIcon] = React.useState<IconSpec | undefined>(undefined);\n const [zIcon, setZIcon] = React.useState<IconSpec | undefined>(undefined);\n const [angleIcon, setAngleIcon] = React.useState<IconSpec | undefined>(\n angleIconSvg\n );\n const [distanceIcon, setDistanceIcon] = React.useState<IconSpec | undefined>(\n distanceIconSvg\n );\n const [xStyle, setXStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [yStyle, setYStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [zStyle, setZStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [angleStyle, setAngleStyle] = React.useState<\n React.CSSProperties | undefined\n >(undefined);\n const [distanceStyle, setDistanceStyle] = React.useState<\n React.CSSProperties | undefined\n >(undefined);\n\n const getInputRef = (field: ItemField): React.RefObject<HTMLInputElement> => {\n let inputRef: React.RefObject<HTMLInputElement>;\n switch (field) {\n case ItemField.X_Item:\n inputRef = xInputRef;\n break;\n case ItemField.Y_Item:\n inputRef = yInputRef;\n break;\n case ItemField.Z_Item:\n inputRef = zInputRef;\n break;\n case ItemField.ANGLE_Item:\n inputRef = angleInputRef;\n break;\n case ItemField.DIST_Item:\n inputRef = distanceInputRef;\n break;\n }\n return inputRef;\n };\n\n React.useEffect(() => {\n setXLock(IModelApp.accuDraw.getFieldLock(ItemField.X_Item));\n setYLock(IModelApp.accuDraw.getFieldLock(ItemField.Y_Item));\n setZLock(IModelApp.accuDraw.getFieldLock(ItemField.Z_Item));\n setAngleLock(IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item));\n setDistanceLock(IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item));\n\n const handleSetFieldLock = (args: AccuDrawSetFieldLockEventArgs) => {\n switch (args.field) {\n case ItemField.X_Item:\n setXLock(args.lock);\n break;\n case ItemField.Y_Item:\n setYLock(args.lock);\n break;\n case ItemField.Z_Item:\n setZLock(args.lock);\n break;\n case ItemField.ANGLE_Item:\n setAngleLock(args.lock);\n break;\n case ItemField.DIST_Item:\n setDistanceLock(args.lock);\n break;\n }\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener(\n handleSetFieldLock\n );\n }, []);\n\n const setFocusToField = React.useCallback((field: ItemField) => {\n const inputRef = getInputRef(field);\n\n // istanbul ignore else\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, []);\n\n React.useEffect(() => {\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\n focusField.current = args.field;\n setFocusToField(focusField.current);\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(\n handleSetFieldFocus\n );\n }, [setFocusToField]);\n\n React.useEffect(() => {\n const handleGrabInputFocus = () => {\n // istanbul ignore else\n if (focusField.current) setFocusToField(focusField.current);\n };\n return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(\n handleGrabInputFocus\n );\n }, [setFocusToField]);\n\n React.useEffect(() => {\n setMode(IModelApp.accuDraw.compassMode);\n\n const handleSetMode = (args: AccuDrawSetCompassModeEventArgs) => {\n setMode(args.mode);\n };\n\n return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(\n handleSetMode\n );\n }, []);\n\n const handleValueChanged = React.useCallback(\n (field: ItemField, stringValue: string) => {\n FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);\n },\n []\n );\n\n const handleEscPressed = React.useCallback(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n\n React.useEffect(() => {\n setShowZ(\n showZOverride || determineShowZ(IModelApp.viewManager.selectedView)\n );\n\n // istanbul ignore next\n const handleSelectedViewportChanged = (\n args: SelectedViewportChangedArgs\n ) => {\n setShowZ(determineShowZ(args.current));\n };\n\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(\n handleSelectedViewportChanged\n );\n }, [showZOverride]);\n\n React.useEffect(() => {\n const createFieldStyle = (\n inStyle: React.CSSProperties | undefined,\n backgroundColor: ColorDef | string | undefined,\n foregroundColor: ColorDef | string | undefined\n ): React.CSSProperties | undefined => {\n let fieldStyle: React.CSSProperties | undefined;\n let rgbaString = \"\";\n if (inStyle || backgroundColor || foregroundColor) {\n fieldStyle = inStyle ? inStyle : {};\n if (backgroundColor) {\n rgbaString =\n typeof backgroundColor === \"string\"\n ? backgroundColor\n : getCSSColorFromDef(backgroundColor);\n fieldStyle = { ...fieldStyle, backgroundColor: rgbaString };\n }\n if (foregroundColor) {\n rgbaString =\n typeof foregroundColor === \"string\"\n ? foregroundColor\n : getCSSColorFromDef(foregroundColor);\n fieldStyle = { ...fieldStyle, color: rgbaString };\n }\n }\n return fieldStyle;\n };\n\n const processAccuDrawUiSettings = (settings?: AccuDrawUiSettings) => {\n setXStyle(\n settings\n ? createFieldStyle(\n settings.xStyle,\n settings.xBackgroundColor,\n settings.xForegroundColor\n )\n : undefined\n );\n setYStyle(\n settings\n ? createFieldStyle(\n settings.yStyle,\n settings.yBackgroundColor,\n settings.yForegroundColor\n )\n : undefined\n );\n setZStyle(\n settings\n ? createFieldStyle(\n settings.zStyle,\n settings.zBackgroundColor,\n settings.zForegroundColor\n )\n : undefined\n );\n setAngleStyle(\n settings\n ? createFieldStyle(\n settings.angleStyle,\n settings.angleBackgroundColor,\n settings.angleForegroundColor\n )\n : undefined\n );\n setDistanceStyle(\n settings\n ? createFieldStyle(\n settings.distanceStyle,\n settings.distanceBackgroundColor,\n settings.distanceForegroundColor\n )\n : undefined\n );\n\n setXLabel(\n settings && settings.xLabel !== undefined\n ? settings.xLabel\n : defaultXLabel\n );\n setYLabel(\n settings && settings.yLabel !== undefined\n ? settings.yLabel\n : defaultYLabel\n );\n setZLabel(\n settings && settings.zLabel !== undefined\n ? settings.zLabel\n : defaultZLabel\n );\n setAngleLabel(\n settings && settings.angleLabel !== undefined\n ? settings.angleLabel\n : undefined\n );\n setDistanceLabel(\n settings && settings.distanceLabel !== undefined\n ? settings.distanceLabel\n : undefined\n );\n\n setXIcon(\n settings && settings.xIcon !== undefined ? settings.xIcon : undefined\n );\n setYIcon(\n settings && settings.yIcon !== undefined ? settings.yIcon : undefined\n );\n setZIcon(\n settings && settings.zIcon !== undefined ? settings.zIcon : undefined\n );\n setAngleIcon(\n settings && settings.angleIcon !== undefined\n ? settings.angleIcon\n : angleIconSvg\n );\n setDistanceIcon(\n settings && settings.distanceIcon !== undefined\n ? settings.distanceIcon\n : distanceIconSvg\n );\n };\n\n if (FrameworkAccuDraw.uiStateStorage)\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\n\n // istanbul ignore next\n const handleAccuDrawUiSettingsChanged = () => {\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\n };\n\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(\n handleAccuDrawUiSettingsChanged\n );\n }, []);\n\n const classNames = classnames(\n \"uifw-accudraw-field-container\",\n orientation === Orientation.Vertical\n ? \"uifw-accudraw-field-container-vertical\"\n : \"uifw-accudraw-field-container-horizontal\",\n className\n );\n\n const delay = 250;\n const labelCentered =\n xLabel !== undefined &&\n xLabel.length === 1 &&\n yLabel !== undefined &&\n yLabel.length === 1 &&\n zLabel !== undefined &&\n zLabel.length === 1;\n\n return (\n <div className={classNames} style={style} {...otherProps}>\n {mode === CompassMode.Rectangular && (\n <>\n <AccuDrawInputField\n ref={xInputRef}\n isLocked={xLock}\n className=\"uifw-accudraw-x-value\"\n style={xStyle}\n field={ItemField.X_Item}\n id={`uifw-accudraw-x-${containerIndex}`}\n data-testid=\"uifw-accudraw-x\"\n label={xLabel}\n iconSpec={xIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.X_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={yInputRef}\n isLocked={yLock}\n className=\"uifw-accudraw-y-value\"\n style={yStyle}\n field={ItemField.Y_Item}\n id={`uifw-accudraw-y-${containerIndex}`}\n data-testid=\"uifw-accudraw-y\"\n label={yLabel}\n iconSpec={yIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Y_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n {showZ && (\n <AccuDrawInputField\n ref={zInputRef}\n isLocked={zLock}\n className=\"uifw-accudraw-z-value\"\n style={zStyle}\n field={ItemField.Z_Item}\n id={`uifw-accudraw-z-${containerIndex}`}\n data-testid=\"uifw-accudraw-z\"\n label={zLabel}\n iconSpec={zIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Z_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n )}\n </>\n )}\n {mode === CompassMode.Polar && (\n <>\n <AccuDrawInputField\n ref={angleInputRef}\n isLocked={angleLock}\n className=\"uifw-accudraw-angle-value\"\n style={angleStyle}\n field={ItemField.ANGLE_Item}\n id={`uifw-accudraw-angle-${containerIndex}`}\n data-testid=\"uifw-accudraw-angle\"\n label={angleLabel}\n iconSpec={angleIcon}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.ANGLE_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={distanceInputRef}\n isLocked={distanceLock}\n className=\"uifw-accudraw-distance-value\"\n style={distanceStyle}\n field={ItemField.DIST_Item}\n id={`uifw-accudraw-distance-${containerIndex}`}\n data-testid=\"uifw-accudraw-distance\"\n label={distanceLabel}\n iconSpec={distanceIcon}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.DIST_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n </>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.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 \"./AccuDrawFieldContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport type {\n ScreenViewport,\n SelectedViewportChangedArgs,\n} from \"@itwin/core-frontend\";\nimport { CompassMode, IModelApp, ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec, UiStateStorage } from \"@itwin/core-react\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\n\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\nimport angleIconSvg from \"./angle.svg\";\nimport distanceIconSvg from \"./distance.svg\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Properties for [[AccuDrawFieldContainer]] component\n * @beta\n */\nexport interface AccuDrawFieldContainerProps extends CommonProps {\n /** Orientation of the fields */\n orientation: Orientation;\n /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */\n uiSettingsStorage?: UiStateStorage;\n /** @internal */\n showZOverride?: boolean;\n}\n\nlet AccuDrawContainerIndex = 0;\n\nfunction determineShowZ(vp?: ScreenViewport): boolean {\n const showZ =\n vp !== undefined ? /* istanbul ignore next */ vp.view.is3d() : false;\n return showZ;\n}\n\nconst defaultXLabel = \"X\";\nconst defaultYLabel = \"Y\";\nconst defaultZLabel = \"Z\";\n\n/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field\n * @beta\n */\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\n const {\n className,\n style,\n orientation,\n uiSettingsStorage,\n showZOverride,\n ...otherProps\n } = props;\n\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\n const xInputRef = React.useRef<HTMLInputElement>(null);\n const yInputRef = React.useRef<HTMLInputElement>(null);\n const zInputRef = React.useRef<HTMLInputElement>(null);\n const angleInputRef = React.useRef<HTMLInputElement>(null);\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\n const focusField = React.useRef<ItemField | undefined>(undefined);\n const [mode, setMode] = React.useState(() => IModelApp.accuDraw.compassMode);\n const [xLock, setXLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.X_Item)\n );\n const [yLock, setYLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.Y_Item)\n );\n const [zLock, setZLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.Z_Item)\n );\n const [angleLock, setAngleLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item)\n );\n const [distanceLock, setDistanceLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item)\n );\n const [showZ, setShowZ] = React.useState(true);\n const [xLabel, setXLabel] = React.useState<string | undefined>(defaultXLabel);\n const [yLabel, setYLabel] = React.useState<string | undefined>(defaultYLabel);\n const [zLabel, setZLabel] = React.useState<string | undefined>(defaultZLabel);\n const [angleLabel, setAngleLabel] = React.useState<string | undefined>(\n undefined\n );\n const [distanceLabel, setDistanceLabel] = React.useState<string | undefined>(\n undefined\n );\n const [xIcon, setXIcon] = React.useState<IconSpec | undefined>(undefined);\n const [yIcon, setYIcon] = React.useState<IconSpec | undefined>(undefined);\n const [zIcon, setZIcon] = React.useState<IconSpec | undefined>(undefined);\n const [angleIcon, setAngleIcon] = React.useState<IconSpec | undefined>(\n angleIconSvg\n );\n const [distanceIcon, setDistanceIcon] = React.useState<IconSpec | undefined>(\n distanceIconSvg\n );\n const [xStyle, setXStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [yStyle, setYStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [zStyle, setZStyle] = React.useState<React.CSSProperties | undefined>(\n undefined\n );\n const [angleStyle, setAngleStyle] = React.useState<\n React.CSSProperties | undefined\n >(undefined);\n const [distanceStyle, setDistanceStyle] = React.useState<\n React.CSSProperties | undefined\n >(undefined);\n\n const getInputRef = (field: ItemField): React.RefObject<HTMLInputElement> => {\n let inputRef: React.RefObject<HTMLInputElement>;\n switch (field) {\n case ItemField.X_Item:\n inputRef = xInputRef;\n break;\n case ItemField.Y_Item:\n inputRef = yInputRef;\n break;\n case ItemField.Z_Item:\n inputRef = zInputRef;\n break;\n case ItemField.ANGLE_Item:\n inputRef = angleInputRef;\n break;\n case ItemField.DIST_Item:\n inputRef = distanceInputRef;\n break;\n }\n return inputRef;\n };\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener((args) => {\n switch (args.field) {\n case ItemField.X_Item:\n setXLock(args.lock);\n break;\n case ItemField.Y_Item:\n setYLock(args.lock);\n break;\n case ItemField.Z_Item:\n setZLock(args.lock);\n break;\n case ItemField.ANGLE_Item:\n setAngleLock(args.lock);\n break;\n case ItemField.DIST_Item:\n setDistanceLock(args.lock);\n break;\n }\n });\n }, []);\n\n const setFocusToField = React.useCallback((field: ItemField) => {\n const inputRef = getInputRef(field);\n\n // istanbul ignore else\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, []);\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(\n (args) => {\n focusField.current = args.field;\n setFocusToField(focusField.current);\n }\n );\n }, [setFocusToField]);\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(() => {\n if (focusField.current) setFocusToField(focusField.current);\n });\n }, [setFocusToField]);\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(\n (args) => {\n setMode(args.mode);\n }\n );\n }, []);\n\n const handleValueChanged = React.useCallback(\n (field: ItemField, stringValue: string) => {\n FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);\n },\n []\n );\n\n const handleEscPressed = React.useCallback(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n\n React.useEffect(() => {\n setShowZ(\n showZOverride || determineShowZ(IModelApp.viewManager.selectedView)\n );\n\n // istanbul ignore next\n const handleSelectedViewportChanged = (\n args: SelectedViewportChangedArgs\n ) => {\n setShowZ(determineShowZ(args.current));\n };\n\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(\n handleSelectedViewportChanged\n );\n }, [showZOverride]);\n\n React.useEffect(() => {\n const createFieldStyle = (\n inStyle: React.CSSProperties | undefined,\n backgroundColor: ColorDef | string | undefined,\n foregroundColor: ColorDef | string | undefined\n ): React.CSSProperties | undefined => {\n let fieldStyle: React.CSSProperties | undefined;\n let rgbaString = \"\";\n if (inStyle || backgroundColor || foregroundColor) {\n fieldStyle = inStyle ? inStyle : {};\n if (backgroundColor) {\n rgbaString =\n typeof backgroundColor === \"string\"\n ? backgroundColor\n : getCSSColorFromDef(backgroundColor);\n fieldStyle = { ...fieldStyle, backgroundColor: rgbaString };\n }\n if (foregroundColor) {\n rgbaString =\n typeof foregroundColor === \"string\"\n ? foregroundColor\n : getCSSColorFromDef(foregroundColor);\n fieldStyle = { ...fieldStyle, color: rgbaString };\n }\n }\n return fieldStyle;\n };\n\n const processAccuDrawUiSettings = (settings?: AccuDrawUiSettings) => {\n setXStyle(\n settings\n ? createFieldStyle(\n settings.xStyle,\n settings.xBackgroundColor,\n settings.xForegroundColor\n )\n : undefined\n );\n setYStyle(\n settings\n ? createFieldStyle(\n settings.yStyle,\n settings.yBackgroundColor,\n settings.yForegroundColor\n )\n : undefined\n );\n setZStyle(\n settings\n ? createFieldStyle(\n settings.zStyle,\n settings.zBackgroundColor,\n settings.zForegroundColor\n )\n : undefined\n );\n setAngleStyle(\n settings\n ? createFieldStyle(\n settings.angleStyle,\n settings.angleBackgroundColor,\n settings.angleForegroundColor\n )\n : undefined\n );\n setDistanceStyle(\n settings\n ? createFieldStyle(\n settings.distanceStyle,\n settings.distanceBackgroundColor,\n settings.distanceForegroundColor\n )\n : undefined\n );\n\n setXLabel(\n settings && settings.xLabel !== undefined\n ? settings.xLabel\n : defaultXLabel\n );\n setYLabel(\n settings && settings.yLabel !== undefined\n ? settings.yLabel\n : defaultYLabel\n );\n setZLabel(\n settings && settings.zLabel !== undefined\n ? settings.zLabel\n : defaultZLabel\n );\n setAngleLabel(\n settings && settings.angleLabel !== undefined\n ? settings.angleLabel\n : undefined\n );\n setDistanceLabel(\n settings && settings.distanceLabel !== undefined\n ? settings.distanceLabel\n : undefined\n );\n\n setXIcon(\n settings && settings.xIcon !== undefined ? settings.xIcon : undefined\n );\n setYIcon(\n settings && settings.yIcon !== undefined ? settings.yIcon : undefined\n );\n setZIcon(\n settings && settings.zIcon !== undefined ? settings.zIcon : undefined\n );\n setAngleIcon(\n settings && settings.angleIcon !== undefined\n ? settings.angleIcon\n : angleIconSvg\n );\n setDistanceIcon(\n settings && settings.distanceIcon !== undefined\n ? settings.distanceIcon\n : distanceIconSvg\n );\n };\n\n if (FrameworkAccuDraw.uiStateStorage)\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\n\n // istanbul ignore next\n const handleAccuDrawUiSettingsChanged = () => {\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\n };\n\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(\n handleAccuDrawUiSettingsChanged\n );\n }, []);\n\n const classNames = classnames(\n \"uifw-accudraw-field-container\",\n orientation === Orientation.Vertical ? \"uifw-vertical\" : \"uifw-horizontal\",\n className\n );\n\n const delay = 250;\n const labelCentered =\n xLabel !== undefined &&\n xLabel.length === 1 &&\n yLabel !== undefined &&\n yLabel.length === 1 &&\n zLabel !== undefined &&\n zLabel.length === 1;\n\n return (\n <div className={classNames} style={style} {...otherProps}>\n {mode === CompassMode.Rectangular && (\n <>\n <AccuDrawInputField\n ref={xInputRef}\n isLocked={xLock}\n className=\"uifw-accudraw-x-value\"\n style={xStyle}\n field={ItemField.X_Item}\n id={`uifw-accudraw-x-${containerIndex}`}\n data-testid=\"uifw-accudraw-x\"\n label={xLabel}\n iconSpec={xIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.X_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={yInputRef}\n isLocked={yLock}\n className=\"uifw-accudraw-y-value\"\n style={yStyle}\n field={ItemField.Y_Item}\n id={`uifw-accudraw-y-${containerIndex}`}\n data-testid=\"uifw-accudraw-y\"\n label={yLabel}\n iconSpec={yIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Y_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n {showZ && (\n <AccuDrawInputField\n ref={zInputRef}\n isLocked={zLock}\n className=\"uifw-accudraw-z-value\"\n style={zStyle}\n field={ItemField.Z_Item}\n id={`uifw-accudraw-z-${containerIndex}`}\n data-testid=\"uifw-accudraw-z\"\n label={zLabel}\n iconSpec={zIcon}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Z_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n )}\n </>\n )}\n {mode === CompassMode.Polar && (\n <>\n <AccuDrawInputField\n ref={angleInputRef}\n isLocked={angleLock}\n className=\"uifw-accudraw-angle-value\"\n style={angleStyle}\n field={ItemField.ANGLE_Item}\n id={`uifw-accudraw-angle-${containerIndex}`}\n data-testid=\"uifw-accudraw-angle\"\n label={angleLabel}\n iconSpec={angleIcon}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.ANGLE_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={distanceInputRef}\n isLocked={distanceLock}\n className=\"uifw-accudraw-distance-value\"\n style={distanceStyle}\n field={ItemField.DIST_Item}\n id={`uifw-accudraw-distance-${containerIndex}`}\n data-testid=\"uifw-accudraw-distance\"\n label={distanceLabel}\n iconSpec={distanceIcon}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.DIST_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n </>\n )}\n </div>\n );\n}\n"]}
@@ -2,26 +2,19 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
6
- @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
7
-
8
5
  .uifw-accudraw-field-container {
9
6
  padding: 6px;
10
7
 
11
- .iui-input {
12
- padding: $uicore-iui-input-padding;
8
+ &.uifw-horizontal {
9
+ max-width: 550px;
10
+ display: flex;
11
+ flex-direction: row;
13
12
  }
14
- }
15
13
 
16
- .uifw-accudraw-field-container-horizontal {
17
- max-width: 550px;
18
- display: flex;
19
- flex-direction: row;
20
- }
21
-
22
- .uifw-accudraw-field-container-vertical {
23
- max-width: 250px;
24
- display: grid;
25
- grid-template-columns: auto 1fr auto;
26
- row-gap: var(--iui-size-2xs);
14
+ &.uifw-vertical {
15
+ max-width: 250px;
16
+ display: grid;
17
+ grid-template-columns: auto 1fr auto;
18
+ row-gap: var(--iui-size-2xs);
19
+ }
27
20
  }
@@ -70,10 +70,10 @@ const ForwardRefAccuDrawInput = React.forwardRef(function ForwardRefAccuDrawInpu
70
70
  }, []);
71
71
  const handleKeyDown = React.useCallback((e) => {
72
72
  switch (e.key) {
73
- case Key.Escape:
73
+ case Key.Escape.valueOf():
74
74
  onEscPressed && onEscPressed();
75
75
  return;
76
- case Key.Enter:
76
+ case Key.Enter.valueOf():
77
77
  onEnterPressed && onEnterPressed();
78
78
  return;
79
79
  }
@@ -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":"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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.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
 
@@ -63,39 +63,39 @@ class Calculator extends React.PureComponent {
63
63
  break;
64
64
  case "c":
65
65
  case "C":
66
- case Key.Clear:
66
+ case Key.Clear.valueOf():
67
67
  this._onOperatorButtonClick(CalculatorOperator.Clear);
68
68
  break;
69
- case Key.Escape:
69
+ case Key.Escape.valueOf():
70
70
  this._cancel();
71
71
  break;
72
- case Key.Backspace:
72
+ case Key.Backspace.valueOf():
73
73
  this._onOperatorButtonClick(CalculatorOperator.Backspace);
74
74
  break;
75
75
  case "/":
76
- case Key.Divide:
76
+ case Key.Divide.valueOf():
77
77
  this._onOperatorButtonClick(CalculatorOperator.Divide);
78
78
  break;
79
79
  case "*":
80
- case Key.Multiply:
80
+ case Key.Multiply.valueOf():
81
81
  this._onOperatorButtonClick(CalculatorOperator.Multiply);
82
82
  break;
83
83
  case "-":
84
- case Key.Subtract:
84
+ case Key.Subtract.valueOf():
85
85
  this._onOperatorButtonClick(CalculatorOperator.Subtract);
86
86
  break;
87
87
  case "+":
88
- case Key.Add:
88
+ case Key.Add.valueOf():
89
89
  this._onOperatorButtonClick(CalculatorOperator.Add);
90
90
  break;
91
91
  case ".":
92
- case Key.Decimal:
92
+ case Key.Decimal.valueOf():
93
93
  this._onOperatorButtonClick(CalculatorOperator.Decimal);
94
94
  break;
95
95
  case "=":
96
96
  this._onOperatorButtonClick(CalculatorOperator.Equals);
97
97
  break;
98
- case Key.Enter:
98
+ case Key.Enter.valueOf():
99
99
  if (!this._equalsClicked)
100
100
  this._onOperatorButtonClick(CalculatorOperator.Equals);
101
101
  this._ok();
@@ -1 +1 @@
1
- {"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAC3B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,aAAa,MAAM,iBAAiB,CAAC;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,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc;gBAC9D,QAAQ,GAAG,kBAAkB,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,kBAAkB,CAAC,MAAM;gBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;iBAClE,IAAI,QAAQ,KAAK,kBAAkB,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,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,KAAK;oBACZ,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBACtD,MAAM;gBACR,KAAK,GAAG,CAAC,MAAM;oBACb,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM;gBACR,KAAK,GAAG,CAAC,SAAS;oBAChB,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBAC1D,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,MAAM;oBACb,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,QAAQ;oBACf,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,QAAQ;oBACf,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,GAAG;oBACV,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBACpD,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,OAAO;oBACd,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,GAAG,CAAC,KAAK;oBACZ,IAAI,CAAC,IAAI,CAAC,cAAc;wBACtB,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,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,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAC9B,oBAAC,SAAS,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,KAAK,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,MAAM,IACL,SAAS,EAAE,UAAU,CACnB,8BAA8B,EAC9B,2BAA2B,CAC5B,EACD,SAAS,EAAC,KAAK,EACf,OAAO,EAAE,IAAI,CAAC,SAAS;oBAEvB,oBAAC,IAAI,IAAC,QAAQ,EAAE,oBAAC,YAAY,OAAG,GAAI,CAC7B;gBACT,oBAAC,MAAM,IACL,SAAS,EAAE,UAAU,CACnB,8BAA8B,EAC9B,+BAA+B,CAChC,EACD,OAAO,EAAE,IAAI,CAAC,aAAa;oBAE3B,oBAAC,IAAI,IAAC,QAAQ,EAAE,oBAAC,SAAS,OAAG,GAAI,CAC1B,CACL,CACF,CACP,CAAC;IACJ,CAAC;;AAlID,gBAAgB;AACO,uBAAY,GAAyB;IAC1D,MAAM,EAAE,IAAI,gBAAgB,EAAE;CAC/B,AAFkC,CAEjC;SAVS,UAAU;AAiNvB,MAAM,gBAAiB,SAAQ,KAAK,CAAC,aAAoC;IACvD,MAAM;QACpB,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,CAAC,6BAA6B,CAAC;YACvD,oBAAC,cAAc,IACb,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EACrC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,SAGpB;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAClC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,QAGpB;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,kBAAkB,CAAC,SAAS,EACtC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;gBAEnC,6BAAK,SAAS,EAAC,4BAA4B;oBACzC,oBAAC,IAAI,IAAC,QAAQ,EAAE,aAAa,GAAI,CAC7B,CACS;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,kBAAkB,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,kBAAkB,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,kBAAkB,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,kBAAkB,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,kBAAkB,CAAC,MAAM,EACnC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,aAGvB;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,kBAAkB,CAAC,OAAO,EACpC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAC,4BAA4B,QAGvB;YACjB,oBAAC,cAAc,IACb,QAAQ,EAAE,kBAAkB,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,UAAU,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAErE,OAAO,CACL,oBAAC,YAAY,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,UAAU,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAErE,OAAO,CACL,oBAAC,YAAY,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:\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":"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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.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"}
@@ -14,10 +14,7 @@ export class SquareButton extends React.PureComponent {
14
14
  render() {
15
15
  const { className, style, ...buttonProps } = this.props;
16
16
  const buttonClassNames = classnames("uifw-square-button", className);
17
- const buttonStyle = {
18
- ...style,
19
- };
20
- return (React.createElement(Button, { ...buttonProps, size: "small", className: buttonClassNames, style: buttonStyle }));
17
+ return (React.createElement(Button, { ...buttonProps, size: "small", className: buttonClassNames, style: style }));
21
18
  }
22
19
  }
23
20
  //# sourceMappingURL=SquareButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SquareButton.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/SquareButton.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAC7B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAM9C,aAAa;AACb,MAAM,OAAO,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,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,WAAW,GAAwB;YACvC,GAAG,KAAK;SACT,CAAC;QAEF,OAAO,CACL,oBAAC,MAAM,OACD,WAAW,EACf,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,WAAW,GAClB,CACH,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 \"./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,OAAO,qBAAqB,CAAC;AAC7B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQ9C,aAAa;AACb,MAAM,OAAO,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,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACrE,OAAO,CACL,oBAAC,MAAM,OACD,WAAW,EACf,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,KAAK,GACZ,CACH,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 \"./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"]}
@@ -26,7 +26,6 @@ export function BackstageComposerActionItem({ item, }) {
26
26
  }
27
27
  /** @internal */
28
28
  export function BackstageComposerStageLauncher({ item, }) {
29
- var _a;
30
29
  const manager = useBackstageManager();
31
30
  const handleClick = React.useCallback(() => {
32
31
  manager.close();
@@ -35,7 +34,7 @@ export function BackstageComposerStageLauncher({ item, }) {
35
34
  void UiFramework.frontstages.setActiveFrontstage(item.stageId);
36
35
  }, [manager, item.stageId]);
37
36
  const activeFrontstageId = useActiveFrontstageId();
38
- const isActive = ConditionalBooleanValue.getValue((_a = item.isActive) !== null && _a !== void 0 ? _a : item.stageId === activeFrontstageId);
37
+ const isActive = ConditionalBooleanValue.getValue(item.isActive ?? item.stageId === activeFrontstageId);
39
38
  return (React.createElement(NZ_BackstageItem, { itemId: item.id, providerId: isProviderItem(item) ? item.providerId : undefined, itemPriority: item.itemPriority, groupPriority: item.groupPriority, icon: React.createElement(Icon, { iconSpec: item.icon }), isActive: isActive, isDisabled: ConditionalBooleanValue.getValue(item.isDisabled), onClick: handleClick, subtitle: ConditionalStringValue.getValue(item.subtitle), badge: BadgeUtilities.getComponentForBadgeType(item.badge) }, ConditionalStringValue.getValue(item.label)));
40
39
  }
41
40
  /** Item of [[BackstageComposer]].