@perses-dev/plugin-system 0.39.0 → 0.40.1

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 (253) 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 +381 -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 +23 -28
  9. package/dist/cjs/components/OptionsEditorRadios/index.js +10 -8
  10. package/dist/cjs/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js +6 -4
  11. package/dist/cjs/components/OptionsEditorTabPanel/index.js +10 -8
  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 +257 -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 -19
  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 +19 -11
  45. package/dist/cjs/runtime/DataQueriesProvider/index.js +11 -9
  46. package/dist/cjs/runtime/DataQueriesProvider/model.js +12 -8
  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 +42 -12
  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 -9
  65. package/dist/cjs/test/mock-data.js +3 -1
  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 +334 -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 +2 -2
  97. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts.map +1 -1
  98. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js +16 -23
  99. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js.map +1 -1
  100. package/dist/components/OptionsEditorRadios/index.js.map +1 -1
  101. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js.map +1 -1
  102. package/dist/components/OptionsEditorTabPanel/index.js.map +1 -1
  103. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js.map +1 -1
  104. package/dist/components/OptionsEditorTabs/index.js.map +1 -1
  105. package/dist/components/PanelSpecEditor/PanelSpecEditor.js +2 -2
  106. package/dist/components/PanelSpecEditor/PanelSpecEditor.js.map +1 -1
  107. package/dist/components/PanelSpecEditor/index.js.map +1 -1
  108. package/dist/components/PluginEditor/PluginEditor.js +15 -24
  109. package/dist/components/PluginEditor/PluginEditor.js.map +1 -1
  110. package/dist/components/PluginEditor/index.js.map +1 -1
  111. package/dist/components/PluginEditor/plugin-editor-api.d.ts +1 -1
  112. package/dist/components/PluginEditor/plugin-editor-api.js +2 -2
  113. package/dist/components/PluginEditor/plugin-editor-api.js.map +1 -1
  114. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts +3 -3
  115. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts.map +1 -1
  116. package/dist/components/PluginKindSelect/PluginKindSelect.js +21 -12
  117. package/dist/components/PluginKindSelect/PluginKindSelect.js.map +1 -1
  118. package/dist/components/PluginKindSelect/index.js.map +1 -1
  119. package/dist/components/PluginRegistry/PluginRegistry.js +3 -3
  120. package/dist/components/PluginRegistry/PluginRegistry.js.map +1 -1
  121. package/dist/components/PluginRegistry/index.js.map +1 -1
  122. package/dist/components/PluginRegistry/plugin-indexes.js.map +1 -1
  123. package/dist/components/PluginSpecEditor/PluginSpecEditor.js.map +1 -1
  124. package/dist/components/PluginSpecEditor/index.js.map +1 -1
  125. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js +4 -4
  126. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js.map +1 -1
  127. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js +1 -1
  128. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js.map +1 -1
  129. package/dist/components/TimeSeriesQueryEditor/index.js.map +1 -1
  130. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts +10 -7
  131. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -1
  132. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +201 -112
  133. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -1
  134. package/dist/components/Variables/VariableEditorForm/VariablePreview.js.map +1 -1
  135. package/dist/components/Variables/VariableEditorForm/index.js.map +1 -1
  136. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts +5 -4
  137. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts.map +1 -1
  138. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js +22 -30
  139. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js.map +1 -1
  140. package/dist/components/Variables/index.js.map +1 -1
  141. package/dist/components/Variables/variable-model.js +3 -3
  142. package/dist/components/Variables/variable-model.js.map +1 -1
  143. package/dist/components/index.d.ts +1 -0
  144. package/dist/components/index.d.ts.map +1 -1
  145. package/dist/components/index.js +1 -0
  146. package/dist/components/index.js.map +1 -1
  147. package/dist/constants/index.js.map +1 -1
  148. package/dist/constants/user-interface-text.js.map +1 -1
  149. package/dist/index.d.ts +1 -0
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.js +1 -0
  152. package/dist/index.js.map +1 -1
  153. package/dist/model/datasource.d.ts +2 -1
  154. package/dist/model/datasource.d.ts.map +1 -1
  155. package/dist/model/datasource.js.map +1 -1
  156. package/dist/model/index.js.map +1 -1
  157. package/dist/model/legend.d.ts +1 -1
  158. package/dist/model/legend.d.ts.map +1 -1
  159. package/dist/model/legend.js +14 -14
  160. package/dist/model/legend.js.map +1 -1
  161. package/dist/model/panels.js.map +1 -1
  162. package/dist/model/plugin-base.js.map +1 -1
  163. package/dist/model/plugin-loading.js.map +1 -1
  164. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js +4 -4
  165. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js.map +1 -1
  166. package/dist/runtime/DataQueriesProvider/index.js.map +1 -1
  167. package/dist/runtime/DataQueriesProvider/model.d.ts +3 -2
  168. package/dist/runtime/DataQueriesProvider/model.d.ts.map +1 -1
  169. package/dist/runtime/DataQueriesProvider/model.js +4 -4
  170. package/dist/runtime/DataQueriesProvider/model.js.map +1 -1
  171. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js.map +1 -1
  172. package/dist/runtime/TimeRangeProvider/index.js.map +1 -1
  173. package/dist/runtime/TimeRangeProvider/query-params.js +1 -1
  174. package/dist/runtime/TimeRangeProvider/query-params.js.map +1 -1
  175. package/dist/runtime/builtin-variables.d.ts +11 -0
  176. package/dist/runtime/builtin-variables.d.ts.map +1 -0
  177. package/dist/runtime/builtin-variables.js +59 -0
  178. package/dist/runtime/builtin-variables.js.map +1 -0
  179. package/dist/runtime/datasources.d.ts +14 -6
  180. package/dist/runtime/datasources.d.ts.map +1 -1
  181. package/dist/runtime/datasources.js +13 -6
  182. package/dist/runtime/datasources.js.map +1 -1
  183. package/dist/runtime/index.d.ts +1 -0
  184. package/dist/runtime/index.d.ts.map +1 -1
  185. package/dist/runtime/index.js +1 -0
  186. package/dist/runtime/index.js.map +1 -1
  187. package/dist/runtime/plugin-registry.d.ts +2 -0
  188. package/dist/runtime/plugin-registry.d.ts.map +1 -1
  189. package/dist/runtime/plugin-registry.js +19 -2
  190. package/dist/runtime/plugin-registry.js.map +1 -1
  191. package/dist/runtime/template-variables.d.ts +2 -1
  192. package/dist/runtime/template-variables.d.ts.map +1 -1
  193. package/dist/runtime/template-variables.js +27 -8
  194. package/dist/runtime/template-variables.js.map +1 -1
  195. package/dist/runtime/time-series-queries.d.ts +3 -3
  196. package/dist/runtime/time-series-queries.d.ts.map +1 -1
  197. package/dist/runtime/time-series-queries.js +14 -12
  198. package/dist/runtime/time-series-queries.js.map +1 -1
  199. package/dist/stories/shared-utils/decorators/WithDataQueries.js.map +1 -1
  200. package/dist/stories/shared-utils/decorators/WithPluginRegistry.js.map +1 -1
  201. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts +13 -0
  202. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts.map +1 -0
  203. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +39 -0
  204. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js.map +1 -0
  205. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.d.ts.map +1 -1
  206. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +11 -7
  207. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js.map +1 -1
  208. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js.map +1 -1
  209. package/dist/stories/shared-utils/decorators/WithTimeRange.js.map +1 -1
  210. package/dist/stories/shared-utils/decorators/index.d.ts +1 -0
  211. package/dist/stories/shared-utils/decorators/index.d.ts.map +1 -1
  212. package/dist/stories/shared-utils/decorators/index.js +1 -0
  213. package/dist/stories/shared-utils/decorators/index.js.map +1 -1
  214. package/dist/stories/shared-utils/index.js.map +1 -1
  215. package/dist/test/index.js.map +1 -1
  216. package/dist/test/mock-data.js.map +1 -1
  217. package/dist/test/render.js +2 -2
  218. package/dist/test/render.js.map +1 -1
  219. package/dist/test/setup-tests.js.map +1 -1
  220. package/dist/test/test-plugins/bert/index.js.map +1 -1
  221. package/dist/test/test-plugins/ernie/index.js.map +1 -1
  222. package/dist/test/test-plugins/index.js.map +1 -1
  223. package/dist/test-utils/index.js.map +1 -1
  224. package/dist/test-utils/mock-plugin-registry.js +2 -2
  225. package/dist/test-utils/mock-plugin-registry.js.map +1 -1
  226. package/dist/utils/action.d.ts +4 -0
  227. package/dist/utils/action.d.ts.map +1 -0
  228. package/dist/utils/action.js +27 -0
  229. package/dist/utils/action.js.map +1 -0
  230. package/dist/utils/index.d.ts +1 -0
  231. package/dist/utils/index.d.ts.map +1 -1
  232. package/dist/utils/index.js +1 -0
  233. package/dist/utils/index.js.map +1 -1
  234. package/dist/utils/variables.d.ts.map +1 -1
  235. package/dist/utils/variables.js +17 -5
  236. package/dist/utils/variables.js.map +1 -1
  237. package/dist/validation/datasource.d.ts +19 -0
  238. package/dist/validation/datasource.d.ts.map +1 -0
  239. package/dist/validation/datasource.js +22 -0
  240. package/dist/validation/datasource.js.map +1 -0
  241. package/dist/validation/index.d.ts +4 -0
  242. package/dist/validation/index.d.ts.map +1 -0
  243. package/dist/validation/index.js +17 -0
  244. package/dist/validation/index.js.map +1 -0
  245. package/dist/validation/resource.d.ts +3 -0
  246. package/dist/validation/resource.d.ts.map +1 -0
  247. package/dist/validation/resource.js +16 -0
  248. package/dist/validation/resource.js.map +1 -0
  249. package/dist/validation/variable.d.ts +19 -0
  250. package/dist/validation/variable.d.ts.map +1 -0
  251. package/dist/validation/variable.js +21 -0
  252. package/dist/validation/variable.js.map +1 -0
  253. package/package.json +8 -6
@@ -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,232 @@ 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
+ disabled: isReadonly,
161
+ variant: "outlined",
162
+ onClick: onDelete,
163
+ children: "Delete"
164
+ }),
165
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {
166
+ orientation: "vertical",
167
+ flexItem: true,
168
+ sx: (theme)=>({
169
+ borderColor: theme.palette.grey['500'],
170
+ '&.MuiDivider-root': {
171
+ marginLeft: 2,
172
+ marginRight: 1
173
+ }
174
+ })
175
+ }),
176
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
177
+ color: "secondary",
178
+ variant: "outlined",
179
+ onClick: onClose,
180
+ children: "Close"
181
+ })
182
+ ]
183
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
184
+ children: [
185
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
186
+ type: "submit",
187
+ variant: "contained",
188
+ disabled: !form.formState.isValid,
189
+ onClick: form.handleSubmit(processForm),
190
+ children: submitText
191
+ }),
192
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
193
+ color: "secondary",
194
+ variant: "outlined",
195
+ onClick: handleCancel,
196
+ children: "Cancel"
197
+ })
198
+ ]
199
+ })
171
200
  })
172
201
  ]
173
202
  }),
174
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
203
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Box, {
175
204
  padding: 2,
176
205
  sx: {
177
206
  overflowY: 'scroll'
178
207
  },
179
208
  children: [
180
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Grid, {
209
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Grid, {
181
210
  container: true,
182
211
  spacing: 2,
183
212
  mb: 2,
184
213
  children: [
185
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
214
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
186
215
  item: true,
187
216
  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;
217
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
218
+ name: "name",
219
+ render: ({ field , fieldState })=>{
220
+ var _fieldState_error;
221
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
222
+ ...field,
223
+ required: true,
224
+ fullWidth: true,
225
+ label: "Name",
226
+ InputLabelProps: {
227
+ shrink: action === 'read' ? true : undefined
228
+ },
229
+ InputProps: {
230
+ disabled: action === 'update',
231
+ readOnly: action === 'read'
232
+ },
233
+ error: !!fieldState.error,
234
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
235
+ onChange: (event)=>{
236
+ field.onChange(event);
237
+ setState((draft)=>{
238
+ draft.name = event.target.value;
239
+ });
240
+ }
201
241
  });
202
242
  }
203
243
  })
204
244
  }),
205
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
245
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
206
246
  item: true,
207
247
  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;
248
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
249
+ name: "title",
250
+ render: ({ field , fieldState })=>{
251
+ var _fieldState_error;
252
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
253
+ ...field,
254
+ fullWidth: true,
255
+ label: "Display Label",
256
+ InputLabelProps: {
257
+ shrink: action === 'read' ? true : undefined
258
+ },
259
+ InputProps: {
260
+ readOnly: action === 'read'
261
+ },
262
+ error: !!fieldState.error,
263
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
264
+ onChange: (event)=>{
265
+ field.onChange(event);
266
+ setState((draft)=>{
267
+ draft.title = event.target.value;
268
+ });
269
+ }
218
270
  });
219
271
  }
220
272
  })
221
273
  }),
222
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
274
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
223
275
  item: true,
224
276
  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;
277
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
278
+ name: "description",
279
+ render: ({ field , fieldState })=>{
280
+ var _fieldState_error;
281
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
282
+ ...field,
283
+ fullWidth: true,
284
+ label: "Description",
285
+ InputLabelProps: {
286
+ shrink: action === 'read' ? true : undefined
287
+ },
288
+ InputProps: {
289
+ readOnly: action === 'read'
290
+ },
291
+ error: !!fieldState.error,
292
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
293
+ onChange: (event)=>{
294
+ field.onChange(event);
295
+ setState((draft)=>{
296
+ draft.description = event.target.value;
297
+ });
298
+ }
235
299
  });
236
300
  }
237
301
  })
238
302
  }),
239
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
303
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
240
304
  item: true,
241
305
  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",
306
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
307
+ name: "kind",
308
+ render: ({ field , fieldState })=>{
309
+ var _fieldState_error;
310
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
311
+ select: true,
312
+ ...field,
313
+ fullWidth: true,
252
314
  label: "Type",
253
- value: state.kind,
254
- readOnly: action === 'read',
255
- onChange: (v)=>{
315
+ InputLabelProps: {
316
+ shrink: action === 'read' ? true : undefined
317
+ },
318
+ InputProps: {
319
+ readOnly: action === 'read'
320
+ },
321
+ error: !!fieldState.error,
322
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
323
+ onChange: (event)=>{
324
+ field.onChange(event);
256
325
  setState((draft)=>{
257
- draft.kind = v.target.value;
326
+ draft.kind = event.target.value;
258
327
  });
259
328
  },
260
- children: _variableModel.VARIABLE_TYPES.map((v)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.MenuItem, {
329
+ children: _variablemodel.VARIABLE_TYPES.map((v)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
261
330
  value: v.kind,
262
331
  children: v.label
263
332
  }, v.kind))
264
- })
265
- ]
333
+ });
334
+ }
266
335
  })
267
336
  })
268
337
  ]
269
338
  }),
270
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Divider, {}),
271
- state.kind === 'TextVariable' && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
339
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
340
+ state.kind === 'TextVariable' && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
272
341
  children: [
273
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
342
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
274
343
  py: 1,
275
344
  variant: "subtitle1",
276
345
  children: "Text Options"
277
346
  }),
278
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
347
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
279
348
  spacing: 2,
280
349
  children: [
281
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
282
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariablePreview, {
350
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
351
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
283
352
  values: [
284
353
  state.textVariableFields.value
285
354
  ]
286
355
  })
287
356
  }),
288
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
357
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
289
358
  label: "Value",
290
359
  value: state.textVariableFields.value,
360
+ InputLabelProps: {
361
+ shrink: action === 'read' ? true : undefined
362
+ },
291
363
  InputProps: {
292
364
  readOnly: action === 'read'
293
365
  },
@@ -296,43 +368,56 @@ function VariableEditForm(props) {
296
368
  draft.textVariableFields.value = v.target.value;
297
369
  });
298
370
  }
371
+ }),
372
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
373
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
374
+ checked: (_state_textVariableFields_constant = state.textVariableFields.constant) !== null && _state_textVariableFields_constant !== void 0 ? _state_textVariableFields_constant : false,
375
+ readOnly: action === 'read',
376
+ onChange: (e)=>{
377
+ if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
378
+ setState((draft)=>{
379
+ draft.textVariableFields.constant = e.target.checked;
380
+ });
381
+ }
382
+ }),
383
+ label: "Constant"
299
384
  })
300
385
  ]
301
386
  })
302
387
  ]
303
388
  }),
304
- state.kind === 'ListVariable' && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
389
+ state.kind === 'ListVariable' && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
305
390
  children: [
306
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
391
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
307
392
  py: 1,
308
393
  variant: "subtitle1",
309
394
  children: "List Options"
310
395
  }),
311
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
396
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
312
397
  spacing: 2,
313
398
  mb: 2,
314
399
  children: [
315
- state.listVariableFields.plugin.kind ? /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
316
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.ErrorBoundary, {
400
+ state.listVariableFields.plugin.kind ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
401
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
317
402
  FallbackComponent: FallbackPreview,
318
403
  resetKeys: [
319
404
  previewSpec
320
405
  ],
321
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariableListPreview, {
406
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariableListPreview, {
322
407
  definition: previewSpec,
323
408
  onRefresh: refreshPreview
324
409
  })
325
410
  })
326
- }) : /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariablePreview, {
411
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
327
412
  isLoading: true
328
413
  }),
329
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
414
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
330
415
  children: [
331
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.ClickAwayListener, {
416
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.ClickAwayListener, {
332
417
  onClickAway: ()=>refreshPreview(),
333
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {})
418
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {})
334
419
  }),
335
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginEditor.PluginEditor, {
420
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_PluginEditor.PluginEditor, {
336
421
  width: "100%",
337
422
  pluginType: "Variable",
338
423
  pluginKindLabel: "Source",
@@ -346,10 +431,13 @@ function VariableEditForm(props) {
346
431
  })
347
432
  ]
348
433
  }),
349
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Stack, {
350
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
434
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
435
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
351
436
  label: "Capturing Regexp Filter",
352
- value: state.listVariableFields.capturing_regexp || '',
437
+ value: state.listVariableFields.capturingRegexp || '',
438
+ InputLabelProps: {
439
+ shrink: action === 'read' ? true : undefined
440
+ },
353
441
  InputProps: {
354
442
  readOnly: action === 'read'
355
443
  },
@@ -357,9 +445,9 @@ function VariableEditForm(props) {
357
445
  setState((draft)=>{
358
446
  if (e.target.value) {
359
447
  // TODO: do a better fix, if empty string => it should skip the filter
360
- draft.listVariableFields.capturing_regexp = e.target.value;
448
+ draft.listVariableFields.capturingRegexp = e.target.value;
361
449
  } else {
362
- draft.listVariableFields.capturing_regexp = undefined;
450
+ draft.listVariableFields.capturingRegexp = undefined;
363
451
  }
364
452
  });
365
453
  },
@@ -368,19 +456,19 @@ function VariableEditForm(props) {
368
456
  })
369
457
  ]
370
458
  }),
371
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Divider, {}),
372
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
459
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
460
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
373
461
  py: 1,
374
462
  variant: "subtitle1",
375
463
  children: "Dropdown Options"
376
464
  }),
377
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
465
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
378
466
  spacing: "2",
379
467
  children: [
380
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
468
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
381
469
  children: [
382
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.FormControlLabel, {
383
- control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
470
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
471
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
384
472
  checked: state.listVariableFields.allowMultiple,
385
473
  readOnly: action === 'read',
386
474
  onChange: (e)=>{
@@ -392,16 +480,16 @@ function VariableEditForm(props) {
392
480
  }),
393
481
  label: "Allow Multiple Values"
394
482
  }),
395
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
483
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
396
484
  variant: "caption",
397
485
  children: "Enables multiple values to be selected at the same time"
398
486
  })
399
487
  ]
400
488
  }),
401
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
489
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
402
490
  children: [
403
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.FormControlLabel, {
404
- control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
491
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
492
+ control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Switch, {
405
493
  checked: state.listVariableFields.allowAll,
406
494
  readOnly: action === 'read',
407
495
  onChange: (e)=>{
@@ -413,14 +501,17 @@ function VariableEditForm(props) {
413
501
  }),
414
502
  label: "Allow All option"
415
503
  }),
416
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
504
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
417
505
  mb: 1,
418
506
  variant: "caption",
419
507
  children: "Enables an option to include all variable values"
420
508
  }),
421
- state.listVariableFields.allowAll && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
509
+ state.listVariableFields.allowAll && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
422
510
  label: "Custom All Value",
423
511
  value: state.listVariableFields.customAllValue,
512
+ InputLabelProps: {
513
+ shrink: action === 'read' ? true : undefined
514
+ },
424
515
  InputProps: {
425
516
  readOnly: action === 'read'
426
517
  },
@@ -443,15 +534,15 @@ function VariableEditForm(props) {
443
534
  })
444
535
  ]
445
536
  }),
446
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.DiscardChangesConfirmationDialog, {
537
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.DiscardChangesConfirmationDialog, {
447
538
  description: "Are you sure you want to discard these changes? Changes cannot be recovered.",
448
- isOpen: isDiscardDialogStateOpened,
539
+ isOpen: isDiscardDialogOpened,
449
540
  onCancel: ()=>{
450
- setDiscardDialogStateOpened(false);
541
+ setDiscardDialogOpened(false);
451
542
  },
452
543
  onDiscardChanges: ()=>{
453
- setDiscardDialogStateOpened(false);
454
- onCancel();
544
+ setDiscardDialogOpened(false);
545
+ onClose();
455
546
  }
456
547
  })
457
548
  ]