@perses-dev/dashboards 0.39.0 → 0.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/cjs/components/AddGroupButton/AddGroupButton.js +9 -7
  2. package/dist/cjs/components/AddGroupButton/index.js +10 -8
  3. package/dist/cjs/components/AddPanelButton/AddPanelButton.js +9 -7
  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 +18 -16
  8. package/dist/cjs/components/DashboardStickyToolbar/index.js +10 -8
  9. package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +43 -41
  10. package/dist/cjs/components/DashboardToolbar/index.js +10 -8
  11. package/dist/cjs/components/DeletePanelDialog/DeletePanelDialog.js +12 -10
  12. package/dist/cjs/components/DeletePanelDialog/index.js +10 -8
  13. package/dist/cjs/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +17 -15
  14. package/dist/cjs/components/DeletePanelGroupDialog/index.js +10 -8
  15. package/dist/cjs/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +5 -3
  16. package/dist/cjs/components/DiscardChangesConfirmationDialog/index.js +10 -8
  17. package/dist/cjs/components/DownloadButton/DownloadButton.js +12 -10
  18. package/dist/cjs/components/DownloadButton/index.js +10 -8
  19. package/dist/cjs/components/EditButton/EditButton.js +8 -6
  20. package/dist/cjs/components/EditButton/index.js +10 -8
  21. package/dist/cjs/components/EditJsonButton/EditJsonButton.js +10 -8
  22. package/dist/cjs/components/EditJsonButton/index.js +10 -8
  23. package/dist/cjs/components/EditJsonDialog/EditJsonDialog.js +29 -23
  24. package/dist/cjs/components/EditJsonDialog/index.js +10 -8
  25. package/dist/cjs/components/EmptyDashboard/EmptyDashboard.js +18 -16
  26. package/dist/cjs/components/EmptyDashboard/index.js +10 -8
  27. package/dist/cjs/components/GridLayout/GridContainer.js +5 -3
  28. package/dist/cjs/components/GridLayout/GridItemContent.js +33 -14
  29. package/dist/cjs/components/GridLayout/GridLayout.js +18 -16
  30. package/dist/cjs/components/GridLayout/GridTitle.js +35 -33
  31. package/dist/cjs/components/GridLayout/index.js +13 -11
  32. package/dist/cjs/components/Panel/Panel.js +17 -22
  33. package/dist/cjs/components/Panel/PanelContent.js +8 -6
  34. package/dist/cjs/components/Panel/PanelHeader.js +33 -31
  35. package/dist/cjs/components/Panel/index.js +10 -8
  36. package/dist/cjs/components/PanelDrawer/PanelDrawer.js +25 -77
  37. package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +269 -141
  38. package/dist/cjs/components/PanelDrawer/PanelPreview.js +11 -9
  39. package/dist/cjs/components/PanelDrawer/index.js +10 -8
  40. package/dist/cjs/components/PanelDrawer/usePanelEditor.js +3 -1
  41. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.js +18 -16
  42. package/dist/cjs/components/PanelGroupDialog/PanelGroupEditorForm.js +15 -11
  43. package/dist/cjs/components/PanelGroupDialog/index.js +10 -8
  44. package/dist/cjs/components/QuerySummaryTable/QuerySummaryTable.js +46 -44
  45. package/dist/cjs/components/QuerySummaryTable/index.js +10 -8
  46. package/dist/cjs/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +23 -21
  47. package/dist/cjs/components/SaveChangesConfirmationDialog/index.js +10 -8
  48. package/dist/cjs/components/SaveDashboardButton/SaveDashboardButton.js +8 -8
  49. package/dist/cjs/components/SaveDashboardButton/index.js +10 -8
  50. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +40 -16
  51. package/dist/cjs/components/TimeRangeControls/index.js +10 -8
  52. package/dist/cjs/components/ToolbarIconButton/ToolbarIconButton.js +5 -3
  53. package/dist/cjs/components/ToolbarIconButton/index.js +10 -8
  54. package/dist/cjs/components/Variables/BuiltinVariableAccordions.js +140 -0
  55. package/dist/cjs/components/Variables/EditVariablesButton.js +16 -11
  56. package/dist/cjs/components/Variables/TemplateVariable.js +116 -69
  57. package/dist/cjs/components/Variables/VariableEditor.js +280 -204
  58. package/dist/cjs/components/Variables/VariableList.js +19 -15
  59. package/dist/cjs/components/Variables/index.js +14 -11
  60. package/dist/cjs/components/index.js +31 -29
  61. package/dist/cjs/constants/grid-layout-config.js +6 -2
  62. package/dist/cjs/constants/index.js +11 -9
  63. package/dist/cjs/constants/user-interface-text.js +6 -2
  64. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +40 -34
  65. package/dist/cjs/context/DashboardProvider/common.js +6 -2
  66. package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +70 -38
  67. package/dist/cjs/context/DashboardProvider/delete-panel-group-slice.js +3 -1
  68. package/dist/cjs/context/DashboardProvider/delete-panel-slice.js +5 -3
  69. package/dist/cjs/context/DashboardProvider/discard-changes-dialog-slice.js +3 -1
  70. package/dist/cjs/context/DashboardProvider/duplicate-panel-slice.js +3 -1
  71. package/dist/cjs/context/DashboardProvider/edit-json-dialog-slice.js +3 -1
  72. package/dist/cjs/context/DashboardProvider/index.js +12 -10
  73. package/dist/cjs/context/DashboardProvider/panel-editor-slice.js +13 -11
  74. package/dist/cjs/context/DashboardProvider/panel-group-editor-slice.js +8 -6
  75. package/dist/cjs/context/DashboardProvider/panel-group-slice.js +15 -7
  76. package/dist/cjs/context/DashboardProvider/panel-slice.js +3 -1
  77. package/dist/cjs/context/DashboardProvider/save-changes-dialog-slice.js +3 -1
  78. package/dist/cjs/context/DatasourceStoreProvider.js +114 -45
  79. package/dist/cjs/context/TemplateVariableProvider/TemplateVariableProvider.js +125 -34
  80. package/dist/cjs/context/TemplateVariableProvider/hydrationUtils.js +12 -10
  81. package/dist/cjs/context/TemplateVariableProvider/index.js +10 -8
  82. package/dist/cjs/context/TemplateVariableProvider/query-params.js +17 -7
  83. package/dist/cjs/context/TemplateVariableProvider/utils.js +15 -7
  84. package/dist/cjs/context/index.js +13 -11
  85. package/dist/cjs/context/useDashboard.js +8 -6
  86. package/dist/cjs/index.js +12 -10
  87. package/dist/cjs/stories/decorators/WithDashboard.js +6 -4
  88. package/dist/cjs/stories/decorators/WithDatasourceStore.js +6 -4
  89. package/dist/cjs/stories/decorators/WithTemplateVariables.js +6 -4
  90. package/dist/cjs/stories/decorators/constants.js +5 -3
  91. package/dist/cjs/stories/decorators/index.js +13 -11
  92. package/dist/cjs/test/dashboard-provider.js +8 -4
  93. package/dist/cjs/test/datasource-provider.js +16 -12
  94. package/dist/cjs/test/index.js +13 -11
  95. package/dist/cjs/test/plugin-registry.js +6 -4
  96. package/dist/cjs/test/render.js +27 -20
  97. package/dist/cjs/test/setup-tests.js +2 -2
  98. package/dist/cjs/test/testDashboard.js +13 -11
  99. package/dist/cjs/utils/index.js +11 -9
  100. package/dist/cjs/utils/panelUtils.js +9 -3
  101. package/dist/cjs/utils/time.js +5 -3
  102. package/dist/cjs/validation/index.js +30 -0
  103. package/dist/cjs/validation/panel.js +29 -0
  104. package/dist/cjs/views/ViewDashboard/DashboardApp.js +20 -16
  105. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +63 -19
  106. package/dist/cjs/views/ViewDashboard/index.js +10 -8
  107. package/dist/cjs/views/index.js +10 -8
  108. package/dist/components/AddGroupButton/AddGroupButton.js.map +1 -1
  109. package/dist/components/AddGroupButton/index.js.map +1 -1
  110. package/dist/components/AddPanelButton/AddPanelButton.js.map +1 -1
  111. package/dist/components/AddPanelButton/index.js.map +1 -1
  112. package/dist/components/Dashboard/Dashboard.js.map +1 -1
  113. package/dist/components/Dashboard/index.js.map +1 -1
  114. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js.map +1 -1
  115. package/dist/components/DashboardStickyToolbar/index.js.map +1 -1
  116. package/dist/components/DashboardToolbar/DashboardToolbar.js +1 -1
  117. package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
  118. package/dist/components/DashboardToolbar/index.js.map +1 -1
  119. package/dist/components/DeletePanelDialog/DeletePanelDialog.js.map +1 -1
  120. package/dist/components/DeletePanelDialog/index.js.map +1 -1
  121. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +2 -2
  122. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js.map +1 -1
  123. package/dist/components/DeletePanelGroupDialog/index.js.map +1 -1
  124. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js.map +1 -1
  125. package/dist/components/DiscardChangesConfirmationDialog/index.js.map +1 -1
  126. package/dist/components/DownloadButton/DownloadButton.js.map +1 -1
  127. package/dist/components/DownloadButton/index.js.map +1 -1
  128. package/dist/components/EditButton/EditButton.js.map +1 -1
  129. package/dist/components/EditButton/index.js.map +1 -1
  130. package/dist/components/EditJsonButton/EditJsonButton.js.map +1 -1
  131. package/dist/components/EditJsonButton/index.js.map +1 -1
  132. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts +4 -1
  133. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts.map +1 -1
  134. package/dist/components/EditJsonDialog/EditJsonDialog.js +12 -8
  135. package/dist/components/EditJsonDialog/EditJsonDialog.js.map +1 -1
  136. package/dist/components/EditJsonDialog/index.js.map +1 -1
  137. package/dist/components/EmptyDashboard/EmptyDashboard.js.map +1 -1
  138. package/dist/components/EmptyDashboard/index.js.map +1 -1
  139. package/dist/components/GridLayout/GridContainer.js.map +1 -1
  140. package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
  141. package/dist/components/GridLayout/GridItemContent.js +27 -10
  142. package/dist/components/GridLayout/GridItemContent.js.map +1 -1
  143. package/dist/components/GridLayout/GridLayout.js +2 -2
  144. package/dist/components/GridLayout/GridLayout.js.map +1 -1
  145. package/dist/components/GridLayout/GridTitle.js.map +1 -1
  146. package/dist/components/GridLayout/index.js.map +1 -1
  147. package/dist/components/Panel/Panel.d.ts.map +1 -1
  148. package/dist/components/Panel/Panel.js +4 -11
  149. package/dist/components/Panel/Panel.js.map +1 -1
  150. package/dist/components/Panel/PanelContent.js.map +1 -1
  151. package/dist/components/Panel/PanelHeader.js.map +1 -1
  152. package/dist/components/Panel/index.js.map +1 -1
  153. package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
  154. package/dist/components/PanelDrawer/PanelDrawer.js +22 -76
  155. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
  156. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +4 -1
  157. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
  158. package/dist/components/PanelDrawer/PanelEditorForm.js +223 -138
  159. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
  160. package/dist/components/PanelDrawer/PanelPreview.js +2 -2
  161. package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
  162. package/dist/components/PanelDrawer/index.js.map +1 -1
  163. package/dist/components/PanelDrawer/usePanelEditor.js.map +1 -1
  164. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -1
  165. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js.map +1 -1
  166. package/dist/components/PanelGroupDialog/index.js.map +1 -1
  167. package/dist/components/QuerySummaryTable/QuerySummaryTable.js +4 -4
  168. package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -1
  169. package/dist/components/QuerySummaryTable/index.js.map +1 -1
  170. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +4 -4
  171. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js.map +1 -1
  172. package/dist/components/SaveChangesConfirmationDialog/index.js.map +1 -1
  173. package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts.map +1 -1
  174. package/dist/components/SaveDashboardButton/SaveDashboardButton.js +1 -3
  175. package/dist/components/SaveDashboardButton/SaveDashboardButton.js.map +1 -1
  176. package/dist/components/SaveDashboardButton/index.js.map +1 -1
  177. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +1 -1
  178. package/dist/components/TimeRangeControls/TimeRangeControls.js +19 -1
  179. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -1
  180. package/dist/components/TimeRangeControls/index.js.map +1 -1
  181. package/dist/components/ToolbarIconButton/ToolbarIconButton.js.map +1 -1
  182. package/dist/components/ToolbarIconButton/index.js.map +1 -1
  183. package/dist/components/Variables/BuiltinVariableAccordions.d.ts +8 -0
  184. package/dist/components/Variables/BuiltinVariableAccordions.d.ts.map +1 -0
  185. package/dist/components/Variables/BuiltinVariableAccordions.js +127 -0
  186. package/dist/components/Variables/BuiltinVariableAccordions.js.map +1 -0
  187. package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
  188. package/dist/components/Variables/EditVariablesButton.js +3 -0
  189. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  190. package/dist/components/Variables/TemplateVariable.d.ts +10 -1
  191. package/dist/components/Variables/TemplateVariable.d.ts.map +1 -1
  192. package/dist/components/Variables/TemplateVariable.js +91 -54
  193. package/dist/components/Variables/TemplateVariable.js.map +1 -1
  194. package/dist/components/Variables/VariableEditor.d.ts +2 -1
  195. package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
  196. package/dist/components/Variables/VariableEditor.js +229 -157
  197. package/dist/components/Variables/VariableEditor.js.map +1 -1
  198. package/dist/components/Variables/VariableList.js +6 -6
  199. package/dist/components/Variables/VariableList.js.map +1 -1
  200. package/dist/components/Variables/index.d.ts +1 -0
  201. package/dist/components/Variables/index.d.ts.map +1 -1
  202. package/dist/components/Variables/index.js +1 -0
  203. package/dist/components/Variables/index.js.map +1 -1
  204. package/dist/components/index.js.map +1 -1
  205. package/dist/constants/grid-layout-config.js.map +1 -1
  206. package/dist/constants/index.js.map +1 -1
  207. package/dist/constants/user-interface-text.js.map +1 -1
  208. package/dist/context/DashboardProvider/DashboardProvider.js +5 -5
  209. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  210. package/dist/context/DashboardProvider/common.js.map +1 -1
  211. package/dist/context/DashboardProvider/dashboard-provider-api.js +2 -2
  212. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
  213. package/dist/context/DashboardProvider/delete-panel-group-slice.js.map +1 -1
  214. package/dist/context/DashboardProvider/delete-panel-slice.js +2 -2
  215. package/dist/context/DashboardProvider/delete-panel-slice.js.map +1 -1
  216. package/dist/context/DashboardProvider/discard-changes-dialog-slice.js.map +1 -1
  217. package/dist/context/DashboardProvider/duplicate-panel-slice.js.map +1 -1
  218. package/dist/context/DashboardProvider/edit-json-dialog-slice.js.map +1 -1
  219. package/dist/context/DashboardProvider/index.js.map +1 -1
  220. package/dist/context/DashboardProvider/panel-editor-slice.d.ts +2 -1
  221. package/dist/context/DashboardProvider/panel-editor-slice.d.ts.map +1 -1
  222. package/dist/context/DashboardProvider/panel-editor-slice.js +7 -7
  223. package/dist/context/DashboardProvider/panel-editor-slice.js.map +1 -1
  224. package/dist/context/DashboardProvider/panel-group-editor-slice.js +2 -2
  225. package/dist/context/DashboardProvider/panel-group-editor-slice.js.map +1 -1
  226. package/dist/context/DashboardProvider/panel-group-slice.js +3 -3
  227. package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -1
  228. package/dist/context/DashboardProvider/panel-slice.js.map +1 -1
  229. package/dist/context/DashboardProvider/save-changes-dialog-slice.js.map +1 -1
  230. package/dist/context/DatasourceStoreProvider.d.ts +14 -10
  231. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  232. package/dist/context/DatasourceStoreProvider.js +107 -40
  233. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  234. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +10 -4
  235. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +1 -1
  236. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js +93 -18
  237. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +1 -1
  238. package/dist/context/TemplateVariableProvider/hydrationUtils.js +7 -7
  239. package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +1 -1
  240. package/dist/context/TemplateVariableProvider/index.js.map +1 -1
  241. package/dist/context/TemplateVariableProvider/query-params.js.map +1 -1
  242. package/dist/context/TemplateVariableProvider/utils.js +3 -3
  243. package/dist/context/TemplateVariableProvider/utils.js.map +1 -1
  244. package/dist/context/index.js.map +1 -1
  245. package/dist/context/useDashboard.js +1 -1
  246. package/dist/context/useDashboard.js.map +1 -1
  247. package/dist/index.js.map +1 -1
  248. package/dist/stories/decorators/WithDashboard.js.map +1 -1
  249. package/dist/stories/decorators/WithDatasourceStore.js.map +1 -1
  250. package/dist/stories/decorators/WithTemplateVariables.js.map +1 -1
  251. package/dist/stories/decorators/constants.js +2 -2
  252. package/dist/stories/decorators/constants.js.map +1 -1
  253. package/dist/stories/decorators/index.js.map +1 -1
  254. package/dist/test/dashboard-provider.js.map +1 -1
  255. package/dist/test/datasource-provider.d.ts.map +1 -1
  256. package/dist/test/datasource-provider.js +5 -7
  257. package/dist/test/datasource-provider.js.map +1 -1
  258. package/dist/test/index.js.map +1 -1
  259. package/dist/test/plugin-registry.js.map +1 -1
  260. package/dist/test/render.d.ts.map +1 -1
  261. package/dist/test/render.js +6 -1
  262. package/dist/test/render.js.map +1 -1
  263. package/dist/test/setup-tests.js.map +1 -1
  264. package/dist/test/testDashboard.js +10 -10
  265. package/dist/test/testDashboard.js.map +1 -1
  266. package/dist/utils/index.js.map +1 -1
  267. package/dist/utils/panelUtils.js.map +1 -1
  268. package/dist/utils/time.js.map +1 -1
  269. package/dist/validation/index.d.ts +2 -0
  270. package/dist/validation/index.d.ts.map +1 -0
  271. package/dist/validation/index.js +15 -0
  272. package/dist/validation/index.js.map +1 -0
  273. package/dist/validation/panel.d.ts +19 -0
  274. package/dist/validation/panel.d.ts.map +1 -0
  275. package/dist/validation/panel.js +21 -0
  276. package/dist/validation/panel.js.map +1 -0
  277. package/dist/views/ViewDashboard/DashboardApp.d.ts +1 -0
  278. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  279. package/dist/views/ViewDashboard/DashboardApp.js +4 -2
  280. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  281. package/dist/views/ViewDashboard/ViewDashboard.d.ts +1 -0
  282. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  283. package/dist/views/ViewDashboard/ViewDashboard.js +49 -7
  284. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  285. package/dist/views/ViewDashboard/index.js.map +1 -1
  286. package/dist/views/index.js.map +1 -1
  287. package/package.json +8 -7
@@ -16,20 +16,22 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "SaveDashboardButton", {
18
18
  enumerable: true,
19
- get: ()=>SaveDashboardButton
19
+ get: function() {
20
+ return SaveDashboardButton;
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
26
  const _core = require("@perses-dev/core");
25
- const _pluginSystem = require("@perses-dev/plugin-system");
27
+ const _pluginsystem = require("@perses-dev/plugin-system");
26
28
  const _context = require("../../context");
27
29
  const SaveDashboardButton = ({ onSave , isDisabled , variant ='contained' })=>{
28
30
  const [isSavingDashboard, setSavingDashboard] = (0, _react.useState)(false);
29
31
  const { dashboard , setDashboard } = (0, _context.useDashboard)();
30
32
  const { getSavedVariablesStatus , setVariableDefaultValues } = (0, _context.useTemplateVariableActions)();
31
33
  const { isSavedVariableModified } = getSavedVariablesStatus();
32
- const { timeRange } = (0, _pluginSystem.useTimeRange)();
34
+ const { timeRange } = (0, _pluginsystem.useTimeRange)();
33
35
  const { setEditMode } = (0, _context.useEditMode)();
34
36
  const { openSaveChangesConfirmationDialog , closeSaveChangesConfirmationDialog } = (0, _context.useSaveChangesConfirmationDialog)();
35
37
  const onSaveButtonClick = ()=>{
@@ -70,15 +72,13 @@ const SaveDashboardButton = ({ onSave , isDisabled , variant ='contained' })=>{
70
72
  } catch (error) {
71
73
  throw new Error(`An error occurred while saving the dashboard. ${error}`);
72
74
  } finally{
73
- if (isSavingDashboard) {
74
- setSavingDashboard(false);
75
- }
75
+ setSavingDashboard(false);
76
76
  }
77
77
  } else {
78
78
  setEditMode(false);
79
79
  }
80
80
  };
81
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
81
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
82
82
  variant: variant,
83
83
  onClick: onSaveButtonClick,
84
84
  disabled: isDisabled || isSavingDashboard,
@@ -14,15 +14,17 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- _exportStar(require("./SaveDashboardButton"), exports);
18
- function _exportStar(from, to) {
17
+ _export_star(require("./SaveDashboardButton"), exports);
18
+ function _export_star(from, to) {
19
19
  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
- });
20
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
21
+ Object.defineProperty(to, k, {
22
+ enumerable: true,
23
+ get: function() {
24
+ return from[k];
25
+ }
26
+ });
27
+ }
26
28
  });
27
29
  return from;
28
30
  }
@@ -21,20 +21,28 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- DEFAULT_TIME_RANGE_OPTIONS: ()=>DEFAULT_TIME_RANGE_OPTIONS,
25
- DEFAULT_REFRESH_INTERVAL_OPTIONS: ()=>DEFAULT_REFRESH_INTERVAL_OPTIONS,
26
- TimeRangeControls: ()=>TimeRangeControls
24
+ DEFAULT_TIME_RANGE_OPTIONS: function() {
25
+ return DEFAULT_TIME_RANGE_OPTIONS;
26
+ },
27
+ DEFAULT_REFRESH_INTERVAL_OPTIONS: function() {
28
+ return DEFAULT_REFRESH_INTERVAL_OPTIONS;
29
+ },
30
+ TimeRangeControls: function() {
31
+ return TimeRangeControls;
32
+ }
27
33
  });
28
- const _jsxRuntime = require("react/jsx-runtime");
29
- const _refresh = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/Refresh"));
34
+ const _jsxruntime = require("react/jsx-runtime");
35
+ const _Refresh = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Refresh"));
30
36
  const _material = require("@mui/material");
31
37
  const _components = require("@perses-dev/components");
32
- const _pluginSystem = require("@perses-dev/plugin-system");
38
+ const _pluginsystem = require("@perses-dev/plugin-system");
33
39
  const _core = require("@perses-dev/core");
40
+ const _react = require("react");
34
41
  const _constants = require("../../constants");
35
42
  const _context = require("../../context");
36
- const _toolbarIconButton = require("../ToolbarIconButton");
37
- function _interopRequireDefault(obj) {
43
+ const _ToolbarIconButton = require("../ToolbarIconButton");
44
+ const _useDashboard = require("../../context/useDashboard");
45
+ function _interop_require_default(obj) {
38
46
  return obj && obj.__esModule ? obj : {
39
47
  default: obj
40
48
  };
@@ -135,9 +143,10 @@ const DEFAULT_REFRESH_INTERVAL_OPTIONS = [
135
143
  ];
136
144
  const DEFAULT_HEIGHT = '34px';
137
145
  function TimeRangeControls({ heightPx , showTimeRangeSelector =true , showRefreshButton =true , showRefreshInterval =true , timePresets =DEFAULT_TIME_RANGE_OPTIONS }) {
138
- const { timeRange , setTimeRange , refresh , refreshInterval , setRefreshInterval } = (0, _pluginSystem.useTimeRange)();
146
+ const { timeRange , setTimeRange , refresh , refreshInterval , setRefreshInterval } = (0, _pluginsystem.useTimeRange)();
139
147
  // TODO: Remove this since it couples to the dashboard context
140
148
  const dashboardDuration = (0, _context.useDashboardDuration)();
149
+ const { dashboard , setDashboard } = (0, _useDashboard.useDashboard)();
141
150
  // Convert height to a string, then use the string for styling
142
151
  const height = heightPx === undefined ? DEFAULT_HEIGHT : `${heightPx}px`;
143
152
  // add time shortcut if one does not match duration from dashboard JSON
@@ -151,31 +160,46 @@ function TimeRangeControls({ heightPx , showTimeRangeSelector =true , showRefres
151
160
  });
152
161
  }
153
162
  }
154
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
163
+ // set the new refresh interval both in the dashboard context & as query param
164
+ const handleRefreshIntervalChange = (0, _react.useCallback)((duration)=>{
165
+ setDashboard({
166
+ ...dashboard,
167
+ spec: {
168
+ ...dashboard.spec,
169
+ refreshInterval: duration
170
+ }
171
+ });
172
+ setRefreshInterval(duration);
173
+ }, [
174
+ dashboard,
175
+ setDashboard,
176
+ setRefreshInterval
177
+ ]);
178
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
155
179
  direction: "row",
156
180
  spacing: 1,
157
181
  children: [
158
- showTimeRangeSelector && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.DateTimeRangePicker, {
182
+ showTimeRangeSelector && /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.DateTimeRangePicker, {
159
183
  timeOptions: timePresets,
160
184
  value: timeRange,
161
185
  onChange: setTimeRange,
162
186
  height: height
163
187
  }),
164
- showRefreshButton && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.InfoTooltip, {
188
+ showRefreshButton && /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
165
189
  description: _constants.TOOLTIP_TEXT.refreshDashboard,
166
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_toolbarIconButton.ToolbarIconButton, {
190
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_ToolbarIconButton.ToolbarIconButton, {
167
191
  "aria-label": _constants.TOOLTIP_TEXT.refreshDashboard,
168
192
  onClick: refresh,
169
193
  sx: {
170
194
  height
171
195
  },
172
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_refresh.default, {})
196
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Refresh.default, {})
173
197
  })
174
198
  }),
175
- showRefreshInterval && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.RefreshIntervalPicker, {
199
+ showRefreshInterval && /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.RefreshIntervalPicker, {
176
200
  timeOptions: DEFAULT_REFRESH_INTERVAL_OPTIONS,
177
201
  value: refreshInterval,
178
- onChange: setRefreshInterval,
202
+ onChange: handleRefreshIntervalChange,
179
203
  height: height
180
204
  })
181
205
  ]
@@ -14,15 +14,17 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- _exportStar(require("./TimeRangeControls"), exports);
18
- function _exportStar(from, to) {
17
+ _export_star(require("./TimeRangeControls"), exports);
18
+ function _export_star(from, to) {
19
19
  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
- });
20
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
21
+ Object.defineProperty(to, k, {
22
+ enumerable: true,
23
+ get: function() {
24
+ return from[k];
25
+ }
26
+ });
27
+ }
26
28
  });
27
29
  return from;
28
30
  }
@@ -16,13 +16,15 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "ToolbarIconButton", {
18
18
  enumerable: true,
19
- get: ()=>ToolbarIconButton
19
+ get: function() {
20
+ return ToolbarIconButton;
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
26
  function IconButton(props, ref) {
25
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(StyledIconButton, {
27
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(StyledIconButton, {
26
28
  ref: ref,
27
29
  variant: "outlined",
28
30
  color: "secondary",
@@ -14,15 +14,17 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- _exportStar(require("./ToolbarIconButton"), exports);
18
- function _exportStar(from, to) {
17
+ _export_star(require("./ToolbarIconButton"), exports);
18
+ function _export_star(from, to) {
19
19
  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
- });
20
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
21
+ Object.defineProperty(to, k, {
22
+ enumerable: true,
23
+ get: function() {
24
+ return from[k];
25
+ }
26
+ });
27
+ }
26
28
  });
27
29
  return from;
28
30
  }
@@ -0,0 +1,140 @@
1
+ // Copyright 2023 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ Object.defineProperty(exports, "BuiltinVariableAccordions", {
18
+ enumerable: true,
19
+ get: function() {
20
+ return BuiltinVariableAccordions;
21
+ }
22
+ });
23
+ const _jsxruntime = require("react/jsx-runtime");
24
+ const _material = require("@mui/material");
25
+ const _ChevronUp = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/ChevronUp"));
26
+ const _components = require("@perses-dev/components");
27
+ const _react = require("react");
28
+ function _interop_require_default(obj) {
29
+ return obj && obj.__esModule ? obj : {
30
+ default: obj
31
+ };
32
+ }
33
+ function BuiltinVariableAccordions({ builtinVariableDefinitions }) {
34
+ const builtinVariablesBySource = (0, _react.useMemo)(()=>{
35
+ const result = {};
36
+ for (const definition of builtinVariableDefinitions){
37
+ const value = result[definition.spec.source];
38
+ if (value) {
39
+ value.push(definition);
40
+ continue;
41
+ }
42
+ result[definition.spec.source] = [
43
+ definition
44
+ ];
45
+ }
46
+ return result;
47
+ }, [
48
+ builtinVariableDefinitions
49
+ ]);
50
+ const sources = (0, _react.useMemo)(()=>{
51
+ const result = [];
52
+ for(const source in builtinVariablesBySource){
53
+ if (!result.includes(source)) {
54
+ result.push(source);
55
+ }
56
+ }
57
+ return result;
58
+ }, [
59
+ builtinVariablesBySource
60
+ ]);
61
+ var _builtinVariablesBySource_source, _v_spec_display_description;
62
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {
63
+ children: sources.map((source)=>{
64
+ /*#__PURE__*/ return (0, _jsxruntime.jsxs)(_material.Accordion, {
65
+ sx: (theme)=>({
66
+ '.MuiAccordionSummary-root': {
67
+ backgroundColor: theme.palette.background.lighter
68
+ },
69
+ '.MuiAccordionDetails-root': {
70
+ backgroundColor: theme.palette.background.lighter
71
+ }
72
+ }),
73
+ children: [
74
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.AccordionSummary, {
75
+ expandIcon: /*#__PURE__*/ (0, _jsxruntime.jsx)(_ChevronUp.default, {}),
76
+ "aria-controls": "builtin",
77
+ id: "builtin",
78
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
79
+ variant: "h2",
80
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
81
+ title: `${source} Builtin Variables`,
82
+ description: "Variables computed during dashboard rendering.",
83
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("span", {
84
+ children: [
85
+ source,
86
+ " Builtin Variables"
87
+ ]
88
+ })
89
+ })
90
+ })
91
+ }),
92
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.AccordionDetails, {
93
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableContainer, {
94
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Table, {
95
+ sx: {
96
+ minWidth: 650
97
+ },
98
+ "aria-label": "table of external variables",
99
+ children: [
100
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableHead, {
101
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.TableRow, {
102
+ children: [
103
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
104
+ children: "Name"
105
+ }),
106
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
107
+ children: "Description"
108
+ })
109
+ ]
110
+ })
111
+ }),
112
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableBody, {
113
+ children: ((_builtinVariablesBySource_source = builtinVariablesBySource[source]) !== null && _builtinVariablesBySource_source !== void 0 ? _builtinVariablesBySource_source : []).map((v)=>{
114
+ var _v_spec_display;
115
+ /*#__PURE__*/ return (0, _jsxruntime.jsxs)(_material.TableRow, {
116
+ children: [
117
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
118
+ component: "th",
119
+ scope: "row",
120
+ sx: {
121
+ fontWeight: 'bold'
122
+ },
123
+ children: v.spec.name
124
+ }),
125
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
126
+ children: (_v_spec_display_description = (_v_spec_display = v.spec.display) === null || _v_spec_display === void 0 ? void 0 : _v_spec_display.description) !== null && _v_spec_display_description !== void 0 ? _v_spec_display_description : ''
127
+ })
128
+ ]
129
+ }, source + '-' + v.spec.name);
130
+ })
131
+ })
132
+ ]
133
+ })
134
+ })
135
+ })
136
+ ]
137
+ }, source);
138
+ })
139
+ });
140
+ }
@@ -16,17 +16,20 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "EditVariablesButton", {
18
18
  enumerable: true,
19
- get: ()=>EditVariablesButton
19
+ get: function() {
20
+ return EditVariablesButton;
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 _pencilOutline = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/PencilOutline"));
26
+ const _PencilOutline = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/PencilOutline"));
25
27
  const _components = require("@perses-dev/components");
28
+ const _pluginsystem = require("@perses-dev/plugin-system");
26
29
  const _constants = require("../../constants");
27
30
  const _context = require("../../context");
28
- const _variableEditor = require("./VariableEditor");
29
- function _interopRequireDefault(obj) {
31
+ const _VariableEditor = require("./VariableEditor");
32
+ function _interop_require_default(obj) {
30
33
  return obj && obj.__esModule ? obj : {
31
34
  default: obj
32
35
  };
@@ -35,6 +38,7 @@ function EditVariablesButton({ variant ='text' , label ='Variables' , color ='pr
35
38
  const [isVariableEditorOpen, setIsVariableEditorOpen] = (0, _react.useState)(false);
36
39
  const variableDefinitions = (0, _context.useTemplateVariableDefinitions)();
37
40
  const externalVariableDefinitions = (0, _context.useTemplateExternalVariableDefinitions)();
41
+ const builtinVariableDefinitions = (0, _pluginsystem.useBuiltinVariableDefinitions)();
38
42
  const { setVariableDefinitions } = (0, _context.useTemplateVariableActions)();
39
43
  const openVariableEditor = ()=>{
40
44
  setIsVariableEditorOpen(true);
@@ -42,12 +46,12 @@ function EditVariablesButton({ variant ='text' , label ='Variables' , color ='pr
42
46
  const closeVariableEditor = ()=>{
43
47
  setIsVariableEditorOpen(false);
44
48
  };
45
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
49
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
46
50
  children: [
47
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.InfoTooltip, {
51
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
48
52
  description: _constants.TOOLTIP_TEXT.editVariables,
49
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
50
- startIcon: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pencilOutline.default, {}),
53
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
54
+ startIcon: /*#__PURE__*/ (0, _jsxruntime.jsx)(_PencilOutline.default, {}),
51
55
  onClick: openVariableEditor,
52
56
  "aria-label": _constants.TOOLTIP_TEXT.editVariables,
53
57
  variant: variant,
@@ -60,7 +64,7 @@ function EditVariablesButton({ variant ='text' , label ='Variables' , color ='pr
60
64
  children: label
61
65
  })
62
66
  }),
63
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_components.Drawer, {
67
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.Drawer, {
64
68
  isOpen: isVariableEditorOpen,
65
69
  onClose: closeVariableEditor,
66
70
  PaperProps: {
@@ -69,9 +73,10 @@ function EditVariablesButton({ variant ='text' , label ='Variables' , color ='pr
69
73
  }
70
74
  },
71
75
  "data-testid": "variable-editor",
72
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variableEditor.VariableEditor, {
76
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_VariableEditor.VariableEditor, {
73
77
  variableDefinitions: variableDefinitions,
74
78
  externalVariableDefinitions: externalVariableDefinitions,
79
+ builtinVariableDefinitions: builtinVariableDefinitions,
75
80
  onCancel: closeVariableEditor,
76
81
  onChange: (variables)=>{
77
82
  setVariableDefinitions(variables);