@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,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF6eUxvYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9sYXlvdXQvTGF6eUxvYWRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlSW1wZXJhdGl2ZUhhbmRsZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdE9uY2UgfSBmcm9tICdyZWFjdC11c2UnO1xuaW1wb3J0IHsgdW5pcXVlSWQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcbmltcG9ydCB7IHVzZVN0eWxlczIgfSBmcm9tICdAZ3JhZmFuYS91aSc7XG5cbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wU3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX3Byb3BJc0VudW0gPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xudmFyIF9fZGVmTm9ybWFsUHJvcCA9IChvYmosIGtleSwgdmFsdWUpID0+IGtleSBpbiBvYmogPyBfX2RlZlByb3Aob2JqLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWUgfSkgOiBvYmpba2V5XSA9IHZhbHVlO1xudmFyIF9fc3ByZWFkVmFsdWVzID0gKGEsIGIpID0+IHtcbiAgZm9yICh2YXIgcHJvcCBpbiBiIHx8IChiID0ge30pKVxuICAgIGlmIChfX2hhc093blByb3AuY2FsbChiLCBwcm9wKSlcbiAgICAgIF9fZGVmTm9ybWFsUHJvcChhLCBwcm9wLCBiW3Byb3BdKTtcbiAgaWYgKF9fZ2V0T3duUHJvcFN5bWJvbHMpXG4gICAgZm9yICh2YXIgcHJvcCBvZiBfX2dldE93blByb3BTeW1ib2xzKGIpKSB7XG4gICAgICBpZiAoX19wcm9wSXNFbnVtLmNhbGwoYiwgcHJvcCkpXG4gICAgICAgIF9fZGVmTm9ybWFsUHJvcChhLCBwcm9wLCBiW3Byb3BdKTtcbiAgICB9XG4gIHJldHVybiBhO1xufTtcbnZhciBfX29ialJlc3QgPSAoc291cmNlLCBleGNsdWRlKSA9PiB7XG4gIHZhciB0YXJnZXQgPSB7fTtcbiAgZm9yICh2YXIgcHJvcCBpbiBzb3VyY2UpXG4gICAgaWYgKF9faGFzT3duUHJvcC5jYWxsKHNvdXJjZSwgcHJvcCkgJiYgZXhjbHVkZS5pbmRleE9mKHByb3ApIDwgMClcbiAgICAgIHRhcmdldFtwcm9wXSA9IHNvdXJjZVtwcm9wXTtcbiAgaWYgKHNvdXJjZSAhPSBudWxsICYmIF9fZ2V0T3duUHJvcFN5bWJvbHMpXG4gICAgZm9yICh2YXIgcHJvcCBvZiBfX2dldE93blByb3BTeW1ib2xzKHNvdXJjZSkpIHtcbiAgICAgIGlmIChleGNsdWRlLmluZGV4T2YocHJvcCkgPCAwICYmIF9fcHJvcElzRW51bS5jYWxsKHNvdXJjZSwgcHJvcCkpXG4gICAgICAgIHRhcmdldFtwcm9wXSA9IHNvdXJjZVtwcm9wXTtcbiAgICB9XG4gIHJldHVybiB0YXJnZXQ7XG59O1xuZnVuY3Rpb24gdXNlVW5pcXVlSWQoKSB7XG4gIHZhciBfYTtcbiAgY29uc3QgaWRSZWZMYXp5ID0gdXNlUmVmKHZvaWQgMCk7XG4gIChfYSA9IGlkUmVmTGF6eS5jdXJyZW50KSAhPSBudWxsID8gX2EgOiBpZFJlZkxhenkuY3VycmVudCA9IHVuaXF1ZUlkKCk7XG4gIHJldHVybiBpZFJlZkxhenkuY3VycmVudDtcbn1cbmNvbnN0IExhenlMb2FkZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAoX2EsIHJlZikgPT4ge1xuICAgIHZhciBfYiA9IF9hLCB7IGNoaWxkcmVuLCBvbkxvYWQsIG9uQ2hhbmdlLCBjbGFzc05hbWUgfSA9IF9iLCByZXN0ID0gX19vYmpSZXN0KF9iLCBbXCJjaGlsZHJlblwiLCBcIm9uTG9hZFwiLCBcIm9uQ2hhbmdlXCIsIFwiY2xhc3NOYW1lXCJdKTtcbiAgICBjb25zdCBpZCA9IHVzZVVuaXF1ZUlkKCk7XG4gICAgY29uc3QgeyBoaWRlRW1wdHkgfSA9IHVzZVN0eWxlczIoZ2V0U3R5bGVzKTtcbiAgICBjb25zdCBbbG9hZGVkLCBzZXRMb2FkZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0luVmlldywgc2V0SXNJblZpZXddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGlubmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclJlZi5jdXJyZW50KTtcbiAgICB1c2VFZmZlY3RPbmNlKCgpID0+IHtcbiAgICAgIExhenlMb2FkZXIuYWRkQ2FsbGJhY2soaWQsIChlbnRyeSkgPT4ge1xuICAgICAgICBpZiAoIWxvYWRlZCAmJiBlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgIHNldExvYWRlZCh0cnVlKTtcbiAgICAgICAgICBvbkxvYWQgPT0gbnVsbCA/IHZvaWQgMCA6IG9uTG9hZCgpO1xuICAgICAgICB9XG4gICAgICAgIHNldElzSW5WaWV3KGVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgb25DaGFuZ2UgPT0gbnVsbCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgd3JhcHBlckVsID0gaW5uZXJSZWYuY3VycmVudDtcbiAgICAgIGlmICh3cmFwcGVyRWwpIHtcbiAgICAgICAgTGF6eUxvYWRlci5vYnNlcnZlci5vYnNlcnZlKHdyYXBwZXJFbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3cmFwcGVyRWwgJiYgTGF6eUxvYWRlci5vYnNlcnZlci51bm9ic2VydmUod3JhcHBlckVsKTtcbiAgICAgICAgZGVsZXRlIExhenlMb2FkZXIuY2FsbGJhY2tzW2lkXTtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKExhenlMb2FkZXIuY2FsbGJhY2tzKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBMYXp5TG9hZGVyLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KTtcbiAgICBjb25zdCBjbGFzc2VzID0gYCR7bG9hZGVkID8gaGlkZUVtcHR5IDogXCJcIn0gJHtjbGFzc05hbWV9YDtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX19zcHJlYWRWYWx1ZXMoe1xuICAgICAgaWQsXG4gICAgICByZWY6IGlubmVyUmVmLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzXG4gICAgfSwgcmVzdCksIGxvYWRlZCAmJiAodHlwZW9mIGNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCIgPyBjaGlsZHJlbih7IGlzSW5WaWV3IH0pIDogY2hpbGRyZW4pKTtcbiAgfVxuKTtcbmZ1bmN0aW9uIGdldFN0eWxlcygpIHtcbiAgcmV0dXJuIHtcbiAgICBoaWRlRW1wdHk6IGNzcyh7XG4gICAgICBcIiY6ZW1wdHlcIjoge1xuICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIlxuICAgICAgfVxuICAgIH0pXG4gIH07XG59XG5MYXp5TG9hZGVyLmRpc3BsYXlOYW1lID0gXCJMYXp5TG9hZGVyXCI7XG5MYXp5TG9hZGVyLmNhbGxiYWNrcyA9IHt9O1xuTGF6eUxvYWRlci5hZGRDYWxsYmFjayA9IChpZCwgYykgPT4gTGF6eUxvYWRlci5jYWxsYmFja3NbaWRdID0gYztcbkxhenlMb2FkZXIub2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gIChlbnRyaWVzKSA9PiB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAodHlwZW9mIExhenlMb2FkZXIuY2FsbGJhY2tzW2VudHJ5LnRhcmdldC5pZF0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBMYXp5TG9hZGVyLmNhbGxiYWNrc1tlbnRyeS50YXJnZXQuaWRdKGVudHJ5KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHsgcm9vdE1hcmdpbjogXCIxMDBweFwiIH1cbik7XG5cbmV4cG9ydCB7IExhenlMb2FkZXIsIHVzZVVuaXF1ZUlkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVRHRjZlVXh2WVdSbGNpNXFjeUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJOdmJYQnZibVZ1ZEhNdmJHRjViM1YwTDB4aGVubE1iMkZrWlhJdWRITjRJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0JTWldGamRDd2dleUJHYjNKM1lYSmtVbVZtUlhodmRHbGpRMjl0Y0c5dVpXNTBMQ0IxYzJWSmJYQmxjbUYwYVhabFNHRnVaR3hsTENCMWMyVlNaV1lzSUhWelpWTjBZWFJsSUgwZ1puSnZiU0FuY21WaFkzUW5PMXh1YVcxd2IzSjBJSHNnZFhObFJXWm1aV04wVDI1alpTQjlJR1p5YjIwZ0ozSmxZV04wTFhWelpTYzdYRzVjYm1sdGNHOXlkQ0I3SUhWdWFYRjFaVWxrSUgwZ1puSnZiU0FuYkc5a1lYTm9KenRjYm1sdGNHOXlkQ0I3SUdOemN5QjlJR1p5YjIwZ0owQmxiVzkwYVc5dUwyTnpjeWM3WEc1cGJYQnZjblFnZXlCMWMyVlRkSGxzWlhNeUlIMGdabkp2YlNBblFHZHlZV1poYm1FdmRXa25PMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZFhObFZXNXBjWFZsU1dRb0tUb2djM1J5YVc1bklIdGNiaUFnWTI5dWMzUWdhV1JTWldaTVlYcDVJRDBnZFhObFVtVm1QSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaRDRvZFc1a1pXWnBibVZrS1R0Y2JpQWdhV1JTWldaTVlYcDVMbU4xY25KbGJuUWdQejg5SUhWdWFYRjFaVWxrS0NrN1hHNGdJSEpsZEhWeWJpQnBaRkpsWmt4aGVua3VZM1Z5Y21WdWREdGNibjFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCUWNtOXdjeUJsZUhSbGJtUnpJRTl0YVhROFVtVmhZM1F1U0ZSTlRGQnliM0J6UEVoVVRVeEVhWFpGYkdWdFpXNTBQaXdnSjI5dVEyaGhibWRsSnlCOElDZGphR2xzWkhKbGJpYytJSHRjYmlBZ1kyaHBiR1J5Wlc0NklGSmxZV04wTGxKbFlXTjBUbTlrWlNCOElDZ29leUJwYzBsdVZtbGxkeUI5T2lCN0lHbHpTVzVXYVdWM09pQmliMjlzWldGdUlIMHBJRDArSUZKbFlXTjBMbEpsWVdOMFRtOWtaU2s3WEc0Z0lHdGxlVG9nYzNSeWFXNW5PMXh1SUNCdmJreHZZV1EvT2lBb0tTQTlQaUIyYjJsa08xeHVJQ0J2YmtOb1lXNW5aVDg2SUNocGMwbHVWbWxsZHpvZ1ltOXZiR1ZoYmlrZ1BUNGdkbTlwWkR0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JNWVhwNVRHOWhaR1Z5Vkhsd1pTQmxlSFJsYm1SeklFWnZjbmRoY21SU1pXWkZlRzkwYVdORGIyMXdiMjVsYm5ROFVISnZjSE0rSUh0Y2JpQWdZV1JrUTJGc2JHSmhZMnM2SUNocFpEb2djM1J5YVc1bkxDQmpPaUFvWlRvZ1NXNTBaWEp6WldOMGFXOXVUMkp6WlhKMlpYSkZiblJ5ZVNrZ1BUNGdkbTlwWkNrZ1BUNGdkbTlwWkR0Y2JpQWdZMkZzYkdKaFkydHpPaUJTWldOdmNtUThjM1J5YVc1bkxDQW9aVG9nU1c1MFpYSnpaV04wYVc5dVQySnpaWEoyWlhKRmJuUnllU2tnUFQ0Z2RtOXBaRDQ3WEc0Z0lHOWljMlZ5ZG1WeU9pQkpiblJsY25ObFkzUnBiMjVQWW5ObGNuWmxjanRjYm4xY2JseHVaWGh3YjNKMElHTnZibk4wSUV4aGVubE1iMkZrWlhJNklFeGhlbmxNYjJGa1pYSlVlWEJsSUQwZ1VtVmhZM1F1Wm05eWQyRnlaRkpsWmp4SVZFMU1SR2wyUld4bGJXVnVkQ3dnVUhKdmNITStLRnh1SUNBb2V5QmphR2xzWkhKbGJpd2diMjVNYjJGa0xDQnZia05vWVc1blpTd2dZMnhoYzNOT1lXMWxMQ0F1TGk1eVpYTjBJSDBzSUhKbFppa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHbGtJRDBnZFhObFZXNXBjWFZsU1dRb0tUdGNiaUFnSUNCamIyNXpkQ0I3SUdocFpHVkZiWEIwZVNCOUlEMGdkWE5sVTNSNWJHVnpNaWhuWlhSVGRIbHNaWE1wTzF4dUlDQWdJR052Ym5OMElGdHNiMkZrWldRc0lITmxkRXh2WVdSbFpGMGdQU0IxYzJWVGRHRjBaU2htWVd4elpTazdYRzRnSUNBZ1kyOXVjM1FnVzJselNXNVdhV1YzTENCelpYUkpjMGx1Vm1sbGQxMGdQU0IxYzJWVGRHRjBaU2htWVd4elpTazdYRzRnSUNBZ1kyOXVjM1FnYVc1dVpYSlNaV1lnUFNCMWMyVlNaV1k4U0ZSTlRFUnBka1ZzWlcxbGJuUStLRzUxYkd3cE8xeHVYRzRnSUNBZ2RYTmxTVzF3WlhKaGRHbDJaVWhoYm1Sc1pTaHlaV1lzSUNncElEMCtJR2x1Ym1WeVVtVm1MbU4xY25KbGJuUWhLVHRjYmx4dUlDQWdJSFZ6WlVWbVptVmpkRTl1WTJVb0tDa2dQVDRnZTF4dUlDQWdJQ0FnVEdGNmVVeHZZV1JsY2k1aFpHUkRZV3hzWW1GamF5aHBaQ3dnS0dWdWRISjVLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYkc5aFpHVmtJQ1ltSUdWdWRISjVMbWx6U1c1MFpYSnpaV04wYVc1bktTQjdYRzRnSUNBZ0lDQWdJQ0FnYzJWMFRHOWhaR1ZrS0hSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUc5dVRHOWhaRDh1S0NrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0J6WlhSSmMwbHVWbWxsZHlobGJuUnllUzVwYzBsdWRHVnljMlZqZEdsdVp5azdYRzRnSUNBZ0lDQWdJRzl1UTJoaGJtZGxQeTRvWlc1MGNua3VhWE5KYm5SbGNuTmxZM1JwYm1jcE8xeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJR052Ym5OMElIZHlZWEJ3WlhKRmJDQTlJR2x1Ym1WeVVtVm1MbU4xY25KbGJuUTdYRzVjYmlBZ0lDQWdJR2xtSUNoM2NtRndjR1Z5Uld3cElIdGNiaUFnSUNBZ0lDQWdUR0Y2ZVV4dllXUmxjaTV2WW5ObGNuWmxjaTV2WW5ObGNuWmxLSGR5WVhCd1pYSkZiQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUFvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJSGR5WVhCd1pYSkZiQ0FtSmlCTVlYcDVURzloWkdWeUxtOWljMlZ5ZG1WeUxuVnViMkp6WlhKMlpTaDNjbUZ3Y0dWeVJXd3BPMXh1SUNBZ0lDQWdJQ0JrWld4bGRHVWdUR0Y2ZVV4dllXUmxjaTVqWVd4c1ltRmphM05iYVdSZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvVDJKcVpXTjBMbXRsZVhNb1RHRjZlVXh2WVdSbGNpNWpZV3hzWW1GamEzTXBMbXhsYm1kMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJRXhoZW5sTWIyRmtaWEl1YjJKelpYSjJaWEl1WkdselkyOXVibVZqZENncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeThnU1dZZ2RHaGxJR1ZzWlcxbGJuUWdkMkZ6SUd4dllXUmxaQ3dnZDJVZ1lXUmtJSFJvWlNCZ2FHbGtaVVZ0Y0hSNVlDQmpiR0Z6Y3lCMGJ5QndiM1JsYm5ScFlXeHNlVnh1SUNBZ0lDOHZJR2hwWkdVZ2RHaGxJRXhoZW5sTWIyRmtaWElnYVdZZ2FYUWdaRzlsY3lCdWIzUWdhR0YyWlNCaGJua2dZMmhwYkdSeVpXNHVJRlJvYVhNZ2FYTWdkR2hsSUdOaGMyVmNiaUFnSUNBdkx5QjNhR1Z1SUdOb2FXeGtjbVZ1SUdoaGRtVWdkR2hsSUdCcGMwaHBaR1JsYm1BZ2NISnZjR1Z5ZEhrZ2MyVjBMbHh1SUNBZ0lDOHZJRmRsSUdGc2QyRjVjeUJwYm1Oc2RXUmxJSFJvWlNCZ1kyeGhjM05PWVcxbFlDQmpiR0Z6Y3l3Z1lYTWdkR2hwY3lCcGN5QmpiMjFwYm1jZ1puSnZiU0IwYUdWY2JpQWdJQ0F2THlCallXeHNaWElnYjJZZ2RHaGxJR0JNWVhwNVRHOWhaR1Z5WUNCamIyMXdiMjVsYm5RdVhHNGdJQ0FnWTI5dWMzUWdZMnhoYzNObGN5QTlJR0FrZTJ4dllXUmxaQ0EvSUdocFpHVkZiWEIwZVNBNklDY25mU0FrZTJOc1lYTnpUbUZ0WlgxZ08xeHVJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0E4WkdsMklHbGtQWHRwWkgwZ2NtVm1QWHRwYm01bGNsSmxabjBnWTJ4aGMzTk9ZVzFsUFh0amJHRnpjMlZ6ZlNCN0xpNHVjbVZ6ZEgwK1hHNGdJQ0FnSUNBZ0lIdHNiMkZrWldRZ0ppWWdLSFI1Y0dWdlppQmphR2xzWkhKbGJpQTlQVDBnSjJaMWJtTjBhVzl1SnlBL0lHTm9hV3hrY21WdUtIc2dhWE5KYmxacFpYY2dmU2tnT2lCamFHbHNaSEpsYmlsOVhHNGdJQ0FnSUNBOEwyUnBkajVjYmlBZ0lDQXBPMXh1SUNCOVhHNHBJR0Z6SUV4aGVubE1iMkZrWlhKVWVYQmxPMXh1WEc1bWRXNWpkR2x2YmlCblpYUlRkSGxzWlhNb0tTQjdYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdhR2xrWlVWdGNIUjVPaUJqYzNNb2UxeHVJQ0FnSUNBZ0p5WTZaVzF3ZEhrbk9pQjdYRzRnSUNBZ0lDQWdJR1JwYzNCc1lYazZJQ2R1YjI1bEp5eGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ2ZTa3NYRzRnSUgwN1hHNTlYRzVjYmt4aGVubE1iMkZrWlhJdVpHbHpjR3hoZVU1aGJXVWdQU0FuVEdGNmVVeHZZV1JsY2ljN1hHNU1ZWHA1VEc5aFpHVnlMbU5oYkd4aVlXTnJjeUE5SUh0OUlHRnpJRkpsWTI5eVpEeHpkSEpwYm1jc0lDaGxPaUJKYm5SbGNuTmxZM1JwYjI1UFluTmxjblpsY2tWdWRISjVLU0E5UGlCMmIybGtQanRjYmt4aGVubE1iMkZrWlhJdVlXUmtRMkZzYkdKaFkyc2dQU0FvYVdRNklITjBjbWx1Wnl3Z1l6b2dLR1U2SUVsdWRHVnljMlZqZEdsdmJrOWljMlZ5ZG1WeVJXNTBjbmtwSUQwK0lIWnZhV1FwSUQwK0lDaE1ZWHA1VEc5aFpHVnlMbU5oYkd4aVlXTnJjMXRwWkYwZ1BTQmpLVHRjYmt4aGVubE1iMkZrWlhJdWIySnpaWEoyWlhJZ1BTQnVaWGNnU1c1MFpYSnpaV04wYVc5dVQySnpaWEoyWlhJb1hHNGdJQ2hsYm5SeWFXVnpLU0E5UGlCN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCbGJuUnllU0J2WmlCbGJuUnlhV1Z6S1NCN1hHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlFeGhlbmxNYjJGa1pYSXVZMkZzYkdKaFkydHpXMlZ1ZEhKNUxuUmhjbWRsZEM1cFpGMGdQVDA5SUNkbWRXNWpkR2x2YmljcElIdGNiaUFnSUNBZ0lDQWdUR0Y2ZVV4dllXUmxjaTVqWVd4c1ltRmphM05iWlc1MGNua3VkR0Z5WjJWMExtbGtYU2hsYm5SeWVTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dUlDQjdJSEp2YjNSTllYSm5hVzQ2SUNjeE1EQndlQ2NnZlZ4dUtUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJUMDhzVTBGQlV5eFhRVUZ6UWl4SFFVRkJPMEZCVUhSRExFVkJRVUVzU1VGQlFTeEZRVUZCTEVOQlFVRTdRVUZSUlN4RlFVRk5MRTFCUVVFc1UwRkJRU3hIUVVGWkxFOUJRVEpDTEV0QlFWTXNRMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkRkRVFzUlVGQlZTeERRVUZCTEVWQlFVRXNSMEZCUVN4VFFVRkJMRU5CUVVFc1QwRkJRU3hMUVVGV0xFbEJRVlVzUjBGQlFTeEZRVUZCTEVkQlFVRXNVMEZCUVN4RFFVRkJMRTlCUVVFc1IwRkJXU3hSUVVGVExFVkJRVUVzUTBGQlFUdEJRVU12UWl4RlFVRkJMRTlCUVU4c1UwRkJWU3hEUVVGQkxFOUJRVUVzUTBGQlFUdEJRVU51UWl4RFFVRkJPMEZCWlU4c1RVRkJUU3hoUVVFMlFpeExRVUZOTEVOQlFVRXNWVUZCUVR0QlFVRkJMRVZCUXpsRExFTkJRVU1zU1VGQmIwUXNSMEZCVVN4TFFVRkJPMEZCUVRWRUxFbEJRVVVzU1VGQlFTeEZRVUZCTEVkQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1VVRkJRU3hGUVVGVkxFMUJRVkVzUlVGQlFTeFJRVUZCTEVWQlFWVXNVMEV6UW1wRExFVkJRVUVzUjBFeVFrY3NSVUZCTkVNc1JVRkJRU3hKUVVGQkxFZEJRVUVzVTBGQlFTeERRVUUxUXl4RlFVRTBReXhGUVVGQkxFTkJRVEZETEZWQlFWVXNSVUZCUVN4UlFVRkJMRVZCUVZFc1ZVRkJWU3hGUVVGQkxGZEJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZETjBJc1NVRkJRU3hOUVVGTkxFdEJRVXNzVjBGQldTeEZRVUZCTEVOQlFVRTdRVUZEZGtJc1NVRkJRU3hOUVVGTkxFVkJRVVVzVTBGQlFTeEZRVUZqTEVkQlFVRXNWVUZCUVN4RFFVRlhMRk5CUVZNc1EwRkJRU3hEUVVGQk8wRkJRekZETEVsQlFVRXNUVUZCVFN4RFFVRkRMRTFCUVVFc1JVRkJVU3hUUVVGVExFTkJRVUVzUjBGQlNTeFRRVUZUTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUXpGRExFbEJRVUVzVFVGQlRTeERRVUZETEZGQlFVRXNSVUZCVlN4WFFVRlhMRU5CUVVFc1IwRkJTU3hUUVVGVExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlF6bERMRWxCUVUwc1RVRkJRU3hSUVVGQkxFZEJRVmNzVDBGQmRVSXNTVUZCU1N4RFFVRkJMRU5CUVVFN1FVRkZOVU1zU1VGQmIwSXNiVUpCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVXNzVFVGQlRTeFJRVUZCTEVOQlFWTXNUMEZCVVN4RFFVRkJMRU5CUVVFN1FVRkZhRVFzU1VGQlFTeGhRVUZCTEVOQlFXTXNUVUZCVFR0QlFVTnNRaXhOUVVGWExGVkJRVUVzUTBGQlFTeFhRVUZCTEVOQlFWa3NSVUZCU1N4RlFVRkJMRU5CUVVNc1MwRkJWU3hMUVVGQk8wRkJRM0JETEZGQlFVa3NTVUZCUVN4RFFVRkRMRTFCUVZVc1NVRkJRU3hMUVVGQkxFTkJRVTBzWTBGQlowSXNSVUZCUVR0QlFVTnVReXhWUVVGQkxGTkJRVUVzUTBGQlZTeEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVTmtMRlZCUVVFc1RVRkJRU3hKUVVGQkxFbEJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TlFVRkJMRVZCUVVFc1EwRkJRVHRCUVVGQkxGTkJRMFk3UVVGRlFTeFJRVUZCTEZkQlFVRXNRMEZCV1N4TlFVRk5MR05CUVdNc1EwRkJRU3hEUVVGQk8wRkJRMmhETEZGQlFVRXNVVUZCUVN4SlFVRkJMRWxCUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeFJRVUZCTEVOQlFWY3NTMEZCVFN4RFFVRkJMR05CUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzVDBGRGJFSXNRMEZCUVN4RFFVRkJPMEZCUlVRc1RVRkJRU3hOUVVGTkxGbEJRVmtzVVVGQlV5eERRVUZCTEU5QlFVRXNRMEZCUVR0QlFVVXpRaXhOUVVGQkxFbEJRVWtzVTBGQlZ5eEZRVUZCTzBGQlEySXNVVUZCVnl4VlFVRkJMRU5CUVVFc1VVRkJRU3hEUVVGVExGRkJRVkVzVTBGQlV5eERRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTjJRenRCUVVWQkxFMUJRVUVzVDBGQlR5eE5RVUZOTzBGQlExZ3NVVUZCWVN4VFFVRkJMRWxCUVVFc1ZVRkJRU3hEUVVGWExGRkJRVk1zUTBGQlFTeFRRVUZCTEVOQlFWVXNVMEZCVXl4RFFVRkJMRU5CUVVFN1FVRkRjRVFzVVVGQlFTeFBRVUZQTEZkQlFWY3NVMEZCVlN4RFFVRkJMRVZCUVVFc1EwRkJRU3hEUVVGQk8wRkJRelZDTEZGQlFVRXNTVUZCU1N4UFFVRlBMRWxCUVVzc1EwRkJRU3hWUVVGQkxFTkJRVmNzVTBGQlV5eERRVUZCTEVOQlFVVXNWMEZCVnl4RFFVRkhMRVZCUVVFN1FVRkRiRVFzVlVGQlFTeFZRVUZCTEVOQlFWY3NVMEZCVXl4VlFVRlhMRVZCUVVFc1EwRkJRVHRCUVVGQkxGTkJRMnBETzBGQlFVRXNUMEZEUml4RFFVRkJPMEZCUVVFc1MwRkRSQ3hEUVVGQkxFTkJRVUU3UVVGUFJDeEpRVUZCTEUxQlFVMHNUMEZCVlN4SFFVRkJMRU5CUVVFc1JVRkJSeXhOUVVGVExFZEJRVUVzVTBGQlFTeEhRVUZaTEVWQlFVMHNRMEZCUVN4RFFVRkJMRVZCUVVFc1UwRkJRU3hEUVVGQkxFTkJRVUVzUTBGQlFUdEJRVU01UXl4SlFVRkJMSFZDUVVOSExFdEJRVUVzUTBGQlFTeGhRVUZCTEVOQlFVRXNTMEZCUVN4RlFVRkJMR05CUVVFc1EwRkJRVHRCUVVGQkxFMUJRVWtzUlVGQlFUdEJRVUZCTEUxQlFWRXNSMEZCU3l4RlFVRkJMRkZCUVVFN1FVRkJRU3hOUVVGVkxGTkJRVmNzUlVGQlFTeFBRVUZCTzBGQlFVRXNTMEZCWVN4RlFVRkJMRWxCUVVFc1EwRkJRU3hGUVVOcVJDeE5RVUZYTEV0QlFVRXNUMEZCVHl4UlFVRmhMRXRCUVVFc1ZVRkJRU3hIUVVGaExGTkJRVk1zUlVGQlJTeFJRVUZCTEVWQlFWVXNRMEZCUVN4SFFVRkpMRkZCUTNoRkxFTkJRVUVzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZGU2p0QlFVTkdMRVZCUVVFN1FVRkZRU3hUUVVGVExGTkJRVmtzUjBGQlFUdEJRVU51UWl4RlFVRlBMRTlCUVVFN1FVRkJRU3hKUVVOTUxGZEJRVmNzUjBGQlNTeERRVUZCTzBGQlFVRXNUVUZEWWl4VFFVRlhMRVZCUVVFN1FVRkJRU3hSUVVOVUxFOUJRVk1zUlVGQlFTeE5RVUZCTzBGQlFVRXNUMEZEV0R0QlFVRkJMRXRCUTBRc1EwRkJRVHRCUVVGQkxFZEJRMGdzUTBGQlFUdEJRVU5HTEVOQlFVRTdRVUZGUVN4VlFVRkJMRU5CUVZjc1YwRkJZeXhIUVVGQkxGbEJRVUVzUTBGQlFUdEJRVU42UWl4VlFVRkJMRU5CUVZjc1dVRkJXU3hGUVVGRExFTkJRVUU3UVVGRGVFSXNWVUZCUVN4RFFVRlhMR05CUVdNc1EwRkJReXhGUVVGQkxFVkJRVmtzUTBGQkswTXNTMEZCUVN4VlFVRkJMRU5CUVZjc1ZVRkJWU3hGUVVGTkxFTkJRVUVzUjBGQlFTeERRVUZCTEVOQlFVRTdRVUZEYUVnc1ZVRkJRU3hEUVVGWExGZEJRVmNzU1VGQlNTeHZRa0ZCUVR0QlFVRkJMRVZCUTNoQ0xFTkJRVU1zVDBGQldTeExRVUZCTzBGQlExZ3NTVUZCUVN4TFFVRkJMRTFCUVZjc1UwRkJVeXhQUVVGVExFVkJRVUU3UVVGRE0wSXNUVUZCUVN4SlFVRkpMRTlCUVU4c1ZVRkJWeXhEUVVGQkxGTkJRVUVzUTBGQlZTeExRVUZOTEVOQlFVRXNUVUZCUVN4RFFVRlBMRkZCUVZFc1ZVRkJXU3hGUVVGQk8wRkJReTlFTEZGQlFVRXNWVUZCUVN4RFFVRlhMRk5CUVZVc1EwRkJRU3hMUVVGQkxFTkJRVTBzVFVGQlR5eERRVUZCTEVWQlFVRXNRMEZCUVN4RFFVRkpMRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJRVUVzVDBGRE4wTTdRVUZCUVN4TFFVTkdPMEZCUVVFc1IwRkRSanRCUVVGQkxFVkJRMEVzUlVGQlJTeFpRVUZaTEU5QlFWRXNSVUZCUVR0QlFVTjRRaXhEUVVGQk96czdPeUo5XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9PLFNBQVMsV0FBc0IsR0FBQTtBQVB0QyxFQUFBLElBQUEsRUFBQSxDQUFBO0FBUVEsRUFBQSxNQUFBLFNBQUEsR0FBWSxPQUEyQixLQUFTLENBQUEsQ0FBQSxDQUFBO0FBQzVDLEVBQUEsQ0FBQSxLQUFBLFNBQUEsQ0FBQSxPQUFBLEtBQVYsT0FBVSxFQUFBLEdBQUEsU0FBQSxDQUFBLFVBQVksUUFBUyxFQUFBLENBQUE7QUFDL0IsRUFBQSxPQUFPLFNBQVUsQ0FBQSxPQUFBLENBQUE7QUFDbkIsQ0FBQTtBQWVPLE1BQU0sYUFBNkIsS0FBTSxDQUFBLFVBQUE7QUFDOUMsRUFBQSxDQUFDLElBQW9ELEdBQVEsS0FBQTtBQUExRCxJQUFBLElBQUEsS0FBQSxFQUFBLEVBQUEsRUFBQSxRQUFVLEVBQUEsTUFBQSxFQUFRLFVBQVUsU0EzQmpDLEVBQUEsR0EyQkcsRUFBNEMsRUFBQSxJQUFBLEdBQUEsVUFBNUMsRUFBNEMsRUFBQSxDQUExQyxZQUFVLFFBQVEsRUFBQSxVQUFBLEVBQVUsV0FBQSxDQUFB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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVGbGV4TGF5b3V0LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2xheW91dC9TY2VuZUZsZXhMYXlvdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlL1NjZW5lT2JqZWN0QmFzZS5qcyc7XG5cbmNsYXNzIFNjZW5lRmxleExheW91dCBleHRlbmRzIFNjZW5lT2JqZWN0QmFzZSB7XG4gIHRvZ2dsZURpcmVjdGlvbigpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5zdGF0ZS5kaXJlY3Rpb24gPT09IFwicm93XCIgPyBcImNvbHVtblwiIDogXCJyb3dcIlxuICAgIH0pO1xuICB9XG4gIGlzRHJhZ2dhYmxlKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuU2NlbmVGbGV4TGF5b3V0LkNvbXBvbmVudCA9IFNjZW5lRmxleExheW91dFJlbmRlcmVyO1xuZnVuY3Rpb24gU2NlbmVGbGV4TGF5b3V0UmVuZGVyZXIoeyBtb2RlbCwgcGFyZW50U3RhdGUgfSkge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpc0hpZGRlbiB9ID0gbW9kZWwudXNlU3RhdGUoKTtcbiAgY29uc3Qgc3R5bGUgPSB1c2VMYXlvdXRTdHlsZShtb2RlbC5zdGF0ZSwgcGFyZW50U3RhdGUpO1xuICBpZiAoaXNIaWRkZW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogc3R5bGVcbiAgfSwgY2hpbGRyZW4ubWFwKChpdGVtKSA9PiB7XG4gICAgY29uc3QgQ29tcG9uZW50ID0gaXRlbS5Db21wb25lbnQ7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwge1xuICAgICAga2V5OiBpdGVtLnN0YXRlLmtleSxcbiAgICAgIG1vZGVsOiBpdGVtLFxuICAgICAgcGFyZW50U3RhdGU6IG1vZGVsLnN0YXRlXG4gICAgfSk7XG4gIH0pKTtcbn1cbmNsYXNzIFNjZW5lRmxleEl0ZW0gZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2Uge1xufVxuU2NlbmVGbGV4SXRlbS5Db21wb25lbnQgPSBTY2VuZUZsZXhJdGVtUmVuZGVyZXI7XG5mdW5jdGlvbiBTY2VuZUZsZXhJdGVtUmVuZGVyZXIoeyBtb2RlbCwgcGFyZW50U3RhdGUgfSkge1xuICBpZiAoIXBhcmVudFN0YXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU2NlbmVGbGV4SXRlbSBtdXN0IGJlIGEgY2hpbGQgb2YgU2NlbmVGbGV4TGF5b3V0XCIpO1xuICB9XG4gIGNvbnN0IHsgYm9keSwgaXNIaWRkZW4gfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG4gIGNvbnN0IHN0eWxlID0gdXNlTGF5b3V0SXRlbVN0eWxlKG1vZGVsLnN0YXRlLCBwYXJlbnRTdGF0ZSk7XG4gIGlmICghYm9keSB8fCBpc0hpZGRlbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiBzdHlsZVxuICB9LCAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChib2R5LkNvbXBvbmVudCwge1xuICAgIG1vZGVsOiBib2R5XG4gIH0pKTtcbn1cbmZ1bmN0aW9uIGFwcGx5SXRlbVN0eWxlcyhzdHlsZSwgc3RhdGUsIHBhcmVudFN0YXRlKSB7XG4gIHZhciBfYSwgX2IsIF9jO1xuICBjb25zdCBwYXJlbnREaXJlY3Rpb24gPSAoX2EgPSBwYXJlbnRTdGF0ZS5kaXJlY3Rpb24pICE9IG51bGwgPyBfYSA6IFwicm93XCI7XG4gIGNvbnN0IHsgeFNpemluZyA9IFwiZmlsbFwiLCB5U2l6aW5nID0gXCJmaWxsXCIgfSA9IHN0YXRlO1xuICBzdHlsZS5kaXNwbGF5ID0gXCJmbGV4XCI7XG4gIHN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2ZVwiO1xuICBzdHlsZS5mbGV4RGlyZWN0aW9uID0gcGFyZW50RGlyZWN0aW9uO1xuICBpZiAocGFyZW50RGlyZWN0aW9uID09PSBcImNvbHVtblwiKSB7XG4gICAgaWYgKHN0YXRlLmhlaWdodCkge1xuICAgICAgc3R5bGUuaGVpZ2h0ID0gc3RhdGUuaGVpZ2h0O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5mbGV4R3JvdyA9IHlTaXppbmcgPT09IFwiZmlsbFwiID8gMSA6IDA7XG4gICAgfVxuICAgIGlmIChzdGF0ZS53aWR0aCkge1xuICAgICAgc3R5bGUud2lkdGggPSBzdGF0ZS53aWR0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUuYWxpZ25TZWxmID0geFNpemluZyA9PT0gXCJmaWxsXCIgPyBcInN0cmV0Y2hcIiA6IFwiZmxleC1zdGFydFwiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoc3RhdGUuaGVpZ2h0KSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSBzdGF0ZS5oZWlnaHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlLmFsaWduU2VsZiA9IHlTaXppbmcgPT09IFwiZmlsbFwiID8gXCJzdHJldGNoXCIgOiBcImZsZXgtc3RhcnRcIjtcbiAgICB9XG4gICAgaWYgKHN0YXRlLndpZHRoKSB7XG4gICAgICBzdHlsZS53aWR0aCA9IHN0YXRlLndpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5mbGV4R3JvdyA9IHhTaXppbmcgPT09IFwiZmlsbFwiID8gMSA6IDA7XG4gICAgfVxuICB9XG4gIHN0eWxlLm1pbldpZHRoID0gc3RhdGUubWluV2lkdGg7XG4gIHN0eWxlLm1heFdpZHRoID0gc3RhdGUubWF4V2lkdGg7XG4gIHN0eWxlLm1heEhlaWdodCA9IHN0YXRlLm1heEhlaWdodDtcbiAgc3R5bGUubWluSGVpZ2h0ID0gKF9iID0gc3RhdGUubWluSGVpZ2h0KSAhPSBudWxsID8gX2IgOiBwYXJlbnRTdGF0ZS5taW5IZWlnaHQ7XG4gIHN0eWxlLmhlaWdodCA9IChfYyA9IHN0YXRlLmhlaWdodCkgIT0gbnVsbCA/IF9jIDogcGFyZW50U3RhdGUuaGVpZ2h0O1xuICByZXR1cm4gc3R5bGU7XG59XG5mdW5jdGlvbiB1c2VMYXlvdXRJdGVtU3R5bGUoc3RhdGUsIHBhcmVudFN0YXRlKSB7XG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaSwgX2o7XG4gICAgY29uc3QgdGhlbWUgPSBjb25maWcudGhlbWUyO1xuICAgIGNvbnN0IHN0eWxlID0gYXBwbHlJdGVtU3R5bGVzKHt9LCBzdGF0ZSwgcGFyZW50U3RhdGUpO1xuICAgIHN0eWxlW3RoZW1lLmJyZWFrcG9pbnRzLmRvd24oXCJtZFwiKV0gPSB7XG4gICAgICBtYXhXaWR0aDogKF9iID0gKF9hID0gc3RhdGUubWQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5tYXhXaWR0aCkgIT0gbnVsbCA/IF9iIDogXCJ1bnNldFwiLFxuICAgICAgbWF4SGVpZ2h0OiAoX2QgPSAoX2MgPSBzdGF0ZS5tZCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jLm1heEhlaWdodCkgIT0gbnVsbCA/IF9kIDogXCJ1bnNldFwiLFxuICAgICAgaGVpZ2h0OiAoX2cgPSAoX2UgPSBzdGF0ZS5tZCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lLmhlaWdodCkgIT0gbnVsbCA/IF9nIDogKF9mID0gcGFyZW50U3RhdGUubWQpID09IG51bGwgPyB2b2lkIDAgOiBfZi5oZWlnaHQsXG4gICAgICB3aWR0aDogKF9qID0gKF9oID0gc3RhdGUubWQpID09IG51bGwgPyB2b2lkIDAgOiBfaC53aWR0aCkgIT0gbnVsbCA/IF9qIDogKF9pID0gcGFyZW50U3RhdGUubWQpID09IG51bGwgPyB2b2lkIDAgOiBfaS53aWR0aFxuICAgIH07XG4gICAgcmV0dXJuIGNzcyhzdHlsZSk7XG4gIH0sIFtzdGF0ZSwgcGFyZW50U3RhdGVdKTtcbn1cbmZ1bmN0aW9uIHVzZUxheW91dFN0eWxlKHN0YXRlLCBwYXJlbnRTdGF0ZSkge1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2ksIF9qO1xuICAgIGNvbnN0IHsgZGlyZWN0aW9uID0gXCJyb3dcIiwgd3JhcCB9ID0gc3RhdGU7XG4gICAgY29uc3QgdGhlbWUgPSBjb25maWcudGhlbWUyO1xuICAgIGNvbnN0IHN0eWxlID0ge307XG4gICAgaWYgKHBhcmVudFN0YXRlKSB7XG4gICAgICBhcHBseUl0ZW1TdHlsZXMoc3R5bGUsIHN0YXRlLCBwYXJlbnRTdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlLmRpc3BsYXkgPSBcImZsZXhcIjtcbiAgICAgIHN0eWxlLmZsZXhHcm93ID0gMTtcbiAgICAgIHN0eWxlLm1pbldpZHRoID0gc3RhdGUubWluV2lkdGg7XG4gICAgICBzdHlsZS5taW5IZWlnaHQgPSBzdGF0ZS5taW5IZWlnaHQ7XG4gICAgfVxuICAgIHN0eWxlLmZsZXhEaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgc3R5bGUuZ2FwID0gXCI4cHhcIjtcbiAgICBzdHlsZS5mbGV4V3JhcCA9IHdyYXAgfHwgXCJub3dyYXBcIjtcbiAgICBzdHlsZS5hbGlnbkNvbnRlbnQgPSBcImJhc2VsaW5lXCI7XG4gICAgc3R5bGUubWluV2lkdGggPSBzdHlsZS5taW5XaWR0aCB8fCAwO1xuICAgIHN0eWxlLm1pbkhlaWdodCA9IHN0eWxlLm1pbkhlaWdodCB8fCAwO1xuICAgIHN0eWxlW3RoZW1lLmJyZWFrcG9pbnRzLmRvd24oXCJtZFwiKV0gPSB7XG4gICAgICBmbGV4RGlyZWN0aW9uOiAoX2IgPSAoX2EgPSBzdGF0ZS5tZCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmRpcmVjdGlvbikgIT0gbnVsbCA/IF9iIDogXCJjb2x1bW5cIixcbiAgICAgIG1heFdpZHRoOiAoX2QgPSAoX2MgPSBzdGF0ZS5tZCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jLm1heFdpZHRoKSAhPSBudWxsID8gX2QgOiBcInVuc2V0XCIsXG4gICAgICBtYXhIZWlnaHQ6IChfZiA9IChfZSA9IHN0YXRlLm1kKSA9PSBudWxsID8gdm9pZCAwIDogX2UubWF4SGVpZ2h0KSAhPSBudWxsID8gX2YgOiBcInVuc2V0XCIsXG4gICAgICBoZWlnaHQ6IChfaCA9IChfZyA9IHN0YXRlLm1kKSA9PSBudWxsID8gdm9pZCAwIDogX2cuaGVpZ2h0KSAhPSBudWxsID8gX2ggOiBcInVuc2V0XCIsXG4gICAgICB3aWR0aDogKF9qID0gKF9pID0gc3RhdGUubWQpID09IG51bGwgPyB2b2lkIDAgOiBfaS53aWR0aCkgIT0gbnVsbCA/IF9qIDogXCJ1bnNldFwiXG4gICAgfTtcbiAgICByZXR1cm4gY3NzKHN0eWxlKTtcbiAgfSwgW3BhcmVudFN0YXRlLCBzdGF0ZV0pO1xufVxuXG5leHBvcnQgeyBTY2VuZUZsZXhJdGVtLCBTY2VuZUZsZXhMYXlvdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVTJObGJtVkdiR1Y0VEdGNWIzVjBMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlkyOXRjRzl1Wlc1MGN5OXNZWGx2ZFhRdlUyTmxibVZHYkdWNFRHRjViM1YwTG5SemVDSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJqYzNNc0lFTlRVMDlpYW1WamRDQjlJR1p5YjIwZ0owQmxiVzkwYVc5dUwyTnpjeWM3WEc1cGJYQnZjblFnZXlCamIyNW1hV2NnZlNCbWNtOXRJQ2RBWjNKaFptRnVZUzl5ZFc1MGFXMWxKenRjYm1sdGNHOXlkQ0JTWldGamRDd2dleUJEYjIxd2IyNWxiblJVZVhCbExDQkRVMU5RY205d1pYSjBhV1Z6TENCMWMyVk5aVzF2SUgwZ1puSnZiU0FuY21WaFkzUW5PMXh1WEc1cGJYQnZjblFnZXlCVFkyVnVaVTlpYW1WamRFSmhjMlVnZlNCbWNtOXRJQ2N1TGk4dUxpOWpiM0psTDFOalpXNWxUMkpxWldOMFFtRnpaU2M3WEc1cGJYQnZjblFnZXlCVFkyVnVaVU52YlhCdmJtVnVkRkJ5YjNCekxDQlRZMlZ1WlV4aGVXOTFkQ3dnVTJObGJtVlBZbXBsWTNSVGRHRjBaU3dnVTJObGJtVlBZbXBsWTNRZ2ZTQm1jbTl0SUNjdUxpOHVMaTlqYjNKbEwzUjVjR1Z6Snp0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQlRZMlZ1WlVac1pYaEpkR1Z0VTNSaGRHVk1hV3RsSUdWNGRHVnVaSE1nVTJObGJtVkdiR1Y0U1hSbGJWQnNZV05sYldWdWRDd2dVMk5sYm1WUFltcGxZM1JUZEdGMFpTQjdmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUZOalpXNWxSbXhsZUVsMFpXMU1hV3RsSUdWNGRHVnVaSE1nVTJObGJtVlBZbXBsWTNROFUyTmxibVZHYkdWNFNYUmxiVk4wWVhSbFRHbHJaVDRnZTMxY2JseHVhVzUwWlhKbVlXTmxJRk5qWlc1bFJteGxlRXhoZVc5MWRGTjBZWFJsSUdWNGRHVnVaSE1nVTJObGJtVlBZbXBsWTNSVGRHRjBaU3dnVTJObGJtVkdiR1Y0U1hSbGJWQnNZV05sYldWdWRDQjdYRzRnSUdOb2FXeGtjbVZ1T2lCVFkyVnVaVVpzWlhoSmRHVnRUR2xyWlZ0ZE8xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdVMk5sYm1WR2JHVjRUR0Y1YjNWMElHVjRkR1Z1WkhNZ1UyTmxibVZQWW1wbFkzUkNZWE5sUEZOalpXNWxSbXhsZUV4aGVXOTFkRk4wWVhSbFBpQnBiWEJzWlcxbGJuUnpJRk5qWlc1bFRHRjViM1YwSUh0Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCRGIyMXdiMjVsYm5RZ1BTQlRZMlZ1WlVac1pYaE1ZWGx2ZFhSU1pXNWtaWEpsY2p0Y2JseHVJQ0J3ZFdKc2FXTWdkRzluWjJ4bFJHbHlaV04wYVc5dUtDa2dlMXh1SUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnWkdseVpXTjBhVzl1T2lCMGFHbHpMbk4wWVhSbExtUnBjbVZqZEdsdmJpQTlQVDBnSjNKdmR5Y2dQeUFuWTI5c2RXMXVKeUE2SUNkeWIzY25MRnh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2x6UkhKaFoyZGhZbXhsS0NrNklHSnZiMnhsWVc0Z2UxeHVJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnZlZ4dWZWeHVYRzVtZFc1amRHbHZiaUJUWTJWdVpVWnNaWGhNWVhsdmRYUlNaVzVrWlhKbGNpaDdJRzF2WkdWc0xDQndZWEpsYm5SVGRHRjBaU0I5T2lCVFkyVnVaVVpzWlhoSmRHVnRVbVZ1WkdWeVVISnZjSE04VTJObGJtVkdiR1Y0VEdGNWIzVjBQaWtnZTF4dUlDQmpiMjV6ZENCN0lHTm9hV3hrY21WdUxDQnBjMGhwWkdSbGJpQjlJRDBnYlc5a1pXd3VkWE5sVTNSaGRHVW9LVHRjYmlBZ1kyOXVjM1FnYzNSNWJHVWdQU0IxYzJWTVlYbHZkWFJUZEhsc1pTaHRiMlJsYkM1emRHRjBaU3dnY0dGeVpXNTBVM1JoZEdVcE8xeHVYRzRnSUdsbUlDaHBjMGhwWkdSbGJpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThaR2wySUdOc1lYTnpUbUZ0WlQxN2MzUjViR1Y5UGx4dUlDQWdJQ0FnZTJOb2FXeGtjbVZ1TG0xaGNDZ29hWFJsYlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQkRiMjF3YjI1bGJuUWdQU0JwZEdWdExrTnZiWEJ2Ym1WdWRDQmhjeUJEYjIxd2IyNWxiblJVZVhCbFBGTmpaVzVsUm14bGVFbDBaVzFTWlc1a1pYSlFjbTl3Y3p4VFkyVnVaVTlpYW1WamRENCtPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQRU52YlhCdmJtVnVkQ0JyWlhrOWUybDBaVzB1YzNSaGRHVXVhMlY1ZlNCdGIyUmxiRDE3YVhSbGJYMGdjR0Z5Wlc1MFUzUmhkR1U5ZTIxdlpHVnNMbk4wWVhSbGZTQXZQanRjYmlBZ0lDQWdJSDBwZlZ4dUlDQWdJRHd2WkdsMlBseHVJQ0FwTzF4dWZWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRk5qWlc1bFJteGxlRWwwWlcxUWJHRmpaVzFsYm5RZ2UxeHVJQ0IzY21Gd1B6b2dRMU5UVUhKdmNHVnlkR2xsYzFzblpteGxlRmR5WVhBblhUdGNiaUFnWkdseVpXTjBhVzl1UHpvZ1ExTlRVSEp2Y0dWeWRHbGxjMXNuWm14bGVFUnBjbVZqZEdsdmJpZGRPMXh1SUNCM2FXUjBhRDg2SUVOVFUxQnliM0JsY25ScFpYTmJKM2RwWkhSb0oxMDdYRzRnSUdobGFXZG9kRDg2SUVOVFUxQnliM0JsY25ScFpYTmJKMmhsYVdkb2RDZGRPMXh1SUNCdGFXNVhhV1IwYUQ4NklFTlRVMUJ5YjNCbGNuUnBaWE5iSjIxcGJsZHBaSFJvSjEwN1hHNGdJRzFwYmtobGFXZG9kRDg2SUVOVFUxQnliM0JsY25ScFpYTmJKMjFwYmtobGFXZG9kQ2RkTzF4dUlDQnRZWGhYYVdSMGFEODZJRU5UVTFCeWIzQmxjblJwWlhOYkoyMWhlRmRwWkhSb0oxMDdYRzRnSUcxaGVFaGxhV2RvZEQ4NklFTlRVMUJ5YjNCbGNuUnBaWE5iSjIxaGVFaGxhV2RvZENkZE8xeHVJQ0I0VTJsNmFXNW5Qem9nSjJacGJHd25JSHdnSjJOdmJuUmxiblFuTzF4dUlDQjVVMmw2YVc1blB6b2dKMlpwYkd3bklId2dKMk52Ym5SbGJuUW5PMXh1SUNBdktpcGNiaUFnSUNvZ1ZISjFaU0IzYUdWdUlIUm9aU0JwZEdWdElITm9iM1ZzWkNCeVpXNWtaWEpsWkNCaWRYUWdibTkwSUhacGMybGliR1V1WEc0Z0lDQXFJRlZ6WldaMWJDQm1iM0lnWTI5dVpHbDBhVzl1WVd3Z1pHbHpjR3hoZVNCdlppQnNZWGx2ZFhRZ2FYUmxiWE5jYmlBZ0lDb3ZYRzRnSUdselNHbGtaR1Z1UHpvZ1ltOXZiR1ZoYmp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVTJWMElHUnBjbVZqZEdsdmJpQm1iM0lnYzIxaGJHeGxjaUJ6WTNKbFpXNXpMaUJVYUdseklHUmxabUYxYkhSeklIUnZJR052YkhWdGJpNWNiaUFnSUNvZ1ZHaHBjeUJsY1hWaGJITWdiV1ZrYVdFZ2NYVmxjbmtnZEdobGJXVXVZbkpsWVd0d2IybHVkSE11Wkc5M2JpZ25iV1FuS1Z4dUlDQWdLaTljYmlBZ2JXUS9PaUJUWTJWdVpVWnNaWGhKZEdWdFVHeGhZMlZ0Wlc1ME8xeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUZOalpXNWxSbXhsZUVsMFpXMVRkR0YwWlNCbGVIUmxibVJ6SUZOalpXNWxSbXhsZUVsMFpXMVFiR0ZqWlcxbGJuUXNJRk5qWlc1bFQySnFaV04wVTNSaGRHVWdlMXh1SUNCaWIyUjVPaUJUWTJWdVpVOWlhbVZqZENCOElIVnVaR1ZtYVc1bFpEdGNibjFjYmx4dWFXNTBaWEptWVdObElGTmpaVzVsUm14bGVFbDBaVzFTWlc1a1pYSlFjbTl3Y3p4VVBpQmxlSFJsYm1SeklGTmpaVzVsUTI5dGNHOXVaVzUwVUhKdmNITThWRDRnZTF4dUlDQndZWEpsYm5SVGRHRjBaVDg2SUZOalpXNWxSbXhsZUVsMFpXMVFiR0ZqWlcxbGJuUTdYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJUWTJWdVpVWnNaWGhKZEdWdElHVjRkR1Z1WkhNZ1UyTmxibVZQWW1wbFkzUkNZWE5sUEZOalpXNWxSbXhsZUVsMFpXMVRkR0YwWlQ0Z2UxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklFTnZiWEJ2Ym1WdWRDQTlJRk5qWlc1bFJteGxlRWwwWlcxU1pXNWtaWEpsY2p0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnVTJObGJtVkdiR1Y0U1hSbGJWSmxibVJsY21WeUtIc2diVzlrWld3c0lIQmhjbVZ1ZEZOMFlYUmxJSDA2SUZOalpXNWxSbXhsZUVsMFpXMVNaVzVrWlhKUWNtOXdjenhUWTJWdVpVWnNaWGhKZEdWdFBpa2dlMXh1SUNCcFppQW9JWEJoY21WdWRGTjBZWFJsS1NCN1hHNGdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RUWTJWdVpVWnNaWGhKZEdWdElHMTFjM1FnWW1VZ1lTQmphR2xzWkNCdlppQlRZMlZ1WlVac1pYaE1ZWGx2ZFhRbktUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMElIc2dZbTlrZVN3Z2FYTklhV1JrWlc0Z2ZTQTlJRzF2WkdWc0xuVnpaVk4wWVhSbEtDazdYRzRnSUdOdmJuTjBJSE4wZVd4bElEMGdkWE5sVEdGNWIzVjBTWFJsYlZOMGVXeGxLRzF2WkdWc0xuTjBZWFJsTENCd1lYSmxiblJUZEdGMFpTazdYRzVjYmlBZ2FXWWdLQ0ZpYjJSNUlIeDhJR2x6U0dsa1pHVnVLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhrYVhZZ1kyeGhjM05PWVcxbFBYdHpkSGxzWlgwK1hHNGdJQ0FnSUNBOFltOWtlUzVEYjIxd2IyNWxiblFnYlc5a1pXdzllMkp2WkhsOUlDOCtYRzRnSUNBZ1BDOWthWFkrWEc0Z0lDazdYRzU5WEc1bWRXNWpkR2x2YmlCaGNIQnNlVWwwWlcxVGRIbHNaWE1vYzNSNWJHVTZJRU5UVTA5aWFtVmpkQ3dnYzNSaGRHVTZJRk5qWlc1bFJteGxlRWwwWlcxUWJHRmpaVzFsYm5Rc0lIQmhjbVZ1ZEZOMFlYUmxPaUJUWTJWdVpVWnNaWGhKZEdWdFVHeGhZMlZ0Wlc1MEtTQjdYRzRnSUdOdmJuTjBJSEJoY21WdWRFUnBjbVZqZEdsdmJpQTlJSEJoY21WdWRGTjBZWFJsTG1ScGNtVmpkR2x2YmlBL1B5QW5jbTkzSnp0Y2JpQWdZMjl1YzNRZ2V5QjRVMmw2YVc1bklEMGdKMlpwYkd3bkxDQjVVMmw2YVc1bklEMGdKMlpwYkd3bklIMGdQU0J6ZEdGMFpUdGNibHh1SUNCemRIbHNaUzVrYVhOd2JHRjVJRDBnSjJac1pYZ25PMXh1SUNCemRIbHNaUzV3YjNOcGRHbHZiaUE5SUNkeVpXeGhkR2wyWlNjN1hHNGdJSE4wZVd4bExtWnNaWGhFYVhKbFkzUnBiMjRnUFNCd1lYSmxiblJFYVhKbFkzUnBiMjQ3WEc1Y2JpQWdhV1lnS0hCaGNtVnVkRVJwY21WamRHbHZiaUE5UFQwZ0oyTnZiSFZ0YmljcElIdGNiaUFnSUNCcFppQW9jM1JoZEdVdWFHVnBaMmgwS1NCN1hHNGdJQ0FnSUNCemRIbHNaUzVvWldsbmFIUWdQU0J6ZEdGMFpTNW9aV2xuYUhRN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSE4wZVd4bExtWnNaWGhIY205M0lEMGdlVk5wZW1sdVp5QTlQVDBnSjJacGJHd25JRDhnTVNBNklEQTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSE4wWVhSbExuZHBaSFJvS1NCN1hHNGdJQ0FnSUNCemRIbHNaUzUzYVdSMGFDQTlJSE4wWVhSbExuZHBaSFJvTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnpkSGxzWlM1aGJHbG5ibE5sYkdZZ1BTQjRVMmw2YVc1bklEMDlQU0FuWm1sc2JDY2dQeUFuYzNSeVpYUmphQ2NnT2lBblpteGxlQzF6ZEdGeWRDYzdYRzRnSUNBZ2ZWeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHbG1JQ2h6ZEdGMFpTNW9aV2xuYUhRcElIdGNiaUFnSUNBZ0lITjBlV3hsTG1obGFXZG9kQ0E5SUhOMFlYUmxMbWhsYVdkb2REdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYzNSNWJHVXVZV3hwWjI1VFpXeG1JRDBnZVZOcGVtbHVaeUE5UFQwZ0oyWnBiR3duSUQ4Z0ozTjBjbVYwWTJnbklEb2dKMlpzWlhndGMzUmhjblFuTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoemRHRjBaUzUzYVdSMGFDa2dlMXh1SUNBZ0lDQWdjM1I1YkdVdWQybGtkR2dnUFNCemRHRjBaUzUzYVdSMGFEdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYzNSNWJHVXVabXhsZUVkeWIzY2dQU0I0VTJsNmFXNW5JRDA5UFNBblptbHNiQ2NnUHlBeElEb2dNRHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J6ZEhsc1pTNXRhVzVYYVdSMGFDQTlJSE4wWVhSbExtMXBibGRwWkhSb08xeHVJQ0J6ZEhsc1pTNXRZWGhYYVdSMGFDQTlJSE4wWVhSbExtMWhlRmRwWkhSb08xeHVJQ0J6ZEhsc1pTNXRZWGhJWldsbmFIUWdQU0J6ZEdGMFpTNXRZWGhJWldsbmFIUTdYRzVjYmlBZ0x5OGdSbTl5SUhKbGMzQnZibk5wZG1VZ2JHRjViM1YwY3lCMGJ5QjNiM0pySUhkbElHUmxabUYxYkhRZ2RYTmxJSFJvWlNCdGFXNUlaV2xuYUhRZ2IzSWdhR1ZwWjJoMElHOW1JSFJvWlNCd1lYSmxiblJjYmlBZ2MzUjViR1V1YldsdVNHVnBaMmgwSUQwZ2MzUmhkR1V1YldsdVNHVnBaMmgwSUQ4L0lIQmhjbVZ1ZEZOMFlYUmxMbTFwYmtobGFXZG9kRHRjYmlBZ2MzUjViR1V1YUdWcFoyaDBJRDBnYzNSaGRHVXVhR1ZwWjJoMElEOC9JSEJoY21WdWRGTjBZWFJsTG1obGFXZG9kRHRjYmx4dUlDQnlaWFIxY200Z2MzUjViR1U3WEc1OVhHNWNibVoxYm1OMGFXOXVJSFZ6WlV4aGVXOTFkRWwwWlcxVGRIbHNaU2h6ZEdGMFpUb2dVMk5sYm1WR2JHVjRTWFJsYlZOMFlYUmxMQ0J3WVhKbGJuUlRkR0YwWlRvZ1UyTmxibVZHYkdWNFNYUmxiVkJzWVdObGJXVnVkQ2tnZTF4dUlDQnlaWFIxY200Z2RYTmxUV1Z0Ynlnb0tTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2RHaGxiV1VnUFNCamIyNW1hV2N1ZEdobGJXVXlPMXh1SUNBZ0lHTnZibk4wSUhOMGVXeGxJRDBnWVhCd2JIbEpkR1Z0VTNSNWJHVnpLSHQ5TENCemRHRjBaU3dnY0dGeVpXNTBVM1JoZEdVcE8xeHVYRzRnSUNBZ0x5OGdWVzV6WlhRZ2JXRjRWMmxrZEdnZ1ptOXlJSE50WVd4c0lITmpjbVZsYm5NZ1lua2daR1ZtWVhWc2RGeHVJQ0FnSUhOMGVXeGxXM1JvWlcxbExtSnlaV0ZyY0c5cGJuUnpMbVJ2ZDI0b0oyMWtKeWxkSUQwZ2UxeHVJQ0FnSUNBZ2JXRjRWMmxrZEdnNklITjBZWFJsTG0xa1B5NXRZWGhYYVdSMGFDQS9QeUFuZFc1elpYUW5MRnh1SUNBZ0lDQWdiV0Y0U0dWcFoyaDBPaUJ6ZEdGMFpTNXRaRDh1YldGNFNHVnBaMmgwSUQ4L0lDZDFibk5sZENjc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SUhOMFlYUmxMbTFrUHk1b1pXbG5hSFFnUHo4Z2NHRnlaVzUwVTNSaGRHVXViV1EvTG1obGFXZG9kQ3hjYmlBZ0lDQWdJSGRwWkhSb09pQnpkR0YwWlM1dFpEOHVkMmxrZEdnZ1B6OGdjR0Z5Wlc1MFUzUmhkR1V1YldRL0xuZHBaSFJvTEZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdZM056S0hOMGVXeGxLVHRjYmlBZ2ZTd2dXM04wWVhSbExDQndZWEpsYm5SVGRHRjBaVjBwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUIxYzJWTVlYbHZkWFJUZEhsc1pTaHpkR0YwWlRvZ1UyTmxibVZHYkdWNFRHRjViM1YwVTNSaGRHVXNJSEJoY21WdWRGTjBZWFJsUHpvZ1UyTmxibVZHYkdWNFNYUmxiVkJzWVdObGJXVnVkQ2tnZTF4dUlDQnlaWFIxY200Z2RYTmxUV1Z0Ynlnb0tTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmthWEpsWTNScGIyNGdQU0FuY205M0p5d2dkM0poY0NCOUlEMGdjM1JoZEdVN1hHNGdJQ0FnTHk4Z2IyNXNlU0J1WldWa0lHSnlaV0ZyY0c5cGJuUnpJSE52SUdGalkyVnpjMmx1WnlCMGFHVnRaU0JtY205dElHTnZibVpwWnlCcGJuTjBaV0ZrSUc5bUlHTnZiblJsZUhRZ2FYTWdiMnRjYmlBZ0lDQmpiMjV6ZENCMGFHVnRaU0E5SUdOdmJtWnBaeTUwYUdWdFpUSTdYRzVjYmlBZ0lDQmpiMjV6ZENCemRIbHNaVG9nUTFOVFQySnFaV04wSUQwZ2UzMDdYRzVjYmlBZ0lDQnBaaUFvY0dGeVpXNTBVM1JoZEdVcElIdGNiaUFnSUNBZ0lHRndjR3g1U1hSbGJWTjBlV3hsY3loemRIbHNaU3dnYzNSaGRHVXNJSEJoY21WdWRGTjBZWFJsS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjM1I1YkdVdVpHbHpjR3hoZVNBOUlDZG1iR1Y0Snp0Y2JpQWdJQ0FnSUhOMGVXeGxMbVpzWlhoSGNtOTNJRDBnTVR0Y2JpQWdJQ0FnSUhOMGVXeGxMbTFwYmxkcFpIUm9JRDBnYzNSaGRHVXViV2x1VjJsa2RHZzdYRzRnSUNBZ0lDQnpkSGxzWlM1dGFXNUlaV2xuYUhRZ1BTQnpkR0YwWlM1dGFXNUlaV2xuYUhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYzNSNWJHVXVabXhsZUVScGNtVmpkR2x2YmlBOUlHUnBjbVZqZEdsdmJqdGNiaUFnSUNCemRIbHNaUzVuWVhBZ1BTQW5PSEI0Snp0Y2JpQWdJQ0J6ZEhsc1pTNW1iR1Y0VjNKaGNDQTlJSGR5WVhBZ2ZId2dKMjV2ZDNKaGNDYzdYRzRnSUNBZ2MzUjViR1V1WVd4cFoyNURiMjUwWlc1MElEMGdKMkpoYzJWc2FXNWxKenRjYmlBZ0lDQnpkSGxzWlM1dGFXNVhhV1IwYUNBOUlITjBlV3hsTG0xcGJsZHBaSFJvSUh4OElEQTdYRzRnSUNBZ2MzUjViR1V1YldsdVNHVnBaMmgwSUQwZ2MzUjViR1V1YldsdVNHVnBaMmgwSUh4OElEQTdYRzVjYmlBZ0lDQnpkSGxzWlZ0MGFHVnRaUzVpY21WaGEzQnZhVzUwY3k1a2IzZHVLQ2R0WkNjcFhTQTlJSHRjYmlBZ0lDQWdJR1pzWlhoRWFYSmxZM1JwYjI0NklITjBZWFJsTG0xa1B5NWthWEpsWTNScGIyNGdQejhnSjJOdmJIVnRiaWNzWEc0Z0lDQWdJQ0J0WVhoWGFXUjBhRG9nYzNSaGRHVXViV1EvTG0xaGVGZHBaSFJvSUQ4L0lDZDFibk5sZENjc1hHNGdJQ0FnSUNCdFlYaElaV2xuYUhRNklITjBZWFJsTG0xa1B5NXRZWGhJWldsbmFIUWdQejhnSjNWdWMyVjBKeXhjYmlBZ0lDQWdJR2hsYVdkb2REb2djM1JoZEdVdWJXUS9MbWhsYVdkb2RDQS9QeUFuZFc1elpYUW5MRnh1SUNBZ0lDQWdkMmxrZEdnNklITjBZWFJsTG0xa1B5NTNhV1IwYUNBL1B5QW5kVzV6WlhRbkxGeHVJQ0FnSUgwN1hHNWNiaUFnSUNCeVpYUjFjbTRnWTNOektITjBlV3hsS1R0Y2JpQWdmU3dnVzNCaGNtVnVkRk4wWVhSbExDQnpkR0YwWlYwcE8xeHVmVnh1SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN08wRkJaVThzVFVGQlRTeDNRa0ZCZDBJc1pVRkJOa1FzUTBGQlFUdEJRVUZCTEVWQlIzcEdMR1ZCUVd0Q0xFZEJRVUU3UVVGRGRrSXNTVUZCUVN4SlFVRkJMRU5CUVVzc1VVRkJVeXhEUVVGQk8wRkJRVUVzVFVGRFdpeFRRVUZYTEVWQlFVRXNTVUZCUVN4RFFVRkxMRXRCUVUwc1EwRkJRU3hUUVVGQkxFdEJRV01zVVVGQlVTeFJRVUZYTEVkQlFVRXNTMEZCUVR0QlFVRkJMRXRCUTNoRUxFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEwZzdRVUZCUVN4RlFVVlBMRmRCUVhWQ0xFZEJRVUU3UVVGRE5VSXNTVUZCVHl4UFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVGQkxFZEJRMVE3UVVGRFJpeERRVUZCTzBGQldtRXNaVUZCUVN4RFFVTkhMRk5CUVZrc1IwRkJRU3gxUWtGQlFTeERRVUZCTzBGQllUVkNMRk5CUVZNc2RVSkJRWGRDTEVOQlFVRXNSVUZCUlN4TFFVRlBMRVZCUVVFc1YwRkJRU3hGUVVFd1JDeEZRVUZCTzBGQlEyeEhMRVZCUVVFc1RVRkJUU3hGUVVGRkxGRkJRVUVzUlVGQlZTeFJRVUZUTEVWQlFVRXNSMEZCU1N4TlFVRk5MRkZCUVZNc1JVRkJRU3hEUVVGQk8wRkJRemxETEVWQlFVRXNUVUZCVFN4TFFVRlJMRWRCUVVFc1kwRkJRU3hEUVVGbExFdEJRVTBzUTBGQlFTeExRVUZCTEVWQlFVOHNWMEZCVnl4RFFVRkJMRU5CUVVFN1FVRkZja1FzUlVGQlFTeEpRVUZKTEZGQlFWVXNSVUZCUVR0QlFVTmFMRWxCUVU4c1QwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5VTzBGQlJVRXNSVUZCUVN4MVFrRkRSeXhMUVVGQkxFTkJRVUVzWVVGQlFTeERRVUZCTEV0QlFVRXNSVUZCUVR0QlFVRkJMRWxCUVVrc1UwRkJWeXhGUVVGQkxFdEJRVUU3UVVGQlFTeEhRVU5pTEVWQlFVRXNVVUZCUVN4RFFVRlRMRWRCUVVrc1EwRkJRU3hEUVVGRExFbEJRVk1zUzBGQlFUdEJRVU4wUWl4SlFVRkJMRTFCUVUwc1dVRkJXU3hKUVVGTExFTkJRVUVzVTBGQlFTeERRVUZCTzBGQlEzWkNMRWxCUVVFc2RVSkJRVkVzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4VFFVRkJMRVZCUVVFN1FVRkJRU3hOUVVGVkxFZEJRVUVzUlVGQlN5eExRVUZMTEV0QlFVMHNRMEZCUVN4SFFVRkJPMEZCUVVFc1RVRkJTeXhMUVVGUExFVkJRVUVzU1VGQlFUdEJRVUZCTEUxQlFVMHNZVUZCWVN4TFFVRk5MRU5CUVVFc1MwRkJRVHRCUVVGQkxFdEJRVThzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZETDBVc1EwRkRTQ3hEUVVGQkxFTkJRVUU3UVVGRlNpeERRVUZCTzBGQmEwTlBMRTFCUVUwc2MwSkJRWE5DTEdWQlFXOURMRU5CUVVFN1FVRkZka1VzUTBGQlFUdEJRVVpoTEdGQlFVRXNRMEZEUnl4VFFVRlpMRWRCUVVFc2NVSkJRVUVzUTBGQlFUdEJRVWMxUWl4VFFVRlRMSEZDUVVGelFpeERRVUZCTEVWQlFVVXNTMEZCVHl4RlFVRkJMRmRCUVVFc1JVRkJkMFFzUlVGQlFUdEJRVU01Uml4RlFVRkJMRWxCUVVrc1EwRkJReXhYUVVGaExFVkJRVUU3UVVGRGFFSXNTVUZCVFN4TlFVRkJMRWxCUVVrc1RVRkJUU3hyUkVGQmEwUXNRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRjRVU3UVVGRlFTeEZRVUZCTEUxQlFVMHNSVUZCUlN4SlFVRkJMRVZCUVUwc1VVRkJVeXhGUVVGQkxFZEJRVWtzVFVGQlRTeFJRVUZUTEVWQlFVRXNRMEZCUVR0QlFVTXhReXhGUVVGQkxFMUJRVTBzUzBGQlVTeEhRVUZCTEd0Q1FVRkJMRU5CUVcxQ0xFdEJRVTBzUTBGQlFTeExRVUZCTEVWQlFVOHNWMEZCVnl4RFFVRkJMRU5CUVVFN1FVRkZla1FzUlVGQlNTeEpRVUZCTEVOQlFVTXNVVUZCVVN4UlFVRlZMRVZCUVVFN1FVRkRja0lzU1VGQlR5eFBRVUZCTEVsQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTFRN1FVRkZRU3hGUVVGQkxIVkNRVU5ITEV0QlFVRXNRMEZCUVN4aFFVRkJMRU5CUVVFc1MwRkJRU3hGUVVGQk8wRkJRVUVzU1VGQlNTeFRRVUZYTEVWQlFVRXNTMEZCUVR0QlFVRkJMRWRCUTJRc2EwSkJRVUVzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUXl4TFFVRkxMRk5CUVV3c1JVRkJRVHRCUVVGQkxFbEJRV1VzUzBGQlR5eEZRVUZCTEVsQlFVRTdRVUZCUVN4SFFVRk5MRU5CUXk5Q0xFTkJRVUVzUTBGQlFUdEJRVVZLTEVOQlFVRTdRVUZEUVN4VFFVRlRMR1ZCUVVFc1EwRkJaMElzUzBGQmEwSXNSVUZCUVN4TFFVRkJMRVZCUVN0Q0xGZEJRWEZETEVWQlFVRTdRVUZ5Unk5SExFVkJRVUVzU1VGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1EwRkJRVHRCUVhOSFJTeEZRVUZOTEUxQlFVRXNaVUZCUVN4SFFVRkJMRU5CUVd0Q0xFVkJRVmtzUjBGQlFTeFhRVUZCTEVOQlFVRXNVMEZCUVN4TFFVRmFMRWxCUVhsQ0xFZEJRVUVzUlVGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVR0QlFVTnFSQ3hGUVVGQkxFMUJRVTBzUlVGQlJTeFBRVUZCTEVkQlFWVXNUVUZCVVN4RlFVRkJMRTlCUVVFc1IwRkJWU3hSUVVGWExFZEJRVUVzUzBGQlFTeERRVUZCTzBGQlJTOURMRVZCUVVFc1MwRkJRU3hEUVVGTkxFOUJRVlVzUjBGQlFTeE5RVUZCTEVOQlFVRTdRVUZEYUVJc1JVRkJRU3hMUVVGQkxFTkJRVTBzVVVGQlZ5eEhRVUZCTEZWQlFVRXNRMEZCUVR0QlFVTnFRaXhGUVVGQkxFdEJRVUVzUTBGQlRTeGhRVUZuUWl4SFFVRkJMR1ZCUVVFc1EwRkJRVHRCUVVWMFFpeEZRVUZCTEVsQlFVa3NiMEpCUVc5Q0xGRkJRVlVzUlVGQlFUdEJRVU5vUXl4SlFVRkJMRWxCUVVrc1RVRkJUU3hOUVVGUkxFVkJRVUU3UVVGRGFFSXNUVUZCUVN4TFFVRkJMRU5CUVUwc1UwRkJVeXhMUVVGTkxFTkJRVUVzVFVGQlFTeERRVUZCTzBGQlFVRXNTMEZEYUVJc1RVRkJRVHRCUVVOTUxFMUJRVTBzUzBGQlFTeERRVUZCTEZGQlFVRXNSMEZCVnl4UFFVRlpMRXRCUVVFc1RVRkJRU3hIUVVGVExFTkJRVWtzUjBGQlFTeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTTFRenRCUVVWQkxFbEJRVUVzU1VGQlNTeE5RVUZOTEV0QlFVOHNSVUZCUVR0QlFVTm1MRTFCUVVFc1MwRkJRU3hEUVVGTkxGRkJRVkVzUzBGQlRTeERRVUZCTEV0QlFVRXNRMEZCUVR0QlFVRkJMRXRCUTJZc1RVRkJRVHRCUVVOTUxFMUJRVTBzUzBGQlFTeERRVUZCTEZOQlFVRXNSMEZCV1N4UFFVRlpMRXRCUVVFc1RVRkJRU3hIUVVGVExGTkJRVmtzUjBGQlFTeFpRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTnlSRHRCUVVGQkxFZEJRMHNzVFVGQlFUdEJRVU5NTEVsQlFVRXNTVUZCU1N4TlFVRk5MRTFCUVZFc1JVRkJRVHRCUVVOb1FpeE5RVUZCTEV0QlFVRXNRMEZCVFN4VFFVRlRMRXRCUVUwc1EwRkJRU3hOUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5vUWl4TlFVRkJPMEZCUTB3c1RVRkJUU3hMUVVGQkxFTkJRVUVzVTBGQlFTeEhRVUZaTEU5QlFWa3NTMEZCUVN4TlFVRkJMRWRCUVZNc1UwRkJXU3hIUVVGQkxGbEJRVUVzUTBGQlFUdEJRVUZCTEV0QlEzSkVPMEZCUlVFc1NVRkJRU3hKUVVGSkxFMUJRVTBzUzBGQlR5eEZRVUZCTzBGQlEyWXNUVUZCUVN4TFFVRkJMRU5CUVUwc1VVRkJVU3hMUVVGTkxFTkJRVUVzUzBGQlFTeERRVUZCTzBGQlFVRXNTMEZEWml4TlFVRkJPMEZCUTB3c1RVRkJUU3hMUVVGQkxFTkJRVUVzVVVGQlFTeEhRVUZYTEU5QlFWa3NTMEZCUVN4TlFVRkJMRWRCUVZNc1EwRkJTU3hIUVVGQkxFTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlF6VkRPMEZCUVVFc1IwRkRSanRCUVVWQkxFVkJRVUVzUzBGQlFTeERRVUZOTEZkQlFWY3NTMEZCVFN4RFFVRkJMRkZCUVVFc1EwRkJRVHRCUVVOMlFpeEZRVUZCTEV0QlFVRXNRMEZCVFN4WFFVRlhMRXRCUVUwc1EwRkJRU3hSUVVGQkxFTkJRVUU3UVVGRGRrSXNSVUZCUVN4TFFVRkJMRU5CUVUwc1dVRkJXU3hMUVVGTkxFTkJRVUVzVTBGQlFTeERRVUZCTzBGQlIzaENMRVZCUVVFc1MwRkJRU3hEUVVGTkxGTkJRVmtzUjBGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVUwc1UwRkJUaXhMUVVGQkxFbEJRVUVzUjBGQlFTeEZRVUZCTEVkQlFXMUNMRmRCUVZrc1EwRkJRU3hUUVVGQkxFTkJRVUU3UVVGRGFrUXNSVUZCUVN4TFFVRkJMRU5CUVUwc1RVRkJVeXhIUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEV0QlFVRXNRMEZCVFN4TlFVRk9MRXRCUVVFc1NVRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlowSXNWMEZCV1N4RFFVRkJMRTFCUVVFc1EwRkJRVHRCUVVVelF5eEZRVUZQTEU5QlFVRXNTMEZCUVN4RFFVRkJPMEZCUTFRc1EwRkJRVHRCUVVWQkxGTkJRVk1zYTBKQlFVRXNRMEZCYlVJc1QwRkJNa0lzVjBGQmNVTXNSVUZCUVR0QlFVTXhSaXhGUVVGQkxFOUJRVThzVVVGQlVTeE5RVUZOTzBGQmJrcDJRaXhKUVVGQkxFbEJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUlVGQlFTeERRVUZCTzBGQmIwcEpMRWxCUVVFc1RVRkJUU3hSUVVGUkxFMUJRVThzUTBGQlFTeE5RVUZCTEVOQlFVRTdRVUZEY2tJc1NVRkJRU3hOUVVGTkxFdEJRVkVzUjBGQlFTeGxRVUZCTEVOQlFXZENMRVZCUVVNc1JVRkJSeXhQUVVGUExGZEJRVmNzUTBGQlFTeERRVUZCTzBGQlIzQkVMRWxCUVVFc1MwRkJRU3hEUVVGTkxFdEJRVTBzUTBGQlFTeFhRVUZCTEVOQlFWa3NTVUZCU3l4RFFVRkJMRWxCUVVrc1EwRkJTeXhEUVVGQkxFZEJRVUU3UVVGQlFTeE5RVU53UXl4UlFVRlZMRVZCUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRk5MRVZCUVU0c1MwRkJRU3hKUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRlZMR0ZCUVZZc1NVRkJjMElzUjBGQlFTeEZRVUZCTEVkQlFVRXNUMEZCUVR0QlFVRkJMRTFCUTJoRExGTkJRVmNzUlVGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hMUVVGQkxFTkJRVTBzUlVGQlRpeExRVUZCTEVsQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVlVzWTBGQlZpeEpRVUYxUWl4SFFVRkJMRVZCUVVFc1IwRkJRU3hQUVVGQk8wRkJRVUVzVFVGRGJFTXNUVUZCUVN4RlFVRkJMRU5CUVZFc2FVSkJRVTBzUlVGQlRpeExRVUZCTEVsQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVlVzVjBGQlZpeEpRVUZ2UWl4SFFVRkJMRVZCUVVFc1IwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeFhRVUZCTEVOQlFWa3NUMEZCV2l4SlFVRm5RaXhIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUVN4TlFVRkJPMEZCUVVFc1RVRkROVU1zUzBGQlFTeEZRVUZCTEVOQlFVOHNhVUpCUVUwc1JVRkJUaXhMUVVGQkxFbEJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVZVc1ZVRkJWaXhKUVVGdFFpeEhRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hYUVVGQkxFTkJRVmtzVDBGQldpeEpRVUZuUWl4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlFTeExRVUZCTzBGQlFVRXNTMEZETlVNc1EwRkJRVHRCUVVWQkxFbEJRVUVzVDBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRaaXhGUVVGQkxFTkJRVU1zUzBGQlR5eEZRVUZCTEZkQlFWY3NRMEZCUXl4RFFVRkJMRU5CUVVFN1FVRkRla0lzUTBGQlFUdEJRVVZCTEZOQlFWTXNZMEZCUVN4RFFVRmxMRTlCUVRaQ0xGZEJRWE5ETEVWQlFVRTdRVUZEZWtZc1JVRkJRU3hQUVVGUExGRkJRVkVzVFVGQlRUdEJRWEJMZGtJc1NVRkJRU3hKUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUTBGQlFUdEJRWEZMU1N4SlFVRkJMRTFCUVUwc1JVRkJSU3hUUVVGQkxFZEJRVmtzUzBGQlR5eEZRVUZCTEVsQlFVRXNSVUZCVXl4SFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVWd1F5eEpRVUZCTEUxQlFVMHNVVUZCVVN4TlFVRlBMRU5CUVVFc1RVRkJRU3hEUVVGQk8wRkJSWEpDTEVsQlFVRXNUVUZCVFN4UlFVRnRRaXhGUVVGRExFTkJRVUU3UVVGRk1VSXNTVUZCUVN4SlFVRkpMRmRCUVdFc1JVRkJRVHRCUVVObUxFMUJRV2RDTEdWQlFVRXNRMEZCUVN4TFFVRkJMRVZCUVU4c1QwRkJUeXhYUVVGWExFTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlEzQkRMRTFCUVVFN1FVRkRUQ3hOUVVGQkxFdEJRVUVzUTBGQlRTeFBRVUZWTEVkQlFVRXNUVUZCUVN4RFFVRkJPMEZCUTJoQ0xFMUJRVUVzUzBGQlFTeERRVUZOTEZGQlFWY3NSMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkRha0lzVFVGQlFTeExRVUZCTEVOQlFVMHNWMEZCVnl4TFFVRk5MRU5CUVVFc1VVRkJRU3hEUVVGQk8wRkJRM1pDTEUxQlFVRXNTMEZCUVN4RFFVRk5MRmxCUVZrc1MwRkJUU3hEUVVGQkxGTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlF6RkNPMEZCUlVFc1NVRkJRU3hMUVVGQkxFTkJRVTBzWVVGQlowSXNSMEZCUVN4VFFVRkJMRU5CUVVFN1FVRkRkRUlzU1VGQlFTeExRVUZCTEVOQlFVMHNSMEZCVFN4SFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVOYUxFbEJRVUVzUzBGQlFTeERRVUZOTEZkQlFWY3NTVUZCVVN4SlFVRkJMRkZCUVVFc1EwRkJRVHRCUVVONlFpeEpRVUZCTEV0QlFVRXNRMEZCVFN4WlFVRmxMRWRCUVVFc1ZVRkJRU3hEUVVGQk8wRkJRM0pDTEVsQlFVMHNTMEZCUVN4RFFVRkJMRkZCUVVFc1IwRkJWeXhOUVVGTkxGRkJRVmtzU1VGQlFTeERRVUZCTEVOQlFVRTdRVUZEYmtNc1NVRkJUU3hMUVVGQkxFTkJRVUVzVTBGQlFTeEhRVUZaTEUxQlFVMHNVMEZCWVN4SlFVRkJMRU5CUVVFc1EwRkJRVHRCUVVWeVF5eEpRVUZCTEV0QlFVRXNRMEZCVFN4TFFVRk5MRU5CUVVFc1YwRkJRU3hEUVVGWkxFbEJRVXNzUTBGQlFTeEpRVUZKTEVOQlFVc3NRMEZCUVN4SFFVRkJPMEZCUVVFc1RVRkRjRU1zWVVGQlpTeEZRVUZCTEVOQlFVRXNSVUZCUVN4SFFVRkJMRU5CUVVFc1JVRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlRTeEZRVUZPTEV0QlFVRXNTVUZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlZTeGpRVUZXTEVsQlFYVkNMRWRCUVVFc1JVRkJRU3hIUVVGQkxGRkJRVUU3UVVGQlFTeE5RVU4wUXl4UlFVRlZMRVZCUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRk5MRVZCUVU0c1MwRkJRU3hKUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRlZMR0ZCUVZZc1NVRkJjMElzUjBGQlFTeEZRVUZCTEVkQlFVRXNUMEZCUVR0QlFVRkJMRTFCUTJoRExGTkJRVmNzUlVGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hMUVVGQkxFTkJRVTBzUlVGQlRpeExRVUZCTEVsQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVlVzWTBGQlZpeEpRVUYxUWl4SFFVRkJMRVZCUVVFc1IwRkJRU3hQUVVGQk8wRkJRVUVzVFVGRGJFTXNUVUZCVVN4RlFVRkJMRU5CUVVFc1JVRkJRU3hIUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEV0QlFVRXNRMEZCVFN4RlFVRk9MRXRCUVVFc1NVRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCVlN4WFFVRldMRWxCUVc5Q0xFZEJRVUVzUlVGQlFTeEhRVUZCTEU5QlFVRTdRVUZCUVN4TlFVTTFRaXhMUVVGUExFVkJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGTkxFVkJRVTRzUzBGQlFTeEpRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGVkxGVkJRVllzU1VGQmJVSXNSMEZCUVN4RlFVRkJMRWRCUVVFc1QwRkJRVHRCUVVGQkxFdEJRelZDTEVOQlFVRTdRVUZGUVN4SlFVRkJMRTlCUVU4c1NVRkJTU3hMUVVGTExFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEyWXNSVUZCUVN4RFFVRkRMRmRCUVdFc1JVRkJRU3hMUVVGTExFTkJRVU1zUTBGQlFTeERRVUZCTzBGQlEzcENPenM3T3lKOVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZU8sTUFBTSx3QkFBd0IsZUFBNkQsQ0FBQTtFQUd6RixlQUFrQixHQUFBO0FBQ3ZCLElBQUEsSUFBQSxDQUFLLFFBQVMsQ0FBQTtBQUNaLE1BQUEsU0FBQSxFQUFXLElBQUssQ0FBQSxLQUFB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
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { SceneObjectBase } from '../../../core/SceneObjectBase.js';
3
+ import { SceneGridLayout } from './SceneGridLayout.js';
4
+ import { SceneGridRow } from './SceneGridRow.js';
5
+
6
+ class SceneGridItem extends SceneObjectBase {
7
+ }
8
+ SceneGridItem.Component = SceneGridItemRenderer;
9
+ function SceneGridItemRenderer({ model }) {
10
+ const { body } = model.useState();
11
+ const parent = model.parent;
12
+ if (parent && !isSceneGridLayout(parent) && !isSceneGridRow(parent)) {
13
+ throw new Error("SceneGridItem must be a child of SceneGridLayout or SceneGridRow");
14
+ }
15
+ if (!body) {
16
+ return null;
17
+ }
18
+ return /* @__PURE__ */ React.createElement(body.Component, {
19
+ model: body
20
+ });
21
+ }
22
+ function isSceneGridRow(child) {
23
+ return child instanceof SceneGridRow;
24
+ }
25
+ function isSceneGridLayout(child) {
26
+ return child instanceof SceneGridLayout;
27
+ }
28
+
29
+ export { SceneGridItem, isSceneGridRow };
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVHcmlkSXRlbS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9sYXlvdXQvZ3JpZC9TY2VuZUdyaWRJdGVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL1NjZW5lT2JqZWN0QmFzZS5qcyc7XG5pbXBvcnQgeyBTY2VuZUdyaWRMYXlvdXQgfSBmcm9tICcuL1NjZW5lR3JpZExheW91dC5qcyc7XG5pbXBvcnQgeyBTY2VuZUdyaWRSb3cgfSBmcm9tICcuL1NjZW5lR3JpZFJvdy5qcyc7XG5cbmNsYXNzIFNjZW5lR3JpZEl0ZW0gZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2Uge1xufVxuU2NlbmVHcmlkSXRlbS5Db21wb25lbnQgPSBTY2VuZUdyaWRJdGVtUmVuZGVyZXI7XG5mdW5jdGlvbiBTY2VuZUdyaWRJdGVtUmVuZGVyZXIoeyBtb2RlbCB9KSB7XG4gIGNvbnN0IHsgYm9keSB9ID0gbW9kZWwudXNlU3RhdGUoKTtcbiAgY29uc3QgcGFyZW50ID0gbW9kZWwucGFyZW50O1xuICBpZiAocGFyZW50ICYmICFpc1NjZW5lR3JpZExheW91dChwYXJlbnQpICYmICFpc1NjZW5lR3JpZFJvdyhwYXJlbnQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU2NlbmVHcmlkSXRlbSBtdXN0IGJlIGEgY2hpbGQgb2YgU2NlbmVHcmlkTGF5b3V0IG9yIFNjZW5lR3JpZFJvd1wiKTtcbiAgfVxuICBpZiAoIWJvZHkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoYm9keS5Db21wb25lbnQsIHtcbiAgICBtb2RlbDogYm9keVxuICB9KTtcbn1cbmZ1bmN0aW9uIGlzU2NlbmVHcmlkUm93KGNoaWxkKSB7XG4gIHJldHVybiBjaGlsZCBpbnN0YW5jZW9mIFNjZW5lR3JpZFJvdztcbn1cbmZ1bmN0aW9uIGlzU2NlbmVHcmlkTGF5b3V0KGNoaWxkKSB7XG4gIHJldHVybiBjaGlsZCBpbnN0YW5jZW9mIFNjZW5lR3JpZExheW91dDtcbn1cblxuZXhwb3J0IHsgU2NlbmVHcmlkSXRlbSwgaXNTY2VuZUdyaWRSb3cgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVTJObGJtVkhjbWxrU1hSbGJTNXFjeUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZMaTR2YzNKakwyTnZiWEJ2Ym1WdWRITXZiR0Y1YjNWMEwyZHlhV1F2VTJObGJtVkhjbWxrU1hSbGJTNTBjM2dpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZKbFlXTjBJR1p5YjIwZ0ozSmxZV04wSnp0Y2JtbHRjRzl5ZENCN0lGTmpaVzVsVDJKcVpXTjBRbUZ6WlNCOUlHWnliMjBnSnk0dUx5NHVMeTR1TDJOdmNtVXZVMk5sYm1WUFltcGxZM1JDWVhObEp6dGNibWx0Y0c5eWRDQjdJRk5qWlc1bFQySnFaV04wTENCVFkyVnVaVU52YlhCdmJtVnVkRkJ5YjNCeklIMGdabkp2YlNBbkxpNHZMaTR2TGk0dlkyOXlaUzkwZVhCbGN5YzdYRzVwYlhCdmNuUWdleUJUWTJWdVpVZHlhV1JNWVhsdmRYUWdmU0JtY205dElDY3VMMU5qWlc1bFIzSnBaRXhoZVc5MWRDYzdYRzVwYlhCdmNuUWdleUJUWTJWdVpVZHlhV1JTYjNjZ2ZTQm1jbTl0SUNjdUwxTmpaVzVsUjNKcFpGSnZkeWM3WEc1cGJYQnZjblFnZXlCVFkyVnVaVWR5YVdSSmRHVnRVM1JoZEdWTWFXdGxMQ0JUWTJWdVpVZHlhV1JKZEdWdFRHbHJaU0I5SUdaeWIyMGdKeTR2ZEhsd1pYTW5PMXh1WEc1cGJuUmxjbVpoWTJVZ1UyTmxibVZIY21sa1NYUmxiVk4wWVhSbElHVjRkR1Z1WkhNZ1UyTmxibVZIY21sa1NYUmxiVk4wWVhSbFRHbHJaU0I3WEc0Z0lHSnZaSGs2SUZOalpXNWxUMkpxWldOMElId2dkVzVrWldacGJtVmtPMXh1ZlZ4dVpYaHdiM0owSUdOc1lYTnpJRk5qWlc1bFIzSnBaRWwwWlcwZ1pYaDBaVzVrY3lCVFkyVnVaVTlpYW1WamRFSmhjMlU4VTJObGJtVkhjbWxrU1hSbGJWTjBZWFJsUGlCcGJYQnNaVzFsYm5SeklGTmpaVzVsUjNKcFpFbDBaVzFNYVd0bElIdGNiaUFnYzNSaGRHbGpJRU52YlhCdmJtVnVkQ0E5SUZOalpXNWxSM0pwWkVsMFpXMVNaVzVrWlhKbGNqdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1UyTmxibVZIY21sa1NYUmxiVkpsYm1SbGNtVnlLSHNnYlc5a1pXd2dmVG9nVTJObGJtVkRiMjF3YjI1bGJuUlFjbTl3Y3p4VFkyVnVaVWR5YVdSSmRHVnRQaWtnZTF4dUlDQmpiMjV6ZENCN0lHSnZaSGtnZlNBOUlHMXZaR1ZzTG5WelpWTjBZWFJsS0NrN1hHNGdJR052Ym5OMElIQmhjbVZ1ZENBOUlHMXZaR1ZzTG5CaGNtVnVkRHRjYmx4dUlDQnBaaUFvY0dGeVpXNTBJQ1ltSUNGcGMxTmpaVzVsUjNKcFpFeGhlVzkxZENod1lYSmxiblFwSUNZbUlDRnBjMU5qWlc1bFIzSnBaRkp2ZHlod1lYSmxiblFwS1NCN1hHNGdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RUWTJWdVpVZHlhV1JKZEdWdElHMTFjM1FnWW1VZ1lTQmphR2xzWkNCdlppQlRZMlZ1WlVkeWFXUk1ZWGx2ZFhRZ2IzSWdVMk5sYm1WSGNtbGtVbTkzSnlrN1hHNGdJSDFjYmx4dUlDQnBaaUFvSVdKdlpIa3BJSHRjYmlBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUE4WW05a2VTNURiMjF3YjI1bGJuUWdiVzlrWld3OWUySnZaSGw5SUM4K08xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOVFkyVnVaVWR5YVdSU2IzY29ZMmhwYkdRNklGTmpaVzVsVDJKcVpXTjBLVG9nWTJocGJHUWdhWE1nVTJObGJtVkhjbWxrVW05M0lIdGNiaUFnY21WMGRYSnVJR05vYVd4a0lHbHVjM1JoYm1ObGIyWWdVMk5sYm1WSGNtbGtVbTkzTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJwYzFOalpXNWxSM0pwWkV4aGVXOTFkQ2hqYUdsc1pEb2dVMk5sYm1WUFltcGxZM1FwT2lCamFHbHNaQ0JwY3lCVFkyVnVaVWR5YVdSTVlYbHZkWFFnZTF4dUlDQnlaWFIxY200Z1kyaHBiR1FnYVc1emRHRnVZMlZ2WmlCVFkyVnVaVWR5YVdSTVlYbHZkWFE3WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3UVVGVlR5eE5RVUZOTEhOQ1FVRnpRaXhsUVVGcFJTeERRVUZCTzBGQlJYQkhMRU5CUVVFN1FVRkdZU3hoUVVGQkxFTkJRMG9zVTBGQldTeEhRVUZCTEhGQ1FVRkJMRU5CUVVFN1FVRkhja0lzVTBGQlV5eHhRa0ZCUVN4RFFVRnpRaXhGUVVGRkxFdEJRVUVzUlVGQk5rTXNSVUZCUVR0QlFVTTFSU3hGUVVGQkxFMUJRVTBzUlVGQlJTeEpRVUZCTEVWQlFWTXNSMEZCUVN4TFFVRkJMRU5CUVUwc1VVRkJVeXhGUVVGQkxFTkJRVUU3UVVGRGFFTXNSVUZCUVN4TlFVRk5MRk5CUVZNc1MwRkJUU3hEUVVGQkxFMUJRVUVzUTBGQlFUdEJRVVZ5UWl4RlFVRkpMRWxCUVVFc1RVRkJRU3hKUVVGVkxFTkJRVU1zYVVKQlFXdENMRU5CUVVFc1RVRkJUU3hMUVVGTExFTkJRVU1zWTBGQlFTeERRVUZsTEUxQlFVMHNRMEZCUnl4RlFVRkJPMEZCUTI1RkxFbEJRVTBzVFVGQlFTeEpRVUZKTEUxQlFVMHNhMFZCUVd0RkxFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEzQkdPMEZCUlVFc1JVRkJRU3hKUVVGSkxFTkJRVU1zU1VGQlRTeEZRVUZCTzBGQlExUXNTVUZCVHl4UFFVRkJMRWxCUVVFc1EwRkJRVHRCUVVGQkxFZEJRMVE3UVVGRlFTeEZRVUZQTEhWQ1FVRkJMRXRCUVVFc1EwRkJRU3hoUVVGQkxFTkJRVU1zUzBGQlN5eFRRVUZNTEVWQlFVRTdRVUZCUVN4SlFVRmxMRXRCUVU4c1JVRkJRU3hKUVVGQk8wRkJRVUVzUjBGQlRTeERRVUZCTEVOQlFVRTdRVUZEZEVNc1EwRkJRVHRCUVVWUExGTkJRVk1zWlVGQlpTeExRVUV5UXl4RlFVRkJPMEZCUTNoRkxFVkJRVUVzVDBGQlR5eExRVUZwUWl4WlFVRkJMRmxCUVVFc1EwRkJRVHRCUVVNeFFpeERRVUZCTzBGQlJVRXNVMEZCVXl4clFrRkJhMElzUzBGQk9FTXNSVUZCUVR0QlFVTjJSU3hGUVVGQkxFOUJRVThzUzBGQmFVSXNXVUZCUVN4bFFVRkJMRU5CUVVFN1FVRkRNVUk3T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVVPLE1BQU0sc0JBQXNCLGVBQWlFLENBQUE7QUFFcEcsQ0FBQTtBQUZhLGFBQUEsQ0FDSixTQUFZLEdBQUEscUJBQUEsQ0FBQTtBQUdyQixTQUFTLHFCQUFBLENBQXNCLEVBQUUsS0FBQSxFQUE2QyxFQUFBO0FBQzVFLEVBQUEsTUFBTSxFQUFFLElBQUEsRUFBUyxHQUFBLEtBQUEsQ0FBTSxRQUFTLEVBQUEsQ0FBQTtBQUNoQyxFQUFBLE1BQU0sU0FBUyxLQUFNLENBQUEsTUFBQSxDQUFBO0FBRWpCLEVBQUEsSUFBQSxNQUFBLElBQVUsQ0FBQyxpQkFBa0IsQ0FBQSxNQUFNLEtBQUssQ0FBQyxjQUFBLENBQWUsTUFBTSxDQUFHLEVBQUE7QUFDN0QsSUFBQSxNQUFBLElBQUksTUFBTSxrRUFBa0UsQ0FBQSxDQUFBO0FBQUEsR0FBQTtBQUdwRixFQUFBLElBQUksQ0FBQyxJQUFNLEVBQUE7QUFDRixJQUFBLE9BQUEsSUFBQSxDQUFBO0FBQUEsR0FBQTtBQUdGLEVBQUEsdUJBQUEsS0FBQSxDQUFBLGFBQUMsQ0FBQSxJQUFBLENBQUssU0FBTCxFQUFBO0lBQWUsS0FBTyxFQUFBLElBQUE7R0FBTSxDQUFBLENBQUE7QUFDdEMsQ0FBQTtBQUVPLFNBQVMsZUFBZSxLQUEyQyxFQUFBO0FBQ3hFLEVBQUEsT0FBTyxLQUFpQixZQUFBLFlBQUEsQ0FBQTtBQUMxQixDQUFBO0FBRUEsU0FBUyxrQkFBa0IsS0FBOEMsRUFBQTtBQUN2RSxFQUFBLE9BQU8sS0FBaUIsWUFBQSxlQUFBLENBQUE7QUFDMUI7Ozs7In0=