@itwin/appui-react 3.2.0-dev.7 → 3.2.0-dev.70

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 (295) hide show
  1. package/CHANGELOG.md +45 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +14 -2
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +29 -3
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
  11. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/accudraw/Calculator.js +3 -2
  14. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  15. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -2
  17. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  18. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +2 -2
  19. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  20. package/lib/cjs/appui-react/configurableui/state.d.ts +9 -1
  21. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/configurableui/state.js +13 -0
  23. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  24. package/lib/cjs/appui-react/content/ContentGroup.d.ts +1 -1
  25. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  27. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +1 -0
  28. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/feedback/ElementTooltip.js +16 -0
  30. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +5 -0
  32. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/frontstage/Frontstage.js +9 -1
  34. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  35. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  36. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +2 -0
  37. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  38. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +18 -9
  40. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  41. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -2
  42. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  43. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  44. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -2
  46. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  47. package/lib/cjs/appui-react/imodel-components/VisibilityTreeBase.scss +3 -3
  48. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -1
  49. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  50. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  51. package/lib/cjs/appui-react/redux/StateManager.d.ts.map +1 -1
  52. package/lib/cjs/appui-react/redux/StateManager.js +1 -0
  53. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  54. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  55. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +25 -5
  56. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  57. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +1 -1
  58. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  60. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  61. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +6 -10
  63. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  64. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -1
  65. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  66. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -3
  67. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  69. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  70. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  71. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +35 -33
  73. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  74. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -1
  75. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  76. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +1 -0
  77. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  78. package/lib/cjs/appui-react/toolbar/Toolbar.js +8 -3
  79. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  80. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +5 -26
  81. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  82. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +16 -16
  83. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  84. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -0
  85. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -0
  86. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +96 -0
  87. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -0
  88. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +1 -18
  89. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  90. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  91. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +33 -0
  92. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -0
  93. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +51 -0
  94. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -0
  95. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +3 -18
  96. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  98. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  99. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +31 -0
  100. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -0
  101. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +79 -0
  102. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -0
  103. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -0
  104. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  105. package/lib/cjs/appui-react/uistate/AppUiSettings.js +8 -0
  106. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  107. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +3 -0
  109. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  110. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  111. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -0
  112. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  113. package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -1
  114. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/utils/PropsHelper.js +10 -0
  116. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  117. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  118. package/lib/cjs/appui-react/utils/UiShowHideManager.js +1 -0
  119. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  120. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +17 -1
  121. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  122. package/lib/cjs/appui-react/widget-panels/Frontstage.js +143 -129
  123. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  124. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  125. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -2
  126. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  127. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +17 -1
  128. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -3
  129. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  130. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +1 -1
  131. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  133. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -1
  134. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  135. package/lib/cjs/appui-react/widgets/WidgetDef.js +14 -4
  136. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  137. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts +1 -1
  138. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/widgets/WidgetHost.js +106 -7
  140. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  141. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/widgets/WidgetManager.js +2 -1
  143. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  144. package/lib/cjs/appui-react.d.ts +3 -0
  145. package/lib/cjs/appui-react.d.ts.map +1 -1
  146. package/lib/cjs/appui-react.js +3 -0
  147. package/lib/cjs/appui-react.js.map +1 -1
  148. package/lib/esm/appui-react/UiFramework.d.ts +14 -2
  149. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  150. package/lib/esm/appui-react/UiFramework.js +29 -3
  151. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  152. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  153. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  154. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  155. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  156. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
  157. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  158. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  159. package/lib/esm/appui-react/accudraw/Calculator.js +5 -4
  160. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  161. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  162. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +5 -3
  163. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  164. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +2 -2
  165. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  166. package/lib/esm/appui-react/configurableui/state.d.ts +9 -1
  167. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  168. package/lib/esm/appui-react/configurableui/state.js +13 -0
  169. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  170. package/lib/esm/appui-react/content/ContentGroup.d.ts +1 -1
  171. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  172. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  173. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +1 -0
  174. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  175. package/lib/esm/appui-react/feedback/ElementTooltip.js +16 -0
  176. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  177. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +5 -0
  178. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  179. package/lib/esm/appui-react/frontstage/Frontstage.js +7 -0
  180. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  181. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  182. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +2 -0
  183. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  184. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  185. package/lib/esm/appui-react/frontstage/FrontstageDef.js +18 -9
  186. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  187. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  188. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  189. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  190. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  191. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -2
  192. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  193. package/lib/esm/appui-react/imodel-components/VisibilityTreeBase.scss +3 -3
  194. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -1
  195. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  196. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  197. package/lib/esm/appui-react/redux/StateManager.d.ts.map +1 -1
  198. package/lib/esm/appui-react/redux/StateManager.js +1 -0
  199. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  200. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  201. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +25 -5
  202. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  203. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +1 -1
  204. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  205. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  206. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  207. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  208. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +6 -10
  209. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  210. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -1
  211. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  212. package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -3
  213. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  214. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  215. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  216. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  217. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  218. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +20 -18
  219. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  220. package/lib/esm/appui-react/theme/ThemeManager.js +1 -1
  221. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  222. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +1 -0
  223. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  224. package/lib/esm/appui-react/toolbar/Toolbar.js +8 -3
  225. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  226. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +5 -26
  227. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  228. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -17
  229. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  230. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -0
  231. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -0
  232. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +92 -0
  233. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -0
  234. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +1 -18
  235. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  236. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  237. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +33 -0
  238. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -0
  239. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +47 -0
  240. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -0
  241. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +3 -18
  242. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  243. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  244. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  245. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +31 -0
  246. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -0
  247. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +75 -0
  248. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -0
  249. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -0
  250. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  251. package/lib/esm/appui-react/uistate/AppUiSettings.js +8 -0
  252. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  253. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -1
  254. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +3 -0
  255. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  256. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  257. package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -0
  258. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  259. package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -1
  260. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  261. package/lib/esm/appui-react/utils/PropsHelper.js +11 -1
  262. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  263. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  264. package/lib/esm/appui-react/utils/UiShowHideManager.js +1 -0
  265. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  266. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +17 -1
  267. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  268. package/lib/esm/appui-react/widget-panels/Frontstage.js +144 -130
  269. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  270. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  271. package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -2
  272. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  273. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +17 -1
  274. package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -3
  275. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  276. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +1 -1
  277. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  278. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  279. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -1
  280. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  281. package/lib/esm/appui-react/widgets/WidgetDef.js +14 -4
  282. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  283. package/lib/esm/appui-react/widgets/WidgetHost.d.ts +1 -1
  284. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  285. package/lib/esm/appui-react/widgets/WidgetHost.js +106 -7
  286. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  287. package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  288. package/lib/esm/appui-react/widgets/WidgetManager.js +2 -1
  289. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  290. package/lib/esm/appui-react.d.ts +3 -0
  291. package/lib/esm/appui-react.d.ts.map +1 -1
  292. package/lib/esm/appui-react.js +3 -0
  293. package/lib/esm/appui-react.js.map +1 -1
  294. package/lib/public/locales/en/UiFramework.json +7 -2
  295. package/package.json +36 -36
@@ -1 +1 @@
1
- {"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
@@ -196,26 +196,22 @@ export class StagePanelDef extends WidgetHost {
196
196
  return super.widgetDefs;
197
197
  }
198
198
  /** @internal */
199
- updateDynamicWidgetDefs(stageId, stageUsage, location, _section, widgetDefs, frontstageApplicationData) {
200
- this.panelZones.start.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Start, widgetDefs, frontstageApplicationData);
201
- this.panelZones.middle.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Middle, widgetDefs, frontstageApplicationData);
202
- this.panelZones.end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.End, widgetDefs, frontstageApplicationData);
199
+ updateDynamicWidgetDefs(stageId, stageUsage, location, _section, allStageWidgetDefs, frontstageApplicationData) {
200
+ this.panelZones.start.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Start, allStageWidgetDefs, frontstageApplicationData);
201
+ this.panelZones.end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Middle, allStageWidgetDefs, frontstageApplicationData);
202
+ this.panelZones.end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.End, allStageWidgetDefs, frontstageApplicationData);
203
203
  }
204
204
  }
205
- const stagePanelZoneDefKeys = ["start", "middle", "end"];
205
+ const stagePanelZoneDefKeys = ["start", "end"];
206
206
  /** @internal */
207
207
  export class StagePanelZonesDef {
208
208
  constructor() {
209
209
  this._start = new StagePanelZoneDef();
210
- this._middle = new StagePanelZoneDef();
211
210
  this._end = new StagePanelZoneDef();
212
211
  }
213
212
  get start() {
214
213
  return this._start;
215
214
  }
216
- get middle() {
217
- return this._middle;
218
- }
219
215
  get end() {
220
216
  return this._end;
221
217
  }
@@ -225,7 +221,7 @@ export class StagePanelZonesDef {
225
221
  this.start.initializeFromProps(props.start, panelLocation, "start");
226
222
  }
227
223
  if (props.middle) {
228
- this.middle.initializeFromProps(props.middle, panelLocation, "middle");
224
+ this.end.initializeFromProps(props.middle, panelLocation, "end");
229
225
  }
230
226
  if (props.end) {
231
227
  this.end.initializeFromProps(props.end, panelLocation, "end");
@@ -1 +1 @@
1
- {"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport produce, { Draft } from \"immer\";\r\nimport { StagePanelLocation, StagePanelSection, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetHost } from \"../widgets/WidgetHost\";\r\nimport { StagePanelMaxSizeSpec, StagePanelProps, StagePanelZoneProps, StagePanelZonesProps } from \"./StagePanel\";\r\nimport { getStableWidgetProps, ZoneLocation } from \"../zones/Zone\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Enum for StagePanel state.\r\n * @public\r\n */\r\nexport enum StagePanelState {\r\n Off,\r\n Minimized,\r\n Open,\r\n Popup,\r\n}\r\n\r\n/** Panel State Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface PanelStateChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n panelState: StagePanelState;\r\n}\r\n\r\n/** Panel State Changed Event class.\r\n * @beta\r\n */\r\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> { }\r\n\r\n/** @internal */\r\nexport interface PanelSizeChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n size: number | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> { }\r\n\r\n/**\r\n * A StagePanelDef represents each Stage Panel within a Frontstage.\r\n * @public\r\n */\r\nexport class StagePanelDef extends WidgetHost {\r\n private _panelState = StagePanelState.Open;\r\n private _defaultState = StagePanelState.Open;\r\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\r\n private _minSize: number | undefined;\r\n private _size: number | undefined;\r\n private _defaultSize: number | undefined;\r\n private _resizable = true;\r\n private _pinned = true;\r\n private _applicationData?: any;\r\n private _location: StagePanelLocation = StagePanelLocation.Left;\r\n private _panelZones = new StagePanelZonesDef();\r\n\r\n /** Constructor for PanelDef.\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** @internal */\r\n public get maxSizeSpec() { return this._maxSizeSpec; }\r\n\r\n /** @internal */\r\n public get minSize() { return this._minSize; }\r\n\r\n /** Default size of the panel */\r\n public get size() {\r\n // istanbul ignore next\r\n if (\"1\" === UiFramework.uiVersion)\r\n return this._size;\r\n\r\n // istanbul ignore else\r\n if (FrontstageManager.activeFrontstageDef) {\r\n const [_, size] = FrontstageManager.activeFrontstageDef.getPanelCurrentState(this);\r\n return size;\r\n }\r\n // istanbul ignore next\r\n return this._defaultSize;\r\n }\r\n\r\n public set size(size) {\r\n if (this._size === size)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (UiFramework.uiVersion === \"2\") {\r\n const frontstageDef = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = setPanelSize(frontstageDef.nineZoneState, side, size);\r\n const panel = frontstageDef.nineZoneState.panels[side];\r\n if (panel.size === this._size)\r\n return;\r\n size = panel.size;\r\n }\r\n }\r\n this._size = size;\r\n FrontstageManager.onPanelSizeChangedEvent.emit({\r\n panelDef: this,\r\n size,\r\n });\r\n }\r\n\r\n /** Indicates whether the panel is resizable. */\r\n // istanbul ignore next\r\n public get resizable(): boolean { return this._resizable; }\r\n\r\n /** Indicates whether the panel is pinned. */\r\n public get pinned(): boolean { return this._pinned; }\r\n\r\n /** Any application data to attach to this Panel. */\r\n public get applicationData(): any | undefined { return this._applicationData; }\r\n /** Location of panel. */\r\n public get location(): StagePanelLocation { return this._location; }\r\n\r\n /** Panel state. Defaults to PanelState.Open. */\r\n public get panelState() {\r\n if (\"1\" === UiFramework.uiVersion)\r\n return this._panelState;\r\n\r\n // istanbul ignore else\r\n if (FrontstageManager.activeFrontstageDef) {\r\n const [state] = FrontstageManager.activeFrontstageDef?.getPanelCurrentState(this);\r\n return state;\r\n }\r\n // istanbul ignore next\r\n return this.defaultState;\r\n }\r\n\r\n public set panelState(panelState: StagePanelState) {\r\n if (panelState === this._panelState)\r\n return;\r\n const frontstageDef = FrontstageManager.activeFrontstageDef;\r\n if (UiFramework.uiVersion === \"2\" && frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = produce(frontstageDef.nineZoneState, (nineZone) => {\r\n const panel = nineZone.panels[side];\r\n switch (panelState) {\r\n case StagePanelState.Minimized: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n case StagePanelState.Open: {\r\n panel.collapsed = false;\r\n break;\r\n }\r\n case StagePanelState.Off: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n this._panelState = panelState;\r\n FrontstageManager.onPanelStateChangedEvent.emit({\r\n panelDef: this,\r\n panelState,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public get defaultState() { return this._defaultState; }\r\n\r\n /** @internal */\r\n public get defaultSize() { return this._defaultSize; }\r\n\r\n /** Panel zones.\r\n * @internal\r\n */\r\n public get panelZones() {\r\n return this._panelZones;\r\n }\r\n\r\n /** @internal */\r\n public initializeFromProps(props?: StagePanelProps, panelLocation?: StagePanelLocation): void {\r\n if (panelLocation !== undefined)\r\n this._location = panelLocation;\r\n if (!props)\r\n return;\r\n this._size = props.size;\r\n this._defaultSize = props.size;\r\n this._maxSizeSpec = props.maxSize;\r\n this._minSize = props.minSize;\r\n if (panelLocation !== undefined)\r\n this._location = panelLocation;\r\n if (props.defaultState !== undefined) {\r\n this._panelState = props.defaultState;\r\n this._defaultState = props.defaultState;\r\n }\r\n this._resizable = props.resizable;\r\n if (props.pinned !== undefined)\r\n this._pinned = props.pinned;\r\n if (props.applicationData !== undefined)\r\n this._applicationData = props.applicationData;\r\n if (props.panelZones) {\r\n this._panelZones.initializeFromProps(props.panelZones, this._location);\r\n }\r\n\r\n if (props.widgets) {\r\n props.widgets.forEach((widgetNode, index) => {\r\n const stableId = `uifw-sp-${StagePanelLocation[this._location]}-${index}`;\r\n const stableProps = getStableWidgetProps(widgetNode.props, stableId);\r\n const widgetDef = new WidgetDef(stableProps);\r\n this.addWidgetDef(widgetDef);\r\n });\r\n }\r\n }\r\n\r\n /** Gets the list of Widgets. */\r\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\r\n const widgetDefs = [...super.widgetDefs];\r\n for (const [, panelZone] of this.panelZones) {\r\n widgetDefs.push(...panelZone.widgetDefs);\r\n }\r\n return widgetDefs;\r\n }\r\n\r\n /** Gets the list of Widgets (w/o StagePanelZone widgets).\r\n * @internal\r\n */\r\n public get panelWidgetDefs() {\r\n return super.widgetDefs;\r\n }\r\n\r\n /** @internal */\r\n public override updateDynamicWidgetDefs(stageId: string, stageUsage: string, location: ZoneLocation | StagePanelLocation, _section: StagePanelSection | undefined,\r\n widgetDefs: WidgetDef[], frontstageApplicationData?: any,\r\n ): void {\r\n this.panelZones.start.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Start, widgetDefs, frontstageApplicationData);\r\n this.panelZones.middle.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Middle, widgetDefs, frontstageApplicationData);\r\n this.panelZones.end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.End, widgetDefs, frontstageApplicationData);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type StagePanelZoneDefKeys = keyof Pick<StagePanelZonesDef, \"start\" | \"middle\" | \"end\">;\r\n\r\nconst stagePanelZoneDefKeys: StagePanelZoneDefKeys[] = [\"start\", \"middle\", \"end\"];\r\n\r\n/** @internal */\r\nexport class StagePanelZonesDef {\r\n private _start = new StagePanelZoneDef();\r\n private _middle = new StagePanelZoneDef();\r\n private _end = new StagePanelZoneDef();\r\n\r\n public get start() {\r\n return this._start;\r\n }\r\n\r\n public get middle() {\r\n return this._middle;\r\n }\r\n\r\n public get end() {\r\n return this._end;\r\n }\r\n\r\n /** @internal */\r\n public initializeFromProps(props: StagePanelZonesProps, panelLocation: StagePanelLocation): void {\r\n if (props.start) {\r\n this.start.initializeFromProps(props.start, panelLocation, \"start\");\r\n }\r\n if (props.middle) {\r\n this.middle.initializeFromProps(props.middle, panelLocation, \"middle\");\r\n }\r\n if (props.end) {\r\n this.end.initializeFromProps(props.end, panelLocation, \"end\");\r\n }\r\n }\r\n\r\n /** @internal */\r\n public *[Symbol.iterator](): Iterator<[StagePanelZoneDefKeys, StagePanelZoneDef]> {\r\n for (const key of stagePanelZoneDefKeys) {\r\n const value = this[key];\r\n yield [key, value];\r\n }\r\n return undefined;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StagePanelZoneDef extends WidgetHost {\r\n /** @internal */\r\n public initializeFromProps(props: StagePanelZoneProps, panelLocation: StagePanelLocation, panelZone: StagePanelZoneDefKeys): void {\r\n props.widgets.forEach((widgetNode, index) => {\r\n const stableId = `uifw-spz-${StagePanelLocation[panelLocation]}-${panelZone}-${index}`;\r\n const stableProps = getStableWidgetProps(widgetNode.props, stableId);\r\n const widgetDef = new WidgetDef(stableProps);\r\n this.addWidgetDef(widgetDef);\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\r\n switch (location) {\r\n case StagePanelLocation.Bottom:\r\n case StagePanelLocation.BottomMost:\r\n return \"bottom\";\r\n case StagePanelLocation.Left:\r\n return \"left\";\r\n case StagePanelLocation.Right:\r\n return \"right\";\r\n case StagePanelLocation.Top:\r\n case StagePanelLocation.TopMost:\r\n return \"top\";\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const setPanelSize = produce((\r\n nineZone: Draft<NineZoneState>,\r\n side: PanelSide,\r\n size: number | undefined,\r\n) => {\r\n const panel = nineZone.panels[side];\r\n panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);\r\n});\r\n"]}
1
+ {"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport produce, { Draft } from \"immer\";\r\nimport { StagePanelLocation, StagePanelSection, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetHost } from \"../widgets/WidgetHost\";\r\nimport { StagePanelMaxSizeSpec, StagePanelProps, StagePanelZoneProps, StagePanelZonesProps } from \"./StagePanel\";\r\nimport { getStableWidgetProps, ZoneLocation } from \"../zones/Zone\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Enum for StagePanel state.\r\n * @public\r\n */\r\nexport enum StagePanelState {\r\n Off,\r\n Minimized,\r\n Open,\r\n Popup,\r\n}\r\n\r\n/** Panel State Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface PanelStateChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n panelState: StagePanelState;\r\n}\r\n\r\n/** Panel State Changed Event class.\r\n * @beta\r\n */\r\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> { }\r\n\r\n/** @internal */\r\nexport interface PanelSizeChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n size: number | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> { }\r\n\r\n/**\r\n * A StagePanelDef represents each Stage Panel within a Frontstage.\r\n * @public\r\n */\r\nexport class StagePanelDef extends WidgetHost {\r\n private _panelState = StagePanelState.Open;\r\n private _defaultState = StagePanelState.Open;\r\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\r\n private _minSize: number | undefined;\r\n private _size: number | undefined;\r\n private _defaultSize: number | undefined;\r\n private _resizable = true;\r\n private _pinned = true;\r\n private _applicationData?: any;\r\n private _location: StagePanelLocation = StagePanelLocation.Left;\r\n private _panelZones = new StagePanelZonesDef();\r\n\r\n /** Constructor for PanelDef.\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** @internal */\r\n public get maxSizeSpec() { return this._maxSizeSpec; }\r\n\r\n /** @internal */\r\n public get minSize() { return this._minSize; }\r\n\r\n /** Default size of the panel */\r\n public get size() {\r\n // istanbul ignore next\r\n if (\"1\" === UiFramework.uiVersion)\r\n return this._size;\r\n\r\n // istanbul ignore else\r\n if (FrontstageManager.activeFrontstageDef) {\r\n const [_, size] = FrontstageManager.activeFrontstageDef.getPanelCurrentState(this);\r\n return size;\r\n }\r\n // istanbul ignore next\r\n return this._defaultSize;\r\n }\r\n\r\n public set size(size) {\r\n if (this._size === size)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (UiFramework.uiVersion === \"2\") {\r\n const frontstageDef = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = setPanelSize(frontstageDef.nineZoneState, side, size);\r\n const panel = frontstageDef.nineZoneState.panels[side];\r\n if (panel.size === this._size)\r\n return;\r\n size = panel.size;\r\n }\r\n }\r\n this._size = size;\r\n FrontstageManager.onPanelSizeChangedEvent.emit({\r\n panelDef: this,\r\n size,\r\n });\r\n }\r\n\r\n /** Indicates whether the panel is resizable. */\r\n // istanbul ignore next\r\n public get resizable(): boolean { return this._resizable; }\r\n\r\n /** Indicates whether the panel is pinned. */\r\n public get pinned(): boolean { return this._pinned; }\r\n\r\n /** Any application data to attach to this Panel. */\r\n public get applicationData(): any | undefined { return this._applicationData; }\r\n /** Location of panel. */\r\n public get location(): StagePanelLocation { return this._location; }\r\n\r\n /** Panel state. Defaults to PanelState.Open. */\r\n public get panelState() {\r\n if (\"1\" === UiFramework.uiVersion)\r\n return this._panelState;\r\n\r\n // istanbul ignore else\r\n if (FrontstageManager.activeFrontstageDef) {\r\n const [state] = FrontstageManager.activeFrontstageDef?.getPanelCurrentState(this);\r\n return state;\r\n }\r\n // istanbul ignore next\r\n return this.defaultState;\r\n }\r\n\r\n public set panelState(panelState: StagePanelState) {\r\n if (panelState === this._panelState)\r\n return;\r\n const frontstageDef = FrontstageManager.activeFrontstageDef;\r\n if (UiFramework.uiVersion === \"2\" && frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = produce(frontstageDef.nineZoneState, (nineZone) => {\r\n const panel = nineZone.panels[side];\r\n switch (panelState) {\r\n case StagePanelState.Minimized: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n case StagePanelState.Open: {\r\n panel.collapsed = false;\r\n break;\r\n }\r\n case StagePanelState.Off: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n this._panelState = panelState;\r\n FrontstageManager.onPanelStateChangedEvent.emit({\r\n panelDef: this,\r\n panelState,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public get defaultState() { return this._defaultState; }\r\n\r\n /** @internal */\r\n public get defaultSize() { return this._defaultSize; }\r\n\r\n /** Panel zones.\r\n * @internal\r\n */\r\n public get panelZones() {\r\n return this._panelZones;\r\n }\r\n\r\n /** @internal */\r\n public initializeFromProps(props?: StagePanelProps, panelLocation?: StagePanelLocation): void {\r\n if (panelLocation !== undefined)\r\n this._location = panelLocation;\r\n if (!props)\r\n return;\r\n this._size = props.size;\r\n this._defaultSize = props.size;\r\n this._maxSizeSpec = props.maxSize;\r\n this._minSize = props.minSize;\r\n if (panelLocation !== undefined)\r\n this._location = panelLocation;\r\n if (props.defaultState !== undefined) {\r\n this._panelState = props.defaultState;\r\n this._defaultState = props.defaultState;\r\n }\r\n this._resizable = props.resizable;\r\n if (props.pinned !== undefined)\r\n this._pinned = props.pinned;\r\n if (props.applicationData !== undefined)\r\n this._applicationData = props.applicationData;\r\n if (props.panelZones) {\r\n this._panelZones.initializeFromProps(props.panelZones, this._location);\r\n }\r\n\r\n if (props.widgets) {\r\n props.widgets.forEach((widgetNode, index) => {\r\n const stableId = `uifw-sp-${StagePanelLocation[this._location]}-${index}`;\r\n const stableProps = getStableWidgetProps(widgetNode.props, stableId);\r\n const widgetDef = new WidgetDef(stableProps);\r\n this.addWidgetDef(widgetDef);\r\n });\r\n }\r\n }\r\n\r\n /** Gets the list of Widgets. */\r\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\r\n const widgetDefs = [...super.widgetDefs];\r\n for (const [, panelZone] of this.panelZones) {\r\n widgetDefs.push(...panelZone.widgetDefs);\r\n }\r\n return widgetDefs;\r\n }\r\n\r\n /** Gets the list of Widgets (w/o StagePanelZone widgets).\r\n * @internal\r\n */\r\n public get panelWidgetDefs() {\r\n return super.widgetDefs;\r\n }\r\n\r\n /** @internal */\r\n public override updateDynamicWidgetDefs(stageId: string, stageUsage: string, location: ZoneLocation | StagePanelLocation, _section: StagePanelSection | undefined,\r\n allStageWidgetDefs: WidgetDef[], frontstageApplicationData?: any,\r\n ): void {\r\n this.panelZones.start.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Start, allStageWidgetDefs, frontstageApplicationData);\r\n this.panelZones.end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Middle, allStageWidgetDefs, frontstageApplicationData);\r\n this.panelZones.end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.End, allStageWidgetDefs, frontstageApplicationData);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type StagePanelZoneDefKeys = keyof Pick<StagePanelZonesDef, \"start\" | \"end\">;\r\n\r\nconst stagePanelZoneDefKeys: StagePanelZoneDefKeys[] = [\"start\", \"end\"];\r\n\r\n/** @internal */\r\nexport class StagePanelZonesDef {\r\n private _start = new StagePanelZoneDef();\r\n private _end = new StagePanelZoneDef();\r\n\r\n public get start() {\r\n return this._start;\r\n }\r\n\r\n public get end() {\r\n return this._end;\r\n }\r\n\r\n /** @internal */\r\n public initializeFromProps(props: StagePanelZonesProps, panelLocation: StagePanelLocation): void {\r\n if (props.start) {\r\n this.start.initializeFromProps(props.start, panelLocation, \"start\");\r\n }\r\n if (props.middle) {\r\n this.end.initializeFromProps(props.middle, panelLocation, \"end\");\r\n }\r\n if (props.end) {\r\n this.end.initializeFromProps(props.end, panelLocation, \"end\");\r\n }\r\n }\r\n\r\n /** @internal */\r\n public *[Symbol.iterator](): Iterator<[StagePanelZoneDefKeys, StagePanelZoneDef]> {\r\n for (const key of stagePanelZoneDefKeys) {\r\n const value = this[key];\r\n yield [key, value];\r\n }\r\n return undefined;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StagePanelZoneDef extends WidgetHost {\r\n /** @internal */\r\n public initializeFromProps(props: StagePanelZoneProps, panelLocation: StagePanelLocation, panelZone: StagePanelZoneDefKeys): void {\r\n props.widgets.forEach((widgetNode, index) => {\r\n const stableId = `uifw-spz-${StagePanelLocation[panelLocation]}-${panelZone}-${index}`;\r\n const stableProps = getStableWidgetProps(widgetNode.props, stableId);\r\n const widgetDef = new WidgetDef(stableProps);\r\n this.addWidgetDef(widgetDef);\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\r\n switch (location) {\r\n case StagePanelLocation.Bottom:\r\n case StagePanelLocation.BottomMost:\r\n return \"bottom\";\r\n case StagePanelLocation.Left:\r\n return \"left\";\r\n case StagePanelLocation.Right:\r\n return \"right\";\r\n case StagePanelLocation.Top:\r\n case StagePanelLocation.TopMost:\r\n return \"top\";\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const setPanelSize = produce((\r\n nineZone: Draft<NineZoneState>,\r\n side: PanelSide,\r\n size: number | undefined,\r\n) => {\r\n const panel = nineZone.panels[side];\r\n panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);\r\n});\r\n"]}
@@ -43,7 +43,7 @@ export function DockedStatusBarItem(props) {
43
43
  const { onResize } = useStatusBarEntry();
44
44
  const ref = useResizeObserver(onResize);
45
45
  const className = classnames("uifw-statusbar-item-container", props.className);
46
- return (React.createElement("div", { "data-item-id": props.itemId, "data-item-type": "status-bar-item", "data-item-location": props.section, "data-item-priority": props.itemPriority, "data-item-providerid": props.providerId, className: className, ref: ref, style: props.style }, props.children));
46
+ return (React.createElement("div", { "data-item-id": props.itemId, "data-item-type": "status-bar-item", "data-item-location": props.section, "data-item-priority": props.itemPriority, "data-item-provider-id": props.providerId, className: className, ref: ref, style: props.style }, props.children));
47
47
  }
48
48
  /** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */
49
49
  // eslint-disable-next-line @typescript-eslint/naming-convention, no-shadow
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.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 StatusBar\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport {\r\n AbstractStatusBarActionItem, AbstractStatusBarLabelItem, CommonStatusBarItem, ConditionalBooleanValue, ConditionalStringValue,\r\n isAbstractStatusBarActionItem, isAbstractStatusBarLabelItem, StatusBarItemsManager, StatusBarLabelSide, StatusBarSection, UiSyncEventArgs,\r\n} from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, useRefs, useResizeObserver } from \"@itwin/core-react\";\r\nimport { eqlOverflown, FooterIndicator } from \"@itwin/appui-layout-react\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { Indicator } from \"../statusfields/Indicator\";\r\nimport { StatusBarOverflow } from \"./Overflow\";\r\nimport { StatusBarOverflowPanel } from \"./OverflowPanel\";\r\nimport { StatusBarCenterSection, StatusBarContext, StatusBarLeftSection, StatusBarRightSection, StatusBarSpaceBetween } from \"./StatusBar\";\r\nimport { isStatusBarItem } from \"./StatusBarItem\";\r\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems\";\r\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems\";\r\n\r\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\r\nfunction getCombinedSectionItemPriority(item: CommonStatusBarItem) {\r\n let sectionValue = 0;\r\n if (item.section === StatusBarSection.Center)\r\n sectionValue = 100000;\r\n else if (item.section === StatusBarSection.Context)\r\n sectionValue = 200000;\r\n else if (item.section === StatusBarSection.Right)\r\n sectionValue = 300000;\r\n return sectionValue + item.itemPriority;\r\n}\r\n\r\ninterface DockedStatusBarEntryContextArg {\r\n readonly isOverflown: boolean;\r\n readonly onResize: (w: number) => void;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst DockedStatusBarEntryContext = React.createContext<DockedStatusBarEntryContextArg>(null!);\r\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\r\n\r\n/** @internal */\r\nexport function useStatusBarEntry() {\r\n return React.useContext(DockedStatusBarEntryContext);\r\n}\r\n\r\n/** Properties of [[DockedStatusBarItem]] component.\r\n * @internal future\r\n */\r\nexport interface StatusBarItemProps extends CommonProps {\r\n /** Tool setting content. */\r\n children?: React.ReactNode;\r\n itemPriority?: number;\r\n providerId?: string;\r\n section?: string;\r\n}\r\n\r\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\r\n * @internal future\r\n */\r\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\r\n const { onResize } = useStatusBarEntry();\r\n const ref = useResizeObserver<HTMLDivElement>(onResize);\r\n const className = classnames(\r\n \"uifw-statusbar-item-container\",\r\n props.className,\r\n );\r\n return (\r\n <div\r\n data-item-id={props.itemId}\r\n data-item-type=\"status-bar-item\"\r\n data-item-location={props.section}\r\n data-item-priority={props.itemPriority}\r\n data-item-providerid={props.providerId}\r\n className={className}\r\n ref={ref}\r\n style={props.style}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}\r\n\r\ninterface DockedStatusBarEntryProps {\r\n children?: React.ReactNode;\r\n entryKey: string;\r\n getOnResize: (key: string) => (w: number) => void;\r\n}\r\n\r\n/** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, no-shadow\r\nconst DockedStatusBarEntry = React.memo<DockedStatusBarEntryProps>(function DockedStatusbarEntry({ children, entryKey, getOnResize }) {\r\n const onResize = React.useMemo(() => getOnResize(entryKey), [getOnResize, entryKey]);\r\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(() => ({\r\n isOverflown: false,\r\n onResize,\r\n }), [onResize]);\r\n return (\r\n <DockedStatusBarEntryContext.Provider value={entry}>\r\n {children}\r\n </DockedStatusBarEntryContext.Provider>\r\n );\r\n});\r\n\r\n/** Private function to set up sync event monitoring of statusbar items */\r\nfunction useStatusBarItemSyncEffect(itemsManager: StatusBarItemsManager, syncIdsOfInterest: string[]) {\r\n React.useEffect(() => {\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n if (0 === syncIdsOfInterest.length)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n // process each item that has interest\r\n itemsManager.refreshAffectedItems(args.eventIds);\r\n }\r\n };\r\n\r\n // Note: that items with conditions have condition run when loaded into the items manager\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n return () => {\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\r\n };\r\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\r\n}\r\n\r\n/** function to produce a StatusBarItem component from an AbstractStatusBarLabelItem */\r\nfunction generateActionStatusLabelItem(item: AbstractStatusBarLabelItem, isInFooterMode: boolean): React.ReactNode {\r\n const iconPaddingClass = item.labelSide === StatusBarLabelSide.Left ? \"nz-icon-padding-right\" : \"nz-icon-padding-left\";\r\n return (<FooterIndicator\r\n isInFooterMode={isInFooterMode}\r\n >\r\n {item.icon && <Icon iconSpec={item.icon} />}\r\n {item.label && <span className={iconPaddingClass}>{ConditionalStringValue.getValue(item.label)}</span>}\r\n </FooterIndicator>\r\n );\r\n}\r\n\r\n/** function to produce a StatusBarItem component from an AbstractStatusBarActionItem */\r\nfunction generateActionStatusBarItem(item: AbstractStatusBarActionItem, isInFooterMode: boolean): React.ReactNode {\r\n return <Indicator toolTip={ConditionalStringValue.getValue(item.tooltip)} opened={false} onClick={item.execute} iconSpec={item.icon}\r\n isInFooterMode={isInFooterMode} />;\r\n}\r\n\r\n/** local function to combine items from Stage and from Extensions */\r\nfunction combineItems(stageItems: ReadonlyArray<CommonStatusBarItem>, addonItems: ReadonlyArray<CommonStatusBarItem>) {\r\n const items: CommonStatusBarItem[] = [];\r\n if (stageItems.length) {\r\n // Walk through each and ensure no duplicate ids are added.\r\n stageItems.forEach((srcItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n items.push(srcItem);\r\n }\r\n });\r\n }\r\n if (addonItems.length) {\r\n // Walk through each and ensure no duplicate ids are added.\r\n addonItems.forEach((srcItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n items.push(srcItem);\r\n }\r\n });\r\n }\r\n return items;\r\n}\r\n\r\n/** local function to ensure a width value is defined for a status bar entries. */\r\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\r\n for (const [, val] of map) {\r\n // istanbul ignore next\r\n if (val === undefined)\r\n return undefined;\r\n }\r\n return map as Map<string, T>;\r\n}\r\n\r\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\r\nfunction getItemToPlaceInOverflow(width: number, docked: ReadonlyArray<readonly [string, number]>, overflowWidth: number) {\r\n let settingsWidth = 0;\r\n\r\n let i = 0;\r\n for (; i < docked.length; i++) {\r\n const w = docked[i][1];\r\n const newSettingsWidth = settingsWidth + w;\r\n if (newSettingsWidth > width) {\r\n settingsWidth += overflowWidth;\r\n break;\r\n }\r\n settingsWidth = newSettingsWidth;\r\n }\r\n\r\n let j = i;\r\n for (; j > 0; j--) {\r\n if (settingsWidth <= width)\r\n break;\r\n const w = docked[j][1];\r\n settingsWidth -= w;\r\n }\r\n\r\n const overflowItems = new Array<string>();\r\n for (i = j; i < docked.length; i++) {\r\n overflowItems.push(docked[i][0]);\r\n }\r\n return overflowItems;\r\n}\r\n\r\nfunction isItemInOverflow(id: string, overflowItemIds: ReadonlyArray<string> | undefined) {\r\n if (!overflowItemIds || 0 === overflowItemIds.length)\r\n return false;\r\n return !!overflowItemIds.find((value) => value === id);\r\n}\r\n\r\n/** Properties for the [[StatusBarComposer]] React components\r\n * @public\r\n */\r\nexport interface StatusBarComposerProps extends CommonProps {\r\n /** Status Bar items */\r\n items: CommonStatusBarItem[];\r\n\r\n /** CSS class name override for the overall Status Bar */\r\n mainClassName?: string;\r\n /** CSS class name override for the left section */\r\n leftClassName?: string;\r\n /** CSS class name override for the center section */\r\n centerClassName?: string;\r\n /** CSS class name override for the right section */\r\n rightClassName?: string;\r\n}\r\n\r\n/** Component to load components into the [[StatusBar]].\r\n * @public\r\n */\r\nexport function StatusBarComposer(props: StatusBarComposerProps) {\r\n const { className, style, items, mainClassName, leftClassName, centerClassName, rightClassName } = props;\r\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new StatusBarItemsManager(items));\r\n const [isOverflowPanelOpen, setIsOverflowPanelOpen] = React.useState(false);\r\n const containerWidth = React.useRef<number | undefined>(undefined);\r\n\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 setDefaultItemsManager(new StatusBarItemsManager(items));\r\n }\r\n }, [items]);\r\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\r\n const syncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);\r\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\r\n\r\n const statusBarContext = React.useContext(StatusBarContext);\r\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\r\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\r\n const addonSyncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);\r\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\r\n\r\n const statusBarItems = React.useMemo(() => combineItems(defaultItems, addonItems), [defaultItems, addonItems]);\r\n const entryWidths = React.useRef(new Map<string, number | undefined>());\r\n const overflowWidth = React.useRef<number | undefined>(undefined);\r\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\r\n\r\n const calculateOverflow = React.useCallback(() => {\r\n const widths = verifiedMapEntries(entryWidths.current);\r\n if (containerWidth.current === undefined ||\r\n widths === undefined ||\r\n overflowWidth.current === undefined\r\n ) {\r\n setOverflown(new Array<string>());\r\n return;\r\n }\r\n\r\n // Calculate overflow.\r\n const newOverflown = getItemToPlaceInOverflow(containerWidth.current, [...widths.entries()], overflowWidth.current);\r\n if (!eqlOverflown(overflown, newOverflown)) {\r\n setOverflown(newOverflown);\r\n // istanbul ignore next\r\n if (0 === newOverflown.length && isOverflowPanelOpen)\r\n setIsOverflowPanelOpen(false);\r\n }\r\n }, [isOverflowPanelOpen, overflown]);\r\n\r\n const handleOverflowResize = React.useCallback((w: number) => {\r\n const calculate = overflowWidth.current !== w;\r\n overflowWidth.current = w;\r\n calculate && calculateOverflow();\r\n }, [calculateOverflow]);\r\n\r\n const handleEntryResize = React.useCallback((key: string) => (w: number) => {\r\n const oldW = entryWidths.current.get(key);\r\n if ((undefined === oldW) || Math.abs(oldW - w) > 2) {\r\n entryWidths.current.set(key, w);\r\n calculateOverflow();\r\n }\r\n }, [calculateOverflow]);\r\n\r\n const getSectionName = (section: StatusBarSection) => {\r\n switch (section) {\r\n case StatusBarSection.Center:\r\n case StatusBarSection.Stage:\r\n return \"status-bar-center\";\r\n case StatusBarSection.Context:\r\n return \"status-bar-right-start\";\r\n case StatusBarSection.Right:\r\n case StatusBarSection.Selection:\r\n return \"status-bar-right-end\";\r\n case StatusBarSection.Left:\r\n case StatusBarSection.Message:\r\n return \"status-bar-left\";\r\n }\r\n };\r\n\r\n /** generate a wrapped status bar entry that will report its size. */\r\n const getComponent = React.useCallback((item: CommonStatusBarItem, key: string, itemPriority: number,\r\n section: StatusBarSection, providerId?: string): React.ReactNode => {\r\n return (\r\n <DockedStatusBarEntry\r\n key={key}\r\n entryKey={key}\r\n getOnResize={handleEntryResize}\r\n >\r\n <DockedStatusBarItem key={key} itemId={item.id} itemPriority={itemPriority} providerId={providerId} section={getSectionName(section)} >\r\n {isStatusBarItem(item) && item.reactNode}\r\n {isAbstractStatusBarActionItem(item) && generateActionStatusBarItem(item, statusBarContext.isInFooterMode)}\r\n {isAbstractStatusBarLabelItem(item) && generateActionStatusLabelItem(item, statusBarContext.isInFooterMode)}\r\n </DockedStatusBarItem>\r\n </DockedStatusBarEntry>\r\n );\r\n }, [statusBarContext.isInFooterMode, handleEntryResize]);\r\n\r\n const getSectionItems = React.useCallback((section: StatusBarSection): React.ReactNode[] => {\r\n const sectionItems = statusBarItems\r\n .filter((item) => item.section as number === section && !isItemInOverflow(item.id, overflown) && !ConditionalBooleanValue.getValue(item.isHidden))\r\n .sort((a, b) => a.itemPriority - b.itemPriority);\r\n\r\n return sectionItems.map((sectionItem) => (\r\n <React.Fragment key={sectionItem.id}>\r\n {getComponent(sectionItem, sectionItem.id, sectionItem.itemPriority, sectionItem.section, sectionItem.providerId)}\r\n </React.Fragment>\r\n ));\r\n }, [statusBarItems, overflown, getComponent]);\r\n\r\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\r\n const itemsInOverflow = statusBarItems\r\n .filter((item) => isItemInOverflow(item.id, overflown) && !ConditionalBooleanValue.getValue(item.isHidden))\r\n .sort((a, b) => getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)).reverse();\r\n\r\n return itemsInOverflow.map((item) => (\r\n <React.Fragment key={item.id}>\r\n {getComponent(item, item.id, item.itemPriority, item.section, item.providerId)}\r\n </React.Fragment>\r\n ));\r\n }, [statusBarItems, overflown, getComponent]);\r\n\r\n const handleContainerResize = React.useCallback((w: number) => {\r\n if ((undefined === containerWidth.current) || Math.abs(containerWidth.current - w) > 2) {\r\n containerWidth.current = w;\r\n calculateOverflow();\r\n }\r\n }, [calculateOverflow]);\r\n\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const targetRef = React.useRef<HTMLDivElement>(null);\r\n const resizeObserverRef = useResizeObserver(handleContainerResize);\r\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\r\n const refs = useRefs(containerRef, resizeObserverRef);\r\n\r\n const onOverflowClick = React.useCallback(() => {\r\n setIsOverflowPanelOpen((prev) => !prev);\r\n }, []);\r\n // istanbul ignore next\r\n const handleOnClose = React.useCallback(() => {\r\n setIsOverflowPanelOpen(false);\r\n }, []);\r\n const leftItems = React.useMemo(() => getSectionItems(StatusBarSection.Left), [getSectionItems]);\r\n const centerItems = React.useMemo(() => getSectionItems(StatusBarSection.Center), [getSectionItems]);\r\n const rightItems = React.useMemo(() => getSectionItems(StatusBarSection.Right), [getSectionItems]);\r\n const contextItems = React.useMemo(() => getSectionItems(StatusBarSection.Context), [getSectionItems]);\r\n const overflowItems = React.useMemo(() => getOverflowItems(), [getOverflowItems]);\r\n\r\n const containerClassName = classnames(\r\n \"uifw-statusbar-docked\",\r\n className,\r\n );\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n ref={refs}\r\n style={style}\r\n role=\"presentation\"\r\n >\r\n <StatusBarSpaceBetween className={mainClassName}>\r\n <StatusBarLeftSection className={leftClassName}>\r\n {leftItems}\r\n </StatusBarLeftSection>\r\n <StatusBarCenterSection className={centerClassName}>\r\n {centerItems}\r\n {contextItems}\r\n </StatusBarCenterSection>\r\n <StatusBarRightSection className={rightClassName}>\r\n {rightItems}\r\n {(!overflown || overflown.length > 0) && (\r\n <>\r\n <StatusBarOverflow\r\n onClick={onOverflowClick}\r\n onResize={handleOverflowResize}\r\n ref={targetRef}\r\n />\r\n {overflowItems.length > 0 && isOverflowPanelOpen && targetRef.current &&\r\n <StatusBarOverflowPanel\r\n onClose={handleOnClose}\r\n open={true}\r\n target={targetRef.current}\r\n >\r\n <div className=\"uifw-statusbar-overflow-items-container\" data-testid=\"uifw-statusbar-overflow-items-container\">\r\n {overflowItems.map((overflowEntry) => overflowEntry)}\r\n </div>\r\n </StatusBarOverflowPanel>\r\n }\r\n </>\r\n )}\r\n\r\n </StatusBarRightSection>\r\n </StatusBarSpaceBetween>\r\n </div>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"StatusBarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarComposer.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 StatusBar\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport {\r\n AbstractStatusBarActionItem, AbstractStatusBarLabelItem, CommonStatusBarItem, ConditionalBooleanValue, ConditionalStringValue,\r\n isAbstractStatusBarActionItem, isAbstractStatusBarLabelItem, StatusBarItemsManager, StatusBarLabelSide, StatusBarSection, UiSyncEventArgs,\r\n} from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, useRefs, useResizeObserver } from \"@itwin/core-react\";\r\nimport { eqlOverflown, FooterIndicator } from \"@itwin/appui-layout-react\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { Indicator } from \"../statusfields/Indicator\";\r\nimport { StatusBarOverflow } from \"./Overflow\";\r\nimport { StatusBarOverflowPanel } from \"./OverflowPanel\";\r\nimport { StatusBarCenterSection, StatusBarContext, StatusBarLeftSection, StatusBarRightSection, StatusBarSpaceBetween } from \"./StatusBar\";\r\nimport { isStatusBarItem } from \"./StatusBarItem\";\r\nimport { useDefaultStatusBarItems } from \"./useDefaultStatusBarItems\";\r\nimport { useUiItemsProviderStatusBarItems } from \"./useUiItemsProviderStatusBarItems\";\r\n\r\n/** Private function to generate a value that will allow the proper order to be maintained when items are placed in overflow panel */\r\nfunction getCombinedSectionItemPriority(item: CommonStatusBarItem) {\r\n let sectionValue = 0;\r\n if (item.section === StatusBarSection.Center)\r\n sectionValue = 100000;\r\n else if (item.section === StatusBarSection.Context)\r\n sectionValue = 200000;\r\n else if (item.section === StatusBarSection.Right)\r\n sectionValue = 300000;\r\n return sectionValue + item.itemPriority;\r\n}\r\n\r\ninterface DockedStatusBarEntryContextArg {\r\n readonly isOverflown: boolean;\r\n readonly onResize: (w: number) => void;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst DockedStatusBarEntryContext = React.createContext<DockedStatusBarEntryContextArg>(null!);\r\nDockedStatusBarEntryContext.displayName = \"nz:DockedStatusBarEntryContext\";\r\n\r\n/** @internal */\r\nexport function useStatusBarEntry() {\r\n return React.useContext(DockedStatusBarEntryContext);\r\n}\r\n\r\n/** Properties of [[DockedStatusBarItem]] component.\r\n * @internal future\r\n */\r\nexport interface StatusBarItemProps extends CommonProps {\r\n /** Tool setting content. */\r\n children?: React.ReactNode;\r\n itemPriority?: number;\r\n providerId?: string;\r\n section?: string;\r\n}\r\n\r\n/** Used in [[StatusBarComposer]] component to display a statusbar item.\r\n * @internal future\r\n */\r\nexport function DockedStatusBarItem(props: StatusBarItemProps) {\r\n const { onResize } = useStatusBarEntry();\r\n const ref = useResizeObserver<HTMLDivElement>(onResize);\r\n const className = classnames(\r\n \"uifw-statusbar-item-container\",\r\n props.className,\r\n );\r\n return (\r\n <div\r\n data-item-id={props.itemId}\r\n data-item-type=\"status-bar-item\"\r\n data-item-location={props.section}\r\n data-item-priority={props.itemPriority}\r\n data-item-provider-id={props.providerId}\r\n className={className}\r\n ref={ref}\r\n style={props.style}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}\r\n\r\ninterface DockedStatusBarEntryProps {\r\n children?: React.ReactNode;\r\n entryKey: string;\r\n getOnResize: (key: string) => (w: number) => void;\r\n}\r\n\r\n/** Wrapper for status bar entries so their size can be used to determine if the status bar container can display them or if they will need to be placed in an overflow panel. */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, no-shadow\r\nconst DockedStatusBarEntry = React.memo<DockedStatusBarEntryProps>(function DockedStatusbarEntry({ children, entryKey, getOnResize }) {\r\n const onResize = React.useMemo(() => getOnResize(entryKey), [getOnResize, entryKey]);\r\n const entry = React.useMemo<DockedStatusBarEntryContextArg>(() => ({\r\n isOverflown: false,\r\n onResize,\r\n }), [onResize]);\r\n return (\r\n <DockedStatusBarEntryContext.Provider value={entry}>\r\n {children}\r\n </DockedStatusBarEntryContext.Provider>\r\n );\r\n});\r\n\r\n/** Private function to set up sync event monitoring of statusbar items */\r\nfunction useStatusBarItemSyncEffect(itemsManager: StatusBarItemsManager, syncIdsOfInterest: string[]) {\r\n React.useEffect(() => {\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n if (0 === syncIdsOfInterest.length)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n // process each item that has interest\r\n itemsManager.refreshAffectedItems(args.eventIds);\r\n }\r\n };\r\n\r\n // Note: that items with conditions have condition run when loaded into the items manager\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n return () => {\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\r\n };\r\n }, [itemsManager, itemsManager.items, syncIdsOfInterest]);\r\n}\r\n\r\n/** function to produce a StatusBarItem component from an AbstractStatusBarLabelItem */\r\nfunction generateActionStatusLabelItem(item: AbstractStatusBarLabelItem, isInFooterMode: boolean): React.ReactNode {\r\n const iconPaddingClass = item.labelSide === StatusBarLabelSide.Left ? \"nz-icon-padding-right\" : \"nz-icon-padding-left\";\r\n return (<FooterIndicator\r\n isInFooterMode={isInFooterMode}\r\n >\r\n {item.icon && <Icon iconSpec={item.icon} />}\r\n {item.label && <span className={iconPaddingClass}>{ConditionalStringValue.getValue(item.label)}</span>}\r\n </FooterIndicator>\r\n );\r\n}\r\n\r\n/** function to produce a StatusBarItem component from an AbstractStatusBarActionItem */\r\nfunction generateActionStatusBarItem(item: AbstractStatusBarActionItem, isInFooterMode: boolean): React.ReactNode {\r\n return <Indicator toolTip={ConditionalStringValue.getValue(item.tooltip)} opened={false} onClick={item.execute} iconSpec={item.icon}\r\n isInFooterMode={isInFooterMode} />;\r\n}\r\n\r\n/** local function to combine items from Stage and from Extensions */\r\nfunction combineItems(stageItems: ReadonlyArray<CommonStatusBarItem>, addonItems: ReadonlyArray<CommonStatusBarItem>) {\r\n const items: CommonStatusBarItem[] = [];\r\n if (stageItems.length) {\r\n // Walk through each and ensure no duplicate ids are added.\r\n stageItems.forEach((srcItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n items.push(srcItem);\r\n }\r\n });\r\n }\r\n if (addonItems.length) {\r\n // Walk through each and ensure no duplicate ids are added.\r\n addonItems.forEach((srcItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n items.push(srcItem);\r\n }\r\n });\r\n }\r\n return items;\r\n}\r\n\r\n/** local function to ensure a width value is defined for a status bar entries. */\r\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\r\n for (const [, val] of map) {\r\n // istanbul ignore next\r\n if (val === undefined)\r\n return undefined;\r\n }\r\n return map as Map<string, T>;\r\n}\r\n\r\n/** Returns a subset of docked entry keys that exceed given width and should be placed in overflow panel. */\r\nfunction getItemToPlaceInOverflow(width: number, docked: ReadonlyArray<readonly [string, number]>, overflowWidth: number) {\r\n let settingsWidth = 0;\r\n\r\n let i = 0;\r\n for (; i < docked.length; i++) {\r\n const w = docked[i][1];\r\n const newSettingsWidth = settingsWidth + w;\r\n if (newSettingsWidth > width) {\r\n settingsWidth += overflowWidth;\r\n break;\r\n }\r\n settingsWidth = newSettingsWidth;\r\n }\r\n\r\n let j = i;\r\n for (; j > 0; j--) {\r\n if (settingsWidth <= width)\r\n break;\r\n const w = docked[j][1];\r\n settingsWidth -= w;\r\n }\r\n\r\n const overflowItems = new Array<string>();\r\n for (i = j; i < docked.length; i++) {\r\n overflowItems.push(docked[i][0]);\r\n }\r\n return overflowItems;\r\n}\r\n\r\nfunction isItemInOverflow(id: string, overflowItemIds: ReadonlyArray<string> | undefined) {\r\n if (!overflowItemIds || 0 === overflowItemIds.length)\r\n return false;\r\n return !!overflowItemIds.find((value) => value === id);\r\n}\r\n\r\n/** Properties for the [[StatusBarComposer]] React components\r\n * @public\r\n */\r\nexport interface StatusBarComposerProps extends CommonProps {\r\n /** Status Bar items */\r\n items: CommonStatusBarItem[];\r\n\r\n /** CSS class name override for the overall Status Bar */\r\n mainClassName?: string;\r\n /** CSS class name override for the left section */\r\n leftClassName?: string;\r\n /** CSS class name override for the center section */\r\n centerClassName?: string;\r\n /** CSS class name override for the right section */\r\n rightClassName?: string;\r\n}\r\n\r\n/** Component to load components into the [[StatusBar]].\r\n * @public\r\n */\r\nexport function StatusBarComposer(props: StatusBarComposerProps) {\r\n const { className, style, items, mainClassName, leftClassName, centerClassName, rightClassName } = props;\r\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new StatusBarItemsManager(items));\r\n const [isOverflowPanelOpen, setIsOverflowPanelOpen] = React.useState(false);\r\n const containerWidth = React.useRef<number | undefined>(undefined);\r\n\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 setDefaultItemsManager(new StatusBarItemsManager(items));\r\n }\r\n }, [items]);\r\n const defaultItems = useDefaultStatusBarItems(defaultItemsManager);\r\n const syncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);\r\n useStatusBarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\r\n\r\n const statusBarContext = React.useContext(StatusBarContext);\r\n const [addonItemsManager] = React.useState(() => new StatusBarItemsManager());\r\n const addonItems = useUiItemsProviderStatusBarItems(addonItemsManager);\r\n const addonSyncIdsOfInterest = React.useMemo(() => StatusBarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);\r\n useStatusBarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\r\n\r\n const statusBarItems = React.useMemo(() => combineItems(defaultItems, addonItems), [defaultItems, addonItems]);\r\n const entryWidths = React.useRef(new Map<string, number | undefined>());\r\n const overflowWidth = React.useRef<number | undefined>(undefined);\r\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\r\n\r\n const calculateOverflow = React.useCallback(() => {\r\n const widths = verifiedMapEntries(entryWidths.current);\r\n if (containerWidth.current === undefined ||\r\n widths === undefined ||\r\n overflowWidth.current === undefined\r\n ) {\r\n setOverflown(new Array<string>());\r\n return;\r\n }\r\n\r\n // Calculate overflow.\r\n const newOverflown = getItemToPlaceInOverflow(containerWidth.current, [...widths.entries()], overflowWidth.current);\r\n if (!eqlOverflown(overflown, newOverflown)) {\r\n setOverflown(newOverflown);\r\n // istanbul ignore next\r\n if (0 === newOverflown.length && isOverflowPanelOpen)\r\n setIsOverflowPanelOpen(false);\r\n }\r\n }, [isOverflowPanelOpen, overflown]);\r\n\r\n const handleOverflowResize = React.useCallback((w: number) => {\r\n const calculate = overflowWidth.current !== w;\r\n overflowWidth.current = w;\r\n calculate && calculateOverflow();\r\n }, [calculateOverflow]);\r\n\r\n const handleEntryResize = React.useCallback((key: string) => (w: number) => {\r\n const oldW = entryWidths.current.get(key);\r\n if ((undefined === oldW) || Math.abs(oldW - w) > 2) {\r\n entryWidths.current.set(key, w);\r\n calculateOverflow();\r\n }\r\n }, [calculateOverflow]);\r\n\r\n const getSectionName = (section: StatusBarSection) => {\r\n switch (section) {\r\n case StatusBarSection.Center:\r\n case StatusBarSection.Stage:\r\n return \"status-bar-center\";\r\n case StatusBarSection.Context:\r\n return \"status-bar-right-start\";\r\n case StatusBarSection.Right:\r\n case StatusBarSection.Selection:\r\n return \"status-bar-right-end\";\r\n case StatusBarSection.Left:\r\n case StatusBarSection.Message:\r\n return \"status-bar-left\";\r\n }\r\n };\r\n\r\n /** generate a wrapped status bar entry that will report its size. */\r\n const getComponent = React.useCallback((item: CommonStatusBarItem, key: string, itemPriority: number,\r\n section: StatusBarSection, providerId?: string): React.ReactNode => {\r\n return (\r\n <DockedStatusBarEntry\r\n key={key}\r\n entryKey={key}\r\n getOnResize={handleEntryResize}\r\n >\r\n <DockedStatusBarItem key={key} itemId={item.id} itemPriority={itemPriority} providerId={providerId} section={getSectionName(section)} >\r\n {isStatusBarItem(item) && item.reactNode}\r\n {isAbstractStatusBarActionItem(item) && generateActionStatusBarItem(item, statusBarContext.isInFooterMode)}\r\n {isAbstractStatusBarLabelItem(item) && generateActionStatusLabelItem(item, statusBarContext.isInFooterMode)}\r\n </DockedStatusBarItem>\r\n </DockedStatusBarEntry>\r\n );\r\n }, [statusBarContext.isInFooterMode, handleEntryResize]);\r\n\r\n const getSectionItems = React.useCallback((section: StatusBarSection): React.ReactNode[] => {\r\n const sectionItems = statusBarItems\r\n .filter((item) => item.section as number === section && !isItemInOverflow(item.id, overflown) && !ConditionalBooleanValue.getValue(item.isHidden))\r\n .sort((a, b) => a.itemPriority - b.itemPriority);\r\n\r\n return sectionItems.map((sectionItem) => (\r\n <React.Fragment key={sectionItem.id}>\r\n {getComponent(sectionItem, sectionItem.id, sectionItem.itemPriority, sectionItem.section, sectionItem.providerId)}\r\n </React.Fragment>\r\n ));\r\n }, [statusBarItems, overflown, getComponent]);\r\n\r\n const getOverflowItems = React.useCallback((): React.ReactNode[] => {\r\n const itemsInOverflow = statusBarItems\r\n .filter((item) => isItemInOverflow(item.id, overflown) && !ConditionalBooleanValue.getValue(item.isHidden))\r\n .sort((a, b) => getCombinedSectionItemPriority(a) - getCombinedSectionItemPriority(b)).reverse();\r\n\r\n return itemsInOverflow.map((item) => (\r\n <React.Fragment key={item.id}>\r\n {getComponent(item, item.id, item.itemPriority, item.section, item.providerId)}\r\n </React.Fragment>\r\n ));\r\n }, [statusBarItems, overflown, getComponent]);\r\n\r\n const handleContainerResize = React.useCallback((w: number) => {\r\n if ((undefined === containerWidth.current) || Math.abs(containerWidth.current - w) > 2) {\r\n containerWidth.current = w;\r\n calculateOverflow();\r\n }\r\n }, [calculateOverflow]);\r\n\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const targetRef = React.useRef<HTMLDivElement>(null);\r\n const resizeObserverRef = useResizeObserver(handleContainerResize);\r\n // allow both the containerRef and the resize observer function that takes a ref to be processed when the ref is set.\r\n const refs = useRefs(containerRef, resizeObserverRef);\r\n\r\n const onOverflowClick = React.useCallback(() => {\r\n setIsOverflowPanelOpen((prev) => !prev);\r\n }, []);\r\n // istanbul ignore next\r\n const handleOnClose = React.useCallback(() => {\r\n setIsOverflowPanelOpen(false);\r\n }, []);\r\n const leftItems = React.useMemo(() => getSectionItems(StatusBarSection.Left), [getSectionItems]);\r\n const centerItems = React.useMemo(() => getSectionItems(StatusBarSection.Center), [getSectionItems]);\r\n const rightItems = React.useMemo(() => getSectionItems(StatusBarSection.Right), [getSectionItems]);\r\n const contextItems = React.useMemo(() => getSectionItems(StatusBarSection.Context), [getSectionItems]);\r\n const overflowItems = React.useMemo(() => getOverflowItems(), [getOverflowItems]);\r\n\r\n const containerClassName = classnames(\r\n \"uifw-statusbar-docked\",\r\n className,\r\n );\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n ref={refs}\r\n style={style}\r\n role=\"presentation\"\r\n >\r\n <StatusBarSpaceBetween className={mainClassName}>\r\n <StatusBarLeftSection className={leftClassName}>\r\n {leftItems}\r\n </StatusBarLeftSection>\r\n <StatusBarCenterSection className={centerClassName}>\r\n {centerItems}\r\n {contextItems}\r\n </StatusBarCenterSection>\r\n <StatusBarRightSection className={rightClassName}>\r\n {rightItems}\r\n {(!overflown || overflown.length > 0) && (\r\n <>\r\n <StatusBarOverflow\r\n onClick={onOverflowClick}\r\n onResize={handleOverflowResize}\r\n ref={targetRef}\r\n />\r\n {overflowItems.length > 0 && isOverflowPanelOpen && targetRef.current &&\r\n <StatusBarOverflowPanel\r\n onClose={handleOnClose}\r\n open={true}\r\n target={targetRef.current}\r\n >\r\n <div className=\"uifw-statusbar-overflow-items-container\" data-testid=\"uifw-statusbar-overflow-items-container\">\r\n {overflowItems.map((overflowEntry) => overflowEntry)}\r\n </div>\r\n </StatusBarOverflowPanel>\r\n }\r\n </>\r\n )}\r\n\r\n </StatusBarRightSection>\r\n </StatusBarSpaceBetween>\r\n </div>\r\n );\r\n}\r\n"]}
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import "./Indicator.scss";
5
5
  import * as React from "react";
6
- import { ConditionalStringValue, StatusBarLabelSide } from "@itwin/appui-abstract";
7
- import { CommonProps } from "@itwin/core-react";
6
+ import { StatusBarLabelSide } from "@itwin/appui-abstract";
7
+ import { CommonProps, IconSpec } from "@itwin/core-react";
8
8
  import { FooterPopupContentType } from "@itwin/appui-layout-react";
9
9
  /** Properties of [[Indicator]] component. */
10
10
  interface IndicatorProps extends CommonProps {
@@ -15,7 +15,7 @@ interface IndicatorProps extends CommonProps {
15
15
  /** Icon to use in the footer. @deprecated use iconSpec */
16
16
  iconName?: string;
17
17
  /** specification for Icon, overrides iconName specification */
18
- iconSpec?: string | ConditionalStringValue;
18
+ iconSpec?: IconSpec;
19
19
  /** Describes if the indicator label is visible. */
20
20
  isLabelVisible?: boolean;
21
21
  /** Indicator label. */
@@ -1 +1 @@
1
- {"version":3,"file":"Indicator.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAQ,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAe,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEhF,6CAA6C;AAC7C,UAAU,cAAe,SAAQ,WAAW;IAC1C,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAC3C,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kHAAkH;IAClH,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,eA0C9C"}
1
+ {"version":3,"file":"Indicator.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA0B,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAQ,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAe,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEhF,6CAA6C;AAC7C,UAAU,cAAe,SAAQ,WAAW;IAC1C,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kHAAkH;IAClH,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,eA0C9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.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 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 } 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 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 use iconSpec */\r\n iconName?: string;\r\n /** specification for Icon, overrides iconName specification */\r\n iconSpec?: string | ConditionalStringValue;\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 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;\r\n}\r\n\r\n/** General-purpose [[Footer]] indicator. Shows an icon and supports an optional popup dialog.\r\n * @beta\r\n */\r\nexport function Indicator(props: IndicatorProps) {\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 <>\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}\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":"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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 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 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 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 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;\r\n}\r\n\r\n/** General-purpose [[Footer]] indicator. Shows an icon and supports an optional popup dialog.\r\n * @beta\r\n */\r\nexport function Indicator(props: IndicatorProps) {\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 <>\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}\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"]}
@@ -42,7 +42,7 @@ export class TileLoadingIndicator extends React.PureComponent {
42
42
  };
43
43
  this._update = (vp) => {
44
44
  // set progress animation before the next repaint.
45
- setImmediate(() => this._refreshState(vp));
45
+ setTimeout(() => this._refreshState(vp));
46
46
  };
47
47
  this._onViewOpen = (vp) => {
48
48
  // istanbul ignore next
@@ -1 +1 @@
1
- {"version":3,"file":"TileLoadingIndicator.js","sourceRoot":"","sources":["../../../../../src/appui-react/statusfields/tileloading/TileLoadingIndicator.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 StatusBar\r\n */\r\n\r\nimport \"./TileLoadingIndicator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, ScreenViewport, Viewport } from \"@itwin/core-frontend\";\r\nimport { ProgressLinear } from \"@itwin/itwinui-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { StatusFieldProps } from \"../StatusFieldProps\";\r\n\r\n/** State for the [[TileLoadingIndicator]] component\r\n * @internal\r\n */\r\ninterface TileLoadingIndicatorState {\r\n label: string;\r\n progress: number;\r\n enabled: boolean;\r\n finished: boolean;\r\n}\r\n\r\n/** TileLoadingIndicator React component\r\n * @public\r\n */\r\nexport class TileLoadingIndicator extends React.PureComponent<StatusFieldProps, TileLoadingIndicatorState> {\r\n private _removeViewOpenListener?: () => void;\r\n private _removeOnRenderListener?: () => void;\r\n\r\n constructor(props: StatusFieldProps) {\r\n super(props);\r\n this.state = { label: \"\", progress: 0, enabled: false, finished: true };\r\n }\r\n\r\n private _refreshState = (vp: Viewport) => {\r\n const requested = vp.numRequestedTiles;\r\n const ready = vp.numReadyTiles;\r\n const total = ready + requested;\r\n const pctComplete = (total > 0) ? (ready / total) * 100 : /* istanbul ignore next */ 100;\r\n let enabled = this.state.enabled;\r\n let finished = this.state.finished;\r\n\r\n // istanbul ignore else\r\n if (!enabled && total !== 0 && pctComplete !== 100)\r\n enabled = true;\r\n\r\n if (enabled && (total === 0 || pctComplete === 100))\r\n enabled = false;\r\n\r\n if (pctComplete === 100 && !finished) {\r\n finished = true;\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Tiles Finished Loading`);\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Tiles Load Report (tiles finished / tiles requested): ${ready} / ${total}`);\r\n }\r\n\r\n // istanbul ignore else\r\n if (pctComplete !== 100 && finished)\r\n finished = false;\r\n\r\n this.setState({ label: `${ready} / ${total}`, progress: pctComplete, enabled, finished });\r\n };\r\n\r\n private _update = (vp: Viewport) => {\r\n // set progress animation before the next repaint.\r\n setImmediate(() => this._refreshState(vp));\r\n };\r\n\r\n private _onViewOpen = (vp: ScreenViewport) => {\r\n // istanbul ignore next\r\n this._removeOnRenderListener && this._removeOnRenderListener();\r\n this._removeOnRenderListener = vp.onRender.addListener(this._update);\r\n };\r\n\r\n public override componentDidMount() {\r\n // istanbul ignore next\r\n if (!IModelApp.viewManager)\r\n return;\r\n\r\n // get selected viewport\r\n const vp = IModelApp.viewManager.selectedView;\r\n\r\n // if view exists bind update routine to onRender loop, otherwise do so once the onViewOpen event runs\r\n // istanbul ignore else\r\n if (vp) {\r\n this._onViewOpen(vp);\r\n } else {\r\n this._removeViewOpenListener = IModelApp.viewManager.onViewOpen.addListener(this._onViewOpen);\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n // istanbul ignore next\r\n if (!IModelApp.viewManager)\r\n return;\r\n\r\n // istanbul ignore next\r\n if (this._removeViewOpenListener)\r\n this._removeViewOpenListener();\r\n\r\n // istanbul ignore else\r\n if (this._removeOnRenderListener)\r\n this._removeOnRenderListener();\r\n }\r\n\r\n /** Renders TileLoadingIndicator */\r\n public override render() {\r\n const classes = classnames(\r\n \"uifw-tile-loading-bar\",\r\n this.state.enabled && \"uifw-tile-loading-bar-visible\",\r\n this.props.isInFooterMode && \"nz-footer-mode\",\r\n this.props.className,\r\n );\r\n return (\r\n <div className={classes} style={this.props.style}>\r\n <span>{this.state.label}</span>\r\n <ProgressLinear value={this.state.progress} />\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TileLoadingIndicator.js","sourceRoot":"","sources":["../../../../../src/appui-react/statusfields/tileloading/TileLoadingIndicator.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 StatusBar\r\n */\r\n\r\nimport \"./TileLoadingIndicator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, ScreenViewport, Viewport } from \"@itwin/core-frontend\";\r\nimport { ProgressLinear } from \"@itwin/itwinui-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { StatusFieldProps } from \"../StatusFieldProps\";\r\n\r\n/** State for the [[TileLoadingIndicator]] component\r\n * @internal\r\n */\r\ninterface TileLoadingIndicatorState {\r\n label: string;\r\n progress: number;\r\n enabled: boolean;\r\n finished: boolean;\r\n}\r\n\r\n/** TileLoadingIndicator React component\r\n * @public\r\n */\r\nexport class TileLoadingIndicator extends React.PureComponent<StatusFieldProps, TileLoadingIndicatorState> {\r\n private _removeViewOpenListener?: () => void;\r\n private _removeOnRenderListener?: () => void;\r\n\r\n constructor(props: StatusFieldProps) {\r\n super(props);\r\n this.state = { label: \"\", progress: 0, enabled: false, finished: true };\r\n }\r\n\r\n private _refreshState = (vp: Viewport) => {\r\n const requested = vp.numRequestedTiles;\r\n const ready = vp.numReadyTiles;\r\n const total = ready + requested;\r\n const pctComplete = (total > 0) ? (ready / total) * 100 : /* istanbul ignore next */ 100;\r\n let enabled = this.state.enabled;\r\n let finished = this.state.finished;\r\n\r\n // istanbul ignore else\r\n if (!enabled && total !== 0 && pctComplete !== 100)\r\n enabled = true;\r\n\r\n if (enabled && (total === 0 || pctComplete === 100))\r\n enabled = false;\r\n\r\n if (pctComplete === 100 && !finished) {\r\n finished = true;\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Tiles Finished Loading`);\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Tiles Load Report (tiles finished / tiles requested): ${ready} / ${total}`);\r\n }\r\n\r\n // istanbul ignore else\r\n if (pctComplete !== 100 && finished)\r\n finished = false;\r\n\r\n this.setState({ label: `${ready} / ${total}`, progress: pctComplete, enabled, finished });\r\n };\r\n\r\n private _update = (vp: Viewport) => {\r\n // set progress animation before the next repaint.\r\n setTimeout(() => this._refreshState(vp));\r\n };\r\n\r\n private _onViewOpen = (vp: ScreenViewport) => {\r\n // istanbul ignore next\r\n this._removeOnRenderListener && this._removeOnRenderListener();\r\n this._removeOnRenderListener = vp.onRender.addListener(this._update);\r\n };\r\n\r\n public override componentDidMount() {\r\n // istanbul ignore next\r\n if (!IModelApp.viewManager)\r\n return;\r\n\r\n // get selected viewport\r\n const vp = IModelApp.viewManager.selectedView;\r\n\r\n // if view exists bind update routine to onRender loop, otherwise do so once the onViewOpen event runs\r\n // istanbul ignore else\r\n if (vp) {\r\n this._onViewOpen(vp);\r\n } else {\r\n this._removeViewOpenListener = IModelApp.viewManager.onViewOpen.addListener(this._onViewOpen);\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n // istanbul ignore next\r\n if (!IModelApp.viewManager)\r\n return;\r\n\r\n // istanbul ignore next\r\n if (this._removeViewOpenListener)\r\n this._removeViewOpenListener();\r\n\r\n // istanbul ignore else\r\n if (this._removeOnRenderListener)\r\n this._removeOnRenderListener();\r\n }\r\n\r\n /** Renders TileLoadingIndicator */\r\n public override render() {\r\n const classes = classnames(\r\n \"uifw-tile-loading-bar\",\r\n this.state.enabled && \"uifw-tile-loading-bar-visible\",\r\n this.props.isInFooterMode && \"nz-footer-mode\",\r\n this.props.className,\r\n );\r\n return (\r\n <div className={classes} style={this.props.style}>\r\n <span>{this.state.label}</span>\r\n <ProgressLinear value={this.state.progress} />\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolAssistanceField.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/statusfields/toolassistance/ToolAssistanceField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolAssistanceField.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/statusfields/toolassistance/ToolAssistanceField.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
+ /* eslint-disable deprecation/deprecation */
5
6
  /** @packageDocumentation
6
7
  * @module Notification
7
8
  */
@@ -11,7 +12,7 @@ import * as React from "react";
11
12
  import { Logger } from "@itwin/core-bentley";
12
13
  import { IModelApp, ToolAssistanceImage, ToolAssistanceInputMethod, } from "@itwin/core-frontend";
13
14
  import { IconSpecUtilities } from "@itwin/appui-abstract";
14
- import { FillCentered, Icon, LocalStateStorage, SvgSprite, UiCore, UiStateEntry, UiStateStorageStatus, } from "@itwin/core-react";
15
+ import { FillCentered, Icon, LocalStateStorage, UiCore, UiStateEntry, UiStateStorageStatus, } from "@itwin/core-react";
15
16
  import { FooterPopup, ToolAssistanceInstruction as NZ_ToolAssistanceInstruction, TitleBarButton, ToolAssistance, ToolAssistanceDialog, ToolAssistanceItem, ToolAssistanceSeparator, } from "@itwin/appui-layout-react";
16
17
  import { HorizontalTabs, ToggleSwitch } from "@itwin/itwinui-react";
17
18
  import { CursorPrompt } from "../../cursor/cursorprompt/CursorPrompt";
@@ -19,22 +20,22 @@ import { FrontstageManager } from "../../frontstage/FrontstageManager";
19
20
  import { MessageManager } from "../../messages/MessageManager";
20
21
  import { UiFramework } from "../../UiFramework";
21
22
  import { UiStateStorageContext } from "../../uistate/useUiStateStorage";
22
- import acceptPointIcon from "./accept-point.svg?sprite";
23
- import cursorClickIcon from "./cursor-click.svg?sprite";
24
- import oneTouchDragIcon from "./gesture-one-finger-drag.svg?sprite";
25
- import oneTouchDoubleTapIcon from "./gesture-one-finger-tap-double.svg?sprite";
26
- import oneTouchTapIcon from "./gesture-one-finger-tap.svg?sprite";
27
- import twoTouchPinchIcon from "./gesture-pinch.svg?sprite";
28
- import twoTouchDragIcon from "./gesture-two-finger-drag.svg?sprite";
29
- import twoTouchTapIcon from "./gesture-two-finger-tap.svg?sprite";
30
- import clickLeftDragIcon from "./mouse-click-left-drag.svg?sprite";
31
- import clickLeftIcon from "./mouse-click-left.svg?sprite";
32
- import clickRightDragIcon from "./mouse-click-right-drag.svg?sprite";
33
- import clickRightIcon from "./mouse-click-right.svg?sprite";
34
- import clickMouseWheelDragIcon from "./mouse-click-wheel-drag.svg?sprite";
35
- import mouseWheelClickIcon from "./mouse-click-wheel.svg?sprite";
36
- import touchCursorDragIcon from "./touch-cursor-pan.svg?sprite";
37
- import touchCursorTapIcon from "./touch-cursor-point.svg?sprite";
23
+ import acceptPointIcon from "./accept-point.svg";
24
+ import cursorClickIcon from "./cursor-click.svg";
25
+ import oneTouchDragIcon from "./gesture-one-finger-drag.svg";
26
+ import oneTouchDoubleTapIcon from "./gesture-one-finger-tap-double.svg";
27
+ import oneTouchTapIcon from "./gesture-one-finger-tap.svg";
28
+ import twoTouchPinchIcon from "./gesture-pinch.svg";
29
+ import twoTouchDragIcon from "./gesture-two-finger-drag.svg";
30
+ import twoTouchTapIcon from "./gesture-two-finger-tap.svg";
31
+ import clickLeftDragIcon from "./mouse-click-left-drag.svg";
32
+ import clickLeftIcon from "./mouse-click-left.svg";
33
+ import clickRightDragIcon from "./mouse-click-right-drag.svg";
34
+ import clickRightIcon from "./mouse-click-right.svg";
35
+ import clickMouseWheelDragIcon from "./mouse-click-wheel-drag.svg";
36
+ import mouseWheelClickIcon from "./mouse-click-wheel.svg";
37
+ import touchCursorDragIcon from "./touch-cursor-pan.svg";
38
+ import touchCursorTapIcon from "./touch-cursor-point.svg";
38
39
  /** Tool Assistance Field React component.
39
40
  * @public
40
41
  */
@@ -391,9 +392,10 @@ export class ToolAssistanceField extends React.Component {
391
392
  className = mediumSize ? /* istanbul ignore next */ "uifw-toolassistance-svg-medium-wide" : "uifw-toolassistance-svg-wide";
392
393
  break;
393
394
  }
395
+ const iconSpec = IconSpecUtilities.createWebComponentIconSpec(svgImage);
394
396
  image = (React.createElement("div", { className: className }, svgImage &&
395
397
  // istanbul ignore next
396
- React.createElement(SvgSprite, { src: svgImage })));
398
+ React.createElement(Icon, { iconSpec: iconSpec })));
397
399
  }
398
400
  return image;
399
401
  }