@grafana/scenes 6.49.0 → 6.49.1--canary.1316.20159204855.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 (620) hide show
  1. package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +13 -0
  2. package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
  3. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js +12 -0
  4. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  5. package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +26 -0
  6. package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -0
  7. package/dist/esm/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +10 -0
  8. package/dist/esm/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js.map +1 -0
  9. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +15 -0
  10. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
  11. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +10 -0
  12. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
  13. package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +12 -0
  14. package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
  15. package/dist/esm/node_modules/react-select/dist/index-641ee5b8.esm.js +86 -0
  16. package/dist/esm/node_modules/react-select/dist/index-641ee5b8.esm.js.map +1 -0
  17. package/dist/esm/packages/scenes/src/behaviors/ActWhenVariableChanged.js.map +1 -0
  18. package/dist/esm/packages/scenes/src/behaviors/CursorSync.js.map +1 -0
  19. package/dist/esm/packages/scenes/src/behaviors/LiveNowTimer.js.map +1 -0
  20. package/dist/esm/packages/scenes/src/behaviors/SceneInteractionTracker.js.map +1 -0
  21. package/dist/esm/packages/scenes/src/behaviors/SceneQueryController.js.map +1 -0
  22. package/dist/esm/packages/scenes/src/components/EmbeddedScene.js.map +1 -0
  23. package/dist/esm/packages/scenes/src/components/NestedScene.js.map +1 -0
  24. package/dist/esm/packages/scenes/src/components/SceneApp/SceneApp.js.map +1 -0
  25. package/dist/esm/packages/scenes/src/components/SceneApp/SceneAppPage.js.map +1 -0
  26. package/dist/esm/packages/scenes/src/components/SceneApp/SceneAppPageView.js.map +1 -0
  27. package/dist/esm/packages/scenes/src/components/SceneApp/utils.js.map +1 -0
  28. package/dist/esm/packages/scenes/src/components/SceneByFrameRepeater.js.map +1 -0
  29. package/dist/esm/packages/scenes/src/components/SceneByVariableRepeater.js.map +1 -0
  30. package/dist/esm/packages/scenes/src/components/SceneCanvasText.js.map +1 -0
  31. package/dist/esm/packages/scenes/src/components/SceneControlsSpacer.js.map +1 -0
  32. package/dist/esm/packages/scenes/src/components/SceneDebugger/DebugDetails.js.map +1 -0
  33. package/dist/esm/packages/scenes/src/components/SceneDebugger/DebugTreeNode.js.map +1 -0
  34. package/dist/esm/packages/scenes/src/components/SceneDebugger/SceneDebugger.js.map +1 -0
  35. package/dist/esm/packages/scenes/src/components/SceneReactObject.js.map +1 -0
  36. package/dist/esm/packages/scenes/src/components/SceneRefreshPicker.js.map +1 -0
  37. package/dist/esm/packages/scenes/src/components/SceneTimePicker.js.map +1 -0
  38. package/dist/esm/packages/scenes/src/components/SceneTimeRangeCompare.js.map +1 -0
  39. package/dist/esm/packages/scenes/src/components/SceneToolbarButton.js.map +1 -0
  40. package/dist/esm/packages/scenes/src/components/VizPanel/VizPanel.js.map +1 -0
  41. package/dist/esm/packages/scenes/src/components/VizPanel/VizPanelExploreButton.js.map +1 -0
  42. package/dist/esm/packages/scenes/src/components/VizPanel/VizPanelMenu.js.map +1 -0
  43. package/dist/esm/packages/scenes/src/components/VizPanel/VizPanelRenderer.js.map +1 -0
  44. package/dist/esm/packages/scenes/src/components/VizPanel/VizPanelSeriesLimit.js.map +1 -0
  45. package/dist/esm/packages/scenes/src/components/VizPanel/colorSeriesConfigFactory.js.map +1 -0
  46. package/dist/esm/packages/scenes/src/components/VizPanel/registerRuntimePanelPlugin.js.map +1 -0
  47. package/dist/esm/packages/scenes/src/components/VizPanel/seriesVisibilityConfigFactory.js.map +1 -0
  48. package/dist/esm/packages/scenes/src/components/layout/CSSGrid/SceneCSSGridLayout.js.map +1 -0
  49. package/dist/esm/packages/scenes/src/components/layout/LazyLoader.js.map +1 -0
  50. package/dist/esm/packages/scenes/src/components/layout/SceneFlexLayout.js.map +1 -0
  51. package/dist/esm/packages/scenes/src/components/layout/grid/SceneGridItem.js.map +1 -0
  52. package/dist/esm/packages/scenes/src/components/layout/grid/SceneGridLayout.js.map +1 -0
  53. package/dist/esm/packages/scenes/src/components/layout/grid/SceneGridLayoutRenderer.js.map +1 -0
  54. package/dist/esm/packages/scenes/src/components/layout/grid/SceneGridRow.js.map +1 -0
  55. package/dist/esm/packages/scenes/src/components/layout/grid/constants.js.map +1 -0
  56. package/dist/esm/packages/scenes/src/components/layout/grid/types.js.map +1 -0
  57. package/dist/esm/packages/scenes/src/components/layout/grid/utils.js.map +1 -0
  58. package/dist/esm/packages/scenes/src/components/layout/split/SplitLayout.js.map +1 -0
  59. package/dist/esm/packages/scenes/src/components/layout/split/SplitLayoutRenderer.js.map +1 -0
  60. package/dist/esm/packages/scenes/src/components/layout/split/Splitter.js.map +1 -0
  61. package/dist/esm/packages/scenes/src/core/PanelBuilders/FieldConfigBuilder.js.map +1 -0
  62. package/dist/esm/packages/scenes/src/core/PanelBuilders/FieldConfigBuilders.js.map +1 -0
  63. package/dist/esm/packages/scenes/src/core/PanelBuilders/FieldConfigOverridesBuilder.js.map +1 -0
  64. package/dist/esm/packages/scenes/src/core/PanelBuilders/PanelOptionsBuilder.js.map +1 -0
  65. package/dist/esm/packages/scenes/src/core/PanelBuilders/PanelOptionsBuilders.js.map +1 -0
  66. package/dist/esm/packages/scenes/src/core/PanelBuilders/StandardFieldConfigBuilders.js.map +1 -0
  67. package/dist/esm/packages/scenes/src/core/PanelBuilders/VizConfigBuilder.js.map +1 -0
  68. package/dist/esm/packages/scenes/src/core/PanelBuilders/VizConfigBuilders.js.map +1 -0
  69. package/dist/esm/packages/scenes/src/core/PanelBuilders/VizPanelBuilder.js.map +1 -0
  70. package/dist/esm/packages/scenes/src/core/PanelBuilders/index.js.map +1 -0
  71. package/dist/esm/packages/scenes/src/core/SceneComponentWrapper.js.map +1 -0
  72. package/dist/esm/packages/scenes/src/core/SceneDataNode.js.map +1 -0
  73. package/dist/esm/packages/scenes/src/core/SceneObjectBase.js.map +1 -0
  74. package/dist/esm/packages/scenes/src/core/SceneObjectRef.js.map +1 -0
  75. package/dist/esm/packages/scenes/src/core/SceneTimeRange.js.map +1 -0
  76. package/dist/esm/packages/scenes/src/core/SceneTimeRangeTransformerBase.js.map +1 -0
  77. package/dist/esm/packages/scenes/src/core/SceneTimeZoneOverride.js.map +1 -0
  78. package/dist/esm/packages/scenes/src/core/events.js.map +1 -0
  79. package/dist/esm/packages/scenes/src/core/sceneGraph/cloneSceneObject.js.map +1 -0
  80. package/dist/esm/packages/scenes/src/core/sceneGraph/getInteractionTracker.js.map +1 -0
  81. package/dist/esm/packages/scenes/src/core/sceneGraph/getQueryController.js.map +1 -0
  82. package/dist/esm/packages/scenes/src/core/sceneGraph/getTimeRange.js.map +1 -0
  83. package/dist/esm/packages/scenes/src/core/sceneGraph/index.js.map +1 -0
  84. package/dist/esm/packages/scenes/src/core/sceneGraph/sceneGraph.js.map +1 -0
  85. package/dist/esm/packages/scenes/src/core/sceneGraph/utils.js.map +1 -0
  86. package/dist/esm/packages/scenes/src/core/types.js.map +1 -0
  87. package/dist/esm/packages/scenes/src/index.js.map +1 -0
  88. package/dist/esm/{locales → packages/scenes/src/locales}/en-US/grafana-scenes.json.js +6 -0
  89. package/dist/esm/packages/scenes/src/locales/en-US/grafana-scenes.json.js.map +1 -0
  90. package/dist/esm/packages/scenes/src/performance/LongFrameDetector.js.map +1 -0
  91. package/dist/esm/packages/scenes/src/performance/PanelProfilingManager.js.map +1 -0
  92. package/dist/esm/packages/scenes/src/performance/ScenePerformanceTracker.js.map +1 -0
  93. package/dist/esm/packages/scenes/src/performance/SceneRenderProfiler.js.map +1 -0
  94. package/dist/esm/packages/scenes/src/performance/VizPanelRenderProfiler.js.map +1 -0
  95. package/dist/esm/packages/scenes/src/performance/interactionConstants.js.map +1 -0
  96. package/dist/esm/packages/scenes/src/querying/DataLayersMerger.js.map +1 -0
  97. package/dist/esm/packages/scenes/src/querying/DataProviderProxy.js.map +1 -0
  98. package/dist/esm/packages/scenes/src/querying/ExtraQueryProvider.js.map +1 -0
  99. package/dist/esm/packages/scenes/src/querying/RuntimeDataSource.js.map +1 -0
  100. package/dist/esm/packages/scenes/src/querying/SceneDataLayerSet.js.map +1 -0
  101. package/dist/esm/packages/scenes/src/querying/SceneDataTransformer.js.map +1 -0
  102. package/dist/esm/packages/scenes/src/querying/SceneQueryRunner.js.map +1 -0
  103. package/dist/esm/packages/scenes/src/querying/extraQueryProcessingOperator.js.map +1 -0
  104. package/dist/esm/packages/scenes/src/querying/getEnrichedDataRequest.js.map +1 -0
  105. package/dist/esm/packages/scenes/src/querying/layers/SceneDataLayerBase.js.map +1 -0
  106. package/dist/esm/packages/scenes/src/querying/layers/SceneDataLayerControls.js.map +1 -0
  107. package/dist/esm/packages/scenes/src/querying/layers/annotations/AnnotationsDataLayer.js.map +1 -0
  108. package/dist/esm/packages/scenes/src/querying/layers/annotations/filterAnnotations.js.map +1 -0
  109. package/dist/esm/packages/scenes/src/querying/layers/annotations/standardAnnotationQuery.js.map +1 -0
  110. package/dist/esm/packages/scenes/src/querying/layers/annotations/standardAnnotationsSupport.js.map +1 -0
  111. package/dist/esm/packages/scenes/src/querying/layers/annotations/utils.js.map +1 -0
  112. package/dist/esm/packages/scenes/src/querying/registerQueryWithController.js.map +1 -0
  113. package/dist/esm/packages/scenes/src/services/SceneObjectUrlSyncConfig.js.map +1 -0
  114. package/dist/esm/packages/scenes/src/services/UniqueUrlKeyMapper.js.map +1 -0
  115. package/dist/esm/packages/scenes/src/services/UrlSyncContextProvider.js.map +1 -0
  116. package/dist/esm/packages/scenes/src/services/UrlSyncManager.js.map +1 -0
  117. package/dist/esm/packages/scenes/src/services/useUrlSync.js.map +1 -0
  118. package/dist/esm/packages/scenes/src/services/utils.js.map +1 -0
  119. package/dist/esm/packages/scenes/src/utils/ControlsLabel.js.map +1 -0
  120. package/dist/esm/packages/scenes/src/utils/LoadingIndicator.js.map +1 -0
  121. package/dist/esm/packages/scenes/src/utils/SafeSerializableSceneObject.js.map +1 -0
  122. package/dist/esm/packages/scenes/src/utils/compatibility/setWindowGrafanaSceneContext.js.map +1 -0
  123. package/dist/esm/packages/scenes/src/utils/date.js.map +1 -0
  124. package/dist/esm/packages/scenes/src/utils/evaluateTimeRange.js.map +1 -0
  125. package/dist/esm/packages/scenes/src/utils/explore.js.map +1 -0
  126. package/dist/esm/packages/scenes/src/utils/findPanelProfiler.js.map +1 -0
  127. package/dist/esm/packages/scenes/src/utils/getCompareSeriesRefId.js.map +1 -0
  128. package/dist/esm/packages/scenes/src/utils/getDataSource.js.map +1 -0
  129. package/dist/esm/packages/scenes/src/utils/getMessageFromError.js.map +1 -0
  130. package/dist/esm/packages/scenes/src/utils/loadResources.js.map +1 -0
  131. package/dist/esm/packages/scenes/src/utils/metricTree.js.map +1 -0
  132. package/dist/esm/packages/scenes/src/utils/parseUrlParam.js.map +1 -0
  133. package/dist/esm/packages/scenes/src/utils/pathId.js.map +1 -0
  134. package/dist/esm/packages/scenes/src/utils/utils.js.map +1 -0
  135. package/dist/esm/packages/scenes/src/utils/wrapInSafeSerializableSceneObject.js.map +1 -0
  136. package/dist/esm/packages/scenes/src/utils/writePerformanceLog.js.map +1 -0
  137. package/dist/esm/packages/scenes/src/utils/writeSceneLog.js.map +1 -0
  138. package/dist/esm/packages/scenes/src/variables/DrilldownDependenciesManager.js.map +1 -0
  139. package/dist/esm/packages/scenes/src/variables/VariableDependencyConfig.js.map +1 -0
  140. package/dist/esm/packages/scenes/src/variables/VariableValueRecorder.js.map +1 -0
  141. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFilterBuilder.js.map +1 -0
  142. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFilterRenderer.js.map +1 -0
  143. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -0
  144. package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +2 -2
  145. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js.map +1 -0
  146. package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +3 -1
  147. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -0
  148. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +174 -0
  149. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js.map +1 -0
  150. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js.map +1 -0
  151. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js.map +1 -0
  152. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js.map +1 -0
  153. package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/utils.js +3 -0
  154. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/utils.js.map +1 -0
  155. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersVariable.js.map +1 -0
  156. package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -0
  157. package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/controller/AdHocFiltersVariableController.js +2 -1
  158. package/dist/esm/packages/scenes/src/variables/adhoc/controller/AdHocFiltersVariableController.js.map +1 -0
  159. package/dist/esm/packages/scenes/src/variables/adhoc/getAdHocFiltersFromScopes.js.map +1 -0
  160. package/dist/esm/packages/scenes/src/variables/adhoc/getAdhocOptionSearcher.js.map +1 -0
  161. package/dist/esm/packages/scenes/src/variables/adhoc/patchGetAdhocFilters.js.map +1 -0
  162. package/dist/esm/packages/scenes/src/variables/components/VariableValueControl.js.map +1 -0
  163. package/dist/esm/packages/scenes/src/variables/components/VariableValueInput.js.map +1 -0
  164. package/dist/esm/packages/scenes/src/variables/components/VariableValueSelect.js.map +1 -0
  165. package/dist/esm/packages/scenes/src/variables/components/VariableValueSelectors.js.map +1 -0
  166. package/dist/esm/packages/scenes/src/variables/components/getOptionSearcher.js.map +1 -0
  167. package/dist/esm/packages/scenes/src/variables/constants.js.map +1 -0
  168. package/dist/esm/packages/scenes/src/variables/filter.js.map +1 -0
  169. package/dist/esm/packages/scenes/src/variables/getEnrichedFiltersRequest.js.map +1 -0
  170. package/dist/esm/packages/scenes/src/variables/groupby/DefaultGroupByCustomIndicatorContainer.js.map +1 -0
  171. package/dist/esm/packages/scenes/src/variables/groupby/GroupByValueContainer.js.map +1 -0
  172. package/dist/esm/{variables → packages/scenes/src/variables}/groupby/GroupByVariable.js +7 -0
  173. package/dist/esm/packages/scenes/src/variables/groupby/GroupByVariable.js.map +1 -0
  174. package/dist/esm/packages/scenes/src/variables/groupby/GroupByVariableUrlSyncHandler.js.map +1 -0
  175. package/dist/esm/packages/scenes/src/variables/groupby/findActiveGroupByVariablesByUid.js.map +1 -0
  176. package/dist/esm/packages/scenes/src/variables/interpolation/ScopedVarsVariable.js.map +1 -0
  177. package/dist/esm/packages/scenes/src/variables/interpolation/defaults.js.map +1 -0
  178. package/dist/esm/packages/scenes/src/variables/interpolation/fieldAccessorCache.js.map +1 -0
  179. package/dist/esm/packages/scenes/src/variables/interpolation/formatRegistry.js.map +1 -0
  180. package/dist/esm/packages/scenes/src/variables/interpolation/sceneInterpolator.js.map +1 -0
  181. package/dist/esm/packages/scenes/src/variables/lookupVariable.js.map +1 -0
  182. package/dist/esm/packages/scenes/src/variables/macros/AllVariablesMacro.js.map +1 -0
  183. package/dist/esm/packages/scenes/src/variables/macros/contextMacros.js.map +1 -0
  184. package/dist/esm/packages/scenes/src/variables/macros/dataMacros.js.map +1 -0
  185. package/dist/esm/packages/scenes/src/variables/macros/index.js.map +1 -0
  186. package/dist/esm/packages/scenes/src/variables/macros/templateProxies.js.map +1 -0
  187. package/dist/esm/packages/scenes/src/variables/macros/timeMacros.js.map +1 -0
  188. package/dist/esm/packages/scenes/src/variables/macros/types.js.map +1 -0
  189. package/dist/esm/packages/scenes/src/variables/macros/urlMacros.js.map +1 -0
  190. package/dist/esm/packages/scenes/src/variables/sets/SceneVariableSet.js.map +1 -0
  191. package/dist/esm/packages/scenes/src/variables/types.js.map +1 -0
  192. package/dist/esm/packages/scenes/src/variables/utils.js.map +1 -0
  193. package/dist/esm/packages/scenes/src/variables/variants/ConstantVariable.js.map +1 -0
  194. package/dist/esm/packages/scenes/src/variables/variants/CustomVariable.js.map +1 -0
  195. package/dist/esm/packages/scenes/src/variables/variants/DataSourceVariable.js.map +1 -0
  196. package/dist/esm/packages/scenes/src/variables/variants/IntervalVariable.js.map +1 -0
  197. package/dist/esm/packages/scenes/src/variables/variants/LocalValueVariable.js.map +1 -0
  198. package/dist/esm/packages/scenes/src/variables/variants/MultiValueVariable.js.map +1 -0
  199. package/dist/esm/packages/scenes/src/variables/variants/ScopesVariable.js.map +1 -0
  200. package/dist/esm/packages/scenes/src/variables/variants/SwitchVariable.js.map +1 -0
  201. package/dist/esm/packages/scenes/src/variables/variants/TestVariable.js.map +1 -0
  202. package/dist/esm/packages/scenes/src/variables/variants/TextBoxVariable.js.map +1 -0
  203. package/dist/esm/packages/scenes/src/variables/variants/guards.js.map +1 -0
  204. package/dist/esm/packages/scenes/src/variables/variants/query/QueryVariable.js.map +1 -0
  205. package/dist/esm/packages/scenes/src/variables/variants/query/createQueryVariableRunner.js.map +1 -0
  206. package/dist/esm/packages/scenes/src/variables/variants/query/guards.js.map +1 -0
  207. package/dist/esm/packages/scenes/src/variables/variants/query/toMetricFindValues.js.map +1 -0
  208. package/dist/esm/packages/scenes/src/variables/variants/query/utils.js.map +1 -0
  209. package/dist/{grafana-scenes-D5iZGLtK.js → grafana-scenes-CwGWCTcQ.js} +7 -1
  210. package/dist/{grafana-scenes-D5iZGLtK.js.map → grafana-scenes-CwGWCTcQ.js.map} +1 -1
  211. package/dist/index.d.ts +9 -0
  212. package/dist/index.js +296 -36
  213. package/dist/index.js.map +1 -1
  214. package/package.json +2 -2
  215. package/dist/esm/behaviors/ActWhenVariableChanged.js.map +0 -1
  216. package/dist/esm/behaviors/CursorSync.js.map +0 -1
  217. package/dist/esm/behaviors/LiveNowTimer.js.map +0 -1
  218. package/dist/esm/behaviors/SceneInteractionTracker.js.map +0 -1
  219. package/dist/esm/behaviors/SceneQueryController.js.map +0 -1
  220. package/dist/esm/components/EmbeddedScene.js.map +0 -1
  221. package/dist/esm/components/NestedScene.js.map +0 -1
  222. package/dist/esm/components/SceneApp/SceneApp.js.map +0 -1
  223. package/dist/esm/components/SceneApp/SceneAppPage.js.map +0 -1
  224. package/dist/esm/components/SceneApp/SceneAppPageView.js.map +0 -1
  225. package/dist/esm/components/SceneApp/utils.js.map +0 -1
  226. package/dist/esm/components/SceneByFrameRepeater.js.map +0 -1
  227. package/dist/esm/components/SceneByVariableRepeater.js.map +0 -1
  228. package/dist/esm/components/SceneCanvasText.js.map +0 -1
  229. package/dist/esm/components/SceneControlsSpacer.js.map +0 -1
  230. package/dist/esm/components/SceneDebugger/DebugDetails.js.map +0 -1
  231. package/dist/esm/components/SceneDebugger/DebugTreeNode.js.map +0 -1
  232. package/dist/esm/components/SceneDebugger/SceneDebugger.js.map +0 -1
  233. package/dist/esm/components/SceneReactObject.js.map +0 -1
  234. package/dist/esm/components/SceneRefreshPicker.js.map +0 -1
  235. package/dist/esm/components/SceneTimePicker.js.map +0 -1
  236. package/dist/esm/components/SceneTimeRangeCompare.js.map +0 -1
  237. package/dist/esm/components/SceneToolbarButton.js.map +0 -1
  238. package/dist/esm/components/VizPanel/VizPanel.js.map +0 -1
  239. package/dist/esm/components/VizPanel/VizPanelExploreButton.js.map +0 -1
  240. package/dist/esm/components/VizPanel/VizPanelMenu.js.map +0 -1
  241. package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +0 -1
  242. package/dist/esm/components/VizPanel/VizPanelSeriesLimit.js.map +0 -1
  243. package/dist/esm/components/VizPanel/colorSeriesConfigFactory.js.map +0 -1
  244. package/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js.map +0 -1
  245. package/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js.map +0 -1
  246. package/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js.map +0 -1
  247. package/dist/esm/components/layout/LazyLoader.js.map +0 -1
  248. package/dist/esm/components/layout/SceneFlexLayout.js.map +0 -1
  249. package/dist/esm/components/layout/grid/SceneGridItem.js.map +0 -1
  250. package/dist/esm/components/layout/grid/SceneGridLayout.js.map +0 -1
  251. package/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js.map +0 -1
  252. package/dist/esm/components/layout/grid/SceneGridRow.js.map +0 -1
  253. package/dist/esm/components/layout/grid/constants.js.map +0 -1
  254. package/dist/esm/components/layout/grid/types.js.map +0 -1
  255. package/dist/esm/components/layout/grid/utils.js.map +0 -1
  256. package/dist/esm/components/layout/split/SplitLayout.js.map +0 -1
  257. package/dist/esm/components/layout/split/SplitLayoutRenderer.js.map +0 -1
  258. package/dist/esm/components/layout/split/Splitter.js.map +0 -1
  259. package/dist/esm/core/PanelBuilders/FieldConfigBuilder.js.map +0 -1
  260. package/dist/esm/core/PanelBuilders/FieldConfigBuilders.js.map +0 -1
  261. package/dist/esm/core/PanelBuilders/FieldConfigOverridesBuilder.js.map +0 -1
  262. package/dist/esm/core/PanelBuilders/PanelOptionsBuilder.js.map +0 -1
  263. package/dist/esm/core/PanelBuilders/PanelOptionsBuilders.js.map +0 -1
  264. package/dist/esm/core/PanelBuilders/StandardFieldConfigBuilders.js.map +0 -1
  265. package/dist/esm/core/PanelBuilders/VizConfigBuilder.js.map +0 -1
  266. package/dist/esm/core/PanelBuilders/VizConfigBuilders.js.map +0 -1
  267. package/dist/esm/core/PanelBuilders/VizPanelBuilder.js.map +0 -1
  268. package/dist/esm/core/PanelBuilders/index.js.map +0 -1
  269. package/dist/esm/core/SceneComponentWrapper.js.map +0 -1
  270. package/dist/esm/core/SceneDataNode.js.map +0 -1
  271. package/dist/esm/core/SceneObjectBase.js.map +0 -1
  272. package/dist/esm/core/SceneObjectRef.js.map +0 -1
  273. package/dist/esm/core/SceneTimeRange.js.map +0 -1
  274. package/dist/esm/core/SceneTimeRangeTransformerBase.js.map +0 -1
  275. package/dist/esm/core/SceneTimeZoneOverride.js.map +0 -1
  276. package/dist/esm/core/events.js.map +0 -1
  277. package/dist/esm/core/sceneGraph/cloneSceneObject.js.map +0 -1
  278. package/dist/esm/core/sceneGraph/getInteractionTracker.js.map +0 -1
  279. package/dist/esm/core/sceneGraph/getQueryController.js.map +0 -1
  280. package/dist/esm/core/sceneGraph/getTimeRange.js.map +0 -1
  281. package/dist/esm/core/sceneGraph/index.js.map +0 -1
  282. package/dist/esm/core/sceneGraph/sceneGraph.js.map +0 -1
  283. package/dist/esm/core/sceneGraph/utils.js.map +0 -1
  284. package/dist/esm/core/types.js.map +0 -1
  285. package/dist/esm/index.js.map +0 -1
  286. package/dist/esm/locales/zh-Hant/grafana-scenes.json.js.map +0 -1
  287. package/dist/esm/performance/LongFrameDetector.js.map +0 -1
  288. package/dist/esm/performance/PanelProfilingManager.js.map +0 -1
  289. package/dist/esm/performance/ScenePerformanceTracker.js.map +0 -1
  290. package/dist/esm/performance/SceneRenderProfiler.js.map +0 -1
  291. package/dist/esm/performance/VizPanelRenderProfiler.js.map +0 -1
  292. package/dist/esm/performance/interactionConstants.js.map +0 -1
  293. package/dist/esm/querying/DataLayersMerger.js.map +0 -1
  294. package/dist/esm/querying/DataProviderProxy.js.map +0 -1
  295. package/dist/esm/querying/ExtraQueryProvider.js.map +0 -1
  296. package/dist/esm/querying/RuntimeDataSource.js.map +0 -1
  297. package/dist/esm/querying/SceneDataLayerSet.js.map +0 -1
  298. package/dist/esm/querying/SceneDataTransformer.js.map +0 -1
  299. package/dist/esm/querying/SceneQueryRunner.js.map +0 -1
  300. package/dist/esm/querying/extraQueryProcessingOperator.js.map +0 -1
  301. package/dist/esm/querying/getEnrichedDataRequest.js.map +0 -1
  302. package/dist/esm/querying/layers/SceneDataLayerBase.js.map +0 -1
  303. package/dist/esm/querying/layers/SceneDataLayerControls.js.map +0 -1
  304. package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js.map +0 -1
  305. package/dist/esm/querying/layers/annotations/filterAnnotations.js.map +0 -1
  306. package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js.map +0 -1
  307. package/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js.map +0 -1
  308. package/dist/esm/querying/layers/annotations/utils.js.map +0 -1
  309. package/dist/esm/querying/registerQueryWithController.js.map +0 -1
  310. package/dist/esm/services/SceneObjectUrlSyncConfig.js.map +0 -1
  311. package/dist/esm/services/UniqueUrlKeyMapper.js.map +0 -1
  312. package/dist/esm/services/UrlSyncContextProvider.js.map +0 -1
  313. package/dist/esm/services/UrlSyncManager.js.map +0 -1
  314. package/dist/esm/services/useUrlSync.js.map +0 -1
  315. package/dist/esm/services/utils.js.map +0 -1
  316. package/dist/esm/utils/ControlsLabel.js.map +0 -1
  317. package/dist/esm/utils/LoadingIndicator.js.map +0 -1
  318. package/dist/esm/utils/SafeSerializableSceneObject.js.map +0 -1
  319. package/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js.map +0 -1
  320. package/dist/esm/utils/date.js.map +0 -1
  321. package/dist/esm/utils/evaluateTimeRange.js.map +0 -1
  322. package/dist/esm/utils/explore.js.map +0 -1
  323. package/dist/esm/utils/findPanelProfiler.js.map +0 -1
  324. package/dist/esm/utils/getCompareSeriesRefId.js.map +0 -1
  325. package/dist/esm/utils/getDataSource.js.map +0 -1
  326. package/dist/esm/utils/getMessageFromError.js.map +0 -1
  327. package/dist/esm/utils/loadResources.js.map +0 -1
  328. package/dist/esm/utils/metricTree.js.map +0 -1
  329. package/dist/esm/utils/parseUrlParam.js.map +0 -1
  330. package/dist/esm/utils/pathId.js.map +0 -1
  331. package/dist/esm/utils/utils.js.map +0 -1
  332. package/dist/esm/utils/wrapInSafeSerializableSceneObject.js.map +0 -1
  333. package/dist/esm/utils/writePerformanceLog.js.map +0 -1
  334. package/dist/esm/utils/writeSceneLog.js.map +0 -1
  335. package/dist/esm/variables/DrilldownDependenciesManager.js.map +0 -1
  336. package/dist/esm/variables/VariableDependencyConfig.js.map +0 -1
  337. package/dist/esm/variables/VariableValueRecorder.js.map +0 -1
  338. package/dist/esm/variables/adhoc/AdHocFilterBuilder.js.map +0 -1
  339. package/dist/esm/variables/adhoc/AdHocFilterRenderer.js.map +0 -1
  340. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +0 -1
  341. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js.map +0 -1
  342. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +0 -1
  343. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -78
  344. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js.map +0 -1
  345. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js.map +0 -1
  346. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js.map +0 -1
  347. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js.map +0 -1
  348. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js.map +0 -1
  349. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +0 -1
  350. package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +0 -1
  351. package/dist/esm/variables/adhoc/controller/AdHocFiltersVariableController.js.map +0 -1
  352. package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js.map +0 -1
  353. package/dist/esm/variables/adhoc/getAdhocOptionSearcher.js.map +0 -1
  354. package/dist/esm/variables/adhoc/patchGetAdhocFilters.js.map +0 -1
  355. package/dist/esm/variables/components/VariableValueControl.js.map +0 -1
  356. package/dist/esm/variables/components/VariableValueInput.js.map +0 -1
  357. package/dist/esm/variables/components/VariableValueSelect.js.map +0 -1
  358. package/dist/esm/variables/components/VariableValueSelectors.js.map +0 -1
  359. package/dist/esm/variables/components/getOptionSearcher.js.map +0 -1
  360. package/dist/esm/variables/constants.js.map +0 -1
  361. package/dist/esm/variables/filter.js.map +0 -1
  362. package/dist/esm/variables/getEnrichedFiltersRequest.js.map +0 -1
  363. package/dist/esm/variables/groupby/DefaultGroupByCustomIndicatorContainer.js.map +0 -1
  364. package/dist/esm/variables/groupby/GroupByValueContainer.js.map +0 -1
  365. package/dist/esm/variables/groupby/GroupByVariable.js.map +0 -1
  366. package/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js.map +0 -1
  367. package/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js.map +0 -1
  368. package/dist/esm/variables/interpolation/ScopedVarsVariable.js.map +0 -1
  369. package/dist/esm/variables/interpolation/defaults.js.map +0 -1
  370. package/dist/esm/variables/interpolation/fieldAccessorCache.js.map +0 -1
  371. package/dist/esm/variables/interpolation/formatRegistry.js.map +0 -1
  372. package/dist/esm/variables/interpolation/sceneInterpolator.js.map +0 -1
  373. package/dist/esm/variables/lookupVariable.js.map +0 -1
  374. package/dist/esm/variables/macros/AllVariablesMacro.js.map +0 -1
  375. package/dist/esm/variables/macros/contextMacros.js.map +0 -1
  376. package/dist/esm/variables/macros/dataMacros.js.map +0 -1
  377. package/dist/esm/variables/macros/index.js.map +0 -1
  378. package/dist/esm/variables/macros/templateProxies.js.map +0 -1
  379. package/dist/esm/variables/macros/timeMacros.js.map +0 -1
  380. package/dist/esm/variables/macros/types.js.map +0 -1
  381. package/dist/esm/variables/macros/urlMacros.js.map +0 -1
  382. package/dist/esm/variables/sets/SceneVariableSet.js.map +0 -1
  383. package/dist/esm/variables/types.js.map +0 -1
  384. package/dist/esm/variables/utils.js.map +0 -1
  385. package/dist/esm/variables/variants/ConstantVariable.js.map +0 -1
  386. package/dist/esm/variables/variants/CustomVariable.js.map +0 -1
  387. package/dist/esm/variables/variants/DataSourceVariable.js.map +0 -1
  388. package/dist/esm/variables/variants/IntervalVariable.js.map +0 -1
  389. package/dist/esm/variables/variants/LocalValueVariable.js.map +0 -1
  390. package/dist/esm/variables/variants/MultiValueVariable.js.map +0 -1
  391. package/dist/esm/variables/variants/ScopesVariable.js.map +0 -1
  392. package/dist/esm/variables/variants/SwitchVariable.js.map +0 -1
  393. package/dist/esm/variables/variants/TestVariable.js.map +0 -1
  394. package/dist/esm/variables/variants/TextBoxVariable.js.map +0 -1
  395. package/dist/esm/variables/variants/guards.js.map +0 -1
  396. package/dist/esm/variables/variants/query/QueryVariable.js.map +0 -1
  397. package/dist/esm/variables/variants/query/createQueryVariableRunner.js.map +0 -1
  398. package/dist/esm/variables/variants/query/guards.js.map +0 -1
  399. package/dist/esm/variables/variants/query/toMetricFindValues.js.map +0 -1
  400. package/dist/esm/variables/variants/query/utils.js.map +0 -1
  401. /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/ActWhenVariableChanged.js +0 -0
  402. /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/CursorSync.js +0 -0
  403. /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/LiveNowTimer.js +0 -0
  404. /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/SceneInteractionTracker.js +0 -0
  405. /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/SceneQueryController.js +0 -0
  406. /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/index.js +0 -0
  407. /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/index.js.map +0 -0
  408. /package/dist/esm/{components → packages/scenes/src/components}/EmbeddedScene.js +0 -0
  409. /package/dist/esm/{components → packages/scenes/src/components}/NestedScene.js +0 -0
  410. /package/dist/esm/{components → packages/scenes/src/components}/SceneApp/SceneApp.js +0 -0
  411. /package/dist/esm/{components → packages/scenes/src/components}/SceneApp/SceneAppPage.js +0 -0
  412. /package/dist/esm/{components → packages/scenes/src/components}/SceneApp/SceneAppPageView.js +0 -0
  413. /package/dist/esm/{components → packages/scenes/src/components}/SceneApp/utils.js +0 -0
  414. /package/dist/esm/{components → packages/scenes/src/components}/SceneByFrameRepeater.js +0 -0
  415. /package/dist/esm/{components → packages/scenes/src/components}/SceneByVariableRepeater.js +0 -0
  416. /package/dist/esm/{components → packages/scenes/src/components}/SceneCanvasText.js +0 -0
  417. /package/dist/esm/{components → packages/scenes/src/components}/SceneControlsSpacer.js +0 -0
  418. /package/dist/esm/{components → packages/scenes/src/components}/SceneDebugger/DebugDetails.js +0 -0
  419. /package/dist/esm/{components → packages/scenes/src/components}/SceneDebugger/DebugTreeNode.js +0 -0
  420. /package/dist/esm/{components → packages/scenes/src/components}/SceneDebugger/SceneDebugger.js +0 -0
  421. /package/dist/esm/{components → packages/scenes/src/components}/SceneReactObject.js +0 -0
  422. /package/dist/esm/{components → packages/scenes/src/components}/SceneRefreshPicker.js +0 -0
  423. /package/dist/esm/{components → packages/scenes/src/components}/SceneTimePicker.js +0 -0
  424. /package/dist/esm/{components → packages/scenes/src/components}/SceneTimeRangeCompare.js +0 -0
  425. /package/dist/esm/{components → packages/scenes/src/components}/SceneToolbarButton.js +0 -0
  426. /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanel.js +0 -0
  427. /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanelExploreButton.js +0 -0
  428. /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanelMenu.js +0 -0
  429. /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanelRenderer.js +0 -0
  430. /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanelSeriesLimit.js +0 -0
  431. /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/colorSeriesConfigFactory.js +0 -0
  432. /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/registerRuntimePanelPlugin.js +0 -0
  433. /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/seriesVisibilityConfigFactory.js +0 -0
  434. /package/dist/esm/{components → packages/scenes/src/components}/layout/CSSGrid/SceneCSSGridLayout.js +0 -0
  435. /package/dist/esm/{components → packages/scenes/src/components}/layout/LazyLoader.js +0 -0
  436. /package/dist/esm/{components → packages/scenes/src/components}/layout/SceneFlexLayout.js +0 -0
  437. /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/SceneGridItem.js +0 -0
  438. /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/SceneGridLayout.js +0 -0
  439. /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/SceneGridLayoutRenderer.js +0 -0
  440. /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/SceneGridRow.js +0 -0
  441. /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/constants.js +0 -0
  442. /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/types.js +0 -0
  443. /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/utils.js +0 -0
  444. /package/dist/esm/{components → packages/scenes/src/components}/layout/split/SplitLayout.js +0 -0
  445. /package/dist/esm/{components → packages/scenes/src/components}/layout/split/SplitLayoutRenderer.js +0 -0
  446. /package/dist/esm/{components → packages/scenes/src/components}/layout/split/Splitter.js +0 -0
  447. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/FieldConfigBuilder.js +0 -0
  448. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/FieldConfigBuilders.js +0 -0
  449. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/FieldConfigOverridesBuilder.js +0 -0
  450. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/PanelOptionsBuilder.js +0 -0
  451. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/PanelOptionsBuilders.js +0 -0
  452. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/StandardFieldConfigBuilders.js +0 -0
  453. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/VizConfigBuilder.js +0 -0
  454. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/VizConfigBuilders.js +0 -0
  455. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/VizPanelBuilder.js +0 -0
  456. /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/index.js +0 -0
  457. /package/dist/esm/{core → packages/scenes/src/core}/SceneComponentWrapper.js +0 -0
  458. /package/dist/esm/{core → packages/scenes/src/core}/SceneDataNode.js +0 -0
  459. /package/dist/esm/{core → packages/scenes/src/core}/SceneObjectBase.js +0 -0
  460. /package/dist/esm/{core → packages/scenes/src/core}/SceneObjectRef.js +0 -0
  461. /package/dist/esm/{core → packages/scenes/src/core}/SceneTimeRange.js +0 -0
  462. /package/dist/esm/{core → packages/scenes/src/core}/SceneTimeRangeTransformerBase.js +0 -0
  463. /package/dist/esm/{core → packages/scenes/src/core}/SceneTimeZoneOverride.js +0 -0
  464. /package/dist/esm/{core → packages/scenes/src/core}/events.js +0 -0
  465. /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/cloneSceneObject.js +0 -0
  466. /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/getInteractionTracker.js +0 -0
  467. /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/getQueryController.js +0 -0
  468. /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/getTimeRange.js +0 -0
  469. /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/index.js +0 -0
  470. /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/sceneGraph.js +0 -0
  471. /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/utils.js +0 -0
  472. /package/dist/esm/{core → packages/scenes/src/core}/types.js +0 -0
  473. /package/dist/esm/{index.js → packages/scenes/src/index.js} +0 -0
  474. /package/dist/esm/{locales → packages/scenes/src/locales}/cs-CZ/grafana-scenes.json.js +0 -0
  475. /package/dist/esm/{locales → packages/scenes/src/locales}/cs-CZ/grafana-scenes.json.js.map +0 -0
  476. /package/dist/esm/{locales → packages/scenes/src/locales}/de-DE/grafana-scenes.json.js +0 -0
  477. /package/dist/esm/{locales → packages/scenes/src/locales}/de-DE/grafana-scenes.json.js.map +0 -0
  478. /package/dist/esm/{locales → packages/scenes/src/locales}/es-ES/grafana-scenes.json.js +0 -0
  479. /package/dist/esm/{locales/en-US → packages/scenes/src/locales/es-ES}/grafana-scenes.json.js.map +0 -0
  480. /package/dist/esm/{locales → packages/scenes/src/locales}/fr-FR/grafana-scenes.json.js +0 -0
  481. /package/dist/esm/{locales/es-ES → packages/scenes/src/locales/fr-FR}/grafana-scenes.json.js.map +0 -0
  482. /package/dist/esm/{locales → packages/scenes/src/locales}/hu-HU/grafana-scenes.json.js +0 -0
  483. /package/dist/esm/{locales/fr-FR → packages/scenes/src/locales/hu-HU}/grafana-scenes.json.js.map +0 -0
  484. /package/dist/esm/{locales → packages/scenes/src/locales}/id-ID/grafana-scenes.json.js +0 -0
  485. /package/dist/esm/{locales/hu-HU → packages/scenes/src/locales/id-ID}/grafana-scenes.json.js.map +0 -0
  486. /package/dist/esm/{locales → packages/scenes/src/locales}/it-IT/grafana-scenes.json.js +0 -0
  487. /package/dist/esm/{locales/id-ID → packages/scenes/src/locales/it-IT}/grafana-scenes.json.js.map +0 -0
  488. /package/dist/esm/{locales → packages/scenes/src/locales}/ja-JP/grafana-scenes.json.js +0 -0
  489. /package/dist/esm/{locales/it-IT → packages/scenes/src/locales/ja-JP}/grafana-scenes.json.js.map +0 -0
  490. /package/dist/esm/{locales → packages/scenes/src/locales}/ko-KR/grafana-scenes.json.js +0 -0
  491. /package/dist/esm/{locales/ja-JP → packages/scenes/src/locales/ko-KR}/grafana-scenes.json.js.map +0 -0
  492. /package/dist/esm/{locales → packages/scenes/src/locales}/nl-NL/grafana-scenes.json.js +0 -0
  493. /package/dist/esm/{locales/ko-KR → packages/scenes/src/locales/nl-NL}/grafana-scenes.json.js.map +0 -0
  494. /package/dist/esm/{locales → packages/scenes/src/locales}/pl-PL/grafana-scenes.json.js +0 -0
  495. /package/dist/esm/{locales/nl-NL → packages/scenes/src/locales/pl-PL}/grafana-scenes.json.js.map +0 -0
  496. /package/dist/esm/{locales → packages/scenes/src/locales}/pt-BR/grafana-scenes.json.js +0 -0
  497. /package/dist/esm/{locales/pl-PL → packages/scenes/src/locales/pt-BR}/grafana-scenes.json.js.map +0 -0
  498. /package/dist/esm/{locales → packages/scenes/src/locales}/pt-PT/grafana-scenes.json.js +0 -0
  499. /package/dist/esm/{locales/pt-BR → packages/scenes/src/locales/pt-PT}/grafana-scenes.json.js.map +0 -0
  500. /package/dist/esm/{locales → packages/scenes/src/locales}/ru-RU/grafana-scenes.json.js +0 -0
  501. /package/dist/esm/{locales/pt-PT → packages/scenes/src/locales/ru-RU}/grafana-scenes.json.js.map +0 -0
  502. /package/dist/esm/{locales → packages/scenes/src/locales}/sv-SE/grafana-scenes.json.js +0 -0
  503. /package/dist/esm/{locales/ru-RU → packages/scenes/src/locales/sv-SE}/grafana-scenes.json.js.map +0 -0
  504. /package/dist/esm/{locales → packages/scenes/src/locales}/tr-TR/grafana-scenes.json.js +0 -0
  505. /package/dist/esm/{locales/sv-SE → packages/scenes/src/locales/tr-TR}/grafana-scenes.json.js.map +0 -0
  506. /package/dist/esm/{locales → packages/scenes/src/locales}/zh-Hans/grafana-scenes.json.js +0 -0
  507. /package/dist/esm/{locales/tr-TR → packages/scenes/src/locales/zh-Hans}/grafana-scenes.json.js.map +0 -0
  508. /package/dist/esm/{locales → packages/scenes/src/locales}/zh-Hant/grafana-scenes.json.js +0 -0
  509. /package/dist/esm/{locales/zh-Hans → packages/scenes/src/locales/zh-Hant}/grafana-scenes.json.js.map +0 -0
  510. /package/dist/esm/{performance → packages/scenes/src/performance}/LongFrameDetector.js +0 -0
  511. /package/dist/esm/{performance → packages/scenes/src/performance}/PanelProfilingManager.js +0 -0
  512. /package/dist/esm/{performance → packages/scenes/src/performance}/ScenePerformanceTracker.js +0 -0
  513. /package/dist/esm/{performance → packages/scenes/src/performance}/SceneRenderProfiler.js +0 -0
  514. /package/dist/esm/{performance → packages/scenes/src/performance}/VizPanelRenderProfiler.js +0 -0
  515. /package/dist/esm/{performance → packages/scenes/src/performance}/index.js +0 -0
  516. /package/dist/esm/{performance → packages/scenes/src/performance}/index.js.map +0 -0
  517. /package/dist/esm/{performance → packages/scenes/src/performance}/interactionConstants.js +0 -0
  518. /package/dist/esm/{querying → packages/scenes/src/querying}/DataLayersMerger.js +0 -0
  519. /package/dist/esm/{querying → packages/scenes/src/querying}/DataProviderProxy.js +0 -0
  520. /package/dist/esm/{querying → packages/scenes/src/querying}/ExtraQueryProvider.js +0 -0
  521. /package/dist/esm/{querying → packages/scenes/src/querying}/RuntimeDataSource.js +0 -0
  522. /package/dist/esm/{querying → packages/scenes/src/querying}/SceneDataLayerSet.js +0 -0
  523. /package/dist/esm/{querying → packages/scenes/src/querying}/SceneDataTransformer.js +0 -0
  524. /package/dist/esm/{querying → packages/scenes/src/querying}/SceneQueryRunner.js +0 -0
  525. /package/dist/esm/{querying → packages/scenes/src/querying}/extraQueryProcessingOperator.js +0 -0
  526. /package/dist/esm/{querying → packages/scenes/src/querying}/getEnrichedDataRequest.js +0 -0
  527. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/SceneDataLayerBase.js +0 -0
  528. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/SceneDataLayerControls.js +0 -0
  529. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/AnnotationsDataLayer.js +0 -0
  530. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/filterAnnotations.js +0 -0
  531. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/standardAnnotationQuery.js +0 -0
  532. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/standardAnnotationsSupport.js +0 -0
  533. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/utils.js +0 -0
  534. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/index.js +0 -0
  535. /package/dist/esm/{querying → packages/scenes/src/querying}/layers/index.js.map +0 -0
  536. /package/dist/esm/{querying → packages/scenes/src/querying}/registerQueryWithController.js +0 -0
  537. /package/dist/esm/{services → packages/scenes/src/services}/SceneObjectUrlSyncConfig.js +0 -0
  538. /package/dist/esm/{services → packages/scenes/src/services}/UniqueUrlKeyMapper.js +0 -0
  539. /package/dist/esm/{services → packages/scenes/src/services}/UrlSyncContextProvider.js +0 -0
  540. /package/dist/esm/{services → packages/scenes/src/services}/UrlSyncManager.js +0 -0
  541. /package/dist/esm/{services → packages/scenes/src/services}/useUrlSync.js +0 -0
  542. /package/dist/esm/{services → packages/scenes/src/services}/utils.js +0 -0
  543. /package/dist/esm/{utils → packages/scenes/src/utils}/ControlsLabel.js +0 -0
  544. /package/dist/esm/{utils → packages/scenes/src/utils}/LoadingIndicator.js +0 -0
  545. /package/dist/esm/{utils → packages/scenes/src/utils}/SafeSerializableSceneObject.js +0 -0
  546. /package/dist/esm/{utils → packages/scenes/src/utils}/compatibility/setWindowGrafanaSceneContext.js +0 -0
  547. /package/dist/esm/{utils → packages/scenes/src/utils}/date.js +0 -0
  548. /package/dist/esm/{utils → packages/scenes/src/utils}/evaluateTimeRange.js +0 -0
  549. /package/dist/esm/{utils → packages/scenes/src/utils}/explore.js +0 -0
  550. /package/dist/esm/{utils → packages/scenes/src/utils}/findPanelProfiler.js +0 -0
  551. /package/dist/esm/{utils → packages/scenes/src/utils}/getCompareSeriesRefId.js +0 -0
  552. /package/dist/esm/{utils → packages/scenes/src/utils}/getDataSource.js +0 -0
  553. /package/dist/esm/{utils → packages/scenes/src/utils}/getMessageFromError.js +0 -0
  554. /package/dist/esm/{utils → packages/scenes/src/utils}/loadResources.js +0 -0
  555. /package/dist/esm/{utils → packages/scenes/src/utils}/metricTree.js +0 -0
  556. /package/dist/esm/{utils → packages/scenes/src/utils}/parseUrlParam.js +0 -0
  557. /package/dist/esm/{utils → packages/scenes/src/utils}/pathId.js +0 -0
  558. /package/dist/esm/{utils → packages/scenes/src/utils}/utils.js +0 -0
  559. /package/dist/esm/{utils → packages/scenes/src/utils}/wrapInSafeSerializableSceneObject.js +0 -0
  560. /package/dist/esm/{utils → packages/scenes/src/utils}/writePerformanceLog.js +0 -0
  561. /package/dist/esm/{utils → packages/scenes/src/utils}/writeSceneLog.js +0 -0
  562. /package/dist/esm/{variables → packages/scenes/src/variables}/DrilldownDependenciesManager.js +0 -0
  563. /package/dist/esm/{variables → packages/scenes/src/variables}/VariableDependencyConfig.js +0 -0
  564. /package/dist/esm/{variables → packages/scenes/src/variables}/VariableValueRecorder.js +0 -0
  565. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFilterBuilder.js +0 -0
  566. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFilterRenderer.js +0 -0
  567. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -0
  568. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -0
  569. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -0
  570. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -0
  571. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersVariable.js +0 -0
  572. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -0
  573. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/getAdHocFiltersFromScopes.js +0 -0
  574. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/getAdhocOptionSearcher.js +0 -0
  575. /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/patchGetAdhocFilters.js +0 -0
  576. /package/dist/esm/{variables → packages/scenes/src/variables}/components/VariableValueControl.js +0 -0
  577. /package/dist/esm/{variables → packages/scenes/src/variables}/components/VariableValueInput.js +0 -0
  578. /package/dist/esm/{variables → packages/scenes/src/variables}/components/VariableValueSelect.js +0 -0
  579. /package/dist/esm/{variables → packages/scenes/src/variables}/components/VariableValueSelectors.js +0 -0
  580. /package/dist/esm/{variables → packages/scenes/src/variables}/components/getOptionSearcher.js +0 -0
  581. /package/dist/esm/{variables → packages/scenes/src/variables}/constants.js +0 -0
  582. /package/dist/esm/{variables → packages/scenes/src/variables}/filter.js +0 -0
  583. /package/dist/esm/{variables → packages/scenes/src/variables}/getEnrichedFiltersRequest.js +0 -0
  584. /package/dist/esm/{variables → packages/scenes/src/variables}/groupby/DefaultGroupByCustomIndicatorContainer.js +0 -0
  585. /package/dist/esm/{variables → packages/scenes/src/variables}/groupby/GroupByValueContainer.js +0 -0
  586. /package/dist/esm/{variables → packages/scenes/src/variables}/groupby/GroupByVariableUrlSyncHandler.js +0 -0
  587. /package/dist/esm/{variables → packages/scenes/src/variables}/groupby/findActiveGroupByVariablesByUid.js +0 -0
  588. /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/ScopedVarsVariable.js +0 -0
  589. /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/defaults.js +0 -0
  590. /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/fieldAccessorCache.js +0 -0
  591. /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/formatRegistry.js +0 -0
  592. /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/sceneInterpolator.js +0 -0
  593. /package/dist/esm/{variables → packages/scenes/src/variables}/lookupVariable.js +0 -0
  594. /package/dist/esm/{variables → packages/scenes/src/variables}/macros/AllVariablesMacro.js +0 -0
  595. /package/dist/esm/{variables → packages/scenes/src/variables}/macros/contextMacros.js +0 -0
  596. /package/dist/esm/{variables → packages/scenes/src/variables}/macros/dataMacros.js +0 -0
  597. /package/dist/esm/{variables → packages/scenes/src/variables}/macros/index.js +0 -0
  598. /package/dist/esm/{variables → packages/scenes/src/variables}/macros/templateProxies.js +0 -0
  599. /package/dist/esm/{variables → packages/scenes/src/variables}/macros/timeMacros.js +0 -0
  600. /package/dist/esm/{variables → packages/scenes/src/variables}/macros/types.js +0 -0
  601. /package/dist/esm/{variables → packages/scenes/src/variables}/macros/urlMacros.js +0 -0
  602. /package/dist/esm/{variables → packages/scenes/src/variables}/sets/SceneVariableSet.js +0 -0
  603. /package/dist/esm/{variables → packages/scenes/src/variables}/types.js +0 -0
  604. /package/dist/esm/{variables → packages/scenes/src/variables}/utils.js +0 -0
  605. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/ConstantVariable.js +0 -0
  606. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/CustomVariable.js +0 -0
  607. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/DataSourceVariable.js +0 -0
  608. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/IntervalVariable.js +0 -0
  609. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/LocalValueVariable.js +0 -0
  610. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/MultiValueVariable.js +0 -0
  611. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/ScopesVariable.js +0 -0
  612. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/SwitchVariable.js +0 -0
  613. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/TestVariable.js +0 -0
  614. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/TextBoxVariable.js +0 -0
  615. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/guards.js +0 -0
  616. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/QueryVariable.js +0 -0
  617. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/createQueryVariableRunner.js +0 -0
  618. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/guards.js +0 -0
  619. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/toMetricFindValues.js +0 -0
  620. /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/utils.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/core/PanelBuilders/index.ts"],"sourcesContent":["import { TableFieldOptions as TableFieldConfig } from '@grafana/schema';\n\nimport {\n Options as BarChartOptions,\n FieldConfig as BarChartFieldConfig,\n defaultOptions as defaultBarChartOptions,\n defaultFieldConfig as defaultBarChartFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';\nimport {\n Options as BarGaugeOptions,\n defaultOptions as defaultBarGaugeOptions,\n} from '@grafana/schema/dist/esm/raw/composable/bargauge/panelcfg/x/BarGaugePanelCfg_types.gen';\nimport {\n Options as DataGridOptions,\n defaultOptions as defaultDataGridOptions,\n} from '@grafana/schema/dist/esm/raw/composable/datagrid/panelcfg/x/DatagridPanelCfg_types.gen';\nimport {\n Options as GaugeOptions,\n defaultOptions as defaultGaugeOptions,\n} from '@grafana/schema/dist/esm/raw/composable/gauge/panelcfg/x/GaugePanelCfg_types.gen';\nimport {\n Options as GeomapOptions,\n defaultOptions as defaultGeomapOptions,\n} from '@grafana/schema/dist/esm/raw/composable/geomap/panelcfg/x/GeomapPanelCfg_types.gen';\nimport {\n Options as HeatmapOptions,\n FieldConfig as HeatmapFieldConfig,\n defaultOptions as defaultHeatmapOptions,\n} from '@grafana/schema/dist/esm/raw/composable/heatmap/panelcfg/x/HeatmapPanelCfg_types.gen';\nimport {\n Options as HistogramOptions,\n FieldConfig as HistogramFieldConfig,\n defaultOptions as defaultHistogramOptions,\n defaultFieldConfig as defaultHistogramFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/histogram/panelcfg/x/HistogramPanelCfg_types.gen';\nimport { Options as LogsOptions } from '@grafana/schema/dist/esm/raw/composable/logs/panelcfg/x/LogsPanelCfg_types.gen';\nimport {\n Options as NewsOptions,\n defaultOptions as defaultNewsOptions,\n} from '@grafana/schema/dist/esm/raw/composable/news/panelcfg/x/NewsPanelCfg_types.gen';\nimport { Options as NodeGraphOptions } from '@grafana/schema/dist/esm/raw/composable/nodegraph/panelcfg/x/NodeGraphPanelCfg_types.gen';\nimport {\n Options as PieChartOptions,\n FieldConfig as PieChartFieldConfig,\n defaultOptions as defaultPieChartOptions,\n} from '@grafana/schema/dist/esm/raw/composable/piechart/panelcfg/x/PieChartPanelCfg_types.gen';\nimport {\n Options as StatOptions,\n defaultOptions as defaultStatOptions,\n} from '@grafana/schema/dist/esm/raw/composable/stat/panelcfg/x/StatPanelCfg_types.gen';\nimport {\n Options as StateTimelineOptions,\n FieldConfig as StateTimelineFieldConfig,\n defaultOptions as defaultStateTimelineOptions,\n defaultFieldConfig as defaultStateTimelineFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/statetimeline/panelcfg/x/StateTimelinePanelCfg_types.gen';\nimport {\n Options as StatusHistoryOptions,\n FieldConfig as StatusHistoryFieldConfig,\n defaultOptions as defaultStatusHistoryOptions,\n defaultFieldConfig as defaultStatusHistoryFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/statushistory/panelcfg/x/StatusHistoryPanelCfg_types.gen';\nimport {\n Options as TableOptions,\n defaultOptions as defaultTableOptions,\n} from '@grafana/schema/dist/esm/raw/composable/table/panelcfg/x/TablePanelCfg_types.gen';\nimport {\n Options as TextOptions,\n defaultOptions as defaultTextOptions,\n} from '@grafana/schema/dist/esm/raw/composable/text/panelcfg/x/TextPanelCfg_types.gen';\nimport {\n Options as TimeSeriesOptions,\n FieldConfig as TimeSeriesFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/timeseries/panelcfg/x/TimeSeriesPanelCfg_types.gen';\nimport {\n Options as TrendOptions,\n FieldConfig as TrendFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/trend/panelcfg/x/TrendPanelCfg_types.gen';\nimport {\n Options as XYChartOptions,\n defaultOptions as defaultXYChartOptions,\n defaultFieldConfig as defaultXYChartFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/xychart/panelcfg/x/XYChartPanelCfg_types.gen';\n\nimport { VizPanelBuilder } from './VizPanelBuilder';\n\nexport const PanelBuilders = {\n barchart() {\n return new VizPanelBuilder<BarChartOptions, BarChartFieldConfig>(\n 'barchart',\n '10.0.0',\n () => defaultBarChartOptions,\n () => defaultBarChartFieldConfig\n );\n },\n bargauge() {\n return new VizPanelBuilder<BarGaugeOptions, {}>('bargauge', '10.0.0', () => defaultBarGaugeOptions);\n },\n datagrid() {\n return new VizPanelBuilder<DataGridOptions, {}>('datagrid', '10.0.0', () => defaultDataGridOptions);\n },\n flamegraph() {\n return new VizPanelBuilder<{}, {}>('flamegraph', '10.0.0');\n },\n gauge() {\n return new VizPanelBuilder<GaugeOptions, {}>('gauge', '10.0.0', () => defaultGaugeOptions);\n },\n geomap() {\n return new VizPanelBuilder<GeomapOptions, {}>('geomap', '10.0.0', () => defaultGeomapOptions);\n },\n heatmap() {\n return new VizPanelBuilder<HeatmapOptions, HeatmapFieldConfig>('heatmap', '10.0.0', () => defaultHeatmapOptions);\n },\n histogram() {\n return new VizPanelBuilder<HistogramOptions, HistogramFieldConfig>(\n 'histogram',\n '10.0.0',\n () => defaultHistogramOptions,\n () => defaultHistogramFieldConfig\n );\n },\n logs() {\n return new VizPanelBuilder<LogsOptions, {}>('logs', '10.0.0');\n },\n news() {\n return new VizPanelBuilder<NewsOptions, {}>('news', '10.0.0', () => defaultNewsOptions);\n },\n nodegraph() {\n return new VizPanelBuilder<NodeGraphOptions, {}>('nodeGraph', '10.0.0');\n },\n piechart() {\n return new VizPanelBuilder<PieChartOptions, PieChartFieldConfig>(\n 'piechart',\n '10.0.0',\n () => defaultPieChartOptions\n );\n },\n stat() {\n return new VizPanelBuilder<StatOptions, {}>('stat', '10.0.0', () => defaultStatOptions);\n },\n statetimeline() {\n return new VizPanelBuilder<StateTimelineOptions, StateTimelineFieldConfig>(\n 'state-timeline',\n '10.0.0',\n () => defaultStateTimelineOptions,\n () => defaultStateTimelineFieldConfig\n );\n },\n statushistory() {\n return new VizPanelBuilder<StatusHistoryOptions, StatusHistoryFieldConfig>(\n 'status-history',\n '10.0.0',\n () => defaultStatusHistoryOptions,\n () => defaultStatusHistoryFieldConfig\n );\n },\n table() {\n return new VizPanelBuilder<TableOptions, TableFieldConfig>('table', '10.0.0', () => defaultTableOptions);\n },\n text() {\n return new VizPanelBuilder<TextOptions, {}>('text', '10.0.0', () => defaultTextOptions);\n },\n timeseries() {\n return new VizPanelBuilder<TimeSeriesOptions, TimeSeriesFieldConfig>('timeseries', '10.0.0');\n },\n trend() {\n return new VizPanelBuilder<{}, {}>('trend', '10.0.0');\n },\n traces() {\n return new VizPanelBuilder<TrendOptions, TrendFieldConfig>('traces', '10.0.0');\n },\n xychart() {\n return new VizPanelBuilder<XYChartOptions, {}>(\n 'xychart',\n '10.0.0',\n () => defaultXYChartOptions,\n () => defaultXYChartFieldConfig\n );\n },\n};\n\nexport { PanelOptionsBuilders } from './PanelOptionsBuilders';\nexport { FieldConfigBuilders } from './FieldConfigBuilders';\nexport { FieldConfigOverridesBuilder } from './FieldConfigOverridesBuilder';\n"],"names":["defaultBarChartOptions","defaultBarChartFieldConfig","defaultBarGaugeOptions","defaultDataGridOptions","defaultGaugeOptions","defaultGeomapOptions","defaultHeatmapOptions","defaultHistogramOptions","defaultHistogramFieldConfig","defaultNewsOptions","defaultPieChartOptions","defaultStatOptions","defaultStateTimelineOptions","defaultStateTimelineFieldConfig","defaultStatusHistoryOptions","defaultStatusHistoryFieldConfig","defaultTableOptions","defaultTextOptions","defaultXYChartOptions","defaultXYChartFieldConfig"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneComponentWrapper.js","sources":["../../../src/core/SceneComponentWrapper.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { SceneComponentProps, SceneObject } from './types';\n\nfunction SceneComponentWrapperWithoutMemo<T extends SceneObject>({ model, ...otherProps }: SceneComponentProps<T>) {\n const Component = (model as any).constructor['Component'] ?? EmptyRenderer;\n const [_, setValue] = useState(0);\n\n useEffect(() => {\n const unsub = model.activate();\n setValue((prevState) => prevState + 1);\n return unsub;\n }, [model]);\n\n // By not rendering the component until the model is actiavted we make sure that parent models get activated before child models\n // Otherwise child models would be activated before parents as that is the order of React mount effects.\n // This also enables static logic to happen inside activate that can change state before the first render.\n if (!model.isActive && !model.renderBeforeActivation) {\n return null;\n }\n\n return <Component {...otherProps} model={model} />;\n}\n\nexport const SceneComponentWrapper = React.memo(SceneComponentWrapperWithoutMemo);\n\nfunction EmptyRenderer<T>(_: SceneComponentProps<T>): React.ReactElement | null {\n return null;\n}\n"],"names":[],"mappings":";;AAIA,SAAS,gCAAwD,CAAA,EAAE,KAAO,EAAA,GAAG,YAAsC,EAAA;AAJnH,EAAA,IAAA,EAAA;AAKE,EAAA,MAAM,SAAa,GAAA,CAAA,EAAA,GAAA,KAAA,CAAc,WAAY,CAAA,WAAW,MAArC,IAA0C,GAAA,EAAA,GAAA,aAAA;AAC7D,EAAA,MAAM,CAAC,CAAA,EAAG,QAAQ,CAAA,GAAI,SAAS,CAAC,CAAA;AAEhC,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,KAAA,GAAQ,MAAM,QAAS,EAAA;AAC7B,IAAS,QAAA,CAAA,CAAC,SAAc,KAAA,SAAA,GAAY,CAAC,CAAA;AACrC,IAAO,OAAA,KAAA;AAAA,GACT,EAAG,CAAC,KAAK,CAAC,CAAA;AAKV,EAAA,IAAI,CAAC,KAAA,CAAM,QAAY,IAAA,CAAC,MAAM,sBAAwB,EAAA;AACpD,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA,EAAW,GAAG,UAAA,EAAY,KAAc,EAAA,CAAA;AAClD;AAEa,MAAA,qBAAA,GAAwB,KAAM,CAAA,IAAA,CAAK,gCAAgC;AAEhF,SAAS,cAAiB,CAAsD,EAAA;AAC9E,EAAO,OAAA,IAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneDataNode.js","sources":["../../../src/core/SceneDataNode.ts"],"sourcesContent":["import { getDefaultTimeRange, PanelData } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport { of } from 'rxjs';\n\nimport { SceneObjectBase } from './SceneObjectBase';\nimport { SceneDataProvider, SceneDataProviderResult, SceneDataState } from './types';\n\nexport interface SceneDataNodeState extends SceneDataState {\n data: PanelData;\n}\n\nexport class SceneDataNode extends SceneObjectBase<SceneDataNodeState> implements SceneDataProvider {\n public constructor(state?: Partial<SceneDataNodeState>) {\n super({\n data: emptyPanelData,\n ...state,\n });\n }\n\n public getResultsStream() {\n const result: SceneDataProviderResult = {\n origin: this,\n data: this.state.data,\n };\n\n return of(result);\n }\n}\n\nexport const emptyPanelData: PanelData = {\n state: LoadingState.Done,\n series: [],\n timeRange: getDefaultTimeRange(),\n};\n"],"names":[],"mappings":";;;;;AAWO,MAAM,sBAAsB,eAAiE,CAAA;AAAA,EAC3F,YAAY,KAAqC,EAAA;AACtD,IAAM,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,cAAA;AAAA,MACN,GAAG;AAAA,KACJ,CAAA;AAAA;AACH,EAEO,gBAAmB,GAAA;AACxB,IAAA,MAAM,MAAkC,GAAA;AAAA,MACtC,MAAQ,EAAA,IAAA;AAAA,MACR,IAAA,EAAM,KAAK,KAAM,CAAA;AAAA,KACnB;AAEA,IAAA,OAAO,GAAG,MAAM,CAAA;AAAA;AAEpB;AAEO,MAAM,cAA4B,GAAA;AAAA,EACvC,OAAO,YAAa,CAAA,IAAA;AAAA,EACpB,QAAQ,EAAC;AAAA,EACT,WAAW,mBAAoB;AACjC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneObjectBase.js","sources":["../../../src/core/SceneObjectBase.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Subscription, Unsubscribable } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { BusEvent, BusEventHandler, BusEventType, EventBus, EventBusSrv } from '@grafana/data';\nimport {\n SceneObject,\n SceneComponent,\n SceneObjectUrlSyncHandler,\n SceneStateChangedHandler,\n SceneActivationHandler,\n SceneDeactivationHandler,\n CancelActivationHandler,\n SceneObjectState,\n UseStateHookOptions,\n SceneStatelessBehavior,\n} from './types';\n\nimport { SceneComponentWrapper } from './SceneComponentWrapper';\nimport { SceneObjectStateChangedEvent } from './events';\nimport { cloneSceneObject } from './sceneGraph/cloneSceneObject';\nimport { SceneVariableDependencyConfigLike } from '../variables/types';\nimport { SceneObjectRef } from './SceneObjectRef';\n\nexport abstract class SceneObjectBase<TState extends SceneObjectState = SceneObjectState>\n implements SceneObject<TState>\n{\n private _isActive = false;\n private _state: TState;\n private _activationHandlers: SceneActivationHandler[] = [];\n private _deactivationHandlers = new Map<object, SceneDeactivationHandler>();\n private _ref?: SceneObjectRef<this>;\n\n protected _events?: EventBus;\n protected _parent?: SceneObject;\n protected _subs = new Subscription();\n protected _refCount = 0;\n protected _renderBeforeActivation = false;\n\n protected _variableDependency: SceneVariableDependencyConfigLike | undefined;\n protected _urlSync: SceneObjectUrlSyncHandler | undefined;\n\n public constructor(state: TState) {\n if (!state.key) {\n state.key = uuidv4();\n }\n\n this._events = new EventBusSrv();\n\n this._state = Object.freeze(state);\n this._setParent(this._state);\n }\n\n /** Current state */\n public get state(): TState {\n return this._state;\n }\n\n /** True if currently being active (ie displayed for visual objects) */\n public get isActive(): boolean {\n return this._isActive;\n }\n\n public get renderBeforeActivation(): boolean {\n return this._renderBeforeActivation;\n }\n\n /** Returns the parent, undefined for root object */\n public get parent(): SceneObject | undefined {\n return this._parent;\n }\n\n /** Returns variable dependency config */\n public get variableDependency(): SceneVariableDependencyConfigLike | undefined {\n return this._variableDependency;\n }\n\n /** Returns url sync config */\n public get urlSync(): SceneObjectUrlSyncHandler | undefined {\n return this._urlSync;\n }\n\n /**\n * Used in render functions when rendering a SceneObject.\n * Wraps the component in an EditWrapper that handles edit mode\n */\n public get Component(): SceneComponent<this> {\n return SceneComponentWrapper as SceneComponent<this>;\n }\n\n private _setParent(state: Partial<TState>) {\n forEachChild(state, (child) => {\n // If we already have a parent and it's not this, then we likely have a bug\n if (child._parent && child._parent !== this) {\n console.warn(\n 'SceneObject already has a parent set that is different from the new parent. You cannot share the same SceneObject instance in multiple scenes or in multiple different places of the same scene graph. Use SceneObject.clone() to duplicate a SceneObject or store a state key reference and use sceneGraph.findObject to locate it.',\n child,\n this\n );\n }\n child._parent = this;\n });\n }\n\n /**\n * Sometimes you want to move one instance to another parent.\n * This is a way to do that without getting the console warning.\n */\n public clearParent() {\n this._parent = undefined;\n }\n\n /**\n * Subscribe to the scene state subject\n **/\n public subscribeToState(handler: SceneStateChangedHandler<TState>): Unsubscribable {\n return this._events!.subscribe(SceneObjectStateChangedEvent, (event) => {\n if (event.payload.changedObject === this) {\n handler(event.payload.newState as TState, event.payload.prevState as TState);\n }\n });\n }\n\n /**\n * Subscribe to the scene event\n **/\n public subscribeToEvent<T extends BusEvent>(eventType: BusEventType<T>, handler: BusEventHandler<T>): Unsubscribable {\n return this._events!.subscribe(eventType, handler);\n }\n\n public setState(update: Partial<TState>) {\n const prevState = this._state;\n const newState: TState = {\n ...this._state,\n ...update,\n };\n\n this._state = Object.freeze(newState);\n this._setParent(update);\n\n // Handles cases when $data, $timeRange, or $variables are changed\n this._handleActivationOfChangedStateProps(prevState, newState);\n\n // Bubble state change event. This is event is subscribed to by UrlSyncManager and UndoManager\n this.publishEvent(\n new SceneObjectStateChangedEvent({\n prevState,\n newState,\n partialUpdate: update,\n changedObject: this,\n }),\n true\n );\n }\n\n /**\n * This handles activation and deactivation of $data, $timeRange and $variables when they change\n * during the active phase of the scene object.\n */\n private _handleActivationOfChangedStateProps(prevState: TState, newState: TState) {\n if (!this.isActive) {\n return;\n }\n\n if (prevState.$behaviors !== newState.$behaviors) {\n this._handleChangedBehaviors(prevState.$behaviors, newState.$behaviors);\n }\n\n if (prevState.$data !== newState.$data) {\n this._handleChangedStateActivation(prevState.$data, newState.$data);\n }\n\n if (prevState.$variables !== newState.$variables) {\n this._handleChangedStateActivation(prevState.$variables, newState.$variables);\n }\n\n if (prevState.$timeRange !== newState.$timeRange) {\n this._handleChangedStateActivation(prevState.$timeRange, newState.$timeRange);\n }\n }\n\n private _handleChangedStateActivation(oldValue: SceneObject | undefined, newValue: SceneObject | undefined) {\n if (oldValue) {\n const deactivationHandler = this._deactivationHandlers.get(oldValue);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldValue);\n }\n }\n\n if (newValue) {\n this._deactivationHandlers.set(newValue, newValue.activate());\n }\n }\n\n private _handleChangedBehaviors(\n oldValue: Array<SceneObject | SceneStatelessBehavior> | undefined,\n newValue: Array<SceneObject | SceneStatelessBehavior> | undefined\n ) {\n // Handle removed behaviors\n if (oldValue) {\n for (const oldBehavior of oldValue) {\n if (!newValue || !newValue.includes(oldBehavior)) {\n const deactivationHandler = this._deactivationHandlers.get(oldBehavior);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldBehavior);\n }\n }\n }\n }\n\n // Handle new behaviors\n if (newValue) {\n for (const newBehavior of newValue) {\n if (!oldValue || !oldValue.includes(newBehavior)) {\n this._activateBehavior(newBehavior);\n }\n }\n }\n }\n\n /*\n * Publish an event and optionally bubble it up the scene\n **/\n public publishEvent(event: BusEvent, bubble?: boolean) {\n this._events!.publish(event);\n\n if (bubble && this.parent) {\n this.parent.publishEvent(event, bubble);\n }\n }\n\n public getRoot(): SceneObject {\n return !this._parent ? this : this._parent.getRoot();\n }\n\n private _internalActivate() {\n this._isActive = true;\n\n const { $data, $variables, $timeRange, $behaviors } = this.state;\n\n this._activationHandlers.forEach((handler) => {\n const result = handler();\n if (result) {\n this._deactivationHandlers.set(result, result);\n }\n });\n\n if ($timeRange && !$timeRange.isActive) {\n this._deactivationHandlers.set($timeRange, $timeRange.activate());\n }\n\n if ($variables && !$variables.isActive) {\n this._deactivationHandlers.set($variables, $variables.activate());\n }\n\n if ($data && !$data.isActive) {\n this._deactivationHandlers.set($data, $data.activate());\n }\n\n if ($behaviors) {\n for (const behavior of $behaviors) {\n this._activateBehavior(behavior);\n }\n }\n }\n\n private _activateBehavior(behavior: SceneObject | SceneStatelessBehavior): SceneDeactivationHandler | void {\n if (behavior instanceof SceneObjectBase) {\n this._deactivationHandlers.set(behavior, behavior.activate());\n } else if (typeof behavior === 'function') {\n const deactivate = behavior(this);\n if (deactivate) {\n this._deactivationHandlers.set(behavior, deactivate);\n }\n }\n }\n\n /**\n * This is primarily called from SceneComponentWrapper when the SceneObject's Component is mounted.\n * But in some scenarios this can also be called directly from another scene object. When called manually from another scene object\n * make sure to call the returned function when the source scene object is deactivated.\n */\n public activate(): CancelActivationHandler {\n if (!this.isActive) {\n this._internalActivate();\n }\n\n this._refCount++;\n\n let called = false;\n\n return () => {\n this._refCount--;\n\n if (called) {\n const msg = `SceneObject cancelation handler returned by activate() called a second time`;\n throw new Error(msg);\n }\n\n called = true;\n\n if (this._refCount === 0) {\n this._internalDeactivate();\n }\n };\n }\n\n /**\n * Called by the SceneComponentWrapper when the react component is unmounted.\n * Don't override this, instead use addActivationHandler. The activation handler can return a deactivation handler.\n */\n private _internalDeactivate(): void {\n this._isActive = false;\n\n for (let handler of this._deactivationHandlers.values()) {\n handler();\n }\n\n this._deactivationHandlers.clear();\n\n // Clear subscriptions and listeners\n this._events!.removeAllListeners();\n this._subs.unsubscribe();\n this._subs = new Subscription();\n }\n\n /**\n * Utility hook to get and subscribe to state\n */\n public useState(): TState {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useSceneObjectState(this);\n }\n\n /** Force a re-render, should only be needed when variable values change */\n public forceRender(): void {\n this.setState({});\n }\n\n /**\n * Will create new SceneObject with shallow-cloned state, but all state items of type SceneObject are deep cloned\n */\n public clone(withState?: Partial<TState>): this {\n return cloneSceneObject(this, withState);\n }\n\n /**\n * Allows external code to register code that is executed on activate and deactivate. This allow you\n * to wire up scene objects that need to respond to state changes in other objects from the outside.\n **/\n public addActivationHandler(handler: SceneActivationHandler) {\n this._activationHandlers.push(handler);\n }\n\n /**\n * Loop through state and call callback for each direct child scene object.\n * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.\n * Return false to exit loop early.\n */\n public forEachChild(callback: (child: SceneObjectBase) => void) {\n forEachChild(this.state, callback);\n }\n\n /** Returns a SceneObjectRef that will resolve to this object */\n public getRef(): SceneObjectRef<this> {\n if (!this._ref) {\n this._ref = new SceneObjectRef(this);\n }\n\n return this._ref;\n }\n\n public toJSON() {\n return {\n type: Object.getPrototypeOf(this).constructor.name,\n isActive: this.isActive,\n state: this.state,\n };\n }\n}\n\n/**\n * This hook is always returning model.state instead of a useState that remembers the last state emitted on the subject\n * The reason for this is so that if the model instance change this function will always return the latest state.\n */\nexport function useSceneObjectState<TState extends SceneObjectState>(\n model: SceneObject<TState>,\n options?: UseStateHookOptions\n): TState {\n const [_, setState] = useState<TState>(model.state);\n const stateAtFirstRender = model.state;\n const shouldActivateOrKeepAlive = options?.shouldActivateOrKeepAlive ?? false;\n\n useEffect(() => {\n let unactivate: CancelActivationHandler | undefined;\n\n if (shouldActivateOrKeepAlive) {\n unactivate = model.activate();\n }\n\n const s = model.subscribeToState((state) => {\n setState(state);\n });\n\n // Re-render component if the state changed between first render and useEffect (mount)\n if (model.state !== stateAtFirstRender) {\n setState(model.state);\n }\n\n return () => {\n s.unsubscribe();\n\n if (unactivate) {\n unactivate();\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [model, shouldActivateOrKeepAlive]);\n\n return model.state;\n}\n\nfunction forEachChild<T extends object>(state: T, callback: (child: SceneObjectBase) => void | false) {\n for (const propValue of Object.values(state)) {\n if (propValue instanceof SceneObjectBase) {\n const result = callback(propValue);\n if (result === false) {\n break;\n }\n }\n\n if (Array.isArray(propValue)) {\n let exitEarly = false;\n\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n const result = callback(child);\n if (result === false) {\n exitEarly = true;\n break;\n }\n }\n }\n\n if (exitEarly) {\n break;\n }\n }\n }\n}\n"],"names":["uuidv4"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneObjectRef.js","sources":["../../../src/core/SceneObjectRef.ts"],"sourcesContent":["export class SceneObjectRef<T> {\n #ref: T;\n\n public constructor(ref: T) {\n this.#ref = ref;\n }\n\n public resolve(): T {\n return this.#ref;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,IAAA,IAAA;AAAO,MAAM,cAAkB,CAAA;AAAA,EAGtB,YAAY,GAAQ,EAAA;AAF3B,IAAA,YAAA,CAAA,IAAA,EAAA,IAAA,CAAA;AAGE,IAAA,YAAA,CAAA,IAAA,EAAK,IAAO,EAAA,GAAA,CAAA;AAAA;AACd,EAEO,OAAa,GAAA;AAClB,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,IAAA,CAAA;AAAA;AAEhB;AATE,IAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneTimeRange.js","sources":["../../../src/core/SceneTimeRange.tsx"],"sourcesContent":["import { getTimeZone, getZone, rangeUtil, setWeekStart, TimeRange, toUtc } from '@grafana/data';\nimport { defaultTimeZone, TimeZone } from '@grafana/schema';\n\nimport { SceneObjectUrlSyncConfig } from '../services/SceneObjectUrlSyncConfig';\n\nimport { SceneObjectBase } from './SceneObjectBase';\nimport { SceneTimeRangeLike, SceneTimeRangeState, SceneObjectUrlValues } from './types';\nimport { getClosest } from './sceneGraph/utils';\nimport { parseUrlParam } from '../utils/parseUrlParam';\nimport { evaluateTimeRange } from '../utils/evaluateTimeRange';\nimport { config, locationService, RefreshEvent } from '@grafana/runtime';\nimport { isValid } from '../utils/date';\nimport { getQueryController } from './sceneGraph/getQueryController';\nimport { writeSceneLog } from '../utils/writeSceneLog';\nimport { isEmpty } from 'lodash';\nimport { TIME_RANGE_CHANGE_INTERACTION } from '../performance/interactionConstants';\n\nexport class SceneTimeRange extends SceneObjectBase<SceneTimeRangeState> implements SceneTimeRangeLike {\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['from', 'to', 'timezone', 'time', 'time.window'] });\n\n public constructor(state: Partial<SceneTimeRangeState> = {}) {\n const from = state.from && isValid(state.from) ? state.from : 'now-6h';\n const to = state.to && isValid(state.to) ? state.to : 'now';\n const timeZone = getValidTimeZone(state.timeZone);\n const value = evaluateTimeRange(\n from,\n to,\n timeZone || getTimeZone(),\n state.fiscalYearStartMonth,\n state.UNSAFE_nowDelay,\n state.weekStart\n );\n const refreshOnActivate = state.refreshOnActivate ?? { percent: 10 };\n super({ from, to, timeZone, value, refreshOnActivate, ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n // When SceneTimeRange has no time zone provided, find closest source of time zone and subscribe to it\n if (!this.state.timeZone) {\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this) {\n this._subs.add(\n timeZoneSource.subscribeToState((n, p) => {\n if (n.timeZone !== undefined && n.timeZone !== p.timeZone) {\n this.refreshRange(0);\n }\n })\n );\n }\n }\n\n if (rangeUtil.isRelativeTimeRange(this.state.value.raw)) {\n this.refreshIfStale();\n }\n\n return () => {\n if (this.state.weekStart) {\n setWeekStart(config.bootData.user.weekStart);\n }\n };\n }\n\n private refreshIfStale() {\n let ms;\n if (this.state?.refreshOnActivate?.percent !== undefined) {\n ms = this.calculatePercentOfInterval(this.state.refreshOnActivate.percent);\n }\n if (this.state?.refreshOnActivate?.afterMs !== undefined) {\n ms = Math.min(this.state.refreshOnActivate.afterMs, ms ?? Infinity);\n }\n if (ms !== undefined) {\n this.refreshRange(ms);\n }\n }\n\n /**\n * Will traverse up the scene graph to find the closest SceneTimeRangeLike with time zone set\n */\n private getTimeZoneSource() {\n if (!this.parent || !this.parent.parent) {\n return this;\n }\n // Find the closest source of time zone\n const source = getClosest<SceneTimeRangeLike>(this.parent.parent, (o) => {\n if (o.state.$timeRange && o.state.$timeRange.state.timeZone) {\n return o.state.$timeRange;\n }\n return undefined;\n });\n\n if (!source) {\n return this;\n }\n\n return source;\n }\n\n /**\n * Refreshes time range if it is older than the invalidation interval\n * @param refreshAfterMs invalidation interval (milliseconds)\n * @private\n */\n private refreshRange(refreshAfterMs: number) {\n const value = evaluateTimeRange(\n this.state.from,\n this.state.to,\n this.state.timeZone ?? getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n\n const diff = value.to.diff(this.state.value.to, 'milliseconds');\n if (diff >= refreshAfterMs) {\n this.setState({ value });\n }\n }\n\n private calculatePercentOfInterval(percent: number): number {\n const intervalMs = this.state.value.to.diff(this.state.value.from, 'milliseconds');\n return Math.ceil((intervalMs / 100) * percent);\n }\n\n public getTimeZone(): TimeZone {\n // Return local time zone if provided\n if (this.state.timeZone && getValidTimeZone(this.state.timeZone)) {\n return this.state.timeZone;\n }\n\n // Resolve higher level time zone source\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this && getValidTimeZone(timeZoneSource.state.timeZone)) {\n return timeZoneSource.state.timeZone!;\n }\n\n // Return default time zone\n return getTimeZone();\n }\n\n public onTimeRangeChange = (timeRange: TimeRange) => {\n const update: Partial<SceneTimeRangeState> = {};\n\n if (typeof timeRange.raw.from === 'string') {\n update.from = timeRange.raw.from;\n } else {\n update.from = timeRange.raw.from.toISOString();\n }\n\n if (typeof timeRange.raw.to === 'string') {\n update.to = timeRange.raw.to;\n } else {\n update.to = timeRange.raw.to.toISOString();\n }\n\n update.value = evaluateTimeRange(\n update.from,\n update.to,\n this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n\n // Only update if time range actually changed\n if (update.from !== this.state.from || update.to !== this.state.to) {\n const queryController = getQueryController(this);\n queryController?.startProfile(TIME_RANGE_CHANGE_INTERACTION);\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState(update);\n });\n }\n };\n\n public onTimeZoneChange = (timeZone: TimeZone) => {\n this._urlSync.performBrowserHistoryAction(() => {\n const validTimeZone = getValidTimeZone(timeZone) ?? defaultTimeZone;\n const updatedValue = evaluateTimeRange(\n this.state.from,\n this.state.to,\n validTimeZone,\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n this.setState({ timeZone: validTimeZone, value: updatedValue });\n });\n };\n\n public onRefresh = () => {\n this.refreshRange(0);\n this.publishEvent(new RefreshEvent(), true);\n };\n\n public getUrlState() {\n const params = locationService.getSearchObject();\n const urlValues: SceneObjectUrlValues = { from: this.state.from, to: this.state.to, timezone: this.getTimeZone() };\n\n // Clear time and time.window once they are converted to from and to\n if (params.time && params['time.window']) {\n urlValues.time = null;\n urlValues['time.window'] = null;\n }\n\n return urlValues;\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n const update: Partial<SceneTimeRangeState> = {};\n\n let from = parseUrlParam(values.from);\n let to = parseUrlParam(values.to);\n\n if (values.time && values['time.window']) {\n const time = Array.isArray(values.time) ? values.time[0] : values.time;\n const timeWindow = Array.isArray(values['time.window']) ? values['time.window'][0] : values['time.window'];\n const timeRange = getTimeWindow(time, timeWindow);\n if (timeRange.from && isValid(timeRange.from)) {\n from = timeRange.from;\n }\n\n if (timeRange.to && isValid(timeRange.to)) {\n to = timeRange.to;\n }\n }\n\n if (from && isValid(from)) {\n update.from = from;\n }\n\n if (to && isValid(to)) {\n update.to = to;\n }\n\n if (typeof values.timezone === 'string') {\n update.timeZone = values.timezone !== '' ? values.timezone : undefined;\n }\n\n if (Object.keys(update).length === 0) {\n return;\n }\n\n update.value = evaluateTimeRange(\n update.from ?? this.state.from,\n update.to ?? this.state.to,\n update.timeZone ?? this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n\n return this.setState(update);\n }\n}\n\n/**\n * Calculates the duration of the time range from time-time.window/2 to time+time.window/2. Both be specified in ms. For example ?time=1500000000000&time.window=10000 results in a 10-second time range from 1499999995000 to 1500000005000`.\n * @param time - time in ms\n * @param timeWindow - time window in ms or interval string\n */\nfunction getTimeWindow(time: string, timeWindow: string) {\n // Parse the time, assuming it could be an ISO string or a number in milliseconds\n const valueTime = isNaN(Date.parse(time)) ? parseInt(time, 10) : Date.parse(time);\n\n let timeWindowMs;\n\n if (timeWindow.match(/^\\d+$/) && parseInt(timeWindow, 10)) {\n // when time window is specified in ms\n timeWindowMs = parseInt(timeWindow, 10);\n } else {\n timeWindowMs = rangeUtil.intervalToMs(timeWindow);\n }\n\n return {\n from: toUtc(valueTime - timeWindowMs / 2).toISOString(),\n to: toUtc(valueTime + timeWindowMs / 2).toISOString(),\n };\n}\n\n/**\n * Validates and returns a valid time zone string or undefined.\n * @param {string} [timeZone] - The time zone to validate. Can be a valid IANA time zone string, the string \"browser\", or undefined.\n * @returns {string | undefined} - Returns the input time zone if it is valid, or undefined if the input is invalid or not provided.\n */\nfunction getValidTimeZone(timeZone?: string): string | undefined {\n if (timeZone === undefined) {\n return undefined;\n }\n\n if (isEmpty(timeZone)) {\n return config.bootData.user.timezone;\n }\n\n if (timeZone === defaultTimeZone) {\n return timeZone;\n }\n\n if (getZone(timeZone)) {\n return timeZone;\n }\n\n writeSceneLog('SceneTimeRange', `Invalid timeZone \"${timeZone}\" provided.`);\n return;\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneTimeRangeTransformerBase.js","sources":["../../../src/core/SceneTimeRangeTransformerBase.tsx"],"sourcesContent":["import { TimeRange } from '@grafana/data';\nimport { TimeZone } from '@grafana/schema';\nimport { sceneGraph } from './sceneGraph';\nimport { SceneObjectBase } from './SceneObjectBase';\nimport { SceneTimeRangeLike, SceneTimeRangeState } from './types';\n\n/**\n * @internal\n * Used by SceneTimeZoneOverride and main repo PanelTimeRange.\n * Not recommened to be used by plugins directly.\n */\nexport abstract class SceneTimeRangeTransformerBase<T extends SceneTimeRangeState>\n extends SceneObjectBase<T>\n implements SceneTimeRangeLike\n{\n public constructor(state: T) {\n super(state);\n\n this.addActivationHandler(this._activationHandler);\n }\n\n protected getAncestorTimeRange() {\n if (!this.parent || !this.parent.parent) {\n throw new Error(typeof this + ' must be used within $timeRange scope');\n }\n\n return sceneGraph.getTimeRange(this.parent.parent);\n }\n\n private _activationHandler = () => {\n const ancestorTimeRange = this.getAncestorTimeRange();\n\n this.ancestorTimeRangeChanged(ancestorTimeRange.state);\n\n this._subs.add(ancestorTimeRange.subscribeToState((s) => this.ancestorTimeRangeChanged(s)));\n };\n\n protected abstract ancestorTimeRangeChanged(timeRange: SceneTimeRangeState): void;\n\n public getTimeZone(): TimeZone {\n return this.getAncestorTimeRange().getTimeZone();\n }\n\n public onTimeRangeChange(timeRange: TimeRange): void {\n this.getAncestorTimeRange().onTimeRangeChange(timeRange);\n }\n\n public onTimeZoneChange(timeZone: string): void {\n this.getAncestorTimeRange().onTimeZoneChange(timeZone);\n }\n\n public onRefresh(): void {\n this.getAncestorTimeRange().onRefresh();\n }\n}\n"],"names":[],"mappings":";;;AAWO,MAAe,sCACZ,eAEV,CAAA;AAAA,EACS,YAAY,KAAU,EAAA;AAC3B,IAAA,KAAA,CAAM,KAAK,CAAA;AAab,IAAA,IAAA,CAAQ,qBAAqB,MAAM;AACjC,MAAM,MAAA,iBAAA,GAAoB,KAAK,oBAAqB,EAAA;AAEpD,MAAK,IAAA,CAAA,wBAAA,CAAyB,kBAAkB,KAAK,CAAA;AAErD,MAAK,IAAA,CAAA,KAAA,CAAM,GAAI,CAAA,iBAAA,CAAkB,gBAAiB,CAAA,CAAC,MAAM,IAAK,CAAA,wBAAA,CAAyB,CAAC,CAAC,CAAC,CAAA;AAAA,KAC5F;AAjBE,IAAK,IAAA,CAAA,oBAAA,CAAqB,KAAK,kBAAkB,CAAA;AAAA;AACnD,EAEU,oBAAuB,GAAA;AAC/B,IAAA,IAAI,CAAC,IAAK,CAAA,MAAA,IAAU,CAAC,IAAA,CAAK,OAAO,MAAQ,EAAA;AACvC,MAAA,MAAM,IAAI,KAAA,CAAM,OAAO,IAAA,GAAO,uCAAuC,CAAA;AAAA;AAGvE,IAAA,OAAO,UAAW,CAAA,YAAA,CAAa,IAAK,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA;AACnD,EAYO,WAAwB,GAAA;AAC7B,IAAO,OAAA,IAAA,CAAK,oBAAqB,EAAA,CAAE,WAAY,EAAA;AAAA;AACjD,EAEO,kBAAkB,SAA4B,EAAA;AACnD,IAAK,IAAA,CAAA,oBAAA,EAAuB,CAAA,iBAAA,CAAkB,SAAS,CAAA;AAAA;AACzD,EAEO,iBAAiB,QAAwB,EAAA;AAC9C,IAAK,IAAA,CAAA,oBAAA,EAAuB,CAAA,gBAAA,CAAiB,QAAQ,CAAA;AAAA;AACvD,EAEO,SAAkB,GAAA;AACvB,IAAK,IAAA,CAAA,oBAAA,GAAuB,SAAU,EAAA;AAAA;AAE1C;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneTimeZoneOverride.js","sources":["../../../src/core/SceneTimeZoneOverride.tsx"],"sourcesContent":["import { TimeZone } from '@grafana/schema';\nimport { SceneTimeRangeLike, SceneTimeRangeState } from './types';\nimport { SceneTimeRangeTransformerBase } from './SceneTimeRangeTransformerBase';\nimport { getDefaultTimeRange } from '@grafana/data';\nimport { evaluateTimeRange } from '../utils/evaluateTimeRange';\n\ninterface SceneTimeZoneOverrideState extends SceneTimeRangeState {\n timeZone: TimeZone;\n}\n\nexport class SceneTimeZoneOverride\n extends SceneTimeRangeTransformerBase<SceneTimeZoneOverrideState>\n implements SceneTimeRangeLike\n{\n public constructor(state: Omit<SceneTimeZoneOverrideState, 'from' | 'to' | 'value'>) {\n super({\n ...state,\n timeZone: state.timeZone,\n // We set a default time range here. It will be overwritten on activation based on ancestor time range.\n from: 'now-6h',\n to: 'now',\n value: getDefaultTimeRange(),\n });\n }\n\n protected ancestorTimeRangeChanged(timeRange: SceneTimeRangeState): void {\n this.setState({\n ...timeRange,\n timeZone: this.state.timeZone,\n value: evaluateTimeRange(\n timeRange.from,\n timeRange.to,\n this.state.timeZone,\n timeRange.fiscalYearStartMonth,\n timeRange.UNSAFE_nowDelay,\n timeRange.weekStart\n ),\n });\n }\n\n public getTimeZone(): TimeZone {\n return this.state.timeZone;\n }\n\n public onTimeZoneChange(timeZone: string): void {\n const parentTimeRange = this.getAncestorTimeRange();\n\n this.setState({\n timeZone,\n value: evaluateTimeRange(\n parentTimeRange.state.from,\n parentTimeRange.state.to,\n timeZone,\n parentTimeRange.state.fiscalYearStartMonth,\n parentTimeRange.state.UNSAFE_nowDelay,\n parentTimeRange.state.weekStart\n ),\n });\n }\n}\n"],"names":[],"mappings":";;;;AAUO,MAAM,8BACH,6BAEV,CAAA;AAAA,EACS,YAAY,KAAkE,EAAA;AACnF,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MACH,UAAU,KAAM,CAAA,QAAA;AAAA;AAAA,MAEhB,IAAM,EAAA,QAAA;AAAA,MACN,EAAI,EAAA,KAAA;AAAA,MACJ,OAAO,mBAAoB;AAAA,KAC5B,CAAA;AAAA;AACH,EAEU,yBAAyB,SAAsC,EAAA;AACvE,IAAA,IAAA,CAAK,QAAS,CAAA;AAAA,MACZ,GAAG,SAAA;AAAA,MACH,QAAA,EAAU,KAAK,KAAM,CAAA,QAAA;AAAA,MACrB,KAAO,EAAA,iBAAA;AAAA,QACL,SAAU,CAAA,IAAA;AAAA,QACV,SAAU,CAAA,EAAA;AAAA,QACV,KAAK,KAAM,CAAA,QAAA;AAAA,QACX,SAAU,CAAA,oBAAA;AAAA,QACV,SAAU,CAAA,eAAA;AAAA,QACV,SAAU,CAAA;AAAA;AACZ,KACD,CAAA;AAAA;AACH,EAEO,WAAwB,GAAA;AAC7B,IAAA,OAAO,KAAK,KAAM,CAAA,QAAA;AAAA;AACpB,EAEO,iBAAiB,QAAwB,EAAA;AAC9C,IAAM,MAAA,eAAA,GAAkB,KAAK,oBAAqB,EAAA;AAElD,IAAA,IAAA,CAAK,QAAS,CAAA;AAAA,MACZ,QAAA;AAAA,MACA,KAAO,EAAA,iBAAA;AAAA,QACL,gBAAgB,KAAM,CAAA,IAAA;AAAA,QACtB,gBAAgB,KAAM,CAAA,EAAA;AAAA,QACtB,QAAA;AAAA,QACA,gBAAgB,KAAM,CAAA,oBAAA;AAAA,QACtB,gBAAgB,KAAM,CAAA,eAAA;AAAA,QACtB,gBAAgB,KAAM,CAAA;AAAA;AACxB,KACD,CAAA;AAAA;AAEL;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sources":["../../../src/core/events.ts"],"sourcesContent":["import { BusEventWithPayload } from '@grafana/data';\n\nimport { SceneObject, SceneObjectState } from './types';\n\nexport interface SceneObjectStateChangedPayload<TState extends SceneObjectState = SceneObjectState> {\n prevState: TState;\n newState: TState;\n partialUpdate: Partial<TState>;\n changedObject: SceneObject<TState>;\n}\n\nexport class SceneObjectStateChangedEvent extends BusEventWithPayload<SceneObjectStateChangedPayload> {\n public static readonly type = 'scene-object-state-change';\n}\n\ntype UserActionEventType =\n | 'panel-description-shown'\n | 'panel-status-message-clicked'\n | 'panel-cancel-query-clicked'\n | 'panel-menu-shown';\n\ninterface UserActionEventPayload {\n origin: SceneObject;\n interaction: UserActionEventType;\n}\nexport class UserActionEvent extends BusEventWithPayload<UserActionEventPayload> {\n public static readonly type = 'scene-object-user-action';\n}\n"],"names":[],"mappings":";;AAWO,MAAM,qCAAqC,mBAAoD,CAAA;AAEtG;AAFa,4BAAA,CACY,IAAO,GAAA,2BAAA;AAazB,MAAM,wBAAwB,mBAA4C,CAAA;AAEjF;AAFa,eAAA,CACY,IAAO,GAAA,0BAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cloneSceneObject.js","sources":["../../../../src/core/sceneGraph/cloneSceneObject.ts"],"sourcesContent":["import { SceneObjectState } from '../types';\nimport { SceneObjectBase } from '../SceneObjectBase';\nimport { SceneObjectRef } from '../SceneObjectRef';\nimport { cloneDeep } from 'lodash';\n\n/**\n * Will create new SceneItem with shalled cloned state, but all states items of type SceneObject are deep cloned\n */\n\nexport function cloneSceneObject<T extends SceneObjectBase<TState>, TState extends SceneObjectState>(\n sceneObject: SceneObjectBase<TState>,\n withState?: Partial<TState>\n): T {\n const clonedState = cloneSceneObjectState(sceneObject.state, withState);\n return new (sceneObject.constructor as any)(clonedState);\n}\n\nexport function cloneSceneObjectState<TState extends SceneObjectState>(\n sceneState: TState,\n withState?: Partial<TState>\n): TState {\n const clonedState = { ...sceneState };\n\n Object.assign(clonedState, withState);\n\n // Clone any SceneItems in state\n for (const key in clonedState) {\n // Do not clone if was part of withState\n if (withState && withState[key] !== undefined) {\n continue;\n }\n\n const propValue = clonedState[key];\n\n if (propValue instanceof SceneObjectRef) {\n console.warn('Cloning object with SceneObjectRef');\n continue;\n }\n\n if (propValue instanceof SceneObjectBase) {\n clonedState[key] = propValue.clone();\n } else if (Array.isArray(propValue)) {\n const newArray: typeof propValue[0] = [];\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n newArray.push(child.clone());\n } else if (typeof child === 'object') {\n newArray.push(cloneDeep(child));\n } else {\n newArray.push(child);\n }\n }\n clonedState[key] = newArray;\n } else if (typeof propValue === 'object') {\n clonedState[key] = cloneDeep(propValue);\n } else {\n clonedState[key] = propValue;\n }\n }\n\n return clonedState;\n}\n"],"names":[],"mappings":";;;;AASgB,SAAA,gBAAA,CACd,aACA,SACG,EAAA;AACH,EAAA,MAAM,WAAc,GAAA,qBAAA,CAAsB,WAAY,CAAA,KAAA,EAAO,SAAS,CAAA;AACtE,EAAO,OAAA,IAAK,WAAY,CAAA,WAAA,CAAoB,WAAW,CAAA;AACzD;AAEgB,SAAA,qBAAA,CACd,YACA,SACQ,EAAA;AACR,EAAM,MAAA,WAAA,GAAc,EAAE,GAAG,UAAW,EAAA;AAEpC,EAAO,MAAA,CAAA,MAAA,CAAO,aAAa,SAAS,CAAA;AAGpC,EAAA,KAAA,MAAW,OAAO,WAAa,EAAA;AAE7B,IAAA,IAAI,SAAa,IAAA,SAAA,CAAU,GAAG,CAAA,KAAM,MAAW,EAAA;AAC7C,MAAA;AAAA;AAGF,IAAM,MAAA,SAAA,GAAY,YAAY,GAAG,CAAA;AAEjC,IAAA,IAAI,qBAAqB,cAAgB,EAAA;AACvC,MAAA,OAAA,CAAQ,KAAK,oCAAoC,CAAA;AACjD,MAAA;AAAA;AAGF,IAAA,IAAI,qBAAqB,eAAiB,EAAA;AACxC,MAAY,WAAA,CAAA,GAAG,CAAI,GAAA,SAAA,CAAU,KAAM,EAAA;AAAA,KAC1B,MAAA,IAAA,KAAA,CAAM,OAAQ,CAAA,SAAS,CAAG,EAAA;AACnC,MAAA,MAAM,WAAgC,EAAC;AACvC,MAAA,KAAA,MAAW,SAAS,SAAW,EAAA;AAC7B,QAAA,IAAI,iBAAiB,eAAiB,EAAA;AACpC,UAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,KAAA,EAAO,CAAA;AAAA,SAC7B,MAAA,IAAW,OAAO,KAAA,KAAU,QAAU,EAAA;AACpC,UAAS,QAAA,CAAA,IAAA,CAAK,SAAU,CAAA,KAAK,CAAC,CAAA;AAAA,SACzB,MAAA;AACL,UAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AAAA;AACrB;AAEF,MAAA,WAAA,CAAY,GAAG,CAAI,GAAA,QAAA;AAAA,KACrB,MAAA,IAAW,OAAO,SAAA,KAAc,QAAU,EAAA;AACxC,MAAY,WAAA,CAAA,GAAG,CAAI,GAAA,SAAA,CAAU,SAAS,CAAA;AAAA,KACjC,MAAA;AACL,MAAA,WAAA,CAAY,GAAG,CAAI,GAAA,SAAA;AAAA;AACrB;AAGF,EAAO,OAAA,WAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInteractionTracker.js","sources":["../../../../src/core/sceneGraph/getInteractionTracker.ts"],"sourcesContent":["import { SceneInteractionTracker, isInteractionTracker } from '../../behaviors/SceneInteractionTracker';\nimport { SceneObject } from '../types';\n\n/**\n * Returns the closest query controller undefined if none found\n */\nexport function getInteractionTracker(sceneObject: SceneObject): SceneInteractionTracker | undefined {\n let parent: SceneObject | undefined = sceneObject;\n\n while (parent) {\n if (parent.state.$behaviors) {\n for (const behavior of parent.state.$behaviors) {\n if (isInteractionTracker(behavior)) {\n return behavior;\n }\n }\n }\n parent = parent.parent;\n }\n\n return undefined;\n}\n"],"names":[],"mappings":";;AAMO,SAAS,sBAAsB,WAA+D,EAAA;AACnG,EAAA,IAAI,MAAkC,GAAA,WAAA;AAEtC,EAAA,OAAO,MAAQ,EAAA;AACb,IAAI,IAAA,MAAA,CAAO,MAAM,UAAY,EAAA;AAC3B,MAAW,KAAA,MAAA,QAAA,IAAY,MAAO,CAAA,KAAA,CAAM,UAAY,EAAA;AAC9C,QAAI,IAAA,oBAAA,CAAqB,QAAQ,CAAG,EAAA;AAClC,UAAO,OAAA,QAAA;AAAA;AACT;AACF;AAEF,IAAA,MAAA,GAAS,MAAO,CAAA,MAAA;AAAA;AAGlB,EAAO,OAAA,MAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getQueryController.js","sources":["../../../../src/core/sceneGraph/getQueryController.ts"],"sourcesContent":["import { isQueryController } from '../../behaviors/SceneQueryController';\nimport { SceneQueryControllerLike } from '../../behaviors/types';\nimport { SceneObject } from '../types';\n\n/**\n * Returns the closest query controller undefined if none found\n */\nexport function getQueryController(sceneObject: SceneObject): SceneQueryControllerLike | undefined {\n let parent: SceneObject | undefined = sceneObject;\n\n while (parent) {\n if (parent.state.$behaviors) {\n for (const behavior of parent.state.$behaviors) {\n if (isQueryController(behavior)) {\n return behavior;\n }\n }\n }\n parent = parent.parent;\n }\n\n return undefined;\n}\n"],"names":[],"mappings":";;AAOO,SAAS,mBAAmB,WAAgE,EAAA;AACjG,EAAA,IAAI,MAAkC,GAAA,WAAA;AAEtC,EAAA,OAAO,MAAQ,EAAA;AACb,IAAI,IAAA,MAAA,CAAO,MAAM,UAAY,EAAA;AAC3B,MAAW,KAAA,MAAA,QAAA,IAAY,MAAO,CAAA,KAAA,CAAM,UAAY,EAAA;AAC9C,QAAI,IAAA,iBAAA,CAAkB,QAAQ,CAAG,EAAA;AAC/B,UAAO,OAAA,QAAA;AAAA;AACT;AACF;AAEF,IAAA,MAAA,GAAS,MAAO,CAAA,MAAA;AAAA;AAGlB,EAAO,OAAA,MAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTimeRange.js","sources":["../../../../src/core/sceneGraph/getTimeRange.ts"],"sourcesContent":["import { DefaultTimeRange } from '../../variables/interpolation/defaults';\nimport { SceneObject, SceneTimeRangeLike } from '../types';\nimport { getClosest } from './utils';\n\n/**\n * Will walk up the scene object graph to the closest $timeRange scene object\n */\nexport function getTimeRange(sceneObject: SceneObject): SceneTimeRangeLike {\n return getClosest(sceneObject, (s) => s.state.$timeRange) ?? DefaultTimeRange;\n}\n"],"names":[],"mappings":";;;AAOO,SAAS,aAAa,WAA8C,EAAA;AAP3E,EAAA,IAAA,EAAA;AAQE,EAAO,OAAA,CAAA,EAAA,GAAA,UAAA,CAAW,aAAa,CAAC,CAAA,KAAM,EAAE,KAAM,CAAA,UAAU,MAAjD,IAAsD,GAAA,EAAA,GAAA,gBAAA;AAC/D;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/core/sceneGraph/index.ts"],"sourcesContent":["import { lookupVariable } from '../../variables/lookupVariable';\nimport { getQueryController } from './getQueryController';\nimport { getTimeRange } from './getTimeRange';\nimport {\n findByKey,\n findByKeyAndType,\n findObject,\n findAllObjects,\n getData,\n getLayout,\n getVariables,\n getDataLayers,\n hasVariableDependencyInLoadingState,\n interpolate,\n getAncestor,\n findDescendents,\n getScopes,\n} from './sceneGraph';\n\nexport const sceneGraph = {\n getVariables,\n getData,\n getTimeRange,\n getLayout,\n getDataLayers,\n interpolate,\n lookupVariable,\n hasVariableDependencyInLoadingState,\n findByKey,\n findByKeyAndType,\n findObject,\n findAllObjects,\n getAncestor,\n getQueryController,\n findDescendents,\n getScopes,\n};\n"],"names":[],"mappings":";;;;;AAmBO,MAAM,UAAa,GAAA;AAAA,EACxB,YAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,mCAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sceneGraph.js","sources":["../../../../src/core/sceneGraph/sceneGraph.ts"],"sourcesContent":["import { Scope, ScopedVars } from '@grafana/data';\nimport { EmptyDataNode, EmptyVariableSet } from '../../variables/interpolation/defaults';\n\nimport { sceneInterpolator } from '../../variables/interpolation/sceneInterpolator';\nimport { VariableCustomFormatterFn, SceneVariables } from '../../variables/types';\n\nimport { isDataLayer, SceneDataLayerProvider, SceneDataProvider, SceneLayout, SceneObject } from '../types';\nimport { lookupVariable } from '../../variables/lookupVariable';\nimport { getClosest } from './utils';\nimport { VariableInterpolation } from '@grafana/runtime';\nimport { QueryVariable } from '../../variables/variants/query/QueryVariable';\nimport { UrlSyncManagerLike } from '../../services/UrlSyncManager';\nimport { ScopesVariable } from '../../variables/variants/ScopesVariable';\nimport { SCOPES_VARIABLE_NAME } from '../../variables/constants';\n\n/**\n * Get the closest node with variables\n */\nexport function getVariables(sceneObject: SceneObject): SceneVariables {\n return getClosest(sceneObject, (s) => s.state.$variables) ?? EmptyVariableSet;\n}\n\n/**\n * Will walk up the scene object graph to the closest $data scene object\n */\nexport function getData(sceneObject: SceneObject): SceneDataProvider {\n return getClosest(sceneObject, (s) => s.state.$data) ?? EmptyDataNode;\n}\n\nfunction isSceneLayout(s: SceneObject): s is SceneLayout {\n return 'isDraggable' in s;\n}\n\n/**\n * Will walk up the scene object graph to the closest $layout scene object\n */\nexport function getLayout(scene: SceneObject): SceneLayout | null {\n const parent = getClosest(scene, (s) => (isSceneLayout(s) ? s : undefined));\n if (parent) {\n return parent;\n }\n\n return null;\n}\n\n/**\n * Interpolates the given string using the current scene object as context. *\n *\n * Note: the interpolations array will be mutated by adding information about variables that\n * have been interpolated during replacement. Variables that were specified in the target but not found in\n * the list of available variables are also added to the array. See {@link VariableInterpolation} for more details.\n *\n * @param {VariableInterpolation[]} interpolations an optional array that is updated with interpolated variables.\n */\nexport function interpolate(\n sceneObject: SceneObject,\n value: string | undefined | null,\n scopedVars?: ScopedVars,\n format?: string | VariableCustomFormatterFn,\n interpolations?: VariableInterpolation[]\n): string {\n if (value === '' || value == null) {\n return '';\n }\n\n return sceneInterpolator(sceneObject, value, scopedVars, format, interpolations);\n}\n\n/**\n * Checks if the variable is currently loading or waiting to update.\n * It also returns true if a dependency of the variable is loading.\n *\n * For example if C depends on variable B which depends on variable A and A is loading this returns true for variable C and B.\n */\nexport function hasVariableDependencyInLoadingState(sceneObject: SceneObject) {\n if (!sceneObject.variableDependency) {\n return false;\n }\n\n for (const name of sceneObject.variableDependency.getNames()) {\n // This is for backwards compability. In the old architecture query variables could reference itself in a query without breaking.\n if (sceneObject instanceof QueryVariable && sceneObject.state.name === name) {\n console.warn('Query variable is referencing itself');\n continue;\n }\n\n const variable = lookupVariable(name, sceneObject);\n if (!variable) {\n continue;\n }\n\n const set = variable.parent as SceneVariables;\n if (set.isVariableLoadingOrWaitingToUpdate(variable)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction findObjectInternal(\n scene: SceneObject,\n check: (obj: SceneObject) => boolean,\n alreadySearchedChild?: SceneObject,\n shouldSearchUp?: boolean\n): SceneObject | null {\n if (check(scene)) {\n return scene;\n }\n\n let found: SceneObject | null = null;\n\n scene.forEachChild((child) => {\n if (child === alreadySearchedChild) {\n return;\n }\n\n let maybe = findObjectInternal(child, check);\n if (maybe) {\n found = maybe;\n // break (exit early) the foreach loop\n return false;\n }\n\n return;\n });\n\n if (found) {\n return found;\n }\n\n if (shouldSearchUp && scene.parent) {\n return findObjectInternal(scene.parent, check, scene, true);\n }\n\n return null;\n}\n\n/**\n * Returns a scene object from the scene graph with the requested key.\n *\n * Throws error if no key-matching scene object found.\n */\nexport function findByKey(sceneObject: SceneObject, key: string) {\n const found = findObject(sceneObject, (sceneToCheck) => {\n return sceneToCheck.state.key === key;\n });\n if (!found) {\n throw new Error('Unable to find scene with key ' + key);\n }\n return found;\n}\n\n/**\n * Returns a scene object from the scene graph with the requested key and type.\n *\n * Throws error if no key-matching scene object found.\n * Throws error if the given type does not match.\n */\nexport function findByKeyAndType<TargetType extends SceneObject>(\n sceneObject: SceneObject,\n key: string,\n targetType: { new (...args: never[]): TargetType }\n) {\n const found = findObject(sceneObject, (sceneToCheck) => {\n return sceneToCheck.state.key === key;\n });\n if (!found) {\n throw new Error('Unable to find scene with key ' + key);\n }\n if (!(found instanceof targetType)) {\n throw new Error(`Found scene object with key ${key} does not match type ${targetType.name}`);\n }\n return found;\n}\n\n/**\n * This will search the full scene graph, starting with the scene node passed in, then walking up the parent chain. *\n */\nexport function findObject(scene: SceneObject, check: (obj: SceneObject) => boolean): SceneObject | null {\n return findObjectInternal(scene, check, undefined, true);\n}\n\n/**\n * This will search down the full scene graph, looking for objects that match the provided predicate.\n */\nexport function findAllObjects(scene: SceneObject, check: (obj: SceneObject) => boolean): SceneObject[] {\n const found: SceneObject[] = [];\n\n scene.forEachChild((child) => {\n if (check(child)) {\n found.push(child);\n }\n\n found.push(...findAllObjects(child, check));\n });\n\n return found;\n}\n\n/**\n * Will walk up the scene object graph up until the root and collect all SceneDataLayerProvider objects.\n * When localOnly set to true, it will only collect the closest layers.\n */\nexport function getDataLayers(sceneObject: SceneObject, localOnly = false): SceneDataLayerProvider[] {\n let currentLevel: SceneObject | undefined = sceneObject;\n let collected: SceneDataLayerProvider[] = [];\n\n while (currentLevel) {\n const dataProvider = currentLevel.state.$data;\n if (!dataProvider) {\n currentLevel = currentLevel.parent;\n continue;\n }\n\n // Check if data layer exists nested inside another data provider\n if (isDataLayer(dataProvider)) {\n collected = collected.concat(dataProvider);\n } else {\n if (dataProvider.state.$data && isDataLayer(dataProvider.state.$data)) {\n collected = collected.concat(dataProvider.state.$data);\n }\n }\n\n if (localOnly && collected.length > 0) {\n break;\n }\n\n currentLevel = currentLevel.parent;\n }\n\n return collected;\n}\n\ninterface SceneType<T> extends Function {\n new (...args: never[]): T;\n}\n\n/**\n * A utility function to find the closest ancestor of a given type. This function expects\n * to find it and will throw an error if it does not.\n */\nexport function getAncestor<ParentType>(sceneObject: SceneObject, ancestorType: SceneType<ParentType>): ParentType {\n let parent: SceneObject | undefined = sceneObject;\n\n while (parent) {\n if (parent instanceof ancestorType) {\n return parent;\n }\n parent = parent.parent;\n }\n\n if (!parent) {\n throw new Error('Unable to find parent of type ' + ancestorType.name);\n }\n\n return parent as ParentType;\n}\n\n/**\n * This will search down the full scene graph, looking for objects that match the provided descendentType type.\n */\nexport function findDescendents<T extends SceneObject>(scene: SceneObject, descendentType: SceneType<T>) {\n function isDescendentType(scene: SceneObject): scene is T {\n return scene instanceof descendentType;\n }\n\n const targetScenes = findAllObjects(scene, isDescendentType);\n return targetScenes.filter(isDescendentType);\n}\n\n/**\n * Returns the closest SceneObject that has a state property with the\n * name urlSyncManager that is of type UrlSyncManager\n */\nexport function getUrlSyncManager(sceneObject: SceneObject): UrlSyncManagerLike | undefined {\n let parent: SceneObject | undefined = sceneObject;\n\n while (parent) {\n if ('urlSyncManager' in parent.state) {\n return parent.state.urlSyncManager as UrlSyncManagerLike;\n }\n parent = parent.parent;\n }\n\n return undefined;\n}\n\n/**\n * Will return the scopes from the scopes variable if available.\n */\nexport function getScopes(sceneObject: SceneObject): Scope[] | undefined {\n const scopesVariable = lookupVariable(SCOPES_VARIABLE_NAME, sceneObject);\n if (scopesVariable instanceof ScopesVariable) {\n return scopesVariable.state.scopes;\n }\n\n return undefined;\n}\n"],"names":["scene"],"mappings":";;;;;;;;;AAkBO,SAAS,aAAa,WAA0C,EAAA;AAlBvE,EAAA,IAAA,EAAA;AAmBE,EAAO,OAAA,CAAA,EAAA,GAAA,UAAA,CAAW,aAAa,CAAC,CAAA,KAAM,EAAE,KAAM,CAAA,UAAU,MAAjD,IAAsD,GAAA,EAAA,GAAA,gBAAA;AAC/D;AAKO,SAAS,QAAQ,WAA6C,EAAA;AAzBrE,EAAA,IAAA,EAAA;AA0BE,EAAO,OAAA,CAAA,EAAA,GAAA,UAAA,CAAW,aAAa,CAAC,CAAA,KAAM,EAAE,KAAM,CAAA,KAAK,MAA5C,IAAiD,GAAA,EAAA,GAAA,aAAA;AAC1D;AAEA,SAAS,cAAc,CAAkC,EAAA;AACvD,EAAA,OAAO,aAAiB,IAAA,CAAA;AAC1B;AAKO,SAAS,UAAU,KAAwC,EAAA;AAChE,EAAM,MAAA,MAAA,GAAS,WAAW,KAAO,EAAA,CAAC,MAAO,aAAc,CAAA,CAAC,CAAI,GAAA,CAAA,GAAI,MAAU,CAAA;AAC1E,EAAA,IAAI,MAAQ,EAAA;AACV,IAAO,OAAA,MAAA;AAAA;AAGT,EAAO,OAAA,IAAA;AACT;AAWO,SAAS,WACd,CAAA,WAAA,EACA,KACA,EAAA,UAAA,EACA,QACA,cACQ,EAAA;AACR,EAAI,IAAA,KAAA,KAAU,EAAM,IAAA,KAAA,IAAS,IAAM,EAAA;AACjC,IAAO,OAAA,EAAA;AAAA;AAGT,EAAA,OAAO,iBAAkB,CAAA,WAAA,EAAa,KAAO,EAAA,UAAA,EAAY,QAAQ,cAAc,CAAA;AACjF;AAQO,SAAS,oCAAoC,WAA0B,EAAA;AAC5E,EAAI,IAAA,CAAC,YAAY,kBAAoB,EAAA;AACnC,IAAO,OAAA,KAAA;AAAA;AAGT,EAAA,KAAA,MAAW,IAAQ,IAAA,WAAA,CAAY,kBAAmB,CAAA,QAAA,EAAY,EAAA;AAE5D,IAAA,IAAI,WAAuB,YAAA,aAAA,IAAiB,WAAY,CAAA,KAAA,CAAM,SAAS,IAAM,EAAA;AAC3E,MAAA,OAAA,CAAQ,KAAK,sCAAsC,CAAA;AACnD,MAAA;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,cAAe,CAAA,IAAA,EAAM,WAAW,CAAA;AACjD,IAAA,IAAI,CAAC,QAAU,EAAA;AACb,MAAA;AAAA;AAGF,IAAA,MAAM,MAAM,QAAS,CAAA,MAAA;AACrB,IAAI,IAAA,GAAA,CAAI,kCAAmC,CAAA,QAAQ,CAAG,EAAA;AACpD,MAAO,OAAA,IAAA;AAAA;AACT;AAGF,EAAO,OAAA,KAAA;AACT;AAEA,SAAS,kBACP,CAAA,KAAA,EACA,KACA,EAAA,oBAAA,EACA,cACoB,EAAA;AACpB,EAAI,IAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAChB,IAAO,OAAA,KAAA;AAAA;AAGT,EAAA,IAAI,KAA4B,GAAA,IAAA;AAEhC,EAAM,KAAA,CAAA,YAAA,CAAa,CAAC,KAAU,KAAA;AAC5B,IAAA,IAAI,UAAU,oBAAsB,EAAA;AAClC,MAAA;AAAA;AAGF,IAAI,IAAA,KAAA,GAAQ,kBAAmB,CAAA,KAAA,EAAO,KAAK,CAAA;AAC3C,IAAA,IAAI,KAAO,EAAA;AACT,MAAQ,KAAA,GAAA,KAAA;AAER,MAAO,OAAA,KAAA;AAAA;AAGT,IAAA;AAAA,GACD,CAAA;AAED,EAAA,IAAI,KAAO,EAAA;AACT,IAAO,OAAA,KAAA;AAAA;AAGT,EAAI,IAAA,cAAA,IAAkB,MAAM,MAAQ,EAAA;AAClC,IAAA,OAAO,kBAAmB,CAAA,KAAA,CAAM,MAAQ,EAAA,KAAA,EAAO,OAAO,IAAI,CAAA;AAAA;AAG5D,EAAO,OAAA,IAAA;AACT;AAOgB,SAAA,SAAA,CAAU,aAA0B,GAAa,EAAA;AAC/D,EAAA,MAAM,KAAQ,GAAA,UAAA,CAAW,WAAa,EAAA,CAAC,YAAiB,KAAA;AACtD,IAAO,OAAA,YAAA,CAAa,MAAM,GAAQ,KAAA,GAAA;AAAA,GACnC,CAAA;AACD,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAM,MAAA,IAAI,KAAM,CAAA,gCAAA,GAAmC,GAAG,CAAA;AAAA;AAExD,EAAO,OAAA,KAAA;AACT;AAQgB,SAAA,gBAAA,CACd,WACA,EAAA,GAAA,EACA,UACA,EAAA;AACA,EAAA,MAAM,KAAQ,GAAA,UAAA,CAAW,WAAa,EAAA,CAAC,YAAiB,KAAA;AACtD,IAAO,OAAA,YAAA,CAAa,MAAM,GAAQ,KAAA,GAAA;AAAA,GACnC,CAAA;AACD,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAM,MAAA,IAAI,KAAM,CAAA,gCAAA,GAAmC,GAAG,CAAA;AAAA;AAExD,EAAI,IAAA,EAAE,iBAAiB,UAAa,CAAA,EAAA;AAClC,IAAA,MAAM,IAAI,KAAM,CAAA,CAAA,4BAAA,EAA+B,GAAG,CAAwB,qBAAA,EAAA,UAAA,CAAW,IAAI,CAAE,CAAA,CAAA;AAAA;AAE7F,EAAO,OAAA,KAAA;AACT;AAKgB,SAAA,UAAA,CAAW,OAAoB,KAA0D,EAAA;AACvG,EAAA,OAAO,kBAAmB,CAAA,KAAA,EAAO,KAAO,EAAA,MAAA,EAAW,IAAI,CAAA;AACzD;AAKgB,SAAA,cAAA,CAAe,OAAoB,KAAqD,EAAA;AACtG,EAAA,MAAM,QAAuB,EAAC;AAE9B,EAAM,KAAA,CAAA,YAAA,CAAa,CAAC,KAAU,KAAA;AAC5B,IAAI,IAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAChB,MAAA,KAAA,CAAM,KAAK,KAAK,CAAA;AAAA;AAGlB,IAAA,KAAA,CAAM,IAAK,CAAA,GAAG,cAAe,CAAA,KAAA,EAAO,KAAK,CAAC,CAAA;AAAA,GAC3C,CAAA;AAED,EAAO,OAAA,KAAA;AACT;AAMgB,SAAA,aAAA,CAAc,WAA0B,EAAA,SAAA,GAAY,KAAiC,EAAA;AACnG,EAAA,IAAI,YAAwC,GAAA,WAAA;AAC5C,EAAA,IAAI,YAAsC,EAAC;AAE3C,EAAA,OAAO,YAAc,EAAA;AACnB,IAAM,MAAA,YAAA,GAAe,aAAa,KAAM,CAAA,KAAA;AACxC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAA,YAAA,GAAe,YAAa,CAAA,MAAA;AAC5B,MAAA;AAAA;AAIF,IAAI,IAAA,WAAA,CAAY,YAAY,CAAG,EAAA;AAC7B,MAAY,SAAA,GAAA,SAAA,CAAU,OAAO,YAAY,CAAA;AAAA,KACpC,MAAA;AACL,MAAA,IAAI,aAAa,KAAM,CAAA,KAAA,IAAS,YAAY,YAAa,CAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AACrE,QAAA,SAAA,GAAY,SAAU,CAAA,MAAA,CAAO,YAAa,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA;AACvD;AAGF,IAAI,IAAA,SAAA,IAAa,SAAU,CAAA,MAAA,GAAS,CAAG,EAAA;AACrC,MAAA;AAAA;AAGF,IAAA,YAAA,GAAe,YAAa,CAAA,MAAA;AAAA;AAG9B,EAAO,OAAA,SAAA;AACT;AAUgB,SAAA,WAAA,CAAwB,aAA0B,YAAiD,EAAA;AACjH,EAAA,IAAI,MAAkC,GAAA,WAAA;AAEtC,EAAA,OAAO,MAAQ,EAAA;AACb,IAAA,IAAI,kBAAkB,YAAc,EAAA;AAClC,MAAO,OAAA,MAAA;AAAA;AAET,IAAA,MAAA,GAAS,MAAO,CAAA,MAAA;AAAA;AAGlB,EAAA,IAAI,CAAC,MAAQ,EAAA;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,gCAAmC,GAAA,YAAA,CAAa,IAAI,CAAA;AAAA;AAGtE,EAAO,OAAA,MAAA;AACT;AAKgB,SAAA,eAAA,CAAuC,OAAoB,cAA8B,EAAA;AACvG,EAAA,SAAS,iBAAiBA,MAAgC,EAAA;AACxD,IAAA,OAAOA,MAAiB,YAAA,cAAA;AAAA;AAG1B,EAAM,MAAA,YAAA,GAAe,cAAe,CAAA,KAAA,EAAO,gBAAgB,CAAA;AAC3D,EAAO,OAAA,YAAA,CAAa,OAAO,gBAAgB,CAAA;AAC7C;AAsBO,SAAS,UAAU,WAA+C,EAAA;AACvE,EAAM,MAAA,cAAA,GAAiB,cAAe,CAAA,oBAAA,EAAsB,WAAW,CAAA;AACvE,EAAA,IAAI,0BAA0B,cAAgB,EAAA;AAC5C,IAAA,OAAO,eAAe,KAAM,CAAA,MAAA;AAAA;AAG9B,EAAO,OAAA,MAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/core/sceneGraph/utils.ts"],"sourcesContent":["import { SceneObject } from '../types';\n\n/** Walks up the scene graph, returning the first non-undefined result of `extract` */\nexport function getClosest<T>(sceneObject: SceneObject, extract: (s: SceneObject) => T | undefined): T | undefined {\n let curSceneObject: SceneObject | undefined = sceneObject;\n let extracted: T | undefined = undefined;\n\n while (curSceneObject && !extracted) {\n extracted = extract(curSceneObject);\n curSceneObject = curSceneObject.parent;\n }\n\n return extracted;\n}\n"],"names":[],"mappings":"AAGgB,SAAA,UAAA,CAAc,aAA0B,OAA2D,EAAA;AACjH,EAAA,IAAI,cAA0C,GAAA,WAAA;AAC9C,EAAA,IAAI,SAA2B,GAAA,MAAA;AAE/B,EAAO,OAAA,cAAA,IAAkB,CAAC,SAAW,EAAA;AACnC,IAAA,SAAA,GAAY,QAAQ,cAAc,CAAA;AAClC,IAAA,cAAA,GAAiB,cAAe,CAAA,MAAA;AAAA;AAGlC,EAAO,OAAA,SAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sources":["../../../src/core/types.ts"],"sourcesContent":["import React from 'react';\nimport { MonoTypeOperatorFunction, Observable, Unsubscribable } from 'rxjs';\n\nimport {\n BusEvent,\n BusEventHandler,\n BusEventType,\n DataFrame,\n DataQueryRequest,\n DataSourceGetTagKeysOptions,\n DataSourceGetTagValuesOptions,\n DataTransformContext,\n PanelData,\n TimeRange,\n} from '@grafana/data';\nimport { DataQuery, DataTopic, TimeZone } from '@grafana/schema';\n\nimport { SceneVariableDependencyConfigLike, SceneVariables } from '../variables/types';\nimport { SceneObjectRef } from './SceneObjectRef';\nimport { VizPanel } from '../components/VizPanel/VizPanel';\nimport { WeekStart } from '@grafana/ui';\n\nexport interface SceneObjectState {\n key?: string;\n $timeRange?: SceneTimeRangeLike;\n $data?: SceneDataProvider;\n $variables?: SceneVariables;\n /**\n * @experimental\n * Can be used to add extra behaviors to a scene object.\n * These are activated when the their parent scene object is activated.\n */\n $behaviors?: Array<SceneObject | SceneStatelessBehavior>;\n}\n\nexport interface SceneLayoutChildOptions {\n width?: number | string;\n height?: number | string;\n xSizing?: 'fill' | 'content';\n ySizing?: 'fill' | 'content';\n x?: number;\n y?: number;\n minWidth?: number | string;\n minHeight?: number | string;\n isDraggable?: boolean;\n isResizable?: boolean;\n}\n\nexport interface SceneComponentProps<T> {\n model: T;\n}\n\nexport type SceneComponent<TModel> = (props: SceneComponentProps<TModel>) => React.ReactElement | null;\n\nexport interface SceneDataState extends SceneObjectState {\n data?: PanelData;\n}\n\nexport interface SceneObject<TState extends SceneObjectState = SceneObjectState> {\n /** The current state */\n readonly state: TState;\n\n /** True when there is a React component mounted for this Object */\n readonly isActive: boolean;\n\n /** Controls if activation blocks rendering */\n readonly renderBeforeActivation: boolean;\n\n /** SceneObject parent */\n readonly parent?: SceneObject;\n\n /** This abtractions declares what variables the scene object depends on and how to handle when they change value. **/\n readonly variableDependency?: SceneVariableDependencyConfigLike;\n\n /** This abstraction declares URL sync dependencies of a scene object. **/\n readonly urlSync?: SceneObjectUrlSyncHandler;\n\n /** Subscribe to state changes */\n subscribeToState(handler: SceneStateChangedHandler<TState>): Unsubscribable;\n\n /** Subscribe to a scene event */\n subscribeToEvent<T extends BusEvent>(typeFilter: BusEventType<T>, handler: BusEventHandler<T>): Unsubscribable;\n\n /** Publish an event and optionally bubble it up the scene */\n publishEvent(event: BusEvent, bubble?: boolean): void;\n\n /** Utility hook that wraps useObservable. Used by React components to subscribes to state changes */\n useState(): TState;\n\n /** How to modify state */\n setState(state: Partial<TState>): void;\n\n /**\n * Called when the Component is mounted. This will also activate any $data, $variables or $timeRange scene object on this level.\n * Don't override this in your custom SceneObjects, instead use addActivationHandler from the constructor.\n **/\n activate(): CancelActivationHandler;\n\n /** Get the scene root */\n getRoot(): SceneObject;\n\n /** Returns a deep clone this object and all its children */\n clone(state?: Partial<TState>): this;\n\n /** A React component to use for rendering the object */\n Component(props: SceneComponentProps<SceneObject<TState>>): React.ReactElement | null;\n\n /** Force a re-render, should only be needed when variable values change */\n forceRender(): void;\n\n /** Returns a SceneObjectRef that will resolve to this object */\n getRef(): SceneObjectRef<this>;\n\n /**\n * Allows external code to register code that is executed on activate and deactivate. This allow you\n * to wire up scene objects that need to respond to state changes in other objects from the outside.\n **/\n addActivationHandler(handler: SceneActivationHandler): void;\n\n /**\n * Loop through state and call callback for each direct child scene object.\n * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.\n * Return false to exit loop early.\n */\n forEachChild(callback: (child: SceneObject) => void): void | false;\n\n /**\n * Useful for edge cases when you want to move a scene object to another parent.\n */\n clearParent(): void;\n}\n\nexport type SceneActivationHandler = () => SceneDeactivationHandler | void;\nexport type SceneDeactivationHandler = () => void;\n\n/**\n * Function returned by activate() that when called will deactivate the object if it's the last activator\n **/\nexport type CancelActivationHandler = () => void;\n\nexport interface SceneLayoutState extends SceneObjectState {\n children: SceneObject[];\n}\n\nexport interface SceneLayout<T extends SceneLayoutState = SceneLayoutState> extends SceneObject<T> {\n isDraggable(): boolean;\n getDragClass?(): string;\n getDragClassCancel?(): string;\n getDragHooks?(): { onDragStart?: (e: React.PointerEvent, panel: VizPanel) => void };\n}\n\nexport interface SceneTimeRangeState extends SceneObjectState {\n from: string;\n to: string;\n fiscalYearStartMonth?: number;\n value: TimeRange;\n timeZone?: TimeZone;\n /** weekStart will change the global date locale so having multiple different weekStart values is not supported */\n weekStart?: WeekStart;\n /**\n * @internal\n * To enable feature parity with the old time range picker, not sure if it will be kept.\n * Override the now time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values.\n * */\n UNSAFE_nowDelay?: string;\n\n refreshOnActivate?: {\n /**\n * When set, the time range will invalidate relative ranges after the specified interval has elapsed\n */\n afterMs?: number;\n /**\n * When set, the time range will invalidate relative ranges after the specified percentage of the current interval has elapsed.\n * If both invalidate values are set, the smaller value will be used for the given interval.\n */\n percent?: number;\n };\n}\n\nexport interface SceneTimeRangeLike extends SceneObject<SceneTimeRangeState> {\n onTimeZoneChange(timeZone: TimeZone): void;\n onTimeRangeChange(timeRange: TimeRange): void;\n onRefresh(): void;\n getTimeZone(): TimeZone;\n}\n\nexport function isSceneObject(obj: any): obj is SceneObject {\n return obj.useState !== undefined;\n}\n\nexport interface SceneObjectWithUrlSync extends SceneObject {\n getUrlState(): SceneObjectUrlValues;\n updateFromUrl(values: SceneObjectUrlValues): void;\n}\n\nexport interface SceneObjectUrlSyncHandler {\n getKeys(): string[];\n getUrlState(): SceneObjectUrlValues;\n updateFromUrl(values: SceneObjectUrlValues): void;\n shouldCreateHistoryStep?(values: SceneObjectUrlValues): boolean;\n performBrowserHistoryAction?(callback: () => void): void;\n}\n\nexport interface DataRequestEnricher {\n // Return partial data query request that will be merged with the original request provided by SceneQueryRunner\n enrichDataRequest(source: SceneObject): Partial<DataQueryRequest> | null;\n}\n\nexport interface FiltersRequestEnricher {\n // Return partial getTagKeys or getTagValues query request that will be merged with the original request provided by ad hoc or group by variable\n enrichFiltersRequest(\n source: SceneObject\n ): Partial<DataSourceGetTagKeysOptions | DataSourceGetTagValuesOptions> | null;\n}\n\nexport function isDataRequestEnricher(obj: any): obj is DataRequestEnricher {\n return 'enrichDataRequest' in obj;\n}\n\nexport function isFiltersRequestEnricher(obj: any): obj is FiltersRequestEnricher {\n return 'enrichFiltersRequest' in obj;\n}\n\nexport type SceneObjectUrlValue = string | string[] | undefined | null;\nexport type SceneObjectUrlValues = Record<string, SceneObjectUrlValue>;\n\nexport type CustomTransformOperator = (context: DataTransformContext) => MonoTypeOperatorFunction<DataFrame[]>;\nexport type CustomTransformerDefinition =\n | { operator: CustomTransformOperator; topic: DataTopic }\n | CustomTransformOperator;\nexport type SceneStateChangedHandler<TState> = (newState: TState, prevState: TState) => void;\n\nexport type DeepPartial<T> = {\n [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];\n};\n\nexport interface SceneDataProviderResult {\n data: PanelData;\n origin: SceneDataProvider;\n}\n\nexport interface SceneDataProvider<T extends SceneObjectState = SceneDataState> extends SceneObject<T> {\n setContainerWidth?: (width: number) => void;\n isDataReadyToDisplay?: () => boolean;\n cancelQuery?: () => void;\n getResultsStream(): Observable<SceneDataProviderResult>;\n /**\n * Can be used to disable query execution for scene elements that are out of view\n */\n isInViewChanged?(isInView: boolean): void;\n\n /**\n * Allow activating or deactivating the isInView behavior\n * This is useful for external consumers of a data provider (i.e., the Dashboard datasource)\n */\n bypassIsInViewChanged?(bypassIsInView: boolean): void;\n}\n\nexport interface SceneDataLayerProviderState extends SceneDataState {\n name: string;\n description?: string;\n isEnabled?: boolean;\n isHidden?: boolean;\n placement?: 'inControlsMenu';\n}\n\nexport interface SceneDataLayerProvider extends SceneDataProvider<SceneDataLayerProviderState> {\n isDataLayer: true;\n}\n\nexport function isDataLayer(obj: SceneObject): obj is SceneDataLayerProvider {\n return 'isDataLayer' in obj;\n}\n\nexport interface DataLayerFilter {\n panelId: number;\n}\n\nexport interface SceneStatelessBehavior<T extends SceneObject = any> {\n (sceneObject: T): CancelActivationHandler | void;\n}\n\nexport type ControlsLayout = 'horizontal' | 'vertical';\n\nexport interface UseStateHookOptions {\n /**\n * For some edge cases other scene objects want to subscribe to scene object state for objects\n * that are not active, or whose main React Component can be un-mounted. Set this to true\n * to keep the scene object active even if the React component is unmounted.\n *\n * Normally you would not need this but this can be useful in some edge cases.\n *\n * @experimental\n */\n shouldActivateOrKeepAlive?: boolean;\n}\n\nexport interface SceneDataQuery extends DataQuery {\n [key: string]: any;\n\n // Opt this query out of time window comparison\n timeRangeCompare?: boolean;\n}\n\nexport interface SceneUrlSyncOptions {\n /**\n * This will update the url to contain all scene url state\n * when the scene is initialized. Important for browser history \"back\" actions.\n */\n updateUrlOnInit?: boolean;\n /**\n * This is only supported by some objects if they implement\n * shouldCreateHistoryStep where they can control what changes\n * url changes should add a new browser history entry.\n */\n createBrowserHistorySteps?: boolean;\n /**\n * This will automatically prefix url search parameters when syncing.\n * Can be used to prevent collisions when multiple Scene apps are embedded in the page.\n */\n namespace?: string;\n /**\n * When `namespace` is provided, this prevents some url search parameters to be automatically prefixed.\n * Defaults to the timerange parameters ([\"from\", \"to\", \"timezone\"])\n */\n excludeFromNamespace?: string[];\n}\n"],"names":[],"mappings":"AA0LO,SAAS,cAAc,GAA8B,EAAA;AAC1D,EAAA,OAAO,IAAI,QAAa,KAAA,MAAA;AAC1B;AA2BO,SAAS,sBAAsB,GAAsC,EAAA;AAC1E,EAAA,OAAO,mBAAuB,IAAA,GAAA;AAChC;AAEO,SAAS,yBAAyB,GAAyC,EAAA;AAChF,EAAA,OAAO,sBAA0B,IAAA,GAAA;AACnC;AAiDO,SAAS,YAAY,GAAiD,EAAA;AAC3E,EAAA,OAAO,aAAiB,IAAA,GAAA;AAC1B;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { getUrlWithAppState } from './components/SceneApp/utils';\nimport { registerRuntimePanelPlugin } from './components/VizPanel/registerRuntimePanelPlugin';\nimport { cloneSceneObjectState } from './core/sceneGraph/cloneSceneObject';\nimport { registerRuntimeDataSource } from './querying/RuntimeDataSource';\nimport { getUrlState, syncStateFromSearchParams } from './services/utils';\nimport { buildPathIdFor } from './utils/pathId';\nimport { isRepeatCloneOrChildOf } from './utils/utils';\n\nimport { registerVariableMacro } from './variables/macros';\nimport {\n escapeLabelValueInExactSelector,\n escapeLabelValueInRegexSelector,\n escapeURLDelimiters,\n renderPrometheusLabelFilters,\n} from './variables/utils';\nimport {\n isAdHocVariable,\n isQueryVariable,\n isTextBoxVariable,\n isCustomVariable,\n isDataSourceVariable,\n isConstantVariable,\n isIntervalVariable,\n isGroupByVariable,\n isSwitchVariable,\n} from './variables/variants/guards';\n\nexport * from './core/types';\nexport * from './core/events';\nexport { sceneGraph } from './core/sceneGraph';\nexport * as behaviors from './behaviors';\nexport * as performanceUtils from './performance';\nexport { writePerformanceLog } from './utils/writePerformanceLog';\nexport * as dataLayers from './querying/layers';\n\nexport { SceneObjectBase, useSceneObjectState } from './core/SceneObjectBase';\nexport { SceneDataNode } from './core/SceneDataNode';\nexport { SceneTimeRange } from './core/SceneTimeRange';\nexport { SceneTimeZoneOverride } from './core/SceneTimeZoneOverride';\n\nexport { SceneQueryRunner, type QueryRunnerState } from './querying/SceneQueryRunner';\nexport { DataProviderProxy } from './querying/DataProviderProxy';\nexport {\n type ExtraQueryDescriptor,\n type ExtraQueryProvider,\n type ExtraQueryDataProcessor,\n} from './querying/ExtraQueryProvider';\nexport { SceneDataLayerSet, SceneDataLayerSetBase } from './querying/SceneDataLayerSet';\nexport { SceneDataLayerBase } from './querying/layers/SceneDataLayerBase';\nexport { SceneDataLayerControls } from './querying/layers/SceneDataLayerControls';\nexport { SceneDataTransformer, type SceneDataTransformerState } from './querying/SceneDataTransformer';\nexport { registerQueryWithController } from './querying/registerQueryWithController';\nexport { registerRuntimeDataSource, RuntimeDataSource } from './querying/RuntimeDataSource';\nexport type {\n SceneQueryControllerLike,\n SceneQueryControllerEntryType,\n SceneQueryControllerEntry,\n} from './behaviors/types';\n\nexport * from './variables/types';\nexport { VariableDependencyConfig } from './variables/VariableDependencyConfig';\nexport { formatRegistry, type FormatVariable } from './variables/interpolation/formatRegistry';\nexport { VariableValueSelectors } from './variables/components/VariableValueSelectors';\nexport { VariableValueControl } from './variables/components/VariableValueControl';\nexport { SceneVariableSet } from './variables/sets/SceneVariableSet';\nexport { ConstantVariable } from './variables/variants/ConstantVariable';\nexport { CustomVariable } from './variables/variants/CustomVariable';\nexport { SwitchVariable } from './variables/variants/SwitchVariable';\nexport { DataSourceVariable } from './variables/variants/DataSourceVariable';\nexport { QueryVariable } from './variables/variants/query/QueryVariable';\nexport { TestVariable } from './variables/variants/TestVariable';\nexport { TextBoxVariable } from './variables/variants/TextBoxVariable';\nexport { ScopesVariable } from './variables/variants/ScopesVariable';\nexport {\n MultiValueVariable,\n type MultiValueVariableState,\n type VariableGetOptionsArgs,\n} from './variables/variants/MultiValueVariable';\nexport { LocalValueVariable } from './variables/variants/LocalValueVariable';\nexport { IntervalVariable } from './variables/variants/IntervalVariable';\nexport { AdHocFiltersVariable } from './variables/adhoc/AdHocFiltersVariable';\nexport type { AdHocFilterWithLabels } from './variables/adhoc/AdHocFiltersVariable';\nexport type {\n AdHocFiltersController,\n AdHocFiltersControllerState,\n} from './variables/adhoc/controller/AdHocFiltersController';\nexport { AdHocFiltersVariableController } from './variables/adhoc/controller/AdHocFiltersVariableController';\nexport { AdHocFiltersComboboxRenderer } from './variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer';\nexport { GroupByVariable } from './variables/groupby/GroupByVariable';\nexport { type MacroVariableConstructor } from './variables/macros/types';\nexport { escapeUrlPipeDelimiters } from './variables/utils';\n\nexport { type UrlSyncManagerLike, UrlSyncManager, NewSceneObjectAddedEvent } from './services/UrlSyncManager';\nexport { useUrlSync } from './services/useUrlSync';\nexport { UrlSyncContextProvider } from './services/UrlSyncContextProvider';\nexport { SceneObjectUrlSyncConfig } from './services/SceneObjectUrlSyncConfig';\n\nexport { EmbeddedScene, type EmbeddedSceneState } from './components/EmbeddedScene';\nexport { VizPanel, type VizPanelState } from './components/VizPanel/VizPanel';\nexport { VizPanelMenu } from './components/VizPanel/VizPanelMenu';\nexport { VizPanelExploreButton } from './components/VizPanel/VizPanelExploreButton';\nexport { NestedScene } from './components/NestedScene';\nexport { SceneCanvasText } from './components/SceneCanvasText';\nexport { SceneToolbarButton, SceneToolbarInput } from './components/SceneToolbarButton';\nexport { SceneTimePicker } from './components/SceneTimePicker';\nexport { SceneRefreshPicker, type SceneRefreshPickerState } from './components/SceneRefreshPicker';\nexport { SceneTimeRangeTransformerBase } from './core/SceneTimeRangeTransformerBase';\nexport { SceneTimeRangeCompare } from './components/SceneTimeRangeCompare';\nexport { SceneByFrameRepeater } from './components/SceneByFrameRepeater';\nexport { SceneByVariableRepeater } from './components/SceneByVariableRepeater';\nexport { SceneControlsSpacer } from './components/SceneControlsSpacer';\nexport {\n SceneFlexLayout,\n SceneFlexItem,\n type SceneFlexItemState,\n type SceneFlexItemLike,\n} from './components/layout/SceneFlexLayout';\nexport { SceneCSSGridLayout, SceneCSSGridItem } from './components/layout/CSSGrid/SceneCSSGridLayout';\nexport { SceneGridLayout } from './components/layout/grid/SceneGridLayout';\nexport { SceneGridLayoutDragStartEvent } from './components/layout/grid/types';\nexport { SceneGridItem } from './components/layout/grid/SceneGridItem';\nexport { SceneGridRow } from './components/layout/grid/SceneGridRow';\nexport { type SceneGridItemStateLike, type SceneGridItemLike } from './components/layout/grid/types';\nexport { SplitLayout } from './components/layout/split/SplitLayout';\nexport { LazyLoader } from './components/layout/LazyLoader';\nexport {\n type SceneAppPageLike,\n type SceneRouteMatch,\n type SceneAppPageState,\n type SceneAppDrilldownView,\n type SceneAppRoute,\n} from './components/SceneApp/types';\nexport { SceneApp, useSceneApp } from './components/SceneApp/SceneApp';\nexport { SceneAppPage } from './components/SceneApp/SceneAppPage';\nexport { SceneReactObject } from './components/SceneReactObject';\nexport { SceneObjectRef } from './core/SceneObjectRef';\nexport {\n PanelBuilders,\n PanelOptionsBuilders,\n FieldConfigBuilders,\n FieldConfigOverridesBuilder,\n} from './core/PanelBuilders';\nexport { FieldConfigBuilder } from './core/PanelBuilders/FieldConfigBuilder';\nexport { VizPanelBuilder } from './core/PanelBuilders/VizPanelBuilder';\nexport { SceneDebugger } from './components/SceneDebugger/SceneDebugger';\nexport { VariableValueSelectWrapper } from './variables/components/VariableValueSelectors';\nexport { ControlsLabel } from './utils/ControlsLabel';\nexport { MultiOrSingleValueSelect } from './variables/components/VariableValueSelect';\nexport { VizConfigBuilder } from './core/PanelBuilders/VizConfigBuilder';\nexport { VizConfigBuilders } from './core/PanelBuilders/VizConfigBuilders';\nexport { type VizConfig } from './core/PanelBuilders/types';\n\nexport const sceneUtils = {\n getUrlWithAppState,\n registerRuntimePanelPlugin,\n registerRuntimeDataSource,\n registerVariableMacro,\n cloneSceneObjectState,\n syncStateFromSearchParams,\n getUrlState,\n renderPrometheusLabelFilters,\n escapeLabelValueInRegexSelector,\n escapeLabelValueInExactSelector,\n escapeURLDelimiters,\n\n // Variable guards\n isAdHocVariable,\n isConstantVariable,\n isCustomVariable,\n isDataSourceVariable,\n isIntervalVariable,\n isQueryVariable,\n isTextBoxVariable,\n isGroupByVariable,\n isSwitchVariable,\n isRepeatCloneOrChildOf,\n buildPathIdFor,\n};\n\nexport { SafeSerializableSceneObject } from './utils/SafeSerializableSceneObject';\nexport { getExploreURL } from './utils/explore';\nexport { loadResources } from './utils/loadResources';\nexport { PATH_ID_SEPARATOR } from './utils/pathId';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwJO,MAAM,UAAa,GAAA;AAAA,EACxB,kBAAA;AAAA,EACA,0BAAA;AAAA,EACA,yBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,yBAAA;AAAA,EACA,WAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,+BAAA;AAAA,EACA,mBAAA;AAAA;AAAA,EAGA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"grafana-scenes.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LongFrameDetector.js","sources":["../../../src/performance/LongFrameDetector.ts"],"sourcesContent":["import { writePerformanceLog } from '../utils/writePerformanceLog';\n\nconst LONG_FRAME_THRESHOLD = 50; // Threshold for both LoAF and manual tracking (ms)\n\nexport interface LongFrameEvent {\n duration: number; // Frame duration in milliseconds\n timestamp: number; // When the frame occurred\n method: 'manual' | 'loaf'; // Which detection method was used\n}\n\nexport type LongFrameCallback = (event: LongFrameEvent) => void;\n\n/**\n * LongFrameDetector is a module for detecting long animation frames.\n *\n * It supports two detection methods with automatic fallback:\n * 1. LoAF API (default when available): Uses Long Animation Frame API with 50ms threshold\n * 2. Manual tracking (fallback): Uses requestAnimationFrame with configurable threshold (default: 50ms)\n *\n * The detector automatically uses LoAF when available for better attribution and performance,\n * falling back to manual tracking for broader browser support.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Long_animation_frame_timing\n */\nexport class LongFrameDetector {\n #isTracking = false;\n #callback: LongFrameCallback | null = null;\n\n // Manual tracking state\n #frameTrackingId: number | null = null;\n #lastFrameTime = 0;\n\n // LoAF tracking state\n #loafObserver: PerformanceObserver | null = null;\n\n /**\n * Check if LoAF API is available in the browser\n */\n private isLoAFAvailable(): boolean {\n return (\n typeof PerformanceObserver !== 'undefined' &&\n PerformanceObserver.supportedEntryTypes &&\n PerformanceObserver.supportedEntryTypes.includes('long-animation-frame')\n );\n }\n\n /**\n * Start detecting long frames and call the provided callback when they occur\n */\n public start(callback: LongFrameCallback): void {\n if (this.#isTracking) {\n writePerformanceLog('LFD', 'Already tracking frames, stopping previous session');\n this.stop();\n }\n\n this.#callback = callback;\n this.#isTracking = true;\n\n if (this.isLoAFAvailable()) {\n this.startLoAFTracking();\n } else {\n this.startManualFrameTracking();\n }\n\n writePerformanceLog(\n 'LFD',\n `Started tracking with ${\n this.isLoAFAvailable() ? 'LoAF API' : 'manual'\n } method, threshold: ${LONG_FRAME_THRESHOLD}ms`\n );\n }\n\n /**\n * Stop detecting long frames\n */\n public stop(): void {\n if (!this.#isTracking) {\n return;\n }\n\n this.#isTracking = false;\n this.#callback = null;\n\n // Stop both tracking methods to ensure cleanup\n this.stopLoAFTracking();\n this.stopManualFrameTracking();\n }\n\n /**\n * Check if currently tracking frames\n */\n public isTracking(): boolean {\n return this.#isTracking;\n }\n\n /**\n * Start tracking using the Long Animation Frame API\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PerformanceLongAnimationFrameTiming\n */\n private startLoAFTracking(): void {\n if (!this.isLoAFAvailable()) {\n writePerformanceLog('LFD', 'LoAF API not available, falling back to manual tracking');\n this.startManualFrameTracking();\n return;\n }\n\n try {\n this.#loafObserver = new PerformanceObserver((list) => {\n for (const entry of list.getEntries()) {\n // No duration check needed - LoAF API already filters for long frames (>50ms)\n const event: LongFrameEvent = {\n duration: entry.duration,\n timestamp: entry.startTime,\n method: 'loaf',\n };\n\n if (this.#callback) {\n this.#callback(event);\n }\n\n // Add performance marks and measurements for debugging in dev tools\n if (typeof performance !== 'undefined' && performance.mark && performance.measure) {\n const frameId = `long-frame-${entry.startTime.toFixed(0)}`;\n const startMarkName = `${frameId}-start`;\n const endMarkName = `${frameId}-end`;\n const measureName = `Long Frame (LoAF): ${entry.duration.toFixed(1)}ms`;\n\n try {\n // Create start and end marks\n performance.mark(startMarkName, { startTime: entry.startTime });\n performance.mark(endMarkName, { startTime: entry.startTime + entry.duration });\n\n // Create measurement span\n performance.measure(measureName, startMarkName, endMarkName);\n } catch {\n // Fallback for browsers that don't support startTime option\n performance.mark(measureName);\n }\n }\n\n writePerformanceLog('LFD', `Long frame detected (LoAF): ${entry.duration}ms at ${entry.startTime}ms`);\n }\n });\n\n this.#loafObserver.observe({ type: 'long-animation-frame', buffered: false });\n } catch (error) {\n writePerformanceLog('LFD', 'Failed to start LoAF tracking, falling back to manual:', error);\n this.startManualFrameTracking();\n }\n }\n\n /**\n * Stop LoAF tracking\n */\n private stopLoAFTracking(): void {\n if (this.#loafObserver) {\n this.#loafObserver.disconnect();\n this.#loafObserver = null;\n writePerformanceLog('LFD', 'Stopped LoAF tracking');\n }\n }\n\n /**\n * Start manual frame tracking using requestAnimationFrame\n */\n private startManualFrameTracking(): void {\n this.#lastFrameTime = performance.now();\n this.#frameTrackingId = requestAnimationFrame(() => this.measureFrames());\n }\n\n /**\n * Stop manual frame tracking\n */\n private stopManualFrameTracking(): void {\n if (this.#frameTrackingId) {\n cancelAnimationFrame(this.#frameTrackingId);\n this.#frameTrackingId = null;\n writePerformanceLog('LFD', 'Stopped manual frame tracking');\n }\n }\n\n /**\n * Measure frame durations using requestAnimationFrame\n */\n private measureFrames = (): void => {\n if (!this.#isTracking) {\n return;\n }\n\n const currentFrameTime = performance.now();\n const frameLength = currentFrameTime - this.#lastFrameTime;\n\n // Check if frame exceeds threshold\n if (frameLength > LONG_FRAME_THRESHOLD) {\n const event: LongFrameEvent = {\n duration: frameLength,\n timestamp: currentFrameTime,\n method: 'manual',\n };\n\n if (this.#callback) {\n this.#callback(event);\n }\n\n // Add performance marks and measurements for debugging in dev tools\n if (typeof performance !== 'undefined' && performance.mark && performance.measure) {\n const frameId = `long-frame-manual-${currentFrameTime.toFixed(0)}`;\n const startMarkName = `${frameId}-start`;\n const endMarkName = `${frameId}-end`;\n const measureName = `Long Frame (Manual): ${frameLength.toFixed(1)}ms`;\n\n try {\n // Create start and end marks\n performance.mark(startMarkName, { startTime: currentFrameTime - frameLength });\n performance.mark(endMarkName, { startTime: currentFrameTime });\n\n // Create measurement span\n performance.measure(measureName, startMarkName, endMarkName);\n } catch {\n // Fallback for browsers that don't support startTime option\n performance.mark(measureName);\n }\n }\n\n writePerformanceLog(\n 'LFD',\n `Long frame detected (manual): ${frameLength}ms (threshold: ${LONG_FRAME_THRESHOLD}ms)`\n );\n }\n\n this.#lastFrameTime = currentFrameTime;\n\n // Continue tracking\n if (this.#isTracking) {\n this.#frameTrackingId = requestAnimationFrame(this.measureFrames);\n }\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PanelProfilingManager.js","sources":["../../../src/performance/PanelProfilingManager.ts"],"sourcesContent":["import { Unsubscribable } from 'rxjs';\nimport { VizPanel } from '../components/VizPanel/VizPanel';\nimport { VizPanelRenderProfiler } from './VizPanelRenderProfiler';\nimport { SceneObject } from '../core/types';\nimport { sceneGraph } from '../core/sceneGraph';\n\nexport interface PanelProfilingConfig {\n watchStateKey?: string; // State property to watch for structural changes (e.g., 'body', 'children')\n}\n\n/**\n * Manages VizPanelRenderProfiler instances for all panels in a scene object.\n * Extracted from DashboardPanelProfilingBehavior to allow composition with SceneRenderProfiler.\n */\nexport class PanelProfilingManager {\n private _sceneObject?: SceneObject;\n private _subscriptions: Unsubscribable[] = [];\n\n public constructor(private _config: PanelProfilingConfig) {}\n\n /**\n * Attach panel profiling to a scene object\n */\n public attachToScene(sceneObject: SceneObject) {\n this._sceneObject = sceneObject;\n\n // Subscribe to scene state changes to add profilers to new panels\n const subscription = sceneObject.subscribeToState((newState: any, prevState: any) => {\n // If watchStateKey is specified, only react to changes in that specific property\n if (this._config.watchStateKey) {\n if (newState[this._config.watchStateKey] !== prevState[this._config.watchStateKey]) {\n this._attachProfilersToPanels();\n }\n } else {\n // Fallback: react to any state change\n this._attachProfilersToPanels();\n }\n });\n\n this._subscriptions.push(subscription);\n\n // Attach profilers to existing panels\n this._attachProfilersToPanels();\n }\n\n /**\n * Attach VizPanelRenderProfiler to a specific panel if it doesn't already have one\n * @param panel - The VizPanel to attach profiling to\n */\n public attachProfilerToPanel(panel: VizPanel): void {\n // Check if profiler already exists\n const existingProfiler = panel.state.$behaviors?.find((b) => b instanceof VizPanelRenderProfiler);\n\n if (existingProfiler) {\n return; // Already has a profiler\n }\n\n // Add profiler behavior\n const profiler = new VizPanelRenderProfiler();\n\n panel.setState({\n $behaviors: [...(panel.state.$behaviors || []), profiler],\n });\n }\n\n /**\n * Attach VizPanelRenderProfiler to all VizPanels that don't already have one\n */\n private _attachProfilersToPanels() {\n if (!this._sceneObject) {\n return;\n }\n\n // Use scene graph to find all VizPanels in the scene\n const panels = sceneGraph.findAllObjects(this._sceneObject, (obj) => obj instanceof VizPanel) as VizPanel[];\n\n panels.forEach((panel) => {\n this.attachProfilerToPanel(panel);\n });\n }\n\n /**\n * Clean up subscriptions and references\n */\n public cleanup() {\n this._subscriptions.forEach((sub) => sub.unsubscribe());\n this._subscriptions = [];\n this._sceneObject = undefined;\n }\n}\n"],"names":[],"mappings":";;;;AAcO,MAAM,qBAAsB,CAAA;AAAA,EAI1B,YAAoB,OAA+B,EAAA;AAA/B,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAF3B,IAAA,IAAA,CAAQ,iBAAmC,EAAC;AAAA;AAEe;AAAA;AAAA;AAAA,EAKpD,cAAc,WAA0B,EAAA;AAC7C,IAAA,IAAA,CAAK,YAAe,GAAA,WAAA;AAGpB,IAAA,MAAM,YAAe,GAAA,WAAA,CAAY,gBAAiB,CAAA,CAAC,UAAe,SAAmB,KAAA;AAEnF,MAAI,IAAA,IAAA,CAAK,QAAQ,aAAe,EAAA;AAC9B,QAAI,IAAA,QAAA,CAAS,KAAK,OAAQ,CAAA,aAAa,MAAM,SAAU,CAAA,IAAA,CAAK,OAAQ,CAAA,aAAa,CAAG,EAAA;AAClF,UAAA,IAAA,CAAK,wBAAyB,EAAA;AAAA;AAChC,OACK,MAAA;AAEL,QAAA,IAAA,CAAK,wBAAyB,EAAA;AAAA;AAChC,KACD,CAAA;AAED,IAAK,IAAA,CAAA,cAAA,CAAe,KAAK,YAAY,CAAA;AAGrC,IAAA,IAAA,CAAK,wBAAyB,EAAA;AAAA;AAChC;AAAA;AAAA;AAAA;AAAA,EAMO,sBAAsB,KAAuB,EAAA;AAjDtD,IAAA,IAAA,EAAA;AAmDI,IAAM,MAAA,gBAAA,GAAA,CAAmB,WAAM,KAAM,CAAA,UAAA,KAAZ,mBAAwB,IAAK,CAAA,CAAC,MAAM,CAAa,YAAA,sBAAA,CAAA;AAE1E,IAAA,IAAI,gBAAkB,EAAA;AACpB,MAAA;AAAA;AAIF,IAAM,MAAA,QAAA,GAAW,IAAI,sBAAuB,EAAA;AAE5C,IAAA,KAAA,CAAM,QAAS,CAAA;AAAA,MACb,UAAA,EAAY,CAAC,GAAI,KAAA,CAAM,MAAM,UAAc,IAAA,IAAK,QAAQ;AAAA,KACzD,CAAA;AAAA;AACH;AAAA;AAAA;AAAA,EAKQ,wBAA2B,GAAA;AACjC,IAAI,IAAA,CAAC,KAAK,YAAc,EAAA;AACtB,MAAA;AAAA;AAIF,IAAM,MAAA,MAAA,GAAS,WAAW,cAAe,CAAA,IAAA,CAAK,cAAc,CAAC,GAAA,KAAQ,eAAe,QAAQ,CAAA;AAE5F,IAAO,MAAA,CAAA,OAAA,CAAQ,CAAC,KAAU,KAAA;AACxB,MAAA,IAAA,CAAK,sBAAsB,KAAK,CAAA;AAAA,KACjC,CAAA;AAAA;AACH;AAAA;AAAA;AAAA,EAKO,OAAU,GAAA;AACf,IAAA,IAAA,CAAK,eAAe,OAAQ,CAAA,CAAC,GAAQ,KAAA,GAAA,CAAI,aAAa,CAAA;AACtD,IAAA,IAAA,CAAK,iBAAiB,EAAC;AACvB,IAAA,IAAA,CAAK,YAAe,GAAA,MAAA;AAAA;AAExB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScenePerformanceTracker.js","sources":["../../../src/performance/ScenePerformanceTracker.ts"],"sourcesContent":["/**\n * Centralized performance tracking system using observer pattern.\n * External systems (like Grafana) implement ScenePerformanceObserver to receive performance events.\n */\n\n/** Generate unique operation IDs for correlating start/complete events */\nexport function generateOperationId(prefix = 'op'): string {\n // Use crypto.randomUUID() for true uniqueness without global state\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n const uuid = crypto.randomUUID();\n return `${prefix}-${uuid}`;\n }\n\n // Fallback for environments without crypto.randomUUID support\n const randomPart = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n return `${prefix}-${randomPart}`;\n}\n\n/** Base interface for all performance events */\nexport interface BasePerformanceEvent {\n operationId: string; // Unique identifier for correlating start/complete events\n timestamp: number;\n duration?: number;\n error?: string;\n}\n\nexport interface DashboardInteractionStartData extends BasePerformanceEvent {\n interactionType: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface DashboardInteractionMilestoneData extends BasePerformanceEvent {\n interactionType: string;\n milestone: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface DashboardInteractionCompleteData extends BasePerformanceEvent {\n interactionType: string;\n networkDuration?: number;\n longFramesCount: number;\n longFramesTotalTime: number;\n metadata?: Record<string, unknown>;\n}\n\n/** Metadata interface for transform operations */\nexport interface TransformMetadata {\n transformationId: string;\n transformationCount: number;\n seriesTransformationCount: number;\n annotationTransformationCount: number;\n success?: boolean;\n error?: string;\n}\n\n/** Metadata interface for query operations */\nexport interface QueryMetadata {\n queryId: string;\n queryType: string;\n}\n\n/** Metadata interface for render operations */\nexport interface RenderMetadata {\n // Empty for now - can be extended later if needed\n}\n\n/** Metadata interface for plugin load operations */\nexport interface PluginLoadMetadata {\n pluginId: string;\n fromCache?: boolean;\n pluginLoadTime?: number;\n}\n\n/** Metadata interface for field config operations */\nexport interface FieldConfigMetadata {}\n\n/** Base interface for panel performance events */\ninterface BasePanelPerformanceData extends BasePerformanceEvent {\n panelId: string;\n panelKey: string;\n pluginId: string;\n pluginVersion?: string;\n panelTitle?: string;\n}\n\n/** Transform operation performance data */\nexport interface PanelTransformPerformanceData extends BasePanelPerformanceData {\n operation: 'transform';\n metadata: TransformMetadata;\n}\n\n/** Query operation performance data */\nexport interface PanelQueryPerformanceData extends BasePanelPerformanceData {\n operation: 'query';\n metadata: QueryMetadata;\n}\n\n/** Render operation performance data */\nexport interface PanelRenderPerformanceData extends BasePanelPerformanceData {\n operation: 'render';\n metadata: RenderMetadata;\n}\n\n/** Plugin load operation performance data */\nexport interface PanelPluginLoadPerformanceData extends BasePanelPerformanceData {\n operation: 'plugin-load';\n metadata: PluginLoadMetadata;\n}\n\n/** Field config operation performance data */\nexport interface PanelFieldConfigPerformanceData extends BasePanelPerformanceData {\n operation: 'fieldConfig';\n metadata: FieldConfigMetadata;\n}\n\n/** Discriminated union of all panel performance data types */\nexport type PanelPerformanceData =\n | PanelTransformPerformanceData\n | PanelQueryPerformanceData\n | PanelRenderPerformanceData\n | PanelPluginLoadPerformanceData\n | PanelFieldConfigPerformanceData;\n\n/** Non-panel query performance data for dashboard queries (annotations, variables, etc.) */\nexport interface QueryPerformanceData extends BasePerformanceEvent {\n queryId: string;\n queryType: string;\n origin: string; // e.g., \"AnnotationsDataLayer\", \"QueryVariable\", \"VizPanel/loadPlugin\"\n}\n\n/**\n * Observer interface for performance monitoring\n * External systems implement this to receive performance notifications\n */\nexport interface ScenePerformanceObserver {\n // Dashboard-level events\n onDashboardInteractionStart?(data: DashboardInteractionStartData): void;\n onDashboardInteractionMilestone?(data: DashboardInteractionMilestoneData): void;\n onDashboardInteractionComplete?(data: DashboardInteractionCompleteData): void;\n\n // Panel-level events\n onPanelOperationStart?(data: PanelPerformanceData): void;\n onPanelOperationComplete?(data: PanelPerformanceData): void;\n\n // Query-level events\n onQueryStart?(data: QueryPerformanceData): void;\n onQueryComplete?(data: QueryPerformanceData): void;\n}\n\n/**\n * Centralized performance tracker\n * Manages observers and provides methods for scene objects to report performance events\n */\nexport class ScenePerformanceTracker {\n private static instance: ScenePerformanceTracker | null = null;\n private observers: ScenePerformanceObserver[] = [];\n\n public static getInstance(): ScenePerformanceTracker {\n if (!ScenePerformanceTracker.instance) {\n ScenePerformanceTracker.instance = new ScenePerformanceTracker();\n }\n return ScenePerformanceTracker.instance;\n }\n\n /**\n * Register a performance observer\n */\n public addObserver(observer: ScenePerformanceObserver): () => void {\n this.observers.push(observer);\n\n // Return unsubscribe function\n return () => {\n const index = this.observers.indexOf(observer);\n if (index > -1) {\n this.observers.splice(index, 1);\n }\n };\n }\n\n /**\n * Remove all observers (for testing)\n */\n public clearObservers(): void {\n this.observers = [];\n }\n\n /**\n * Get current observer count (for debugging)\n */\n public getObserverCount(): number {\n return this.observers.length;\n }\n\n private notifyObservers<T>(methodName: keyof ScenePerformanceObserver, data: T, errorContext: string): void {\n this.observers.forEach((observer) => {\n try {\n const method = observer[methodName] as ((data: T) => void) | undefined;\n method?.(data);\n } catch (error) {\n console.warn(`Error in ${errorContext} observer:`, error);\n }\n });\n }\n\n public notifyDashboardInteractionStart(data: DashboardInteractionStartData): void {\n this.notifyObservers('onDashboardInteractionStart', data, 'dashboard interaction start');\n }\n\n public notifyDashboardInteractionMilestone(data: DashboardInteractionMilestoneData): void {\n this.notifyObservers('onDashboardInteractionMilestone', data, 'dashboard interaction milestone');\n }\n\n public notifyDashboardInteractionComplete(data: DashboardInteractionCompleteData): void {\n this.notifyObservers('onDashboardInteractionComplete', data, 'dashboard interaction complete');\n }\n\n public notifyPanelOperationStart(data: PanelPerformanceData): void {\n this.notifyObservers('onPanelOperationStart', data, 'panel operation start');\n }\n\n public notifyPanelOperationComplete(data: PanelPerformanceData): void {\n this.notifyObservers('onPanelOperationComplete', data, 'panel operation complete');\n }\n\n public notifyQueryStart(data: QueryPerformanceData): void {\n this.notifyObservers('onQueryStart', data, 'query start');\n }\n\n public notifyQueryComplete(data: QueryPerformanceData): void {\n this.notifyObservers('onQueryComplete', data, 'query complete');\n }\n}\n\n/**\n * Get the global performance tracker instance\n */\nexport function getScenePerformanceTracker(): ScenePerformanceTracker {\n return ScenePerformanceTracker.getInstance();\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneRenderProfiler.js","sources":["../../../src/performance/SceneRenderProfiler.ts"],"sourcesContent":["import { writePerformanceLog } from '../utils/writePerformanceLog';\nimport { SceneQueryControllerLike, LongFrameEvent, SceneComponentInteractionEvent } from '../behaviors/types';\nimport {\n getScenePerformanceTracker,\n generateOperationId,\n DashboardInteractionCompleteData,\n} from './ScenePerformanceTracker';\nimport { PanelProfilingManager, PanelProfilingConfig } from './PanelProfilingManager';\nimport { SceneObject } from '../core/types';\nimport { VizPanel } from '../components/VizPanel/VizPanel';\nimport { LongFrameDetector } from './LongFrameDetector';\n\nconst POST_STORM_WINDOW = 2000; // Time after last query to observe slow frames\nconst DEFAULT_LONG_FRAME_THRESHOLD = 30; // Threshold for tail recording slow frames\n\n/**\n * SceneRenderProfiler tracks dashboard interaction performance including:\n * - Total interaction duration\n * - Network time\n * - Long frame detection (50ms threshold) during interaction using LoAF API (default) or manual tracking (fallback)\n * - Slow frame detection (30ms threshold) for tail recording after interaction\n *\n * Long frame detection during interaction:\n * - 50ms threshold aligned with LoAF API default\n * - LoAF API preferred (Chrome 123+) with manual fallback\n * - Provides script attribution when using LoAF API\n *\n * Slow frame detection for tail recording:\n * - 30ms threshold for post-interaction monitoring\n * - Manual frame timing measurement\n * - Captures rendering delays after user interaction completes\n */\n\nexport class SceneRenderProfiler {\n #profileInProgress: {\n origin: string; // Profile trigger (e.g., 'time_range_change')\n crumbs: string[];\n } | null = null;\n\n #interactionInProgress: {\n interaction: string;\n startTs: number;\n } | null = null;\n\n #profileStartTs: number | null = null;\n #trailAnimationFrameId: number | null = null;\n\n // Generic metadata for observer notifications\n private metadata: Record<string, unknown> = {};\n\n // Operation ID for correlating dashboard interaction events\n #currentOperationId?: string;\n\n // Trailing frame measurements\n #recordedTrailingSpans: number[] = [];\n\n // Long frame tracking\n #longFrameDetector: LongFrameDetector;\n #longFramesCount = 0;\n #longFramesTotalTime = 0;\n\n #visibilityChangeHandler: (() => void) | null = null;\n #onInteractionComplete: ((event: SceneComponentInteractionEvent) => void) | null = null;\n\n // Panel profiling composition\n private _panelProfilingManager?: PanelProfilingManager;\n\n // Query controller for monitoring query completion\n private queryController?: SceneQueryControllerLike;\n\n public constructor(panelProfilingConfig?: PanelProfilingConfig) {\n this.#longFrameDetector = new LongFrameDetector();\n this.setupVisibilityChangeHandler();\n this.#interactionInProgress = null;\n\n // Compose with panel profiling manager if provided\n if (panelProfilingConfig) {\n this._panelProfilingManager = new PanelProfilingManager(panelProfilingConfig);\n }\n }\n\n /** Set generic metadata for observer notifications */\n public setMetadata(metadata: Record<string, unknown>) {\n this.metadata = { ...metadata };\n }\n\n public setQueryController(queryController: SceneQueryControllerLike) {\n this.queryController = queryController;\n }\n\n /** Attach panel profiling to a scene object */\n public attachPanelProfiling(sceneObject: SceneObject) {\n this._panelProfilingManager?.attachToScene(sceneObject);\n }\n\n /** Attach profiler to a specific panel */\n public attachProfilerToPanel(panel: VizPanel): void {\n writePerformanceLog('SRP', 'Attaching profiler to panel', panel.state.key);\n this._panelProfilingManager?.attachProfilerToPanel(panel);\n }\n\n public setInteractionCompleteHandler(handler?: (event: SceneComponentInteractionEvent) => void) {\n this.#onInteractionComplete = handler ?? null;\n }\n\n private setupVisibilityChangeHandler() {\n if (this.#visibilityChangeHandler) {\n return;\n }\n\n // Cancel profiling when tab becomes inactive\n this.#visibilityChangeHandler = () => {\n if (document.hidden && this.#profileInProgress) {\n writePerformanceLog('SRP', 'Tab became inactive, cancelling profile');\n this.cancelProfile();\n }\n };\n\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', this.#visibilityChangeHandler);\n }\n }\n\n public cleanup() {\n if (this.#visibilityChangeHandler && typeof document !== 'undefined') {\n document.removeEventListener('visibilitychange', this.#visibilityChangeHandler);\n this.#visibilityChangeHandler = null;\n }\n\n // Cleanup long frame tracking\n this.#longFrameDetector.stop();\n\n // Cancel any ongoing profiling\n this.cancelProfile();\n\n // Cleanup composed panel profiling manager\n this._panelProfilingManager?.cleanup();\n }\n\n public startProfile(name: string) {\n // Skip profiling if tab is inactive\n if (document.hidden) {\n writePerformanceLog('SRP', 'Tab is inactive, skipping profile', name);\n return;\n }\n\n if (this.#profileInProgress) {\n if (this.#trailAnimationFrameId) {\n this.cancelProfile();\n this._startNewProfile(name, true);\n } else {\n this.addCrumb(name);\n }\n } else {\n this._startNewProfile(name);\n }\n }\n\n public startInteraction(interaction: string) {\n // Cancel any existing interaction recording\n if (this.#interactionInProgress) {\n writePerformanceLog('SRP', 'Cancelled interaction:', this.#interactionInProgress);\n this.#interactionInProgress = null;\n }\n\n this.#interactionInProgress = {\n interaction,\n startTs: performance.now(),\n };\n\n writePerformanceLog('SRP', 'Started interaction:', interaction);\n }\n\n public stopInteraction() {\n if (!this.#interactionInProgress) {\n return;\n }\n\n const endTs = performance.now();\n const interactionDuration = endTs - this.#interactionInProgress.startTs;\n\n // Capture network requests that occurred during the interaction\n const networkDuration = captureNetwork(this.#interactionInProgress.startTs, endTs);\n\n writePerformanceLog(\n 'SRP',\n `[INTERACTION] Complete: ${interactionDuration.toFixed(1)}ms total | ${networkDuration.toFixed(1)}ms network`\n );\n\n if (this.#onInteractionComplete && this.#profileInProgress) {\n this.#onInteractionComplete({\n origin: this.#interactionInProgress.interaction,\n duration: interactionDuration,\n networkDuration,\n startTs: this.#interactionInProgress.startTs,\n endTs,\n });\n }\n\n // Create performance marks for browser dev tools\n performance.mark(`${this.#interactionInProgress.interaction}_start`, {\n startTime: this.#interactionInProgress.startTs,\n });\n performance.mark(`${this.#interactionInProgress.interaction}_end`, {\n startTime: endTs,\n });\n performance.measure(\n `Interaction_${this.#interactionInProgress.interaction}`,\n `${this.#interactionInProgress.interaction}_start`,\n `${this.#interactionInProgress.interaction}_end`\n );\n\n this.#interactionInProgress = null;\n }\n\n public getCurrentInteraction(): string | null {\n return this.#interactionInProgress?.interaction ?? null;\n }\n\n /**\n * Start new performance profile\n * @param name - Profile trigger (e.g., 'time_range_change')\n * @param force - True if canceling existing profile, false if starting clean\n */\n private _startNewProfile(name: string, force = false) {\n const profileType = force ? 'forced' : 'clean';\n writePerformanceLog('SRP', `[PROFILER] ${name} started (${profileType})`);\n this.#profileInProgress = { origin: name, crumbs: [] };\n this.#profileStartTs = performance.now();\n this.#longFramesCount = 0;\n this.#longFramesTotalTime = 0;\n\n this.#currentOperationId = generateOperationId('dashboard');\n getScenePerformanceTracker().notifyDashboardInteractionStart({\n operationId: this.#currentOperationId,\n interactionType: name,\n timestamp: this.#profileStartTs,\n metadata: this.metadata,\n });\n\n // Start long frame detection with callback\n this.#longFrameDetector.start((event: LongFrameEvent) => {\n // Only record long frames during active profiling\n if (!this.#profileInProgress || !this.#profileStartTs) {\n return;\n }\n\n // Only record frames that occur after profile started\n if (event.timestamp < this.#profileStartTs) {\n return;\n }\n\n this.#longFramesCount++;\n this.#longFramesTotalTime += event.duration;\n });\n }\n\n private recordProfileTail(measurementStartTime: number, profileStartTs: number) {\n this.#trailAnimationFrameId = requestAnimationFrame(() =>\n this.measureTrailingFrames(measurementStartTime, measurementStartTime, profileStartTs)\n );\n }\n\n private measureTrailingFrames = (measurementStartTs: number, lastFrameTime: number, profileStartTs: number) => {\n const currentFrameTime = performance.now();\n const frameLength = currentFrameTime - lastFrameTime;\n\n this.#recordedTrailingSpans.push(frameLength);\n\n if (currentFrameTime - measurementStartTs! < POST_STORM_WINDOW) {\n if (this.#profileInProgress) {\n this.#trailAnimationFrameId = requestAnimationFrame(() =>\n this.measureTrailingFrames(measurementStartTs, currentFrameTime, profileStartTs)\n );\n }\n } else {\n const slowFrames = processRecordedSpans(this.#recordedTrailingSpans);\n const slowFramesTime = slowFrames.reduce((acc, val) => acc + val, 0);\n\n writePerformanceLog(\n 'SRP',\n 'Profile tail recorded, slow frames duration:',\n slowFramesTime,\n slowFrames,\n this.#profileInProgress\n );\n\n this.#recordedTrailingSpans = [];\n\n const profileDuration = measurementStartTs - profileStartTs;\n\n const slowFrameSummary =\n slowFrames.length > 0\n ? `${slowFramesTime.toFixed(1)}ms slow frames[tail recording] (${slowFrames.length}) ⚠️`\n : `${slowFramesTime.toFixed(1)}ms slow frames[tail recording] (${slowFrames.length})`;\n\n const longFrameSummary =\n this.#longFramesCount > 0\n ? `${this.#longFramesTotalTime.toFixed(1)}ms long frames[LoAF] (${this.#longFramesCount}) ⚠️`\n : `${this.#longFramesTotalTime.toFixed(1)}ms long frames[LoAF] (${this.#longFramesCount})`;\n\n writePerformanceLog(\n 'SRP',\n `[PROFILER] Complete: ${(profileDuration + slowFramesTime).toFixed(\n 1\n )}ms total | ${slowFrameSummary} | ${longFrameSummary}`\n );\n this.#longFrameDetector.stop();\n\n this.#trailAnimationFrameId = null;\n\n const profileEndTs = profileStartTs + profileDuration + slowFramesTime;\n\n // Guard against race condition where profile might be cancelled during execution\n if (!this.#profileInProgress) {\n return;\n }\n\n const networkDuration = captureNetwork(profileStartTs, profileEndTs);\n\n if (this.#profileInProgress) {\n // Notify performance observers of dashboard interaction completion\n const dashboardData: DashboardInteractionCompleteData = {\n operationId: this.#currentOperationId || generateOperationId('dashboard-fallback'),\n interactionType: this.#profileInProgress.origin,\n timestamp: profileEndTs,\n duration: profileDuration + slowFramesTime,\n networkDuration: networkDuration,\n longFramesCount: this.#longFramesCount,\n longFramesTotalTime: this.#longFramesTotalTime,\n metadata: this.metadata,\n };\n\n const tracker = getScenePerformanceTracker();\n tracker.notifyDashboardInteractionComplete(dashboardData);\n\n this.#profileInProgress = null;\n this.#trailAnimationFrameId = null;\n }\n }\n };\n\n public tryCompletingProfile() {\n writePerformanceLog('SRP', 'Trying to complete profile', this.#profileInProgress);\n if (this.queryController?.runningQueriesCount() === 0 && this.#profileInProgress) {\n writePerformanceLog('SRP', 'All queries completed, stopping profile');\n this.recordProfileTail(performance.now(), this.#profileStartTs!);\n }\n }\n\n public isTailRecording() {\n return Boolean(this.#trailAnimationFrameId);\n }\n\n public cancelTailRecording() {\n if (this.#trailAnimationFrameId) {\n cancelAnimationFrame(this.#trailAnimationFrameId);\n this.#trailAnimationFrameId = null;\n writePerformanceLog('SRP', 'Cancelled recording frames, new profile started');\n }\n }\n\n public cancelProfile() {\n if (this.#profileInProgress) {\n writePerformanceLog('SRP', 'Cancelling profile', this.#profileInProgress);\n\n this.#profileInProgress = null;\n // Cancel any pending animation frame to prevent accessing null profileInProgress\n if (this.#trailAnimationFrameId) {\n cancelAnimationFrame(this.#trailAnimationFrameId);\n this.#trailAnimationFrameId = null;\n }\n // Stop long frame tracking\n this.#longFrameDetector.stop();\n writePerformanceLog('SRP', 'Stopped long frame detection - profile cancelled');\n // Reset recorded spans to ensure complete cleanup\n this.#recordedTrailingSpans = [];\n this.#longFramesCount = 0;\n this.#longFramesTotalTime = 0;\n }\n }\n\n public addCrumb(crumb: string) {\n if (this.#profileInProgress) {\n // Notify performance observers of milestone\n getScenePerformanceTracker().notifyDashboardInteractionMilestone({\n operationId: generateOperationId('dashboard-milestone'),\n interactionType: this.#profileInProgress.origin,\n timestamp: performance.now(),\n milestone: crumb,\n metadata: this.metadata,\n });\n this.#profileInProgress.crumbs.push(crumb);\n }\n }\n}\n\nexport function processRecordedSpans(spans: number[]) {\n // identify last span in spans that's bigger than default threshold\n for (let i = spans.length - 1; i >= 0; i--) {\n if (spans[i] > DEFAULT_LONG_FRAME_THRESHOLD) {\n return spans.slice(0, i + 1);\n }\n }\n return [spans[0]];\n}\n\nexport function captureNetwork(startTs: number, endTs: number) {\n const entries = performance.getEntriesByType('resource') as PerformanceResourceTiming[];\n performance.clearResourceTimings();\n // Only include network entries that both started AND ended within the time window\n const networkEntries = entries.filter(\n (entry) =>\n entry.startTime >= startTs &&\n entry.startTime <= endTs &&\n entry.responseEnd >= startTs &&\n entry.responseEnd <= endTs\n );\n for (const entry of networkEntries) {\n performance.measure('Network entry ' + entry.name, {\n start: entry.startTime,\n end: entry.responseEnd,\n });\n }\n\n return calculateNetworkTime(networkEntries);\n}\n\n// Will calculate total time spent on Network\nexport function calculateNetworkTime(requests: PerformanceResourceTiming[]): number {\n if (requests.length === 0) {\n return 0;\n }\n\n // Step 1: Sort the requests by startTs\n requests.sort((a, b) => a.startTime - b.startTime);\n\n // Step 2: Initialize variables\n let totalNetworkTime = 0;\n let currentStart = requests[0].startTime;\n let currentEnd = requests[0].responseEnd;\n\n // Step 3: Iterate through the sorted list and merge overlapping intervals\n for (let i = 1; i < requests.length; i++) {\n if (requests[i].startTime <= currentEnd) {\n // Overlapping intervals, merge them\n currentEnd = Math.max(currentEnd, requests[i].responseEnd);\n } else {\n // Non-overlapping interval, add the duration to total time\n totalNetworkTime += currentEnd - currentStart;\n\n // Update current interval\n currentStart = requests[i].startTime;\n currentEnd = requests[i].responseEnd;\n }\n }\n\n // Step 4: Add the last interval\n totalNetworkTime += currentEnd - currentStart;\n\n return totalNetworkTime;\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"VizPanelRenderProfiler.js","sources":["../../../src/performance/VizPanelRenderProfiler.ts"],"sourcesContent":["import { SceneObjectBase } from '../core/SceneObjectBase';\nimport { SceneObjectState } from '../core/types';\nimport { VizPanel } from '../components/VizPanel/VizPanel';\nimport { writeSceneLog } from '../utils/writeSceneLog';\nimport { sceneGraph } from '../core/sceneGraph';\nimport { SceneQueryControllerEntry } from '../behaviors/types';\nimport { QueryProfilerLike } from '../querying/registerQueryWithController';\nimport {\n QueryCompletionCallback,\n PluginLoadCompletionCallback,\n FieldConfigCompletionCallback,\n RenderCompletionCallback,\n DataTransformCompletionCallback,\n} from './types';\nimport { getScenePerformanceTracker, generateOperationId } from './ScenePerformanceTracker';\n\nexport interface VizPanelRenderProfilerState extends SceneObjectState {}\n\n/**\n * Tracks performance metrics for individual VizPanel instances using observer pattern.\n *\n * Performance events are sent to ScenePerformanceTracker observers, which are consumed\n * by Grafana's ScenePerformanceLogger and DashboardAnalyticsAggregator.\n */\n\nexport class VizPanelRenderProfiler extends SceneObjectBase<VizPanelRenderProfilerState> implements QueryProfilerLike {\n private _panelKey?: string;\n private _panelId?: string;\n private _pluginId?: string;\n private _pluginVersion?: string;\n private _isTracking = false;\n private _loadPluginStartTime?: number;\n private _applyFieldConfigStartTime?: number;\n private _activeQueries = new Map<string, { entry: SceneQueryControllerEntry; startTime: number }>();\n\n public constructor(state: Partial<VizPanelRenderProfilerState> = {}) {\n super({\n ...state,\n });\n\n this.addActivationHandler(() => {\n return this._onActivate();\n });\n }\n\n private _onActivate() {\n let panel: VizPanel | undefined;\n\n try {\n panel = sceneGraph.getAncestor(this, VizPanel);\n } catch (error) {\n writeSceneLog('VizPanelRenderProfiler', 'Failed to find VizPanel ancestor', error);\n return;\n }\n\n if (!panel) {\n writeSceneLog('VizPanelRenderProfiler', 'Not attached to a VizPanel');\n return;\n }\n\n if (!panel.state.key) {\n writeSceneLog('VizPanelRenderProfiler', 'Panel has no key, skipping tracking');\n return;\n }\n\n this._panelKey = panel.state.key;\n this._panelId = String(panel.getLegacyPanelId());\n this._pluginId = panel.state.pluginId;\n const plugin = panel.getPlugin();\n this._pluginVersion = plugin?.meta?.info?.version;\n\n this._subs.add(\n panel.subscribeToState((newState, prevState) => {\n this._handlePanelStateChange(panel, newState, prevState);\n })\n );\n\n return () => {\n this._cleanup();\n };\n }\n\n private _handlePanelStateChange(panel: VizPanel, newState: any, prevState: any) {\n if (newState.pluginId !== prevState.pluginId) {\n this._onPluginChange(panel, newState.pluginId);\n }\n }\n\n /**\n * Track query execution with operation ID correlation\n */\n public onQueryStarted(\n timestamp: number,\n entry: SceneQueryControllerEntry,\n queryId: string\n ): QueryCompletionCallback | null {\n if (!this._panelKey) {\n return null;\n }\n\n this._activeQueries.set(queryId, { entry, startTime: timestamp });\n\n const operationId = generateOperationId('query');\n\n // ✅ Use panel operation tracking for panel queries\n getScenePerformanceTracker().notifyPanelOperationStart({\n operationId,\n panelId: this._panelId!,\n panelKey: this._panelKey,\n pluginId: this._pluginId!,\n pluginVersion: this._pluginVersion,\n operation: 'query',\n timestamp,\n metadata: {\n queryId: queryId,\n queryType: entry.type,\n },\n });\n\n // Return end callback with captured operationId and query context\n return (endTimestamp: number, error?: any) => {\n if (!this._panelKey) {\n return;\n }\n\n const queryInfo = this._activeQueries.get(queryId);\n if (!queryInfo) {\n return;\n }\n\n const duration = endTimestamp - queryInfo.startTime;\n this._activeQueries.delete(queryId);\n\n getScenePerformanceTracker().notifyPanelOperationComplete({\n operationId,\n panelId: this._panelId!,\n panelKey: this._panelKey,\n pluginId: this._pluginId!,\n pluginVersion: this._pluginVersion,\n operation: 'query',\n timestamp: endTimestamp,\n duration: duration,\n metadata: {\n queryId: queryId,\n queryType: entry.type,\n },\n error: error ? error?.message || String(error) || 'Unknown error' : undefined,\n });\n };\n }\n\n /**\n * Track plugin loading with operation ID correlation\n */\n public onPluginLoadStart(pluginId: string): PluginLoadCompletionCallback | null {\n // Initialize early since plugin loading happens before _onActivate\n if (!this._panelKey) {\n let panel: VizPanel | undefined;\n\n try {\n panel = sceneGraph.getAncestor(this, VizPanel);\n } catch (error) {\n return null;\n }\n\n if (panel && !this._panelKey && panel.state.key) {\n this._panelKey = panel.state.key;\n this._panelId = String(panel.getLegacyPanelId());\n this._pluginId = pluginId;\n }\n }\n\n if (!this._panelKey) {\n return null;\n }\n\n if (!this._isTracking) {\n this._startTracking();\n }\n\n this._loadPluginStartTime = performance.now();\n\n const operationId = generateOperationId('pluginLoad');\n getScenePerformanceTracker().notifyPanelOperationStart({\n operationId,\n panelId: this._panelId!,\n panelKey: this._panelKey,\n pluginId: this._pluginId!,\n operation: 'plugin-load',\n timestamp: this._loadPluginStartTime,\n metadata: {\n pluginId,\n },\n });\n\n // Return end callback with captured operationId and panel context\n return (plugin: any, fromCache = false) => {\n if (!this._panelKey || !this._loadPluginStartTime) {\n return;\n }\n\n const duration = performance.now() - this._loadPluginStartTime;\n\n getScenePerformanceTracker().notifyPanelOperationComplete({\n operationId,\n panelId: this._panelId!,\n panelKey: this._panelKey,\n pluginId: this._pluginId!,\n operation: 'plugin-load',\n timestamp: performance.now(),\n duration,\n metadata: {\n pluginId: this._pluginId!,\n fromCache,\n pluginLoadTime: duration,\n },\n });\n\n this._loadPluginStartTime = undefined;\n };\n }\n\n /**\n * Track field config processing with operation ID correlation\n */\n public onFieldConfigStart(timestamp: number): FieldConfigCompletionCallback | null {\n if (!this._panelKey) {\n return null;\n }\n\n this._applyFieldConfigStartTime = timestamp;\n\n const operationId = generateOperationId('fieldConfig');\n getScenePerformanceTracker().notifyPanelOperationStart({\n operationId,\n panelId: this._panelId!,\n panelKey: this._panelKey,\n pluginId: this._pluginId!,\n operation: 'fieldConfig',\n timestamp: this._applyFieldConfigStartTime,\n metadata: {},\n });\n\n // Return end callback with captured operationId and panel context\n return (endTimestamp: number, dataPointsCount?: number, seriesCount?: number) => {\n if (!this._panelKey || !this._applyFieldConfigStartTime) {\n return;\n }\n\n const duration = endTimestamp - this._applyFieldConfigStartTime;\n\n getScenePerformanceTracker().notifyPanelOperationComplete({\n operationId,\n panelId: this._panelId!,\n panelKey: this._panelKey,\n pluginId: this._pluginId!,\n operation: 'fieldConfig',\n timestamp: endTimestamp,\n duration,\n metadata: {},\n });\n\n this._applyFieldConfigStartTime = undefined;\n };\n }\n\n /**\n * Get panel info for logging - truncates long titles for readability\n */\n private _getPanelInfo(): string {\n let panel: VizPanel | undefined;\n\n try {\n panel = sceneGraph.getAncestor(this, VizPanel);\n } catch (error) {\n // If we can't find the panel, use fallback info\n }\n\n let panelTitle = panel?.state.title || this._panelKey || 'No-key panel';\n\n if (panelTitle.length > 30) {\n panelTitle = panelTitle.substring(0, 27) + '...';\n }\n\n return `VizPanelRenderProfiler [${panelTitle}]`;\n }\n\n /**\n * Track simple render timing with operation ID correlation\n */\n public onSimpleRenderStart(timestamp: number): RenderCompletionCallback | undefined {\n if (!this._panelKey) {\n return undefined;\n }\n\n const operationId = generateOperationId('render');\n getScenePerformanceTracker().notifyPanelOperationStart({\n operationId,\n panelId: this._panelId || 'unknown',\n panelKey: this._panelKey,\n pluginId: this._pluginId || 'unknown',\n pluginVersion: this._pluginVersion,\n operation: 'render',\n timestamp,\n metadata: {},\n });\n\n // Return end callback with captured operationId and panel context\n return (endTimestamp: number, duration: number) => {\n if (!this._panelKey) {\n return;\n }\n\n getScenePerformanceTracker().notifyPanelOperationComplete({\n operationId,\n panelId: this._panelId || 'unknown',\n panelKey: this._panelKey,\n pluginId: this._pluginId || 'unknown',\n pluginVersion: this._pluginVersion,\n operation: 'render',\n duration,\n timestamp: endTimestamp,\n metadata: {},\n });\n };\n }\n\n /** Handle plugin changes */\n private _onPluginChange(panel: VizPanel, newPluginId: string) {\n this._pluginId = newPluginId;\n const plugin = panel.getPlugin();\n this._pluginVersion = plugin?.meta?.info?.version;\n\n writeSceneLog(this._getPanelInfo(), `Plugin changed to ${newPluginId}`);\n }\n\n /** Start tracking this panel */\n private _startTracking() {\n if (!this._panelKey || !this._pluginId || this._isTracking) {\n return;\n }\n\n this._isTracking = true;\n }\n\n /** Cleanup when behavior is deactivated */\n private _cleanup() {\n this._activeQueries.clear();\n this._isTracking = false;\n writeSceneLog(this._getPanelInfo(), 'Cleaned up');\n }\n\n /**\n * Track data transformation with operation ID correlation\n */\n public onDataTransformStart(\n timestamp: number,\n transformationId: string,\n metrics: {\n transformationCount: number;\n seriesTransformationCount: number;\n annotationTransformationCount: number;\n }\n ): DataTransformCompletionCallback | null {\n if (!this._panelKey) {\n return null;\n }\n\n const operationId = generateOperationId('transform');\n getScenePerformanceTracker().notifyPanelOperationStart({\n operationId,\n panelId: this._panelId!,\n panelKey: this._panelKey,\n pluginId: this._pluginId!,\n operation: 'transform',\n timestamp,\n metadata: {\n transformationId,\n transformationCount: metrics.transformationCount,\n seriesTransformationCount: metrics.seriesTransformationCount,\n annotationTransformationCount: metrics.annotationTransformationCount,\n },\n });\n\n // Return end callback with captured operationId and panel context\n return (\n endTimestamp: number,\n duration: number,\n success: boolean,\n result?: {\n outputSeriesCount?: number;\n outputAnnotationsCount?: number;\n error?: string;\n }\n ) => {\n if (!this._panelKey) {\n return;\n }\n\n getScenePerformanceTracker().notifyPanelOperationComplete({\n operationId,\n panelId: this._panelId!,\n panelKey: this._panelKey,\n pluginId: this._pluginId!,\n operation: 'transform',\n timestamp: endTimestamp,\n duration,\n metadata: {\n transformationId,\n transformationCount: metrics.transformationCount,\n seriesTransformationCount: metrics.seriesTransformationCount,\n annotationTransformationCount: metrics.annotationTransformationCount,\n success,\n error: result?.error || (!success ? 'Transform operation failed' : undefined),\n },\n });\n };\n }\n}\n"],"names":[],"mappings":";;;;;;AAyBO,MAAM,+BAA+B,eAA0E,CAAA;AAAA,EAU7G,WAAA,CAAY,KAA8C,GAAA,EAAI,EAAA;AACnE,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG;AAAA,KACJ,CAAA;AARH,IAAA,IAAA,CAAQ,WAAc,GAAA,KAAA;AAGtB,IAAQ,IAAA,CAAA,cAAA,uBAAqB,GAAqE,EAAA;AAOhG,IAAA,IAAA,CAAK,qBAAqB,MAAM;AAC9B,MAAA,OAAO,KAAK,WAAY,EAAA;AAAA,KACzB,CAAA;AAAA;AACH,EAEQ,WAAc,GAAA;AA7CxB,IAAA,IAAA,EAAA,EAAA,EAAA;AA8CI,IAAI,IAAA,KAAA;AAEJ,IAAI,IAAA;AACF,MAAQ,KAAA,GAAA,UAAA,CAAW,WAAY,CAAA,IAAA,EAAM,QAAQ,CAAA;AAAA,aACtC,KAAO,EAAA;AACd,MAAc,aAAA,CAAA,wBAAA,EAA0B,oCAAoC,KAAK,CAAA;AACjF,MAAA;AAAA;AAGF,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAA,aAAA,CAAc,0BAA0B,4BAA4B,CAAA;AACpE,MAAA;AAAA;AAGF,IAAI,IAAA,CAAC,KAAM,CAAA,KAAA,CAAM,GAAK,EAAA;AACpB,MAAA,aAAA,CAAc,0BAA0B,qCAAqC,CAAA;AAC7E,MAAA;AAAA;AAGF,IAAK,IAAA,CAAA,SAAA,GAAY,MAAM,KAAM,CAAA,GAAA;AAC7B,IAAA,IAAA,CAAK,QAAW,GAAA,MAAA,CAAO,KAAM,CAAA,gBAAA,EAAkB,CAAA;AAC/C,IAAK,IAAA,CAAA,SAAA,GAAY,MAAM,KAAM,CAAA,QAAA;AAC7B,IAAM,MAAA,MAAA,GAAS,MAAM,SAAU,EAAA;AAC/B,IAAA,IAAA,CAAK,cAAiB,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,IAAR,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAc,SAAd,IAAoB,GAAA,MAAA,GAAA,EAAA,CAAA,OAAA;AAE1C,IAAA,IAAA,CAAK,KAAM,CAAA,GAAA;AAAA,MACT,KAAM,CAAA,gBAAA,CAAiB,CAAC,QAAA,EAAU,SAAc,KAAA;AAC9C,QAAK,IAAA,CAAA,uBAAA,CAAwB,KAAO,EAAA,QAAA,EAAU,SAAS,CAAA;AAAA,OACxD;AAAA,KACH;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,QAAS,EAAA;AAAA,KAChB;AAAA;AACF,EAEQ,uBAAA,CAAwB,KAAiB,EAAA,QAAA,EAAe,SAAgB,EAAA;AAC9E,IAAI,IAAA,QAAA,CAAS,QAAa,KAAA,SAAA,CAAU,QAAU,EAAA;AAC5C,MAAK,IAAA,CAAA,eAAA,CAAgB,KAAO,EAAA,QAAA,CAAS,QAAQ,CAAA;AAAA;AAC/C;AACF;AAAA;AAAA;AAAA,EAKO,cAAA,CACL,SACA,EAAA,KAAA,EACA,OACgC,EAAA;AAChC,IAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,MAAO,OAAA,IAAA;AAAA;AAGT,IAAA,IAAA,CAAK,eAAe,GAAI,CAAA,OAAA,EAAS,EAAE,KAAO,EAAA,SAAA,EAAW,WAAW,CAAA;AAEhE,IAAM,MAAA,WAAA,GAAc,oBAAoB,OAAO,CAAA;AAG/C,IAAA,0BAAA,GAA6B,yBAA0B,CAAA;AAAA,MACrD,WAAA;AAAA,MACA,SAAS,IAAK,CAAA,QAAA;AAAA,MACd,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,eAAe,IAAK,CAAA,cAAA;AAAA,MACpB,SAAW,EAAA,OAAA;AAAA,MACX,SAAA;AAAA,MACA,QAAU,EAAA;AAAA,QACR,OAAA;AAAA,QACA,WAAW,KAAM,CAAA;AAAA;AACnB,KACD,CAAA;AAGD,IAAO,OAAA,CAAC,cAAsB,KAAgB,KAAA;AAC5C,MAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,QAAA;AAAA;AAGF,MAAA,MAAM,SAAY,GAAA,IAAA,CAAK,cAAe,CAAA,GAAA,CAAI,OAAO,CAAA;AACjD,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAA;AAAA;AAGF,MAAM,MAAA,QAAA,GAAW,eAAe,SAAU,CAAA,SAAA;AAC1C,MAAK,IAAA,CAAA,cAAA,CAAe,OAAO,OAAO,CAAA;AAElC,MAAA,0BAAA,GAA6B,4BAA6B,CAAA;AAAA,QACxD,WAAA;AAAA,QACA,SAAS,IAAK,CAAA,QAAA;AAAA,QACd,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,eAAe,IAAK,CAAA,cAAA;AAAA,QACpB,SAAW,EAAA,OAAA;AAAA,QACX,SAAW,EAAA,YAAA;AAAA,QACX,QAAA;AAAA,QACA,QAAU,EAAA;AAAA,UACR,OAAA;AAAA,UACA,WAAW,KAAM,CAAA;AAAA,SACnB;AAAA,QACA,OAAO,KAAQ,GAAA,CAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,YAAW,MAAO,CAAA,KAAK,KAAK,eAAkB,GAAA;AAAA,OACrE,CAAA;AAAA,KACH;AAAA;AACF;AAAA;AAAA;AAAA,EAKO,kBAAkB,QAAuD,EAAA;AAE9E,IAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,MAAI,IAAA,KAAA;AAEJ,MAAI,IAAA;AACF,QAAQ,KAAA,GAAA,UAAA,CAAW,WAAY,CAAA,IAAA,EAAM,QAAQ,CAAA;AAAA,eACtC,KAAO,EAAA;AACd,QAAO,OAAA,IAAA;AAAA;AAGT,MAAA,IAAI,SAAS,CAAC,IAAA,CAAK,SAAa,IAAA,KAAA,CAAM,MAAM,GAAK,EAAA;AAC/C,QAAK,IAAA,CAAA,SAAA,GAAY,MAAM,KAAM,CAAA,GAAA;AAC7B,QAAA,IAAA,CAAK,QAAW,GAAA,MAAA,CAAO,KAAM,CAAA,gBAAA,EAAkB,CAAA;AAC/C,QAAA,IAAA,CAAK,SAAY,GAAA,QAAA;AAAA;AACnB;AAGF,IAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,MAAO,OAAA,IAAA;AAAA;AAGT,IAAI,IAAA,CAAC,KAAK,WAAa,EAAA;AACrB,MAAA,IAAA,CAAK,cAAe,EAAA;AAAA;AAGtB,IAAK,IAAA,CAAA,oBAAA,GAAuB,YAAY,GAAI,EAAA;AAE5C,IAAM,MAAA,WAAA,GAAc,oBAAoB,YAAY,CAAA;AACpD,IAAA,0BAAA,GAA6B,yBAA0B,CAAA;AAAA,MACrD,WAAA;AAAA,MACA,SAAS,IAAK,CAAA,QAAA;AAAA,MACd,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,SAAW,EAAA,aAAA;AAAA,MACX,WAAW,IAAK,CAAA,oBAAA;AAAA,MAChB,QAAU,EAAA;AAAA,QACR;AAAA;AACF,KACD,CAAA;AAGD,IAAO,OAAA,CAAC,MAAa,EAAA,SAAA,GAAY,KAAU,KAAA;AACzC,MAAA,IAAI,CAAC,IAAA,CAAK,SAAa,IAAA,CAAC,KAAK,oBAAsB,EAAA;AACjD,QAAA;AAAA;AAGF,MAAA,MAAM,QAAW,GAAA,WAAA,CAAY,GAAI,EAAA,GAAI,IAAK,CAAA,oBAAA;AAE1C,MAAA,0BAAA,GAA6B,4BAA6B,CAAA;AAAA,QACxD,WAAA;AAAA,QACA,SAAS,IAAK,CAAA,QAAA;AAAA,QACd,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,SAAW,EAAA,aAAA;AAAA,QACX,SAAA,EAAW,YAAY,GAAI,EAAA;AAAA,QAC3B,QAAA;AAAA,QACA,QAAU,EAAA;AAAA,UACR,UAAU,IAAK,CAAA,SAAA;AAAA,UACf,SAAA;AAAA,UACA,cAAgB,EAAA;AAAA;AAClB,OACD,CAAA;AAED,MAAA,IAAA,CAAK,oBAAuB,GAAA,MAAA;AAAA,KAC9B;AAAA;AACF;AAAA;AAAA;AAAA,EAKO,mBAAmB,SAAyD,EAAA;AACjF,IAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,MAAO,OAAA,IAAA;AAAA;AAGT,IAAA,IAAA,CAAK,0BAA6B,GAAA,SAAA;AAElC,IAAM,MAAA,WAAA,GAAc,oBAAoB,aAAa,CAAA;AACrD,IAAA,0BAAA,GAA6B,yBAA0B,CAAA;AAAA,MACrD,WAAA;AAAA,MACA,SAAS,IAAK,CAAA,QAAA;AAAA,MACd,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,SAAW,EAAA,aAAA;AAAA,MACX,WAAW,IAAK,CAAA,0BAAA;AAAA,MAChB,UAAU;AAAC,KACZ,CAAA;AAGD,IAAO,OAAA,CAAC,YAAsB,EAAA,eAAA,EAA0B,WAAyB,KAAA;AAC/E,MAAA,IAAI,CAAC,IAAA,CAAK,SAAa,IAAA,CAAC,KAAK,0BAA4B,EAAA;AACvD,QAAA;AAAA;AAGF,MAAM,MAAA,QAAA,GAAW,eAAe,IAAK,CAAA,0BAAA;AAErC,MAAA,0BAAA,GAA6B,4BAA6B,CAAA;AAAA,QACxD,WAAA;AAAA,QACA,SAAS,IAAK,CAAA,QAAA;AAAA,QACd,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,SAAW,EAAA,aAAA;AAAA,QACX,SAAW,EAAA,YAAA;AAAA,QACX,QAAA;AAAA,QACA,UAAU;AAAC,OACZ,CAAA;AAED,MAAA,IAAA,CAAK,0BAA6B,GAAA,MAAA;AAAA,KACpC;AAAA;AACF;AAAA;AAAA;AAAA,EAKQ,aAAwB,GAAA;AAC9B,IAAI,IAAA,KAAA;AAEJ,IAAI,IAAA;AACF,MAAQ,KAAA,GAAA,UAAA,CAAW,WAAY,CAAA,IAAA,EAAM,QAAQ,CAAA;AAAA,aACtC,KAAO,EAAA;AAAA;AAIhB,IAAA,IAAI,UAAa,GAAA,CAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,KAAM,CAAA,KAAA,KAAS,KAAK,SAAa,IAAA,cAAA;AAEzD,IAAI,IAAA,UAAA,CAAW,SAAS,EAAI,EAAA;AAC1B,MAAA,UAAA,GAAa,UAAW,CAAA,SAAA,CAAU,CAAG,EAAA,EAAE,CAAI,GAAA,KAAA;AAAA;AAG7C,IAAA,OAAO,2BAA2B,UAAU,CAAA,CAAA,CAAA;AAAA;AAC9C;AAAA;AAAA;AAAA,EAKO,oBAAoB,SAAyD,EAAA;AAClF,IAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,MAAO,OAAA,MAAA;AAAA;AAGT,IAAM,MAAA,WAAA,GAAc,oBAAoB,QAAQ,CAAA;AAChD,IAAA,0BAAA,GAA6B,yBAA0B,CAAA;AAAA,MACrD,WAAA;AAAA,MACA,OAAA,EAAS,KAAK,QAAY,IAAA,SAAA;AAAA,MAC1B,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,QAAA,EAAU,KAAK,SAAa,IAAA,SAAA;AAAA,MAC5B,eAAe,IAAK,CAAA,cAAA;AAAA,MACpB,SAAW,EAAA,QAAA;AAAA,MACX,SAAA;AAAA,MACA,UAAU;AAAC,KACZ,CAAA;AAGD,IAAO,OAAA,CAAC,cAAsB,QAAqB,KAAA;AACjD,MAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,QAAA;AAAA;AAGF,MAAA,0BAAA,GAA6B,4BAA6B,CAAA;AAAA,QACxD,WAAA;AAAA,QACA,OAAA,EAAS,KAAK,QAAY,IAAA,SAAA;AAAA,QAC1B,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,QAAA,EAAU,KAAK,SAAa,IAAA,SAAA;AAAA,QAC5B,eAAe,IAAK,CAAA,cAAA;AAAA,QACpB,SAAW,EAAA,QAAA;AAAA,QACX,QAAA;AAAA,QACA,SAAW,EAAA,YAAA;AAAA,QACX,UAAU;AAAC,OACZ,CAAA;AAAA,KACH;AAAA;AACF;AAAA,EAGQ,eAAA,CAAgB,OAAiB,WAAqB,EAAA;AAxUhE,IAAA,IAAA,EAAA,EAAA,EAAA;AAyUI,IAAA,IAAA,CAAK,SAAY,GAAA,WAAA;AACjB,IAAM,MAAA,MAAA,GAAS,MAAM,SAAU,EAAA;AAC/B,IAAA,IAAA,CAAK,cAAiB,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,IAAR,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAc,SAAd,IAAoB,GAAA,MAAA,GAAA,EAAA,CAAA,OAAA;AAE1C,IAAA,aAAA,CAAc,IAAK,CAAA,aAAA,EAAiB,EAAA,CAAA,kBAAA,EAAqB,WAAW,CAAE,CAAA,CAAA;AAAA;AACxE;AAAA,EAGQ,cAAiB,GAAA;AACvB,IAAA,IAAI,CAAC,IAAK,CAAA,SAAA,IAAa,CAAC,IAAK,CAAA,SAAA,IAAa,KAAK,WAAa,EAAA;AAC1D,MAAA;AAAA;AAGF,IAAA,IAAA,CAAK,WAAc,GAAA,IAAA;AAAA;AACrB;AAAA,EAGQ,QAAW,GAAA;AACjB,IAAA,IAAA,CAAK,eAAe,KAAM,EAAA;AAC1B,IAAA,IAAA,CAAK,WAAc,GAAA,KAAA;AACnB,IAAc,aAAA,CAAA,IAAA,CAAK,aAAc,EAAA,EAAG,YAAY,CAAA;AAAA;AAClD;AAAA;AAAA;AAAA,EAKO,oBAAA,CACL,SACA,EAAA,gBAAA,EACA,OAKwC,EAAA;AACxC,IAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,MAAO,OAAA,IAAA;AAAA;AAGT,IAAM,MAAA,WAAA,GAAc,oBAAoB,WAAW,CAAA;AACnD,IAAA,0BAAA,GAA6B,yBAA0B,CAAA;AAAA,MACrD,WAAA;AAAA,MACA,SAAS,IAAK,CAAA,QAAA;AAAA,MACd,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,UAAU,IAAK,CAAA,SAAA;AAAA,MACf,SAAW,EAAA,WAAA;AAAA,MACX,SAAA;AAAA,MACA,QAAU,EAAA;AAAA,QACR,gBAAA;AAAA,QACA,qBAAqB,OAAQ,CAAA,mBAAA;AAAA,QAC7B,2BAA2B,OAAQ,CAAA,yBAAA;AAAA,QACnC,+BAA+B,OAAQ,CAAA;AAAA;AACzC,KACD,CAAA;AAGD,IAAA,OAAO,CACL,YAAA,EACA,QACA,EAAA,OAAA,EACA,MAKG,KAAA;AACH,MAAI,IAAA,CAAC,KAAK,SAAW,EAAA;AACnB,QAAA;AAAA;AAGF,MAAA,0BAAA,GAA6B,4BAA6B,CAAA;AAAA,QACxD,WAAA;AAAA,QACA,SAAS,IAAK,CAAA,QAAA;AAAA,QACd,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,UAAU,IAAK,CAAA,SAAA;AAAA,QACf,SAAW,EAAA,WAAA;AAAA,QACX,SAAW,EAAA,YAAA;AAAA,QACX,QAAA;AAAA,QACA,QAAU,EAAA;AAAA,UACR,gBAAA;AAAA,UACA,qBAAqB,OAAQ,CAAA,mBAAA;AAAA,UAC7B,2BAA2B,OAAQ,CAAA,yBAAA;AAAA,UACnC,+BAA+B,OAAQ,CAAA,6BAAA;AAAA,UACvC,OAAA;AAAA,UACA,KAAO,EAAA,CAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,KAAU,MAAA,CAAC,UAAU,4BAA+B,GAAA,MAAA;AAAA;AACrE,OACD,CAAA;AAAA,KACH;AAAA;AAEJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interactionConstants.js","sources":["../../../src/performance/interactionConstants.ts"],"sourcesContent":["/**\n * Constants for different types of dashboard interactions tracked by SceneRenderProfiler\n */\n\nexport const REFRESH_INTERACTION = 'refresh';\nexport const TIME_RANGE_CHANGE_INTERACTION = 'time_range_change';\nexport const FILTER_ADDED_INTERACTION = 'filter_added';\nexport const FILTER_REMOVED_INTERACTION = 'filter_removed';\nexport const FILTER_CHANGED_INTERACTION = 'filter_changed';\nexport const FILTER_RESTORED_INTERACTION = 'filter_restored';\nexport const VARIABLE_VALUE_CHANGED_INTERACTION = 'variable_value_changed';\nexport const SCOPES_CHANGED_INTERACTION = 'scopes_changed';\nexport const ADHOC_KEYS_DROPDOWN_INTERACTION = 'adhoc_keys_dropdown';\nexport const ADHOC_VALUES_DROPDOWN_INTERACTION = 'adhoc_values_dropdown';\nexport const GROUPBY_DIMENSIONS_INTERACTION = 'groupby_dimensions';\n"],"names":[],"mappings":"AAIO,MAAM,mBAAsB,GAAA;AAC5B,MAAM,6BAAgC,GAAA;AAEtC,MAAM,0BAA6B,GAAA;AACnC,MAAM,0BAA6B,GAAA;AACnC,MAAM,2BAA8B,GAAA;AACpC,MAAM,kCAAqC,GAAA;AAC3C,MAAM,0BAA6B,GAAA;AACnC,MAAM,+BAAkC,GAAA;AACxC,MAAM,iCAAoC,GAAA;AAC1C,MAAM,8BAAiC,GAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataLayersMerger.js","sources":["../../../src/querying/DataLayersMerger.ts"],"sourcesContent":["import { filter, finalize, map, merge, mergeAll } from 'rxjs';\nimport { CancelActivationHandler, SceneDataLayerProvider, SceneDataProviderResult } from '../core/types';\n\nexport class DataLayersMerger {\n private _resultsMap: Map<string, SceneDataProviderResult> = new Map();\n private _prevLayers: SceneDataLayerProvider[] = [];\n\n public getMergedStream(layers: SceneDataLayerProvider[]) {\n if (areDifferentLayers(layers, this._prevLayers)) {\n this._resultsMap = new Map();\n this._prevLayers = layers;\n }\n\n const resultStreams = layers.map((l) => l.getResultsStream());\n const deactivationHandlers: CancelActivationHandler[] = [];\n\n for (const layer of layers) {\n deactivationHandlers.push(layer.activate());\n }\n\n return merge(resultStreams).pipe(\n mergeAll(),\n filter((v) => {\n return this._resultsMap.get(v.origin.state.key!) !== v;\n }),\n map((v) => {\n // Is there a better, rxjs only way to combine multiple same-data-topic observables?\n // Indexing by origin state key is to make sure we do not duplicate/overwrite data from the different origins\n this._resultsMap.set(v.origin.state.key!, v);\n return this._resultsMap.values();\n }),\n finalize(() => {\n deactivationHandlers.forEach((handler) => handler());\n })\n );\n }\n}\n\nfunction areDifferentLayers(a: SceneDataLayerProvider[], b: SceneDataLayerProvider[]) {\n if (a.length !== b.length) {\n return true;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return true;\n }\n }\n\n return false;\n}\n"],"names":[],"mappings":";;AAGO,MAAM,gBAAiB,CAAA;AAAA,EAAvB,WAAA,GAAA;AACL,IAAQ,IAAA,CAAA,WAAA,uBAAwD,GAAI,EAAA;AACpE,IAAA,IAAA,CAAQ,cAAwC,EAAC;AAAA;AAAA,EAE1C,gBAAgB,MAAkC,EAAA;AACvD,IAAA,IAAI,kBAAmB,CAAA,MAAA,EAAQ,IAAK,CAAA,WAAW,CAAG,EAAA;AAChD,MAAK,IAAA,CAAA,WAAA,uBAAkB,GAAI,EAAA;AAC3B,MAAA,IAAA,CAAK,WAAc,GAAA,MAAA;AAAA;AAGrB,IAAA,MAAM,gBAAgB,MAAO,CAAA,GAAA,CAAI,CAAC,CAAM,KAAA,CAAA,CAAE,kBAAkB,CAAA;AAC5D,IAAA,MAAM,uBAAkD,EAAC;AAEzD,IAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,MAAqB,oBAAA,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,EAAU,CAAA;AAAA;AAG5C,IAAO,OAAA,KAAA,CAAM,aAAa,CAAE,CAAA,IAAA;AAAA,MAC1B,QAAS,EAAA;AAAA,MACT,MAAA,CAAO,CAAC,CAAM,KAAA;AACZ,QAAA,OAAO,KAAK,WAAY,CAAA,GAAA,CAAI,EAAE,MAAO,CAAA,KAAA,CAAM,GAAI,CAAM,KAAA,CAAA;AAAA,OACtD,CAAA;AAAA,MACD,GAAA,CAAI,CAAC,CAAM,KAAA;AAGT,QAAA,IAAA,CAAK,YAAY,GAAI,CAAA,CAAA,CAAE,MAAO,CAAA,KAAA,CAAM,KAAM,CAAC,CAAA;AAC3C,QAAO,OAAA,IAAA,CAAK,YAAY,MAAO,EAAA;AAAA,OAChC,CAAA;AAAA,MACD,SAAS,MAAM;AACb,QAAA,oBAAA,CAAqB,OAAQ,CAAA,CAAC,OAAY,KAAA,OAAA,EAAS,CAAA;AAAA,OACpD;AAAA,KACH;AAAA;AAEJ;AAEA,SAAS,kBAAA,CAAmB,GAA6B,CAA6B,EAAA;AACpF,EAAI,IAAA,CAAA,CAAE,MAAW,KAAA,CAAA,CAAE,MAAQ,EAAA;AACzB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,CAAA,CAAE,QAAQ,CAAK,EAAA,EAAA;AACjC,IAAA,IAAI,CAAE,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,CAAC,CAAG,EAAA;AACjB,MAAO,OAAA,IAAA;AAAA;AACT;AAGF,EAAO,OAAA,KAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataProviderProxy.js","sources":["../../../src/querying/DataProviderProxy.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { SceneObjectBase } from '../core/SceneObjectBase';\nimport { SceneObjectRef } from '../core/SceneObjectRef';\nimport { SceneDataState, SceneDataProvider, SceneDataProviderResult } from '../core/types';\n\nexport interface DataProviderSharerState extends SceneDataState {\n source: SceneObjectRef<SceneDataProvider>;\n}\n\nexport class DataProviderProxy extends SceneObjectBase<DataProviderSharerState> implements SceneDataProvider {\n public constructor(state: DataProviderSharerState) {\n super({\n source: state.source,\n data: state.source.resolve().state.data,\n });\n\n this.addActivationHandler(() => {\n this._subs.add(\n this.state.source.resolve().subscribeToState((newState, oldState) => {\n if (newState.data !== oldState.data) {\n this.setState({ data: newState.data });\n }\n })\n );\n });\n }\n\n public setContainerWidth(width: number) {\n this.state.source.resolve().setContainerWidth?.(width);\n }\n\n public isDataReadyToDisplay() {\n return this.state.source.resolve().isDataReadyToDisplay?.() ?? true;\n }\n\n public cancelQuery() {\n this.state.source.resolve().cancelQuery?.();\n }\n\n public getResultsStream(): Observable<SceneDataProviderResult> {\n return this.state.source.resolve().getResultsStream();\n }\n}\n"],"names":[],"mappings":";;AASO,MAAM,0BAA0B,eAAsE,CAAA;AAAA,EACpG,YAAY,KAAgC,EAAA;AACjD,IAAM,KAAA,CAAA;AAAA,MACJ,QAAQ,KAAM,CAAA,MAAA;AAAA,MACd,IAAM,EAAA,KAAA,CAAM,MAAO,CAAA,OAAA,GAAU,KAAM,CAAA;AAAA,KACpC,CAAA;AAED,IAAA,IAAA,CAAK,qBAAqB,MAAM;AAC9B,MAAA,IAAA,CAAK,KAAM,CAAA,GAAA;AAAA,QACT,IAAA,CAAK,MAAM,MAAO,CAAA,OAAA,GAAU,gBAAiB,CAAA,CAAC,UAAU,QAAa,KAAA;AACnE,UAAI,IAAA,QAAA,CAAS,IAAS,KAAA,QAAA,CAAS,IAAM,EAAA;AACnC,YAAA,IAAA,CAAK,QAAS,CAAA,EAAE,IAAM,EAAA,QAAA,CAAS,MAAM,CAAA;AAAA;AACvC,SACD;AAAA,OACH;AAAA,KACD,CAAA;AAAA;AACH,EAEO,kBAAkB,KAAe,EAAA;AA3B1C,IAAA,IAAA,EAAA,EAAA,EAAA;AA4BI,IAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,KAAM,CAAA,MAAA,CAAO,OAAQ,EAAA,EAAE,sBAA5B,IAAgD,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,KAAA,CAAA;AAAA;AAClD,EAEO,oBAAuB,GAAA;AA/BhC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAgCI,IAAA,OAAA,CAAO,sBAAK,KAAM,CAAA,MAAA,CAAO,OAAQ,EAAA,EAAE,yBAA5B,IAAwD,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAA,IAAA;AAAA;AACjE,EAEO,WAAc,GAAA;AAnCvB,IAAA,IAAA,EAAA,EAAA,EAAA;AAoCI,IAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,KAAM,CAAA,MAAA,CAAO,OAAQ,EAAA,EAAE,WAA5B,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA;AACF,EAEO,gBAAwD,GAAA;AAC7D,IAAA,OAAO,IAAK,CAAA,KAAA,CAAM,MAAO,CAAA,OAAA,GAAU,gBAAiB,EAAA;AAAA;AAExD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExtraQueryProvider.js","sources":["../../../src/querying/ExtraQueryProvider.ts"],"sourcesContent":["import { DataQueryRequest, PanelData } from '@grafana/data';\nimport { Observable } from 'rxjs';\n\nimport { SceneObjectBase } from '../core/SceneObjectBase';\nimport { SceneDataQuery, SceneObjectState } from '../core/types';\n\n// A processor function called by the query runner with responses\n// to any extra requests.\n//\n// A processor function should accept two arguments: the data returned by the\n// _primary_ query, and the data returned by the `ExtraQueryProvider`'s\n// _secondary_ query. It should return a new `PanelData` representing the processed output.\n// It should _not_ modify the primary PanelData.\n//\n// Examples of valid processing include alignment of data between primary and secondary\n// (see the `timeShiftAlignmentProcessor` returned by `SceneTimeRangeCompare`), or doing\n// some more advanced processing such as fitting a time series model on the secondary data.\n//\n// See the docs for `extraQueryProcessingOperator` for more information.\nexport type ExtraQueryDataProcessor = (primary: PanelData, secondary: PanelData) => Observable<PanelData>;\n\n// An extra request that should be run by a query runner, and an optional\n// processor that should be called with the response data.\nexport interface ExtraQueryDescriptor {\n // The extra request to add.\n req: DataQueryRequest;\n // An optional function used to process the data before passing it\n // to any transformations or visualizations.\n processor?: ExtraQueryDataProcessor;\n}\n\n// Indicates that this type wants to add extra requests, along with\n// optional processing functions, to a query runner.\nexport interface ExtraQueryProvider<T extends SceneObjectState> extends SceneObjectBase<T> {\n // Get any extra requests and their required processors.\n getExtraQueries(request: DataQueryRequest): ExtraQueryDescriptor[];\n // Determine whether a query should be rerun.\n //\n // When the provider's state changes this function will be passed both the previous and the\n // next state. The implementation can use this to determine whether the change should trigger\n // a rerun of the query or not.\n shouldRerun(prev: T, next: T, queries: SceneDataQuery[]): boolean;\n}\n\nexport function isExtraQueryProvider(obj: any): obj is ExtraQueryProvider<any> {\n return typeof obj === 'object' && 'getExtraQueries' in obj;\n}\n"],"names":[],"mappings":"AA4CO,SAAS,qBAAqB,GAA0C,EAAA;AAC7E,EAAO,OAAA,OAAO,GAAQ,KAAA,QAAA,IAAY,iBAAqB,IAAA,GAAA;AACzD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeDataSource.js","sources":["../../../src/querying/RuntimeDataSource.ts"],"sourcesContent":["import { DataQuery, DataSourceApi, PluginType } from '@grafana/data';\n\nexport abstract class RuntimeDataSource<TQuery extends DataQuery = DataQuery> extends DataSourceApi<TQuery> {\n public constructor(pluginId: string, uid: string) {\n super({\n name: 'RuntimeDataSource-' + pluginId,\n uid: uid,\n type: pluginId,\n id: 1,\n readOnly: true,\n jsonData: {},\n access: 'direct',\n meta: {\n id: pluginId,\n name: 'RuntimeDataSource-' + pluginId,\n type: PluginType.datasource,\n info: {\n author: {\n name: '',\n },\n description: '',\n links: [],\n logos: {\n large: '',\n small: '',\n },\n screenshots: [],\n updated: '',\n version: '',\n },\n module: '',\n baseUrl: '',\n },\n });\n }\n\n public testDatasource(): Promise<any> {\n return Promise.resolve({});\n }\n}\n\nexport const runtimeDataSources = new Map<string, RuntimeDataSource>();\n\nexport interface RuntimeDataSourceOptions {\n dataSource: RuntimeDataSource;\n}\n\n/**\n * Provides a way to register runtime panel plugins.\n * Please use a pluginId that is unlikely to collide with other plugins.\n */\nexport function registerRuntimeDataSource({ dataSource }: RuntimeDataSourceOptions) {\n if (runtimeDataSources.has(dataSource.uid)) {\n throw new Error(`A runtime data source with uid ${dataSource.uid} has already been registered`);\n }\n\n runtimeDataSources.set(dataSource.uid, dataSource);\n}\n"],"names":[],"mappings":";;AAEO,MAAe,0BAAgE,aAAsB,CAAA;AAAA,EACnG,WAAA,CAAY,UAAkB,GAAa,EAAA;AAChD,IAAM,KAAA,CAAA;AAAA,MACJ,MAAM,oBAAuB,GAAA,QAAA;AAAA,MAC7B,GAAA;AAAA,MACA,IAAM,EAAA,QAAA;AAAA,MACN,EAAI,EAAA,CAAA;AAAA,MACJ,QAAU,EAAA,IAAA;AAAA,MACV,UAAU,EAAC;AAAA,MACX,MAAQ,EAAA,QAAA;AAAA,MACR,IAAM,EAAA;AAAA,QACJ,EAAI,EAAA,QAAA;AAAA,QACJ,MAAM,oBAAuB,GAAA,QAAA;AAAA,QAC7B,MAAM,UAAW,CAAA,UAAA;AAAA,QACjB,IAAM,EAAA;AAAA,UACJ,MAAQ,EAAA;AAAA,YACN,IAAM,EAAA;AAAA,WACR;AAAA,UACA,WAAa,EAAA,EAAA;AAAA,UACb,OAAO,EAAC;AAAA,UACR,KAAO,EAAA;AAAA,YACL,KAAO,EAAA,EAAA;AAAA,YACP,KAAO,EAAA;AAAA,WACT;AAAA,UACA,aAAa,EAAC;AAAA,UACd,OAAS,EAAA,EAAA;AAAA,UACT,OAAS,EAAA;AAAA,SACX;AAAA,QACA,MAAQ,EAAA,EAAA;AAAA,QACR,OAAS,EAAA;AAAA;AACX,KACD,CAAA;AAAA;AACH,EAEO,cAA+B,GAAA;AACpC,IAAO,OAAA,OAAA,CAAQ,OAAQ,CAAA,EAAE,CAAA;AAAA;AAE7B;AAEa,MAAA,kBAAA,uBAAyB,GAA+B;AAUrD,SAAA,yBAAA,CAA0B,EAAE,UAAA,EAAwC,EAAA;AAClF,EAAA,IAAI,kBAAmB,CAAA,GAAA,CAAI,UAAW,CAAA,GAAG,CAAG,EAAA;AAC1C,IAAA,MAAM,IAAI,KAAA,CAAM,CAAkC,+BAAA,EAAA,UAAA,CAAW,GAAG,CAA8B,4BAAA,CAAA,CAAA;AAAA;AAGhG,EAAmB,kBAAA,CAAA,GAAA,CAAI,UAAW,CAAA,GAAA,EAAK,UAAU,CAAA;AACnD;;;;"}