@grafana/scenes 6.8.0 → 6.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/esm/index.js +1 -1
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
  9. package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
  10. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
  11. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
  12. package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
  13. package/dist/esm/dist/esm/components/NestedScene.js +0 -95
  14. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
  15. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
  16. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
  17. package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
  18. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
  19. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
  20. package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
  21. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
  22. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
  23. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
  24. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
  25. package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
  26. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
  27. package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
  28. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
  29. package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
  30. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
  31. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
  32. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
  33. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
  34. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  35. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  36. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
  37. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  38. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  39. package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
  40. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
  41. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
  42. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
  43. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  44. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
  45. package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
  46. package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
  47. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
  48. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
  49. package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
  50. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
  51. package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
  52. package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
  53. package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
  54. package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
  55. package/dist/esm/dist/esm/core/events.js +0 -11
  56. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
  57. package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
  58. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
  59. package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
  60. package/dist/esm/dist/esm/core/types.js +0 -15
  61. package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
  62. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
  63. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
  64. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
  65. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
  66. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
  67. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
  68. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
  69. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
  70. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  71. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
  72. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  73. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  74. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
  75. package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
  76. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
  77. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
  78. package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
  79. package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
  80. package/dist/esm/dist/esm/services/utils.js +0 -71
  81. package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
  82. package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
  83. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
  84. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  85. package/dist/esm/dist/esm/utils/date.js +0 -15
  86. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
  87. package/dist/esm/dist/esm/utils/explore.js +0 -47
  88. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
  89. package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
  90. package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
  91. package/dist/esm/dist/esm/utils/metricTree.js +0 -53
  92. package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
  93. package/dist/esm/dist/esm/utils/utils.js +0 -11
  94. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
  95. package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
  96. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
  97. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  104. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  105. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  106. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  107. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  108. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
  109. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  110. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  111. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
  112. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
  113. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
  114. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
  115. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
  116. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
  117. package/dist/esm/dist/esm/variables/constants.js +0 -9
  118. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
  119. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
  120. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  121. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  122. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
  123. package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
  124. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
  125. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
  126. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
  127. package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
  128. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
  129. package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
  130. package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
  131. package/dist/esm/dist/esm/variables/macros/index.js +0 -26
  132. package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
  133. package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
  134. package/dist/esm/dist/esm/variables/macros/types.js +0 -11
  135. package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
  136. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
  137. package/dist/esm/dist/esm/variables/types.js +0 -11
  138. package/dist/esm/dist/esm/variables/utils.js +0 -172
  139. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
  140. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
  141. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
  142. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
  143. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
  144. package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
  145. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
  146. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
  147. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
  148. package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
  149. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
  150. package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
  151. package/dist/esm/querying/DataProviderSharer.js +0 -39
  152. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
  153. package/dist/esm/src/behaviors/CursorSync.js +0 -76
  154. package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
  155. package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
  156. package/dist/esm/src/behaviors/index.js +0 -5
  157. package/dist/esm/src/components/EmbeddedScene.js +0 -59
  158. package/dist/esm/src/components/NestedScene.js +0 -95
  159. package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
  160. package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
  161. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
  162. package/dist/esm/src/components/SceneApp/utils.js +0 -42
  163. package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
  164. package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
  165. package/dist/esm/src/components/SceneCanvasText.js +0 -32
  166. package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
  167. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
  168. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
  169. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
  170. package/dist/esm/src/components/SceneReactObject.js +0 -34
  171. package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
  172. package/dist/esm/src/components/SceneTimePicker.js +0 -139
  173. package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
  174. package/dist/esm/src/components/SceneToolbarButton.js +0 -33
  175. package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
  176. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
  177. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
  178. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
  179. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  180. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  181. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
  182. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  183. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  184. package/dist/esm/src/components/layout/LazyLoader.js +0 -103
  185. package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
  186. package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
  187. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
  188. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  189. package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
  190. package/dist/esm/src/components/layout/grid/constants.js +0 -7
  191. package/dist/esm/src/components/layout/grid/utils.js +0 -36
  192. package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
  193. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
  194. package/dist/esm/src/components/layout/split/Splitter.js +0 -386
  195. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
  196. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
  197. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
  198. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
  199. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
  200. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
  201. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
  202. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
  203. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
  204. package/dist/esm/src/core/PanelBuilders/index.js +0 -116
  205. package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
  206. package/dist/esm/src/core/SceneDataNode.js +0 -43
  207. package/dist/esm/src/core/SceneObjectBase.js +0 -286
  208. package/dist/esm/src/core/SceneObjectRef.js +0 -32
  209. package/dist/esm/src/core/SceneTimeRange.js +0 -231
  210. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
  211. package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
  212. package/dist/esm/src/core/events.js +0 -11
  213. package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
  214. package/dist/esm/src/core/sceneGraph/index.js +0 -25
  215. package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
  216. package/dist/esm/src/core/sceneGraph/utils.js +0 -64
  217. package/dist/esm/src/core/types.js +0 -15
  218. package/dist/esm/src/index.js +0 -108
  219. package/dist/esm/src/querying/DataLayersMerger.js +0 -46
  220. package/dist/esm/src/querying/DataProviderProxy.js +0 -37
  221. package/dist/esm/src/querying/DataProviderSharer.js +0 -108
  222. package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
  223. package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
  224. package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
  225. package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
  226. package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
  227. package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
  228. package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
  229. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
  230. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
  231. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  232. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
  233. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  234. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  235. package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
  236. package/dist/esm/src/querying/layers/index.js +0 -2
  237. package/dist/esm/src/querying/registerQueryWithController.js +0 -41
  238. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
  239. package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
  240. package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
  241. package/dist/esm/src/services/UrlSyncManager.js +0 -167
  242. package/dist/esm/src/services/useUrlSync.js +0 -29
  243. package/dist/esm/src/services/utils.js +0 -75
  244. package/dist/esm/src/utils/ControlsLabel.js +0 -107
  245. package/dist/esm/src/utils/LoadingIndicator.js +0 -19
  246. package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
  247. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  248. package/dist/esm/src/utils/date.js +0 -15
  249. package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
  250. package/dist/esm/src/utils/explore.js +0 -47
  251. package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
  252. package/dist/esm/src/utils/getDataSource.js +0 -18
  253. package/dist/esm/src/utils/getMessageFromError.js +0 -24
  254. package/dist/esm/src/utils/metricTree.js +0 -53
  255. package/dist/esm/src/utils/parseUrlParam.js +0 -41
  256. package/dist/esm/src/utils/utils.js +0 -11
  257. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
  258. package/dist/esm/src/utils/writeSceneLog.js +0 -12
  259. package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
  260. package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
  261. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
  262. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  269. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  270. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  271. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
  272. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  273. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  274. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
  275. package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
  276. package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
  277. package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
  278. package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
  279. package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
  280. package/dist/esm/src/variables/constants.js +0 -9
  281. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
  282. package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
  283. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  284. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  285. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
  286. package/dist/esm/src/variables/interpolation/defaults.js +0 -21
  287. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
  288. package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
  289. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
  290. package/dist/esm/src/variables/lookupVariable.js +0 -20
  291. package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
  292. package/dist/esm/src/variables/macros/contextMacros.js +0 -43
  293. package/dist/esm/src/variables/macros/dataMacros.js +0 -134
  294. package/dist/esm/src/variables/macros/index.js +0 -35
  295. package/dist/esm/src/variables/macros/templateProxies.js +0 -51
  296. package/dist/esm/src/variables/macros/timeMacros.js +0 -86
  297. package/dist/esm/src/variables/macros/types.js +0 -11
  298. package/dist/esm/src/variables/macros/urlMacros.js +0 -56
  299. package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
  300. package/dist/esm/src/variables/types.js +0 -11
  301. package/dist/esm/src/variables/utils.js +0 -172
  302. package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
  303. package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
  304. package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
  305. package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
  306. package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
  307. package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
  308. package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
  309. package/dist/esm/src/variables/variants/TestVariable.js +0 -117
  310. package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
  311. package/dist/esm/src/variables/variants/guards.js +0 -27
  312. package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
  313. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
  314. package/dist/esm/src/variables/variants/query/guards.js +0 -28
  315. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
  316. package/dist/esm/src/variables/variants/query/utils.js +0 -124
  317. package/dist/esm/variables/variants/JsonVariable.js +0 -96
  318. package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
  319. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
@@ -1,139 +0,0 @@
1
- import { lastValueFrom, of, from, mergeMap, filter, take, throwError, catchError } from 'rxjs';
2
- import { v4 } from 'uuid';
3
- import { VariableRefresh, VariableSort, LoadingState, CoreApp } from '@grafana/data';
4
- import { sceneGraph } from '../../../core/sceneGraph/index.js';
5
- import { VariableDependencyConfig } from '../../VariableDependencyConfig.js';
6
- import { renderSelectForVariable } from '../../components/VariableValueSelect.js';
7
- import { MultiValueVariable } from '../MultiValueVariable.js';
8
- import { createQueryVariableRunner } from './createQueryVariableRunner.js';
9
- import { metricNamesToVariableValues } from './utils.js';
10
- import { toMetricFindValues } from './toMetricFindValues.js';
11
- import { getDataSource } from '../../../utils/getDataSource.js';
12
- import { safeStringifyValue } from '../../utils.js';
13
- import { SEARCH_FILTER_VARIABLE } from '../../constants.js';
14
- import { debounce } from 'lodash';
15
- import { registerQueryWithController } from '../../../querying/registerQueryWithController.js';
16
- import { wrapInSafeSerializableSceneObject } from '../../../utils/wrapInSafeSerializableSceneObject.js';
17
-
18
- var __defProp = Object.defineProperty;
19
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
20
- var __hasOwnProp = Object.prototype.hasOwnProperty;
21
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
22
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
23
- var __spreadValues = (a, b) => {
24
- for (var prop in b || (b = {}))
25
- if (__hasOwnProp.call(b, prop))
26
- __defNormalProp(a, prop, b[prop]);
27
- if (__getOwnPropSymbols)
28
- for (var prop of __getOwnPropSymbols(b)) {
29
- if (__propIsEnum.call(b, prop))
30
- __defNormalProp(a, prop, b[prop]);
31
- }
32
- return a;
33
- };
34
- class QueryVariable extends MultiValueVariable {
35
- constructor(initialState) {
36
- super(__spreadValues({
37
- type: "query",
38
- name: "",
39
- value: "",
40
- text: "",
41
- options: [],
42
- datasource: null,
43
- regex: "",
44
- query: "",
45
- refresh: VariableRefresh.onDashboardLoad,
46
- sort: VariableSort.disabled
47
- }, initialState));
48
- this._variableDependency = new VariableDependencyConfig(this, {
49
- statePaths: ["regex", "query", "datasource"]
50
- });
51
- this.onSearchChange = (searchFilter) => {
52
- if (!containsSearchFilter(this.state.query)) {
53
- return;
54
- }
55
- this._updateOptionsBasedOnSearchFilter(searchFilter);
56
- };
57
- this._updateOptionsBasedOnSearchFilter = debounce(async (searchFilter) => {
58
- const result = await lastValueFrom(this.getValueOptions({ searchFilter }));
59
- this.setState({ options: result, loading: false });
60
- }, 400);
61
- }
62
- getValueOptions(args) {
63
- if (!this.state.query) {
64
- return of([]);
65
- }
66
- this.setState({ loading: true, error: null });
67
- return from(
68
- getDataSource(this.state.datasource, {
69
- __sceneObject: wrapInSafeSerializableSceneObject(this)
70
- })
71
- ).pipe(
72
- mergeMap((ds) => {
73
- const runner = createQueryVariableRunner(ds);
74
- const target = runner.getTarget(this);
75
- const request = this.getRequest(target, args.searchFilter);
76
- return runner.runRequest({ variable: this, searchFilter: args.searchFilter }, request).pipe(
77
- registerQueryWithController({
78
- type: "variable",
79
- request,
80
- origin: this
81
- }),
82
- filter((data) => data.state === LoadingState.Done || data.state === LoadingState.Error),
83
- take(1),
84
- mergeMap((data) => {
85
- if (data.state === LoadingState.Error) {
86
- return throwError(() => data.error);
87
- }
88
- return of(data);
89
- }),
90
- toMetricFindValues(),
91
- mergeMap((values) => {
92
- let regex = "";
93
- if (this.state.regex) {
94
- regex = sceneGraph.interpolate(this, this.state.regex, void 0, "regex");
95
- }
96
- return of(metricNamesToVariableValues(regex, this.state.sort, values));
97
- }),
98
- catchError((error) => {
99
- if (error.cancelled) {
100
- return of([]);
101
- }
102
- return throwError(() => error);
103
- })
104
- );
105
- })
106
- );
107
- }
108
- getRequest(target, searchFilter) {
109
- const scopedVars = {
110
- __sceneObject: wrapInSafeSerializableSceneObject(this)
111
- };
112
- if (searchFilter) {
113
- scopedVars.__searchFilter = { value: searchFilter, text: searchFilter };
114
- }
115
- const range = sceneGraph.getTimeRange(this).state.value;
116
- const request = {
117
- app: CoreApp.Dashboard,
118
- requestId: v4(),
119
- timezone: "",
120
- range,
121
- interval: "",
122
- intervalMs: 0,
123
- targets: [target],
124
- scopedVars,
125
- startTime: Date.now()
126
- };
127
- return request;
128
- }
129
- }
130
- QueryVariable.Component = ({ model }) => {
131
- return renderSelectForVariable(model);
132
- };
133
- function containsSearchFilter(query) {
134
- const str = safeStringifyValue(query);
135
- return str.indexOf(SEARCH_FILTER_VARIABLE) > -1;
136
- }
137
-
138
- export { QueryVariable };
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlWYXJpYWJsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3ZhcmlhYmxlcy92YXJpYW50cy9xdWVyeS9RdWVyeVZhcmlhYmxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgZmlsdGVyLCB0YWtlLCBtZXJnZU1hcCwgY2F0Y2hFcnJvciwgdGhyb3dFcnJvciwgZnJvbSwgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5cbmltcG9ydCB7XG4gIENvcmVBcHAsXG4gIERhdGFRdWVyeVJlcXVlc3QsXG4gIExvYWRpbmdTdGF0ZSxcbiAgUGFuZWxEYXRhLFxuICBTY29wZWRWYXJzLFxuICBWYXJpYWJsZVJlZnJlc2gsXG4gIFZhcmlhYmxlU29ydCxcbn0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5cbmltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NjZW5lR3JhcGgnO1xuaW1wb3J0IHsgU2NlbmVDb21wb25lbnRQcm9wcywgU2NlbmVEYXRhUXVlcnkgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzJztcbmltcG9ydCB7IFZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyB9IGZyb20gJy4uLy4uL1ZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyc7XG5pbXBvcnQgeyByZW5kZXJTZWxlY3RGb3JWYXJpYWJsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvVmFyaWFibGVWYWx1ZVNlbGVjdCc7XG5pbXBvcnQgeyBWYXJpYWJsZVZhbHVlT3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgTXVsdGlWYWx1ZVZhcmlhYmxlLCBNdWx0aVZhbHVlVmFyaWFibGVTdGF0ZSwgVmFyaWFibGVHZXRPcHRpb25zQXJncyB9IGZyb20gJy4uL011bHRpVmFsdWVWYXJpYWJsZSc7XG5cbmltcG9ydCB7IGNyZWF0ZVF1ZXJ5VmFyaWFibGVSdW5uZXIgfSBmcm9tICcuL2NyZWF0ZVF1ZXJ5VmFyaWFibGVSdW5uZXInO1xuaW1wb3J0IHsgbWV0cmljTmFtZXNUb1ZhcmlhYmxlVmFsdWVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyB0b01ldHJpY0ZpbmRWYWx1ZXMgfSBmcm9tICcuL3RvTWV0cmljRmluZFZhbHVlcyc7XG5pbXBvcnQgeyBnZXREYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZ2V0RGF0YVNvdXJjZSc7XG5pbXBvcnQgeyBzYWZlU3RyaW5naWZ5VmFsdWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBEYXRhUXVlcnksIERhdGFTb3VyY2VSZWYgfSBmcm9tICdAZ3JhZmFuYS9zY2hlbWEnO1xuaW1wb3J0IHsgU0VBUkNIX0ZJTFRFUl9WQVJJQUJMRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyByZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi8uLi9xdWVyeWluZy9yZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXInO1xuaW1wb3J0IHsgd3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvd3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVZhcmlhYmxlU3RhdGUgZXh0ZW5kcyBNdWx0aVZhbHVlVmFyaWFibGVTdGF0ZSB7XG4gIHR5cGU6ICdxdWVyeSc7XG4gIGRhdGFzb3VyY2U6IERhdGFTb3VyY2VSZWYgfCBudWxsO1xuICBxdWVyeTogc3RyaW5nIHwgU2NlbmVEYXRhUXVlcnk7XG4gIHJlZ2V4OiBzdHJpbmc7XG4gIHJlZnJlc2g6IFZhcmlhYmxlUmVmcmVzaDtcbiAgc29ydDogVmFyaWFibGVTb3J0O1xuICAvKiogQGludGVybmFsIE9ubHkgZm9yIHVzZSBpbnNpZGUgY29yZSBkYXNoYm9hcmRzICovXG4gIGRlZmluaXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBRdWVyeVZhcmlhYmxlIGV4dGVuZHMgTXVsdGlWYWx1ZVZhcmlhYmxlPFF1ZXJ5VmFyaWFibGVTdGF0ZT4ge1xuICBwcm90ZWN0ZWQgX3ZhcmlhYmxlRGVwZW5kZW5jeSA9IG5ldyBWYXJpYWJsZURlcGVuZGVuY3lDb25maWcodGhpcywge1xuICAgIHN0YXRlUGF0aHM6IFsncmVnZXgnLCAncXVlcnknLCAnZGF0YXNvdXJjZSddLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW5pdGlhbFN0YXRlOiBQYXJ0aWFsPFF1ZXJ5VmFyaWFibGVTdGF0ZT4pIHtcbiAgICBzdXBlcih7XG4gICAgICB0eXBlOiAncXVlcnknLFxuICAgICAgbmFtZTogJycsXG4gICAgICB2YWx1ZTogJycsXG4gICAgICB0ZXh0OiAnJyxcbiAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgZGF0YXNvdXJjZTogbnVsbCxcbiAgICAgIHJlZ2V4OiAnJyxcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHJlZnJlc2g6IFZhcmlhYmxlUmVmcmVzaC5vbkRhc2hib2FyZExvYWQsXG4gICAgICBzb3J0OiBWYXJpYWJsZVNvcnQuZGlzYWJsZWQsXG4gICAgICAuLi5pbml0aWFsU3RhdGUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVPcHRpb25zKGFyZ3M6IFZhcmlhYmxlR2V0T3B0aW9uc0FyZ3MpOiBPYnNlcnZhYmxlPFZhcmlhYmxlVmFsdWVPcHRpb25bXT4ge1xuICAgIGlmICghdGhpcy5zdGF0ZS5xdWVyeSkge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwgfSk7XG5cbiAgICByZXR1cm4gZnJvbShcbiAgICAgIGdldERhdGFTb3VyY2UodGhpcy5zdGF0ZS5kYXRhc291cmNlLCB7XG4gICAgICAgIF9fc2NlbmVPYmplY3Q6IHdyYXBJblNhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdCh0aGlzKSxcbiAgICAgIH0pXG4gICAgKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGRzKSA9PiB7XG4gICAgICAgIGNvbnN0IHJ1bm5lciA9IGNyZWF0ZVF1ZXJ5VmFyaWFibGVSdW5uZXIoZHMpO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBydW5uZXIuZ2V0VGFyZ2V0KHRoaXMpO1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5nZXRSZXF1ZXN0KHRhcmdldCwgYXJncy5zZWFyY2hGaWx0ZXIpO1xuXG4gICAgICAgIHJldHVybiBydW5uZXIucnVuUmVxdWVzdCh7IHZhcmlhYmxlOiB0aGlzLCBzZWFyY2hGaWx0ZXI6IGFyZ3Muc2VhcmNoRmlsdGVyIH0sIHJlcXVlc3QpLnBpcGUoXG4gICAgICAgICAgcmVnaXN0ZXJRdWVyeVdpdGhDb250cm9sbGVyKHtcbiAgICAgICAgICAgIHR5cGU6ICd2YXJpYWJsZScsXG4gICAgICAgICAgICByZXF1ZXN0OiByZXF1ZXN0LFxuICAgICAgICAgICAgb3JpZ2luOiB0aGlzLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGZpbHRlcigoZGF0YSkgPT4gZGF0YS5zdGF0ZSA9PT0gTG9hZGluZ1N0YXRlLkRvbmUgfHwgZGF0YS5zdGF0ZSA9PT0gTG9hZGluZ1N0YXRlLkVycm9yKSwgLy8gd2Ugb25seSBjYXJlIGFib3V0IGRvbmUgb3IgZXJyb3IgZm9yIG5vd1xuICAgICAgICAgIHRha2UoMSksIC8vIHRha2UgdGhlIGZpcnN0IHJlc3VsdCwgdXNpbmcgZmlyc3QgY2F1c2VkIGEgYnVnIHdoZXJlIGl0IGluIHNvbWUgc2l0dWF0aW9ucyB0aHJvdyBhbiB1bmNhdWdodCBlcnJvciBiZWNhdXNlIG9mIG5vIHJlc3VsdHMgaGFkIGJlZW4gcmVjZWl2ZWQgeWV0XG4gICAgICAgICAgbWVyZ2VNYXAoKGRhdGE6IFBhbmVsRGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdGUgPT09IExvYWRpbmdTdGF0ZS5FcnJvcikge1xuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBkYXRhLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvZihkYXRhKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0b01ldHJpY0ZpbmRWYWx1ZXMoKSxcbiAgICAgICAgICBtZXJnZU1hcCgodmFsdWVzKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVnZXggPSAnJztcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnJlZ2V4KSB7XG4gICAgICAgICAgICAgIHJlZ2V4ID0gc2NlbmVHcmFwaC5pbnRlcnBvbGF0ZSh0aGlzLCB0aGlzLnN0YXRlLnJlZ2V4LCB1bmRlZmluZWQsICdyZWdleCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9mKG1ldHJpY05hbWVzVG9WYXJpYWJsZVZhbHVlcyhyZWdleCwgdGhpcy5zdGF0ZS5zb3J0LCB2YWx1ZXMpKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlcXVlc3QodGFyZ2V0OiBEYXRhUXVlcnkgfCBzdHJpbmcsIHNlYXJjaEZpbHRlcj86IHN0cmluZykge1xuICAgIGNvbnN0IHNjb3BlZFZhcnM6IFNjb3BlZFZhcnMgPSB7XG4gICAgICBfX3NjZW5lT2JqZWN0OiB3cmFwSW5TYWZlU2VyaWFsaXphYmxlU2NlbmVPYmplY3QodGhpcyksXG4gICAgfTtcblxuICAgIGlmIChzZWFyY2hGaWx0ZXIpIHtcbiAgICAgIHNjb3BlZFZhcnMuX19zZWFyY2hGaWx0ZXIgPSB7IHZhbHVlOiBzZWFyY2hGaWx0ZXIsIHRleHQ6IHNlYXJjaEZpbHRlciB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJhbmdlID0gc2NlbmVHcmFwaC5nZXRUaW1lUmFuZ2UodGhpcykuc3RhdGUudmFsdWU7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBEYXRhUXVlcnlSZXF1ZXN0ID0ge1xuICAgICAgYXBwOiBDb3JlQXBwLkRhc2hib2FyZCxcbiAgICAgIHJlcXVlc3RJZDogdXVpZHY0KCksXG4gICAgICB0aW1lem9uZTogJycsXG4gICAgICByYW5nZSxcbiAgICAgIGludGVydmFsOiAnJyxcbiAgICAgIGludGVydmFsTXM6IDAsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0YXJnZXRzOiBbdGFyZ2V0XSxcbiAgICAgIHNjb3BlZFZhcnMsXG4gICAgICBzdGFydFRpbWU6IERhdGUubm93KCksXG4gICAgfTtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgb25TZWFyY2hDaGFuZ2UgPSAoc2VhcmNoRmlsdGVyOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIWNvbnRhaW5zU2VhcmNoRmlsdGVyKHRoaXMuc3RhdGUucXVlcnkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlT3B0aW9uc0Jhc2VkT25TZWFyY2hGaWx0ZXIoc2VhcmNoRmlsdGVyKTtcbiAgfTtcblxuICBwcml2YXRlIF91cGRhdGVPcHRpb25zQmFzZWRPblNlYXJjaEZpbHRlciA9IGRlYm91bmNlKGFzeW5jIChzZWFyY2hGaWx0ZXI6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5nZXRWYWx1ZU9wdGlvbnMoeyBzZWFyY2hGaWx0ZXIgfSkpO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBvcHRpb25zOiByZXN1bHQsIGxvYWRpbmc6IGZhbHNlIH0pO1xuICB9LCA0MDApO1xuXG4gIHB1YmxpYyBzdGF0aWMgQ29tcG9uZW50ID0gKHsgbW9kZWwgfTogU2NlbmVDb21wb25lbnRQcm9wczxNdWx0aVZhbHVlVmFyaWFibGU+KSA9PiB7XG4gICAgcmV0dXJuIHJlbmRlclNlbGVjdEZvclZhcmlhYmxlKG1vZGVsKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY29udGFpbnNTZWFyY2hGaWx0ZXIocXVlcnk6IHN0cmluZyB8IERhdGFRdWVyeSkge1xuICBjb25zdCBzdHIgPSBzYWZlU3RyaW5naWZ5VmFsdWUocXVlcnkpO1xuICByZXR1cm4gc3RyLmluZGV4T2YoU0VBUkNIX0ZJTFRFUl9WQVJJQUJMRSkgPiAtMTtcbn1cbiJdLCJuYW1lcyI6WyJ1dWlkdjQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBDTyxNQUFNLHNCQUFzQixrQkFBdUMsQ0FBQTtBQUFBLEVBS2pFLFlBQVksWUFBMkMsRUFBQTtBQUM1RCxJQUFNLEtBQUEsQ0FBQSxjQUFBLENBQUE7QUFBQSxNQUNKLElBQU0sRUFBQSxPQUFBO0FBQUEsTUFDTixJQUFNLEVBQUEsRUFBQTtBQUFBLE1BQ04sS0FBTyxFQUFBLEVBQUE7QUFBQSxNQUNQLElBQU0sRUFBQSxFQUFBO0FBQUEsTUFDTixTQUFTLEVBQUM7QUFBQSxNQUNWLFVBQVksRUFBQSxJQUFBO0FBQUEsTUFDWixLQUFPLEVBQUEsRUFBQTtBQUFBLE1BQ1AsS0FBTyxFQUFBLEVBQUE7QUFBQSxNQUNQLFNBQVMsZUFBZ0IsQ0FBQSxlQUFBO0FBQUEsTUFDekIsTUFBTSxZQUFhLENBQUEsUUFBQTtBQUFBLEtBQUEsRUFDaEIsWUFDSixDQUFBLENBQUEsQ0FBQTtBQWpCSCxJQUFVLElBQUEsQ0FBQSxtQkFBQSxHQUFzQixJQUFJLHdCQUFBLENBQXlCLElBQU0sRUFBQTtBQUFBLE1BQ2pFLFVBQVksRUFBQSxDQUFDLE9BQVMsRUFBQSxPQUFBLEVBQVMsWUFBWSxDQUFBO0FBQUEsS0FDNUMsQ0FB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
@@ -1,129 +0,0 @@
1
- import { from, mergeMap, of } from 'rxjs';
2
- import { LoadingState, getDefaultTimeRange } from '@grafana/data';
3
- import { getRunRequest } from '@grafana/runtime';
4
- import { hasStandardVariableSupport, hasLegacyVariableSupport, hasCustomVariableSupport } from './guards.js';
5
-
6
- var __defProp = Object.defineProperty;
7
- var __defProps = Object.defineProperties;
8
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
9
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
- var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b || (b = {}))
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
- class StandardQueryRunner {
26
- constructor(datasource, _runRequest = getRunRequest()) {
27
- this.datasource = datasource;
28
- this._runRequest = _runRequest;
29
- }
30
- getTarget(variable) {
31
- if (hasStandardVariableSupport(this.datasource)) {
32
- return this.datasource.variables.toDataQuery(ensureVariableQueryModelIsADataQuery(variable));
33
- }
34
- throw new Error("Couldn't create a target with supplied arguments.");
35
- }
36
- runRequest(_, request) {
37
- if (!hasStandardVariableSupport(this.datasource)) {
38
- return getEmptyMetricFindValueObservable();
39
- }
40
- if (!this.datasource.variables.query) {
41
- return this._runRequest(this.datasource, request);
42
- }
43
- return this._runRequest(this.datasource, request, this.datasource.variables.query.bind(this.datasource.variables));
44
- }
45
- }
46
- class LegacyQueryRunner {
47
- constructor(datasource) {
48
- this.datasource = datasource;
49
- }
50
- getTarget(variable) {
51
- if (hasLegacyVariableSupport(this.datasource)) {
52
- return variable.state.query;
53
- }
54
- throw new Error("Couldn't create a target with supplied arguments.");
55
- }
56
- runRequest({ variable, searchFilter }, request) {
57
- if (!hasLegacyVariableSupport(this.datasource)) {
58
- return getEmptyMetricFindValueObservable();
59
- }
60
- return from(
61
- this.datasource.metricFindQuery(variable.state.query, __spreadProps(__spreadValues({}, request), {
62
- variable: {
63
- name: variable.state.name,
64
- type: variable.state.type
65
- },
66
- searchFilter
67
- }))
68
- ).pipe(
69
- mergeMap((values) => {
70
- if (!values || !values.length) {
71
- return getEmptyMetricFindValueObservable();
72
- }
73
- const series = values;
74
- return of({ series, state: LoadingState.Done, timeRange: request.range });
75
- })
76
- );
77
- }
78
- }
79
- class CustomQueryRunner {
80
- constructor(datasource, _runRequest = getRunRequest()) {
81
- this.datasource = datasource;
82
- this._runRequest = _runRequest;
83
- }
84
- getTarget(variable) {
85
- if (hasCustomVariableSupport(this.datasource)) {
86
- return variable.state.query;
87
- }
88
- throw new Error("Couldn't create a target with supplied arguments.");
89
- }
90
- runRequest(_, request) {
91
- if (!hasCustomVariableSupport(this.datasource)) {
92
- return getEmptyMetricFindValueObservable();
93
- }
94
- if (!this.datasource.variables.query) {
95
- return this._runRequest(this.datasource, request);
96
- }
97
- return this._runRequest(this.datasource, request, this.datasource.variables.query.bind(this.datasource.variables));
98
- }
99
- }
100
- function getEmptyMetricFindValueObservable() {
101
- return of({ state: LoadingState.Done, series: [], timeRange: getDefaultTimeRange() });
102
- }
103
- function createQueryVariableRunnerFactory(datasource) {
104
- if (hasStandardVariableSupport(datasource)) {
105
- return new StandardQueryRunner(datasource, getRunRequest());
106
- }
107
- if (hasLegacyVariableSupport(datasource)) {
108
- return new LegacyQueryRunner(datasource);
109
- }
110
- if (hasCustomVariableSupport(datasource)) {
111
- return new CustomQueryRunner(datasource);
112
- }
113
- throw new Error(`Couldn't create a query runner for datasource ${datasource.type}`);
114
- }
115
- let createQueryVariableRunner = createQueryVariableRunnerFactory;
116
- function ensureVariableQueryModelIsADataQuery(variable) {
117
- var _a;
118
- const query = (_a = variable.state.query) != null ? _a : "";
119
- if (typeof query === "string") {
120
- return { query, refId: `variable-${variable.state.name}` };
121
- }
122
- if (query.refId == null) {
123
- return __spreadProps(__spreadValues({}, query), { refId: `variable-${variable.state.name}` });
124
- }
125
- return variable.state.query;
126
- }
127
-
128
- export { createQueryVariableRunner };
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUXVlcnlWYXJpYWJsZVJ1bm5lci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3ZhcmlhYmxlcy92YXJpYW50cy9xdWVyeS9jcmVhdGVRdWVyeVZhcmlhYmxlUnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20sIG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBEYXRhUXVlcnlSZXF1ZXN0LFxuICBEYXRhU291cmNlQXBpLFxuICBnZXREZWZhdWx0VGltZVJhbmdlLFxuICBMb2FkaW5nU3RhdGUsXG4gIFBhbmVsRGF0YSxcbiAgU3RhbmRhcmRWYXJpYWJsZVF1ZXJ5LFxufSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IGdldFJ1blJlcXVlc3QgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcblxuaW1wb3J0IHsgaGFzQ3VzdG9tVmFyaWFibGVTdXBwb3J0LCBoYXNMZWdhY3lWYXJpYWJsZVN1cHBvcnQsIGhhc1N0YW5kYXJkVmFyaWFibGVTdXBwb3J0IH0gZnJvbSAnLi9ndWFyZHMnO1xuXG5pbXBvcnQgeyBRdWVyeVZhcmlhYmxlIH0gZnJvbSAnLi9RdWVyeVZhcmlhYmxlJztcbmltcG9ydCB7IERhdGFRdWVyeSB9IGZyb20gJ0BncmFmYW5hL3NjaGVtYSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVubmVyQXJncyB7XG4gIHNlYXJjaEZpbHRlcj86IHN0cmluZztcbiAgdmFyaWFibGU6IFF1ZXJ5VmFyaWFibGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlSdW5uZXIge1xuICBnZXRUYXJnZXQ6ICh2YXJpYWJsZTogUXVlcnlWYXJpYWJsZSkgPT4gRGF0YVF1ZXJ5IHwgc3RyaW5nO1xuICBydW5SZXF1ZXN0OiAoYXJnczogUnVubmVyQXJncywgcmVxdWVzdDogRGF0YVF1ZXJ5UmVxdWVzdCkgPT4gT2JzZXJ2YWJsZTxQYW5lbERhdGE+O1xufVxuXG5jbGFzcyBTdGFuZGFyZFF1ZXJ5UnVubmVyIGltcGxlbWVudHMgUXVlcnlSdW5uZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhc291cmNlOiBEYXRhU291cmNlQXBpLCBwcml2YXRlIF9ydW5SZXF1ZXN0ID0gZ2V0UnVuUmVxdWVzdCgpKSB7fVxuXG4gIHB1YmxpYyBnZXRUYXJnZXQodmFyaWFibGU6IFF1ZXJ5VmFyaWFibGUpIHtcbiAgICBpZiAoaGFzU3RhbmRhcmRWYXJpYWJsZVN1cHBvcnQodGhpcy5kYXRhc291cmNlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YXNvdXJjZS52YXJpYWJsZXMudG9EYXRhUXVlcnkoZW5zdXJlVmFyaWFibGVRdWVyeU1vZGVsSXNBRGF0YVF1ZXJ5KHZhcmlhYmxlKSk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgY3JlYXRlIGEgdGFyZ2V0IHdpdGggc3VwcGxpZWQgYXJndW1lbnRzLlwiKTtcbiAgfVxuXG4gIHB1YmxpYyBydW5SZXF1ZXN0KF86IFJ1bm5lckFyZ3MsIHJlcXVlc3Q6IERhdGFRdWVyeVJlcXVlc3QpIHtcbiAgICBpZiAoIWhhc1N0YW5kYXJkVmFyaWFibGVTdXBwb3J0KHRoaXMuZGF0YXNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBnZXRFbXB0eU1ldHJpY0ZpbmRWYWx1ZU9ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGF0YXNvdXJjZS52YXJpYWJsZXMucXVlcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9ydW5SZXF1ZXN0KHRoaXMuZGF0YXNvdXJjZSwgcmVxdWVzdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3J1blJlcXVlc3QodGhpcy5kYXRhc291cmNlLCByZXF1ZXN0LCB0aGlzLmRhdGFzb3VyY2UudmFyaWFibGVzLnF1ZXJ5LmJpbmQodGhpcy5kYXRhc291cmNlLnZhcmlhYmxlcykpO1xuICB9XG59XG5cbmNsYXNzIExlZ2FjeVF1ZXJ5UnVubmVyIGltcGxlbWVudHMgUXVlcnlSdW5uZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhc291cmNlOiBEYXRhU291cmNlQXBpKSB7fVxuXG4gIHB1YmxpYyBnZXRUYXJnZXQodmFyaWFibGU6IFF1ZXJ5VmFyaWFibGUpIHtcbiAgICBpZiAoaGFzTGVnYWN5VmFyaWFibGVTdXBwb3J0KHRoaXMuZGF0YXNvdXJjZSkpIHtcbiAgICAgIHJldHVybiB2YXJpYWJsZS5zdGF0ZS5xdWVyeTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBjcmVhdGUgYSB0YXJnZXQgd2l0aCBzdXBwbGllZCBhcmd1bWVudHMuXCIpO1xuICB9XG5cbiAgcHVibGljIHJ1blJlcXVlc3QoeyB2YXJpYWJsZSwgc2VhcmNoRmlsdGVyIH06IFJ1bm5lckFyZ3MsIHJlcXVlc3Q6IERhdGFRdWVyeVJlcXVlc3QpIHtcbiAgICBpZiAoIWhhc0xlZ2FjeVZhcmlhYmxlU3VwcG9ydCh0aGlzLmRhdGFzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gZ2V0RW1wdHlNZXRyaWNGaW5kVmFsdWVPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLmRhdGFzb3VyY2UubWV0cmljRmluZFF1ZXJ5KHZhcmlhYmxlLnN0YXRlLnF1ZXJ5LCB7XG4gICAgICAgIC4uLnJlcXVlc3QsXG4gICAgICAgIC8vIHZhcmlhYmxlIGlzIHVzZWQgYnkgU1FMIGNvbW1vbiBkYXRhIHNvdXJjZVxuICAgICAgICB2YXJpYWJsZToge1xuICAgICAgICAgIG5hbWU6IHZhcmlhYmxlLnN0YXRlLm5hbWUsXG4gICAgICAgICAgdHlwZTogdmFyaWFibGUuc3RhdGUudHlwZSxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRmlsdGVyLFxuICAgICAgfSlcbiAgICApLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodmFsdWVzKSA9PiB7XG4gICAgICAgIGlmICghdmFsdWVzIHx8ICF2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIGdldEVtcHR5TWV0cmljRmluZFZhbHVlT2JzZXJ2YWJsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VyaWVzOiBhbnkgPSB2YWx1ZXM7XG4gICAgICAgIHJldHVybiBvZih7IHNlcmllcywgc3RhdGU6IExvYWRpbmdTdGF0ZS5Eb25lLCB0aW1lUmFuZ2U6IHJlcXVlc3QucmFuZ2UgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cblxuY2xhc3MgQ3VzdG9tUXVlcnlSdW5uZXIgaW1wbGVtZW50cyBRdWVyeVJ1bm5lciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFzb3VyY2U6IERhdGFTb3VyY2VBcGksIHByaXZhdGUgX3J1blJlcXVlc3QgPSBnZXRSdW5SZXF1ZXN0KCkpIHt9XG5cbiAgcHVibGljIGdldFRhcmdldCh2YXJpYWJsZTogUXVlcnlWYXJpYWJsZSkge1xuICAgIGlmIChoYXNDdXN0b21WYXJpYWJsZVN1cHBvcnQodGhpcy5kYXRhc291cmNlKSkge1xuICAgICAgcmV0dXJuIHZhcmlhYmxlLnN0YXRlLnF1ZXJ5O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGNyZWF0ZSBhIHRhcmdldCB3aXRoIHN1cHBsaWVkIGFyZ3VtZW50cy5cIik7XG4gIH1cblxuICBwdWJsaWMgcnVuUmVxdWVzdChfOiBSdW5uZXJBcmdzLCByZXF1ZXN0OiBEYXRhUXVlcnlSZXF1ZXN0KSB7XG4gICAgaWYgKCFoYXNDdXN0b21WYXJpYWJsZVN1cHBvcnQodGhpcy5kYXRhc291cmNlKSkge1xuICAgICAgcmV0dXJuIGdldEVtcHR5TWV0cmljRmluZFZhbHVlT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kYXRhc291cmNlLnZhcmlhYmxlcy5xdWVyeSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3J1blJlcXVlc3QodGhpcy5kYXRhc291cmNlLCByZXF1ZXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3J1blJlcXVlc3QodGhpcy5kYXRhc291cmNlLCByZXF1ZXN0LCB0aGlzLmRhdGFzb3VyY2UudmFyaWFibGVzLnF1ZXJ5LmJpbmQodGhpcy5kYXRhc291cmNlLnZhcmlhYmxlcykpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEVtcHR5TWV0cmljRmluZFZhbHVlT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFBhbmVsRGF0YT4ge1xuICByZXR1cm4gb2YoeyBzdGF0ZTogTG9hZGluZ1N0YXRlLkRvbmUsIHNlcmllczogW10sIHRpbWVSYW5nZTogZ2V0RGVmYXVsdFRpbWVSYW5nZSgpIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVRdWVyeVZhcmlhYmxlUnVubmVyRmFjdG9yeShkYXRhc291cmNlOiBEYXRhU291cmNlQXBpKTogUXVlcnlSdW5uZXIge1xuICBpZiAoaGFzU3RhbmRhcmRWYXJpYWJsZVN1cHBvcnQoZGF0YXNvdXJjZSkpIHtcbiAgICByZXR1cm4gbmV3IFN0YW5kYXJkUXVlcnlSdW5uZXIoZGF0YXNvdXJjZSwgZ2V0UnVuUmVxdWVzdCgpKTtcbiAgfVxuXG4gIGlmIChoYXNMZWdhY3lWYXJpYWJsZVN1cHBvcnQoZGF0YXNvdXJjZSkpIHtcbiAgICByZXR1cm4gbmV3IExlZ2FjeVF1ZXJ5UnVubmVyKGRhdGFzb3VyY2UpO1xuICB9XG5cbiAgaWYgKGhhc0N1c3RvbVZhcmlhYmxlU3VwcG9ydChkYXRhc291cmNlKSkge1xuICAgIHJldHVybiBuZXcgQ3VzdG9tUXVlcnlSdW5uZXIoZGF0YXNvdXJjZSk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGNyZWF0ZSBhIHF1ZXJ5IHJ1bm5lciBmb3IgZGF0YXNvdXJjZSAke2RhdGFzb3VyY2UudHlwZX1gKTtcbn1cblxuZXhwb3J0IGxldCBjcmVhdGVRdWVyeVZhcmlhYmxlUnVubmVyID0gY3JlYXRlUXVlcnlWYXJpYWJsZVJ1bm5lckZhY3Rvcnk7XG5cbi8qKlxuICogVXNlIG9ubHkgaW4gdGVzdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldENyZWF0ZVF1ZXJ5VmFyaWFibGVSdW5uZXJGYWN0b3J5KGZuOiAoZGF0YXNvdXJjZTogRGF0YVNvdXJjZUFwaSkgPT4gUXVlcnlSdW5uZXIpIHtcbiAgY3JlYXRlUXVlcnlWYXJpYWJsZVJ1bm5lciA9IGZuO1xufVxuXG4vKipcbiAqIEZpeGVzIG9sZCBsZWdhY3kgcXVlcnkgc3RyaW5nIG1vZGVscyBhbmQgYWRkcyByZWZJZCBpZiBtaXNzaW5nXG4gKi9cbmZ1bmN0aW9uIGVuc3VyZVZhcmlhYmxlUXVlcnlNb2RlbElzQURhdGFRdWVyeSh2YXJpYWJsZTogUXVlcnlWYXJpYWJsZSk6IFN0YW5kYXJkVmFyaWFibGVRdWVyeSB7XG4gIGNvbnN0IHF1ZXJ5ID0gdmFyaWFibGUuc3RhdGUucXVlcnkgPz8gJyc7XG5cbiAgLy8gVHVybiBpbnRvIHF1ZXJ5IG9iamVjdCBpZiBpdCdzIGp1c3QgYSBzdHJpbmdcbiAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4geyBxdWVyeSwgcmVmSWQ6IGB2YXJpYWJsZS0ke3ZhcmlhYmxlLnN0YXRlLm5hbWV9YCB9O1xuICB9XG5cbiAgLy8gQWRkIHBvdGVudGlhbGx5IG1pc3NpbmcgcmVmSWRcbiAgaWYgKHF1ZXJ5LnJlZklkID09IG51bGwpIHtcbiAgICByZXR1cm4geyAuLi5xdWVyeSwgcmVmSWQ6IGB2YXJpYWJsZS0ke3ZhcmlhYmxlLnN0YXRlLm5hbWV9YCB9IGFzIFN0YW5kYXJkVmFyaWFibGVRdWVyeTtcbiAgfVxuXG4gIHJldHVybiB2YXJpYWJsZS5zdGF0ZS5xdWVyeSBhcyBTdGFuZGFyZFZhcmlhYmxlUXVlcnk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkJBLE1BQU0sbUJBQTJDLENBQUE7QUFBQSxFQUN4QyxXQUFvQixDQUFBLFVBQUEsRUFBbUMsV0FBYyxHQUFBLGFBQUEsRUFBaUIsRUFBQTtBQUFsRSxJ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
@@ -1,28 +0,0 @@
1
- import { VariableSupportType } from '@grafana/data';
2
-
3
- const hasLegacyVariableSupport = (datasource) => {
4
- return Boolean(datasource.metricFindQuery) && !Boolean(datasource.variables);
5
- };
6
- const hasStandardVariableSupport = (datasource) => {
7
- if (!datasource.variables) {
8
- return false;
9
- }
10
- if (datasource.variables.getType() !== VariableSupportType.Standard) {
11
- return false;
12
- }
13
- const variableSupport = datasource.variables;
14
- return "toDataQuery" in variableSupport && Boolean(variableSupport.toDataQuery);
15
- };
16
- const hasCustomVariableSupport = (datasource) => {
17
- if (!datasource.variables) {
18
- return false;
19
- }
20
- if (datasource.variables.getType() !== VariableSupportType.Custom) {
21
- return false;
22
- }
23
- const variableSupport = datasource.variables;
24
- return "query" in variableSupport && "editor" in variableSupport && Boolean(variableSupport.query) && Boolean(variableSupport.editor);
25
- };
26
-
27
- export { hasCustomVariableSupport, hasLegacyVariableSupport, hasStandardVariableSupport };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmRzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdmFyaWFibGVzL3ZhcmlhbnRzL3F1ZXJ5L2d1YXJkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEYXRhUXVlcnksXG4gIERhdGFTb3VyY2VKc29uRGF0YSxcbiAgRGF0YVNvdXJjZUFwaSxcbiAgTWV0cmljRmluZFZhbHVlLFxuICBWYXJpYWJsZVN1cHBvcnRUeXBlLFxuICBTdGFuZGFyZFZhcmlhYmxlUXVlcnksXG4gIERhdGFRdWVyeVJlcXVlc3QsXG4gIERhdGFRdWVyeVJlc3BvbnNlLFxuICBRdWVyeUVkaXRvclByb3BzLFxufSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IFRlbXBsYXRlU3J2IH0gZnJvbSAnQGdyYWZhbmEvcnVudGltZSc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogSW50ZXJmYWNlcyBhbmQgZ3VhcmRzIGJlbG93IGFyZSBjb3BpZWQgZnJvbSBjb3JlLlxuICogTm90IGV4cG9zaW5nIHZpYSBncmFmYW5hL2RhdGEgYXMgdGhlc2UgYXJlIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGluIGNvbnRleHQgb3RoZXIgdGhhbiB2YXJpYWJsZXMuXG4gKi9cblxuaW50ZXJmYWNlIERhdGFTb3VyY2VXaXRoTGVnYWN5VmFyaWFibGVTdXBwb3J0PFxuICBUUXVlcnkgZXh0ZW5kcyBEYXRhUXVlcnkgPSBEYXRhUXVlcnksXG4gIFRPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZUpzb25EYXRhID0gRGF0YVNvdXJjZUpzb25EYXRhXG4+IGV4dGVuZHMgRGF0YVNvdXJjZUFwaTxUUXVlcnksIFRPcHRpb25zPiB7XG4gIG1ldHJpY0ZpbmRRdWVyeShxdWVyeTogYW55LCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxNZXRyaWNGaW5kVmFsdWVbXT47XG4gIHZhcmlhYmxlczogdW5kZWZpbmVkO1xufVxuXG5pbnRlcmZhY2UgRGF0YVNvdXJjZVdpdGhTdGFuZGFyZFZhcmlhYmxlU3VwcG9ydDxcbiAgVFF1ZXJ5IGV4dGVuZHMgRGF0YVF1ZXJ5ID0gRGF0YVF1ZXJ5LFxuICBUT3B0aW9ucyBleHRlbmRzIERhdGFTb3VyY2VKc29uRGF0YSA9IERhdGFTb3VyY2VKc29uRGF0YVxuPiBleHRlbmRzIERhdGFTb3VyY2VBcGk8VFF1ZXJ5LCBUT3B0aW9ucz4ge1xuICB2YXJpYWJsZXM6IHtcbiAgICBnZXRUeXBlKCk6IFZhcmlhYmxlU3VwcG9ydFR5cGU7XG4gICAgdG9EYXRhUXVlcnkocXVlcnk6IFN0YW5kYXJkVmFyaWFibGVRdWVyeSk6IFRRdWVyeTtcbiAgICBxdWVyeShyZXF1ZXN0OiBEYXRhUXVlcnlSZXF1ZXN0PFRRdWVyeT4pOiBPYnNlcnZhYmxlPERhdGFRdWVyeVJlc3BvbnNlPjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIERhdGFTb3VyY2VXaXRoQ3VzdG9tVmFyaWFibGVTdXBwb3J0PFxuICBUUXVlcnkgZXh0ZW5kcyBEYXRhUXVlcnkgPSBEYXRhUXVlcnksXG4gIFRPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZUpzb25EYXRhID0gRGF0YVNvdXJjZUpzb25EYXRhXG4+IGV4dGVuZHMgRGF0YVNvdXJjZUFwaTxUUXVlcnksIFRPcHRpb25zPiB7XG4gIHZhcmlhYmxlczoge1xuICAgIGdldFR5cGUoKTogVmFyaWFibGVTdXBwb3J0VHlwZTtcbiAgICBlZGl0b3I6IFZhcmlhYmxlUXVlcnlFZGl0b3JUeXBlO1xuICAgIHF1ZXJ5KHJlcXVlc3Q6IERhdGFRdWVyeVJlcXVlc3Q8VFF1ZXJ5Pik6IE9ic2VydmFibGU8RGF0YVF1ZXJ5UmVzcG9uc2U+O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgVmFyaWFibGVRdWVyeUVkaXRvclByb3BzIHtcbiAgcXVlcnk6IGFueTtcbiAgb25DaGFuZ2U6IChxdWVyeTogYW55LCBkZWZpbml0aW9uOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGRhdGFzb3VyY2U6IGFueTtcbiAgdGVtcGxhdGVTcnY6IFRlbXBsYXRlU3J2O1xufVxuXG50eXBlIFZhcmlhYmxlUXVlcnlFZGl0b3JUeXBlPFxuICBUUXVlcnkgZXh0ZW5kcyBEYXRhUXVlcnkgPSBEYXRhUXVlcnksXG4gIFRPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZUpzb25EYXRhID0gRGF0YVNvdXJjZUpzb25EYXRhXG4+ID0gQ29tcG9uZW50VHlwZTxWYXJpYWJsZVF1ZXJ5RWRpdG9yUHJvcHM+IHwgQ29tcG9uZW50VHlwZTxRdWVyeUVkaXRvclByb3BzPGFueSwgVFF1ZXJ5LCBUT3B0aW9ucywgYW55Pj4gfCBudWxsO1xuXG5leHBvcnQgY29uc3QgaGFzTGVnYWN5VmFyaWFibGVTdXBwb3J0ID0gPFxuICBUUXVlcnkgZXh0ZW5kcyBEYXRhUXVlcnkgPSBEYXRhUXVlcnksXG4gIFRPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZUpzb25EYXRhID0gRGF0YVNvdXJjZUpzb25EYXRhXG4+KFxuICBkYXRhc291cmNlOiBEYXRhU291cmNlQXBpPFRRdWVyeSwgVE9wdGlvbnM+XG4pOiBkYXRhc291cmNlIGlzIERhdGFTb3VyY2VXaXRoTGVnYWN5VmFyaWFibGVTdXBwb3J0PFRRdWVyeSwgVE9wdGlvbnM+ID0+IHtcbiAgcmV0dXJuIEJvb2xlYW4oZGF0YXNvdXJjZS5tZXRyaWNGaW5kUXVlcnkpICYmICFCb29sZWFuKGRhdGFzb3VyY2UudmFyaWFibGVzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNTdGFuZGFyZFZhcmlhYmxlU3VwcG9ydCA9IDxcbiAgVFF1ZXJ5IGV4dGVuZHMgRGF0YVF1ZXJ5ID0gRGF0YVF1ZXJ5LFxuICBUT3B0aW9ucyBleHRlbmRzIERhdGFTb3VyY2VKc29uRGF0YSA9IERhdGFTb3VyY2VKc29uRGF0YVxuPihcbiAgZGF0YXNvdXJjZTogRGF0YVNvdXJjZUFwaTxUUXVlcnksIFRPcHRpb25zPlxuKTogZGF0YXNvdXJjZSBpcyBEYXRhU291cmNlV2l0aFN0YW5kYXJkVmFyaWFibGVTdXBwb3J0PFRRdWVyeSwgVE9wdGlvbnM+ID0+IHtcbiAgaWYgKCFkYXRhc291cmNlLnZhcmlhYmxlcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChkYXRhc291cmNlLnZhcmlhYmxlcy5nZXRUeXBlKCkgIT09IFZhcmlhYmxlU3VwcG9ydFR5cGUuU3RhbmRhcmQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB2YXJpYWJsZVN1cHBvcnQgPSBkYXRhc291cmNlLnZhcmlhYmxlcztcbiAgcmV0dXJuICd0b0RhdGFRdWVyeScgaW4gdmFyaWFibGVTdXBwb3J0ICYmIEJvb2xlYW4odmFyaWFibGVTdXBwb3J0LnRvRGF0YVF1ZXJ5KTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNDdXN0b21WYXJpYWJsZVN1cHBvcnQgPSA8XG4gIFRRdWVyeSBleHRlbmRzIERhdGFRdWVyeSA9IERhdGFRdWVyeSxcbiAgVE9wdGlvbnMgZXh0ZW5kcyBEYXRhU291cmNlSnNvbkRhdGEgPSBEYXRhU291cmNlSnNvbkRhdGFcbj4oXG4gIGRhdGFzb3VyY2U6IERhdGFTb3VyY2VBcGk8VFF1ZXJ5LCBUT3B0aW9ucz5cbik6IGRhdGFzb3VyY2UgaXMgRGF0YVNvdXJjZVdpdGhDdXN0b21WYXJpYWJsZVN1cHBvcnQ8VFF1ZXJ5LCBUT3B0aW9ucz4gPT4ge1xuICBpZiAoIWRhdGFzb3VyY2UudmFyaWFibGVzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGRhdGFzb3VyY2UudmFyaWFibGVzLmdldFR5cGUoKSAhPT0gVmFyaWFibGVTdXBwb3J0VHlwZS5DdXN0b20pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB2YXJpYWJsZVN1cHBvcnQgPSBkYXRhc291cmNlLnZhcmlhYmxlcztcbiAgcmV0dXJuIChcbiAgICAncXVlcnknIGluIHZhcmlhYmxlU3VwcG9ydCAmJlxuICAgICdlZGl0b3InIGluIHZhcmlhYmxlU3VwcG9ydCAmJlxuICAgIEJvb2xlYW4odmFyaWFibGVTdXBwb3J0LnF1ZXJ5KSAmJlxuICAgIEJvb2xlYW4odmFyaWFibGVTdXBwb3J0LmVkaXRvcilcbiAgKTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErRGEsTUFBQSx3QkFBQSxHQUEyQixDQUl0QyxVQUN3RSxLQUFBO0FBQ3hFLEVBQUEsT0FBTyxRQUFRLFVBQVcsQ0FBQSxlQUFlLEtBQUssQ0FBQyxPQUFBLENBQVEsV0FBVyxTQUFTLENBQUEsQ0FBQTtBQUM3RSxFQUFBO0FBRWEsTUFBQSwwQkFBQSxHQUE2QixDQUl4QyxVQUMwRSxLQUFBO0FBQzFFLEVBQUksSUFBQSxDQUFDLFdBQVcsU0FBVyxFQUFBO0FBQ3pCLElBQU8sT0FBQSxLQUFBLENBQUE7QUFBQSxHQUNUO0FBRUEsRUFBQSxJQUFJLFVBQVcsQ0FBQSxTQUFBLENBQVUsT0FBUSxFQUFBLEtBQU0sb0JBQW9CLFFBQVUsRUFBQTtBQUNuRSxJQUFPLE9BQUEsS0FBQSxDQUFBO0FBQUEsR0FDVDtBQUVBLEVBQUEsTUFBTSxrQkFBa0IsVUFBVyxDQUFBLFNBQUEsQ0FBQTtBQUNuQyxFQUFBLE9BQU8sYUFBaUIsSUFBQSxlQUFBLElBQW1CLE9BQVEsQ0FBQSxlQUFBLENBQWdCLFdBQVcsQ0FBQSxDQUFBO0FBQ2hGLEVBQUE7QUFFYSxNQUFBLHdCQUFBLEdBQTJCLENBSXRDLFVBQ3dFLEtBQUE7QUFDeEUsRUFBSSxJQUFBLENBQUMsV0FBVyxTQUFXLEVBQUE7QUFDekIsSUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ1Q7QUFFQSxFQUFBLElBQUksVUFBVyxDQUFBLFNBQUEsQ0FBVSxPQUFRLEVBQUEsS0FBTSxvQkFBb0IsTUFBUSxFQUFBO0FBQ2pFLElBQU8sT0FBQSxLQUFBLENBQUE7QUFBQSxHQUNUO0FBRUEsRUFBQSxNQUFNLGtCQUFrQixVQUFXLENBQUEsU0FBQSxDQUFBO0FBQ25DLEVBQ0UsT0FBQSxPQUFBLElBQVcsZUFDWCxJQUFBLFFBQUEsSUFBWSxlQUNaLElBQUEsT0FBQSxDQUFRLGdCQUFnQixLQUFLLENBQUEsSUFDN0IsT0FBUSxDQUFBLGVBQUEsQ0FBZ0IsTUFBTSxDQUFBLENBQUE7QUFFbEM7Ozs7In0=
@@ -1,96 +0,0 @@
1
- import { getProcessedDataFrames, getFieldDisplayName, FieldType, isDataFrame } from '@grafana/data';
2
- import { map } from 'rxjs';
3
-
4
- function toMetricFindValues() {
5
- return (source) => source.pipe(
6
- map((panelData) => {
7
- const frames = panelData.series;
8
- if (!frames || !frames.length) {
9
- return [];
10
- }
11
- if (areMetricFindValues(frames)) {
12
- return frames;
13
- }
14
- if (frames[0].fields.length === 0) {
15
- return [];
16
- }
17
- const processedDataFrames = getProcessedDataFrames(frames);
18
- const metrics = [];
19
- let valueIndex = -1;
20
- let textIndex = -1;
21
- let stringIndex = -1;
22
- let expandableIndex = -1;
23
- for (const frame of processedDataFrames) {
24
- for (let index = 0; index < frame.fields.length; index++) {
25
- const field = frame.fields[index];
26
- const fieldName = getFieldDisplayName(field, frame, frames).toLowerCase();
27
- if (field.type === FieldType.string && stringIndex === -1) {
28
- stringIndex = index;
29
- }
30
- if (fieldName === "text" && field.type === FieldType.string && textIndex === -1) {
31
- textIndex = index;
32
- }
33
- if (fieldName === "value" && field.type === FieldType.string && valueIndex === -1) {
34
- valueIndex = index;
35
- }
36
- if (fieldName === "expandable" && (field.type === FieldType.boolean || field.type === FieldType.number) && expandableIndex === -1) {
37
- expandableIndex = index;
38
- }
39
- }
40
- }
41
- if (stringIndex === -1) {
42
- throw new Error("Couldn't find any field of type string in the results.");
43
- }
44
- for (const frame of frames) {
45
- for (let index = 0; index < frame.length; index++) {
46
- const expandable = expandableIndex !== -1 ? frame.fields[expandableIndex].values.get(index) : void 0;
47
- const string = frame.fields[stringIndex].values.get(index);
48
- const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) : "";
49
- const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) : "";
50
- if (valueIndex === -1 && textIndex === -1) {
51
- metrics.push({ text: string, value: string, expandable });
52
- continue;
53
- }
54
- if (valueIndex === -1 && textIndex !== -1) {
55
- metrics.push({ text, value: text, expandable });
56
- continue;
57
- }
58
- if (valueIndex !== -1 && textIndex === -1) {
59
- metrics.push({ text: value, value, expandable });
60
- continue;
61
- }
62
- metrics.push({ text, value, expandable });
63
- }
64
- }
65
- return metrics;
66
- })
67
- );
68
- }
69
- function areMetricFindValues(data) {
70
- if (!data) {
71
- return false;
72
- }
73
- if (!data.length) {
74
- return true;
75
- }
76
- const firstValue = data[0];
77
- if (isDataFrame(firstValue)) {
78
- return false;
79
- }
80
- for (const firstValueKey in firstValue) {
81
- if (!firstValue.hasOwnProperty(firstValueKey)) {
82
- continue;
83
- }
84
- if (firstValue[firstValueKey] !== null && typeof firstValue[firstValueKey] !== "string" && typeof firstValue[firstValueKey] !== "number") {
85
- continue;
86
- }
87
- const key = firstValueKey.toLowerCase();
88
- if (key === "text" || key === "value") {
89
- return true;
90
- }
91
- }
92
- return false;
93
- }
94
-
95
- export { toMetricFindValues };
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9NZXRyaWNGaW5kVmFsdWVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdmFyaWFibGVzL3ZhcmlhbnRzL3F1ZXJ5L3RvTWV0cmljRmluZFZhbHVlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGaWVsZFR5cGUsXG4gIGdldEZpZWxkRGlzcGxheU5hbWUsXG4gIGlzRGF0YUZyYW1lLFxuICBNZXRyaWNGaW5kVmFsdWUsXG4gIFBhbmVsRGF0YSxcbiAgZ2V0UHJvY2Vzc2VkRGF0YUZyYW1lcyxcbn0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5pbXBvcnQgeyBtYXAsIE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvTWV0cmljRmluZFZhbHVlcygpOiBPcGVyYXRvckZ1bmN0aW9uPFBhbmVsRGF0YSwgTWV0cmljRmluZFZhbHVlW10+IHtcbiAgcmV0dXJuIChzb3VyY2UpID0+XG4gICAgc291cmNlLnBpcGUoXG4gICAgICBtYXAoKHBhbmVsRGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBmcmFtZXMgPSBwYW5lbERhdGEuc2VyaWVzO1xuICAgICAgICBpZiAoIWZyYW1lcyB8fCAhZnJhbWVzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhcmVNZXRyaWNGaW5kVmFsdWVzKGZyYW1lcykpIHtcbiAgICAgICAgICByZXR1cm4gZnJhbWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZyYW1lc1swXS5maWVsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkRGF0YUZyYW1lcyA9IGdldFByb2Nlc3NlZERhdGFGcmFtZXMoZnJhbWVzKTtcbiAgICAgICAgY29uc3QgbWV0cmljczogTWV0cmljRmluZFZhbHVlW10gPSBbXTtcblxuICAgICAgICBsZXQgdmFsdWVJbmRleCA9IC0xO1xuICAgICAgICBsZXQgdGV4dEluZGV4ID0gLTE7XG4gICAgICAgIGxldCBzdHJpbmdJbmRleCA9IC0xO1xuICAgICAgICBsZXQgZXhwYW5kYWJsZUluZGV4ID0gLTE7XG5cbiAgICAgICAgZm9yIChjb25zdCBmcmFtZSBvZiBwcm9jZXNzZWREYXRhRnJhbWVzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZyYW1lLmZpZWxkcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZnJhbWUuZmllbGRzW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldEZpZWxkRGlzcGxheU5hbWUoZmllbGQsIGZyYW1lLCBmcmFtZXMpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuc3RyaW5nICYmIHN0cmluZ0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBzdHJpbmdJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGROYW1lID09PSAndGV4dCcgJiYgZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLnN0cmluZyAmJiB0ZXh0SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgIHRleHRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGROYW1lID09PSAndmFsdWUnICYmIGZpZWxkLnR5cGUgPT09IEZpZWxkVHlwZS5zdHJpbmcgJiYgdmFsdWVJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgdmFsdWVJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGZpZWxkTmFtZSA9PT0gJ2V4cGFuZGFibGUnICYmXG4gICAgICAgICAgICAgIChmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuYm9vbGVhbiB8fCBmaWVsZC50eXBlID09PSBGaWVsZFR5cGUubnVtYmVyKSAmJlxuICAgICAgICAgICAgICBleHBhbmRhYmxlSW5kZXggPT09IC0xXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgZXhwYW5kYWJsZUluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmluZ0luZGV4ID09PSAtMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYW55IGZpZWxkIG9mIHR5cGUgc3RyaW5nIGluIHRoZSByZXN1bHRzLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgZnJhbWUgb2YgZnJhbWVzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZyYW1lLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgZXhwYW5kYWJsZSA9IGV4cGFuZGFibGVJbmRleCAhPT0gLTEgPyBmcmFtZS5maWVsZHNbZXhwYW5kYWJsZUluZGV4XS52YWx1ZXMuZ2V0KGluZGV4KSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHN0cmluZyA9IGZyYW1lLmZpZWxkc1tzdHJpbmdJbmRleF0udmFsdWVzLmdldChpbmRleCk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dEluZGV4ICE9PSAtMSA/IGZyYW1lLmZpZWxkc1t0ZXh0SW5kZXhdLnZhbHVlcy5nZXQoaW5kZXgpIDogJyc7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlSW5kZXggIT09IC0xID8gZnJhbWUuZmllbGRzW3ZhbHVlSW5kZXhdLnZhbHVlcy5nZXQoaW5kZXgpIDogJyc7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZUluZGV4ID09PSAtMSAmJiB0ZXh0SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgIG1ldHJpY3MucHVzaCh7IHRleHQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZXhwYW5kYWJsZSB9KTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZUluZGV4ID09PSAtMSAmJiB0ZXh0SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIG1ldHJpY3MucHVzaCh7IHRleHQsIHZhbHVlOiB0ZXh0LCBleHBhbmRhYmxlIH0pO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZhbHVlSW5kZXggIT09IC0xICYmIHRleHRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgbWV0cmljcy5wdXNoKHsgdGV4dDogdmFsdWUsIHZhbHVlLCBleHBhbmRhYmxlIH0pO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWV0cmljcy5wdXNoKHsgdGV4dCwgdmFsdWUsIGV4cGFuZGFibGUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1ldHJpY3M7XG4gICAgICB9KVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIGFyZU1ldHJpY0ZpbmRWYWx1ZXMoZGF0YTogYW55W10pOiBkYXRhIGlzIE1ldHJpY0ZpbmRWYWx1ZVtdIHtcbiAgaWYgKCFkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFkYXRhLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3QgZmlyc3RWYWx1ZTogYW55ID0gZGF0YVswXTtcblxuICBpZiAoaXNEYXRhRnJhbWUoZmlyc3RWYWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmb3IgKGNvbnN0IGZpcnN0VmFsdWVLZXkgaW4gZmlyc3RWYWx1ZSkge1xuICAgIGlmICghZmlyc3RWYWx1ZS5oYXNPd25Qcm9wZXJ0eShmaXJzdFZhbHVlS2V5KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgZmlyc3RWYWx1ZVtmaXJzdFZhbHVlS2V5XSAhPT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIGZpcnN0VmFsdWVbZmlyc3RWYWx1ZUtleV0gIT09ICdzdHJpbmcnICYmXG4gICAgICB0eXBlb2YgZmlyc3RWYWx1ZVtmaXJzdFZhbHVlS2V5XSAhPT0gJ251bWJlcidcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGtleSA9IGZpcnN0VmFsdWVLZXkudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChrZXkgPT09ICd0ZXh0JyB8fCBrZXkgPT09ICd2YWx1ZScpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVTyxTQUFTLGtCQUFxRSxHQUFBO0FBQ25GLEVBQU8sT0FBQSxDQUFDLFdBQ04sTUFBTyxDQUFBLElBQUE7QUFBQSxJQUNMLEdBQUEsQ0FBSSxDQUFDLFNBQWMsS0FBQTtBQUNqQixNQUFBLE1BQU0sU0FBUyxTQUFVLENBQUEsTUFBQSxDQUFBO0FBQ3pCLE1BQUEsSUFBSSxDQUFDLE1BQUEsSUFBVSxDQUFDLE1BQUEsQ0FBTyxNQUFRLEVBQUE7QUFDN0IsUUFBQSxPQUFPLEVBQUMsQ0FBQTtBQUFBLE9BQ1Y7QUFFQSxNQUFJLElBQUEsbUJBQUEsQ0FBb0IsTUFBTSxDQUFHLEVBQUE7QUFDL0IsUUFBTyxPQUFBLE1BQUEsQ0FBQTtBQUFBLE9BQ1Q7QUFFQSxNQUFBLElBQUksTUFBTyxDQUFBLENBQUEsQ0FBQSxDQUFHLE1BQU8sQ0FBQSxNQUFBLEtBQVcsQ0FBRyxFQUFBO0FBQ2pDLFFBQUEsT0FBTyxFQUFDLENBQUE7QUFBQSxPQUNWO0FBRUEsTUFBTSxNQUFBLG1CQUFBLEdBQXNCLHVCQUF1QixNQUFNLENBQUEsQ0FBQTtBQUN6RCxNQUFBLE1BQU0sVUFB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
@@ -1,124 +0,0 @@
1
- import { isNumber, uniqBy, sortBy, toLower } from 'lodash';
2
- import { stringToJsRegex, VariableSort } from '@grafana/data';
3
-
4
- function metricNamesToVariableValues(variableRegEx, sort, metricNames) {
5
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
6
- let regex;
7
- let options = [];
8
- if (variableRegEx) {
9
- regex = stringToJsRegex(variableRegEx);
10
- }
11
- for (let i = 0; i < metricNames.length; i++) {
12
- const item = metricNames[i];
13
- let text = (_b = (_a = item.text) != null ? _a : item.value) != null ? _b : "";
14
- let value = (_d = (_c = item.value) != null ? _c : item.text) != null ? _d : "";
15
- if (isNumber(value)) {
16
- value = value.toString();
17
- }
18
- if (isNumber(text)) {
19
- text = text.toString();
20
- }
21
- if (regex) {
22
- const matches = getAllMatches(value, regex);
23
- if (!matches.length) {
24
- continue;
25
- }
26
- const valueGroup = matches.find((m) => m.groups && m.groups.value);
27
- const textGroup = matches.find((m) => m.groups && m.groups.text);
28
- const firstMatch = matches.find((m) => m.length > 1);
29
- const manyMatches = matches.length > 1 && firstMatch;
30
- if (valueGroup || textGroup) {
31
- value = (_g = (_e = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _e.value) != null ? _g : (_f = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _f.text;
32
- text = (_j = (_h = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _h.text) != null ? _j : (_i = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _i.value;
33
- } else if (manyMatches) {
34
- for (let j = 0; j < matches.length; j++) {
35
- const match = matches[j];
36
- options.push({ label: match[1], value: match[1] });
37
- }
38
- continue;
39
- } else if (firstMatch) {
40
- text = firstMatch[1];
41
- value = firstMatch[1];
42
- }
43
- }
44
- options.push({ label: text, value });
45
- }
46
- options = uniqBy(options, "value");
47
- return sortVariableValues(options, sort);
48
- }
49
- const getAllMatches = (str, regex) => {
50
- const results = [];
51
- let matches = null;
52
- regex.lastIndex = 0;
53
- do {
54
- matches = regex.exec(str);
55
- if (matches) {
56
- results.push(matches);
57
- }
58
- } while (regex.global && matches && matches[0] !== "" && matches[0] !== void 0);
59
- return results;
60
- };
61
- const sortVariableValues = (options, sortOrder) => {
62
- if (sortOrder === VariableSort.disabled) {
63
- return options;
64
- }
65
- const sortByNumeric = (opt) => {
66
- if (!opt.text) {
67
- return -1;
68
- }
69
- const matches = opt.text.match(/.*?(\d+).*/);
70
- if (!matches || matches.length < 2) {
71
- return -1;
72
- } else {
73
- return parseInt(matches[1], 10);
74
- }
75
- };
76
- const sortByNaturalSort = (options2) => {
77
- return options2.sort((a, b) => {
78
- if (!a.text) {
79
- return -1;
80
- }
81
- if (!b.text) {
82
- return 1;
83
- }
84
- return a.text.localeCompare(b.text, void 0, { numeric: true });
85
- });
86
- };
87
- switch (sortOrder) {
88
- case VariableSort.alphabeticalAsc:
89
- options = sortBy(options, "label");
90
- break;
91
- case VariableSort.alphabeticalDesc:
92
- options = sortBy(options, "label").reverse();
93
- break;
94
- case VariableSort.numericalAsc:
95
- options = sortBy(options, sortByNumeric);
96
- break;
97
- case VariableSort.numericalDesc:
98
- options = sortBy(options, sortByNumeric);
99
- options = options.reverse();
100
- break;
101
- case VariableSort.alphabeticalCaseInsensitiveAsc:
102
- options = sortBy(options, (opt) => {
103
- return toLower(opt.label);
104
- });
105
- break;
106
- case VariableSort.alphabeticalCaseInsensitiveDesc:
107
- options = sortBy(options, (opt) => {
108
- return toLower(opt.label);
109
- });
110
- options = options.reverse();
111
- break;
112
- case (VariableSort.naturalAsc || 7):
113
- options = sortByNaturalSort(options);
114
- break;
115
- case (VariableSort.naturalDesc || 8):
116
- options = sortByNaturalSort(options);
117
- options = options.reverse();
118
- break;
119
- }
120
- return options;
121
- };
122
-
123
- export { metricNamesToVariableValues, sortVariableValues };
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy92YXJpYWJsZXMvdmFyaWFudHMvcXVlcnkvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOdW1iZXIsIHNvcnRCeSwgdG9Mb3dlciwgdW5pcUJ5IH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgc3RyaW5nVG9Kc1JlZ2V4LCBWYXJpYWJsZVNvcnQgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcblxuaW1wb3J0IHsgVmFyaWFibGVWYWx1ZU9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldHJpY05hbWVzVG9WYXJpYWJsZVZhbHVlcyh2YXJpYWJsZVJlZ0V4OiBzdHJpbmcsIHNvcnQ6IFZhcmlhYmxlU29ydCwgbWV0cmljTmFtZXM6IGFueVtdKSB7XG4gIGxldCByZWdleDtcbiAgbGV0IG9wdGlvbnM6IFZhcmlhYmxlVmFsdWVPcHRpb25bXSA9IFtdO1xuXG4gIGlmICh2YXJpYWJsZVJlZ0V4KSB7XG4gICAgcmVnZXggPSBzdHJpbmdUb0pzUmVnZXgodmFyaWFibGVSZWdFeCk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldHJpY05hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgaXRlbSA9IG1ldHJpY05hbWVzW2ldO1xuICAgIGxldCB0ZXh0ID0gaXRlbS50ZXh0ID8/IGl0ZW0udmFsdWUgPz8gJyc7XG4gICAgbGV0IHZhbHVlID0gaXRlbS52YWx1ZSA/PyBpdGVtLnRleHQgPz8gJyc7XG5cbiAgICBpZiAoaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKGlzTnVtYmVyKHRleHQpKSB7XG4gICAgICB0ZXh0ID0gdGV4dC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmIChyZWdleCkge1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGdldEFsbE1hdGNoZXModmFsdWUsIHJlZ2V4KTtcbiAgICAgIGlmICghbWF0Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlR3JvdXAgPSBtYXRjaGVzLmZpbmQoKG0pID0+IG0uZ3JvdXBzICYmIG0uZ3JvdXBzLnZhbHVlKTtcbiAgICAgIGNvbnN0IHRleHRHcm91cCA9IG1hdGNoZXMuZmluZCgobSkgPT4gbS5ncm91cHMgJiYgbS5ncm91cHMudGV4dCk7XG4gICAgICBjb25zdCBmaXJzdE1hdGNoID0gbWF0Y2hlcy5maW5kKChtKSA9PiBtLmxlbmd0aCA+IDEpO1xuICAgICAgY29uc3QgbWFueU1hdGNoZXMgPSBtYXRjaGVzLmxlbmd0aCA+IDEgJiYgZmlyc3RNYXRjaDtcblxuICAgICAgaWYgKHZhbHVlR3JvdXAgfHwgdGV4dEdyb3VwKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVHcm91cD8uZ3JvdXBzPy52YWx1ZSA/PyB0ZXh0R3JvdXA/Lmdyb3Vwcz8udGV4dDtcbiAgICAgICAgdGV4dCA9IHRleHRHcm91cD8uZ3JvdXBzPy50ZXh0ID8/IHZhbHVlR3JvdXA/Lmdyb3Vwcz8udmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKG1hbnlNYXRjaGVzKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbWF0Y2hlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGNvbnN0IG1hdGNoID0gbWF0Y2hlc1tqXTtcbiAgICAgICAgICBvcHRpb25zLnB1c2goeyBsYWJlbDogbWF0Y2hbMV0sIHZhbHVlOiBtYXRjaFsxXSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSBpZiAoZmlyc3RNYXRjaCkge1xuICAgICAgICB0ZXh0ID0gZmlyc3RNYXRjaFsxXTtcbiAgICAgICAgdmFsdWUgPSBmaXJzdE1hdGNoWzFdO1xuICAgICAgfVxuICAgIH1cblxuICAgIG9wdGlvbnMucHVzaCh7IGxhYmVsOiB0ZXh0LCB2YWx1ZTogdmFsdWUgfSk7XG4gIH1cblxuICBvcHRpb25zID0gdW5pcUJ5KG9wdGlvbnMsICd2YWx1ZScpO1xuICByZXR1cm4gc29ydFZhcmlhYmxlVmFsdWVzKG9wdGlvbnMsIHNvcnQpO1xufVxuXG5jb25zdCBnZXRBbGxNYXRjaGVzID0gKHN0cjogc3RyaW5nLCByZWdleDogUmVnRXhwKTogUmVnRXhwRXhlY0FycmF5W10gPT4ge1xuICBjb25zdCByZXN1bHRzOiBSZWdFeHBFeGVjQXJyYXlbXSA9IFtdO1xuICBsZXQgbWF0Y2hlcyA9IG51bGw7XG5cbiAgcmVnZXgubGFzdEluZGV4ID0gMDtcblxuICBkbyB7XG4gICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMoc3RyKTtcbiAgICBpZiAobWF0Y2hlcykge1xuICAgICAgcmVzdWx0cy5wdXNoKG1hdGNoZXMpO1xuICAgIH1cbiAgfSB3aGlsZSAocmVnZXguZ2xvYmFsICYmIG1hdGNoZXMgJiYgbWF0Y2hlc1swXSAhPT0gJycgJiYgbWF0Y2hlc1swXSAhPT0gdW5kZWZpbmVkKTtcblxuICByZXR1cm4gcmVzdWx0cztcbn07XG5cbmV4cG9ydCBjb25zdCBzb3J0VmFyaWFibGVWYWx1ZXMgPSAob3B0aW9uczogYW55W10sIHNvcnRPcmRlcjogVmFyaWFibGVTb3J0KSA9PiB7XG4gIGlmIChzb3J0T3JkZXIgPT09IFZhcmlhYmxlU29ydC5kaXNhYmxlZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBzb3J0QnlOdW1lcmljID0gKG9wdCkgPT4ge1xuICAgIGlmICghb3B0LnRleHQpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgY29uc3QgbWF0Y2hlcyA9IG9wdC50ZXh0Lm1hdGNoKC8uKj8oXFxkKykuKi8pO1xuICAgIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBzb3J0QnlOYXR1cmFsU29ydCA9IChvcHRpb25zKSA9PiB7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgcmV0dXJuIG9wdGlvbnMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKCFhLnRleHQpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWIudGV4dCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGEudGV4dC5sb2NhbGVDb21wYXJlKGIudGV4dCwgdW5kZWZpbmVkLCB7IG51bWVyaWM6IHRydWUgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgc3dpdGNoIChzb3J0T3JkZXIpIHtcbiAgICBjYXNlIFZhcmlhYmxlU29ydC5hbHBoYWJldGljYWxBc2M6XG4gICAgICBvcHRpb25zID0gc29ydEJ5KG9wdGlvbnMsICdsYWJlbCcpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBWYXJpYWJsZVNvcnQuYWxwaGFiZXRpY2FsRGVzYzpcbiAgICAgIG9wdGlvbnMgPSBzb3J0Qnkob3B0aW9ucywgJ2xhYmVsJykucmV2ZXJzZSgpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBWYXJpYWJsZVNvcnQubnVtZXJpY2FsQXNjOlxuICAgICAgb3B0aW9ucyA9IHNvcnRCeShvcHRpb25zLCBzb3J0QnlOdW1lcmljKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmFyaWFibGVTb3J0Lm51bWVyaWNhbERlc2M6XG4gICAgICBvcHRpb25zID0gc29ydEJ5KG9wdGlvbnMsIHNvcnRCeU51bWVyaWMpO1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMucmV2ZXJzZSgpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBWYXJpYWJsZVNvcnQuYWxwaGFiZXRpY2FsQ2FzZUluc2Vuc2l0aXZlQXNjOlxuICAgICAgb3B0aW9ucyA9IHNvcnRCeShvcHRpb25zLCAob3B0KSA9PiB7XG4gICAgICAgIHJldHVybiB0b0xvd2VyKG9wdC5sYWJlbCk7XG4gICAgICB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmFyaWFibGVTb3J0LmFscGhhYmV0aWNhbENhc2VJbnNlbnNpdGl2ZURlc2M6XG4gICAgICBvcHRpb25zID0gc29ydEJ5KG9wdGlvbnMsIChvcHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHRvTG93ZXIob3B0LmxhYmVsKTtcbiAgICAgIH0pO1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMucmV2ZXJzZSgpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBWYXJpYWJsZVNvcnQubmF0dXJhbEFzYyB8fCA3OlxuICAgICAgLy8gU29ydCBieSBuYXR1cmFsIHNvcnRcbiAgICAgIG9wdGlvbnMgPSBzb3J0QnlOYXR1cmFsU29ydChvcHRpb25zKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmFyaWFibGVTb3J0Lm5hdHVyYWxEZXNjIHx8IDg6XG4gICAgICBvcHRpb25zID0gc29ydEJ5TmF0dXJhbFNvcnQob3B0aW9ucyk7XG4gICAgICBvcHRpb25zID0gb3B0aW9ucy5yZXZlcnNlKCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnM7XG59O1xuIl0sIm5hbWVzIjpbIm9wdGlvbnMiXSwibWFwcGluZ3MiOiI7OztBQU1nQixTQUFBLDJCQUFBLENBQTRCLGFBQXVCLEVBQUEsSUFBQSxFQUFvQixXQUFvQixFQUFBO0FBTjNHLEVBQUEsSUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUFPRSxFQUFJLElBQUEsS0FBQSxDQUFBO0FBQ0osRUFBQSxJQUFJLFVBQWlDLEVBQUMsQ0FBQTtBQUV0QyxFQUFBLElBQUksYUFBZSxFQUFBO0FBQ2pCLElBQUEs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