@perses-dev/plugin-system 0.0.0-snapshot-panel-extra-content-3-17f9c42 → 0.0.0-snapshot-scatterplot-fix-imports-95e1b59

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