@itwin/appui-react 4.4.0 → 4.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/lib/cjs/appui-react/UiFramework.js +4 -7
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
  5. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  6. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  7. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  8. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  9. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  10. package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
  11. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  12. package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
  13. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  14. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
  15. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  16. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  17. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  18. package/lib/cjs/appui-react/content/IModelViewport.js +3 -6
  19. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  20. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
  21. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  22. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  23. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  24. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
  25. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  26. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  27. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  28. package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
  29. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  30. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
  31. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +17 -7
  34. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  35. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +2 -0
  36. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +2 -0
  38. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  39. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
  40. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  41. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  42. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  43. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  44. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  45. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  46. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  47. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
  48. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  49. package/lib/cjs/appui-react/messages/ActivityMessage.js +5 -7
  50. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  51. package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
  52. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  53. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
  54. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  55. package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
  56. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  57. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  58. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  59. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  60. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  61. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +5 -7
  62. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  63. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  64. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  65. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  66. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  67. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  68. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  69. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +1 -1
  70. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  72. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts +6 -3
  73. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +53 -80
  75. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  76. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  77. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  78. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  79. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  80. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  81. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +10 -17
  82. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  83. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  84. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  85. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  86. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  87. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  88. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  89. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  90. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  91. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  92. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  93. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  94. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  95. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  96. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  97. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  98. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  99. package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
  100. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  101. package/lib/cjs/appui-react/widget-panels/Frontstage.js +43 -45
  102. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  103. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  104. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  105. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  106. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  107. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +21 -23
  109. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  110. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  111. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  112. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  113. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  114. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
  115. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  116. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  117. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  118. package/lib/esm/appui-react/UiFramework.js +4 -7
  119. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  120. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  121. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  122. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  123. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  124. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  125. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  126. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  127. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  128. package/lib/esm/appui-react/content/ContentLayout.js +9 -12
  129. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  130. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  131. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  132. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  133. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  134. package/lib/esm/appui-react/content/IModelViewport.js +3 -6
  135. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  136. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  137. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  138. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  139. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  140. package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
  141. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  142. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  143. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  144. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  145. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  146. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  147. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  148. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  149. package/lib/esm/appui-react/frontstage/FrontstageDef.js +17 -7
  150. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  151. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +2 -0
  152. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  153. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +2 -0
  154. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  155. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  156. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  157. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  158. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  159. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  160. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  161. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  162. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  163. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  164. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  165. package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
  166. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  167. package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
  168. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  169. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
  170. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  171. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  172. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  173. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  174. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  175. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  176. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  177. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +5 -7
  178. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  179. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  180. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  181. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  182. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  183. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  184. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  185. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +1 -1
  186. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  187. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  188. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts +6 -3
  189. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  190. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +53 -80
  191. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  192. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  193. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  194. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  195. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -4
  196. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  197. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +10 -17
  198. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  199. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  200. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  201. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  202. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  203. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  204. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  205. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  206. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  207. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  208. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  209. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  210. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  211. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  212. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  213. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  214. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  215. package/lib/esm/appui-react/widget-panels/Content.js +8 -9
  216. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  217. package/lib/esm/appui-react/widget-panels/Frontstage.js +43 -45
  218. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  219. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  220. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  221. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  222. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  223. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  224. package/lib/esm/appui-react/widget-panels/ToolSettings.js +21 -23
  225. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  226. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  227. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  228. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  229. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  230. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
  231. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  232. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  233. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  234. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"ModalSettingsStage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/ModalSettingsStage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport \"./ModalSettingsStage.scss\";\nimport * as React from \"react\";\nimport {\n ConditionalBooleanValue,\n IconSpecUtilities,\n} from \"@itwin/appui-abstract\";\nimport settingsIconSvg from \"@bentley/icons-generic/icons/settings.svg\";\nimport {\n IModelApp,\n NotifyMessageDetails,\n OutputMessagePriority,\n OutputMessageType,\n} from \"@itwin/core-frontend\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Centered, SettingsContainer } from \"@itwin/core-react\";\nimport type {\n ModalFrontstageInfo,\n ModalFrontstageRequestedCloseEventArgs,\n} from \"../framework/FrameworkFrontstages\";\nimport { UiFramework } from \"../UiFramework\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { StageUsage } from \"./StageUsage\";\nimport { BackstageItemUtilities } from \"../backstage/BackstageItemUtilities\";\n\nfunction ModalSettingsStage({\n initialSettingsTabId,\n}: {\n initialSettingsTabId?: string;\n}) {\n const id = UiFramework.frontstages.activeFrontstageDef?.id ?? \"none\";\n const stageUsage =\n UiFramework.frontstages.activeFrontstageDef?.usage ?? StageUsage.General;\n const tabEntries = UiFramework.settingsManager.getSettingEntries(\n id,\n stageUsage\n );\n const noSettingsAvailableLabel = React.useRef(\n UiFramework.translate(\"settings.noSettingsAvailable\")\n );\n\n const currentSettingsTab = React.useCallback(() => {\n const categoryToFind = initialSettingsTabId\n ? initialSettingsTabId.toLowerCase()\n : tabEntries[0].tabId.toLowerCase();\n let foundTab = tabEntries.find(\n (entry) => entry.tabId.toLowerCase() === categoryToFind\n );\n if (!foundTab)\n foundTab = tabEntries.find(\n (entry) => entry.label.toLowerCase() === categoryToFind\n );\n return foundTab;\n }, [initialSettingsTabId, tabEntries]);\n\n React.useEffect(() => {\n const handleFrontstageCloseRequested = ({\n modalFrontstage,\n stageCloseFunc,\n }: ModalFrontstageRequestedCloseEventArgs) => {\n // istanbul ignore else\n if (\n modalFrontstage instanceof SettingsModalFrontstage &&\n stageCloseFunc\n ) {\n UiFramework.settingsManager.closeSettingsContainer(stageCloseFunc);\n }\n };\n return UiFramework.frontstages.onCloseModalFrontstageRequestedEvent.addListener(\n handleFrontstageCloseRequested\n );\n }, [tabEntries]);\n\n return (\n <div className=\"uifw-settings-container\">\n {tabEntries.length ? (\n <SettingsContainer\n tabs={tabEntries}\n currentSettingsTab={currentSettingsTab()}\n settingsManager={UiFramework.settingsManager}\n />\n ) : (\n <Centered>{noSettingsAvailableLabel.current}</Centered>\n )}\n </div>\n );\n}\n\n/** Modal frontstage displaying and editing settings from registered settings providers. See [SettingsManager]($core-react)\n * and [SettingsContainer]($core-react).\n * @beta\n */\nexport class SettingsModalFrontstage implements ModalFrontstageInfo {\n public static id = \"appui-react.modalSettingsStage\";\n public title: string = UiFramework.translate(\"settings.settingsStageLabel\");\n constructor(public initialSettingsTabId?: string) {}\n public notifyCloseRequest = true;\n public get content(): React.ReactNode {\n return (\n <ModalSettingsStage initialSettingsTabId={this.initialSettingsTabId} />\n );\n }\n private static noSettingsAvailable = () =>\n new ConditionalBooleanValue(\n () => 0 === UiFramework.settingsManager.providers.length,\n [SyncUiEventId.SettingsProvidersChanged]\n );\n\n public static getBackstageActionItem(\n groupPriority: number,\n itemPriority: number\n ) {\n return BackstageItemUtilities.createActionItem(\n SettingsModalFrontstage.id,\n groupPriority,\n itemPriority,\n () =>\n UiFramework.frontstages.openModalFrontstage(\n new SettingsModalFrontstage()\n ),\n UiFramework.translate(\"settings.settingsStageLabel\"),\n undefined,\n IconSpecUtilities.createWebComponentIconSpec(settingsIconSvg),\n { isHidden: SettingsModalFrontstage.noSettingsAvailable() }\n );\n }\n\n public static showSettingsStage(initialSettingsTab?: string) {\n if (UiFramework.settingsManager.providers.length) {\n // Check to see if it is already open\n // istanbul ignore else\n if (\n UiFramework.frontstages.activeModalFrontstage &&\n UiFramework.frontstages.activeModalFrontstage instanceof\n SettingsModalFrontstage\n ) {\n if (initialSettingsTab) {\n UiFramework.settingsManager.activateSettingsTab(initialSettingsTab);\n return;\n }\n }\n UiFramework.frontstages.openModalFrontstage(\n new SettingsModalFrontstage(initialSettingsTab)\n );\n } else {\n const briefMessage = UiFramework.translate(\n \"settings.noSettingsAvailable\"\n );\n const detailedMessage = UiFramework.translate(\n \"settings.noSettingsProvidersRegistered\"\n );\n const info = new NotifyMessageDetails(\n OutputMessagePriority.Info,\n briefMessage,\n detailedMessage,\n OutputMessageType.Toast\n );\n IModelApp.notifications.outputMessage(info);\n Logger.logInfo(UiFramework.loggerCategory(this), detailedMessage);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ModalSettingsStage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/ModalSettingsStage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport \"./ModalSettingsStage.scss\";\nimport * as React from \"react\";\nimport {\n ConditionalBooleanValue,\n IconSpecUtilities,\n} from \"@itwin/appui-abstract\";\nimport settingsIconSvg from \"@bentley/icons-generic/icons/settings.svg\";\nimport {\n IModelApp,\n NotifyMessageDetails,\n OutputMessagePriority,\n OutputMessageType,\n} from \"@itwin/core-frontend\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Centered, SettingsContainer } from \"@itwin/core-react\";\nimport type {\n ModalFrontstageInfo,\n ModalFrontstageRequestedCloseEventArgs,\n} from \"../framework/FrameworkFrontstages\";\nimport { UiFramework } from \"../UiFramework\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { StageUsage } from \"./StageUsage\";\nimport { BackstageItemUtilities } from \"../backstage/BackstageItemUtilities\";\n\nfunction ModalSettingsStage({\n initialSettingsTabId,\n}: {\n initialSettingsTabId?: string;\n}) {\n const id = UiFramework.frontstages.activeFrontstageDef?.id ?? \"none\";\n const stageUsage =\n UiFramework.frontstages.activeFrontstageDef?.usage ?? StageUsage.General;\n const tabEntries = UiFramework.settingsManager.getSettingEntries(\n id,\n stageUsage\n );\n const noSettingsAvailableLabel = React.useRef(\n UiFramework.translate(\"settings.noSettingsAvailable\")\n );\n\n const currentSettingsTab = React.useCallback(() => {\n const categoryToFind = initialSettingsTabId\n ? initialSettingsTabId.toLowerCase()\n : tabEntries[0].tabId.toLowerCase();\n let foundTab = tabEntries.find(\n (entry) => entry.tabId.toLowerCase() === categoryToFind\n );\n if (!foundTab)\n foundTab = tabEntries.find(\n (entry) => entry.label.toLowerCase() === categoryToFind\n );\n return foundTab;\n }, [initialSettingsTabId, tabEntries]);\n\n React.useEffect(() => {\n const handleFrontstageCloseRequested = ({\n modalFrontstage,\n stageCloseFunc,\n }: ModalFrontstageRequestedCloseEventArgs) => {\n // istanbul ignore else\n if (\n modalFrontstage instanceof SettingsModalFrontstage &&\n stageCloseFunc\n ) {\n UiFramework.settingsManager.closeSettingsContainer(stageCloseFunc);\n }\n };\n return UiFramework.frontstages.onCloseModalFrontstageRequestedEvent.addListener(\n handleFrontstageCloseRequested\n );\n }, [tabEntries]);\n\n return (\n <div className=\"uifw-settings-container\">\n {tabEntries.length ? (\n <SettingsContainer\n tabs={tabEntries}\n currentSettingsTab={currentSettingsTab()}\n settingsManager={UiFramework.settingsManager}\n />\n ) : (\n <Centered>{noSettingsAvailableLabel.current}</Centered>\n )}\n </div>\n );\n}\n\n/** Modal frontstage displaying and editing settings from registered settings providers. See [SettingsManager]($core-react)\n * and [SettingsContainer]($core-react).\n * @beta\n */\nexport class SettingsModalFrontstage implements ModalFrontstageInfo {\n public static id = \"appui-react.modalSettingsStage\";\n public title: string = UiFramework.translate(\"settings.settingsStageLabel\");\n constructor(public initialSettingsTabId?: string) {}\n public notifyCloseRequest = true;\n public get content(): React.ReactNode {\n return (\n <ModalSettingsStage initialSettingsTabId={this.initialSettingsTabId} />\n );\n }\n private static noSettingsAvailable = () =>\n new ConditionalBooleanValue(\n () => 0 === UiFramework.settingsManager.providers.length,\n [SyncUiEventId.SettingsProvidersChanged]\n );\n\n public static getBackstageActionItem(\n groupPriority: number,\n itemPriority: number\n ) {\n return BackstageItemUtilities.createActionItem(\n SettingsModalFrontstage.id,\n groupPriority,\n itemPriority,\n () =>\n UiFramework.frontstages.openModalFrontstage(\n new SettingsModalFrontstage()\n ),\n UiFramework.translate(\"settings.settingsStageLabel\"),\n undefined,\n IconSpecUtilities.createWebComponentIconSpec(settingsIconSvg),\n { isHidden: SettingsModalFrontstage.noSettingsAvailable() }\n );\n }\n\n public static showSettingsStage(initialSettingsTab?: string) {\n if (UiFramework.settingsManager.providers.length) {\n // Check to see if it is already open\n // istanbul ignore else\n if (\n UiFramework.frontstages.activeModalFrontstage &&\n UiFramework.frontstages.activeModalFrontstage instanceof\n SettingsModalFrontstage\n ) {\n if (initialSettingsTab) {\n UiFramework.settingsManager.activateSettingsTab(initialSettingsTab);\n return;\n }\n }\n UiFramework.frontstages.openModalFrontstage(\n new SettingsModalFrontstage(initialSettingsTab)\n );\n } else {\n const briefMessage = UiFramework.translate(\n \"settings.noSettingsAvailable\"\n );\n const detailedMessage = UiFramework.translate(\n \"settings.noSettingsProvidersRegistered\"\n );\n const info = new NotifyMessageDetails(\n OutputMessagePriority.Info,\n briefMessage,\n detailedMessage,\n OutputMessageType.Toast\n );\n IModelApp.notifications.outputMessage(info);\n Logger.logInfo(UiFramework.loggerCategory(this), detailedMessage);\n }\n }\n}\n"]}
@@ -29,13 +29,12 @@ class StandardFrontstageProvider extends FrontstageProvider_1.FrontstageProvider
29
29
  return this.props.id;
30
30
  }
31
31
  frontstageConfig() {
32
- var _a;
33
32
  const contentGroup = this.props.contentGroupProps instanceof ContentGroup_1.ContentGroupProvider
34
33
  ? this.props.contentGroupProps
35
34
  : new ContentGroup_1.ContentGroup(this.props.contentGroupProps);
36
35
  return {
37
36
  id: this.props.id,
38
- version: (_a = this.props.version) !== null && _a !== void 0 ? _a : 1.0,
37
+ version: this.props.version ?? 1.0,
39
38
  contentGroup,
40
39
  usage: this.props.usage,
41
40
  defaultTool: this.props.defaultTool,
@@ -1 +1 @@
1
- {"version":3,"file":"StandardFrontstageProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StandardFrontstageProvider.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,0DAA6E;AAC7E,6DAA0D;AAC1D,oFAAiF;AACjF,8EAA2E;AAC3E,gEAA+D;AAI/D,sEAAmE;AA4DnE;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,uCAAkB;IAChE,YAAoB,KAA8B;QAChD,KAAK,EAAE,CAAC;QADU,UAAK,GAAL,KAAK,CAAyB;IAElD,CAAC;IAED,IAAoB,EAAE;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;IAEe,gBAAgB;;QAC9B,MAAM,YAAY,GAChB,IAAI,CAAC,KAAK,CAAC,iBAAiB,YAAY,mCAAoB;YAC1D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB;YAC9B,CAAC,CAAC,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,mCAAI,GAAG;YAClC,YAAY;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,mBAAmB,EAAE;gBACnB,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,2BAA2B;gBAC/C,OAAO,EAAE,CACP,oBAAC,qDAAyB,IAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI,CACrE;aACF;YACD,cAAc,EAAE;gBACd,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,sBAAsB;gBAC1C,OAAO,EAAE,CACP,oBAAC,+CAAsB,IACrB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAC/C,CACH;aACF;YACD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;gBACvC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,eAAe;iBACpC;YACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACjC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY;oBAChC,OAAO,EAAE,oBAAC,qCAAiB,IAAC,KAAK,EAAE,EAAE,GAAI;iBAC1C;YACL,SAAS,EAAE;gBACT,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,+BAAe,CAAC,SAAS;gBACvC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc;aAC7B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,+BAAe,CAAC,SAAS;gBACvC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;aAC5B;YACD,UAAU,EAAE;gBACV,YAAY,EAAE,+BAAe,CAAC,IAAI;gBAClC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe;aAC9B;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,GAAG;gBACT,YAAY,EAAE,+BAAe,CAAC,IAAI;gBAClC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB;aAC/B;SACF,CAAC;IACJ,CAAC;CACF;AApED,gEAoEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport * as React from \"react\";\nimport type { ContentGroupProps } from \"../content/ContentGroup\";\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\nimport { FrontstageProvider } from \"./FrontstageProvider\";\nimport { ContentToolWidgetComposer } from \"../widgets/ContentToolWidgetComposer\";\nimport { ViewToolWidgetComposer } from \"../widgets/ViewToolWidgetComposer\";\nimport { StagePanelState } from \"../stagepanels/StagePanelDef\";\nimport type { FrontstageConfig } from \"./FrontstageConfig\";\nimport type { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\nimport type { StageUsage } from \"./StageUsage\";\nimport { StatusBarComposer } from \"../statusbar/StatusBarComposer\";\n\n/** Properties of a [[WidgetPanelProps]] component\n * @public\n */\nexport type WidgetPanelProps = Omit<\n StagePanelConfig,\n \"widgets\" | \"runtimeProps\" | \"header\" | \"allowedZones\" | \"panelZones\"\n>;\n\n/**\n * Props for [[StandardFrontstageProvider]]\n * @public\n */\nexport interface StandardFrontstageProps {\n /* unique stage id. To ensure uniqueness it is common practice to format id like `appName:stageId` */\n id: string;\n /* version id that is used to store state of stage */\n version?: number;\n // Usage of stage. To allow generic UiItemProvides to populate this stage set to `StageUsage.General`.\n usage: StageUsage | string;\n /** The defaultTool is is started when then frontstage loads and whenever any other tools exit.\n * Most of the time, this is the Element Selection Tool (SelectionTool.toolId).\n * Your app can specify its own tool or another core tool as default with this property.\n */\n defaultTool?: string;\n /** Definition of available content groups or a function that provides them */\n contentGroupProps: ContentGroupProps | ContentGroupProvider;\n /** Specify button to use to open backstage. Leave undefined for no backstage button.\n * ```\n * <BackstageAppButton icon={<SvgBentleySystems />} />\n * ```\n * Custom corner button definition\n * ```\n * const cornerButton = <BackstageAppButton icon={<SvgBentleySystems />}\n * label=\"Toggle Backstage display\",\n * execute={() => UiFramework.backstage.getBackstageToggleCommand().execute()} />;\n * ```\n */\n cornerButton?: React.ReactNode;\n /** Set to true if default Navigation aid is not desired */\n hideNavigationAid?: boolean;\n /** Set to true if no tool setting dock is needed. Typically only used in modal stages. */\n hideToolSettings?: boolean;\n /** Set to true if no status bar is needed in stage */\n hideStatusBar?: boolean;\n /** Props used to set initial size and state of panel. Defaults to:\n * {size: 300, pinned=false, defaultState:StagePanelState.Minimized} */\n leftPanelProps?: WidgetPanelProps;\n /** Props used to set initial size and state of panel. Defaults to:\n * {size: 90, pinned=false, defaultState:StagePanelState.Minimized} */\n topPanelProps?: WidgetPanelProps;\n /** Props used to set initial size and state of panel. Defaults to:\n * {size: 200, pinned=true, defaultState:StagePanelState.Open} */\n rightPanelProps?: WidgetPanelProps;\n /** Props used to set initial size and state of panel. Defaults to:\n * {size: 180, pinned=true, defaultState:StagePanelState.Open} */\n bottomPanelProps?: WidgetPanelProps;\n}\n\n/**\n * FrontstageProvider that provides an \"empty\" stage. All tool buttons, statusbar items, and widgets must\n * be provided by one or more item providers, see [[UiItemsProvider]].\n * @public\n */\nexport class StandardFrontstageProvider extends FrontstageProvider {\n constructor(private props: StandardFrontstageProps) {\n super();\n }\n\n public override get id(): string {\n return this.props.id;\n }\n\n public override frontstageConfig(): FrontstageConfig {\n const contentGroup =\n this.props.contentGroupProps instanceof ContentGroupProvider\n ? this.props.contentGroupProps\n : new ContentGroup(this.props.contentGroupProps);\n return {\n id: this.props.id,\n version: this.props.version ?? 1.0,\n contentGroup,\n usage: this.props.usage,\n defaultTool: this.props.defaultTool,\n contentManipulation: {\n id: `${this.props.id}-contentManipulationTools`,\n content: (\n <ContentToolWidgetComposer cornerButton={this.props.cornerButton} />\n ),\n },\n viewNavigation: {\n id: `${this.props.id}-viewNavigationTools`,\n content: (\n <ViewToolWidgetComposer\n hideNavigationAid={this.props.hideNavigationAid}\n />\n ),\n },\n toolSettings: this.props.hideToolSettings\n ? undefined\n : {\n id: `${this.props.id}-toolSettings`,\n },\n statusBar: this.props.hideStatusBar\n ? undefined\n : {\n id: `${this.props.id}-statusBar`,\n content: <StatusBarComposer items={[]} />,\n },\n leftPanel: {\n size: 300,\n pinned: false,\n defaultState: StagePanelState.Minimized,\n ...this.props.leftPanelProps,\n },\n topPanel: {\n size: 90,\n pinned: false,\n defaultState: StagePanelState.Minimized,\n ...this.props.topPanelProps,\n },\n rightPanel: {\n defaultState: StagePanelState.Open,\n ...this.props.rightPanelProps,\n },\n bottomPanel: {\n size: 180,\n defaultState: StagePanelState.Open,\n ...this.props.bottomPanelProps,\n },\n };\n }\n}\n"]}
1
+ {"version":3,"file":"StandardFrontstageProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StandardFrontstageProvider.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,0DAA6E;AAC7E,6DAA0D;AAC1D,oFAAiF;AACjF,8EAA2E;AAC3E,gEAA+D;AAI/D,sEAAmE;AA4DnE;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,uCAAkB;IAChE,YAAoB,KAA8B;QAChD,KAAK,EAAE,CAAC;QADU,UAAK,GAAL,KAAK,CAAyB;IAElD,CAAC;IAED,IAAoB,EAAE;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;IAEe,gBAAgB;QAC9B,MAAM,YAAY,GAChB,IAAI,CAAC,KAAK,CAAC,iBAAiB,YAAY,mCAAoB;YAC1D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB;YAC9B,CAAC,CAAC,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,GAAG;YAClC,YAAY;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,mBAAmB,EAAE;gBACnB,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,2BAA2B;gBAC/C,OAAO,EAAE,CACP,oBAAC,qDAAyB,IAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI,CACrE;aACF;YACD,cAAc,EAAE;gBACd,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,sBAAsB;gBAC1C,OAAO,EAAE,CACP,oBAAC,+CAAsB,IACrB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAC/C,CACH;aACF;YACD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;gBACvC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,eAAe;iBACpC;YACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACjC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY;oBAChC,OAAO,EAAE,oBAAC,qCAAiB,IAAC,KAAK,EAAE,EAAE,GAAI;iBAC1C;YACL,SAAS,EAAE;gBACT,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,+BAAe,CAAC,SAAS;gBACvC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc;aAC7B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,+BAAe,CAAC,SAAS;gBACvC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;aAC5B;YACD,UAAU,EAAE;gBACV,YAAY,EAAE,+BAAe,CAAC,IAAI;gBAClC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe;aAC9B;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,GAAG;gBACT,YAAY,EAAE,+BAAe,CAAC,IAAI;gBAClC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB;aAC/B;SACF,CAAC;IACJ,CAAC;CACF;AApED,gEAoEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport * as React from \"react\";\nimport type { ContentGroupProps } from \"../content/ContentGroup\";\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\nimport { FrontstageProvider } from \"./FrontstageProvider\";\nimport { ContentToolWidgetComposer } from \"../widgets/ContentToolWidgetComposer\";\nimport { ViewToolWidgetComposer } from \"../widgets/ViewToolWidgetComposer\";\nimport { StagePanelState } from \"../stagepanels/StagePanelDef\";\nimport type { FrontstageConfig } from \"./FrontstageConfig\";\nimport type { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\nimport type { StageUsage } from \"./StageUsage\";\nimport { StatusBarComposer } from \"../statusbar/StatusBarComposer\";\n\n/** Properties of a [[WidgetPanelProps]] component\n * @public\n */\nexport type WidgetPanelProps = Omit<\n StagePanelConfig,\n \"widgets\" | \"runtimeProps\" | \"header\" | \"allowedZones\" | \"panelZones\"\n>;\n\n/**\n * Props for [[StandardFrontstageProvider]]\n * @public\n */\nexport interface StandardFrontstageProps {\n /* unique stage id. To ensure uniqueness it is common practice to format id like `appName:stageId` */\n id: string;\n /* version id that is used to store state of stage */\n version?: number;\n // Usage of stage. To allow generic UiItemProvides to populate this stage set to `StageUsage.General`.\n usage: StageUsage | string;\n /** The defaultTool is is started when then frontstage loads and whenever any other tools exit.\n * Most of the time, this is the Element Selection Tool (SelectionTool.toolId).\n * Your app can specify its own tool or another core tool as default with this property.\n */\n defaultTool?: string;\n /** Definition of available content groups or a function that provides them */\n contentGroupProps: ContentGroupProps | ContentGroupProvider;\n /** Specify button to use to open backstage. Leave undefined for no backstage button.\n * ```\n * <BackstageAppButton icon={<SvgBentleySystems />} />\n * ```\n * Custom corner button definition\n * ```\n * const cornerButton = <BackstageAppButton icon={<SvgBentleySystems />}\n * label=\"Toggle Backstage display\",\n * execute={() => UiFramework.backstage.getBackstageToggleCommand().execute()} />;\n * ```\n */\n cornerButton?: React.ReactNode;\n /** Set to true if default Navigation aid is not desired */\n hideNavigationAid?: boolean;\n /** Set to true if no tool setting dock is needed. Typically only used in modal stages. */\n hideToolSettings?: boolean;\n /** Set to true if no status bar is needed in stage */\n hideStatusBar?: boolean;\n /** Props used to set initial size and state of panel. Defaults to:\n * {size: 300, pinned=false, defaultState:StagePanelState.Minimized} */\n leftPanelProps?: WidgetPanelProps;\n /** Props used to set initial size and state of panel. Defaults to:\n * {size: 90, pinned=false, defaultState:StagePanelState.Minimized} */\n topPanelProps?: WidgetPanelProps;\n /** Props used to set initial size and state of panel. Defaults to:\n * {size: 200, pinned=true, defaultState:StagePanelState.Open} */\n rightPanelProps?: WidgetPanelProps;\n /** Props used to set initial size and state of panel. Defaults to:\n * {size: 180, pinned=true, defaultState:StagePanelState.Open} */\n bottomPanelProps?: WidgetPanelProps;\n}\n\n/**\n * FrontstageProvider that provides an \"empty\" stage. All tool buttons, statusbar items, and widgets must\n * be provided by one or more item providers, see [[UiItemsProvider]].\n * @public\n */\nexport class StandardFrontstageProvider extends FrontstageProvider {\n constructor(private props: StandardFrontstageProps) {\n super();\n }\n\n public override get id(): string {\n return this.props.id;\n }\n\n public override frontstageConfig(): FrontstageConfig {\n const contentGroup =\n this.props.contentGroupProps instanceof ContentGroupProvider\n ? this.props.contentGroupProps\n : new ContentGroup(this.props.contentGroupProps);\n return {\n id: this.props.id,\n version: this.props.version ?? 1.0,\n contentGroup,\n usage: this.props.usage,\n defaultTool: this.props.defaultTool,\n contentManipulation: {\n id: `${this.props.id}-contentManipulationTools`,\n content: (\n <ContentToolWidgetComposer cornerButton={this.props.cornerButton} />\n ),\n },\n viewNavigation: {\n id: `${this.props.id}-viewNavigationTools`,\n content: (\n <ViewToolWidgetComposer\n hideNavigationAid={this.props.hideNavigationAid}\n />\n ),\n },\n toolSettings: this.props.hideToolSettings\n ? undefined\n : {\n id: `${this.props.id}-toolSettings`,\n },\n statusBar: this.props.hideStatusBar\n ? undefined\n : {\n id: `${this.props.id}-statusBar`,\n content: <StatusBarComposer items={[]} />,\n },\n leftPanel: {\n size: 300,\n pinned: false,\n defaultState: StagePanelState.Minimized,\n ...this.props.leftPanelProps,\n },\n topPanel: {\n size: 90,\n pinned: false,\n defaultState: StagePanelState.Minimized,\n ...this.props.topPanelProps,\n },\n rightPanel: {\n defaultState: StagePanelState.Open,\n ...this.props.rightPanelProps,\n },\n bottomPanel: {\n size: 180,\n defaultState: StagePanelState.Open,\n ...this.props.bottomPanelProps,\n },\n };\n }\n}\n"]}
@@ -13,29 +13,25 @@ const AnalysisAnimationProvider_1 = require("../timeline/AnalysisAnimationProvid
13
13
  /** @internal */
14
14
  // istanbul ignore next
15
15
  function useSupportsAnalysisAnimation(viewport) {
16
- var _a;
17
- const [supportsAnalysisAnimation, setSupportsAnalysisAnimation] = React.useState(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.view) === null || _a === void 0 ? void 0 : _a.analysisStyle));
16
+ const [supportsAnalysisAnimation, setSupportsAnalysisAnimation] = React.useState(!!viewport?.view?.analysisStyle);
18
17
  React.useEffect(() => {
19
- var _a;
20
- setSupportsAnalysisAnimation(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.view) === null || _a === void 0 ? void 0 : _a.analysisStyle));
18
+ setSupportsAnalysisAnimation(!!viewport?.view?.analysisStyle);
21
19
  }, [viewport]);
22
20
  React.useEffect(() => {
23
21
  const handleViewChanged = (vp) => {
24
- var _a;
25
- const hasAnalysisData = !!((_a = vp === null || vp === void 0 ? void 0 : vp.view) === null || _a === void 0 ? void 0 : _a.analysisStyle);
22
+ const hasAnalysisData = !!vp?.view?.analysisStyle;
26
23
  if (hasAnalysisData !== supportsAnalysisAnimation)
27
24
  setSupportsAnalysisAnimation(hasAnalysisData);
28
25
  };
29
- return viewport === null || viewport === void 0 ? void 0 : viewport.onChangeView.addListener(handleViewChanged);
26
+ return viewport?.onChangeView.addListener(handleViewChanged);
30
27
  }, [supportsAnalysisAnimation, viewport]);
31
28
  React.useEffect(() => {
32
29
  const handleDisplayStyleChange = (vp) => {
33
- var _a;
34
- const hasAnalysisData = !!((_a = vp === null || vp === void 0 ? void 0 : vp.view) === null || _a === void 0 ? void 0 : _a.analysisStyle);
30
+ const hasAnalysisData = !!vp?.view?.analysisStyle;
35
31
  if (hasAnalysisData !== supportsAnalysisAnimation)
36
32
  setSupportsAnalysisAnimation(hasAnalysisData);
37
33
  };
38
- return viewport === null || viewport === void 0 ? void 0 : viewport.onDisplayStyleChanged.addListener(handleDisplayStyleChange);
34
+ return viewport?.onDisplayStyleChanged.addListener(handleDisplayStyleChange);
39
35
  }, [viewport, supportsAnalysisAnimation]);
40
36
  return supportsAnalysisAnimation;
41
37
  }
@@ -56,7 +52,7 @@ function useAnalysisAnimationDataProvider(viewport) {
56
52
  React.useEffect(() => {
57
53
  async function fetchNewDataProvider(vp) {
58
54
  let newProvider = new AnalysisAnimationProvider_1.AnalysisAnimationTimelineDataProvider(vp.view, vp);
59
- if (newProvider === null || newProvider === void 0 ? void 0 : newProvider.supportsTimelineAnimation) {
55
+ if (newProvider?.supportsTimelineAnimation) {
60
56
  const dataLoaded = await newProvider.loadTimelineData();
61
57
  if (!dataLoaded)
62
58
  newProvider = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useAnalysisAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useAnalysisAnimationDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport * as React from \"react\";\nimport { AnalysisAnimationTimelineDataProvider } from \"../timeline/AnalysisAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsAnalysisAnimation(viewport: Viewport | undefined) {\n const [supportsAnalysisAnimation, setSupportsAnalysisAnimation] =\n React.useState(!!viewport?.view?.analysisStyle);\n\n React.useEffect(() => {\n setSupportsAnalysisAnimation(!!viewport?.view?.analysisStyle);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasAnalysisData = !!vp?.view?.analysisStyle;\n if (hasAnalysisData !== supportsAnalysisAnimation)\n setSupportsAnalysisAnimation(hasAnalysisData);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsAnalysisAnimation, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasAnalysisData = !!vp?.view?.analysisStyle;\n if (hasAnalysisData !== supportsAnalysisAnimation)\n setSupportsAnalysisAnimation(hasAnalysisData);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsAnalysisAnimation]);\n return supportsAnalysisAnimation;\n}\n\n/** Hook that returns either a AnalysisAnimationTimelineDataProvider or undefined based on if the supplied viewport contains analysis data.\n * @public\n **/\n// istanbul ignore next\nexport function useAnalysisAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsAnalysisAnimation = useSupportsAnalysisAnimation(viewport);\n const [\n analysisAnimationTimelineDataProvider,\n setAnalysisAnimationTimelineDataProvider,\n ] = React.useState<AnalysisAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: AnalysisAnimationTimelineDataProvider | undefined =\n new AnalysisAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setAnalysisAnimationTimelineDataProvider(newProvider);\n }\n if (supportsAnalysisAnimation && viewport)\n void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setAnalysisAnimationTimelineDataProvider(undefined);\n }, [supportsAnalysisAnimation, viewport]);\n\n return analysisAnimationTimelineDataProvider;\n}\n"]}
1
+ {"version":3,"file":"useAnalysisAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useAnalysisAnimationDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport * as React from \"react\";\nimport { AnalysisAnimationTimelineDataProvider } from \"../timeline/AnalysisAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsAnalysisAnimation(viewport: Viewport | undefined) {\n const [supportsAnalysisAnimation, setSupportsAnalysisAnimation] =\n React.useState(!!viewport?.view?.analysisStyle);\n\n React.useEffect(() => {\n setSupportsAnalysisAnimation(!!viewport?.view?.analysisStyle);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasAnalysisData = !!vp?.view?.analysisStyle;\n if (hasAnalysisData !== supportsAnalysisAnimation)\n setSupportsAnalysisAnimation(hasAnalysisData);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsAnalysisAnimation, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasAnalysisData = !!vp?.view?.analysisStyle;\n if (hasAnalysisData !== supportsAnalysisAnimation)\n setSupportsAnalysisAnimation(hasAnalysisData);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsAnalysisAnimation]);\n return supportsAnalysisAnimation;\n}\n\n/** Hook that returns either a AnalysisAnimationTimelineDataProvider or undefined based on if the supplied viewport contains analysis data.\n * @public\n **/\n// istanbul ignore next\nexport function useAnalysisAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsAnalysisAnimation = useSupportsAnalysisAnimation(viewport);\n const [\n analysisAnimationTimelineDataProvider,\n setAnalysisAnimationTimelineDataProvider,\n ] = React.useState<AnalysisAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: AnalysisAnimationTimelineDataProvider | undefined =\n new AnalysisAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setAnalysisAnimationTimelineDataProvider(newProvider);\n }\n if (supportsAnalysisAnimation && viewport)\n void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setAnalysisAnimationTimelineDataProvider(undefined);\n }, [supportsAnalysisAnimation, viewport]);\n\n return analysisAnimationTimelineDataProvider;\n}\n"]}
@@ -13,29 +13,25 @@ const ScheduleAnimationProvider_1 = require("../timeline/ScheduleAnimationProvid
13
13
  /** @internal */
14
14
  // istanbul ignore next
15
15
  function useSupportsScheduleScript(viewport) {
16
- var _a;
17
- const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.view) === null || _a === void 0 ? void 0 : _a.scheduleScript));
16
+ const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(!!viewport?.view?.scheduleScript);
18
17
  React.useEffect(() => {
19
- var _a;
20
- setSupportsScheduleScript(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.view) === null || _a === void 0 ? void 0 : _a.scheduleScript));
18
+ setSupportsScheduleScript(!!viewport?.view?.scheduleScript);
21
19
  }, [viewport]);
22
20
  React.useEffect(() => {
23
21
  const handleViewChanged = (vp) => {
24
- var _a;
25
- const hasScheduleScript = !!((_a = vp === null || vp === void 0 ? void 0 : vp.view) === null || _a === void 0 ? void 0 : _a.scheduleScript);
22
+ const hasScheduleScript = !!vp?.view?.scheduleScript;
26
23
  if (hasScheduleScript !== supportsScheduleScript)
27
24
  setSupportsScheduleScript(hasScheduleScript);
28
25
  };
29
- return viewport === null || viewport === void 0 ? void 0 : viewport.onChangeView.addListener(handleViewChanged);
26
+ return viewport?.onChangeView.addListener(handleViewChanged);
30
27
  }, [supportsScheduleScript, viewport]);
31
28
  React.useEffect(() => {
32
29
  const handleDisplayStyleChange = (vp) => {
33
- var _a;
34
- const hasScheduleScript = !!((_a = vp === null || vp === void 0 ? void 0 : vp.view) === null || _a === void 0 ? void 0 : _a.scheduleScript);
30
+ const hasScheduleScript = !!vp?.view?.scheduleScript;
35
31
  if (hasScheduleScript !== supportsScheduleScript)
36
32
  setSupportsScheduleScript(hasScheduleScript);
37
33
  };
38
- return viewport === null || viewport === void 0 ? void 0 : viewport.onDisplayStyleChanged.addListener(handleDisplayStyleChange);
34
+ return viewport?.onDisplayStyleChanged.addListener(handleDisplayStyleChange);
39
35
  }, [viewport, supportsScheduleScript]);
40
36
  return supportsScheduleScript;
41
37
  }
@@ -56,7 +52,7 @@ function useScheduleAnimationDataProvider(viewport) {
56
52
  React.useEffect(() => {
57
53
  async function fetchNewDataProvider(vp) {
58
54
  let newProvider = new ScheduleAnimationProvider_1.ScheduleAnimationTimelineDataProvider(vp.view, vp);
59
- if (newProvider === null || newProvider === void 0 ? void 0 : newProvider.supportsTimelineAnimation) {
55
+ if (newProvider?.supportsTimelineAnimation) {
60
56
  const dataLoaded = await newProvider.loadTimelineData();
61
57
  if (!dataLoaded)
62
58
  newProvider = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useScheduleAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useScheduleAnimationDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport * as React from \"react\";\nimport { ScheduleAnimationTimelineDataProvider } from \"../timeline/ScheduleAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsScheduleScript(viewport: Viewport | undefined) {\n const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(\n !!viewport?.view?.scheduleScript\n );\n\n React.useEffect(() => {\n setSupportsScheduleScript(!!viewport?.view?.scheduleScript);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsScheduleScript, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsScheduleScript]);\n return supportsScheduleScript;\n}\n\n/** Hook that returns either a ScheduleAnimationTimelineDataProvider or undefined based on if the supplied viewport contains schedule script.\n * @public\n **/\n// istanbul ignore next\nexport function useScheduleAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsScheduleScript = useSupportsScheduleScript(viewport);\n const [\n scheduleAnimationTimelineDataProvider,\n setScheduleAnimationTimelineDataProvider,\n ] = React.useState<ScheduleAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: ScheduleAnimationTimelineDataProvider | undefined =\n new ScheduleAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(newProvider);\n }\n if (supportsScheduleScript && viewport) void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(undefined);\n }, [supportsScheduleScript, viewport]);\n\n return scheduleAnimationTimelineDataProvider;\n}\n"]}
1
+ {"version":3,"file":"useScheduleAnimationDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useScheduleAnimationDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport * as React from \"react\";\nimport { ScheduleAnimationTimelineDataProvider } from \"../timeline/ScheduleAnimationProvider\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsScheduleScript(viewport: Viewport | undefined) {\n const [supportsScheduleScript, setSupportsScheduleScript] = React.useState(\n !!viewport?.view?.scheduleScript\n );\n\n React.useEffect(() => {\n setSupportsScheduleScript(!!viewport?.view?.scheduleScript);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [supportsScheduleScript, viewport]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const hasScheduleScript = !!vp?.view?.scheduleScript;\n if (hasScheduleScript !== supportsScheduleScript)\n setSupportsScheduleScript(hasScheduleScript);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsScheduleScript]);\n return supportsScheduleScript;\n}\n\n/** Hook that returns either a ScheduleAnimationTimelineDataProvider or undefined based on if the supplied viewport contains schedule script.\n * @public\n **/\n// istanbul ignore next\nexport function useScheduleAnimationDataProvider(\n viewport: ScreenViewport | undefined\n) {\n const supportsScheduleScript = useSupportsScheduleScript(viewport);\n const [\n scheduleAnimationTimelineDataProvider,\n setScheduleAnimationTimelineDataProvider,\n ] = React.useState<ScheduleAnimationTimelineDataProvider | undefined>();\n const isMountedRef = React.useRef(false);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n React.useEffect(() => {\n async function fetchNewDataProvider(vp: ScreenViewport) {\n let newProvider: ScheduleAnimationTimelineDataProvider | undefined =\n new ScheduleAnimationTimelineDataProvider(vp.view, vp);\n if (newProvider?.supportsTimelineAnimation) {\n const dataLoaded = await newProvider.loadTimelineData();\n if (!dataLoaded) newProvider = undefined;\n }\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(newProvider);\n }\n if (supportsScheduleScript && viewport) void fetchNewDataProvider(viewport);\n else\n isMountedRef.current &&\n setScheduleAnimationTimelineDataProvider(undefined);\n }, [supportsScheduleScript, viewport]);\n\n return scheduleAnimationTimelineDataProvider;\n}\n"]}
@@ -14,41 +14,36 @@ const SolarTimelineDataProvider_1 = require("../timeline/SolarTimelineDataProvid
14
14
  /** @internal */
15
15
  // istanbul ignore next
16
16
  function useSupportsShadowDisplay(viewport) {
17
- var _a;
18
- const [supportsShadows, setSupportsShadows] = React.useState(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
17
+ const [supportsShadows, setSupportsShadows] = React.useState(!!viewport?.displayStyle?.wantShadows &&
19
18
  !!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows);
20
19
  React.useEffect(() => {
21
- var _a;
22
- setSupportsShadows(!!((_a = viewport === null || viewport === void 0 ? void 0 : viewport.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
20
+ setSupportsShadows(!!viewport?.displayStyle?.wantShadows &&
23
21
  !!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows);
24
22
  }, [viewport]);
25
23
  React.useEffect(() => {
26
24
  const handleViewChanged = (vp) => {
27
- var _a;
28
- setSupportsShadows(!!((_a = vp === null || vp === void 0 ? void 0 : vp.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
25
+ setSupportsShadows(!!vp?.displayStyle?.wantShadows &&
29
26
  !!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows);
30
27
  };
31
- return viewport === null || viewport === void 0 ? void 0 : viewport.onChangeView.addListener(handleViewChanged);
28
+ return viewport?.onChangeView.addListener(handleViewChanged);
32
29
  }, [viewport]);
33
30
  React.useEffect(() => {
34
31
  const handleViewChanged = (vp) => {
35
- var _a;
36
- const wantShadows = !!((_a = vp.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
32
+ const wantShadows = !!vp.displayStyle?.wantShadows &&
37
33
  !!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows;
38
34
  if (wantShadows !== supportsShadows)
39
35
  setSupportsShadows(wantShadows);
40
36
  };
41
- return viewport === null || viewport === void 0 ? void 0 : viewport.onChangeView.addListener(handleViewChanged);
37
+ return viewport?.onChangeView.addListener(handleViewChanged);
42
38
  }, [viewport, supportsShadows]);
43
39
  React.useEffect(() => {
44
40
  const handleDisplayStyleChange = (vp) => {
45
- var _a;
46
- const wantShadows = !!((_a = vp.displayStyle) === null || _a === void 0 ? void 0 : _a.wantShadows) &&
41
+ const wantShadows = !!vp.displayStyle?.wantShadows &&
47
42
  !!core_frontend_1.IModelApp.renderSystem.options.displaySolarShadows;
48
43
  if (wantShadows !== supportsShadows)
49
44
  setSupportsShadows(wantShadows);
50
45
  };
51
- return viewport === null || viewport === void 0 ? void 0 : viewport.onDisplayStyleChanged.addListener(handleDisplayStyleChange);
46
+ return viewport?.onDisplayStyleChanged.addListener(handleDisplayStyleChange);
52
47
  }, [viewport, supportsShadows]);
53
48
  return supportsShadows;
54
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSolarDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useSolarDataProvider.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAG/B,wDAAiD;AACjD,qFAAkF;AAElF,gBAAgB;AAChB,uBAAuB;AACvB,SAAS,wBAAwB,CAAC,QAAoC;;IACpE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC1D,CAAC,CAAC,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,0CAAE,WAAW,CAAA;QACnC,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CACvD,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,kBAAkB,CAChB,CAAC,CAAC,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,0CAAE,WAAW,CAAA;YACnC,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CACvD,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,CAAC,EAAY,EAAQ,EAAE;;YAC/C,kBAAkB,CAChB,CAAC,CAAC,CAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,YAAY,0CAAE,WAAW,CAAA;gBAC7B,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CACvD,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,CAAC,EAAY,EAAQ,EAAE;;YAC/C,MAAM,WAAW,GACf,CAAC,CAAC,CAAA,MAAA,EAAE,CAAC,YAAY,0CAAE,WAAW,CAAA;gBAC9B,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvD,IAAI,WAAW,KAAK,eAAe;gBAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAEhC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,wBAAwB,GAAG,CAAC,EAAY,EAAQ,EAAE;;YACtD,MAAM,WAAW,GACf,CAAC,CAAC,CAAA,MAAA,EAAE,CAAC,YAAY,0CAAE,WAAW,CAAA;gBAC9B,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvD,IAAI,WAAW,KAAK,eAAe;gBAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,qBAAqB,CAAC,WAAW,CAChD,wBAAwB,CACzB,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAEhC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;IAEI;AACJ,uBAAuB;AACvB,SAAgB,oBAAoB,CAClC,QAAoC;IAEpC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACpE,OAAO,qBAAqB,IAAI,QAAQ;YACtC,CAAC,CAAC,IAAI,qDAAyB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;YACxD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,oBAAoB,GACxB,qBAAqB,IAAI,QAAQ;YAC/B,CAAC,CAAC,IAAI,qDAAyB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;YACxD,CAAC,CAAC,SAAS,CAAC;QAChB,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAnBD,oDAmBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport * as React from \"react\";\nimport type { SolarDataProvider } from \"@itwin/imodel-components-react\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { SolarTimelineDataProvider } from \"../timeline/SolarTimelineDataProvider\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsShadowDisplay(viewport: ScreenViewport | undefined) {\n const [supportsShadows, setSupportsShadows] = React.useState(\n !!viewport?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n\n React.useEffect(() => {\n setSupportsShadows(\n !!viewport?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n setSupportsShadows(\n !!vp?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const wantShadows =\n !!vp.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows;\n if (wantShadows !== supportsShadows) setSupportsShadows(wantShadows);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [viewport, supportsShadows]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const wantShadows =\n !!vp.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows;\n if (wantShadows !== supportsShadows) setSupportsShadows(wantShadows);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsShadows]);\n\n return supportsShadows;\n}\n\n/** Hook that returns either a SolarTimelineDataProvider or undefined based on if the supplied viewport's display style is set to display shadows.\n * @beta\n **/\n// istanbul ignore next\nexport function useSolarDataProvider(\n viewport: ScreenViewport | undefined\n): SolarDataProvider | undefined {\n const supportsShadowDisplay = useSupportsShadowDisplay(viewport);\n const [solarDataProvider, setSolarDataProvider] = React.useState(() => {\n return supportsShadowDisplay && viewport\n ? new SolarTimelineDataProvider(viewport.view, viewport)\n : undefined;\n });\n\n React.useEffect(() => {\n const newSolarDataProvider =\n supportsShadowDisplay && viewport\n ? new SolarTimelineDataProvider(viewport.view, viewport)\n : undefined;\n setSolarDataProvider(newSolarDataProvider);\n }, [supportsShadowDisplay, viewport]);\n\n return solarDataProvider;\n}\n"]}
1
+ {"version":3,"file":"useSolarDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useSolarDataProvider.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAG/B,wDAAiD;AACjD,qFAAkF;AAElF,gBAAgB;AAChB,uBAAuB;AACvB,SAAS,wBAAwB,CAAC,QAAoC;IACpE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC1D,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW;QACnC,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CACvD,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,kBAAkB,CAChB,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW;YACnC,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CACvD,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,CAAC,EAAY,EAAQ,EAAE;YAC/C,kBAAkB,CAChB,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW;gBAC7B,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CACvD,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,CAAC,EAAY,EAAQ,EAAE;YAC/C,MAAM,WAAW,GACf,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW;gBAC9B,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvD,IAAI,WAAW,KAAK,eAAe;gBAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,OAAO,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAEhC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,wBAAwB,GAAG,CAAC,EAAY,EAAQ,EAAE;YACtD,MAAM,WAAW,GACf,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW;gBAC9B,CAAC,CAAC,yBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvD,IAAI,WAAW,KAAK,eAAe;gBAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,OAAO,QAAQ,EAAE,qBAAqB,CAAC,WAAW,CAChD,wBAAwB,CACzB,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAEhC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;IAEI;AACJ,uBAAuB;AACvB,SAAgB,oBAAoB,CAClC,QAAoC;IAEpC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACpE,OAAO,qBAAqB,IAAI,QAAQ;YACtC,CAAC,CAAC,IAAI,qDAAyB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;YACxD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,oBAAoB,GACxB,qBAAqB,IAAI,QAAQ;YAC/B,CAAC,CAAC,IAAI,qDAAyB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;YACxD,CAAC,CAAC,SAAS,CAAC;QAChB,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAnBD,oDAmBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hooks\n */\n\nimport * as React from \"react\";\nimport type { SolarDataProvider } from \"@itwin/imodel-components-react\";\nimport type { ScreenViewport, Viewport } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { SolarTimelineDataProvider } from \"../timeline/SolarTimelineDataProvider\";\n\n/** @internal */\n// istanbul ignore next\nfunction useSupportsShadowDisplay(viewport: ScreenViewport | undefined) {\n const [supportsShadows, setSupportsShadows] = React.useState(\n !!viewport?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n\n React.useEffect(() => {\n setSupportsShadows(\n !!viewport?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n setSupportsShadows(\n !!vp?.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows\n );\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [viewport]);\n\n React.useEffect(() => {\n const handleViewChanged = (vp: Viewport): void => {\n const wantShadows =\n !!vp.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows;\n if (wantShadows !== supportsShadows) setSupportsShadows(wantShadows);\n };\n return viewport?.onChangeView.addListener(handleViewChanged);\n }, [viewport, supportsShadows]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport): void => {\n const wantShadows =\n !!vp.displayStyle?.wantShadows &&\n !!IModelApp.renderSystem.options.displaySolarShadows;\n if (wantShadows !== supportsShadows) setSupportsShadows(wantShadows);\n };\n return viewport?.onDisplayStyleChanged.addListener(\n handleDisplayStyleChange\n );\n }, [viewport, supportsShadows]);\n\n return supportsShadows;\n}\n\n/** Hook that returns either a SolarTimelineDataProvider or undefined based on if the supplied viewport's display style is set to display shadows.\n * @beta\n **/\n// istanbul ignore next\nexport function useSolarDataProvider(\n viewport: ScreenViewport | undefined\n): SolarDataProvider | undefined {\n const supportsShadowDisplay = useSupportsShadowDisplay(viewport);\n const [solarDataProvider, setSolarDataProvider] = React.useState(() => {\n return supportsShadowDisplay && viewport\n ? new SolarTimelineDataProvider(viewport.view, viewport)\n : undefined;\n });\n\n React.useEffect(() => {\n const newSolarDataProvider =\n supportsShadowDisplay && viewport\n ? new SolarTimelineDataProvider(viewport.view, viewport)\n : undefined;\n setSolarDataProvider(newSolarDataProvider);\n }, [supportsShadowDisplay, viewport]);\n\n return solarDataProvider;\n}\n"]}
@@ -24,19 +24,18 @@ function useActivityMessage({ activityMessageInfo, dismissActivityMessage, cance
24
24
  itwinui_react_1.toaster.setSettings({ placement: "bottom" });
25
25
  }, []);
26
26
  React.useEffect(() => {
27
- var _a, _b;
28
- if (activityMessageInfo === null || activityMessageInfo === void 0 ? void 0 : activityMessageInfo.restored) {
27
+ if (activityMessageInfo?.restored) {
29
28
  recentToast.current = itwinui_react_1.toaster.informational(React.createElement(ActivityMessageContent, { initialActivityMessageInfo: activityMessageInfo }), {
30
29
  onRemove: dismissActivityMessage,
31
30
  type: "persisting",
32
- link: ((_a = activityMessageInfo === null || activityMessageInfo === void 0 ? void 0 : activityMessageInfo.details) === null || _a === void 0 ? void 0 : _a.supportsCancellation) &&
31
+ link: activityMessageInfo?.details?.supportsCancellation &&
33
32
  cancelActivityMessage
34
33
  ? { title: cancelLabel, onClick: cancelActivityMessage }
35
34
  : undefined,
36
35
  });
37
36
  }
38
37
  if (!activityMessageInfo) {
39
- (_b = recentToast.current) === null || _b === void 0 ? void 0 : _b.close();
38
+ recentToast.current?.close();
40
39
  }
41
40
  }, [
42
41
  activityMessageInfo,
@@ -73,7 +72,6 @@ exports.ActivityMessageRenderer = ActivityMessageRenderer;
73
72
  * @internal
74
73
  */
75
74
  function ActivityMessageContent({ initialActivityMessageInfo, }) {
76
- var _a, _b;
77
75
  const [percentCompleteLabel] = React.useState(UiFramework_1.UiFramework.translate("activityCenter.percentComplete"));
78
76
  const [activityMessageInfo, setActivityMessageInfo] = React.useState(initialActivityMessageInfo);
79
77
  React.useEffect(() => {
@@ -86,7 +84,7 @@ function ActivityMessageContent({ initialActivityMessageInfo, }) {
86
84
  activityMessageInfo.message && (React.createElement(itwinui_react_1.Text, null,
87
85
  React.createElement(React.Fragment, null, activityMessageInfo.message.reactNode ||
88
86
  activityMessageInfo.message))),
89
- !!((_a = activityMessageInfo.details) === null || _a === void 0 ? void 0 : _a.showPercentInMessage) && (React.createElement(itwinui_react_1.Text, { variant: "small" }, `${activityMessageInfo.percentage} ${percentCompleteLabel}`)),
90
- ((_b = activityMessageInfo.details) === null || _b === void 0 ? void 0 : _b.showProgressBar) && (React.createElement(itwinui_react_1.ProgressLinear, { value: activityMessageInfo === null || activityMessageInfo === void 0 ? void 0 : activityMessageInfo.percentage }))));
87
+ !!activityMessageInfo.details?.showPercentInMessage && (React.createElement(itwinui_react_1.Text, { variant: "small" }, `${activityMessageInfo.percentage} ${percentCompleteLabel}`)),
88
+ activityMessageInfo.details?.showProgressBar && (React.createElement(itwinui_react_1.ProgressLinear, { value: activityMessageInfo?.percentage }))));
91
89
  }
92
90
  //# sourceMappingURL=ActivityMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ActivityMessage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport * as React from \"react\";\nimport type { ReactMessage } from \"@itwin/core-react\";\nimport { UiCore } from \"@itwin/core-react\";\nimport { ProgressLinear, Text, toaster } from \"@itwin/itwinui-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { ActivityMessageEventArgs } from \"../messages/MessageManager\";\nimport { MessageManager } from \"../messages/MessageManager\";\n\ninterface UseActivityMessageProps {\n cancelActivityMessage?: () => void;\n dismissActivityMessage?: () => void;\n activityMessageInfo?: ActivityMessageEventArgs;\n}\n\n/**\n * Hook to render an Activity message.\n * @internal\n */\nfunction useActivityMessage({\n activityMessageInfo,\n dismissActivityMessage,\n cancelActivityMessage,\n}: UseActivityMessageProps) {\n const [cancelLabel] = React.useState(UiCore.translate(\"dialog.cancel\"));\n const recentToast = React.useRef<{ close: () => void } | undefined>();\n React.useEffect(() => {\n toaster.setSettings({ placement: \"bottom\" });\n }, []);\n\n React.useEffect(() => {\n if (activityMessageInfo?.restored) {\n recentToast.current = toaster.informational(\n <ActivityMessageContent\n initialActivityMessageInfo={activityMessageInfo}\n />,\n {\n onRemove: dismissActivityMessage,\n type: \"persisting\",\n link:\n activityMessageInfo?.details?.supportsCancellation &&\n cancelActivityMessage\n ? { title: cancelLabel, onClick: cancelActivityMessage }\n : undefined,\n }\n );\n }\n if (!activityMessageInfo) {\n recentToast.current?.close();\n }\n }, [\n activityMessageInfo,\n cancelActivityMessage,\n cancelLabel,\n dismissActivityMessage,\n ]);\n}\n\n/**\n * Component wrapping the `useActivityMessage` hook to use in class components.\n * @internal\n */\nexport function ActivityMessageRenderer() {\n const [activityMessageInfo, setActivityMessageInfo] = React.useState<\n ActivityMessageEventArgs | undefined\n >();\n React.useEffect(() => {\n return MessageManager.onActivityMessageUpdatedEvent.addListener((args) => {\n setActivityMessageInfo(args);\n });\n }, []);\n\n React.useEffect(() => {\n return MessageManager.onActivityMessageCancelledEvent.addListener(() => {\n setActivityMessageInfo(undefined);\n });\n }, []);\n\n const cancelActivityMessage = React.useCallback(() => {\n MessageManager.endActivityMessage(false);\n }, []);\n\n useActivityMessage({ activityMessageInfo, cancelActivityMessage });\n return <></>;\n}\n\n/**\n * Component used to show and update activity message content.\n * @internal\n */\nfunction ActivityMessageContent({\n initialActivityMessageInfo,\n}: {\n initialActivityMessageInfo: ActivityMessageEventArgs;\n}) {\n const [percentCompleteLabel] = React.useState(\n UiFramework.translate(\"activityCenter.percentComplete\")\n );\n const [activityMessageInfo, setActivityMessageInfo] = React.useState(\n initialActivityMessageInfo\n );\n\n React.useEffect(() => {\n const handleActivityMessageUpdatedEvent = (\n args: ActivityMessageEventArgs\n ) => {\n setActivityMessageInfo(args);\n };\n\n return MessageManager.onActivityMessageUpdatedEvent.addListener(\n handleActivityMessageUpdatedEvent\n );\n }, []);\n\n return (\n <>\n {activityMessageInfo.message && (\n <Text>\n <>\n {(activityMessageInfo.message as ReactMessage).reactNode ||\n activityMessageInfo.message}\n </>\n </Text>\n )}\n {!!activityMessageInfo.details?.showPercentInMessage && (\n <Text variant=\"small\">{`${activityMessageInfo.percentage} ${percentCompleteLabel}`}</Text>\n )}\n {activityMessageInfo.details?.showProgressBar && (\n <ProgressLinear value={activityMessageInfo?.percentage} />\n )}\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"ActivityMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ActivityMessage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport * as React from \"react\";\nimport type { ReactMessage } from \"@itwin/core-react\";\nimport { UiCore } from \"@itwin/core-react\";\nimport { ProgressLinear, Text, toaster } from \"@itwin/itwinui-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport type { ActivityMessageEventArgs } from \"../messages/MessageManager\";\nimport { MessageManager } from \"../messages/MessageManager\";\n\ninterface UseActivityMessageProps {\n cancelActivityMessage?: () => void;\n dismissActivityMessage?: () => void;\n activityMessageInfo?: ActivityMessageEventArgs;\n}\n\n/**\n * Hook to render an Activity message.\n * @internal\n */\nfunction useActivityMessage({\n activityMessageInfo,\n dismissActivityMessage,\n cancelActivityMessage,\n}: UseActivityMessageProps) {\n const [cancelLabel] = React.useState(UiCore.translate(\"dialog.cancel\"));\n const recentToast = React.useRef<{ close: () => void } | undefined>();\n React.useEffect(() => {\n toaster.setSettings({ placement: \"bottom\" });\n }, []);\n\n React.useEffect(() => {\n if (activityMessageInfo?.restored) {\n recentToast.current = toaster.informational(\n <ActivityMessageContent\n initialActivityMessageInfo={activityMessageInfo}\n />,\n {\n onRemove: dismissActivityMessage,\n type: \"persisting\",\n link:\n activityMessageInfo?.details?.supportsCancellation &&\n cancelActivityMessage\n ? { title: cancelLabel, onClick: cancelActivityMessage }\n : undefined,\n }\n );\n }\n if (!activityMessageInfo) {\n recentToast.current?.close();\n }\n }, [\n activityMessageInfo,\n cancelActivityMessage,\n cancelLabel,\n dismissActivityMessage,\n ]);\n}\n\n/**\n * Component wrapping the `useActivityMessage` hook to use in class components.\n * @internal\n */\nexport function ActivityMessageRenderer() {\n const [activityMessageInfo, setActivityMessageInfo] = React.useState<\n ActivityMessageEventArgs | undefined\n >();\n React.useEffect(() => {\n return MessageManager.onActivityMessageUpdatedEvent.addListener((args) => {\n setActivityMessageInfo(args);\n });\n }, []);\n\n React.useEffect(() => {\n return MessageManager.onActivityMessageCancelledEvent.addListener(() => {\n setActivityMessageInfo(undefined);\n });\n }, []);\n\n const cancelActivityMessage = React.useCallback(() => {\n MessageManager.endActivityMessage(false);\n }, []);\n\n useActivityMessage({ activityMessageInfo, cancelActivityMessage });\n return <></>;\n}\n\n/**\n * Component used to show and update activity message content.\n * @internal\n */\nfunction ActivityMessageContent({\n initialActivityMessageInfo,\n}: {\n initialActivityMessageInfo: ActivityMessageEventArgs;\n}) {\n const [percentCompleteLabel] = React.useState(\n UiFramework.translate(\"activityCenter.percentComplete\")\n );\n const [activityMessageInfo, setActivityMessageInfo] = React.useState(\n initialActivityMessageInfo\n );\n\n React.useEffect(() => {\n const handleActivityMessageUpdatedEvent = (\n args: ActivityMessageEventArgs\n ) => {\n setActivityMessageInfo(args);\n };\n\n return MessageManager.onActivityMessageUpdatedEvent.addListener(\n handleActivityMessageUpdatedEvent\n );\n }, []);\n\n return (\n <>\n {activityMessageInfo.message && (\n <Text>\n <>\n {(activityMessageInfo.message as ReactMessage).reactNode ||\n activityMessageInfo.message}\n </>\n </Text>\n )}\n {!!activityMessageInfo.details?.showPercentInMessage && (\n <Text variant=\"small\">{`${activityMessageInfo.percentage} ${percentCompleteLabel}`}</Text>\n )}\n {activityMessageInfo.details?.showProgressBar && (\n <ProgressLinear value={activityMessageInfo?.percentage} />\n )}\n </>\n );\n}\n"]}
@@ -203,11 +203,10 @@ class ViewSelector extends React.Component {
203
203
  const query = { wantPrivate: false };
204
204
  const specs = await this.props.imodel.views.getViewList(query);
205
205
  specs.forEach((spec) => {
206
- var _a;
207
206
  const viewItem = {
208
207
  key: spec.id,
209
208
  name: spec.name,
210
- enabled: spec.id === ((_a = core_frontend_1.IModelApp.viewManager.selectedView) === null || _a === void 0 ? void 0 : _a.view.id)
209
+ enabled: spec.id === core_frontend_1.IModelApp.viewManager.selectedView?.view.id
211
210
  ? true
212
211
  : false,
213
212
  type: ListPicker_1.ListItemType.Item,
@@ -232,16 +231,16 @@ class ViewSelector extends React.Component {
232
231
  sheetsFiltered = [];
233
232
  unknownFiltered = [];
234
233
  views3dFuzzySearchResults.forEach(function (result) {
235
- views3dFiltered === null || views3dFiltered === void 0 ? void 0 : views3dFiltered.push(result.item);
234
+ views3dFiltered?.push(result.item);
236
235
  });
237
236
  views2dFuzzySearchResults.forEach(function (result) {
238
- views2dFiltered === null || views2dFiltered === void 0 ? void 0 : views2dFiltered.push(result.item);
237
+ views2dFiltered?.push(result.item);
239
238
  });
240
239
  sheetsFuzzySearchResults.forEach(function (result) {
241
- sheetsFiltered === null || sheetsFiltered === void 0 ? void 0 : sheetsFiltered.push(result.item);
240
+ sheetsFiltered?.push(result.item);
242
241
  });
243
242
  unknownFuzzySearchResults.forEach(function (result) {
244
- unknownFiltered === null || unknownFiltered === void 0 ? void 0 : unknownFiltered.push(result.item);
243
+ unknownFiltered?.push(result.item);
245
244
  });
246
245
  }
247
246
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../../src/appui-react/pickers/ViewSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Picker\n */\n\nimport * as React from \"react\";\nimport type { Id64String } from \"@itwin/core-bentley\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport type { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { FuzzySearch, IModelApp } from \"@itwin/core-frontend\";\nimport { IconSpecUtilities, UiEvent } from \"@itwin/appui-abstract\";\nimport type { SupportsViewSelectorChange } from \"../content/ContentControl\";\nimport { connectIModelConnection } from \"../redux/connectIModel\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\nimport type { ListItem } from \"./ListPicker\";\nimport { ListItemType, ListPicker } from \"./ListPicker\";\nimport { debounce } from \"lodash\";\nimport svgSavedView from \"@bentley/icons-generic/icons/saved-view.svg\";\n\n// cSpell:ignore Spatials\n\n/** [[ViewSelectorChangedEvent]] Args interface.\n * @beta\n */\nexport interface ViewSelectorChangedEventArgs {\n iModelConnection: IModelConnection;\n viewDefinitionId: Id64String;\n viewState: ViewState;\n name: string;\n}\n\n/** ViewSelector Changed Event class.\n * @beta\n */\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> {}\n\n/** Properties for the [[ViewSelector]] component\n * @beta\n */\nexport interface ViewSelectorProps {\n imodel?: IModelConnection;\n listenForShowUpdates?: boolean;\n\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n searchBox?: boolean;\n panelOnly?: boolean;\n}\n\n/** State for the [[ViewSelector]] component\n * @beta\n */\ninterface ViewSelectorState {\n items: ListItem[];\n title: string;\n initialized: boolean;\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n searchBox: boolean;\n panelOnly: boolean;\n expand: boolean;\n}\n\n/** Default properties of [[ViewSelector]] component.\n * @beta\n */\nexport type ViewSelectorDefaultProps = Pick<\n ViewSelectorProps,\n \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\"\n>;\n\n/** ViewSelector Show Update Event Args interface.\n */\ninterface ViewSelectorShowUpdateEventArgs {\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n}\n\n/** ViewSelector Show Update Event class.\n */\nclass ViewSelectorShowUpdateEvent extends UiEvent<ViewSelectorShowUpdateEventArgs> {}\n\n/** View Selector React component\n * @beta\n */\nexport class ViewSelector extends React.Component<\n ViewSelectorProps,\n ViewSelectorState\n> {\n private static readonly _onViewSelectorShowUpdateEvent =\n new ViewSelectorShowUpdateEvent();\n private _removeShowUpdateListener?: () => void;\n private _isMounted = false;\n private _searchInput = \"\";\n\n public static readonly defaultProps: ViewSelectorDefaultProps = {\n showSpatials: true,\n showDrawings: true,\n showSheets: true,\n showUnknown: true,\n };\n\n /** Gets the [[ViewSelectorChangedEvent]] */\n public static readonly onViewSelectorChangedEvent =\n new ViewSelectorChangedEvent();\n\n /** Updates the ViewSelector show settings.\n */\n public static updateShowSettings(\n showSpatials: boolean,\n showDrawings: boolean,\n showSheets: boolean,\n showUnknown: boolean\n ): void {\n ViewSelector._onViewSelectorShowUpdateEvent.emit({\n showSpatials,\n showDrawings,\n showSheets,\n showUnknown,\n });\n }\n\n /** Creates a ViewSelector */\n constructor(props: ViewSelectorProps) {\n super(props);\n\n this.state = {\n items: new Array<ListItem>(),\n title: UiFramework.translate(\"viewTypes.views\"),\n initialized: false,\n showSpatials: props.showSpatials,\n showDrawings: props.showDrawings,\n showSheets: props.showSheets,\n showUnknown: props.showUnknown,\n searchBox: props.searchBox ? props.searchBox : true,\n panelOnly: props.panelOnly ? props.panelOnly : false,\n expand: false,\n };\n }\n\n public override async componentDidMount() {\n this._isMounted = true;\n if (this.props.listenForShowUpdates)\n this._removeShowUpdateListener =\n ViewSelector._onViewSelectorShowUpdateEvent.addListener(\n this._handleViewSelectorShowUpdateEvent\n );\n\n await this.loadViews();\n }\n\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\n if (this.props.imodel !== prevProps.imodel) {\n await this.loadViews();\n }\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n // istanbul ignore else\n if (this._removeShowUpdateListener) this._removeShowUpdateListener();\n }\n\n private _handleViewSelectorShowUpdateEvent = (\n args: ViewSelectorShowUpdateEventArgs\n ): void => {\n // istanbul ignore next\n if (!this._isMounted) return;\n\n this.setState(args, async () => this.loadViews());\n };\n\n private setStateContainers(\n views3d: ListItem[],\n views2d: ListItem[],\n sheets: ListItem[],\n unknown?: ListItem[],\n views3dFiltered?: ListItem[],\n views2dFiltered?: ListItem[],\n sheetsFiltered?: ListItem[],\n unknownFiltered?: ListItem[]\n ) {\n const views3dContainer: ListItem = {\n key: \"views3dContainer\",\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\n enabled: false,\n type: ListItemType.Container,\n children: views3dFiltered ? views3dFiltered : views3d,\n };\n\n const views2dContainer: ListItem = {\n key: \"views2dContainer\",\n name: UiFramework.translate(\"viewTypes.drawings\"),\n enabled: false,\n type: ListItemType.Container,\n children: views2dFiltered ? views2dFiltered : views2d,\n };\n\n const sheetContainer: ListItem = {\n key: \"sheetContainer\",\n name: UiFramework.translate(\"viewTypes.sheets\"),\n enabled: false,\n type: ListItemType.Container,\n children: sheetsFiltered ? sheetsFiltered : sheets,\n };\n\n const containers = [views3dContainer, views2dContainer, sheetContainer];\n\n // istanbul ignore if\n if (unknown && unknown.length > 0) {\n // This should never show, but just in case we missed a type of view state\n const unknownContainer: ListItem = {\n key: \"unknownContainer\",\n name: UiFramework.translate(\"viewTypes.others\"),\n enabled: false,\n type: ListItemType.Container,\n children: unknownFiltered ? unknownFiltered : unknown,\n };\n\n if (unknown.length !== 0) containers.push(unknownContainer);\n }\n\n // istanbul ignore next\n if (!this._isMounted) return;\n\n this.setState({\n items: containers,\n title: UiFramework.translate(\"viewTypes.views\"),\n initialized: true,\n });\n }\n /**\n * Query the views and set the initial state with the iModel's views.\n */\n public async loadViews(): Promise<void> {\n // Query views and add them to state\n const views3d: ListItem[] = [];\n const views2d: ListItem[] = [];\n const sheets: ListItem[] = [];\n const unknown: ListItem[] = [];\n let views3dFiltered: ListItem[] | undefined;\n let views2dFiltered: ListItem[] | undefined;\n let sheetsFiltered: ListItem[] | undefined;\n let unknownFiltered: ListItem[] | undefined;\n const fuzzy = new FuzzySearch<ListItem>();\n\n if (this.props.imodel && this.props.imodel.views.getViewList) {\n const query = { wantPrivate: false };\n const specs = await this.props.imodel.views.getViewList(query);\n\n specs.forEach((spec: IModelConnection.ViewSpec) => {\n const viewItem: ListItem = {\n key: spec.id,\n name: spec.name,\n enabled:\n spec.id === IModelApp.viewManager.selectedView?.view.id\n ? true\n : false,\n type: ListItemType.Item,\n };\n\n const className = ViewUtilities.getBisBaseClass(spec.class);\n\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\n views3d.push(viewItem);\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\n views2d.push(viewItem);\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\n sheets.push(viewItem);\n else if (this.state.showUnknown) unknown.push(viewItem);\n });\n\n if (this._searchInput.length > 0) {\n const views3dFuzzySearchResults = fuzzy.search(\n views3d,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const views2dFuzzySearchResults = fuzzy.search(\n views2d,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const sheetsFuzzySearchResults = fuzzy.search(\n sheets,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const unknownFuzzySearchResults = fuzzy.search(\n unknown,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n views3dFiltered = [];\n views2dFiltered = [];\n sheetsFiltered = [];\n unknownFiltered = [];\n views3dFuzzySearchResults.forEach(function (result) {\n views3dFiltered?.push(result.item);\n });\n views2dFuzzySearchResults.forEach(function (result) {\n views2dFiltered?.push(result.item);\n });\n sheetsFuzzySearchResults.forEach(function (result) {\n sheetsFiltered?.push(result.item);\n });\n unknownFuzzySearchResults.forEach(function (result) {\n unknownFiltered?.push(result.item);\n });\n }\n }\n\n this.setStateContainers(\n views3d,\n views2d,\n sheets,\n unknown,\n views3dFiltered,\n views2dFiltered,\n sheetsFiltered,\n unknownFiltered\n );\n }\n\n /**\n * Update state of the entries in the widget.\n * @param viewId Identifier for the relevant view\n */\n // istanbul ignore next\n public async updateState(viewId?: any): Promise<void> {\n // Wait for initialization finished\n if (!this.state.initialized) return;\n\n // Query views and add them to state\n const views3d: ListItem[] = this.state.items[0].children!;\n const views2d: ListItem[] = this.state.items[1].children!;\n const sheets: ListItem[] = this.state.items[2].children!;\n const unknown: ListItem[] =\n this.state.items.length > 3 ? this.state.items[3].children! : [];\n\n const updateChildren = (item: ListItem) => {\n if (item.key === viewId) return { ...item, enabled: true };\n else return { ...item, enabled: false };\n };\n\n this.setStateContainers(\n views3d.map(updateChildren),\n views2d.map(updateChildren),\n sheets.map(updateChildren),\n unknown.map(updateChildren)\n );\n }\n\n // enable/disable the models\n // istanbul ignore next\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl() as unknown as SupportsViewSelectorChange;\n if (\n !activeContentControl ||\n !activeContentControl.supportsViewSelectorChange\n ) {\n Logger.logError(\n UiFramework.loggerCategory(this),\n `No active ContentControl for ViewSelector change`\n );\n return;\n }\n\n // Enable the item temporarily to let user see that their click was registered\n // while we query for view state and change the current view which may take a bit\n if (_enabled && item.type !== ListItemType.Container) {\n // This itemMapper simply looks through all the list items and their nested children and enables the one\n // that we have registered to enable\n // Also disable all other items\n const itemMapper: (tempItem: ListItem) => ListItem = (\n tempItem: ListItem\n ) => {\n if (tempItem.type === ListItemType.Container) {\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\n } else if (tempItem.key === item.key) {\n return { ...tempItem, enabled: true };\n } else {\n return { ...tempItem, enabled: false };\n }\n };\n\n // Create the new array with the current item enabled\n const itemsWithEnabled = this.state.items.map(itemMapper);\n\n // istanbul ignore next\n if (!this._isMounted) return;\n\n // Update the state so that we show the user it was enabled while we work in the background\n this.setState({ items: itemsWithEnabled });\n }\n\n // Load the view state using the viewSpec's ID\n const viewState = await this.props.imodel!.views.load(item.key);\n\n // Let activeContentControl process the ViewSelector change\n await activeContentControl.processViewSelectorChange(\n this.props.imodel!,\n item.key,\n viewState,\n item.name!\n );\n\n // Emit a change event\n ViewSelector.onViewSelectorChangedEvent.emit({\n iModelConnection: this.props.imodel!,\n viewDefinitionId: item.key,\n viewState,\n name: item.name!,\n });\n\n // Set state to show enabled the view that got selected\n void this.updateState(item.key);\n };\n\n // Hook on the category selector being expanded so that we may initialize if needed\n // istanbul ignore next\n private _onExpanded = (expand: boolean) => {\n if (expand)\n void this.updateState(\n IModelApp.viewManager.selectedView\n ? IModelApp.viewManager.selectedView.view.id\n : undefined\n );\n };\n\n /**\n * Renders ViewSelector component\n */\n public override render() {\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(svgSavedView);\n\n const { imodel, ...props } = this.props;\n\n return (\n <ListPicker\n {...props}\n title={this.state.title}\n setEnabled={this._setEnabled}\n items={this.state.items}\n iconSpec={iconSpec}\n onExpanded={this._onExpanded}\n searchBox={this.state.searchBox}\n onSearchValueChange={debounce((search: string) => {\n this._searchInput = search;\n if (\n this._isMounted &&\n this.state.expand === false &&\n this._searchInput.length > 0\n )\n this.setState({ expand: true });\n void this.loadViews();\n }, 300)}\n panelOnly={this.state.panelOnly}\n expanded={this.state.expand}\n />\n );\n }\n}\n\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\n * @beta\n */\nexport const IModelConnectedViewSelector = connectIModelConnection(\n null,\n null\n)(ViewSelector);\n"]}
1
+ {"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../../src/appui-react/pickers/ViewSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Picker\n */\n\nimport * as React from \"react\";\nimport type { Id64String } from \"@itwin/core-bentley\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport type { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { FuzzySearch, IModelApp } from \"@itwin/core-frontend\";\nimport { IconSpecUtilities, UiEvent } from \"@itwin/appui-abstract\";\nimport type { SupportsViewSelectorChange } from \"../content/ContentControl\";\nimport { connectIModelConnection } from \"../redux/connectIModel\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\nimport type { ListItem } from \"./ListPicker\";\nimport { ListItemType, ListPicker } from \"./ListPicker\";\nimport { debounce } from \"lodash\";\nimport svgSavedView from \"@bentley/icons-generic/icons/saved-view.svg\";\n\n// cSpell:ignore Spatials\n\n/** [[ViewSelectorChangedEvent]] Args interface.\n * @beta\n */\nexport interface ViewSelectorChangedEventArgs {\n iModelConnection: IModelConnection;\n viewDefinitionId: Id64String;\n viewState: ViewState;\n name: string;\n}\n\n/** ViewSelector Changed Event class.\n * @beta\n */\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> {}\n\n/** Properties for the [[ViewSelector]] component\n * @beta\n */\nexport interface ViewSelectorProps {\n imodel?: IModelConnection;\n listenForShowUpdates?: boolean;\n\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n searchBox?: boolean;\n panelOnly?: boolean;\n}\n\n/** State for the [[ViewSelector]] component\n * @beta\n */\ninterface ViewSelectorState {\n items: ListItem[];\n title: string;\n initialized: boolean;\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n searchBox: boolean;\n panelOnly: boolean;\n expand: boolean;\n}\n\n/** Default properties of [[ViewSelector]] component.\n * @beta\n */\nexport type ViewSelectorDefaultProps = Pick<\n ViewSelectorProps,\n \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\"\n>;\n\n/** ViewSelector Show Update Event Args interface.\n */\ninterface ViewSelectorShowUpdateEventArgs {\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n}\n\n/** ViewSelector Show Update Event class.\n */\nclass ViewSelectorShowUpdateEvent extends UiEvent<ViewSelectorShowUpdateEventArgs> {}\n\n/** View Selector React component\n * @beta\n */\nexport class ViewSelector extends React.Component<\n ViewSelectorProps,\n ViewSelectorState\n> {\n private static readonly _onViewSelectorShowUpdateEvent =\n new ViewSelectorShowUpdateEvent();\n private _removeShowUpdateListener?: () => void;\n private _isMounted = false;\n private _searchInput = \"\";\n\n public static readonly defaultProps: ViewSelectorDefaultProps = {\n showSpatials: true,\n showDrawings: true,\n showSheets: true,\n showUnknown: true,\n };\n\n /** Gets the [[ViewSelectorChangedEvent]] */\n public static readonly onViewSelectorChangedEvent =\n new ViewSelectorChangedEvent();\n\n /** Updates the ViewSelector show settings.\n */\n public static updateShowSettings(\n showSpatials: boolean,\n showDrawings: boolean,\n showSheets: boolean,\n showUnknown: boolean\n ): void {\n ViewSelector._onViewSelectorShowUpdateEvent.emit({\n showSpatials,\n showDrawings,\n showSheets,\n showUnknown,\n });\n }\n\n /** Creates a ViewSelector */\n constructor(props: ViewSelectorProps) {\n super(props);\n\n this.state = {\n items: new Array<ListItem>(),\n title: UiFramework.translate(\"viewTypes.views\"),\n initialized: false,\n showSpatials: props.showSpatials,\n showDrawings: props.showDrawings,\n showSheets: props.showSheets,\n showUnknown: props.showUnknown,\n searchBox: props.searchBox ? props.searchBox : true,\n panelOnly: props.panelOnly ? props.panelOnly : false,\n expand: false,\n };\n }\n\n public override async componentDidMount() {\n this._isMounted = true;\n if (this.props.listenForShowUpdates)\n this._removeShowUpdateListener =\n ViewSelector._onViewSelectorShowUpdateEvent.addListener(\n this._handleViewSelectorShowUpdateEvent\n );\n\n await this.loadViews();\n }\n\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\n if (this.props.imodel !== prevProps.imodel) {\n await this.loadViews();\n }\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n // istanbul ignore else\n if (this._removeShowUpdateListener) this._removeShowUpdateListener();\n }\n\n private _handleViewSelectorShowUpdateEvent = (\n args: ViewSelectorShowUpdateEventArgs\n ): void => {\n // istanbul ignore next\n if (!this._isMounted) return;\n\n this.setState(args, async () => this.loadViews());\n };\n\n private setStateContainers(\n views3d: ListItem[],\n views2d: ListItem[],\n sheets: ListItem[],\n unknown?: ListItem[],\n views3dFiltered?: ListItem[],\n views2dFiltered?: ListItem[],\n sheetsFiltered?: ListItem[],\n unknownFiltered?: ListItem[]\n ) {\n const views3dContainer: ListItem = {\n key: \"views3dContainer\",\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\n enabled: false,\n type: ListItemType.Container,\n children: views3dFiltered ? views3dFiltered : views3d,\n };\n\n const views2dContainer: ListItem = {\n key: \"views2dContainer\",\n name: UiFramework.translate(\"viewTypes.drawings\"),\n enabled: false,\n type: ListItemType.Container,\n children: views2dFiltered ? views2dFiltered : views2d,\n };\n\n const sheetContainer: ListItem = {\n key: \"sheetContainer\",\n name: UiFramework.translate(\"viewTypes.sheets\"),\n enabled: false,\n type: ListItemType.Container,\n children: sheetsFiltered ? sheetsFiltered : sheets,\n };\n\n const containers = [views3dContainer, views2dContainer, sheetContainer];\n\n // istanbul ignore if\n if (unknown && unknown.length > 0) {\n // This should never show, but just in case we missed a type of view state\n const unknownContainer: ListItem = {\n key: \"unknownContainer\",\n name: UiFramework.translate(\"viewTypes.others\"),\n enabled: false,\n type: ListItemType.Container,\n children: unknownFiltered ? unknownFiltered : unknown,\n };\n\n if (unknown.length !== 0) containers.push(unknownContainer);\n }\n\n // istanbul ignore next\n if (!this._isMounted) return;\n\n this.setState({\n items: containers,\n title: UiFramework.translate(\"viewTypes.views\"),\n initialized: true,\n });\n }\n /**\n * Query the views and set the initial state with the iModel's views.\n */\n public async loadViews(): Promise<void> {\n // Query views and add them to state\n const views3d: ListItem[] = [];\n const views2d: ListItem[] = [];\n const sheets: ListItem[] = [];\n const unknown: ListItem[] = [];\n let views3dFiltered: ListItem[] | undefined;\n let views2dFiltered: ListItem[] | undefined;\n let sheetsFiltered: ListItem[] | undefined;\n let unknownFiltered: ListItem[] | undefined;\n const fuzzy = new FuzzySearch<ListItem>();\n\n if (this.props.imodel && this.props.imodel.views.getViewList) {\n const query = { wantPrivate: false };\n const specs = await this.props.imodel.views.getViewList(query);\n\n specs.forEach((spec: IModelConnection.ViewSpec) => {\n const viewItem: ListItem = {\n key: spec.id,\n name: spec.name,\n enabled:\n spec.id === IModelApp.viewManager.selectedView?.view.id\n ? true\n : false,\n type: ListItemType.Item,\n };\n\n const className = ViewUtilities.getBisBaseClass(spec.class);\n\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\n views3d.push(viewItem);\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\n views2d.push(viewItem);\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\n sheets.push(viewItem);\n else if (this.state.showUnknown) unknown.push(viewItem);\n });\n\n if (this._searchInput.length > 0) {\n const views3dFuzzySearchResults = fuzzy.search(\n views3d,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const views2dFuzzySearchResults = fuzzy.search(\n views2d,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const sheetsFuzzySearchResults = fuzzy.search(\n sheets,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const unknownFuzzySearchResults = fuzzy.search(\n unknown,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n views3dFiltered = [];\n views2dFiltered = [];\n sheetsFiltered = [];\n unknownFiltered = [];\n views3dFuzzySearchResults.forEach(function (result) {\n views3dFiltered?.push(result.item);\n });\n views2dFuzzySearchResults.forEach(function (result) {\n views2dFiltered?.push(result.item);\n });\n sheetsFuzzySearchResults.forEach(function (result) {\n sheetsFiltered?.push(result.item);\n });\n unknownFuzzySearchResults.forEach(function (result) {\n unknownFiltered?.push(result.item);\n });\n }\n }\n\n this.setStateContainers(\n views3d,\n views2d,\n sheets,\n unknown,\n views3dFiltered,\n views2dFiltered,\n sheetsFiltered,\n unknownFiltered\n );\n }\n\n /**\n * Update state of the entries in the widget.\n * @param viewId Identifier for the relevant view\n */\n // istanbul ignore next\n public async updateState(viewId?: any): Promise<void> {\n // Wait for initialization finished\n if (!this.state.initialized) return;\n\n // Query views and add them to state\n const views3d: ListItem[] = this.state.items[0].children!;\n const views2d: ListItem[] = this.state.items[1].children!;\n const sheets: ListItem[] = this.state.items[2].children!;\n const unknown: ListItem[] =\n this.state.items.length > 3 ? this.state.items[3].children! : [];\n\n const updateChildren = (item: ListItem) => {\n if (item.key === viewId) return { ...item, enabled: true };\n else return { ...item, enabled: false };\n };\n\n this.setStateContainers(\n views3d.map(updateChildren),\n views2d.map(updateChildren),\n sheets.map(updateChildren),\n unknown.map(updateChildren)\n );\n }\n\n // enable/disable the models\n // istanbul ignore next\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl() as unknown as SupportsViewSelectorChange;\n if (\n !activeContentControl ||\n !activeContentControl.supportsViewSelectorChange\n ) {\n Logger.logError(\n UiFramework.loggerCategory(this),\n `No active ContentControl for ViewSelector change`\n );\n return;\n }\n\n // Enable the item temporarily to let user see that their click was registered\n // while we query for view state and change the current view which may take a bit\n if (_enabled && item.type !== ListItemType.Container) {\n // This itemMapper simply looks through all the list items and their nested children and enables the one\n // that we have registered to enable\n // Also disable all other items\n const itemMapper: (tempItem: ListItem) => ListItem = (\n tempItem: ListItem\n ) => {\n if (tempItem.type === ListItemType.Container) {\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\n } else if (tempItem.key === item.key) {\n return { ...tempItem, enabled: true };\n } else {\n return { ...tempItem, enabled: false };\n }\n };\n\n // Create the new array with the current item enabled\n const itemsWithEnabled = this.state.items.map(itemMapper);\n\n // istanbul ignore next\n if (!this._isMounted) return;\n\n // Update the state so that we show the user it was enabled while we work in the background\n this.setState({ items: itemsWithEnabled });\n }\n\n // Load the view state using the viewSpec's ID\n const viewState = await this.props.imodel!.views.load(item.key);\n\n // Let activeContentControl process the ViewSelector change\n await activeContentControl.processViewSelectorChange(\n this.props.imodel!,\n item.key,\n viewState,\n item.name!\n );\n\n // Emit a change event\n ViewSelector.onViewSelectorChangedEvent.emit({\n iModelConnection: this.props.imodel!,\n viewDefinitionId: item.key,\n viewState,\n name: item.name!,\n });\n\n // Set state to show enabled the view that got selected\n void this.updateState(item.key);\n };\n\n // Hook on the category selector being expanded so that we may initialize if needed\n // istanbul ignore next\n private _onExpanded = (expand: boolean) => {\n if (expand)\n void this.updateState(\n IModelApp.viewManager.selectedView\n ? IModelApp.viewManager.selectedView.view.id\n : undefined\n );\n };\n\n /**\n * Renders ViewSelector component\n */\n public override render() {\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(svgSavedView);\n\n const { imodel, ...props } = this.props;\n\n return (\n <ListPicker\n {...props}\n title={this.state.title}\n setEnabled={this._setEnabled}\n items={this.state.items}\n iconSpec={iconSpec}\n onExpanded={this._onExpanded}\n searchBox={this.state.searchBox}\n onSearchValueChange={debounce((search: string) => {\n this._searchInput = search;\n if (\n this._isMounted &&\n this.state.expand === false &&\n this._searchInput.length > 0\n )\n this.setState({ expand: true });\n void this.loadViews();\n }, 300)}\n panelOnly={this.state.panelOnly}\n expanded={this.state.expand}\n />\n );\n }\n}\n\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\n * @beta\n */\nexport const IModelConnectedViewSelector = connectIModelConnection(\n null,\n null\n)(ViewSelector);\n"]}