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