@itwin/appui-react 4.16.5 → 4.17.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 (376) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +5 -0
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +5 -0
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts +1 -0
  7. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +1 -0
  9. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +1 -0
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +1 -0
  13. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts +1 -0
  15. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  17. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +1 -0
  18. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/backstage/BackstageComposer.js +2 -0
  20. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  21. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +2 -1
  22. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  23. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -1
  24. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  25. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -0
  26. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  27. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +7 -2
  28. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  29. package/lib/cjs/appui-react/content/ContentGroup.d.ts +8 -4
  30. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  31. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  32. package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -1
  33. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  34. package/lib/cjs/appui-react/content/ContentLayout.js +44 -10
  35. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  36. package/lib/cjs/appui-react/content/ContentLayoutProps.d.ts +63 -0
  37. package/lib/cjs/appui-react/content/ContentLayoutProps.d.ts.map +1 -0
  38. package/lib/cjs/appui-react/content/ContentLayoutProps.js +10 -0
  39. package/lib/cjs/appui-react/content/ContentLayoutProps.js.map +1 -0
  40. package/lib/cjs/appui-react/content/ContentOverlay.d.ts +4 -0
  41. package/lib/cjs/appui-react/content/ContentOverlay.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/content/ContentOverlay.js +33 -1
  43. package/lib/cjs/appui-react/content/ContentOverlay.js.map +1 -1
  44. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -1
  46. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  47. package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts +1 -1
  48. package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  50. package/lib/cjs/appui-react/content/InternalContentViewManager.d.ts.map +1 -1
  51. package/lib/cjs/appui-react/content/InternalContentViewManager.js +9 -3
  52. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  53. package/lib/cjs/appui-react/content/StageContentLayout.d.ts +1 -1
  54. package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -1
  55. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
  56. package/lib/cjs/appui-react/content/StandardContentLayouts.d.ts +20 -0
  57. package/lib/cjs/appui-react/content/StandardContentLayouts.d.ts.map +1 -0
  58. package/lib/cjs/appui-react/content/StandardContentLayouts.js +169 -0
  59. package/lib/cjs/appui-react/content/StandardContentLayouts.js.map +1 -0
  60. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +1 -0
  61. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +1 -0
  63. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  64. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts +1 -1
  65. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts.map +1 -1
  66. package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
  67. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +3 -0
  68. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  69. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  70. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +1 -0
  71. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +2 -1
  73. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  74. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +2 -0
  75. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  76. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +5 -0
  77. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  78. package/lib/cjs/appui-react/hooks/useConditionalProp.d.ts +3 -3
  79. package/lib/cjs/appui-react/hooks/useConditionalProp.d.ts.map +1 -1
  80. package/lib/cjs/appui-react/hooks/useConditionalProp.js.map +1 -1
  81. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts +1 -1
  82. package/lib/cjs/appui-react/hooks/useConditionalValue.js +1 -1
  83. package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -1
  84. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/hooks/useUiVisibility.js +1 -0
  86. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -1
  87. package/lib/cjs/appui-react/layout/base/LayoutStore.d.ts +3 -1
  88. package/lib/cjs/appui-react/layout/base/LayoutStore.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/layout/base/LayoutStore.js +9 -1
  90. package/lib/cjs/appui-react/layout/base/LayoutStore.js.map +1 -1
  91. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts +10 -7
  92. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts.map +1 -1
  93. package/lib/cjs/appui-react/shared/ConditionalValue.js +3 -4
  94. package/lib/cjs/appui-react/shared/ConditionalValue.js.map +1 -1
  95. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +1 -0
  96. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +3 -0
  98. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  99. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts +1 -0
  100. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
  101. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js +1 -0
  102. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  103. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +1 -0
  104. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  105. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +1 -0
  106. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  107. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/statusfields/SelectionScope.js +1 -1
  109. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  110. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -0
  111. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  112. package/lib/cjs/appui-react/statusfields/SnapMode.js +59 -83
  113. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  114. package/lib/cjs/appui-react/theme/ThemeManager.d.ts +7 -8
  115. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/theme/ThemeManager.js +7 -8
  117. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  118. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +1 -0
  119. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +1 -0
  121. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  122. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +11 -6
  124. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  125. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +1 -0
  126. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  127. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +1 -0
  128. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  129. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +3 -2
  130. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  131. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +4 -2
  132. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  133. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +6 -2
  134. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  135. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +117 -88
  136. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  137. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +2 -2
  138. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +4 -2
  140. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  141. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
  142. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  143. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +79 -60
  144. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  145. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +1 -0
  146. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  147. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -0
  148. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  149. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +4 -2
  150. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  151. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +6 -2
  152. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  153. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +1 -0
  154. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  155. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -0
  156. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  157. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts +1 -0
  158. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  159. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +1 -0
  160. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  161. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +1 -0
  162. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  163. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +1 -0
  164. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  165. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +1 -0
  166. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +3 -1
  168. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  169. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts +2 -0
  170. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  171. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -0
  172. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  173. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +2 -1
  174. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  175. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +1 -0
  176. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  177. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +1 -0
  178. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  179. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +1 -0
  180. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  181. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
  182. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  183. package/lib/cjs/appui-react/widgets/WidgetDef.js +7 -7
  184. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  185. package/lib/cjs/appui-react.d.ts +3 -0
  186. package/lib/cjs/appui-react.d.ts.map +1 -1
  187. package/lib/cjs/appui-react.js +3 -0
  188. package/lib/cjs/appui-react.js.map +1 -1
  189. package/lib/esm/appui-react/UiFramework.d.ts +5 -0
  190. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  191. package/lib/esm/appui-react/UiFramework.js +6 -1
  192. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  193. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts +1 -0
  194. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  195. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +1 -0
  196. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  197. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +1 -0
  198. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  199. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +1 -0
  200. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  201. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +1 -0
  202. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  203. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  204. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +1 -0
  205. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  206. package/lib/esm/appui-react/backstage/BackstageComposer.js +2 -0
  207. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  208. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +2 -1
  209. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  210. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -1
  211. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  212. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -0
  213. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  214. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +7 -2
  215. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  216. package/lib/esm/appui-react/content/ContentGroup.d.ts +8 -4
  217. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  218. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  219. package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -1
  220. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  221. package/lib/esm/appui-react/content/ContentLayout.js +45 -11
  222. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  223. package/lib/esm/appui-react/content/ContentLayoutProps.d.ts +63 -0
  224. package/lib/esm/appui-react/content/ContentLayoutProps.d.ts.map +1 -0
  225. package/lib/esm/appui-react/content/ContentLayoutProps.js +9 -0
  226. package/lib/esm/appui-react/content/ContentLayoutProps.js.map +1 -0
  227. package/lib/esm/appui-react/content/ContentOverlay.d.ts +4 -0
  228. package/lib/esm/appui-react/content/ContentOverlay.d.ts.map +1 -1
  229. package/lib/esm/appui-react/content/ContentOverlay.js +32 -0
  230. package/lib/esm/appui-react/content/ContentOverlay.js.map +1 -1
  231. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  232. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -1
  233. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  234. package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts +1 -1
  235. package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts.map +1 -1
  236. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  237. package/lib/esm/appui-react/content/InternalContentViewManager.d.ts.map +1 -1
  238. package/lib/esm/appui-react/content/InternalContentViewManager.js +9 -3
  239. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  240. package/lib/esm/appui-react/content/StageContentLayout.d.ts +1 -1
  241. package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -1
  242. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
  243. package/lib/esm/appui-react/content/StandardContentLayouts.d.ts +20 -0
  244. package/lib/esm/appui-react/content/StandardContentLayouts.d.ts.map +1 -0
  245. package/lib/esm/appui-react/content/StandardContentLayouts.js +165 -0
  246. package/lib/esm/appui-react/content/StandardContentLayouts.js.map +1 -0
  247. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +1 -0
  248. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -1
  249. package/lib/esm/appui-react/content/split-pane/SplitPane.js +1 -0
  250. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  251. package/lib/esm/appui-react/framework/FrameworkContent.d.ts +1 -1
  252. package/lib/esm/appui-react/framework/FrameworkContent.d.ts.map +1 -1
  253. package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
  254. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +3 -0
  255. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  256. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  257. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +1 -0
  258. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  259. package/lib/esm/appui-react/frontstage/FrontstageDef.js +2 -1
  260. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  261. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +2 -0
  262. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  263. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +5 -0
  264. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  265. package/lib/esm/appui-react/hooks/useConditionalProp.d.ts +3 -3
  266. package/lib/esm/appui-react/hooks/useConditionalProp.d.ts.map +1 -1
  267. package/lib/esm/appui-react/hooks/useConditionalProp.js.map +1 -1
  268. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts +1 -1
  269. package/lib/esm/appui-react/hooks/useConditionalValue.js +1 -1
  270. package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -1
  271. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts.map +1 -1
  272. package/lib/esm/appui-react/hooks/useUiVisibility.js +1 -0
  273. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -1
  274. package/lib/esm/appui-react/layout/base/LayoutStore.d.ts +3 -1
  275. package/lib/esm/appui-react/layout/base/LayoutStore.d.ts.map +1 -1
  276. package/lib/esm/appui-react/layout/base/LayoutStore.js +7 -0
  277. package/lib/esm/appui-react/layout/base/LayoutStore.js.map +1 -1
  278. package/lib/esm/appui-react/shared/ConditionalValue.d.ts +10 -7
  279. package/lib/esm/appui-react/shared/ConditionalValue.d.ts.map +1 -1
  280. package/lib/esm/appui-react/shared/ConditionalValue.js +2 -3
  281. package/lib/esm/appui-react/shared/ConditionalValue.js.map +1 -1
  282. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +1 -0
  283. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  284. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +3 -0
  285. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  286. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts +1 -0
  287. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
  288. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js +1 -0
  289. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  290. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +1 -0
  291. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  292. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +1 -0
  293. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  294. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  295. package/lib/esm/appui-react/statusfields/SelectionScope.js +1 -1
  296. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  297. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -0
  298. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  299. package/lib/esm/appui-react/statusfields/SnapMode.js +59 -83
  300. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  301. package/lib/esm/appui-react/theme/ThemeManager.d.ts +7 -8
  302. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  303. package/lib/esm/appui-react/theme/ThemeManager.js +7 -8
  304. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  305. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +1 -0
  306. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  307. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +1 -0
  308. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  309. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
  310. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +11 -6
  311. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  312. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +1 -0
  313. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  314. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +1 -0
  315. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  316. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +3 -2
  317. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  318. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +4 -2
  319. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  320. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +6 -2
  321. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  322. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +117 -88
  323. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  324. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +2 -2
  325. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  326. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +4 -2
  327. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  328. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
  329. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  330. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +79 -60
  331. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  332. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +1 -0
  333. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  334. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -0
  335. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  336. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +4 -2
  337. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  338. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +6 -2
  339. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  340. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +1 -0
  341. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  342. package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -0
  343. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  344. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts +1 -0
  345. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  346. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -0
  347. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  348. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +1 -0
  349. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  350. package/lib/esm/appui-react/widgets/BasicToolWidget.js +1 -0
  351. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  352. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +1 -0
  353. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  354. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +3 -1
  355. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  356. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts +2 -0
  357. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  358. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -0
  359. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  360. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +2 -1
  361. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  362. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +1 -0
  363. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  364. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +1 -0
  365. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  366. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -0
  367. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  368. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
  369. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  370. package/lib/esm/appui-react/widgets/WidgetDef.js +7 -7
  371. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  372. package/lib/esm/appui-react.d.ts +3 -0
  373. package/lib/esm/appui-react.d.ts.map +1 -1
  374. package/lib/esm/appui-react.js +3 -0
  375. package/lib/esm/appui-react.js.map +1 -1
  376. package/package.json +7 -7
@@ -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\";\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\nimport angleIconSvg from \"./angle.svg\";\nimport distanceIconSvg from \"./distance.svg\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { UiStateStorage } from \"../uistate/UiStateStorage\";\n\n/** Properties for [[AccuDrawFieldContainer]] component\n * @public\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 */\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\n const {\n className,\n style,\n orientation,\n uiSettingsStorage,\n showZOverride,\n ...otherProps\n } = props;\n\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\n const xInputRef = React.useRef<HTMLInputElement>(null);\n const yInputRef = React.useRef<HTMLInputElement>(null);\n const zInputRef = React.useRef<HTMLInputElement>(null);\n const angleInputRef = React.useRef<HTMLInputElement>(null);\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\n const focusField = React.useRef<ItemField | undefined>(undefined);\n const [mode, setMode] = React.useState(() => IModelApp.accuDraw.compassMode);\n const [xLock, setXLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.X_Item)\n );\n const [yLock, setYLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.Y_Item)\n );\n const [zLock, setZLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.Z_Item)\n );\n const [angleLock, setAngleLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item)\n );\n const [distanceLock, setDistanceLock] = React.useState(() =>\n IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item)\n );\n const [showZ, setShowZ] = React.useState(true);\n\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=\"uifw-accudraw-x-value\"\n style={xStyle}\n field={ItemField.X_Item}\n id={`uifw-accudraw-x-${containerIndex}`}\n data-testid=\"uifw-accudraw-x\"\n label={xLabel}\n // 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=\"uifw-accudraw-y-value\"\n style={yStyle}\n field={ItemField.Y_Item}\n id={`uifw-accudraw-y-${containerIndex}`}\n data-testid=\"uifw-accudraw-y\"\n label={yLabel}\n // 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=\"uifw-accudraw-z-value\"\n style={zStyle}\n field={ItemField.Z_Item}\n id={`uifw-accudraw-z-${containerIndex}`}\n data-testid=\"uifw-accudraw-z\"\n label={zLabel}\n // 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":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,yCAAuC;AACvC,2CAAoC;AACpC,+BAA+B;AAC/B,8DAAsD;AAGtD,wDAAyE;AAEzE,4EAAoE;AACpE,6DAA0D;AAC1D,2DAAwD;AAExD,2CAAuC;AACvC,iDAA6C;AAC7C,gDAA6C;AAiB7C,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAE/B,SAAS,cAAc,CAAC,EAAmB;IACzC,MAAM,KAAK,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;GAEG;AACH,mDAAmD;AACnD,SAAgB,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EACJ,SAAS,EACT,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,GAAG,UAAU,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAwB,SAAS,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC5C,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAClD,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC5C,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAClD,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC5C,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAClD,CAAC;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CACpD,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,UAAU,CAAC,CACtD,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC1D,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,SAAS,CAAC,CACrD,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAEhD,qCAAiB,CAAC,cAAc,CAAC,CAAC;IACpC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qCAAiB,CAAC,gCAAgC,CAAC,WAAW,CACnE,GAAG,EAAE;YACH,aAAa,CAAC,qCAAiB,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,CAAC,KAAgB,EAAE,EAAE;QACzC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,yBAAS,CAAC,MAAM;gBACnB,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;YAC/B,KAAK,yBAAS,CAAC,MAAM;gBACnB,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;YAC/B,KAAK,yBAAS,CAAC,MAAM;gBACnB,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;YAC/B,KAAK,yBAAS,CAAC,UAAU;gBACvB,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;YACnC,KAAK,yBAAS,CAAC,SAAS;gBACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAA4B,EAAE,EAAE;QACzE,MAAM,UAAU,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,QAAQ,CAAC,aAAa,KAAK,UAAU;gBAAE,OAAO,SAAS,CAAC;YAC5D,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,YAAY,GAAG;YACnB,SAAS;YACT,SAAS;YACT,SAAS;YACT,aAAa;YACb,gBAAgB;SACjB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC;QAElE,mDAAmD;QACnD,IAAI,YAAY;YAAE,OAAO,SAAS,CAAC;QAEnC,gCAAgC;QAChC,IAAI,aAAa,GAAG,aAAa,CAAC,yBAAS,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,aAAa,GAAG,aAAa,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,aAAa,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,oHAAoH;IACpH,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,KAA4B,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qCAAiB,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACxE,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,UAAU;oBACvB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,yBAAS,CAAC,SAAS;oBACtB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qCAAiB,CAAC,4BAA4B,CAAC,WAAW,CAC/D,CAAC,IAAI,EAAE,EAAE;YACP,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qCAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,GAAG,EAAE;YACtE,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,qCAAiB,CAAC,6BAA6B,CAAC,WAAW,CAChE,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAC1C,CAAC,KAAgB,EAAE,WAAmB,EAAE,EAAE;QACxC,qCAAiB,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9C,yBAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CACN,aAAa,IAAI,cAAc,CAAC,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CACpE,CAAC;QAEF,OAAO,yBAAS,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAChE,CAAC,IAAI,EAAE,EAAE;YACP,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,gBAAgB,GAAG,CACvB,OAAwC,EACxC,eAA8C,EAC9C,eAA8C,EACb,EAAE;QACnC,IAAI,UAA2C,CAAC;QAChD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,OAAO,IAAI,eAAe,IAAI,eAAe,EAAE,CAAC;YAClD,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,IAAI,eAAe,EAAE,CAAC;gBACpB,UAAU;oBACR,OAAO,eAAe,KAAK,QAAQ;wBACjC,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,IAAA,4CAAkB,EAAC,eAAe,CAAC,CAAC;gBAC1C,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;YAC9D,CAAC;YACD,IAAI,eAAe,EAAE,CAAC;gBACpB,UAAU;oBACR,OAAO,eAAe,KAAK,QAAQ;wBACjC,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,IAAA,4CAAkB,EAAC,eAAe,CAAC,CAAC;gBAC1C,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,gBAAgB,CAC5B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,gBAAgB,CAC5B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,gBAAgB,CAC5B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,oBAAoB,EAC/B,UAAU,CAAC,oBAAoB,CAChC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,gBAAgB,CACrB,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,uBAAuB,EAClC,UAAU,CAAC,uBAAuB,CACnC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,aAAa,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,aAAa,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,aAAa,CAAC;IACnD,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,CAAC;IAC1C,MAAM,aAAa,GAAG,UAAU,EAAE,aAAa,CAAC;IAEhD,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,+BAA+B,EAC/B,WAAW,KAAK,8BAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAC1E,SAAS,CACV,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,aAAa,GACjB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAEtB,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,KAAM,UAAU;QACrD,IAAI,KAAK,2BAAW,CAAC,WAAW,IAAI,CACnC;YACE,oBAAC,uCAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,yBAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM;gBACb,mDAAmD;gBACnD,QAAQ,EAAE,UAAU,EAAE,KAAK,EAC3B,IAAI,EAAE,UAAU,EAAE,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,GAC9B;YACF,oBAAC,uCAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,yBAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM;gBACb,mDAAmD;gBACnD,QAAQ,EAAE,UAAU,EAAE,KAAK,EAC3B,IAAI,EAAE,UAAU,EAAE,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,GAC9B;YACD,KAAK,IAAI,CACR,oBAAC,uCAAkB,IACjB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,KAAK,EACf,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,yBAAS,CAAC,MAAM,EACvB,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAC3B,iBAAiB,EAC7B,KAAK,EAAE,MAAM;gBACb,mDAAmD;gBACnD,QAAQ,EAAE,UAAU,EAAE,KAAK,EAC3B,IAAI,EAAE,UAAU,EAAE,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAEnD,YAAY,EAAE,gBAAgB,GAC9B,CACH,CACA,CACJ;QACA,IAAI,KAAK,2BAAW,CAAC,KAAK,IAAI,CAC7B;YACE,oBAAC,uCAAkB,IACjB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,yBAAS,CAAC,SAAS,EAC1B,EAAE,EAAE,0BAA0B,cAAc,EAAE,iBAClC,wBAAwB,EACpC,KAAK,EAAE,aAAa;gBACpB,mDAAmD;gBACnD,QAAQ,EAAE,UAAU,EAAE,YAAY,IAAI,sBAAe,EACrD,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,SAAS,EAAE,WAAW,CAAC,EAEtD,YAAY,EAAE,gBAAgB,GAC9B;YACF,oBAAC,uCAAkB,IACjB,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,yBAAS,CAAC,UAAU,EAC3B,EAAE,EAAE,uBAAuB,cAAc,EAAE,iBAC/B,qBAAqB,EACjC,KAAK,EAAE,UAAU;gBACjB,mDAAmD;gBACnD,QAAQ,EAAE,UAAU,EAAE,SAAS,IAAI,mBAAY,EAC/C,IAAI,EAAE,UAAU,EAAE,aAAa,EAC/B,iBAAiB,EAAE,KAAK,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAC9B,kBAAkB,CAAC,yBAAS,CAAC,UAAU,EAAE,WAAW,CAAC,EAEvD,YAAY,EAAE,gBAAgB,GAC9B,CACD,CACJ,CACG,CACP,CAAC;AACJ,CAAC;AA1WD,wDA0WC;AAED,SAAS,UAAU,CAAI,GAAuB;IAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./AccuDrawFieldContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Orientation } from \"@itwin/components-react\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport { CompassMode, IModelApp, ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport type { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\nimport angleIconSvg from \"./angle.svg\";\nimport distanceIconSvg from \"./distance.svg\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { UiStateStorage } from \"../uistate/UiStateStorage\";\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 [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=\"uifw-accudraw-x-value\"\n style={xStyle}\n field={ItemField.X_Item}\n id={`uifw-accudraw-x-${containerIndex}`}\n data-testid=\"uifw-accudraw-x\"\n label={xLabel}\n // 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=\"uifw-accudraw-y-value\"\n style={yStyle}\n field={ItemField.Y_Item}\n id={`uifw-accudraw-y-${containerIndex}`}\n data-testid=\"uifw-accudraw-y\"\n label={yLabel}\n // 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=\"uifw-accudraw-z-value\"\n style={zStyle}\n field={ItemField.Z_Item}\n id={`uifw-accudraw-z-${containerIndex}`}\n data-testid=\"uifw-accudraw-z\"\n label={zLabel}\n // 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"]}
@@ -7,6 +7,7 @@ import type { ItemField } from "@itwin/core-frontend";
7
7
  import type { CommonProps, IconSpec } from "@itwin/core-react";
8
8
  /** Properties for [[AccuDrawInputField]] component
9
9
  * @public
10
+ * @deprecated in 4.17.0. Use `React.ComponentProps<typeof AccuDrawInputField>`
10
11
  */
11
12
  export interface AccuDrawInputFieldProps extends CommonProps {
12
13
  /** Which AccuDraw field this represents */
@@ -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;AAW/D;;GAEG;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;AAiKD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAC/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;AAW/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;AAmKD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAE/B,KAAK,EAAE,uBAAuB,KAC3B,KAAK,CAAC,SAAmC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccuDraw\n */\n\nimport \"./AccuDrawInputField.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { ItemField } from \"@itwin/core-frontend\";\nimport type { CommonProps, IconSpec } from \"@itwin/core-react\";\nimport { Icon, useRefs } from \"@itwin/core-react\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport { UiFramework } from \"../UiFramework\";\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\n\nfunction isLetter(char: string): boolean {\n return char.length === 1 && char.toLowerCase() !== char.toUpperCase();\n}\n\n/** Properties for [[AccuDrawInputField]] component\n * @public\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 AccuDrawInputFieldProps\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 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 e.preventDefault();\n UiFramework.keyboardShortcuts.processKey(\n e.key,\n e.altKey,\n e.ctrlKey,\n e.shiftKey\n );\n return;\n }\n },\n [onEscPressed, onEnterPressed]\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 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, useRefs } from \"@itwin/core-react\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport { UiFramework } from \"../UiFramework\";\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\n\nfunction isLetter(char: string): boolean {\n return char.length === 1 && char.toLowerCase() !== char.toUpperCase();\n}\n\n/** Properties for [[AccuDrawInputField]] component\n * @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 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 e.preventDefault();\n UiFramework.keyboardShortcuts.processKey(\n e.key,\n e.altKey,\n e.ctrlKey,\n e.shiftKey\n );\n return;\n }\n },\n [onEscPressed, onEnterPressed]\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"]}
@@ -10,6 +10,7 @@ export type GroupedItems = ReadonlyArray<ReadonlyArray<BackstageItem>>;
10
10
  export declare const useGroupedItems: (items: ReadonlyArray<BackstageItem>) => GroupedItems;
11
11
  /** Props of [[BackstageComposer]] component.
12
12
  * @public
13
+ * @deprecated in 4.17.0. Use `React.ComponentProps<typeof BackstageComposer>`
13
14
  */
14
15
  export interface BackstageComposerProps extends CommonProps {
15
16
  /** React node for an optional header item */
@@ -1 +1 @@
1
- {"version":3,"file":"BackstageComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAsErD,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvE,gBAAgB;AAChB,eAAO,MAAM,eAAe,UACnB,cAAc,aAAa,CAAC,iBA0BpC,CAAC;AAEF;;GAEG;AAEH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,gGAAgG;IAChG,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,mHAAmH;IACnH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,wFAAwF;IACxF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBAmE9D"}
1
+ {"version":3,"file":"BackstageComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAsErD,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvE,gBAAgB;AAChB,eAAO,MAAM,eAAe,UACnB,cAAc,aAAa,CAAC,iBA0BpC,CAAC;AAEF;;;GAGG;AAEH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,gGAAgG;IAChG,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,mHAAmH;IACnH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,wFAAwF;IACxF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBAoE9D"}
@@ -93,6 +93,7 @@ exports.useGroupedItems = useGroupedItems;
93
93
  /** Backstage component composed from [[UiFramework.backstage]] items.
94
94
  * @public
95
95
  */
96
+ // eslint-disable-next-line deprecation/deprecation
96
97
  function BackstageComposer(props) {
97
98
  const [defaultItemsManager, setDefaultItemsManager] = React.useState(new BackstageItemsManager_1.BackstageItemsManager(props.items));
98
99
  const initialItems = React.useRef(props.items);
@@ -112,6 +113,7 @@ function BackstageComposer(props) {
112
113
  const syncIdsOfInterest = React.useMemo(() => BackstageItemsManager_1.BackstageItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);
113
114
  useBackstageItemSyncEffect(defaultItemsManager, syncIdsOfInterest);
114
115
  const [addonItemsManager] = React.useState(new BackstageItemsManager_1.BackstageItemsManager());
116
+ // eslint-disable-next-line deprecation/deprecation
115
117
  const addonItems = (0, useUiItemsProviderBackstageItems_1.useUiItemsProviderBackstageItems)(addonItemsManager);
116
118
  const addonSyncIdsOfInterest = React.useMemo(() => BackstageItemsManager_1.BackstageItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);
117
119
  useBackstageItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);
@@ -1 +1 @@
1
- {"version":3,"file":"BackstageComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport * as React from \"react\";\nimport { Backstage as NZ_Backstage } from \"../layout/backstage/Backstage\";\nimport { BackstageSeparator } from \"../layout/backstage/Separator\";\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { BackstageComposerItem } from \"./BackstageComposerItem\";\nimport { isBackstageStageLauncher } from \"./BackstageItem\";\nimport { BackstageItemsManager } from \"./BackstageItemsManager\";\nimport { useBackstageManager, useIsBackstageOpen } from \"./BackstageManager\";\nimport { useDefaultBackstageItems } from \"./useDefaultBackstageItems\";\nimport { useUiItemsProviderBackstageItems } from \"./useUiItemsProviderBackstageItems\";\n\nimport type { CommonProps } from \"@itwin/core-react\";\nimport type { BackstageItem } from \"./BackstageItem\";\n// cSpell:ignore safearea\n\n/** Private function to set up sync event monitoring of backstage items */\nfunction useBackstageItemSyncEffect(\n itemsManager: BackstageItemsManager,\n syncIdsOfInterest: string[]\n) {\n const isInitialMount = React.useRef(true);\n\n React.useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n // initialize the display state of any items with syncIds/condition defined\n itemsManager.refreshAffectedItems(new Set(syncIdsOfInterest));\n }\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (0 === syncIdsOfInterest.length) return;\n\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n // process each item that has interest\n itemsManager.refreshAffectedItems(args.eventIds);\n }\n });\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n stageItems: ReadonlyArray<BackstageItem>,\n addonItems: ReadonlyArray<BackstageItem>,\n hideSoloStageEntry: boolean\n): ReadonlyArray<BackstageItem> {\n let items: Array<BackstageItem> = [];\n if (stageItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n stageItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n if (addonItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n addonItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n\n if (hideSoloStageEntry) {\n // per user request don't show stage launcher if only one stage is available\n const numberOfFrontstageItems = items.reduce(\n (accumulator, item) =>\n accumulator + (isBackstageStageLauncher(item) ? 1 : 0),\n 0\n );\n if (1 === numberOfFrontstageItems)\n items = items.filter((item) => !isBackstageStageLauncher(item));\n }\n\n return items;\n}\n\n/** @internal */\nexport type GroupedItems = ReadonlyArray<ReadonlyArray<BackstageItem>>;\n\n/** @internal */\nexport const useGroupedItems = (\n items: ReadonlyArray<BackstageItem>\n): GroupedItems => {\n return React.useMemo(() => {\n const grouped = items.reduce<GroupedItems>((acc, item) => {\n if (ConditionalBooleanValue.getValue(item.isHidden)) return acc;\n const groupIndex = acc.findIndex(\n (group) => group[0].groupPriority === item.groupPriority\n );\n if (groupIndex >= 0)\n return [\n ...acc.slice(0, groupIndex),\n [...acc[groupIndex], item],\n ...acc.slice(groupIndex + 1),\n ];\n return [...acc, [item]];\n }, []);\n const sortedGroups = grouped.reduce<GroupedItems>((acc, group) => {\n const sortedGroup = [...group].sort(\n (a, b) => a.itemPriority - b.itemPriority\n );\n return [...acc, sortedGroup];\n }, []);\n return [...sortedGroups].sort(\n (a, b) => a[0].groupPriority - b[0].groupPriority\n );\n }, [items]);\n};\n\n/** Props of [[BackstageComposer]] component.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface BackstageComposerProps extends CommonProps {\n /** React node for an optional header item */\n readonly header?: React.ReactNode;\n /** Indicates whether to place an overlay over the frontstage when the backstage is displayed */\n readonly showOverlay?: boolean;\n /** List of static backstage items to show. Can be undefined in UiItemsProviders are used to populate backstage. */\n readonly items?: BackstageItem[];\n /** If true and only one stage launcher item is found, do not show entry in backstage */\n readonly hideSoloStageEntry?: boolean;\n}\n\n/** Backstage component composed from [[UiFramework.backstage]] items.\n * @public\n */\nexport function BackstageComposer(props: BackstageComposerProps) {\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n new BackstageItemsManager(props.items)\n );\n const initialItems = React.useRef(props.items);\n\n React.useEffect(() => {\n if (initialItems.current !== props.items) {\n initialItems.current = props.items;\n setDefaultItemsManager(new BackstageItemsManager(props.items));\n }\n }, [props.items]);\n\n const manager = useBackstageManager();\n const isOpen = useIsBackstageOpen(manager);\n const safeAreaInsets = React.useContext(SafeAreaContext);\n const handleClose = React.useCallback(() => {\n manager.close();\n }, [manager]);\n\n const defaultItems = useDefaultBackstageItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => BackstageItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useBackstageItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n const [addonItemsManager] = React.useState(new BackstageItemsManager());\n const addonItems = useUiItemsProviderBackstageItems(addonItemsManager);\n const addonSyncIdsOfInterest = React.useMemo(\n () => BackstageItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useBackstageItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const combinedBackstageItems = React.useMemo(\n () => combineItems(defaultItems, addonItems, !!props.hideSoloStageEntry),\n [defaultItems, addonItems, props.hideSoloStageEntry]\n );\n const groups = useGroupedItems(combinedBackstageItems);\n return (\n <NZ_Backstage\n className={props.className}\n header={props.header}\n isOpen={isOpen}\n onClose={handleClose}\n safeAreaInsets={safeAreaInsets}\n showOverlay={props.showOverlay}\n style={props.style}\n >\n {groups.map((group, groupIndex) =>\n group.map((item, itemIndex) => {\n const composerItem = (\n <BackstageComposerItem item={item} key={item.id} />\n );\n return itemIndex === 0 && groupIndex > 0 ? (\n <React.Fragment key={groupIndex}>\n <BackstageSeparator />\n {composerItem}\n </React.Fragment>\n ) : (\n composerItem\n );\n })\n )}\n </NZ_Backstage>\n );\n}\n"]}
1
+ {"version":3,"file":"BackstageComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport * as React from \"react\";\nimport { Backstage as NZ_Backstage } from \"../layout/backstage/Backstage\";\nimport { BackstageSeparator } from \"../layout/backstage/Separator\";\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { BackstageComposerItem } from \"./BackstageComposerItem\";\nimport { isBackstageStageLauncher } from \"./BackstageItem\";\nimport { BackstageItemsManager } from \"./BackstageItemsManager\";\nimport { useBackstageManager, useIsBackstageOpen } from \"./BackstageManager\";\nimport { useDefaultBackstageItems } from \"./useDefaultBackstageItems\";\nimport { useUiItemsProviderBackstageItems } from \"./useUiItemsProviderBackstageItems\";\n\nimport type { CommonProps } from \"@itwin/core-react\";\nimport type { BackstageItem } from \"./BackstageItem\";\n// cSpell:ignore safearea\n\n/** Private function to set up sync event monitoring of backstage items */\nfunction useBackstageItemSyncEffect(\n itemsManager: BackstageItemsManager,\n syncIdsOfInterest: string[]\n) {\n const isInitialMount = React.useRef(true);\n\n React.useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n // initialize the display state of any items with syncIds/condition defined\n itemsManager.refreshAffectedItems(new Set(syncIdsOfInterest));\n }\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (0 === syncIdsOfInterest.length) return;\n\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n // process each item that has interest\n itemsManager.refreshAffectedItems(args.eventIds);\n }\n });\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n stageItems: ReadonlyArray<BackstageItem>,\n addonItems: ReadonlyArray<BackstageItem>,\n hideSoloStageEntry: boolean\n): ReadonlyArray<BackstageItem> {\n let items: Array<BackstageItem> = [];\n if (stageItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n stageItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n if (addonItems.length) {\n // Walk through each and ensure no duplicate ids are added.\n addonItems.forEach((srcItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n items.push(srcItem);\n }\n });\n }\n\n if (hideSoloStageEntry) {\n // per user request don't show stage launcher if only one stage is available\n const numberOfFrontstageItems = items.reduce(\n (accumulator, item) =>\n accumulator + (isBackstageStageLauncher(item) ? 1 : 0),\n 0\n );\n if (1 === numberOfFrontstageItems)\n items = items.filter((item) => !isBackstageStageLauncher(item));\n }\n\n return items;\n}\n\n/** @internal */\nexport type GroupedItems = ReadonlyArray<ReadonlyArray<BackstageItem>>;\n\n/** @internal */\nexport const useGroupedItems = (\n items: ReadonlyArray<BackstageItem>\n): GroupedItems => {\n return React.useMemo(() => {\n const grouped = items.reduce<GroupedItems>((acc, item) => {\n if (ConditionalBooleanValue.getValue(item.isHidden)) return acc;\n const groupIndex = acc.findIndex(\n (group) => group[0].groupPriority === item.groupPriority\n );\n if (groupIndex >= 0)\n return [\n ...acc.slice(0, groupIndex),\n [...acc[groupIndex], item],\n ...acc.slice(groupIndex + 1),\n ];\n return [...acc, [item]];\n }, []);\n const sortedGroups = grouped.reduce<GroupedItems>((acc, group) => {\n const sortedGroup = [...group].sort(\n (a, b) => a.itemPriority - b.itemPriority\n );\n return [...acc, sortedGroup];\n }, []);\n return [...sortedGroups].sort(\n (a, b) => a[0].groupPriority - b[0].groupPriority\n );\n }, [items]);\n};\n\n/** Props of [[BackstageComposer]] component.\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof BackstageComposer>`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface BackstageComposerProps extends CommonProps {\n /** React node for an optional header item */\n readonly header?: React.ReactNode;\n /** Indicates whether to place an overlay over the frontstage when the backstage is displayed */\n readonly showOverlay?: boolean;\n /** List of static backstage items to show. Can be undefined in UiItemsProviders are used to populate backstage. */\n readonly items?: BackstageItem[];\n /** If true and only one stage launcher item is found, do not show entry in backstage */\n readonly hideSoloStageEntry?: boolean;\n}\n\n/** Backstage component composed from [[UiFramework.backstage]] items.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function BackstageComposer(props: BackstageComposerProps) {\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n new BackstageItemsManager(props.items)\n );\n const initialItems = React.useRef(props.items);\n\n React.useEffect(() => {\n if (initialItems.current !== props.items) {\n initialItems.current = props.items;\n setDefaultItemsManager(new BackstageItemsManager(props.items));\n }\n }, [props.items]);\n\n const manager = useBackstageManager();\n const isOpen = useIsBackstageOpen(manager);\n const safeAreaInsets = React.useContext(SafeAreaContext);\n const handleClose = React.useCallback(() => {\n manager.close();\n }, [manager]);\n\n const defaultItems = useDefaultBackstageItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => BackstageItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useBackstageItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n const [addonItemsManager] = React.useState(new BackstageItemsManager());\n // eslint-disable-next-line deprecation/deprecation\n const addonItems = useUiItemsProviderBackstageItems(addonItemsManager);\n const addonSyncIdsOfInterest = React.useMemo(\n () => BackstageItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useBackstageItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const combinedBackstageItems = React.useMemo(\n () => combineItems(defaultItems, addonItems, !!props.hideSoloStageEntry),\n [defaultItems, addonItems, props.hideSoloStageEntry]\n );\n const groups = useGroupedItems(combinedBackstageItems);\n return (\n <NZ_Backstage\n className={props.className}\n header={props.header}\n isOpen={isOpen}\n onClose={handleClose}\n safeAreaInsets={safeAreaInsets}\n showOverlay={props.showOverlay}\n style={props.style}\n >\n {groups.map((group, groupIndex) =>\n group.map((item, itemIndex) => {\n const composerItem = (\n <BackstageComposerItem item={item} key={item.id} />\n );\n return itemIndex === 0 && groupIndex > 0 ? (\n <React.Fragment key={groupIndex}>\n <BackstageSeparator />\n {composerItem}\n </React.Fragment>\n ) : (\n composerItem\n );\n })\n )}\n </NZ_Backstage>\n );\n}\n"]}
@@ -3,7 +3,8 @@
3
3
  */
4
4
  import type { BackstageItem } from "./BackstageItem";
5
5
  import type { BackstageItemsManager } from "./BackstageItemsManager";
6
- /** Hook that returns items from [[BackstageItemsManager]].
6
+ /** Hook that returns backstage items from {@link UiItemsManager}.
7
+ * @deprecated in 4.17.0. Uses an internal `BackstageItemsManager` API. Use {@link BackstageComposer} instead.
7
8
  * @public
8
9
  */
9
10
  export declare const useUiItemsProviderBackstageItems: (manager: BackstageItemsManager) => readonly BackstageItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"useUiItemsProviderBackstageItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/useUiItemsProviderBackstageItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,gCAAgC,YAClC,qBAAqB,KAC7B,SAAS,aAAa,EAsBxB,CAAC"}
1
+ {"version":3,"file":"useUiItemsProviderBackstageItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/useUiItemsProviderBackstageItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGrE;;;GAGG;AACH,eAAO,MAAM,gCAAgC,YAClC,qBAAqB,KAC7B,SAAS,aAAa,EAsBxB,CAAC"}
@@ -11,7 +11,8 @@ exports.useUiItemsProviderBackstageItems = void 0;
11
11
  const React = require("react");
12
12
  const useAvailableUiItemsProviders_1 = require("../hooks/useAvailableUiItemsProviders");
13
13
  const UiItemsManager_1 = require("../ui-items-provider/UiItemsManager");
14
- /** Hook that returns items from [[BackstageItemsManager]].
14
+ /** Hook that returns backstage items from {@link UiItemsManager}.
15
+ * @deprecated in 4.17.0. Uses an internal `BackstageItemsManager` API. Use {@link BackstageComposer} instead.
15
16
  * @public
16
17
  */
17
18
  const useUiItemsProviderBackstageItems = (manager) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useUiItemsProviderBackstageItems.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/useUiItemsProviderBackstageItems.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,wFAAqF;AAErF,wEAAqE;AAGrE;;GAEG;AACI,MAAM,gCAAgC,GAAG,CAC9C,OAA8B,EACJ,EAAE;IAC5B,MAAM,iBAAiB,GAAG,IAAA,2DAA4B,GAAE,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtC,wHAAwH;IACxH,2DAA2D;IAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,YAAY,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YACzC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;YACnC,MAAM,cAAc,GAAG,+BAAc,CAAC,iBAAiB,EAAE,CAAC;YAC1D,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAxBW,QAAA,gCAAgC,oCAwB3C","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 StatusBar\n */\n\nimport * as React from \"react\";\nimport { useAvailableUiItemsProviders } from \"../hooks/useAvailableUiItemsProviders\";\nimport type { BackstageItem } from \"./BackstageItem\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport type { BackstageItemsManager } from \"./BackstageItemsManager\";\n\n/** Hook that returns items from [[BackstageItemsManager]].\n * @public\n */\nexport const useUiItemsProviderBackstageItems = (\n manager: BackstageItemsManager\n): readonly BackstageItem[] => {\n const uiItemProviderIds = useAvailableUiItemsProviders();\n const [items, setItems] = React.useState(manager ? manager.items : []);\n const providersRef = React.useRef(\"\");\n // gathers items from registered extensions - dependent on when a UiItemsProvider is register or unregistered and if the\n // current stage's composer allows entries from extensions.\n React.useEffect(() => {\n const uiProviders = uiItemProviderIds.join(\"-\");\n if (providersRef.current !== uiProviders) {\n providersRef.current = uiProviders;\n const backstageItems = UiItemsManager.getBackstageItems();\n manager.loadItems(backstageItems);\n setItems(manager.items);\n }\n }, [manager, uiItemProviderIds]);\n // handle item changes caused by calls to UiFramework.backstageManager\n React.useEffect(() => {\n return manager.onItemsChanged.addListener((args) => {\n setItems(args.items);\n });\n }, [manager]);\n return items;\n};\n"]}
1
+ {"version":3,"file":"useUiItemsProviderBackstageItems.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/useUiItemsProviderBackstageItems.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,wFAAqF;AAErF,wEAAqE;AAIrE;;;GAGG;AACI,MAAM,gCAAgC,GAAG,CAC9C,OAA8B,EACJ,EAAE;IAC5B,MAAM,iBAAiB,GAAG,IAAA,2DAA4B,GAAE,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtC,wHAAwH;IACxH,2DAA2D;IAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,YAAY,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YACzC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;YACnC,MAAM,cAAc,GAAG,+BAAc,CAAC,iBAAiB,EAAE,CAAC;YAC1D,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAxBW,QAAA,gCAAgC,oCAwB3C","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 StatusBar\n */\n\nimport * as React from \"react\";\nimport { useAvailableUiItemsProviders } from \"../hooks/useAvailableUiItemsProviders\";\nimport type { BackstageItem } from \"./BackstageItem\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport type { BackstageItemsManager } from \"./BackstageItemsManager\";\nimport type { BackstageComposer } from \"./BackstageComposer\";\n\n/** Hook that returns backstage items from {@link UiItemsManager}.\n * @deprecated in 4.17.0. Uses an internal `BackstageItemsManager` API. Use {@link BackstageComposer} instead.\n * @public\n */\nexport const useUiItemsProviderBackstageItems = (\n manager: BackstageItemsManager\n): readonly BackstageItem[] => {\n const uiItemProviderIds = useAvailableUiItemsProviders();\n const [items, setItems] = React.useState(manager ? manager.items : []);\n const providersRef = React.useRef(\"\");\n // gathers items from registered extensions - dependent on when a UiItemsProvider is register or unregistered and if the\n // current stage's composer allows entries from extensions.\n React.useEffect(() => {\n const uiProviders = uiItemProviderIds.join(\"-\");\n if (providersRef.current !== uiProviders) {\n providersRef.current = uiProviders;\n const backstageItems = UiItemsManager.getBackstageItems();\n manager.loadItems(backstageItems);\n setItems(manager.items);\n }\n }, [manager, uiItemProviderIds]);\n // handle item changes caused by calls to UiFramework.backstageManager\n React.useEffect(() => {\n return manager.onItemsChanged.addListener((args) => {\n setItems(args.items);\n });\n }, [manager]);\n return items;\n};\n"]}
@@ -8,6 +8,7 @@ import type { CommonProps } from "@itwin/core-react";
8
8
  export declare const ConfigurableUiContext: React.Context<Pick<ConfigurableUiContentProps, "viewOverlay" | "widgetOpacity" | "widgetIcon" | "collapsePanels" | "animateToolSettings" | "toolAsToolSettingsLabel">>;
9
9
  /** Properties for [[ConfigurableUiContent]]
10
10
  * @public
11
+ * @deprecated in 4.17.0. Use `React.ComponentProps<typeof ConfigurableUiContent>`
11
12
  */
12
13
  export interface ConfigurableUiContentProps extends CommonProps {
13
14
  /** React node of the Backstage */
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyBrD,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,wKAU7B,CAAC;AAEN;;GAEG;AAEH,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,kCAAkC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oHAAoH;IACpH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8HAA8H;IAC9H,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6GAA6G;IAC7G,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sIAAsI;IACtI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sHAAsH;IACtH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,4BAAkD,CAAC;AAE9E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,qBA2EtE"}
1
+ {"version":3,"file":"ConfigurableUiContent.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyBrD,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,wKAW7B,CAAC;AAEN;;;GAGG;AAEH,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,kCAAkC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oHAAoH;IACpH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8HAA8H;IAC9H,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6GAA6G;IAC7G,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sIAAsI;IACtI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sHAAsH;IACtH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,4BAAkD,CAAC;AAE9E;;GAEG;AAEH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,qBA2EtE"}
@@ -39,6 +39,7 @@ exports.WrapperContext = React.createContext(document.body);
39
39
  /** The ConfigurableUiContent component is the component the pages specified using ConfigurableUi
40
40
  * @public
41
41
  */
42
+ // eslint-disable-next-line deprecation/deprecation
42
43
  function ConfigurableUiContent(props) {
43
44
  useWidgetOpacity(props.widgetOpacity);
44
45
  useToolbarOpacity(props.toolbarOpacity);
@@ -88,7 +89,9 @@ function ConfigurableUiContent(props) {
88
89
  React.createElement(ModalDialogManager_1.ModalDialogRenderer, null)))))));
89
90
  }
90
91
  exports.ConfigurableUiContent = ConfigurableUiContent;
91
- function useWidgetOpacity(widgetOpacity) {
92
+ function useWidgetOpacity(
93
+ /* eslint-disable-next-line deprecation/deprecation */
94
+ widgetOpacity) {
92
95
  const reduxWidgetOpacity = (0, useReduxFrameworkState_1.useReduxFrameworkState)((state) => {
93
96
  // eslint-disable-next-line deprecation/deprecation
94
97
  return state?.configurableUiState.widgetOpacity;
@@ -104,7 +107,9 @@ function useWidgetOpacity(widgetOpacity) {
104
107
  };
105
108
  }, [opacity]);
106
109
  }
107
- function useToolbarOpacity(toolbarOpacity) {
110
+ function useToolbarOpacity(
111
+ /* eslint-disable-next-line deprecation/deprecation */
112
+ toolbarOpacity) {
108
113
  const reduxToolbarOpacity = (0, useReduxFrameworkState_1.useReduxFrameworkState)((state) => {
109
114
  // eslint-disable-next-line deprecation/deprecation
110
115
  return state?.configurableUiState.toolbarOpacity;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurableUiContent.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.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 ConfigurableUi\n */\n\nimport \"./ConfigurableUiContent.scss\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Point } from \"@itwin/core-react\";\nimport { ThemeProvider } from \"@itwin/itwinui-react\";\nimport { CursorInformation } from \"../cursor/CursorInformation\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { CursorPopupRenderer } from \"../cursor/cursorpopup/CursorPopupManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\nimport { KeyboardShortcutMenu } from \"../keyboardshortcut/KeyboardShortcutMenu\";\nimport { InputFieldMessage } from \"../messages/InputField\";\nimport { PointerMessage } from \"../messages/Pointer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { WidgetPanelsFrontstage } from \"../widget-panels/Frontstage\";\nimport { ContentDialogRenderer } from \"../dialog/ContentDialogManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalConfigurableUiManager } from \"./InternalConfigurableUiManager\";\nimport { MessageRenderer } from \"../messages/MessageRenderer\";\nimport {\n TOOLBAR_OPACITY_DEFAULT,\n WIDGET_OPACITY_DEFAULT,\n} from \"../theme/ThemeId\";\nimport { useReduxFrameworkState } from \"../uistate/useReduxFrameworkState\";\nimport type { ContentProps } from \"../content/ContentGroup\";\n\n/** @internal */\nexport const ConfigurableUiContext = React.createContext<\n Pick<\n ConfigurableUiContentProps,\n | \"viewOverlay\"\n | \"widgetOpacity\"\n | \"widgetIcon\"\n | \"collapsePanels\"\n | \"animateToolSettings\"\n | \"toolAsToolSettingsLabel\"\n >\n>({});\n\n/** Properties for [[ConfigurableUiContent]]\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface ConfigurableUiContentProps extends CommonProps {\n /** React node of the Backstage */\n appBackstage?: React.ReactNode;\n /** Controls if the view overlay should be displayed. Uses redux store as a fallback. Defaults to `true`.\n * @note Only used by configurable control APIs. See {@link ContentProps.classId}.\n * @deprecated in 4.16.0. View overlay visibility should be controlled by the components used in {@link ContentProps.content}.\n */\n viewOverlay?: boolean;\n /** Describes the opacity of widgets. Uses redux store as a fallback. Defaults to {@link WIDGET_OPACITY_DEFAULT}. */\n widgetOpacity?: number;\n /** Controls if the widget icons should be displayed. Uses redux store as a fallback. Defaults to `true`. */\n widgetIcon?: boolean;\n /** Controls if the unpinned panels should be collapsed automatically. Uses redux store as a fallback. Defaults to `false`. */\n collapsePanels?: boolean;\n /** Controls if the tool settings should be animated. Uses redux store as a fallback. Defaults to `false`. */\n animateToolSettings?: boolean;\n /** Controls if the tool settings label should be set based on activated tool. Uses redux store as a fallback. Defaults to `false`. */\n toolAsToolSettingsLabel?: boolean;\n /** Describes the opacity of toolbars. Uses redux store as a fallback. Defaults to {@link TOOLBAR_OPACITY_DEFAULT}. */\n toolbarOpacity?: number;\n\n /** @internal */\n idleTimeout?: number;\n /** @internal */\n intervalTimeout?: number;\n}\n\n/**\n * Allows children to get the bounds or other properties of the wrapper element.\n * @internal\n */\nexport const WrapperContext = React.createContext<HTMLElement>(document.body);\n\n/** The ConfigurableUiContent component is the component the pages specified using ConfigurableUi\n * @public\n */\nexport function ConfigurableUiContent(props: ConfigurableUiContentProps) {\n useWidgetOpacity(props.widgetOpacity);\n useToolbarOpacity(props.toolbarOpacity);\n const [mainElement, setMainElement] = React.useState<HTMLElement>();\n const [portalContainer, setPortalContainer] = React.useState<HTMLElement>();\n React.useEffect(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n\n React.useEffect(() => {\n InternalConfigurableUiManager.activityTracker.initialize({\n idleTimeout: props.idleTimeout,\n intervalTimeout: props.intervalTimeout,\n });\n return () => {\n InternalConfigurableUiManager.activityTracker.terminate();\n };\n }, [props.idleTimeout, props.intervalTimeout]);\n\n const handleMouseMove = React.useCallback((e: React.MouseEvent) => {\n const point = new Point(e.pageX, e.pageY);\n CursorInformation.handleMouseMove(point);\n }, []);\n\n return (\n <ConfigurableUiContext.Provider\n value={{\n // eslint-disable-next-line deprecation/deprecation\n viewOverlay: props.viewOverlay,\n widgetOpacity: props.widgetOpacity,\n widgetIcon: props.widgetIcon,\n collapsePanels: props.collapsePanels,\n animateToolSettings: props.animateToolSettings,\n toolAsToolSettingsLabel: props.toolAsToolSettingsLabel,\n }}\n >\n <main\n role=\"main\"\n id=\"uifw-configurableui-wrapper\"\n className={props.className}\n style={props.style}\n onMouseMove={handleMouseMove}\n ref={(el) => setMainElement(el ?? undefined)}\n >\n <WrapperContext.Provider value={mainElement ?? document.body}>\n <ThemeProvider\n style={{ height: \"100%\" }}\n portalContainer={portalContainer}\n >\n {props.appBackstage}\n <WidgetPanelsFrontstage />\n\n <ElementTooltip />\n <PointerMessage />\n {/* eslint-disable-next-line deprecation/deprecation */}\n <KeyboardShortcutMenu />\n {/* eslint-disable-next-line deprecation/deprecation */}\n <InputFieldMessage />\n <CursorPopupMenu />\n <CursorPopupRenderer />\n <PopupRenderer />\n <MessageRenderer />\n <div\n className=\"uifw-configurableui-portalContainer\"\n ref={(instance) => setPortalContainer(instance ?? undefined)}\n >\n <ContentDialogRenderer />\n <ModelessDialogRenderer />\n <ModalDialogRenderer />\n </div>\n </ThemeProvider>\n </WrapperContext.Provider>\n </main>\n </ConfigurableUiContext.Provider>\n );\n}\n\nfunction useWidgetOpacity(\n widgetOpacity: ConfigurableUiContentProps[\"widgetOpacity\"]\n) {\n const reduxWidgetOpacity = useReduxFrameworkState((state) => {\n // eslint-disable-next-line deprecation/deprecation\n return state?.configurableUiState.widgetOpacity;\n });\n const opacity = widgetOpacity ?? reduxWidgetOpacity ?? WIDGET_OPACITY_DEFAULT;\n\n React.useEffect(() => {\n const currentWidgetOpacity =\n document.documentElement.style.getPropertyValue(\"--buic-widget-opacity\");\n if (currentWidgetOpacity === opacity.toString()) return;\n document.documentElement.style.setProperty(\n \"--buic-widget-opacity\",\n opacity.toString()\n );\n return () => {\n document.documentElement.style.removeProperty(\"--buic-widget-opacity\");\n };\n }, [opacity]);\n}\n\nfunction useToolbarOpacity(\n toolbarOpacity: ConfigurableUiContentProps[\"toolbarOpacity\"]\n) {\n const reduxToolbarOpacity = useReduxFrameworkState((state) => {\n // eslint-disable-next-line deprecation/deprecation\n return state?.configurableUiState.toolbarOpacity;\n });\n\n const opacity =\n toolbarOpacity ?? reduxToolbarOpacity ?? TOOLBAR_OPACITY_DEFAULT;\n\n React.useEffect(() => {\n const currentToolbarOpacity =\n document.documentElement.style.getPropertyValue(\"--buic-toolbar-opacity\");\n if (currentToolbarOpacity === opacity.toString()) return;\n document.documentElement.style.setProperty(\n \"--buic-toolbar-opacity\",\n opacity.toString()\n );\n return () => {\n document.documentElement.style.removeProperty(\"--buic-toolbar-opacity\");\n };\n }, [opacity]);\n}\n"]}
1
+ {"version":3,"file":"ConfigurableUiContent.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/ConfigurableUiContent.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 ConfigurableUi\n */\n\nimport \"./ConfigurableUiContent.scss\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Point } from \"@itwin/core-react\";\nimport { ThemeProvider } from \"@itwin/itwinui-react\";\nimport { CursorInformation } from \"../cursor/CursorInformation\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { CursorPopupRenderer } from \"../cursor/cursorpopup/CursorPopupManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\nimport { KeyboardShortcutMenu } from \"../keyboardshortcut/KeyboardShortcutMenu\";\nimport { InputFieldMessage } from \"../messages/InputField\";\nimport { PointerMessage } from \"../messages/Pointer\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { WidgetPanelsFrontstage } from \"../widget-panels/Frontstage\";\nimport { ContentDialogRenderer } from \"../dialog/ContentDialogManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalConfigurableUiManager } from \"./InternalConfigurableUiManager\";\nimport { MessageRenderer } from \"../messages/MessageRenderer\";\nimport {\n TOOLBAR_OPACITY_DEFAULT,\n WIDGET_OPACITY_DEFAULT,\n} from \"../theme/ThemeId\";\nimport { useReduxFrameworkState } from \"../uistate/useReduxFrameworkState\";\nimport type { ContentProps } from \"../content/ContentGroup\";\n\n/** @internal */\nexport const ConfigurableUiContext = React.createContext<\n Pick<\n /* eslint-disable-next-line deprecation/deprecation */\n ConfigurableUiContentProps,\n | \"viewOverlay\"\n | \"widgetOpacity\"\n | \"widgetIcon\"\n | \"collapsePanels\"\n | \"animateToolSettings\"\n | \"toolAsToolSettingsLabel\"\n >\n>({});\n\n/** Properties for [[ConfigurableUiContent]]\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof ConfigurableUiContent>`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface ConfigurableUiContentProps extends CommonProps {\n /** React node of the Backstage */\n appBackstage?: React.ReactNode;\n /** Controls if the view overlay should be displayed. Uses redux store as a fallback. Defaults to `true`.\n * @note Only used by configurable control APIs. See {@link ContentProps.classId}.\n * @deprecated in 4.16.0. View overlay visibility should be controlled by the components used in {@link ContentProps.content}.\n */\n viewOverlay?: boolean;\n /** Describes the opacity of widgets. Uses redux store as a fallback. Defaults to {@link WIDGET_OPACITY_DEFAULT}. */\n widgetOpacity?: number;\n /** Controls if the widget icons should be displayed. Uses redux store as a fallback. Defaults to `true`. */\n widgetIcon?: boolean;\n /** Controls if the unpinned panels should be collapsed automatically. Uses redux store as a fallback. Defaults to `false`. */\n collapsePanels?: boolean;\n /** Controls if the tool settings should be animated. Uses redux store as a fallback. Defaults to `false`. */\n animateToolSettings?: boolean;\n /** Controls if the tool settings label should be set based on activated tool. Uses redux store as a fallback. Defaults to `false`. */\n toolAsToolSettingsLabel?: boolean;\n /** Describes the opacity of toolbars. Uses redux store as a fallback. Defaults to {@link TOOLBAR_OPACITY_DEFAULT}. */\n toolbarOpacity?: number;\n\n /** @internal */\n idleTimeout?: number;\n /** @internal */\n intervalTimeout?: number;\n}\n\n/**\n * Allows children to get the bounds or other properties of the wrapper element.\n * @internal\n */\nexport const WrapperContext = React.createContext<HTMLElement>(document.body);\n\n/** The ConfigurableUiContent component is the component the pages specified using ConfigurableUi\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function ConfigurableUiContent(props: ConfigurableUiContentProps) {\n useWidgetOpacity(props.widgetOpacity);\n useToolbarOpacity(props.toolbarOpacity);\n const [mainElement, setMainElement] = React.useState<HTMLElement>();\n const [portalContainer, setPortalContainer] = React.useState<HTMLElement>();\n React.useEffect(() => {\n UiFramework.keyboardShortcuts.setFocusToHome();\n }, []);\n\n React.useEffect(() => {\n InternalConfigurableUiManager.activityTracker.initialize({\n idleTimeout: props.idleTimeout,\n intervalTimeout: props.intervalTimeout,\n });\n return () => {\n InternalConfigurableUiManager.activityTracker.terminate();\n };\n }, [props.idleTimeout, props.intervalTimeout]);\n\n const handleMouseMove = React.useCallback((e: React.MouseEvent) => {\n const point = new Point(e.pageX, e.pageY);\n CursorInformation.handleMouseMove(point);\n }, []);\n\n return (\n <ConfigurableUiContext.Provider\n value={{\n // eslint-disable-next-line deprecation/deprecation\n viewOverlay: props.viewOverlay,\n widgetOpacity: props.widgetOpacity,\n widgetIcon: props.widgetIcon,\n collapsePanels: props.collapsePanels,\n animateToolSettings: props.animateToolSettings,\n toolAsToolSettingsLabel: props.toolAsToolSettingsLabel,\n }}\n >\n <main\n role=\"main\"\n id=\"uifw-configurableui-wrapper\"\n className={props.className}\n style={props.style}\n onMouseMove={handleMouseMove}\n ref={(el) => setMainElement(el ?? undefined)}\n >\n <WrapperContext.Provider value={mainElement ?? document.body}>\n <ThemeProvider\n style={{ height: \"100%\" }}\n portalContainer={portalContainer}\n >\n {props.appBackstage}\n <WidgetPanelsFrontstage />\n\n <ElementTooltip />\n <PointerMessage />\n {/* eslint-disable-next-line deprecation/deprecation */}\n <KeyboardShortcutMenu />\n {/* eslint-disable-next-line deprecation/deprecation */}\n <InputFieldMessage />\n <CursorPopupMenu />\n <CursorPopupRenderer />\n <PopupRenderer />\n <MessageRenderer />\n <div\n className=\"uifw-configurableui-portalContainer\"\n ref={(instance) => setPortalContainer(instance ?? undefined)}\n >\n <ContentDialogRenderer />\n <ModelessDialogRenderer />\n <ModalDialogRenderer />\n </div>\n </ThemeProvider>\n </WrapperContext.Provider>\n </main>\n </ConfigurableUiContext.Provider>\n );\n}\n\nfunction useWidgetOpacity(\n /* eslint-disable-next-line deprecation/deprecation */\n widgetOpacity: ConfigurableUiContentProps[\"widgetOpacity\"]\n) {\n const reduxWidgetOpacity = useReduxFrameworkState((state) => {\n // eslint-disable-next-line deprecation/deprecation\n return state?.configurableUiState.widgetOpacity;\n });\n const opacity = widgetOpacity ?? reduxWidgetOpacity ?? WIDGET_OPACITY_DEFAULT;\n\n React.useEffect(() => {\n const currentWidgetOpacity =\n document.documentElement.style.getPropertyValue(\"--buic-widget-opacity\");\n if (currentWidgetOpacity === opacity.toString()) return;\n document.documentElement.style.setProperty(\n \"--buic-widget-opacity\",\n opacity.toString()\n );\n return () => {\n document.documentElement.style.removeProperty(\"--buic-widget-opacity\");\n };\n }, [opacity]);\n}\n\nfunction useToolbarOpacity(\n /* eslint-disable-next-line deprecation/deprecation */\n toolbarOpacity: ConfigurableUiContentProps[\"toolbarOpacity\"]\n) {\n const reduxToolbarOpacity = useReduxFrameworkState((state) => {\n // eslint-disable-next-line deprecation/deprecation\n return state?.configurableUiState.toolbarOpacity;\n });\n\n const opacity =\n toolbarOpacity ?? reduxToolbarOpacity ?? TOOLBAR_OPACITY_DEFAULT;\n\n React.useEffect(() => {\n const currentToolbarOpacity =\n document.documentElement.style.getPropertyValue(\"--buic-toolbar-opacity\");\n if (currentToolbarOpacity === opacity.toString()) return;\n document.documentElement.style.setProperty(\n \"--buic-toolbar-opacity\",\n opacity.toString()\n );\n return () => {\n document.documentElement.style.removeProperty(\"--buic-toolbar-opacity\");\n };\n }, [opacity]);\n}\n"]}
@@ -3,10 +3,11 @@
3
3
  */
4
4
  import type * as React from "react";
5
5
  import type { ScreenViewport } from "@itwin/core-frontend";
6
- import type { ContentLayoutProps } from "@itwin/appui-abstract";
7
6
  import type { ConfigurableUiControlConstructor } from "../configurableui/ConfigurableUiControl";
8
7
  import type { ContentControl } from "./ContentControl";
9
8
  import type { Frontstage } from "../frontstage/Frontstage";
9
+ import type { ContentLayoutProps } from "./ContentLayoutProps";
10
+ import type { ConditionalValue } from "../shared/ConditionalValue";
10
11
  /** Properties for content displayed in a content view
11
12
  * @public
12
13
  */
@@ -21,10 +22,13 @@ export interface ContentProps {
21
22
  * @deprecated in 4.16.0. Use {@link ContentProps.content} instead.
22
23
  */
23
24
  applicationData?: any;
24
- /** Content to be displayed in the content view.
25
- * @beta
26
- */
25
+ /** Content to be displayed in the content view. */
27
26
  content?: React.ReactNode;
27
+ /** Describes if the content should display the active strip.
28
+ * If `undefined` the strip will be displayed only if this content is active and multiple contents are available.
29
+ * Floating content controls (deprecated API) and `ContentOverlay` components are considered as content nodes.
30
+ */
31
+ renderActiveStrip?: boolean | ConditionalValue<boolean | undefined>;
28
32
  }
29
33
  /** Properties for a [[ContentGroup]]
30
34
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"ContentGroup.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentGroup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAMhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IAEH,OAAO,EAAE,MAAM,GAAG,gCAAgC,CAAC;IACnD;;OAEG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mKAAmK;IACnK,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,8BAAsB,oBAAoB;IACxC,yDAAyD;aACzC,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAE3E;;OAEG;IACI,kBAAkB,CAAC,iBAAiB,EAAE,iBAAiB;IAI9D;;OAEG;IACI,wBAAwB,CAAC,iBAAiB,EAAE,iBAAiB;IAIpE,kFAAkF;IACrE,uBAAuB;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AAE9D;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAK;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,gBAAgB,EAAE,YAAY,EAAE,CAAC;IAExC,IAAW,EAAE,WAEZ;gBAEW,iBAAiB,EAAE,iBAAiB;IAQhD;;OAEG;IACI,eAAe,IAAI,KAAK,CAAC,SAAS,EAAE;IAsB3C,sFAAsF;IAC/E,mBAAmB;IAI1B,6CAA6C;IACtC,uBAAuB,IAAI,IAAI;IAItC,uCAAuC;IAChC,iBAAiB,IAAI,IAAI;IAEhC,0CAA0C;IACnC,oBAAoB,IAAI,IAAI;IAInC;;OAEG;IACI,MAAM,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,iBAAiB;IA6BnE;;OAEG;IACI,YAAY,IAAI,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;IAkBxD,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,cAAc,CAAqC;IAE3D;;OAEG;IACI,iBAAiB,CACtB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAoD7B;;OAEG;IACI,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIpE;;OAEG;IACI,qBAAqB,CAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,GACpB,cAAc,GAAG,SAAS;IAa7B;;OAEG;IACI,kBAAkB,IAAI,cAAc,EAAE;CAc9C"}
1
+ {"version":3,"file":"ContentGroup.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/content/ContentGroup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAMhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IAEH,OAAO,EAAE,MAAM,GAAG,gCAAgC,CAAC;IACnD;;OAEG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,mDAAmD;IACnD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mKAAmK;IACnK,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,8BAAsB,oBAAoB;IACxC,yDAAyD;aACzC,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAE3E;;OAEG;IACI,kBAAkB,CAAC,iBAAiB,EAAE,iBAAiB;IAI9D;;OAEG;IACI,wBAAwB,CAAC,iBAAiB,EAAE,iBAAiB;IAIpE,kFAAkF;IACrE,uBAAuB;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AAE9D;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAK;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,gBAAgB,EAAE,YAAY,EAAE,CAAC;IAExC,IAAW,EAAE,WAEZ;gBAEW,iBAAiB,EAAE,iBAAiB;IAQhD;;OAEG;IACI,eAAe,IAAI,KAAK,CAAC,SAAS,EAAE;IAsB3C,sFAAsF;IAC/E,mBAAmB;IAI1B,6CAA6C;IACtC,uBAAuB,IAAI,IAAI;IAItC,uCAAuC;IAChC,iBAAiB,IAAI,IAAI;IAEhC,0CAA0C;IACnC,oBAAoB,IAAI,IAAI;IAInC;;OAEG;IACI,MAAM,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,iBAAiB;IA6BnE;;OAEG;IACI,YAAY,IAAI,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;IAkBxD,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,cAAc,CAAqC;IAE3D;;OAEG;IACI,iBAAiB,CACtB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAoD7B;;OAEG;IACI,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIpE;;OAEG;IACI,qBAAqB,CAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,GACpB,cAAc,GAAG,SAAS;IAa7B;;OAEG;IACI,kBAAkB,IAAI,cAAc,EAAE;CAc9C"}