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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +33 -0
  3. package/dist/esm/dist/esm/behaviors/CursorSync.js +76 -0
  4. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +44 -0
  5. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +14 -0
  6. package/dist/esm/dist/esm/components/EmbeddedScene.js +59 -0
  7. package/dist/esm/dist/esm/components/NestedScene.js +95 -0
  8. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +27 -0
  9. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +176 -0
  10. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +104 -0
  11. package/dist/esm/dist/esm/components/SceneApp/utils.js +42 -0
  12. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +41 -0
  13. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +55 -0
  14. package/dist/esm/dist/esm/components/SceneCanvasText.js +32 -0
  15. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +17 -0
  16. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +82 -0
  17. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +72 -0
  18. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +77 -0
  19. package/dist/esm/dist/esm/components/SceneReactObject.js +34 -0
  20. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +205 -0
  21. package/dist/esm/dist/esm/components/SceneTimePicker.js +139 -0
  22. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +240 -0
  23. package/dist/esm/dist/esm/components/SceneToolbarButton.js +33 -0
  24. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +406 -0
  25. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +44 -0
  26. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +59 -0
  27. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +285 -0
  28. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +45 -0
  29. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  30. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +11 -0
  31. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  32. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
  33. package/dist/esm/dist/esm/components/layout/LazyLoader.js +103 -0
  34. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +135 -0
  35. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +30 -0
  36. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +283 -0
  37. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
  38. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +190 -0
  39. package/dist/esm/dist/esm/components/layout/grid/constants.js +7 -0
  40. package/dist/esm/dist/esm/components/layout/grid/utils.js +36 -0
  41. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +17 -0
  42. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +29 -0
  43. package/dist/esm/dist/esm/components/layout/split/Splitter.js +386 -0
  44. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +57 -0
  45. package/dist/esm/dist/esm/core/SceneDataNode.js +43 -0
  46. package/dist/esm/dist/esm/core/SceneObjectBase.js +286 -0
  47. package/dist/esm/dist/esm/core/SceneObjectRef.js +32 -0
  48. package/dist/esm/dist/esm/core/SceneTimeRange.js +231 -0
  49. package/dist/esm/dist/esm/core/events.js +11 -0
  50. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +10 -0
  51. package/dist/esm/dist/esm/core/sceneGraph/index.js +25 -0
  52. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +178 -0
  53. package/dist/esm/dist/esm/core/sceneGraph/utils.js +64 -0
  54. package/dist/esm/dist/esm/core/types.js +15 -0
  55. package/dist/esm/dist/esm/querying/DataLayersMerger.js +46 -0
  56. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +6 -0
  57. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +6 -0
  58. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +100 -0
  59. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +468 -0
  60. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +46 -0
  61. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +12 -0
  62. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +112 -0
  63. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +51 -0
  64. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
  65. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +85 -0
  66. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +121 -0
  67. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
  68. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +77 -0
  69. package/dist/esm/dist/esm/querying/registerQueryWithController.js +41 -0
  70. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +30 -0
  71. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +45 -0
  72. package/dist/esm/dist/esm/services/UrlSyncManager.js +167 -0
  73. package/dist/esm/dist/esm/services/useUrlSync.js +29 -0
  74. package/dist/esm/dist/esm/services/utils.js +71 -0
  75. package/dist/esm/dist/esm/utils/ControlsLabel.js +107 -0
  76. package/dist/esm/dist/esm/utils/LoadingIndicator.js +19 -0
  77. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +39 -0
  78. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
  79. package/dist/esm/dist/esm/utils/date.js +15 -0
  80. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +16 -0
  81. package/dist/esm/dist/esm/utils/explore.js +47 -0
  82. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +4 -0
  83. package/dist/esm/dist/esm/utils/getDataSource.js +18 -0
  84. package/dist/esm/dist/esm/utils/getMessageFromError.js +24 -0
  85. package/dist/esm/dist/esm/utils/metricTree.js +53 -0
  86. package/dist/esm/dist/esm/utils/parseUrlParam.js +41 -0
  87. package/dist/esm/dist/esm/utils/utils.js +11 -0
  88. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +30 -0
  89. package/dist/esm/dist/esm/utils/writeSceneLog.js +12 -0
  90. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +150 -0
  91. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +71 -0
  92. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +24 -0
  93. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +303 -0
  94. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
  95. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
  96. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
  97. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +289 -0
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
  104. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +13 -0
  105. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +47 -0
  106. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +23 -0
  107. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +33 -0
  108. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +228 -0
  109. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +72 -0
  110. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +15 -0
  111. package/dist/esm/dist/esm/variables/constants.js +9 -0
  112. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +12 -0
  113. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +259 -0
  114. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
  115. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
  116. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +40 -0
  117. package/dist/esm/dist/esm/variables/interpolation/defaults.js +21 -0
  118. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +13 -0
  119. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +296 -0
  120. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +87 -0
  121. package/dist/esm/dist/esm/variables/lookupVariable.js +20 -0
  122. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +57 -0
  123. package/dist/esm/dist/esm/variables/macros/contextMacros.js +43 -0
  124. package/dist/esm/dist/esm/variables/macros/dataMacros.js +134 -0
  125. package/dist/esm/dist/esm/variables/macros/index.js +26 -0
  126. package/dist/esm/dist/esm/variables/macros/templateProxies.js +51 -0
  127. package/dist/esm/dist/esm/variables/macros/timeMacros.js +86 -0
  128. package/dist/esm/dist/esm/variables/macros/types.js +11 -0
  129. package/dist/esm/dist/esm/variables/macros/urlMacros.js +56 -0
  130. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +254 -0
  131. package/dist/esm/dist/esm/variables/types.js +11 -0
  132. package/dist/esm/dist/esm/variables/utils.js +172 -0
  133. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +38 -0
  134. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +60 -0
  135. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +88 -0
  136. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +117 -0
  137. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +295 -0
  138. package/dist/esm/dist/esm/variables/variants/TestVariable.js +117 -0
  139. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +61 -0
  140. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +139 -0
  141. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +129 -0
  142. package/dist/esm/dist/esm/variables/variants/query/guards.js +28 -0
  143. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +96 -0
  144. package/dist/esm/dist/esm/variables/variants/query/utils.js +124 -0
  145. package/dist/esm/index.js +1 -1
  146. package/dist/esm/index.js.map +1 -1
  147. package/dist/esm/querying/DataProviderSharer.js +39 -0
  148. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +27 -0
  149. package/dist/esm/src/behaviors/CursorSync.js +76 -0
  150. package/dist/esm/src/behaviors/LiveNowTimer.js +44 -0
  151. package/dist/esm/src/behaviors/SceneQueryController.js +60 -0
  152. package/dist/esm/src/behaviors/index.js +5 -0
  153. package/dist/esm/src/components/EmbeddedScene.js +59 -0
  154. package/dist/esm/src/components/NestedScene.js +95 -0
  155. package/dist/esm/src/components/SceneApp/SceneApp.js +37 -0
  156. package/dist/esm/src/components/SceneApp/SceneAppPage.js +176 -0
  157. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +104 -0
  158. package/dist/esm/src/components/SceneApp/utils.js +42 -0
  159. package/dist/esm/src/components/SceneByFrameRepeater.js +41 -0
  160. package/dist/esm/src/components/SceneByVariableRepeater.js +55 -0
  161. package/dist/esm/src/components/SceneCanvasText.js +32 -0
  162. package/dist/esm/src/components/SceneControlsSpacer.js +17 -0
  163. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +82 -0
  164. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +72 -0
  165. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +77 -0
  166. package/dist/esm/src/components/SceneReactObject.js +34 -0
  167. package/dist/esm/src/components/SceneRefreshPicker.js +205 -0
  168. package/dist/esm/src/components/SceneTimePicker.js +139 -0
  169. package/dist/esm/src/components/SceneTimeRangeCompare.js +240 -0
  170. package/dist/esm/src/components/SceneToolbarButton.js +33 -0
  171. package/dist/esm/src/components/VizPanel/VizPanel.js +406 -0
  172. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +44 -0
  173. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +59 -0
  174. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +285 -0
  175. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +45 -0
  176. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  177. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +56 -0
  178. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  179. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
  180. package/dist/esm/src/components/layout/LazyLoader.js +103 -0
  181. package/dist/esm/src/components/layout/SceneFlexLayout.js +135 -0
  182. package/dist/esm/src/components/layout/grid/SceneGridItem.js +30 -0
  183. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +283 -0
  184. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
  185. package/dist/esm/src/components/layout/grid/SceneGridRow.js +190 -0
  186. package/dist/esm/src/components/layout/grid/constants.js +7 -0
  187. package/dist/esm/src/components/layout/grid/utils.js +36 -0
  188. package/dist/esm/src/components/layout/split/SplitLayout.js +17 -0
  189. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +29 -0
  190. package/dist/esm/src/components/layout/split/Splitter.js +386 -0
  191. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +100 -0
  192. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +75 -0
  193. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +75 -0
  194. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +22 -0
  195. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +85 -0
  196. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +52 -0
  197. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +78 -0
  198. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +114 -0
  199. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +162 -0
  200. package/dist/esm/src/core/PanelBuilders/index.js +116 -0
  201. package/dist/esm/src/core/SceneComponentWrapper.js +57 -0
  202. package/dist/esm/src/core/SceneDataNode.js +43 -0
  203. package/dist/esm/src/core/SceneObjectBase.js +286 -0
  204. package/dist/esm/src/core/SceneObjectRef.js +32 -0
  205. package/dist/esm/src/core/SceneTimeRange.js +231 -0
  206. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +35 -0
  207. package/dist/esm/src/core/SceneTimeZoneOverride.js +63 -0
  208. package/dist/esm/src/core/events.js +11 -0
  209. package/dist/esm/src/core/sceneGraph/getTimeRange.js +10 -0
  210. package/dist/esm/src/core/sceneGraph/index.js +25 -0
  211. package/dist/esm/src/core/sceneGraph/sceneGraph.js +178 -0
  212. package/dist/esm/src/core/sceneGraph/utils.js +64 -0
  213. package/dist/esm/src/core/types.js +15 -0
  214. package/dist/esm/src/index.js +108 -0
  215. package/dist/esm/src/querying/DataLayersMerger.js +46 -0
  216. package/dist/esm/src/querying/DataProviderProxy.js +37 -0
  217. package/dist/esm/src/querying/DataProviderSharer.js +108 -0
  218. package/dist/esm/src/querying/ExtraQueryProvider.js +6 -0
  219. package/dist/esm/src/querying/RuntimeDataSource.js +49 -0
  220. package/dist/esm/src/querying/SceneDataLayerSet.js +100 -0
  221. package/dist/esm/src/querying/SceneDataTransformer.js +178 -0
  222. package/dist/esm/src/querying/SceneQueryRunner.js +468 -0
  223. package/dist/esm/src/querying/extraQueryProcessingOperator.js +46 -0
  224. package/dist/esm/src/querying/getEnrichedDataRequest.js +12 -0
  225. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +112 -0
  226. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +51 -0
  227. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
  228. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +85 -0
  229. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +121 -0
  230. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
  231. package/dist/esm/src/querying/layers/annotations/utils.js +77 -0
  232. package/dist/esm/src/querying/layers/index.js +2 -0
  233. package/dist/esm/src/querying/registerQueryWithController.js +41 -0
  234. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +30 -0
  235. package/dist/esm/src/services/UniqueUrlKeyMapper.js +45 -0
  236. package/dist/esm/src/services/UrlSyncContextProvider.js +17 -0
  237. package/dist/esm/src/services/UrlSyncManager.js +167 -0
  238. package/dist/esm/src/services/useUrlSync.js +29 -0
  239. package/dist/esm/src/services/utils.js +75 -0
  240. package/dist/esm/src/utils/ControlsLabel.js +107 -0
  241. package/dist/esm/src/utils/LoadingIndicator.js +19 -0
  242. package/dist/esm/src/utils/SafeSerializableSceneObject.js +39 -0
  243. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
  244. package/dist/esm/src/utils/date.js +15 -0
  245. package/dist/esm/src/utils/evaluateTimeRange.js +16 -0
  246. package/dist/esm/src/utils/explore.js +47 -0
  247. package/dist/esm/src/utils/getCompareSeriesRefId.js +4 -0
  248. package/dist/esm/src/utils/getDataSource.js +18 -0
  249. package/dist/esm/src/utils/getMessageFromError.js +24 -0
  250. package/dist/esm/src/utils/metricTree.js +53 -0
  251. package/dist/esm/src/utils/parseUrlParam.js +41 -0
  252. package/dist/esm/src/utils/utils.js +11 -0
  253. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +30 -0
  254. package/dist/esm/src/utils/writeSceneLog.js +12 -0
  255. package/dist/esm/src/variables/VariableDependencyConfig.js +150 -0
  256. package/dist/esm/src/variables/VariableValueRecorder.js +71 -0
  257. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +24 -0
  258. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +303 -0
  259. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
  260. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
  261. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
  262. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +289 -0
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
  269. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +13 -0
  270. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +47 -0
  271. package/dist/esm/src/variables/components/VariableValueControl.js +23 -0
  272. package/dist/esm/src/variables/components/VariableValueInput.js +33 -0
  273. package/dist/esm/src/variables/components/VariableValueSelect.js +228 -0
  274. package/dist/esm/src/variables/components/VariableValueSelectors.js +72 -0
  275. package/dist/esm/src/variables/components/getOptionSearcher.js +15 -0
  276. package/dist/esm/src/variables/constants.js +9 -0
  277. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +12 -0
  278. package/dist/esm/src/variables/groupby/GroupByVariable.js +259 -0
  279. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
  280. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
  281. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +40 -0
  282. package/dist/esm/src/variables/interpolation/defaults.js +21 -0
  283. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +13 -0
  284. package/dist/esm/src/variables/interpolation/formatRegistry.js +296 -0
  285. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +87 -0
  286. package/dist/esm/src/variables/lookupVariable.js +20 -0
  287. package/dist/esm/src/variables/macros/AllVariablesMacro.js +57 -0
  288. package/dist/esm/src/variables/macros/contextMacros.js +43 -0
  289. package/dist/esm/src/variables/macros/dataMacros.js +134 -0
  290. package/dist/esm/src/variables/macros/index.js +35 -0
  291. package/dist/esm/src/variables/macros/templateProxies.js +51 -0
  292. package/dist/esm/src/variables/macros/timeMacros.js +86 -0
  293. package/dist/esm/src/variables/macros/types.js +11 -0
  294. package/dist/esm/src/variables/macros/urlMacros.js +56 -0
  295. package/dist/esm/src/variables/sets/SceneVariableSet.js +254 -0
  296. package/dist/esm/src/variables/types.js +11 -0
  297. package/dist/esm/src/variables/utils.js +172 -0
  298. package/dist/esm/src/variables/variants/ConstantVariable.js +38 -0
  299. package/dist/esm/src/variables/variants/CustomVariable.js +60 -0
  300. package/dist/esm/src/variables/variants/DataSourceVariable.js +88 -0
  301. package/dist/esm/src/variables/variants/IntervalVariable.js +117 -0
  302. package/dist/esm/src/variables/variants/JsonVariable.js +193 -0
  303. package/dist/esm/src/variables/variants/LocalValueVariable.js +56 -0
  304. package/dist/esm/src/variables/variants/MultiValueVariable.js +295 -0
  305. package/dist/esm/src/variables/variants/TestVariable.js +117 -0
  306. package/dist/esm/src/variables/variants/TextBoxVariable.js +61 -0
  307. package/dist/esm/src/variables/variants/guards.js +27 -0
  308. package/dist/esm/src/variables/variants/query/QueryVariable.js +139 -0
  309. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +129 -0
  310. package/dist/esm/src/variables/variants/query/guards.js +28 -0
  311. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +96 -0
  312. package/dist/esm/src/variables/variants/query/utils.js +124 -0
  313. package/dist/esm/variables/components/VariableValueSelect.js +13 -9
  314. package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
  315. package/dist/esm/variables/variants/ConstantVariable.js +22 -0
  316. package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
  317. package/dist/esm/variables/variants/CustomVariable.js +3 -2
  318. package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
  319. package/dist/esm/variables/variants/DataSourceVariable.js +3 -2
  320. package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
  321. package/dist/esm/variables/variants/JsonVariable.js +96 -0
  322. package/dist/esm/variables/variants/TestVariable.js +3 -2
  323. package/dist/esm/variables/variants/TestVariable.js.map +1 -1
  324. package/dist/esm/variables/variants/json/JsonVariable.js +95 -0
  325. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +70 -0
  326. package/dist/esm/variables/variants/query/QueryVariable.js +3 -2
  327. package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
  328. package/dist/index.d.ts +14 -6
  329. package/dist/index.js +35 -13
  330. package/dist/index.js.map +1 -1
  331. package/package.json +2 -2
@@ -0,0 +1,259 @@
1
+ import React, { useMemo, useState, useEffect } from 'react';
2
+ import { allActiveGroupByVariables } from './findActiveGroupByVariablesByUid.js';
3
+ import { sceneGraph } from '../../core/sceneGraph/index.js';
4
+ import { MultiValueVariable } from '../variants/MultiValueVariable.js';
5
+ import { map, of, from, mergeMap, tap, take, lastValueFrom } from 'rxjs';
6
+ import { getDataSource } from '../../utils/getDataSource.js';
7
+ import { MultiSelect } from '@grafana/ui';
8
+ import { isArray } from 'lodash';
9
+ import { dataFromResponse, getQueriesForVariables, responseHasError, handleOptionGroups } from '../utils.js';
10
+ import { OptionWithCheckbox } from '../components/VariableValueSelect.js';
11
+ import { GroupByVariableUrlSyncHandler } from './GroupByVariableUrlSyncHandler.js';
12
+ import { getOptionSearcher } from '../components/getOptionSearcher.js';
13
+ import { getEnrichedFiltersRequest } from '../getEnrichedFiltersRequest.js';
14
+ import { wrapInSafeSerializableSceneObject } from '../../utils/wrapInSafeSerializableSceneObject.js';
15
+
16
+ var __defProp = Object.defineProperty;
17
+ var __defProps = Object.defineProperties;
18
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
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
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
35
+ class GroupByVariable extends MultiValueVariable {
36
+ constructor(initialState) {
37
+ super(__spreadProps(__spreadValues({
38
+ isMulti: true,
39
+ name: "",
40
+ value: [],
41
+ text: [],
42
+ options: [],
43
+ datasource: null,
44
+ baseFilters: [],
45
+ applyMode: "auto",
46
+ layout: "horizontal",
47
+ type: "groupby"
48
+ }, initialState), {
49
+ noValueOnClear: true
50
+ }));
51
+ this.isLazy = true;
52
+ this._urlSync = new GroupByVariableUrlSyncHandler(this);
53
+ this._getKeys = async (ds) => {
54
+ var _a, _b, _c;
55
+ const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, null));
56
+ if (override && override.replace) {
57
+ return override.values;
58
+ }
59
+ if (this.state.defaultOptions) {
60
+ return this.state.defaultOptions.concat(dataFromResponse((_c = override == null ? void 0 : override.values) != null ? _c : []));
61
+ }
62
+ if (!ds.getTagKeys) {
63
+ return [];
64
+ }
65
+ const queries = getQueriesForVariables(this);
66
+ const otherFilters = this.state.baseFilters || [];
67
+ const timeRange = sceneGraph.getTimeRange(this).state.value;
68
+ const response = await ds.getTagKeys(__spreadValues({
69
+ filters: otherFilters,
70
+ queries,
71
+ timeRange
72
+ }, getEnrichedFiltersRequest(this)));
73
+ if (responseHasError(response)) {
74
+ this.setState({ error: response.error.message });
75
+ }
76
+ let keys = dataFromResponse(response);
77
+ if (override) {
78
+ keys = keys.concat(dataFromResponse(override.values));
79
+ }
80
+ const tagKeyRegexFilter = this.state.tagKeyRegexFilter;
81
+ if (tagKeyRegexFilter) {
82
+ keys = keys.filter((f) => f.text.match(tagKeyRegexFilter));
83
+ }
84
+ return keys;
85
+ };
86
+ this.addActivationHandler(() => {
87
+ allActiveGroupByVariables.add(this);
88
+ return () => allActiveGroupByVariables.delete(this);
89
+ });
90
+ }
91
+ validateAndUpdate() {
92
+ return this.getValueOptions({}).pipe(
93
+ map((options) => {
94
+ this._updateValueGivenNewOptions(options);
95
+ return {};
96
+ })
97
+ );
98
+ }
99
+ _updateValueGivenNewOptions(options) {
100
+ const { value: currentValue, text: currentText } = this.state;
101
+ const stateUpdate = {
102
+ options,
103
+ loading: false,
104
+ value: currentValue != null ? currentValue : [],
105
+ text: currentText != null ? currentText : []
106
+ };
107
+ this.setState(stateUpdate);
108
+ }
109
+ getValueOptions(args) {
110
+ if (this.state.defaultOptions) {
111
+ return of(
112
+ this.state.defaultOptions.map((o) => ({
113
+ label: o.text,
114
+ value: String(o.value),
115
+ group: o.group
116
+ }))
117
+ );
118
+ }
119
+ this.setState({ loading: true, error: null });
120
+ return from(
121
+ getDataSource(this.state.datasource, {
122
+ __sceneObject: wrapInSafeSerializableSceneObject(this)
123
+ })
124
+ ).pipe(
125
+ mergeMap((ds) => {
126
+ return from(this._getKeys(ds)).pipe(
127
+ tap((response) => {
128
+ if (responseHasError(response)) {
129
+ this.setState({ error: response.error.message });
130
+ }
131
+ }),
132
+ map((response) => dataFromResponse(response)),
133
+ take(1),
134
+ mergeMap((data) => {
135
+ const a = data.map((i) => {
136
+ return {
137
+ label: i.text,
138
+ value: i.value ? String(i.value) : i.text,
139
+ group: i.group
140
+ };
141
+ });
142
+ return of(a);
143
+ })
144
+ );
145
+ })
146
+ );
147
+ }
148
+ getDefaultMultiState(options) {
149
+ return { value: [], text: [] };
150
+ }
151
+ }
152
+ GroupByVariable.Component = GroupByVariableRenderer;
153
+ function GroupByVariableRenderer({ model }) {
154
+ const {
155
+ value,
156
+ text,
157
+ key,
158
+ maxVisibleValues,
159
+ noValueOnClear,
160
+ options,
161
+ includeAll,
162
+ allowCustomValue = true
163
+ } = model.useState();
164
+ const values = useMemo(() => {
165
+ const arrayValue = isArray(value) ? value : [value];
166
+ const arrayText = isArray(text) ? text : [text];
167
+ return arrayValue.map((value2, idx) => {
168
+ var _a;
169
+ return {
170
+ value: value2,
171
+ label: String((_a = arrayText[idx]) != null ? _a : value2)
172
+ };
173
+ });
174
+ }, [value, text]);
175
+ const [isFetchingOptions, setIsFetchingOptions] = useState(false);
176
+ const [isOptionsOpen, setIsOptionsOpen] = useState(false);
177
+ const [inputValue, setInputValue] = useState("");
178
+ const [uncommittedValue, setUncommittedValue] = useState(values);
179
+ const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);
180
+ useEffect(() => {
181
+ setUncommittedValue(values);
182
+ }, [values]);
183
+ const onInputChange = (value2, { action }) => {
184
+ if (action === "input-change") {
185
+ setInputValue(value2);
186
+ if (model.onSearchChange) {
187
+ model.onSearchChange(value2);
188
+ }
189
+ return value2;
190
+ }
191
+ if (action === "input-blur") {
192
+ setInputValue("");
193
+ return "";
194
+ }
195
+ return inputValue;
196
+ };
197
+ const filteredOptions = useMemo(
198
+ () => handleOptionGroups(optionSearcher(inputValue).map(toSelectableValue)),
199
+ [optionSearcher, inputValue]
200
+ );
201
+ return /* @__PURE__ */ React.createElement(MultiSelect, {
202
+ "data-testid": `GroupBySelect-${key}`,
203
+ id: key,
204
+ placeholder: "Select value",
205
+ width: "auto",
206
+ allowCustomValue,
207
+ inputValue,
208
+ value: uncommittedValue,
209
+ noMultiValueWrap: true,
210
+ maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,
211
+ tabSelectsValue: false,
212
+ virtualized: true,
213
+ options: filteredOptions,
214
+ filterOption: filterNoOp,
215
+ closeMenuOnSelect: false,
216
+ isOpen: isOptionsOpen,
217
+ isClearable: true,
218
+ hideSelectedOptions: false,
219
+ isLoading: isFetchingOptions,
220
+ components: { Option: OptionWithCheckbox },
221
+ onInputChange,
222
+ onBlur: () => {
223
+ model.changeValueTo(
224
+ uncommittedValue.map((x) => x.value),
225
+ uncommittedValue.map((x) => x.label)
226
+ );
227
+ },
228
+ onChange: (newValue, action) => {
229
+ if (action.action === "clear" && noValueOnClear) {
230
+ model.changeValueTo([]);
231
+ }
232
+ setUncommittedValue(newValue);
233
+ },
234
+ onOpenMenu: async () => {
235
+ setIsFetchingOptions(true);
236
+ await lastValueFrom(model.validateAndUpdate());
237
+ setIsFetchingOptions(false);
238
+ setIsOptionsOpen(true);
239
+ },
240
+ onCloseMenu: () => {
241
+ setIsOptionsOpen(false);
242
+ }
243
+ });
244
+ }
245
+ const filterNoOp = () => true;
246
+ function toSelectableValue(input) {
247
+ const { label, value, group } = input;
248
+ const result = {
249
+ label,
250
+ value
251
+ };
252
+ if (group) {
253
+ result.group = group;
254
+ }
255
+ return result;
256
+ }
257
+
258
+ export { GroupByVariable, GroupByVariableRenderer };
259
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JvdXBCeVZhcmlhYmxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdmFyaWFibGVzL2dyb3VwYnkvR3JvdXBCeVZhcmlhYmxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEFkSG9jVmFyaWFibGVGaWx0ZXIsIERhdGFTb3VyY2VBcGksIEdldFRhZ1Jlc3BvbnNlLCBNZXRyaWNGaW5kVmFsdWUsIFNlbGVjdGFibGVWYWx1ZSB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgYWxsQWN0aXZlR3JvdXBCeVZhcmlhYmxlcyB9IGZyb20gJy4vZmluZEFjdGl2ZUdyb3VwQnlWYXJpYWJsZXNCeVVpZCc7XG5pbXBvcnQgeyBEYXRhU291cmNlUmVmLCBWYXJpYWJsZVR5cGUgfSBmcm9tICdAZ3JhZmFuYS9zY2hlbWEnO1xuaW1wb3J0IHsgU2NlbmVDb21wb25lbnRQcm9wcywgQ29udHJvbHNMYXlvdXQsIFNjZW5lT2JqZWN0VXJsU3luY0hhbmRsZXIgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzJztcbmltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi8uLi9jb3JlL3NjZW5lR3JhcGgnO1xuaW1wb3J0IHsgVmFsaWRhdGVBbmRVcGRhdGVSZXN1bHQsIFZhcmlhYmxlVmFsdWVPcHRpb24sIFZhcmlhYmxlVmFsdWVTaW5nbGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBNdWx0aVZhbHVlVmFyaWFibGUsIE11bHRpVmFsdWVWYXJpYWJsZVN0YXRlLCBWYXJpYWJsZUdldE9wdGlvbnNBcmdzIH0gZnJvbSAnLi4vdmFyaWFudHMvTXVsdGlWYWx1ZVZhcmlhYmxlJztcbmltcG9ydCB7IGZyb20sIGxhc3RWYWx1ZUZyb20sIG1hcCwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIG9mLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi91dGlscy9nZXREYXRhU291cmNlJztcbmltcG9ydCB7IElucHV0QWN0aW9uTWV0YSwgTXVsdGlTZWxlY3QgfSBmcm9tICdAZ3JhZmFuYS91aSc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGRhdGFGcm9tUmVzcG9uc2UsIGdldFF1ZXJpZXNGb3JWYXJpYWJsZXMsIGhhbmRsZU9wdGlvbkdyb3VwcywgcmVzcG9uc2VIYXNFcnJvciB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE9wdGlvbldpdGhDaGVja2JveCB9IGZyb20gJy4uL2NvbXBvbmVudHMvVmFyaWFibGVWYWx1ZVNlbGVjdCc7XG5pbXBvcnQgeyBHcm91cEJ5VmFyaWFibGVVcmxTeW5jSGFuZGxlciB9IGZyb20gJy4vR3JvdXBCeVZhcmlhYmxlVXJsU3luY0hhbmRsZXInO1xuaW1wb3J0IHsgZ2V0T3B0aW9uU2VhcmNoZXIgfSBmcm9tICcuLi9jb21wb25lbnRzL2dldE9wdGlvblNlYXJjaGVyJztcbmltcG9ydCB7IGdldEVucmljaGVkRmlsdGVyc1JlcXVlc3QgfSBmcm9tICcuLi9nZXRFbnJpY2hlZEZpbHRlcnNSZXF1ZXN0JztcbmltcG9ydCB7IHdyYXBJblNhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdCB9IGZyb20gJy4uLy4uL3V0aWxzL3dyYXBJblNhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBCeVZhcmlhYmxlU3RhdGUgZXh0ZW5kcyBNdWx0aVZhbHVlVmFyaWFibGVTdGF0ZSB7XG4gIC8qKiBEZWZhdWx0cyB0byBcIkdyb3VwXCIgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVGhlIHZpc2libGUga2V5cyB0byBncm91cCBvbiAqL1xuICAvLyBUT0RPIHJldmlldyB0aGlzIHR5cGUgYW5kIG5hbWUgKG5hbWluZyBpcyBoYXJkKVxuICBkZWZhdWx0T3B0aW9ucz86IE1ldHJpY0ZpbmRWYWx1ZVtdO1xuICAvKiogQmFzZSBmaWx0ZXJzIHRvIGFsd2F5cyBhcHBseSB3aGVuIGxvb2tpbmcgdXAga2V5cyAqL1xuICBiYXNlRmlsdGVycz86IEFkSG9jVmFyaWFibGVGaWx0ZXJbXTtcbiAgLyoqIERhdGFzb3VyY2UgdG8gdXNlIGZvciBnZXRUYWdLZXlzIGFuZCBhbHNvIGNvbnRyb2xzIHdoaWNoIHNjZW5lIHF1ZXJpZXMgdGhlIGdyb3VwIGJ5IHNob3VsZCBhcHBseSB0byAqL1xuICBkYXRhc291cmNlOiBEYXRhU291cmNlUmVmIHwgbnVsbDtcbiAgLyoqIENvbnRyb2xzIGlmIHRoZSBncm91cCBieSBjYW4gYmUgY2hhbmdlZCAqL1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqIENvbnRyb2xzIHRoZSBsYXlvdXQgYW5kIGRlc2lnbiBvZiB0aGUgbGFiZWwuXG4gICAqIFZlcnRpY2FsIGxheW91dCBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBvcGVyYXRvciBzZWxlY3Rvci5cbiAgICovXG4gIGxheW91dD86IENvbnRyb2xzTGF5b3V0O1xuICAvKipcbiAgICogRGVmYXVsdHMgdG8gc2FtZS1kYXRhc291cmNlIHdoaWNoIG1lYW5zIGdyb3VwIGJ5IHdpbGwgYXV0b21hdGljYWxseSBiZSBhcHBsaWVkIHRvIGFsbCBxdWVyaWVzIHdpdGggdGhlIHNhbWUgZGF0YSBzb3VyY2UgYXMgdGhpcyBHcm91cEJ5U2V0LlxuICAgKiBJbiBtYW51YWwgbW9kZSBubyBxdWVyaWVzIGFyZSByZS1ydW4gb24gY2hhbmdlcywgYW5kIHlvdSBoYXZlIHRvIG1hbnVhbGx5IGFwcGx5IHRoZSBmaWx0ZXIgdG8gd2hhdGV2ZXIgcXVlcmllcyB5b3Ugd2FudC5cbiAgICovXG4gIGFwcGx5TW9kZT86ICdhdXRvJyB8ICdtYW51YWwnO1xuICAvKipcbiAgICogRmlsdGVyIG91dCB0aGUga2V5cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcmVnZXguXG4gICAqL1xuICB0YWdLZXlSZWdleEZpbHRlcj86IFJlZ0V4cDtcbiAgLyoqXG4gICAqIEV4dGVuc2lvbiBob29rIGZvciBjdXN0b21pemluZyB0aGUga2V5IGxvb2t1cC5cbiAgICogUmV0dXJuIHJlcGxhY2U6IHRydWUgaWYgeW91IHdhbnQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbG9va3VwXG4gICAqIFJldHVybiByZXBsYWNlOiBmYWxzZSBpZiB5b3Ugd2FudCB0byBjb21iaW5lIHRoZSByZXN1bHRzIHdpdGggdGhlIGRlZmF1bHQgbG9va3VwXG4gICAqL1xuICBnZXRUYWdLZXlzUHJvdmlkZXI/OiBnZXRUYWdLZXlzUHJvdmlkZXI7XG59XG5cbmV4cG9ydCB0eXBlIGdldFRhZ0tleXNQcm92aWRlciA9IChcbiAgc2V0OiBHcm91cEJ5VmFyaWFibGUsXG4gIGN1cnJlbnRLZXk6IHN0cmluZyB8IG51bGxcbikgPT4gUHJvbWlzZTx7IHJlcGxhY2U/OiBib29sZWFuOyB2YWx1ZXM6IE1ldHJpY0ZpbmRWYWx1ZVtdIHwgR2V0VGFnUmVzcG9uc2UgfT47XG5cbmV4cG9ydCBjbGFzcyBHcm91cEJ5VmFyaWFibGUgZXh0ZW5kcyBNdWx0aVZhbHVlVmFyaWFibGU8R3JvdXBCeVZhcmlhYmxlU3RhdGU+IHtcbiAgc3RhdGljIENvbXBvbmVudCA9IEdyb3VwQnlWYXJpYWJsZVJlbmRlcmVyO1xuICBpc0xhenkgPSB0cnVlO1xuXG4gIHByb3RlY3RlZCBfdXJsU3luYzogU2NlbmVPYmplY3RVcmxTeW5jSGFuZGxlciA9IG5ldyBHcm91cEJ5VmFyaWFibGVVcmxTeW5jSGFuZGxlcih0aGlzKTtcblxuICBwdWJsaWMgdmFsaWRhdGVBbmRVcGRhdGUoKTogT2JzZXJ2YWJsZTxWYWxpZGF0ZUFuZFVwZGF0ZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmdldFZhbHVlT3B0aW9ucyh7fSkucGlwZShcbiAgICAgIG1hcCgob3B0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZUdpdmVuTmV3T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWVHaXZlbk5ld09wdGlvbnMob3B0aW9uczogVmFyaWFibGVWYWx1ZU9wdGlvbltdKSB7XG4gICAgY29uc3QgeyB2YWx1ZTogY3VycmVudFZhbHVlLCB0ZXh0OiBjdXJyZW50VGV4dCB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGNvbnN0IHN0YXRlVXBkYXRlOiBQYXJ0aWFsPE11bHRpVmFsdWVWYXJpYWJsZVN0YXRlPiA9IHtcbiAgICAgIG9wdGlvbnMsXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBjdXJyZW50VmFsdWUgPz8gW10sXG4gICAgICB0ZXh0OiBjdXJyZW50VGV4dCA/PyBbXSxcbiAgICB9O1xuXG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZVVwZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVPcHRpb25zKGFyZ3M6IFZhcmlhYmxlR2V0T3B0aW9uc0FyZ3MpOiBPYnNlcnZhYmxlPFZhcmlhYmxlVmFsdWVPcHRpb25bXT4ge1xuICAgIC8vIFdoZW4gZGVmYXVsdCBkaW1lbnNpb25zIGFyZSBwcm92aWRlZCwgcmV0dXJuIHRoZSBzdGF0aWMgbGlzdFxuICAgIGlmICh0aGlzLnN0YXRlLmRlZmF1bHRPcHRpb25zKSB7XG4gICAgICByZXR1cm4gb2YoXG4gICAgICAgIHRoaXMuc3RhdGUuZGVmYXVsdE9wdGlvbnMubWFwKChvKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBvLnRleHQsXG4gICAgICAgICAgdmFsdWU6IFN0cmluZyhvLnZhbHVlKSxcbiAgICAgICAgICBncm91cDogby5ncm91cCxcbiAgICAgICAgfSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlLCBlcnJvcjogbnVsbCB9KTtcblxuICAgIHJldHVybiBmcm9tKFxuICAgICAgZ2V0RGF0YVNvdXJjZSh0aGlzLnN0YXRlLmRhdGFzb3VyY2UsIHtcbiAgICAgICAgX19zY2VuZU9iamVjdDogd3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0KHRoaXMpLFxuICAgICAgfSlcbiAgICApLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoZHMpID0+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5fZ2V0S2V5cyhkcykpLnBpcGUoXG4gICAgICAgICAgdGFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlSGFzRXJyb3IocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcjogcmVzcG9uc2UuZXJyb3IubWVzc2FnZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiBkYXRhRnJvbVJlc3BvbnNlKHJlc3BvbnNlKSksXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtZXJnZU1hcCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYTogVmFyaWFibGVWYWx1ZU9wdGlvbltdID0gZGF0YS5tYXAoKGkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogaS50ZXh0LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpLnZhbHVlID8gU3RyaW5nKGkudmFsdWUpIDogaS50ZXh0LFxuICAgICAgICAgICAgICAgIGdyb3VwOiBpLmdyb3VwLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gb2YoYSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0aWFsU3RhdGU6IFBhcnRpYWw8R3JvdXBCeVZhcmlhYmxlU3RhdGU+KSB7XG4gICAgc3VwZXIoe1xuICAgICAgaXNNdWx0aTogdHJ1ZSxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgdmFsdWU6IFtdLFxuICAgICAgdGV4dDogW10sXG4gICAgICBvcHRpb25zOiBbXSxcbiAgICAgIGRhdGFzb3VyY2U6IG51bGwsXG4gICAgICBiYXNlRmlsdGVyczogW10sXG4gICAgICBhcHBseU1vZGU6ICdhdXRvJyxcbiAgICAgIGxheW91dDogJ2hvcml6b250YWwnLFxuICAgICAgdHlwZTogJ2dyb3VwYnknIGFzIFZhcmlhYmxlVHlwZSxcbiAgICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICAgIG5vVmFsdWVPbkNsZWFyOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcigoKSA9PiB7XG4gICAgICBhbGxBY3RpdmVHcm91cEJ5VmFyaWFibGVzLmFkZCh0aGlzKTtcblxuICAgICAgcmV0dXJuICgpID0+IGFsbEFjdGl2ZUdyb3VwQnlWYXJpYWJsZXMuZGVsZXRlKHRoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwb3NzaWJsZSBrZXlzIGdpdmVuIGN1cnJlbnQgZmlsdGVycy4gRG8gbm90IGNhbGwgZnJvbSBwbHVnaW5zIGRpcmVjdGx5XG4gICAqL1xuICBwdWJsaWMgX2dldEtleXMgPSBhc3luYyAoZHM6IERhdGFTb3VyY2VBcGkpID0+IHtcbiAgICAvLyBUT0RPOiAgcHJvdmlkZSBjdXJyZW50IGRpbWVuc2lvbnM/XG4gICAgY29uc3Qgb3ZlcnJpZGUgPSBhd2FpdCB0aGlzLnN0YXRlLmdldFRhZ0tleXNQcm92aWRlcj8uKHRoaXMsIG51bGwpO1xuXG4gICAgaWYgKG92ZXJyaWRlICYmIG92ZXJyaWRlLnJlcGxhY2UpIHtcbiAgICAgIHJldHVybiBvdmVycmlkZS52YWx1ZXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUuZGVmYXVsdE9wdGlvbnMpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlLmRlZmF1bHRPcHRpb25zLmNvbmNhdChkYXRhRnJvbVJlc3BvbnNlKG92ZXJyaWRlPy52YWx1ZXMgPz8gW10pKTtcbiAgICB9XG5cbiAgICBpZiAoIWRzLmdldFRhZ0tleXMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyaWVzID0gZ2V0UXVlcmllc0ZvclZhcmlhYmxlcyh0aGlzKTtcblxuICAgIGNvbnN0IG90aGVyRmlsdGVycyA9IHRoaXMuc3RhdGUuYmFzZUZpbHRlcnMgfHwgW107XG4gICAgY29uc3QgdGltZVJhbmdlID0gc2NlbmVHcmFwaC5nZXRUaW1lUmFuZ2UodGhpcykuc3RhdGUudmFsdWU7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBkcy5nZXRUYWdLZXlzKHtcbiAgICAgIGZpbHRlcnM6IG90aGVyRmlsdGVycyxcbiAgICAgIHF1ZXJpZXMsXG4gICAgICB0aW1lUmFuZ2UsXG4gICAgICAuLi5nZXRFbnJpY2hlZEZpbHRlcnNSZXF1ZXN0KHRoaXMpLFxuICAgIH0pO1xuICAgIGlmIChyZXNwb25zZUhhc0Vycm9yKHJlc3BvbnNlKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yOiByZXNwb25zZS5lcnJvci5tZXNzYWdlIH0pO1xuICAgIH1cblxuICAgIGxldCBrZXlzID0gZGF0YUZyb21SZXNwb25zZShyZXNwb25zZSk7XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICBrZXlzID0ga2V5cy5jb25jYXQoZGF0YUZyb21SZXNwb25zZShvdmVycmlkZS52YWx1ZXMpKTtcbiAgICB9XG5cbiAgICBjb25zdCB0YWdLZXlSZWdleEZpbHRlciA9IHRoaXMuc3RhdGUudGFnS2V5UmVnZXhGaWx0ZXI7XG4gICAgaWYgKHRhZ0tleVJlZ2V4RmlsdGVyKSB7XG4gICAgICBrZXlzID0ga2V5cy5maWx0ZXIoKGYpID0+IGYudGV4dC5tYXRjaCh0YWdLZXlSZWdleEZpbHRlcikpO1xuICAgIH1cblxuICAgIHJldHVybiBrZXlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgY2xlYXJpbmcgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSB0byBhbiBlbXB0eSB2YWx1ZS4gT3ZlcnJpZGVzIGRlZmF1bHQgYmVoYXZpb3Igb2YgYSBNdWx0aVZhbHVlVmFyaWFibGVcbiAgICovXG4gIHB1YmxpYyBnZXREZWZhdWx0TXVsdGlTdGF0ZShvcHRpb25zOiBWYXJpYWJsZVZhbHVlT3B0aW9uW10pOiB7IHZhbHVlOiBWYXJpYWJsZVZhbHVlU2luZ2xlW107IHRleHQ6IHN0cmluZ1tdIH0ge1xuICAgIHJldHVybiB7IHZhbHVlOiBbXSwgdGV4dDogW10gfTtcbiAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIEdyb3VwQnlWYXJpYWJsZVJlbmRlcmVyKHsgbW9kZWwgfTogU2NlbmVDb21wb25lbnRQcm9wczxNdWx0aVZhbHVlVmFyaWFibGU+KSB7XG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICB0ZXh0LFxuICAgIGtleSxcbiAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgIG5vVmFsdWVPbkNsZWFyLFxuICAgIG9wdGlvbnMsXG4gICAgaW5jbHVkZUFsbCxcbiAgICBhbGxvd0N1c3RvbVZhbHVlID0gdHJ1ZSxcbiAgfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG5cbiAgY29uc3QgdmFsdWVzID0gdXNlTWVtbzxBcnJheTxTZWxlY3RhYmxlVmFsdWU8VmFyaWFibGVWYWx1ZVNpbmdsZT4+PigoKSA9PiB7XG4gICAgY29uc3QgYXJyYXlWYWx1ZSA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgIGNvbnN0IGFycmF5VGV4dCA9IGlzQXJyYXkodGV4dCkgPyB0ZXh0IDogW3RleHRdO1xuXG4gICAgcmV0dXJuIGFycmF5VmFsdWUubWFwKCh2YWx1ZSwgaWR4KSA9PiAoe1xuICAgICAgdmFsdWUsXG4gICAgICBsYWJlbDogU3RyaW5nKGFycmF5VGV4dFtpZHhdID8/IHZhbHVlKSxcbiAgICB9KSk7XG4gIH0sIFt2YWx1ZSwgdGV4dF0pO1xuXG4gIGNvbnN0IFtpc0ZldGNoaW5nT3B0aW9ucywgc2V0SXNGZXRjaGluZ09wdGlvbnNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaXNPcHRpb25zT3Blbiwgc2V0SXNPcHRpb25zT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpbnB1dFZhbHVlLCBzZXRJbnB1dFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcblxuICAvLyBUbyBub3QgdHJpZ2dlciBxdWVyaWVzIG9uIGV2ZXJ5IHNlbGVjdGlvbiB3ZSBzdG9yZSB0aGlzIHN0YXRlIGxvY2FsbHkgaGVyZSBhbmQgb25seSB1cGRhdGUgdGhlIHZhcmlhYmxlIG9uQmx1clxuICBjb25zdCBbdW5jb21taXR0ZWRWYWx1ZSwgc2V0VW5jb21taXR0ZWRWYWx1ZV0gPSB1c2VTdGF0ZSh2YWx1ZXMpO1xuXG4gIGNvbnN0IG9wdGlvblNlYXJjaGVyID0gdXNlTWVtbygoKSA9PiBnZXRPcHRpb25TZWFyY2hlcihvcHRpb25zLCBpbmNsdWRlQWxsKSwgW29wdGlvbnMsIGluY2x1ZGVBbGxdKTtcblxuICAvLyBEZXRlY3QgdmFsdWUgY2hhbmdlcyBvdXRzaWRlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0VW5jb21taXR0ZWRWYWx1ZSh2YWx1ZXMpO1xuICB9LCBbdmFsdWVzXSk7XG5cbiAgY29uc3Qgb25JbnB1dENoYW5nZSA9ICh2YWx1ZTogc3RyaW5nLCB7IGFjdGlvbiB9OiBJbnB1dEFjdGlvbk1ldGEpID0+IHtcbiAgICBpZiAoYWN0aW9uID09PSAnaW5wdXQtY2hhbmdlJykge1xuICAgICAgc2V0SW5wdXRWYWx1ZSh2YWx1ZSk7XG4gICAgICBpZiAobW9kZWwub25TZWFyY2hDaGFuZ2UpIHtcbiAgICAgICAgbW9kZWwub25TZWFyY2hDaGFuZ2UhKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aW9uID09PSAnaW5wdXQtYmx1cicpIHtcbiAgICAgIHNldElucHV0VmFsdWUoJycpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBpbnB1dFZhbHVlO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gaGFuZGxlT3B0aW9uR3JvdXBzKG9wdGlvblNlYXJjaGVyKGlucHV0VmFsdWUpLm1hcCh0b1NlbGVjdGFibGVWYWx1ZSkpLFxuICAgIFtvcHRpb25TZWFyY2hlciwgaW5wdXRWYWx1ZV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxNdWx0aVNlbGVjdDxWYXJpYWJsZVZhbHVlU2luZ2xlPlxuICAgICAgZGF0YS10ZXN0aWQ9e2BHcm91cEJ5U2VsZWN0LSR7a2V5fWB9XG4gICAgICBpZD17a2V5fVxuICAgICAgcGxhY2Vob2xkZXI9eydTZWxlY3QgdmFsdWUnfVxuICAgICAgd2lkdGg9XCJhdXRvXCJcbiAgICAgIGFsbG93Q3VzdG9tVmFsdWU9e2FsbG93Q3VzdG9tVmFsdWV9XG4gICAgICBpbnB1dFZhbHVlPXtpbnB1dFZhbHVlfVxuICAgICAgdmFsdWU9e3VuY29tbWl0dGVkVmFsdWV9XG4gICAgICBub011bHRpVmFsdWVXcmFwPXt0cnVlfVxuICAgICAgbWF4VmlzaWJsZVZhbHVlcz17bWF4VmlzaWJsZVZhbHVlcyA/PyA1fVxuICAgICAgdGFiU2VsZWN0c1ZhbHVlPXtmYWxzZX1cbiAgICAgIHZpcnR1YWxpemVkXG4gICAgICBvcHRpb25zPXtmaWx0ZXJlZE9wdGlvbnN9XG4gICAgICBmaWx0ZXJPcHRpb249e2ZpbHRlck5vT3B9XG4gICAgICBjbG9zZU1lbnVPblNlbGVjdD17ZmFsc2V9XG4gICAgICBpc09wZW49e2lzT3B0aW9uc09wZW59XG4gICAgICBpc0NsZWFyYWJsZT17dHJ1ZX1cbiAgICAgIGhpZGVTZWxlY3RlZE9wdGlvbnM9e2ZhbHNlfVxuICAgICAgaXNMb2FkaW5nPXtpc0ZldGNoaW5nT3B0aW9uc31cbiAgICAgIGNvbXBvbmVudHM9e3sgT3B0aW9uOiBPcHRpb25XaXRoQ2hlY2tib3ggfX1cbiAgICAgIG9uSW5wdXRDaGFuZ2U9e29uSW5wdXRDaGFuZ2V9XG4gICAgICBvbkJsdXI9eygpID0+IHtcbiAgICAgICAgbW9kZWwuY2hhbmdlVmFsdWVUbyhcbiAgICAgICAgICB1bmNvbW1pdHRlZFZhbHVlLm1hcCgoeCkgPT4geC52YWx1ZSEpLFxuICAgICAgICAgIHVuY29tbWl0dGVkVmFsdWUubWFwKCh4KSA9PiB4LmxhYmVsISlcbiAgICAgICAgKTtcbiAgICAgIH19XG4gICAgICBvbkNoYW5nZT17KG5ld1ZhbHVlLCBhY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb24gPT09ICdjbGVhcicgJiYgbm9WYWx1ZU9uQ2xlYXIpIHtcbiAgICAgICAgICBtb2RlbC5jaGFuZ2VWYWx1ZVRvKFtdKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRVbmNvbW1pdHRlZFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgIH19XG4gICAgICBvbk9wZW5NZW51PXthc3luYyAoKSA9PiB7XG4gICAgICAgIHNldElzRmV0Y2hpbmdPcHRpb25zKHRydWUpO1xuICAgICAgICBhd2FpdCBsYXN0VmFsdWVGcm9tKG1vZGVsLnZhbGlkYXRlQW5kVXBkYXRlKCkpO1xuICAgICAgICBzZXRJc0ZldGNoaW5nT3B0aW9ucyhmYWxzZSk7XG4gICAgICAgIHNldElzT3B0aW9uc09wZW4odHJ1ZSk7XG4gICAgICB9fVxuICAgICAgb25DbG9zZU1lbnU9eygpID0+IHtcbiAgICAgICAgc2V0SXNPcHRpb25zT3BlbihmYWxzZSk7XG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG5cbmNvbnN0IGZpbHRlck5vT3AgPSAoKSA9PiB0cnVlO1xuXG5mdW5jdGlvbiB0b1NlbGVjdGFibGVWYWx1ZShpbnB1dDogVmFyaWFibGVWYWx1ZU9wdGlvbik6IFNlbGVjdGFibGVWYWx1ZTxWYXJpYWJsZVZhbHVlU2luZ2xlPiB7XG4gIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBncm91cCB9ID0gaW5wdXQ7XG4gIGNvbnN0IHJlc3VsdDogU2VsZWN0YWJsZVZhbHVlPFZhcmlhYmxlVmFsdWVTaW5nbGU+ID0ge1xuICAgIGxhYmVsLFxuICAgIHZhbHVlLFxuICB9O1xuXG4gIGlmIChncm91cCkge1xuICAgIHJlc3VsdC5ncm91cCA9IGdyb3VwO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdLCJuYW1lcyI6WyJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJETyxNQUFNLHdCQUF3QixrQkFBeUMsQ0FBQTtBQUFBLEVBdUVyRSxZQUFZLFlBQTZDLEVBQUE7QUFDOUQsSUFBTSxLQUFBLENBQUEsYUFBQSxDQUFBLGNBQUEsQ0FBQTtBQUFBLE1BQ0osT0FBUyxFQUFBLElBQUE7QUFBQSxNQUNULElBQU0sRUFBQSxFQUFBO0FBQUEsTUFDTixPQUFPLEVBQUM7QUFBQSxNQUNSLE1BQU0sRUFBQztBQUFBLE1BQ1AsU0FBUyxFQUFDO0FBQUEsTUFDVixVQUFZLEVBQUEsSUFBQTtBQUFBLE1BQ1osYUFBYSxFQUFDO0FBQUEsTUFDZCxTQUFXLEVBQUEsTUFBQTtBQUFBLE1BQ1gsTUFBUSxFQUFBLFlBQUE7QUFBQSxNQUNSLElBQU0sRUFBQSxTQUFBO0FBQUEsS0FBQSxFQUNILFlBWEMsQ0FBQSxFQUFBO0FBQUEsTUFZSixjQUFnQixFQUFBLElBQUE7QUFBQSxLQUNqQixDQUFBLENBQUEsQ0FBQTtBQW5GSCxJQUFTLElBQUEsQ0FBQSxNQUFBLEdBQUEsSUFBQSxDQUFBO0FBRVQsSUFBVSxJQUFBLENBQUEsUUFBQSxHQUFzQyxJQUFJLDZCQUFBLENBQThCLElBQUksQ0FBQSxDQUFBO0FBNkZ0RixJQUFPLElBQUEsQ0FBQSxRQUFBLEdBQVcsT0FBTyxFQUFzQixLQUFBO0FBNUpqRCxNQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUE4SkksTUFBQSxNQUFNLFdBQVcsT0FBTSxDQUFBLEVBQUEsR0FBQSxDQUFBLEVBQUEsR0FBQSxJQUFBLENBQUssS0FBTSxFQUFBLGtCQUFBLEtBQVgsNEJBQWdDLElBQU0sRUFBQSxJQUFBLENBQUEsQ0FBQSxDQUFB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
@@ -0,0 +1,63 @@
1
+ import { toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils.js';
2
+
3
+ class GroupByVariableUrlSyncHandler {
4
+ constructor(_sceneObject) {
5
+ this._sceneObject = _sceneObject;
6
+ }
7
+ getKey() {
8
+ return `var-${this._sceneObject.state.name}`;
9
+ }
10
+ getKeys() {
11
+ if (this._sceneObject.state.skipUrlSync) {
12
+ return [];
13
+ }
14
+ return [this.getKey()];
15
+ }
16
+ getUrlState() {
17
+ if (this._sceneObject.state.skipUrlSync) {
18
+ return {};
19
+ }
20
+ return { [this.getKey()]: toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text) };
21
+ }
22
+ updateFromUrl(values) {
23
+ let urlValue = values[this.getKey()];
24
+ if (urlValue != null) {
25
+ if (!this._sceneObject.isActive) {
26
+ this._sceneObject.skipNextValidation = true;
27
+ }
28
+ const { values: values2, texts } = fromUrlValues(urlValue);
29
+ this._sceneObject.changeValueTo(values2, texts);
30
+ }
31
+ }
32
+ }
33
+ function toUrlValues(values, texts) {
34
+ values = Array.isArray(values) ? values : [values];
35
+ texts = Array.isArray(texts) ? texts : [texts];
36
+ return values.map((value, idx) => {
37
+ if (value === void 0 || value === null) {
38
+ return "";
39
+ }
40
+ value = String(value);
41
+ let text = texts[idx];
42
+ text = text === void 0 || text === null ? value : String(text);
43
+ return toUrlCommaDelimitedString(value, text);
44
+ });
45
+ }
46
+ function fromUrlValues(urlValues) {
47
+ urlValues = Array.isArray(urlValues) ? urlValues : [urlValues];
48
+ return urlValues.reduce(
49
+ (acc, urlValue) => {
50
+ const [value, label] = (urlValue != null ? urlValue : "").split(",");
51
+ acc.values.push(unescapeUrlDelimiters(value));
52
+ acc.texts.push(unescapeUrlDelimiters(label != null ? label : value));
53
+ return acc;
54
+ },
55
+ {
56
+ values: [],
57
+ texts: []
58
+ }
59
+ );
60
+ }
61
+
62
+ export { GroupByVariableUrlSyncHandler };
63
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JvdXBCeVZhcmlhYmxlVXJsU3luY0hhbmRsZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy92YXJpYWJsZXMvZ3JvdXBieS9Hcm91cEJ5VmFyaWFibGVVcmxTeW5jSGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2VuZU9iamVjdFVybFN5bmNIYW5kbGVyLCBTY2VuZU9iamVjdFVybFZhbHVlcyB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgR3JvdXBCeVZhcmlhYmxlIH0gZnJvbSAnLi9Hcm91cEJ5VmFyaWFibGUnO1xuaW1wb3J0IHsgdG9VcmxDb21tYURlbGltaXRlZFN0cmluZywgdW5lc2NhcGVVcmxEZWxpbWl0ZXJzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmFyaWFibGVWYWx1ZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEdyb3VwQnlWYXJpYWJsZVVybFN5bmNIYW5kbGVyIGltcGxlbWVudHMgU2NlbmVPYmplY3RVcmxTeW5jSGFuZGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zY2VuZU9iamVjdDogR3JvdXBCeVZhcmlhYmxlKSB7fVxuXG4gIHByaXZhdGUgZ2V0S2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB2YXItJHt0aGlzLl9zY2VuZU9iamVjdC5zdGF0ZS5uYW1lfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0S2V5cygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuX3NjZW5lT2JqZWN0LnN0YXRlLnNraXBVcmxTeW5jKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIFt0aGlzLmdldEtleSgpXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVcmxTdGF0ZSgpOiBTY2VuZU9iamVjdFVybFZhbHVlcyB7XG4gICAgaWYgKHRoaXMuX3NjZW5lT2JqZWN0LnN0YXRlLnNraXBVcmxTeW5jKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgW3RoaXMuZ2V0S2V5KCldOiB0b1VybFZhbHVlcyh0aGlzLl9zY2VuZU9iamVjdC5zdGF0ZS52YWx1ZSwgdGhpcy5fc2NlbmVPYmplY3Quc3RhdGUudGV4dCkgfTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGcm9tVXJsKHZhbHVlczogU2NlbmVPYmplY3RVcmxWYWx1ZXMpOiB2b2lkIHtcbiAgICBsZXQgdXJsVmFsdWUgPSB2YWx1ZXNbdGhpcy5nZXRLZXkoKV07XG5cbiAgICBpZiAodXJsVmFsdWUgIT0gbnVsbCkge1xuICAgICAgLyoqXG4gICAgICAgKiBJbml0aWFsIFVSTCBTeW5jIGhhcHBlbnMgYmVmb3JlIHNjZW5lIG9iamVjdHMgYXJlIGFjdGl2YXRlZC5cbiAgICAgICAqIFdlIG5lZWQgdG8gc2tpcCB2YWxpZGF0aW9uIGluIHRoaXMgY2FzZSB0byBtYWtlIHN1cmUgdmFsdWVzIHNldCB2aWEgVVJMIGFyZSBtYWludGFpbmVkLlxuICAgICAgICovXG4gICAgICBpZiAoIXRoaXMuX3NjZW5lT2JqZWN0LmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX3NjZW5lT2JqZWN0LnNraXBOZXh0VmFsaWRhdGlvbiA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgdmFsdWVzLCB0ZXh0cyB9ID0gZnJvbVVybFZhbHVlcyh1cmxWYWx1ZSk7XG5cbiAgICAgIHRoaXMuX3NjZW5lT2JqZWN0LmNoYW5nZVZhbHVlVG8odmFsdWVzLCB0ZXh0cyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRvVXJsVmFsdWVzKHZhbHVlczogVmFyaWFibGVWYWx1ZSwgdGV4dHM6IFZhcmlhYmxlVmFsdWUpOiBzdHJpbmdbXSB7XG4gIHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWVzKSA/IHZhbHVlcyA6IFt2YWx1ZXNdO1xuICB0ZXh0cyA9IEFycmF5LmlzQXJyYXkodGV4dHMpID8gdGV4dHMgOiBbdGV4dHNdO1xuXG4gIHJldHVybiB2YWx1ZXMubWFwKCh2YWx1ZSwgaWR4KSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICB2YWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG5cbiAgICBsZXQgdGV4dCA9IHRleHRzW2lkeF07XG4gICAgdGV4dCA9IHRleHQgPT09IHVuZGVmaW5lZCB8fCB0ZXh0ID09PSBudWxsID8gdmFsdWUgOiBTdHJpbmcodGV4dCk7XG5cbiAgICByZXR1cm4gdG9VcmxDb21tYURlbGltaXRlZFN0cmluZyh2YWx1ZSwgdGV4dCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBmcm9tVXJsVmFsdWVzKHVybFZhbHVlczogc3RyaW5nIHwgc3RyaW5nW10pOiB7IHZhbHVlczogc3RyaW5nW107IHRleHRzOiBzdHJpbmdbXSB9IHtcbiAgdXJsVmFsdWVzID0gQXJyYXkuaXNBcnJheSh1cmxWYWx1ZXMpID8gdXJsVmFsdWVzIDogW3VybFZhbHVlc107XG5cbiAgcmV0dXJuIHVybFZhbHVlcy5yZWR1Y2U8eyB2YWx1ZXM6IHN0cmluZ1tdOyB0ZXh0czogc3RyaW5nW10gfT4oXG4gICAgKGFjYywgdXJsVmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IFt2YWx1ZSwgbGFiZWxdID0gKHVybFZhbHVlID8/ICcnKS5zcGxpdCgnLCcpO1xuXG4gICAgICBhY2MudmFsdWVzLnB1c2godW5lc2NhcGVVcmxEZWxpbWl0ZXJzKHZhbHVlKSk7XG4gICAgICBhY2MudGV4dHMucHVzaCh1bmVzY2FwZVVybERlbGltaXRlcnMobGFiZWwgPz8gdmFsdWUpKTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhbHVlczogW10sXG4gICAgICB0ZXh0czogW10sXG4gICAgfVxuICApO1xufVxuIl0sIm5hbWVzIjpbInZhbHVlcyJdLCJtYXBwaW5ncyI6Ijs7QUFLTyxNQUFNLDZCQUFtRSxDQUFBO0FBQUEsRUFDdkUsWUFBb0Is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
@@ -0,0 +1,13 @@
1
+ const allActiveGroupByVariables = /* @__PURE__ */ new Set();
2
+ function findActiveGroupByVariablesByUid(dsUid) {
3
+ var _a;
4
+ for (const groupByVariable of allActiveGroupByVariables.values()) {
5
+ if (((_a = groupByVariable.state.datasource) == null ? void 0 : _a.uid) === dsUid) {
6
+ return groupByVariable;
7
+ }
8
+ }
9
+ return void 0;
10
+ }
11
+
12
+ export { allActiveGroupByVariables, findActiveGroupByVariablesByUid };
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZEFjdGl2ZUdyb3VwQnlWYXJpYWJsZXNCeVVpZC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3ZhcmlhYmxlcy9ncm91cGJ5L2ZpbmRBY3RpdmVHcm91cEJ5VmFyaWFibGVzQnlVaWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JvdXBCeVZhcmlhYmxlIH0gZnJvbSAnLi9Hcm91cEJ5VmFyaWFibGUnO1xuXG5leHBvcnQgY29uc3QgYWxsQWN0aXZlR3JvdXBCeVZhcmlhYmxlcyA9IG5ldyBTZXQ8R3JvdXBCeVZhcmlhYmxlPigpO1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFjdGl2ZUdyb3VwQnlWYXJpYWJsZXNCeVVpZChkc1VpZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogR3JvdXBCeVZhcmlhYmxlIHwgdW5kZWZpbmVkIHtcbiAgZm9yIChjb25zdCBncm91cEJ5VmFyaWFibGUgb2YgYWxsQWN0aXZlR3JvdXBCeVZhcmlhYmxlcy52YWx1ZXMoKSkge1xuICAgIGlmIChncm91cEJ5VmFyaWFibGUuc3RhdGUuZGF0YXNvdXJjZT8udWlkID09PSBkc1VpZCkge1xuICAgICAgcmV0dXJuIGdyb3VwQnlWYXJpYWJsZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVhLE1BQUEseUJBQUEsdUJBQWdDLEdBQXFCLEdBQUE7QUFFM0QsU0FBUyxnQ0FBZ0MsS0FBd0QsRUFBQTtBQUp4RyxFQUFBLElBQUEsRUFBQSxDQUFBO0FBS0UsRUFBVyxLQUFBLE1BQUEsZUFBQSxJQUFtQix5QkFBMEIsQ0FBQSxNQUFBLEVBQVUsRUFBQTtBQUNoRSxJQUFBLElBQUEsQ0FBQSxDQUFJLEVBQWdCLEdBQUEsZUFBQSxDQUFBLEtBQUEsQ0FBTSxVQUF0QixLQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQWtDLFNBQVEsS0FBTyxFQUFBO0FBQ25ELE1BQU8sT0FBQSxlQUFBLENBQUE7QUFBQSxLQUNUO0FBQUEsR0FDRjtBQUVBLEVBQU8sT0FBQSxLQUFBLENBQUEsQ0FBQTtBQUNUOzs7OyJ9
@@ -0,0 +1,40 @@
1
+ import { getFieldAccessor } from './fieldAccessorCache.js';
2
+
3
+ class ScopedVarsVariable {
4
+ constructor(name, value) {
5
+ this.state = { name, value, type: "scopedvar" };
6
+ }
7
+ getValue(fieldPath) {
8
+ let { value } = this.state;
9
+ let realValue = value.value;
10
+ if (fieldPath) {
11
+ realValue = getFieldAccessor(fieldPath)(value.value);
12
+ } else {
13
+ realValue = value.value;
14
+ }
15
+ if (realValue === "string" || realValue === "number" || realValue === "boolean") {
16
+ return realValue;
17
+ }
18
+ return String(realValue);
19
+ }
20
+ getValueText() {
21
+ const { value } = this.state;
22
+ if (value.text != null) {
23
+ return String(value.text);
24
+ }
25
+ return String(value);
26
+ }
27
+ }
28
+ let scopedVarsVariable;
29
+ function getSceneVariableForScopedVar(name, value) {
30
+ if (!scopedVarsVariable) {
31
+ scopedVarsVariable = new ScopedVarsVariable(name, value);
32
+ } else {
33
+ scopedVarsVariable.state.name = name;
34
+ scopedVarsVariable.state.value = value;
35
+ }
36
+ return scopedVarsVariable;
37
+ }
38
+
39
+ export { ScopedVarsVariable, getSceneVariableForScopedVar };
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NvcGVkVmFyc1ZhcmlhYmxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdmFyaWFibGVzL2ludGVycG9sYXRpb24vU2NvcGVkVmFyc1ZhcmlhYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjb3BlZFZhciB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuXG5pbXBvcnQgeyBWYXJpYWJsZVZhbHVlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBGb3JtYXRWYXJpYWJsZSB9IGZyb20gJy4vZm9ybWF0UmVnaXN0cnknO1xuaW1wb3J0IHsgZ2V0RmllbGRBY2Nlc3NvciB9IGZyb20gJy4vZmllbGRBY2Nlc3NvckNhY2hlJztcblxuZXhwb3J0IGNsYXNzIFNjb3BlZFZhcnNWYXJpYWJsZSBpbXBsZW1lbnRzIEZvcm1hdFZhcmlhYmxlIHtcbiAgcHVibGljIHN0YXRlOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IFNjb3BlZFZhcjsgdHlwZTogc3RyaW5nIH07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgdmFsdWU6IFNjb3BlZFZhcikge1xuICAgIHRoaXMuc3RhdGUgPSB7IG5hbWUsIHZhbHVlLCB0eXBlOiAnc2NvcGVkdmFyJyB9O1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKGZpZWxkUGF0aDogc3RyaW5nKTogVmFyaWFibGVWYWx1ZSB7XG4gICAgbGV0IHsgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgbGV0IHJlYWxWYWx1ZSA9IHZhbHVlLnZhbHVlO1xuXG4gICAgaWYgKGZpZWxkUGF0aCkge1xuICAgICAgcmVhbFZhbHVlID0gZ2V0RmllbGRBY2Nlc3NvcihmaWVsZFBhdGgpKHZhbHVlLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVhbFZhbHVlID0gdmFsdWUudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHJlYWxWYWx1ZSA9PT0gJ3N0cmluZycgfHwgcmVhbFZhbHVlID09PSAnbnVtYmVyJyB8fCByZWFsVmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIHJlYWxWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gU3RyaW5nKHJlYWxWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGlmICh2YWx1ZS50ZXh0ICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUudGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cbn1cblxubGV0IHNjb3BlZFZhcnNWYXJpYWJsZTogU2NvcGVkVmFyc1ZhcmlhYmxlIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIFJldXNlcyBhIHNpbmdsZSBpbnN0YW5jZSB0byBhdm9pZCB1bm5lY2Vzc2FyeSBtZW1vcnkgYWxsb2NhdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNjZW5lVmFyaWFibGVGb3JTY29wZWRWYXIobmFtZTogc3RyaW5nLCB2YWx1ZTogU2NvcGVkVmFyKTogRm9ybWF0VmFyaWFibGUge1xuICBpZiAoIXNjb3BlZFZhcnNWYXJpYWJsZSkge1xuICAgIHNjb3BlZFZhcnNWYXJpYWJsZSA9IG5ldyBTY29wZWRWYXJzVmFyaWFibGUobmFtZSwgdmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHNjb3BlZFZhcnNWYXJpYWJsZS5zdGF0ZS5uYW1lID0gbmFtZTtcbiAgICBzY29wZWRWYXJzVmFyaWFibGUuc3RhdGUudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBzY29wZWRWYXJzVmFyaWFibGU7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPTyxNQUFNLGtCQUE2QyxDQUFBO0FBQUEsRUFHakQsV0FBQSxDQUFZLE1BQWMsS0FBa0IsRUFBQTtBQUNqRCxJQUFBLElBQUEsQ0FBSyxLQUFRLEdBQUEsRUFBRSxJQUFNLEVBQUEsS0FBQSxFQUFPLE1BQU0sV0FBWSxFQUFBLENBQUE7QUFBQSxHQUNoRDtBQUFBLEVBRU8sU0FBUyxTQUFrQyxFQUFBO0FBQ2hELElBQUksSUFBQSxFQUFFLEtBQU0sRUFBQSxHQUFJLElBQUssQ0FBQSxLQUFBLENBQUE7QUFDckIsSUFBQSxJQUFJLFlBQVksS0FBTSxDQUFBLEtBQUEsQ0FBQTtBQUV0QixJQUFBLElBQUksU0FBVyxFQUFBO0FBQ2IsTUFBQSxTQUFBLEdBQVksZ0JBQWlCLENBQUEsU0FBUyxDQUFFLENBQUEsS0FBQSxDQUFNLEtBQUssQ0FBQSxDQUFBO0FBQUEsS0FDOUMsTUFBQTtBQUNMLE1BQUEsU0FBQSxHQUFZLEtBQU0sQ0FBQSxLQUFBLENBQUE7QUFBQSxLQUNwQjtBQUVBLElBQUEsSUFBSSxTQUFjLEtBQUEsUUFBQSxJQUFZLFNBQWMsS0FBQSxRQUFBLElBQVksY0FBYyxTQUFXLEVBQUE7QUFDL0UsTUFBTyxPQUFBLFNBQUEsQ0FBQTtBQUFBLEtBQ1Q7QUFFQSxJQUFBLE9BQU8sT0FBTyxTQUFTLENBQUEsQ0FBQTtBQUFBLEdBQ3pCO0FBQUEsRUFFTyxZQUF1QixHQUFBO0FBQzVCLElBQU0sTUFBQSxFQUFFLEtBQU0sRUFBQSxHQUFJLElBQUssQ0FBQSxLQUFBLENBQUE7QUFFdkIsSUFBSSxJQUFBLEtBQUEsQ0FBTSxRQUFRLElBQU0sRUFBQTtBQUN0QixNQUFPLE9BQUEsTUFBQSxDQUFPLE1BQU0sSUFBSSxDQUFBLENBQUE7QUFBQSxLQUMxQjtBQUVBLElBQUEsT0FBTyxPQUFPLEtBQUssQ0FBQSxDQUFBO0FBQUEsR0FDckI7QUFDRixDQUFBO0FBRUEsSUFBSSxrQkFBQSxDQUFBO0FBS1ksU0FBQSw0QkFBQSxDQUE2QixNQUFjLEtBQWtDLEVBQUE7QUFDM0YsRUFBQSxJQUFJLENBQUMsa0JBQW9CLEVBQUE7QUFDdkIsSUFBcUIsa0JBQUEsR0FBQSxJQUFJLGtCQUFtQixDQUFBLElBQUEsRUFBTSxLQUFLLENBQUEsQ0FBQTtBQUFBLEdBQ2xELE1BQUE7QUFDTCxJQUFBLGtCQUFBLENBQW1CLE1BQU0sSUFBTyxHQUFBLElBQUEsQ0FBQTtBQUNoQyxJQUFBLGtCQUFBLENBQW1CLE1BQU0sS0FBUSxHQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ25DO0FBRUEsRUFBTyxPQUFBLGtCQUFBLENBQUE7QUFDVDs7OzsifQ==
@@ -0,0 +1,21 @@
1
+ import { SceneDataNode } from '../../core/SceneDataNode.js';
2
+ import { SceneObjectBase } from '../../core/SceneObjectBase.js';
3
+ import { SceneTimeRange } from '../../core/SceneTimeRange.js';
4
+
5
+ const EmptyDataNode = new SceneDataNode();
6
+ const DefaultTimeRange = new SceneTimeRange();
7
+ class EmptyVariableSetImpl extends SceneObjectBase {
8
+ constructor() {
9
+ super({ variables: [] });
10
+ }
11
+ getByName(name) {
12
+ return void 0;
13
+ }
14
+ isVariableLoadingOrWaitingToUpdate(variable) {
15
+ return false;
16
+ }
17
+ }
18
+ const EmptyVariableSet = new EmptyVariableSetImpl();
19
+
20
+ export { DefaultTimeRange, EmptyDataNode, EmptyVariableSet, EmptyVariableSetImpl };
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy92YXJpYWJsZXMvaW50ZXJwb2xhdGlvbi9kZWZhdWx0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2VuZURhdGFOb2RlIH0gZnJvbSAnLi4vLi4vY29yZS9TY2VuZURhdGFOb2RlJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvU2NlbmVPYmplY3RCYXNlJztcbmltcG9ydCB7IFNjZW5lVGltZVJhbmdlIH0gZnJvbSAnLi4vLi4vY29yZS9TY2VuZVRpbWVSYW5nZSc7XG5pbXBvcnQgeyBTY2VuZVZhcmlhYmxlLCBTY2VuZVZhcmlhYmxlcywgU2NlbmVWYXJpYWJsZVNldFN0YXRlLCBTY2VuZVZhcmlhYmxlU3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBFbXB0eURhdGFOb2RlID0gbmV3IFNjZW5lRGF0YU5vZGUoKTtcbmV4cG9ydCBjb25zdCBEZWZhdWx0VGltZVJhbmdlID0gbmV3IFNjZW5lVGltZVJhbmdlKCk7XG5cbi8qKlxuICogU2luY2UgdGhpcyBpcyB1c2VkIGZyb20gc2NlbmVHcmFwaC5nZXRWYXJpYWJsZXMgd2UgY2Fubm90IHJlZmVyZW5jZSBTY2VuZVZhcmlhYmxlU2V0IGhlcmUgYXMgaXQgd291bGQgY3JlYXRlIGEgY2lyY3VsYXIgcmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBFbXB0eVZhcmlhYmxlU2V0SW1wbCBleHRlbmRzIFNjZW5lT2JqZWN0QmFzZTxTY2VuZVZhcmlhYmxlU2V0U3RhdGU+IGltcGxlbWVudHMgU2NlbmVWYXJpYWJsZXMge1xuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoeyB2YXJpYWJsZXM6IFtdIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEJ5TmFtZShuYW1lOiBzdHJpbmcpOiBTY2VuZVZhcmlhYmxlPFNjZW5lVmFyaWFibGVTdGF0ZT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNWYXJpYWJsZUxvYWRpbmdPcldhaXRpbmdUb1VwZGF0ZSh2YXJpYWJsZTogU2NlbmVWYXJpYWJsZTxTY2VuZVZhcmlhYmxlU3RhdGU+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBFbXB0eVZhcmlhYmxlU2V0ID0gbmV3IEVtcHR5VmFyaWFibGVTZXRJbXBsKCk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUthLE1BQUEsYUFBQSxHQUFnQixJQUFJLGFBQWMsR0FBQTtBQUNsQyxNQUFBLGdCQUFBLEdBQW1CLElBQUksY0FBZSxHQUFBO0FBSzVDLE1BQU0sNkJBQTZCLGVBQWlFLENBQUE7QUFBQSxFQUNsRyxXQUFjLEdBQUE7QUFDbkIsSUFBQSxLQUFBLENBQU0sRUFBRSxTQUFBLEVBQVcsRUFBQyxFQUFHLENBQUEsQ0FBQTtBQUFBLEdBQ3pCO0FBQUEsRUFFTyxVQUFVLElBQTZELEVBQUE7QUFDNUUsSUFBTyxPQUFBLEtBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDVDtBQUFBLEVBRU8sbUNBQW1DLFFBQXNELEVBQUE7QUFDOUYsSUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ1Q7QUFDRixDQUFBO0FBRWEsTUFBQSxnQkFBQSxHQUFtQixJQUFJLG9CQUFxQjs7OzsifQ==
@@ -0,0 +1,13 @@
1
+ import { property } from 'lodash';
2
+
3
+ let fieldAccessorCache = {};
4
+ function getFieldAccessor(fieldPath) {
5
+ const accessor = fieldAccessorCache[fieldPath];
6
+ if (accessor) {
7
+ return accessor;
8
+ }
9
+ return fieldAccessorCache[fieldPath] = property(fieldPath);
10
+ }
11
+
12
+ export { getFieldAccessor };
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRBY2Nlc3NvckNhY2hlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdmFyaWFibGVzL2ludGVycG9sYXRpb24vZmllbGRBY2Nlc3NvckNhY2hlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbG9kYXNoJztcblxuaW50ZXJmYWNlIEZpZWxkQWNjZXNzb3JDYWNoZSB7XG4gIFtrZXk6IHN0cmluZ106IChvYmo6IG9iamVjdCkgPT4gYW55O1xufVxuXG5sZXQgZmllbGRBY2Nlc3NvckNhY2hlOiBGaWVsZEFjY2Vzc29yQ2FjaGUgPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkQWNjZXNzb3IoZmllbGRQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgYWNjZXNzb3IgPSBmaWVsZEFjY2Vzc29yQ2FjaGVbZmllbGRQYXRoXTtcbiAgaWYgKGFjY2Vzc29yKSB7XG4gICAgcmV0dXJuIGFjY2Vzc29yO1xuICB9XG5cbiAgcmV0dXJuIChmaWVsZEFjY2Vzc29yQ2FjaGVbZmllbGRQYXRoXSA9IHByb3BlcnR5KGZpZWxkUGF0aCkpO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsSUFBSSxxQkFBeUMsRUFBQyxDQUFBO0FBRXZDLFNBQVMsaUJBQWlCLFNBQW1CLEVBQUE7QUFDbEQsRUFBQSxNQUFNLFdBQVcsa0JBQW1CLENBQUEsU0FBQSxDQUFBLENBQUE7QUFDcEMsRUFBQSxJQUFJLFFBQVUsRUFBQTtBQUNaLElBQU8sT0FBQSxRQUFBLENBQUE7QUFBQSxHQUNUO0FBRUEsRUFBUSxPQUFBLGtCQUFBLENBQW1CLFNBQWEsQ0FBQSxHQUFBLFFBQUEsQ0FBUyxTQUFTLENBQUEsQ0FBQTtBQUM1RDs7OzsifQ==