@perses-dev/plugin-system 0.0.0-snapshot-scatterplot-fix-imports-95e1b59 → 0.0.0-snapshot-explorer-plugin-c4a7621

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 (400) hide show
  1. package/dist/cjs/components/DatasourceEditorForm/DatasourceEditorForm.js +82 -162
  2. package/dist/cjs/components/DatasourceSelect.js +8 -13
  3. package/dist/cjs/components/HTTPSettingsEditor/HTTPSettingsEditor.js +528 -0
  4. package/dist/cjs/components/{TimeSeriesQueryEditor → HTTPSettingsEditor}/index.js +2 -2
  5. package/dist/cjs/components/LegendOptionsEditor/LegendOptionsEditor.js +8 -7
  6. package/dist/cjs/components/MetricLabelInput/MetricLabelInput.js +41 -0
  7. package/dist/cjs/components/{TraceQueryEditor → MetricLabelInput}/index.js +2 -2
  8. package/dist/cjs/components/{TimeSeriesQueryEditor/TimeSeriesQueryEditor.js → MultiQueryEditor/MultiQueryEditor.js} +22 -18
  9. package/dist/cjs/components/{TimeSeriesQueryEditor/TimeSeriesQueryInput.js → MultiQueryEditor/QueryEditorContainer.js} +23 -11
  10. package/dist/cjs/{validation/duration.js → components/MultiQueryEditor/index.js} +14 -9
  11. package/dist/cjs/components/PanelSpecEditor/PanelSpecEditor.js +51 -59
  12. package/dist/cjs/components/PluginEditor/PluginEditor.js +16 -13
  13. package/dist/cjs/components/PluginEditor/plugin-editor-api.js +43 -32
  14. package/dist/cjs/components/PluginKindSelect/PluginKindSelect.js +55 -7
  15. package/dist/cjs/components/PluginRegistry/PluginRegistry.js +8 -9
  16. package/dist/cjs/components/PluginRegistry/plugin-indexes.js +17 -14
  17. package/dist/cjs/components/PluginSpecEditor/PluginSpecEditor.js +1 -1
  18. package/dist/cjs/components/ProjectSelect.js +5 -5
  19. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +10 -71
  20. package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +391 -442
  21. package/dist/cjs/components/Variables/VariableEditorForm/VariablePreview.js +7 -7
  22. package/dist/cjs/components/Variables/VariableEditorForm/variable-editor-form-model.js +6 -11
  23. package/dist/cjs/components/Variables/variable-model.js +26 -27
  24. package/dist/cjs/components/index.js +3 -1
  25. package/dist/cjs/context/ProjectStoreProvider.js +7 -4
  26. package/dist/cjs/context/ValidationProvider.js +69 -0
  27. package/dist/cjs/context/index.js +1 -0
  28. package/dist/cjs/index.js +1 -1
  29. package/dist/{components/TraceQueryEditor/index.js → cjs/model/explore.js} +4 -3
  30. package/dist/cjs/remote/PersesPlugin.types.js +16 -0
  31. package/dist/cjs/remote/PluginLoaderComponent.js +75 -0
  32. package/dist/cjs/remote/PluginRuntime.js +267 -0
  33. package/dist/cjs/{validation → remote}/index.js +2 -5
  34. package/dist/cjs/remote/remotePluginLoader.js +61 -0
  35. package/dist/cjs/runtime/DataQueriesProvider/DataQueriesProvider.js +18 -9
  36. package/dist/cjs/runtime/DataQueriesProvider/model.js +9 -8
  37. package/dist/cjs/runtime/QueryCountProvider.js +83 -0
  38. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeProvider.js +17 -4
  39. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js +100 -0
  40. package/dist/cjs/runtime/TimeRangeProvider/index.js +2 -1
  41. package/dist/cjs/runtime/TimeRangeProvider/query-params.js +4 -7
  42. package/dist/cjs/runtime/UsageMetricsProvider.js +99 -0
  43. package/dist/cjs/runtime/builtin-variables.js +2 -2
  44. package/dist/cjs/runtime/datasources.js +23 -14
  45. package/dist/cjs/runtime/index.js +4 -2
  46. package/dist/cjs/runtime/plugin-registry.js +36 -24
  47. package/dist/cjs/runtime/time-series-queries.js +23 -28
  48. package/dist/cjs/runtime/trace-queries.js +6 -3
  49. package/dist/cjs/runtime/{template-variables.js → variables.js} +29 -47
  50. package/dist/cjs/stories/shared-utils/decorators/WithDataQueries.js +1 -1
  51. package/dist/cjs/stories/shared-utils/decorators/WithPluginRegistry.js +1 -67
  52. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +1 -1
  53. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +4 -4
  54. package/dist/cjs/stories/shared-utils/decorators/{WithPluginSystemTemplateVariables.js → WithPluginSystemVariables.js} +9 -9
  55. package/dist/cjs/stories/shared-utils/decorators/WithTimeRange.js +1 -1
  56. package/dist/cjs/stories/shared-utils/decorators/index.js +2 -2
  57. package/dist/cjs/test/mock-data.js +25 -4
  58. package/dist/cjs/test/render.js +2 -11
  59. package/dist/cjs/test/test-plugins/bert/index.js +20 -19
  60. package/dist/cjs/test-utils/mock-plugin-registry.js +10 -10
  61. package/dist/cjs/utils/variables.js +24 -24
  62. package/dist/components/CalculationSelector/CalculationSelector.d.ts +2 -1
  63. package/dist/components/CalculationSelector/CalculationSelector.d.ts.map +1 -1
  64. package/dist/components/CalculationSelector/CalculationSelector.js.map +1 -1
  65. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts +6 -5
  66. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts.map +1 -1
  67. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js +85 -165
  68. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js.map +1 -1
  69. package/dist/components/DatasourceSelect.d.ts +3 -2
  70. package/dist/components/DatasourceSelect.d.ts.map +1 -1
  71. package/dist/components/DatasourceSelect.js +8 -13
  72. package/dist/components/DatasourceSelect.js.map +1 -1
  73. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.d.ts +11 -0
  74. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.d.ts.map +1 -0
  75. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.js +474 -0
  76. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.js.map +1 -0
  77. package/dist/components/HTTPSettingsEditor/index.d.ts +2 -0
  78. package/dist/components/HTTPSettingsEditor/index.d.ts.map +1 -0
  79. package/dist/{validation/duration.js → components/HTTPSettingsEditor/index.js} +2 -4
  80. package/dist/components/HTTPSettingsEditor/index.js.map +1 -0
  81. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.d.ts +3 -1
  82. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.d.ts.map +1 -1
  83. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js +10 -9
  84. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js.map +1 -1
  85. package/dist/components/MetricLabelInput/MetricLabelInput.d.ts +7 -0
  86. package/dist/components/MetricLabelInput/MetricLabelInput.d.ts.map +1 -0
  87. package/dist/components/MetricLabelInput/MetricLabelInput.js +33 -0
  88. package/dist/components/MetricLabelInput/MetricLabelInput.js.map +1 -0
  89. package/dist/components/MetricLabelInput/index.d.ts +2 -0
  90. package/dist/components/MetricLabelInput/index.d.ts.map +1 -0
  91. package/dist/components/MetricLabelInput/index.js +15 -0
  92. package/dist/components/MetricLabelInput/index.js.map +1 -0
  93. package/dist/components/MultiQueryEditor/MultiQueryEditor.d.ts +17 -0
  94. package/dist/components/MultiQueryEditor/MultiQueryEditor.d.ts.map +1 -0
  95. package/dist/components/{TimeSeriesQueryEditor/TimeSeriesQueryEditor.js → MultiQueryEditor/MultiQueryEditor.js} +29 -18
  96. package/dist/components/MultiQueryEditor/MultiQueryEditor.js.map +1 -0
  97. package/dist/components/MultiQueryEditor/QueryEditorContainer.d.ts +29 -0
  98. package/dist/components/MultiQueryEditor/QueryEditorContainer.d.ts.map +1 -0
  99. package/dist/components/{TimeSeriesQueryEditor/TimeSeriesQueryInput.js → MultiQueryEditor/QueryEditorContainer.js} +33 -10
  100. package/dist/components/MultiQueryEditor/QueryEditorContainer.js.map +1 -0
  101. package/dist/components/MultiQueryEditor/index.d.ts +2 -0
  102. package/dist/components/MultiQueryEditor/index.d.ts.map +1 -0
  103. package/dist/components/MultiQueryEditor/index.js +15 -0
  104. package/dist/components/{TraceQueryEditor → MultiQueryEditor}/index.js.map +1 -1
  105. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts +2 -2
  106. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts.map +1 -1
  107. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js.map +1 -1
  108. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts +2 -2
  109. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts.map +1 -1
  110. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js.map +1 -1
  111. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.d.ts +3 -3
  112. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.d.ts.map +1 -1
  113. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js.map +1 -1
  114. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts +5 -2
  115. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts.map +1 -1
  116. package/dist/components/PanelSpecEditor/PanelSpecEditor.js +53 -61
  117. package/dist/components/PanelSpecEditor/PanelSpecEditor.js.map +1 -1
  118. package/dist/components/PluginEditor/PluginEditor.d.ts +2 -1
  119. package/dist/components/PluginEditor/PluginEditor.d.ts.map +1 -1
  120. package/dist/components/PluginEditor/PluginEditor.js +16 -13
  121. package/dist/components/PluginEditor/PluginEditor.js.map +1 -1
  122. package/dist/components/PluginEditor/plugin-editor-api.d.ts +15 -8
  123. package/dist/components/PluginEditor/plugin-editor-api.d.ts.map +1 -1
  124. package/dist/components/PluginEditor/plugin-editor-api.js +43 -32
  125. package/dist/components/PluginEditor/plugin-editor-api.js.map +1 -1
  126. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts +10 -4
  127. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts.map +1 -1
  128. package/dist/components/PluginKindSelect/PluginKindSelect.js +61 -10
  129. package/dist/components/PluginKindSelect/PluginKindSelect.js.map +1 -1
  130. package/dist/components/PluginRegistry/PluginRegistry.d.ts +2 -2
  131. package/dist/components/PluginRegistry/PluginRegistry.d.ts.map +1 -1
  132. package/dist/components/PluginRegistry/PluginRegistry.js +8 -9
  133. package/dist/components/PluginRegistry/PluginRegistry.js.map +1 -1
  134. package/dist/components/PluginRegistry/plugin-indexes.d.ts +4 -4
  135. package/dist/components/PluginRegistry/plugin-indexes.d.ts.map +1 -1
  136. package/dist/components/PluginRegistry/plugin-indexes.js +17 -14
  137. package/dist/components/PluginRegistry/plugin-indexes.js.map +1 -1
  138. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts +5 -4
  139. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts.map +1 -1
  140. package/dist/components/PluginSpecEditor/PluginSpecEditor.js +1 -1
  141. package/dist/components/PluginSpecEditor/PluginSpecEditor.js.map +1 -1
  142. package/dist/components/ProjectSelect.d.ts +2 -1
  143. package/dist/components/ProjectSelect.d.ts.map +1 -1
  144. package/dist/components/ProjectSelect.js +5 -5
  145. package/dist/components/ProjectSelect.js.map +1 -1
  146. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts +3 -2
  147. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +1 -1
  148. package/dist/components/TimeRangeControls/TimeRangeControls.js +12 -70
  149. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -1
  150. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts +4 -3
  151. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -1
  152. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +395 -446
  153. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -1
  154. package/dist/components/Variables/VariableEditorForm/VariablePreview.d.ts +3 -2
  155. package/dist/components/Variables/VariableEditorForm/VariablePreview.d.ts.map +1 -1
  156. package/dist/components/Variables/VariableEditorForm/VariablePreview.js +7 -7
  157. package/dist/components/Variables/VariableEditorForm/VariablePreview.js.map +1 -1
  158. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts +2 -2
  159. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts.map +1 -1
  160. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js +6 -11
  161. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js.map +1 -1
  162. package/dist/components/Variables/variable-model.d.ts +2 -1
  163. package/dist/components/Variables/variable-model.d.ts.map +1 -1
  164. package/dist/components/Variables/variable-model.js +27 -28
  165. package/dist/components/Variables/variable-model.js.map +1 -1
  166. package/dist/components/index.d.ts +3 -1
  167. package/dist/components/index.d.ts.map +1 -1
  168. package/dist/components/index.js +3 -1
  169. package/dist/components/index.js.map +1 -1
  170. package/dist/context/ProjectStoreProvider.d.ts +4 -4
  171. package/dist/context/ProjectStoreProvider.d.ts.map +1 -1
  172. package/dist/context/ProjectStoreProvider.js +7 -4
  173. package/dist/context/ProjectStoreProvider.js.map +1 -1
  174. package/dist/context/ValidationProvider.d.ts +19 -0
  175. package/dist/context/ValidationProvider.d.ts.map +1 -0
  176. package/dist/context/ValidationProvider.js +52 -0
  177. package/dist/context/ValidationProvider.js.map +1 -0
  178. package/dist/context/index.d.ts +1 -0
  179. package/dist/context/index.d.ts.map +1 -1
  180. package/dist/context/index.js +1 -0
  181. package/dist/context/index.js.map +1 -1
  182. package/dist/context/query-params.d.ts.map +1 -1
  183. package/dist/context/query-params.js.map +1 -1
  184. package/dist/index.d.ts +1 -1
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +1 -1
  187. package/dist/index.js.map +1 -1
  188. package/dist/model/explore.d.ts +13 -0
  189. package/dist/model/explore.d.ts.map +1 -0
  190. package/dist/{validation/index.js → model/explore.js} +4 -6
  191. package/dist/model/explore.js.map +1 -0
  192. package/dist/model/legend.d.ts.map +1 -1
  193. package/dist/model/legend.js.map +1 -1
  194. package/dist/model/panels.d.ts +16 -4
  195. package/dist/model/panels.d.ts.map +1 -1
  196. package/dist/model/panels.js.map +1 -1
  197. package/dist/model/plugin-loading.js.map +1 -1
  198. package/dist/model/plugins.d.ts +31 -17
  199. package/dist/model/plugins.d.ts.map +1 -1
  200. package/dist/model/plugins.js.map +1 -1
  201. package/dist/model/time-series-queries.d.ts +2 -1
  202. package/dist/model/time-series-queries.d.ts.map +1 -1
  203. package/dist/model/time-series-queries.js.map +1 -1
  204. package/dist/remote/PersesPlugin.types.d.ts +7 -0
  205. package/dist/remote/PersesPlugin.types.d.ts.map +1 -0
  206. package/dist/remote/PersesPlugin.types.js +15 -0
  207. package/dist/remote/PersesPlugin.types.js.map +1 -0
  208. package/dist/remote/PluginLoaderComponent.d.ts +10 -0
  209. package/dist/remote/PluginLoaderComponent.d.ts.map +1 -0
  210. package/dist/remote/PluginLoaderComponent.js +67 -0
  211. package/dist/remote/PluginLoaderComponent.js.map +1 -0
  212. package/dist/remote/PluginRuntime.d.ts +11 -0
  213. package/dist/remote/PluginRuntime.d.ts.map +1 -0
  214. package/dist/remote/PluginRuntime.js +202 -0
  215. package/dist/remote/PluginRuntime.js.map +1 -0
  216. package/dist/remote/index.d.ts +3 -0
  217. package/dist/remote/index.d.ts.map +1 -0
  218. package/dist/{components/TimeSeriesQueryEditor → remote}/index.js +2 -1
  219. package/dist/remote/index.js.map +1 -0
  220. package/dist/remote/remotePluginLoader.d.ts +3 -0
  221. package/dist/remote/remotePluginLoader.d.ts.map +1 -0
  222. package/dist/remote/remotePluginLoader.js +53 -0
  223. package/dist/remote/remotePluginLoader.js.map +1 -0
  224. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts +2 -2
  225. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts.map +1 -1
  226. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js +18 -9
  227. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js.map +1 -1
  228. package/dist/runtime/DataQueriesProvider/model.d.ts +5 -6
  229. package/dist/runtime/DataQueriesProvider/model.d.ts.map +1 -1
  230. package/dist/runtime/DataQueriesProvider/model.js +9 -8
  231. package/dist/runtime/DataQueriesProvider/model.js.map +1 -1
  232. package/dist/runtime/QueryCountProvider.d.ts +9 -0
  233. package/dist/runtime/QueryCountProvider.d.ts.map +1 -0
  234. package/dist/{validation/datasource.js → runtime/QueryCountProvider.js} +14 -10
  235. package/dist/runtime/QueryCountProvider.js.map +1 -0
  236. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts +2 -2
  237. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts.map +1 -1
  238. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js +17 -4
  239. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js.map +1 -1
  240. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.d.ts +2 -2
  241. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.d.ts.map +1 -1
  242. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.js.map +1 -1
  243. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.d.ts +32 -0
  244. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.d.ts.map +1 -0
  245. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js +82 -0
  246. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js.map +1 -0
  247. package/dist/runtime/TimeRangeProvider/index.d.ts +1 -0
  248. package/dist/runtime/TimeRangeProvider/index.d.ts.map +1 -1
  249. package/dist/runtime/TimeRangeProvider/index.js +2 -1
  250. package/dist/runtime/TimeRangeProvider/index.js.map +1 -1
  251. package/dist/runtime/TimeRangeProvider/query-params.d.ts.map +1 -1
  252. package/dist/runtime/TimeRangeProvider/query-params.js +4 -7
  253. package/dist/runtime/TimeRangeProvider/query-params.js.map +1 -1
  254. package/dist/runtime/TimeRangeProvider/refresh-interval.d.ts.map +1 -1
  255. package/dist/runtime/TimeRangeProvider/refresh-interval.js.map +1 -1
  256. package/dist/runtime/UsageMetricsProvider.d.ts +25 -0
  257. package/dist/runtime/UsageMetricsProvider.d.ts.map +1 -0
  258. package/dist/runtime/UsageMetricsProvider.js +77 -0
  259. package/dist/runtime/UsageMetricsProvider.js.map +1 -0
  260. package/dist/runtime/builtin-variables.d.ts +1 -1
  261. package/dist/runtime/builtin-variables.d.ts.map +1 -1
  262. package/dist/runtime/builtin-variables.js +2 -2
  263. package/dist/runtime/builtin-variables.js.map +1 -1
  264. package/dist/runtime/datasources.d.ts +5 -4
  265. package/dist/runtime/datasources.d.ts.map +1 -1
  266. package/dist/runtime/datasources.js +23 -14
  267. package/dist/runtime/datasources.js.map +1 -1
  268. package/dist/runtime/index.d.ts +3 -1
  269. package/dist/runtime/index.d.ts.map +1 -1
  270. package/dist/runtime/index.js +4 -2
  271. package/dist/runtime/index.js.map +1 -1
  272. package/dist/runtime/plugin-registry.d.ts +10 -10
  273. package/dist/runtime/plugin-registry.d.ts.map +1 -1
  274. package/dist/runtime/plugin-registry.js +36 -24
  275. package/dist/runtime/plugin-registry.js.map +1 -1
  276. package/dist/runtime/time-series-queries.d.ts +5 -4
  277. package/dist/runtime/time-series-queries.d.ts.map +1 -1
  278. package/dist/runtime/time-series-queries.js +23 -28
  279. package/dist/runtime/time-series-queries.js.map +1 -1
  280. package/dist/runtime/trace-queries.d.ts +4 -3
  281. package/dist/runtime/trace-queries.d.ts.map +1 -1
  282. package/dist/runtime/trace-queries.js +7 -4
  283. package/dist/runtime/trace-queries.js.map +1 -1
  284. package/dist/runtime/{template-variables.d.ts → variables.d.ts} +4 -4
  285. package/dist/runtime/variables.d.ts.map +1 -0
  286. package/dist/runtime/{template-variables.js → variables.js} +28 -45
  287. package/dist/runtime/variables.js.map +1 -0
  288. package/dist/stories/shared-utils/decorators/WithDataQueries.d.ts +2 -1
  289. package/dist/stories/shared-utils/decorators/WithDataQueries.d.ts.map +1 -1
  290. package/dist/stories/shared-utils/decorators/WithDataQueries.js +1 -1
  291. package/dist/stories/shared-utils/decorators/WithDataQueries.js.map +1 -1
  292. package/dist/stories/shared-utils/decorators/WithPluginRegistry.d.ts +2 -1
  293. package/dist/stories/shared-utils/decorators/WithPluginRegistry.d.ts.map +1 -1
  294. package/dist/stories/shared-utils/decorators/WithPluginRegistry.js +2 -22
  295. package/dist/stories/shared-utils/decorators/WithPluginRegistry.js.map +1 -1
  296. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts +2 -1
  297. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts.map +1 -1
  298. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +1 -1
  299. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js.map +1 -1
  300. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.d.ts +2 -1
  301. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.d.ts.map +1 -1
  302. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +4 -4
  303. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js.map +1 -1
  304. package/dist/stories/shared-utils/decorators/WithPluginSystemVariables.d.ts +13 -0
  305. package/dist/stories/shared-utils/decorators/WithPluginSystemVariables.d.ts.map +1 -0
  306. package/dist/stories/shared-utils/decorators/{WithPluginSystemTemplateVariables.js → WithPluginSystemVariables.js} +10 -10
  307. package/dist/stories/shared-utils/decorators/WithPluginSystemVariables.js.map +1 -0
  308. package/dist/stories/shared-utils/decorators/WithTimeRange.d.ts +2 -1
  309. package/dist/stories/shared-utils/decorators/WithTimeRange.d.ts.map +1 -1
  310. package/dist/stories/shared-utils/decorators/WithTimeRange.js +1 -1
  311. package/dist/stories/shared-utils/decorators/WithTimeRange.js.map +1 -1
  312. package/dist/stories/shared-utils/decorators/index.d.ts +1 -1
  313. package/dist/stories/shared-utils/decorators/index.d.ts.map +1 -1
  314. package/dist/stories/shared-utils/decorators/index.js +2 -2
  315. package/dist/stories/shared-utils/decorators/index.js.map +1 -1
  316. package/dist/test/mock-data.d.ts.map +1 -1
  317. package/dist/test/mock-data.js +25 -4
  318. package/dist/test/mock-data.js.map +1 -1
  319. package/dist/test/render.d.ts +3 -3
  320. package/dist/test/render.d.ts.map +1 -1
  321. package/dist/test/render.js +2 -11
  322. package/dist/test/render.js.map +1 -1
  323. package/dist/test/test-plugins/bert/index.d.ts.map +1 -1
  324. package/dist/test/test-plugins/bert/index.js +20 -19
  325. package/dist/test/test-plugins/bert/index.js.map +1 -1
  326. package/dist/test-utils/mock-plugin-registry.d.ts +5 -3
  327. package/dist/test-utils/mock-plugin-registry.d.ts.map +1 -1
  328. package/dist/test-utils/mock-plugin-registry.js +10 -10
  329. package/dist/test-utils/mock-plugin-registry.js.map +1 -1
  330. package/dist/utils/variables.d.ts +4 -4
  331. package/dist/utils/variables.d.ts.map +1 -1
  332. package/dist/utils/variables.js +19 -19
  333. package/dist/utils/variables.js.map +1 -1
  334. package/package.json +7 -6
  335. package/dist/cjs/components/TraceQueryEditor/TraceQueryEditor.js +0 -143
  336. package/dist/cjs/components/TraceQueryEditor/TraceQueryInput.js +0 -96
  337. package/dist/cjs/validation/datasource.js +0 -30
  338. package/dist/cjs/validation/resource.js +0 -24
  339. package/dist/cjs/validation/role.js +0 -86
  340. package/dist/cjs/validation/rolebinding.js +0 -55
  341. package/dist/cjs/validation/secret.js +0 -176
  342. package/dist/cjs/validation/user.js +0 -46
  343. package/dist/cjs/validation/variable.js +0 -48
  344. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.d.ts +0 -7
  345. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.d.ts.map +0 -1
  346. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js.map +0 -1
  347. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.d.ts +0 -12
  348. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.d.ts.map +0 -1
  349. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js.map +0 -1
  350. package/dist/components/TimeSeriesQueryEditor/index.d.ts +0 -2
  351. package/dist/components/TimeSeriesQueryEditor/index.d.ts.map +0 -1
  352. package/dist/components/TimeSeriesQueryEditor/index.js.map +0 -1
  353. package/dist/components/TraceQueryEditor/TraceQueryEditor.d.ts +0 -8
  354. package/dist/components/TraceQueryEditor/TraceQueryEditor.d.ts.map +0 -1
  355. package/dist/components/TraceQueryEditor/TraceQueryEditor.js +0 -130
  356. package/dist/components/TraceQueryEditor/TraceQueryEditor.js.map +0 -1
  357. package/dist/components/TraceQueryEditor/TraceQueryInput.d.ts +0 -12
  358. package/dist/components/TraceQueryEditor/TraceQueryInput.d.ts.map +0 -1
  359. package/dist/components/TraceQueryEditor/TraceQueryInput.js +0 -83
  360. package/dist/components/TraceQueryEditor/TraceQueryInput.js.map +0 -1
  361. package/dist/components/TraceQueryEditor/index.d.ts +0 -2
  362. package/dist/components/TraceQueryEditor/index.d.ts.map +0 -1
  363. package/dist/runtime/template-variables.d.ts.map +0 -1
  364. package/dist/runtime/template-variables.js.map +0 -1
  365. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.d.ts +0 -12
  366. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.d.ts.map +0 -1
  367. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js.map +0 -1
  368. package/dist/validation/datasource.d.ts +0 -19
  369. package/dist/validation/datasource.d.ts.map +0 -1
  370. package/dist/validation/datasource.js.map +0 -1
  371. package/dist/validation/duration.d.ts +0 -3
  372. package/dist/validation/duration.d.ts.map +0 -1
  373. package/dist/validation/duration.js.map +0 -1
  374. package/dist/validation/index.d.ts +0 -6
  375. package/dist/validation/index.d.ts.map +0 -1
  376. package/dist/validation/index.js.map +0 -1
  377. package/dist/validation/resource.d.ts +0 -3
  378. package/dist/validation/resource.d.ts.map +0 -1
  379. package/dist/validation/resource.js +0 -16
  380. package/dist/validation/resource.js.map +0 -1
  381. package/dist/validation/role.d.ts +0 -228
  382. package/dist/validation/role.d.ts.map +0 -1
  383. package/dist/validation/role.js +0 -67
  384. package/dist/validation/role.js.map +0 -1
  385. package/dist/validation/rolebinding.d.ts +0 -137
  386. package/dist/validation/rolebinding.d.ts.map +0 -1
  387. package/dist/validation/rolebinding.js +0 -47
  388. package/dist/validation/rolebinding.js.map +0 -1
  389. package/dist/validation/secret.d.ts +0 -964
  390. package/dist/validation/secret.d.ts.map +0 -1
  391. package/dist/validation/secret.js +0 -157
  392. package/dist/validation/secret.js.map +0 -1
  393. package/dist/validation/user.d.ts +0 -93
  394. package/dist/validation/user.d.ts.map +0 -1
  395. package/dist/validation/user.js +0 -38
  396. package/dist/validation/user.js.map +0 -1
  397. package/dist/validation/variable.d.ts +0 -96
  398. package/dist/validation/variable.d.ts.map +0 -1
  399. package/dist/validation/variable.js +0 -40
  400. package/dist/validation/variable.js.map +0 -1
@@ -26,13 +26,11 @@ const _material = require("@mui/material");
26
26
  const _components = require("@perses-dev/components");
27
27
  const _reacthookform = require("react-hook-form");
28
28
  const _zod = require("@hookform/resolvers/zod");
29
- const _useimmer = require("use-immer");
30
29
  const _utils = require("../../../utils");
31
30
  const _variablemodel = require("../variable-model");
32
31
  const _PluginEditor = require("../../PluginEditor");
33
- const _validation = require("../../../validation");
32
+ const _context = require("../../../context");
34
33
  const _VariablePreview = require("./VariablePreview");
35
- const _variableeditorformmodel = require("./variable-editor-form-model");
36
34
  function _getRequireWildcardCache(nodeInterop) {
37
35
  if (typeof WeakMap !== "function") return null;
38
36
  var cacheBabelInterop = new WeakMap();
@@ -79,55 +77,369 @@ function FallbackPreview() {
79
77
  children: "Error previewing values"
80
78
  });
81
79
  }
82
- function VariableEditorForm(props) {
83
- const { initialVariableDefinition, initialAction, isDraft, isReadonly, onSave, onClose, onDelete } = props;
84
- const initialState = (0, _variableeditorformmodel.getInitialState)(initialVariableDefinition);
85
- const [state, setState] = (0, _useimmer.useImmer)(initialState);
86
- const [isDiscardDialogOpened, setDiscardDialogOpened] = (0, _react.useState)(false);
87
- const [previewKey, setPreviewKey] = (0, _react.useState)(0);
88
- const [action, setAction] = (0, _react.useState)(initialAction);
89
- const refreshPreview = ()=>{
90
- setPreviewKey((prev)=>prev + 1);
91
- };
92
- /** We use the `previewKey` that we increment to know when to explicitly update the
80
+ function TextVariableEditorForm({ action, control }) {
81
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
82
+ children: [
83
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
84
+ py: 1,
85
+ variant: "subtitle1",
86
+ children: "Text Options"
87
+ }),
88
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
89
+ spacing: 2,
90
+ children: [
91
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
92
+ control: control,
93
+ name: "spec.value",
94
+ render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
95
+ children: [
96
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
97
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
98
+ values: [
99
+ field.value
100
+ ]
101
+ })
102
+ }),
103
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
104
+ ...field,
105
+ label: "Value",
106
+ InputLabelProps: {
107
+ shrink: action === 'read' ? true : undefined
108
+ },
109
+ InputProps: {
110
+ readOnly: action === 'read'
111
+ },
112
+ error: !!fieldState.error,
113
+ helperText: fieldState.error?.message,
114
+ value: field.value ?? '',
115
+ onChange: (event)=>{
116
+ field.onChange(event);
117
+ }
118
+ })
119
+ ]
120
+ })
121
+ }),
122
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
123
+ control: control,
124
+ name: "spec.constant",
125
+ render: ({ field })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
126
+ label: "Constant",
127
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
128
+ ...field,
129
+ checked: !!field.value,
130
+ readOnly: action === 'read',
131
+ value: field.value ?? false,
132
+ onChange: (event)=>{
133
+ if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
134
+ field.onChange(event);
135
+ }
136
+ })
137
+ })
138
+ })
139
+ ]
140
+ })
141
+ ]
142
+ });
143
+ }
144
+ function ListVariableEditorForm({ action, control }) {
145
+ const form = (0, _reacthookform.useFormContext)();
146
+ /** We use `previewSpec` to know when to explicitly update the
93
147
  * spec that will be used for preview. The reason why we do this is to avoid
94
148
  * having to re-fetch the values when the user is still editing the spec.
95
- */ const previewSpec = (0, _react.useMemo)(()=>{
96
- return (0, _variableeditorformmodel.getVariableDefinitionFromState)(state);
97
- // eslint-disable-next-line react-hooks/exhaustive-deps
98
- }, [
99
- previewKey
100
- ]);
149
+ */ const [previewSpec, setPreviewSpec] = (0, _react.useState)(form.getValues());
150
+ const refreshPreview = ()=>{
151
+ setPreviewSpec(form.getValues());
152
+ };
153
+ const kind = (0, _reacthookform.useWatch)({
154
+ control: control,
155
+ name: 'spec.plugin.kind'
156
+ });
157
+ const _allowAllValue = (0, _reacthookform.useWatch)({
158
+ control: control,
159
+ name: 'spec.allowAllValue'
160
+ });
161
+ // When variable kind is selected we need to provide default values
162
+ // TODO: check if react-hook-form has a better way to do this
163
+ const values = form.getValues();
164
+ if (values.spec.allowAllValue === undefined) {
165
+ form.setValue('spec.allowAllValue', false);
166
+ }
167
+ if (values.spec.allowMultiple === undefined) {
168
+ form.setValue('spec.allowMultiple', false);
169
+ }
170
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
171
+ children: [
172
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
173
+ py: 1,
174
+ variant: "subtitle1",
175
+ children: "List Options"
176
+ }),
177
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
178
+ spacing: 2,
179
+ mb: 2,
180
+ children: [
181
+ kind ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
182
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
183
+ FallbackComponent: FallbackPreview,
184
+ resetKeys: [
185
+ previewSpec
186
+ ],
187
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariableListPreview, {
188
+ definition: previewSpec,
189
+ onRefresh: refreshPreview
190
+ })
191
+ })
192
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
193
+ isLoading: true
194
+ }),
195
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
196
+ children: [
197
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.ClickAwayListener, {
198
+ onClickAway: ()=>refreshPreview(),
199
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {})
200
+ }),
201
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
202
+ FallbackComponent: _components.ErrorAlert,
203
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
204
+ control: control,
205
+ name: "spec.plugin",
206
+ render: ({ field })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_PluginEditor.PluginEditor, {
207
+ width: "100%",
208
+ pluginTypes: [
209
+ 'Variable'
210
+ ],
211
+ pluginKindLabel: "Source",
212
+ value: {
213
+ selection: {
214
+ type: 'Variable',
215
+ kind: field.value?.kind ?? 'StaticListVariable'
216
+ },
217
+ spec: field.value?.spec ?? {
218
+ values: []
219
+ }
220
+ },
221
+ isReadonly: action === 'read',
222
+ onChange: (v)=>{
223
+ field.onChange({
224
+ kind: v.selection.kind,
225
+ spec: v.spec
226
+ });
227
+ }
228
+ })
229
+ })
230
+ })
231
+ ]
232
+ }),
233
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
234
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
235
+ control: control,
236
+ name: "spec.capturingRegexp",
237
+ render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
238
+ ...field,
239
+ label: "Capturing Regexp Filter",
240
+ InputLabelProps: {
241
+ shrink: action === 'read' ? true : undefined
242
+ },
243
+ InputProps: {
244
+ readOnly: action === 'read'
245
+ },
246
+ error: !!fieldState.error,
247
+ value: field.value ?? '',
248
+ onChange: (event)=>{
249
+ if (event.target.value === '') {
250
+ field.onChange(undefined);
251
+ } else {
252
+ field.onChange(event);
253
+ }
254
+ },
255
+ helperText: fieldState.error?.message ? fieldState.error.message : 'Optional, if you want to filter on captured result.'
256
+ })
257
+ })
258
+ }),
259
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
260
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
261
+ control: control,
262
+ name: "spec.sort",
263
+ render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.TextField, {
264
+ select: true,
265
+ ...field,
266
+ fullWidth: true,
267
+ label: "Sort",
268
+ InputLabelProps: {
269
+ shrink: action === 'read' ? true : undefined
270
+ },
271
+ InputProps: {
272
+ readOnly: action === 'read'
273
+ },
274
+ error: !!fieldState.error,
275
+ helperText: fieldState.error?.message,
276
+ value: field.value ?? 'none',
277
+ onChange: (event)=>{
278
+ field.onChange(event);
279
+ },
280
+ children: [
281
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
282
+ value: "none",
283
+ children: "None"
284
+ }),
285
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
286
+ value: "alphabetical-asc",
287
+ children: "Alphabetical, asc"
288
+ }),
289
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
290
+ value: "alphabetical-desc",
291
+ children: "Alphabetical, desc"
292
+ }),
293
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
294
+ value: "numerical-asc",
295
+ children: "Numerical, asc"
296
+ }),
297
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
298
+ value: "numerical-desc",
299
+ children: "Numerical, desc"
300
+ }),
301
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
302
+ value: "alphabetical-ci-asc",
303
+ children: "Alphabetical, case-insensitive, asc"
304
+ }),
305
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
306
+ value: "alphabetical-ci-desc",
307
+ children: "Alphabetical, case-insensitive, desc"
308
+ })
309
+ ]
310
+ })
311
+ })
312
+ })
313
+ ]
314
+ }),
315
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
316
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
317
+ py: 1,
318
+ variant: "subtitle1",
319
+ children: "Dropdown Options"
320
+ }),
321
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
322
+ spacing: "2",
323
+ children: [
324
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
325
+ children: [
326
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
327
+ control: control,
328
+ name: "spec.allowMultiple",
329
+ render: ({ field })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
330
+ label: "Allow Multiple Values",
331
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
332
+ ...field,
333
+ checked: !!field.value,
334
+ readOnly: action === 'read',
335
+ value: field.value ?? false,
336
+ onChange: (event)=>{
337
+ if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
338
+ field.onChange(event);
339
+ }
340
+ })
341
+ })
342
+ }),
343
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
344
+ variant: "caption",
345
+ children: "Enables multiple values to be selected at the same time"
346
+ })
347
+ ]
348
+ }),
349
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
350
+ children: [
351
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
352
+ control: control,
353
+ name: "spec.allowAllValue",
354
+ render: ({ field })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
355
+ label: "Allow All option",
356
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
357
+ ...field,
358
+ checked: !!field.value,
359
+ readOnly: action === 'read',
360
+ value: field.value ?? false,
361
+ onChange: (event)=>{
362
+ if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
363
+ field.onChange(event);
364
+ }
365
+ })
366
+ })
367
+ }),
368
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
369
+ mb: 1,
370
+ variant: "caption",
371
+ children: "Enables an option to include all variable values"
372
+ }),
373
+ _allowAllValue && /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
374
+ control: control,
375
+ name: "spec.customAllValue",
376
+ render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
377
+ ...field,
378
+ fullWidth: true,
379
+ label: "Custom All Value",
380
+ InputLabelProps: {
381
+ shrink: action === 'read' ? true : undefined
382
+ },
383
+ InputProps: {
384
+ readOnly: action === 'read'
385
+ },
386
+ error: !!fieldState.error,
387
+ helperText: fieldState.error?.message ? fieldState.error.message : 'When All is selected, this value will be used',
388
+ value: field.value ?? '',
389
+ onChange: (event)=>{
390
+ if (event.target.value === '') {
391
+ field.onChange(undefined);
392
+ } else {
393
+ field.onChange(event);
394
+ }
395
+ }
396
+ })
397
+ })
398
+ ]
399
+ })
400
+ ]
401
+ })
402
+ ]
403
+ });
404
+ }
405
+ function VariableEditorForm({ initialVariableDefinition, action, isDraft, isReadonly, onActionChange, onSave, onClose, onDelete }) {
406
+ const [isDiscardDialogOpened, setDiscardDialogOpened] = (0, _react.useState)(false);
101
407
  const titleAction = (0, _utils.getTitleAction)(action, isDraft);
102
408
  const submitText = (0, _utils.getSubmitText)(action, isDraft);
409
+ const { variableEditorSchema } = (0, _context.useValidationSchemas)();
103
410
  const form = (0, _reacthookform.useForm)({
104
- resolver: (0, _zod.zodResolver)(_validation.variableEditorValidationSchema),
411
+ resolver: (0, _zod.zodResolver)(variableEditorSchema),
105
412
  mode: 'onBlur',
106
- defaultValues: initialState
413
+ defaultValues: initialVariableDefinition
414
+ });
415
+ const kind = (0, _reacthookform.useWatch)({
416
+ control: form.control,
417
+ name: 'kind'
107
418
  });
108
- const processForm = ()=>{
419
+ function clearFormData(data) {
420
+ const result = {
421
+ ...data
422
+ };
423
+ if (result.spec.display?.name === undefined && result.spec.display?.description === undefined && result.spec.display?.hidden === undefined) {
424
+ delete result.spec.display;
425
+ }
426
+ return result;
427
+ }
428
+ const processForm = (data)=>{
109
429
  // reset display attributes to undefined when empty, because we don't want to save empty strings
110
- onSave((0, _variableeditorformmodel.getVariableDefinitionFromState)({
111
- ...state,
112
- title: state.title === '' ? undefined : state.title,
113
- description: state.description === '' ? undefined : state.description
114
- }));
430
+ onSave(clearFormData(data));
115
431
  };
116
432
  // When user click on cancel, several possibilities:
117
433
  // - create action: ask for discard approval
118
434
  // - update action: ask for discard approval if changed
119
435
  // - read action: don´t ask for discard approval
120
- const handleCancel = (0, _react.useCallback)(()=>{
121
- if (JSON.stringify(initialState) !== JSON.stringify(state)) {
436
+ function handleCancel() {
437
+ if (JSON.stringify(initialVariableDefinition) !== JSON.stringify(clearFormData(form.getValues()))) {
122
438
  setDiscardDialogOpened(true);
123
439
  } else {
124
440
  onClose();
125
441
  }
126
- }, [
127
- initialState,
128
- state,
129
- onClose
130
- ]);
442
+ }
131
443
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_reacthookform.FormProvider, {
132
444
  ...form,
133
445
  children: [
@@ -146,62 +458,15 @@ function VariableEditorForm(props) {
146
458
  " Variable"
147
459
  ]
148
460
  }),
149
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
150
- direction: "row",
151
- spacing: 1,
152
- sx: {
153
- marginLeft: 'auto'
154
- },
155
- children: action === 'read' ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
156
- children: [
157
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
158
- disabled: isReadonly,
159
- variant: "contained",
160
- onClick: ()=>setAction('update'),
161
- children: "Edit"
162
- }),
163
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
164
- color: "error",
165
- disabled: isReadonly,
166
- variant: "outlined",
167
- onClick: onDelete,
168
- children: "Delete"
169
- }),
170
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {
171
- orientation: "vertical",
172
- flexItem: true,
173
- sx: (theme)=>({
174
- borderColor: theme.palette.grey['500'],
175
- '&.MuiDivider-root': {
176
- marginLeft: 2,
177
- marginRight: 1
178
- }
179
- })
180
- }),
181
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
182
- color: "secondary",
183
- variant: "outlined",
184
- onClick: onClose,
185
- children: "Close"
186
- })
187
- ]
188
- }) : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
189
- children: [
190
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
191
- type: "submit",
192
- variant: "contained",
193
- disabled: !form.formState.isValid,
194
- onClick: form.handleSubmit(processForm),
195
- children: submitText
196
- }),
197
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
198
- color: "secondary",
199
- variant: "outlined",
200
- onClick: handleCancel,
201
- children: "Cancel"
202
- })
203
- ]
204
- })
461
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.FormActions, {
462
+ action: action,
463
+ submitText: submitText,
464
+ isReadonly: isReadonly,
465
+ isValid: form.formState.isValid,
466
+ onActionChange: onActionChange,
467
+ onSubmit: form.handleSubmit(processForm),
468
+ onDelete: onDelete,
469
+ onCancel: handleCancel
205
470
  })
206
471
  ]
207
472
  }),
@@ -220,10 +485,9 @@ function VariableEditorForm(props) {
220
485
  item: true,
221
486
  xs: 8,
222
487
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
223
- name: "name",
224
- render: ({ field, fieldState })=>{
225
- var _fieldState_error;
226
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
488
+ control: form.control,
489
+ name: "spec.name",
490
+ render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
227
491
  ...field,
228
492
  required: true,
229
493
  fullWidth: true,
@@ -236,27 +500,21 @@ function VariableEditorForm(props) {
236
500
  readOnly: action === 'read'
237
501
  },
238
502
  error: !!fieldState.error,
239
- helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
240
- value: state.name,
503
+ helperText: fieldState.error?.message,
504
+ value: field.value ?? '',
241
505
  onChange: (event)=>{
242
506
  field.onChange(event);
243
- setState((draft)=>{
244
- draft.name = event.target.value;
245
- });
246
507
  }
247
- });
248
- }
508
+ })
249
509
  })
250
510
  }),
251
511
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
252
512
  item: true,
253
513
  xs: 4,
254
514
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
255
- name: "title",
256
- render: ({ field, fieldState })=>/*#__PURE__*/ {
257
- var _fieldState_error;
258
- var _state_title;
259
- return (0, _jsxruntime.jsx)(_material.TextField, {
515
+ control: form.control,
516
+ name: "spec.display.name",
517
+ render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
260
518
  ...field,
261
519
  fullWidth: true,
262
520
  label: "Display Label",
@@ -267,27 +525,21 @@ function VariableEditorForm(props) {
267
525
  readOnly: action === 'read'
268
526
  },
269
527
  error: !!fieldState.error,
270
- helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
271
- value: (_state_title = state.title) !== null && _state_title !== void 0 ? _state_title : '',
528
+ helperText: fieldState.error?.message,
529
+ value: field.value ?? '',
272
530
  onChange: (event)=>{
273
531
  field.onChange(event);
274
- setState((draft)=>{
275
- draft.title = event.target.value;
276
- });
277
532
  }
278
- });
279
- }
533
+ })
280
534
  })
281
535
  }),
282
536
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
283
537
  item: true,
284
538
  xs: 8,
285
539
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
286
- name: "description",
287
- render: ({ field, fieldState })=>/*#__PURE__*/ {
288
- var _fieldState_error;
289
- var _state_description;
290
- return (0, _jsxruntime.jsx)(_material.TextField, {
540
+ control: form.control,
541
+ name: "spec.display.description",
542
+ render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
291
543
  ...field,
292
544
  fullWidth: true,
293
545
  label: "Description",
@@ -298,26 +550,21 @@ function VariableEditorForm(props) {
298
550
  readOnly: action === 'read'
299
551
  },
300
552
  error: !!fieldState.error,
301
- helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
302
- value: (_state_description = state.description) !== null && _state_description !== void 0 ? _state_description : '',
553
+ helperText: fieldState.error?.message,
554
+ value: field.value ?? '',
303
555
  onChange: (event)=>{
304
556
  field.onChange(event);
305
- setState((draft)=>{
306
- draft.description = event.target.value;
307
- });
308
557
  }
309
- });
310
- }
558
+ })
311
559
  })
312
560
  }),
313
561
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
314
562
  item: true,
315
563
  xs: 4,
316
564
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
565
+ control: form.control,
317
566
  name: "kind",
318
- render: ({ field, fieldState })=>{
319
- var _fieldState_error;
320
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
567
+ render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
321
568
  select: true,
322
569
  ...field,
323
570
  fullWidth: true,
@@ -329,332 +576,34 @@ function VariableEditorForm(props) {
329
576
  readOnly: action === 'read'
330
577
  },
331
578
  error: !!fieldState.error,
332
- helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
333
- value: state.kind,
579
+ helperText: fieldState.error?.message,
580
+ value: field.value ?? 'TextVariable',
334
581
  onChange: (event)=>{
335
582
  field.onChange(event);
336
- setState((draft)=>{
337
- draft.kind = event.target.value;
338
- });
339
583
  },
340
584
  children: _variablemodel.VARIABLE_TYPES.map((v)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
341
585
  value: v.kind,
342
586
  children: v.label
343
587
  }, v.kind))
344
- });
345
- }
588
+ })
346
589
  })
347
590
  })
348
591
  ]
349
592
  }),
350
593
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
351
- state.kind === 'TextVariable' && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
352
- children: [
353
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
354
- py: 1,
355
- variant: "subtitle1",
356
- children: "Text Options"
357
- }),
358
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
359
- spacing: 2,
360
- children: [
361
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
362
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
363
- values: [
364
- state.textVariableFields.value
365
- ]
366
- })
367
- }),
368
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
369
- name: "textVariableFields.value",
370
- render: ({ field, fieldState })=>{
371
- var _fieldState_error;
372
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
373
- ...field,
374
- label: "Value",
375
- InputLabelProps: {
376
- shrink: action === 'read' ? true : undefined
377
- },
378
- InputProps: {
379
- readOnly: action === 'read'
380
- },
381
- error: !!fieldState.error,
382
- helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
383
- value: state.textVariableFields.value,
384
- onChange: (event)=>{
385
- field.onChange(event);
386
- setState((draft)=>{
387
- draft.textVariableFields.value = event.target.value;
388
- });
389
- }
390
- });
391
- }
392
- }),
393
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
394
- name: "textVariableFields.constant",
395
- render: ({ field })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
396
- label: "Constant",
397
- control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
398
- ...field,
399
- checked: !!field.value,
400
- readOnly: action === 'read',
401
- value: state.textVariableFields.constant,
402
- onChange: (event)=>{
403
- if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
404
- field.onChange(event);
405
- setState((draft)=>{
406
- draft.textVariableFields.constant = event.target.checked;
407
- });
408
- }
409
- })
410
- })
411
- })
412
- ]
413
- })
414
- ]
594
+ kind === 'TextVariable' && /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
595
+ FallbackComponent: _components.ErrorAlert,
596
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(TextVariableEditorForm, {
597
+ action: action,
598
+ control: form.control
599
+ })
415
600
  }),
416
- state.kind === 'ListVariable' && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
417
- children: [
418
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
419
- py: 1,
420
- variant: "subtitle1",
421
- children: "List Options"
422
- }),
423
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
424
- spacing: 2,
425
- mb: 2,
426
- children: [
427
- state.listVariableFields.plugin.kind ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
428
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
429
- FallbackComponent: FallbackPreview,
430
- resetKeys: [
431
- previewSpec
432
- ],
433
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariableListPreview, {
434
- definition: previewSpec,
435
- onRefresh: refreshPreview
436
- })
437
- })
438
- }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
439
- isLoading: true
440
- }),
441
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
442
- children: [
443
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.ClickAwayListener, {
444
- onClickAway: ()=>refreshPreview(),
445
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {})
446
- }),
447
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
448
- name: "listVariableFields.plugin",
449
- render: ({ field })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_PluginEditor.PluginEditor, {
450
- width: "100%",
451
- pluginType: "Variable",
452
- pluginKindLabel: "Source",
453
- isReadonly: action === 'read',
454
- value: state.listVariableFields.plugin,
455
- onChange: (val)=>{
456
- field.onChange(val);
457
- setState((draft)=>{
458
- draft.listVariableFields.plugin = val;
459
- });
460
- }
461
- })
462
- })
463
- ]
464
- }),
465
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
466
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
467
- name: "listVariableFields.capturingRegexp",
468
- render: ({ field, fieldState })=>/*#__PURE__*/ {
469
- var _fieldState_error;
470
- var _state_listVariableFields_capturingRegexp;
471
- return (0, _jsxruntime.jsx)(_material.TextField, {
472
- ...field,
473
- label: "Capturing Regexp Filter",
474
- InputLabelProps: {
475
- shrink: action === 'read' ? true : undefined
476
- },
477
- InputProps: {
478
- readOnly: action === 'read'
479
- },
480
- error: !!fieldState.error,
481
- value: (_state_listVariableFields_capturingRegexp = state.listVariableFields.capturingRegexp) !== null && _state_listVariableFields_capturingRegexp !== void 0 ? _state_listVariableFields_capturingRegexp : '',
482
- onChange: (event)=>{
483
- field.onChange(event);
484
- setState((draft)=>{
485
- if (event.target.value) {
486
- // TODO: do a better fix, if empty string => it should skip the filter
487
- draft.listVariableFields.capturingRegexp = event.target.value;
488
- } else {
489
- draft.listVariableFields.capturingRegexp = undefined;
490
- }
491
- });
492
- },
493
- helperText: ((_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message) ? fieldState.error.message : 'Optional, if you want to filter on captured result.'
494
- });
495
- }
496
- })
497
- }),
498
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
499
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
500
- name: "listVariableFields.sort",
501
- render: ({ field, fieldState })=>/*#__PURE__*/ {
502
- var _fieldState_error;
503
- var _state_listVariableFields_sort;
504
- return (0, _jsxruntime.jsxs)(_material.TextField, {
505
- select: true,
506
- ...field,
507
- fullWidth: true,
508
- label: "Sort",
509
- InputLabelProps: {
510
- shrink: action === 'read' ? true : undefined
511
- },
512
- InputProps: {
513
- readOnly: action === 'read'
514
- },
515
- error: !!fieldState.error,
516
- helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
517
- value: (_state_listVariableFields_sort = state.listVariableFields.sort) !== null && _state_listVariableFields_sort !== void 0 ? _state_listVariableFields_sort : 'none',
518
- onChange: (event)=>{
519
- field.onChange(event);
520
- setState((draft)=>{
521
- draft.listVariableFields.sort = event.target.value;
522
- });
523
- },
524
- children: [
525
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
526
- value: "none",
527
- children: "None"
528
- }),
529
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
530
- value: "alphabetical-asc",
531
- children: "Alphabetical, asc"
532
- }),
533
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
534
- value: "alphabetical-desc",
535
- children: "Alphabetical, desc"
536
- }),
537
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
538
- value: "numerical-asc",
539
- children: "Numerical, asc"
540
- }),
541
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
542
- value: "numerical-desc",
543
- children: "Numerical, desc"
544
- }),
545
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
546
- value: "alphabetical-ci-asc",
547
- children: "Alphabetical, case-insensitive, asc"
548
- }),
549
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
550
- value: "alphabetical-ci-desc",
551
- children: "Alphabetical, case-insensitive, desc"
552
- })
553
- ]
554
- });
555
- }
556
- })
557
- })
558
- ]
559
- }),
560
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
561
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
562
- py: 1,
563
- variant: "subtitle1",
564
- children: "Dropdown Options"
565
- }),
566
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
567
- spacing: "2",
568
- children: [
569
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
570
- children: [
571
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
572
- name: "listVariableFields.allowMultiple",
573
- render: ({ field })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
574
- label: "Allow Multiple Values",
575
- control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
576
- ...field,
577
- checked: !!field.value,
578
- readOnly: action === 'read',
579
- value: state.listVariableFields.allowMultiple,
580
- onChange: (event)=>{
581
- if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
582
- field.onChange(event);
583
- setState((draft)=>{
584
- draft.listVariableFields.allowMultiple = event.target.checked;
585
- });
586
- }
587
- })
588
- })
589
- }),
590
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
591
- variant: "caption",
592
- children: "Enables multiple values to be selected at the same time"
593
- })
594
- ]
595
- }),
596
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
597
- children: [
598
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
599
- name: "listVariableFields.allowAllValue",
600
- render: ({ field })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
601
- label: "Allow All option",
602
- control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
603
- ...field,
604
- checked: !!field.value,
605
- readOnly: action === 'read',
606
- value: state.listVariableFields.allowAllValue,
607
- onChange: (event)=>{
608
- if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
609
- field.onChange(event);
610
- setState((draft)=>{
611
- draft.listVariableFields.allowAllValue = event.target.checked;
612
- });
613
- }
614
- })
615
- })
616
- }),
617
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
618
- mb: 1,
619
- variant: "caption",
620
- children: "Enables an option to include all variable values"
621
- }),
622
- state.listVariableFields.allowAllValue && /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
623
- name: "listVariableFields.customAllValue",
624
- render: ({ field, fieldState })=>/*#__PURE__*/ {
625
- var _fieldState_error;
626
- var _state_listVariableFields_customAllValue;
627
- return (0, _jsxruntime.jsx)(_material.TextField, {
628
- ...field,
629
- fullWidth: true,
630
- label: "Custom All Value",
631
- InputLabelProps: {
632
- shrink: action === 'read' ? true : undefined
633
- },
634
- InputProps: {
635
- readOnly: action === 'read'
636
- },
637
- error: !!fieldState.error,
638
- helperText: ((_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message) ? fieldState.error.message : 'When All is selected, this value will be used',
639
- value: (_state_listVariableFields_customAllValue = state.listVariableFields.customAllValue) !== null && _state_listVariableFields_customAllValue !== void 0 ? _state_listVariableFields_customAllValue : '',
640
- onChange: (event)=>{
641
- field.onChange(event);
642
- setState((draft)=>{
643
- if (event.target.value) {
644
- draft.listVariableFields.customAllValue = event.target.value;
645
- } else {
646
- draft.listVariableFields.customAllValue = undefined;
647
- }
648
- });
649
- }
650
- });
651
- }
652
- })
653
- ]
654
- })
655
- ]
656
- })
657
- ]
601
+ kind === 'ListVariable' && /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
602
+ FallbackComponent: _components.ErrorAlert,
603
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(ListVariableEditorForm, {
604
+ action: action,
605
+ control: form.control
606
+ })
658
607
  })
659
608
  ]
660
609
  }),