@grafana/scenes 6.7.0--canary.1091.14350229100.0 → 6.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +33 -0
  3. package/dist/esm/dist/esm/behaviors/CursorSync.js +76 -0
  4. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +44 -0
  5. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +14 -0
  6. package/dist/esm/dist/esm/components/EmbeddedScene.js +59 -0
  7. package/dist/esm/dist/esm/components/NestedScene.js +95 -0
  8. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +27 -0
  9. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +176 -0
  10. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +104 -0
  11. package/dist/esm/dist/esm/components/SceneApp/utils.js +42 -0
  12. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +41 -0
  13. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +55 -0
  14. package/dist/esm/dist/esm/components/SceneCanvasText.js +32 -0
  15. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +17 -0
  16. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +82 -0
  17. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +72 -0
  18. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +77 -0
  19. package/dist/esm/dist/esm/components/SceneReactObject.js +34 -0
  20. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +205 -0
  21. package/dist/esm/dist/esm/components/SceneTimePicker.js +139 -0
  22. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +240 -0
  23. package/dist/esm/dist/esm/components/SceneToolbarButton.js +33 -0
  24. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +406 -0
  25. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +44 -0
  26. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +59 -0
  27. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +285 -0
  28. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +45 -0
  29. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  30. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +11 -0
  31. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  32. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
  33. package/dist/esm/dist/esm/components/layout/LazyLoader.js +103 -0
  34. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +135 -0
  35. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +30 -0
  36. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +283 -0
  37. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
  38. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +190 -0
  39. package/dist/esm/dist/esm/components/layout/grid/constants.js +7 -0
  40. package/dist/esm/dist/esm/components/layout/grid/utils.js +36 -0
  41. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +17 -0
  42. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +29 -0
  43. package/dist/esm/dist/esm/components/layout/split/Splitter.js +386 -0
  44. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +57 -0
  45. package/dist/esm/dist/esm/core/SceneDataNode.js +43 -0
  46. package/dist/esm/dist/esm/core/SceneObjectBase.js +286 -0
  47. package/dist/esm/dist/esm/core/SceneObjectRef.js +32 -0
  48. package/dist/esm/dist/esm/core/SceneTimeRange.js +231 -0
  49. package/dist/esm/dist/esm/core/events.js +11 -0
  50. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +10 -0
  51. package/dist/esm/dist/esm/core/sceneGraph/index.js +25 -0
  52. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +178 -0
  53. package/dist/esm/dist/esm/core/sceneGraph/utils.js +64 -0
  54. package/dist/esm/dist/esm/core/types.js +15 -0
  55. package/dist/esm/dist/esm/querying/DataLayersMerger.js +46 -0
  56. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +6 -0
  57. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +6 -0
  58. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +100 -0
  59. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +468 -0
  60. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +46 -0
  61. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +12 -0
  62. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +112 -0
  63. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +51 -0
  64. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
  65. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +85 -0
  66. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +121 -0
  67. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
  68. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +77 -0
  69. package/dist/esm/dist/esm/querying/registerQueryWithController.js +41 -0
  70. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +30 -0
  71. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +45 -0
  72. package/dist/esm/dist/esm/services/UrlSyncManager.js +167 -0
  73. package/dist/esm/dist/esm/services/useUrlSync.js +29 -0
  74. package/dist/esm/dist/esm/services/utils.js +71 -0
  75. package/dist/esm/dist/esm/utils/ControlsLabel.js +107 -0
  76. package/dist/esm/dist/esm/utils/LoadingIndicator.js +19 -0
  77. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +39 -0
  78. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
  79. package/dist/esm/dist/esm/utils/date.js +15 -0
  80. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +16 -0
  81. package/dist/esm/dist/esm/utils/explore.js +47 -0
  82. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +4 -0
  83. package/dist/esm/dist/esm/utils/getDataSource.js +18 -0
  84. package/dist/esm/dist/esm/utils/getMessageFromError.js +24 -0
  85. package/dist/esm/dist/esm/utils/metricTree.js +53 -0
  86. package/dist/esm/dist/esm/utils/parseUrlParam.js +41 -0
  87. package/dist/esm/dist/esm/utils/utils.js +11 -0
  88. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +30 -0
  89. package/dist/esm/dist/esm/utils/writeSceneLog.js +12 -0
  90. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +150 -0
  91. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +71 -0
  92. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +24 -0
  93. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +303 -0
  94. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
  95. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
  96. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
  97. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +289 -0
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
  104. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +13 -0
  105. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +47 -0
  106. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +23 -0
  107. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +33 -0
  108. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +228 -0
  109. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +72 -0
  110. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +15 -0
  111. package/dist/esm/dist/esm/variables/constants.js +9 -0
  112. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +12 -0
  113. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +259 -0
  114. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
  115. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
  116. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +40 -0
  117. package/dist/esm/dist/esm/variables/interpolation/defaults.js +21 -0
  118. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +13 -0
  119. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +296 -0
  120. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +87 -0
  121. package/dist/esm/dist/esm/variables/lookupVariable.js +20 -0
  122. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +57 -0
  123. package/dist/esm/dist/esm/variables/macros/contextMacros.js +43 -0
  124. package/dist/esm/dist/esm/variables/macros/dataMacros.js +134 -0
  125. package/dist/esm/dist/esm/variables/macros/index.js +26 -0
  126. package/dist/esm/dist/esm/variables/macros/templateProxies.js +51 -0
  127. package/dist/esm/dist/esm/variables/macros/timeMacros.js +86 -0
  128. package/dist/esm/dist/esm/variables/macros/types.js +11 -0
  129. package/dist/esm/dist/esm/variables/macros/urlMacros.js +56 -0
  130. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +254 -0
  131. package/dist/esm/dist/esm/variables/types.js +11 -0
  132. package/dist/esm/dist/esm/variables/utils.js +172 -0
  133. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +38 -0
  134. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +60 -0
  135. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +88 -0
  136. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +117 -0
  137. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +295 -0
  138. package/dist/esm/dist/esm/variables/variants/TestVariable.js +117 -0
  139. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +61 -0
  140. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +139 -0
  141. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +129 -0
  142. package/dist/esm/dist/esm/variables/variants/query/guards.js +28 -0
  143. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +96 -0
  144. package/dist/esm/dist/esm/variables/variants/query/utils.js +124 -0
  145. package/dist/esm/index.js +1 -1
  146. package/dist/esm/index.js.map +1 -1
  147. package/dist/esm/querying/DataProviderSharer.js +39 -0
  148. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +27 -0
  149. package/dist/esm/src/behaviors/CursorSync.js +76 -0
  150. package/dist/esm/src/behaviors/LiveNowTimer.js +44 -0
  151. package/dist/esm/src/behaviors/SceneQueryController.js +60 -0
  152. package/dist/esm/src/behaviors/index.js +5 -0
  153. package/dist/esm/src/components/EmbeddedScene.js +59 -0
  154. package/dist/esm/src/components/NestedScene.js +95 -0
  155. package/dist/esm/src/components/SceneApp/SceneApp.js +37 -0
  156. package/dist/esm/src/components/SceneApp/SceneAppPage.js +176 -0
  157. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +104 -0
  158. package/dist/esm/src/components/SceneApp/utils.js +42 -0
  159. package/dist/esm/src/components/SceneByFrameRepeater.js +41 -0
  160. package/dist/esm/src/components/SceneByVariableRepeater.js +55 -0
  161. package/dist/esm/src/components/SceneCanvasText.js +32 -0
  162. package/dist/esm/src/components/SceneControlsSpacer.js +17 -0
  163. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +82 -0
  164. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +72 -0
  165. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +77 -0
  166. package/dist/esm/src/components/SceneReactObject.js +34 -0
  167. package/dist/esm/src/components/SceneRefreshPicker.js +205 -0
  168. package/dist/esm/src/components/SceneTimePicker.js +139 -0
  169. package/dist/esm/src/components/SceneTimeRangeCompare.js +240 -0
  170. package/dist/esm/src/components/SceneToolbarButton.js +33 -0
  171. package/dist/esm/src/components/VizPanel/VizPanel.js +406 -0
  172. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +44 -0
  173. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +59 -0
  174. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +285 -0
  175. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +45 -0
  176. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  177. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +56 -0
  178. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  179. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
  180. package/dist/esm/src/components/layout/LazyLoader.js +103 -0
  181. package/dist/esm/src/components/layout/SceneFlexLayout.js +135 -0
  182. package/dist/esm/src/components/layout/grid/SceneGridItem.js +30 -0
  183. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +283 -0
  184. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
  185. package/dist/esm/src/components/layout/grid/SceneGridRow.js +190 -0
  186. package/dist/esm/src/components/layout/grid/constants.js +7 -0
  187. package/dist/esm/src/components/layout/grid/utils.js +36 -0
  188. package/dist/esm/src/components/layout/split/SplitLayout.js +17 -0
  189. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +29 -0
  190. package/dist/esm/src/components/layout/split/Splitter.js +386 -0
  191. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +100 -0
  192. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +75 -0
  193. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +75 -0
  194. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +22 -0
  195. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +85 -0
  196. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +52 -0
  197. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +78 -0
  198. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +114 -0
  199. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +162 -0
  200. package/dist/esm/src/core/PanelBuilders/index.js +116 -0
  201. package/dist/esm/src/core/SceneComponentWrapper.js +57 -0
  202. package/dist/esm/src/core/SceneDataNode.js +43 -0
  203. package/dist/esm/src/core/SceneObjectBase.js +286 -0
  204. package/dist/esm/src/core/SceneObjectRef.js +32 -0
  205. package/dist/esm/src/core/SceneTimeRange.js +231 -0
  206. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +35 -0
  207. package/dist/esm/src/core/SceneTimeZoneOverride.js +63 -0
  208. package/dist/esm/src/core/events.js +11 -0
  209. package/dist/esm/src/core/sceneGraph/getTimeRange.js +10 -0
  210. package/dist/esm/src/core/sceneGraph/index.js +25 -0
  211. package/dist/esm/src/core/sceneGraph/sceneGraph.js +178 -0
  212. package/dist/esm/src/core/sceneGraph/utils.js +64 -0
  213. package/dist/esm/src/core/types.js +15 -0
  214. package/dist/esm/src/index.js +108 -0
  215. package/dist/esm/src/querying/DataLayersMerger.js +46 -0
  216. package/dist/esm/src/querying/DataProviderProxy.js +37 -0
  217. package/dist/esm/src/querying/DataProviderSharer.js +108 -0
  218. package/dist/esm/src/querying/ExtraQueryProvider.js +6 -0
  219. package/dist/esm/src/querying/RuntimeDataSource.js +49 -0
  220. package/dist/esm/src/querying/SceneDataLayerSet.js +100 -0
  221. package/dist/esm/src/querying/SceneDataTransformer.js +178 -0
  222. package/dist/esm/src/querying/SceneQueryRunner.js +468 -0
  223. package/dist/esm/src/querying/extraQueryProcessingOperator.js +46 -0
  224. package/dist/esm/src/querying/getEnrichedDataRequest.js +12 -0
  225. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +112 -0
  226. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +51 -0
  227. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
  228. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +85 -0
  229. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +121 -0
  230. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
  231. package/dist/esm/src/querying/layers/annotations/utils.js +77 -0
  232. package/dist/esm/src/querying/layers/index.js +2 -0
  233. package/dist/esm/src/querying/registerQueryWithController.js +41 -0
  234. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +30 -0
  235. package/dist/esm/src/services/UniqueUrlKeyMapper.js +45 -0
  236. package/dist/esm/src/services/UrlSyncContextProvider.js +17 -0
  237. package/dist/esm/src/services/UrlSyncManager.js +167 -0
  238. package/dist/esm/src/services/useUrlSync.js +29 -0
  239. package/dist/esm/src/services/utils.js +75 -0
  240. package/dist/esm/src/utils/ControlsLabel.js +107 -0
  241. package/dist/esm/src/utils/LoadingIndicator.js +19 -0
  242. package/dist/esm/src/utils/SafeSerializableSceneObject.js +39 -0
  243. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
  244. package/dist/esm/src/utils/date.js +15 -0
  245. package/dist/esm/src/utils/evaluateTimeRange.js +16 -0
  246. package/dist/esm/src/utils/explore.js +47 -0
  247. package/dist/esm/src/utils/getCompareSeriesRefId.js +4 -0
  248. package/dist/esm/src/utils/getDataSource.js +18 -0
  249. package/dist/esm/src/utils/getMessageFromError.js +24 -0
  250. package/dist/esm/src/utils/metricTree.js +53 -0
  251. package/dist/esm/src/utils/parseUrlParam.js +41 -0
  252. package/dist/esm/src/utils/utils.js +11 -0
  253. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +30 -0
  254. package/dist/esm/src/utils/writeSceneLog.js +12 -0
  255. package/dist/esm/src/variables/VariableDependencyConfig.js +150 -0
  256. package/dist/esm/src/variables/VariableValueRecorder.js +71 -0
  257. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +24 -0
  258. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +303 -0
  259. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
  260. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
  261. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
  262. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +289 -0
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
  269. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +13 -0
  270. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +47 -0
  271. package/dist/esm/src/variables/components/VariableValueControl.js +23 -0
  272. package/dist/esm/src/variables/components/VariableValueInput.js +33 -0
  273. package/dist/esm/src/variables/components/VariableValueSelect.js +228 -0
  274. package/dist/esm/src/variables/components/VariableValueSelectors.js +72 -0
  275. package/dist/esm/src/variables/components/getOptionSearcher.js +15 -0
  276. package/dist/esm/src/variables/constants.js +9 -0
  277. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +12 -0
  278. package/dist/esm/src/variables/groupby/GroupByVariable.js +259 -0
  279. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
  280. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
  281. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +40 -0
  282. package/dist/esm/src/variables/interpolation/defaults.js +21 -0
  283. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +13 -0
  284. package/dist/esm/src/variables/interpolation/formatRegistry.js +296 -0
  285. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +87 -0
  286. package/dist/esm/src/variables/lookupVariable.js +20 -0
  287. package/dist/esm/src/variables/macros/AllVariablesMacro.js +57 -0
  288. package/dist/esm/src/variables/macros/contextMacros.js +43 -0
  289. package/dist/esm/src/variables/macros/dataMacros.js +134 -0
  290. package/dist/esm/src/variables/macros/index.js +35 -0
  291. package/dist/esm/src/variables/macros/templateProxies.js +51 -0
  292. package/dist/esm/src/variables/macros/timeMacros.js +86 -0
  293. package/dist/esm/src/variables/macros/types.js +11 -0
  294. package/dist/esm/src/variables/macros/urlMacros.js +56 -0
  295. package/dist/esm/src/variables/sets/SceneVariableSet.js +254 -0
  296. package/dist/esm/src/variables/types.js +11 -0
  297. package/dist/esm/src/variables/utils.js +172 -0
  298. package/dist/esm/src/variables/variants/ConstantVariable.js +38 -0
  299. package/dist/esm/src/variables/variants/CustomVariable.js +60 -0
  300. package/dist/esm/src/variables/variants/DataSourceVariable.js +88 -0
  301. package/dist/esm/src/variables/variants/IntervalVariable.js +117 -0
  302. package/dist/esm/src/variables/variants/JsonVariable.js +193 -0
  303. package/dist/esm/src/variables/variants/LocalValueVariable.js +56 -0
  304. package/dist/esm/src/variables/variants/MultiValueVariable.js +295 -0
  305. package/dist/esm/src/variables/variants/TestVariable.js +117 -0
  306. package/dist/esm/src/variables/variants/TextBoxVariable.js +61 -0
  307. package/dist/esm/src/variables/variants/guards.js +27 -0
  308. package/dist/esm/src/variables/variants/query/QueryVariable.js +139 -0
  309. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +129 -0
  310. package/dist/esm/src/variables/variants/query/guards.js +28 -0
  311. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +96 -0
  312. package/dist/esm/src/variables/variants/query/utils.js +124 -0
  313. package/dist/esm/variables/components/VariableValueSelect.js +13 -9
  314. package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
  315. package/dist/esm/variables/variants/ConstantVariable.js +22 -0
  316. package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
  317. package/dist/esm/variables/variants/CustomVariable.js +3 -2
  318. package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
  319. package/dist/esm/variables/variants/DataSourceVariable.js +3 -2
  320. package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
  321. package/dist/esm/variables/variants/JsonVariable.js +96 -0
  322. package/dist/esm/variables/variants/TestVariable.js +3 -2
  323. package/dist/esm/variables/variants/TestVariable.js.map +1 -1
  324. package/dist/esm/variables/variants/json/JsonVariable.js +95 -0
  325. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +70 -0
  326. package/dist/esm/variables/variants/query/QueryVariable.js +3 -2
  327. package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
  328. package/dist/index.d.ts +14 -6
  329. package/dist/index.js +35 -13
  330. package/dist/index.js.map +1 -1
  331. package/package.json +2 -2
@@ -0,0 +1,46 @@
1
+ import { merge, mergeAll, filter, map, finalize } from 'rxjs';
2
+
3
+ class DataLayersMerger {
4
+ constructor() {
5
+ this._resultsMap = /* @__PURE__ */ new Map();
6
+ this._prevLayers = [];
7
+ }
8
+ getMergedStream(layers) {
9
+ if (areDifferentLayers(layers, this._prevLayers)) {
10
+ this._resultsMap = /* @__PURE__ */ new Map();
11
+ this._prevLayers = layers;
12
+ }
13
+ const resultStreams = layers.map((l) => l.getResultsStream());
14
+ const deactivationHandlers = [];
15
+ for (const layer of layers) {
16
+ deactivationHandlers.push(layer.activate());
17
+ }
18
+ return merge(resultStreams).pipe(
19
+ mergeAll(),
20
+ filter((v) => {
21
+ return this._resultsMap.get(v.origin.state.key) !== v;
22
+ }),
23
+ map((v) => {
24
+ this._resultsMap.set(v.origin.state.key, v);
25
+ return this._resultsMap.values();
26
+ }),
27
+ finalize(() => {
28
+ deactivationHandlers.forEach((handler) => handler());
29
+ })
30
+ );
31
+ }
32
+ }
33
+ function areDifferentLayers(a, b) {
34
+ if (a.length !== b.length) {
35
+ return true;
36
+ }
37
+ for (let i = 0; i < a.length; i++) {
38
+ if (a[i] !== b[i]) {
39
+ return true;
40
+ }
41
+ }
42
+ return false;
43
+ }
44
+
45
+ export { DataLayersMerger };
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUxheWVyc01lcmdlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3F1ZXJ5aW5nL0RhdGFMYXllcnNNZXJnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCBtZXJnZSwgbWVyZ2VBbGwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhbmNlbEFjdGl2YXRpb25IYW5kbGVyLCBTY2VuZURhdGFMYXllclByb3ZpZGVyLCBTY2VuZURhdGFQcm92aWRlclJlc3VsdCB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRGF0YUxheWVyc01lcmdlciB7XG4gIHByaXZhdGUgX3Jlc3VsdHNNYXA6IE1hcDxzdHJpbmcsIFNjZW5lRGF0YVByb3ZpZGVyUmVzdWx0PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBfcHJldkxheWVyczogU2NlbmVEYXRhTGF5ZXJQcm92aWRlcltdID0gW107XG5cbiAgcHVibGljIGdldE1lcmdlZFN0cmVhbShsYXllcnM6IFNjZW5lRGF0YUxheWVyUHJvdmlkZXJbXSkge1xuICAgIGlmIChhcmVEaWZmZXJlbnRMYXllcnMobGF5ZXJzLCB0aGlzLl9wcmV2TGF5ZXJzKSkge1xuICAgICAgdGhpcy5fcmVzdWx0c01hcCA9IG5ldyBNYXAoKTtcbiAgICAgIHRoaXMuX3ByZXZMYXllcnMgPSBsYXllcnM7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0U3RyZWFtcyA9IGxheWVycy5tYXAoKGwpID0+IGwuZ2V0UmVzdWx0c1N0cmVhbSgpKTtcbiAgICBjb25zdCBkZWFjdGl2YXRpb25IYW5kbGVyczogQ2FuY2VsQWN0aXZhdGlvbkhhbmRsZXJbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBsYXllciBvZiBsYXllcnMpIHtcbiAgICAgIGRlYWN0aXZhdGlvbkhhbmRsZXJzLnB1c2gobGF5ZXIuYWN0aXZhdGUoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lcmdlKHJlc3VsdFN0cmVhbXMpLnBpcGUoXG4gICAgICBtZXJnZUFsbCgpLFxuICAgICAgZmlsdGVyKCh2KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHRzTWFwLmdldCh2Lm9yaWdpbi5zdGF0ZS5rZXkhKSAhPT0gdjtcbiAgICAgIH0pLFxuICAgICAgbWFwKCh2KSA9PiB7XG4gICAgICAgIC8vIElzIHRoZXJlIGEgYmV0dGVyLCByeGpzIG9ubHkgd2F5IHRvIGNvbWJpbmUgbXVsdGlwbGUgc2FtZS1kYXRhLXRvcGljIG9ic2VydmFibGVzP1xuICAgICAgICAvLyBJbmRleGluZyBieSBvcmlnaW4gc3RhdGUga2V5IGlzIHRvIG1ha2Ugc3VyZSB3ZSBkbyBub3QgZHVwbGljYXRlL292ZXJ3cml0ZSBkYXRhIGZyb20gdGhlIGRpZmZlcmVudCBvcmlnaW5zXG4gICAgICAgIHRoaXMuX3Jlc3VsdHNNYXAuc2V0KHYub3JpZ2luLnN0YXRlLmtleSEsIHYpO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWx0c01hcC52YWx1ZXMoKTtcbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICBkZWFjdGl2YXRpb25IYW5kbGVycy5mb3JFYWNoKChoYW5kbGVyKSA9PiBoYW5kbGVyKCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFyZURpZmZlcmVudExheWVycyhhOiBTY2VuZURhdGFMYXllclByb3ZpZGVyW10sIGI6IFNjZW5lRGF0YUxheWVyUHJvdmlkZXJbXSkge1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR08sTUFBTSxnQkFBaUIsQ0FBQTtBQUFBLEVBQXZCLFdBQUEsR0FBQTtBQUNMLElBQVEsSUFBQSxDQUFBLFdBQUEsdUJBQXdELEdBQUksRUFBQSxDQUFBO0FBQ3BFLElBQUEsSUFBQSxDQUFRLGNBQXdDLEVBQUMsQ0FBQTtBQUFBLEdBQUE7QUFBQSxFQUUxQyxnQkFBZ0IsTUFBa0MsRUFBQTtBQUN2RCxJQUFBLElBQUksa0JBQW1CLENBQUEsTUFBQSxFQUFRLElBQUssQ0FBQSxXQUFXLENBQUcsRUFBQTtBQUNoRCxNQUFLLElBQUEsQ0FBQSxXQUFBLHVCQUFrQixHQUFJLEVBQUEsQ0FBQTtBQUMzQixNQUFBLElBQUEsQ0FBSyxXQUFjLEdBQUEsTUFBQSxDQUFBO0FBQUEsS0FDckI7QUFFQSxJQUFBLE1BQU0sZ0JBQWdCLE1BQU8sQ0FBQSxHQUFBLENBQUksQ0FBQyxDQUFNLEtBQUEsQ0FBQSxDQUFFLGtCQUFrQixDQUFBLENBQUE7QUFDNUQsSUFBQSxNQUFNLHVCQUFrRCxFQUFDLENBQUE7QUFFekQsSUFBQSxLQUFBLE1BQVcsU0FBUyxNQUFRLEVBQUE7QUFDMUIsTUFBcUIsb0JBQUEsQ0FBQSxJQUFBLENBQUssS0FBTSxDQUFBLFFBQUEsRUFBVSxDQUFBLENBQUE7QUFBQSxLQUM1QztBQUVBLElBQU8sT0FBQSxLQUFBLENBQU0sYUFBYSxDQUFFLENBQUEsSUFBQTtBQUFBLE1BQzFCLFFBQVMsRUFBQTtBQUFBLE1BQ1QsTUFBQSxDQUFPLENBQUMsQ0FBTSxLQUFBO0FBQ1osUUFBQSxPQUFPLEtBQUssV0FBWSxDQUFBLEdBQUEsQ0FBSSxFQUFFLE1BQU8sQ0FBQSxLQUFBLENBQU0sR0FBSSxDQUFNLEtBQUEsQ0FBQSxDQUFBO0FBQUEsT0FDdEQsQ0FBQTtBQUFBLE1BQ0QsR0FBQSxDQUFJLENBQUMsQ0FBTSxLQUFBO0FBR1QsUUFBQSxJQUFBLENBQUssWUFBWSxHQUFJLENBQUEsQ0FBQSxDQUFFLE1BQU8sQ0FBQSxLQUFBLENBQU0sS0FBTSxDQUFDLENBQUEsQ0FBQTtBQUMzQyxRQUFPLE9BQUEsSUFBQSxDQUFLLFlBQVksTUFBTyxFQUFBLENBQUE7QUFBQSxPQUNoQyxDQUFBO0FBQUEsTUFDRCxTQUFTLE1BQU07QUFDYixRQUFBLG9CQUFBLENBQXFCLE9BQVEsQ0FBQSxDQUFDLE9BQVksS0FBQSxPQUFBLEVBQVMsQ0FBQSxDQUFBO0FBQUEsT0FDcEQsQ0FBQTtBQUFBLEtBQ0gsQ0FBQTtBQUFBLEdBQ0Y7QUFDRixDQUFBO0FBRUEsU0FBUyxrQkFBQSxDQUFtQixHQUE2QixDQUE2QixFQUFBO0FBQ3BGLEVBQUksSUFBQSxDQUFBLENBQUUsTUFBVyxLQUFBLENBQUEsQ0FBRSxNQUFRLEVBQUE7QUFDekIsSUFBTyxPQUFBLElBQUEsQ0FBQTtBQUFBLEdBQ1Q7QUFFQSxFQUFBLEtBQUEsSUFBUyxDQUFJLEdBQUEsQ0FBQSxFQUFHLENBQUksR0FBQSxDQUFBLENBQUUsUUFBUSxDQUFLLEVBQUEsRUFBQTtBQUNqQyxJQUFJLElBQUEsQ0FBQSxDQUFFLENBQU8sQ0FBQSxLQUFBLENBQUEsQ0FBRSxDQUFJLENBQUEsRUFBQTtBQUNqQixNQUFPLE9BQUEsSUFBQSxDQUFBO0FBQUEsS0FDVDtBQUFBLEdBQ0Y7QUFFQSxFQUFPLE9BQUEsS0FBQSxDQUFBO0FBQ1Q7Ozs7In0=
@@ -0,0 +1,37 @@
1
+ import { SceneObjectBase } from '../core/SceneObjectBase.js';
2
+
3
+ class DataProviderProxy extends SceneObjectBase {
4
+ constructor(state) {
5
+ super({
6
+ source: state.source,
7
+ data: state.source.resolve().state.data
8
+ });
9
+ this.addActivationHandler(() => {
10
+ this._subs.add(
11
+ this.state.source.resolve().subscribeToState((newState, oldState) => {
12
+ if (newState.data !== oldState.data) {
13
+ this.setState({ data: newState.data });
14
+ }
15
+ })
16
+ );
17
+ });
18
+ }
19
+ setContainerWidth(width) {
20
+ var _a, _b;
21
+ (_b = (_a = this.state.source.resolve()).setContainerWidth) == null ? void 0 : _b.call(_a, width);
22
+ }
23
+ isDataReadyToDisplay() {
24
+ var _a, _b, _c;
25
+ return (_c = (_b = (_a = this.state.source.resolve()).isDataReadyToDisplay) == null ? void 0 : _b.call(_a)) != null ? _c : true;
26
+ }
27
+ cancelQuery() {
28
+ var _a, _b;
29
+ (_b = (_a = this.state.source.resolve()).cancelQuery) == null ? void 0 : _b.call(_a);
30
+ }
31
+ getResultsStream() {
32
+ return this.state.source.resolve().getResultsStream();
33
+ }
34
+ }
35
+
36
+ export { DataProviderProxy };
37
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVByb3ZpZGVyUHJveHkuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9xdWVyeWluZy9EYXRhUHJvdmlkZXJQcm94eS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi9jb3JlL1NjZW5lT2JqZWN0QmFzZSc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdFJlZiB9IGZyb20gJy4uL2NvcmUvU2NlbmVPYmplY3RSZWYnO1xuaW1wb3J0IHsgU2NlbmVEYXRhU3RhdGUsIFNjZW5lRGF0YVByb3ZpZGVyLCBTY2VuZURhdGFQcm92aWRlclJlc3VsdCB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFQcm92aWRlclNoYXJlclN0YXRlIGV4dGVuZHMgU2NlbmVEYXRhU3RhdGUge1xuICBzb3VyY2U6IFNjZW5lT2JqZWN0UmVmPFNjZW5lRGF0YVByb3ZpZGVyPjtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFQcm92aWRlclByb3h5IGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlPERhdGFQcm92aWRlclNoYXJlclN0YXRlPiBpbXBsZW1lbnRzIFNjZW5lRGF0YVByb3ZpZGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHN0YXRlOiBEYXRhUHJvdmlkZXJTaGFyZXJTdGF0ZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIHNvdXJjZTogc3RhdGUuc291cmNlLFxuICAgICAgZGF0YTogc3RhdGUuc291cmNlLnJlc29sdmUoKS5zdGF0ZS5kYXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgICAgdGhpcy5zdGF0ZS5zb3VyY2UucmVzb2x2ZSgpLnN1YnNjcmliZVRvU3RhdGUoKG5ld1N0YXRlLCBvbGRTdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmIChuZXdTdGF0ZS5kYXRhICE9PSBvbGRTdGF0ZS5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGF0YTogbmV3U3RhdGUuZGF0YSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldENvbnRhaW5lcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuc2V0Q29udGFpbmVyV2lkdGg/Lih3aWR0aCk7XG4gIH1cblxuICBwdWJsaWMgaXNEYXRhUmVhZHlUb0Rpc3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc291cmNlLnJlc29sdmUoKS5pc0RhdGFSZWFkeVRvRGlzcGxheT8uKCkgPz8gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxRdWVyeSgpIHtcbiAgICB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuY2FuY2VsUXVlcnk/LigpO1xuICB9XG5cbiAgcHVibGljIGdldFJlc3VsdHNTdHJlYW0oKTogT2JzZXJ2YWJsZTxTY2VuZURhdGFQcm92aWRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuZ2V0UmVzdWx0c1N0cmVhbSgpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTTyxNQUFNLDBCQUEwQixlQUFzRSxDQUFBO0FBQUEsRUFDcEcsWUFBWSxLQUFnQyxFQUFBO0FBQ2pELElBQU0sS0FBQSxDQUFBO0FBQUEsTUFDSixRQUFRLEtBQU0sQ0FBQSxNQUFBO0FBQUEsTUFDZCxJQUFNLEVBQUEsS0FBQSxDQUFNLE1BQU8sQ0FBQSxPQUFBLEdBQVUsS0FBTSxDQUFBLElBQUE7QUFBQSxLQUNwQyxDQUFBLENBQUE7QUFFRCxJQUFBLElBQUEsQ0FBSyxxQkFBcUIsTUFBTTtBQUM5QixNQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsR0FBQTtBQUFBLFFBQ1QsSUFBQSxDQUFLLE1BQU0sTUFBTyxDQUFBLE9BQUEsR0FBVSxnQkFBaUIsQ0FBQSxDQUFDLFVBQVUsUUFBYSxLQUFBO0FBQ25FLFVBQUksSUFBQSxRQUFBLENBQVMsSUFBUyxLQUFBLFFBQUEsQ0FBUyxJQUFNLEVBQUE7QUFDbkMsWUFBQSxJQUFBLENBQUssUUFBUyxDQUFBLEVBQUUsSUFBTSxFQUFBLFFBQUEsQ0FBUyxNQUFNLENBQUEsQ0FBQTtBQUFBLFdBQ3ZDO0FBQUEsU0FDRCxDQUFBO0FBQUEsT0FDSCxDQUFBO0FBQUEsS0FDRCxDQUFBLENBQUE7QUFBQSxHQUNIO0FBQUEsRUFFTyxrQkFBa0IsS0FBZSxFQUFBO0FBM0IxQyxJQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsQ0FBQTtBQTRCSSxJQUFBLENBQUEsRUFBQSxHQUFBLENBQUEsRUFBQSxHQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsTUFBQSxDQUFPLE9BQVEsRUFBQSxFQUFFLHNCQUE1QixJQUFnRCxHQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxJQUFBLENBQUEsRUFBQSxFQUFBLEtBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDbEQ7QUFBQSxFQUVPLG9CQUF1QixHQUFBO0FBL0JoQyxJQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUFnQ0ksSUFBQSxPQUFBLENBQU8sc0JBQUssS0FBTSxDQUFBLE1BQUEsQ0FBTyxPQUFRLEVBQUEsRUFBRSx5QkFBNUIsSUFBd0QsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsQ0FBQSxLQUFBLElBQUEsR0FBQSxFQUFBLEdBQUEsSUFBQSxDQUFBO0FBQUEsR0FDakU7QUFBQSxFQUVPLFdBQWMsR0FBQTtBQW5DdkIsSUFBQSxJQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUFvQ0ksSUFBQSxDQUFBLEVBQUEsR0FBQSxDQUFBLEVBQUEsR0FBQSxJQUFBLENBQUssS0FBTSxDQUFBLE1BQUEsQ0FBTyxPQUFRLEVBQUEsRUFBRSxXQUE1QixLQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDRjtBQUFBLEVBRU8sZ0JBQXdELEdBQUE7QUFDN0QsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQU0sTUFBTyxDQUFBLE9BQUEsR0FBVSxnQkFBaUIsRUFBQSxDQUFBO0FBQUEsR0FDdEQ7QUFDRjs7OzsifQ==
@@ -0,0 +1,108 @@
1
+ import 'react';
2
+ import 'react-router-dom';
3
+ import '@grafana/data';
4
+ import '@grafana/runtime';
5
+ import { SceneObjectBase } from '../../dist/esm/core/SceneObjectBase.js';
6
+ import '../../dist/esm/core/SceneObjectRef.js';
7
+ import 'lodash';
8
+ import '../../dist/esm/variables/interpolation/defaults.js';
9
+ import '@grafana/schema';
10
+ import '../../dist/esm/variables/types.js';
11
+ import '../../dist/esm/variables/interpolation/formatRegistry.js';
12
+ import '../../dist/esm/variables/macros/index.js';
13
+ import '../../dist/esm/variables/variants/query/QueryVariable.js';
14
+ import 'rxjs';
15
+ import '../../dist/esm/core/SceneDataNode.js';
16
+ import '../../dist/esm/variables/groupby/GroupByVariable.js';
17
+ import '../../dist/esm/variables/adhoc/AdHocFiltersVariable.js';
18
+ import '../../dist/esm/utils/SafeSerializableSceneObject.js';
19
+ import '../../dist/esm/core/events.js';
20
+ import '../../dist/esm/behaviors/LiveNowTimer.js';
21
+ import '../../dist/esm/querying/layers/annotations/AnnotationsDataLayer.js';
22
+ import '../../dist/esm/querying/SceneDataLayerSet.js';
23
+ import '../../dist/esm/querying/layers/SceneDataLayerControls.js';
24
+ import '../../dist/esm/variables/components/VariableValueSelectors.js';
25
+ import '../../dist/esm/variables/components/VariableValueControl.js';
26
+ import '../../dist/esm/variables/variants/CustomVariable.js';
27
+ import '../../dist/esm/variables/variants/DataSourceVariable.js';
28
+ import '../../dist/esm/variables/variants/TestVariable.js';
29
+ import '../../dist/esm/variables/variants/TextBoxVariable.js';
30
+ import '../../dist/esm/variables/variants/IntervalVariable.js';
31
+ import '../../dist/esm/services/UrlSyncManager.js';
32
+ import '../../dist/esm/components/EmbeddedScene.js';
33
+ import '../../dist/esm/components/VizPanel/VizPanel.js';
34
+ import '../../dist/esm/components/VizPanel/VizPanelMenu.js';
35
+ import '../../dist/esm/components/NestedScene.js';
36
+ import '../../dist/esm/components/SceneCanvasText.js';
37
+ import '../../dist/esm/components/SceneToolbarButton.js';
38
+ import '../../dist/esm/components/SceneTimePicker.js';
39
+ import '../../dist/esm/components/SceneRefreshPicker.js';
40
+ import '../../dist/esm/components/SceneTimeRangeCompare.js';
41
+ import '../../dist/esm/components/SceneByFrameRepeater.js';
42
+ import '../../dist/esm/components/SceneByVariableRepeater.js';
43
+ import '../../dist/esm/components/SceneControlsSpacer.js';
44
+ import '../../dist/esm/components/layout/SceneFlexLayout.js';
45
+ import '../../dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js';
46
+ import '../../dist/esm/components/layout/grid/SceneGridLayout.js';
47
+ import '../../dist/esm/components/layout/grid/SceneGridItem.js';
48
+ import '../../dist/esm/components/layout/grid/SceneGridRow.js';
49
+ import '../../dist/esm/components/layout/split/SplitLayout.js';
50
+ import '../../dist/esm/components/SceneApp/SceneApp.js';
51
+ import '../../dist/esm/components/SceneApp/SceneAppPage.js';
52
+ import '../../dist/esm/components/SceneReactObject.js';
53
+ import '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';
54
+ import '@grafana/schema/dist/esm/raw/composable/bargauge/panelcfg/x/BarGaugePanelCfg_types.gen';
55
+ import '@grafana/schema/dist/esm/raw/composable/datagrid/panelcfg/x/DatagridPanelCfg_types.gen';
56
+ import '@grafana/schema/dist/esm/raw/composable/gauge/panelcfg/x/GaugePanelCfg_types.gen';
57
+ import '@grafana/schema/dist/esm/raw/composable/geomap/panelcfg/x/GeomapPanelCfg_types.gen';
58
+ import '@grafana/schema/dist/esm/raw/composable/heatmap/panelcfg/x/HeatmapPanelCfg_types.gen';
59
+ import '@grafana/schema/dist/esm/raw/composable/histogram/panelcfg/x/HistogramPanelCfg_types.gen';
60
+ import '@grafana/schema/dist/esm/raw/composable/news/panelcfg/x/NewsPanelCfg_types.gen';
61
+ import '@grafana/schema/dist/esm/raw/composable/piechart/panelcfg/x/PieChartPanelCfg_types.gen';
62
+ import '@grafana/schema/dist/esm/raw/composable/stat/panelcfg/x/StatPanelCfg_types.gen';
63
+ import '@grafana/schema/dist/esm/raw/composable/statetimeline/panelcfg/x/StateTimelinePanelCfg_types.gen';
64
+ import '@grafana/schema/dist/esm/raw/composable/statushistory/panelcfg/x/StatusHistoryPanelCfg_types.gen';
65
+ import '@grafana/schema/dist/esm/raw/composable/table/panelcfg/x/TablePanelCfg_types.gen';
66
+ import '@grafana/schema/dist/esm/raw/composable/text/panelcfg/x/TextPanelCfg_types.gen';
67
+ import '@grafana/schema/dist/esm/raw/composable/xychart/panelcfg/x/XYChartPanelCfg_types.gen';
68
+ import '@emotion/css';
69
+ import '@grafana/ui';
70
+ import '../../dist/esm/variables/components/VariableValueSelect.js';
71
+
72
+ class DataProviderSharer extends SceneObjectBase {
73
+ constructor(state) {
74
+ super({
75
+ source: state.source,
76
+ data: state.source.resolve().state.data,
77
+ });
78
+ this.addActivationHandler(() => {
79
+ this._subs.add(
80
+ this.state.source.resolve().subscribeToState((newState, oldState) => {
81
+ if (newState.data !== oldState.data) {
82
+ this.setState({ data: newState.data });
83
+ }
84
+ })
85
+ );
86
+ });
87
+ }
88
+ setContainerWidth(width) {
89
+ var _a, _b;
90
+ (_b = (_a = this.state.source.resolve()).setContainerWidth) == null ? void 0 : _b.call(_a, width);
91
+ }
92
+ isDataReadyToDisplay() {
93
+ var _a, _b, _c;
94
+ return (_c = (_b = (_a = this.state.source.resolve()).isDataReadyToDisplay) == null ? void 0 : _b.call(_a)) != null
95
+ ? _c
96
+ : true;
97
+ }
98
+ cancelQuery() {
99
+ var _a, _b;
100
+ (_b = (_a = this.state.source.resolve()).cancelQuery) == null ? void 0 : _b.call(_a);
101
+ }
102
+ getResultsStream() {
103
+ return this.state.source.resolve().getResultsStream();
104
+ }
105
+ }
106
+
107
+ export { DataProviderSharer };
108
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVByb3ZpZGVyU2hhcmVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcXVlcnlpbmcvRGF0YVByb3ZpZGVyU2hhcmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNjZW5lT2JqZWN0QmFzZSxcbiAgU2NlbmVPYmplY3RSZWYsXG4gIFNjZW5lRGF0YVByb3ZpZGVyLFxuICBTY2VuZURhdGFQcm92aWRlclJlc3VsdCxcbiAgU2NlbmVEYXRhU3RhdGUsXG59IGZyb20gJ0BncmFmYW5hL3NjZW5lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVByb3ZpZGVyU2hhcmVyU3RhdGUgZXh0ZW5kcyBTY2VuZURhdGFTdGF0ZSB7XG4gIHNvdXJjZTogU2NlbmVPYmplY3RSZWY8U2NlbmVEYXRhUHJvdmlkZXI+O1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YVByb3ZpZGVyU2hhcmVyIGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlPERhdGFQcm92aWRlclNoYXJlclN0YXRlPiBpbXBsZW1lbnRzIFNjZW5lRGF0YVByb3ZpZGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHN0YXRlOiBEYXRhUHJvdmlkZXJTaGFyZXJTdGF0ZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIHNvdXJjZTogc3RhdGUuc291cmNlLFxuICAgICAgZGF0YTogc3RhdGUuc291cmNlLnJlc29sdmUoKS5zdGF0ZS5kYXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgICAgdGhpcy5zdGF0ZS5zb3VyY2UucmVzb2x2ZSgpLnN1YnNjcmliZVRvU3RhdGUoKG5ld1N0YXRlLCBvbGRTdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmIChuZXdTdGF0ZS5kYXRhICE9PSBvbGRTdGF0ZS5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGF0YTogbmV3U3RhdGUuZGF0YSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldENvbnRhaW5lcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuc2V0Q29udGFpbmVyV2lkdGg/Lih3aWR0aCk7XG4gIH1cblxuICBwdWJsaWMgaXNEYXRhUmVhZHlUb0Rpc3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc291cmNlLnJlc29sdmUoKS5pc0RhdGFSZWFkeVRvRGlzcGxheT8uKCkgPz8gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxRdWVyeSgpIHtcbiAgICB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuY2FuY2VsUXVlcnk/LigpO1xuICB9XG5cbiAgcHVibGljIGdldFJlc3VsdHNTdHJlYW0oKTogT2JzZXJ2YWJsZTxTY2VuZURhdGFQcm92aWRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuZ2V0UmVzdWx0c1N0cmVhbSgpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhTyxNQUFNLDJCQUEyQixlQUFzRSxDQUFBO0FBQUEsRUFDckcsWUFBWSxLQUFnQyxFQUFBO0FBQ2pELElBQU0sS0FBQSxDQUFBO0FBQUEsTUFDSixRQUFRLEtBQU0sQ0FBQSxNQUFBO0FBQUEsTUFDZCxJQUFNLEVBQUEsS0FBQSxDQUFNLE1BQU8sQ0FBQSxPQUFBLEdBQVUsS0FBTSxDQUFBLElBQUE7QUFBQSxLQUNwQyxDQUFBLENBQUE7QUFFRCxJQUFBLElBQUEsQ0FBSyxxQkFBcUIsTUFBTTtBQUM5QixNQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsR0FBQTtBQUFBLFFBQ1QsSUFBQSxDQUFLLE1BQU0sTUFBTyxDQUFBLE9BQUEsR0FBVSxnQkFBaUIsQ0FBQSxDQUFDLFVBQVUsUUFBYSxLQUFBO0FBQ25FLFVBQUksSUFBQSxRQUFBLENBQVMsSUFBUyxLQUFBLFFBQUEsQ0FBUyxJQUFNLEVBQUE7QUFDbkMsWUFBQSxJQUFBLENBQUssUUFBUyxDQUFBLEVBQUUsSUFBTSxFQUFBLFFBQUEsQ0FBUyxNQUFNLENBQUEsQ0FBQTtBQUFBLFdBQ3ZDO0FBQUEsU0FDRCxDQUFBO0FBQUEsT0FDSCxDQUFBO0FBQUEsS0FDRCxDQUFBLENBQUE7QUFBQSxHQUNIO0FBQUEsRUFFTyxrQkFBa0IsS0FBZSxFQUFBO0FBL0IxQyxJQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsQ0FBQTtBQWdDSSxJQUFBLENBQUEsRUFBQSxHQUFBLENBQUEsRUFBQSxHQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsTUFBQSxDQUFPLE9BQVEsRUFBQSxFQUFFLHNCQUE1QixJQUFnRCxHQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxJQUFBLENBQUEsRUFBQSxFQUFBLEtBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDbEQ7QUFBQSxFQUVPLG9CQUF1QixHQUFBO0FBbkNoQyxJQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUFvQ0ksSUFBQSxPQUFBLENBQU8sc0JBQUssS0FBTSxDQUFBLE1BQUEsQ0FBTyxPQUFRLEVBQUEsRUFBRSx5QkFBNUIsSUFBd0QsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsQ0FBQSxLQUFBLElBQUEsR0FBQSxFQUFBLEdBQUEsSUFBQSxDQUFBO0FBQUEsR0FDakU7QUFBQSxFQUVPLFdBQWMsR0FBQTtBQXZDdkIsSUFBQSxJQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUF3Q0ksSUFBQSxDQUFBLEVBQUEsR0FBQSxDQUFBLEVBQUEsR0FBQSxJQUFBLENBQUssS0FBTSxDQUFBLE1BQUEsQ0FBTyxPQUFRLEVBQUEsRUFBRSxXQUE1QixLQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDRjtBQUFBLEVBRU8sZ0JBQXdELEdBQUE7QUFDN0QsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQU0sTUFBTyxDQUFBLE9BQUEsR0FBVSxnQkFBaUIsRUFBQSxDQUFBO0FBQUEsR0FDdEQ7QUFDRjs7OzsifQ==
@@ -0,0 +1,6 @@
1
+ function isExtraQueryProvider(obj) {
2
+ return typeof obj === "object" && "getExtraQueries" in obj;
3
+ }
4
+
5
+ export { isExtraQueryProvider };
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0cmFRdWVyeVByb3ZpZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcXVlcnlpbmcvRXh0cmFRdWVyeVByb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFRdWVyeVJlcXVlc3QsIFBhbmVsRGF0YSB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi9jb3JlL1NjZW5lT2JqZWN0QmFzZSc7XG5pbXBvcnQgeyBTY2VuZURhdGFRdWVyeSwgU2NlbmVPYmplY3RTdGF0ZSB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG4vLyBBIHByb2Nlc3NvciBmdW5jdGlvbiBjYWxsZWQgYnkgdGhlIHF1ZXJ5IHJ1bm5lciB3aXRoIHJlc3BvbnNlc1xuLy8gdG8gYW55IGV4dHJhIHJlcXVlc3RzLlxuLy9cbi8vIEEgcHJvY2Vzc29yIGZ1bmN0aW9uIHNob3VsZCBhY2NlcHQgdHdvIGFyZ3VtZW50czogdGhlIGRhdGEgcmV0dXJuZWQgYnkgdGhlXG4vLyBfcHJpbWFyeV8gcXVlcnksIGFuZCB0aGUgZGF0YSByZXR1cm5lZCBieSB0aGUgYEV4dHJhUXVlcnlQcm92aWRlcmAnc1xuLy8gX3NlY29uZGFyeV8gcXVlcnkuIEl0IHNob3VsZCByZXR1cm4gYSBuZXcgYFBhbmVsRGF0YWAgcmVwcmVzZW50aW5nIHRoZSBwcm9jZXNzZWQgb3V0cHV0LlxuLy8gSXQgc2hvdWxkIF9ub3RfIG1vZGlmeSB0aGUgcHJpbWFyeSBQYW5lbERhdGEuXG4vL1xuLy8gRXhhbXBsZXMgb2YgdmFsaWQgcHJvY2Vzc2luZyBpbmNsdWRlIGFsaWdubWVudCBvZiBkYXRhIGJldHdlZW4gcHJpbWFyeSBhbmQgc2Vjb25kYXJ5XG4vLyAoc2VlIHRoZSBgdGltZVNoaWZ0QWxpZ25tZW50UHJvY2Vzc29yYCByZXR1cm5lZCBieSBgU2NlbmVUaW1lUmFuZ2VDb21wYXJlYCksIG9yIGRvaW5nXG4vLyBzb21lIG1vcmUgYWR2YW5jZWQgcHJvY2Vzc2luZyBzdWNoIGFzIGZpdHRpbmcgYSB0aW1lIHNlcmllcyBtb2RlbCBvbiB0aGUgc2Vjb25kYXJ5IGRhdGEuXG4vL1xuLy8gU2VlIHRoZSBkb2NzIGZvciBgZXh0cmFRdWVyeVByb2Nlc3NpbmdPcGVyYXRvcmAgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG5leHBvcnQgdHlwZSBFeHRyYVF1ZXJ5RGF0YVByb2Nlc3NvciA9IChwcmltYXJ5OiBQYW5lbERhdGEsIHNlY29uZGFyeTogUGFuZWxEYXRhKSA9PiBPYnNlcnZhYmxlPFBhbmVsRGF0YT47XG5cbi8vIEFuIGV4dHJhIHJlcXVlc3QgdGhhdCBzaG91bGQgYmUgcnVuIGJ5IGEgcXVlcnkgcnVubmVyLCBhbmQgYW4gb3B0aW9uYWxcbi8vIHByb2Nlc3NvciB0aGF0IHNob3VsZCBiZSBjYWxsZWQgd2l0aCB0aGUgcmVzcG9uc2UgZGF0YS5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFRdWVyeURlc2NyaXB0b3Ige1xuICAvLyBUaGUgZXh0cmEgcmVxdWVzdCB0byBhZGQuXG4gIHJlcTogRGF0YVF1ZXJ5UmVxdWVzdDtcbiAgLy8gQW4gb3B0aW9uYWwgZnVuY3Rpb24gdXNlZCB0byBwcm9jZXNzIHRoZSBkYXRhIGJlZm9yZSBwYXNzaW5nIGl0XG4gIC8vIHRvIGFueSB0cmFuc2Zvcm1hdGlvbnMgb3IgdmlzdWFsaXphdGlvbnMuXG4gIHByb2Nlc3Nvcj86IEV4dHJhUXVlcnlEYXRhUHJvY2Vzc29yO1xufVxuXG4vLyBJbmRpY2F0ZXMgdGhhdCB0aGlzIHR5cGUgd2FudHMgdG8gYWRkIGV4dHJhIHJlcXVlc3RzLCBhbG9uZyB3aXRoXG4vLyBvcHRpb25hbCBwcm9jZXNzaW5nIGZ1bmN0aW9ucywgdG8gYSBxdWVyeSBydW5uZXIuXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhUXVlcnlQcm92aWRlcjxUIGV4dGVuZHMgU2NlbmVPYmplY3RTdGF0ZT4gZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2U8VD4ge1xuICAvLyBHZXQgYW55IGV4dHJhIHJlcXVlc3RzIGFuZCB0aGVpciByZXF1aXJlZCBwcm9jZXNzb3JzLlxuICBnZXRFeHRyYVF1ZXJpZXMocmVxdWVzdDogRGF0YVF1ZXJ5UmVxdWVzdCk6IEV4dHJhUXVlcnlEZXNjcmlwdG9yW107XG4gIC8vIERldGVybWluZSB3aGV0aGVyIGEgcXVlcnkgc2hvdWxkIGJlIHJlcnVuLlxuICAvL1xuICAvLyBXaGVuIHRoZSBwcm92aWRlcidzIHN0YXRlIGNoYW5nZXMgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIHBhc3NlZCBib3RoIHRoZSBwcmV2aW91cyBhbmQgdGhlXG4gIC8vIG5leHQgc3RhdGUuIFRoZSBpbXBsZW1lbnRhdGlvbiBjYW4gdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNoYW5nZSBzaG91bGQgdHJpZ2dlclxuICAvLyBhIHJlcnVuIG9mIHRoZSBxdWVyeSBvciBub3QuXG4gIHNob3VsZFJlcnVuKHByZXY6IFQsIG5leHQ6IFQsIHF1ZXJpZXM6IFNjZW5lRGF0YVF1ZXJ5W10pOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFeHRyYVF1ZXJ5UHJvdmlkZXIob2JqOiBhbnkpOiBvYmogaXMgRXh0cmFRdWVyeVByb3ZpZGVyPGFueT4ge1xuICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgJ2dldEV4dHJhUXVlcmllcycgaW4gb2JqO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRDTyxTQUFTLHFCQUFxQixHQUEwQyxFQUFBO0FBQzdFLEVBQU8sT0FBQSxPQUFPLEdBQVEsS0FBQSxRQUFBLElBQVksaUJBQXFCLElBQUEsR0FBQSxDQUFBO0FBQ3pEOzs7OyJ9
@@ -0,0 +1,49 @@
1
+ import { DataSourceApi, PluginType } from '@grafana/data';
2
+
3
+ class RuntimeDataSource extends DataSourceApi {
4
+ constructor(pluginId, uid) {
5
+ super({
6
+ name: "RuntimeDataSource-" + pluginId,
7
+ uid,
8
+ type: pluginId,
9
+ id: 1,
10
+ readOnly: true,
11
+ jsonData: {},
12
+ access: "direct",
13
+ meta: {
14
+ id: pluginId,
15
+ name: "RuntimeDataSource-" + pluginId,
16
+ type: PluginType.datasource,
17
+ info: {
18
+ author: {
19
+ name: ""
20
+ },
21
+ description: "",
22
+ links: [],
23
+ logos: {
24
+ large: "",
25
+ small: ""
26
+ },
27
+ screenshots: [],
28
+ updated: "",
29
+ version: ""
30
+ },
31
+ module: "",
32
+ baseUrl: ""
33
+ }
34
+ });
35
+ }
36
+ testDatasource() {
37
+ return Promise.resolve({});
38
+ }
39
+ }
40
+ const runtimeDataSources = /* @__PURE__ */ new Map();
41
+ function registerRuntimeDataSource({ dataSource }) {
42
+ if (runtimeDataSources.has(dataSource.uid)) {
43
+ throw new Error(`A runtime data source with uid ${dataSource.uid} has already been registered`);
44
+ }
45
+ runtimeDataSources.set(dataSource.uid, dataSource);
46
+ }
47
+
48
+ export { RuntimeDataSource, registerRuntimeDataSource, runtimeDataSources };
49
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVudGltZURhdGFTb3VyY2UuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9xdWVyeWluZy9SdW50aW1lRGF0YVNvdXJjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhUXVlcnksIERhdGFTb3VyY2VBcGksIFBsdWdpblR5cGUgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJ1bnRpbWVEYXRhU291cmNlPFRRdWVyeSBleHRlbmRzIERhdGFRdWVyeSA9IERhdGFRdWVyeT4gZXh0ZW5kcyBEYXRhU291cmNlQXBpPFRRdWVyeT4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IocGx1Z2luSWQ6IHN0cmluZywgdWlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcih7XG4gICAgICBuYW1lOiAnUnVudGltZURhdGFTb3VyY2UtJyArIHBsdWdpbklkLFxuICAgICAgdWlkOiB1aWQsXG4gICAgICB0eXBlOiBwbHVnaW5JZCxcbiAgICAgIGlkOiAxLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICBqc29uRGF0YToge30sXG4gICAgICBhY2Nlc3M6ICdkaXJlY3QnLFxuICAgICAgbWV0YToge1xuICAgICAgICBpZDogcGx1Z2luSWQsXG4gICAgICAgIG5hbWU6ICdSdW50aW1lRGF0YVNvdXJjZS0nICsgcGx1Z2luSWQsXG4gICAgICAgIHR5cGU6IFBsdWdpblR5cGUuZGF0YXNvdXJjZSxcbiAgICAgICAgaW5mbzoge1xuICAgICAgICAgIGF1dGhvcjoge1xuICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgICAgbGlua3M6IFtdLFxuICAgICAgICAgIGxvZ29zOiB7XG4gICAgICAgICAgICBsYXJnZTogJycsXG4gICAgICAgICAgICBzbWFsbDogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzY3JlZW5zaG90czogW10sXG4gICAgICAgICAgdXBkYXRlZDogJycsXG4gICAgICAgICAgdmVyc2lvbjogJycsXG4gICAgICAgIH0sXG4gICAgICAgIG1vZHVsZTogJycsXG4gICAgICAgIGJhc2VVcmw6ICcnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0ZXN0RGF0YXNvdXJjZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBydW50aW1lRGF0YVNvdXJjZXMgPSBuZXcgTWFwPHN0cmluZywgUnVudGltZURhdGFTb3VyY2U+KCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZURhdGFTb3VyY2VPcHRpb25zIHtcbiAgZGF0YVNvdXJjZTogUnVudGltZURhdGFTb3VyY2U7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYSB3YXkgdG8gcmVnaXN0ZXIgcnVudGltZSBwYW5lbCBwbHVnaW5zLlxuICogUGxlYXNlIHVzZSBhIHBsdWdpbklkIHRoYXQgaXMgdW5saWtlbHkgdG8gY29sbGlkZSB3aXRoIG90aGVyIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclJ1bnRpbWVEYXRhU291cmNlKHsgZGF0YVNvdXJjZSB9OiBSdW50aW1lRGF0YVNvdXJjZU9wdGlvbnMpIHtcbiAgaWYgKHJ1bnRpbWVEYXRhU291cmNlcy5oYXMoZGF0YVNvdXJjZS51aWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBIHJ1bnRpbWUgZGF0YSBzb3VyY2Ugd2l0aCB1aWQgJHtkYXRhU291cmNlLnVpZH0gaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkYCk7XG4gIH1cblxuICBydW50aW1lRGF0YVNvdXJjZXMuc2V0KGRhdGFTb3VyY2UudWlkLCBkYXRhU291cmNlKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVPLE1BQWUsMEJBQWdFLGFBQXNCLENBQUE7QUFBQSxFQUNuRyxXQUFBLENBQVksVUFBa0IsR0FBYSxFQUFBO0FBQ2hELElBQU0sS0FBQSxDQUFBO0FBQUEsTUFDSixNQUFNLG9CQUF1QixHQUFBLFFBQUE7QUFBQSxNQUM3QixHQUFBO0FBQUEsTUFDQSxJQUFNLEVBQUEsUUFBQTtBQUFBLE1BQ04sRUFBSSxFQUFBLENBQUE7QUFBQSxNQUNKLFFBQVUsRUFBQSxJQUFBO0FBQUEsTUFDVixVQUFVLEVBQUM7QUFBQSxNQUNYLE1BQVEsRUFBQSxRQUFBO0FBQUEsTUFDUixJQUFNLEVBQUE7QUFBQSxRQUNKLEVBQUksRUFBQSxRQUFBO0FBQUEsUUFDSixNQUFNLG9CQUF1QixHQUFBLFFBQUE7QUFBQSxRQUM3QixNQUFNLFVBQVcsQ0FBQSxVQUFBO0FBQUEsUUFDakIsSUFBTSxFQUFBO0FBQUEsVUFDSixNQUFRLEVBQUE7QUFBQSxZQUNOLElBQU0sRUFBQSxFQUFBO0FBQUEsV0FDUjtBQUFBLFVBQ0EsV0FBYSxFQUFBLEVBQUE7QUFBQSxVQUNiLE9BQU8sRUFBQztBQUFBLFVBQ1IsS0FBTyxFQUFBO0FBQUEsWUFDTCxLQUFPLEVBQUEsRUFBQTtBQUFBLFlBQ1AsS0FBTyxFQUFBLEVBQUE7QUFBQSxXQUNUO0FBQUEsVUFDQSxhQUFhLEVBQUM7QUFBQSxVQUNkLE9BQVMsRUFBQSxFQUFBO0FBQUEsVUFDVCxPQUFTLEVBQUEsRUFBQTtBQUFBLFNBQ1g7QUFBQSxRQUNBLE1BQVEsRUFBQSxFQUFBO0FBQUEsUUFDUixPQUFTLEVBQUEsRUFBQTtBQUFBLE9BQ1g7QUFBQSxLQUNELENBQUEsQ0FBQTtBQUFBLEdBQ0g7QUFBQSxFQUVPLGNBQStCLEdBQUE7QUFDcEMsSUFBTyxPQUFBLE9BQUEsQ0FBUSxPQUFRLENBQUEsRUFBRSxDQUFBLENBQUE7QUFBQSxHQUMzQjtBQUNGLENBQUE7QUFFYSxNQUFBLGtCQUFBLHVCQUF5QixHQUErQixHQUFBO0FBVXJELFNBQUEseUJBQUEsQ0FBMEIsRUFBRSxVQUFBLEVBQXdDLEVBQUE7QUFDbEYsRUFBQSxJQUFJLGtCQUFtQixDQUFBLEdBQUEsQ0FBSSxVQUFXLENBQUEsR0FBRyxDQUFHLEVBQUE7QUFDMUMsSUFBQSxNQUFNLElBQUksS0FBQSxDQUFNLENBQWtDLCtCQUFBLEVBQUEsVUFBQSxDQUFXLEdBQWlDLENBQUEsNEJBQUEsQ0FBQSxDQUFBLENBQUE7QUFBQSxHQUNoRztBQUVBLEVBQW1CLGtCQUFBLENBQUEsR0FBQSxDQUFJLFVBQVcsQ0FBQSxHQUFBLEVBQUssVUFBVSxDQUFBLENBQUE7QUFDbkQ7Ozs7In0=
@@ -0,0 +1,100 @@
1
+ import React from 'react';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { emptyPanelData } from '../core/SceneDataNode.js';
4
+ import { SceneObjectBase } from '../core/SceneObjectBase.js';
5
+ import { DataLayersMerger } from './DataLayersMerger.js';
6
+ import { setBaseClassState } from '../utils/utils.js';
7
+
8
+ var __defProp = Object.defineProperty;
9
+ var __defProps = Object.defineProperties;
10
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
11
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
25
+ };
26
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
27
+ class SceneDataLayerSetBase extends SceneObjectBase {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.isDataLayer = true;
31
+ this._results = new ReplaySubject(1);
32
+ this._dataLayersMerger = new DataLayersMerger();
33
+ }
34
+ subscribeToAllLayers(layers) {
35
+ if (layers.length > 0) {
36
+ this.querySub = this._dataLayersMerger.getMergedStream(layers).subscribe(this._onLayerUpdateReceived.bind(this));
37
+ } else {
38
+ this._results.next({ origin: this, data: emptyPanelData });
39
+ this.setStateHelper({ data: emptyPanelData });
40
+ }
41
+ }
42
+ _onLayerUpdateReceived(results) {
43
+ var _a;
44
+ let series = [];
45
+ for (const result of results) {
46
+ if ((_a = result.data) == null ? void 0 : _a.series) {
47
+ series = series.concat(result.data.series);
48
+ }
49
+ }
50
+ const combinedData = __spreadProps(__spreadValues({}, emptyPanelData), { series });
51
+ this._results.next({ origin: this, data: combinedData });
52
+ this.setStateHelper({ data: combinedData });
53
+ }
54
+ getResultsStream() {
55
+ return this._results;
56
+ }
57
+ cancelQuery() {
58
+ var _a;
59
+ (_a = this.querySub) == null ? void 0 : _a.unsubscribe();
60
+ }
61
+ setStateHelper(state) {
62
+ setBaseClassState(this, state);
63
+ }
64
+ }
65
+ class SceneDataLayerSet extends SceneDataLayerSetBase {
66
+ constructor(state) {
67
+ var _a, _b;
68
+ super({
69
+ name: (_a = state.name) != null ? _a : "Data layers",
70
+ layers: (_b = state.layers) != null ? _b : []
71
+ });
72
+ this.addActivationHandler(() => this._onActivate());
73
+ }
74
+ _onActivate() {
75
+ this._subs.add(
76
+ this.subscribeToState((newState, oldState) => {
77
+ var _a;
78
+ if (newState.layers !== oldState.layers) {
79
+ (_a = this.querySub) == null ? void 0 : _a.unsubscribe();
80
+ this.subscribeToAllLayers(newState.layers);
81
+ }
82
+ })
83
+ );
84
+ this.subscribeToAllLayers(this.state.layers);
85
+ return () => {
86
+ var _a;
87
+ (_a = this.querySub) == null ? void 0 : _a.unsubscribe();
88
+ };
89
+ }
90
+ }
91
+ SceneDataLayerSet.Component = ({ model }) => {
92
+ const { layers } = model.useState();
93
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, layers.map((layer) => /* @__PURE__ */ React.createElement(layer.Component, {
94
+ model: layer,
95
+ key: layer.state.key
96
+ })));
97
+ };
98
+
99
+ export { SceneDataLayerSet, SceneDataLayerSetBase };
100
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVEYXRhTGF5ZXJTZXQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9xdWVyeWluZy9TY2VuZURhdGFMYXllclNldC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IERhdGFGcmFtZSB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgVW5zdWJzY3JpYmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVtcHR5UGFuZWxEYXRhIH0gZnJvbSAnLi4vY29yZS9TY2VuZURhdGFOb2RlJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0QmFzZSB9IGZyb20gJy4uL2NvcmUvU2NlbmVPYmplY3RCYXNlJztcbmltcG9ydCB7XG4gIFNjZW5lQ29tcG9uZW50UHJvcHMsXG4gIFNjZW5lRGF0YUxheWVyUHJvdmlkZXIsXG4gIFNjZW5lRGF0YUxheWVyUHJvdmlkZXJTdGF0ZSxcbiAgU2NlbmVEYXRhUHJvdmlkZXJSZXN1bHQsXG59IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgRGF0YUxheWVyc01lcmdlciB9IGZyb20gJy4vRGF0YUxheWVyc01lcmdlcic7XG5pbXBvcnQgeyBzZXRCYXNlQ2xhc3NTdGF0ZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNjZW5lRGF0YUxheWVyU2V0QmFzZTxUIGV4dGVuZHMgU2NlbmVEYXRhTGF5ZXJQcm92aWRlclN0YXRlPlxuICBleHRlbmRzIFNjZW5lT2JqZWN0QmFzZTxUPlxuICBpbXBsZW1lbnRzIFNjZW5lRGF0YUxheWVyUHJvdmlkZXJcbntcbiAgLyoqIE1hcmsgaXQgYXMgYSBkYXRhIGxheWVyICovXG4gIHB1YmxpYyBpc0RhdGFMYXllcjogdHJ1ZSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbiB0byBxdWVyeSByZXN1bHRzLiBTaG91bGQgYmUgc2V0IHdoZW4gbGF5ZXIgcnVucyBhIHF1ZXJ5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHF1ZXJ5U3ViPzogVW5zdWJzY3JpYmFibGU7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgdG8gZW1pdCByZXN1bHRzIHRvLlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVzdWx0cyA9IG5ldyBSZXBsYXlTdWJqZWN0PFNjZW5lRGF0YVByb3ZpZGVyUmVzdWx0PigxKTtcbiAgcHJpdmF0ZSBfZGF0YUxheWVyc01lcmdlciA9IG5ldyBEYXRhTGF5ZXJzTWVyZ2VyKCk7XG5cbiAgcHJvdGVjdGVkIHN1YnNjcmliZVRvQWxsTGF5ZXJzKGxheWVyczogU2NlbmVEYXRhTGF5ZXJQcm92aWRlcltdKSB7XG4gICAgaWYgKGxheWVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnF1ZXJ5U3ViID0gdGhpcy5fZGF0YUxheWVyc01lcmdlci5nZXRNZXJnZWRTdHJlYW0obGF5ZXJzKS5zdWJzY3JpYmUodGhpcy5fb25MYXllclVwZGF0ZVJlY2VpdmVkLmJpbmQodGhpcykpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZXN1bHRzLm5leHQoeyBvcmlnaW46IHRoaXMsIGRhdGE6IGVtcHR5UGFuZWxEYXRhIH0pO1xuICAgICAgdGhpcy5zZXRTdGF0ZUhlbHBlcih7IGRhdGE6IGVtcHR5UGFuZWxEYXRhIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uTGF5ZXJVcGRhdGVSZWNlaXZlZChyZXN1bHRzOiBJdGVyYWJsZTxTY2VuZURhdGFQcm92aWRlclJlc3VsdD4pIHtcbiAgICBsZXQgc2VyaWVzOiBEYXRhRnJhbWVbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCByZXN1bHQgb2YgcmVzdWx0cykge1xuICAgICAgaWYgKHJlc3VsdC5kYXRhPy5zZXJpZXMpIHtcbiAgICAgICAgc2VyaWVzID0gc2VyaWVzLmNvbmNhdChyZXN1bHQuZGF0YS5zZXJpZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbWJpbmVkRGF0YSA9IHsgLi4uZW1wdHlQYW5lbERhdGEsIHNlcmllczogc2VyaWVzIH07XG5cbiAgICB0aGlzLl9yZXN1bHRzLm5leHQoeyBvcmlnaW46IHRoaXMsIGRhdGE6IGNvbWJpbmVkRGF0YSB9KTtcbiAgICB0aGlzLnNldFN0YXRlSGVscGVyKHsgZGF0YTogY29tYmluZWREYXRhIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFJlc3VsdHNTdHJlYW0oKTogT2JzZXJ2YWJsZTxTY2VuZURhdGFQcm92aWRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbFF1ZXJ5KCkge1xuICAgIHRoaXMucXVlcnlTdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBoZWxwZXIgZnVuY3Rpb24gaXMgdG8gY291bnRlciB0aGUgY29udHJhdmFyaWFuY2Ugb2Ygc2V0U3RhdGVcbiAgICovXG4gIHByaXZhdGUgc2V0U3RhdGVIZWxwZXIoc3RhdGU6IFBhcnRpYWw8U2NlbmVEYXRhTGF5ZXJQcm92aWRlclN0YXRlPikge1xuICAgIHNldEJhc2VDbGFzc1N0YXRlPFNjZW5lRGF0YUxheWVyUHJvdmlkZXJTdGF0ZT4odGhpcywgc3RhdGUpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmVEYXRhTGF5ZXJzU2V0U3RhdGUgZXh0ZW5kcyBTY2VuZURhdGFMYXllclByb3ZpZGVyU3RhdGUge1xuICBsYXllcnM6IFNjZW5lRGF0YUxheWVyUHJvdmlkZXJbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFNjZW5lRGF0YUxheWVyU2V0XG4gIGV4dGVuZHMgU2NlbmVEYXRhTGF5ZXJTZXRCYXNlPFNjZW5lRGF0YUxheWVyc1NldFN0YXRlPlxuICBpbXBsZW1lbnRzIFNjZW5lRGF0YUxheWVyUHJvdmlkZXJcbntcbiAgcHVibGljIGNvbnN0cnVjdG9yKHN0YXRlOiBQYXJ0aWFsPFNjZW5lRGF0YUxheWVyc1NldFN0YXRlPikge1xuICAgIHN1cGVyKHtcbiAgICAgIG5hbWU6IHN0YXRlLm5hbWUgPz8gJ0RhdGEgbGF5ZXJzJyxcbiAgICAgIGxheWVyczogc3RhdGUubGF5ZXJzID8/IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcigoKSA9PiB0aGlzLl9vbkFjdGl2YXRlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25BY3RpdmF0ZSgpIHtcbiAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9TdGF0ZSgobmV3U3RhdGUsIG9sZFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChuZXdTdGF0ZS5sYXllcnMgIT09IG9sZFN0YXRlLmxheWVycykge1xuICAgICAgICAgIHRoaXMucXVlcnlTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0FsbExheWVycyhuZXdTdGF0ZS5sYXllcnMpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmliZVRvQWxsTGF5ZXJzKHRoaXMuc3RhdGUubGF5ZXJzKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aGlzLnF1ZXJ5U3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIENvbXBvbmVudCA9ICh7IG1vZGVsIH06IFNjZW5lQ29tcG9uZW50UHJvcHM8U2NlbmVEYXRhTGF5ZXJTZXQ+KSA9PiB7XG4gICAgY29uc3QgeyBsYXllcnMgfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2xheWVycy5tYXAoKGxheWVyKSA9PiAoXG4gICAgICAgICAgPGxheWVyLkNvbXBvbmVudCBtb2RlbD17bGF5ZXJ9IGtleT17bGF5ZXIuc3RhdGUua2V5fSAvPlxuICAgICAgICApKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6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
@@ -0,0 +1,178 @@
1
+ import { DataTopic, transformDataFrame, LoadingState } from '@grafana/data';
2
+ import { toDataQueryError } from '@grafana/runtime';
3
+ import { ReplaySubject, forkJoin, map, catchError, of } from 'rxjs';
4
+ import { sceneGraph } from '../core/sceneGraph/index.js';
5
+ import { SceneObjectBase } from '../core/SceneObjectBase.js';
6
+ import { VariableDependencyConfig } from '../variables/VariableDependencyConfig.js';
7
+ import { SceneDataLayerSet } from './SceneDataLayerSet.js';
8
+
9
+ var __defProp = Object.defineProperty;
10
+ var __defProps = Object.defineProperties;
11
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
12
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
15
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16
+ var __spreadValues = (a, b) => {
17
+ for (var prop in b || (b = {}))
18
+ if (__hasOwnProp.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ if (__getOwnPropSymbols)
21
+ for (var prop of __getOwnPropSymbols(b)) {
22
+ if (__propIsEnum.call(b, prop))
23
+ __defNormalProp(a, prop, b[prop]);
24
+ }
25
+ return a;
26
+ };
27
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
28
+ class SceneDataTransformer extends SceneObjectBase {
29
+ constructor(state) {
30
+ super(state);
31
+ this._results = new ReplaySubject(1);
32
+ this._variableDependency = new VariableDependencyConfig(
33
+ this,
34
+ {
35
+ statePaths: ["transformations"],
36
+ onReferencedVariableValueChanged: () => this.reprocessTransformations()
37
+ }
38
+ );
39
+ this.addActivationHandler(() => this.activationHandler());
40
+ }
41
+ activationHandler() {
42
+ const sourceData = this.getSourceData();
43
+ this._subs.add(sourceData.subscribeToState((state) => this.transform(state.data)));
44
+ if (sourceData.state.data) {
45
+ this.transform(sourceData.state.data);
46
+ }
47
+ return () => {
48
+ if (this._transformSub) {
49
+ this._transformSub.unsubscribe();
50
+ }
51
+ };
52
+ }
53
+ getSourceData() {
54
+ if (this.state.$data) {
55
+ if (this.state.$data instanceof SceneDataLayerSet) {
56
+ throw new Error("SceneDataLayerSet can not be used as data provider for SceneDataTransformer.");
57
+ }
58
+ return this.state.$data;
59
+ }
60
+ if (!this.parent || !this.parent.parent) {
61
+ throw new Error("SceneDataTransformer must either have $data set on it or have a parent.parent with $data");
62
+ }
63
+ return sceneGraph.getData(this.parent.parent);
64
+ }
65
+ setContainerWidth(width) {
66
+ if (this.state.$data && this.state.$data.setContainerWidth) {
67
+ this.state.$data.setContainerWidth(width);
68
+ }
69
+ }
70
+ isDataReadyToDisplay() {
71
+ const dataObject = this.getSourceData();
72
+ if (dataObject.isDataReadyToDisplay) {
73
+ return dataObject.isDataReadyToDisplay();
74
+ }
75
+ return true;
76
+ }
77
+ reprocessTransformations() {
78
+ this.transform(this.getSourceData().state.data, true);
79
+ }
80
+ cancelQuery() {
81
+ var _a, _b;
82
+ (_b = (_a = this.getSourceData()).cancelQuery) == null ? void 0 : _b.call(_a);
83
+ }
84
+ getResultsStream() {
85
+ return this._results;
86
+ }
87
+ clone(withState) {
88
+ const clone = super.clone(withState);
89
+ if (this._prevDataFromSource) {
90
+ clone["_prevDataFromSource"] = this._prevDataFromSource;
91
+ }
92
+ return clone;
93
+ }
94
+ haveAlreadyTransformedData(data) {
95
+ if (!this._prevDataFromSource) {
96
+ return false;
97
+ }
98
+ if (data === this._prevDataFromSource) {
99
+ return true;
100
+ }
101
+ const { series, annotations } = this._prevDataFromSource;
102
+ if (data.series === series && data.annotations === annotations) {
103
+ if (this.state.data && data.state !== this.state.data.state) {
104
+ this.setState({ data: __spreadProps(__spreadValues({}, this.state.data), { state: data.state }) });
105
+ }
106
+ return true;
107
+ }
108
+ return false;
109
+ }
110
+ transform(data, force = false) {
111
+ var _a;
112
+ if (this.state.transformations.length === 0 || !data) {
113
+ this._prevDataFromSource = data;
114
+ this.setState({ data });
115
+ if (data) {
116
+ this._results.next({ origin: this, data });
117
+ }
118
+ return;
119
+ }
120
+ if (!force && this.haveAlreadyTransformedData(data)) {
121
+ return;
122
+ }
123
+ const seriesTransformations = this.state.transformations.filter((transformation) => {
124
+ if ("options" in transformation || "topic" in transformation) {
125
+ return transformation.topic == null || transformation.topic === DataTopic.Series;
126
+ }
127
+ return true;
128
+ }).map((transformation) => "operator" in transformation ? transformation.operator : transformation);
129
+ const annotationsTransformations = this.state.transformations.filter((transformation) => {
130
+ if ("options" in transformation || "topic" in transformation) {
131
+ return transformation.topic === DataTopic.Annotations;
132
+ }
133
+ return false;
134
+ }).map((transformation) => "operator" in transformation ? transformation.operator : transformation);
135
+ if (this._transformSub) {
136
+ this._transformSub.unsubscribe();
137
+ }
138
+ const ctx = {
139
+ interpolate: (value) => {
140
+ var _a2;
141
+ return sceneGraph.interpolate(this, value, (_a2 = data.request) == null ? void 0 : _a2.scopedVars);
142
+ }
143
+ };
144
+ let streams = [transformDataFrame(seriesTransformations, data.series, ctx)];
145
+ if (data.annotations && data.annotations.length > 0 && annotationsTransformations.length > 0) {
146
+ streams.push(transformDataFrame(annotationsTransformations, (_a = data.annotations) != null ? _a : []));
147
+ }
148
+ this._transformSub = forkJoin(streams).pipe(
149
+ map((values) => {
150
+ const transformedSeries = values[0];
151
+ const transformedAnnotations = values[1];
152
+ return __spreadProps(__spreadValues({}, data), {
153
+ series: transformedSeries,
154
+ annotations: transformedAnnotations != null ? transformedAnnotations : data.annotations
155
+ });
156
+ }),
157
+ catchError((err) => {
158
+ var _a2;
159
+ console.error("Error transforming data: ", err);
160
+ const sourceErr = ((_a2 = this.getSourceData().state.data) == null ? void 0 : _a2.errors) || [];
161
+ const transformationError = toDataQueryError(err);
162
+ transformationError.message = `Error transforming data: ${transformationError.message}`;
163
+ const result = __spreadProps(__spreadValues({}, data), {
164
+ state: LoadingState.Error,
165
+ errors: [...sourceErr, transformationError]
166
+ });
167
+ return of(result);
168
+ })
169
+ ).subscribe((transformedData) => {
170
+ this.setState({ data: transformedData });
171
+ this._results.next({ origin: this, data: transformedData });
172
+ this._prevDataFromSource = data;
173
+ });
174
+ }
175
+ }
176
+
177
+ export { SceneDataTransformer };
178
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVEYXRhVHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9xdWVyeWluZy9TY2VuZURhdGFUcmFuc2Zvcm1lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVG9waWMsIERhdGFUcmFuc2Zvcm1lckNvbmZpZywgTG9hZGluZ1N0YXRlLCBQYW5lbERhdGEsIHRyYW5zZm9ybURhdGFGcmFtZSB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgdG9EYXRhUXVlcnlFcnJvciB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZm9ya0pvaW4sIG1hcCwgb2YsIFJlcGxheVN1YmplY3QsIFVuc3Vic2NyaWJhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzY2VuZUdyYXBoIH0gZnJvbSAnLi4vY29yZS9zY2VuZUdyYXBoJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0QmFzZSB9IGZyb20gJy4uL2NvcmUvU2NlbmVPYmplY3RCYXNlJztcbmltcG9ydCB7IEN1c3RvbVRyYW5zZm9ybWVyRGVmaW5pdGlvbiwgU2NlbmVEYXRhUHJvdmlkZXIsIFNjZW5lRGF0YVByb3ZpZGVyUmVzdWx0LCBTY2VuZURhdGFTdGF0ZSB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnIH0gZnJvbSAnLi4vdmFyaWFibGVzL1ZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyc7XG5pbXBvcnQgeyBTY2VuZURhdGFMYXllclNldCB9IGZyb20gJy4vU2NlbmVEYXRhTGF5ZXJTZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lRGF0YVRyYW5zZm9ybWVyU3RhdGUgZXh0ZW5kcyBTY2VuZURhdGFTdGF0ZSB7XG4gIC8qKlxuICAgKiBBcnJheSBvZiBzdGFuZGFyZCB0cmFuc2Zvcm1hdGlvbiBjb25maWdzIGFuZCBjdXN0b20gdHJhbnNmb3JtIG9wZXJhdG9yc1xuICAgKi9cbiAgdHJhbnNmb3JtYXRpb25zOiBBcnJheTxEYXRhVHJhbnNmb3JtZXJDb25maWcgfCBDdXN0b21UcmFuc2Zvcm1lckRlZmluaXRpb24+O1xufVxuXG4vKipcbiAqIFlvdSBjYW4gdXNlIHRoaXMgYXMgYSAkZGF0YSBvYmplY3QuIEl0IGNhbiBlaXRoZXIgdHJhbnNmb3JtIGFuIGlubmVyICRkYXRhIERhdGFQcm92aWRlciBvciBpZiB0aGF0IGlzIG5vdCBzZXQgaXQgd2lsbFxuICogc3Vic2NyaWJlIHRvIGEgRGF0YVByb3ZpZGVyIGhpZ2hlciB1cCBpbiB0aGUgc2NlbmUgZ3JhcGggYW5kIHRyYW5zZm9ybSBpdHMgZGF0YS5cbiAqXG4gKiBUaGUgdHJhbnNmb3JtYXRpb25zIGFycmF5IHN1cHBvcnRzIGN1c3RvbSAocnVudGltZSBkZWZpbmVkKSB0cmFuc2Zvcm1hdGlvbiBhcyB3ZWxsIGFzIGRlY2xhcmF0aXZlIGNvcmUgdHJhbnNmb3JtYXRpb25zLlxuICogWW91IGNhbiBtYW51YWxseSByZS1wcm9jZXNzIHRoZSB0cmFuc2Zvcm1hdGlvbnMgYnkgY2FsbGluZyByZXByb2Nlc3NUcmFuc2Zvcm1hdGlvbnMoKS4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IGhhdmVcbiAqIHRyYW5zZm9ybWF0aW9ucyB0aGF0IGRlcGVuZCBvbiBvdGhlciBzY2VuZSBvYmplY3Qgc3RhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgU2NlbmVEYXRhVHJhbnNmb3JtZXIgZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2U8U2NlbmVEYXRhVHJhbnNmb3JtZXJTdGF0ZT4gaW1wbGVtZW50cyBTY2VuZURhdGFQcm92aWRlciB7XG4gIHByaXZhdGUgX3RyYW5zZm9ybVN1Yj86IFVuc3Vic2NyaWJhYmxlO1xuICBwcml2YXRlIF9yZXN1bHRzID0gbmV3IFJlcGxheVN1YmplY3Q8U2NlbmVEYXRhUHJvdmlkZXJSZXN1bHQ+KDEpO1xuICBwcml2YXRlIF9wcmV2RGF0YUZyb21Tb3VyY2U/OiBQYW5lbERhdGE7XG5cbiAgLyoqXG4gICAqIFNjYW4gdHJhbnNmb3JtYXRpb25zIGZvciB2YXJpYWJsZSB1c2FnZSBhbmQgcmUtcHJvY2VzcyB0cmFuc2Zvcm1zIHdoZW4gYSB2YXJpYWJsZSB2YWx1ZXMgY2hhbmdlXG4gICAqL1xuICBwcm90ZWN0ZWQgX3ZhcmlhYmxlRGVwZW5kZW5jeTogVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnPFNjZW5lRGF0YVRyYW5zZm9ybWVyU3RhdGU+ID0gbmV3IFZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyhcbiAgICB0aGlzLFxuICAgIHtcbiAgICAgIHN0YXRlUGF0aHM6IFsndHJhbnNmb3JtYXRpb25zJ10sXG4gICAgICBvblJlZmVyZW5jZWRWYXJpYWJsZVZhbHVlQ2hhbmdlZDogKCkgPT4gdGhpcy5yZXByb2Nlc3NUcmFuc2Zvcm1hdGlvbnMoKSxcbiAgICB9XG4gICk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHN0YXRlOiBTY2VuZURhdGFUcmFuc2Zvcm1lclN0YXRlKSB7XG4gICAgc3VwZXIoc3RhdGUpO1xuXG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcigoKSA9PiB0aGlzLmFjdGl2YXRpb25IYW5kbGVyKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0aW9uSGFuZGxlcigpIHtcbiAgICBjb25zdCBzb3VyY2VEYXRhID0gdGhpcy5nZXRTb3VyY2VEYXRhKCk7XG5cbiAgICB0aGlzLl9zdWJzLmFkZChzb3VyY2VEYXRhLnN1YnNjcmliZVRvU3RhdGUoKHN0YXRlKSA9PiB0aGlzLnRyYW5zZm9ybShzdGF0ZS5kYXRhKSkpO1xuXG4gICAgaWYgKHNvdXJjZURhdGEuc3RhdGUuZGF0YSkge1xuICAgICAgdGhpcy50cmFuc2Zvcm0oc291cmNlRGF0YS5zdGF0ZS5kYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX3RyYW5zZm9ybVN1Yikge1xuICAgICAgICB0aGlzLl90cmFuc2Zvcm1TdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTb3VyY2VEYXRhKCk6IFNjZW5lRGF0YVByb3ZpZGVyIHtcbiAgICBpZiAodGhpcy5zdGF0ZS4kZGF0YSkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuJGRhdGEgaW5zdGFuY2VvZiBTY2VuZURhdGFMYXllclNldCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NjZW5lRGF0YUxheWVyU2V0IGNhbiBub3QgYmUgdXNlZCBhcyBkYXRhIHByb3ZpZGVyIGZvciBTY2VuZURhdGFUcmFuc2Zvcm1lci4nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnN0YXRlLiRkYXRhO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wYXJlbnQgfHwgIXRoaXMucGFyZW50LnBhcmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTY2VuZURhdGFUcmFuc2Zvcm1lciBtdXN0IGVpdGhlciBoYXZlICRkYXRhIHNldCBvbiBpdCBvciBoYXZlIGEgcGFyZW50LnBhcmVudCB3aXRoICRkYXRhJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjZW5lR3JhcGguZ2V0RGF0YSh0aGlzLnBhcmVudC5wYXJlbnQpO1xuICB9XG5cbiAgcHVibGljIHNldENvbnRhaW5lcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS4kZGF0YSAmJiB0aGlzLnN0YXRlLiRkYXRhLnNldENvbnRhaW5lcldpZHRoKSB7XG4gICAgICB0aGlzLnN0YXRlLiRkYXRhLnNldENvbnRhaW5lcldpZHRoKHdpZHRoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEYXRhUmVhZHlUb0Rpc3BsYXkoKSB7XG4gICAgY29uc3QgZGF0YU9iamVjdCA9IHRoaXMuZ2V0U291cmNlRGF0YSgpO1xuICAgIGlmIChkYXRhT2JqZWN0LmlzRGF0YVJlYWR5VG9EaXNwbGF5KSB7XG4gICAgICByZXR1cm4gZGF0YU9iamVjdC5pc0RhdGFSZWFkeVRvRGlzcGxheSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHJlcHJvY2Vzc1RyYW5zZm9ybWF0aW9ucygpIHtcbiAgICB0aGlzLnRyYW5zZm9ybSh0aGlzLmdldFNvdXJjZURhdGEoKS5zdGF0ZS5kYXRhLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxRdWVyeSgpIHtcbiAgICB0aGlzLmdldFNvdXJjZURhdGEoKS5jYW5jZWxRdWVyeT8uKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVzdWx0c1N0cmVhbSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0cztcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh3aXRoU3RhdGU/OiBQYXJ0aWFsPFNjZW5lRGF0YVRyYW5zZm9ybWVyU3RhdGU+KSB7XG4gICAgY29uc3QgY2xvbmUgPSBzdXBlci5jbG9uZSh3aXRoU3RhdGUpO1xuXG4gICAgaWYgKHRoaXMuX3ByZXZEYXRhRnJvbVNvdXJjZSkge1xuICAgICAgY2xvbmVbJ19wcmV2RGF0YUZyb21Tb3VyY2UnXSA9IHRoaXMuX3ByZXZEYXRhRnJvbVNvdXJjZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBwcml2YXRlIGhhdmVBbHJlYWR5VHJhbnNmb3JtZWREYXRhKGRhdGE6IFBhbmVsRGF0YSkge1xuICAgIGlmICghdGhpcy5fcHJldkRhdGFGcm9tU291cmNlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEgPT09IHRoaXMuX3ByZXZEYXRhRnJvbVNvdXJjZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgeyBzZXJpZXMsIGFubm90YXRpb25zIH0gPSB0aGlzLl9wcmV2RGF0YUZyb21Tb3VyY2U7XG5cbiAgICBpZiAoZGF0YS5zZXJpZXMgPT09IHNlcmllcyAmJiBkYXRhLmFubm90YXRpb25zID09PSBhbm5vdGF0aW9ucykge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuZGF0YSAmJiBkYXRhLnN0YXRlICE9PSB0aGlzLnN0YXRlLmRhdGEuc3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGE6IHsgLi4udGhpcy5zdGF0ZS5kYXRhLCBzdGF0ZTogZGF0YS5zdGF0ZSB9IH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm0oZGF0YTogUGFuZWxEYXRhIHwgdW5kZWZpbmVkLCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUudHJhbnNmb3JtYXRpb25zLmxlbmd0aCA9PT0gMCB8fCAhZGF0YSkge1xuICAgICAgdGhpcy5fcHJldkRhdGFGcm9tU291cmNlID0gZGF0YTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRhIH0pO1xuXG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aGlzLl9yZXN1bHRzLm5leHQoeyBvcmlnaW46IHRoaXMsIGRhdGEgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2tpcCB0cmFuc2Zvcm0gc3RlcCBpZiB3ZSBoYXZlIGFscmVhZHkgdHJhbnNmb3JtZWQgdGhpcyBkYXRhXG4gICAgaWYgKCFmb3JjZSAmJiB0aGlzLmhhdmVBbHJlYWR5VHJhbnNmb3JtZWREYXRhKGRhdGEpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VyaWVzVHJhbnNmb3JtYXRpb25zID0gdGhpcy5zdGF0ZS50cmFuc2Zvcm1hdGlvbnNcbiAgICAgIC5maWx0ZXIoKHRyYW5zZm9ybWF0aW9uKSA9PiB7XG4gICAgICAgIGlmICgnb3B0aW9ucycgaW4gdHJhbnNmb3JtYXRpb24gfHwgJ3RvcGljJyBpbiB0cmFuc2Zvcm1hdGlvbikge1xuICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1hdGlvbi50b3BpYyA9PSBudWxsIHx8IHRyYW5zZm9ybWF0aW9uLnRvcGljID09PSBEYXRhVG9waWMuU2VyaWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KVxuICAgICAgLm1hcCgodHJhbnNmb3JtYXRpb24pID0+ICgnb3BlcmF0b3InIGluIHRyYW5zZm9ybWF0aW9uID8gdHJhbnNmb3JtYXRpb24ub3BlcmF0b3IgOiB0cmFuc2Zvcm1hdGlvbikpO1xuXG4gICAgY29uc3QgYW5ub3RhdGlvbnNUcmFuc2Zvcm1hdGlvbnMgPSB0aGlzLnN0YXRlLnRyYW5zZm9ybWF0aW9uc1xuICAgICAgLmZpbHRlcigodHJhbnNmb3JtYXRpb24pID0+IHtcbiAgICAgICAgaWYgKCdvcHRpb25zJyBpbiB0cmFuc2Zvcm1hdGlvbiB8fCAndG9waWMnIGluIHRyYW5zZm9ybWF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWF0aW9uLnRvcGljID09PSBEYXRhVG9waWMuQW5ub3RhdGlvbnM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KVxuICAgICAgLm1hcCgodHJhbnNmb3JtYXRpb24pID0+ICgnb3BlcmF0b3InIGluIHRyYW5zZm9ybWF0aW9uID8gdHJhbnNmb3JtYXRpb24ub3BlcmF0b3IgOiB0cmFuc2Zvcm1hdGlvbikpO1xuXG4gICAgaWYgKHRoaXMuX3RyYW5zZm9ybVN1Yikge1xuICAgICAgdGhpcy5fdHJhbnNmb3JtU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgY3R4ID0ge1xuICAgICAgaW50ZXJwb2xhdGU6ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBzY2VuZUdyYXBoLmludGVycG9sYXRlKHRoaXMsIHZhbHVlLCBkYXRhLnJlcXVlc3Q/LnNjb3BlZFZhcnMpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgbGV0IHN0cmVhbXMgPSBbdHJhbnNmb3JtRGF0YUZyYW1lKHNlcmllc1RyYW5zZm9ybWF0aW9ucywgZGF0YS5zZXJpZXMsIGN0eCldO1xuXG4gICAgaWYgKGRhdGEuYW5ub3RhdGlvbnMgJiYgZGF0YS5hbm5vdGF0aW9ucy5sZW5ndGggPiAwICYmIGFubm90YXRpb25zVHJhbnNmb3JtYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHN0cmVhbXMucHVzaCh0cmFuc2Zvcm1EYXRhRnJhbWUoYW5ub3RhdGlvbnNUcmFuc2Zvcm1hdGlvbnMsIGRhdGEuYW5ub3RhdGlvbnMgPz8gW10pKTtcbiAgICB9XG5cbiAgICB0aGlzLl90cmFuc2Zvcm1TdWIgPSBmb3JrSm9pbihzdHJlYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodmFsdWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRTZXJpZXMgPSB2YWx1ZXNbMF07XG4gICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRBbm5vdGF0aW9ucyA9IHZhbHVlc1sxXTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgc2VyaWVzOiB0cmFuc2Zvcm1lZFNlcmllcyxcbiAgICAgICAgICAgIGFubm90YXRpb25zOiB0cmFuc2Zvcm1lZEFubm90YXRpb25zID8/IGRhdGEuYW5ub3RhdGlvbnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHRyYW5zZm9ybWluZyBkYXRhOiAnLCBlcnIpO1xuICAgICAgICAgIGNvbnN0IHNvdXJjZUVyciA9IHRoaXMuZ2V0U291cmNlRGF0YSgpLnN0YXRlLmRhdGE/LmVycm9ycyB8fCBbXTtcblxuICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWF0aW9uRXJyb3IgPSB0b0RhdGFRdWVyeUVycm9yKGVycik7XG4gICAgICAgICAgdHJhbnNmb3JtYXRpb25FcnJvci5tZXNzYWdlID0gYEVycm9yIHRyYW5zZm9ybWluZyBkYXRhOiAke3RyYW5zZm9ybWF0aW9uRXJyb3IubWVzc2FnZX1gO1xuXG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBQYW5lbERhdGEgPSB7XG4gICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgc3RhdGU6IExvYWRpbmdTdGF0ZS5FcnJvcixcbiAgICAgICAgICAgIC8vIENvbWJpbmUgdHJhbnNmb3JtYXRpb24gZXJyb3Igd2l0aCB1cHN0cmVhbSBlcnJvcnNcbiAgICAgICAgICAgIGVycm9yczogWy4uLnNvdXJjZUVyciwgdHJhbnNmb3JtYXRpb25FcnJvcl0sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodHJhbnNmb3JtZWREYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRhOiB0cmFuc2Zvcm1lZERhdGEgfSk7XG4gICAgICAgIHRoaXMuX3Jlc3VsdHMubmV4dCh7IG9yaWdpbjogdGhpcywgZGF0YTogdHJhbnNmb3JtZWREYXRhIH0pO1xuICAgICAgICB0aGlzLl9wcmV2RGF0YUZyb21Tb3VyY2UgPSBkYXRhO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JPLE1BQU0sNkJBQTZCLGVBQXdFLENBQUE7QUFBQSxFQWdCekcsWUFBWSxLQUFrQyxFQUFBO0FBQ25ELElBQUEsS0FBQSxDQUFNLEtBQUssQ0FBQSxDQUFBO0FBZmIsSUFBUSxJQUFBLENBQUEsUUFBQSxHQUFXLElBQUksYUFBQSxDQUF1QyxDQUFDLENBQUEsQ0FBQTtBQU0vRCxJQUFBLElBQUEsQ0FBVSxzQkFBMkUsSUFBSSx3QkFBQTtBQUFBLE1BQ3ZGLElBQUE7QUFBQSxNQUNBO0FBQUEsUUFDRSxVQUFBLEVBQVksQ0FBQyxpQkFBaUIsQ0FBQTtBQUFBLFFBQzlCLGdDQUFBLEVBQWtDLE1BQU0sSUFBQSxDQUFLLHdCQUF5QixFQUFBO0FBQUEsT0FDeEU7QUFBQSxLQUNGLENBQUE7QUFLRSxJQUFBLElBQUEsQ0FBSyxv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