@perses-dev/plugin-system 0.38.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/dist/cjs/components/CalculationSelector/CalculationSelector.js +6 -4
  2. package/dist/cjs/components/CalculationSelector/index.js +10 -8
  3. package/dist/cjs/components/DatasourceEditorForm/DatasourceEditorForm.js +380 -0
  4. package/dist/cjs/components/DatasourceEditorForm/index.js +30 -0
  5. package/dist/cjs/components/DatasourceSelect.js +119 -21
  6. package/dist/cjs/components/LegendOptionsEditor/LegendOptionsEditor.js +18 -16
  7. package/dist/cjs/components/LegendOptionsEditor/index.js +10 -8
  8. package/dist/cjs/components/OptionsEditorRadios/OptionsEditorRadios.js +69 -0
  9. package/dist/cjs/components/OptionsEditorRadios/index.js +30 -0
  10. package/dist/cjs/components/{OptionsEditorTabs/TabPanel.js → OptionsEditorTabPanel/OptionsEditorTabPanel.js} +8 -6
  11. package/dist/cjs/components/OptionsEditorTabPanel/index.js +30 -0
  12. package/dist/cjs/components/OptionsEditorTabs/OptionsEditorTabs.js +10 -8
  13. package/dist/cjs/components/OptionsEditorTabs/index.js +10 -8
  14. package/dist/cjs/components/PanelSpecEditor/PanelSpecEditor.js +13 -11
  15. package/dist/cjs/components/PanelSpecEditor/index.js +10 -8
  16. package/dist/cjs/components/PluginEditor/PluginEditor.js +24 -31
  17. package/dist/cjs/components/PluginEditor/index.js +11 -9
  18. package/dist/cjs/components/PluginEditor/plugin-editor-api.js +5 -3
  19. package/dist/cjs/components/PluginKindSelect/PluginKindSelect.js +23 -12
  20. package/dist/cjs/components/PluginKindSelect/index.js +10 -8
  21. package/dist/cjs/components/PluginRegistry/PluginRegistry.js +11 -9
  22. package/dist/cjs/components/PluginRegistry/index.js +10 -8
  23. package/dist/cjs/components/PluginRegistry/plugin-indexes.js +6 -2
  24. package/dist/cjs/components/PluginSpecEditor/PluginSpecEditor.js +6 -4
  25. package/dist/cjs/components/PluginSpecEditor/index.js +10 -8
  26. package/dist/cjs/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js +15 -13
  27. package/dist/cjs/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js +21 -19
  28. package/dist/cjs/components/TimeSeriesQueryEditor/index.js +10 -8
  29. package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +256 -166
  30. package/dist/cjs/components/Variables/VariableEditorForm/VariablePreview.js +32 -28
  31. package/dist/cjs/components/Variables/VariableEditorForm/index.js +11 -9
  32. package/dist/cjs/components/Variables/VariableEditorForm/variable-editor-form-model.js +28 -32
  33. package/dist/cjs/components/Variables/index.js +11 -9
  34. package/dist/cjs/components/Variables/variable-model.js +17 -9
  35. package/dist/cjs/components/index.js +22 -18
  36. package/dist/cjs/constants/index.js +10 -8
  37. package/dist/cjs/constants/user-interface-text.js +3 -1
  38. package/dist/cjs/index.js +16 -13
  39. package/dist/cjs/model/index.js +17 -15
  40. package/dist/cjs/model/legend.js +32 -20
  41. package/dist/cjs/model/panels.js +2 -2
  42. package/dist/cjs/model/plugin-base.js +2 -2
  43. package/dist/cjs/model/plugin-loading.js +3 -1
  44. package/dist/cjs/runtime/DataQueriesProvider/DataQueriesProvider.js +55 -35
  45. package/dist/cjs/runtime/DataQueriesProvider/index.js +11 -9
  46. package/dist/cjs/runtime/DataQueriesProvider/model.js +61 -0
  47. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeProvider.js +19 -11
  48. package/dist/cjs/runtime/TimeRangeProvider/index.js +11 -9
  49. package/dist/cjs/runtime/TimeRangeProvider/query-params.js +36 -18
  50. package/dist/cjs/runtime/builtin-variables.js +81 -0
  51. package/dist/cjs/runtime/datasources.js +29 -11
  52. package/dist/cjs/runtime/index.js +16 -13
  53. package/dist/cjs/runtime/plugin-registry.js +41 -11
  54. package/dist/cjs/runtime/template-variables.js +96 -4
  55. package/dist/cjs/runtime/time-series-queries.js +39 -27
  56. package/dist/cjs/stories/shared-utils/decorators/WithDataQueries.js +7 -5
  57. package/dist/cjs/stories/shared-utils/decorators/WithPluginRegistry.js +16 -14
  58. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +42 -0
  59. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +19 -13
  60. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js +6 -4
  61. package/dist/cjs/stories/shared-utils/decorators/WithTimeRange.js +7 -5
  62. package/dist/cjs/stories/shared-utils/decorators/index.js +15 -12
  63. package/dist/cjs/stories/shared-utils/index.js +10 -8
  64. package/dist/cjs/test/index.js +11 -8
  65. package/dist/cjs/test/mock-data.js +57 -0
  66. package/dist/cjs/test/render.js +13 -11
  67. package/dist/cjs/test/test-plugins/bert/index.js +14 -10
  68. package/dist/cjs/test/test-plugins/ernie/index.js +13 -9
  69. package/dist/cjs/test/test-plugins/index.js +11 -9
  70. package/dist/cjs/test-utils/index.js +10 -8
  71. package/dist/cjs/test-utils/mock-plugin-registry.js +8 -4
  72. package/dist/cjs/utils/action.js +43 -0
  73. package/dist/cjs/utils/index.js +11 -8
  74. package/dist/cjs/utils/variables.js +26 -8
  75. package/dist/cjs/validation/datasource.js +30 -0
  76. package/dist/cjs/validation/index.js +32 -0
  77. package/dist/cjs/validation/resource.js +24 -0
  78. package/dist/cjs/validation/variable.js +29 -0
  79. package/dist/components/CalculationSelector/CalculationSelector.js.map +1 -1
  80. package/dist/components/CalculationSelector/index.js.map +1 -1
  81. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts +15 -0
  82. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts.map +1 -0
  83. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js +333 -0
  84. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js.map +1 -0
  85. package/dist/components/DatasourceEditorForm/index.d.ts +2 -0
  86. package/dist/components/DatasourceEditorForm/index.d.ts.map +1 -0
  87. package/dist/components/DatasourceEditorForm/index.js +15 -0
  88. package/dist/components/DatasourceEditorForm/index.js.map +1 -0
  89. package/dist/components/DatasourceSelect.d.ts +5 -0
  90. package/dist/components/DatasourceSelect.d.ts.map +1 -1
  91. package/dist/components/DatasourceSelect.js +102 -19
  92. package/dist/components/DatasourceSelect.js.map +1 -1
  93. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js +2 -2
  94. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js.map +1 -1
  95. package/dist/components/LegendOptionsEditor/index.js.map +1 -1
  96. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts +16 -0
  97. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts.map +1 -0
  98. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js +61 -0
  99. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js.map +1 -0
  100. package/dist/components/OptionsEditorRadios/index.d.ts +2 -0
  101. package/dist/components/OptionsEditorRadios/index.d.ts.map +1 -0
  102. package/dist/components/OptionsEditorRadios/index.js +15 -0
  103. package/dist/components/OptionsEditorRadios/index.js.map +1 -0
  104. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts +9 -0
  105. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts.map +1 -0
  106. package/dist/components/{OptionsEditorTabs/TabPanel.js → OptionsEditorTabPanel/OptionsEditorTabPanel.js} +2 -2
  107. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js.map +1 -0
  108. package/dist/components/OptionsEditorTabPanel/index.d.ts +2 -0
  109. package/dist/components/OptionsEditorTabPanel/index.d.ts.map +1 -0
  110. package/dist/components/OptionsEditorTabPanel/index.js +15 -0
  111. package/dist/components/OptionsEditorTabPanel/index.js.map +1 -0
  112. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js +2 -2
  113. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js.map +1 -1
  114. package/dist/components/OptionsEditorTabs/index.js.map +1 -1
  115. package/dist/components/PanelSpecEditor/PanelSpecEditor.js +2 -2
  116. package/dist/components/PanelSpecEditor/PanelSpecEditor.js.map +1 -1
  117. package/dist/components/PanelSpecEditor/index.js.map +1 -1
  118. package/dist/components/PluginEditor/PluginEditor.js +15 -24
  119. package/dist/components/PluginEditor/PluginEditor.js.map +1 -1
  120. package/dist/components/PluginEditor/index.js.map +1 -1
  121. package/dist/components/PluginEditor/plugin-editor-api.d.ts +1 -1
  122. package/dist/components/PluginEditor/plugin-editor-api.js +2 -2
  123. package/dist/components/PluginEditor/plugin-editor-api.js.map +1 -1
  124. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts +3 -3
  125. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts.map +1 -1
  126. package/dist/components/PluginKindSelect/PluginKindSelect.js +21 -12
  127. package/dist/components/PluginKindSelect/PluginKindSelect.js.map +1 -1
  128. package/dist/components/PluginKindSelect/index.js.map +1 -1
  129. package/dist/components/PluginRegistry/PluginRegistry.js +3 -3
  130. package/dist/components/PluginRegistry/PluginRegistry.js.map +1 -1
  131. package/dist/components/PluginRegistry/index.js.map +1 -1
  132. package/dist/components/PluginRegistry/plugin-indexes.js.map +1 -1
  133. package/dist/components/PluginSpecEditor/PluginSpecEditor.js.map +1 -1
  134. package/dist/components/PluginSpecEditor/index.js.map +1 -1
  135. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js +4 -4
  136. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js.map +1 -1
  137. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js +1 -1
  138. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js.map +1 -1
  139. package/dist/components/TimeSeriesQueryEditor/index.js.map +1 -1
  140. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts +10 -7
  141. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -1
  142. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +200 -112
  143. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -1
  144. package/dist/components/Variables/VariableEditorForm/VariablePreview.js.map +1 -1
  145. package/dist/components/Variables/VariableEditorForm/index.js.map +1 -1
  146. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts +5 -4
  147. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts.map +1 -1
  148. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js +22 -30
  149. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js.map +1 -1
  150. package/dist/components/Variables/index.js.map +1 -1
  151. package/dist/components/Variables/variable-model.js +3 -3
  152. package/dist/components/Variables/variable-model.js.map +1 -1
  153. package/dist/components/index.d.ts +2 -0
  154. package/dist/components/index.d.ts.map +1 -1
  155. package/dist/components/index.js +2 -0
  156. package/dist/components/index.js.map +1 -1
  157. package/dist/constants/index.js.map +1 -1
  158. package/dist/constants/user-interface-text.js.map +1 -1
  159. package/dist/index.d.ts +1 -0
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +1 -0
  162. package/dist/index.js.map +1 -1
  163. package/dist/model/datasource.d.ts +2 -1
  164. package/dist/model/datasource.d.ts.map +1 -1
  165. package/dist/model/datasource.js.map +1 -1
  166. package/dist/model/index.js.map +1 -1
  167. package/dist/model/legend.d.ts +1 -1
  168. package/dist/model/legend.d.ts.map +1 -1
  169. package/dist/model/legend.js +14 -14
  170. package/dist/model/legend.js.map +1 -1
  171. package/dist/model/panels.js.map +1 -1
  172. package/dist/model/plugin-base.js.map +1 -1
  173. package/dist/model/plugin-loading.js.map +1 -1
  174. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts +5 -5
  175. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts.map +1 -1
  176. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js +40 -28
  177. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js.map +1 -1
  178. package/dist/runtime/DataQueriesProvider/index.js.map +1 -1
  179. package/dist/runtime/DataQueriesProvider/model.d.ts +17 -12
  180. package/dist/runtime/DataQueriesProvider/model.d.ts.map +1 -1
  181. package/dist/runtime/DataQueriesProvider/model.js +47 -1
  182. package/dist/runtime/DataQueriesProvider/model.js.map +1 -1
  183. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js.map +1 -1
  184. package/dist/runtime/TimeRangeProvider/index.js.map +1 -1
  185. package/dist/runtime/TimeRangeProvider/query-params.js +1 -1
  186. package/dist/runtime/TimeRangeProvider/query-params.js.map +1 -1
  187. package/dist/runtime/builtin-variables.d.ts +11 -0
  188. package/dist/runtime/builtin-variables.d.ts.map +1 -0
  189. package/dist/runtime/builtin-variables.js +59 -0
  190. package/dist/runtime/builtin-variables.js.map +1 -0
  191. package/dist/runtime/datasources.d.ts +14 -6
  192. package/dist/runtime/datasources.d.ts.map +1 -1
  193. package/dist/runtime/datasources.js +13 -6
  194. package/dist/runtime/datasources.js.map +1 -1
  195. package/dist/runtime/index.d.ts +1 -0
  196. package/dist/runtime/index.d.ts.map +1 -1
  197. package/dist/runtime/index.js +1 -0
  198. package/dist/runtime/index.js.map +1 -1
  199. package/dist/runtime/plugin-registry.d.ts +2 -0
  200. package/dist/runtime/plugin-registry.d.ts.map +1 -1
  201. package/dist/runtime/plugin-registry.js +19 -2
  202. package/dist/runtime/plugin-registry.js.map +1 -1
  203. package/dist/runtime/template-variables.d.ts +62 -2
  204. package/dist/runtime/template-variables.d.ts.map +1 -1
  205. package/dist/runtime/template-variables.js +83 -1
  206. package/dist/runtime/template-variables.js.map +1 -1
  207. package/dist/runtime/time-series-queries.d.ts +3 -3
  208. package/dist/runtime/time-series-queries.d.ts.map +1 -1
  209. package/dist/runtime/time-series-queries.js +14 -12
  210. package/dist/runtime/time-series-queries.js.map +1 -1
  211. package/dist/stories/shared-utils/decorators/WithDataQueries.js.map +1 -1
  212. package/dist/stories/shared-utils/decorators/WithPluginRegistry.js.map +1 -1
  213. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts +13 -0
  214. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts.map +1 -0
  215. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +39 -0
  216. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js.map +1 -0
  217. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.d.ts.map +1 -1
  218. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +11 -7
  219. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js.map +1 -1
  220. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js.map +1 -1
  221. package/dist/stories/shared-utils/decorators/WithTimeRange.js.map +1 -1
  222. package/dist/stories/shared-utils/decorators/index.d.ts +1 -0
  223. package/dist/stories/shared-utils/decorators/index.d.ts.map +1 -1
  224. package/dist/stories/shared-utils/decorators/index.js +1 -0
  225. package/dist/stories/shared-utils/decorators/index.js.map +1 -1
  226. package/dist/stories/shared-utils/index.js.map +1 -1
  227. package/dist/test/index.d.ts +1 -0
  228. package/dist/test/index.d.ts.map +1 -1
  229. package/dist/test/index.js +1 -0
  230. package/dist/test/index.js.map +1 -1
  231. package/dist/test/mock-data.d.ts +3 -0
  232. package/dist/test/mock-data.d.ts.map +1 -0
  233. package/dist/test/mock-data.js +49 -0
  234. package/dist/test/mock-data.js.map +1 -0
  235. package/dist/test/render.js +2 -2
  236. package/dist/test/render.js.map +1 -1
  237. package/dist/test/setup-tests.js.map +1 -1
  238. package/dist/test/test-plugins/bert/index.js.map +1 -1
  239. package/dist/test/test-plugins/ernie/index.js.map +1 -1
  240. package/dist/test/test-plugins/index.js.map +1 -1
  241. package/dist/test-utils/index.js.map +1 -1
  242. package/dist/test-utils/mock-plugin-registry.js +2 -2
  243. package/dist/test-utils/mock-plugin-registry.js.map +1 -1
  244. package/dist/utils/action.d.ts +4 -0
  245. package/dist/utils/action.d.ts.map +1 -0
  246. package/dist/utils/action.js +27 -0
  247. package/dist/utils/action.js.map +1 -0
  248. package/dist/utils/index.d.ts +1 -0
  249. package/dist/utils/index.d.ts.map +1 -1
  250. package/dist/utils/index.js +1 -0
  251. package/dist/utils/index.js.map +1 -1
  252. package/dist/utils/variables.d.ts.map +1 -1
  253. package/dist/utils/variables.js +17 -5
  254. package/dist/utils/variables.js.map +1 -1
  255. package/dist/validation/datasource.d.ts +19 -0
  256. package/dist/validation/datasource.d.ts.map +1 -0
  257. package/dist/validation/datasource.js +22 -0
  258. package/dist/validation/datasource.js.map +1 -0
  259. package/dist/validation/index.d.ts +4 -0
  260. package/dist/validation/index.d.ts.map +1 -0
  261. package/dist/validation/index.js +17 -0
  262. package/dist/validation/index.js.map +1 -0
  263. package/dist/validation/resource.d.ts +3 -0
  264. package/dist/validation/resource.d.ts.map +1 -0
  265. package/dist/validation/resource.js +16 -0
  266. package/dist/validation/resource.js.map +1 -0
  267. package/dist/validation/variable.d.ts +19 -0
  268. package/dist/validation/variable.d.ts.map +1 -0
  269. package/dist/validation/variable.js +21 -0
  270. package/dist/validation/variable.js.map +1 -0
  271. package/package.json +8 -6
  272. package/dist/components/OptionsEditorTabs/TabPanel.d.ts +0 -9
  273. package/dist/components/OptionsEditorTabs/TabPanel.d.ts.map +0 -1
  274. package/dist/components/OptionsEditorTabs/TabPanel.js.map +0 -1
@@ -14,19 +14,25 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- Object.defineProperty(exports, "VariableEditForm", {
17
+ Object.defineProperty(exports, "VariableEditorForm", {
18
18
  enumerable: true,
19
- get: ()=>VariableEditForm
19
+ get: function() {
20
+ return VariableEditorForm;
21
+ }
20
22
  });
21
- const _jsxRuntime = require("react/jsx-runtime");
22
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
23
+ const _jsxruntime = require("react/jsx-runtime");
24
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
23
25
  const _material = require("@mui/material");
24
- const _useImmer = require("use-immer");
26
+ const _useimmer = require("use-immer");
25
27
  const _components = require("@perses-dev/components");
26
- const _variableModel = require("../variable-model");
27
- const _pluginEditor = require("../../PluginEditor");
28
- const _variablePreview = require("./VariablePreview");
29
- const _variableEditorFormModel = require("./variable-editor-form-model");
28
+ const _reacthookform = require("react-hook-form");
29
+ const _zod = require("@hookform/resolvers/zod");
30
+ const _utils = require("../../../utils");
31
+ const _variablemodel = require("../variable-model");
32
+ const _PluginEditor = require("../../PluginEditor");
33
+ const _validation = require("../../../validation");
34
+ const _VariablePreview = require("./VariablePreview");
35
+ const _variableeditorformmodel = require("./variable-editor-form-model");
30
36
  function _getRequireWildcardCache(nodeInterop) {
31
37
  if (typeof WeakMap !== "function") return null;
32
38
  var cacheBabelInterop = new WeakMap();
@@ -35,7 +41,7 @@ function _getRequireWildcardCache(nodeInterop) {
35
41
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
36
42
  })(nodeInterop);
37
43
  }
38
- function _interopRequireWildcard(obj, nodeInterop) {
44
+ function _interop_require_wildcard(obj, nodeInterop) {
39
45
  if (!nodeInterop && obj && obj.__esModule) {
40
46
  return obj;
41
47
  }
@@ -66,35 +72,18 @@ function _interopRequireWildcard(obj, nodeInterop) {
66
72
  }
67
73
  return newObj;
68
74
  }
69
- // TODO: Replace with proper validation library
70
- function getValidation(state) {
71
- /** Name validation */ let name = null;
72
- if (!state.name) {
73
- name = 'Name is required';
74
- }
75
- // name can only contain alphanumeric characters and underscores and no spaces
76
- if (state.name && !/^[a-zA-Z0-9_-]+$/.test(state.name)) {
77
- name = 'Name can only contain alphanumeric characters, underscores, and dashes';
78
- }
79
- return {
80
- name,
81
- isValid: !name
82
- };
83
- }
84
75
  function FallbackPreview() {
85
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)("div", {
76
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
86
77
  children: "Error previewing values"
87
78
  });
88
79
  }
89
- function VariableEditForm(props) {
90
- const { initialVariableDefinition , onChange , onCancel , action ='update' } = props;
91
- const initialState = (0, _variableEditorFormModel.getInitialState)(initialVariableDefinition);
92
- const [state, setState] = (0, _useImmer.useImmer)(initialState);
93
- const validation = (0, _react.useMemo)(()=>getValidation(state), [
94
- state
95
- ]);
96
- const [isDiscardDialogStateOpened, setDiscardDialogStateOpened] = (0, _react.useState)(false);
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);
97
85
  const [previewKey, setPreviewKey] = (0, _react.useState)(0);
86
+ const [action, setAction] = (0, _react.useState)(initialAction);
98
87
  const refreshPreview = ()=>{
99
88
  setPreviewKey((prev)=>prev + 1);
100
89
  };
@@ -102,39 +91,42 @@ function VariableEditForm(props) {
102
91
  * spec that will be used for preview. The reason why we do this is to avoid
103
92
  * having to re-fetch the values when the user is still editing the spec.
104
93
  */ const previewSpec = (0, _react.useMemo)(()=>{
105
- return (0, _variableEditorFormModel.getVariableDefinitionFromState)(state);
94
+ return (0, _variableeditorformmodel.getVariableDefinitionFromState)(state);
106
95
  // eslint-disable-next-line react-hooks/exhaustive-deps
107
96
  }, [
108
97
  previewKey
109
98
  ]);
110
- const title = (0, _react.useMemo)(()=>{
111
- if (action === 'read') return 'View Variable';
112
- if (action === 'create') return 'Create Variable';
113
- if (action === 'update') return 'Edit Variable';
114
- return '';
115
- }, [
116
- action
117
- ]);
99
+ const titleAction = (0, _utils.getTitleAction)(action, isDraft);
100
+ const submitText = (0, _utils.getSubmitText)(action, isDraft);
101
+ const form = (0, _reacthookform.useForm)({
102
+ resolver: (0, _zod.zodResolver)(_validation.variableEditValidationSchema),
103
+ mode: 'onBlur',
104
+ defaultValues: state
105
+ });
106
+ const processForm = ()=>{
107
+ onSave((0, _variableeditorformmodel.getVariableDefinitionFromState)(state));
108
+ };
118
109
  // When user click on cancel, several possibilities:
119
110
  // - create action: ask for discard approval
120
111
  // - update action: ask for discard approval if changed
121
112
  // - read action: don´t ask for discard approval
122
113
  const handleCancel = (0, _react.useCallback)(()=>{
123
- if (action === 'create' || action === 'update' && JSON.stringify(initialState) !== JSON.stringify(state)) {
124
- setDiscardDialogStateOpened(true);
114
+ if (JSON.stringify(initialState) !== JSON.stringify(state)) {
115
+ setDiscardDialogOpened(true);
125
116
  } else {
126
- onCancel();
117
+ onClose();
127
118
  }
128
119
  }, [
129
120
  state,
130
121
  initialState,
131
- action,
132
- setDiscardDialogStateOpened,
133
- onCancel
122
+ setDiscardDialogOpened,
123
+ onClose
134
124
  ]);
135
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
125
+ var _state_textVariableFields_constant;
126
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_reacthookform.FormProvider, {
127
+ ...form,
136
128
  children: [
137
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
129
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Box, {
138
130
  sx: {
139
131
  display: 'flex',
140
132
  alignItems: 'center',
@@ -142,152 +134,231 @@ function VariableEditForm(props) {
142
134
  borderBottom: (theme)=>`1px solid ${theme.palette.divider}`
143
135
  },
144
136
  children: [
145
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
137
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Typography, {
146
138
  variant: "h2",
147
- children: title
139
+ children: [
140
+ titleAction,
141
+ " Variable"
142
+ ]
148
143
  }),
149
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
144
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
150
145
  direction: "row",
151
146
  spacing: 1,
152
147
  sx: {
153
148
  marginLeft: 'auto'
154
149
  },
155
- children: [
156
- action !== 'read' && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
157
- disabled: !validation.isValid,
158
- variant: "contained",
159
- onClick: ()=>{
160
- onChange((0, _variableEditorFormModel.getVariableDefinitionFromState)(state));
161
- },
162
- children: (0, _material.capitalize)(action)
163
- }),
164
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
165
- color: "secondary",
166
- variant: "outlined",
167
- onClick: handleCancel,
168
- children: action === 'read' ? 'Close' : 'Cancel'
169
- })
170
- ]
150
+ children: action === 'read' ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
151
+ children: [
152
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
153
+ disabled: isReadonly,
154
+ variant: "contained",
155
+ onClick: ()=>setAction('update'),
156
+ children: "Edit"
157
+ }),
158
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
159
+ color: "error",
160
+ variant: "outlined",
161
+ onClick: onDelete,
162
+ children: "Delete"
163
+ }),
164
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {
165
+ orientation: "vertical",
166
+ flexItem: true,
167
+ sx: (theme)=>({
168
+ borderColor: theme.palette.grey['500'],
169
+ '&.MuiDivider-root': {
170
+ marginLeft: 2,
171
+ marginRight: 1
172
+ }
173
+ })
174
+ }),
175
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
176
+ color: "secondary",
177
+ variant: "outlined",
178
+ onClick: onClose,
179
+ children: "Close"
180
+ })
181
+ ]
182
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
183
+ children: [
184
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
185
+ type: "submit",
186
+ variant: "contained",
187
+ disabled: !form.formState.isValid,
188
+ onClick: form.handleSubmit(processForm),
189
+ children: submitText
190
+ }),
191
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
192
+ color: "secondary",
193
+ variant: "outlined",
194
+ onClick: handleCancel,
195
+ children: "Cancel"
196
+ })
197
+ ]
198
+ })
171
199
  })
172
200
  ]
173
201
  }),
174
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
202
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Box, {
175
203
  padding: 2,
176
204
  sx: {
177
205
  overflowY: 'scroll'
178
206
  },
179
207
  children: [
180
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Grid, {
208
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Grid, {
181
209
  container: true,
182
210
  spacing: 2,
183
211
  mb: 2,
184
212
  children: [
185
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
213
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
186
214
  item: true,
187
215
  xs: 8,
188
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
189
- required: true,
190
- error: !!validation.name,
191
- fullWidth: true,
192
- label: "Name",
193
- value: state.name,
194
- helperText: validation.name,
195
- InputProps: {
196
- readOnly: action === 'update' || action === 'read'
197
- },
198
- onChange: (v)=>{
199
- setState((draft)=>{
200
- draft.name = v.target.value;
216
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
217
+ name: "name",
218
+ render: ({ field , fieldState })=>{
219
+ var _fieldState_error;
220
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
221
+ ...field,
222
+ required: true,
223
+ fullWidth: true,
224
+ label: "Name",
225
+ InputLabelProps: {
226
+ shrink: action === 'read' ? true : undefined
227
+ },
228
+ InputProps: {
229
+ disabled: action === 'update',
230
+ readOnly: action === 'read'
231
+ },
232
+ error: !!fieldState.error,
233
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
234
+ onChange: (event)=>{
235
+ field.onChange(event);
236
+ setState((draft)=>{
237
+ draft.name = event.target.value;
238
+ });
239
+ }
201
240
  });
202
241
  }
203
242
  })
204
243
  }),
205
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
244
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
206
245
  item: true,
207
246
  xs: 4,
208
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
209
- fullWidth: true,
210
- label: "Display Label",
211
- value: state.title || '',
212
- InputProps: {
213
- readOnly: action === 'read'
214
- },
215
- onChange: (v)=>{
216
- setState((draft)=>{
217
- draft.title = v.target.value;
247
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
248
+ name: "title",
249
+ render: ({ field , fieldState })=>{
250
+ var _fieldState_error;
251
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
252
+ ...field,
253
+ fullWidth: true,
254
+ label: "Display Label",
255
+ InputLabelProps: {
256
+ shrink: action === 'read' ? true : undefined
257
+ },
258
+ InputProps: {
259
+ readOnly: action === 'read'
260
+ },
261
+ error: !!fieldState.error,
262
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
263
+ onChange: (event)=>{
264
+ field.onChange(event);
265
+ setState((draft)=>{
266
+ draft.title = event.target.value;
267
+ });
268
+ }
218
269
  });
219
270
  }
220
271
  })
221
272
  }),
222
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
273
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
223
274
  item: true,
224
275
  xs: 8,
225
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
226
- fullWidth: true,
227
- label: "Description",
228
- value: state.description,
229
- InputProps: {
230
- readOnly: action === 'read'
231
- },
232
- onChange: (v)=>{
233
- setState((draft)=>{
234
- draft.description = v.target.value;
276
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
277
+ name: "description",
278
+ render: ({ field , fieldState })=>{
279
+ var _fieldState_error;
280
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
281
+ ...field,
282
+ fullWidth: true,
283
+ label: "Description",
284
+ InputLabelProps: {
285
+ shrink: action === 'read' ? true : undefined
286
+ },
287
+ InputProps: {
288
+ readOnly: action === 'read'
289
+ },
290
+ error: !!fieldState.error,
291
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
292
+ onChange: (event)=>{
293
+ field.onChange(event);
294
+ setState((draft)=>{
295
+ draft.description = event.target.value;
296
+ });
297
+ }
235
298
  });
236
299
  }
237
300
  })
238
301
  }),
239
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
302
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
240
303
  item: true,
241
304
  xs: 4,
242
- children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.FormControl, {
243
- fullWidth: true,
244
- children: [
245
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.InputLabel, {
246
- id: "variable-type-select-label",
247
- children: "Type"
248
- }),
249
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Select, {
250
- labelId: "variable-type-select-label",
251
- id: "variable-type-select",
305
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
306
+ name: "kind",
307
+ render: ({ field , fieldState })=>{
308
+ var _fieldState_error;
309
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
310
+ select: true,
311
+ ...field,
312
+ fullWidth: true,
252
313
  label: "Type",
253
- value: state.kind,
254
- readOnly: action === 'read',
255
- onChange: (v)=>{
314
+ InputLabelProps: {
315
+ shrink: action === 'read' ? true : undefined
316
+ },
317
+ InputProps: {
318
+ readOnly: action === 'read'
319
+ },
320
+ error: !!fieldState.error,
321
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
322
+ onChange: (event)=>{
323
+ field.onChange(event);
256
324
  setState((draft)=>{
257
- draft.kind = v.target.value;
325
+ draft.kind = event.target.value;
258
326
  });
259
327
  },
260
- children: _variableModel.VARIABLE_TYPES.map((v)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.MenuItem, {
328
+ children: _variablemodel.VARIABLE_TYPES.map((v)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
261
329
  value: v.kind,
262
330
  children: v.label
263
331
  }, v.kind))
264
- })
265
- ]
332
+ });
333
+ }
266
334
  })
267
335
  })
268
336
  ]
269
337
  }),
270
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Divider, {}),
271
- state.kind === 'TextVariable' && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
338
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
339
+ state.kind === 'TextVariable' && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
272
340
  children: [
273
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
341
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
274
342
  py: 1,
275
343
  variant: "subtitle1",
276
344
  children: "Text Options"
277
345
  }),
278
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
346
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
279
347
  spacing: 2,
280
348
  children: [
281
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
282
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariablePreview, {
349
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
350
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
283
351
  values: [
284
352
  state.textVariableFields.value
285
353
  ]
286
354
  })
287
355
  }),
288
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
356
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
289
357
  label: "Value",
290
358
  value: state.textVariableFields.value,
359
+ InputLabelProps: {
360
+ shrink: action === 'read' ? true : undefined
361
+ },
291
362
  InputProps: {
292
363
  readOnly: action === 'read'
293
364
  },
@@ -296,43 +367,56 @@ function VariableEditForm(props) {
296
367
  draft.textVariableFields.value = v.target.value;
297
368
  });
298
369
  }
370
+ }),
371
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
372
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
373
+ checked: (_state_textVariableFields_constant = state.textVariableFields.constant) !== null && _state_textVariableFields_constant !== void 0 ? _state_textVariableFields_constant : false,
374
+ readOnly: action === 'read',
375
+ onChange: (e)=>{
376
+ if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
377
+ setState((draft)=>{
378
+ draft.textVariableFields.constant = e.target.checked;
379
+ });
380
+ }
381
+ }),
382
+ label: "Constant"
299
383
  })
300
384
  ]
301
385
  })
302
386
  ]
303
387
  }),
304
- state.kind === 'ListVariable' && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
388
+ state.kind === 'ListVariable' && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
305
389
  children: [
306
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
390
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
307
391
  py: 1,
308
392
  variant: "subtitle1",
309
393
  children: "List Options"
310
394
  }),
311
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
395
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
312
396
  spacing: 2,
313
397
  mb: 2,
314
398
  children: [
315
- state.listVariableFields.plugin.kind ? /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
316
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.ErrorBoundary, {
399
+ state.listVariableFields.plugin.kind ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
400
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
317
401
  FallbackComponent: FallbackPreview,
318
402
  resetKeys: [
319
403
  previewSpec
320
404
  ],
321
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariableListPreview, {
405
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariableListPreview, {
322
406
  definition: previewSpec,
323
407
  onRefresh: refreshPreview
324
408
  })
325
409
  })
326
- }) : /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariablePreview, {
410
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
327
411
  isLoading: true
328
412
  }),
329
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
413
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
330
414
  children: [
331
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.ClickAwayListener, {
415
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.ClickAwayListener, {
332
416
  onClickAway: ()=>refreshPreview(),
333
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {})
417
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {})
334
418
  }),
335
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginEditor.PluginEditor, {
419
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_PluginEditor.PluginEditor, {
336
420
  width: "100%",
337
421
  pluginType: "Variable",
338
422
  pluginKindLabel: "Source",
@@ -346,10 +430,13 @@ function VariableEditForm(props) {
346
430
  })
347
431
  ]
348
432
  }),
349
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Stack, {
350
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
433
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
434
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
351
435
  label: "Capturing Regexp Filter",
352
- value: state.listVariableFields.capturing_regexp || '',
436
+ value: state.listVariableFields.capturingRegexp || '',
437
+ InputLabelProps: {
438
+ shrink: action === 'read' ? true : undefined
439
+ },
353
440
  InputProps: {
354
441
  readOnly: action === 'read'
355
442
  },
@@ -357,9 +444,9 @@ function VariableEditForm(props) {
357
444
  setState((draft)=>{
358
445
  if (e.target.value) {
359
446
  // TODO: do a better fix, if empty string => it should skip the filter
360
- draft.listVariableFields.capturing_regexp = e.target.value;
447
+ draft.listVariableFields.capturingRegexp = e.target.value;
361
448
  } else {
362
- draft.listVariableFields.capturing_regexp = undefined;
449
+ draft.listVariableFields.capturingRegexp = undefined;
363
450
  }
364
451
  });
365
452
  },
@@ -368,19 +455,19 @@ function VariableEditForm(props) {
368
455
  })
369
456
  ]
370
457
  }),
371
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Divider, {}),
372
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
458
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
459
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
373
460
  py: 1,
374
461
  variant: "subtitle1",
375
462
  children: "Dropdown Options"
376
463
  }),
377
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
464
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
378
465
  spacing: "2",
379
466
  children: [
380
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
467
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
381
468
  children: [
382
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.FormControlLabel, {
383
- control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
469
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
470
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
384
471
  checked: state.listVariableFields.allowMultiple,
385
472
  readOnly: action === 'read',
386
473
  onChange: (e)=>{
@@ -392,16 +479,16 @@ function VariableEditForm(props) {
392
479
  }),
393
480
  label: "Allow Multiple Values"
394
481
  }),
395
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
482
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
396
483
  variant: "caption",
397
484
  children: "Enables multiple values to be selected at the same time"
398
485
  })
399
486
  ]
400
487
  }),
401
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
488
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
402
489
  children: [
403
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.FormControlLabel, {
404
- control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
490
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
491
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
405
492
  checked: state.listVariableFields.allowAll,
406
493
  readOnly: action === 'read',
407
494
  onChange: (e)=>{
@@ -413,14 +500,17 @@ function VariableEditForm(props) {
413
500
  }),
414
501
  label: "Allow All option"
415
502
  }),
416
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
503
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
417
504
  mb: 1,
418
505
  variant: "caption",
419
506
  children: "Enables an option to include all variable values"
420
507
  }),
421
- state.listVariableFields.allowAll && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
508
+ state.listVariableFields.allowAll && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
422
509
  label: "Custom All Value",
423
510
  value: state.listVariableFields.customAllValue,
511
+ InputLabelProps: {
512
+ shrink: action === 'read' ? true : undefined
513
+ },
424
514
  InputProps: {
425
515
  readOnly: action === 'read'
426
516
  },
@@ -443,15 +533,15 @@ function VariableEditForm(props) {
443
533
  })
444
534
  ]
445
535
  }),
446
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.DiscardChangesConfirmationDialog, {
536
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.DiscardChangesConfirmationDialog, {
447
537
  description: "Are you sure you want to discard these changes? Changes cannot be recovered.",
448
- isOpen: isDiscardDialogStateOpened,
538
+ isOpen: isDiscardDialogOpened,
449
539
  onCancel: ()=>{
450
- setDiscardDialogStateOpened(false);
540
+ setDiscardDialogOpened(false);
451
541
  },
452
542
  onDiscardChanges: ()=>{
453
- setDiscardDialogStateOpened(false);
454
- onCancel();
543
+ setDiscardDialogOpened(false);
544
+ onClose();
455
545
  }
456
546
  })
457
547
  ]