@itwin/appui-react 3.6.0-dev.59 → 3.6.0-dev.62

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 (232) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  3. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/backstage/BackstageComposer.js +1 -0
  5. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  6. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -1
  7. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  8. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +43 -0
  9. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -0
  10. package/lib/cjs/appui-react/backstage/BackstageItem.js +37 -0
  11. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -0
  12. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +7 -35
  13. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +10 -24
  15. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  16. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  17. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +4 -2
  19. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  20. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts +15 -0
  21. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts.map +1 -0
  22. package/lib/cjs/appui-react/frontstage/StageUsage.js +17 -0
  23. package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -0
  24. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  25. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js +4 -4
  26. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  27. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts +13 -0
  28. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -0
  29. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js +16 -0
  30. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -0
  31. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts +13 -0
  32. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -0
  33. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js +16 -0
  34. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -0
  35. package/lib/cjs/appui-react/statusbar/LabelIndicator.js +2 -1
  36. package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
  37. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -0
  39. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  40. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +52 -2
  41. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/statusbar/StatusBarItem.js +33 -2
  43. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  44. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts +23 -4
  45. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js +31 -1
  47. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  48. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  49. package/lib/cjs/appui-react/statusfields/Indicator.js +2 -1
  50. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  51. package/lib/cjs/appui-react/toolbar/GroupButtonItem.d.ts +1 -1
  52. package/lib/cjs/appui-react/toolbar/GroupButtonItem.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js +4 -4
  54. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  55. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +1 -1
  56. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  57. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +53 -0
  58. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -0
  59. package/lib/cjs/appui-react/toolbar/ToolbarItem.js +41 -0
  60. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -0
  61. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts +14 -0
  62. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -0
  63. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js +28 -0
  64. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -0
  65. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +11 -0
  66. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -0
  67. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +20 -0
  68. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -0
  69. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts +9 -0
  70. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -0
  71. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js +10 -0
  72. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -0
  73. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  75. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  76. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  77. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  78. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
  79. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  80. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +2 -2
  81. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  82. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  83. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +1 -0
  84. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  85. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  86. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  87. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +24 -0
  88. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -0
  89. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +19 -0
  90. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -0
  91. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +9 -0
  92. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -0
  93. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js +10 -0
  94. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -0
  95. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  96. package/lib/cjs/appui-react/widget-panels/Content.js +1 -1
  97. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  98. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  99. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  100. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  101. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  102. package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
  103. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  104. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -0
  105. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  106. package/lib/cjs/appui-react/widgets/WidgetProps.d.ts +7 -0
  107. package/lib/cjs/appui-react/widgets/WidgetProps.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/widgets/WidgetProps.js.map +1 -1
  109. package/lib/cjs/appui-react/widgets/WidgetState.d.ts +13 -0
  110. package/lib/cjs/appui-react/widgets/WidgetState.d.ts.map +1 -0
  111. package/lib/cjs/appui-react/widgets/WidgetState.js +16 -0
  112. package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -0
  113. package/lib/cjs/appui-react.d.ts +16 -5
  114. package/lib/cjs/appui-react.d.ts.map +1 -1
  115. package/lib/cjs/appui-react.js +16 -5
  116. package/lib/cjs/appui-react.js.map +1 -1
  117. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  118. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  119. package/lib/esm/appui-react/backstage/BackstageComposer.js +1 -0
  120. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  121. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -1
  122. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  123. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +43 -0
  124. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -0
  125. package/lib/esm/appui-react/backstage/BackstageItem.js +32 -0
  126. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -0
  127. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +7 -35
  128. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
  129. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +7 -21
  130. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  131. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  132. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  133. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +4 -2
  134. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  135. package/lib/esm/appui-react/frontstage/StageUsage.d.ts +15 -0
  136. package/lib/esm/appui-react/frontstage/StageUsage.d.ts.map +1 -0
  137. package/lib/esm/appui-react/frontstage/StageUsage.js +14 -0
  138. package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -0
  139. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  140. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js +4 -4
  141. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  142. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts +13 -0
  143. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -0
  144. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js +13 -0
  145. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -0
  146. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts +13 -0
  147. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -0
  148. package/lib/esm/appui-react/stagepanels/StagePanelSection.js +13 -0
  149. package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -0
  150. package/lib/esm/appui-react/statusbar/LabelIndicator.js +2 -1
  151. package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
  152. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  153. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -0
  154. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  155. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +52 -2
  156. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  157. package/lib/esm/appui-react/statusbar/StatusBarItem.js +29 -1
  158. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  159. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts +23 -4
  160. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  161. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js +31 -1
  162. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  163. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  164. package/lib/esm/appui-react/statusfields/Indicator.js +2 -1
  165. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  166. package/lib/esm/appui-react/toolbar/GroupButtonItem.d.ts +1 -1
  167. package/lib/esm/appui-react/toolbar/GroupButtonItem.d.ts.map +1 -1
  168. package/lib/esm/appui-react/toolbar/GroupButtonItem.js +2 -2
  169. package/lib/esm/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  170. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +1 -1
  171. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  172. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +53 -0
  173. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -0
  174. package/lib/esm/appui-react/toolbar/ToolbarItem.js +35 -0
  175. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -0
  176. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts +14 -0
  177. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -0
  178. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js +25 -0
  179. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -0
  180. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +11 -0
  181. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -0
  182. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +16 -0
  183. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -0
  184. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts +9 -0
  185. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -0
  186. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js +9 -0
  187. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -0
  188. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  189. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  190. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  191. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  192. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  193. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
  194. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  195. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +2 -2
  196. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  197. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  198. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +1 -0
  199. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  200. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  201. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  202. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +24 -0
  203. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -0
  204. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +15 -0
  205. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -0
  206. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +9 -0
  207. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -0
  208. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js +9 -0
  209. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -0
  210. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  211. package/lib/esm/appui-react/widget-panels/Content.js +1 -1
  212. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  213. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  214. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  215. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  216. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  217. package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
  218. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  219. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -0
  220. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  221. package/lib/esm/appui-react/widgets/WidgetProps.d.ts +7 -0
  222. package/lib/esm/appui-react/widgets/WidgetProps.d.ts.map +1 -1
  223. package/lib/esm/appui-react/widgets/WidgetProps.js.map +1 -1
  224. package/lib/esm/appui-react/widgets/WidgetState.d.ts +13 -0
  225. package/lib/esm/appui-react/widgets/WidgetState.d.ts.map +1 -0
  226. package/lib/esm/appui-react/widgets/WidgetState.js +13 -0
  227. package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -0
  228. package/lib/esm/appui-react.d.ts +16 -5
  229. package/lib/esm/appui-react.d.ts.map +1 -1
  230. package/lib/esm/appui-react.js +16 -5
  231. package/lib/esm/appui-react.js.map +1 -1
  232. package/package.json +43 -33
@@ -2,16 +2,66 @@
2
2
  * @module StatusBar
3
3
  */
4
4
  import * as React from "react";
5
- import { AbstractStatusBarCustomItem, CommonStatusBarItem } from "@itwin/appui-abstract";
5
+ import { AbstractStatusBarActionItem, AbstractStatusBarCustomItem, AbstractStatusBarItem, AbstractStatusBarLabelItem, CommonStatusBarItem as UIA_CommonStatusBarItem, StatusBarLabelSide as UIA_StatusBarLabelSide, StatusBarSection as UIA_StatusBarSection } from "@itwin/appui-abstract";
6
+ /** Status bar Groups/Sections from Left to Right
7
+ * @beta
8
+ */
9
+ export declare type StatusBarSection = UIA_StatusBarSection;
10
+ /** Status bar Groups/Sections from Left to Right
11
+ * @beta
12
+ */
13
+ export declare const StatusBarSection: typeof UIA_StatusBarSection;
14
+ /** Defines which side of Icon where label is placed
15
+ * @beta
16
+ */
17
+ export declare type StatusBarLabelSide = UIA_StatusBarLabelSide;
18
+ /** Defines which side of Icon where label is placed
19
+ * @beta
20
+ */
21
+ export declare const StatusBarLabelSide: typeof UIA_StatusBarLabelSide;
22
+ /** Describes the data needed to insert a button into the status bar.
23
+ * @beta
24
+ */
25
+ export declare type CommonStatusBarItem = AbstractStatusBarItem;
26
+ /** Describes the data needed to insert an action item into the status bar.
27
+ * @beta
28
+ */
29
+ export declare type StatusBarActionItem = AbstractStatusBarActionItem;
30
+ /** Describes the data needed to insert a label item with an optional icon into the status bar.
31
+ * @beta
32
+ */
33
+ export declare type StatusBarLabelItem = AbstractStatusBarLabelItem;
6
34
  /** Describes the data needed to insert an item into the StatusBar.
35
+ * @deprecated in 3.6. Use [[StatusBarCustomItem]] instead.
7
36
  * @public
8
37
  */
9
38
  export interface StatusBarItem extends AbstractStatusBarCustomItem {
10
39
  /** React node for the StatusBar item. */
11
40
  readonly reactNode: React.ReactNode;
12
41
  }
42
+ /** Describes the data needed to insert an item into the StatusBar.
43
+ * @beta
44
+ */
45
+ export declare type StatusBarCustomItem = StatusBarItem;
46
+ /** Describes the data needed to insert a button into the status bar.
47
+ * @beta
48
+ */
49
+ export declare type AnyStatusBarItem = UIA_CommonStatusBarItem;
50
+ /** StatusBarActionItem type guard.
51
+ * @beta
52
+ */
53
+ export declare function isStatusBarActionItem(item: AnyStatusBarItem): item is StatusBarActionItem;
54
+ /** StatusBarLabelItem type guard.
55
+ * @beta
56
+ */
57
+ export declare function isStatusBarLabelItem(item: AnyStatusBarItem): item is StatusBarLabelItem;
58
+ /** StatusBarCustomItem type guard.
59
+ * @beta
60
+ */
61
+ export declare function isStatusBarCustomItem(item: AnyStatusBarItem): item is StatusBarCustomItem;
13
62
  /** StatusBarItem type guard.
63
+ * @deprecated in 3.6. Use [[isStatusBarCustomItem]] instead.
14
64
  * @public
15
65
  */
16
- export declare const isStatusBarItem: (item: CommonStatusBarItem) => item is StatusBarItem;
66
+ export declare const isStatusBarItem: (item: UIA_CommonStatusBarItem) => item is StatusBarItem;
17
67
  //# sourceMappingURL=StatusBarItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,2BAA2B;IAChE,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,mBAAmB,0BAExD,CAAC"}
1
+ {"version":3,"file":"StatusBarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAI1B,mBAAmB,IAAI,uBAAuB,EAC9C,kBAAkB,IAAI,sBAAsB,EAC5C,gBAAgB,IAAI,oBAAoB,EACzC,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,oBAAY,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,6BAAuB,CAAC;AAErD;;GAEG;AACH,oBAAY,kBAAkB,GAAG,sBAAsB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB,+BAAyB,CAAC;AAEzD;;GAEG;AACH,oBAAY,mBAAmB,GAAG,qBAAqB,CAAC;AAExD;;GAEG;AACH,oBAAY,mBAAmB,GAAG,2BAA2B,CAAC;AAE9D;;GAEG;AACH,oBAAY,kBAAkB,GAAG,0BAA0B,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,2BAA2B;IAChE,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,oBAAY,mBAAmB,GAAG,aAAa,CAAC;AAEhD;;GAEG;AAEH,oBAAY,gBAAgB,GAAG,uBAAuB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,mBAAmB,CAEzF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,kBAAkB,CAEvF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,mBAAmB,CAEzF;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,SAAU,uBAAuB,0BAE5D,CAAC"}
@@ -7,12 +7,43 @@
7
7
  * @module StatusBar
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.isStatusBarItem = void 0;
10
+ exports.isStatusBarItem = exports.isStatusBarCustomItem = exports.isStatusBarLabelItem = exports.isStatusBarActionItem = exports.StatusBarLabelSide = exports.StatusBarSection = void 0;
11
+ const appui_abstract_1 = require("@itwin/appui-abstract");
12
+ /** Status bar Groups/Sections from Left to Right
13
+ * @beta
14
+ */
15
+ exports.StatusBarSection = appui_abstract_1.StatusBarSection; // eslint-disable-line @typescript-eslint/no-redeclare, deprecation/deprecation
16
+ /** Defines which side of Icon where label is placed
17
+ * @beta
18
+ */
19
+ exports.StatusBarLabelSide = appui_abstract_1.StatusBarLabelSide; // eslint-disable-line @typescript-eslint/no-redeclare, deprecation/deprecation
20
+ /** StatusBarActionItem type guard.
21
+ * @beta
22
+ */
23
+ function isStatusBarActionItem(item) {
24
+ return (0, appui_abstract_1.isAbstractStatusBarActionItem)(item); // eslint-disable-line deprecation/deprecation
25
+ }
26
+ exports.isStatusBarActionItem = isStatusBarActionItem;
27
+ /** StatusBarLabelItem type guard.
28
+ * @beta
29
+ */
30
+ function isStatusBarLabelItem(item) {
31
+ return (0, appui_abstract_1.isAbstractStatusBarLabelItem)(item); // eslint-disable-line deprecation/deprecation
32
+ }
33
+ exports.isStatusBarLabelItem = isStatusBarLabelItem;
34
+ /** StatusBarCustomItem type guard.
35
+ * @beta
36
+ */
37
+ function isStatusBarCustomItem(item) {
38
+ return (0, exports.isStatusBarItem)(item); // eslint-disable-line deprecation/deprecation
39
+ }
40
+ exports.isStatusBarCustomItem = isStatusBarCustomItem;
11
41
  /** StatusBarItem type guard.
42
+ * @deprecated in 3.6. Use [[isStatusBarCustomItem]] instead.
12
43
  * @public
13
44
  */
14
45
  const isStatusBarItem = (item) => {
15
- return (!!item.isCustom) && ("reactNode" in item);
46
+ return (0, appui_abstract_1.isAbstractStatusBarCustomItem)(item) && ("reactNode" in item); // eslint-disable-line deprecation/deprecation
16
47
  };
17
48
  exports.isStatusBarItem = isStatusBarItem;
18
49
  //# sourceMappingURL=StatusBarItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAaH;;GAEG;AACI,MAAM,eAAe,GAAG,CAAC,IAAyB,EAAyB,EAAE;IAClF,OAAO,CAAC,CAAC,CAAE,IAAoC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;AACrF,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { AbstractStatusBarCustomItem, CommonStatusBarItem } from \"@itwin/appui-abstract\";\r\n\r\n/** Describes the data needed to insert an item into the StatusBar.\r\n * @public\r\n */\r\nexport interface StatusBarItem extends AbstractStatusBarCustomItem {\r\n /** React node for the StatusBar item. */\r\n readonly reactNode: React.ReactNode;\r\n}\r\n\r\n/** StatusBarItem type guard.\r\n * @public\r\n */\r\nexport const isStatusBarItem = (item: CommonStatusBarItem): item is StatusBarItem => {\r\n return (!!(item as AbstractStatusBarCustomItem).isCustom) && (\"reactNode\" in item);\r\n};\r\n"]}
1
+ {"version":3,"file":"StatusBarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0DAW+B;AAO/B;;GAEG;AACU,QAAA,gBAAgB,GAAG,iCAAoB,CAAC,CAAC,+EAA+E;AAOrI;;GAEG;AACU,QAAA,kBAAkB,GAAG,mCAAsB,CAAC,CAAC,+EAA+E;AAqCzI;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAsB;IAC1D,OAAO,IAAA,8CAA6B,EAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C;AAC5F,CAAC;AAFD,sDAEC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAsB;IACzD,OAAO,IAAA,6CAA4B,EAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C;AAC3F,CAAC;AAFD,oDAEC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAsB;IAC1D,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C;AAC9E,CAAC;AAFD,sDAEC;AAED;;;GAGG;AACI,MAAM,eAAe,GAAG,CAAC,IAA6B,EAAyB,EAAE;IACtF,OAAO,IAAA,8CAA6B,EAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,8CAA8C;AACrH,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n AbstractStatusBarActionItem,\r\n AbstractStatusBarCustomItem,\r\n AbstractStatusBarItem,\r\n AbstractStatusBarLabelItem,\r\n isAbstractStatusBarActionItem,\r\n isAbstractStatusBarCustomItem,\r\n isAbstractStatusBarLabelItem,\r\n CommonStatusBarItem as UIA_CommonStatusBarItem,\r\n StatusBarLabelSide as UIA_StatusBarLabelSide,\r\n StatusBarSection as UIA_StatusBarSection,\r\n} from \"@itwin/appui-abstract\";\r\n\r\n/** Status bar Groups/Sections from Left to Right\r\n * @beta\r\n */\r\nexport type StatusBarSection = UIA_StatusBarSection; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Status bar Groups/Sections from Left to Right\r\n * @beta\r\n */\r\nexport const StatusBarSection = UIA_StatusBarSection; // eslint-disable-line @typescript-eslint/no-redeclare, deprecation/deprecation\r\n\r\n/** Defines which side of Icon where label is placed\r\n * @beta\r\n */\r\nexport type StatusBarLabelSide = UIA_StatusBarLabelSide; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Defines which side of Icon where label is placed\r\n * @beta\r\n */\r\nexport const StatusBarLabelSide = UIA_StatusBarLabelSide; // eslint-disable-line @typescript-eslint/no-redeclare, deprecation/deprecation\r\n\r\n/** Describes the data needed to insert a button into the status bar.\r\n * @beta\r\n */\r\nexport type CommonStatusBarItem = AbstractStatusBarItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert an action item into the status bar.\r\n * @beta\r\n */\r\nexport type StatusBarActionItem = AbstractStatusBarActionItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert a label item with an optional icon into the status bar.\r\n * @beta\r\n */\r\nexport type StatusBarLabelItem = AbstractStatusBarLabelItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert an item into the StatusBar.\r\n * @deprecated in 3.6. Use [[StatusBarCustomItem]] instead.\r\n * @public\r\n */\r\nexport interface StatusBarItem extends AbstractStatusBarCustomItem { // eslint-disable-line deprecation/deprecation\r\n /** React node for the StatusBar item. */\r\n readonly reactNode: React.ReactNode;\r\n}\r\n\r\n/** Describes the data needed to insert an item into the StatusBar.\r\n * @beta\r\n */\r\nexport type StatusBarCustomItem = StatusBarItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert a button into the status bar.\r\n * @beta\r\n */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport type AnyStatusBarItem = UIA_CommonStatusBarItem; // TODO: Rename to StatusBarItem.\r\n\r\n/** StatusBarActionItem type guard.\r\n * @beta\r\n */\r\nexport function isStatusBarActionItem(item: AnyStatusBarItem): item is StatusBarActionItem {\r\n return isAbstractStatusBarActionItem(item); // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** StatusBarLabelItem type guard.\r\n * @beta\r\n */\r\nexport function isStatusBarLabelItem(item: AnyStatusBarItem): item is StatusBarLabelItem {\r\n return isAbstractStatusBarLabelItem(item); // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** StatusBarCustomItem type guard.\r\n * @beta\r\n */\r\nexport function isStatusBarCustomItem(item: AnyStatusBarItem): item is StatusBarCustomItem {\r\n return isStatusBarItem(item); // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** StatusBarItem type guard.\r\n * @deprecated in 3.6. Use [[isStatusBarCustomItem]] instead.\r\n * @public\r\n */\r\nexport const isStatusBarItem = (item: UIA_CommonStatusBarItem): item is StatusBarItem => { // eslint-disable-line deprecation/deprecation\r\n return isAbstractStatusBarCustomItem(item) && (\"reactNode\" in item); // eslint-disable-line deprecation/deprecation\r\n};\r\n"]}
@@ -2,13 +2,32 @@
2
2
  * @module StatusBar
3
3
  */
4
4
  import * as React from "react";
5
- import { StatusBarSection } from "@itwin/appui-abstract";
6
- import { StatusBarItem } from "./StatusBarItem";
5
+ import { ConditionalStringValue, StatusBarSection as UIA_StatusBarSection } from "@itwin/appui-abstract";
6
+ import { StatusBarActionItem, StatusBarCustomItem, StatusBarItem, StatusBarLabelItem, StatusBarSection } from "./StatusBarItem";
7
7
  /** Utility methods for creating and maintaining StatusBar items.
8
8
  * @public
9
9
  */
10
10
  export declare class StatusBarItemUtilities {
11
- /** Creates a StatusBar item */
12
- static createStatusBarItem: (id: string, section: StatusBarSection, itemPriority: number, reactNode: React.ReactNode, itemProps?: Partial<StatusBarItem> | undefined) => StatusBarItem;
11
+ /** Creates a StatusBar item
12
+ * @deprecated Use [[StatusBarItemUtilities.createCustomItem]] instead.
13
+ */
14
+ static createStatusBarItem: (id: string, section: UIA_StatusBarSection, itemPriority: number, reactNode: React.ReactNode, itemProps?: Partial<StatusBarItem> | undefined) => StatusBarItem;
15
+ }
16
+ /** Helper class to create Abstract StatusBar Item definitions.
17
+ * @public
18
+ */
19
+ export declare namespace StatusBarItemUtilities {
20
+ /** Creates a StatusBar item to perform an action.
21
+ * @beta
22
+ */
23
+ function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<StatusBarActionItem>): StatusBarActionItem;
24
+ /** Creates a StatusBar item to display a label.
25
+ * @beta
26
+ */
27
+ function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, label: string | ConditionalStringValue, labelSide?: import("@itwin/appui-abstract").StatusBarLabelSide, overrides?: Partial<StatusBarLabelItem>): StatusBarLabelItem;
28
+ /** Creates a StatusBar item to display a custom content.
29
+ * @beta
30
+ */
31
+ function createCustomItem(id: string, section: StatusBarSection, itemPriority: number, reactNode: React.ReactNode, overrides?: Partial<StatusBarCustomItem>): StatusBarCustomItem;
13
32
  }
14
33
  //# sourceMappingURL=StatusBarItemUtilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,qBAAa,sBAAsB;IAEjC,+BAA+B;IAC/B,OAAc,mBAAmB,OAAQ,MAAM,WAAW,gBAAgB,gBAAgB,MAAM,aAAa,MAAM,SAAS,qDAAuC,aAAa,CAI7K;CAEJ"}
1
+ {"version":3,"file":"StatusBarItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkC,sBAAsB,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACzI,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAsB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEpJ;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,OAAc,mBAAmB,OAAQ,MAAM,WAAW,oBAAoB,gBAAgB,MAAM,aAAa,MAAM,SAAS,qDAAuC,aAAa,CAIjL;CACJ;AAED;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,sBAAsB,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAEjQ;IAED;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB,EAAE,SAAS,qDAA2B,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAE7Q;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAEvL;CACF"}
@@ -8,16 +8,46 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.StatusBarItemUtilities = void 0;
11
+ const appui_abstract_1 = require("@itwin/appui-abstract");
12
+ const StatusBarItem_1 = require("./StatusBarItem");
11
13
  /** Utility methods for creating and maintaining StatusBar items.
12
14
  * @public
13
15
  */
14
16
  class StatusBarItemUtilities {
15
17
  }
16
18
  exports.StatusBarItemUtilities = StatusBarItemUtilities;
17
- /** Creates a StatusBar item */
19
+ /** Creates a StatusBar item
20
+ * @deprecated Use [[StatusBarItemUtilities.createCustomItem]] instead.
21
+ */
18
22
  StatusBarItemUtilities.createStatusBarItem = (id, section, itemPriority, reactNode, itemProps) => ({
19
23
  id, section, itemPriority, reactNode,
20
24
  isCustom: true,
21
25
  ...itemProps ? itemProps : {},
22
26
  });
27
+ /** Helper class to create Abstract StatusBar Item definitions.
28
+ * @public
29
+ */
30
+ (function (StatusBarItemUtilities) {
31
+ /** Creates a StatusBar item to perform an action.
32
+ * @beta
33
+ */
34
+ function createActionItem(id, section, itemPriority, icon, tooltip, execute, overrides) {
35
+ return appui_abstract_1.AbstractStatusBarItemUtilities.createActionItem(id, section, itemPriority, icon, tooltip, execute, overrides); // eslint-disable-line deprecation/deprecation
36
+ }
37
+ StatusBarItemUtilities.createActionItem = createActionItem;
38
+ /** Creates a StatusBar item to display a label.
39
+ * @beta
40
+ */
41
+ function createLabelItem(id, section, itemPriority, icon, label, labelSide = StatusBarItem_1.StatusBarLabelSide.Right, overrides) {
42
+ return appui_abstract_1.AbstractStatusBarItemUtilities.createLabelItem(id, section, itemPriority, icon, label, labelSide, overrides); // eslint-disable-line deprecation/deprecation
43
+ }
44
+ StatusBarItemUtilities.createLabelItem = createLabelItem;
45
+ /** Creates a StatusBar item to display a custom content.
46
+ * @beta
47
+ */
48
+ function createCustomItem(id, section, itemPriority, reactNode, overrides) {
49
+ return StatusBarItemUtilities.createStatusBarItem(id, section, itemPriority, reactNode, overrides); // eslint-disable-line deprecation/deprecation
50
+ }
51
+ StatusBarItemUtilities.createCustomItem = createCustomItem;
52
+ })(StatusBarItemUtilities = exports.StatusBarItemUtilities || (exports.StatusBarItemUtilities = {}));
23
53
  //# sourceMappingURL=StatusBarItemUtilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAMH;;GAEG;AACH,MAAa,sBAAsB;;AAAnC,wDASC;AAPC,+BAA+B;AACjB,0CAAmB,GAAG,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,SAA0B,EAAE,SAAkC,EAAiB,EAAE,CAAC,CAAC;IACnL,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;IACpC,QAAQ,EAAE,IAAI;IACd,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;CAC9B,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { StatusBarSection } from \"@itwin/appui-abstract\";\r\nimport { StatusBarItem } from \"./StatusBarItem\";\r\n\r\n/** Utility methods for creating and maintaining StatusBar items.\r\n * @public\r\n */\r\nexport class StatusBarItemUtilities {\r\n\r\n /** Creates a StatusBar item */\r\n public static createStatusBarItem = (id: string, section: StatusBarSection, itemPriority: number, reactNode: React.ReactNode, itemProps?: Partial<StatusBarItem>): StatusBarItem => ({\r\n id, section, itemPriority, reactNode,\r\n isCustom: true,\r\n ...itemProps ? itemProps : {},\r\n });\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"StatusBarItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0DAAyI;AACzI,mDAAoJ;AAEpJ;;GAEG;AACH,MAAa,sBAAsB;;AAAnC,wDASC;AARC;;GAEG;AACW,0CAAmB,GAAG,CAAC,EAAU,EAAE,OAA6B,EAAE,YAAoB,EAAE,SAA0B,EAAE,SAAkC,EAAiB,EAAE,CAAC,CAAC;IACvL,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;IACpC,QAAQ,EAAE,IAAI;IACd,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;CAC9B,CAAC,CAAC;AAGL;;GAEG;AACH,WAAiB,sBAAsB;IACrC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAqC,EAAE,OAAwC,EAAE,OAAmB,EAAE,SAAwC;QAC1O,OAAO,+CAA8B,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,8CAA8C;IACtK,CAAC;IAFe,uCAAgB,mBAE/B,CAAA;IAED;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAqC,EAAE,KAAsC,EAAE,SAAS,GAAG,kCAAkB,CAAC,KAAK,EAAE,SAAuC;QACvP,OAAO,+CAA8B,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,8CAA8C;IACrK,CAAC;IAFe,sCAAe,kBAE9B,CAAA;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,SAA0B,EAAE,SAAwC;QAChK,OAAO,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,8CAA8C;IACpJ,CAAC;IAFe,uCAAgB,mBAE/B,CAAA;AACH,CAAC,EArBgB,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAqBtC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { AbstractStatusBarItemUtilities, ConditionalStringValue, StatusBarSection as UIA_StatusBarSection } from \"@itwin/appui-abstract\";\r\nimport { StatusBarActionItem, StatusBarCustomItem, StatusBarItem, StatusBarLabelItem, StatusBarLabelSide, StatusBarSection } from \"./StatusBarItem\";\r\n\r\n/** Utility methods for creating and maintaining StatusBar items.\r\n * @public\r\n */\r\nexport class StatusBarItemUtilities {\r\n /** Creates a StatusBar item\r\n * @deprecated Use [[StatusBarItemUtilities.createCustomItem]] instead.\r\n */\r\n public static createStatusBarItem = (id: string, section: UIA_StatusBarSection, itemPriority: number, reactNode: React.ReactNode, itemProps?: Partial<StatusBarItem>): StatusBarItem => ({ // eslint-disable-line deprecation/deprecation\r\n id, section, itemPriority, reactNode,\r\n isCustom: true,\r\n ...itemProps ? itemProps : {},\r\n });\r\n}\r\n\r\n/** Helper class to create Abstract StatusBar Item definitions.\r\n * @public\r\n */\r\nexport namespace StatusBarItemUtilities {\r\n /** Creates a StatusBar item to perform an action.\r\n * @beta\r\n */\r\n export function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<StatusBarActionItem>): StatusBarActionItem {\r\n return AbstractStatusBarItemUtilities.createActionItem(id, section, itemPriority, icon, tooltip, execute, overrides); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n /** Creates a StatusBar item to display a label.\r\n * @beta\r\n */\r\n export function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, label: string | ConditionalStringValue, labelSide = StatusBarLabelSide.Right, overrides?: Partial<StatusBarLabelItem>): StatusBarLabelItem {\r\n return AbstractStatusBarItemUtilities.createLabelItem(id, section, itemPriority, icon, label, labelSide, overrides); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n /** Creates a StatusBar item to display a custom content.\r\n * @beta\r\n */\r\n export function createCustomItem(id: string, section: StatusBarSection, itemPriority: number, reactNode: React.ReactNode, overrides?: Partial<StatusBarCustomItem>): StatusBarCustomItem {\r\n return StatusBarItemUtilities.createStatusBarItem(id, section, itemPriority, reactNode, overrides); // eslint-disable-line deprecation/deprecation\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDefaultStatusBarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useDefaultStatusBarItems.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAG/B;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,OAA8B,EAAkC,EAAE;IACzG,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;YACxB,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;aAC5B;YACH,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,aAAa,GAAG,CAAC,IAA+B,EAAE,EAAE;YACxD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AArBW,QAAA,wBAAwB,4BAqBnC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonStatusBarItem, StatusBarItemsChangedArgs, StatusBarItemsManager } from \"@itwin/appui-abstract\";\r\n\r\n/** Hook that returns items from [[StatusBarItemsManager]].\r\n * @public\r\n */\r\nexport const useDefaultStatusBarItems = (manager: StatusBarItemsManager): readonly CommonStatusBarItem[] => {\r\n const [items, setItems] = React.useState(manager.items);\r\n const isInitialMount = React.useRef(true);\r\n React.useEffect(() => {\r\n if (isInitialMount.current)\r\n isInitialMount.current = false;\r\n else {\r\n setItems(manager.items);\r\n }\r\n }, [manager]);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleChanged = (args: StatusBarItemsChangedArgs) => {\r\n setItems(args.items);\r\n };\r\n manager.onItemsChanged.addListener(handleChanged);\r\n return () => {\r\n manager.onItemsChanged.removeListener(handleChanged);\r\n };\r\n }, [manager]);\r\n return items;\r\n};\r\n"]}
1
+ {"version":3,"file":"useDefaultStatusBarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useDefaultStatusBarItems.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAG/B;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,OAA8B,EAAkC,EAAE;IACzG,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;YACxB,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;aAC5B;YACH,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,aAAa,GAAG,CAAC,IAA+B,EAAE,EAAE;YACxD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AArBW,QAAA,wBAAwB,4BAqBnC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonStatusBarItem, StatusBarItemsChangedArgs, StatusBarItemsManager } from \"@itwin/appui-abstract\";\r\n\r\n/** Hook that returns items from [[StatusBarItemsManager]].\r\n * @public\r\n */\r\nexport const useDefaultStatusBarItems = (manager: StatusBarItemsManager): readonly CommonStatusBarItem[] => { // eslint-disable-line deprecation/deprecation\r\n const [items, setItems] = React.useState(manager.items);\r\n const isInitialMount = React.useRef(true);\r\n React.useEffect(() => {\r\n if (isInitialMount.current)\r\n isInitialMount.current = false;\r\n else {\r\n setItems(manager.items);\r\n }\r\n }, [manager]);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleChanged = (args: StatusBarItemsChangedArgs) => {\r\n setItems(args.items);\r\n };\r\n manager.onItemsChanged.addListener(handleChanged);\r\n return () => {\r\n manager.onItemsChanged.removeListener(handleChanged);\r\n };\r\n }, [manager]);\r\n return items;\r\n};\r\n"]}
@@ -33,7 +33,8 @@ function Indicator(props) {
33
33
  const target = React.useRef(null);
34
34
  const icon = React.useMemo(() => iconSpec !== null && iconSpec !== void 0 ? iconSpec : iconName, [iconSpec, iconName]);
35
35
  const title = React.useMemo(() => toolTip !== null && toolTip !== void 0 ? toolTip : label, [toolTip, label]);
36
- const classNames = (0, classnames_1.default)("uifw-footer-label-left", "uifw-footer-indicator", inFooter && "nz-footer-mode", hasClickAction && "uifw-footer-action", labelSide === appui_abstract_1.StatusBarLabelSide.Right && "uifw-footer-label-reversed", className);
36
+ const classNames = (0, classnames_1.default)("uifw-footer-label-left", "uifw-footer-indicator", inFooter && "nz-footer-mode", hasClickAction && "uifw-footer-action", labelSide === appui_abstract_1.StatusBarLabelSide.Right && "uifw-footer-label-reversed", // eslint-disable-line deprecation/deprecation
37
+ className);
37
38
  return (React.createElement(React.Fragment, null,
38
39
  React.createElement("div", { ref: target, role: "button", tabIndex: -1, className: classNames, title: title, style: style, onClick: handleOnIndicatorClick },
39
40
  isLabelVisible && label && React.createElement("span", { className: "nz-label" }, appui_abstract_1.ConditionalStringValue.getValue(label)),
@@ -1 +1 @@
1
- {"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4BAA0B;AAC1B,2CAAoC;AACpC,+BAA+B;AAC/B,0DAAmF;AACnF,kDAAgE;AAChE,kEAAgF;AAgChF;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAqB;IAC7C,mDAAmD;IACnD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACxJ,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,IAAI,MAAM,EAAE;YACV,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;SACpB;QACD,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,wBAAwB,EAAE,uBAAuB,EACjD,QAAQ,IAAI,gBAAgB,EAC5B,cAAc,IAAI,oBAAoB,EACtC,SAAS,KAAK,mCAAkB,CAAC,KAAK,IAAI,4BAA4B,EACtE,SAAS,CAAC,CAAC;IACb,OAAO,CACL;QAEE,6BAAK,GAAG,EAAE,MAAM,EACd,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC,EAC1B,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,sBAAsB;YAE9B,cAAc,IAAI,KAAK,IAAI,8BAAM,SAAS,EAAC,UAAU,IAAE,uCAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAQ;YACrG,IAAI,IAAI,6BAAK,SAAS,EAAC,qBAAqB;gBAAC,oBAAC,iBAAI,IAAC,QAAQ,EAAE,IAAI,GAAI,CAAM,CACxE;QACL,MAAM,IAAI,oBAAC,gCAAW,IAAC,WAAW,EAAE,WAAW,EAC9C,MAAM,EAAE,MAAM,CAAC,OAAO,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,MAAM,EAAE,MAAM,IACb,MAAM,CACK,CACb,CACJ,CAAC;AACJ,CAAC;AA1CD,8BA0CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./Indicator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ConditionalStringValue, StatusBarLabelSide } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, IconSpec } from \"@itwin/core-react\";\r\nimport { FooterPopup, FooterPopupContentType } from \"@itwin/appui-layout-react\";\r\n\r\n/** Properties of [[Indicator]] component. */\r\ninterface IndicatorProps extends CommonProps {\r\n /** Label of balloon icon. @deprecated in 3.0. use label */\r\n balloonLabel?: string;\r\n /** Dialog to display in popup when indicator is clicked. */\r\n dialog?: React.ReactChild;\r\n /** Icon to use in the footer. @deprecated in 3.0. use iconSpec */\r\n iconName?: string;\r\n /** specification for Icon, overrides iconName specification */\r\n iconSpec?: IconSpec;\r\n /** Describes if the indicator label is visible. */\r\n isLabelVisible?: boolean;\r\n /** Indicator label. */\r\n label?: string;\r\n /** Side to display label. */\r\n labelSide?: StatusBarLabelSide;\r\n /** Function called when indicator is clicked. */\r\n onClick?: () => void;\r\n /** If dialog prop is set, used to determine initial state. */\r\n opened?: boolean;\r\n /** Describes whether the footer is in footer or widget mode.\r\n * @deprecated in 3.3. In upcoming version, widget mode will be removed. Consider this parameter to always be true.\r\n */\r\n isInFooterMode?: boolean;\r\n /** Tooltip text if not specified label is used */\r\n toolTip?: string;\r\n /** ContentType is used to determine color of popup arrow. If not set defaults to FooterPopupContentType.Dialog */\r\n contentType?: FooterPopupContentType; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** General-purpose [[Footer]] indicator. Shows an icon and supports an optional popup dialog.\r\n * @deprecated in 3.6. Use [[StatusBarIndicator]] or [[StatusBarLabelIndicator]] instead.\r\n * @beta\r\n */\r\nexport function Indicator(props: IndicatorProps) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const { className, contentType, dialog, iconName, iconSpec, isInFooterMode, isLabelVisible, label, labelSide, onClick, opened, style, toolTip } = props;\r\n const hasClickAction = React.useMemo(() => !!onClick || !!dialog, [dialog, onClick]);\r\n const [isOpen, setIsOpen] = React.useState(!!opened);\r\n const handleOnIndicatorClick = React.useCallback(() => {\r\n if (dialog) {\r\n setIsOpen(!isOpen);\r\n }\r\n onClick && onClick();\r\n }, [dialog, isOpen, onClick]);\r\n const inFooter = React.useMemo(() => false === isInFooterMode ? false : true, [isInFooterMode]);\r\n const target = React.useRef<HTMLDivElement>(null);\r\n const icon = React.useMemo(() => iconSpec ?? iconName, [iconSpec, iconName]);\r\n const title = React.useMemo(() => toolTip ?? label, [toolTip, label]);\r\n const classNames = classnames(\r\n \"uifw-footer-label-left\", \"uifw-footer-indicator\",\r\n inFooter && \"nz-footer-mode\",\r\n hasClickAction && \"uifw-footer-action\",\r\n labelSide === StatusBarLabelSide.Right && \"uifw-footer-label-reversed\",\r\n className);\r\n return (\r\n <>\r\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\r\n <div ref={target}\r\n role=\"button\" tabIndex={-1}\r\n className={classNames}\r\n title={title}\r\n style={style}\r\n onClick={handleOnIndicatorClick}\r\n >\r\n {isLabelVisible && label && <span className=\"nz-label\">{ConditionalStringValue.getValue(label)}</span>}\r\n {icon && <div className=\"uifw-indicator-icon\"><Icon iconSpec={icon} /></div>}\r\n </div>\r\n {dialog && <FooterPopup contentType={contentType} // eslint-disable-line deprecation/deprecation\r\n target={target.current}\r\n onClose={() => setIsOpen(false)}\r\n isOpen={isOpen}>\r\n {dialog}\r\n </FooterPopup>}\r\n </>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4BAA0B;AAC1B,2CAAoC;AACpC,+BAA+B;AAC/B,0DAAmF;AACnF,kDAAgE;AAChE,kEAAgF;AAgChF;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAqB;IAC7C,mDAAmD;IACnD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACxJ,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,IAAI,MAAM,EAAE;YACV,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;SACpB;QACD,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,wBAAwB,EAAE,uBAAuB,EACjD,QAAQ,IAAI,gBAAgB,EAC5B,cAAc,IAAI,oBAAoB,EACtC,SAAS,KAAK,mCAAkB,CAAC,KAAK,IAAI,4BAA4B,EAAE,8CAA8C;IACtH,SAAS,CAAC,CAAC;IACb,OAAO,CACL;QAEE,6BAAK,GAAG,EAAE,MAAM,EACd,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC,EAC1B,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,sBAAsB;YAE9B,cAAc,IAAI,KAAK,IAAI,8BAAM,SAAS,EAAC,UAAU,IAAE,uCAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAQ;YACrG,IAAI,IAAI,6BAAK,SAAS,EAAC,qBAAqB;gBAAC,oBAAC,iBAAI,IAAC,QAAQ,EAAE,IAAI,GAAI,CAAM,CACxE;QACL,MAAM,IAAI,oBAAC,gCAAW,IAAC,WAAW,EAAE,WAAW,EAC9C,MAAM,EAAE,MAAM,CAAC,OAAO,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,MAAM,EAAE,MAAM,IACb,MAAM,CACK,CACb,CACJ,CAAC;AACJ,CAAC;AA1CD,8BA0CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./Indicator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ConditionalStringValue, StatusBarLabelSide } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, IconSpec } from \"@itwin/core-react\";\r\nimport { FooterPopup, FooterPopupContentType } from \"@itwin/appui-layout-react\";\r\n\r\n/** Properties of [[Indicator]] component. */\r\ninterface IndicatorProps extends CommonProps {\r\n /** Label of balloon icon. @deprecated in 3.0. use label */\r\n balloonLabel?: string;\r\n /** Dialog to display in popup when indicator is clicked. */\r\n dialog?: React.ReactChild;\r\n /** Icon to use in the footer. @deprecated in 3.0. use iconSpec */\r\n iconName?: string;\r\n /** specification for Icon, overrides iconName specification */\r\n iconSpec?: IconSpec;\r\n /** Describes if the indicator label is visible. */\r\n isLabelVisible?: boolean;\r\n /** Indicator label. */\r\n label?: string;\r\n /** Side to display label. */\r\n labelSide?: StatusBarLabelSide; // eslint-disable-line deprecation/deprecation\r\n /** Function called when indicator is clicked. */\r\n onClick?: () => void;\r\n /** If dialog prop is set, used to determine initial state. */\r\n opened?: boolean;\r\n /** Describes whether the footer is in footer or widget mode.\r\n * @deprecated in 3.3. In upcoming version, widget mode will be removed. Consider this parameter to always be true.\r\n */\r\n isInFooterMode?: boolean;\r\n /** Tooltip text if not specified label is used */\r\n toolTip?: string;\r\n /** ContentType is used to determine color of popup arrow. If not set defaults to FooterPopupContentType.Dialog */\r\n contentType?: FooterPopupContentType; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** General-purpose [[Footer]] indicator. Shows an icon and supports an optional popup dialog.\r\n * @deprecated in 3.6. Use [[StatusBarIndicator]] or [[StatusBarLabelIndicator]] instead.\r\n * @beta\r\n */\r\nexport function Indicator(props: IndicatorProps) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const { className, contentType, dialog, iconName, iconSpec, isInFooterMode, isLabelVisible, label, labelSide, onClick, opened, style, toolTip } = props;\r\n const hasClickAction = React.useMemo(() => !!onClick || !!dialog, [dialog, onClick]);\r\n const [isOpen, setIsOpen] = React.useState(!!opened);\r\n const handleOnIndicatorClick = React.useCallback(() => {\r\n if (dialog) {\r\n setIsOpen(!isOpen);\r\n }\r\n onClick && onClick();\r\n }, [dialog, isOpen, onClick]);\r\n const inFooter = React.useMemo(() => false === isInFooterMode ? false : true, [isInFooterMode]);\r\n const target = React.useRef<HTMLDivElement>(null);\r\n const icon = React.useMemo(() => iconSpec ?? iconName, [iconSpec, iconName]);\r\n const title = React.useMemo(() => toolTip ?? label, [toolTip, label]);\r\n const classNames = classnames(\r\n \"uifw-footer-label-left\", \"uifw-footer-indicator\",\r\n inFooter && \"nz-footer-mode\",\r\n hasClickAction && \"uifw-footer-action\",\r\n labelSide === StatusBarLabelSide.Right && \"uifw-footer-label-reversed\", // eslint-disable-line deprecation/deprecation\r\n className);\r\n return (\r\n <>\r\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\r\n <div ref={target}\r\n role=\"button\" tabIndex={-1}\r\n className={classNames}\r\n title={title}\r\n style={style}\r\n onClick={handleOnIndicatorClick}\r\n >\r\n {isLabelVisible && label && <span className=\"nz-label\">{ConditionalStringValue.getValue(label)}</span>}\r\n {icon && <div className=\"uifw-indicator-icon\"><Icon iconSpec={icon} /></div>}\r\n </div>\r\n {dialog && <FooterPopup contentType={contentType} // eslint-disable-line deprecation/deprecation\r\n target={target.current}\r\n onClose={() => setIsOpen(false)}\r\n isOpen={isOpen}>\r\n {dialog}\r\n </FooterPopup>}\r\n </>\r\n );\r\n}\r\n"]}
@@ -32,7 +32,7 @@ interface ToolbarGroupItemState {
32
32
  /** Group Item React component.
33
33
  * @internal
34
34
  */
35
- export declare class ToolbarGroupItem extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {
35
+ export declare class ToolbarGroupItemComponent extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {
36
36
  /** @internal */
37
37
  readonly state: Readonly<ToolbarGroupItemState>;
38
38
  private _trayIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"GroupButtonItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,YAAY,EAAmD,WAAW,EAAE,kBAAkB,EAC/F,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkB,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AAyBpF,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,WAAW,CAAC;CAClC;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClC,SAAS,EAAE,WAAW,CAAC;CACxB;AACD,aAAK,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEnD,UAAU,8BAA+B,SAAQ,WAAW;IAC1D,SAAS,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,SAAS,CAAC,8BAA8B,EAAE,qBAAqB,CAAC;IAC1G,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAChE,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,IAAI,CAAqC;gBAErC,KAAK,EAAE,8BAA8B;IAYjC,iBAAiB;IAKjB,oBAAoB;IAKpC,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IA2BR,kBAAkB,CAAC,SAAS,EAAE,8BAA8B,EAAE,UAAU,EAAE,qBAAqB;IAS/G,OAAO,KAAK,KAAK,GAOhB;IAED,OAAO,CAAC,OAAO;IASC,MAAM,IAAI,KAAK,CAAC,SAAS;IA8DzC,OAAO,CAAC,gBAAgB,CAOtB;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,2BAA2B,CAGjC;IAEF,OAAO,CAAC,kCAAkC,CAExC;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAGF,OAAO,CAAC,yBAAyB,CAI/B;IAGF,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IAsGb,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS;IAUtE,OAAO,CAAC,WAAW,CASjB;IAEF,OAAO,CAAC,oBAAoB,CAO1B;CACH;AA4BD;;GAEG;AACH,UAAU,gBAAgB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,eAQtD"}
1
+ {"version":3,"file":"GroupButtonItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,YAAY,EAAmD,WAAW,EAAE,kBAAkB,EAC/F,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkB,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AAyBpF,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,WAAW,CAAC;CAClC;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClC,SAAS,EAAE,WAAW,CAAC;CACxB;AACD,aAAK,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEnD,UAAU,8BAA+B,SAAQ,WAAW;IAC1D,SAAS,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK,CAAC,SAAS,CAAC,8BAA8B,EAAE,qBAAqB,CAAC;IACnH,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAChE,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,IAAI,CAAqC;gBAErC,KAAK,EAAE,8BAA8B;IAYjC,iBAAiB;IAKjB,oBAAoB;IAKpC,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IA2BR,kBAAkB,CAAC,SAAS,EAAE,8BAA8B,EAAE,UAAU,EAAE,qBAAqB;IAS/G,OAAO,KAAK,KAAK,GAOhB;IAED,OAAO,CAAC,OAAO;IASC,MAAM,IAAI,KAAK,CAAC,SAAS;IA8DzC,OAAO,CAAC,gBAAgB,CAOtB;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,2BAA2B,CAGjC;IAEF,OAAO,CAAC,kCAAkC,CAExC;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAGF,OAAO,CAAC,yBAAyB,CAI/B;IAGF,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IAsGb,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS;IAUtE,OAAO,CAAC,WAAW,CASjB;IAEF,OAAO,CAAC,oBAAoB,CAO1B;CACH;AA4BD;;GAEG;AACH,UAAU,gBAAgB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,eAQtD"}
@@ -7,7 +7,7 @@
7
7
  * @module Toolbar
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.GroupButtonItem = exports.ToolbarGroupItem = void 0;
10
+ exports.GroupButtonItem = exports.ToolbarGroupItemComponent = void 0;
11
11
  const classnames_1 = require("classnames");
12
12
  const React = require("react");
13
13
  const core_bentley_1 = require("@itwin/core-bentley");
@@ -30,7 +30,7 @@ const ItemWithDragInteraction = (0, appui_layout_react_1.withDragInteraction)(ap
30
30
  /** Group Item React component.
31
31
  * @internal
32
32
  */
33
- class ToolbarGroupItem extends React.Component {
33
+ class ToolbarGroupItemComponent extends React.Component {
34
34
  constructor(props) {
35
35
  super(props);
36
36
  this._trayIndex = 0;
@@ -295,7 +295,7 @@ class ToolbarGroupItem extends React.Component {
295
295
  return undefined;
296
296
  }
297
297
  }
298
- exports.ToolbarGroupItem = ToolbarGroupItem;
298
+ exports.ToolbarGroupItemComponent = ToolbarGroupItemComponent;
299
299
  /** @internal */
300
300
  const getFirstItem = (groupItem) => {
301
301
  for (const item of groupItem.items) {
@@ -323,7 +323,7 @@ const getFirstItemId = (groupItem) => {
323
323
  * @internal
324
324
  */
325
325
  function GroupButtonItem(props) {
326
- return (React.createElement(ToolbarGroupItem, { groupItem: props.item, key: props.item.id, onItemExecuted: props.onItemExecuted }));
326
+ return (React.createElement(ToolbarGroupItemComponent, { groupItem: props.item, key: props.item.id, onItemExecuted: props.onItemExecuted }));
327
327
  }
328
328
  exports.GroupButtonItem = GroupButtonItem;
329
329
  //# sourceMappingURL=GroupButtonItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Toolbar\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n ActionButton, ConditionalBooleanValue, ConditionalStringValue, GroupButton, OnItemExecutedFunc, ToolbarItemUtilities,\r\n} from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\r\n Group as ToolGroupComponent, withDragInteraction,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\n\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ItemWithDragInteraction = withDragInteraction(Item);\r\n\r\n// -----------------------------------------------------------------------------\r\n// ToolbarGroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n trayId?: string;\r\n item: ActionButton | GroupButton;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title?: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItem: GroupButton;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface ToolbarGroupItemComponentProps extends CommonProps {\r\n groupItem: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\ninterface ToolbarGroupItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItem: GroupButton;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n isEnabled: boolean;\r\n isPressed: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class ToolbarGroupItem extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<ToolbarGroupItemState>;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: ToolbarGroupItemComponentProps) {\r\n super(props);\r\n\r\n const state = this.getGroupItemState(this.props);\r\n // TODO: The defaultActiveItemId should come from session storage\r\n const activeItemId = getFirstItemId(this.props.groupItem);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n private getGroupItemState(props: ToolbarGroupItemComponentProps) {\r\n const groupItem = props.groupItem;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItem(groupItem, trayId, trays);\r\n const isHidden = ConditionalBooleanValue.getValue(groupItem.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(groupItem.isDisabled);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItem,\r\n isEnabled: !isDisabled,\r\n isPressed: false,\r\n isVisible: !isHidden,\r\n trayId,\r\n backTrays: [],\r\n trays,\r\n };\r\n }\r\n\r\n private resetTrayId(): string {\r\n this._trayIndex = 1;\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private generateTrayId(): string {\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private processGroupItem(groupItem: GroupButton, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n groupItem.items.forEach((item) => {\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const toolGroupItem: ToolGroupItem = {\r\n trayId: itemTrayId,\r\n item,\r\n };\r\n\r\n items.set(item.id, toolGroupItem);\r\n this.processGroupItem(item, itemTrayId, trays);\r\n } else {\r\n const toolItem: ToolGroupItem = { item };\r\n items.set(item.id, toolItem);\r\n }\r\n });\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: ConditionalStringValue.getValue(groupItem.panelLabel),\r\n groupItem,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: ToolbarGroupItemComponentProps, _prevState: ToolbarGroupItemState) {\r\n if (!PropsHelper.isShallowEqual(this.props, prevProps)) {\r\n // istanbul ignore else\r\n if (this.props.groupItem !== prevProps.groupItem)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different ToolbarGroupItem for same groupId of ${this.state.groupItem.id}`);\r\n this.setState((_, props) => this.getGroupItemState(props));\r\n }\r\n }\r\n\r\n private get _tray() {\r\n const tray = this.state.trays.get(this.state.trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private getTray(trayId: string) {\r\n const tray = this.state.trays.get(trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n // istanbul ignore next\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItem, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItem.badgeType); // eslint-disable-line deprecation/deprecation\r\n\r\n return (\r\n <ToolbarDirectionContext.Consumer>\r\n {(direction) => (\r\n <ToolbarDragInteractionContext.Consumer>\r\n {(dragInteraction) => (\r\n <ExpandableItem // eslint-disable-line deprecation/deprecation\r\n {...props}\r\n className={classNames}\r\n key={this.state.groupItem.id}\r\n panel={this.getGroupTray(dragInteraction)}\r\n >\r\n {dragInteraction ?\r\n (\r\n <div ref={this._ref}>\r\n <ItemWithDragInteraction\r\n badge={badge}\r\n direction={direction}\r\n icon={ToolbarHelper.getIconReactNode(activeItem)}\r\n isActive={this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleDragInteractionClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n onOpenPanel={this._handleOpenPanel}\r\n title={ConditionalStringValue.getValue(activeItem.label)}\r\n />\r\n </div>\r\n ) :\r\n (\r\n <div ref={this._ref}>\r\n <Item // eslint-disable-line deprecation/deprecation\r\n badge={badge}\r\n icon={ToolbarHelper.getIconReactNode(groupItem)}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n title={ConditionalStringValue.getValue(this.state.groupItem.label)}\r\n />\r\n </div>\r\n )}\r\n </ExpandableItem>\r\n )}\r\n </ToolbarDragInteractionContext.Consumer>\r\n )}\r\n </ToolbarDirectionContext.Consumer>\r\n );\r\n }\r\n\r\n private _handleOpenPanel = () => {\r\n this.setState({\r\n isPressed: true,\r\n });\r\n this._closeOnPanelOpened = false;\r\n FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n };\r\n\r\n private _handleClick = () => {\r\n this.setState((prevState) => ({\r\n isPressed: !prevState.isPressed,\r\n }));\r\n };\r\n\r\n private _handleDragInteractionClick = () => {\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n activeItem && ToolbarItemUtilities.isActionButton(activeItem) && activeItem.execute();\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (_e: MouseEvent) => {\r\n this.closeGroupButton();\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n if (!this._closeOnPanelOpened)\r\n return;\r\n this.closeGroupButton();\r\n };\r\n\r\n private closeGroupButton() {\r\n const trayId = this.resetTrayId();\r\n\r\n this.setState({\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n });\r\n }\r\n\r\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\r\n const trayId = this.resetTrayId();\r\n this.setState(\r\n {\r\n activeItemId: itemKey,\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n },\r\n () => {\r\n const tray = this.getTray(trayKey);\r\n const childItem = tray.groupItem.items.find((item) => itemKey === item.id);\r\n // istanbul ignore else\r\n if (childItem) {\r\n // istanbul ignore else\r\n if (ToolbarItemUtilities.isActionButton(childItem)) {\r\n childItem.execute();\r\n if (this.props.onItemExecuted)\r\n this.props.onItemExecuted(childItem);\r\n }\r\n }\r\n },\r\n );\r\n }\r\n\r\n private getItemsInColumn(numTotalItems: number): number {\r\n if (numTotalItems <= 6)\r\n return numTotalItems;\r\n if (numTotalItems <= 24)\r\n return Math.ceil(numTotalItems / 2);\r\n if (numTotalItems <= 36)\r\n return Math.ceil(numTotalItems / 3);\r\n return Math.ceil(numTotalItems / 4);\r\n }\r\n\r\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\r\n if (!this.state.isPressed)\r\n return undefined;\r\n\r\n return (\r\n <ToolGroupPanelContext.Consumer>\r\n {(activateOnPointerUp) => {\r\n const tray = this._tray;\r\n const items = [...tray.items.keys()];\r\n const itemsInColumn = this.getItemsInColumn(items.length); // tray.groupItem.itemsInColumn;\r\n\r\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\r\n\r\n // Divide items equally between columns.\r\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\r\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\r\n\r\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\r\n const columnIndex = Math.floor(index / numberItemsInColumn);\r\n if (columnIndex >= acc.length) {\r\n return [\r\n ...acc,\r\n [item],\r\n ];\r\n }\r\n return [\r\n ...acc.slice(0, columnIndex),\r\n [\r\n ...acc[columnIndex],\r\n item,\r\n ],\r\n ...acc.slice(columnIndex + 1),\r\n ];\r\n }, []);\r\n const columns = (columnToItems.map((columnItems, columnIndex) =>\r\n <GroupColumn key={columnIndex}> {/* eslint-disable-line deprecation/deprecation */}\r\n {columnItems.map((itemKey) => {\r\n const tgItem = tray.items.get(itemKey)!;\r\n const item = tgItem.item;\r\n const icon = ToolbarHelper.getIconReactNode(item);\r\n const isVisible = true;\r\n const isActive = itemKey === this.state.activeToolId;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (tgItem.trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!!item.isDisabled}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(tgItem.trayId!)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(tgItem.trayId!) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!!item.isDisabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n onClick={\r\n // istanbul ignore next\r\n () => this.handleToolGroupItemClicked(this.state.trayId, itemKey)\r\n }\r\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n })}\r\n </GroupColumn>,\r\n ));\r\n\r\n if (this.state.backTrays.length > 0)\r\n return (\r\n <NestedToolGroup\r\n columns={columns}\r\n onBack={this._handleBack}\r\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : /* istanbul ignore next */ this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n\r\n return (\r\n <ToolGroup\r\n columns={columns}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n }}\r\n </ToolGroupPanelContext.Consumer>\r\n );\r\n }\r\n\r\n public getItemById(id: string): ActionButton | GroupButton | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItem.items.find((childItem) => id === childItem.id);\r\n if (item)\r\n return item;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n private _handleBack = () => {\r\n this.setState((prevState) => {\r\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : /* istanbul ignore next */ prevState.trayId;\r\n const backTrays = prevState.backTrays.slice(0, -1);\r\n return {\r\n trayId,\r\n backTrays,\r\n };\r\n });\r\n };\r\n\r\n private _handleExpanderClick = (trayId: string) => {\r\n this.setState((prevState) => {\r\n return {\r\n trayId,\r\n backTrays: [...prevState.backTrays, prevState.trayId],\r\n };\r\n });\r\n };\r\n}\r\n\r\n/** @internal */\r\nconst getFirstItem = (groupItem: GroupButton): ActionButton | GroupButton | undefined => {\r\n for (const item of groupItem.items) {\r\n const isHidden = ConditionalBooleanValue.getValue(item.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(item.isDisabled);\r\n\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n const firstItem = getFirstItem(item);\r\n // istanbul ignore else\r\n if (firstItem)\r\n return firstItem;\r\n // istanbul ignore next\r\n continue;\r\n }\r\n if (!isHidden && !isDisabled)\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nconst getFirstItemId = (groupItem: GroupButton): string => {\r\n const item = getFirstItem(groupItem);\r\n return item ? item.id : \"\";\r\n};\r\n\r\n/** Action button props\r\n * @internal\r\n */\r\ninterface GroupButtonProps {\r\n item: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\n/** Group Button React component\r\n * @internal\r\n */\r\nexport function GroupButtonItem(props: GroupButtonProps) {\r\n return (\r\n <ToolbarGroupItem\r\n groupItem={props.item}\r\n key={props.item.id}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"GroupButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Toolbar\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n ActionButton, ConditionalBooleanValue, ConditionalStringValue, GroupButton, OnItemExecutedFunc, ToolbarItemUtilities,\r\n} from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\r\n Group as ToolGroupComponent, withDragInteraction,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\n\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ItemWithDragInteraction = withDragInteraction(Item);\r\n\r\n// -----------------------------------------------------------------------------\r\n// ToolbarGroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n trayId?: string;\r\n item: ActionButton | GroupButton;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title?: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItem: GroupButton;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface ToolbarGroupItemComponentProps extends CommonProps {\r\n groupItem: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\ninterface ToolbarGroupItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItem: GroupButton;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n isEnabled: boolean;\r\n isPressed: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class ToolbarGroupItemComponent extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<ToolbarGroupItemState>;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: ToolbarGroupItemComponentProps) {\r\n super(props);\r\n\r\n const state = this.getGroupItemState(this.props);\r\n // TODO: The defaultActiveItemId should come from session storage\r\n const activeItemId = getFirstItemId(this.props.groupItem);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n private getGroupItemState(props: ToolbarGroupItemComponentProps) {\r\n const groupItem = props.groupItem;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItem(groupItem, trayId, trays);\r\n const isHidden = ConditionalBooleanValue.getValue(groupItem.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(groupItem.isDisabled);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItem,\r\n isEnabled: !isDisabled,\r\n isPressed: false,\r\n isVisible: !isHidden,\r\n trayId,\r\n backTrays: [],\r\n trays,\r\n };\r\n }\r\n\r\n private resetTrayId(): string {\r\n this._trayIndex = 1;\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private generateTrayId(): string {\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private processGroupItem(groupItem: GroupButton, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n groupItem.items.forEach((item) => {\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const toolGroupItem: ToolGroupItem = {\r\n trayId: itemTrayId,\r\n item,\r\n };\r\n\r\n items.set(item.id, toolGroupItem);\r\n this.processGroupItem(item, itemTrayId, trays);\r\n } else {\r\n const toolItem: ToolGroupItem = { item };\r\n items.set(item.id, toolItem);\r\n }\r\n });\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: ConditionalStringValue.getValue(groupItem.panelLabel),\r\n groupItem,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: ToolbarGroupItemComponentProps, _prevState: ToolbarGroupItemState) {\r\n if (!PropsHelper.isShallowEqual(this.props, prevProps)) {\r\n // istanbul ignore else\r\n if (this.props.groupItem !== prevProps.groupItem)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different ToolbarGroupItem for same groupId of ${this.state.groupItem.id}`);\r\n this.setState((_, props) => this.getGroupItemState(props));\r\n }\r\n }\r\n\r\n private get _tray() {\r\n const tray = this.state.trays.get(this.state.trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private getTray(trayId: string) {\r\n const tray = this.state.trays.get(trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n // istanbul ignore next\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItem, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItem.badgeType); // eslint-disable-line deprecation/deprecation\r\n\r\n return (\r\n <ToolbarDirectionContext.Consumer>\r\n {(direction) => (\r\n <ToolbarDragInteractionContext.Consumer>\r\n {(dragInteraction) => (\r\n <ExpandableItem // eslint-disable-line deprecation/deprecation\r\n {...props}\r\n className={classNames}\r\n key={this.state.groupItem.id}\r\n panel={this.getGroupTray(dragInteraction)}\r\n >\r\n {dragInteraction ?\r\n (\r\n <div ref={this._ref}>\r\n <ItemWithDragInteraction\r\n badge={badge}\r\n direction={direction}\r\n icon={ToolbarHelper.getIconReactNode(activeItem)}\r\n isActive={this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleDragInteractionClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n onOpenPanel={this._handleOpenPanel}\r\n title={ConditionalStringValue.getValue(activeItem.label)}\r\n />\r\n </div>\r\n ) :\r\n (\r\n <div ref={this._ref}>\r\n <Item // eslint-disable-line deprecation/deprecation\r\n badge={badge}\r\n icon={ToolbarHelper.getIconReactNode(groupItem)}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n title={ConditionalStringValue.getValue(this.state.groupItem.label)}\r\n />\r\n </div>\r\n )}\r\n </ExpandableItem>\r\n )}\r\n </ToolbarDragInteractionContext.Consumer>\r\n )}\r\n </ToolbarDirectionContext.Consumer>\r\n );\r\n }\r\n\r\n private _handleOpenPanel = () => {\r\n this.setState({\r\n isPressed: true,\r\n });\r\n this._closeOnPanelOpened = false;\r\n FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n };\r\n\r\n private _handleClick = () => {\r\n this.setState((prevState) => ({\r\n isPressed: !prevState.isPressed,\r\n }));\r\n };\r\n\r\n private _handleDragInteractionClick = () => {\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n activeItem && ToolbarItemUtilities.isActionButton(activeItem) && activeItem.execute();\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (_e: MouseEvent) => {\r\n this.closeGroupButton();\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n if (!this._closeOnPanelOpened)\r\n return;\r\n this.closeGroupButton();\r\n };\r\n\r\n private closeGroupButton() {\r\n const trayId = this.resetTrayId();\r\n\r\n this.setState({\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n });\r\n }\r\n\r\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\r\n const trayId = this.resetTrayId();\r\n this.setState(\r\n {\r\n activeItemId: itemKey,\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n },\r\n () => {\r\n const tray = this.getTray(trayKey);\r\n const childItem = tray.groupItem.items.find((item) => itemKey === item.id);\r\n // istanbul ignore else\r\n if (childItem) {\r\n // istanbul ignore else\r\n if (ToolbarItemUtilities.isActionButton(childItem)) {\r\n childItem.execute();\r\n if (this.props.onItemExecuted)\r\n this.props.onItemExecuted(childItem);\r\n }\r\n }\r\n },\r\n );\r\n }\r\n\r\n private getItemsInColumn(numTotalItems: number): number {\r\n if (numTotalItems <= 6)\r\n return numTotalItems;\r\n if (numTotalItems <= 24)\r\n return Math.ceil(numTotalItems / 2);\r\n if (numTotalItems <= 36)\r\n return Math.ceil(numTotalItems / 3);\r\n return Math.ceil(numTotalItems / 4);\r\n }\r\n\r\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\r\n if (!this.state.isPressed)\r\n return undefined;\r\n\r\n return (\r\n <ToolGroupPanelContext.Consumer>\r\n {(activateOnPointerUp) => {\r\n const tray = this._tray;\r\n const items = [...tray.items.keys()];\r\n const itemsInColumn = this.getItemsInColumn(items.length); // tray.groupItem.itemsInColumn;\r\n\r\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\r\n\r\n // Divide items equally between columns.\r\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\r\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\r\n\r\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\r\n const columnIndex = Math.floor(index / numberItemsInColumn);\r\n if (columnIndex >= acc.length) {\r\n return [\r\n ...acc,\r\n [item],\r\n ];\r\n }\r\n return [\r\n ...acc.slice(0, columnIndex),\r\n [\r\n ...acc[columnIndex],\r\n item,\r\n ],\r\n ...acc.slice(columnIndex + 1),\r\n ];\r\n }, []);\r\n const columns = (columnToItems.map((columnItems, columnIndex) =>\r\n <GroupColumn key={columnIndex}> {/* eslint-disable-line deprecation/deprecation */}\r\n {columnItems.map((itemKey) => {\r\n const tgItem = tray.items.get(itemKey)!;\r\n const item = tgItem.item;\r\n const icon = ToolbarHelper.getIconReactNode(item);\r\n const isVisible = true;\r\n const isActive = itemKey === this.state.activeToolId;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (tgItem.trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!!item.isDisabled}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(tgItem.trayId!)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(tgItem.trayId!) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!!item.isDisabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n onClick={\r\n // istanbul ignore next\r\n () => this.handleToolGroupItemClicked(this.state.trayId, itemKey)\r\n }\r\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n })}\r\n </GroupColumn>,\r\n ));\r\n\r\n if (this.state.backTrays.length > 0)\r\n return (\r\n <NestedToolGroup\r\n columns={columns}\r\n onBack={this._handleBack}\r\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : /* istanbul ignore next */ this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n\r\n return (\r\n <ToolGroup\r\n columns={columns}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n }}\r\n </ToolGroupPanelContext.Consumer>\r\n );\r\n }\r\n\r\n public getItemById(id: string): ActionButton | GroupButton | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItem.items.find((childItem) => id === childItem.id);\r\n if (item)\r\n return item;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n private _handleBack = () => {\r\n this.setState((prevState) => {\r\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : /* istanbul ignore next */ prevState.trayId;\r\n const backTrays = prevState.backTrays.slice(0, -1);\r\n return {\r\n trayId,\r\n backTrays,\r\n };\r\n });\r\n };\r\n\r\n private _handleExpanderClick = (trayId: string) => {\r\n this.setState((prevState) => {\r\n return {\r\n trayId,\r\n backTrays: [...prevState.backTrays, prevState.trayId],\r\n };\r\n });\r\n };\r\n}\r\n\r\n/** @internal */\r\nconst getFirstItem = (groupItem: GroupButton): ActionButton | GroupButton | undefined => {\r\n for (const item of groupItem.items) {\r\n const isHidden = ConditionalBooleanValue.getValue(item.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(item.isDisabled);\r\n\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n const firstItem = getFirstItem(item);\r\n // istanbul ignore else\r\n if (firstItem)\r\n return firstItem;\r\n // istanbul ignore next\r\n continue;\r\n }\r\n if (!isHidden && !isDisabled)\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nconst getFirstItemId = (groupItem: GroupButton): string => {\r\n const item = getFirstItem(groupItem);\r\n return item ? item.id : \"\";\r\n};\r\n\r\n/** Action button props\r\n * @internal\r\n */\r\ninterface GroupButtonProps {\r\n item: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\n/** Group Button React component\r\n * @internal\r\n */\r\nexport function GroupButtonItem(props: GroupButtonProps) {\r\n return (\r\n <ToolbarGroupItemComponent\r\n groupItem={props.item}\r\n key={props.item.id}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n );\r\n}\r\n"]}
@@ -218,7 +218,7 @@ function ToolbarComposer(props) {
218
218
  const addonSyncIdsOfInterest = React.useMemo(() => appui_abstract_1.ToolbarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);
219
219
  useToolbarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);
220
220
  const toolbarItems = React.useMemo(() => combineItems(defaultItems, addonItems), [defaultItems, addonItems]);
221
- const toolbarOrientation = orientation === appui_abstract_1.ToolbarOrientation.Horizontal ? core_react_1.Orientation.Horizontal : core_react_1.Orientation.Vertical;
221
+ const toolbarOrientation = orientation === appui_abstract_1.ToolbarOrientation.Horizontal ? core_react_1.Orientation.Horizontal : core_react_1.Orientation.Vertical; // eslint-disable-line deprecation/deprecation
222
222
  // eslint-disable-next-line deprecation/deprecation
223
223
  const expandsTo = toolbarOrientation === core_react_1.Orientation.Horizontal ? appui_layout_react_1.Direction.Bottom : usage === appui_abstract_1.ToolbarUsage.ViewNavigation ? appui_layout_react_1.Direction.Left : appui_layout_react_1.Direction.Right;
224
224
  // eslint-disable-next-line deprecation/deprecation