@itwin/appui-react 4.16.5 → 4.17.1

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 (396) hide show
  1. package/CHANGELOG.md +29 -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/configurableui/ConfigurableUiContent.scss +1 -0
  30. package/lib/cjs/appui-react/content/ContentGroup.d.ts +8 -4
  31. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  33. package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -1
  34. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/content/ContentLayout.js +44 -10
  36. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  37. package/lib/cjs/appui-react/content/ContentLayoutProps.d.ts +63 -0
  38. package/lib/cjs/appui-react/content/ContentLayoutProps.d.ts.map +1 -0
  39. package/lib/cjs/appui-react/content/ContentLayoutProps.js +10 -0
  40. package/lib/cjs/appui-react/content/ContentLayoutProps.js.map +1 -0
  41. package/lib/cjs/appui-react/content/ContentOverlay.d.ts +4 -0
  42. package/lib/cjs/appui-react/content/ContentOverlay.d.ts.map +1 -1
  43. package/lib/cjs/appui-react/content/ContentOverlay.js +33 -1
  44. package/lib/cjs/appui-react/content/ContentOverlay.js.map +1 -1
  45. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -1
  47. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  48. package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts +1 -1
  49. package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  51. package/lib/cjs/appui-react/content/InternalContentViewManager.d.ts.map +1 -1
  52. package/lib/cjs/appui-react/content/InternalContentViewManager.js +9 -3
  53. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  54. package/lib/cjs/appui-react/content/StageContentLayout.d.ts +1 -1
  55. package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
  57. package/lib/cjs/appui-react/content/StandardContentLayouts.d.ts +20 -0
  58. package/lib/cjs/appui-react/content/StandardContentLayouts.d.ts.map +1 -0
  59. package/lib/cjs/appui-react/content/StandardContentLayouts.js +169 -0
  60. package/lib/cjs/appui-react/content/StandardContentLayouts.js.map +1 -0
  61. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +1 -0
  62. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +1 -0
  64. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  65. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts +1 -1
  66. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts.map +1 -1
  67. package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
  68. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +3 -0
  69. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  70. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  71. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +1 -0
  72. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  73. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +2 -1
  74. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  75. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +2 -0
  76. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +5 -0
  78. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  79. package/lib/cjs/appui-react/hooks/useConditionalProp.d.ts +3 -3
  80. package/lib/cjs/appui-react/hooks/useConditionalProp.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/hooks/useConditionalProp.js.map +1 -1
  82. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts +1 -1
  83. package/lib/cjs/appui-react/hooks/useConditionalValue.js +1 -1
  84. package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -1
  85. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts.map +1 -1
  86. package/lib/cjs/appui-react/hooks/useUiVisibility.js +1 -0
  87. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -1
  88. package/lib/cjs/appui-react/layout/base/LayoutStore.d.ts +3 -1
  89. package/lib/cjs/appui-react/layout/base/LayoutStore.d.ts.map +1 -1
  90. package/lib/cjs/appui-react/layout/base/LayoutStore.js +9 -1
  91. package/lib/cjs/appui-react/layout/base/LayoutStore.js.map +1 -1
  92. package/lib/cjs/appui-react/layout/widget/FloatingTab.scss +1 -0
  93. package/lib/cjs/appui-react/layout/widget/FloatingWidget.scss +1 -0
  94. package/lib/cjs/appui-react/layout/widget/MenuTab.scss +1 -0
  95. package/lib/cjs/appui-react/layout/widget/Overflow.scss +1 -0
  96. package/lib/cjs/appui-react/layout/widget/Tab.scss +1 -0
  97. package/lib/cjs/appui-react/layout/widget/TabBar.scss +1 -0
  98. package/lib/cjs/appui-react/layout/widget-panels/CursorOverlay.scss +1 -0
  99. package/lib/cjs/appui-react/layout/widget-panels/Grip.scss +2 -0
  100. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.scss +1 -0
  101. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts +10 -7
  102. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts.map +1 -1
  103. package/lib/cjs/appui-react/shared/ConditionalValue.js +3 -4
  104. package/lib/cjs/appui-react/shared/ConditionalValue.js.map +1 -1
  105. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +1 -0
  106. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +3 -0
  108. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  109. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts +1 -0
  110. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
  111. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js +1 -0
  112. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  113. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +1 -0
  114. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +1 -0
  116. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  117. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  118. package/lib/cjs/appui-react/statusfields/SelectionScope.js +1 -1
  119. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  120. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -0
  121. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  122. package/lib/cjs/appui-react/statusfields/SnapMode.js +59 -83
  123. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  124. package/lib/cjs/appui-react/theme/ThemeManager.d.ts +7 -8
  125. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  126. package/lib/cjs/appui-react/theme/ThemeManager.js +7 -8
  127. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  128. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +1 -0
  129. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  130. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +1 -0
  131. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  132. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +11 -6
  134. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  135. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +1 -0
  136. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +1 -0
  138. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  139. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +3 -2
  140. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  141. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +4 -2
  142. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  143. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +6 -2
  144. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  145. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +117 -88
  146. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  147. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +2 -2
  148. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  149. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +4 -2
  150. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  151. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
  152. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  153. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +79 -60
  154. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  155. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +1 -0
  156. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  157. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -0
  158. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  159. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +4 -2
  160. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  161. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +6 -2
  162. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  163. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +1 -0
  164. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  165. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -0
  166. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  167. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts +1 -0
  168. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  169. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +1 -0
  170. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  171. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +1 -0
  172. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  173. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +1 -0
  174. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  175. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +1 -0
  176. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  177. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +3 -1
  178. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  179. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts +2 -0
  180. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  181. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -0
  182. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  183. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +2 -1
  184. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  185. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +1 -0
  186. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  187. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +1 -0
  188. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +1 -0
  190. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  191. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
  192. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/widgets/WidgetDef.js +7 -7
  194. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  195. package/lib/cjs/appui-react.d.ts +3 -0
  196. package/lib/cjs/appui-react.d.ts.map +1 -1
  197. package/lib/cjs/appui-react.js +3 -0
  198. package/lib/cjs/appui-react.js.map +1 -1
  199. package/lib/esm/appui-react/UiFramework.d.ts +5 -0
  200. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  201. package/lib/esm/appui-react/UiFramework.js +6 -1
  202. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  203. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts +1 -0
  204. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  205. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +1 -0
  206. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  207. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +1 -0
  208. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  209. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +1 -0
  210. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  211. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +1 -0
  212. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  213. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  214. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +1 -0
  215. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  216. package/lib/esm/appui-react/backstage/BackstageComposer.js +2 -0
  217. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  218. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +2 -1
  219. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  220. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -1
  221. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  222. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -0
  223. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  224. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +7 -2
  225. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  226. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +1 -0
  227. package/lib/esm/appui-react/content/ContentGroup.d.ts +8 -4
  228. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  229. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  230. package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -1
  231. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  232. package/lib/esm/appui-react/content/ContentLayout.js +45 -11
  233. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  234. package/lib/esm/appui-react/content/ContentLayoutProps.d.ts +63 -0
  235. package/lib/esm/appui-react/content/ContentLayoutProps.d.ts.map +1 -0
  236. package/lib/esm/appui-react/content/ContentLayoutProps.js +9 -0
  237. package/lib/esm/appui-react/content/ContentLayoutProps.js.map +1 -0
  238. package/lib/esm/appui-react/content/ContentOverlay.d.ts +4 -0
  239. package/lib/esm/appui-react/content/ContentOverlay.d.ts.map +1 -1
  240. package/lib/esm/appui-react/content/ContentOverlay.js +32 -0
  241. package/lib/esm/appui-react/content/ContentOverlay.js.map +1 -1
  242. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  243. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -1
  244. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  245. package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts +1 -1
  246. package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts.map +1 -1
  247. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  248. package/lib/esm/appui-react/content/InternalContentViewManager.d.ts.map +1 -1
  249. package/lib/esm/appui-react/content/InternalContentViewManager.js +9 -3
  250. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  251. package/lib/esm/appui-react/content/StageContentLayout.d.ts +1 -1
  252. package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -1
  253. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
  254. package/lib/esm/appui-react/content/StandardContentLayouts.d.ts +20 -0
  255. package/lib/esm/appui-react/content/StandardContentLayouts.d.ts.map +1 -0
  256. package/lib/esm/appui-react/content/StandardContentLayouts.js +165 -0
  257. package/lib/esm/appui-react/content/StandardContentLayouts.js.map +1 -0
  258. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +1 -0
  259. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -1
  260. package/lib/esm/appui-react/content/split-pane/SplitPane.js +1 -0
  261. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  262. package/lib/esm/appui-react/framework/FrameworkContent.d.ts +1 -1
  263. package/lib/esm/appui-react/framework/FrameworkContent.d.ts.map +1 -1
  264. package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
  265. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +3 -0
  266. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  267. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  268. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +1 -0
  269. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  270. package/lib/esm/appui-react/frontstage/FrontstageDef.js +2 -1
  271. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  272. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +2 -0
  273. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  274. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +5 -0
  275. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  276. package/lib/esm/appui-react/hooks/useConditionalProp.d.ts +3 -3
  277. package/lib/esm/appui-react/hooks/useConditionalProp.d.ts.map +1 -1
  278. package/lib/esm/appui-react/hooks/useConditionalProp.js.map +1 -1
  279. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts +1 -1
  280. package/lib/esm/appui-react/hooks/useConditionalValue.js +1 -1
  281. package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -1
  282. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts.map +1 -1
  283. package/lib/esm/appui-react/hooks/useUiVisibility.js +1 -0
  284. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -1
  285. package/lib/esm/appui-react/layout/base/LayoutStore.d.ts +3 -1
  286. package/lib/esm/appui-react/layout/base/LayoutStore.d.ts.map +1 -1
  287. package/lib/esm/appui-react/layout/base/LayoutStore.js +7 -0
  288. package/lib/esm/appui-react/layout/base/LayoutStore.js.map +1 -1
  289. package/lib/esm/appui-react/layout/widget/FloatingTab.scss +1 -0
  290. package/lib/esm/appui-react/layout/widget/FloatingWidget.scss +1 -0
  291. package/lib/esm/appui-react/layout/widget/MenuTab.scss +1 -0
  292. package/lib/esm/appui-react/layout/widget/Overflow.scss +1 -0
  293. package/lib/esm/appui-react/layout/widget/Tab.scss +1 -0
  294. package/lib/esm/appui-react/layout/widget/TabBar.scss +1 -0
  295. package/lib/esm/appui-react/layout/widget-panels/CursorOverlay.scss +1 -0
  296. package/lib/esm/appui-react/layout/widget-panels/Grip.scss +2 -0
  297. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.scss +1 -0
  298. package/lib/esm/appui-react/shared/ConditionalValue.d.ts +10 -7
  299. package/lib/esm/appui-react/shared/ConditionalValue.d.ts.map +1 -1
  300. package/lib/esm/appui-react/shared/ConditionalValue.js +2 -3
  301. package/lib/esm/appui-react/shared/ConditionalValue.js.map +1 -1
  302. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +1 -0
  303. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  304. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +3 -0
  305. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  306. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts +1 -0
  307. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
  308. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js +1 -0
  309. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  310. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +1 -0
  311. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  312. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +1 -0
  313. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  314. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  315. package/lib/esm/appui-react/statusfields/SelectionScope.js +1 -1
  316. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  317. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -0
  318. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  319. package/lib/esm/appui-react/statusfields/SnapMode.js +59 -83
  320. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  321. package/lib/esm/appui-react/theme/ThemeManager.d.ts +7 -8
  322. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  323. package/lib/esm/appui-react/theme/ThemeManager.js +7 -8
  324. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  325. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +1 -0
  326. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  327. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +1 -0
  328. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  329. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
  330. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +11 -6
  331. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  332. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +1 -0
  333. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  334. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +1 -0
  335. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  336. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +3 -2
  337. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  338. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +4 -2
  339. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  340. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +6 -2
  341. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  342. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +117 -88
  343. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  344. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +2 -2
  345. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  346. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +4 -2
  347. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  348. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
  349. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  350. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +79 -60
  351. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  352. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +1 -0
  353. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  354. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -0
  355. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  356. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +4 -2
  357. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  358. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +6 -2
  359. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  360. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +1 -0
  361. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  362. package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -0
  363. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  364. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts +1 -0
  365. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  366. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -0
  367. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  368. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +1 -0
  369. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  370. package/lib/esm/appui-react/widgets/BasicToolWidget.js +1 -0
  371. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  372. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +1 -0
  373. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  374. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +3 -1
  375. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  376. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts +2 -0
  377. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  378. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -0
  379. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  380. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +2 -1
  381. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  382. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +1 -0
  383. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  384. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +1 -0
  385. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  386. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -0
  387. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  388. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
  389. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  390. package/lib/esm/appui-react/widgets/WidgetDef.js +7 -7
  391. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  392. package/lib/esm/appui-react.d.ts +3 -0
  393. package/lib/esm/appui-react.d.ts.map +1 -1
  394. package/lib/esm/appui-react.js +3 -0
  395. package/lib/esm/appui-react.js.map +1 -1
  396. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"useConditionalProp.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalProp.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,uDAAoE;AACpE,2EAAwE;AAYxE,iCAAiC;AACjC,SAAS,kBAAkB,CACzB,eAAmC;IAEnC,OAAO,CACL,OAAO,eAAe,KAAK,QAAQ;QACnC,eAAe;QACf,cAAc,IAAI,eAAe;QACjC,SAAS,IAAI,eAAe;QAC5B,OAAO,IAAI,eAAe,CAC3B,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAgB,kBAAkB,CAAI,eAAmC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,aAAyB,EAAE,EAAE;QAC5B,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CACpD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,IACE,CAAC,6CAAqB,CAAC,kBAAkB,CACvC,QAAQ,EACR,eAAe,CAAC,YAAY,CAC7B;oBAED,OAAO;gBACT,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;oBAAE,OAAO;gBAEvC,aAAa,EAAE,CAAC;YAClB,CAAC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,kBAAkB,CAAC,eAAe,CAAC;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC;QACtE,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,IAAA,2BAAoB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AA5BD,gDA4BC","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 Utilities\n */\n\nimport * as React from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Define a common interface for conditionals. */\ninterface ConditionalValue<T> {\n syncEventIds: string[];\n refresh: () => boolean;\n value: T;\n}\n\n/** Type that is usually used in a conditional prop. */\ntype ConditionalProp<T> = ConditionalValue<T> | T | undefined;\n\n/** Duck type the conditional. */\nfunction isConditionalValue<T>(\n conditionalProp: ConditionalProp<T>\n): conditionalProp is ConditionalValue<T> {\n return (\n typeof conditionalProp === \"object\" &&\n conditionalProp &&\n \"syncEventIds\" in conditionalProp &&\n \"refresh\" in conditionalProp &&\n \"value\" in conditionalProp\n );\n}\n\n/** @internal */\nexport function useConditionalProp<T>(conditionalProp: ConditionalProp<T>) {\n const subscribe = React.useCallback(\n (onStoreChange: () => void) => {\n if (isConditionalValue(conditionalProp)) {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(\n ({ eventIds }) => {\n if (\n !SyncUiEventDispatcher.hasEventOfInterest(\n eventIds,\n conditionalProp.syncEventIds\n )\n )\n return;\n if (!conditionalProp.refresh()) return;\n\n onStoreChange();\n }\n );\n }\n return () => {};\n },\n [conditionalProp]\n );\n const getSnapshot = React.useCallback(() => {\n if (isConditionalValue(conditionalProp)) return conditionalProp.value;\n return conditionalProp;\n }, [conditionalProp]);\n return useSyncExternalStore(subscribe, getSnapshot);\n}\n"]}
1
+ {"version":3,"file":"useConditionalProp.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalProp.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,uDAAoE;AACpE,2EAAwE;AAYxE,iCAAiC;AACjC,SAAS,kBAAkB,CACzB,eAAmC;IAEnC,OAAO,CACL,OAAO,eAAe,KAAK,QAAQ;QACnC,eAAe;QACf,cAAc,IAAI,eAAe;QACjC,SAAS,IAAI,eAAe;QAC5B,OAAO,IAAI,eAAe,CAC3B,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAgB,kBAAkB,CAAI,eAAmC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,aAAyB,EAAE,EAAE;QAC5B,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CACpD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,IACE,CAAC,6CAAqB,CAAC,kBAAkB,CACvC,QAAQ,EACR,eAAe,CAAC,YAAY,CAC7B;oBAED,OAAO;gBACT,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;oBAAE,OAAO;gBAEvC,aAAa,EAAE,CAAC;YAClB,CAAC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,kBAAkB,CAAC,eAAe,CAAC;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC;QACtE,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,IAAA,2BAAoB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AA5BD,gDA4BC","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 Utilities\n */\n\nimport * as React from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Defines a common interface for existing conditional value classes: `ConditionalBooleanValue`, `ConditionalStringValue`, `ConditionalIconItem`. */\ninterface CommonConditionalValue<T> {\n syncEventIds: string[];\n refresh: () => boolean;\n value: T;\n}\n\n/** Type that is usually used in a conditional prop. */\ntype ConditionalProp<T> = CommonConditionalValue<T> | T | undefined;\n\n/** Duck type the conditional. */\nfunction isConditionalValue<T>(\n conditionalProp: ConditionalProp<T>\n): conditionalProp is CommonConditionalValue<T> {\n return (\n typeof conditionalProp === \"object\" &&\n conditionalProp &&\n \"syncEventIds\" in conditionalProp &&\n \"refresh\" in conditionalProp &&\n \"value\" in conditionalProp\n );\n}\n\n/** @internal */\nexport function useConditionalProp<T>(conditionalProp: ConditionalProp<T>) {\n const subscribe = React.useCallback(\n (onStoreChange: () => void) => {\n if (isConditionalValue(conditionalProp)) {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(\n ({ eventIds }) => {\n if (\n !SyncUiEventDispatcher.hasEventOfInterest(\n eventIds,\n conditionalProp.syncEventIds\n )\n )\n return;\n if (!conditionalProp.refresh()) return;\n\n onStoreChange();\n }\n );\n }\n return () => {};\n },\n [conditionalProp]\n );\n const getSnapshot = React.useCallback(() => {\n if (isConditionalValue(conditionalProp)) return conditionalProp.value;\n return conditionalProp;\n }, [conditionalProp]);\n return useSyncExternalStore(subscribe, getSnapshot);\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  /** Hook that allows to get a value that depends on some sync UI events.
5
5
  * @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.
6
- * @alpha
6
+ * @public
7
7
  */
8
8
  export declare function useConditionalValue<T>(getValue: () => T, eventIds: string[]): T;
9
9
  //# sourceMappingURL=useConditionalValue.d.ts.map
@@ -12,7 +12,7 @@ const React = require("react");
12
12
  const SyncUiEventDispatcher_1 = require("../syncui/SyncUiEventDispatcher");
13
13
  /** Hook that allows to get a value that depends on some sync UI events.
14
14
  * @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.
15
- * @alpha
15
+ * @public
16
16
  */
17
17
  function useConditionalValue(getValue, eventIds) {
18
18
  const [value, setValue] = React.useState(() => getValue());
@@ -1 +1 @@
1
- {"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,2EAAwE;AAExE;;;GAGG;AACH,SAAgB,mBAAmB,CAAI,QAAiB,EAAE,QAAkB;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IACE,CAAC,6CAAqB,CAAC,kBAAkB,CACvC,IAAI,CAAC,QAAQ,EACb,WAAW,CAAC,OAAO,CACpB;gBAED,OAAO;YACT,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,KAAK,CAAC;AACf,CAAC;AA3BD,kDA2BC","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 Utilities\n */\n\nimport * as React from \"react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Hook that allows to get a value that depends on some sync UI events.\n * @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.\n * @alpha\n */\nexport function useConditionalValue<T>(getValue: () => T, eventIds: string[]) {\n const [value, setValue] = React.useState(() => getValue());\n\n const getValueRef = React.useRef(getValue);\n React.useEffect(() => {\n getValueRef.current = getValue;\n }, [getValue]);\n\n const eventIdsRef = React.useRef(eventIds);\n React.useEffect(() => {\n eventIdsRef.current = eventIds;\n }, [eventIds]);\n\n React.useEffect(() => {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n !SyncUiEventDispatcher.hasEventOfInterest(\n args.eventIds,\n eventIdsRef.current\n )\n )\n return;\n setValue(getValueRef.current());\n });\n }, []);\n\n return value;\n}\n"]}
1
+ {"version":3,"file":"useConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useConditionalValue.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,2EAAwE;AAExE;;;GAGG;AACH,SAAgB,mBAAmB,CAAI,QAAiB,EAAE,QAAkB;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IACE,CAAC,6CAAqB,CAAC,kBAAkB,CACvC,IAAI,CAAC,QAAQ,EACb,WAAW,CAAC,OAAO,CACpB;gBAED,OAAO;YACT,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,KAAK,CAAC;AACf,CAAC;AA3BD,kDA2BC","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 Utilities\n */\n\nimport * as React from \"react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Hook that allows to get a value that depends on some sync UI events.\n * @note This can be used as a replacement for a deprecated {@link @itwin/core-react#ConditionalIconItem}.\n * @public\n */\nexport function useConditionalValue<T>(getValue: () => T, eventIds: string[]) {\n const [value, setValue] = React.useState(() => getValue());\n\n const getValueRef = React.useRef(getValue);\n React.useEffect(() => {\n getValueRef.current = getValue;\n }, [getValue]);\n\n const eventIdsRef = React.useRef(eventIds);\n React.useEffect(() => {\n eventIdsRef.current = eventIds;\n }, [eventIds]);\n\n React.useEffect(() => {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n !SyncUiEventDispatcher.hasEventOfInterest(\n args.eventIds,\n eventIdsRef.current\n )\n )\n return;\n setValue(getValueRef.current());\n });\n }, []);\n\n return value;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useUiVisibility.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useUiVisibility.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH,gBAAgB;AAChB,wBAAgB,eAAe,YAQ9B"}
1
+ {"version":3,"file":"useUiVisibility.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useUiVisibility.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH,gBAAgB;AAChB,wBAAgB,eAAe,YAS9B"}
@@ -12,6 +12,7 @@ const react_1 = require("react");
12
12
  const UiFramework_1 = require("../UiFramework");
13
13
  /** @internal */
14
14
  function useUiVisibility() {
15
+ // eslint-disable-next-line deprecation/deprecation
15
16
  const [uiIsVisible, setUiIsVisible] = (0, react_1.useState)(UiFramework_1.UiFramework.getIsUiVisible());
16
17
  (0, react_1.useEffect)(() => {
17
18
  return UiFramework_1.UiFramework.onUiVisibilityChanged.addListener((args) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useUiVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useUiVisibility.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA4C;AAC5C,gDAA6C;AAE7C,gBAAgB;AAChB,SAAgB,eAAe;IAC7B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,yBAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,yBAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5D,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,WAAW,CAAC;AACrB,CAAC;AARD,0CAQC","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 Hooks\n */\n\nimport { useEffect, useState } from \"react\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** @internal */\nexport function useUiVisibility() {\n const [uiIsVisible, setUiIsVisible] = useState(UiFramework.getIsUiVisible());\n useEffect(() => {\n return UiFramework.onUiVisibilityChanged.addListener((args) => {\n setUiIsVisible(args.visible);\n });\n }, []);\n return uiIsVisible;\n}\n"]}
1
+ {"version":3,"file":"useUiVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useUiVisibility.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA4C;AAC5C,gDAA6C;AAE7C,gBAAgB;AAChB,SAAgB,eAAe;IAC7B,mDAAmD;IACnD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,yBAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,yBAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5D,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,WAAW,CAAC;AACrB,CAAC;AATD,0CASC","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 Hooks\n */\n\nimport { useEffect, useState } from \"react\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** @internal */\nexport function useUiVisibility() {\n // eslint-disable-next-line deprecation/deprecation\n const [uiIsVisible, setUiIsVisible] = useState(UiFramework.getIsUiVisible());\n useEffect(() => {\n return UiFramework.onUiVisibilityChanged.addListener((args) => {\n setUiIsVisible(args.visible);\n });\n }, []);\n return uiIsVisible;\n}\n"]}
@@ -7,7 +7,7 @@ import type { NineZoneState } from "../state/NineZoneState";
7
7
  /** @internal */
8
8
  export type LayoutState = NineZoneState;
9
9
  /** @internal */
10
- export type LayoutStore = StoreApi<NineZoneState>;
10
+ export type LayoutStore = StoreApi<LayoutState>;
11
11
  /** @internal */
12
12
  export declare const LayoutStoreContext: React.Context<LayoutStore | undefined>;
13
13
  /** @internal */
@@ -16,4 +16,6 @@ export declare function createLayoutStore(args?: Partial<LayoutState>): LayoutSt
16
16
  export declare function useLayoutStore(): LayoutStore;
17
17
  /** @internal */
18
18
  export declare function useLayout<SelectorOutput>(selector: (state: LayoutState) => SelectorOutput, multipleSlices?: boolean): SelectorOutput;
19
+ /** @internal */
20
+ export declare function useOptionalLayout<SelectorOutput>(selector: (state: LayoutState | undefined) => SelectorOutput, multipleSlices?: boolean): SelectorOutput;
19
21
  //# sourceMappingURL=LayoutStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutStore.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/LayoutStore.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAElD,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,wCAE9B,CAAC;AAGF,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAE1E;AAED,gBAAgB;AAChB,wBAAgB,cAAc,gBAI7B;AAED,gBAAgB;AAChB,wBAAgB,SAAS,CAAC,cAAc,EACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,cAAc,EAChD,cAAc,UAAQ,kBAQvB"}
1
+ {"version":3,"file":"LayoutStore.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/LayoutStore.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEhD,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,wCAE9B,CAAC;AAGF,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAE1E;AAED,gBAAgB;AAChB,wBAAgB,cAAc,gBAI7B;AAED,gBAAgB;AAChB,wBAAgB,SAAS,CAAC,cAAc,EACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,cAAc,EAChD,cAAc,UAAQ,kBAQvB;AAMD,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,cAAc,EAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,KAAK,cAAc,EAC5D,cAAc,UAAQ,kBASvB"}
@@ -7,7 +7,7 @@
7
7
  * @module Base
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.useLayout = exports.useLayoutStore = exports.createLayoutStore = exports.LayoutStoreContext = void 0;
10
+ exports.useOptionalLayout = exports.useLayout = exports.useLayoutStore = exports.createLayoutStore = exports.LayoutStoreContext = void 0;
11
11
  const React = require("react");
12
12
  const zustand_1 = require("zustand");
13
13
  const traditional_1 = require("zustand/traditional");
@@ -35,4 +35,12 @@ function useLayout(selector, multipleSlices = false) {
35
35
  return (0, traditional_1.useStoreWithEqualityFn)(store, selector, multipleSlices ? shallow_1.shallow : undefined);
36
36
  }
37
37
  exports.useLayout = useLayout;
38
+ const optionalLayoutStore = (0, zustand_1.createStore)(() => undefined);
39
+ /** @internal */
40
+ function useOptionalLayout(selector, multipleSlices = false) {
41
+ const store = React.useContext(exports.LayoutStoreContext);
42
+ const slice = (0, traditional_1.useStoreWithEqualityFn)(store ?? optionalLayoutStore, selector, multipleSlices ? shallow_1.shallow : undefined);
43
+ return slice;
44
+ }
45
+ exports.useOptionalLayout = useOptionalLayout;
38
46
  //# sourceMappingURL=LayoutStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutStore.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/LayoutStore.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,qCAAsC;AACtC,qDAA6D;AAC7D,6CAA0C;AAC1C,sDAA6C;AAE7C,0DAA6D;AAQ7D,gBAAgB;AACH,QAAA,kBAAkB,GAAG,KAAK,CAAC,aAAa,CACnD,SAAS,CACV,CAAC;AACF,0BAAkB,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAE5D,gBAAgB;AAChB,SAAgB,iBAAiB,CAAC,IAA2B;IAC3D,OAAO,IAAA,qBAAW,EAAc,GAAG,EAAE,CAAC,IAAA,mCAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAFD,8CAEC;AAED,gBAAgB;AAChB,SAAgB,cAAc;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,0BAAkB,CAAC,CAAC;IACnD,IAAA,qBAAM,EAAC,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAJD,wCAIC;AAED,gBAAgB;AAChB,SAAgB,SAAS,CACvB,QAAgD,EAChD,cAAc,GAAG,KAAK;IAEtB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,IAAA,oCAAsB,EAC3B,KAAK,EACL,QAAQ,EACR,cAAc,CAAC,CAAC,CAAC,iBAAO,CAAC,CAAC,CAAC,SAAS,CACrC,CAAC;AACJ,CAAC;AAVD,8BAUC","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 Base\n */\n\nimport * as React from \"react\";\nimport type { StoreApi } from \"zustand\";\nimport { createStore } from \"zustand\";\nimport { useStoreWithEqualityFn } from \"zustand/traditional\";\nimport { shallow } from \"zustand/shallow\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { NineZoneState } from \"../state/NineZoneState\";\nimport { createNineZoneState } from \"../state/NineZoneState\";\n\n/** @internal */\nexport type LayoutState = NineZoneState;\n\n/** @internal */\nexport type LayoutStore = StoreApi<NineZoneState>;\n\n/** @internal */\nexport const LayoutStoreContext = React.createContext<LayoutStore | undefined>(\n undefined\n);\nLayoutStoreContext.displayName = \"appui:LayoutStoreContext\";\n\n/** @internal */\nexport function createLayoutStore(args?: Partial<LayoutState>): LayoutStore {\n return createStore<LayoutState>(() => createNineZoneState(args));\n}\n\n/** @internal */\nexport function useLayoutStore() {\n const store = React.useContext(LayoutStoreContext);\n assert(!!store, \"LayoutStoreContext is not defined\");\n return store;\n}\n\n/** @internal */\nexport function useLayout<SelectorOutput>(\n selector: (state: LayoutState) => SelectorOutput,\n multipleSlices = false\n) {\n const store = useLayoutStore();\n return useStoreWithEqualityFn(\n store,\n selector,\n multipleSlices ? shallow : undefined\n );\n}\n"]}
1
+ {"version":3,"file":"LayoutStore.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/base/LayoutStore.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,qCAAsC;AACtC,qDAA6D;AAC7D,6CAA0C;AAC1C,sDAA6C;AAE7C,0DAA6D;AAQ7D,gBAAgB;AACH,QAAA,kBAAkB,GAAG,KAAK,CAAC,aAAa,CACnD,SAAS,CACV,CAAC;AACF,0BAAkB,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAE5D,gBAAgB;AAChB,SAAgB,iBAAiB,CAAC,IAA2B;IAC3D,OAAO,IAAA,qBAAW,EAAc,GAAG,EAAE,CAAC,IAAA,mCAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAFD,8CAEC;AAED,gBAAgB;AAChB,SAAgB,cAAc;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,0BAAkB,CAAC,CAAC;IACnD,IAAA,qBAAM,EAAC,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAJD,wCAIC;AAED,gBAAgB;AAChB,SAAgB,SAAS,CACvB,QAAgD,EAChD,cAAc,GAAG,KAAK;IAEtB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,IAAA,oCAAsB,EAC3B,KAAK,EACL,QAAQ,EACR,cAAc,CAAC,CAAC,CAAC,iBAAO,CAAC,CAAC,CAAC,SAAS,CACrC,CAAC;AACJ,CAAC;AAVD,8BAUC;AAED,MAAM,mBAAmB,GAAG,IAAA,qBAAW,EACrC,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,iBAAiB,CAC/B,QAA4D,EAC5D,cAAc,GAAG,KAAK;IAEtB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,0BAAkB,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAA,oCAAsB,EAClC,KAAK,IAAI,mBAAmB,EAC5B,QAAQ,EACR,cAAc,CAAC,CAAC,CAAC,iBAAO,CAAC,CAAC,CAAC,SAAS,CACrC,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAXD,8CAWC","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 Base\n */\n\nimport * as React from \"react\";\nimport type { StoreApi } from \"zustand\";\nimport { createStore } from \"zustand\";\nimport { useStoreWithEqualityFn } from \"zustand/traditional\";\nimport { shallow } from \"zustand/shallow\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { NineZoneState } from \"../state/NineZoneState\";\nimport { createNineZoneState } from \"../state/NineZoneState\";\n\n/** @internal */\nexport type LayoutState = NineZoneState;\n\n/** @internal */\nexport type LayoutStore = StoreApi<LayoutState>;\n\n/** @internal */\nexport const LayoutStoreContext = React.createContext<LayoutStore | undefined>(\n undefined\n);\nLayoutStoreContext.displayName = \"appui:LayoutStoreContext\";\n\n/** @internal */\nexport function createLayoutStore(args?: Partial<LayoutState>): LayoutStore {\n return createStore<LayoutState>(() => createNineZoneState(args));\n}\n\n/** @internal */\nexport function useLayoutStore() {\n const store = React.useContext(LayoutStoreContext);\n assert(!!store, \"LayoutStoreContext is not defined\");\n return store;\n}\n\n/** @internal */\nexport function useLayout<SelectorOutput>(\n selector: (state: LayoutState) => SelectorOutput,\n multipleSlices = false\n) {\n const store = useLayoutStore();\n return useStoreWithEqualityFn(\n store,\n selector,\n multipleSlices ? shallow : undefined\n );\n}\n\nconst optionalLayoutStore = createStore<LayoutState | undefined>(\n () => undefined\n);\n\n/** @internal */\nexport function useOptionalLayout<SelectorOutput>(\n selector: (state: LayoutState | undefined) => SelectorOutput,\n multipleSlices = false\n) {\n const store = React.useContext(LayoutStoreContext);\n const slice = useStoreWithEqualityFn(\n store ?? optionalLayoutStore,\n selector,\n multipleSlices ? shallow : undefined\n );\n return slice;\n}\n"]}
@@ -12,6 +12,7 @@
12
12
  align-items: center;
13
13
  background: $buic-background-4;
14
14
  user-select: none;
15
+ -webkit-user-select: none;
15
16
  white-space: nowrap;
16
17
  height: $nz-widget-tab-height;
17
18
  border-radius: $nz-widget-tab-border-radius;
@@ -57,6 +57,7 @@
57
57
 
58
58
  position: absolute;
59
59
  user-select: none;
60
+ -webkit-user-select: none;
60
61
 
61
62
  &.nz-left,
62
63
  &.nz-right {
@@ -9,6 +9,7 @@
9
9
  height: 2em;
10
10
  cursor: pointer;
11
11
  user-select: none;
12
+ -webkit-user-select: none;
12
13
  padding-right: 3em;
13
14
  padding-left: 0.5em;
14
15
 
@@ -20,6 +20,7 @@
20
20
  height: 100%;
21
21
  cursor: pointer;
22
22
  user-select: none;
23
+ -webkit-user-select: none;
23
24
 
24
25
  > .nz-icon {
25
26
  background: $buic-background-2;
@@ -9,6 +9,7 @@
9
9
 
10
10
  .nz-widget-tab {
11
11
  user-select: none;
12
+ -webkit-user-select: none;
12
13
  white-space: nowrap;
13
14
  display: flex;
14
15
  gap: 6px;
@@ -23,6 +23,7 @@
23
23
  position: absolute;
24
24
  cursor: auto;
25
25
  user-select: none;
26
+ -webkit-user-select: none;
26
27
  }
27
28
  }
28
29
  }
@@ -12,6 +12,7 @@ body {
12
12
  * {
13
13
  cursor: $cursor !important;
14
14
  user-select: none;
15
+ -webkit-user-select: none;
15
16
  }
16
17
  }
17
18
  }
@@ -18,6 +18,8 @@ $line-grip-width: calc(#{$nz-grip-width} - 2px);
18
18
  position: relative;
19
19
  display: flex;
20
20
  transition: 0.2s ease-out;
21
+ user-select: none;
22
+ -webkit-user-select: none;
21
23
 
22
24
  > .nz-handle {
23
25
  position: absolute;
@@ -22,6 +22,7 @@ $sheets-modal-padding: 10px;
22
22
  border-style: solid;
23
23
  box-sizing: border-box;
24
24
  user-select: none;
25
+ -webkit-user-select: none;
25
26
 
26
27
  &:hover {
27
28
  cursor: pointer;
@@ -2,23 +2,26 @@
2
2
  * @module Item
3
3
  */
4
4
  import { ConditionalBooleanValue as _ConditionalBooleanValue, ConditionalStringValue as _ConditionalStringValue } from "@itwin/appui-abstract";
5
- import { ConditionalIconItem as _ConditionalIconItem } from "@itwin/core-react";
5
+ /** Interface used to track the conditional value of a generic type `T`. The `getValue` function should be called when sync event is emitted that matches one of specified `eventIds` values.
6
+ * @note Use {@link useConditionalValue} hook to get the value.
7
+ * @public
8
+ */
9
+ export interface ConditionalValue<T> {
10
+ eventIds: string[];
11
+ getValue: () => T;
12
+ }
6
13
  /** Class used to return a boolean value. The boolean value is refreshed by using the specified function. The `syncEventIds` define
7
14
  * events that would require the `testFunc` function to be rerun.
8
15
  * @public
9
16
  */
10
17
  export type ConditionalBooleanValue = _ConditionalBooleanValue;
18
+ /** @public */
11
19
  export declare const ConditionalBooleanValue: typeof _ConditionalBooleanValue;
12
20
  /** Class used to return a string value. The string value is refreshed by using the specified function. The `syncEventIds` define
13
21
  * events that would require the `stringGetter` function to be rerun.
14
22
  * @public
15
23
  */
16
24
  export type ConditionalStringValue = _ConditionalStringValue;
25
+ /** @public */
17
26
  export declare const ConditionalStringValue: typeof _ConditionalStringValue;
18
- /** Class used to return an icon value. The value is refreshed by using the specified function. The `syncEventIds` define
19
- * events that would require the `iconGetter` function to be rerun.
20
- * @public
21
- */
22
- export type ConditionalIconValue = _ConditionalIconItem;
23
- export declare const ConditionalIconValue: typeof _ConditionalIconItem;
24
27
  //# sourceMappingURL=ConditionalValue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalValue.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/shared/ConditionalValue.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EACL,uBAAuB,IAAI,wBAAwB,EACnD,sBAAsB,IAAI,uBAAuB,EAClD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,IAAI,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEhF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAE/D,eAAO,MAAM,uBAAuB,iCAA2B,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,gCAA0B,CAAC;AAE9D;;;GAGG;AAEH,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAExD,eAAO,MAAM,oBAAoB,6BAAuB,CAAC"}
1
+ {"version":3,"file":"ConditionalValue.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/shared/ConditionalValue.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EACL,uBAAuB,IAAI,wBAAwB,EACnD,sBAAsB,IAAI,uBAAuB,EAClD,MAAM,uBAAuB,CAAC;AAI/B;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAC/D,cAAc;AAEd,eAAO,MAAM,uBAAuB,iCAA2B,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAC7D,cAAc;AAEd,eAAO,MAAM,sBAAsB,gCAA0B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConditionalIconValue = exports.ConditionalStringValue = exports.ConditionalBooleanValue = void 0;
3
+ exports.ConditionalStringValue = exports.ConditionalBooleanValue = void 0;
4
4
  /*---------------------------------------------------------------------------------------------
5
5
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
6
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -9,11 +9,10 @@ exports.ConditionalIconValue = exports.ConditionalStringValue = exports.Conditio
9
9
  * @module Item
10
10
  */
11
11
  const appui_abstract_1 = require("@itwin/appui-abstract");
12
- const core_react_1 = require("@itwin/core-react");
12
+ /** @public */
13
13
  // eslint-disable-next-line @typescript-eslint/no-redeclare
14
14
  exports.ConditionalBooleanValue = appui_abstract_1.ConditionalBooleanValue;
15
+ /** @public */
15
16
  // eslint-disable-next-line @typescript-eslint/no-redeclare
16
17
  exports.ConditionalStringValue = appui_abstract_1.ConditionalStringValue;
17
- // eslint-disable-next-line @typescript-eslint/no-redeclare, deprecation/deprecation
18
- exports.ConditionalIconValue = core_react_1.ConditionalIconItem;
19
18
  //# sourceMappingURL=ConditionalValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/shared/ConditionalValue.ts"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG;;GAEG;AACH,0DAG+B;AAC/B,kDAAgF;AAOhF,2DAA2D;AAC9C,QAAA,uBAAuB,GAAG,wCAAwB,CAAC;AAOhE,2DAA2D;AAC9C,QAAA,sBAAsB,GAAG,uCAAuB,CAAC;AAQ9D,oFAAoF;AACvE,QAAA,oBAAoB,GAAG,gCAAoB,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 Item\n */\nimport {\n ConditionalBooleanValue as _ConditionalBooleanValue,\n ConditionalStringValue as _ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { ConditionalIconItem as _ConditionalIconItem } from \"@itwin/core-react\";\n\n/** Class used to return a boolean value. The boolean value is refreshed by using the specified function. The `syncEventIds` define\n * events that would require the `testFunc` function to be rerun.\n * @public\n */\nexport type ConditionalBooleanValue = _ConditionalBooleanValue;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ConditionalBooleanValue = _ConditionalBooleanValue;\n\n/** Class used to return a string value. The string value is refreshed by using the specified function. The `syncEventIds` define\n * events that would require the `stringGetter` function to be rerun.\n * @public\n */\nexport type ConditionalStringValue = _ConditionalStringValue;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ConditionalStringValue = _ConditionalStringValue;\n\n/** Class used to return an icon value. The value is refreshed by using the specified function. The `syncEventIds` define\n * events that would require the `iconGetter` function to be rerun.\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport type ConditionalIconValue = _ConditionalIconItem;\n// eslint-disable-next-line @typescript-eslint/no-redeclare, deprecation/deprecation\nexport const ConditionalIconValue = _ConditionalIconItem;\n"]}
1
+ {"version":3,"file":"ConditionalValue.js","sourceRoot":"","sources":["../../../../src/appui-react/shared/ConditionalValue.ts"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG;;GAEG;AACH,0DAG+B;AAkB/B,cAAc;AACd,2DAA2D;AAC9C,QAAA,uBAAuB,GAAG,wCAAwB,CAAC;AAOhE,cAAc;AACd,2DAA2D;AAC9C,QAAA,sBAAsB,GAAG,uCAAuB,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 Item\n */\nimport {\n ConditionalBooleanValue as _ConditionalBooleanValue,\n ConditionalStringValue as _ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { ConditionalIconItem as _ConditionalIconItem } from \"@itwin/core-react\";\nimport type { useConditionalValue } from \"../hooks/useConditionalValue\";\n\n/** Interface used to track the conditional value of a generic type `T`. The `getValue` function should be called when sync event is emitted that matches one of specified `eventIds` values.\n * @note Use {@link useConditionalValue} hook to get the value.\n * @public\n */\nexport interface ConditionalValue<T> {\n eventIds: string[];\n getValue: () => T;\n}\n\n/** Class used to return a boolean value. The boolean value is refreshed by using the specified function. The `syncEventIds` define\n * events that would require the `testFunc` function to be rerun.\n * @public\n */\nexport type ConditionalBooleanValue = _ConditionalBooleanValue;\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ConditionalBooleanValue = _ConditionalBooleanValue;\n\n/** Class used to return a string value. The string value is refreshed by using the specified function. The `syncEventIds` define\n * events that would require the `stringGetter` function to be rerun.\n * @public\n */\nexport type ConditionalStringValue = _ConditionalStringValue;\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ConditionalStringValue = _ConditionalStringValue;\n"]}
@@ -26,6 +26,7 @@ export interface StatusBarItemProps extends CommonProps {
26
26
  export declare function DockedStatusBarItem(props: StatusBarItemProps): React.JSX.Element;
27
27
  /** Properties for the [[StatusBarComposer]] React components
28
28
  * @public
29
+ * @deprecated in 4.17.0. Use `React.ComponentProps<typeof StatusBarComposer>`
29
30
  */
30
31
  export interface StatusBarComposerProps extends CommonProps {
31
32
  /** Status Bar items */
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAqBzB,UAAU,8BAA8B;IACtC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAMD,gBAAgB;AAChB,wBAAgB,iBAAiB,mCAEhC;AAED;;GAEG;AAEH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,qBAqB5D;AAoLD;;GAEG;AAEH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,uBAAuB;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;IAEvB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBAoR9D"}
1
+ {"version":3,"file":"StatusBarComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAqBzB,UAAU,8BAA8B;IACtC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAMD,gBAAgB;AAChB,wBAAgB,iBAAiB,mCAEhC;AAED;;GAEG;AAEH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,qBAqB5D;AAoLD;;;GAGG;AAEH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,uBAAuB;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;IAEvB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBAsR9D"}
@@ -176,6 +176,7 @@ function isItemInOverflow(id, overflowItemIds) {
176
176
  /** Component to load components into the [[StatusBar]].
177
177
  * @public
178
178
  */
179
+ // eslint-disable-next-line deprecation/deprecation
179
180
  function StatusBarComposer(props) {
180
181
  const { className, style, items, mainClassName, leftClassName, centerClassName, rightClassName, } = props;
181
182
  const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new StatusBarItemsManager_1.StatusBarItemsManager(items));
@@ -188,10 +189,12 @@ function StatusBarComposer(props) {
188
189
  setDefaultItemsManager(new StatusBarItemsManager_1.StatusBarItemsManager(items));
189
190
  }
190
191
  }, [items]);
192
+ // eslint-disable-next-line deprecation/deprecation
191
193
  const defaultItems = (0, useDefaultStatusBarItems_1.useDefaultStatusBarItems)(defaultItemsManager);
192
194
  const syncIdsOfInterest = React.useMemo(() => StatusBarItemsManager_1.StatusBarItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);
193
195
  useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);
194
196
  const [addonItemsManager] = React.useState(() => new StatusBarItemsManager_1.StatusBarItemsManager());
197
+ // eslint-disable-next-line deprecation/deprecation
195
198
  const addonItems = (0, useUiItemsProviderStatusBarItems_1.useUiItemsProviderStatusBarItems)(addonItemsManager);
196
199
  const addonSyncIdsOfInterest = React.useMemo(() => StatusBarItemsManager_1.StatusBarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);
197
200
  useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.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 StatusBar\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { useRefs, useResizeObserver } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { eqlOverflown } from \"../layout/tool-settings/Docked\";\nimport { StatusBarLabelIndicator } from \"../statusbar/LabelIndicator\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\nimport { StatusBarOverflow } from \"./Overflow\";\nimport {\n StatusBarCenterSection,\n StatusBarLeftSection,\n StatusBarRightSection,\n StatusBarSpaceBetween,\n} from \"./StatusBar\";\nimport type {\n StatusBarActionItem,\n StatusBarItem,\n StatusBarLabelItem,\n} from \"./StatusBarItem\";\nimport {\n isStatusBarActionItem,\n isStatusBarCustomItem,\n isStatusBarLabelItem,\n StatusBarSection,\n} from \"./StatusBarItem\";\nimport { StatusBarItemsManager } from \"./StatusBarItemsManager\";\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems\";\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems\";\nimport { StatusBarCornerComponentContext } from \"./StatusBarCornerComponentContext\";\n\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\nfunction getCombinedSectionItemPriority(item: StatusBarItem) {\n let sectionValue = 0;\n if (item.section === StatusBarSection.Center) sectionValue = 100000;\n else if (item.section === StatusBarSection.Context) sectionValue = 200000;\n else if (item.section === StatusBarSection.Right) sectionValue = 300000;\n return sectionValue + item.itemPriority;\n}\n\ninterface DockedStatusBarEntryContextArg {\n readonly isOverflown: boolean;\n readonly onResize: (w: number) => void;\n}\n\nconst DockedStatusBarEntryContext =\n React.createContext<DockedStatusBarEntryContextArg>(null!);\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\n\n/** @internal */\nexport function useStatusBarEntry() {\n return React.useContext(DockedStatusBarEntryContext);\n}\n\n/** Properties of [[DockedStatusBarItem]] component.\n * @internal future\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface StatusBarItemProps extends CommonProps {\n /** Tool setting content. */\n children?: React.ReactNode;\n itemPriority?: number;\n providerId?: string;\n section?: string;\n}\n\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\n * @internal future\n */\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\n const { onResize } = useStatusBarEntry();\n const ref = useResizeObserver<HTMLDivElement>(onResize);\n const className = classnames(\n \"uifw-statusBar-item-container\",\n props.className\n );\n return (\n <div\n data-item-id={props.itemId}\n data-item-type=\"status-bar-item\"\n data-item-location={props.section}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n className={className}\n ref={ref}\n style={props.style}\n >\n {props.children}\n </div>\n );\n}\n\ninterface DockedStatusBarEntryProps {\n children?: React.ReactNode;\n entryKey: string;\n getOnResize: (key: string) => (w: number) => void;\n}\n\n/** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */\nfunction DockedStatusBarEntry({\n children,\n entryKey,\n getOnResize,\n}: DockedStatusBarEntryProps) {\n const onResize = React.useMemo(\n () => getOnResize(entryKey),\n [getOnResize, entryKey]\n );\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(\n () => ({\n isOverflown: false,\n onResize,\n }),\n [onResize]\n );\n return (\n <DockedStatusBarEntryContext.Provider value={entry}>\n {children}\n </DockedStatusBarEntryContext.Provider>\n );\n}\n\n/** Private function to set up sync event monitoring of statusbar items */\nfunction useStatusBarItemSyncEffect(\n itemsManager: StatusBarItemsManager,\n syncIdsOfInterest: string[]\n) {\n React.useEffect(() => {\n // Note: that items with conditions have condition run when loaded into the items manager\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\nfunction StatusBarLabelItemComponent(props: StatusBarLabelItem) {\n const label = ConditionalStringValue.getValue(props.label);\n // eslint-disable-next-line deprecation/deprecation\n return <StatusBarLabelIndicator iconSpec={props.icon} label={label} />;\n}\n\nfunction StatusBarActionItemComponent(props: StatusBarActionItem) {\n const title = ConditionalStringValue.getValue(props.tooltip);\n return (\n // eslint-disable-next-line deprecation/deprecation\n <StatusBarLabelIndicator\n title={title}\n onClick={props.execute}\n // eslint-disable-next-line deprecation/deprecation\n iconSpec={props.icon}\n />\n );\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n stageItems: ReadonlyArray<StatusBarItem>,\n addonItems: ReadonlyArray<StatusBarItem>\n) {\n const items: StatusBarItem[] = [];\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 return items;\n}\n\n/** local function to sort status bar items from left to right */\nconst sortItems = (items: StatusBarItem[]) => {\n const sortedItems: StatusBarItem[] = [];\n [\n StatusBarSection.Left,\n StatusBarSection.Center,\n StatusBarSection.Context,\n StatusBarSection.Right,\n ].forEach((section) => {\n items\n .filter((item) => item.section.valueOf() === section.valueOf())\n .sort((a, b) => a.itemPriority - b.itemPriority)\n .forEach((item) => sortedItems.push(item));\n });\n\n return sortedItems;\n};\n\n/** local function to ensure a width value is defined for a status bar entries. */\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\n/** local function to sort status bar item widths */\nconst sortWidths = (\n widths: Map<string, number>,\n statusBarItems: StatusBarItem[]\n) => {\n const widthsArray = Array.from(widths.entries());\n widthsArray.sort((a, b) => {\n const aIndex = statusBarItems.findIndex((item) => item.id === a[0]);\n const bIndex = statusBarItems.findIndex((item) => item.id === b[0]);\n return aIndex - bIndex;\n });\n\n return new Map<string, number>(widthsArray);\n};\n\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\nfunction getItemToPlaceInOverflow(\n width: number,\n docked: ReadonlyArray<readonly [string, number]>,\n overflowWidth: number\n) {\n let settingsWidth = 0;\n\n let i = 0;\n for (; i < docked.length; i++) {\n const w = docked[i][1];\n const newSettingsWidth = settingsWidth + w;\n if (newSettingsWidth > width) {\n settingsWidth += overflowWidth;\n break;\n }\n settingsWidth = newSettingsWidth;\n }\n\n let j = i;\n for (; j > 0; j--) {\n if (settingsWidth <= width) break;\n const w = docked[j - 1][1];\n settingsWidth -= w;\n }\n\n const overflowItems = new Array<string>();\n for (i = j; i < docked.length; i++) {\n overflowItems.push(docked[i][0]);\n }\n return overflowItems;\n}\n\nfunction isItemInOverflow(\n id: string,\n overflowItemIds: ReadonlyArray<string> | undefined\n) {\n if (!overflowItemIds || 0 === overflowItemIds.length) return false;\n return !!overflowItemIds.find((value) => value === id);\n}\n\n/** Properties for the [[StatusBarComposer]] React components\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface StatusBarComposerProps extends CommonProps {\n /** Status Bar items */\n items: StatusBarItem[];\n\n /** CSS class name override for the overall Status Bar */\n mainClassName?: string;\n /** CSS class name override for the left section */\n leftClassName?: string;\n /** CSS class name override for the center section */\n centerClassName?: string;\n /** CSS class name override for the right section */\n rightClassName?: string;\n}\n\n/** Component to load components into the [[StatusBar]].\n * @public\n */\nexport function StatusBarComposer(props: StatusBarComposerProps) {\n const {\n className,\n style,\n items,\n mainClassName,\n leftClassName,\n centerClassName,\n rightClassName,\n } = props;\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n () => new StatusBarItemsManager(items)\n );\n const containerWidth = React.useRef<number | undefined>(undefined);\n\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setDefaultItemsManager(new StatusBarItemsManager(items));\n }\n }, [items]);\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\n const addonSyncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const entryWidths = React.useRef(new Map<string, number | undefined>());\n const overflowWidth = React.useRef<number | undefined>(undefined);\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\n const statusBarItems = React.useMemo(() => {\n const combinedItems = combineItems(defaultItems, addonItems);\n return sortItems(combinedItems);\n }, [defaultItems, addonItems]);\n const notOverflown = React.useMemo(() => {\n return statusBarItems\n .filter((item) => !isItemInOverflow(item.id, overflown))\n .map((item) => item.id);\n }, [overflown, statusBarItems]);\n\n const calculateOverflow = React.useCallback(() => {\n const widths = verifiedMapEntries(entryWidths.current);\n\n if (\n containerWidth.current === undefined ||\n widths === undefined ||\n overflowWidth.current === undefined\n ) {\n setOverflown(new Array<string>());\n return;\n }\n\n // Calculate overflow.\n const newOverflown = getItemToPlaceInOverflow(\n containerWidth.current,\n [...widths.entries()],\n overflowWidth.current\n );\n if (!eqlOverflown(overflown, newOverflown)) {\n setOverflown(newOverflown);\n }\n }, [overflown]);\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowWidth.current !== w;\n overflowWidth.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = entryWidths.current.get(key);\n if (oldW === undefined || Math.abs(oldW - w) > 2) {\n entryWidths.current.set(key, w);\n if (oldW === undefined) {\n const widths = verifiedMapEntries(entryWidths.current);\n if (widths !== undefined)\n entryWidths.current = sortWidths(widths, statusBarItems);\n }\n\n calculateOverflow();\n }\n },\n [calculateOverflow, statusBarItems]\n );\n\n const getSectionName = (section: StatusBarSection) => {\n switch (section) {\n case StatusBarSection.Center:\n case StatusBarSection.Stage:\n return \"status-bar-center\";\n case StatusBarSection.Context:\n return \"status-bar-right-start\";\n case StatusBarSection.Right:\n case StatusBarSection.Selection:\n return \"status-bar-right-end\";\n case StatusBarSection.Left:\n case StatusBarSection.Message:\n return \"status-bar-left\";\n }\n };\n\n /** generate a wrapped status bar entry that will report its size. */\n const getComponent = React.useCallback(\n (\n item: StatusBarItem,\n key: string,\n itemPriority: number,\n section: StatusBarSection\n ): React.ReactNode => {\n const providerId = isProviderItem(item) ? item.providerId : undefined;\n return (\n <DockedStatusBarEntry\n key={key}\n entryKey={key}\n getOnResize={handleEntryResize}\n >\n <DockedStatusBarItem\n key={key}\n itemId={item.id}\n itemPriority={itemPriority}\n providerId={providerId}\n section={getSectionName(section)}\n >\n <StatusBarCornerComponentContext.Provider\n value={\n key === notOverflown[0]\n ? \"left-corner\"\n : (key === notOverflown[notOverflown.length - 1] &&\n overflown?.length === 0) ||\n isItemInOverflow(key, overflown)\n ? \"right-corner\"\n : undefined\n }\n >\n {isStatusBarCustomItem(item) && item.content}\n {isStatusBarActionItem(item) && (\n <StatusBarActionItemComponent {...item} />\n )}\n {isStatusBarLabelItem(item) && (\n <StatusBarLabelItemComponent {...item} />\n )}\n </StatusBarCornerComponentContext.Provider>\n </DockedStatusBarItem>\n </DockedStatusBarEntry>\n );\n },\n [handleEntryResize, notOverflown, overflown]\n );\n\n const getSectionItems = React.useCallback(\n (section: StatusBarSection): React.ReactNode[] => {\n const sectionItems = statusBarItems\n .filter(\n (item) =>\n item.section.valueOf() === section.valueOf() &&\n !isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort((a, b) => a.itemPriority - b.itemPriority);\n\n return sectionItems.map((sectionItem) => (\n <React.Fragment key={sectionItem.id}>\n {getComponent(\n sectionItem,\n sectionItem.id,\n sectionItem.itemPriority,\n sectionItem.section\n )}\n </React.Fragment>\n ));\n },\n [statusBarItems, overflown, getComponent]\n );\n\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\n const itemsInOverflow = statusBarItems\n .filter(\n (item) =>\n isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort(\n (a, b) =>\n getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)\n )\n .reverse();\n\n return itemsInOverflow.map((item) => (\n <React.Fragment key={item.id}>\n {getComponent(item, item.id, item.itemPriority, item.section)}\n </React.Fragment>\n ));\n }, [statusBarItems, overflown, getComponent]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n if (\n undefined === containerWidth.current ||\n Math.abs(containerWidth.current - w) > 2\n ) {\n containerWidth.current = w;\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const resizeObserverRef = useResizeObserver(handleContainerResize);\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\n const refs = useRefs(containerRef, resizeObserverRef);\n\n const leftItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Left),\n [getSectionItems]\n );\n const centerItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Center),\n [getSectionItems]\n );\n const rightItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Right),\n [getSectionItems]\n );\n const contextItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Context),\n [getSectionItems]\n );\n const overflowItems = React.useMemo(\n () => getOverflowItems(),\n [getOverflowItems]\n );\n\n const containerClassName = classnames(\"uifw-statusBar-docked\", className);\n\n return (\n <div\n className={containerClassName}\n ref={refs}\n style={style}\n role=\"presentation\"\n >\n <StatusBarSpaceBetween className={mainClassName}>\n <StatusBarLeftSection className={leftClassName}>\n {leftItems}\n </StatusBarLeftSection>\n <StatusBarCenterSection className={centerClassName}>\n {centerItems}\n {contextItems}\n </StatusBarCenterSection>\n <StatusBarRightSection className={rightClassName}>\n {rightItems}\n {(!overflown || overflown.length > 0) && (\n <StatusBarOverflow\n onResize={handleOverflowResize}\n overflowItems={overflowItems}\n />\n )}\n </StatusBarRightSection>\n </StatusBarSpaceBetween>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.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 StatusBar\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { useRefs, useResizeObserver } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { eqlOverflown } from \"../layout/tool-settings/Docked\";\nimport { StatusBarLabelIndicator } from \"../statusbar/LabelIndicator\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\nimport { StatusBarOverflow } from \"./Overflow\";\nimport {\n StatusBarCenterSection,\n StatusBarLeftSection,\n StatusBarRightSection,\n StatusBarSpaceBetween,\n} from \"./StatusBar\";\nimport type {\n StatusBarActionItem,\n StatusBarItem,\n StatusBarLabelItem,\n} from \"./StatusBarItem\";\nimport {\n isStatusBarActionItem,\n isStatusBarCustomItem,\n isStatusBarLabelItem,\n StatusBarSection,\n} from \"./StatusBarItem\";\nimport { StatusBarItemsManager } from \"./StatusBarItemsManager\";\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems\";\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems\";\nimport { StatusBarCornerComponentContext } from \"./StatusBarCornerComponentContext\";\n\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\nfunction getCombinedSectionItemPriority(item: StatusBarItem) {\n let sectionValue = 0;\n if (item.section === StatusBarSection.Center) sectionValue = 100000;\n else if (item.section === StatusBarSection.Context) sectionValue = 200000;\n else if (item.section === StatusBarSection.Right) sectionValue = 300000;\n return sectionValue + item.itemPriority;\n}\n\ninterface DockedStatusBarEntryContextArg {\n readonly isOverflown: boolean;\n readonly onResize: (w: number) => void;\n}\n\nconst DockedStatusBarEntryContext =\n React.createContext<DockedStatusBarEntryContextArg>(null!);\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\n\n/** @internal */\nexport function useStatusBarEntry() {\n return React.useContext(DockedStatusBarEntryContext);\n}\n\n/** Properties of [[DockedStatusBarItem]] component.\n * @internal future\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface StatusBarItemProps extends CommonProps {\n /** Tool setting content. */\n children?: React.ReactNode;\n itemPriority?: number;\n providerId?: string;\n section?: string;\n}\n\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\n * @internal future\n */\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\n const { onResize } = useStatusBarEntry();\n const ref = useResizeObserver<HTMLDivElement>(onResize);\n const className = classnames(\n \"uifw-statusBar-item-container\",\n props.className\n );\n return (\n <div\n data-item-id={props.itemId}\n data-item-type=\"status-bar-item\"\n data-item-location={props.section}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n className={className}\n ref={ref}\n style={props.style}\n >\n {props.children}\n </div>\n );\n}\n\ninterface DockedStatusBarEntryProps {\n children?: React.ReactNode;\n entryKey: string;\n getOnResize: (key: string) => (w: number) => void;\n}\n\n/** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */\nfunction DockedStatusBarEntry({\n children,\n entryKey,\n getOnResize,\n}: DockedStatusBarEntryProps) {\n const onResize = React.useMemo(\n () => getOnResize(entryKey),\n [getOnResize, entryKey]\n );\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(\n () => ({\n isOverflown: false,\n onResize,\n }),\n [onResize]\n );\n return (\n <DockedStatusBarEntryContext.Provider value={entry}>\n {children}\n </DockedStatusBarEntryContext.Provider>\n );\n}\n\n/** Private function to set up sync event monitoring of statusbar items */\nfunction useStatusBarItemSyncEffect(\n itemsManager: StatusBarItemsManager,\n syncIdsOfInterest: string[]\n) {\n React.useEffect(() => {\n // Note: that items with conditions have condition run when loaded into the items manager\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\nfunction StatusBarLabelItemComponent(props: StatusBarLabelItem) {\n const label = ConditionalStringValue.getValue(props.label);\n // eslint-disable-next-line deprecation/deprecation\n return <StatusBarLabelIndicator iconSpec={props.icon} label={label} />;\n}\n\nfunction StatusBarActionItemComponent(props: StatusBarActionItem) {\n const title = ConditionalStringValue.getValue(props.tooltip);\n return (\n // eslint-disable-next-line deprecation/deprecation\n <StatusBarLabelIndicator\n title={title}\n onClick={props.execute}\n // eslint-disable-next-line deprecation/deprecation\n iconSpec={props.icon}\n />\n );\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n stageItems: ReadonlyArray<StatusBarItem>,\n addonItems: ReadonlyArray<StatusBarItem>\n) {\n const items: StatusBarItem[] = [];\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 return items;\n}\n\n/** local function to sort status bar items from left to right */\nconst sortItems = (items: StatusBarItem[]) => {\n const sortedItems: StatusBarItem[] = [];\n [\n StatusBarSection.Left,\n StatusBarSection.Center,\n StatusBarSection.Context,\n StatusBarSection.Right,\n ].forEach((section) => {\n items\n .filter((item) => item.section.valueOf() === section.valueOf())\n .sort((a, b) => a.itemPriority - b.itemPriority)\n .forEach((item) => sortedItems.push(item));\n });\n\n return sortedItems;\n};\n\n/** local function to ensure a width value is defined for a status bar entries. */\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\n/** local function to sort status bar item widths */\nconst sortWidths = (\n widths: Map<string, number>,\n statusBarItems: StatusBarItem[]\n) => {\n const widthsArray = Array.from(widths.entries());\n widthsArray.sort((a, b) => {\n const aIndex = statusBarItems.findIndex((item) => item.id === a[0]);\n const bIndex = statusBarItems.findIndex((item) => item.id === b[0]);\n return aIndex - bIndex;\n });\n\n return new Map<string, number>(widthsArray);\n};\n\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\nfunction getItemToPlaceInOverflow(\n width: number,\n docked: ReadonlyArray<readonly [string, number]>,\n overflowWidth: number\n) {\n let settingsWidth = 0;\n\n let i = 0;\n for (; i < docked.length; i++) {\n const w = docked[i][1];\n const newSettingsWidth = settingsWidth + w;\n if (newSettingsWidth > width) {\n settingsWidth += overflowWidth;\n break;\n }\n settingsWidth = newSettingsWidth;\n }\n\n let j = i;\n for (; j > 0; j--) {\n if (settingsWidth <= width) break;\n const w = docked[j - 1][1];\n settingsWidth -= w;\n }\n\n const overflowItems = new Array<string>();\n for (i = j; i < docked.length; i++) {\n overflowItems.push(docked[i][0]);\n }\n return overflowItems;\n}\n\nfunction isItemInOverflow(\n id: string,\n overflowItemIds: ReadonlyArray<string> | undefined\n) {\n if (!overflowItemIds || 0 === overflowItemIds.length) return false;\n return !!overflowItemIds.find((value) => value === id);\n}\n\n/** Properties for the [[StatusBarComposer]] React components\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof StatusBarComposer>`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface StatusBarComposerProps extends CommonProps {\n /** Status Bar items */\n items: StatusBarItem[];\n\n /** CSS class name override for the overall Status Bar */\n mainClassName?: string;\n /** CSS class name override for the left section */\n leftClassName?: string;\n /** CSS class name override for the center section */\n centerClassName?: string;\n /** CSS class name override for the right section */\n rightClassName?: string;\n}\n\n/** Component to load components into the [[StatusBar]].\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function StatusBarComposer(props: StatusBarComposerProps) {\n const {\n className,\n style,\n items,\n mainClassName,\n leftClassName,\n centerClassName,\n rightClassName,\n } = props;\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n () => new StatusBarItemsManager(items)\n );\n const containerWidth = React.useRef<number | undefined>(undefined);\n\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setDefaultItemsManager(new StatusBarItemsManager(items));\n }\n }, [items]);\n // eslint-disable-next-line deprecation/deprecation\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\n // eslint-disable-next-line deprecation/deprecation\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\n const addonSyncIdsOfInterest = React.useMemo(\n () => StatusBarItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const entryWidths = React.useRef(new Map<string, number | undefined>());\n const overflowWidth = React.useRef<number | undefined>(undefined);\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\n const statusBarItems = React.useMemo(() => {\n const combinedItems = combineItems(defaultItems, addonItems);\n return sortItems(combinedItems);\n }, [defaultItems, addonItems]);\n const notOverflown = React.useMemo(() => {\n return statusBarItems\n .filter((item) => !isItemInOverflow(item.id, overflown))\n .map((item) => item.id);\n }, [overflown, statusBarItems]);\n\n const calculateOverflow = React.useCallback(() => {\n const widths = verifiedMapEntries(entryWidths.current);\n\n if (\n containerWidth.current === undefined ||\n widths === undefined ||\n overflowWidth.current === undefined\n ) {\n setOverflown(new Array<string>());\n return;\n }\n\n // Calculate overflow.\n const newOverflown = getItemToPlaceInOverflow(\n containerWidth.current,\n [...widths.entries()],\n overflowWidth.current\n );\n if (!eqlOverflown(overflown, newOverflown)) {\n setOverflown(newOverflown);\n }\n }, [overflown]);\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowWidth.current !== w;\n overflowWidth.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = entryWidths.current.get(key);\n if (oldW === undefined || Math.abs(oldW - w) > 2) {\n entryWidths.current.set(key, w);\n if (oldW === undefined) {\n const widths = verifiedMapEntries(entryWidths.current);\n if (widths !== undefined)\n entryWidths.current = sortWidths(widths, statusBarItems);\n }\n\n calculateOverflow();\n }\n },\n [calculateOverflow, statusBarItems]\n );\n\n const getSectionName = (section: StatusBarSection) => {\n switch (section) {\n case StatusBarSection.Center:\n case StatusBarSection.Stage:\n return \"status-bar-center\";\n case StatusBarSection.Context:\n return \"status-bar-right-start\";\n case StatusBarSection.Right:\n case StatusBarSection.Selection:\n return \"status-bar-right-end\";\n case StatusBarSection.Left:\n case StatusBarSection.Message:\n return \"status-bar-left\";\n }\n };\n\n /** generate a wrapped status bar entry that will report its size. */\n const getComponent = React.useCallback(\n (\n item: StatusBarItem,\n key: string,\n itemPriority: number,\n section: StatusBarSection\n ): React.ReactNode => {\n const providerId = isProviderItem(item) ? item.providerId : undefined;\n return (\n <DockedStatusBarEntry\n key={key}\n entryKey={key}\n getOnResize={handleEntryResize}\n >\n <DockedStatusBarItem\n key={key}\n itemId={item.id}\n itemPriority={itemPriority}\n providerId={providerId}\n section={getSectionName(section)}\n >\n <StatusBarCornerComponentContext.Provider\n value={\n key === notOverflown[0]\n ? \"left-corner\"\n : (key === notOverflown[notOverflown.length - 1] &&\n overflown?.length === 0) ||\n isItemInOverflow(key, overflown)\n ? \"right-corner\"\n : undefined\n }\n >\n {isStatusBarCustomItem(item) && item.content}\n {isStatusBarActionItem(item) && (\n <StatusBarActionItemComponent {...item} />\n )}\n {isStatusBarLabelItem(item) && (\n <StatusBarLabelItemComponent {...item} />\n )}\n </StatusBarCornerComponentContext.Provider>\n </DockedStatusBarItem>\n </DockedStatusBarEntry>\n );\n },\n [handleEntryResize, notOverflown, overflown]\n );\n\n const getSectionItems = React.useCallback(\n (section: StatusBarSection): React.ReactNode[] => {\n const sectionItems = statusBarItems\n .filter(\n (item) =>\n item.section.valueOf() === section.valueOf() &&\n !isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort((a, b) => a.itemPriority - b.itemPriority);\n\n return sectionItems.map((sectionItem) => (\n <React.Fragment key={sectionItem.id}>\n {getComponent(\n sectionItem,\n sectionItem.id,\n sectionItem.itemPriority,\n sectionItem.section\n )}\n </React.Fragment>\n ));\n },\n [statusBarItems, overflown, getComponent]\n );\n\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\n const itemsInOverflow = statusBarItems\n .filter(\n (item) =>\n isItemInOverflow(item.id, overflown) &&\n !ConditionalBooleanValue.getValue(item.isHidden)\n )\n .sort(\n (a, b) =>\n getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)\n )\n .reverse();\n\n return itemsInOverflow.map((item) => (\n <React.Fragment key={item.id}>\n {getComponent(item, item.id, item.itemPriority, item.section)}\n </React.Fragment>\n ));\n }, [statusBarItems, overflown, getComponent]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n if (\n undefined === containerWidth.current ||\n Math.abs(containerWidth.current - w) > 2\n ) {\n containerWidth.current = w;\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const resizeObserverRef = useResizeObserver(handleContainerResize);\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\n const refs = useRefs(containerRef, resizeObserverRef);\n\n const leftItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Left),\n [getSectionItems]\n );\n const centerItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Center),\n [getSectionItems]\n );\n const rightItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Right),\n [getSectionItems]\n );\n const contextItems = React.useMemo(\n () => getSectionItems(StatusBarSection.Context),\n [getSectionItems]\n );\n const overflowItems = React.useMemo(\n () => getOverflowItems(),\n [getOverflowItems]\n );\n\n const containerClassName = classnames(\"uifw-statusBar-docked\", className);\n\n return (\n <div\n className={containerClassName}\n ref={refs}\n style={style}\n role=\"presentation\"\n >\n <StatusBarSpaceBetween className={mainClassName}>\n <StatusBarLeftSection className={leftClassName}>\n {leftItems}\n </StatusBarLeftSection>\n <StatusBarCenterSection className={centerClassName}>\n {centerItems}\n {contextItems}\n </StatusBarCenterSection>\n <StatusBarRightSection className={rightClassName}>\n {rightItems}\n {(!overflown || overflown.length > 0) && (\n <StatusBarOverflow\n onResize={handleOverflowResize}\n overflowItems={overflowItems}\n />\n )}\n </StatusBarRightSection>\n </StatusBarSpaceBetween>\n </div>\n );\n}\n"]}
@@ -4,6 +4,7 @@
4
4
  import type { StatusBarItem } from "./StatusBarItem";
5
5
  import type { StatusBarItemsManager } from "./StatusBarItemsManager";
6
6
  /** Hook that returns items from [[StatusBarItemsManager]].
7
+ * @deprecated in 4.17.0. Uses an internal `StatusBarItemsManager` API. Use {@link StatusBarComposer} instead.
7
8
  * @public
8
9
  */
9
10
  export declare const useDefaultStatusBarItems: (manager: StatusBarItemsManager) => readonly StatusBarItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"useDefaultStatusBarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useDefaultStatusBarItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,wBAAwB,YAC1B,qBAAqB,KAC7B,SAAS,aAAa,EAexB,CAAC"}
1
+ {"version":3,"file":"useDefaultStatusBarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useDefaultStatusBarItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,YAC1B,qBAAqB,KAC7B,SAAS,aAAa,EAexB,CAAC"}
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.useDefaultStatusBarItems = void 0;
11
11
  const React = require("react");
12
12
  /** Hook that returns items from [[StatusBarItemsManager]].
13
+ * @deprecated in 4.17.0. Uses an internal `StatusBarItemsManager` API. Use {@link StatusBarComposer} instead.
13
14
  * @public
14
15
  */
15
16
  const useDefaultStatusBarItems = (manager) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useDefaultStatusBarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useDefaultStatusBarItems.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAI/B;;GAEG;AACI,MAAM,wBAAwB,GAAG,CACtC,OAA8B,EACJ,EAAE;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,cAAc,CAAC,OAAO;YAAE,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;aACtD,CAAC;YACJ,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,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;AAjBW,QAAA,wBAAwB,4BAiBnC","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 type { StatusBarItem } from \"./StatusBarItem\";\nimport type { StatusBarItemsManager } from \"./StatusBarItemsManager\";\n\n/** Hook that returns items from [[StatusBarItemsManager]].\n * @public\n */\nexport const useDefaultStatusBarItems = (\n manager: StatusBarItemsManager\n): readonly StatusBarItem[] => {\n const [items, setItems] = React.useState(manager.items);\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setItems(manager.items);\n }\n }, [manager]);\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":"useDefaultStatusBarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useDefaultStatusBarItems.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAI/B;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CACtC,OAA8B,EACJ,EAAE;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,cAAc,CAAC,OAAO;YAAE,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;aACtD,CAAC;YACJ,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,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;AAjBW,QAAA,wBAAwB,4BAiBnC","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 type { StatusBarItem } from \"./StatusBarItem\";\nimport type { StatusBarItemsManager } from \"./StatusBarItemsManager\";\n\n/** Hook that returns items from [[StatusBarItemsManager]].\n * @deprecated in 4.17.0. Uses an internal `StatusBarItemsManager` API. Use {@link StatusBarComposer} instead.\n * @public\n */\nexport const useDefaultStatusBarItems = (\n manager: StatusBarItemsManager\n): readonly StatusBarItem[] => {\n const [items, setItems] = React.useState(manager.items);\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setItems(manager.items);\n }\n }, [manager]);\n React.useEffect(() => {\n return manager.onItemsChanged.addListener((args) => {\n setItems(args.items);\n });\n }, [manager]);\n return items;\n};\n"]}
@@ -4,6 +4,7 @@
4
4
  import type { StatusBarItem } from "./StatusBarItem";
5
5
  import type { StatusBarItemsManager } from "./StatusBarItemsManager";
6
6
  /** Hook that returns items from [[StatusBarItemsManager]].
7
+ * @deprecated in 4.17.0. Uses an internal `StatusBarItemsManager` API. Use {@link StatusBarComposer} instead.
7
8
  * @public
8
9
  */
9
10
  export declare const useUiItemsProviderStatusBarItems: (manager: StatusBarItemsManager) => readonly StatusBarItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"useUiItemsProviderStatusBarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useUiItemsProviderStatusBarItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,gCAAgC,YAClC,qBAAqB,KAC7B,SAAS,aAAa,EAkCxB,CAAC"}
1
+ {"version":3,"file":"useUiItemsProviderStatusBarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useUiItemsProviderStatusBarItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGrE;;;GAGG;AACH,eAAO,MAAM,gCAAgC,YAClC,qBAAqB,KAC7B,SAAS,aAAa,EAkCxB,CAAC"}
@@ -14,6 +14,7 @@ const useAvailableUiItemsProviders_1 = require("../hooks/useAvailableUiItemsProv
14
14
  const UiFramework_1 = require("../UiFramework");
15
15
  const UiItemsManager_1 = require("../ui-items-provider/UiItemsManager");
16
16
  /** Hook that returns items from [[StatusBarItemsManager]].
17
+ * @deprecated in 4.17.0. Uses an internal `StatusBarItemsManager` API. Use {@link StatusBarComposer} instead.
17
18
  * @public
18
19
  */
19
20
  const useUiItemsProviderStatusBarItems = (manager) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useUiItemsProviderStatusBarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useUiItemsProviderStatusBarItems.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,gEAA6D;AAC7D,wFAAqF;AACrF,gDAA6C;AAC7C,wEAAqE;AAIrE;;GAEG;AACI,MAAM,gCAAgC,GAAG,CAC9C,OAA8B,EACJ,EAAE;IAC5B,MAAM,iBAAiB,GAAG,IAAA,2DAA4B,GAAE,CAAC;IACzD,MAAM,OAAO,GAAG,IAAA,mCAAgB,GAAE,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,wHAAwH;IACxH,2DAA2D;IAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,IACE,YAAY,CAAC,OAAO,KAAK,WAAW;YACpC,eAAe,CAAC,OAAO,KAAK,OAAO,EACnC,CAAC;YACD,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;YAClC,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClE,IAAI,aAAa,EAAE,CAAC;gBAClB,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;gBACnC,MAAM,cAAc,GAAG,+BAAc,CAAC,iBAAiB,CACrD,OAAO,EACP,aAAa,CAAC,KAAK,CACpB,CAAC;gBACF,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,uFAAuF;IACvF,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;AApCW,QAAA,gCAAgC,oCAoC3C","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 { useActiveStageId } from \"../hooks/useActiveStageId\";\nimport { useAvailableUiItemsProviders } from \"../hooks/useAvailableUiItemsProviders\";\nimport { UiFramework } from \"../UiFramework\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport type { StatusBarItem } from \"./StatusBarItem\";\nimport type { StatusBarItemsManager } from \"./StatusBarItemsManager\";\n\n/** Hook that returns items from [[StatusBarItemsManager]].\n * @public\n */\nexport const useUiItemsProviderStatusBarItems = (\n manager: StatusBarItemsManager\n): readonly StatusBarItem[] => {\n const uiItemProviderIds = useAvailableUiItemsProviders();\n const stageId = useActiveStageId();\n const [items, setItems] = React.useState(manager.items);\n const providersRef = React.useRef(\"\");\n const currentStageRef = 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 (\n providersRef.current !== uiProviders ||\n currentStageRef.current !== stageId\n ) {\n currentStageRef.current = stageId;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef) {\n providersRef.current = uiProviders;\n const statusBarItems = UiItemsManager.getStatusBarItems(\n stageId,\n frontstageDef.usage\n );\n manager.loadItems(statusBarItems);\n setItems(manager.items);\n }\n }\n }, [manager, uiItemProviderIds, stageId]);\n // handle item changes caused by setter calls to UiFramework.addonStatusBarItemsManager\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":"useUiItemsProviderStatusBarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useUiItemsProviderStatusBarItems.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,gEAA6D;AAC7D,wFAAqF;AACrF,gDAA6C;AAC7C,wEAAqE;AAKrE;;;GAGG;AACI,MAAM,gCAAgC,GAAG,CAC9C,OAA8B,EACJ,EAAE;IAC5B,MAAM,iBAAiB,GAAG,IAAA,2DAA4B,GAAE,CAAC;IACzD,MAAM,OAAO,GAAG,IAAA,mCAAgB,GAAE,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,wHAAwH;IACxH,2DAA2D;IAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,IACE,YAAY,CAAC,OAAO,KAAK,WAAW;YACpC,eAAe,CAAC,OAAO,KAAK,OAAO,EACnC,CAAC;YACD,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;YAClC,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClE,IAAI,aAAa,EAAE,CAAC;gBAClB,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;gBACnC,MAAM,cAAc,GAAG,+BAAc,CAAC,iBAAiB,CACrD,OAAO,EACP,aAAa,CAAC,KAAK,CACpB,CAAC;gBACF,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,uFAAuF;IACvF,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;AApCW,QAAA,gCAAgC,oCAoC3C","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 { useActiveStageId } from \"../hooks/useActiveStageId\";\nimport { useAvailableUiItemsProviders } from \"../hooks/useAvailableUiItemsProviders\";\nimport { UiFramework } from \"../UiFramework\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport type { StatusBarItem } from \"./StatusBarItem\";\nimport type { StatusBarItemsManager } from \"./StatusBarItemsManager\";\nimport type { StatusBarComposer } from \"./StatusBarComposer\";\n\n/** Hook that returns items from [[StatusBarItemsManager]].\n * @deprecated in 4.17.0. Uses an internal `StatusBarItemsManager` API. Use {@link StatusBarComposer} instead.\n * @public\n */\nexport const useUiItemsProviderStatusBarItems = (\n manager: StatusBarItemsManager\n): readonly StatusBarItem[] => {\n const uiItemProviderIds = useAvailableUiItemsProviders();\n const stageId = useActiveStageId();\n const [items, setItems] = React.useState(manager.items);\n const providersRef = React.useRef(\"\");\n const currentStageRef = 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 (\n providersRef.current !== uiProviders ||\n currentStageRef.current !== stageId\n ) {\n currentStageRef.current = stageId;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef) {\n providersRef.current = uiProviders;\n const statusBarItems = UiItemsManager.getStatusBarItems(\n stageId,\n frontstageDef.usage\n );\n manager.loadItems(statusBarItems);\n setItems(manager.items);\n }\n }\n }, [manager, uiItemProviderIds, stageId]);\n // handle item changes caused by setter calls to UiFramework.addonStatusBarItemsManager\n React.useEffect(() => {\n return manager.onItemsChanged.addListener((args) => {\n setItems(args.items);\n });\n }, [manager]);\n return items;\n};\n"]}