@itwin/appui-react 5.0.5 → 5.1.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 (514) hide show
  1. package/CHANGELOG.md +48 -38
  2. package/lib/appui-react/UiFramework.d.ts +1 -1
  3. package/lib/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/appui-react/UiFramework.js +46 -46
  5. package/lib/appui-react/UiFramework.js.map +1 -1
  6. package/lib/appui-react/accudraw/AccuDrawCommandItems.js +1 -1
  7. package/lib/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  8. package/lib/appui-react/accudraw/AccuDrawDialog.js +1 -1
  9. package/lib/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  10. package/lib/appui-react/accudraw/AccuDrawFieldContainer.d.ts +2 -0
  11. package/lib/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  12. package/lib/appui-react/accudraw/AccuDrawFieldContainer.js +38 -26
  13. package/lib/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  14. package/lib/appui-react/accudraw/AccuDrawInputField.d.ts +4 -2
  15. package/lib/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  16. package/lib/appui-react/accudraw/AccuDrawInputField.js +45 -38
  17. package/lib/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  18. package/lib/appui-react/accudraw/AccuDrawInputField.scss +0 -15
  19. package/lib/appui-react/accudraw/AccuDrawPopupManager.js +3 -3
  20. package/lib/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  21. package/lib/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  22. package/lib/appui-react/accudraw/AccuDrawWidget.js +2 -2
  23. package/lib/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  24. package/lib/appui-react/accudraw/Calculator.js +1 -1
  25. package/lib/appui-react/accudraw/Calculator.js.map +1 -1
  26. package/lib/appui-react/accudraw/CalculatorPopup.js +1 -1
  27. package/lib/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  28. package/lib/appui-react/accudraw/FrameworkAccuDraw.d.ts +2 -2
  29. package/lib/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  30. package/lib/appui-react/accudraw/FrameworkAccuDraw.js +18 -15
  31. package/lib/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  32. package/lib/appui-react/accudraw/MenuButton.js +1 -1
  33. package/lib/appui-react/accudraw/MenuButton.js.map +1 -1
  34. package/lib/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  35. package/lib/appui-react/backstage/BackstageComposer.js +2 -3
  36. package/lib/appui-react/backstage/BackstageComposer.js.map +1 -1
  37. package/lib/appui-react/backstage/BackstageComposerItem.js +6 -6
  38. package/lib/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  39. package/lib/appui-react/backstage/BackstageItem.js.map +1 -1
  40. package/lib/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  41. package/lib/appui-react/backstage/BackstageManager.js +3 -3
  42. package/lib/appui-react/backstage/BackstageManager.js.map +1 -1
  43. package/lib/appui-react/backstage/InternalBackstageManager.js +2 -2
  44. package/lib/appui-react/backstage/InternalBackstageManager.js.map +1 -1
  45. package/lib/appui-react/configurableui/ActivityTracker.d.ts.map +1 -1
  46. package/lib/appui-react/configurableui/ActivityTracker.js +0 -1
  47. package/lib/appui-react/configurableui/ActivityTracker.js.map +1 -1
  48. package/lib/appui-react/configurableui/ConfigurableUiContent.js +6 -6
  49. package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  50. package/lib/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  51. package/lib/appui-react/configurableui/InternalConfigurableUiManager.d.ts +1 -1
  52. package/lib/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  53. package/lib/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  54. package/lib/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  55. package/lib/appui-react/content/ContentControl.js +1 -1
  56. package/lib/appui-react/content/ContentControl.js.map +1 -1
  57. package/lib/appui-react/content/ContentGroup.js +7 -7
  58. package/lib/appui-react/content/ContentGroup.js.map +1 -1
  59. package/lib/appui-react/content/ContentLayout.d.ts.map +1 -1
  60. package/lib/appui-react/content/ContentLayout.js +16 -17
  61. package/lib/appui-react/content/ContentLayout.js.map +1 -1
  62. package/lib/appui-react/content/DefaultViewOverlay.js +1 -1
  63. package/lib/appui-react/content/DefaultViewOverlay.js.map +1 -1
  64. package/lib/appui-react/content/FloatingViewportContent.js +4 -4
  65. package/lib/appui-react/content/FloatingViewportContent.js.map +1 -1
  66. package/lib/appui-react/content/IModelViewport.d.ts +1 -1
  67. package/lib/appui-react/content/IModelViewport.d.ts.map +1 -1
  68. package/lib/appui-react/content/IModelViewport.js +1 -1
  69. package/lib/appui-react/content/IModelViewport.js.map +1 -1
  70. package/lib/appui-react/content/InternalContentViewManager.js +26 -26
  71. package/lib/appui-react/content/InternalContentViewManager.js.map +1 -1
  72. package/lib/appui-react/content/ViewportContentControl.js +1 -1
  73. package/lib/appui-react/content/ViewportContentControl.js.map +1 -1
  74. package/lib/appui-react/content/split-pane/SplitPane.js +2 -2
  75. package/lib/appui-react/content/split-pane/SplitPane.js.map +1 -1
  76. package/lib/appui-react/cursor/CursorInformation.js +2 -2
  77. package/lib/appui-react/cursor/CursorInformation.js.map +1 -1
  78. package/lib/appui-react/cursor/cursormenu/CursorMenu.d.ts +1 -1
  79. package/lib/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  80. package/lib/appui-react/cursor/cursormenu/CursorMenu.js +3 -3
  81. package/lib/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  82. package/lib/appui-react/cursor/cursorpopup/CursorPopup.d.ts +1 -1
  83. package/lib/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  84. package/lib/appui-react/cursor/cursorpopup/CursorPopup.js +3 -3
  85. package/lib/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  86. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +1 -1
  87. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  88. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  89. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js +1 -1
  90. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  91. package/lib/appui-react/dialog/ContentDialog.js.map +1 -1
  92. package/lib/appui-react/dialog/ContentDialogManager.js +2 -2
  93. package/lib/appui-react/dialog/ContentDialogManager.js.map +1 -1
  94. package/lib/appui-react/dialog/DialogManagerBase.js +4 -4
  95. package/lib/appui-react/dialog/DialogManagerBase.js.map +1 -1
  96. package/lib/appui-react/dialog/InternalContentDialogManager.d.ts.map +1 -1
  97. package/lib/appui-react/dialog/InternalContentDialogManager.js +2 -3
  98. package/lib/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  99. package/lib/appui-react/dialog/InternalModalDialogManager.js +1 -1
  100. package/lib/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  101. package/lib/appui-react/dialog/InternalModelessDialogManager.d.ts.map +1 -1
  102. package/lib/appui-react/dialog/InternalModelessDialogManager.js +1 -2
  103. package/lib/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  104. package/lib/appui-react/dialog/ModalDialogManager.js +2 -2
  105. package/lib/appui-react/dialog/ModalDialogManager.js.map +1 -1
  106. package/lib/appui-react/dialog/ModelessDialog.js +1 -1
  107. package/lib/appui-react/dialog/ModelessDialog.js.map +1 -1
  108. package/lib/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
  109. package/lib/appui-react/dialog/ModelessDialogManager.js +2 -3
  110. package/lib/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  111. package/lib/appui-react/dialog/StandardMessageBox.js +1 -1
  112. package/lib/appui-react/dialog/StandardMessageBox.js.map +1 -1
  113. package/lib/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  114. package/lib/appui-react/feedback/ElementTooltip.d.ts +1 -1
  115. package/lib/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  116. package/lib/appui-react/feedback/ElementTooltip.js.map +1 -1
  117. package/lib/appui-react/feedback/ValidationTextbox.js.map +1 -1
  118. package/lib/appui-react/framework/FrameworkBackstage.js.map +1 -1
  119. package/lib/appui-react/framework/FrameworkContent.js +3 -3
  120. package/lib/appui-react/framework/FrameworkContent.js.map +1 -1
  121. package/lib/appui-react/framework/FrameworkControls.js.map +1 -1
  122. package/lib/appui-react/framework/FrameworkDialogs.js +2 -2
  123. package/lib/appui-react/framework/FrameworkDialogs.js.map +1 -1
  124. package/lib/appui-react/framework/FrameworkFrontstages.js +8 -8
  125. package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  126. package/lib/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  127. package/lib/appui-react/framework/FrameworkToolSettings.js +1 -1
  128. package/lib/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  129. package/lib/appui-react/frontstage/Frontstage.js.map +1 -1
  130. package/lib/appui-react/frontstage/FrontstageConfig.d.ts +5 -2
  131. package/lib/appui-react/frontstage/FrontstageConfig.d.ts.map +1 -1
  132. package/lib/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  133. package/lib/appui-react/frontstage/FrontstageDef.d.ts +5 -1
  134. package/lib/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  135. package/lib/appui-react/frontstage/FrontstageDef.js +22 -17
  136. package/lib/appui-react/frontstage/FrontstageDef.js.map +1 -1
  137. package/lib/appui-react/frontstage/InternalFrontstageManager.js +29 -29
  138. package/lib/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  139. package/lib/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  140. package/lib/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  141. package/lib/appui-react/frontstage/ModalSettingsStage.js +2 -2
  142. package/lib/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  143. package/lib/appui-react/frontstage/NestedFrontstage.js +1 -1
  144. package/lib/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  145. package/lib/appui-react/frontstage/StandardFrontstageProvider.js +1 -1
  146. package/lib/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  147. package/lib/appui-react/hooks/useActiveIModelConnection.js +1 -1
  148. package/lib/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  149. package/lib/appui-react/hooks/useUiVisibility.js +1 -1
  150. package/lib/appui-react/hooks/useUiVisibility.js.map +1 -1
  151. package/lib/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  152. package/lib/appui-react/keyboardshortcut/KeyboardShortcut.js +1 -1
  153. package/lib/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  154. package/lib/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  155. package/lib/appui-react/keyboardshortcut/KeyboardShortcutProps.js.map +1 -1
  156. package/lib/appui-react/layout/StandardLayout.js.map +1 -1
  157. package/lib/appui-react/layout/backstage/Backstage.js.map +1 -1
  158. package/lib/appui-react/layout/backstage/Item.js.map +1 -1
  159. package/lib/appui-react/layout/backstage/Separator.js +1 -1
  160. package/lib/appui-react/layout/backstage/Separator.js.map +1 -1
  161. package/lib/appui-react/layout/base/usePointerCaptor.d.ts +1 -1
  162. package/lib/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  163. package/lib/appui-react/layout/footer/dialog/Dialog.js.map +1 -1
  164. package/lib/appui-react/layout/footer/dialog/TitleBar.js.map +1 -1
  165. package/lib/appui-react/layout/footer/snap-mode/Panel.js.map +1 -1
  166. package/lib/appui-react/layout/footer/snap-mode/Snap.js.map +1 -1
  167. package/lib/appui-react/layout/footer/tool-assistance/Dialog.js.map +1 -1
  168. package/lib/appui-react/layout/footer/tool-assistance/Instruction.js.map +1 -1
  169. package/lib/appui-react/layout/footer/tool-assistance/Item.js.map +1 -1
  170. package/lib/appui-react/layout/footer/tool-assistance/NewDot.js +1 -1
  171. package/lib/appui-react/layout/footer/tool-assistance/NewDot.js.map +1 -1
  172. package/lib/appui-react/layout/footer/tool-assistance/Separator.js.map +1 -1
  173. package/lib/appui-react/layout/outline/SectionOutline.js.map +1 -1
  174. package/lib/appui-react/layout/popup/Tooltip.js.map +1 -1
  175. package/lib/appui-react/layout/state/internal/PanelStateHelpers.js +1 -1
  176. package/lib/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  177. package/lib/appui-react/layout/state/internal/TabStateHelpers.js +6 -6
  178. package/lib/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  179. package/lib/appui-react/layout/state/internal/ToolSettingsStateHelpers.js +6 -6
  180. package/lib/appui-react/layout/state/internal/ToolSettingsStateHelpers.js.map +1 -1
  181. package/lib/appui-react/layout/state/internal/WidgetStateHelpers.js +13 -13
  182. package/lib/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  183. package/lib/appui-react/layout/target/TargetContainer.js.map +1 -1
  184. package/lib/appui-react/layout/target/useAllowedSideTarget.js +1 -1
  185. package/lib/appui-react/layout/target/useAllowedSideTarget.js.map +1 -1
  186. package/lib/appui-react/layout/tool-settings/Docked.js +1 -1
  187. package/lib/appui-react/layout/tool-settings/Docked.js.map +1 -1
  188. package/lib/appui-react/layout/tool-settings/Handle.js.map +1 -1
  189. package/lib/appui-react/layout/tool-settings/Overflow.js.map +1 -1
  190. package/lib/appui-react/layout/tool-settings/Panel.js +1 -1
  191. package/lib/appui-react/layout/tool-settings/Panel.js.map +1 -1
  192. package/lib/appui-react/layout/tool-settings/Setting.js.map +1 -1
  193. package/lib/appui-react/layout/widget/Menu.js +1 -1
  194. package/lib/appui-react/layout/widget/Menu.js.map +1 -1
  195. package/lib/appui-react/layout/widget/MenuTab.js.map +1 -1
  196. package/lib/appui-react/layout/widget/NavigationArea.js.map +1 -1
  197. package/lib/appui-react/layout/widget/Tab.js +1 -1
  198. package/lib/appui-react/layout/widget/Tab.js.map +1 -1
  199. package/lib/appui-react/layout/widget/TabBar.js +1 -1
  200. package/lib/appui-react/layout/widget/TabBar.js.map +1 -1
  201. package/lib/appui-react/layout/widget/ToolsArea.js.map +1 -1
  202. package/lib/appui-react/layout/widget/Widget.js.map +1 -1
  203. package/lib/appui-react/layout/widget/tools/button/Button.js.map +1 -1
  204. package/lib/appui-react/layout/widget/tools/button/Expandable.js.map +1 -1
  205. package/lib/appui-react/layout/widget-panels/Expander.js +1 -1
  206. package/lib/appui-react/layout/widget-panels/Expander.js.map +1 -1
  207. package/lib/appui-react/layout/widget-panels/Grip.d.ts.map +1 -1
  208. package/lib/appui-react/layout/widget-panels/Grip.js +3 -3
  209. package/lib/appui-react/layout/widget-panels/Grip.js.map +1 -1
  210. package/lib/appui-react/layout/widget-panels/Panel.d.ts.map +1 -1
  211. package/lib/appui-react/layout/widget-panels/useAnimatePanel.d.ts.map +1 -1
  212. package/lib/appui-react/messages/InputField.js +2 -2
  213. package/lib/appui-react/messages/InputField.js.map +1 -1
  214. package/lib/appui-react/messages/MessageManager.d.ts +4 -4
  215. package/lib/appui-react/messages/MessageManager.d.ts.map +1 -1
  216. package/lib/appui-react/messages/MessageManager.js +25 -25
  217. package/lib/appui-react/messages/MessageManager.js.map +1 -1
  218. package/lib/appui-react/messages/MessageRenderer.js.map +1 -1
  219. package/lib/appui-react/messages/Pointer.d.ts.map +1 -1
  220. package/lib/appui-react/messages/Pointer.js +7 -7
  221. package/lib/appui-react/messages/Pointer.js.map +1 -1
  222. package/lib/appui-react/messages/ReactNotifyMessageDetails.d.ts +2 -2
  223. package/lib/appui-react/messages/ReactNotifyMessageDetails.d.ts.map +1 -1
  224. package/lib/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  225. package/lib/appui-react/navigationaids/CubeNavigationAidControl.js +2 -2
  226. package/lib/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  227. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js +2 -2
  228. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  229. package/lib/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  230. package/lib/appui-react/navigationaids/SheetNavigationAid.js +2 -2
  231. package/lib/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  232. package/lib/appui-react/navigationaids/SheetsModalFrontstage.js +8 -8
  233. package/lib/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  234. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +1 -1
  235. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  236. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js +3 -3
  237. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  238. package/lib/appui-react/pickers/ListPicker.d.ts +1 -0
  239. package/lib/appui-react/pickers/ListPicker.d.ts.map +1 -1
  240. package/lib/appui-react/pickers/ListPicker.js +11 -10
  241. package/lib/appui-react/pickers/ListPicker.js.map +1 -1
  242. package/lib/appui-react/pickers/ViewSelector.d.ts +1 -0
  243. package/lib/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  244. package/lib/appui-react/pickers/ViewSelector.js +7 -6
  245. package/lib/appui-react/pickers/ViewSelector.js.map +1 -1
  246. package/lib/appui-react/popup/CardPopup.js +2 -2
  247. package/lib/appui-react/popup/CardPopup.js.map +1 -1
  248. package/lib/appui-react/popup/ComponentPopup.js.map +1 -1
  249. package/lib/appui-react/popup/HTMLElementPopup.js.map +1 -1
  250. package/lib/appui-react/popup/InputEditorPopup.js.map +1 -1
  251. package/lib/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  252. package/lib/appui-react/popup/KeyinPalettePanel.js +2 -3
  253. package/lib/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  254. package/lib/appui-react/popup/KeyinPalettePopup.js +1 -1
  255. package/lib/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  256. package/lib/appui-react/popup/PopupManager.d.ts +1 -1
  257. package/lib/appui-react/popup/PopupManager.d.ts.map +1 -1
  258. package/lib/appui-react/popup/PopupManager.js +4 -4
  259. package/lib/appui-react/popup/PopupManager.js.map +1 -1
  260. package/lib/appui-react/popup/PositionPopup.js +2 -2
  261. package/lib/appui-react/popup/PositionPopup.js.map +1 -1
  262. package/lib/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  263. package/lib/appui-react/popup/ToolbarPopup.js +1 -1
  264. package/lib/appui-react/popup/ToolbarPopup.js.map +1 -1
  265. package/lib/appui-react/preview/PreviewFeatures.d.ts +3 -5
  266. package/lib/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  267. package/lib/appui-react/preview/PreviewFeatures.js +1 -2
  268. package/lib/appui-react/preview/PreviewFeatures.js.map +1 -1
  269. package/lib/appui-react/preview/allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.d.ts +5 -0
  270. package/lib/appui-react/preview/allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.d.ts.map +1 -0
  271. package/lib/appui-react/preview/{allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.js → allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.js} +5 -5
  272. package/lib/appui-react/preview/allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.js.map +1 -0
  273. package/lib/appui-react/preview/control-widget-visibility/NavigationWidget.d.ts +1 -1
  274. package/lib/appui-react/preview/control-widget-visibility/NavigationWidget.d.ts.map +1 -1
  275. package/lib/appui-react/preview/control-widget-visibility/NavigationWidget.js +1 -1
  276. package/lib/appui-react/preview/control-widget-visibility/NavigationWidget.js.map +1 -1
  277. package/lib/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts +1 -1
  278. package/lib/appui-react/preview/enable-maximized-widget/MaximizedWidget.d.ts.map +1 -1
  279. package/lib/appui-react/preview/enable-maximized-widget/MaximizedWidget.js.map +1 -1
  280. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts +1 -4
  281. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts.map +1 -1
  282. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +13 -13
  283. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  284. package/lib/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.d.ts +1 -1
  285. package/lib/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.d.ts.map +1 -1
  286. package/lib/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.js +1 -1
  287. package/lib/appui-react/preview/reparent-popout-widgets/PopoutThemeProvider.js.map +1 -1
  288. package/lib/appui-react/preview/widget-action-dropdown/MoreButton.d.ts +1 -1
  289. package/lib/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
  290. package/lib/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  291. package/lib/appui-react/redux/ConfigurableUiState.d.ts.map +1 -1
  292. package/lib/appui-react/redux/ConfigurableUiState.js +1 -1
  293. package/lib/appui-react/redux/ConfigurableUiState.js.map +1 -1
  294. package/lib/appui-react/redux/FrameworkState.js.map +1 -1
  295. package/lib/appui-react/redux/ReducerRegistry.js +1 -1
  296. package/lib/appui-react/redux/ReducerRegistry.js.map +1 -1
  297. package/lib/appui-react/redux/SessionState.d.ts.map +1 -1
  298. package/lib/appui-react/redux/SessionState.js.map +1 -1
  299. package/lib/appui-react/redux/StateManager.js +2 -2
  300. package/lib/appui-react/redux/StateManager.js.map +1 -1
  301. package/lib/appui-react/redux/connectIModel.js +1 -1
  302. package/lib/appui-react/redux/connectIModel.js.map +1 -1
  303. package/lib/appui-react/redux/redux-ts.js.map +1 -1
  304. package/lib/appui-react/selection/SelectionContextItemDef.js +2 -2
  305. package/lib/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  306. package/lib/appui-react/settings/SettingsManager.js +1 -1
  307. package/lib/appui-react/settings/SettingsManager.js.map +1 -1
  308. package/lib/appui-react/settings/quantityformatting/QuantityFormat.js +3 -3
  309. package/lib/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  310. package/lib/appui-react/settings/ui/UiSettingsPage.js +5 -5
  311. package/lib/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  312. package/lib/appui-react/shared/ActionButtonItemDef.js +1 -1
  313. package/lib/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  314. package/lib/appui-react/shared/AnyItemDef.js.map +1 -1
  315. package/lib/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  316. package/lib/appui-react/shared/CommandItemDef.js +1 -1
  317. package/lib/appui-react/shared/CommandItemDef.js.map +1 -1
  318. package/lib/appui-react/shared/CustomItemDef.js +1 -1
  319. package/lib/appui-react/shared/CustomItemDef.js.map +1 -1
  320. package/lib/appui-react/shared/CustomItemProps.js.map +1 -1
  321. package/lib/appui-react/shared/GroupItemProps.js.map +1 -1
  322. package/lib/appui-react/shared/ItemDefBase.js.map +1 -1
  323. package/lib/appui-react/shared/ItemMap.js +1 -1
  324. package/lib/appui-react/shared/ItemMap.js.map +1 -1
  325. package/lib/appui-react/shared/ItemProps.js.map +1 -1
  326. package/lib/appui-react/shared/MenuItem.js +1 -1
  327. package/lib/appui-react/shared/MenuItem.js.map +1 -1
  328. package/lib/appui-react/shared/ToolItemDef.js +1 -1
  329. package/lib/appui-react/shared/ToolItemDef.js.map +1 -1
  330. package/lib/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  331. package/lib/appui-react/stagepanels/StagePanelDef.js +2 -2
  332. package/lib/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  333. package/lib/appui-react/statusbar/Field.js.map +1 -1
  334. package/lib/appui-react/statusbar/Indicator.js +2 -2
  335. package/lib/appui-react/statusbar/Indicator.js.map +1 -1
  336. package/lib/appui-react/statusbar/LabelIndicator.js +2 -2
  337. package/lib/appui-react/statusbar/LabelIndicator.js.map +1 -1
  338. package/lib/appui-react/statusbar/Overflow.js.map +1 -1
  339. package/lib/appui-react/statusbar/Separator.js +1 -1
  340. package/lib/appui-react/statusbar/Separator.js.map +1 -1
  341. package/lib/appui-react/statusbar/StatusBar.js.map +1 -1
  342. package/lib/appui-react/statusbar/StatusBarComposer.js +6 -6
  343. package/lib/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  344. package/lib/appui-react/statusbar/StatusBarItem.js.map +1 -1
  345. package/lib/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  346. package/lib/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  347. package/lib/appui-react/statusbar/dialog/Button.js.map +1 -1
  348. package/lib/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  349. package/lib/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
  350. package/lib/appui-react/statusbar/popup/Popup.js +2 -2
  351. package/lib/appui-react/statusbar/popup/Popup.js.map +1 -1
  352. package/lib/appui-react/statusfields/ActivityCenter.js +2 -2
  353. package/lib/appui-react/statusfields/ActivityCenter.js.map +1 -1
  354. package/lib/appui-react/statusfields/SectionsField.js.map +1 -1
  355. package/lib/appui-react/statusfields/SelectionCount.js.map +1 -1
  356. package/lib/appui-react/statusfields/SelectionInfo.js +2 -2
  357. package/lib/appui-react/statusfields/SelectionInfo.js.map +1 -1
  358. package/lib/appui-react/statusfields/SelectionScope.js +3 -3
  359. package/lib/appui-react/statusfields/SelectionScope.js.map +1 -1
  360. package/lib/appui-react/statusfields/SnapMode.js +2 -2
  361. package/lib/appui-react/statusfields/SnapMode.js.map +1 -1
  362. package/lib/appui-react/statusfields/ViewAttributes.d.ts +1 -1
  363. package/lib/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  364. package/lib/appui-react/statusfields/ViewAttributes.js +1 -1
  365. package/lib/appui-react/statusfields/ViewAttributes.js.map +1 -1
  366. package/lib/appui-react/statusfields/message-center/MessageCenterField.js +1 -1
  367. package/lib/appui-react/statusfields/message-center/MessageCenterField.js.map +1 -1
  368. package/lib/appui-react/statusfields/message-center/MessageCenterMessage.js.map +1 -1
  369. package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts +1 -1
  370. package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  371. package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  372. package/lib/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  373. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  374. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js +5 -5
  375. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  376. package/lib/appui-react/syncui/InternalSyncUiEventDispatcher.js +2 -2
  377. package/lib/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -1
  378. package/lib/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  379. package/lib/appui-react/syncui/SyncUiEventDispatcher.js +3 -8
  380. package/lib/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  381. package/lib/appui-react/syncui/UiSyncEvent.js +1 -1
  382. package/lib/appui-react/syncui/UiSyncEvent.js.map +1 -1
  383. package/lib/appui-react/theme/ThemeManager.js +1 -1
  384. package/lib/appui-react/theme/ThemeManager.js.map +1 -1
  385. package/lib/appui-react/toolbar/GroupItem.js +1 -1
  386. package/lib/appui-react/toolbar/GroupItem.js.map +1 -1
  387. package/lib/appui-react/toolbar/Toolbar.js.map +1 -1
  388. package/lib/appui-react/toolbar/ToolbarComposer.js +3 -3
  389. package/lib/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  390. package/lib/appui-react/toolbar/ToolbarHelper.js +4 -4
  391. package/lib/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  392. package/lib/appui-react/toolbar/ToolbarItem.js.map +1 -1
  393. package/lib/appui-react/toolbar/ToolbarItemUtilities.js +1 -1
  394. package/lib/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  395. package/lib/appui-react/toolbar/ToolbarItemsManager.js +10 -10
  396. package/lib/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  397. package/lib/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  398. package/lib/appui-react/toolbar/new-toolbars/Badge.d.ts +1 -1
  399. package/lib/appui-react/toolbar/new-toolbars/Badge.d.ts.map +1 -1
  400. package/lib/appui-react/toolbar/new-toolbars/Badge.js +1 -1
  401. package/lib/appui-react/toolbar/new-toolbars/Badge.js.map +1 -1
  402. package/lib/appui-react/toolbar/new-toolbars/GroupItem.js +2 -2
  403. package/lib/appui-react/toolbar/new-toolbars/GroupItem.js.map +1 -1
  404. package/lib/appui-react/toolbar/new-toolbars/Item.js +1 -1
  405. package/lib/appui-react/toolbar/new-toolbars/Item.js.map +1 -1
  406. package/lib/appui-react/toolbar/new-toolbars/ToolGroup.js.map +1 -1
  407. package/lib/appui-react/toolbar/new-toolbars/useOverflow.d.ts.map +1 -1
  408. package/lib/appui-react/toolbar/useDefaultToolbarItems.js +1 -1
  409. package/lib/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  410. package/lib/appui-react/toolbar/useUiItemsProviderToolbarItems.js +1 -1
  411. package/lib/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  412. package/lib/appui-react/tools/CoreToolDefinitions.js +2 -2
  413. package/lib/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  414. package/lib/appui-react/tools/KeyinPaletteTools.d.ts +1 -1
  415. package/lib/appui-react/tools/OpenSettingsTool.d.ts +1 -1
  416. package/lib/appui-react/tools/RestoreLayoutTool.d.ts +2 -2
  417. package/lib/appui-react/tools/ToolbarItems.js +1 -1
  418. package/lib/appui-react/tools/ToolbarItems.js.map +1 -1
  419. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.d.ts.map +1 -1
  420. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -3
  421. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  422. package/lib/appui-react/toolsettings/InternalToolSettingsManager.js +2 -2
  423. package/lib/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  424. package/lib/appui-react/toolsettings/ToolInformation.js +1 -1
  425. package/lib/appui-react/toolsettings/ToolInformation.js.map +1 -1
  426. package/lib/appui-react/toolsettings/ToolUiProvider.js +1 -1
  427. package/lib/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
  428. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +5 -5
  429. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js +1 -1
  430. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  431. package/lib/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  432. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js +4 -4
  433. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  434. package/lib/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  435. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +3 -3
  436. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  437. package/lib/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  438. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -3
  439. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  440. package/lib/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  441. package/lib/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -1
  442. package/lib/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  443. package/lib/appui-react/ui-items-provider/UiItemsManager.js +3 -3
  444. package/lib/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  445. package/lib/appui-react/uiadmin/FrameworkUiAdmin.js +3 -3
  446. package/lib/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  447. package/lib/appui-react/uiprovider/ComponentGenerator.d.ts.map +1 -1
  448. package/lib/appui-react/uistate/AppUiSettings.js +2 -2
  449. package/lib/appui-react/uistate/AppUiSettings.js.map +1 -1
  450. package/lib/appui-react/uistate/LocalStateStorage.js +1 -1
  451. package/lib/appui-react/uistate/LocalStateStorage.js.map +1 -1
  452. package/lib/appui-react/uistate/UiStateStorage.js +1 -1
  453. package/lib/appui-react/uistate/UiStateStorage.js.map +1 -1
  454. package/lib/appui-react/uistate/useReduxFrameworkState.js +1 -1
  455. package/lib/appui-react/uistate/useReduxFrameworkState.js.map +1 -1
  456. package/lib/appui-react/uistate/useUiStateStorage.js +1 -1
  457. package/lib/appui-react/uistate/useUiStateStorage.js.map +1 -1
  458. package/lib/appui-react/utils/PropsHelper.js +5 -5
  459. package/lib/appui-react/utils/PropsHelper.js.map +1 -1
  460. package/lib/appui-react/utils/RectangleProps.js.map +1 -1
  461. package/lib/appui-react/utils/SizeProps.js.map +1 -1
  462. package/lib/appui-react/utils/ViewUtilities.d.ts.map +1 -1
  463. package/lib/appui-react/utils/ViewUtilities.js.map +1 -1
  464. package/lib/appui-react/utils/getActiveViewport.js +1 -1
  465. package/lib/appui-react/utils/getActiveViewport.js.map +1 -1
  466. package/lib/appui-react/widget-panels/DockedBar.js.map +1 -1
  467. package/lib/appui-react/widget-panels/Frontstage.js +7 -7
  468. package/lib/appui-react/widget-panels/Frontstage.js.map +1 -1
  469. package/lib/appui-react/widget-panels/StatusBar.js +5 -5
  470. package/lib/appui-react/widget-panels/StatusBar.js.map +1 -1
  471. package/lib/appui-react/widget-panels/Tab.js +4 -4
  472. package/lib/appui-react/widget-panels/Tab.js.map +1 -1
  473. package/lib/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  474. package/lib/appui-react/widget-panels/ToolSettings.js +8 -5
  475. package/lib/appui-react/widget-panels/ToolSettings.js.map +1 -1
  476. package/lib/appui-react/widgets/BackstageAppButton.js +2 -2
  477. package/lib/appui-react/widgets/BackstageAppButton.js.map +1 -1
  478. package/lib/appui-react/widgets/BasicNavigationWidget.js +1 -1
  479. package/lib/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  480. package/lib/appui-react/widgets/BasicToolWidget.js +1 -1
  481. package/lib/appui-react/widgets/BasicToolWidget.js.map +1 -1
  482. package/lib/appui-react/widgets/ContentToolWidgetComposer.js +1 -1
  483. package/lib/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  484. package/lib/appui-react/widgets/NavigationWidgetComposer.js +10 -10
  485. package/lib/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  486. package/lib/appui-react/widgets/StatusBarWidgetComposerControl.js +1 -1
  487. package/lib/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  488. package/lib/appui-react/widgets/ToolWidgetComposer.js +1 -1
  489. package/lib/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  490. package/lib/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  491. package/lib/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  492. package/lib/appui-react/widgets/Widget.js.map +1 -1
  493. package/lib/appui-react/widgets/WidgetControl.js +1 -1
  494. package/lib/appui-react/widgets/WidgetControl.js.map +1 -1
  495. package/lib/appui-react/widgets/WidgetDef.js +21 -21
  496. package/lib/appui-react/widgets/WidgetDef.js.map +1 -1
  497. package/lib/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  498. package/lib/appui-react/widgets/useWidget.d.ts.map +1 -1
  499. package/lib/appui-react.js +1 -1
  500. package/lib/appui-react.js.map +1 -1
  501. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +0 -15
  502. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +0 -15
  503. package/package.json +17 -17
  504. package/lib/appui-react/layout/widget/tools/button/Back.d.ts +0 -21
  505. package/lib/appui-react/layout/widget/tools/button/Back.d.ts.map +0 -1
  506. package/lib/appui-react/layout/widget/tools/button/Back.js +0 -23
  507. package/lib/appui-react/layout/widget/tools/button/Back.js.map +0 -1
  508. package/lib/appui-react/preview/allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.d.ts +0 -5
  509. package/lib/appui-react/preview/allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.d.ts.map +0 -1
  510. package/lib/appui-react/preview/allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.js.map +0 -1
  511. package/lib/appui-react/preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.d.ts +0 -5
  512. package/lib/appui-react/preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.d.ts.map +0 -1
  513. package/lib/appui-react/preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.js +0 -13
  514. package/lib/appui-react/preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./AccuDrawFieldContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { 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\";\nimport { useEnableColorlessAccuDrawInputFields } from \"../preview/enable-colorless-accudraw-input-fields/useEnableColorlessAccuDrawInputFields.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 deprecation/deprecation\nexport interface AccuDrawFieldContainerProps extends CommonProps {\n /** Orientation of the fields */\n orientation: Orientation;\n /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */\n uiSettingsStorage?: UiStateStorage;\n /** @internal */\n showZOverride?: boolean;\n}\n\nlet AccuDrawContainerIndex = 0;\n\nfunction determineShowZ(vp?: ScreenViewport): boolean {\n const showZ = 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 deprecation/deprecation\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\n const {\n className,\n style,\n orientation,\n uiSettingsStorage,\n showZOverride,\n ...otherProps\n } = props;\n\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\n const xInputRef = React.useRef<HTMLInputElement>(null);\n const yInputRef = React.useRef<HTMLInputElement>(null);\n const zInputRef = React.useRef<HTMLInputElement>(null);\n const angleInputRef = React.useRef<HTMLInputElement>(null);\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\n const focusField = React.useRef<ItemField | undefined>(undefined);\n const [mode, setMode] = React.useState(() => IModelApp.accuDraw.compassMode);\n const enableColorlessAccuDrawInputFields =\n useEnableColorlessAccuDrawInputFields();\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 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 delay = 250;\n const labelCentered =\n xLabel !== undefined &&\n xLabel.length === 1 &&\n yLabel !== undefined &&\n yLabel.length === 1 &&\n zLabel !== undefined &&\n zLabel.length === 1;\n\n return (\n <div className={classNames} style={style} {...otherProps}>\n {mode === CompassMode.Rectangular && (\n <>\n <AccuDrawInputField\n ref={xInputRef}\n isLocked={xLock}\n className={\n enableColorlessAccuDrawInputFields\n ? undefined\n : \"uifw-accudraw-x-value\"\n }\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 deprecation/deprecation\n iconSpec={uiSettings?.xIcon}\n icon={uiSettings?.xIconNode}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.X_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={yInputRef}\n isLocked={yLock}\n className={\n enableColorlessAccuDrawInputFields\n ? undefined\n : \"uifw-accudraw-y-value\"\n }\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 deprecation/deprecation\n iconSpec={uiSettings?.yIcon}\n icon={uiSettings?.yIconNode}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Y_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n {showZ && (\n <AccuDrawInputField\n ref={zInputRef}\n isLocked={zLock}\n className={\n enableColorlessAccuDrawInputFields\n ? undefined\n : \"uifw-accudraw-z-value\"\n }\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 deprecation/deprecation\n iconSpec={uiSettings?.zIcon}\n icon={uiSettings?.zIconNode}\n labelCentered={labelCentered}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.Z_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n )}\n </>\n )}\n {mode === CompassMode.Polar && (\n <>\n <AccuDrawInputField\n ref={distanceInputRef}\n isLocked={distanceLock}\n className=\"uifw-accudraw-distance-value\"\n style={distanceStyle}\n field={ItemField.DIST_Item}\n id={`uifw-accudraw-distance-${containerIndex}`}\n data-testid=\"uifw-accudraw-distance\"\n label={distanceLabel}\n // eslint-disable-next-line deprecation/deprecation\n iconSpec={uiSettings?.distanceIcon ?? distanceIconSvg}\n icon={uiSettings?.distanceIconNode}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.DIST_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\n />\n <AccuDrawInputField\n ref={angleInputRef}\n isLocked={angleLock}\n className=\"uifw-accudraw-angle-value\"\n style={angleStyle}\n field={ItemField.ANGLE_Item}\n id={`uifw-accudraw-angle-${containerIndex}`}\n data-testid=\"uifw-accudraw-angle\"\n label={angleLabel}\n // eslint-disable-next-line deprecation/deprecation\n iconSpec={uiSettings?.angleIcon ?? angleIconSvg}\n icon={uiSettings?.angleIconNode}\n valueChangedDelay={delay}\n onValueChanged={(stringValue) =>\n handleValueChanged(ItemField.ANGLE_Item, stringValue)\n }\n onEscPressed={handleEscPressed}\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 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"]}
@@ -16,6 +16,8 @@ export interface AccuDrawInputFieldProps extends CommonProps {
16
16
  id: string;
17
17
  /** Indicates whether field is locked */
18
18
  isLocked?: boolean;
19
+ /** Indicates whether the field is displaying bearing angles. */
20
+ isBearingAngle?: boolean;
19
21
  /** label for the input element */
20
22
  label?: string;
21
23
  /** Icon for the input element.
@@ -32,12 +34,12 @@ export interface AccuDrawInputFieldProps extends CommonProps {
32
34
  labelCentered?: boolean;
33
35
  /** Triggered when the content is changed */
34
36
  onValueChanged: (stringValue: string) => void;
35
- /** Frequency to poll for changes in value, in milliseconds */
36
- valueChangedDelay?: number;
37
37
  /** Listens for <Enter> keypress */
38
38
  onEnterPressed?: () => void;
39
39
  /** Listens for <Esc> keypress */
40
40
  onEscPressed?: () => void;
41
+ /** Listens for <Tab> keypress */
42
+ onTabPressed?: () => void;
41
43
  /** Provides ability to return reference to HTMLInputElement */
42
44
  ref?: React.Ref<HTMLInputElement>;
43
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawInputField.d.ts","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAa/D;;;GAGG;AAEH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IAEH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,kCAAkC;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACjC,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4CAA4C;IAC5C,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,+DAA+D;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACnC;AAuKD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAE/B,KAAK,EAAE,uBAAuB,KAC3B,KAAK,CAAC,SAAmC,CAAC"}
1
+ {"version":3,"file":"AccuDrawInputField.d.ts","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAa/D;;;GAGG;AAEH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IAEH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,kCAAkC;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACjC,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4CAA4C;IAC5C,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,+DAA+D;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACnC;AA2KD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAE/B,KAAK,EAAE,uBAAuB,KAC3B,KAAK,CAAC,SAAmC,CAAC"}
@@ -15,76 +15,83 @@ import { Input } from "@itwin/itwinui-react";
15
15
  import { FrameworkAccuDraw } from "./FrameworkAccuDraw.js";
16
16
  import { UiFramework } from "../UiFramework.js";
17
17
  import { SvgLock } from "@itwin/itwinui-icons-react";
18
- import { useAllowLettersInAccuDrawInputFields } from "../preview/allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.js";
18
+ import { useAllowBearingLettersInAccuDrawInputFields } from "../preview/allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.js";
19
19
  function isLetter(char) {
20
20
  return char.length === 1 && char.toLowerCase() !== char.toUpperCase();
21
21
  }
22
22
  const ForwardRefAccuDrawInput = React.forwardRef(function ForwardRefAccuDrawInputField(props, ref) {
23
23
  const { className, style, id, label,
24
- // eslint-disable-next-line deprecation/deprecation
25
- iconSpec, icon, labelClassName, labelStyle, labelCentered, field, isLocked, onValueChanged, valueChangedDelay, onEnterPressed, onEscPressed, ...inputProps } = props;
24
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
25
+ iconSpec, icon, labelClassName, labelStyle, labelCentered, field, isLocked, isBearingAngle = false, onValueChanged, onEnterPressed, onEscPressed, onTabPressed, ...inputProps } = props;
26
26
  const [stringValue, setStringValue] = React.useState("");
27
- const timeoutId = React.useRef(0);
28
- const [needValueChanged, setNeedValueChanged] = React.useState(false);
29
27
  const [needSelection, setNeedSelection] = React.useState(false);
30
28
  const [isFocusField, setIsFocusField] = React.useState(false);
31
29
  const inputElementRef = React.useRef(null);
32
30
  const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.
33
- const allowLettersInAccuDrawInputFields = useAllowLettersInAccuDrawInputFields();
31
+ const allowBearingLettersInAccuDrawInputFields = useAllowBearingLettersInAccuDrawInputFields();
34
32
  React.useEffect(() => {
35
33
  const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);
36
34
  setStringValue(formattedValue);
37
35
  }, [field]);
38
36
  const handleChange = React.useCallback((event) => {
39
- const value = event.currentTarget.value;
37
+ let value = event.currentTarget.value;
40
38
  if (value === undefined)
41
39
  return;
42
40
  if (stringValue !== value) {
43
- setStringValue(value);
44
- setNeedValueChanged(true);
45
- }
46
- }, [stringValue]);
47
- const unsetTimeout = () => {
48
- if (timeoutId) {
49
- window.clearTimeout(timeoutId.current);
50
- timeoutId.current = 0;
51
- }
52
- };
53
- React.useEffect(() => {
54
- // After setStringValue & re-render
55
- if (needValueChanged) {
56
- if (valueChangedDelay) {
57
- unsetTimeout();
58
- timeoutId.current = window.setTimeout(() => {
59
- onValueChanged(stringValue);
60
- }, valueChangedDelay);
61
- }
62
- else {
63
- onValueChanged(stringValue);
41
+ if (isBearingAngle) {
42
+ // Parsing bearing only works properly when parsing UpperCase letters. Ex : S45°00'00"E <- ok, s45°00'00"e <- doesn't work.
43
+ value = value.toUpperCase();
44
+ if (value.length > stringValue.length) {
45
+ // Automatically add Bearing special characters to help users type the angle. Ex: S45°00'00"E (degrees `°`, minutes `'`, seconds `"`)
46
+ if (value.length === 3 && value[2] !== "°") {
47
+ value += "°";
48
+ }
49
+ else if (value.length === 6 && value[5] !== "'") {
50
+ value += "'";
51
+ }
52
+ else if (value.length === 9 && value[8] !== '"') {
53
+ value += '"';
54
+ }
55
+ }
64
56
  }
65
- setNeedValueChanged(false);
57
+ setStringValue(value);
58
+ onValueChanged(value);
66
59
  }
67
- }, [onValueChanged, valueChangedDelay, stringValue, needValueChanged]);
68
- React.useEffect(() => {
69
- // On unmount
70
- return () => unsetTimeout();
71
- }, []);
60
+ }, [stringValue, isBearingAngle, onValueChanged]);
72
61
  const handleKeyDown = React.useCallback((e) => {
73
62
  switch (e.key) {
74
63
  case Key.Escape.valueOf():
75
64
  onEscPressed && onEscPressed();
65
+ // Prevent ToolAdmin from receiving the event when Escape is pressed in the input field.
66
+ // If Escape is pressed again, the input should not be focused anymore, so this code will not be called and ToolAdmin will receive the event normally.
67
+ e.stopPropagation();
76
68
  return;
77
69
  case Key.Enter.valueOf():
78
70
  onEnterPressed && onEnterPressed();
79
71
  return;
72
+ case Key.Tab.valueOf():
73
+ onTabPressed && onTabPressed();
74
+ // Prevent from focusing other elements in the page. Act like a focus trap.
75
+ e.preventDefault();
76
+ return;
80
77
  }
81
78
  if (isLetter(e.key)) {
82
- if (!allowLettersInAccuDrawInputFields) {
83
- e.preventDefault();
84
- UiFramework.keyboardShortcuts.processKey(e.key, e.altKey, e.ctrlKey, e.shiftKey);
79
+ if (isBearingAngle && allowBearingLettersInAccuDrawInputFields) {
80
+ const bearingReservedKeys = ["n", "s", "e", "w", "N", "S", "E", "W"];
81
+ if (bearingReservedKeys.includes(e.key)) {
82
+ return; // The letter is displayed in the Bearing input field.
83
+ }
85
84
  }
85
+ e.preventDefault();
86
+ UiFramework.keyboardShortcuts.processKey(e.key, e.altKey, e.ctrlKey, e.shiftKey);
86
87
  }
87
- }, [onEscPressed, onEnterPressed, allowLettersInAccuDrawInputFields]);
88
+ }, [
89
+ onEscPressed,
90
+ onEnterPressed,
91
+ onTabPressed,
92
+ isBearingAngle,
93
+ allowBearingLettersInAccuDrawInputFields,
94
+ ]);
88
95
  React.useEffect(() => {
89
96
  return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener((args) => {
90
97
  if (args.field === field && stringValue !== args.formattedValue) {
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./AccuDrawInputField.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec } from \"@itwin/core-react\";\nimport { Icon } from \"@itwin/core-react\";\nimport { useRefs } from \"@itwin/core-react/internal\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\nimport { useAllowLettersInAccuDrawInputFields } from \"../preview/allow-letters-in-accudraw-input-fields/useAllowLettersInAccuDrawInputFields.js\";\n\nfunction isLetter(char: string): boolean {\n return char.length === 1 && char.toLowerCase() !== char.toUpperCase();\n}\n\n/** Properties for [[AccuDrawInputField]] component\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof AccuDrawInputField>`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface AccuDrawInputFieldProps extends CommonProps {\n /** Which AccuDraw field this represents */\n field: ItemField;\n /** id for the input element */\n id: string;\n /** Indicates whether field is locked */\n isLocked?: boolean;\n /** label for the input element */\n label?: string;\n /** Icon for the input element.\n * @deprecated in 4.16.0. Use `icon` instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n iconSpec?: IconSpec;\n /** Icon for the input element. */\n icon?: React.ReactNode;\n /** Custom CSS class name for the label */\n labelClassName?: string;\n /** Custom CSS Style for the label */\n labelStyle?: React.CSSProperties;\n /** Center justified label */\n labelCentered?: boolean;\n /** Triggered when the content is changed */\n onValueChanged: (stringValue: string) => void;\n /** Frequency to poll for changes in value, in milliseconds */\n valueChangedDelay?: number;\n /** Listens for <Enter> keypress */\n onEnterPressed?: () => void;\n /** Listens for <Esc> keypress */\n onEscPressed?: () => void;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n}\n\nconst ForwardRefAccuDrawInput = React.forwardRef<\n HTMLInputElement,\n /* eslint-disable-next-line deprecation/deprecation */\n AccuDrawInputFieldProps\n /* eslint-disable-next-line deprecation/deprecation */\n>(function ForwardRefAccuDrawInputField(props: AccuDrawInputFieldProps, ref) {\n const {\n className,\n style,\n id,\n label,\n // eslint-disable-next-line deprecation/deprecation\n iconSpec,\n icon,\n labelClassName,\n labelStyle,\n labelCentered,\n field,\n isLocked,\n onValueChanged,\n valueChangedDelay,\n onEnterPressed,\n onEscPressed,\n ...inputProps\n } = props;\n const [stringValue, setStringValue] = React.useState(\"\");\n const timeoutId = React.useRef(0);\n const [needValueChanged, setNeedValueChanged] = React.useState(false);\n const [needSelection, setNeedSelection] = React.useState(false);\n const [isFocusField, setIsFocusField] = React.useState(false);\n const inputElementRef = React.useRef<HTMLInputElement>(null);\n const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.\n\n const allowLettersInAccuDrawInputFields =\n useAllowLettersInAccuDrawInputFields();\n\n React.useEffect(() => {\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);\n setStringValue(formattedValue);\n }, [field]);\n\n const handleChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>): void => {\n const value = event.currentTarget.value;\n\n if (value === undefined) return;\n\n if (stringValue !== value) {\n setStringValue(value);\n setNeedValueChanged(true);\n }\n },\n [stringValue]\n );\n\n const unsetTimeout = (): void => {\n if (timeoutId) {\n window.clearTimeout(timeoutId.current);\n timeoutId.current = 0;\n }\n };\n\n React.useEffect(() => {\n // After setStringValue & re-render\n if (needValueChanged) {\n if (valueChangedDelay) {\n unsetTimeout();\n timeoutId.current = window.setTimeout(() => {\n onValueChanged(stringValue);\n }, valueChangedDelay);\n } else {\n onValueChanged(stringValue);\n }\n setNeedValueChanged(false);\n }\n }, [onValueChanged, valueChangedDelay, stringValue, needValueChanged]);\n\n React.useEffect(() => {\n // On unmount\n return () => unsetTimeout();\n }, []);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n switch (e.key) {\n case Key.Escape.valueOf():\n onEscPressed && onEscPressed();\n return;\n case Key.Enter.valueOf():\n onEnterPressed && onEnterPressed();\n return;\n }\n\n if (isLetter(e.key)) {\n if (!allowLettersInAccuDrawInputFields) {\n e.preventDefault();\n UiFramework.keyboardShortcuts.processKey(\n e.key,\n e.altKey,\n e.ctrlKey,\n e.shiftKey\n );\n }\n }\n },\n [onEscPressed, onEnterPressed, allowLettersInAccuDrawInputFields]\n );\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener(\n (args) => {\n if (args.field === field && stringValue !== args.formattedValue) {\n setStringValue(args.formattedValue);\n if (isFocusField) setNeedSelection(true);\n }\n }\n );\n }, [field, isFocusField, stringValue]);\n\n React.useEffect(() => {\n if (needSelection) {\n if (inputElementRef.current) inputElementRef.current.select();\n setNeedSelection(false);\n }\n }, [needSelection]);\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(\n (args) => {\n setIsFocusField(args.field === field);\n }\n );\n }, [field]);\n\n const inputClassNames = classnames(\"uifw-accudraw-input-field\", className);\n const labelClassNames = classnames(\n \"uifw-accudraw-input-label\",\n labelCentered && \"uifw-label-centered\",\n labelClassName\n );\n\n return (\n <>\n <label htmlFor={id} className={labelClassNames} style={labelStyle}>\n {label}\n {/* eslint-disable-next-line deprecation/deprecation */}\n {icon ? icon : iconSpec && <Icon iconSpec={iconSpec} />}\n </label>\n <Input\n {...inputProps}\n ref={refs}\n id={id}\n value={stringValue}\n className={inputClassNames}\n style={style}\n autoComplete=\"off\"\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n size=\"small\"\n />\n <span className=\"uifw-accudraw-lock\">{isLocked && <SvgLock />}</span>\n </>\n );\n});\n\n/** Input field for AccuDraw UI.\n * @public\n */\nexport const AccuDrawInputField: (\n /* eslint-disable-next-line deprecation/deprecation */\n props: AccuDrawInputFieldProps\n) => React.ReactNode = ForwardRefAccuDrawInput;\n"]}
1
+ {"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./AccuDrawInputField.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec } from \"@itwin/core-react\";\nimport { Icon } from \"@itwin/core-react\";\nimport { useRefs } from \"@itwin/core-react/internal\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\nimport { useAllowBearingLettersInAccuDrawInputFields } from \"../preview/allow-bearing-letters-in-accudraw-input-fields/useAllowBearingLettersInAccuDrawInputFields.js\";\n\nfunction isLetter(char: string): boolean {\n return char.length === 1 && char.toLowerCase() !== char.toUpperCase();\n}\n\n/** Properties for [[AccuDrawInputField]] component\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof AccuDrawInputField>`\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface AccuDrawInputFieldProps extends CommonProps {\n /** Which AccuDraw field this represents */\n field: ItemField;\n /** id for the input element */\n id: string;\n /** Indicates whether field is locked */\n isLocked?: boolean;\n /** Indicates whether the field is displaying bearing angles. */\n isBearingAngle?: boolean;\n /** label for the input element */\n label?: string;\n /** Icon for the input element.\n * @deprecated in 4.16.0. Use `icon` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec?: IconSpec;\n /** Icon for the input element. */\n icon?: React.ReactNode;\n /** Custom CSS class name for the label */\n labelClassName?: string;\n /** Custom CSS Style for the label */\n labelStyle?: React.CSSProperties;\n /** Center justified label */\n labelCentered?: boolean;\n /** Triggered when the content is changed */\n onValueChanged: (stringValue: string) => void;\n /** Listens for <Enter> keypress */\n onEnterPressed?: () => void;\n /** Listens for <Esc> keypress */\n onEscPressed?: () => void;\n /** Listens for <Tab> keypress */\n onTabPressed?: () => void;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n}\n\nconst ForwardRefAccuDrawInput = React.forwardRef<\n HTMLInputElement,\n /* eslint-disable-next-line @typescript-eslint/no-deprecated */\n AccuDrawInputFieldProps\n /* eslint-disable-next-line @typescript-eslint/no-deprecated */\n>(function ForwardRefAccuDrawInputField(props: AccuDrawInputFieldProps, ref) {\n const {\n className,\n style,\n id,\n label,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec,\n icon,\n labelClassName,\n labelStyle,\n labelCentered,\n field,\n isLocked,\n isBearingAngle = false,\n onValueChanged,\n onEnterPressed,\n onEscPressed,\n onTabPressed,\n ...inputProps\n } = props;\n const [stringValue, setStringValue] = React.useState(\"\");\n const [needSelection, setNeedSelection] = React.useState(false);\n const [isFocusField, setIsFocusField] = React.useState(false);\n const inputElementRef = React.useRef<HTMLInputElement | null>(null);\n const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.\n\n const allowBearingLettersInAccuDrawInputFields =\n useAllowBearingLettersInAccuDrawInputFields();\n\n React.useEffect(() => {\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);\n setStringValue(formattedValue);\n }, [field]);\n\n const handleChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>): void => {\n let value = event.currentTarget.value;\n\n if (value === undefined) return;\n\n if (stringValue !== value) {\n if (isBearingAngle) {\n // Parsing bearing only works properly when parsing UpperCase letters. Ex : S45°00'00\"E <- ok, s45°00'00\"e <- doesn't work.\n value = value.toUpperCase();\n if (value.length > stringValue.length) {\n // Automatically add Bearing special characters to help users type the angle. Ex: S45°00'00\"E (degrees `°`, minutes `'`, seconds `\"`)\n if (value.length === 3 && value[2] !== \"°\") {\n value += \"°\";\n } else if (value.length === 6 && value[5] !== \"'\") {\n value += \"'\";\n } else if (value.length === 9 && value[8] !== '\"') {\n value += '\"';\n }\n }\n }\n setStringValue(value);\n onValueChanged(value);\n }\n },\n [stringValue, isBearingAngle, onValueChanged]\n );\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n switch (e.key) {\n case Key.Escape.valueOf():\n onEscPressed && onEscPressed();\n // Prevent ToolAdmin from receiving the event when Escape is pressed in the input field.\n // If Escape is pressed again, the input should not be focused anymore, so this code will not be called and ToolAdmin will receive the event normally.\n e.stopPropagation();\n return;\n case Key.Enter.valueOf():\n onEnterPressed && onEnterPressed();\n return;\n case Key.Tab.valueOf():\n onTabPressed && onTabPressed();\n // Prevent from focusing other elements in the page. Act like a focus trap.\n e.preventDefault();\n return;\n }\n\n if (isLetter(e.key)) {\n if (isBearingAngle && allowBearingLettersInAccuDrawInputFields) {\n const bearingReservedKeys = [\"n\", \"s\", \"e\", \"w\", \"N\", \"S\", \"E\", \"W\"];\n if (bearingReservedKeys.includes(e.key)) {\n return; // The letter is displayed in the Bearing input field.\n }\n }\n e.preventDefault();\n UiFramework.keyboardShortcuts.processKey(\n e.key,\n e.altKey,\n e.ctrlKey,\n e.shiftKey\n );\n }\n },\n [\n onEscPressed,\n onEnterPressed,\n onTabPressed,\n isBearingAngle,\n allowBearingLettersInAccuDrawInputFields,\n ]\n );\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener(\n (args) => {\n if (args.field === field && stringValue !== args.formattedValue) {\n setStringValue(args.formattedValue);\n if (isFocusField) setNeedSelection(true);\n }\n }\n );\n }, [field, isFocusField, stringValue]);\n\n React.useEffect(() => {\n if (needSelection) {\n if (inputElementRef.current) inputElementRef.current.select();\n setNeedSelection(false);\n }\n }, [needSelection]);\n\n React.useEffect(() => {\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(\n (args) => {\n setIsFocusField(args.field === field);\n }\n );\n }, [field]);\n\n const inputClassNames = classnames(\"uifw-accudraw-input-field\", className);\n const labelClassNames = classnames(\n \"uifw-accudraw-input-label\",\n labelCentered && \"uifw-label-centered\",\n labelClassName\n );\n\n return (\n <>\n <label htmlFor={id} className={labelClassNames} style={labelStyle}>\n {label}\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n {icon ? icon : iconSpec && <Icon iconSpec={iconSpec} />}\n </label>\n <Input\n {...inputProps}\n ref={refs}\n id={id}\n value={stringValue}\n className={inputClassNames}\n style={style}\n autoComplete=\"off\"\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n size=\"small\"\n />\n <span className=\"uifw-accudraw-lock\">{isLocked && <SvgLock />}</span>\n </>\n );\n});\n\n/** Input field for AccuDraw UI.\n * @public\n */\nexport const AccuDrawInputField: (\n /* eslint-disable-next-line @typescript-eslint/no-deprecated */\n props: AccuDrawInputFieldProps\n) => React.ReactNode = ForwardRefAccuDrawInput;\n"]}
@@ -39,18 +39,3 @@
39
39
  width: 22px;
40
40
  @include uicore-centered;
41
41
  }
42
-
43
- .uifw-accudraw-x-value {
44
- background-color: var(--iui-color-background-negative-hover);
45
- color: var(--iui-color-white);
46
- }
47
-
48
- .uifw-accudraw-y-value {
49
- background-color: var(--iui-color-background-positive-hover);
50
- color: var(--iui-color-white);
51
- }
52
-
53
- .uifw-accudraw-z-value {
54
- background-color: var(--iui-color-background-accent-hover);
55
- color: var(--iui-color-white);
56
- }
@@ -19,9 +19,9 @@ import heightIcon from "./height-2.svg";
19
19
  */
20
20
  export class AccuDrawPopupManager {
21
21
  static showMenuButton(id, el, pt, menuItemsProps) {
22
- // eslint-disable-next-line deprecation/deprecation
22
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
23
23
  const menuItems = MenuItemHelpers.createMenuItems(menuItemsProps);
24
- // eslint-disable-next-line deprecation/deprecation
24
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
25
25
  const menuContent = MenuItemHelpers.createMenuItemNodes(menuItems);
26
26
  const component = (React.createElement(MenuButtonPopup, { id: id, el: el, pt: pt, offset: PopupManager.defaultOffset, content: menuContent }));
27
27
  const popupInfo = {
@@ -40,7 +40,7 @@ export class AccuDrawPopupManager {
40
40
  static showCalculator(el, pt, initialValue, resultIcon, onOk, onCancel) {
41
41
  const id = AccuDrawPopupManager._calculatorId;
42
42
  const component = (
43
- // eslint-disable-next-line deprecation/deprecation
43
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
44
44
  React.createElement(CalculatorPopup, { id: id, el: el, pt: pt, offset: PopupManager.defaultOffset, initialValue: initialValue, resultIcon: resultIcon, onOk: onOk, onCancel: onCancel }));
45
45
  const popupInfo = {
46
46
  id,
@@ -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 deprecation/deprecation\n const menuItems = MenuItemHelpers.createMenuItems(menuItemsProps);\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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\";\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 +1 @@
1
- {"version":3,"file":"AccuDrawUiSettings.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawUiSettings.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG","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 type { ColorDef } from \"@itwin/core-common\";\nimport type { IconSpec } from \"@itwin/core-react\";\n\n/** AccuDraw User Interface Settings\n * @public\n */\nexport interface AccuDrawUiSettings {\n /** X field style */\n xStyle?: React.CSSProperties;\n /** Y field style */\n yStyle?: React.CSSProperties;\n /** Z field style */\n zStyle?: React.CSSProperties;\n /** Angle field style */\n angleStyle?: React.CSSProperties;\n /** Distance field style */\n distanceStyle?: React.CSSProperties;\n\n /** X field background color */\n xBackgroundColor?: ColorDef | string;\n /** Y field background color */\n yBackgroundColor?: ColorDef | string;\n /** Z field background color */\n zBackgroundColor?: ColorDef | string;\n /** Angle field background color */\n angleBackgroundColor?: ColorDef | string;\n /** Distance field background color */\n distanceBackgroundColor?: ColorDef | string;\n\n /** X field foreground color */\n xForegroundColor?: ColorDef | string;\n /** Y field foreground color */\n yForegroundColor?: ColorDef | string;\n /** Z field foreground color */\n zForegroundColor?: ColorDef | string;\n /** Angle field foreground color */\n angleForegroundColor?: ColorDef | string;\n /** Distance field foreground color */\n distanceForegroundColor?: ColorDef | string;\n\n /** X field label */\n xLabel?: string;\n /** Y field label */\n yLabel?: string;\n /** Z field label */\n zLabel?: string;\n /** Angle field label */\n angleLabel?: string;\n /** Distance field label */\n distanceLabel?: string;\n\n /** X field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.xIconNode} instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n xIcon?: IconSpec;\n /** X field icon. */\n xIconNode?: React.ReactNode;\n /** Y field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.yIconNode} instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n yIcon?: IconSpec;\n /** Y field icon. */\n yIconNode?: React.ReactNode;\n /** Z field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.zIconNode} instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n zIcon?: IconSpec;\n /** Z field icon. */\n zIconNode?: React.ReactNode;\n /** Angle field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.angleIconNode} instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n angleIcon?: IconSpec;\n /** Angle field icon. */\n angleIconNode?: React.ReactNode;\n /** Distance field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.distanceIconNode} instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n distanceIcon?: IconSpec;\n /** Distance field icon. */\n distanceIconNode?: React.ReactNode;\n}\n"]}
1
+ {"version":3,"file":"AccuDrawUiSettings.js","sourceRoot":"","sources":["../../../src/appui-react/accudraw/AccuDrawUiSettings.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG","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 type { ColorDef } from \"@itwin/core-common\";\nimport type { IconSpec } from \"@itwin/core-react\";\n\n/** AccuDraw User Interface Settings\n * @public\n */\nexport interface AccuDrawUiSettings {\n /** X field style */\n xStyle?: React.CSSProperties;\n /** Y field style */\n yStyle?: React.CSSProperties;\n /** Z field style */\n zStyle?: React.CSSProperties;\n /** Angle field style */\n angleStyle?: React.CSSProperties;\n /** Distance field style */\n distanceStyle?: React.CSSProperties;\n\n /** X field background color */\n xBackgroundColor?: ColorDef | string;\n /** Y field background color */\n yBackgroundColor?: ColorDef | string;\n /** Z field background color */\n zBackgroundColor?: ColorDef | string;\n /** Angle field background color */\n angleBackgroundColor?: ColorDef | string;\n /** Distance field background color */\n distanceBackgroundColor?: ColorDef | string;\n\n /** X field foreground color */\n xForegroundColor?: ColorDef | string;\n /** Y field foreground color */\n yForegroundColor?: ColorDef | string;\n /** Z field foreground color */\n zForegroundColor?: ColorDef | string;\n /** Angle field foreground color */\n angleForegroundColor?: ColorDef | string;\n /** Distance field foreground color */\n distanceForegroundColor?: ColorDef | string;\n\n /** X field label */\n xLabel?: string;\n /** Y field label */\n yLabel?: string;\n /** Z field label */\n zLabel?: string;\n /** Angle field label */\n angleLabel?: string;\n /** Distance field label */\n distanceLabel?: string;\n\n /** X field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.xIconNode} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n xIcon?: IconSpec;\n /** X field icon. */\n xIconNode?: React.ReactNode;\n /** Y field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.yIconNode} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n yIcon?: IconSpec;\n /** Y field icon. */\n yIconNode?: React.ReactNode;\n /** Z field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.zIconNode} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n zIcon?: IconSpec;\n /** Z field icon. */\n zIconNode?: React.ReactNode;\n /** Angle field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.angleIconNode} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n angleIcon?: IconSpec;\n /** Angle field icon. */\n angleIconNode?: React.ReactNode;\n /** Distance field icon.\n * @deprecated in 4.16.0. Use {@link AccuDrawUiSettings.distanceIconNode} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n distanceIcon?: IconSpec;\n /** Distance field icon. */\n distanceIconNode?: React.ReactNode;\n}\n"]}
@@ -15,12 +15,12 @@ import { UiFramework } from "../UiFramework.js";
15
15
  * @public
16
16
  * @deprecated in 4.16.0. Use {@link AccuDrawWidget} component instead.
17
17
  */
18
- // eslint-disable-next-line deprecation/deprecation
18
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
19
19
  export class AccuDrawWidgetControl extends WidgetControl {
20
20
  static get label() {
21
21
  return UiFramework.translate("accuDraw.dialogTitle");
22
22
  }
23
- // eslint-disable-next-line deprecation/deprecation
23
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
24
24
  constructor(info, options) {
25
25
  super(info, options);
26
26
  this.reactNode = React.createElement(AccuDrawWidget, null);
@@ -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,mDAAmD;AACnD,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAG/C,MAAM,KAAK,KAAK;QACrB,OAAO,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACvD,CAAC;IAED,mDAAmD;IACnD,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 deprecation/deprecation\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 deprecation/deprecation\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,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"]}
@@ -136,7 +136,7 @@ export class Calculator extends React.PureComponent {
136
136
  const { className, resultIcon, onOk, onCancel, initialValue, ...props } = this.props;
137
137
  const classNames = classnames("uifw-calculator", className);
138
138
  const topSection = resultIcon ? (
139
- // eslint-disable-next-line deprecation/deprecation
139
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
140
140
  React.createElement(IconInput, { containerClassName: "uifw-calculator-top-input", value: this.state.displayValue, readOnly: true, icon: resultIcon })) : (React.createElement(Input, { value: this.state.displayValue, readOnly: true, size: "small" }));
141
141
  return (
142
142
  // The event handler is only being used to capture bubbled events