@itwin/appui-react 5.3.1 → 5.5.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 (293) hide show
  1. package/CHANGELOG.md +330 -30
  2. package/lib/appui-react/UiFramework.d.ts +6 -2
  3. package/lib/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/appui-react/UiFramework.js +30 -3
  5. package/lib/appui-react/UiFramework.js.map +1 -1
  6. package/lib/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  7. package/lib/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  8. package/lib/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  9. package/lib/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  10. package/lib/appui-react/accudraw/AccuDrawPopupManager.js +10 -6
  11. package/lib/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  12. package/lib/appui-react/accudraw/AccuDrawWidget.d.ts.map +1 -1
  13. package/lib/appui-react/accudraw/AccuDrawWidget.js +1 -0
  14. package/lib/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  15. package/lib/appui-react/accudraw/Calculator.js +2 -2
  16. package/lib/appui-react/accudraw/Calculator.js.map +1 -1
  17. package/lib/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
  18. package/lib/appui-react/backstage/BackstageItemUtilities.js +2 -0
  19. package/lib/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  20. package/lib/appui-react/childwindow/ChildWindowRenderer.d.ts +2 -0
  21. package/lib/appui-react/childwindow/ChildWindowRenderer.d.ts.map +1 -1
  22. package/lib/appui-react/childwindow/ChildWindowRenderer.js +15 -10
  23. package/lib/appui-react/childwindow/ChildWindowRenderer.js.map +1 -1
  24. package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +23 -1
  25. package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  26. package/lib/appui-react/configurableui/ConfigurableUiContent.js +20 -12
  27. package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  28. package/lib/appui-react/content/ContentLayout.d.ts.map +1 -1
  29. package/lib/appui-react/content/ContentLayout.js +10 -11
  30. package/lib/appui-react/content/ContentLayout.js.map +1 -1
  31. package/lib/appui-react/content/ContentOverlay.d.ts +1 -0
  32. package/lib/appui-react/content/ContentOverlay.d.ts.map +1 -1
  33. package/lib/appui-react/content/ContentOverlay.js +3 -1
  34. package/lib/appui-react/content/ContentOverlay.js.map +1 -1
  35. package/lib/appui-react/content/DefaultViewOverlay.d.ts.map +1 -1
  36. package/lib/appui-react/content/DefaultViewOverlay.js +6 -2
  37. package/lib/appui-react/content/DefaultViewOverlay.js.map +1 -1
  38. package/lib/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  39. package/lib/appui-react/content/FloatingViewportContent.js +1 -1
  40. package/lib/appui-react/content/FloatingViewportContent.js.map +1 -1
  41. package/lib/appui-react/cursor/CursorInformation.d.ts +4 -1
  42. package/lib/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  43. package/lib/appui-react/cursor/CursorInformation.js +6 -1
  44. package/lib/appui-react/cursor/CursorInformation.js.map +1 -1
  45. package/lib/appui-react/cursor/cursormenu/CursorMenu.d.ts +1 -24
  46. package/lib/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  47. package/lib/appui-react/cursor/cursormenu/CursorMenu.js +37 -58
  48. package/lib/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  49. package/lib/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -0
  50. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +8 -22
  51. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  52. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js +111 -116
  53. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  54. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +12 -15
  55. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  56. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js +85 -48
  57. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  58. package/lib/appui-react/framework/FrameworkFrontstages.d.ts +47 -0
  59. package/lib/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  60. package/lib/appui-react/framework/FrameworkFrontstages.js +136 -0
  61. package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  62. package/lib/appui-react/framework/FrameworkVisibility.d.ts +2 -0
  63. package/lib/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  64. package/lib/appui-react/framework/FrameworkVisibility.js.map +1 -1
  65. package/lib/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  66. package/lib/appui-react/frontstage/InternalFrontstageManager.js +121 -115
  67. package/lib/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  68. package/lib/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  69. package/lib/appui-react/frontstage/StandardFrontstageProvider.js +1 -0
  70. package/lib/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  71. package/lib/appui-react/hooks/useActiveTool.d.ts +9 -0
  72. package/lib/appui-react/hooks/useActiveTool.d.ts.map +1 -0
  73. package/lib/appui-react/hooks/useActiveTool.js +23 -0
  74. package/lib/appui-react/hooks/useActiveTool.js.map +1 -0
  75. package/lib/appui-react/icons/SvgAngle.d.ts +7 -0
  76. package/lib/appui-react/icons/SvgAngle.d.ts.map +1 -0
  77. package/lib/appui-react/icons/SvgAngle.js +15 -0
  78. package/lib/appui-react/icons/SvgAngle.js.map +1 -0
  79. package/lib/appui-react/icons/SvgBackspace.d.ts +7 -0
  80. package/lib/appui-react/icons/SvgBackspace.d.ts.map +1 -0
  81. package/lib/appui-react/icons/SvgBackspace.js +14 -0
  82. package/lib/appui-react/icons/SvgBackspace.js.map +1 -0
  83. package/lib/appui-react/icons/SvgDistance.d.ts +7 -0
  84. package/lib/appui-react/icons/SvgDistance.d.ts.map +1 -0
  85. package/lib/appui-react/icons/SvgDistance.js +16 -0
  86. package/lib/appui-react/icons/SvgDistance.js.map +1 -0
  87. package/lib/appui-react/icons/SvgHeight.d.ts +7 -0
  88. package/lib/appui-react/icons/SvgHeight.d.ts.map +1 -0
  89. package/lib/appui-react/icons/SvgHeight.js +17 -0
  90. package/lib/appui-react/icons/SvgHeight.js.map +1 -0
  91. package/lib/appui-react/icons/SvgMouseClickLeftDrag.d.ts +7 -0
  92. package/lib/appui-react/icons/SvgMouseClickLeftDrag.d.ts.map +1 -0
  93. package/lib/appui-react/icons/SvgMouseClickLeftDrag.js +15 -0
  94. package/lib/appui-react/icons/SvgMouseClickLeftDrag.js.map +1 -0
  95. package/lib/appui-react/icons/SvgMouseClickRightDrag.d.ts +7 -0
  96. package/lib/appui-react/icons/SvgMouseClickRightDrag.d.ts.map +1 -0
  97. package/lib/appui-react/icons/SvgMouseClickRightDrag.js +15 -0
  98. package/lib/appui-react/icons/SvgMouseClickRightDrag.js.map +1 -0
  99. package/lib/appui-react/icons/SvgMouseClickWheelDrag.d.ts +7 -0
  100. package/lib/appui-react/icons/SvgMouseClickWheelDrag.d.ts.map +1 -0
  101. package/lib/appui-react/icons/SvgMouseClickWheelDrag.js +15 -0
  102. package/lib/appui-react/icons/SvgMouseClickWheelDrag.js.map +1 -0
  103. package/lib/appui-react/icons/SvgTouchCursorPan.d.ts +7 -0
  104. package/lib/appui-react/icons/SvgTouchCursorPan.d.ts.map +1 -0
  105. package/lib/appui-react/icons/SvgTouchCursorPan.js +15 -0
  106. package/lib/appui-react/icons/SvgTouchCursorPan.js.map +1 -0
  107. package/lib/appui-react/icons/SvgTouchCursorPoint.d.ts +7 -0
  108. package/lib/appui-react/icons/SvgTouchCursorPoint.d.ts.map +1 -0
  109. package/lib/appui-react/icons/SvgTouchCursorPoint.js +16 -0
  110. package/lib/appui-react/icons/SvgTouchCursorPoint.js.map +1 -0
  111. package/lib/appui-react/layout/StandardLayout.scss +3 -8
  112. package/lib/appui-react/layout/base/DragManager.d.ts.map +1 -1
  113. package/lib/appui-react/layout/base/DragManager.js +10 -15
  114. package/lib/appui-react/layout/base/DragManager.js.map +1 -1
  115. package/lib/appui-react/layout/state/NineZoneAction.d.ts +1 -0
  116. package/lib/appui-react/layout/state/NineZoneAction.d.ts.map +1 -1
  117. package/lib/appui-react/layout/state/NineZoneAction.js.map +1 -1
  118. package/lib/appui-react/layout/state/NineZoneStateReducer.d.ts.map +1 -1
  119. package/lib/appui-react/layout/state/NineZoneStateReducer.js +23 -16
  120. package/lib/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  121. package/lib/appui-react/messages/Pointer.js +1 -1
  122. package/lib/appui-react/messages/Pointer.js.map +1 -1
  123. package/lib/appui-react/navigationaids/CubeNavigationAidControl.d.ts.map +1 -1
  124. package/lib/appui-react/navigationaids/CubeNavigationAidControl.js +1 -0
  125. package/lib/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  126. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.d.ts.map +1 -1
  127. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js +1 -0
  128. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  129. package/lib/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  130. package/lib/appui-react/navigationaids/SheetNavigationAid.js +1 -0
  131. package/lib/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  132. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  133. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -0
  134. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  135. package/lib/appui-react/popup/KeyinPalettePanel.js +1 -1
  136. package/lib/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  137. package/lib/appui-react/popup/PopupManager.d.ts.map +1 -1
  138. package/lib/appui-react/popup/PopupManager.js +9 -3
  139. package/lib/appui-react/popup/PopupManager.js.map +1 -1
  140. package/lib/appui-react/preview/PreviewFeatures.d.ts +5 -0
  141. package/lib/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  142. package/lib/appui-react/preview/PreviewFeatures.js +1 -0
  143. package/lib/appui-react/preview/PreviewFeatures.js.map +1 -1
  144. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts.map +1 -1
  145. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +8 -2
  146. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  147. package/lib/appui-react/preview/tool-settings-new-editors/useToolsSettingsNewEditors.d.ts +5 -0
  148. package/lib/appui-react/preview/tool-settings-new-editors/useToolsSettingsNewEditors.d.ts.map +1 -0
  149. package/lib/appui-react/preview/tool-settings-new-editors/useToolsSettingsNewEditors.js +13 -0
  150. package/lib/appui-react/preview/tool-settings-new-editors/useToolsSettingsNewEditors.js.map +1 -0
  151. package/lib/appui-react/shared/MenuItem.d.ts +3 -0
  152. package/lib/appui-react/shared/MenuItem.d.ts.map +1 -1
  153. package/lib/appui-react/shared/MenuItem.js +2 -3
  154. package/lib/appui-react/shared/MenuItem.js.map +1 -1
  155. package/lib/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  156. package/lib/appui-react/statusbar/StatusBarItemUtilities.js +2 -0
  157. package/lib/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  158. package/lib/appui-react/statusfields/ActivityCenter.js +1 -1
  159. package/lib/appui-react/statusfields/ActivityCenter.js.map +1 -1
  160. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +2 -55
  161. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  162. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js +333 -403
  163. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  164. package/lib/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  165. package/lib/appui-react/toolbar/Toolbar.js +4 -3
  166. package/lib/appui-react/toolbar/Toolbar.js.map +1 -1
  167. package/lib/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
  168. package/lib/appui-react/toolbar/ToolbarItemUtilities.js +3 -0
  169. package/lib/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  170. package/lib/appui-react/toolbar/new-toolbars/ActionItem.d.ts.map +1 -1
  171. package/lib/appui-react/toolbar/new-toolbars/ActionItem.js +3 -0
  172. package/lib/appui-react/toolbar/new-toolbars/ActionItem.js.map +1 -1
  173. package/lib/appui-react/toolbar/new-toolbars/GroupItem.d.ts +1 -1
  174. package/lib/appui-react/toolbar/new-toolbars/GroupItem.d.ts.map +1 -1
  175. package/lib/appui-react/toolbar/new-toolbars/GroupItem.js +2 -0
  176. package/lib/appui-react/toolbar/new-toolbars/GroupItem.js.map +1 -1
  177. package/lib/appui-react/toolbar/new-toolbars/Item.d.ts +2 -2
  178. package/lib/appui-react/toolbar/new-toolbars/Toolbar.d.ts +6 -3
  179. package/lib/appui-react/toolbar/new-toolbars/Toolbar.d.ts.map +1 -1
  180. package/lib/appui-react/toolbar/new-toolbars/Toolbar.js +4 -3
  181. package/lib/appui-react/toolbar/new-toolbars/Toolbar.js.map +1 -1
  182. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.d.ts.map +1 -1
  183. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js +1 -0
  184. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  185. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  186. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js +9 -2
  187. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  188. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  189. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
  190. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  191. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  192. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
  193. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  194. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  195. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +1 -0
  196. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  197. package/lib/appui-react/uiprovider/ComponentGenerator.d.ts.map +1 -1
  198. package/lib/appui-react/uiprovider/ComponentGenerator.js +4 -2
  199. package/lib/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  200. package/lib/appui-react/utils/InternalUiShowHideManager.d.ts +2 -0
  201. package/lib/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  202. package/lib/appui-react/utils/InternalUiShowHideManager.js +6 -0
  203. package/lib/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  204. package/lib/appui-react/utils/PropsHelper.js +1 -1
  205. package/lib/appui-react/utils/PropsHelper.js.map +1 -1
  206. package/lib/appui-react/widget-panels/Frontstage.d.ts +7 -2
  207. package/lib/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  208. package/lib/appui-react/widget-panels/Frontstage.js +29 -12
  209. package/lib/appui-react/widget-panels/Frontstage.js.map +1 -1
  210. package/lib/appui-react/widgets/BackstageAppButton.scss +8 -3
  211. package/lib/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  212. package/lib/appui-react/widgets/BasicToolWidget.js +3 -1
  213. package/lib/appui-react/widgets/BasicToolWidget.js.map +1 -1
  214. package/lib/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  215. package/lib/appui-react/widgets/WidgetDef.js +0 -1
  216. package/lib/appui-react/widgets/WidgetDef.js.map +1 -1
  217. package/lib/appui-react.d.ts +1 -1
  218. package/lib/appui-react.d.ts.map +1 -1
  219. package/lib/appui-react.js +1 -1
  220. package/lib/appui-react.js.map +1 -1
  221. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -0
  222. package/lib/cjs/appui-react/layout/StandardLayout.scss +3 -8
  223. package/lib/cjs/appui-react/widgets/BackstageAppButton.scss +8 -3
  224. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -0
  225. package/lib/esm/appui-react/layout/StandardLayout.scss +3 -8
  226. package/lib/esm/appui-react/widgets/BackstageAppButton.scss +8 -3
  227. package/package.json +29 -30
  228. package/lib/appui-react/accudraw/angle.svg +0 -1
  229. package/lib/appui-react/accudraw/backspace.svg +0 -9
  230. package/lib/appui-react/accudraw/constraint-2d.svg +0 -11
  231. package/lib/appui-react/accudraw/distance.svg +0 -1
  232. package/lib/appui-react/accudraw/height-2.svg +0 -10
  233. package/lib/appui-react/accudraw/height.svg +0 -11
  234. package/lib/appui-react/statusfields/toolassistance/accept-point.svg +0 -1
  235. package/lib/appui-react/statusfields/toolassistance/cursor-click.svg +0 -1
  236. package/lib/appui-react/statusfields/toolassistance/gesture-one-finger-drag.svg +0 -1
  237. package/lib/appui-react/statusfields/toolassistance/gesture-one-finger-tap-double.svg +0 -1
  238. package/lib/appui-react/statusfields/toolassistance/gesture-one-finger-tap.svg +0 -1
  239. package/lib/appui-react/statusfields/toolassistance/gesture-pinch.svg +0 -1
  240. package/lib/appui-react/statusfields/toolassistance/gesture-two-finger-drag.svg +0 -1
  241. package/lib/appui-react/statusfields/toolassistance/gesture-two-finger-tap.svg +0 -1
  242. package/lib/appui-react/statusfields/toolassistance/mouse-click-left-drag.svg +0 -1
  243. package/lib/appui-react/statusfields/toolassistance/mouse-click-left.svg +0 -1
  244. package/lib/appui-react/statusfields/toolassistance/mouse-click-right-drag.svg +0 -1
  245. package/lib/appui-react/statusfields/toolassistance/mouse-click-right.svg +0 -1
  246. package/lib/appui-react/statusfields/toolassistance/mouse-click-wheel-drag.svg +0 -1
  247. package/lib/appui-react/statusfields/toolassistance/mouse-click-wheel.svg +0 -1
  248. package/lib/appui-react/statusfields/toolassistance/touch-cursor-pan.svg +0 -1
  249. package/lib/appui-react/statusfields/toolassistance/touch-cursor-point.svg +0 -1
  250. package/lib/cjs/appui-react/accudraw/angle.svg +0 -1
  251. package/lib/cjs/appui-react/accudraw/backspace.svg +0 -9
  252. package/lib/cjs/appui-react/accudraw/constraint-2d.svg +0 -11
  253. package/lib/cjs/appui-react/accudraw/distance.svg +0 -1
  254. package/lib/cjs/appui-react/accudraw/height-2.svg +0 -10
  255. package/lib/cjs/appui-react/accudraw/height.svg +0 -11
  256. package/lib/cjs/appui-react/statusfields/toolassistance/accept-point.svg +0 -1
  257. package/lib/cjs/appui-react/statusfields/toolassistance/cursor-click.svg +0 -1
  258. package/lib/cjs/appui-react/statusfields/toolassistance/gesture-one-finger-drag.svg +0 -1
  259. package/lib/cjs/appui-react/statusfields/toolassistance/gesture-one-finger-tap-double.svg +0 -1
  260. package/lib/cjs/appui-react/statusfields/toolassistance/gesture-one-finger-tap.svg +0 -1
  261. package/lib/cjs/appui-react/statusfields/toolassistance/gesture-pinch.svg +0 -1
  262. package/lib/cjs/appui-react/statusfields/toolassistance/gesture-two-finger-drag.svg +0 -1
  263. package/lib/cjs/appui-react/statusfields/toolassistance/gesture-two-finger-tap.svg +0 -1
  264. package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-left-drag.svg +0 -1
  265. package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-left.svg +0 -1
  266. package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-right-drag.svg +0 -1
  267. package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-right.svg +0 -1
  268. package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-wheel-drag.svg +0 -1
  269. package/lib/cjs/appui-react/statusfields/toolassistance/mouse-click-wheel.svg +0 -1
  270. package/lib/cjs/appui-react/statusfields/toolassistance/touch-cursor-pan.svg +0 -1
  271. package/lib/cjs/appui-react/statusfields/toolassistance/touch-cursor-point.svg +0 -1
  272. package/lib/esm/appui-react/accudraw/angle.svg +0 -1
  273. package/lib/esm/appui-react/accudraw/backspace.svg +0 -9
  274. package/lib/esm/appui-react/accudraw/constraint-2d.svg +0 -11
  275. package/lib/esm/appui-react/accudraw/distance.svg +0 -1
  276. package/lib/esm/appui-react/accudraw/height-2.svg +0 -10
  277. package/lib/esm/appui-react/accudraw/height.svg +0 -11
  278. package/lib/esm/appui-react/statusfields/toolassistance/accept-point.svg +0 -1
  279. package/lib/esm/appui-react/statusfields/toolassistance/cursor-click.svg +0 -1
  280. package/lib/esm/appui-react/statusfields/toolassistance/gesture-one-finger-drag.svg +0 -1
  281. package/lib/esm/appui-react/statusfields/toolassistance/gesture-one-finger-tap-double.svg +0 -1
  282. package/lib/esm/appui-react/statusfields/toolassistance/gesture-one-finger-tap.svg +0 -1
  283. package/lib/esm/appui-react/statusfields/toolassistance/gesture-pinch.svg +0 -1
  284. package/lib/esm/appui-react/statusfields/toolassistance/gesture-two-finger-drag.svg +0 -1
  285. package/lib/esm/appui-react/statusfields/toolassistance/gesture-two-finger-tap.svg +0 -1
  286. package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-left-drag.svg +0 -1
  287. package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-left.svg +0 -1
  288. package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-right-drag.svg +0 -1
  289. package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-right.svg +0 -1
  290. package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-wheel-drag.svg +0 -1
  291. package/lib/esm/appui-react/statusfields/toolassistance/mouse-click-wheel.svg +0 -1
  292. package/lib/esm/appui-react/statusfields/toolassistance/touch-cursor-pan.svg +0 -1
  293. package/lib/esm/appui-react/statusfields/toolassistance/touch-cursor-point.svg +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,+BAA+B,CAAC;AACvC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,eAAe,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAmBhD,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAE/B,SAAS,cAAc,CAAC,EAAmB;IACzC,MAAM,KAAK,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;GAEG;AACH,4DAA4D;AAC5D,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EACJ,SAAS,EACT,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,cAAc,GAAG,KAAK,EACtB,GAAG,UAAU,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAwB,SAAS,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAClD,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAClD,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAClD,CAAC;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CACpD,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CACtD,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC1D,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CACrD,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAEhD,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACpC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,iBAAiB,CAAC,gCAAgC,CAAC,WAAW,CACnE,GAAG,EAAE;YACH,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,CAAC,KAAgB,EAAE,EAAE;QACzC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;YAC/B,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;YAC/B,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;YAC/B,KAAK,SAAS,CAAC,UAAU;gBACvB,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,SAAS;gBACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAA4B,EAAE,EAAE;QACzE,MAAM,UAAU,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,QAAQ,CAAC,aAAa,KAAK,UAAU;gBAAE,OAAO,SAAS,CAAC;YAC5D,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,YAAY,GAAG;YACnB,SAAS;YACT,SAAS;YACT,SAAS;YACT,aAAa;YACb,gBAAgB;SACjB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC;QAElE,mDAAmD;QACnD,IAAI,YAAY;YAAE,OAAO,SAAS,CAAC;QAEnC,gCAAgC;QAChC,IAAI,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,aAAa,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,oHAAoH;IACpH,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,KAA4B,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,0GAA0G;QAC1G,MAAM,WAAW,GACf,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QACtE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC7C,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7B,MAAM,YAAY,GAChB,IAAI,KAAK,WAAW,CAAC,WAAW;YAC9B,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;YACjC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,8CAA8C;YAC9C,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACxE,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,SAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,SAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,SAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,SAAS,CAAC,UAAU;oBACvB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,SAAS,CAAC,SAAS;oBACtB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,iBAAiB,CAAC,4BAA4B,CAAC,WAAW,CAC/D,CAAC,IAAI,EAAE,EAAE;YACP,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,iBAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,GAAG,EAAE;YACtE,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,iBAAiB,CAAC,6BAA6B,CAAC,WAAW,CAChE,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAC1C,CAAC,KAAgB,EAAE,WAAmB,EAAE,EAAE;QACxC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9C,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CACN,aAAa,IAAI,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CACpE,CAAC;QAEF,OAAO,SAAS,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAChE,CAAC,IAAI,EAAE,EAAE;YACP,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,gBAAgB,GAAG,CACvB,OAAwC,EACxC,eAA8C,EAC9C,eAA8C,EACb,EAAE;QACnC,IAAI,UAA2C,CAAC;QAChD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,OAAO,IAAI,eAAe,IAAI,eAAe,EAAE,CAAC;YAClD,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,IAAI,eAAe,EAAE,CAAC;gBACpB,UAAU;oBACR,OAAO,eAAe,KAAK,QAAQ;wBACjC,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBAC1C,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;YAC9D,CAAC;YACD,IAAI,eAAe,EAAE,CAAC;gBACpB,UAAU;oBACR,OAAO,eAAe,KAAK,QAAQ;wBACjC,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBAC1C,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,gBAAgB,CAC5B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,gBAAgB,CAC5B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,gBAAgB,CAC5B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,oBAAoB,EAC/B,UAAU,CAAC,oBAAoB,CAChC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,uBAAuB,EAClC,UAAU,CAAC,uBAAuB,CACnC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,aAAa,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,aAAa,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,aAAa,CAAC;IACnD,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,CAAC;IAC1C,MAAM,aAAa,GAAG,UAAU,EAAE,aAAa,CAAC;IAEhD,MAAM,UAAU,GAAG,UAAU,CAC3B,+BAA+B,EAC/B,WAAW,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAC1E,SAAS,CACV,CAAC;IAEF,MAAM,aAAa,GACjB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAEtB,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,KAAM,UAAU;QACrD,IAAI,KAAK,WAAW,CAAC,WAAW,IAAI,CACnC;YACE,oBAAC,kBAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM;gBACb,4DAA4D;gBAC5D,QAAQ,EAAE,UAAU,EAAE,KAAK,EAC3B,IAAI,EAAE,UAAU,EAAE,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,GAAG,EAAE,CACjB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAEnD;YACF,oBAAC,kBAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM;gBACb,4DAA4D;gBAC5D,QAAQ,EAAE,UAAU,EAAE,KAAK,EAC3B,IAAI,EAAE,UAAU,EAAE,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,GAAG,EAAE,CACjB,KAAK;oBACH,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC;oBACnD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAEvD;YACD,KAAK,IAAI,CACR,oBAAC,kBAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM;gBACb,4DAA4D;gBAC5D,QAAQ,EAAE,UAAU,EAAE,KAAK,EAC3B,IAAI,EAAE,UAAU,EAAE,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,GAAG,EAAE,CACjB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAEnD,CACH,CACA,CACJ;QACA,IAAI,KAAK,WAAW,CAAC,KAAK,IAAI,CAC7B;YACE,oBAAC,kBAAkB,IACjB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,SAAS,CAAC,SAAS,EAC1B,EAAE,EAAE,0BAA0B,cAAc,EAAE,iBAClC,wBAAwB,EACpC,KAAK,EAAE,aAAa;gBACpB,4DAA4D;gBAC5D,QAAQ,EAAE,UAAU,EAAE,YAAY,IAAI,eAAe,EACrD,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAClC,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,EAEtD,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,GAAG,EAAE,CACjB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,GAEvD;YACF,oBAAC,kBAAkB,IACjB,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,SAAS,EACnB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,SAAS,CAAC,UAAU,EAC3B,EAAE,EAAE,uBAAuB,cAAc,EAAE,iBAC/B,qBAAqB,EACjC,KAAK,EAAE,UAAU;gBACjB,4DAA4D;gBAC5D,QAAQ,EAAE,UAAU,EAAE,SAAS,IAAI,YAAY,EAC/C,IAAI,EAAE,UAAU,EAAE,aAAa,EAC/B,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,EAEvD,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,GAAG,EAAE,CACjB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,GAEtD,CACD,CACJ,CACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAI,GAAuB;IAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./AccuDrawFieldContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Orientation } from \"@itwin/components-react\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { CompassMode, IModelApp, ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react/internal\";\nimport { AccuDrawInputField } from \"./AccuDrawInputField.js\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw.js\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings.js\";\nimport angleIconSvg from \"./angle.svg\";\nimport distanceIconSvg from \"./distance.svg\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type { UiStateStorage } from \"../uistate/UiStateStorage.js\";\n\n/** Properties for [[AccuDrawFieldContainer]] component\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof AccuDrawFieldContainer>`\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\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 /** Indicates whether the field is displaying a bearing angles. */\n isBearingAngle?: boolean;\n}\n\nlet AccuDrawContainerIndex = 0;\n\nfunction determineShowZ(vp?: ScreenViewport): boolean {\n const showZ = vp !== undefined ? 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 * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\n const {\n className,\n style,\n orientation,\n uiSettingsStorage,\n showZOverride,\n isBearingAngle = false,\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\n const [uiSettings, setUiSettings] = React.useState<\n AccuDrawUiSettings | undefined\n >(FrameworkAccuDraw.uiStateStorage);\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(\n () => {\n setUiSettings(FrameworkAccuDraw.uiStateStorage);\n }\n );\n }, []);\n\n const getFieldInput = (field: ItemField) => {\n switch (field) {\n case ItemField.X_Item:\n return getCurrent(xInputRef);\n case ItemField.Y_Item:\n return getCurrent(yInputRef);\n case ItemField.Z_Item:\n return getCurrent(zInputRef);\n case ItemField.ANGLE_Item:\n return getCurrent(angleInputRef);\n case ItemField.DIST_Item:\n return getCurrent(distanceInputRef);\n }\n };\n\n const getInputToFocus = React.useCallback((field: ItemField | undefined) => {\n const fieldInput = field === undefined ? undefined : getFieldInput(field);\n if (fieldInput) {\n if (document.activeElement === fieldInput) return undefined;\n return fieldInput;\n }\n\n const focusedInput = [\n xInputRef,\n yInputRef,\n zInputRef,\n angleInputRef,\n distanceInputRef,\n ].find((inputRef) => document.activeElement === inputRef.current);\n\n // One of AccuDraw input fields is focused already.\n if (focusedInput) return undefined;\n\n // Focus one of fallback fields.\n let fallbackInput = getFieldInput(ItemField.DIST_Item);\n if (fallbackInput) return fallbackInput;\n\n fallbackInput = getFieldInput(ItemField.X_Item);\n return fallbackInput;\n }, []);\n\n // Moves focus to `field` input if not focused OR fallbacks to default field if none of accudraw fields are focused.\n const setFocusToField = React.useCallback(\n (field: ItemField | undefined) => {\n const input = getInputToFocus(field);\n if (!input) return;\n\n input.focus();\n input.select();\n },\n [getInputToFocus]\n );\n\n React.useEffect(() => {\n // Set the focus to the first input field when the component is mounted and when the compass mode changes.\n const itemToFocus =\n mode === CompassMode.Polar ? ItemField.DIST_Item : ItemField.X_Item;\n IModelApp.accuDraw.setFocusItem(itemToFocus);\n setFocusToField(itemToFocus);\n const inputToFocus =\n mode === CompassMode.Rectangular\n ? getFieldInput(ItemField.X_Item)\n : getFieldInput(ItemField.DIST_Item);\n if (!inputToFocus) return;\n const timeoutId = setTimeout(() => {\n // Timeout to force an highlight on the field.\n inputToFocus.focus();\n inputToFocus.select();\n }, 1);\n return () => {\n clearTimeout(timeoutId);\n };\n }, [mode, setFocusToField]);\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 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 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 return IModelApp.viewManager.onSelectedViewportChanged.addListener(\n (args) => {\n setShowZ(determineShowZ(args.current));\n }\n );\n }, [showZOverride]);\n\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 xStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.xStyle,\n uiSettings.xBackgroundColor,\n uiSettings.xForegroundColor\n );\n }, [uiSettings]);\n const yStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.yStyle,\n uiSettings.yBackgroundColor,\n uiSettings.yForegroundColor\n );\n }, [uiSettings]);\n const zStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.zStyle,\n uiSettings.zBackgroundColor,\n uiSettings.zForegroundColor\n );\n }, [uiSettings]);\n const angleStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.angleStyle,\n uiSettings.angleBackgroundColor,\n uiSettings.angleForegroundColor\n );\n }, [uiSettings]);\n const distanceStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.distanceStyle,\n uiSettings.distanceBackgroundColor,\n uiSettings.distanceForegroundColor\n );\n }, [uiSettings]);\n const xLabel = uiSettings?.xLabel ?? defaultXLabel;\n const yLabel = uiSettings?.yLabel ?? defaultYLabel;\n const zLabel = uiSettings?.zLabel ?? defaultZLabel;\n const angleLabel = uiSettings?.angleLabel;\n const distanceLabel = uiSettings?.distanceLabel;\n\n const classNames = classnames(\n \"uifw-accudraw-field-container\",\n orientation === Orientation.Vertical ? \"uifw-vertical\" : \"uifw-horizontal\",\n className\n );\n\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 style={xStyle}\n field={ItemField.X_Item}\n id={`uifw-accudraw-x-${containerIndex}`}\n data-testid=\"uifw-accudraw-x\"\n label={xLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.xIcon}\n icon={uiSettings?.xIconNode}\n labelCentered={labelCentered}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.X_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n IModelApp.accuDraw.setFocusItem(ItemField.Y_Item)\n }\n />\n <AccuDrawInputField\n ref={yInputRef}\n isLocked={yLock}\n style={yStyle}\n field={ItemField.Y_Item}\n id={`uifw-accudraw-y-${containerIndex}`}\n data-testid=\"uifw-accudraw-y\"\n label={yLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.yIcon}\n icon={uiSettings?.yIconNode}\n labelCentered={labelCentered}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Y_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n showZ\n ? IModelApp.accuDraw.setFocusItem(ItemField.Z_Item)\n : IModelApp.accuDraw.setFocusItem(ItemField.X_Item)\n }\n />\n {showZ && (\n <AccuDrawInputField\n ref={zInputRef}\n isLocked={zLock}\n style={zStyle}\n field={ItemField.Z_Item}\n id={`uifw-accudraw-z-${containerIndex}`}\n data-testid=\"uifw-accudraw-z\"\n label={zLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.zIcon}\n icon={uiSettings?.zIconNode}\n labelCentered={labelCentered}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Z_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n IModelApp.accuDraw.setFocusItem(ItemField.X_Item)\n }\n />\n )}\n </>\n )}\n {mode === CompassMode.Polar && (\n <>\n <AccuDrawInputField\n ref={distanceInputRef}\n isLocked={distanceLock}\n style={distanceStyle}\n field={ItemField.DIST_Item}\n id={`uifw-accudraw-distance-${containerIndex}`}\n data-testid=\"uifw-accudraw-distance\"\n label={distanceLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.distanceIcon ?? distanceIconSvg}\n icon={uiSettings?.distanceIconNode}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.DIST_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n IModelApp.accuDraw.setFocusItem(ItemField.ANGLE_Item)\n }\n />\n <AccuDrawInputField\n ref={angleInputRef}\n isLocked={angleLock}\n isBearingAngle={isBearingAngle}\n style={angleStyle}\n field={ItemField.ANGLE_Item}\n id={`uifw-accudraw-angle-${containerIndex}`}\n data-testid=\"uifw-accudraw-angle\"\n label={angleLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.angleIcon ?? angleIconSvg}\n icon={uiSettings?.angleIconNode}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.ANGLE_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n IModelApp.accuDraw.setFocusItem(ItemField.DIST_Item)\n }\n />\n </>\n )}\n </div>\n );\n}\n\nfunction getCurrent<T>(ref: React.RefObject<T>) {\n if (ref.current === null) return undefined;\n return ref.current;\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 { Orientation } from \"@itwin/components-react\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { CompassMode, IModelApp, ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react/internal\";\nimport { AccuDrawInputField } from \"./AccuDrawInputField.js\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw.js\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type { UiStateStorage } from \"../uistate/UiStateStorage.js\";\nimport { SvgDistance } from \"../icons/SvgDistance.js\";\nimport { SvgAngle } from \"../icons/SvgAngle.js\";\n\n/** Properties for [[AccuDrawFieldContainer]] component\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof AccuDrawFieldContainer>`\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\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 /** Indicates whether the field is displaying a bearing angles. */\n isBearingAngle?: boolean;\n}\n\nlet AccuDrawContainerIndex = 0;\n\nfunction determineShowZ(vp?: ScreenViewport): boolean {\n const showZ = vp !== undefined ? 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 * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\n const {\n className,\n style,\n orientation,\n uiSettingsStorage,\n showZOverride,\n isBearingAngle = false,\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\n const [uiSettings, setUiSettings] = React.useState<\n AccuDrawUiSettings | undefined\n >(FrameworkAccuDraw.uiStateStorage);\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(\n () => {\n setUiSettings(FrameworkAccuDraw.uiStateStorage);\n }\n );\n }, []);\n\n const getFieldInput = (field: ItemField) => {\n switch (field) {\n case ItemField.X_Item:\n return getCurrent(xInputRef);\n case ItemField.Y_Item:\n return getCurrent(yInputRef);\n case ItemField.Z_Item:\n return getCurrent(zInputRef);\n case ItemField.ANGLE_Item:\n return getCurrent(angleInputRef);\n case ItemField.DIST_Item:\n return getCurrent(distanceInputRef);\n }\n };\n\n const getInputToFocus = React.useCallback((field: ItemField | undefined) => {\n const fieldInput = field === undefined ? undefined : getFieldInput(field);\n if (fieldInput) {\n if (document.activeElement === fieldInput) return undefined;\n return fieldInput;\n }\n\n const focusedInput = [\n xInputRef,\n yInputRef,\n zInputRef,\n angleInputRef,\n distanceInputRef,\n ].find((inputRef) => document.activeElement === inputRef.current);\n\n // One of AccuDraw input fields is focused already.\n if (focusedInput) return undefined;\n\n // Focus one of fallback fields.\n let fallbackInput = getFieldInput(ItemField.DIST_Item);\n if (fallbackInput) return fallbackInput;\n\n fallbackInput = getFieldInput(ItemField.X_Item);\n return fallbackInput;\n }, []);\n\n // Moves focus to `field` input if not focused OR fallbacks to default field if none of accudraw fields are focused.\n const setFocusToField = React.useCallback(\n (field: ItemField | undefined) => {\n const input = getInputToFocus(field);\n if (!input) return;\n\n input.focus();\n input.select();\n },\n [getInputToFocus]\n );\n\n React.useEffect(() => {\n // Set the focus to the first input field when the component is mounted and when the compass mode changes.\n const itemToFocus =\n mode === CompassMode.Polar ? ItemField.DIST_Item : ItemField.X_Item;\n IModelApp.accuDraw.setFocusItem(itemToFocus);\n setFocusToField(itemToFocus);\n const inputToFocus =\n mode === CompassMode.Rectangular\n ? getFieldInput(ItemField.X_Item)\n : getFieldInput(ItemField.DIST_Item);\n if (!inputToFocus) return;\n const timeoutId = setTimeout(() => {\n // Timeout to force an highlight on the field.\n inputToFocus.focus();\n inputToFocus.select();\n }, 1);\n return () => {\n clearTimeout(timeoutId);\n };\n }, [mode, setFocusToField]);\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 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 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 return IModelApp.viewManager.onSelectedViewportChanged.addListener(\n (args) => {\n setShowZ(determineShowZ(args.current));\n }\n );\n }, [showZOverride]);\n\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 xStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.xStyle,\n uiSettings.xBackgroundColor,\n uiSettings.xForegroundColor\n );\n }, [uiSettings]);\n const yStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.yStyle,\n uiSettings.yBackgroundColor,\n uiSettings.yForegroundColor\n );\n }, [uiSettings]);\n const zStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.zStyle,\n uiSettings.zBackgroundColor,\n uiSettings.zForegroundColor\n );\n }, [uiSettings]);\n const angleStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.angleStyle,\n uiSettings.angleBackgroundColor,\n uiSettings.angleForegroundColor\n );\n }, [uiSettings]);\n const distanceStyle = React.useMemo(() => {\n if (!uiSettings) return undefined;\n return createFieldStyle(\n uiSettings.distanceStyle,\n uiSettings.distanceBackgroundColor,\n uiSettings.distanceForegroundColor\n );\n }, [uiSettings]);\n const xLabel = uiSettings?.xLabel ?? defaultXLabel;\n const yLabel = uiSettings?.yLabel ?? defaultYLabel;\n const zLabel = uiSettings?.zLabel ?? defaultZLabel;\n const angleLabel = uiSettings?.angleLabel;\n const distanceLabel = uiSettings?.distanceLabel;\n\n const classNames = classnames(\n \"uifw-accudraw-field-container\",\n orientation === Orientation.Vertical ? \"uifw-vertical\" : \"uifw-horizontal\",\n className\n );\n\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 style={xStyle}\n field={ItemField.X_Item}\n id={`uifw-accudraw-x-${containerIndex}`}\n data-testid=\"uifw-accudraw-x\"\n label={xLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.xIcon}\n icon={uiSettings?.xIconNode}\n labelCentered={labelCentered}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.X_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n IModelApp.accuDraw.setFocusItem(ItemField.Y_Item)\n }\n />\n <AccuDrawInputField\n ref={yInputRef}\n isLocked={yLock}\n style={yStyle}\n field={ItemField.Y_Item}\n id={`uifw-accudraw-y-${containerIndex}`}\n data-testid=\"uifw-accudraw-y\"\n label={yLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.yIcon}\n icon={uiSettings?.yIconNode}\n labelCentered={labelCentered}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Y_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n showZ\n ? IModelApp.accuDraw.setFocusItem(ItemField.Z_Item)\n : IModelApp.accuDraw.setFocusItem(ItemField.X_Item)\n }\n />\n {showZ && (\n <AccuDrawInputField\n ref={zInputRef}\n isLocked={zLock}\n style={zStyle}\n field={ItemField.Z_Item}\n id={`uifw-accudraw-z-${containerIndex}`}\n data-testid=\"uifw-accudraw-z\"\n label={zLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.zIcon}\n icon={uiSettings?.zIconNode}\n labelCentered={labelCentered}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Z_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n IModelApp.accuDraw.setFocusItem(ItemField.X_Item)\n }\n />\n )}\n </>\n )}\n {mode === CompassMode.Polar && (\n <>\n <AccuDrawInputField\n ref={distanceInputRef}\n isLocked={distanceLock}\n style={distanceStyle}\n field={ItemField.DIST_Item}\n id={`uifw-accudraw-distance-${containerIndex}`}\n data-testid=\"uifw-accudraw-distance\"\n label={distanceLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.distanceIcon ?? <SvgDistance />}\n icon={uiSettings?.distanceIconNode}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.DIST_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n IModelApp.accuDraw.setFocusItem(ItemField.ANGLE_Item)\n }\n />\n <AccuDrawInputField\n ref={angleInputRef}\n isLocked={angleLock}\n isBearingAngle={isBearingAngle}\n style={angleStyle}\n field={ItemField.ANGLE_Item}\n id={`uifw-accudraw-angle-${containerIndex}`}\n data-testid=\"uifw-accudraw-angle\"\n label={angleLabel}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec={uiSettings?.angleIcon ?? <SvgAngle />}\n icon={uiSettings?.angleIconNode}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.ANGLE_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n onTabPressed={() =>\n IModelApp.accuDraw.setFocusItem(ItemField.DIST_Item)\n }\n />\n </>\n )}\n </div>\n );\n}\n\nfunction getCurrent<T>(ref: React.RefObject<T>) {\n if (ref.current === null) return undefined;\n return ref.current;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawPopupManager.d.ts","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawPopupManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AASjE;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAgB;WAE9B,cAAc,CAC1B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,cAAc,EAAE,mBAAmB,EAAE,GACpC,OAAO;WA4BI,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;WAInC,cAAc,CAC1B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAC7B,QAAQ,EAAE,MAAM,IAAI,GACnB,OAAO;WA4BI,cAAc,IAAI,OAAO;WAIzB,eAAe,CAC3B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,OAAO;IAgBV,gBAAgB;WACF,mBAAmB,CAC/B,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI;WAqBR,gBAAgB,CAC5B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,OAAO;WAgBI,gBAAgB,CAC5B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,OAAO;CAeX"}
1
+ {"version":3,"file":"AccuDrawPopupManager.d.ts","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawPopupManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AASjE;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAgB;WAE9B,cAAc,CAC1B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,cAAc,EAAE,mBAAmB,EAAE,GACpC,OAAO;WA4BI,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;WAInC,cAAc,CAC1B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAC7B,QAAQ,EAAE,MAAM,IAAI,GACnB,OAAO;WA4BI,cAAc,IAAI,OAAO;WAIzB,eAAe,CAC3B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,OAAO;IAaV,gBAAgB;WACF,mBAAmB,CAC/B,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI;WAqBR,gBAAgB,CAC5B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,OAAO;WAaI,gBAAgB,CAC5B,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,OAAO;CAYX"}
@@ -11,9 +11,10 @@ import { PopupManager } from "../popup/PopupManager.js";
11
11
  import { MenuItemHelpers } from "../shared/MenuItem.js";
12
12
  import { CalculatorPopup } from "./CalculatorPopup.js";
13
13
  import { MenuButtonPopup } from "./MenuButtonPopup.js";
14
- import angleIcon from "./angle.svg";
15
- import lengthIcon from "./distance.svg";
16
- import heightIcon from "./height-2.svg";
14
+ import { SvgDistance } from "../icons/SvgDistance.js";
15
+ import { SvgAngle } from "../icons/SvgAngle.js";
16
+ import { addIconNodeParam } from "@itwin/components-react/internal";
17
+ import { SvgHeight } from "../icons/SvgHeight.js";
17
18
  /** AccuDraw Popup Manager class
18
19
  * @public
19
20
  */
@@ -56,7 +57,8 @@ export class AccuDrawPopupManager {
56
57
  return PopupManager.removePopup(AccuDrawPopupManager._calculatorId);
57
58
  }
58
59
  static showAngleEditor(el, pt, value, onCommit, onCancel) {
59
- const propertyDescription = new AngleDescription(undefined, undefined, angleIcon);
60
+ const propertyDescription = new AngleDescription();
61
+ addIconNodeParam(propertyDescription, React.createElement(SvgAngle, null));
60
62
  return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit, onCancel);
61
63
  }
62
64
  /** @internal */
@@ -67,11 +69,13 @@ export class AccuDrawPopupManager {
67
69
  return AccuDrawPopupManager.showLengthEditor(el, pt, value, onCommit, onCancel);
68
70
  }
69
71
  static showLengthEditor(el, pt, value, onCommit, onCancel) {
70
- const propertyDescription = new LengthDescription(undefined, undefined, lengthIcon);
72
+ const propertyDescription = new LengthDescription();
73
+ addIconNodeParam(propertyDescription, React.createElement(SvgDistance, null));
71
74
  return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit, onCancel);
72
75
  }
73
76
  static showHeightEditor(el, pt, value, onCommit, onCancel) {
74
- const propertyDescription = new LengthDescription(undefined, undefined, heightIcon);
77
+ const propertyDescription = new LengthDescription();
78
+ addIconNodeParam(propertyDescription, React.createElement(SvgHeight, null));
75
79
  return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit, onCancel);
76
80
  }
77
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawPopupManager.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawPopupManager.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 * as React from \"react\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport { AngleDescription, LengthDescription } from \"@itwin/core-frontend\";\nimport type { OnValueCommitFunc } from \"@itwin/appui-abstract\";\nimport type { PopupInfo } from \"../popup/PopupManager.js\";\nimport { PopupManager } from \"../popup/PopupManager.js\";\nimport type { CursorMenuItemProps } from \"../shared/MenuItem.js\";\nimport { MenuItemHelpers } from \"../shared/MenuItem.js\";\nimport { CalculatorPopup } from \"./CalculatorPopup.js\";\nimport { MenuButtonPopup } from \"./MenuButtonPopup.js\";\n\nimport angleIcon from \"./angle.svg\";\nimport lengthIcon from \"./distance.svg\";\nimport heightIcon from \"./height-2.svg\";\n\n/** AccuDraw Popup Manager class\n * @public\n */\nexport class AccuDrawPopupManager {\n private static _calculatorId = \"Calculator\";\n\n public static showMenuButton(\n id: string,\n el: HTMLElement,\n pt: XAndY,\n menuItemsProps: CursorMenuItemProps[]\n ): boolean {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const menuItems = MenuItemHelpers.createMenuItems(menuItemsProps);\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const menuContent = MenuItemHelpers.createMenuItemNodes(menuItems);\n\n const component = (\n <MenuButtonPopup\n id={id}\n el={el}\n pt={pt}\n offset={PopupManager.defaultOffset}\n content={menuContent}\n />\n );\n\n const popupInfo: PopupInfo = {\n id,\n pt,\n component,\n parentDocument: el.ownerDocument,\n parent: el.ownerDocument,\n };\n PopupManager.addOrUpdatePopup(popupInfo);\n\n return true;\n }\n\n public static hideMenuButton(id: string): boolean {\n return PopupManager.removePopup(id);\n }\n\n public static showCalculator(\n el: HTMLElement,\n pt: XAndY,\n initialValue: number,\n resultIcon: string,\n onOk: (value: number) => void,\n onCancel: () => void\n ): boolean {\n const id = AccuDrawPopupManager._calculatorId;\n const component = (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <CalculatorPopup\n id={id}\n el={el}\n pt={pt}\n offset={PopupManager.defaultOffset}\n initialValue={initialValue}\n resultIcon={resultIcon}\n onOk={onOk}\n onCancel={onCancel}\n />\n );\n\n const popupInfo: PopupInfo = {\n id,\n pt,\n component,\n parentDocument: el.ownerDocument,\n parent: el.ownerDocument,\n };\n PopupManager.addOrUpdatePopup(popupInfo);\n\n return true;\n }\n\n public static hideCalculator(): boolean {\n return PopupManager.removePopup(AccuDrawPopupManager._calculatorId);\n }\n\n public static showAngleEditor(\n el: HTMLElement,\n pt: XAndY,\n value: number,\n onCommit: (value: number) => void,\n onCancel: () => void\n ): boolean {\n const propertyDescription = new AngleDescription(\n undefined,\n undefined,\n angleIcon\n );\n return PopupManager.showInputEditor(\n el,\n pt,\n value,\n propertyDescription,\n onCommit as OnValueCommitFunc,\n onCancel\n );\n }\n\n /** @internal */\n public static showDimensionEditor(\n dimension: \"height\" | \"length\",\n el: HTMLElement,\n pt: XAndY,\n value: number,\n onCommit: (value: number) => void,\n onCancel: () => void\n ) {\n if (dimension === \"height\") {\n return AccuDrawPopupManager.showHeightEditor(\n el,\n pt,\n value,\n onCommit,\n onCancel\n );\n }\n\n return AccuDrawPopupManager.showLengthEditor(\n el,\n pt,\n value,\n onCommit,\n onCancel\n );\n }\n\n public static showLengthEditor(\n el: HTMLElement,\n pt: XAndY,\n value: number,\n onCommit: (value: number) => void,\n onCancel: () => void\n ): boolean {\n const propertyDescription = new LengthDescription(\n undefined,\n undefined,\n lengthIcon\n );\n return PopupManager.showInputEditor(\n el,\n pt,\n value,\n propertyDescription,\n onCommit as OnValueCommitFunc,\n onCancel\n );\n }\n\n public static showHeightEditor(\n el: HTMLElement,\n pt: XAndY,\n value: number,\n onCommit: (value: number) => void,\n onCancel: () => void\n ): boolean {\n const propertyDescription = new LengthDescription(\n undefined,\n undefined,\n heightIcon\n );\n return PopupManager.showInputEditor(\n el,\n pt,\n value,\n propertyDescription,\n onCommit as OnValueCommitFunc,\n onCancel\n );\n }\n}\n"]}
1
+ {"version":3,"file":"AccuDrawPopupManager.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawPopupManager.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 * as React from \"react\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport { AngleDescription, LengthDescription } from \"@itwin/core-frontend\";\nimport type { OnValueCommitFunc } from \"@itwin/appui-abstract\";\nimport type { PopupInfo } from \"../popup/PopupManager.js\";\nimport { PopupManager } from \"../popup/PopupManager.js\";\nimport type { CursorMenuItemProps } from \"../shared/MenuItem.js\";\nimport { MenuItemHelpers } from \"../shared/MenuItem.js\";\nimport { CalculatorPopup } from \"./CalculatorPopup.js\";\nimport { MenuButtonPopup } from \"./MenuButtonPopup.js\";\nimport { SvgDistance } from \"../icons/SvgDistance.js\";\nimport { SvgAngle } from \"../icons/SvgAngle.js\";\nimport { addIconNodeParam } from \"@itwin/components-react/internal\";\nimport { SvgHeight } from \"../icons/SvgHeight.js\";\n\n/** AccuDraw Popup Manager class\n * @public\n */\nexport class AccuDrawPopupManager {\n private static _calculatorId = \"Calculator\";\n\n public static showMenuButton(\n id: string,\n el: HTMLElement,\n pt: XAndY,\n menuItemsProps: CursorMenuItemProps[]\n ): boolean {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const menuItems = MenuItemHelpers.createMenuItems(menuItemsProps);\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const menuContent = MenuItemHelpers.createMenuItemNodes(menuItems);\n\n const component = (\n <MenuButtonPopup\n id={id}\n el={el}\n pt={pt}\n offset={PopupManager.defaultOffset}\n content={menuContent}\n />\n );\n\n const popupInfo: PopupInfo = {\n id,\n pt,\n component,\n parentDocument: el.ownerDocument,\n parent: el.ownerDocument,\n };\n PopupManager.addOrUpdatePopup(popupInfo);\n\n return true;\n }\n\n public static hideMenuButton(id: string): boolean {\n return PopupManager.removePopup(id);\n }\n\n public static showCalculator(\n el: HTMLElement,\n pt: XAndY,\n initialValue: number,\n resultIcon: string,\n onOk: (value: number) => void,\n onCancel: () => void\n ): boolean {\n const id = AccuDrawPopupManager._calculatorId;\n const component = (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <CalculatorPopup\n id={id}\n el={el}\n pt={pt}\n offset={PopupManager.defaultOffset}\n initialValue={initialValue}\n resultIcon={resultIcon}\n onOk={onOk}\n onCancel={onCancel}\n />\n );\n\n const popupInfo: PopupInfo = {\n id,\n pt,\n component,\n parentDocument: el.ownerDocument,\n parent: el.ownerDocument,\n };\n PopupManager.addOrUpdatePopup(popupInfo);\n\n return true;\n }\n\n public static hideCalculator(): boolean {\n return PopupManager.removePopup(AccuDrawPopupManager._calculatorId);\n }\n\n public static showAngleEditor(\n el: HTMLElement,\n pt: XAndY,\n value: number,\n onCommit: (value: number) => void,\n onCancel: () => void\n ): boolean {\n const propertyDescription = new AngleDescription();\n addIconNodeParam(propertyDescription, <SvgAngle />);\n return PopupManager.showInputEditor(\n el,\n pt,\n value,\n propertyDescription,\n onCommit as OnValueCommitFunc,\n onCancel\n );\n }\n\n /** @internal */\n public static showDimensionEditor(\n dimension: \"height\" | \"length\",\n el: HTMLElement,\n pt: XAndY,\n value: number,\n onCommit: (value: number) => void,\n onCancel: () => void\n ) {\n if (dimension === \"height\") {\n return AccuDrawPopupManager.showHeightEditor(\n el,\n pt,\n value,\n onCommit,\n onCancel\n );\n }\n\n return AccuDrawPopupManager.showLengthEditor(\n el,\n pt,\n value,\n onCommit,\n onCancel\n );\n }\n\n public static showLengthEditor(\n el: HTMLElement,\n pt: XAndY,\n value: number,\n onCommit: (value: number) => void,\n onCancel: () => void\n ): boolean {\n const propertyDescription = new LengthDescription();\n addIconNodeParam(propertyDescription, <SvgDistance />);\n return PopupManager.showInputEditor(\n el,\n pt,\n value,\n propertyDescription,\n onCommit as OnValueCommitFunc,\n onCancel\n );\n }\n\n public static showHeightEditor(\n el: HTMLElement,\n pt: XAndY,\n value: number,\n onCommit: (value: number) => void,\n onCancel: () => void\n ): boolean {\n const propertyDescription = new LengthDescription();\n addIconNodeParam(propertyDescription, <SvgHeight />);\n return PopupManager.showInputEditor(\n el,\n pt,\n value,\n propertyDescription,\n onCommit as OnValueCommitFunc,\n onCancel\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawWidget.d.ts","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawWidget.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D;;;GAGG;AAEH,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAc,EAAE,SAAoB;IAEpC,WAAkB,KAAK,IAAI,MAAM,CAEhC;gBAGW,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG;CAKvD;AAED;;GAEG;AACH,wBAAgB,cAAc,sBAiB7B"}
1
+ {"version":3,"file":"AccuDrawWidget.d.ts","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawWidget.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D;;;GAGG;AAEH,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAc,EAAE,SAAoB;IAEpC,WAAkB,KAAK,IAAI,MAAM,CAEhC;gBAGW,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG;CAMvD;AAED;;GAEG;AACH,wBAAgB,cAAc,sBAiB7B"}
@@ -22,6 +22,7 @@ export class AccuDrawWidgetControl extends WidgetControl {
22
22
  }
23
23
  // eslint-disable-next-line @typescript-eslint/no-deprecated
24
24
  constructor(info, options) {
25
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
25
26
  super(info, options);
26
27
  this.reactNode = React.createElement(AccuDrawWidget, null);
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawWidget.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawWidget.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,4DAA4D;AAC5D,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAG/C,MAAM,KAAK,KAAK;QACrB,OAAO,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACvD,CAAC;IAED,4DAA4D;IAC5D,YAAY,IAA4B,EAAE,OAAY;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErB,IAAI,CAAC,SAAS,GAAG,oBAAC,cAAc,OAAG,CAAC;IACtC,CAAC;;AAXa,wBAAE,GAAG,gBAAgB,CAAC;AActC;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAU,EAAE,EAAE;QAC/D,cAAc,CACZ,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAChE,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,GAAG,GAAG,iBAAiB,CAAiB,YAAY,CAAC,CAAC;IAE5D,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG;QACX,oBAAC,sBAAsB,IAAC,WAAW,EAAE,WAAW,GAAI,CAChD,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport * as React from \"react\";\nimport { Orientation } from \"@itwin/components-react\";\nimport { useResizeObserver } from \"@itwin/core-react/internal\";\nimport { AccuDrawFieldContainer } from \"./AccuDrawFieldContainer.js\";\nimport type { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl.js\";\nimport { WidgetControl } from \"../widgets/WidgetControl.js\";\nimport { UiFramework } from \"../UiFramework.js\";\n\n/** AccuDraw Widget Control\n * @public\n * @deprecated in 4.16.0. Use {@link AccuDrawWidget} component instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class AccuDrawWidgetControl extends WidgetControl {\n public static id = \"AccuDrawWidget\";\n\n public static get label(): string {\n return UiFramework.translate(\"accuDraw.dialogTitle\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n constructor(info: ConfigurableCreateInfo, options: any) {\n super(info, options);\n\n this.reactNode = <AccuDrawWidget />;\n }\n}\n\n/** AccuDraw Widget displays [[AccuDrawFieldContainer]] for AccuDraw Ui\n * @public\n */\nexport function AccuDrawWidget() {\n const [orientation, setOrientation] = React.useState(Orientation.Vertical);\n const breakpoint = 400;\n\n const handleResize = React.useCallback((w: number, _h: number) => {\n setOrientation(\n w <= breakpoint ? Orientation.Vertical : Orientation.Horizontal\n );\n }, []);\n\n const ref = useResizeObserver<HTMLDivElement>(handleResize);\n\n return (\n <div ref={ref}>\n <AccuDrawFieldContainer orientation={orientation} />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"AccuDrawWidget.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawWidget.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,4DAA4D;AAC5D,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAG/C,MAAM,KAAK,KAAK;QACrB,OAAO,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACvD,CAAC;IAED,4DAA4D;IAC5D,YAAY,IAA4B,EAAE,OAAY;QACpD,4DAA4D;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErB,IAAI,CAAC,SAAS,GAAG,oBAAC,cAAc,OAAG,CAAC;IACtC,CAAC;;AAZa,wBAAE,GAAG,gBAAgB,CAAC;AAetC;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAU,EAAE,EAAE;QAC/D,cAAc,CACZ,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAChE,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,GAAG,GAAG,iBAAiB,CAAiB,YAAY,CAAC,CAAC;IAE5D,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG;QACX,oBAAC,sBAAsB,IAAC,WAAW,EAAE,WAAW,GAAI,CAChD,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport * as React from \"react\";\nimport { Orientation } from \"@itwin/components-react\";\nimport { useResizeObserver } from \"@itwin/core-react/internal\";\nimport { AccuDrawFieldContainer } from \"./AccuDrawFieldContainer.js\";\nimport type { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl.js\";\nimport { WidgetControl } from \"../widgets/WidgetControl.js\";\nimport { UiFramework } from \"../UiFramework.js\";\n\n/** AccuDraw Widget Control\n * @public\n * @deprecated in 4.16.0. Use {@link AccuDrawWidget} component instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class AccuDrawWidgetControl extends WidgetControl {\n public static id = \"AccuDrawWidget\";\n\n public static get label(): string {\n return UiFramework.translate(\"accuDraw.dialogTitle\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n constructor(info: ConfigurableCreateInfo, options: any) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n super(info, options);\n\n this.reactNode = <AccuDrawWidget />;\n }\n}\n\n/** AccuDraw Widget displays [[AccuDrawFieldContainer]] for AccuDraw Ui\n * @public\n */\nexport function AccuDrawWidget() {\n const [orientation, setOrientation] = React.useState(Orientation.Vertical);\n const breakpoint = 400;\n\n const handleResize = React.useCallback((w: number, _h: number) => {\n setOrientation(\n w <= breakpoint ? Orientation.Vertical : Orientation.Horizontal\n );\n }, []);\n\n const ref = useResizeObserver<HTMLDivElement>(handleResize);\n\n return (\n <div ref={ref}>\n <AccuDrawFieldContainer orientation={orientation} />\n </div>\n );\n}\n"]}
@@ -14,7 +14,7 @@ import { Button, Input } from "@itwin/itwinui-react";
14
14
  import { CalculatorEngine, CalculatorOperator } from "./CalculatorEngine.js";
15
15
  import { SquareButton } from "./SquareButton.js";
16
16
  import { SvgCheckmark, SvgRemove } from "@itwin/itwinui-icons-react";
17
- import backspaceIcon from "./backspace.svg";
17
+ import { SvgBackspace } from "../icons/SvgBackspace.js";
18
18
  /** @public */
19
19
  export class Calculator extends React.PureComponent {
20
20
  constructor(props) {
@@ -161,7 +161,7 @@ class CalculatorKeyPad extends React.PureComponent {
161
161
  React.createElement(OperatorButton, { operator: CalculatorOperator.Clear, onClick: this.props.onOperatorClick }, "C"),
162
162
  React.createElement(OperatorButton, { operator: CalculatorOperator.Backspace, onClick: this.props.onOperatorClick },
163
163
  React.createElement("div", { className: "uifw-calculator-button-svg" },
164
- React.createElement(Icon, { iconSpec: backspaceIcon }))),
164
+ React.createElement(Icon, { iconSpec: React.createElement(SvgBackspace, null) }))),
165
165
  React.createElement(OperatorButton, { operator: CalculatorOperator.Divide, onClick: this.props.onOperatorClick, className: "uifw-calculator-large-font" }, "\u00F7"),
166
166
  React.createElement(ValueButton, { keyChar: "7", onClick: this.props.onValueClick }),
167
167
  React.createElement(ValueButton, { keyChar: "8", onClick: this.props.onValueClick }),
@@ -1 +1 @@
1
- {"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./Calculator.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { OnCancelFunc, OnNumberCommitFunc } from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Icon, IconInput } from \"@itwin/core-react\";\nimport { Button, Input } from \"@itwin/itwinui-react\";\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine.js\";\nimport { SquareButton } from \"./SquareButton.js\";\nimport { SvgCheckmark, SvgRemove } from \"@itwin/itwinui-icons-react\";\nimport backspaceIcon from \"./backspace.svg\";\n\ntype SquareButtonProps = React.ComponentProps<typeof SquareButton>;\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\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/** @public */\nexport class Calculator extends React.PureComponent<\n CalculatorProps,\n CalculatorState\n> {\n private _mainDiv = React.createRef<HTMLDivElement>();\n private _equalsClicked = false;\n\n public static readonly defaultProps: Pick<CalculatorProps, \"engine\"> = {\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 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 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 // eslint-disable-next-line @typescript-eslint/no-deprecated\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 {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\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 {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\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\n// eslint-disable-next-line @typescript-eslint/no-deprecated\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 {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\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 } from \"@itwin/core-react\";\nimport { Icon, IconInput } from \"@itwin/core-react\";\nimport { Button, Input } from \"@itwin/itwinui-react\";\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine.js\";\nimport { SquareButton } from \"./SquareButton.js\";\nimport { SvgCheckmark, SvgRemove } from \"@itwin/itwinui-icons-react\";\nimport { SvgBackspace } from \"../icons/SvgBackspace.js\";\n\ntype SquareButtonProps = React.ComponentProps<typeof SquareButton>;\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\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/** @public */\nexport class Calculator extends React.PureComponent<\n CalculatorProps,\n CalculatorState\n> {\n private _mainDiv = React.createRef<HTMLDivElement>();\n private _equalsClicked = false;\n\n public static readonly defaultProps: Pick<CalculatorProps, \"engine\"> = {\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 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 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 // eslint-disable-next-line @typescript-eslint/no-deprecated\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 {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\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 {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\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\n// eslint-disable-next-line @typescript-eslint/no-deprecated\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 {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <Icon iconSpec={<SvgBackspace />} />\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 +1 @@
1
- {"version":3,"file":"BackstageItemUtilities.d.ts","sourceRoot":"","sources":["../../../src/appui-react/backstage/BackstageItemUtilities.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC,UAAU,uBACR,SAAQ,OAAO,CACX,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC,CAC9D,EACD,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC;QACzC,IAAI,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;KAC3C;IAED,KAAK,iCAAiC,GAAG;QACvC,YAAY,EAAE,MAAM;QACpB,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,MAAM;QACpB,KAAK,EAAE,MAAM;QACb,QAAQ,CAAC,EAAE,MAAM;QAEjB,IAAI,CAAC,EAAE,QAAQ;QACf,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC;KAC5C,CAAC;IAyBF,+CAA+C;IAC/C,MAAM,UAAU,mBAAmB,CACjC,IAAI,EAAE,uBAAuB,GAC5B,sBAAsB,CAAC;IAC1B;;OAEG;IACH,MAAM,UAAU,mBAAmB,CACjC,GAAG,IAAI,EAAE,iCAAiC,GACzC,sBAAsB,CAAC;IA6B1B,UAAU,oBACR,SAAQ,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;QAC/D,EAAE,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;KACxC;IAED,KAAK,8BAA8B,GAAG;QACpC,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,MAAM,IAAI;QACnB,KAAK,EAAE,MAAM;QACb,QAAQ,CAAC,EAAE,MAAM;QAEjB,IAAI,CAAC,EAAE,QAAQ;QACf,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;KACzC,CAAC;IA0BF;;;;;OAKG;IACH,MAAM,UAAU,gBAAgB,CAC9B,IAAI,EAAE,oBAAoB,GACzB,mBAAmB,CAAC;IACvB;;OAEG;IACH,MAAM,UAAU,gBAAgB,CAC9B,GAAG,IAAI,EAAE,8BAA8B,GACtC,mBAAmB,CAAC;;CA2BxB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,KAAK,EACpD,IAAI,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,GACrB,IAAI,IAAI,CAAC,KAAK,CAAC,CAEjB"}
1
+ {"version":3,"file":"BackstageItemUtilities.d.ts","sourceRoot":"","sources":["../../../src/appui-react/backstage/BackstageItemUtilities.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC,UAAU,uBACR,SAAQ,OAAO,CACX,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC,CAC9D,EACD,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC;QACzC,IAAI,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;KAC3C;IAED,KAAK,iCAAiC,GAAG;QACvC,YAAY,EAAE,MAAM;QACpB,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,MAAM;QACpB,KAAK,EAAE,MAAM;QACb,QAAQ,CAAC,EAAE,MAAM;QAEjB,IAAI,CAAC,EAAE,QAAQ;QACf,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC;KAC5C,CAAC;IA0BF,+CAA+C;IAC/C,MAAM,UAAU,mBAAmB,CACjC,IAAI,EAAE,uBAAuB,GAC5B,sBAAsB,CAAC;IAC1B;;OAEG;IACH,MAAM,UAAU,mBAAmB,CACjC,GAAG,IAAI,EAAE,iCAAiC,GACzC,sBAAsB,CAAC;IA6B1B,UAAU,oBACR,SAAQ,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;QAC/D,EAAE,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;KACxC;IAED,KAAK,8BAA8B,GAAG;QACpC,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,MAAM,IAAI;QACnB,KAAK,EAAE,MAAM;QACb,QAAQ,CAAC,EAAE,MAAM;QAEjB,IAAI,CAAC,EAAE,QAAQ;QACf,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;KACzC,CAAC;IA2BF;;;;;OAKG;IACH,MAAM,UAAU,gBAAgB,CAC9B,IAAI,EAAE,oBAAoB,GACzB,mBAAmB,CAAC;IACvB;;OAEG;IACH,MAAM,UAAU,gBAAgB,CAC9B,GAAG,IAAI,EAAE,8BAA8B,GACtC,mBAAmB,CAAC;;CA2BxB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,KAAK,EACpD,IAAI,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,GACrB,IAAI,IAAI,CAAC,KAAK,CAAC,CAEjB"}
@@ -16,6 +16,7 @@ export var BackstageItemUtilities;
16
16
  id: frontstageId,
17
17
  stageId: frontstageId,
18
18
  groupPriority,
19
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
19
20
  icon,
20
21
  itemPriority,
21
22
  label,
@@ -45,6 +46,7 @@ export var BackstageItemUtilities;
45
46
  return {
46
47
  execute,
47
48
  groupPriority,
49
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
48
50
  icon,
49
51
  id: itemId,
50
52
  itemPriority,
@@ -1 +1 @@
1
- {"version":3,"file":"BackstageItemUtilities.js","sourceRoot":"","sources":["../../../src/appui-react/backstage/BackstageItemUtilities.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;GAEG;AACH,MAAM,KAAW,sBAAsB,CAoKtC;AApKD,WAAiB,sBAAsB;IAoBrC,SAAS,6BAA6B,CACpC,GAAG,CACD,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACyB;QAEpC,OAAO;YACL,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,YAAY;YACrB,aAAa;YACb,IAAI;YACJ,YAAY;YACZ,KAAK;YACL,QAAQ;YACR,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAYD,+CAA+C;IAC/C,SAAgB,mBAAmB,CACjC,GAAG,IAAmE;QAEtE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,EACJ,OAAO,EACP,aAAa,GAAG,CAAC,EACjB,YAAY,GAAG,CAAC,EAChB,KAAK,GAAG,EAAE,EACV,IAAI,EACJ,GAAG,KAAK,EACT,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,OAAO;gBACP,aAAa;gBACb,YAAY;gBACZ,KAAK;gBACL,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,0CAAG,IAAI,CAAI,CAAC,CAAC,CAAC,SAAS;gBACpC,GAAG,KAAK;aACT,CAAC;QACJ,CAAC;QAED,OAAO,6BAA6B,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAzBe,0CAAmB,sBAyBlC,CAAA;IAoBD,SAAS,0BAA0B,CACjC,GAAG,CACD,MAAM,EACN,aAAa,EACb,YAAY,EACZ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACsB;QAEjC,OAAO;YACL,OAAO;YACP,aAAa;YACb,IAAI;YACJ,EAAE,EAAE,MAAM;YACV,YAAY;YACZ,KAAK;YACL,QAAQ;YACR,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAiBD,wCAAwC;IACxC,SAAgB,gBAAgB,CAC9B,GAAG,IAA6D;QAEhE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,EACJ,aAAa,GAAG,CAAC,EACjB,YAAY,GAAG,CAAC,EAChB,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,EAClB,KAAK,GAAG,EAAE,EACV,IAAI,EACJ,GAAG,KAAK,EACT,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO;gBACL,aAAa;gBACb,YAAY;gBACZ,OAAO;gBACP,KAAK;gBACL,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,0CAAG,IAAI,CAAI,CAAC,CAAC,CAAC,SAAS;gBACpC,GAAG,KAAK;aACT,CAAC;QACJ,CAAC;QAED,OAAO,0BAA0B,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAxBe,uCAAgB,mBAwB/B,CAAA;AACH,CAAC,EApKgB,sBAAsB,KAAtB,sBAAsB,QAoKtC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAsB;IAEtB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC1D,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport * as React from \"react\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport type {\n BackstageActionItem,\n BackstageStageLauncher,\n} from \"./BackstageItem.js\";\n\n/** Utilities for creating and maintaining backstage items\n * @public\n */\nexport namespace BackstageItemUtilities {\n interface CreateStageLauncherArgs\n extends Partial<\n Omit<BackstageStageLauncher, \"icon\" | \"iconNode\" | \"stageId\">\n >,\n Pick<BackstageStageLauncher, \"stageId\"> {\n icon?: BackstageStageLauncher[\"iconNode\"];\n }\n\n type DeprecatedCreateStageLauncherArgs = [\n frontstageId: string,\n groupPriority: number,\n itemPriority: number,\n label: string,\n subtitle?: string,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon?: IconSpec,\n overrides?: Partial<BackstageStageLauncher>\n ];\n\n function createDeprecatedStageLauncher(\n ...[\n frontstageId,\n groupPriority,\n itemPriority,\n label,\n subtitle,\n icon,\n overrides,\n ]: DeprecatedCreateStageLauncherArgs\n ): BackstageStageLauncher {\n return {\n id: frontstageId,\n stageId: frontstageId,\n groupPriority,\n icon,\n itemPriority,\n label,\n subtitle,\n ...overrides,\n };\n }\n\n /** Creates a stage launcher backstage item. */\n export function createStageLauncher(\n args: CreateStageLauncherArgs\n ): BackstageStageLauncher;\n /** Creates a stage launcher backstage item.\n * @deprecated in 4.16.0. Uses a deprecated {@link @itwin/core-react#IconSpec} type. Use an overload instead.\n */\n export function createStageLauncher(\n ...args: DeprecatedCreateStageLauncherArgs\n ): BackstageStageLauncher;\n /** Creates a stage launcher backstage item. */\n export function createStageLauncher(\n ...args: DeprecatedCreateStageLauncherArgs | [CreateStageLauncherArgs]\n ): BackstageStageLauncher {\n if (isArgsUtil(args)) {\n const {\n stageId,\n groupPriority = 0,\n itemPriority = 0,\n label = \"\",\n icon,\n ...other\n } = args[0];\n return {\n id: stageId,\n stageId,\n groupPriority,\n itemPriority,\n label,\n iconNode: icon,\n icon: icon ? <>{icon}</> : undefined,\n ...other,\n };\n }\n\n return createDeprecatedStageLauncher(...args);\n }\n\n interface CreateActionItemArgs\n extends Partial<Omit<BackstageActionItem, \"icon\" | \"iconNode\">> {\n id: BackstageActionItem[\"id\"];\n icon?: BackstageActionItem[\"iconNode\"];\n }\n\n type DeprecatedCreateActionItemArgs = [\n itemId: string,\n groupPriority: number,\n itemPriority: number,\n execute: () => void,\n label: string,\n subtitle?: string,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon?: IconSpec,\n overrides?: Partial<BackstageActionItem>\n ];\n\n function createDeprecatedActionItem(\n ...[\n itemId,\n groupPriority,\n itemPriority,\n execute,\n label,\n subtitle,\n icon,\n overrides,\n ]: DeprecatedCreateActionItemArgs\n ): BackstageActionItem {\n return {\n execute,\n groupPriority,\n icon,\n id: itemId,\n itemPriority,\n label,\n subtitle,\n ...overrides,\n };\n }\n\n /** Creates an action backstage item.\n * @note `id` defaults to a specified `stageId`.\n * @note `groupPriority` defaults to `0`.\n * @note `itemPriority` defaults to `0`.\n * @note `label` defaults to `\"\"`.\n */\n export function createActionItem(\n args: CreateActionItemArgs\n ): BackstageActionItem;\n /** Creates an action backstage item.\n * @deprecated in 4.16.0. Uses a deprecated {@link @itwin/core-react#IconSpec} type. Use an overload instead.\n */\n export function createActionItem(\n ...args: DeprecatedCreateActionItemArgs\n ): BackstageActionItem;\n /** Creates an action backstage item. */\n export function createActionItem(\n ...args: DeprecatedCreateActionItemArgs | [CreateActionItemArgs]\n ): BackstageActionItem {\n if (isArgsUtil(args)) {\n const {\n groupPriority = 0,\n itemPriority = 0,\n execute = () => {},\n label = \"\",\n icon,\n ...other\n } = args[0];\n return {\n groupPriority,\n itemPriority,\n execute,\n label,\n iconNode: icon,\n icon: icon ? <>{icon}</> : undefined,\n ...other,\n };\n }\n\n return createDeprecatedActionItem(...args);\n }\n}\n\n/** Type-guard that returns `true` if specified array has a single object.\n * @internal\n */\nexport function isArgsUtil<TTuple extends any[], TArgs>(\n args: TTuple | [TArgs]\n): args is [TArgs] {\n return args.length === 1 && typeof args[0] === \"object\";\n}\n"]}
1
+ {"version":3,"file":"BackstageItemUtilities.js","sourceRoot":"","sources":["../../../src/appui-react/backstage/BackstageItemUtilities.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;GAEG;AACH,MAAM,KAAW,sBAAsB,CAsKtC;AAtKD,WAAiB,sBAAsB;IAoBrC,SAAS,6BAA6B,CACpC,GAAG,CACD,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACyB;QAEpC,OAAO;YACL,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,YAAY;YACrB,aAAa;YACb,4DAA4D;YAC5D,IAAI;YACJ,YAAY;YACZ,KAAK;YACL,QAAQ;YACR,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAYD,+CAA+C;IAC/C,SAAgB,mBAAmB,CACjC,GAAG,IAAmE;QAEtE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,EACJ,OAAO,EACP,aAAa,GAAG,CAAC,EACjB,YAAY,GAAG,CAAC,EAChB,KAAK,GAAG,EAAE,EACV,IAAI,EACJ,GAAG,KAAK,EACT,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,OAAO;gBACP,aAAa;gBACb,YAAY;gBACZ,KAAK;gBACL,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,0CAAG,IAAI,CAAI,CAAC,CAAC,CAAC,SAAS;gBACpC,GAAG,KAAK;aACT,CAAC;QACJ,CAAC;QAED,OAAO,6BAA6B,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAzBe,0CAAmB,sBAyBlC,CAAA;IAoBD,SAAS,0BAA0B,CACjC,GAAG,CACD,MAAM,EACN,aAAa,EACb,YAAY,EACZ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACsB;QAEjC,OAAO;YACL,OAAO;YACP,aAAa;YACb,4DAA4D;YAC5D,IAAI;YACJ,EAAE,EAAE,MAAM;YACV,YAAY;YACZ,KAAK;YACL,QAAQ;YACR,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAiBD,wCAAwC;IACxC,SAAgB,gBAAgB,CAC9B,GAAG,IAA6D;QAEhE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,EACJ,aAAa,GAAG,CAAC,EACjB,YAAY,GAAG,CAAC,EAChB,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,EAClB,KAAK,GAAG,EAAE,EACV,IAAI,EACJ,GAAG,KAAK,EACT,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO;gBACL,aAAa;gBACb,YAAY;gBACZ,OAAO;gBACP,KAAK;gBACL,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,0CAAG,IAAI,CAAI,CAAC,CAAC,CAAC,SAAS;gBACpC,GAAG,KAAK;aACT,CAAC;QACJ,CAAC;QAED,OAAO,0BAA0B,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAxBe,uCAAgB,mBAwB/B,CAAA;AACH,CAAC,EAtKgB,sBAAsB,KAAtB,sBAAsB,QAsKtC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAsB;IAEtB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC1D,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport * as React from \"react\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport type {\n BackstageActionItem,\n BackstageStageLauncher,\n} from \"./BackstageItem.js\";\n\n/** Utilities for creating and maintaining backstage items\n * @public\n */\nexport namespace BackstageItemUtilities {\n interface CreateStageLauncherArgs\n extends Partial<\n Omit<BackstageStageLauncher, \"icon\" | \"iconNode\" | \"stageId\">\n >,\n Pick<BackstageStageLauncher, \"stageId\"> {\n icon?: BackstageStageLauncher[\"iconNode\"];\n }\n\n type DeprecatedCreateStageLauncherArgs = [\n frontstageId: string,\n groupPriority: number,\n itemPriority: number,\n label: string,\n subtitle?: string,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon?: IconSpec,\n overrides?: Partial<BackstageStageLauncher>\n ];\n\n function createDeprecatedStageLauncher(\n ...[\n frontstageId,\n groupPriority,\n itemPriority,\n label,\n subtitle,\n icon,\n overrides,\n ]: DeprecatedCreateStageLauncherArgs\n ): BackstageStageLauncher {\n return {\n id: frontstageId,\n stageId: frontstageId,\n groupPriority,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon,\n itemPriority,\n label,\n subtitle,\n ...overrides,\n };\n }\n\n /** Creates a stage launcher backstage item. */\n export function createStageLauncher(\n args: CreateStageLauncherArgs\n ): BackstageStageLauncher;\n /** Creates a stage launcher backstage item.\n * @deprecated in 4.16.0. Uses a deprecated {@link @itwin/core-react#IconSpec} type. Use an overload instead.\n */\n export function createStageLauncher(\n ...args: DeprecatedCreateStageLauncherArgs\n ): BackstageStageLauncher;\n /** Creates a stage launcher backstage item. */\n export function createStageLauncher(\n ...args: DeprecatedCreateStageLauncherArgs | [CreateStageLauncherArgs]\n ): BackstageStageLauncher {\n if (isArgsUtil(args)) {\n const {\n stageId,\n groupPriority = 0,\n itemPriority = 0,\n label = \"\",\n icon,\n ...other\n } = args[0];\n return {\n id: stageId,\n stageId,\n groupPriority,\n itemPriority,\n label,\n iconNode: icon,\n icon: icon ? <>{icon}</> : undefined,\n ...other,\n };\n }\n\n return createDeprecatedStageLauncher(...args);\n }\n\n interface CreateActionItemArgs\n extends Partial<Omit<BackstageActionItem, \"icon\" | \"iconNode\">> {\n id: BackstageActionItem[\"id\"];\n icon?: BackstageActionItem[\"iconNode\"];\n }\n\n type DeprecatedCreateActionItemArgs = [\n itemId: string,\n groupPriority: number,\n itemPriority: number,\n execute: () => void,\n label: string,\n subtitle?: string,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon?: IconSpec,\n overrides?: Partial<BackstageActionItem>\n ];\n\n function createDeprecatedActionItem(\n ...[\n itemId,\n groupPriority,\n itemPriority,\n execute,\n label,\n subtitle,\n icon,\n overrides,\n ]: DeprecatedCreateActionItemArgs\n ): BackstageActionItem {\n return {\n execute,\n groupPriority,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon,\n id: itemId,\n itemPriority,\n label,\n subtitle,\n ...overrides,\n };\n }\n\n /** Creates an action backstage item.\n * @note `id` defaults to a specified `stageId`.\n * @note `groupPriority` defaults to `0`.\n * @note `itemPriority` defaults to `0`.\n * @note `label` defaults to `\"\"`.\n */\n export function createActionItem(\n args: CreateActionItemArgs\n ): BackstageActionItem;\n /** Creates an action backstage item.\n * @deprecated in 4.16.0. Uses a deprecated {@link @itwin/core-react#IconSpec} type. Use an overload instead.\n */\n export function createActionItem(\n ...args: DeprecatedCreateActionItemArgs\n ): BackstageActionItem;\n /** Creates an action backstage item. */\n export function createActionItem(\n ...args: DeprecatedCreateActionItemArgs | [CreateActionItemArgs]\n ): BackstageActionItem {\n if (isArgsUtil(args)) {\n const {\n groupPriority = 0,\n itemPriority = 0,\n execute = () => {},\n label = \"\",\n icon,\n ...other\n } = args[0];\n return {\n groupPriority,\n itemPriority,\n execute,\n label,\n iconNode: icon,\n icon: icon ? <>{icon}</> : undefined,\n ...other,\n };\n }\n\n return createDeprecatedActionItem(...args);\n }\n}\n\n/** Type-guard that returns `true` if specified array has a single object.\n * @internal\n */\nexport function isArgsUtil<TTuple extends any[], TArgs>(\n args: TTuple | [TArgs]\n): args is [TArgs] {\n return args.length === 1 && typeof args[0] === \"object\";\n}\n"]}
@@ -9,5 +9,7 @@ interface ChildWindowRendererProps {
9
9
  }
10
10
  /** @internal */
11
11
  export declare function ChildWindowRenderer({ windowManager, }: ChildWindowRendererProps): React.JSX.Element;
12
+ /** @internal */
13
+ export declare const ChildWindowContext: React.Context<Window | undefined>;
12
14
  export {};
13
15
  //# sourceMappingURL=ChildWindowRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChildWindowRenderer.d.ts","sourceRoot":"","sources":["../../../src/appui-react/childwindow/ChildWindowRenderer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,iCAAiC,CAAC;AAUzC,UAAU,wBAAwB;IAChC,aAAa,EAAE,0BAA0B,CAAC;CAC3C;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,GACd,EAAE,wBAAwB,qBAuB1B"}
1
+ {"version":3,"file":"ChildWindowRenderer.d.ts","sourceRoot":"","sources":["../../../src/appui-react/childwindow/ChildWindowRenderer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,iCAAiC,CAAC;AAWzC,UAAU,wBAAwB;IAChC,aAAa,EAAE,0BAA0B,CAAC;CAC3C;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,GACd,EAAE,wBAAwB,qBAuB1B;AAuED,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,mCAE9B,CAAC"}
@@ -16,6 +16,7 @@ import { ModelessDialogRenderer } from "../dialog/ModelessDialogManager.js";
16
16
  import { CursorPopupMenu } from "../cursor/cursormenu/CursorMenu.js";
17
17
  import { copyStyles } from "./CopyStyles.js";
18
18
  import { ConfigurableUiContext } from "../configurableui/ConfigurableUiContent.js";
19
+ import { CursorPopupRenderer } from "../../appui-react.js";
19
20
  /** @internal */
20
21
  export function ChildWindowRenderer({ windowManager, }) {
21
22
  const [childWindows, setChildWindows] = React.useState(windowManager.openChildWindows);
@@ -45,16 +46,18 @@ function ChildWindow({ content, tabId, window }) {
45
46
  if (!styled)
46
47
  return null;
47
48
  const ChildWindowWrapper = childWindow ?? DefaultChildWindowWrapper;
48
- return ReactDOM.createPortal(React.createElement(TabIdContext.Provider, { value: tabId },
49
- React.createElement(ThemeManager, null,
50
- React.createElement(ChildWindowWrapper, null,
51
- React.createElement("div", { className: "uifw-child-window-container-host" },
52
- React.createElement(PopupRenderer, null),
53
- React.createElement(ModalDialogRenderer, null),
54
- React.createElement(ModelessDialogRenderer, null),
55
- React.createElement(CursorPopupMenu, null),
56
- React.createElement("div", { className: "uifw-child-window-container nz-widget-widget" }, content)),
57
- React.createElement("div", { className: "uifw-childwindow-internalChildWindowManager_portalContainer" })))), container);
49
+ return ReactDOM.createPortal(React.createElement(ChildWindowContext.Provider, { value: window },
50
+ React.createElement(TabIdContext.Provider, { value: tabId },
51
+ React.createElement(ThemeManager, null,
52
+ React.createElement(ChildWindowWrapper, null,
53
+ React.createElement("div", { className: "uifw-child-window-container-host" },
54
+ React.createElement(PopupRenderer, null),
55
+ React.createElement(ModalDialogRenderer, null),
56
+ React.createElement(ModelessDialogRenderer, null),
57
+ React.createElement(CursorPopupMenu, null),
58
+ React.createElement("div", { className: "uifw-child-window-container nz-widget-widget" }, content),
59
+ React.createElement(CursorPopupRenderer, null)),
60
+ React.createElement("div", { className: "uifw-childwindow-internalChildWindowManager_portalContainer" }))))), container);
58
61
  }
59
62
  const stylesUtils = (() => {
60
63
  // eslint-disable-next-line @typescript-eslint/promise-function-async
@@ -77,4 +80,6 @@ const stylesUtils = (() => {
77
80
  function DefaultChildWindowWrapper(props) {
78
81
  return React.createElement(React.Fragment, null, props.children);
79
82
  }
83
+ /** @internal */
84
+ export const ChildWindowContext = React.createContext(undefined);
80
85
  //# sourceMappingURL=ChildWindowRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChildWindowRenderer.js","sourceRoot":"","sources":["../../../src/appui-react/childwindow/ChildWindowRenderer.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 ChildWindowManager\n */\n\nimport \"./ChildWindowRenderer.scss\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport type {\n InternalChildWindowManager,\n InternalOpenChildWindowInfo,\n} from \"./InternalChildWindowManager.js\";\nimport { TabIdContext } from \"../layout/widget/ContentRenderer.js\";\nimport { ThemeManager } from \"../theme/ThemeManager.js\";\nimport { PopupRenderer } from \"../popup/PopupManager.js\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager.js\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager.js\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu.js\";\nimport { copyStyles } from \"./CopyStyles.js\";\nimport { ConfigurableUiContext } from \"../configurableui/ConfigurableUiContent.js\";\n\ninterface ChildWindowRendererProps {\n windowManager: InternalChildWindowManager;\n}\n\n/** @internal */\nexport function ChildWindowRenderer({\n windowManager,\n}: ChildWindowRendererProps) {\n const [childWindows, setChildWindows] = React.useState(\n windowManager.openChildWindows\n );\n React.useEffect(() => {\n return windowManager.onChildWindowsChanged.addListener(() => {\n setChildWindows([...windowManager.openChildWindows]);\n });\n }, [windowManager]);\n return (\n <>\n {childWindows.map((childWindow) => {\n return (\n <ChildWindow\n key={childWindow.childWindowId}\n content={childWindow.content}\n tabId={childWindow.tabId}\n window={childWindow.window}\n />\n );\n })}\n </>\n );\n}\n\ntype ChildWindowProps = Pick<\n InternalOpenChildWindowInfo,\n \"content\" | \"tabId\" | \"window\"\n>;\n\nfunction ChildWindow({ content, tabId, window }: ChildWindowProps) {\n const { childWindow } = React.useContext(ConfigurableUiContext);\n const container = React.useMemo(() => {\n return window.document.getElementById(\"root\");\n }, [window]);\n const [styled, setStyled] = React.useState(false);\n React.useEffect(() => {\n void (async () => {\n await stylesUtils.copyStyles(window);\n setStyled(true);\n })();\n }, [window]);\n\n if (!container) return null;\n if (!styled) return null;\n\n const ChildWindowWrapper = childWindow ?? DefaultChildWindowWrapper;\n return ReactDOM.createPortal(\n <TabIdContext.Provider value={tabId}>\n <ThemeManager>\n <ChildWindowWrapper>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n <div className=\"uifw-childwindow-internalChildWindowManager_portalContainer\" />\n </ChildWindowWrapper>\n </ThemeManager>\n </TabIdContext.Provider>,\n container\n );\n}\n\nconst stylesUtils = (() => {\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n const getCopyStylesPromise = (window: Window) => {\n const w = window as any;\n return w.__appui_copy_styles as Promise<void> | undefined;\n };\n return {\n copyStyles: async (window: Window) => {\n let copyStylesPromise = getCopyStylesPromise(window);\n if (copyStylesPromise === undefined) {\n copyStylesPromise = copyStyles(window.document);\n const w = window as any;\n w.__appui_copy_styles = copyStylesPromise;\n }\n return copyStylesPromise;\n },\n };\n})();\n\nfunction DefaultChildWindowWrapper(props: React.PropsWithChildren) {\n return <>{props.children}</>;\n}\n"]}
1
+ {"version":3,"file":"ChildWindowRenderer.js","sourceRoot":"","sources":["../../../src/appui-react/childwindow/ChildWindowRenderer.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAKtC,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAM3D,gBAAgB;AAChB,MAAM,UAAU,mBAAmB,CAAC,EAClC,aAAa,GACY;IACzB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpD,aAAa,CAAC,gBAAgB,CAC/B,CAAC;IACF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,aAAa,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,EAAE;YAC1D,eAAe,CAAC,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACpB,OAAO,CACL,0CACG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QAChC,OAAO,CACL,oBAAC,WAAW,IACV,GAAG,EAAE,WAAW,CAAC,aAAa,EAC9B,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,MAAM,EAAE,WAAW,CAAC,MAAM,GAC1B,CACH,CAAC;IACJ,CAAC,CAAC,CACD,CACJ,CAAC;AACJ,CAAC;AAOD,SAAS,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAoB;IAC/D,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,kBAAkB,GAAG,WAAW,IAAI,yBAAyB,CAAC;IACpE,OAAO,QAAQ,CAAC,YAAY,CAC1B,oBAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM;QACxC,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;YACjC,oBAAC,YAAY;gBACX,oBAAC,kBAAkB;oBACjB,6BAAK,SAAS,EAAC,kCAAkC;wBAC/C,oBAAC,aAAa,OAAG;wBACjB,oBAAC,mBAAmB,OAAG;wBACvB,oBAAC,sBAAsB,OAAG;wBAC1B,oBAAC,eAAe,OAAG;wBACnB,6BAAK,SAAS,EAAC,8CAA8C,IAC1D,OAAO,CACJ;wBACN,oBAAC,mBAAmB,OAAG,CACnB;oBACN,6BAAK,SAAS,EAAC,6DAA6D,GAAG,CAC5D,CACR,CACO,CACI,EAC9B,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;IACxB,qEAAqE;IACrE,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC9C,MAAM,CAAC,GAAG,MAAa,CAAC;QACxB,OAAO,CAAC,CAAC,mBAAgD,CAAC;IAC5D,CAAC,CAAC;IACF,OAAO;QACL,UAAU,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;YACnC,IAAI,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,GAAG,MAAa,CAAC;gBACxB,CAAC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;YAC5C,CAAC;YACD,OAAO,iBAAiB,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AAEL,SAAS,yBAAyB,CAAC,KAA8B;IAC/D,OAAO,0CAAG,KAAK,CAAC,QAAQ,CAAI,CAAC;AAC/B,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CACnD,SAAS,CACV,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport \"./ChildWindowRenderer.scss\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport type {\n InternalChildWindowManager,\n InternalOpenChildWindowInfo,\n} from \"./InternalChildWindowManager.js\";\nimport { TabIdContext } from \"../layout/widget/ContentRenderer.js\";\nimport { ThemeManager } from \"../theme/ThemeManager.js\";\nimport { PopupRenderer } from \"../popup/PopupManager.js\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager.js\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager.js\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu.js\";\nimport { copyStyles } from \"./CopyStyles.js\";\nimport { ConfigurableUiContext } from \"../configurableui/ConfigurableUiContent.js\";\nimport { CursorPopupRenderer } from \"../../appui-react.js\";\n\ninterface ChildWindowRendererProps {\n windowManager: InternalChildWindowManager;\n}\n\n/** @internal */\nexport function ChildWindowRenderer({\n windowManager,\n}: ChildWindowRendererProps) {\n const [childWindows, setChildWindows] = React.useState(\n windowManager.openChildWindows\n );\n React.useEffect(() => {\n return windowManager.onChildWindowsChanged.addListener(() => {\n setChildWindows([...windowManager.openChildWindows]);\n });\n }, [windowManager]);\n return (\n <>\n {childWindows.map((childWindow) => {\n return (\n <ChildWindow\n key={childWindow.childWindowId}\n content={childWindow.content}\n tabId={childWindow.tabId}\n window={childWindow.window}\n />\n );\n })}\n </>\n );\n}\n\ntype ChildWindowProps = Pick<\n InternalOpenChildWindowInfo,\n \"content\" | \"tabId\" | \"window\"\n>;\n\nfunction ChildWindow({ content, tabId, window }: ChildWindowProps) {\n const { childWindow } = React.useContext(ConfigurableUiContext);\n const container = React.useMemo(() => {\n return window.document.getElementById(\"root\");\n }, [window]);\n const [styled, setStyled] = React.useState(false);\n React.useEffect(() => {\n void (async () => {\n await stylesUtils.copyStyles(window);\n setStyled(true);\n })();\n }, [window]);\n\n if (!container) return null;\n if (!styled) return null;\n\n const ChildWindowWrapper = childWindow ?? DefaultChildWindowWrapper;\n return ReactDOM.createPortal(\n <ChildWindowContext.Provider value={window}>\n <TabIdContext.Provider value={tabId}>\n <ThemeManager>\n <ChildWindowWrapper>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n <CursorPopupRenderer />\n </div>\n <div className=\"uifw-childwindow-internalChildWindowManager_portalContainer\" />\n </ChildWindowWrapper>\n </ThemeManager>\n </TabIdContext.Provider>\n </ChildWindowContext.Provider>,\n container\n );\n}\n\nconst stylesUtils = (() => {\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n const getCopyStylesPromise = (window: Window) => {\n const w = window as any;\n return w.__appui_copy_styles as Promise<void> | undefined;\n };\n return {\n copyStyles: async (window: Window) => {\n let copyStylesPromise = getCopyStylesPromise(window);\n if (copyStylesPromise === undefined) {\n copyStylesPromise = copyStyles(window.document);\n const w = window as any;\n w.__appui_copy_styles = copyStylesPromise;\n }\n return copyStylesPromise;\n },\n };\n})();\n\nfunction DefaultChildWindowWrapper(props: React.PropsWithChildren) {\n return <>{props.children}</>;\n}\n\n/** @internal */\nexport const ChildWindowContext = React.createContext<Window | undefined>(\n undefined\n);\n"]}