@perses-dev/dashboards 0.0.0-snapshot-panel-extra-content-3-17f9c42 → 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 (336) hide show
  1. package/dist/cjs/components/AddGroupButton/AddGroupButton.js +10 -7
  2. package/dist/cjs/components/AddGroupButton/index.js +10 -8
  3. package/dist/cjs/components/AddPanelButton/AddPanelButton.js +10 -11
  4. package/dist/cjs/components/AddPanelButton/index.js +10 -8
  5. package/dist/cjs/components/Dashboard/Dashboard.js +11 -9
  6. package/dist/cjs/components/Dashboard/index.js +10 -8
  7. package/dist/cjs/components/DashboardStickyToolbar/DashboardStickyToolbar.js +53 -22
  8. package/dist/cjs/components/DashboardStickyToolbar/index.js +10 -8
  9. package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +81 -102
  10. package/dist/cjs/components/DashboardToolbar/index.js +10 -8
  11. package/dist/cjs/components/Datasources/DatasourceEditor.js +237 -0
  12. package/dist/cjs/components/Datasources/EditDatasourcesButton.js +106 -0
  13. package/dist/cjs/components/Datasources/index.js +31 -0
  14. package/dist/cjs/components/DeletePanelDialog/DeletePanelDialog.js +12 -10
  15. package/dist/cjs/components/DeletePanelDialog/index.js +10 -8
  16. package/dist/cjs/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +17 -15
  17. package/dist/cjs/components/DeletePanelGroupDialog/index.js +10 -8
  18. package/dist/cjs/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +5 -3
  19. package/dist/cjs/components/DiscardChangesConfirmationDialog/index.js +10 -8
  20. package/dist/cjs/components/DownloadButton/DownloadButton.js +12 -10
  21. package/dist/cjs/components/DownloadButton/index.js +10 -8
  22. package/dist/cjs/components/EditButton/EditButton.js +8 -6
  23. package/dist/cjs/components/EditButton/index.js +10 -8
  24. package/dist/cjs/components/EditJsonButton/EditJsonButton.js +15 -11
  25. package/dist/cjs/components/EditJsonButton/index.js +10 -8
  26. package/dist/cjs/components/EditJsonDialog/EditJsonDialog.js +46 -24
  27. package/dist/cjs/components/EditJsonDialog/index.js +10 -8
  28. package/dist/cjs/components/EmptyDashboard/EmptyDashboard.js +18 -16
  29. package/dist/cjs/components/EmptyDashboard/index.js +10 -8
  30. package/dist/cjs/components/GridLayout/GridContainer.js +5 -3
  31. package/dist/cjs/components/GridLayout/GridItemContent.js +33 -14
  32. package/dist/cjs/components/GridLayout/GridLayout.js +18 -16
  33. package/dist/cjs/components/GridLayout/GridTitle.js +35 -33
  34. package/dist/cjs/components/GridLayout/index.js +13 -11
  35. package/dist/cjs/components/Panel/Panel.js +18 -22
  36. package/dist/cjs/components/Panel/PanelContent.js +11 -8
  37. package/dist/cjs/components/Panel/PanelHeader.js +33 -31
  38. package/dist/cjs/components/Panel/index.js +10 -8
  39. package/dist/cjs/components/PanelDrawer/PanelDrawer.js +25 -77
  40. package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +231 -141
  41. package/dist/cjs/components/PanelDrawer/PanelPreview.js +11 -9
  42. package/dist/cjs/components/PanelDrawer/index.js +11 -8
  43. package/dist/cjs/components/PanelDrawer/usePanelEditor.js +3 -1
  44. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.js +18 -16
  45. package/dist/cjs/components/PanelGroupDialog/PanelGroupEditorForm.js +15 -11
  46. package/dist/cjs/components/PanelGroupDialog/index.js +10 -8
  47. package/dist/cjs/components/QuerySummaryTable/QuerySummaryTable.js +47 -45
  48. package/dist/cjs/components/QuerySummaryTable/index.js +10 -8
  49. package/dist/cjs/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +23 -21
  50. package/dist/cjs/components/SaveChangesConfirmationDialog/index.js +10 -8
  51. package/dist/cjs/components/SaveDashboardButton/SaveDashboardButton.js +8 -8
  52. package/dist/cjs/components/SaveDashboardButton/index.js +10 -8
  53. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +46 -19
  54. package/dist/cjs/components/TimeRangeControls/index.js +10 -8
  55. package/dist/cjs/components/ToolbarIconButton/ToolbarIconButton.js +5 -3
  56. package/dist/cjs/components/ToolbarIconButton/index.js +10 -8
  57. package/dist/cjs/components/Variables/BuiltinVariableAccordions.js +140 -0
  58. package/dist/cjs/components/Variables/EditVariablesButton.js +17 -15
  59. package/dist/cjs/components/Variables/TemplateVariable.js +250 -105
  60. package/dist/cjs/components/Variables/VariableEditor.js +280 -204
  61. package/dist/cjs/components/Variables/VariableList.js +23 -21
  62. package/dist/cjs/components/Variables/index.js +14 -11
  63. package/dist/cjs/components/index.js +32 -29
  64. package/dist/cjs/constants/grid-layout-config.js +6 -2
  65. package/dist/cjs/constants/index.js +12 -9
  66. package/dist/cjs/constants/styles.js +42 -0
  67. package/dist/cjs/constants/user-interface-text.js +9 -2
  68. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +43 -35
  69. package/dist/cjs/context/DashboardProvider/common.js +6 -2
  70. package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +70 -38
  71. package/dist/cjs/context/DashboardProvider/delete-panel-group-slice.js +3 -1
  72. package/dist/cjs/context/DashboardProvider/delete-panel-slice.js +5 -3
  73. package/dist/cjs/context/DashboardProvider/discard-changes-dialog-slice.js +3 -1
  74. package/dist/cjs/context/DashboardProvider/duplicate-panel-slice.js +3 -1
  75. package/dist/cjs/context/DashboardProvider/edit-json-dialog-slice.js +3 -1
  76. package/dist/cjs/context/DashboardProvider/index.js +12 -10
  77. package/dist/cjs/context/DashboardProvider/panel-editor-slice.js +13 -11
  78. package/dist/cjs/context/DashboardProvider/panel-group-editor-slice.js +8 -6
  79. package/dist/cjs/context/DashboardProvider/panel-group-slice.js +15 -7
  80. package/dist/cjs/context/DashboardProvider/panel-slice.js +3 -1
  81. package/dist/cjs/context/DashboardProvider/save-changes-dialog-slice.js +3 -1
  82. package/dist/cjs/context/DatasourceStoreProvider.js +167 -46
  83. package/dist/cjs/context/TemplateVariableProvider/TemplateVariableProvider.js +141 -34
  84. package/dist/cjs/context/TemplateVariableProvider/hydrationUtils.js +12 -10
  85. package/dist/cjs/context/TemplateVariableProvider/index.js +10 -8
  86. package/dist/cjs/context/TemplateVariableProvider/query-params.js +17 -7
  87. package/dist/cjs/context/TemplateVariableProvider/utils.js +15 -7
  88. package/dist/cjs/context/index.js +13 -11
  89. package/dist/cjs/context/useDashboard.js +12 -8
  90. package/dist/cjs/index.js +12 -10
  91. package/dist/cjs/stories/decorators/WithDashboard.js +6 -4
  92. package/dist/cjs/stories/decorators/WithDatasourceStore.js +6 -4
  93. package/dist/cjs/stories/decorators/WithTemplateVariables.js +6 -4
  94. package/dist/cjs/stories/decorators/constants.js +5 -3
  95. package/dist/cjs/stories/decorators/index.js +13 -11
  96. package/dist/cjs/test/dashboard-provider.js +8 -4
  97. package/dist/cjs/test/datasource-provider.js +16 -12
  98. package/dist/cjs/test/index.js +13 -11
  99. package/dist/cjs/test/plugin-registry.js +6 -4
  100. package/dist/cjs/test/render.js +27 -20
  101. package/dist/cjs/test/setup-tests.js +2 -2
  102. package/dist/cjs/test/testDashboard.js +13 -11
  103. package/dist/cjs/utils/index.js +11 -9
  104. package/dist/cjs/utils/panelUtils.js +9 -3
  105. package/dist/cjs/utils/time.js +5 -3
  106. package/dist/cjs/validation/index.js +30 -0
  107. package/dist/cjs/validation/panel.js +29 -0
  108. package/dist/cjs/views/ViewDashboard/DashboardApp.js +30 -16
  109. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +63 -20
  110. package/dist/cjs/views/ViewDashboard/index.js +10 -8
  111. package/dist/cjs/views/index.js +10 -8
  112. package/dist/components/AddGroupButton/AddGroupButton.d.ts.map +1 -1
  113. package/dist/components/AddGroupButton/AddGroupButton.js +2 -1
  114. package/dist/components/AddGroupButton/AddGroupButton.js.map +1 -1
  115. package/dist/components/AddGroupButton/index.js.map +1 -1
  116. package/dist/components/AddPanelButton/AddPanelButton.js +2 -5
  117. package/dist/components/AddPanelButton/AddPanelButton.js.map +1 -1
  118. package/dist/components/AddPanelButton/index.js.map +1 -1
  119. package/dist/components/Dashboard/Dashboard.js.map +1 -1
  120. package/dist/components/Dashboard/index.js.map +1 -1
  121. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.d.ts.map +1 -1
  122. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js +37 -8
  123. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js.map +1 -1
  124. package/dist/components/DashboardStickyToolbar/index.js.map +1 -1
  125. package/dist/components/DashboardToolbar/DashboardToolbar.d.ts.map +1 -1
  126. package/dist/components/DashboardToolbar/DashboardToolbar.js +61 -84
  127. package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
  128. package/dist/components/DashboardToolbar/index.js.map +1 -1
  129. package/dist/components/Datasources/DatasourceEditor.d.ts +8 -0
  130. package/dist/components/Datasources/DatasourceEditor.d.ts.map +1 -0
  131. package/dist/components/Datasources/DatasourceEditor.js +224 -0
  132. package/dist/components/Datasources/DatasourceEditor.js.map +1 -0
  133. package/dist/components/Datasources/EditDatasourcesButton.d.ts +3 -0
  134. package/dist/components/Datasources/EditDatasourcesButton.d.ts.map +1 -0
  135. package/dist/components/Datasources/EditDatasourcesButton.js +93 -0
  136. package/dist/components/Datasources/EditDatasourcesButton.js.map +1 -0
  137. package/dist/components/Datasources/index.d.ts +3 -0
  138. package/dist/components/Datasources/index.d.ts.map +1 -0
  139. package/dist/components/Datasources/index.js +16 -0
  140. package/dist/components/Datasources/index.js.map +1 -0
  141. package/dist/components/DeletePanelDialog/DeletePanelDialog.js.map +1 -1
  142. package/dist/components/DeletePanelDialog/index.js.map +1 -1
  143. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +2 -2
  144. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js.map +1 -1
  145. package/dist/components/DeletePanelGroupDialog/index.js.map +1 -1
  146. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js.map +1 -1
  147. package/dist/components/DiscardChangesConfirmationDialog/index.js.map +1 -1
  148. package/dist/components/DownloadButton/DownloadButton.js.map +1 -1
  149. package/dist/components/DownloadButton/index.js.map +1 -1
  150. package/dist/components/EditButton/EditButton.js.map +1 -1
  151. package/dist/components/EditButton/index.js.map +1 -1
  152. package/dist/components/EditJsonButton/EditJsonButton.d.ts +4 -1
  153. package/dist/components/EditJsonButton/EditJsonButton.d.ts.map +1 -1
  154. package/dist/components/EditJsonButton/EditJsonButton.js +5 -3
  155. package/dist/components/EditJsonButton/EditJsonButton.js.map +1 -1
  156. package/dist/components/EditJsonButton/index.js.map +1 -1
  157. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts +5 -1
  158. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts.map +1 -1
  159. package/dist/components/EditJsonDialog/EditJsonDialog.js +32 -12
  160. package/dist/components/EditJsonDialog/EditJsonDialog.js.map +1 -1
  161. package/dist/components/EditJsonDialog/index.js.map +1 -1
  162. package/dist/components/EmptyDashboard/EmptyDashboard.js.map +1 -1
  163. package/dist/components/EmptyDashboard/index.js.map +1 -1
  164. package/dist/components/GridLayout/GridContainer.js.map +1 -1
  165. package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
  166. package/dist/components/GridLayout/GridItemContent.js +27 -10
  167. package/dist/components/GridLayout/GridItemContent.js.map +1 -1
  168. package/dist/components/GridLayout/GridLayout.js +2 -2
  169. package/dist/components/GridLayout/GridLayout.js.map +1 -1
  170. package/dist/components/GridLayout/GridTitle.js.map +1 -1
  171. package/dist/components/GridLayout/index.js.map +1 -1
  172. package/dist/components/Panel/Panel.d.ts.map +1 -1
  173. package/dist/components/Panel/Panel.js +5 -11
  174. package/dist/components/Panel/Panel.js.map +1 -1
  175. package/dist/components/Panel/PanelContent.d.ts +2 -1
  176. package/dist/components/Panel/PanelContent.d.ts.map +1 -1
  177. package/dist/components/Panel/PanelContent.js +3 -2
  178. package/dist/components/Panel/PanelContent.js.map +1 -1
  179. package/dist/components/Panel/PanelHeader.js.map +1 -1
  180. package/dist/components/Panel/index.js.map +1 -1
  181. package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
  182. package/dist/components/PanelDrawer/PanelDrawer.js +22 -76
  183. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
  184. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +4 -1
  185. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
  186. package/dist/components/PanelDrawer/PanelEditorForm.js +225 -139
  187. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
  188. package/dist/components/PanelDrawer/PanelPreview.d.ts.map +1 -1
  189. package/dist/components/PanelDrawer/PanelPreview.js +2 -2
  190. package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
  191. package/dist/components/PanelDrawer/index.d.ts +1 -0
  192. package/dist/components/PanelDrawer/index.d.ts.map +1 -1
  193. package/dist/components/PanelDrawer/index.js +1 -0
  194. package/dist/components/PanelDrawer/index.js.map +1 -1
  195. package/dist/components/PanelDrawer/usePanelEditor.js.map +1 -1
  196. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -1
  197. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js.map +1 -1
  198. package/dist/components/PanelGroupDialog/index.js.map +1 -1
  199. package/dist/components/QuerySummaryTable/QuerySummaryTable.js +6 -6
  200. package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -1
  201. package/dist/components/QuerySummaryTable/index.js.map +1 -1
  202. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +4 -4
  203. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js.map +1 -1
  204. package/dist/components/SaveChangesConfirmationDialog/index.js.map +1 -1
  205. package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts.map +1 -1
  206. package/dist/components/SaveDashboardButton/SaveDashboardButton.js +1 -3
  207. package/dist/components/SaveDashboardButton/SaveDashboardButton.js.map +1 -1
  208. package/dist/components/SaveDashboardButton/index.js.map +1 -1
  209. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +1 -1
  210. package/dist/components/TimeRangeControls/TimeRangeControls.js +26 -5
  211. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -1
  212. package/dist/components/TimeRangeControls/index.js.map +1 -1
  213. package/dist/components/ToolbarIconButton/ToolbarIconButton.js.map +1 -1
  214. package/dist/components/ToolbarIconButton/index.js.map +1 -1
  215. package/dist/components/Variables/BuiltinVariableAccordions.d.ts +8 -0
  216. package/dist/components/Variables/BuiltinVariableAccordions.d.ts.map +1 -0
  217. package/dist/components/Variables/BuiltinVariableAccordions.js +127 -0
  218. package/dist/components/Variables/BuiltinVariableAccordions.js.map +1 -0
  219. package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
  220. package/dist/components/Variables/EditVariablesButton.js +5 -5
  221. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  222. package/dist/components/Variables/TemplateVariable.d.ts +10 -1
  223. package/dist/components/Variables/TemplateVariable.d.ts.map +1 -1
  224. package/dist/components/Variables/TemplateVariable.js +233 -98
  225. package/dist/components/Variables/TemplateVariable.js.map +1 -1
  226. package/dist/components/Variables/VariableEditor.d.ts +2 -1
  227. package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
  228. package/dist/components/Variables/VariableEditor.js +229 -157
  229. package/dist/components/Variables/VariableEditor.js.map +1 -1
  230. package/dist/components/Variables/VariableList.d.ts.map +1 -1
  231. package/dist/components/Variables/VariableList.js +10 -12
  232. package/dist/components/Variables/VariableList.js.map +1 -1
  233. package/dist/components/Variables/index.d.ts +1 -0
  234. package/dist/components/Variables/index.d.ts.map +1 -1
  235. package/dist/components/Variables/index.js +1 -0
  236. package/dist/components/Variables/index.js.map +1 -1
  237. package/dist/components/index.d.ts +1 -0
  238. package/dist/components/index.d.ts.map +1 -1
  239. package/dist/components/index.js +1 -0
  240. package/dist/components/index.js.map +1 -1
  241. package/dist/constants/grid-layout-config.js.map +1 -1
  242. package/dist/constants/index.d.ts +1 -0
  243. package/dist/constants/index.d.ts.map +1 -1
  244. package/dist/constants/index.js +1 -0
  245. package/dist/constants/index.js.map +1 -1
  246. package/dist/constants/styles.d.ts +5 -0
  247. package/dist/constants/styles.d.ts.map +1 -0
  248. package/dist/constants/styles.js +23 -0
  249. package/dist/constants/styles.js.map +1 -0
  250. package/dist/constants/user-interface-text.d.ts +3 -0
  251. package/dist/constants/user-interface-text.d.ts.map +1 -1
  252. package/dist/constants/user-interface-text.js +3 -0
  253. package/dist/constants/user-interface-text.js.map +1 -1
  254. package/dist/context/DashboardProvider/DashboardProvider.d.ts +2 -1
  255. package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
  256. package/dist/context/DashboardProvider/DashboardProvider.js +8 -6
  257. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  258. package/dist/context/DashboardProvider/common.js.map +1 -1
  259. package/dist/context/DashboardProvider/dashboard-provider-api.js +2 -2
  260. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
  261. package/dist/context/DashboardProvider/delete-panel-group-slice.js.map +1 -1
  262. package/dist/context/DashboardProvider/delete-panel-slice.js +2 -2
  263. package/dist/context/DashboardProvider/delete-panel-slice.js.map +1 -1
  264. package/dist/context/DashboardProvider/discard-changes-dialog-slice.js.map +1 -1
  265. package/dist/context/DashboardProvider/duplicate-panel-slice.js.map +1 -1
  266. package/dist/context/DashboardProvider/edit-json-dialog-slice.js.map +1 -1
  267. package/dist/context/DashboardProvider/index.js.map +1 -1
  268. package/dist/context/DashboardProvider/panel-editor-slice.d.ts +2 -2
  269. package/dist/context/DashboardProvider/panel-editor-slice.d.ts.map +1 -1
  270. package/dist/context/DashboardProvider/panel-editor-slice.js +7 -7
  271. package/dist/context/DashboardProvider/panel-editor-slice.js.map +1 -1
  272. package/dist/context/DashboardProvider/panel-group-editor-slice.js +2 -2
  273. package/dist/context/DashboardProvider/panel-group-editor-slice.js.map +1 -1
  274. package/dist/context/DashboardProvider/panel-group-slice.js +3 -3
  275. package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -1
  276. package/dist/context/DashboardProvider/panel-slice.js.map +1 -1
  277. package/dist/context/DashboardProvider/save-changes-dialog-slice.js.map +1 -1
  278. package/dist/context/DatasourceStoreProvider.d.ts +15 -10
  279. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  280. package/dist/context/DatasourceStoreProvider.js +161 -42
  281. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  282. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +11 -4
  283. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +1 -1
  284. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js +106 -18
  285. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +1 -1
  286. package/dist/context/TemplateVariableProvider/hydrationUtils.js +7 -7
  287. package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +1 -1
  288. package/dist/context/TemplateVariableProvider/index.js.map +1 -1
  289. package/dist/context/TemplateVariableProvider/query-params.js.map +1 -1
  290. package/dist/context/TemplateVariableProvider/utils.js +3 -3
  291. package/dist/context/TemplateVariableProvider/utils.js.map +1 -1
  292. package/dist/context/index.js.map +1 -1
  293. package/dist/context/useDashboard.d.ts.map +1 -1
  294. package/dist/context/useDashboard.js +5 -3
  295. package/dist/context/useDashboard.js.map +1 -1
  296. package/dist/index.js.map +1 -1
  297. package/dist/stories/decorators/WithDashboard.js.map +1 -1
  298. package/dist/stories/decorators/WithDatasourceStore.js.map +1 -1
  299. package/dist/stories/decorators/WithTemplateVariables.js.map +1 -1
  300. package/dist/stories/decorators/constants.js +2 -2
  301. package/dist/stories/decorators/constants.js.map +1 -1
  302. package/dist/stories/decorators/index.js.map +1 -1
  303. package/dist/test/dashboard-provider.js.map +1 -1
  304. package/dist/test/datasource-provider.d.ts.map +1 -1
  305. package/dist/test/datasource-provider.js +5 -7
  306. package/dist/test/datasource-provider.js.map +1 -1
  307. package/dist/test/index.js.map +1 -1
  308. package/dist/test/plugin-registry.js.map +1 -1
  309. package/dist/test/render.d.ts.map +1 -1
  310. package/dist/test/render.js +8 -3
  311. package/dist/test/render.js.map +1 -1
  312. package/dist/test/setup-tests.js.map +1 -1
  313. package/dist/test/testDashboard.js +10 -10
  314. package/dist/test/testDashboard.js.map +1 -1
  315. package/dist/utils/index.js.map +1 -1
  316. package/dist/utils/panelUtils.js.map +1 -1
  317. package/dist/utils/time.js.map +1 -1
  318. package/dist/validation/index.d.ts +2 -0
  319. package/dist/validation/index.d.ts.map +1 -0
  320. package/dist/validation/index.js +15 -0
  321. package/dist/validation/index.js.map +1 -0
  322. package/dist/validation/panel.d.ts +19 -0
  323. package/dist/validation/panel.d.ts.map +1 -0
  324. package/dist/validation/panel.js +21 -0
  325. package/dist/validation/panel.js.map +1 -0
  326. package/dist/views/ViewDashboard/DashboardApp.d.ts +1 -0
  327. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  328. package/dist/views/ViewDashboard/DashboardApp.js +17 -5
  329. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  330. package/dist/views/ViewDashboard/ViewDashboard.d.ts +1 -0
  331. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  332. package/dist/views/ViewDashboard/ViewDashboard.js +52 -11
  333. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  334. package/dist/views/ViewDashboard/index.js.map +1 -1
  335. package/dist/views/index.js.map +1 -1
  336. package/package.json +8 -7
@@ -16,105 +16,53 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "PanelDrawer", {
18
18
  enumerable: true,
19
- get: ()=>PanelDrawer
19
+ get: function() {
20
+ return PanelDrawer;
21
+ }
20
22
  });
21
- const _jsxRuntime = require("react/jsx-runtime");
23
+ const _jsxruntime = require("react/jsx-runtime");
22
24
  const _react = require("react");
23
- const _material = require("@mui/material");
24
25
  const _components = require("@perses-dev/components");
25
26
  const _context = require("../../context");
26
- const _panelEditorForm = require("./PanelEditorForm");
27
+ const _PanelEditorForm = require("./PanelEditorForm");
27
28
  const PanelDrawer = ()=>{
28
29
  const panelEditor = (0, _context.usePanelEditor)();
29
- const { openDiscardChangesConfirmationDialog , closeDiscardChangesConfirmationDialog } = (0, _context.useDiscardChangesConfirmationDialog)();
30
- const [values, setValues] = (0, _react.useState)(undefined);
31
30
  // When the user clicks close, start closing but don't call the store yet to keep values stable during animtation
32
31
  const [isClosing, setIsClosing] = (0, _react.useState)(false);
33
- const handleClose = ()=>{
34
- const isModified = JSON.stringify(panelEditor === null || panelEditor === void 0 ? void 0 : panelEditor.initialValues) !== JSON.stringify(values);
35
- if (isModified) {
36
- openDiscardChangesConfirmationDialog({
37
- onDiscardChanges: ()=>{
38
- closeDiscardChangesConfirmationDialog();
39
- setIsClosing(true);
40
- },
41
- onCancel: ()=>{
42
- closeDiscardChangesConfirmationDialog();
43
- },
44
- description: 'You have unapplied changes in this panel. Are you sure you want to discard these changes? Changes cannot be recovered.'
45
- });
46
- } else {
47
- setIsClosing(true);
48
- }
49
- };
50
- // Don't call closeDrawer on the store until the Drawer has completely transitioned out
51
- const handleExited = ()=>{
52
- panelEditor === null || panelEditor === void 0 ? void 0 : panelEditor.close();
53
- setIsClosing(false);
54
- };
55
32
  // Drawer is open if we have a model and we're not transitioning out
56
33
  const isOpen = panelEditor !== undefined && isClosing === false;
57
- const handleSubmit = ()=>{
34
+ function handleSave(values) {
58
35
  // This shouldn't happen since we don't render the submit button until we have a model, but check to make TS happy
59
36
  if (panelEditor === undefined || values === undefined) {
60
37
  throw new Error('Cannot apply changes');
61
38
  }
62
39
  panelEditor.applyChanges(values);
63
40
  setIsClosing(true);
41
+ }
42
+ const handleClose = ()=>{
43
+ setIsClosing(true);
44
+ };
45
+ // Don't call closeDrawer on the store until the Drawer has completely transitioned out and reset close state
46
+ const handleExited = ()=>{
47
+ panelEditor === null || panelEditor === void 0 ? void 0 : panelEditor.close();
48
+ setIsClosing(false);
64
49
  };
65
- const handleChange = (0, _react.useCallback)((values)=>{
66
- setValues(values);
67
- }, []);
68
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.Drawer, {
50
+ // Disables closing on click out. This is a quick-win solution to avoid losing draft changes.
51
+ // -> TODO find a way to enable closing by clicking-out in edit view, with a discard confirmation modal popping up
52
+ const handleClickOut = ()=>{
53
+ /* do nothing */ };
54
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.Drawer, {
69
55
  isOpen: isOpen,
70
- onClose: handleClose,
56
+ onClose: handleClickOut,
71
57
  SlideProps: {
72
58
  onExited: handleExited
73
59
  },
74
60
  "data-testid": "panel-editor",
75
- children: panelEditor !== undefined && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
76
- children: [
77
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
78
- sx: {
79
- display: 'flex',
80
- alignItems: 'center',
81
- padding: (theme)=>theme.spacing(1, 2),
82
- borderBottom: (theme)=>`1px solid ${theme.palette.divider}`
83
- },
84
- children: [
85
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Typography, {
86
- variant: "h2",
87
- children: [
88
- panelEditor.mode,
89
- " Panel"
90
- ]
91
- }),
92
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
93
- direction: "row",
94
- spacing: 1,
95
- marginLeft: "auto",
96
- children: [
97
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
98
- type: "submit",
99
- variant: "contained",
100
- onClick: handleSubmit,
101
- children: panelEditor.mode === 'Add' ? 'Add' : 'Apply'
102
- }),
103
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
104
- color: "secondary",
105
- variant: "outlined",
106
- onClick: handleClose,
107
- children: "Cancel"
108
- })
109
- ]
110
- })
111
- ]
112
- }),
113
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_panelEditorForm.PanelEditorForm, {
114
- initialValues: panelEditor.initialValues,
115
- onChange: handleChange
116
- })
117
- ]
61
+ children: panelEditor && /*#__PURE__*/ (0, _jsxruntime.jsx)(_PanelEditorForm.PanelEditorForm, {
62
+ initialAction: panelEditor.mode,
63
+ initialValues: panelEditor.initialValues,
64
+ onSave: handleSave,
65
+ onClose: handleClose
118
66
  })
119
67
  });
120
68
  };
@@ -21,26 +21,33 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- PanelEditorForm: ()=>PanelEditorForm,
25
- panelEditorFormId: ()=>panelEditorFormId
24
+ PanelEditorForm: function() {
25
+ return PanelEditorForm;
26
+ },
27
+ panelEditorFormId: function() {
28
+ return panelEditorFormId;
29
+ }
26
30
  });
27
- const _jsxRuntime = require("react/jsx-runtime");
31
+ const _jsxruntime = require("react/jsx-runtime");
28
32
  const _react = require("react");
29
33
  const _material = require("@mui/material");
30
34
  const _components = require("@perses-dev/components");
31
- const _pluginSystem = require("@perses-dev/plugin-system");
35
+ const _pluginsystem = require("@perses-dev/plugin-system");
36
+ const _reacthookform = require("react-hook-form");
37
+ const _zod = require("@hookform/resolvers/zod");
32
38
  const _context = require("../../context");
33
- const _panelPreview = require("./PanelPreview");
39
+ const _validation = require("../../validation");
40
+ const _PanelPreview = require("./PanelPreview");
34
41
  const _usePanelEditor = require("./usePanelEditor");
35
42
  function PanelEditorForm(props) {
36
- var ref;
37
- const { initialValues: { panelDefinition: initialPanelDef , groupId: initialGroupId } , onChange , } = props;
43
+ const { initialValues: { panelDefinition: initialPanelDef , groupId: initialGroupId } , initialAction , onSave , onClose } = props;
38
44
  const panelGroups = (0, _context.useListPanelGroups)();
39
45
  const [groupId, setGroupId] = (0, _react.useState)(initialGroupId);
40
46
  const { panelDefinition , setName , setDescription , setQueries , setPlugin , setPanelDefinition } = (0, _usePanelEditor.usePanelEditor)(initialPanelDef);
41
47
  const { plugin } = panelDefinition.spec;
48
+ const [isDiscardDialogOpened, setDiscardDialogOpened] = (0, _react.useState)(false);
42
49
  // Use common plugin editor logic even though we've split the inputs up in this form
43
- const pluginEditor = (0, _pluginSystem.usePluginEditor)({
50
+ const pluginEditor = (0, _pluginsystem.usePluginEditor)({
44
51
  pluginType: 'Panel',
45
52
  value: {
46
53
  kind: plugin.kind,
@@ -53,15 +60,44 @@ function PanelEditorForm(props) {
53
60
  setQueries(undefined, isHidden);
54
61
  }
55
62
  });
56
- // Ignore string values (which would be an "empty" value from the Select) since we don't allow them to unset it
57
- const handleGroupChange = (e)=>{
58
- const { value } = e.target;
59
- if (typeof value === 'string') {
60
- return;
63
+ const titleAction = (0, _pluginsystem.getTitleAction)(initialAction, true);
64
+ const submitText = (0, _pluginsystem.getSubmitText)(initialAction, true);
65
+ const form = (0, _reacthookform.useForm)({
66
+ resolver: (0, _zod.zodResolver)(_validation.panelEditorValidationSchema),
67
+ mode: 'onBlur',
68
+ defaultValues: {
69
+ name: initialPanelDef.spec.display.name,
70
+ groupId: initialGroupId,
71
+ description: initialPanelDef.spec.display.description,
72
+ type: pluginEditor.pendingKind ? pluginEditor.pendingKind : plugin.kind
61
73
  }
62
- setGroupId(value);
74
+ });
75
+ const processForm = ()=>{
76
+ const values = {
77
+ groupId,
78
+ panelDefinition
79
+ };
80
+ onSave(values);
63
81
  };
64
- const handlePanelDefinitionChange = (nextPanelDef)=>{
82
+ // When user click on cancel, several possibilities:
83
+ // - create action: ask for discard approval
84
+ // - update action: ask for discard approval if changed
85
+ // - read action: don´t ask for discard approval
86
+ function handleCancel() {
87
+ if (JSON.stringify({
88
+ groupId: initialGroupId,
89
+ panelDefinition: initialPanelDef
90
+ }) !== JSON.stringify({
91
+ groupId,
92
+ panelDefinition
93
+ })) {
94
+ setDiscardDialogOpened(true);
95
+ } else {
96
+ onClose();
97
+ }
98
+ }
99
+ const handlePanelDefinitionChange = (nextPanelDefStr)=>{
100
+ const nextPanelDef = JSON.parse(nextPanelDefStr);
65
101
  const { kind: pluginKind , spec: pluginSpec } = nextPanelDef.spec.plugin;
66
102
  // if panel plugin kind and spec are modified, then need to save current spec
67
103
  if (panelDefinition.spec.plugin.kind !== pluginKind && JSON.stringify(panelDefinition.spec.plugin.spec) !== JSON.stringify(pluginSpec)) {
@@ -69,146 +105,200 @@ function PanelEditorForm(props) {
69
105
  }
70
106
  setPanelDefinition(nextPanelDef);
71
107
  };
72
- (0, _react.useEffect)(()=>{
73
- const values = {
74
- groupId,
75
- panelDefinition
76
- };
77
- onChange(values);
78
- }, [
79
- groupId,
80
- panelDefinition,
81
- onChange
82
- ]);
83
- var _name, _title, _description, ref1;
84
- return(// Grid maxHeight allows user to scroll inside Drawer to see all content
85
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
86
- component: "form",
87
- id: panelEditorFormId,
88
- sx: {
89
- flex: 1,
90
- overflowY: 'scroll',
91
- padding: (theme)=>theme.spacing(2)
92
- },
93
- children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Grid, {
94
- container: true,
95
- spacing: 2,
96
- children: [
97
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
98
- item: true,
99
- xs: 8,
100
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
101
- required: true,
102
- fullWidth: true,
103
- label: "Name",
104
- value: (_name = panelDefinition.spec.display.name) !== null && _name !== void 0 ? _name : '',
105
- variant: "outlined",
106
- onChange: (e)=>{
107
- setName(e.target.value);
108
- }
109
- })
110
- }),
111
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
112
- item: true,
113
- xs: 4,
114
- children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.FormControl, {
115
- fullWidth: true,
108
+ var _panelGroup_title, _pluginEditor_error_message;
109
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_reacthookform.FormProvider, {
110
+ ...form,
111
+ children: [
112
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Box, {
113
+ sx: {
114
+ display: 'flex',
115
+ alignItems: 'center',
116
+ padding: (theme)=>theme.spacing(1, 2),
117
+ borderBottom: (theme)=>`1px solid ${theme.palette.divider}`
118
+ },
119
+ children: [
120
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Typography, {
121
+ variant: "h2",
122
+ children: [
123
+ titleAction,
124
+ " Panel"
125
+ ]
126
+ }),
127
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
128
+ direction: "row",
129
+ spacing: 1,
130
+ marginLeft: "auto",
116
131
  children: [
117
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.InputLabel, {
118
- id: "select-group",
119
- children: "Group"
132
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
133
+ variant: "contained",
134
+ disabled: !form.formState.isValid,
135
+ onClick: form.handleSubmit(processForm),
136
+ children: submitText
120
137
  }),
121
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Select, {
122
- required: true,
123
- labelId: "select-group",
124
- label: "Group",
125
- value: groupId,
126
- onChange: handleGroupChange,
127
- children: panelGroups.map((panelGroup, index)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.MenuItem, {
128
- value: panelGroup.id,
129
- children: (_title = panelGroup.title) !== null && _title !== void 0 ? _title : `Group ${index + 1}`
130
- }, panelGroup.id))
138
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
139
+ color: "secondary",
140
+ variant: "outlined",
141
+ onClick: handleCancel,
142
+ children: "Cancel"
131
143
  })
132
144
  ]
133
145
  })
134
- }),
135
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
136
- item: true,
137
- xs: 8,
138
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
139
- fullWidth: true,
140
- label: "Description",
141
- value: (_description = panelDefinition.spec.display.description) !== null && _description !== void 0 ? _description : '',
142
- variant: "outlined",
143
- onChange: (e)=>{
144
- setDescription(e.target.value);
145
- }
146
- })
147
- }),
148
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Grid, {
149
- item: true,
150
- xs: 4,
146
+ ]
147
+ }),
148
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
149
+ id: panelEditorFormId,
150
+ sx: {
151
+ flex: 1,
152
+ overflowY: 'scroll',
153
+ padding: (theme)=>theme.spacing(2)
154
+ },
155
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Grid, {
156
+ container: true,
157
+ spacing: 2,
151
158
  children: [
152
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.FormControl, {
153
- fullWidth: true,
154
- disabled: pluginEditor.isLoading,
155
- error: pluginEditor.error !== null,
159
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
160
+ item: true,
161
+ xs: 8,
162
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
163
+ name: "name",
164
+ render: ({ field , fieldState })=>{
165
+ var _fieldState_error;
166
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
167
+ ...field,
168
+ required: true,
169
+ fullWidth: true,
170
+ label: "Name",
171
+ error: !!fieldState.error,
172
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
173
+ onChange: (event)=>{
174
+ field.onChange(event);
175
+ setName(event.target.value);
176
+ }
177
+ });
178
+ }
179
+ })
180
+ }),
181
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
182
+ item: true,
183
+ xs: 4,
184
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
185
+ name: "groupId",
186
+ render: ({ field , fieldState })=>{
187
+ var _fieldState_error;
188
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
189
+ select: true,
190
+ ...field,
191
+ required: true,
192
+ fullWidth: true,
193
+ label: "Group",
194
+ error: !!fieldState.error,
195
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
196
+ onChange: (event)=>{
197
+ field.onChange(event);
198
+ setGroupId(+event.target.value);
199
+ },
200
+ children: panelGroups.map((panelGroup, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
201
+ value: panelGroup.id,
202
+ children: (_panelGroup_title = panelGroup.title) !== null && _panelGroup_title !== void 0 ? _panelGroup_title : `Group ${index + 1}`
203
+ }, panelGroup.id))
204
+ });
205
+ }
206
+ })
207
+ }),
208
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
209
+ item: true,
210
+ xs: 8,
211
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
212
+ name: "description",
213
+ render: ({ field , fieldState })=>{
214
+ var _fieldState_error;
215
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_material.TextField, {
216
+ ...field,
217
+ fullWidth: true,
218
+ label: "Description",
219
+ error: !!fieldState.error,
220
+ helperText: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
221
+ onChange: (event)=>{
222
+ field.onChange(event);
223
+ setDescription(event.target.value);
224
+ }
225
+ });
226
+ }
227
+ })
228
+ }),
229
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
230
+ item: true,
231
+ xs: 4,
232
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
233
+ name: "type",
234
+ render: ({ field , fieldState })=>{
235
+ var _pluginEditor_error, _fieldState_error;
236
+ /*#__PURE__*/ return (0, _jsxruntime.jsx)(_pluginsystem.PluginKindSelect, {
237
+ ...field,
238
+ pluginType: "Panel",
239
+ required: true,
240
+ fullWidth: true,
241
+ label: "Type",
242
+ disabled: pluginEditor.isLoading,
243
+ error: !!pluginEditor.error || !!fieldState.error,
244
+ helperText: (_pluginEditor_error_message = (_pluginEditor_error = pluginEditor.error) === null || _pluginEditor_error === void 0 ? void 0 : _pluginEditor_error.message) !== null && _pluginEditor_error_message !== void 0 ? _pluginEditor_error_message : (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
245
+ onChange: (event)=>{
246
+ field.onChange(event);
247
+ pluginEditor.onKindChange(event);
248
+ }
249
+ });
250
+ }
251
+ })
252
+ }),
253
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Grid, {
254
+ item: true,
255
+ xs: 12,
156
256
  children: [
157
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.InputLabel, {
158
- id: "panel-type-label",
159
- children: "Type"
257
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
258
+ variant: "h4",
259
+ marginBottom: 1,
260
+ children: "Preview"
160
261
  }),
161
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginSystem.PluginKindSelect, {
162
- pluginType: "Panel",
163
- required: true,
164
- labelId: "panel-type-label",
165
- label: "Type",
166
- value: pluginEditor.pendingKind ? pluginEditor.pendingKind : plugin.kind,
167
- onChange: pluginEditor.onKindChange
262
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
263
+ FallbackComponent: _components.ErrorAlert,
264
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_PanelPreview.PanelPreview, {
265
+ panelDefinition: panelDefinition
266
+ })
168
267
  })
169
268
  ]
170
269
  }),
171
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.FormHelperText, {
172
- children: (ref1 = (ref = pluginEditor.error) === null || ref === void 0 ? void 0 : ref.message) !== null && ref1 !== void 0 ? ref1 : ''
173
- })
174
- ]
175
- }),
176
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Grid, {
177
- item: true,
178
- xs: 12,
179
- children: [
180
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
181
- variant: "h4",
182
- marginBottom: 1,
183
- children: "Preview"
184
- }),
185
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.ErrorBoundary, {
186
- FallbackComponent: _components.ErrorAlert,
187
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_panelPreview.PanelPreview, {
188
- panelDefinition: panelDefinition
270
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Grid, {
271
+ item: true,
272
+ xs: 12,
273
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
274
+ FallbackComponent: _components.ErrorAlert,
275
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_pluginsystem.PanelSpecEditor, {
276
+ panelDefinition: panelDefinition,
277
+ onJSONChange: handlePanelDefinitionChange,
278
+ onQueriesChange: (queries)=>{
279
+ setQueries(queries);
280
+ },
281
+ onPluginSpecChange: (spec)=>{
282
+ pluginEditor.onSpecChange(spec);
283
+ }
284
+ })
189
285
  })
190
286
  })
191
287
  ]
192
- }),
193
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Grid, {
194
- item: true,
195
- xs: 12,
196
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.ErrorBoundary, {
197
- FallbackComponent: _components.ErrorAlert,
198
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginSystem.PanelSpecEditor, {
199
- panelDefinition: panelDefinition,
200
- onJSONChange: handlePanelDefinitionChange,
201
- onQueriesChange: (queries)=>{
202
- setQueries(queries);
203
- },
204
- onPluginSpecChange: (spec)=>{
205
- pluginEditor.onSpecChange(spec);
206
- }
207
- })
208
- })
209
288
  })
210
- ]
211
- })
212
- }));
289
+ }),
290
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.DiscardChangesConfirmationDialog, {
291
+ description: "You have unapplied changes in this panel. Are you sure you want to discard these changes? Changes cannot be recovered.",
292
+ isOpen: isDiscardDialogOpened,
293
+ onCancel: ()=>{
294
+ setDiscardDialogOpened(false);
295
+ },
296
+ onDiscardChanges: ()=>{
297
+ setDiscardDialogOpened(false);
298
+ onClose();
299
+ }
300
+ })
301
+ ]
302
+ });
213
303
  }
214
304
  const panelEditorFormId = 'panel-editor-form';
@@ -16,13 +16,15 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "PanelPreview", {
18
18
  enumerable: true,
19
- get: ()=>PanelPreview
19
+ get: function() {
20
+ return PanelPreview;
21
+ }
20
22
  });
21
- const _jsxRuntime = require("react/jsx-runtime");
23
+ const _jsxruntime = require("react/jsx-runtime");
22
24
  const _react = require("react");
23
25
  const _material = require("@mui/material");
24
- const _pluginSystem = require("@perses-dev/plugin-system");
25
- const _panel = require("../Panel");
26
+ const _pluginsystem = require("@perses-dev/plugin-system");
27
+ const _Panel = require("../Panel");
26
28
  const _utils = require("../../utils");
27
29
  const PANEL_PREVIEW_HEIGHT = 300;
28
30
  const PANEL_PREVIEW_DEFAULT_WIDTH = 840;
@@ -36,8 +38,8 @@ function PanelPreview({ panelDefinition }) {
36
38
  if (panelDefinition.spec.plugin.kind === '') {
37
39
  return null;
38
40
  }
39
- var _queries;
40
- const queries = (_queries = panelDefinition.spec.queries) !== null && _queries !== void 0 ? _queries : [];
41
+ var _panelDefinition_spec_queries;
42
+ const queries = (_panelDefinition_spec_queries = panelDefinition.spec.queries) !== null && _panelDefinition_spec_queries !== void 0 ? _panelDefinition_spec_queries : [];
41
43
  // map TimeSeriesQueryDefinition to Definition<UnknownSpec>
42
44
  const definitions = queries.length ? queries.map((query)=>{
43
45
  return {
@@ -45,15 +47,15 @@ function PanelPreview({ panelDefinition }) {
45
47
  spec: query.spec.plugin.spec
46
48
  };
47
49
  }) : [];
48
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
50
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
49
51
  ref: boxRef,
50
52
  height: PANEL_PREVIEW_HEIGHT,
51
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginSystem.DataQueriesProvider, {
53
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_pluginsystem.DataQueriesProvider, {
52
54
  definitions: definitions,
53
55
  options: {
54
56
  suggestedStepMs
55
57
  },
56
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_panel.Panel, {
58
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Panel.Panel, {
57
59
  definition: panelDefinition
58
60
  })
59
61
  })
@@ -14,15 +14,18 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- _exportStar(require("./PanelDrawer"), exports);
18
- function _exportStar(from, to) {
17
+ _export_star(require("./PanelDrawer"), exports);
18
+ _export_star(require("./PanelPreview"), exports);
19
+ function _export_star(from, to) {
19
20
  Object.keys(from).forEach(function(k) {
20
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
21
- enumerable: true,
22
- get: function() {
23
- return from[k];
24
- }
25
- });
21
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
22
+ Object.defineProperty(to, k, {
23
+ enumerable: true,
24
+ get: function() {
25
+ return from[k];
26
+ }
27
+ });
28
+ }
26
29
  });
27
30
  return from;
28
31
  }
@@ -16,7 +16,9 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "usePanelEditor", {
18
18
  enumerable: true,
19
- get: ()=>usePanelEditor
19
+ get: function() {
20
+ return usePanelEditor;
21
+ }
20
22
  });
21
23
  const _react = require("react");
22
24
  const usePanelEditor = (panelDefinition)=>{