@perses-dev/plugin-system 0.0.0-snapshot-panel-extra-content-2-2767e21 → 0.0.0-snapshot-scatter-chart-embed-8efdfab

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 (373) 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 +350 -0
  4. package/dist/cjs/components/DatasourceEditorForm/index.js +30 -0
  5. package/dist/cjs/components/DatasourceSelect.js +135 -25
  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 +55 -14
  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/ProjectSelect.js +96 -0
  27. package/dist/cjs/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js +27 -23
  28. package/dist/cjs/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js +21 -19
  29. package/dist/cjs/components/TimeSeriesQueryEditor/index.js +10 -8
  30. package/dist/cjs/components/TraceQueryEditor/TraceQueryEditor.js +143 -0
  31. package/dist/cjs/components/TraceQueryEditor/TraceQueryInput.js +96 -0
  32. package/dist/cjs/components/TraceQueryEditor/index.js +30 -0
  33. package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +438 -229
  34. package/dist/cjs/components/Variables/VariableEditorForm/VariablePreview.js +32 -28
  35. package/dist/cjs/components/Variables/VariableEditorForm/index.js +11 -9
  36. package/dist/cjs/components/Variables/VariableEditorForm/variable-editor-form-model.js +35 -36
  37. package/dist/cjs/components/Variables/index.js +11 -9
  38. package/dist/cjs/components/Variables/variable-model.js +17 -9
  39. package/dist/cjs/components/index.js +23 -18
  40. package/dist/cjs/constants/index.js +10 -8
  41. package/dist/cjs/constants/user-interface-text.js +3 -1
  42. package/dist/cjs/context/ProjectStoreProvider.js +78 -0
  43. package/dist/cjs/context/index.js +30 -0
  44. package/dist/cjs/context/query-params.js +49 -0
  45. package/dist/cjs/index.js +17 -13
  46. package/dist/cjs/model/index.js +18 -15
  47. package/dist/cjs/model/legend.js +32 -20
  48. package/dist/cjs/model/panels.js +2 -2
  49. package/dist/cjs/model/plugin-base.js +2 -2
  50. package/dist/cjs/model/plugin-loading.js +3 -1
  51. package/dist/cjs/model/trace-queries.js +16 -0
  52. package/dist/cjs/runtime/DataQueriesProvider/DataQueriesProvider.js +67 -35
  53. package/dist/cjs/runtime/DataQueriesProvider/index.js +11 -9
  54. package/dist/cjs/runtime/DataQueriesProvider/model.js +81 -0
  55. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeProvider.js +43 -26
  56. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.js +43 -0
  57. package/dist/cjs/runtime/TimeRangeProvider/index.js +12 -9
  58. package/dist/cjs/runtime/TimeRangeProvider/query-params.js +41 -55
  59. package/dist/cjs/runtime/TimeRangeProvider/refresh-interval.js +30 -0
  60. package/dist/cjs/runtime/builtin-variables.js +81 -0
  61. package/dist/cjs/runtime/datasources.js +31 -12
  62. package/dist/cjs/runtime/index.js +17 -13
  63. package/dist/cjs/runtime/plugin-registry.js +41 -11
  64. package/dist/cjs/runtime/template-variables.js +96 -4
  65. package/dist/cjs/runtime/time-series-queries.js +39 -27
  66. package/dist/cjs/runtime/trace-queries.js +76 -0
  67. package/dist/cjs/stories/shared-utils/decorators/WithDataQueries.js +7 -5
  68. package/dist/cjs/stories/shared-utils/decorators/WithPluginRegistry.js +18 -15
  69. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +42 -0
  70. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +31 -13
  71. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js +6 -4
  72. package/dist/cjs/stories/shared-utils/decorators/WithTimeRange.js +9 -7
  73. package/dist/cjs/stories/shared-utils/decorators/index.js +15 -12
  74. package/dist/cjs/stories/shared-utils/index.js +10 -8
  75. package/dist/cjs/test/index.js +11 -8
  76. package/dist/cjs/test/mock-data.js +80 -0
  77. package/dist/cjs/test/render.js +13 -11
  78. package/dist/cjs/test/test-plugins/bert/index.js +14 -10
  79. package/dist/cjs/test/test-plugins/ernie/index.js +13 -9
  80. package/dist/cjs/test/test-plugins/index.js +11 -9
  81. package/dist/cjs/test-utils/index.js +10 -8
  82. package/dist/cjs/test-utils/mock-plugin-registry.js +8 -4
  83. package/dist/cjs/utils/action.js +43 -0
  84. package/dist/cjs/utils/index.js +11 -8
  85. package/dist/cjs/utils/variables.js +26 -8
  86. package/dist/cjs/validation/datasource.js +30 -0
  87. package/dist/cjs/validation/index.js +33 -0
  88. package/dist/cjs/validation/resource.js +24 -0
  89. package/dist/cjs/validation/role.js +85 -0
  90. package/dist/cjs/validation/rolebinding.js +55 -0
  91. package/dist/cjs/validation/secret.js +176 -0
  92. package/dist/cjs/validation/variable.js +48 -0
  93. package/dist/components/CalculationSelector/CalculationSelector.js.map +1 -1
  94. package/dist/components/CalculationSelector/index.js.map +1 -1
  95. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts +15 -0
  96. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts.map +1 -0
  97. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js +342 -0
  98. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js.map +1 -0
  99. package/dist/components/DatasourceEditorForm/index.d.ts +2 -0
  100. package/dist/components/DatasourceEditorForm/index.d.ts.map +1 -0
  101. package/dist/components/DatasourceEditorForm/index.js +15 -0
  102. package/dist/components/DatasourceEditorForm/index.js.map +1 -0
  103. package/dist/components/DatasourceSelect.d.ts +6 -0
  104. package/dist/components/DatasourceSelect.d.ts.map +1 -1
  105. package/dist/components/DatasourceSelect.js +118 -23
  106. package/dist/components/DatasourceSelect.js.map +1 -1
  107. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js +2 -2
  108. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js.map +1 -1
  109. package/dist/components/LegendOptionsEditor/index.js.map +1 -1
  110. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts +16 -0
  111. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts.map +1 -0
  112. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js +61 -0
  113. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js.map +1 -0
  114. package/dist/components/OptionsEditorRadios/index.d.ts +2 -0
  115. package/dist/components/OptionsEditorRadios/index.d.ts.map +1 -0
  116. package/dist/components/OptionsEditorRadios/index.js +15 -0
  117. package/dist/components/OptionsEditorRadios/index.js.map +1 -0
  118. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts +9 -0
  119. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts.map +1 -0
  120. package/dist/components/{OptionsEditorTabs/TabPanel.js → OptionsEditorTabPanel/OptionsEditorTabPanel.js} +2 -2
  121. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js.map +1 -0
  122. package/dist/components/OptionsEditorTabPanel/index.d.ts +2 -0
  123. package/dist/components/OptionsEditorTabPanel/index.d.ts.map +1 -0
  124. package/dist/components/OptionsEditorTabPanel/index.js +15 -0
  125. package/dist/components/OptionsEditorTabPanel/index.js.map +1 -0
  126. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js +2 -2
  127. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js.map +1 -1
  128. package/dist/components/OptionsEditorTabs/index.js.map +1 -1
  129. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts +1 -1
  130. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts.map +1 -1
  131. package/dist/components/PanelSpecEditor/PanelSpecEditor.js +45 -6
  132. package/dist/components/PanelSpecEditor/PanelSpecEditor.js.map +1 -1
  133. package/dist/components/PanelSpecEditor/index.js.map +1 -1
  134. package/dist/components/PluginEditor/PluginEditor.js +15 -24
  135. package/dist/components/PluginEditor/PluginEditor.js.map +1 -1
  136. package/dist/components/PluginEditor/index.js.map +1 -1
  137. package/dist/components/PluginEditor/plugin-editor-api.d.ts +2 -1
  138. package/dist/components/PluginEditor/plugin-editor-api.d.ts.map +1 -1
  139. package/dist/components/PluginEditor/plugin-editor-api.js +2 -2
  140. package/dist/components/PluginEditor/plugin-editor-api.js.map +1 -1
  141. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts +3 -3
  142. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts.map +1 -1
  143. package/dist/components/PluginKindSelect/PluginKindSelect.js +21 -12
  144. package/dist/components/PluginKindSelect/PluginKindSelect.js.map +1 -1
  145. package/dist/components/PluginKindSelect/index.js.map +1 -1
  146. package/dist/components/PluginRegistry/PluginRegistry.js +3 -3
  147. package/dist/components/PluginRegistry/PluginRegistry.js.map +1 -1
  148. package/dist/components/PluginRegistry/index.js.map +1 -1
  149. package/dist/components/PluginRegistry/plugin-indexes.js.map +1 -1
  150. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts +1 -0
  151. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts.map +1 -1
  152. package/dist/components/PluginSpecEditor/PluginSpecEditor.js.map +1 -1
  153. package/dist/components/PluginSpecEditor/index.js.map +1 -1
  154. package/dist/components/ProjectSelect.d.ts +15 -0
  155. package/dist/components/ProjectSelect.d.ts.map +1 -0
  156. package/dist/components/ProjectSelect.js +91 -0
  157. package/dist/components/ProjectSelect.js.map +1 -0
  158. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.d.ts.map +1 -1
  159. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js +19 -17
  160. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js.map +1 -1
  161. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js +1 -1
  162. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js.map +1 -1
  163. package/dist/components/TimeSeriesQueryEditor/index.js.map +1 -1
  164. package/dist/components/TraceQueryEditor/TraceQueryEditor.d.ts +9 -0
  165. package/dist/components/TraceQueryEditor/TraceQueryEditor.d.ts.map +1 -0
  166. package/dist/components/TraceQueryEditor/TraceQueryEditor.js +130 -0
  167. package/dist/components/TraceQueryEditor/TraceQueryEditor.js.map +1 -0
  168. package/dist/components/TraceQueryEditor/TraceQueryInput.d.ts +13 -0
  169. package/dist/components/TraceQueryEditor/TraceQueryInput.d.ts.map +1 -0
  170. package/dist/components/TraceQueryEditor/TraceQueryInput.js +83 -0
  171. package/dist/components/TraceQueryEditor/TraceQueryInput.js.map +1 -0
  172. package/dist/components/TraceQueryEditor/index.d.ts +2 -0
  173. package/dist/components/TraceQueryEditor/index.d.ts.map +1 -0
  174. package/dist/components/TraceQueryEditor/index.js +15 -0
  175. package/dist/components/TraceQueryEditor/index.js.map +1 -0
  176. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts +10 -8
  177. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -1
  178. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +391 -184
  179. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -1
  180. package/dist/components/Variables/VariableEditorForm/VariablePreview.js.map +1 -1
  181. package/dist/components/Variables/VariableEditorForm/index.js.map +1 -1
  182. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts +8 -19
  183. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts.map +1 -1
  184. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js +29 -34
  185. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js.map +1 -1
  186. package/dist/components/Variables/index.js.map +1 -1
  187. package/dist/components/Variables/variable-model.js +3 -3
  188. package/dist/components/Variables/variable-model.js.map +1 -1
  189. package/dist/components/index.d.ts +3 -0
  190. package/dist/components/index.d.ts.map +1 -1
  191. package/dist/components/index.js +3 -0
  192. package/dist/components/index.js.map +1 -1
  193. package/dist/constants/index.js.map +1 -1
  194. package/dist/constants/user-interface-text.js.map +1 -1
  195. package/dist/context/ProjectStoreProvider.d.ts +16 -0
  196. package/dist/context/ProjectStoreProvider.d.ts.map +1 -0
  197. package/dist/context/ProjectStoreProvider.js +56 -0
  198. package/dist/context/ProjectStoreProvider.js.map +1 -0
  199. package/dist/context/index.d.ts +2 -0
  200. package/dist/context/index.d.ts.map +1 -0
  201. package/dist/context/index.js +15 -0
  202. package/dist/context/index.js.map +1 -0
  203. package/dist/context/query-params.d.ts +5 -0
  204. package/dist/context/query-params.d.ts.map +1 -0
  205. package/dist/context/query-params.js +41 -0
  206. package/dist/context/query-params.js.map +1 -0
  207. package/dist/index.d.ts +2 -0
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +2 -0
  210. package/dist/index.js.map +1 -1
  211. package/dist/model/datasource.d.ts +2 -1
  212. package/dist/model/datasource.d.ts.map +1 -1
  213. package/dist/model/datasource.js.map +1 -1
  214. package/dist/model/index.d.ts +1 -0
  215. package/dist/model/index.d.ts.map +1 -1
  216. package/dist/model/index.js +1 -0
  217. package/dist/model/index.js.map +1 -1
  218. package/dist/model/legend.d.ts +1 -1
  219. package/dist/model/legend.d.ts.map +1 -1
  220. package/dist/model/legend.js +14 -14
  221. package/dist/model/legend.js.map +1 -1
  222. package/dist/model/panels.d.ts +2 -1
  223. package/dist/model/panels.d.ts.map +1 -1
  224. package/dist/model/panels.js.map +1 -1
  225. package/dist/model/plugin-base.d.ts +1 -0
  226. package/dist/model/plugin-base.d.ts.map +1 -1
  227. package/dist/model/plugin-base.js.map +1 -1
  228. package/dist/model/plugin-loading.js.map +1 -1
  229. package/dist/model/plugins.d.ts +2 -0
  230. package/dist/model/plugins.d.ts.map +1 -1
  231. package/dist/model/plugins.js.map +1 -1
  232. package/dist/model/trace-queries.d.ts +19 -0
  233. package/dist/model/trace-queries.d.ts.map +1 -0
  234. package/dist/model/trace-queries.js +15 -0
  235. package/dist/model/trace-queries.js.map +1 -0
  236. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts +5 -5
  237. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts.map +1 -1
  238. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js +52 -28
  239. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js.map +1 -1
  240. package/dist/runtime/DataQueriesProvider/index.js.map +1 -1
  241. package/dist/runtime/DataQueriesProvider/model.d.ts +17 -12
  242. package/dist/runtime/DataQueriesProvider/model.d.ts.map +1 -1
  243. package/dist/runtime/DataQueriesProvider/model.js +67 -1
  244. package/dist/runtime/DataQueriesProvider/model.js.map +1 -1
  245. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts +4 -3
  246. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts.map +1 -1
  247. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js +28 -19
  248. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js.map +1 -1
  249. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.d.ts +9 -0
  250. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.d.ts.map +1 -0
  251. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.js +30 -0
  252. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.js.map +1 -0
  253. package/dist/runtime/TimeRangeProvider/index.d.ts +1 -0
  254. package/dist/runtime/TimeRangeProvider/index.d.ts.map +1 -1
  255. package/dist/runtime/TimeRangeProvider/index.js +1 -0
  256. package/dist/runtime/TimeRangeProvider/index.js.map +1 -1
  257. package/dist/runtime/TimeRangeProvider/query-params.d.ts +4 -4
  258. package/dist/runtime/TimeRangeProvider/query-params.d.ts.map +1 -1
  259. package/dist/runtime/TimeRangeProvider/query-params.js +9 -41
  260. package/dist/runtime/TimeRangeProvider/query-params.js.map +1 -1
  261. package/dist/runtime/TimeRangeProvider/refresh-interval.d.ts +7 -0
  262. package/dist/runtime/TimeRangeProvider/refresh-interval.d.ts.map +1 -0
  263. package/dist/runtime/TimeRangeProvider/refresh-interval.js +25 -0
  264. package/dist/runtime/TimeRangeProvider/refresh-interval.js.map +1 -0
  265. package/dist/runtime/builtin-variables.d.ts +11 -0
  266. package/dist/runtime/builtin-variables.d.ts.map +1 -0
  267. package/dist/runtime/builtin-variables.js +59 -0
  268. package/dist/runtime/builtin-variables.js.map +1 -0
  269. package/dist/runtime/datasources.d.ts +42 -7
  270. package/dist/runtime/datasources.d.ts.map +1 -1
  271. package/dist/runtime/datasources.js +15 -7
  272. package/dist/runtime/datasources.js.map +1 -1
  273. package/dist/runtime/index.d.ts +2 -0
  274. package/dist/runtime/index.d.ts.map +1 -1
  275. package/dist/runtime/index.js +2 -0
  276. package/dist/runtime/index.js.map +1 -1
  277. package/dist/runtime/plugin-registry.d.ts +2 -0
  278. package/dist/runtime/plugin-registry.d.ts.map +1 -1
  279. package/dist/runtime/plugin-registry.js +19 -2
  280. package/dist/runtime/plugin-registry.js.map +1 -1
  281. package/dist/runtime/template-variables.d.ts +62 -2
  282. package/dist/runtime/template-variables.d.ts.map +1 -1
  283. package/dist/runtime/template-variables.js +83 -1
  284. package/dist/runtime/template-variables.js.map +1 -1
  285. package/dist/runtime/time-series-queries.d.ts +3 -3
  286. package/dist/runtime/time-series-queries.d.ts.map +1 -1
  287. package/dist/runtime/time-series-queries.js +14 -12
  288. package/dist/runtime/time-series-queries.js.map +1 -1
  289. package/dist/runtime/trace-queries.d.ts +14 -0
  290. package/dist/runtime/trace-queries.d.ts.map +1 -0
  291. package/dist/runtime/trace-queries.js +61 -0
  292. package/dist/runtime/trace-queries.js.map +1 -0
  293. package/dist/stories/shared-utils/decorators/WithDataQueries.js.map +1 -1
  294. package/dist/stories/shared-utils/decorators/WithPluginRegistry.d.ts.map +1 -1
  295. package/dist/stories/shared-utils/decorators/WithPluginRegistry.js +2 -1
  296. package/dist/stories/shared-utils/decorators/WithPluginRegistry.js.map +1 -1
  297. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts +13 -0
  298. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts.map +1 -0
  299. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +39 -0
  300. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js.map +1 -0
  301. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.d.ts.map +1 -1
  302. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +23 -7
  303. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js.map +1 -1
  304. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js.map +1 -1
  305. package/dist/stories/shared-utils/decorators/WithTimeRange.d.ts +2 -2
  306. package/dist/stories/shared-utils/decorators/WithTimeRange.d.ts.map +1 -1
  307. package/dist/stories/shared-utils/decorators/WithTimeRange.js +2 -2
  308. package/dist/stories/shared-utils/decorators/WithTimeRange.js.map +1 -1
  309. package/dist/stories/shared-utils/decorators/index.d.ts +1 -0
  310. package/dist/stories/shared-utils/decorators/index.d.ts.map +1 -1
  311. package/dist/stories/shared-utils/decorators/index.js +1 -0
  312. package/dist/stories/shared-utils/decorators/index.js.map +1 -1
  313. package/dist/stories/shared-utils/index.js.map +1 -1
  314. package/dist/test/index.d.ts +1 -0
  315. package/dist/test/index.d.ts.map +1 -1
  316. package/dist/test/index.js +1 -0
  317. package/dist/test/index.js.map +1 -1
  318. package/dist/test/mock-data.d.ts +4 -0
  319. package/dist/test/mock-data.d.ts.map +1 -0
  320. package/dist/test/mock-data.js +64 -0
  321. package/dist/test/mock-data.js.map +1 -0
  322. package/dist/test/render.js +2 -2
  323. package/dist/test/render.js.map +1 -1
  324. package/dist/test/setup-tests.js.map +1 -1
  325. package/dist/test/test-plugins/bert/index.js.map +1 -1
  326. package/dist/test/test-plugins/ernie/index.js.map +1 -1
  327. package/dist/test/test-plugins/index.js.map +1 -1
  328. package/dist/test-utils/index.js.map +1 -1
  329. package/dist/test-utils/mock-plugin-registry.js +2 -2
  330. package/dist/test-utils/mock-plugin-registry.js.map +1 -1
  331. package/dist/utils/action.d.ts +4 -0
  332. package/dist/utils/action.d.ts.map +1 -0
  333. package/dist/utils/action.js +27 -0
  334. package/dist/utils/action.js.map +1 -0
  335. package/dist/utils/index.d.ts +1 -0
  336. package/dist/utils/index.d.ts.map +1 -1
  337. package/dist/utils/index.js +1 -0
  338. package/dist/utils/index.js.map +1 -1
  339. package/dist/utils/variables.d.ts.map +1 -1
  340. package/dist/utils/variables.js +17 -5
  341. package/dist/utils/variables.js.map +1 -1
  342. package/dist/validation/datasource.d.ts +19 -0
  343. package/dist/validation/datasource.d.ts.map +1 -0
  344. package/dist/validation/datasource.js +22 -0
  345. package/dist/validation/datasource.js.map +1 -0
  346. package/dist/validation/index.d.ts +5 -0
  347. package/dist/validation/index.d.ts.map +1 -0
  348. package/dist/validation/index.js +18 -0
  349. package/dist/validation/index.js.map +1 -0
  350. package/dist/validation/resource.d.ts +3 -0
  351. package/dist/validation/resource.d.ts.map +1 -0
  352. package/dist/validation/resource.js +16 -0
  353. package/dist/validation/resource.js.map +1 -0
  354. package/dist/validation/role.d.ts +228 -0
  355. package/dist/validation/role.d.ts.map +1 -0
  356. package/dist/validation/role.js +66 -0
  357. package/dist/validation/role.js.map +1 -0
  358. package/dist/validation/rolebinding.d.ts +137 -0
  359. package/dist/validation/rolebinding.d.ts.map +1 -0
  360. package/dist/validation/rolebinding.js +47 -0
  361. package/dist/validation/rolebinding.js.map +1 -0
  362. package/dist/validation/secret.d.ts +964 -0
  363. package/dist/validation/secret.d.ts.map +1 -0
  364. package/dist/validation/secret.js +157 -0
  365. package/dist/validation/secret.js.map +1 -0
  366. package/dist/validation/variable.d.ts +96 -0
  367. package/dist/validation/variable.d.ts.map +1 -0
  368. package/dist/validation/variable.js +40 -0
  369. package/dist/validation/variable.js.map +1 -0
  370. package/package.json +9 -6
  371. package/dist/components/OptionsEditorTabs/TabPanel.d.ts +0 -9
  372. package/dist/components/OptionsEditorTabs/TabPanel.d.ts.map +0 -1
  373. 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");
25
26
  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");
27
+ const _reacthookform = require("react-hook-form");
28
+ const _zod = require("@hookform/resolvers/zod");
29
+ const _useimmer = require("use-immer");
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,46 @@ 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.variableEditorValidationSchema),
103
+ mode: 'onBlur',
104
+ defaultValues: initialState
105
+ });
106
+ const processForm = ()=>{
107
+ // 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
+ }));
113
+ };
118
114
  // When user click on cancel, several possibilities:
119
115
  // - create action: ask for discard approval
120
116
  // - update action: ask for discard approval if changed
121
117
  // - read action: don´t ask for discard approval
122
118
  const handleCancel = (0, _react.useCallback)(()=>{
123
- if (action === 'create' || action === 'update' && JSON.stringify(initialState) !== JSON.stringify(state)) {
124
- setDiscardDialogStateOpened(true);
119
+ if (JSON.stringify(initialState) !== JSON.stringify(state)) {
120
+ setDiscardDialogOpened(true);
125
121
  } else {
126
- onCancel();
122
+ onClose();
127
123
  }
128
124
  }, [
129
- state,
130
125
  initialState,
131
- action,
132
- setDiscardDialogStateOpened,
133
- onCancel
126
+ state,
127
+ onClose
134
128
  ]);
135
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
129
+ var _state_title, _state_description, _state_listVariableFields_capturingRegexp, _state_listVariableFields_sort, _state_listVariableFields_customAllValue;
130
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_reacthookform.FormProvider, {
131
+ ...form,
136
132
  children: [
137
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
133
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Box, {
138
134
  sx: {
139
135
  display: 'flex',
140
136
  alignItems: 'center',
@@ -142,298 +138,511 @@ function VariableEditForm(props) {
142
138
  borderBottom: (theme)=>`1px solid ${theme.palette.divider}`
143
139
  },
144
140
  children: [
145
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
141
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Typography, {
146
142
  variant: "h2",
147
- children: title
143
+ children: [
144
+ titleAction,
145
+ " Variable"
146
+ ]
148
147
  }),
149
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
148
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
150
149
  direction: "row",
151
150
  spacing: 1,
152
151
  sx: {
153
152
  marginLeft: 'auto'
154
153
  },
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
- ]
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
+ })
171
204
  })
172
205
  ]
173
206
  }),
174
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
207
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Box, {
175
208
  padding: 2,
176
209
  sx: {
177
210
  overflowY: 'scroll'
178
211
  },
179
212
  children: [
180
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Grid, {
213
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Grid, {
181
214
  container: true,
182
215
  spacing: 2,
183
216
  mb: 2,
184
217
  children: [
185
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
218
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
186
219
  item: true,
187
220
  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;
221
+ 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, {
226
+ ...field,
227
+ required: true,
228
+ fullWidth: true,
229
+ label: "Name",
230
+ InputLabelProps: {
231
+ shrink: action === 'read' ? true : undefined
232
+ },
233
+ InputProps: {
234
+ disabled: action === 'update' && !isDraft,
235
+ readOnly: action === 'read'
236
+ },
237
+ error: !!fieldState.error,
238
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
239
+ value: state.name,
240
+ onChange: (event)=>{
241
+ field.onChange(event);
242
+ setState((draft)=>{
243
+ draft.name = event.target.value;
244
+ });
245
+ }
201
246
  });
202
247
  }
203
248
  })
204
249
  }),
205
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
250
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
206
251
  item: true,
207
252
  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;
253
+ 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, {
258
+ ...field,
259
+ fullWidth: true,
260
+ label: "Display Label",
261
+ InputLabelProps: {
262
+ shrink: action === 'read' ? true : undefined
263
+ },
264
+ InputProps: {
265
+ readOnly: action === 'read'
266
+ },
267
+ 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 : '',
270
+ onChange: (event)=>{
271
+ field.onChange(event);
272
+ setState((draft)=>{
273
+ draft.title = event.target.value;
274
+ });
275
+ }
218
276
  });
219
277
  }
220
278
  })
221
279
  }),
222
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
280
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
223
281
  item: true,
224
282
  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;
283
+ 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, {
288
+ ...field,
289
+ fullWidth: true,
290
+ label: "Description",
291
+ InputLabelProps: {
292
+ shrink: action === 'read' ? true : undefined
293
+ },
294
+ InputProps: {
295
+ readOnly: action === 'read'
296
+ },
297
+ 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 : '',
300
+ onChange: (event)=>{
301
+ field.onChange(event);
302
+ setState((draft)=>{
303
+ draft.description = event.target.value;
304
+ });
305
+ }
235
306
  });
236
307
  }
237
308
  })
238
309
  }),
239
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
310
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
240
311
  item: true,
241
312
  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",
313
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
314
+ name: "kind",
315
+ render: ({ field , fieldState })=>{
316
+ var _fieldState_error;
317
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
318
+ select: true,
319
+ ...field,
320
+ fullWidth: true,
252
321
  label: "Type",
322
+ InputLabelProps: {
323
+ shrink: action === 'read' ? true : undefined
324
+ },
325
+ InputProps: {
326
+ readOnly: action === 'read'
327
+ },
328
+ error: !!fieldState.error,
329
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
253
330
  value: state.kind,
254
- readOnly: action === 'read',
255
- onChange: (v)=>{
331
+ onChange: (event)=>{
332
+ field.onChange(event);
256
333
  setState((draft)=>{
257
- draft.kind = v.target.value;
334
+ draft.kind = event.target.value;
258
335
  });
259
336
  },
260
- children: _variableModel.VARIABLE_TYPES.map((v)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.MenuItem, {
337
+ children: _variablemodel.VARIABLE_TYPES.map((v)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
261
338
  value: v.kind,
262
339
  children: v.label
263
340
  }, v.kind))
264
- })
265
- ]
341
+ });
342
+ }
266
343
  })
267
344
  })
268
345
  ]
269
346
  }),
270
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Divider, {}),
271
- state.kind === 'TextVariable' && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
347
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
348
+ state.kind === 'TextVariable' && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
272
349
  children: [
273
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
350
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
274
351
  py: 1,
275
352
  variant: "subtitle1",
276
353
  children: "Text Options"
277
354
  }),
278
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
355
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
279
356
  spacing: 2,
280
357
  children: [
281
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
282
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariablePreview, {
358
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
359
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
283
360
  values: [
284
361
  state.textVariableFields.value
285
362
  ]
286
363
  })
287
364
  }),
288
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
289
- label: "Value",
290
- value: state.textVariableFields.value,
291
- InputProps: {
292
- readOnly: action === 'read'
293
- },
294
- onChange: (v)=>{
295
- setState((draft)=>{
296
- draft.textVariableFields.value = v.target.value;
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
+ }
297
387
  });
298
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
+ })
299
408
  })
300
409
  ]
301
410
  })
302
411
  ]
303
412
  }),
304
- state.kind === 'ListVariable' && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
413
+ state.kind === 'ListVariable' && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
305
414
  children: [
306
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
415
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
307
416
  py: 1,
308
417
  variant: "subtitle1",
309
418
  children: "List Options"
310
419
  }),
311
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
420
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
312
421
  spacing: 2,
313
422
  mb: 2,
314
423
  children: [
315
- state.listVariableFields.plugin.kind ? /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
316
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.ErrorBoundary, {
424
+ state.listVariableFields.plugin.kind ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
425
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
317
426
  FallbackComponent: FallbackPreview,
318
427
  resetKeys: [
319
428
  previewSpec
320
429
  ],
321
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariableListPreview, {
430
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariableListPreview, {
322
431
  definition: previewSpec,
323
432
  onRefresh: refreshPreview
324
433
  })
325
434
  })
326
- }) : /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variablePreview.VariablePreview, {
435
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariablePreview.VariablePreview, {
327
436
  isLoading: true
328
437
  }),
329
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
438
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
330
439
  children: [
331
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.ClickAwayListener, {
440
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.ClickAwayListener, {
332
441
  onClickAway: ()=>refreshPreview(),
333
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {})
442
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {})
334
443
  }),
335
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginEditor.PluginEditor, {
336
- width: "100%",
337
- pluginType: "Variable",
338
- pluginKindLabel: "Source",
339
- value: state.listVariableFields.plugin,
340
- isReadonly: action === 'read',
341
- onChange: (val)=>{
342
- setState((draft)=>{
343
- draft.listVariableFields.plugin = val;
344
- });
345
- }
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
+ })
346
459
  })
347
460
  ]
348
461
  }),
349
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Stack, {
350
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
351
- label: "Capturing Regexp Filter",
352
- value: state.listVariableFields.capturing_regexp || '',
353
- InputProps: {
354
- readOnly: action === 'read'
355
- },
356
- onChange: (e)=>{
357
- setState((draft)=>{
358
- if (e.target.value) {
359
- // TODO: do a better fix, if empty string => it should skip the filter
360
- draft.listVariableFields.capturing_regexp = e.target.value;
361
- } else {
362
- draft.listVariableFields.capturing_regexp = undefined;
363
- }
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.'
364
490
  });
365
- },
366
- helperText: "Optional, if you want to filter on captured result."
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
+ }
367
551
  })
368
552
  })
369
553
  ]
370
554
  }),
371
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Divider, {}),
372
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
555
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {}),
556
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
373
557
  py: 1,
374
558
  variant: "subtitle1",
375
559
  children: "Dropdown Options"
376
560
  }),
377
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
561
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
378
562
  spacing: "2",
379
563
  children: [
380
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
564
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
381
565
  children: [
382
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.FormControlLabel, {
383
- control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
384
- checked: state.listVariableFields.allowMultiple,
385
- readOnly: action === 'read',
386
- onChange: (e)=>{
387
- if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
388
- setState((draft)=>{
389
- draft.listVariableFields.allowMultiple = e.target.checked;
390
- });
391
- }
392
- }),
393
- label: "Allow Multiple Values"
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
+ })
394
584
  }),
395
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
585
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
396
586
  variant: "caption",
397
587
  children: "Enables multiple values to be selected at the same time"
398
588
  })
399
589
  ]
400
590
  }),
401
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
591
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
402
592
  children: [
403
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.FormControlLabel, {
404
- control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
405
- checked: state.listVariableFields.allowAll,
406
- readOnly: action === 'read',
407
- onChange: (e)=>{
408
- if (action === 'read') return; // ReadOnly prop is not blocking user interaction...
409
- setState((draft)=>{
410
- draft.listVariableFields.allowAll = e.target.checked;
411
- });
412
- }
413
- }),
414
- label: "Allow All option"
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
+ })
415
611
  }),
416
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
612
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
417
613
  mb: 1,
418
614
  variant: "caption",
419
615
  children: "Enables an option to include all variable values"
420
616
  }),
421
- state.listVariableFields.allowAll && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
422
- label: "Custom All Value",
423
- value: state.listVariableFields.customAllValue,
424
- InputProps: {
425
- readOnly: action === 'read'
426
- },
427
- onChange: (e)=>{
428
- setState((draft)=>{
429
- if (e.target.value) {
430
- draft.listVariableFields.customAllValue = e.target.value;
431
- } else {
432
- draft.listVariableFields.customAllValue = undefined;
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
+ });
433
643
  }
434
644
  });
435
- },
436
- helperText: "When All is selected, this value will be used"
645
+ }
437
646
  })
438
647
  ]
439
648
  })
@@ -443,15 +652,15 @@ function VariableEditForm(props) {
443
652
  })
444
653
  ]
445
654
  }),
446
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.DiscardChangesConfirmationDialog, {
655
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.DiscardChangesConfirmationDialog, {
447
656
  description: "Are you sure you want to discard these changes? Changes cannot be recovered.",
448
- isOpen: isDiscardDialogStateOpened,
657
+ isOpen: isDiscardDialogOpened,
449
658
  onCancel: ()=>{
450
- setDiscardDialogStateOpened(false);
659
+ setDiscardDialogOpened(false);
451
660
  },
452
661
  onDiscardChanges: ()=>{
453
- setDiscardDialogStateOpened(false);
454
- onCancel();
662
+ setDiscardDialogOpened(false);
663
+ onClose();
455
664
  }
456
665
  })
457
666
  ]