@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,164 @@
1
+ import { isSystemOverrideWithRef, FieldMatcherID, ByNamesMatcherMode, FieldType, getFieldDisplayName, fieldMatchers } from '@grafana/data';
2
+ import { SeriesVisibilityChangeMode } from '@grafana/ui';
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __defProps = Object.defineProperties;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ const displayOverrideRef = "hideSeriesFrom";
24
+ const isHideSeriesOverride = isSystemOverrideWithRef(displayOverrideRef);
25
+ function seriesVisibilityConfigFactory(label, mode, fieldConfig, data) {
26
+ const { overrides } = fieldConfig;
27
+ const displayName = label;
28
+ const currentIndex = overrides.findIndex(isHideSeriesOverride);
29
+ if (currentIndex < 0) {
30
+ if (mode === SeriesVisibilityChangeMode.ToggleSelection) {
31
+ const override3 = createOverride([displayName, ...getNamesOfHiddenFields(overrides, data)]);
32
+ return __spreadProps(__spreadValues({}, fieldConfig), {
33
+ overrides: [...fieldConfig.overrides, override3]
34
+ });
35
+ }
36
+ const displayNames = getDisplayNames(data, displayName);
37
+ const override2 = createOverride(displayNames);
38
+ return __spreadProps(__spreadValues({}, fieldConfig), {
39
+ overrides: [...fieldConfig.overrides, override2]
40
+ });
41
+ }
42
+ const overridesCopy = Array.from(overrides);
43
+ const [current] = overridesCopy.splice(currentIndex, 1);
44
+ if (mode === SeriesVisibilityChangeMode.ToggleSelection) {
45
+ let existing = getExistingDisplayNames(current);
46
+ const nameOfHiddenFields = getNamesOfHiddenFields(overridesCopy, data);
47
+ if (nameOfHiddenFields.length > 0) {
48
+ existing = existing.filter((el) => nameOfHiddenFields.indexOf(el) < 0);
49
+ }
50
+ if (existing[0] === displayName && existing.length === 1) {
51
+ return __spreadProps(__spreadValues({}, fieldConfig), {
52
+ overrides: overridesCopy
53
+ });
54
+ }
55
+ const override2 = createOverride([displayName, ...nameOfHiddenFields]);
56
+ return __spreadProps(__spreadValues({}, fieldConfig), {
57
+ overrides: [...overridesCopy, override2]
58
+ });
59
+ }
60
+ const override = createExtendedOverride(current, displayName);
61
+ if (allFieldsAreExcluded(override, data)) {
62
+ return __spreadProps(__spreadValues({}, fieldConfig), {
63
+ overrides: overridesCopy
64
+ });
65
+ }
66
+ return __spreadProps(__spreadValues({}, fieldConfig), {
67
+ overrides: [...overridesCopy, override]
68
+ });
69
+ }
70
+ function createOverride(names, mode = ByNamesMatcherMode.exclude, property) {
71
+ property = property != null ? property : {
72
+ id: "custom.hideFrom",
73
+ value: {
74
+ viz: true,
75
+ legend: false,
76
+ tooltip: false
77
+ }
78
+ };
79
+ return {
80
+ __systemRef: displayOverrideRef,
81
+ matcher: {
82
+ id: FieldMatcherID.byNames,
83
+ options: {
84
+ mode,
85
+ names,
86
+ prefix: mode === ByNamesMatcherMode.exclude ? "All except:" : void 0,
87
+ readOnly: true
88
+ }
89
+ },
90
+ properties: [
91
+ __spreadProps(__spreadValues({}, property), {
92
+ value: {
93
+ viz: true,
94
+ legend: false,
95
+ tooltip: false
96
+ }
97
+ })
98
+ ]
99
+ };
100
+ }
101
+ const createExtendedOverride = (current, displayName, mode = ByNamesMatcherMode.exclude) => {
102
+ const property = current.properties.find((p) => p.id === "custom.hideFrom");
103
+ const existing = getExistingDisplayNames(current);
104
+ const index = existing.findIndex((name) => name === displayName);
105
+ if (index < 0) {
106
+ existing.push(displayName);
107
+ } else {
108
+ existing.splice(index, 1);
109
+ }
110
+ return createOverride(existing, mode, property);
111
+ };
112
+ const getExistingDisplayNames = (rule) => {
113
+ var _a;
114
+ const names = (_a = rule.matcher.options) == null ? void 0 : _a.names;
115
+ if (!Array.isArray(names)) {
116
+ return [];
117
+ }
118
+ return [...names];
119
+ };
120
+ const allFieldsAreExcluded = (override, data) => {
121
+ return getExistingDisplayNames(override).length === getDisplayNames(data).length;
122
+ };
123
+ const getDisplayNames = (data, excludeName) => {
124
+ const unique = /* @__PURE__ */ new Set();
125
+ for (const frame of data) {
126
+ for (const field of frame.fields) {
127
+ if (field.type !== FieldType.number) {
128
+ continue;
129
+ }
130
+ const name = getFieldDisplayName(field, frame, data);
131
+ if (name === excludeName) {
132
+ continue;
133
+ }
134
+ unique.add(name);
135
+ }
136
+ }
137
+ return Array.from(unique);
138
+ };
139
+ const getNamesOfHiddenFields = (overrides, data) => {
140
+ var _a;
141
+ let names = [];
142
+ for (const override of overrides) {
143
+ const property = override.properties.find((p) => p.id === "custom.hideFrom");
144
+ if (property !== void 0 && ((_a = property.value) == null ? void 0 : _a.legend) === true) {
145
+ const info = fieldMatchers.get(override.matcher.id);
146
+ const matcher = info.get(override.matcher.options);
147
+ for (const frame of data) {
148
+ for (const field of frame.fields) {
149
+ if (field.type !== FieldType.number) {
150
+ continue;
151
+ }
152
+ const name = getFieldDisplayName(field, frame, data);
153
+ if (matcher(field, frame, data)) {
154
+ names.push(name);
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+ return names;
161
+ };
162
+
163
+ export { seriesVisibilityConfigFactory };
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVzVmlzaWJpbGl0eUNvbmZpZ0ZhY3RvcnkuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1ZpelBhbmVsL3Nlcmllc1Zpc2liaWxpdHlDb25maWdGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJ5TmFtZXNNYXRjaGVyTW9kZSxcbiAgQ29uZmlnT3ZlcnJpZGVSdWxlLFxuICBEYXRhRnJhbWUsXG4gIER5bmFtaWNDb25maWdWYWx1ZSxcbiAgRmllbGRDb25maWdTb3VyY2UsXG4gIEZpZWxkTWF0Y2hlcklELFxuICBmaWVsZE1hdGNoZXJzLFxuICBGaWVsZFR5cGUsXG4gIGdldEZpZWxkRGlzcGxheU5hbWUsXG4gIGlzU3lzdGVtT3ZlcnJpZGVXaXRoUmVmLFxuICBTeXN0ZW1Db25maWdPdmVycmlkZVJ1bGUsXG59IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgU2VyaWVzVmlzaWJpbGl0eUNoYW5nZU1vZGUgfSBmcm9tICdAZ3JhZmFuYS91aSc7XG5cbmNvbnN0IGRpc3BsYXlPdmVycmlkZVJlZiA9ICdoaWRlU2VyaWVzRnJvbSc7XG5jb25zdCBpc0hpZGVTZXJpZXNPdmVycmlkZSA9IGlzU3lzdGVtT3ZlcnJpZGVXaXRoUmVmKGRpc3BsYXlPdmVycmlkZVJlZik7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpZXNWaXNpYmlsaXR5Q29uZmlnRmFjdG9yeShcbiAgbGFiZWw6IHN0cmluZyxcbiAgbW9kZTogU2VyaWVzVmlzaWJpbGl0eUNoYW5nZU1vZGUsXG4gIGZpZWxkQ29uZmlnOiBGaWVsZENvbmZpZ1NvdXJjZSxcbiAgZGF0YTogRGF0YUZyYW1lW11cbik6IEZpZWxkQ29uZmlnU291cmNlIHtcbiAgY29uc3QgeyBvdmVycmlkZXMgfSA9IGZpZWxkQ29uZmlnO1xuXG4gIGNvbnN0IGRpc3BsYXlOYW1lID0gbGFiZWw7XG4gIGNvbnN0IGN1cnJlbnRJbmRleCA9IG92ZXJyaWRlcy5maW5kSW5kZXgoaXNIaWRlU2VyaWVzT3ZlcnJpZGUpO1xuXG4gIGlmIChjdXJyZW50SW5kZXggPCAwKSB7XG4gICAgaWYgKG1vZGUgPT09IFNlcmllc1Zpc2liaWxpdHlDaGFuZ2VNb2RlLlRvZ2dsZVNlbGVjdGlvbikge1xuICAgICAgY29uc3Qgb3ZlcnJpZGUgPSBjcmVhdGVPdmVycmlkZShbZGlzcGxheU5hbWUsIC4uLmdldE5hbWVzT2ZIaWRkZW5GaWVsZHMob3ZlcnJpZGVzLCBkYXRhKV0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWVsZENvbmZpZyxcbiAgICAgICAgb3ZlcnJpZGVzOiBbLi4uZmllbGRDb25maWcub3ZlcnJpZGVzLCBvdmVycmlkZV0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRpc3BsYXlOYW1lcyA9IGdldERpc3BsYXlOYW1lcyhkYXRhLCBkaXNwbGF5TmFtZSk7XG4gICAgY29uc3Qgb3ZlcnJpZGUgPSBjcmVhdGVPdmVycmlkZShkaXNwbGF5TmFtZXMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgICAgb3ZlcnJpZGVzOiBbLi4uZmllbGRDb25maWcub3ZlcnJpZGVzLCBvdmVycmlkZV0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG92ZXJyaWRlc0NvcHkgPSBBcnJheS5mcm9tKG92ZXJyaWRlcyk7XG4gIGNvbnN0IFtjdXJyZW50XSA9IG92ZXJyaWRlc0NvcHkuc3BsaWNlKGN1cnJlbnRJbmRleCwgMSkgYXMgU3lzdGVtQ29uZmlnT3ZlcnJpZGVSdWxlW107XG5cbiAgaWYgKG1vZGUgPT09IFNlcmllc1Zpc2liaWxpdHlDaGFuZ2VNb2RlLlRvZ2dsZVNlbGVjdGlvbikge1xuICAgIGxldCBleGlzdGluZyA9IGdldEV4aXN0aW5nRGlzcGxheU5hbWVzKGN1cnJlbnQpO1xuICAgIGNvbnN0IG5hbWVPZkhpZGRlbkZpZWxkcyA9IGdldE5hbWVzT2ZIaWRkZW5GaWVsZHMob3ZlcnJpZGVzQ29weSwgZGF0YSk7XG5cbiAgICBpZiAobmFtZU9mSGlkZGVuRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGV4aXN0aW5nID0gZXhpc3RpbmcuZmlsdGVyKChlbCkgPT4gbmFtZU9mSGlkZGVuRmllbGRzLmluZGV4T2YoZWwpIDwgMCk7XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0aW5nWzBdID09PSBkaXNwbGF5TmFtZSAmJiBleGlzdGluZy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgICAgICBvdmVycmlkZXM6IG92ZXJyaWRlc0NvcHksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IG92ZXJyaWRlID0gY3JlYXRlT3ZlcnJpZGUoW2Rpc3BsYXlOYW1lLCAuLi5uYW1lT2ZIaWRkZW5GaWVsZHNdKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5maWVsZENvbmZpZyxcbiAgICAgIG92ZXJyaWRlczogWy4uLm92ZXJyaWRlc0NvcHksIG92ZXJyaWRlXSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qgb3ZlcnJpZGUgPSBjcmVhdGVFeHRlbmRlZE92ZXJyaWRlKGN1cnJlbnQsIGRpc3BsYXlOYW1lKTtcblxuICBpZiAoYWxsRmllbGRzQXJlRXhjbHVkZWQob3ZlcnJpZGUsIGRhdGEpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgICAgb3ZlcnJpZGVzOiBvdmVycmlkZXNDb3B5LFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgIG92ZXJyaWRlczogWy4uLm92ZXJyaWRlc0NvcHksIG92ZXJyaWRlXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlT3ZlcnJpZGUoXG4gIG5hbWVzOiBzdHJpbmdbXSxcbiAgbW9kZSA9IEJ5TmFtZXNNYXRjaGVyTW9kZS5leGNsdWRlLFxuICBwcm9wZXJ0eT86IER5bmFtaWNDb25maWdWYWx1ZVxuKTogU3lzdGVtQ29uZmlnT3ZlcnJpZGVSdWxlIHtcbiAgcHJvcGVydHkgPSBwcm9wZXJ0eSA/PyB7XG4gICAgaWQ6ICdjdXN0b20uaGlkZUZyb20nLFxuICAgIHZhbHVlOiB7XG4gICAgICB2aXo6IHRydWUsXG4gICAgICBsZWdlbmQ6IGZhbHNlLFxuICAgICAgdG9vbHRpcDogZmFsc2UsXG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIF9fc3lzdGVtUmVmOiBkaXNwbGF5T3ZlcnJpZGVSZWYsXG4gICAgbWF0Y2hlcjoge1xuICAgICAgaWQ6IEZpZWxkTWF0Y2hlcklELmJ5TmFtZXMsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIG1vZGU6IG1vZGUsXG4gICAgICAgIG5hbWVzOiBuYW1lcyxcbiAgICAgICAgcHJlZml4OiBtb2RlID09PSBCeU5hbWVzTWF0Y2hlck1vZGUuZXhjbHVkZSA/ICdBbGwgZXhjZXB0OicgOiB1bmRlZmluZWQsXG4gICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcGVydHksXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgdml6OiB0cnVlLFxuICAgICAgICAgIGxlZ2VuZDogZmFsc2UsXG4gICAgICAgICAgdG9vbHRpcDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cbmNvbnN0IGNyZWF0ZUV4dGVuZGVkT3ZlcnJpZGUgPSAoXG4gIGN1cnJlbnQ6IFN5c3RlbUNvbmZpZ092ZXJyaWRlUnVsZSxcbiAgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgbW9kZSA9IEJ5TmFtZXNNYXRjaGVyTW9kZS5leGNsdWRlXG4pOiBTeXN0ZW1Db25maWdPdmVycmlkZVJ1bGUgPT4ge1xuICBjb25zdCBwcm9wZXJ0eSA9IGN1cnJlbnQucHJvcGVydGllcy5maW5kKChwKSA9PiBwLmlkID09PSAnY3VzdG9tLmhpZGVGcm9tJyk7XG4gIGNvbnN0IGV4aXN0aW5nID0gZ2V0RXhpc3RpbmdEaXNwbGF5TmFtZXMoY3VycmVudCk7XG4gIGNvbnN0IGluZGV4ID0gZXhpc3RpbmcuZmluZEluZGV4KChuYW1lKSA9PiBuYW1lID09PSBkaXNwbGF5TmFtZSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIGV4aXN0aW5nLnB1c2goZGlzcGxheU5hbWUpO1xuICB9IGVsc2Uge1xuICAgIGV4aXN0aW5nLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlT3ZlcnJpZGUoZXhpc3RpbmcsIG1vZGUsIHByb3BlcnR5KTtcbn07XG5cbmNvbnN0IGdldEV4aXN0aW5nRGlzcGxheU5hbWVzID0gKHJ1bGU6IFN5c3RlbUNvbmZpZ092ZXJyaWRlUnVsZSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgbmFtZXMgPSBydWxlLm1hdGNoZXIub3B0aW9ucz8ubmFtZXM7XG4gIGlmICghQXJyYXkuaXNBcnJheShuYW1lcykpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIFsuLi5uYW1lc107XG59O1xuXG5jb25zdCBhbGxGaWVsZHNBcmVFeGNsdWRlZCA9IChvdmVycmlkZTogU3lzdGVtQ29uZmlnT3ZlcnJpZGVSdWxlLCBkYXRhOiBEYXRhRnJhbWVbXSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gZ2V0RXhpc3RpbmdEaXNwbGF5TmFtZXMob3ZlcnJpZGUpLmxlbmd0aCA9PT0gZ2V0RGlzcGxheU5hbWVzKGRhdGEpLmxlbmd0aDtcbn07XG5cbmNvbnN0IGdldERpc3BsYXlOYW1lcyA9IChkYXRhOiBEYXRhRnJhbWVbXSwgZXhjbHVkZU5hbWU/OiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IHVuaXF1ZSA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3QgZnJhbWUgb2YgZGF0YSkge1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZnJhbWUuZmllbGRzKSB7XG4gICAgICBpZiAoZmllbGQudHlwZSAhPT0gRmllbGRUeXBlLm51bWJlcikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmFtZSA9IGdldEZpZWxkRGlzcGxheU5hbWUoZmllbGQsIGZyYW1lLCBkYXRhKTtcblxuICAgICAgaWYgKG5hbWUgPT09IGV4Y2x1ZGVOYW1lKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB1bmlxdWUuYWRkKG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBBcnJheS5mcm9tKHVuaXF1ZSk7XG59O1xuXG5jb25zdCBnZXROYW1lc09mSGlkZGVuRmllbGRzID0gKG92ZXJyaWRlczogQ29uZmlnT3ZlcnJpZGVSdWxlW10sIGRhdGE6IERhdGFGcmFtZVtdKTogc3RyaW5nW10gPT4ge1xuICBsZXQgbmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBvdmVycmlkZSBvZiBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IG92ZXJyaWRlLnByb3BlcnRpZXMuZmluZCgocCkgPT4gcC5pZCA9PT0gJ2N1c3RvbS5oaWRlRnJvbScpO1xuXG4gICAgaWYgKHByb3BlcnR5ICE9PSB1bmRlZmluZWQgJiYgcHJvcGVydHkudmFsdWU/LmxlZ2VuZCA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgaW5mbyA9IGZpZWxkTWF0Y2hlcnMuZ2V0KG92ZXJyaWRlLm1hdGNoZXIuaWQpO1xuICAgICAgY29uc3QgbWF0Y2hlciA9IGluZm8uZ2V0KG92ZXJyaWRlLm1hdGNoZXIub3B0aW9ucyk7XG5cbiAgICAgIGZvciAoY29uc3QgZnJhbWUgb2YgZGF0YSkge1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZyYW1lLmZpZWxkcykge1xuICAgICAgICAgIGlmIChmaWVsZC50eXBlICE9PSBGaWVsZFR5cGUubnVtYmVyKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBuYW1lID0gZ2V0RmllbGREaXNwbGF5TmFtZShmaWVsZCwgZnJhbWUsIGRhdGEpO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZXIoZmllbGQsIGZyYW1lLCBkYXRhKSkge1xuICAgICAgICAgICAgbmFtZXMucHVzaChuYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmFtZXM7XG59O1xuIl0sIm5hbWVzIjpbIm92ZXJyaWRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsTUFBTSxrQkFBcUIsR0FBQSxnQkFBQSxDQUFBO0FBQzNCLE1BQU0sb0JBQUEsR0FBdUIsd0JBQXdCLGtCQUFrQixDQUFBLENBQUE7QUFFaEUsU0FBUyw2QkFDZCxDQUFBLEtBQUEsRUFDQSxJQUNBLEVBQUEsV0FBQSxFQUNBLElBQ21CLEVBQUE7QUFDbkIsRUFBTSxNQUFBLEVBQUUsV0FBYyxHQUFBLFdBQUEsQ0FBQTtBQUV0QixFQUFBLE1BQU0sV0FBYyxHQUFBLEtBQUEsQ0FBQTtBQUNwQixFQUFNLE1BQUEsWUFBQSxHQUFlLFNBQVUsQ0FBQSxTQUFBLENBQVUsb0JBQW9CLENBQUEsQ0FBQTtBQUU3RCxFQUFBLElBQUksZUFBZSxDQUFHLEVBQUE7QUFDcEIsSUFBSSxJQUFBLElBQUEsS0FBUywyQkFBMkIsZUFBaUIsRUFBQTtBQUN2RCxNQUFNQSxNQUFBQSxTQUFBQSxHQUFXLGVBQWUsQ0FBQyxXQUFBLEVBQWEsR0FBRyxzQkFBdUIsQ0FBQSxTQUFBLEVBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFBO0FBRXpGLE1BQUEsT0FBTyxpQ0FDRixXQURFLENBQUEsRUFBQTtBQUFBLFFBRUwsU0FBVyxFQUFBLENBQUMsR0FBRyxXQUFBLENBQVksV0FBV0EsU0FBUSxDQUFBO0FBQUEsT0FDaEQsQ0FBQSxDQUFBO0FBQUEsS0FDRjtBQUVBLElBQU0sTUFBQSxZQUFBLEdBQWUsZUFBZ0IsQ0FBQSxJQUFBLEVBQU0sV0FBVyxDQUFBLENBQUE7QUFDdEQsSUFBTUEsTUFBQUEsU0FBQUEsR0FBVyxlQUFlLFlBQVksQ0FBQSxDQUFBO0FBRTVDLElBQUEsT0FBTyxpQ0FDRixXQURFLENBQUEsRUFBQTtBQUFBLE1BRUwsU0FBVyxFQUFBLENBQUMsR0FBRyxXQUFBLENBQVksV0FBV0EsU0FBUSxDQUFBO0FBQUEsS0FDaEQsQ0FBQSxDQUFBO0FBQUEsR0FDRjtBQUVBLEVBQU0sTUFBQSxhQUFBLEdBQWdCLEtBQU0sQ0FBQSxJQUFBLENBQUssU0FBUyxDQUFBLENBQUE7QUFDMUMsRUFBQSxNQUFNLENBQUMsT0FBTyxDQUFBLEdBQUksYUFBYyxDQUFBLE1BQUEsQ0FBTyxjQUFjLENBQUMsQ0FBQSxDQUFBO0FBRXRELEVBQUksSUFBQSxJQUFBLEtBQVMsMkJBQTJCLGVBQWlCLEVBQUE7QUFDdkQsSUFBSSxJQUFBLFFBQUEsR0FBVyx3QkFBd0IsT0FBTyxDQUFBLENBQUE7QUFDOUMsSUFBTSxNQUFBLGtCQUFBLEdBQXFCLHNCQUF1QixDQUFBLGFBQUEsRUFBZSxJQUFJLENBQUEsQ0FBQTtBQUVyRSxJQUFJLElBQUEsa0JBQUEsQ0FBbUIsU0FBUyxDQUFHLEVBQUE7QUFDakMsTUFBVyxRQUFBLEdBQUEsUUFBQSxDQUFTLE9BQU8sQ0FBQyxFQUFBLEtBQU8sbUJBQW1CLE9BQVEsQ0FBQSxFQUFFLElBQUksQ0FBQyxDQUFBLENBQUE7QUFBQSxLQUN2RTtBQUVBLElBQUEsSUFBSSxRQUFTLENBQUEsQ0FBQSxDQUFBLEtBQU8sV0FBZSxJQUFBLFFBQUEsQ0FBUyxXQUFXLENBQUcsRUFBQTtBQUN4RCxNQUFBLE9BQU8saUNBQ0YsV0FERSxDQUFBLEVBQUE7QUFBQSxRQUVMLFNBQVcsRUFBQSxhQUFBO0FBQUEsT0FDYixDQUFBLENBQUE7QUFBQSxLQUNGO0FBRUEsSUFBQSxNQUFNQSxZQUFXLGNBQWUsQ0FBQSxDQUFDLFdBQWEsRUFBQSxHQUFHLGtCQUFrQixDQUFDLENBQUEsQ0FBQTtBQUVwRSxJQUFBLE9BQU8saUNBQ0YsV0FERSxDQUFBLEVBQUE7QUFBQSxNQUVMLFNBQVcsRUFBQSxDQUFDLEdBQUcsYUFBQSxFQUFlQSxTQUFRLENBQUE7QUFBQSxLQUN4QyxDQUFBLENBQUE7QUFBQSxHQUNGO0FBRUEsRUFBTSxNQUFBLFFBQUEsR0FBVyxzQkFBdUIsQ0FBQSxPQUFBLEVBQVMsV0FBVyxDQUFBLENBQUE7QUFFNUQsRUFBSSxJQUFBLG9CQUFBLENBQXFCLFFBQVUsRUFBQSxJQUFJLENBQUcsRUFBQTtBQUN4QyxJQUFBLE9BQU8saUNBQ0YsV0FERSxDQUFBLEVBQUE7QUFBQSxNQUVMLFNBQVcsRUFBQSxhQUFBO0FBQUEsS0FDYixDQUFBLENBQUE7QUFBQSxHQUNGO0FBRUEsRUFBQSxPQUFPLGlDQUNGLFdBREUsQ0FBQSxFQUFBO0FBQUEsSUFFTCxTQUFXLEVBQUEsQ0FBQyxHQUFHLGFBQUEsRUFBZSxRQUFRLENBQUE7QUFBQSxHQUN4QyxDQUFBLENBQUE7QUFDRixDQUFBO0FBRUEsU0FBUyxjQUNQLENBQUEsS0FBQSxFQUNBLElBQU8sR0FBQSxrQkFBQSxDQUFtQixTQUMxQixRQUMwQixFQUFBO0FBQzFCLEVBQUEsUUFBQSxHQUFXLFFBQVksSUFBQSxJQUFBLEdBQUEsUUFBQSxHQUFBO0FBQUEsSUFDckIsRUFBSSxFQUFBLGlCQUFBO0FBQUEsSUFDSixLQUFPLEVBQUE7QUFBQSxNQUNMLEdBQUssRUFBQSxJQUFBO0FBQUEsTUFDTCxNQUFRLEVBQUEsS0FBQTtBQUFBLE1BQ1IsT0FBUyxFQUFBLEtBQUE7QUFBQSxLQUNYO0FBQUEsR0FDRixDQUFBO0FBRUEsRUFBTyxPQUFBO0FBQUEsSUFDTCxXQUFhLEVBQUEsa0JBQUE7QUFBQSxJQUNiLE9BQVMsRUFBQTtBQUFBLE1BQ1AsSUFBSSxjQUFlLENBQUEsT0FBQTtBQUFBLE1BQ25CLE9BQVMsRUFBQTtBQUFBLFFBQ1AsSUFBQTtBQUFBLFFBQ0EsS0FBQTtBQUFBLFFBQ0EsTUFBUSxFQUFBLElBQUEsS0FBUyxrQkFBbUIsQ0FBQSxPQUFBLEdBQVUsYUFBZ0IsR0FBQSxLQUFBLENBQUE7QUFBQSxRQUM5RCxRQUFVLEVBQUEsSUFBQTtBQUFBLE9BQ1o7QUFBQSxLQUNGO0FBQUEsSUFDQSxVQUFZLEVBQUE7QUFBQSxNQUNWLGlDQUNLLFFBREwsQ0FBQSxFQUFBO0FBQUEsUUFFRSxLQUFPLEVBQUE7QUFBQSxVQUNMLEdBQUssRUFBQSxJQUFBO0FBQUEsVUFDTCxNQUFRLEVBQUEsS0FBQTtBQUFBLFVBQ1IsT0FBUyxFQUFBLEtBQUE7QUFBQSxTQUNYO0FBQUEsT0FDRixDQUFBO0FBQUEsS0FDRjtBQUFBLEdBQ0YsQ0FBQTtBQUNGLENBQUE7QUFFQSxNQUFNLHlCQUF5QixDQUM3QixPQUFBLEVBQ0EsV0FDQSxFQUFBLElBQUEsR0FBTyxtQkFBbUIsT0FDRyxLQUFBO0FBQzdCLEVBQU0sTUFBQSxRQUFBLEdBQVcsUUFBUSxVQUFXLENBQUEsSUFBQSxDQUFLLENBQUMsQ0FBTSxLQUFBLENBQUEsQ0FBRSxPQUFPLGlCQUFpQixDQUFBLENBQUE7QUFDMUUsRUFBTSxNQUFBLFFBQUEsR0FBVyx3QkFBd0IsT0FBTyxDQUFBLENBQUE7QUFDaEQsRUFBQSxNQUFNLFFBQVEsUUFBUyxDQUFBLFNBQUEsQ0FBVSxDQUFDLElBQUEsS0FBUyxTQUFTLFdBQVcsQ0FBQSxDQUFBO0FBRS9ELEVBQUEsSUFBSSxRQUFRLENBQUcsRUFBQTtBQUNiLElBQUEsUUFBQSxDQUFTLEtBQUssV0FBVyxDQUFBLENBQUE7QUFBQSxHQUNwQixNQUFBO0FBQ0wsSUFBUyxRQUFBLENBQUEsTUFBQSxDQUFPLE9BQU8sQ0FBQyxDQUFBLENBQUE7QUFBQSxHQUMxQjtBQUVBLEVBQU8sT0FBQSxjQUFBLENBQWUsUUFBVSxFQUFBLElBQUEsRUFBTSxRQUFRLENBQUEsQ0FBQTtBQUNoRCxDQUFBLENBQUE7QUFFQSxNQUFNLHVCQUFBLEdBQTBCLENBQUMsSUFBNkMsS0FBQTtBQWpKOUUsRUFBQSxJQUFBLEVBQUEsQ0FBQTtBQWtKRSxFQUFBLE1BQU0sS0FBUSxHQUFBLENBQUEsRUFBQSxHQUFBLElBQUEsQ0FBSyxPQUFRLENBQUEsT0FBQSxLQUFiLElBQXNCLEdBQUEsS0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLEtBQUEsQ0FBQTtBQUNwQyxFQUFBLElBQUksQ0FBQyxLQUFBLENBQU0sT0FBUSxDQUFBLEtBQUssQ0FBRyxFQUFBO0FBQ3pCLElBQUEsT0FBTyxFQUFDLENBQUE7QUFBQSxHQUNWO0FBQ0EsRUFBTyxPQUFBLENBQUMsR0FBRyxLQUFLLENBQUEsQ0FBQTtBQUNsQixDQUFBLENBQUE7QUFFQSxNQUFNLG9CQUFBLEdBQXVCLENBQUMsUUFBQSxFQUFvQyxJQUErQixLQUFBO0FBQy9GLEVBQUEsT0FBTyx3QkFBd0IsUUFBUSxDQUFBLENBQUUsTUFBVyxLQUFBLGVBQUEsQ0FBZ0IsSUFBSSxDQUFFLENBQUEsTUFBQSxDQUFBO0FBQzVFLENBQUEsQ0FBQTtBQUVBLE1BQU0sZUFBQSxHQUFrQixDQUFDLElBQUEsRUFBbUIsV0FBbUMsS0FBQTtBQUM3RSxFQUFNLE1BQUEsTUFBQSx1QkFBYSxHQUFZLEVBQUEsQ0FBQTtBQUUvQixFQUFBLEtBQUEsTUFBVyxTQUFTLElBQU0sRUFBQTtBQUN4QixJQUFXLEtBQUEsTUFBQSxLQUFBLElBQVMsTUFBTSxNQUFRLEVBQUE7QUFDaEMsTUFBSSxJQUFBLEtBQUEsQ0FBTSxJQUFTLEtBQUEsU0FBQSxDQUFVLE1BQVEsRUFBQTtBQUNuQyxRQUFBLFNBQUE7QUFBQSxPQUNGO0FBRUEsTUFBQSxNQUFNLElBQU8sR0FBQSxtQkFBQSxDQUFvQixLQUFPLEVBQUEsS0FBQSxFQUFPLElBQUksQ0FBQSxDQUFBO0FBRW5ELE1BQUEsSUFBSSxTQUFTLFdBQWEsRUFBQTtBQUN4QixRQUFBLFNBQUE7QUFBQSxPQUNGO0FBRUEsTUFBQSxNQUFBLENBQU8sSUFBSSxJQUFJLENBQUEsQ0FBQTtBQUFBLEtBQ2pCO0FBQUEsR0FDRjtBQUVBLEVBQU8sT0FBQSxLQUFBLENBQU0sS0FBSyxNQUFNLENBQUEsQ0FBQTtBQUMxQixDQUFBLENBQUE7QUFFQSxNQUFNLHNCQUFBLEdBQXlCLENBQUMsU0FBQSxFQUFpQyxJQUFnQyxLQUFBO0FBbkxqRyxFQUFBLElBQUEsRUFBQSxDQUFBO0FBb0xFLEVBQUEsSUFBSSxRQUFrQixFQUFDLENBQUE7QUFFdkIsRUFBQSxLQUFBLE1BQVcsWUFBWSxTQUFXLEVBQUE7QUFDaEMsSUFBTSxNQUFBLFFBQUEsR0FBVyxTQUFTLFVBQVcsQ0FBQSxJQUFBLENBQUssQ0FBQyxDQUFNLEtBQUEsQ0FBQSxDQUFFLE9BQU8saUJBQWlCLENBQUEsQ0FBQTtBQUUzRSxJQUFBLElBQUksYUFBYSxLQUFhLENBQUEsSUFBQSxDQUFBLENBQUEsRUFBQSxHQUFBLFFBQUEsQ0FBUyxLQUFULEtBQUEsSUFBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBZ0IsWUFBVyxJQUFNLEVBQUE7QUFDN0QsTUFBQSxNQUFNLElBQU8sR0FBQSxhQUFBLENBQWMsR0FBSSxDQUFBLFFBQUEsQ0FBUyxRQUFRLEVBQUUsQ0FBQSxDQUFBO0FBQ2xELE1BQUEsTUFBTSxPQUFVLEdBQUEsSUFBQSxDQUFLLEdBQUksQ0FBQSxRQUFBLENBQVMsUUFBUSxPQUFPLENBQUEsQ0FBQTtBQUVqRCxNQUFBLEtBQUEsTUFBVyxTQUFTLElBQU0sRUFBQTtBQUN4QixRQUFXLEtBQUEsTUFBQSxLQUFBLElBQVMsTUFBTSxNQUFRLEVBQUE7QUFDaEMsVUFBSSxJQUFBLEtBQUEsQ0FBTSxJQUFTLEtBQUEsU0FBQSxDQUFVLE1BQVEsRUFBQTtBQUNuQyxZQUFBLFNBQUE7QUFBQSxXQUNGO0FBRUEsVUFBQSxNQUFNLElBQU8sR0FBQSxtQkFBQSxDQUFvQixLQUFPLEVBQUEsS0FBQSxFQUFPLElBQUksQ0FBQSxDQUFBO0FBRW5ELFVBQUEsSUFBSSxPQUFRLENBQUEsS0FBQSxFQUFPLEtBQU8sRUFBQSxJQUFJLENBQUcsRUFBQTtBQUMvQixZQUFBLEtBQUEsQ0FBTSxLQUFLLElBQUksQ0FBQSxDQUFBO0FBQUEsV0FDakI7QUFBQSxTQUNGO0FBQUEsT0FDRjtBQUFBLEtBQ0Y7QUFBQSxHQUNGO0FBRUEsRUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUNULENBQUE7Ozs7In0=
@@ -0,0 +1,124 @@
1
+ import { css } from '@emotion/css';
2
+ import React, { useMemo } from 'react';
3
+ import { SceneObjectBase } from '../../../core/SceneObjectBase.js';
4
+ import { config } from '@grafana/runtime';
5
+ import { LazyLoader } from '../LazyLoader.js';
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ class SceneCSSGridLayout extends SceneObjectBase {
24
+ constructor(state) {
25
+ var _a, _b;
26
+ super(__spreadValues({
27
+ rowGap: 1,
28
+ columnGap: 1,
29
+ templateColumns: "repeat(auto-fit, minmax(400px, 1fr))",
30
+ autoRows: (_a = state.autoRows) != null ? _a : `320px`,
31
+ children: (_b = state.children) != null ? _b : []
32
+ }, state));
33
+ }
34
+ isDraggable() {
35
+ return false;
36
+ }
37
+ }
38
+ SceneCSSGridLayout.Component = SceneCSSGridLayoutRenderer;
39
+ function SceneCSSGridLayoutRenderer({ model }) {
40
+ const { children, isHidden, isLazy } = model.useState();
41
+ const style = useLayoutStyle(model.state);
42
+ if (isHidden) {
43
+ return null;
44
+ }
45
+ return /* @__PURE__ */ React.createElement("div", {
46
+ className: style
47
+ }, children.map((item) => {
48
+ const Component = item.Component;
49
+ if (isLazy) {
50
+ return /* @__PURE__ */ React.createElement(LazyLoader, {
51
+ key: item.state.key,
52
+ className: style
53
+ }, /* @__PURE__ */ React.createElement(Component, {
54
+ key: item.state.key,
55
+ model: item,
56
+ parentState: model.state
57
+ }));
58
+ }
59
+ return /* @__PURE__ */ React.createElement(Component, {
60
+ key: item.state.key,
61
+ model: item,
62
+ parentState: model.state
63
+ });
64
+ }));
65
+ }
66
+ class SceneCSSGridItem extends SceneObjectBase {
67
+ }
68
+ SceneCSSGridItem.Component = SceneCSSGridItemRenderer;
69
+ function SceneCSSGridItemRenderer({ model, parentState }) {
70
+ if (!parentState) {
71
+ throw new Error("SceneCSSGridItem must be a child of SceneCSSGridLayout");
72
+ }
73
+ const { body, isHidden } = model.useState();
74
+ const style = useItemStyle(model.state);
75
+ if (!body || isHidden) {
76
+ return null;
77
+ }
78
+ return /* @__PURE__ */ React.createElement("div", {
79
+ className: style
80
+ }, /* @__PURE__ */ React.createElement(body.Component, {
81
+ model: body
82
+ }));
83
+ }
84
+ function useLayoutStyle(state) {
85
+ return useMemo(() => {
86
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
87
+ const style = {};
88
+ const theme = config.theme2;
89
+ style.display = "grid";
90
+ style.gridTemplateColumns = state.templateColumns;
91
+ style.gridTemplateRows = state.templateRows || "unset";
92
+ style.gridAutoRows = state.autoRows || "unset";
93
+ style.rowGap = theme.spacing((_a = state.rowGap) != null ? _a : 1);
94
+ style.columnGap = theme.spacing((_b = state.columnGap) != null ? _b : 1);
95
+ style.justifyItems = state.justifyItems || "unset";
96
+ style.alignItems = state.alignItems || "unset";
97
+ style.justifyContent = state.justifyContent || "unset";
98
+ style.flexGrow = 1;
99
+ if (state.md) {
100
+ style[theme.breakpoints.down("md")] = {
101
+ gridTemplateRows: (_c = state.md) == null ? void 0 : _c.templateRows,
102
+ gridTemplateColumns: (_d = state.md) == null ? void 0 : _d.templateColumns,
103
+ rowGap: state.md.rowGap ? theme.spacing((_f = (_e = state.md) == null ? void 0 : _e.rowGap) != null ? _f : 1) : void 0,
104
+ columnGap: state.md.columnGap ? theme.spacing((_h = (_g = state.md) == null ? void 0 : _g.rowGap) != null ? _h : 1) : void 0,
105
+ justifyItems: (_i = state.md) == null ? void 0 : _i.justifyItems,
106
+ alignItems: (_j = state.md) == null ? void 0 : _j.alignItems,
107
+ justifyContent: (_k = state.md) == null ? void 0 : _k.justifyContent
108
+ };
109
+ }
110
+ return css(style);
111
+ }, [state]);
112
+ }
113
+ function useItemStyle(state) {
114
+ return useMemo(() => {
115
+ const style = {};
116
+ style.gridColumn = state.gridColumn || "unset";
117
+ style.gridRow = state.gridRow || "unset";
118
+ style.position = "relative";
119
+ return css(style);
120
+ }, [state]);
121
+ }
122
+
123
+ export { SceneCSSGridItem, SceneCSSGridLayout };
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVDU1NHcmlkTGF5b3V0LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9sYXlvdXQvQ1NTR3JpZC9TY2VuZUNTU0dyaWRMYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcywgQ1NTT2JqZWN0IH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnRUeXBlLCBDU1NQcm9wZXJ0aWVzLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL1NjZW5lT2JqZWN0QmFzZSc7XG5pbXBvcnQgeyBTY2VuZUNvbXBvbmVudFByb3BzLCBTY2VuZUxheW91dCwgU2NlbmVPYmplY3RTdGF0ZSwgU2NlbmVPYmplY3QgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuaW1wb3J0IHsgTGF6eUxvYWRlciB9IGZyb20gJy4uL0xhenlMb2FkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lQ1NTR3JpZExheW91dFN0YXRlIGV4dGVuZHMgU2NlbmVPYmplY3RTdGF0ZSwgU2NlbmVDU1NHcmlkTGF5b3V0T3B0aW9ucyB7XG4gIGNoaWxkcmVuOiBBcnJheTxTY2VuZUNTU0dyaWRJdGVtIHwgU2NlbmVPYmplY3Q+O1xuICAvKipcbiAgICogVHJ1ZSB3aGVuIHRoZSBpdGVtIHNob3VsZCByZW5kZXJlZCBidXQgbm90IHZpc2libGUuXG4gICAqIFVzZWZ1bCBmb3IgY29uZGl0aW9uYWwgZGlzcGxheSBvZiBsYXlvdXQgaXRlbXNcbiAgICovXG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZvciBtZWRpYSBxdWVyeSBmb3Igc2NlZW5zIHNtYWxsZXIgdGhhbiBtZCBicmVha3BvaW50XG4gICAqL1xuICBtZD86IFNjZW5lQ1NTR3JpZExheW91dE9wdGlvbnM7XG4gIC8qKiBUcnVlIHdoZW4gdGhlIGl0ZW1zIHNob3VsZCBiZSBsYXp5IGxvYWRlZCAqL1xuICBpc0xhenk/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lQ1NTR3JpZExheW91dE9wdGlvbnMge1xuICAvKipcbiAgICogVXNlZnVsIGZvciBzZXR0aW5nIGEgaGVpZ2h0IG9uIGl0ZW1zIHdpdGhvdXQgc3BlY2lmeWluZyBob3cgbWFueSByb3dzIHRoZXJlIHdpbGwgYmUuXG4gICAqIERlZmF1bHRzIHRvIDMyMHB4XG4gICAqL1xuICBhdXRvUm93cz86IENTU1Byb3BlcnRpZXNbJ2dyaWRBdXRvUm93cyddO1xuICAvKipcbiAgICogVGhpcyBvdmVycmlkZXMgdGhlIGF1dG9Sb3dzIHdpdGggYSBzcGVjaWZpYyByb3cgdGVtcGxhdGUuXG4gICAqL1xuICB0ZW1wbGF0ZVJvd3M/OiBDU1NQcm9wZXJ0aWVzWydncmlkVGVtcGxhdGVSb3dzJ107XG4gIC8qKlxuICAgKiBEZWZhdWx0cyB0byByZXBlYXQoYXV0by1maXQsIG1pbm1heCg0MDBweCwgMWZyKSkuIFRoaXMgcGF0dGVybiB1cyB1c2VmdWwgZm9yIGVxdWFsbHkgc2l6ZWQgaXRlbXMgd2l0aCBhIG1pbiB3aWR0aCBvZiA0MDBweFxuICAgKiBhbmQgZHluYW1pYyBtYXggd2lkdGggc3BsaXQgZXF1YWxseSBhbW9uZyBjb2x1bW5zLlxuICAgKi9cbiAgdGVtcGxhdGVDb2x1bW5zOiBDU1NQcm9wZXJ0aWVzWydncmlkVGVtcGxhdGVDb2x1bW5zJ107XG4gIC8qKiBJbiBHcmFmYW5hIGRlc2lnbiBzeXN0ZW0gZ3JpZCB1bml0cyAoOHB4KSAgKi9cbiAgcm93R2FwOiBudW1iZXI7XG4gIC8qKiBJbiBHcmFmYW5hIGRlc2lnbiBzeXN0ZW0gZ3JpZCB1bml0cyAoOHB4KSAgKi9cbiAgY29sdW1uR2FwOiBudW1iZXI7XG4gIGp1c3RpZnlJdGVtcz86IENTU1Byb3BlcnRpZXNbJ2p1c3RpZnlJdGVtcyddO1xuICBhbGlnbkl0ZW1zPzogQ1NTUHJvcGVydGllc1snYWxpZ25JdGVtcyddO1xuICBqdXN0aWZ5Q29udGVudD86IENTU1Byb3BlcnRpZXNbJ2p1c3RpZnlDb250ZW50J107XG59XG5cbmV4cG9ydCBjbGFzcyBTY2VuZUNTU0dyaWRMYXlvdXQgZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2U8U2NlbmVDU1NHcmlkTGF5b3V0U3RhdGU+IGltcGxlbWVudHMgU2NlbmVMYXlvdXQge1xuICBwdWJsaWMgc3RhdGljIENvbXBvbmVudCA9IFNjZW5lQ1NTR3JpZExheW91dFJlbmRlcmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzdGF0ZTogUGFydGlhbDxTY2VuZUNTU0dyaWRMYXlvdXRTdGF0ZT4pIHtcbiAgICBzdXBlcih7XG4gICAgICByb3dHYXA6IDEsXG4gICAgICBjb2x1bW5HYXA6IDEsXG4gICAgICB0ZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoYXV0by1maXQsIG1pbm1heCg0MDBweCwgMWZyKSknLFxuICAgICAgYXV0b1Jvd3M6IHN0YXRlLmF1dG9Sb3dzID8/IGAzMjBweGAsXG4gICAgICBjaGlsZHJlbjogc3RhdGUuY2hpbGRyZW4gPz8gW10sXG4gICAgICAuLi5zdGF0ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpc0RyYWdnYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gU2NlbmVDU1NHcmlkTGF5b3V0UmVuZGVyZXIoeyBtb2RlbCB9OiBTY2VuZUNTU0dyaWRJdGVtUmVuZGVyUHJvcHM8U2NlbmVDU1NHcmlkTGF5b3V0Pikge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpc0hpZGRlbiwgaXNMYXp5IH0gPSBtb2RlbC51c2VTdGF0ZSgpO1xuICBjb25zdCBzdHlsZSA9IHVzZUxheW91dFN0eWxlKG1vZGVsLnN0YXRlKTtcblxuICBpZiAoaXNIaWRkZW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlfT5cbiAgICAgIHtjaGlsZHJlbi5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgQ29tcG9uZW50ID0gaXRlbS5Db21wb25lbnQgYXMgQ29tcG9uZW50VHlwZTxTY2VuZUNTU0dyaWRJdGVtUmVuZGVyUHJvcHM8U2NlbmVPYmplY3Q+PjtcblxuICAgICAgICBpZiAoaXNMYXp5KSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxMYXp5TG9hZGVyIGtleT17aXRlbS5zdGF0ZS5rZXkhfSBjbGFzc05hbWU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgPENvbXBvbmVudCBrZXk9e2l0ZW0uc3RhdGUua2V5fSBtb2RlbD17aXRlbX0gcGFyZW50U3RhdGU9e21vZGVsLnN0YXRlfSAvPlxuICAgICAgICAgICAgPC9MYXp5TG9hZGVyPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDxDb21wb25lbnQga2V5PXtpdGVtLnN0YXRlLmtleX0gbW9kZWw9e2l0ZW19IHBhcmVudFN0YXRlPXttb2RlbC5zdGF0ZX0gLz47XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuZUNTU0dyaWRJdGVtUGxhY2VtZW50IHtcbiAgLyoqXG4gICAqIFRydWUgd2hlbiB0aGUgaXRlbSBzaG91bGQgcmVuZGVyZWQgYnV0IG5vdCB2aXNpYmxlLlxuICAgKiBVc2VmdWwgZm9yIGNvbmRpdGlvbmFsIGRpc3BsYXkgb2YgbGF5b3V0IGl0ZW1zXG4gICAqL1xuICBpc0hpZGRlbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VmdWwgZm9yIG1ha2luZyBjb250ZW50IHNwYW4gYWNyb3NzIG11bHRpcGxlIHJvd3Mgb3IgY29sdW1uc1xuICAgKi9cbiAgZ3JpZENvbHVtbj86IENTU1Byb3BlcnRpZXNbJ2dyaWRDb2x1bW4nXTtcbiAgZ3JpZFJvdz86IENTU1Byb3BlcnRpZXNbJ2dyaWRSb3cnXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuZUNTU0dyaWRJdGVtU3RhdGUgZXh0ZW5kcyBTY2VuZUNTU0dyaWRJdGVtUGxhY2VtZW50LCBTY2VuZU9iamVjdFN0YXRlIHtcbiAgYm9keTogU2NlbmVPYmplY3QgfCB1bmRlZmluZWQ7XG59XG5cbmludGVyZmFjZSBTY2VuZUNTU0dyaWRJdGVtUmVuZGVyUHJvcHM8VD4gZXh0ZW5kcyBTY2VuZUNvbXBvbmVudFByb3BzPFQ+IHtcbiAgcGFyZW50U3RhdGU/OiBTY2VuZUNTU0dyaWRJdGVtUGxhY2VtZW50O1xufVxuXG5leHBvcnQgY2xhc3MgU2NlbmVDU1NHcmlkSXRlbSBleHRlbmRzIFNjZW5lT2JqZWN0QmFzZTxTY2VuZUNTU0dyaWRJdGVtU3RhdGU+IHtcbiAgcHVibGljIHN0YXRpYyBDb21wb25lbnQgPSBTY2VuZUNTU0dyaWRJdGVtUmVuZGVyZXI7XG59XG5cbmZ1bmN0aW9uIFNjZW5lQ1NTR3JpZEl0ZW1SZW5kZXJlcih7IG1vZGVsLCBwYXJlbnRTdGF0ZSB9OiBTY2VuZUNTU0dyaWRJdGVtUmVuZGVyUHJvcHM8U2NlbmVDU1NHcmlkSXRlbT4pIHtcbiAgaWYgKCFwYXJlbnRTdGF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2NlbmVDU1NHcmlkSXRlbSBtdXN0IGJlIGEgY2hpbGQgb2YgU2NlbmVDU1NHcmlkTGF5b3V0Jyk7XG4gIH1cblxuICBjb25zdCB7IGJvZHksIGlzSGlkZGVuIH0gPSBtb2RlbC51c2VTdGF0ZSgpO1xuICBjb25zdCBzdHlsZSA9IHVzZUl0ZW1TdHlsZShtb2RlbC5zdGF0ZSk7XG5cbiAgaWYgKCFib2R5IHx8IGlzSGlkZGVuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZX0+XG4gICAgICA8Ym9keS5Db21wb25lbnQgbW9kZWw9e2JvZHl9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIHVzZUxheW91dFN0eWxlKHN0YXRlOiBTY2VuZUNTU0dyaWRMYXlvdXRTdGF0ZSkge1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qge30gPSBzdGF0ZTtcbiAgICAvLyBvbmx5IG5lZWQgYnJlYWtwb2ludHMgc28gYWNjZXNzaW5nIHRoZW1lIGZyb20gY29uZmlnIGluc3RlYWQgb2YgY29udGV4dCBpcyBva1xuICAgIGNvbnN0IHN0eWxlOiBDU1NPYmplY3QgPSB7fTtcbiAgICBjb25zdCB0aGVtZSA9IGNvbmZpZy50aGVtZTI7XG5cbiAgICBzdHlsZS5kaXNwbGF5ID0gJ2dyaWQnO1xuICAgIHN0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBzdGF0ZS50ZW1wbGF0ZUNvbHVtbnM7XG4gICAgc3R5bGUuZ3JpZFRlbXBsYXRlUm93cyA9IHN0YXRlLnRlbXBsYXRlUm93cyB8fCAndW5zZXQnO1xuICAgIHN0eWxlLmdyaWRBdXRvUm93cyA9IHN0YXRlLmF1dG9Sb3dzIHx8ICd1bnNldCc7XG4gICAgc3R5bGUucm93R2FwID0gdGhlbWUuc3BhY2luZyhzdGF0ZS5yb3dHYXAgPz8gMSk7XG4gICAgc3R5bGUuY29sdW1uR2FwID0gdGhlbWUuc3BhY2luZyhzdGF0ZS5jb2x1bW5HYXAgPz8gMSk7XG4gICAgc3R5bGUuanVzdGlmeUl0ZW1zID0gc3RhdGUuanVzdGlmeUl0ZW1zIHx8ICd1bnNldCc7XG4gICAgc3R5bGUuYWxpZ25JdGVtcyA9IHN0YXRlLmFsaWduSXRlbXMgfHwgJ3Vuc2V0JztcbiAgICBzdHlsZS5qdXN0aWZ5Q29udGVudCA9IHN0YXRlLmp1c3RpZnlDb250ZW50IHx8ICd1bnNldCc7XG4gICAgc3R5bGUuZmxleEdyb3cgPSAxO1xuXG4gICAgaWYgKHN0YXRlLm1kKSB7XG4gICAgICBzdHlsZVt0aGVtZS5icmVha3BvaW50cy5kb3duKCdtZCcpXSA9IHtcbiAgICAgICAgZ3JpZFRlbXBsYXRlUm93czogc3RhdGUubWQ/LnRlbXBsYXRlUm93cyxcbiAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogc3RhdGUubWQ/LnRlbXBsYXRlQ29sdW1ucyxcbiAgICAgICAgcm93R2FwOiBzdGF0ZS5tZC5yb3dHYXAgPyB0aGVtZS5zcGFjaW5nKHN0YXRlLm1kPy5yb3dHYXAgPz8gMSkgOiB1bmRlZmluZWQsXG4gICAgICAgIGNvbHVtbkdhcDogc3RhdGUubWQuY29sdW1uR2FwID8gdGhlbWUuc3BhY2luZyhzdGF0ZS5tZD8ucm93R2FwID8/IDEpIDogdW5kZWZpbmVkLFxuICAgICAgICBqdXN0aWZ5SXRlbXM6IHN0YXRlLm1kPy5qdXN0aWZ5SXRlbXMsXG4gICAgICAgIGFsaWduSXRlbXM6IHN0YXRlLm1kPy5hbGlnbkl0ZW1zLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogc3RhdGUubWQ/Lmp1c3RpZnlDb250ZW50LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3NzKHN0eWxlKTtcbiAgfSwgW3N0YXRlXSk7XG59XG5cbmZ1bmN0aW9uIHVzZUl0ZW1TdHlsZShzdGF0ZTogU2NlbmVDU1NHcmlkSXRlbVN0YXRlKSB7XG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzdHlsZTogQ1NTT2JqZWN0ID0ge307XG5cbiAgICBzdHlsZS5ncmlkQ29sdW1uID0gc3RhdGUuZ3JpZENvbHVtbiB8fCAndW5zZXQnO1xuICAgIHN0eWxlLmdyaWRSb3cgPSBzdGF0ZS5ncmlkUm93IHx8ICd1bnNldCc7XG4gICAgLy8gTmVlZGVkIGZvciBWaXpQYW5lbFxuICAgIHN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblxuICAgIHJldHVybiBjc3Moc3R5bGUpO1xuICB9LCBbc3RhdGVdKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0NPLE1BQU0sMkJBQTJCLGVBQWdFLENBQUE7QUFBQSxFQUcvRixZQUFZLEtBQXlDLEVBQUE7QUFsRDlELElBQUEsSUFBQSxFQUFBLEVBQUEsRUFBQSxDQUFBO0FBbURJLElBQU0sS0FBQSxDQUFB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
@@ -0,0 +1,103 @@
1
+ import React, { useState, useRef, useImperativeHandle } from 'react';
2
+ import { useEffectOnce } from 'react-use';
3
+ import { uniqueId } from 'lodash';
4
+ import { css } from '@emotion/css';
5
+ import { useStyles2 } from '@grafana/ui';
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __objRest = (source, exclude) => {
24
+ var target = {};
25
+ for (var prop in source)
26
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
+ target[prop] = source[prop];
28
+ if (source != null && __getOwnPropSymbols)
29
+ for (var prop of __getOwnPropSymbols(source)) {
30
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
+ target[prop] = source[prop];
32
+ }
33
+ return target;
34
+ };
35
+ function useUniqueId() {
36
+ var _a;
37
+ const idRefLazy = useRef(void 0);
38
+ (_a = idRefLazy.current) != null ? _a : idRefLazy.current = uniqueId();
39
+ return idRefLazy.current;
40
+ }
41
+ const LazyLoader = React.forwardRef(
42
+ (_a, ref) => {
43
+ var _b = _a, { children, onLoad, onChange, className } = _b, rest = __objRest(_b, ["children", "onLoad", "onChange", "className"]);
44
+ const id = useUniqueId();
45
+ const { hideEmpty } = useStyles2(getStyles);
46
+ const [loaded, setLoaded] = useState(false);
47
+ const [isInView, setIsInView] = useState(false);
48
+ const innerRef = useRef(null);
49
+ useImperativeHandle(ref, () => innerRef.current);
50
+ useEffectOnce(() => {
51
+ LazyLoader.addCallback(id, (entry) => {
52
+ if (!loaded && entry.isIntersecting) {
53
+ setLoaded(true);
54
+ onLoad == null ? void 0 : onLoad();
55
+ }
56
+ setIsInView(entry.isIntersecting);
57
+ onChange == null ? void 0 : onChange(entry.isIntersecting);
58
+ });
59
+ const wrapperEl = innerRef.current;
60
+ if (wrapperEl) {
61
+ LazyLoader.observer.observe(wrapperEl);
62
+ }
63
+ return () => {
64
+ wrapperEl && LazyLoader.observer.unobserve(wrapperEl);
65
+ delete LazyLoader.callbacks[id];
66
+ if (Object.keys(LazyLoader.callbacks).length === 0) {
67
+ LazyLoader.observer.disconnect();
68
+ }
69
+ };
70
+ });
71
+ const classes = `${loaded ? hideEmpty : ""} ${className}`;
72
+ return /* @__PURE__ */ React.createElement("div", __spreadValues({
73
+ id,
74
+ ref: innerRef,
75
+ className: classes
76
+ }, rest), loaded && (typeof children === "function" ? children({ isInView }) : children));
77
+ }
78
+ );
79
+ function getStyles() {
80
+ return {
81
+ hideEmpty: css({
82
+ "&:empty": {
83
+ display: "none"
84
+ }
85
+ })
86
+ };
87
+ }
88
+ LazyLoader.displayName = "LazyLoader";
89
+ LazyLoader.callbacks = {};
90
+ LazyLoader.addCallback = (id, c) => LazyLoader.callbacks[id] = c;
91
+ LazyLoader.observer = new IntersectionObserver(
92
+ (entries) => {
93
+ for (const entry of entries) {
94
+ if (typeof LazyLoader.callbacks[entry.target.id] === "function") {
95
+ LazyLoader.callbacks[entry.target.id](entry);
96
+ }
97
+ }
98
+ },
99
+ { rootMargin: "100px" }
100
+ );
101
+
102
+ export { LazyLoader, useUniqueId };
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF6eUxvYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbGF5b3V0L0xhenlMb2FkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRWZmZWN0T25jZSB9IGZyb20gJ3JlYWN0LXVzZSc7XG5cbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyB1c2VTdHlsZXMyIH0gZnJvbSAnQGdyYWZhbmEvdWknO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlVW5pcXVlSWQoKTogc3RyaW5nIHtcbiAgY29uc3QgaWRSZWZMYXp5ID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgaWRSZWZMYXp5LmN1cnJlbnQgPz89IHVuaXF1ZUlkKCk7XG4gIHJldHVybiBpZFJlZkxhenkuY3VycmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9wcyBleHRlbmRzIE9taXQ8UmVhY3QuSFRNTFByb3BzPEhUTUxEaXZFbGVtZW50PiwgJ29uQ2hhbmdlJyB8ICdjaGlsZHJlbic+IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB8ICgoeyBpc0luVmlldyB9OiB7IGlzSW5WaWV3OiBib29sZWFuIH0pID0+IFJlYWN0LlJlYWN0Tm9kZSk7XG4gIGtleTogc3RyaW5nO1xuICBvbkxvYWQ/OiAoKSA9PiB2b2lkO1xuICBvbkNoYW5nZT86IChpc0luVmlldzogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXp5TG9hZGVyVHlwZSBleHRlbmRzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UHJvcHM+IHtcbiAgYWRkQ2FsbGJhY2s6IChpZDogc3RyaW5nLCBjOiAoZTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgY2FsbGJhY2tzOiBSZWNvcmQ8c3RyaW5nLCAoZTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSkgPT4gdm9pZD47XG4gIG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbn1cblxuZXhwb3J0IGNvbnN0IExhenlMb2FkZXI6IExhenlMb2FkZXJUeXBlID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MRGl2RWxlbWVudCwgUHJvcHM+KFxuICAoeyBjaGlsZHJlbiwgb25Mb2FkLCBvbkNoYW5nZSwgY2xhc3NOYW1lLCAuLi5yZXN0IH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IGlkID0gdXNlVW5pcXVlSWQoKTtcbiAgICBjb25zdCB7IGhpZGVFbXB0eSB9ID0gdXNlU3R5bGVzMihnZXRTdHlsZXMpO1xuICAgIGNvbnN0IFtsb2FkZWQsIHNldExvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2lzSW5WaWV3LCBzZXRJc0luVmlld10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgaW5uZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUmVmLmN1cnJlbnQhKTtcblxuICAgIHVzZUVmZmVjdE9uY2UoKCkgPT4ge1xuICAgICAgTGF6eUxvYWRlci5hZGRDYWxsYmFjayhpZCwgKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmICghbG9hZGVkICYmIGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgc2V0TG9hZGVkKHRydWUpO1xuICAgICAgICAgIG9uTG9hZD8uKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRJc0luVmlldyhlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgIG9uQ2hhbmdlPy4oZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHdyYXBwZXJFbCA9IGlubmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmICh3cmFwcGVyRWwpIHtcbiAgICAgICAgTGF6eUxvYWRlci5vYnNlcnZlci5vYnNlcnZlKHdyYXBwZXJFbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdyYXBwZXJFbCAmJiBMYXp5TG9hZGVyLm9ic2VydmVyLnVub2JzZXJ2ZSh3cmFwcGVyRWwpO1xuICAgICAgICBkZWxldGUgTGF6eUxvYWRlci5jYWxsYmFja3NbaWRdO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoTGF6eUxvYWRlci5jYWxsYmFja3MpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIExhenlMb2FkZXIub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gSWYgdGhlIGVsZW1lbnQgd2FzIGxvYWRlZCwgd2UgYWRkIHRoZSBgaGlkZUVtcHR5YCBjbGFzcyB0byBwb3RlbnRpYWxseVxuICAgIC8vIGhpZGUgdGhlIExhenlMb2FkZXIgaWYgaXQgZG9lcyBub3QgaGF2ZSBhbnkgY2hpbGRyZW4uIFRoaXMgaXMgdGhlIGNhc2VcbiAgICAvLyB3aGVuIGNoaWxkcmVuIGhhdmUgdGhlIGBpc0hpZGRlbmAgcHJvcGVydHkgc2V0LlxuICAgIC8vIFdlIGFsd2F5cyBpbmNsdWRlIHRoZSBgY2xhc3NOYW1lYCBjbGFzcywgYXMgdGhpcyBpcyBjb21pbmcgZnJvbSB0aGVcbiAgICAvLyBjYWxsZXIgb2YgdGhlIGBMYXp5TG9hZGVyYCBjb21wb25lbnQuXG4gICAgY29uc3QgY2xhc3NlcyA9IGAke2xvYWRlZCA/IGhpZGVFbXB0eSA6ICcnfSAke2NsYXNzTmFtZX1gO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGlkPXtpZH0gcmVmPXtpbm5lclJlZn0gY2xhc3NOYW1lPXtjbGFzc2VzfSB7Li4ucmVzdH0+XG4gICAgICAgIHtsb2FkZWQgJiYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHsgaXNJblZpZXcgfSkgOiBjaGlsZHJlbil9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pIGFzIExhenlMb2FkZXJUeXBlO1xuXG5mdW5jdGlvbiBnZXRTdHlsZXMoKSB7XG4gIHJldHVybiB7XG4gICAgaGlkZUVtcHR5OiBjc3Moe1xuICAgICAgJyY6ZW1wdHknOiB7XG4gICAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAgIH0sXG4gICAgfSksXG4gIH07XG59XG5cbkxhenlMb2FkZXIuZGlzcGxheU5hbWUgPSAnTGF6eUxvYWRlcic7XG5MYXp5TG9hZGVyLmNhbGxiYWNrcyA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIChlOiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSA9PiB2b2lkPjtcbkxhenlMb2FkZXIuYWRkQ2FsbGJhY2sgPSAoaWQ6IHN0cmluZywgYzogKGU6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpID0+IHZvaWQpID0+IChMYXp5TG9hZGVyLmNhbGxiYWNrc1tpZF0gPSBjKTtcbkxhenlMb2FkZXIub2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gIChlbnRyaWVzKSA9PiB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAodHlwZW9mIExhenlMb2FkZXIuY2FsbGJhY2tzW2VudHJ5LnRhcmdldC5pZF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgTGF6eUxvYWRlci5jYWxsYmFja3NbZW50cnkudGFyZ2V0LmlkXShlbnRyeSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICB7IHJvb3RNYXJnaW46ICcxMDBweCcgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT08sU0FBUyxXQUFzQixHQUFBO0FBUHRDLEVBQUEsSUFBQSxFQUFBLENBQUE7QUFRRSxFQUFNLE1BQUEsU0FBQSxHQUFZLE9BQTJCLEtBQVMsQ0FBQSxDQUFBLENBQUE7QUFDdEQsRUFBVSxDQUFBLEVBQUEsR0FBQSxTQUFBLENBQUEsT0FBQSxLQUFWLElBQVUsR0FBQSxFQUFBLEdBQUEsU0FBQSxDQUFBLE9BQUEsR0FBWSxRQUFTLEVBQUEsQ0FBQTtBQUMvQixFQUFBLE9BQU8sU0FBVSxDQUFBLE9BQUEsQ0FBQTtBQUNuQixDQUFBO0FBZU8sTUFBTSxhQUE2QixLQUFNLENBQUEsVUFBQTtBQUFBLEVBQzlDLENBQUMsSUFBb0QsR0FBUSxLQUFBO0FBQTVELElBQUUsSUFBQSxFQUFBLEdBQUEsRUFBQSxFQUFBLEVBQUEsUUFBQSxFQUFVLE1BQVEsRUFBQSxRQUFBLEVBQVUsU0EzQmpDLEVBQUEsR0EyQkcsRUFBNEMsRUFBQSxJQUFBLEdBQUEsU0FBQSxDQUE1QyxFQUE0QyxFQUFBLENBQTFDLFVBQVUsRUFBQSxRQUFBLEVBQVEsVUFBVSxFQUFBLFdBQUEsQ0FBQSxDQUFBLENBQUE7QUFDN0IsSUFBQSxNQUFNLEtBQUssV0FBWSxFQUFBLENBQUE7QUFDdkIsSUFBQSxNQUFNLEVBQUUsU0FBQSxFQUFjLEdBQUEsVUFBQSxDQUFXLFNBQVMsQ0FBQSxDQUFBO0FBQzFDLElBQUEsTUFBTSxDQUFDLE1BQUEsRUFBUSxTQUFTLENBQUEsR0FBSSxTQUFTLEtBQUssQ0FBQSxDQUFBO0FBQzFDLElBQUEsTUFBTSxDQUFDLFFBQUEsRUFBVSxXQUFXLENBQUEsR0FBSSxTQUFTLEtBQUssQ0FBQSxDQUFBO0FBQzlDLElBQU0sTUFBQSxRQUFBLEdBQVcsT0FBdUIsSUFBSSxDQUFBLENBQUE7QUFFNUMsSUFBb0IsbUJBQUEsQ0FBQSxHQUFBLEVBQUssTUFBTSxRQUFBLENBQVMsT0FBUSxDQUFBLENBQUE7QUFFaEQsSUFBQSxhQUFBLENBQWMsTUFBTTtBQUNsQixNQUFXLFVBQUEsQ0FBQSxXQUFBLENBQVksRUFBSSxFQUFBLENBQUMsS0FBVSxLQUFBO0FBQ3BDLFFBQUksSUFBQSxDQUFDLE1BQVUsSUFBQSxLQUFBLENBQU0sY0FBZ0IsRUFBQTtBQUNuQyxVQUFBLFNBQUEsQ0FBVSxJQUFJLENBQUEsQ0FBQTtBQUNkLFVBQUEsTUFBQSxJQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxNQUFBLEVBQUEsQ0FBQTtBQUFBLFNBQ0Y7QUFFQSxRQUFBLFdBQUEsQ0FBWSxNQUFNLGNBQWMsQ0FBQSxDQUFBO0FBQ2hDLFFBQUEsUUFBQSxJQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxRQUFBLENBQVcsS0FBTSxDQUFBLGNBQUEsQ0FBQSxDQUFBO0FBQUEsT0FDbEIsQ0FBQSxDQUFBO0FBRUQsTUFBQSxNQUFNLFlBQVksUUFBUyxDQUFBLE9BQUEsQ0FBQTtBQUUzQixNQUFBLElBQUksU0FBVyxFQUFBO0FBQ2IsUUFBVyxVQUFBLENBQUEsUUFBQSxDQUFTLFFBQVEsU0FBUyxDQUFBLENBQUE7QUFBQSxPQUN2QztBQUVBLE1BQUEsT0FBTyxNQUFNO0FBQ1gsUUFBYSxTQUFBLElBQUEsVUFBQSxDQUFXLFFBQVMsQ0FBQSxTQUFBLENBQVUsU0FBUyxDQUFBLENBQUE7QUFDcEQsUUFBQSxPQUFPLFdBQVcsU0FBVSxDQUFBLEVBQUEsQ0FBQSxDQUFBO0FBQzVCLFFBQUEsSUFBSSxPQUFPLElBQUssQ0FBQSxVQUFBLENBQVcsU0FBUyxDQUFBLENBQUUsV0FBVyxDQUFHLEVBQUE7QUFDbEQsVUFBQSxVQUFBLENBQVcsU0FBUyxVQUFXLEVBQUEsQ0FBQTtBQUFBLFNBQ2pDO0FBQUEsT0FDRixDQUFBO0FBQUEsS0FDRCxDQUFBLENBQUE7QUFPRCxJQUFBLE1BQU0sT0FBVSxHQUFBLENBQUEsRUFBRyxNQUFTLEdBQUEsU0FBQSxHQUFZLEVBQU0sQ0FBQSxDQUFBLEVBQUEsU0FBQSxDQUFBLENBQUEsQ0FBQTtBQUM5QyxJQUFBLHVCQUNHLEtBQUEsQ0FBQSxhQUFBLENBQUEsS0FBQSxFQUFBLGNBQUEsQ0FBQTtBQUFBLE1BQUksRUFBQTtBQUFBLE1BQVEsR0FBSyxFQUFBLFFBQUE7QUFBQSxNQUFVLFNBQVcsRUFBQSxPQUFBO0FBQUEsS0FBYSxFQUFBLElBQUEsQ0FBQSxFQUNqRCxNQUFXLEtBQUEsT0FBTyxRQUFhLEtBQUEsVUFBQSxHQUFhLFNBQVMsRUFBRSxRQUFBLEVBQVUsQ0FBQSxHQUFJLFFBQ3hFLENBQUEsQ0FBQSxDQUFBO0FBQUEsR0FFSjtBQUNGLEVBQUE7QUFFQSxTQUFTLFNBQVksR0FBQTtBQUNuQixFQUFPLE9BQUE7QUFBQSxJQUNMLFdBQVcsR0FBSSxDQUFBO0FBQUEsTUFDYixTQUFXLEVBQUE7QUFBQSxRQUNULE9BQVMsRUFBQSxNQUFBO0FBQUEsT0FDWDtBQUFBLEtBQ0QsQ0FBQTtBQUFBLEdBQ0gsQ0FBQTtBQUNGLENBQUE7QUFFQSxVQUFBLENBQVcsV0FBYyxHQUFBLFlBQUEsQ0FBQTtBQUN6QixVQUFBLENBQVcsWUFBWSxFQUFDLENBQUE7QUFDeEIsVUFBQSxDQUFXLGNBQWMsQ0FBQyxFQUFBLEVBQVksQ0FBK0MsS0FBQSxVQUFBLENBQVcsVUFBVSxFQUFNLENBQUEsR0FBQSxDQUFBLENBQUE7QUFDaEgsVUFBQSxDQUFXLFdBQVcsSUFBSSxvQkFBQTtBQUFBLEVBQ3hCLENBQUMsT0FBWSxLQUFBO0FBQ1gsSUFBQSxLQUFBLE1BQVcsU0FBUyxPQUFTLEVBQUE7QUFDM0IsTUFBQSxJQUFJLE9BQU8sVUFBVyxDQUFBLFNBQUEsQ0FBVSxLQUFNLENBQUEsTUFBQSxDQUFPLFFBQVEsVUFBWSxFQUFBO0FBQy9ELFFBQUEsVUFBQSxDQUFXLFNBQVUsQ0FBQSxLQUFBLENBQU0sTUFBTyxDQUFBLEVBQUEsQ0FBQSxDQUFJLEtBQUssQ0FBQSxDQUFBO0FBQUEsT0FDN0M7QUFBQSxLQUNGO0FBQUEsR0FDRjtBQUFBLEVBQ0EsRUFBRSxZQUFZLE9BQVEsRUFBQTtBQUN4QixDQUFBOzs7OyJ9
@@ -0,0 +1,135 @@
1
+ import { css } from '@emotion/css';
2
+ import { config } from '@grafana/runtime';
3
+ import React, { useMemo } from 'react';
4
+ import { SceneObjectBase } from '../../core/SceneObjectBase.js';
5
+
6
+ class SceneFlexLayout extends SceneObjectBase {
7
+ toggleDirection() {
8
+ this.setState({
9
+ direction: this.state.direction === "row" ? "column" : "row"
10
+ });
11
+ }
12
+ isDraggable() {
13
+ return false;
14
+ }
15
+ }
16
+ SceneFlexLayout.Component = SceneFlexLayoutRenderer;
17
+ function SceneFlexLayoutRenderer({ model, parentState }) {
18
+ const { children, isHidden } = model.useState();
19
+ const style = useLayoutStyle(model.state, parentState);
20
+ if (isHidden) {
21
+ return null;
22
+ }
23
+ return /* @__PURE__ */ React.createElement("div", {
24
+ className: style
25
+ }, children.map((item) => {
26
+ const Component = item.Component;
27
+ return /* @__PURE__ */ React.createElement(Component, {
28
+ key: item.state.key,
29
+ model: item,
30
+ parentState: model.state
31
+ });
32
+ }));
33
+ }
34
+ class SceneFlexItem extends SceneObjectBase {
35
+ }
36
+ SceneFlexItem.Component = SceneFlexItemRenderer;
37
+ function SceneFlexItemRenderer({ model, parentState }) {
38
+ if (!parentState) {
39
+ throw new Error("SceneFlexItem must be a child of SceneFlexLayout");
40
+ }
41
+ const { body, isHidden } = model.useState();
42
+ const style = useLayoutItemStyle(model.state, parentState);
43
+ if (!body || isHidden) {
44
+ return null;
45
+ }
46
+ return /* @__PURE__ */ React.createElement("div", {
47
+ className: style
48
+ }, /* @__PURE__ */ React.createElement(body.Component, {
49
+ model: body
50
+ }));
51
+ }
52
+ function applyItemStyles(style, state, parentState) {
53
+ var _a, _b, _c;
54
+ const parentDirection = (_a = parentState.direction) != null ? _a : "row";
55
+ const { xSizing = "fill", ySizing = "fill" } = state;
56
+ style.display = "flex";
57
+ style.position = "relative";
58
+ style.flexDirection = parentDirection;
59
+ if (parentDirection === "column") {
60
+ if (state.height) {
61
+ style.height = state.height;
62
+ } else {
63
+ style.flexGrow = ySizing === "fill" ? 1 : 0;
64
+ }
65
+ if (state.width) {
66
+ style.width = state.width;
67
+ } else {
68
+ style.alignSelf = xSizing === "fill" ? "stretch" : "flex-start";
69
+ }
70
+ } else {
71
+ if (state.height) {
72
+ style.height = state.height;
73
+ } else {
74
+ style.alignSelf = ySizing === "fill" ? "stretch" : "flex-start";
75
+ }
76
+ if (state.width) {
77
+ style.width = state.width;
78
+ } else {
79
+ style.flexGrow = xSizing === "fill" ? 1 : 0;
80
+ }
81
+ }
82
+ style.minWidth = state.minWidth;
83
+ style.maxWidth = state.maxWidth;
84
+ style.maxHeight = state.maxHeight;
85
+ style.minHeight = (_b = state.minHeight) != null ? _b : parentState.minHeight;
86
+ style.height = (_c = state.height) != null ? _c : parentState.height;
87
+ return style;
88
+ }
89
+ function useLayoutItemStyle(state, parentState) {
90
+ return useMemo(() => {
91
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
92
+ const theme = config.theme2;
93
+ const style = applyItemStyles({}, state, parentState);
94
+ style[theme.breakpoints.down("md")] = {
95
+ maxWidth: (_b = (_a = state.md) == null ? void 0 : _a.maxWidth) != null ? _b : "unset",
96
+ maxHeight: (_d = (_c = state.md) == null ? void 0 : _c.maxHeight) != null ? _d : "unset",
97
+ height: (_g = (_e = state.md) == null ? void 0 : _e.height) != null ? _g : (_f = parentState.md) == null ? void 0 : _f.height,
98
+ width: (_j = (_h = state.md) == null ? void 0 : _h.width) != null ? _j : (_i = parentState.md) == null ? void 0 : _i.width
99
+ };
100
+ return css(style);
101
+ }, [state, parentState]);
102
+ }
103
+ function useLayoutStyle(state, parentState) {
104
+ return useMemo(() => {
105
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
106
+ const { direction = "row", wrap } = state;
107
+ const theme = config.theme2;
108
+ const style = {};
109
+ if (parentState) {
110
+ applyItemStyles(style, state, parentState);
111
+ } else {
112
+ style.display = "flex";
113
+ style.flexGrow = 1;
114
+ style.minWidth = state.minWidth;
115
+ style.minHeight = state.minHeight;
116
+ }
117
+ style.flexDirection = direction;
118
+ style.gap = "8px";
119
+ style.flexWrap = wrap || "nowrap";
120
+ style.alignContent = "baseline";
121
+ style.minWidth = style.minWidth || 0;
122
+ style.minHeight = style.minHeight || 0;
123
+ style[theme.breakpoints.down("md")] = {
124
+ flexDirection: (_b = (_a = state.md) == null ? void 0 : _a.direction) != null ? _b : "column",
125
+ maxWidth: (_d = (_c = state.md) == null ? void 0 : _c.maxWidth) != null ? _d : "unset",
126
+ maxHeight: (_f = (_e = state.md) == null ? void 0 : _e.maxHeight) != null ? _f : "unset",
127
+ height: (_h = (_g = state.md) == null ? void 0 : _g.height) != null ? _h : "unset",
128
+ width: (_j = (_i = state.md) == null ? void 0 : _i.width) != null ? _j : "unset"
129
+ };
130
+ return css(style);
131
+ }, [parentState, state]);
132
+ }
133
+
134
+ export { SceneFlexItem, SceneFlexLayout };
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVGbGV4TGF5b3V0LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9sYXlvdXQvU2NlbmVGbGV4TGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIENTU09iamVjdCB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnRUeXBlLCBDU1NQcm9wZXJ0aWVzLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlL1NjZW5lT2JqZWN0QmFzZSc7XG5pbXBvcnQgeyBTY2VuZUNvbXBvbmVudFByb3BzLCBTY2VuZUxheW91dCwgU2NlbmVPYmplY3RTdGF0ZSwgU2NlbmVPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2VuZUZsZXhJdGVtU3RhdGVMaWtlIGV4dGVuZHMgU2NlbmVGbGV4SXRlbVBsYWNlbWVudCwgU2NlbmVPYmplY3RTdGF0ZSB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lRmxleEl0ZW1MaWtlIGV4dGVuZHMgU2NlbmVPYmplY3Q8U2NlbmVGbGV4SXRlbVN0YXRlTGlrZT4ge31cblxuaW50ZXJmYWNlIFNjZW5lRmxleExheW91dFN0YXRlIGV4dGVuZHMgU2NlbmVPYmplY3RTdGF0ZSwgU2NlbmVGbGV4SXRlbVBsYWNlbWVudCB7XG4gIGNoaWxkcmVuOiBTY2VuZUZsZXhJdGVtTGlrZVtdO1xufVxuXG5leHBvcnQgY2xhc3MgU2NlbmVGbGV4TGF5b3V0IGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlPFNjZW5lRmxleExheW91dFN0YXRlPiBpbXBsZW1lbnRzIFNjZW5lTGF5b3V0IHtcbiAgcHVibGljIHN0YXRpYyBDb21wb25lbnQgPSBTY2VuZUZsZXhMYXlvdXRSZW5kZXJlcjtcblxuICBwdWJsaWMgdG9nZ2xlRGlyZWN0aW9uKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZGlyZWN0aW9uOiB0aGlzLnN0YXRlLmRpcmVjdGlvbiA9PT0gJ3JvdycgPyAnY29sdW1uJyA6ICdyb3cnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzRHJhZ2dhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBTY2VuZUZsZXhMYXlvdXRSZW5kZXJlcih7IG1vZGVsLCBwYXJlbnRTdGF0ZSB9OiBTY2VuZUZsZXhJdGVtUmVuZGVyUHJvcHM8U2NlbmVGbGV4TGF5b3V0Pikge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpc0hpZGRlbiB9ID0gbW9kZWwudXNlU3RhdGUoKTtcbiAgY29uc3Qgc3R5bGUgPSB1c2VMYXlvdXRTdHlsZShtb2RlbC5zdGF0ZSwgcGFyZW50U3RhdGUpO1xuXG4gIGlmIChpc0hpZGRlbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGV9PlxuICAgICAge2NoaWxkcmVuLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBDb21wb25lbnQgPSBpdGVtLkNvbXBvbmVudCBhcyBDb21wb25lbnRUeXBlPFNjZW5lRmxleEl0ZW1SZW5kZXJQcm9wczxTY2VuZU9iamVjdD4+O1xuICAgICAgICByZXR1cm4gPENvbXBvbmVudCBrZXk9e2l0ZW0uc3RhdGUua2V5fSBtb2RlbD17aXRlbX0gcGFyZW50U3RhdGU9e21vZGVsLnN0YXRlfSAvPjtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lRmxleEl0ZW1QbGFjZW1lbnQge1xuICB3cmFwPzogQ1NTUHJvcGVydGllc1snZmxleFdyYXAnXTtcbiAgZGlyZWN0aW9uPzogQ1NTUHJvcGVydGllc1snZmxleERpcmVjdGlvbiddO1xuICB3aWR0aD86IENTU1Byb3BlcnRpZXNbJ3dpZHRoJ107XG4gIGhlaWdodD86IENTU1Byb3BlcnRpZXNbJ2hlaWdodCddO1xuICBtaW5XaWR0aD86IENTU1Byb3BlcnRpZXNbJ21pbldpZHRoJ107XG4gIG1pbkhlaWdodD86IENTU1Byb3BlcnRpZXNbJ21pbkhlaWdodCddO1xuICBtYXhXaWR0aD86IENTU1Byb3BlcnRpZXNbJ21heFdpZHRoJ107XG4gIG1heEhlaWdodD86IENTU1Byb3BlcnRpZXNbJ21heEhlaWdodCddO1xuICB4U2l6aW5nPzogJ2ZpbGwnIHwgJ2NvbnRlbnQnO1xuICB5U2l6aW5nPzogJ2ZpbGwnIHwgJ2NvbnRlbnQnO1xuICAvKipcbiAgICogVHJ1ZSB3aGVuIHRoZSBpdGVtIHNob3VsZCByZW5kZXJlZCBidXQgbm90IHZpc2libGUuXG4gICAqIFVzZWZ1bCBmb3IgY29uZGl0aW9uYWwgZGlzcGxheSBvZiBsYXlvdXQgaXRlbXNcbiAgICovXG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0IGRpcmVjdGlvbiBmb3Igc21hbGxlciBzY3JlZW5zLiBUaGlzIGRlZmF1bHRzIHRvIGNvbHVtbi5cbiAgICogVGhpcyBlcXVhbHMgbWVkaWEgcXVlcnkgdGhlbWUuYnJlYWtwb2ludHMuZG93bignbWQnKVxuICAgKi9cbiAgbWQ/OiBTY2VuZUZsZXhJdGVtUGxhY2VtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lRmxleEl0ZW1TdGF0ZSBleHRlbmRzIFNjZW5lRmxleEl0ZW1QbGFjZW1lbnQsIFNjZW5lT2JqZWN0U3RhdGUge1xuICBib2R5OiBTY2VuZU9iamVjdCB8IHVuZGVmaW5lZDtcbn1cblxuaW50ZXJmYWNlIFNjZW5lRmxleEl0ZW1SZW5kZXJQcm9wczxUPiBleHRlbmRzIFNjZW5lQ29tcG9uZW50UHJvcHM8VD4ge1xuICBwYXJlbnRTdGF0ZT86IFNjZW5lRmxleEl0ZW1QbGFjZW1lbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBTY2VuZUZsZXhJdGVtIGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlPFNjZW5lRmxleEl0ZW1TdGF0ZT4ge1xuICBwdWJsaWMgc3RhdGljIENvbXBvbmVudCA9IFNjZW5lRmxleEl0ZW1SZW5kZXJlcjtcbn1cblxuZnVuY3Rpb24gU2NlbmVGbGV4SXRlbVJlbmRlcmVyKHsgbW9kZWwsIHBhcmVudFN0YXRlIH06IFNjZW5lRmxleEl0ZW1SZW5kZXJQcm9wczxTY2VuZUZsZXhJdGVtPikge1xuICBpZiAoIXBhcmVudFN0YXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTY2VuZUZsZXhJdGVtIG11c3QgYmUgYSBjaGlsZCBvZiBTY2VuZUZsZXhMYXlvdXQnKTtcbiAgfVxuXG4gIGNvbnN0IHsgYm9keSwgaXNIaWRkZW4gfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG4gIGNvbnN0IHN0eWxlID0gdXNlTGF5b3V0SXRlbVN0eWxlKG1vZGVsLnN0YXRlLCBwYXJlbnRTdGF0ZSk7XG5cbiAgaWYgKCFib2R5IHx8IGlzSGlkZGVuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZX0+XG4gICAgICA8Ym9keS5Db21wb25lbnQgbW9kZWw9e2JvZHl9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5mdW5jdGlvbiBhcHBseUl0ZW1TdHlsZXMoc3R5bGU6IENTU09iamVjdCwgc3RhdGU6IFNjZW5lRmxleEl0ZW1QbGFjZW1lbnQsIHBhcmVudFN0YXRlOiBTY2VuZUZsZXhJdGVtUGxhY2VtZW50KSB7XG4gIGNvbnN0IHBhcmVudERpcmVjdGlvbiA9IHBhcmVudFN0YXRlLmRpcmVjdGlvbiA/PyAncm93JztcbiAgY29uc3QgeyB4U2l6aW5nID0gJ2ZpbGwnLCB5U2l6aW5nID0gJ2ZpbGwnIH0gPSBzdGF0ZTtcblxuICBzdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICBzdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gIHN0eWxlLmZsZXhEaXJlY3Rpb24gPSBwYXJlbnREaXJlY3Rpb247XG5cbiAgaWYgKHBhcmVudERpcmVjdGlvbiA9PT0gJ2NvbHVtbicpIHtcbiAgICBpZiAoc3RhdGUuaGVpZ2h0KSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSBzdGF0ZS5oZWlnaHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlLmZsZXhHcm93ID0geVNpemluZyA9PT0gJ2ZpbGwnID8gMSA6IDA7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLndpZHRoKSB7XG4gICAgICBzdHlsZS53aWR0aCA9IHN0YXRlLndpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5hbGlnblNlbGYgPSB4U2l6aW5nID09PSAnZmlsbCcgPyAnc3RyZXRjaCcgOiAnZmxleC1zdGFydCc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChzdGF0ZS5oZWlnaHQpIHtcbiAgICAgIHN0eWxlLmhlaWdodCA9IHN0YXRlLmhlaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUuYWxpZ25TZWxmID0geVNpemluZyA9PT0gJ2ZpbGwnID8gJ3N0cmV0Y2gnIDogJ2ZsZXgtc3RhcnQnO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS53aWR0aCkge1xuICAgICAgc3R5bGUud2lkdGggPSBzdGF0ZS53aWR0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUuZmxleEdyb3cgPSB4U2l6aW5nID09PSAnZmlsbCcgPyAxIDogMDtcbiAgICB9XG4gIH1cblxuICBzdHlsZS5taW5XaWR0aCA9IHN0YXRlLm1pbldpZHRoO1xuICBzdHlsZS5tYXhXaWR0aCA9IHN0YXRlLm1heFdpZHRoO1xuICBzdHlsZS5tYXhIZWlnaHQgPSBzdGF0ZS5tYXhIZWlnaHQ7XG5cbiAgLy8gRm9yIHJlc3BvbnNpdmUgbGF5b3V0cyB0byB3b3JrIHdlIGRlZmF1bHQgdXNlIHRoZSBtaW5IZWlnaHQgb3IgaGVpZ2h0IG9mIHRoZSBwYXJlbnRcbiAgc3R5bGUubWluSGVpZ2h0ID0gc3RhdGUubWluSGVpZ2h0ID8/IHBhcmVudFN0YXRlLm1pbkhlaWdodDtcbiAgc3R5bGUuaGVpZ2h0ID0gc3RhdGUuaGVpZ2h0ID8/IHBhcmVudFN0YXRlLmhlaWdodDtcblxuICByZXR1cm4gc3R5bGU7XG59XG5cbmZ1bmN0aW9uIHVzZUxheW91dEl0ZW1TdHlsZShzdGF0ZTogU2NlbmVGbGV4SXRlbVN0YXRlLCBwYXJlbnRTdGF0ZTogU2NlbmVGbGV4SXRlbVBsYWNlbWVudCkge1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBjb25maWcudGhlbWUyO1xuICAgIGNvbnN0IHN0eWxlID0gYXBwbHlJdGVtU3R5bGVzKHt9LCBzdGF0ZSwgcGFyZW50U3RhdGUpO1xuXG4gICAgLy8gVW5zZXQgbWF4V2lkdGggZm9yIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIHN0eWxlW3RoZW1lLmJyZWFrcG9pbnRzLmRvd24oJ21kJyldID0ge1xuICAgICAgbWF4V2lkdGg6IHN0YXRlLm1kPy5tYXhXaWR0aCA/PyAndW5zZXQnLFxuICAgICAgbWF4SGVpZ2h0OiBzdGF0ZS5tZD8ubWF4SGVpZ2h0ID8/ICd1bnNldCcsXG4gICAgICBoZWlnaHQ6IHN0YXRlLm1kPy5oZWlnaHQgPz8gcGFyZW50U3RhdGUubWQ/LmhlaWdodCxcbiAgICAgIHdpZHRoOiBzdGF0ZS5tZD8ud2lkdGggPz8gcGFyZW50U3RhdGUubWQ/LndpZHRoLFxuICAgIH07XG5cbiAgICByZXR1cm4gY3NzKHN0eWxlKTtcbiAgfSwgW3N0YXRlLCBwYXJlbnRTdGF0ZV0pO1xufVxuXG5mdW5jdGlvbiB1c2VMYXlvdXRTdHlsZShzdGF0ZTogU2NlbmVGbGV4TGF5b3V0U3RhdGUsIHBhcmVudFN0YXRlPzogU2NlbmVGbGV4SXRlbVBsYWNlbWVudCkge1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBkaXJlY3Rpb24gPSAncm93Jywgd3JhcCB9ID0gc3RhdGU7XG4gICAgLy8gb25seSBuZWVkIGJyZWFrcG9pbnRzIHNvIGFjY2Vzc2luZyB0aGVtZSBmcm9tIGNvbmZpZyBpbnN0ZWFkIG9mIGNvbnRleHQgaXMgb2tcbiAgICBjb25zdCB0aGVtZSA9IGNvbmZpZy50aGVtZTI7XG5cbiAgICBjb25zdCBzdHlsZTogQ1NTT2JqZWN0ID0ge307XG5cbiAgICBpZiAocGFyZW50U3RhdGUpIHtcbiAgICAgIGFwcGx5SXRlbVN0eWxlcyhzdHlsZSwgc3RhdGUsIHBhcmVudFN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgIHN0eWxlLmZsZXhHcm93ID0gMTtcbiAgICAgIHN0eWxlLm1pbldpZHRoID0gc3RhdGUubWluV2lkdGg7XG4gICAgICBzdHlsZS5taW5IZWlnaHQgPSBzdGF0ZS5taW5IZWlnaHQ7XG4gICAgfVxuXG4gICAgc3R5bGUuZmxleERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICBzdHlsZS5nYXAgPSAnOHB4JztcbiAgICBzdHlsZS5mbGV4V3JhcCA9IHdyYXAgfHwgJ25vd3JhcCc7XG4gICAgc3R5bGUuYWxpZ25Db250ZW50ID0gJ2Jhc2VsaW5lJztcbiAgICBzdHlsZS5taW5XaWR0aCA9IHN0eWxlLm1pbldpZHRoIHx8IDA7XG4gICAgc3R5bGUubWluSGVpZ2h0ID0gc3R5bGUubWluSGVpZ2h0IHx8IDA7XG5cbiAgICBzdHlsZVt0aGVtZS5icmVha3BvaW50cy5kb3duKCdtZCcpXSA9IHtcbiAgICAgIGZsZXhEaXJlY3Rpb246IHN0YXRlLm1kPy5kaXJlY3Rpb24gPz8gJ2NvbHVtbicsXG4gICAgICBtYXhXaWR0aDogc3RhdGUubWQ/Lm1heFdpZHRoID8/ICd1bnNldCcsXG4gICAgICBtYXhIZWlnaHQ6IHN0YXRlLm1kPy5tYXhIZWlnaHQgPz8gJ3Vuc2V0JyxcbiAgICAgIGhlaWdodDogc3RhdGUubWQ/LmhlaWdodCA/PyAndW5zZXQnLFxuICAgICAgd2lkdGg6IHN0YXRlLm1kPy53aWR0aCA/PyAndW5zZXQnLFxuICAgIH07XG5cbiAgICByZXR1cm4gY3NzKHN0eWxlKTtc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