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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) 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 -13
  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 +22 -23
  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 +11 -9
  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 +19 -15
  59. package/dist/cjs/components/Variables/TemplateVariable.js +259 -110
  60. package/dist/cjs/components/Variables/VariableEditor.js +354 -117
  61. package/dist/cjs/components/Variables/VariableList.js +44 -22
  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 +205 -51
  84. package/dist/cjs/context/TemplateVariableProvider/hydrationUtils.js +65 -13
  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 +49 -9
  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 +64 -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 -9
  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 +13 -1
  173. package/dist/components/Panel/Panel.d.ts.map +1 -1
  174. package/dist/components/Panel/Panel.js +9 -12
  175. package/dist/components/Panel/Panel.js.map +1 -1
  176. package/dist/components/Panel/PanelContent.d.ts +2 -1
  177. package/dist/components/Panel/PanelContent.d.ts.map +1 -1
  178. package/dist/components/Panel/PanelContent.js +3 -2
  179. package/dist/components/Panel/PanelContent.js.map +1 -1
  180. package/dist/components/Panel/PanelHeader.js.map +1 -1
  181. package/dist/components/Panel/index.js.map +1 -1
  182. package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
  183. package/dist/components/PanelDrawer/PanelDrawer.js +22 -76
  184. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
  185. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +4 -1
  186. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
  187. package/dist/components/PanelDrawer/PanelEditorForm.js +225 -139
  188. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
  189. package/dist/components/PanelDrawer/PanelPreview.d.ts.map +1 -1
  190. package/dist/components/PanelDrawer/PanelPreview.js +2 -2
  191. package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
  192. package/dist/components/PanelDrawer/index.d.ts +1 -0
  193. package/dist/components/PanelDrawer/index.d.ts.map +1 -1
  194. package/dist/components/PanelDrawer/index.js +1 -0
  195. package/dist/components/PanelDrawer/index.js.map +1 -1
  196. package/dist/components/PanelDrawer/usePanelEditor.js.map +1 -1
  197. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -1
  198. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js.map +1 -1
  199. package/dist/components/PanelGroupDialog/index.js.map +1 -1
  200. package/dist/components/QuerySummaryTable/QuerySummaryTable.js +6 -6
  201. package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -1
  202. package/dist/components/QuerySummaryTable/index.js.map +1 -1
  203. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +4 -4
  204. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js.map +1 -1
  205. package/dist/components/SaveChangesConfirmationDialog/index.js.map +1 -1
  206. package/dist/components/SaveDashboardButton/SaveDashboardButton.js +4 -4
  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 +8 -6
  221. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  222. package/dist/components/Variables/TemplateVariable.d.ts +12 -2
  223. package/dist/components/Variables/TemplateVariable.d.ts.map +1 -1
  224. package/dist/components/Variables/TemplateVariable.js +242 -103
  225. package/dist/components/Variables/TemplateVariable.js.map +1 -1
  226. package/dist/components/Variables/VariableEditor.d.ts +9 -1
  227. package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
  228. package/dist/components/Variables/VariableEditor.js +324 -97
  229. package/dist/components/Variables/VariableEditor.js.map +1 -1
  230. package/dist/components/Variables/VariableList.d.ts +5 -0
  231. package/dist/components/Variables/VariableList.d.ts.map +1 -1
  232. package/dist/components/Variables/VariableList.js +31 -19
  233. package/dist/components/Variables/VariableList.js.map +1 -1
  234. package/dist/components/Variables/index.d.ts +1 -0
  235. package/dist/components/Variables/index.d.ts.map +1 -1
  236. package/dist/components/Variables/index.js +1 -0
  237. package/dist/components/Variables/index.js.map +1 -1
  238. package/dist/components/index.d.ts +1 -0
  239. package/dist/components/index.d.ts.map +1 -1
  240. package/dist/components/index.js +1 -0
  241. package/dist/components/index.js.map +1 -1
  242. package/dist/constants/grid-layout-config.js.map +1 -1
  243. package/dist/constants/index.d.ts +1 -0
  244. package/dist/constants/index.d.ts.map +1 -1
  245. package/dist/constants/index.js +1 -0
  246. package/dist/constants/index.js.map +1 -1
  247. package/dist/constants/styles.d.ts +5 -0
  248. package/dist/constants/styles.d.ts.map +1 -0
  249. package/dist/constants/styles.js +23 -0
  250. package/dist/constants/styles.js.map +1 -0
  251. package/dist/constants/user-interface-text.d.ts +3 -0
  252. package/dist/constants/user-interface-text.d.ts.map +1 -1
  253. package/dist/constants/user-interface-text.js +3 -0
  254. package/dist/constants/user-interface-text.js.map +1 -1
  255. package/dist/context/DashboardProvider/DashboardProvider.d.ts +2 -1
  256. package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
  257. package/dist/context/DashboardProvider/DashboardProvider.js +8 -6
  258. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  259. package/dist/context/DashboardProvider/common.js.map +1 -1
  260. package/dist/context/DashboardProvider/dashboard-provider-api.js +2 -2
  261. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
  262. package/dist/context/DashboardProvider/delete-panel-group-slice.js.map +1 -1
  263. package/dist/context/DashboardProvider/delete-panel-slice.js +2 -2
  264. package/dist/context/DashboardProvider/delete-panel-slice.js.map +1 -1
  265. package/dist/context/DashboardProvider/discard-changes-dialog-slice.js.map +1 -1
  266. package/dist/context/DashboardProvider/duplicate-panel-slice.js.map +1 -1
  267. package/dist/context/DashboardProvider/edit-json-dialog-slice.js.map +1 -1
  268. package/dist/context/DashboardProvider/index.js.map +1 -1
  269. package/dist/context/DashboardProvider/panel-editor-slice.d.ts +2 -2
  270. package/dist/context/DashboardProvider/panel-editor-slice.d.ts.map +1 -1
  271. package/dist/context/DashboardProvider/panel-editor-slice.js +7 -7
  272. package/dist/context/DashboardProvider/panel-editor-slice.js.map +1 -1
  273. package/dist/context/DashboardProvider/panel-group-editor-slice.js +2 -2
  274. package/dist/context/DashboardProvider/panel-group-editor-slice.js.map +1 -1
  275. package/dist/context/DashboardProvider/panel-group-slice.js +3 -3
  276. package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -1
  277. package/dist/context/DashboardProvider/panel-slice.js.map +1 -1
  278. package/dist/context/DashboardProvider/save-changes-dialog-slice.js.map +1 -1
  279. package/dist/context/DatasourceStoreProvider.d.ts +15 -10
  280. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  281. package/dist/context/DatasourceStoreProvider.js +161 -42
  282. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  283. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +49 -13
  284. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +1 -1
  285. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js +178 -41
  286. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +1 -1
  287. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts +9 -2
  288. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts.map +1 -1
  289. package/dist/context/TemplateVariableProvider/hydrationUtils.js +67 -12
  290. package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +1 -1
  291. package/dist/context/TemplateVariableProvider/index.js.map +1 -1
  292. package/dist/context/TemplateVariableProvider/query-params.js.map +1 -1
  293. package/dist/context/TemplateVariableProvider/utils.d.ts +27 -2
  294. package/dist/context/TemplateVariableProvider/utils.d.ts.map +1 -1
  295. package/dist/context/TemplateVariableProvider/utils.js +48 -6
  296. package/dist/context/TemplateVariableProvider/utils.js.map +1 -1
  297. package/dist/context/index.js.map +1 -1
  298. package/dist/context/useDashboard.d.ts.map +1 -1
  299. package/dist/context/useDashboard.js +5 -3
  300. package/dist/context/useDashboard.js.map +1 -1
  301. package/dist/index.js.map +1 -1
  302. package/dist/stories/decorators/WithDashboard.js.map +1 -1
  303. package/dist/stories/decorators/WithDatasourceStore.js.map +1 -1
  304. package/dist/stories/decorators/WithTemplateVariables.js.map +1 -1
  305. package/dist/stories/decorators/constants.js +2 -2
  306. package/dist/stories/decorators/constants.js.map +1 -1
  307. package/dist/stories/decorators/index.js.map +1 -1
  308. package/dist/test/dashboard-provider.js.map +1 -1
  309. package/dist/test/datasource-provider.d.ts.map +1 -1
  310. package/dist/test/datasource-provider.js +5 -7
  311. package/dist/test/datasource-provider.js.map +1 -1
  312. package/dist/test/index.js.map +1 -1
  313. package/dist/test/plugin-registry.js.map +1 -1
  314. package/dist/test/render.d.ts.map +1 -1
  315. package/dist/test/render.js +8 -3
  316. package/dist/test/render.js.map +1 -1
  317. package/dist/test/setup-tests.js.map +1 -1
  318. package/dist/test/testDashboard.js +10 -10
  319. package/dist/test/testDashboard.js.map +1 -1
  320. package/dist/utils/index.js.map +1 -1
  321. package/dist/utils/panelUtils.js.map +1 -1
  322. package/dist/utils/time.js.map +1 -1
  323. package/dist/validation/index.d.ts +2 -0
  324. package/dist/validation/index.d.ts.map +1 -0
  325. package/dist/validation/index.js +15 -0
  326. package/dist/validation/index.js.map +1 -0
  327. package/dist/validation/panel.d.ts +19 -0
  328. package/dist/validation/panel.d.ts.map +1 -0
  329. package/dist/validation/panel.js +21 -0
  330. package/dist/validation/panel.js.map +1 -0
  331. package/dist/views/ViewDashboard/DashboardApp.d.ts +1 -0
  332. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  333. package/dist/views/ViewDashboard/DashboardApp.js +17 -5
  334. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  335. package/dist/views/ViewDashboard/ViewDashboard.d.ts +3 -1
  336. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  337. package/dist/views/ViewDashboard/ViewDashboard.js +54 -12
  338. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  339. package/dist/views/ViewDashboard/index.js.map +1 -1
  340. package/dist/views/index.js.map +1 -1
  341. package/package.json +8 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Variables/VariableEditor.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { useState, useMemo } from 'react';\nimport {\n Button,\n Stack,\n Box,\n TableContainer,\n TableBody,\n TableRow,\n TableCell as MuiTableCell,\n Table,\n TableHead,\n Switch,\n Typography,\n IconButton,\n Alert,\n styled,\n} from '@mui/material';\nimport AddIcon from 'mdi-material-ui/Plus';\nimport { VariableDefinition } from '@perses-dev/core';\nimport { useImmer } from 'use-immer';\nimport PencilIcon from 'mdi-material-ui/Pencil';\nimport TrashIcon from 'mdi-material-ui/TrashCan';\nimport ArrowUp from 'mdi-material-ui/ArrowUp';\nimport ArrowDown from 'mdi-material-ui/ArrowDown';\nimport { Action, VariableEditForm, VARIABLE_TYPES } from '@perses-dev/plugin-system';\nimport { useDiscardChangesConfirmationDialog } from '../../context';\n\nfunction getVariableLabelByKind(kind: string) {\n return VARIABLE_TYPES.find((variableType) => variableType.kind === kind)?.label;\n}\n\nfunction getValidation(variableDefinitions: VariableDefinition[]) {\n const errors = [];\n\n /** Variable names must be unique */\n const variableNames = variableDefinitions.map((variableDefinition) => variableDefinition.spec.name);\n const uniqueVariableNames = new Set(variableNames);\n if (variableNames.length !== uniqueVariableNames.size) {\n errors.push('Variable names must be unique');\n }\n return {\n errors: errors,\n isValid: errors.length === 0,\n };\n}\n\nexport function VariableEditor(props: {\n variableDefinitions: VariableDefinition[];\n onChange: (variableDefinitions: VariableDefinition[]) => void;\n onCancel: () => void;\n}) {\n const [variableDefinitions, setVariableDefinitions] = useImmer(props.variableDefinitions);\n const [variableEditIdx, setVariableEditIdx] = useState<number | null>(null);\n const [variableFormAction, setVariableFormAction] = useState<Action>('update');\n\n const validation = useMemo(() => getValidation(variableDefinitions), [variableDefinitions]);\n const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n const handleCancel = () => {\n if (JSON.stringify(props.variableDefinitions) !== JSON.stringify(variableDefinitions)) {\n openDiscardChangesConfirmationDialog({\n onDiscardChanges: () => {\n closeDiscardChangesConfirmationDialog();\n props.onCancel();\n },\n onCancel: () => {\n closeDiscardChangesConfirmationDialog();\n },\n description:\n 'You have unapplied changes. Are you sure you want to discard these changes? Changes cannot be recovered.',\n });\n } else {\n props.onCancel();\n }\n };\n\n const removeVariable = (index: number) => {\n setVariableDefinitions((draft) => {\n draft.splice(index, 1);\n });\n };\n\n const addVariable = () => {\n setVariableFormAction('create');\n setVariableDefinitions((draft) => {\n draft.push({\n kind: 'TextVariable',\n spec: {\n name: 'NewVariable',\n value: '',\n },\n });\n });\n setVariableEditIdx(variableDefinitions.length);\n };\n\n const editVariable = (index: number) => {\n setVariableFormAction('update');\n setVariableEditIdx(index);\n };\n\n const toggleVariableVisibility = (index: number, visible: boolean) => {\n setVariableDefinitions((draft) => {\n const v = draft[index];\n if (!v) {\n return;\n }\n if (!v.spec.display) {\n v.spec.display = {\n name: v.spec.name,\n hidden: false,\n };\n }\n v.spec.display.hidden = visible === false;\n });\n };\n\n const changeVariableOrder = (index: number, direction: 'up' | 'down') => {\n setVariableDefinitions((draft) => {\n if (direction === 'up') {\n const prevElement = draft[index - 1];\n const currentElement = draft[index];\n if (index === 0 || !prevElement || !currentElement) {\n return;\n }\n draft[index - 1] = currentElement;\n draft[index] = prevElement;\n } else {\n const nextElement = draft[index + 1];\n const currentElement = draft[index];\n if (index === draft.length - 1 || !nextElement || !currentElement) {\n return;\n }\n draft[index + 1] = currentElement;\n draft[index] = nextElement;\n }\n });\n };\n\n return (\n <>\n {currentEditingVariableDefinition && (\n <VariableEditForm\n initialVariableDefinition={currentEditingVariableDefinition}\n onChange={(definition) => {\n setVariableDefinitions((draft) => {\n draft[variableEditIdx] = definition;\n setVariableEditIdx(null);\n });\n }}\n onCancel={() => {\n if (variableFormAction === 'create') {\n removeVariable(variableEditIdx);\n }\n setVariableEditIdx(null);\n }}\n action={variableFormAction}\n />\n )}\n {!currentEditingVariableDefinition && (\n <>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n padding: (theme) => theme.spacing(1, 2),\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n <Typography variant=\"h2\">Variables</Typography>\n <Stack direction=\"row\" spacing={1} marginLeft=\"auto\">\n <Button\n disabled={props.variableDefinitions === variableDefinitions || !validation.isValid}\n variant=\"contained\"\n onClick={() => {\n props.onChange(variableDefinitions);\n }}\n >\n Apply\n </Button>\n <Button color=\"secondary\" variant=\"outlined\" onClick={handleCancel}>\n Cancel\n </Button>\n </Stack>\n </Box>\n <Box padding={2} sx={{ overflowY: 'scroll' }}>\n <Stack spacing={2}>\n {!validation.isValid &&\n validation.errors.map((error) => (\n <Alert severity=\"error\" key={error}>\n {error}\n </Alert>\n ))}\n <TableContainer>\n <Table sx={{ minWidth: 650 }} aria-label=\"table of variables\">\n <TableHead>\n <TableRow>\n <TableCell>Visibility</TableCell>\n <TableCell>Name</TableCell>\n <TableCell>Type</TableCell>\n <TableCell align=\"right\" />\n </TableRow>\n </TableHead>\n <TableBody>\n {variableDefinitions.map((v, idx) => (\n <TableRow key={v.spec.name}>\n <TableCell component=\"th\" scope=\"row\">\n <Switch\n checked={v.spec.display?.hidden !== true}\n onChange={(e) => {\n toggleVariableVisibility(idx, e.target.checked);\n }}\n />\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" sx={{ fontWeight: 'bold' }}>\n {v.spec.name}\n </TableCell>\n <TableCell>{getVariableLabelByKind(v.kind) ?? v.kind}</TableCell>\n <TableCell align=\"right\">\n <IconButton onClick={() => changeVariableOrder(idx, 'up')} disabled={idx === 0}>\n <ArrowUp />\n </IconButton>\n <IconButton\n onClick={() => changeVariableOrder(idx, 'down')}\n disabled={idx === variableDefinitions.length - 1}\n >\n <ArrowDown />\n </IconButton>\n\n <IconButton onClick={() => editVariable(idx)}>\n <PencilIcon />\n </IconButton>\n <IconButton onClick={() => removeVariable(idx)}>\n <TrashIcon />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n <Box display=\"flex\">\n <Button variant=\"contained\" startIcon={<AddIcon />} sx={{ marginLeft: 'auto' }} onClick={addVariable}>\n Add Variable\n </Button>\n </Box>\n </Stack>\n </Box>\n </>\n )}\n </>\n );\n}\n\nconst TableCell = styled(MuiTableCell)(({ theme }) => ({\n borderBottom: `solid 1px ${theme.palette.divider}`,\n}));\n"],"names":["useState","useMemo","Button","Stack","Box","TableContainer","TableBody","TableRow","TableCell","MuiTableCell","Table","TableHead","Switch","Typography","IconButton","Alert","styled","AddIcon","useImmer","PencilIcon","TrashIcon","ArrowUp","ArrowDown","VariableEditForm","VARIABLE_TYPES","useDiscardChangesConfirmationDialog","getVariableLabelByKind","kind","find","variableType","label","getValidation","variableDefinitions","errors","variableNames","map","variableDefinition","spec","name","uniqueVariableNames","Set","length","size","push","isValid","VariableEditor","props","setVariableDefinitions","variableEditIdx","setVariableEditIdx","variableFormAction","setVariableFormAction","validation","currentEditingVariableDefinition","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleCancel","JSON","stringify","onDiscardChanges","onCancel","description","removeVariable","index","draft","splice","addVariable","value","editVariable","toggleVariableVisibility","visible","v","display","hidden","changeVariableOrder","direction","prevElement","currentElement","nextElement","initialVariableDefinition","onChange","definition","action","sx","alignItems","padding","theme","spacing","borderBottom","palette","divider","variant","marginLeft","disabled","onClick","color","overflowY","error","severity","minWidth","aria-label","align","idx","component","scope","checked","e","target","fontWeight","startIcon"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Variables/VariableEditor.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { useState, useMemo } from 'react';\nimport {\n Button,\n Stack,\n Box,\n TableContainer,\n TableBody,\n TableRow,\n TableCell as MuiTableCell,\n Table,\n TableHead,\n Switch,\n Typography,\n IconButton,\n Alert,\n styled,\n capitalize,\n Tooltip,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n} from '@mui/material';\nimport AddIcon from 'mdi-material-ui/Plus';\nimport { Action, BuiltinVariableDefinition, VariableDefinition } from '@perses-dev/core';\nimport { useImmer } from 'use-immer';\nimport PencilIcon from 'mdi-material-ui/Pencil';\nimport TrashIcon from 'mdi-material-ui/TrashCan';\nimport ArrowUp from 'mdi-material-ui/ArrowUp';\nimport ArrowDown from 'mdi-material-ui/ArrowDown';\nimport ContentDuplicate from 'mdi-material-ui/ContentDuplicate';\nimport OpenInNewIcon from 'mdi-material-ui/OpenInNew';\nimport ExpandMoreIcon from 'mdi-material-ui/ChevronUp';\n\nimport { VariableEditorForm, VariableState, VARIABLE_TYPES } from '@perses-dev/plugin-system';\nimport { InfoTooltip } from '@perses-dev/components';\nimport { ExternalVariableDefinition, useDiscardChangesConfirmationDialog } from '../../context';\nimport { hydrateTemplateVariableStates } from '../../context/TemplateVariableProvider/hydrationUtils';\nimport { BuiltinVariableAccordions } from './BuiltinVariableAccordions';\n\nfunction getVariableLabelByKind(kind: string) {\n return VARIABLE_TYPES.find((variableType) => variableType.kind === kind)?.label;\n}\n\nfunction getValidation(variableDefinitions: VariableDefinition[]) {\n const errors = [];\n\n /** Variable names must be unique */\n const variableNames = variableDefinitions.map((variableDefinition) => variableDefinition.spec.name);\n const uniqueVariableNames = new Set(variableNames);\n if (variableNames.length !== uniqueVariableNames.size) {\n errors.push('Variable names must be unique');\n }\n return {\n errors: errors,\n isValid: errors.length === 0,\n };\n}\n\nexport function VariableEditor(props: {\n variableDefinitions: VariableDefinition[];\n externalVariableDefinitions: ExternalVariableDefinition[];\n builtinVariableDefinitions: BuiltinVariableDefinition[];\n onChange: (variableDefinitions: VariableDefinition[]) => void;\n onCancel: () => void;\n}) {\n const [variableDefinitions, setVariableDefinitions] = useImmer(props.variableDefinitions);\n const [variableEditIdx, setVariableEditIdx] = useState<number | null>(null);\n const [variableFormAction, setVariableFormAction] = useState<Action>('update');\n\n const externalVariableDefinitions = props.externalVariableDefinitions;\n const builtinVariableDefinitions = props.builtinVariableDefinitions;\n const validation = useMemo(() => getValidation(variableDefinitions), [variableDefinitions]);\n const [variableState] = useMemo(() => {\n return [hydrateTemplateVariableStates(variableDefinitions, {}, externalVariableDefinitions)];\n }, [externalVariableDefinitions, variableDefinitions]);\n const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n const handleCancel = () => {\n if (JSON.stringify(props.variableDefinitions) !== JSON.stringify(variableDefinitions)) {\n openDiscardChangesConfirmationDialog({\n onDiscardChanges: () => {\n closeDiscardChangesConfirmationDialog();\n props.onCancel();\n },\n onCancel: () => {\n closeDiscardChangesConfirmationDialog();\n },\n description:\n 'You have unapplied changes. Are you sure you want to discard these changes? Changes cannot be recovered.',\n });\n } else {\n props.onCancel();\n }\n };\n\n const removeVariable = (index: number) => {\n setVariableDefinitions((draft) => {\n draft.splice(index, 1);\n });\n };\n\n const addVariable = () => {\n setVariableFormAction('create');\n setVariableDefinitions((draft) => {\n draft.push({\n kind: 'TextVariable',\n spec: {\n name: 'NewVariable',\n value: '',\n },\n });\n });\n setVariableEditIdx(variableDefinitions.length);\n };\n\n const editVariable = (index: number) => {\n setVariableFormAction('update');\n setVariableEditIdx(index);\n };\n\n const toggleVariableVisibility = (index: number, visible: boolean) => {\n setVariableDefinitions((draft) => {\n const v = draft[index];\n if (!v) {\n return;\n }\n if (!v.spec.display) {\n v.spec.display = {\n name: v.spec.name,\n hidden: false,\n };\n }\n v.spec.display.hidden = visible === false;\n });\n };\n\n const changeVariableOrder = (index: number, direction: 'up' | 'down') => {\n setVariableDefinitions((draft) => {\n if (direction === 'up') {\n const prevElement = draft[index - 1];\n const currentElement = draft[index];\n if (index === 0 || !prevElement || !currentElement) {\n return;\n }\n draft[index - 1] = currentElement;\n draft[index] = prevElement;\n } else {\n const nextElement = draft[index + 1];\n const currentElement = draft[index];\n if (index === draft.length - 1 || !nextElement || !currentElement) {\n return;\n }\n draft[index + 1] = currentElement;\n draft[index] = nextElement;\n }\n });\n };\n\n const overrideVariable = (v: VariableDefinition) => {\n setVariableDefinitions((draft) => {\n draft.push(v);\n });\n };\n\n return (\n <>\n {currentEditingVariableDefinition && (\n <VariableEditorForm\n initialVariableDefinition={currentEditingVariableDefinition}\n initialAction={variableFormAction}\n isDraft={true}\n onSave={(definition: VariableDefinition) => {\n setVariableDefinitions((draft) => {\n draft[variableEditIdx] = definition;\n setVariableEditIdx(null);\n });\n }}\n onClose={() => {\n if (variableFormAction === 'create') {\n removeVariable(variableEditIdx);\n }\n setVariableEditIdx(null);\n }}\n />\n )}\n {!currentEditingVariableDefinition && (\n <>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n padding: (theme) => theme.spacing(1, 2),\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n <Typography variant=\"h2\">Edit Dashboard Variables</Typography>\n <Stack direction=\"row\" spacing={1} marginLeft=\"auto\">\n <Button\n disabled={props.variableDefinitions === variableDefinitions || !validation.isValid}\n variant=\"contained\"\n onClick={() => {\n props.onChange(variableDefinitions);\n }}\n >\n Apply\n </Button>\n <Button color=\"secondary\" variant=\"outlined\" onClick={handleCancel}>\n Cancel\n </Button>\n </Stack>\n </Box>\n <Box padding={2} sx={{ overflowY: 'scroll' }}>\n <Stack spacing={2}>\n <Stack spacing={2}>\n {!validation.isValid &&\n validation.errors.map((error) => (\n <Alert severity=\"error\" key={error}>\n {error}\n </Alert>\n ))}\n <TableContainer>\n <Table sx={{ minWidth: 650 }} aria-label=\"table of variables\">\n <TableHead>\n <TableRow>\n <TableCell>Visibility</TableCell>\n <TableCell>Name</TableCell>\n <TableCell>Type</TableCell>\n <TableCell>Description</TableCell>\n <TableCell align=\"right\">Actions</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {variableDefinitions.map((v, idx) => (\n <TableRow key={v.spec.name}>\n <TableCell component=\"th\" scope=\"row\">\n <Switch\n checked={v.spec.display?.hidden !== true}\n onChange={(e) => {\n toggleVariableVisibility(idx, e.target.checked);\n }}\n />\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" sx={{ fontWeight: 'bold' }}>\n <VariableName name={v.spec.name} state={variableState.get({ name: v.spec.name })} />\n </TableCell>\n <TableCell>{getVariableLabelByKind(v.kind) ?? v.kind}</TableCell>\n <TableCell>{v.spec.display?.description ?? ''}</TableCell>\n <TableCell align=\"right\" sx={{ whiteSpace: 'nowrap' }}>\n <IconButton onClick={() => changeVariableOrder(idx, 'up')} disabled={idx === 0}>\n <ArrowUp />\n </IconButton>\n <IconButton\n onClick={() => changeVariableOrder(idx, 'down')}\n disabled={idx === variableDefinitions.length - 1}\n >\n <ArrowDown />\n </IconButton>\n <IconButton onClick={() => editVariable(idx)}>\n <PencilIcon />\n </IconButton>\n <IconButton onClick={() => removeVariable(idx)}>\n <TrashIcon />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n <Box display=\"flex\">\n <Button variant=\"contained\" startIcon={<AddIcon />} sx={{ marginLeft: 'auto' }} onClick={addVariable}>\n Add Variable\n </Button>\n </Box>\n </Stack>\n {externalVariableDefinitions &&\n !externalVariableDefinitions.every((v) => v.definitions.length === 0) &&\n externalVariableDefinitions.map(\n (extVar) =>\n extVar.definitions.length > 0 && (\n <Accordion\n sx={(theme) => ({\n '.MuiAccordionSummary-root': {\n backgroundColor: theme.palette.background.lighter,\n },\n '.MuiAccordionDetails-root': {\n backgroundColor: theme.palette.background.lighter,\n },\n })}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n aria-controls={extVar.source}\n id={extVar.source}\n >\n <Stack flexDirection=\"row\" alignItems=\"center\" justifyContent=\"start\">\n <>\n {extVar.tooltip ? (\n <Typography variant=\"h2\">\n <InfoTooltip\n title={extVar.tooltip.title || ''}\n description={extVar.tooltip.description || ''}\n >\n <span>{capitalize(extVar.source)} Variables</span>\n </InfoTooltip>\n </Typography>\n ) : (\n <Typography variant=\"h2\">{capitalize(extVar.source)} Variables</Typography>\n )}\n {extVar.editLink && (\n <IconButton href={extVar.editLink} target=\"_blank\">\n <OpenInNewIcon fontSize=\"small\" />\n </IconButton>\n )}\n </>\n </Stack>\n </AccordionSummary>\n <AccordionDetails>\n <TableContainer>\n <Table sx={{ minWidth: 650 }} aria-label=\"table of external variables\">\n <TableHead>\n <TableRow>\n <TableCell>Visibility</TableCell>\n <TableCell>Name</TableCell>\n <TableCell>Type</TableCell>\n <TableCell>Description</TableCell>\n <TableCell align=\"right\">Actions</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {extVar.definitions.map((v) => (\n <TableRow key={v.spec.name}>\n <TableCell component=\"th\" scope=\"row\">\n <Switch checked={v.spec.display?.hidden !== true} disabled />\n </TableCell>\n\n <TableCell component=\"th\" scope=\"row\" sx={{ fontWeight: 'bold' }}>\n <VariableName\n name={v.spec.name}\n state={variableState.get({ name: v.spec.name, source: extVar.source })}\n />\n </TableCell>\n <TableCell>{getVariableLabelByKind(v.kind) ?? v.kind}</TableCell>\n <TableCell>{v.spec.display?.description ?? ''}</TableCell>\n <TableCell align=\"right\">\n <Tooltip title=\"Override\">\n <IconButton\n onClick={() => overrideVariable(v)}\n disabled={!!variableState.get({ name: v.spec.name })}\n >\n <ContentDuplicate />\n </IconButton>\n </Tooltip>\n <IconButton disabled>\n <ArrowUp />\n </IconButton>\n <IconButton disabled>\n <ArrowDown />\n </IconButton>\n <IconButton disabled>\n <PencilIcon />\n </IconButton>\n <IconButton disabled>\n <TrashIcon />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n </AccordionDetails>\n </Accordion>\n )\n )}\n {builtinVariableDefinitions && (\n <BuiltinVariableAccordions builtinVariableDefinitions={builtinVariableDefinitions} />\n )}\n </Stack>\n </Box>\n </>\n )}\n </>\n );\n}\n\nconst TableCell = styled(MuiTableCell)(({ theme }) => ({\n borderBottom: `solid 1px ${theme.palette.divider}`,\n}));\n\nexport function VariableName(props: { name: string; state: VariableState | undefined }) {\n const { name, state } = props;\n return (\n <>\n {!state?.overridden && `${name} `}\n {!state?.overridden && state?.overriding && (\n <Box fontWeight=\"normal\" color={(theme) => theme.palette.primary.main}>\n (overriding)\n </Box>\n )}\n {state?.overridden && (\n <>\n <Box color={(theme) => theme.palette.grey[500]}>{name}</Box>\n <Box fontWeight=\"normal\" color={(theme) => theme.palette.grey[500]}>\n (overridden)\n </Box>\n </>\n )}\n </>\n );\n}\n"],"names":["useState","useMemo","Button","Stack","Box","TableContainer","TableBody","TableRow","TableCell","MuiTableCell","Table","TableHead","Switch","Typography","IconButton","Alert","styled","capitalize","Tooltip","Accordion","AccordionSummary","AccordionDetails","AddIcon","useImmer","PencilIcon","TrashIcon","ArrowUp","ArrowDown","ContentDuplicate","OpenInNewIcon","ExpandMoreIcon","VariableEditorForm","VARIABLE_TYPES","InfoTooltip","useDiscardChangesConfirmationDialog","hydrateTemplateVariableStates","BuiltinVariableAccordions","getVariableLabelByKind","kind","find","variableType","label","getValidation","variableDefinitions","errors","variableNames","map","variableDefinition","spec","name","uniqueVariableNames","Set","length","size","push","isValid","VariableEditor","props","setVariableDefinitions","variableEditIdx","setVariableEditIdx","variableFormAction","setVariableFormAction","externalVariableDefinitions","builtinVariableDefinitions","validation","variableState","currentEditingVariableDefinition","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleCancel","JSON","stringify","onDiscardChanges","onCancel","description","removeVariable","index","draft","splice","addVariable","value","editVariable","toggleVariableVisibility","visible","v","display","hidden","changeVariableOrder","direction","prevElement","currentElement","nextElement","overrideVariable","initialVariableDefinition","initialAction","isDraft","onSave","definition","onClose","sx","alignItems","padding","theme","spacing","borderBottom","palette","divider","variant","marginLeft","disabled","onClick","onChange","color","overflowY","error","severity","minWidth","aria-label","align","idx","component","scope","checked","e","target","fontWeight","VariableName","state","get","whiteSpace","startIcon","every","definitions","extVar","backgroundColor","background","lighter","expandIcon","aria-controls","source","id","flexDirection","justifyContent","tooltip","title","span","editLink","href","fontSize","overridden","overriding","primary","main","grey"],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  /// <reference types="react" />
2
+ import { VariableSpec } from '@perses-dev/core';
2
3
  export declare function TemplateVariableList(): JSX.Element;
4
+ export declare function TemplateVariableListItem({ spec, source }: {
5
+ spec: VariableSpec;
6
+ source?: string;
7
+ }): JSX.Element;
3
8
  //# sourceMappingURL=VariableList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VariableList.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/VariableList.tsx"],"names":[],"mappings":";AAqBA,wBAAgB,oBAAoB,gBAoBnC"}
1
+ {"version":3,"file":"VariableList.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/VariableList.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAsB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUpE,wBAAgB,oBAAoB,gBAmBnC;AAED,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,eAcjG"}
@@ -10,30 +10,42 @@
10
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
13
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
14
14
  import { Box } from '@mui/material';
15
- import { useTemplateVariableDefinitions } from '../../context';
15
+ import { useTemplateExternalVariableDefinitions, useTemplateVariable, useTemplateVariableDefinitions } from '../../context';
16
+ import { MAX_TEMPLATE_VARIABLE_WIDTH, MIN_TEMPLATE_VARIABLE_WIDTH } from '../../constants';
16
17
  import { TemplateVariable } from './TemplateVariable';
17
- const VARIABLE_INPUT_MIN_WIDTH = '120px';
18
- const VARIABLE_INPUT_MAX_WIDTH = '240px';
19
18
  export function TemplateVariableList() {
20
19
  const variableDefinitions = useTemplateVariableDefinitions();
21
- return /*#__PURE__*/ _jsx(_Fragment, {
22
- children: variableDefinitions.map((v)=>{
23
- var ref;
24
- /*#__PURE__*/ return _jsx(Box, {
25
- display: ((ref = v.spec.display) === null || ref === void 0 ? void 0 : ref.hidden) ? 'none' : undefined,
26
- minWidth: VARIABLE_INPUT_MIN_WIDTH,
27
- maxWidth: VARIABLE_INPUT_MAX_WIDTH,
28
- marginBottom: 1,
29
- marginRight: 1,
30
- "data-testid": "template-variable",
31
- children: /*#__PURE__*/ _jsx(TemplateVariable, {
32
- name: v.spec.name
33
- }, v.spec.name)
34
- }, v.spec.name);
35
- })
20
+ const externalVariableDefinitions = useTemplateExternalVariableDefinitions();
21
+ return /*#__PURE__*/ _jsxs(_Fragment, {
22
+ children: [
23
+ externalVariableDefinitions.slice().reverse() // We reverse to have the most prioritized on top
24
+ .map((def)=>def.definitions.map((v)=>/*#__PURE__*/ _jsx(TemplateVariableListItem, {
25
+ spec: v.spec,
26
+ source: def.source
27
+ }, v.spec.name + def.source))),
28
+ variableDefinitions.map((v)=>/*#__PURE__*/ _jsx(TemplateVariableListItem, {
29
+ spec: v.spec
30
+ }, v.spec.name))
31
+ ]
36
32
  });
37
33
  }
34
+ export function TemplateVariableListItem({ spec , source }) {
35
+ var _ctx_state, _spec_display;
36
+ const ctx = useTemplateVariable(spec.name, source);
37
+ var _ref, _ref1;
38
+ return /*#__PURE__*/ _jsx(Box, {
39
+ display: ((_ctx_state = ctx.state) === null || _ctx_state === void 0 ? void 0 : _ctx_state.overridden) || ((_spec_display = spec.display) === null || _spec_display === void 0 ? void 0 : _spec_display.hidden) ? 'none' : undefined,
40
+ minWidth: `${MIN_TEMPLATE_VARIABLE_WIDTH}px`,
41
+ maxWidth: `${MAX_TEMPLATE_VARIABLE_WIDTH}px`,
42
+ flexShrink: 0,
43
+ "data-testid": 'template-variable-' + spec.name,
44
+ children: /*#__PURE__*/ _jsx(TemplateVariable, {
45
+ name: spec.name,
46
+ source: source
47
+ }, (_ref = spec.name + source) !== null && _ref !== void 0 ? _ref : '')
48
+ }, (_ref1 = spec.name + source) !== null && _ref1 !== void 0 ? _ref1 : '');
49
+ }
38
50
 
39
51
  //# sourceMappingURL=VariableList.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Variables/VariableList.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box } from '@mui/material';\nimport { VariableDefinition } from '@perses-dev/core';\nimport { useTemplateVariableDefinitions } from '../../context';\nimport { TemplateVariable } from './TemplateVariable';\n\nconst VARIABLE_INPUT_MIN_WIDTH = '120px';\nconst VARIABLE_INPUT_MAX_WIDTH = '240px';\n\nexport function TemplateVariableList() {\n const variableDefinitions: VariableDefinition[] = useTemplateVariableDefinitions();\n\n return (\n <>\n {variableDefinitions.map((v) => (\n <Box\n key={v.spec.name}\n display={v.spec.display?.hidden ? 'none' : undefined}\n minWidth={VARIABLE_INPUT_MIN_WIDTH}\n maxWidth={VARIABLE_INPUT_MAX_WIDTH}\n marginBottom={1}\n marginRight={1}\n data-testid=\"template-variable\"\n >\n <TemplateVariable key={v.spec.name} name={v.spec.name} />\n </Box>\n ))}\n </>\n );\n}\n"],"names":["Box","useTemplateVariableDefinitions","TemplateVariable","VARIABLE_INPUT_MIN_WIDTH","VARIABLE_INPUT_MAX_WIDTH","TemplateVariableList","variableDefinitions","map","v","display","spec","hidden","undefined","minWidth","maxWidth","marginBottom","marginRight","data-testid","name"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC;AAAA,SAASA,GAAG,QAAQ,eAAe,CAAC;AAEpC,SAASC,8BAA8B,QAAQ,eAAe,CAAC;AAC/D,SAASC,gBAAgB,QAAQ,oBAAoB,CAAC;AAEtD,MAAMC,wBAAwB,GAAG,OAAO,AAAC;AACzC,MAAMC,wBAAwB,GAAG,OAAO,AAAC;AAEzC,OAAO,SAASC,oBAAoB,GAAG;IACrC,MAAMC,mBAAmB,GAAyBL,8BAA8B,EAAE,AAAC;IAEnF,qBACE;kBACGK,mBAAmB,CAACC,GAAG,CAAC,CAACC,CAAC;gBAGdA,GAAc;0BAFzB,OAAA,KAACR,GAAG;gBAEFS,OAAO,EAAED,CAAAA,CAAAA,GAAc,GAAdA,CAAC,CAACE,IAAI,CAACD,OAAO,cAAdD,GAAc,WAAQ,GAAtBA,KAAAA,CAAsB,GAAtBA,GAAc,CAAEG,MAAM,CAAA,GAAG,MAAM,GAAGC,SAAS;gBACpDC,QAAQ,EAAEV,wBAAwB;gBAClCW,QAAQ,EAAEV,wBAAwB;gBAClCW,YAAY,EAAE,CAAC;gBACfC,WAAW,EAAE,CAAC;gBACdC,aAAW,EAAC,mBAAmB;0BAE/B,cAAA,KAACf,gBAAgB;oBAAmBgB,IAAI,EAAEV,CAAC,CAACE,IAAI,CAACQ,IAAI;mBAA9BV,CAAC,CAACE,IAAI,CAACQ,IAAI,CAAuB;eARpDV,CAAC,CAACE,IAAI,CAACQ,IAAI,CASZ,CAAA;SACP,CAAC;MACD,CACH;AACJ,CAAC"}
1
+ {"version":3,"sources":["../../../src/components/Variables/VariableList.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box } from '@mui/material';\nimport { VariableDefinition, VariableSpec } from '@perses-dev/core';\nimport {\n ExternalVariableDefinition,\n useTemplateExternalVariableDefinitions,\n useTemplateVariable,\n useTemplateVariableDefinitions,\n} from '../../context';\nimport { MAX_TEMPLATE_VARIABLE_WIDTH, MIN_TEMPLATE_VARIABLE_WIDTH } from '../../constants';\nimport { TemplateVariable } from './TemplateVariable';\n\nexport function TemplateVariableList() {\n const variableDefinitions: VariableDefinition[] = useTemplateVariableDefinitions();\n const externalVariableDefinitions: ExternalVariableDefinition[] = useTemplateExternalVariableDefinitions();\n\n return (\n <>\n {externalVariableDefinitions\n .slice()\n .reverse() // We reverse to have the most prioritized on top\n .map((def) =>\n def.definitions.map((v) => (\n <TemplateVariableListItem key={v.spec.name + def.source} spec={v.spec} source={def.source} />\n ))\n )}\n {variableDefinitions.map((v) => (\n <TemplateVariableListItem key={v.spec.name} spec={v.spec} />\n ))}\n </>\n );\n}\n\nexport function TemplateVariableListItem({ spec, source }: { spec: VariableSpec; source?: string }) {\n const ctx = useTemplateVariable(spec.name, source);\n return (\n <Box\n key={spec.name + source ?? ''}\n display={ctx.state?.overridden || spec.display?.hidden ? 'none' : undefined}\n minWidth={`${MIN_TEMPLATE_VARIABLE_WIDTH}px`}\n maxWidth={`${MAX_TEMPLATE_VARIABLE_WIDTH}px`}\n flexShrink={0}\n data-testid={'template-variable-' + spec.name}\n >\n <TemplateVariable key={spec.name + source ?? ''} name={spec.name} source={source} />\n </Box>\n );\n}\n"],"names":["Box","useTemplateExternalVariableDefinitions","useTemplateVariable","useTemplateVariableDefinitions","MAX_TEMPLATE_VARIABLE_WIDTH","MIN_TEMPLATE_VARIABLE_WIDTH","TemplateVariable","TemplateVariableList","variableDefinitions","externalVariableDefinitions","slice","reverse","map","def","definitions","v","TemplateVariableListItem","spec","source","name","ctx","display","state","overridden","hidden","undefined","minWidth","maxWidth","flexShrink","data-testid"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,SAEEC,sCAAsC,EACtCC,mBAAmB,EACnBC,8BAA8B,QACzB,gBAAgB;AACvB,SAASC,2BAA2B,EAAEC,2BAA2B,QAAQ,kBAAkB;AAC3F,SAASC,gBAAgB,QAAQ,qBAAqB;AAEtD,OAAO,SAASC;IACd,MAAMC,sBAA4CL;IAClD,MAAMM,8BAA4DR;IAElE,qBACE;;YACGQ,4BACEC,QACAC,UAAU,iDAAiD;aAC3DC,IAAI,CAACC,MACJA,IAAIC,YAAYF,IAAI,CAACG,kBACnB,KAACC;wBAAwDC,MAAMF,EAAEE;wBAAMC,QAAQL,IAAIK;uBAApDH,EAAEE,KAAKE,OAAON,IAAIK;YAGtDV,oBAAoBI,IAAI,CAACG,kBACxB,KAACC;oBAA2CC,MAAMF,EAAEE;mBAArBF,EAAEE,KAAKE;;;AAI9C;AAEA,OAAO,SAASH,yBAAyB,EAAEC,KAAI,EAAEC,OAAM,EAA2C;QAKnFE,YAAyBH;IAJtC,MAAMG,MAAMlB,oBAAoBe,KAAKE,MAAMD;QAUhBD,MAPlBA;IAFT,qBACE,KAACjB;QAECqB,SAASD,CAAAA,CAAAA,aAAAA,IAAIE,mBAAJF,wBAAAA,KAAAA,IAAAA,WAAWG,UAAS,KAAKN,CAAAA,CAAAA,gBAAAA,KAAKI,qBAALJ,2BAAAA,KAAAA,IAAAA,cAAcO,MAAK,IAAI,SAASC;QAClEC,UAAU,CAAC,EAAErB,4BAA4B,EAAE,CAAC;QAC5CsB,UAAU,CAAC,EAAEvB,4BAA4B,EAAE,CAAC;QAC5CwB,YAAY;QACZC,eAAa,uBAAuBZ,KAAKE;kBAEzC,cAAA,KAACb;YAAgDa,MAAMF,KAAKE;YAAMD,QAAQA;WAAnDD,CAAAA,OAAAA,KAAKE,OAAOD,oBAAZD,kBAAAA,OAAsB;OAPxCA,CAAAA,QAAAA,KAAKE,OAAOD,oBAAZD,mBAAAA,QAAsB;AAUjC"}
@@ -1,3 +1,4 @@
1
+ export * from './BuiltinVariableAccordions';
1
2
  export * from './EditVariablesButton';
2
3
  export * from './TemplateVariable';
3
4
  export * from './VariableEditor';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/index.tsx"],"names":[],"mappings":"AAaA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/index.tsx"],"names":[],"mappings":"AAaA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
@@ -10,6 +10,7 @@
10
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
+ export * from './BuiltinVariableAccordions';
13
14
  export * from './EditVariablesButton';
14
15
  export * from './TemplateVariable';
15
16
  export * from './VariableEditor';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Variables/index.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './EditVariablesButton';\nexport * from './TemplateVariable';\nexport * from './VariableEditor';\nexport * from './VariableList';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"sources":["../../../src/components/Variables/index.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './BuiltinVariableAccordions';\nexport * from './EditVariablesButton';\nexport * from './TemplateVariable';\nexport * from './VariableEditor';\nexport * from './VariableList';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,qBAAqB;AACnC,cAAc,mBAAmB;AACjC,cAAc,iBAAiB"}
@@ -3,6 +3,7 @@ export * from './AddPanelButton';
3
3
  export * from './Dashboard';
4
4
  export * from './DashboardToolbar';
5
5
  export * from './DashboardStickyToolbar';
6
+ export * from './Datasources';
6
7
  export * from './DeletePanelDialog';
7
8
  export * from './DeletePanelGroupDialog';
8
9
  export * from './DiscardChangesConfirmationDialog';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
@@ -15,6 +15,7 @@ export * from './AddPanelButton';
15
15
  export * from './Dashboard';
16
16
  export * from './DashboardToolbar';
17
17
  export * from './DashboardStickyToolbar';
18
+ export * from './Datasources';
18
19
  export * from './DeletePanelDialog';
19
20
  export * from './DeletePanelGroupDialog';
20
21
  export * from './DiscardChangesConfirmationDialog';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './AddGroupButton';\nexport * from './AddPanelButton';\nexport * from './Dashboard';\nexport * from './DashboardToolbar';\nexport * from './DashboardStickyToolbar';\nexport * from './DeletePanelDialog';\nexport * from './DeletePanelGroupDialog';\nexport * from './DiscardChangesConfirmationDialog';\nexport * from './DownloadButton';\nexport * from './EditJsonButton';\nexport * from './EditJsonDialog';\nexport * from './EmptyDashboard';\nexport * from './GridLayout';\nexport * from './Panel';\nexport * from './PanelDrawer';\nexport * from './PanelGroupDialog';\nexport * from './QuerySummaryTable';\nexport * from './SaveChangesConfirmationDialog';\nexport * from './SaveDashboardButton';\nexport * from './TimeRangeControls';\nexport * from './ToolbarIconButton';\nexport * from './Variables';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './AddGroupButton';\nexport * from './AddPanelButton';\nexport * from './Dashboard';\nexport * from './DashboardToolbar';\nexport * from './DashboardStickyToolbar';\nexport * from './Datasources';\nexport * from './DeletePanelDialog';\nexport * from './DeletePanelGroupDialog';\nexport * from './DiscardChangesConfirmationDialog';\nexport * from './DownloadButton';\nexport * from './EditJsonButton';\nexport * from './EditJsonDialog';\nexport * from './EmptyDashboard';\nexport * from './GridLayout';\nexport * from './Panel';\nexport * from './PanelDrawer';\nexport * from './PanelGroupDialog';\nexport * from './QuerySummaryTable';\nexport * from './SaveChangesConfirmationDialog';\nexport * from './SaveDashboardButton';\nexport * from './TimeRangeControls';\nexport * from './ToolbarIconButton';\nexport * from './Variables';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,cAAc;AAC5B,cAAc,qBAAqB;AACnC,cAAc,2BAA2B;AACzC,cAAc,gBAAgB;AAC9B,cAAc,sBAAsB;AACpC,cAAc,2BAA2B;AACzC,cAAc,qCAAqC;AACnD,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,qBAAqB;AACnC,cAAc,sBAAsB;AACpC,cAAc,kCAAkC;AAChD,cAAc,wBAAwB;AACtC,cAAc,sBAAsB;AACpC,cAAc,sBAAsB;AACpC,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/grid-layout-config.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const GRID_LAYOUT_COLS = { sm: 24, xxs: 2 } as const;\n\nexport const GRID_LAYOUT_SMALL_BREAKPOINT = 'sm' as const;\n"],"names":["GRID_LAYOUT_COLS","sm","xxs","GRID_LAYOUT_SMALL_BREAKPOINT"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,MAAMA,gBAAgB,GAAG;IAAEC,EAAE,EAAE,EAAE;IAAEC,GAAG,EAAE,CAAC;CAAE,AAAS,CAAC;AAE5D,OAAO,MAAMC,4BAA4B,GAAG,IAAI,AAAS,CAAC"}
1
+ {"version":3,"sources":["../../src/constants/grid-layout-config.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const GRID_LAYOUT_COLS = { sm: 24, xxs: 2 } as const;\n\nexport const GRID_LAYOUT_SMALL_BREAKPOINT = 'sm' as const;\n"],"names":["GRID_LAYOUT_COLS","sm","xxs","GRID_LAYOUT_SMALL_BREAKPOINT"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,MAAMA,mBAAmB;IAAEC,IAAI;IAAIC,KAAK;AAAE,EAAW;AAE5D,OAAO,MAAMC,+BAA+B,KAAc"}
@@ -1,3 +1,4 @@
1
1
  export * from './grid-layout-config';
2
+ export * from './styles';
2
3
  export * from './user-interface-text';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAaA,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAaA,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC"}
@@ -11,6 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  export * from './grid-layout-config';
14
+ export * from './styles';
14
15
  export * from './user-interface-text';
15
16
 
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/index.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './grid-layout-config';\nexport * from './user-interface-text';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"sources":["../../src/constants/index.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './grid-layout-config';\nexport * from './styles';\nexport * from './user-interface-text';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,uBAAuB;AACrC,cAAc,WAAW;AACzB,cAAc,wBAAwB"}
@@ -0,0 +1,5 @@
1
+ import { SxProps, Theme } from '@mui/material';
2
+ export declare const editButtonStyle: SxProps<Theme>;
3
+ export declare const MIN_TEMPLATE_VARIABLE_WIDTH = 120;
4
+ export declare const MAX_TEMPLATE_VARIABLE_WIDTH = 500;
5
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/constants/styles.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE/C,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,KAAK,CAM1C,CAAC;AAEF,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,2BAA2B,MAAM,CAAC"}
@@ -0,0 +1,23 @@
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
+ export const editButtonStyle = {
14
+ whiteSpace: 'nowrap',
15
+ minWidth: 'auto',
16
+ '& .MuiButton-startIcon': {
17
+ marginRight: 0.5
18
+ }
19
+ };
20
+ export const MIN_TEMPLATE_VARIABLE_WIDTH = 120;
21
+ export const MAX_TEMPLATE_VARIABLE_WIDTH = 500;
22
+
23
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/constants/styles.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { SxProps, Theme } from '@mui/material';\n\nexport const editButtonStyle: SxProps<Theme> = {\n whiteSpace: 'nowrap',\n minWidth: 'auto',\n '& .MuiButton-startIcon': {\n marginRight: 0.5,\n },\n};\n\nexport const MIN_TEMPLATE_VARIABLE_WIDTH = 120;\nexport const MAX_TEMPLATE_VARIABLE_WIDTH = 500;\n"],"names":["editButtonStyle","whiteSpace","minWidth","marginRight","MIN_TEMPLATE_VARIABLE_WIDTH","MAX_TEMPLATE_VARIABLE_WIDTH"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC,OAAO,MAAMA,kBAAkC;IAC7CC,YAAY;IACZC,UAAU;IACV,0BAA0B;QACxBC,aAAa;IACf;AACF,EAAE;AAEF,OAAO,MAAMC,8BAA8B,IAAI;AAC/C,OAAO,MAAMC,8BAA8B,IAAI"}
@@ -2,9 +2,12 @@ export declare const TOOLTIP_TEXT: {
2
2
  addPanel: string;
3
3
  addGroup: string;
4
4
  downloadDashboard: string;
5
+ editDatasources: string;
5
6
  editJson: string;
6
7
  editVariables: string;
7
8
  refreshDashboard: string;
9
+ refreshDashboardInterval: string;
10
+ viewJson: string;
8
11
  addPanelToGroup: string;
9
12
  deleteGroup: string;
10
13
  editGroup: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user-interface-text.d.ts","sourceRoot":"","sources":["../../src/constants/user-interface-text.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;CAsBxB,CAAC;AAEF,eAAO,MAAM,eAAe;iCAEG,MAAM;6BACV,MAAM;2BACR,MAAM;+BACF,MAAM;6BACR,MAAM;2BAER,MAAM;gCACD,MAAM;6BACT,MAAM;2BACR,MAAM;CAC9B,CAAC"}
1
+ {"version":3,"file":"user-interface-text.d.ts","sourceRoot":"","sources":["../../src/constants/user-interface-text.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;CAyBxB,CAAC;AAEF,eAAO,MAAM,eAAe;iCAEG,MAAM;6BACV,MAAM;2BACR,MAAM;+BACF,MAAM;6BACR,MAAM;2BAER,MAAM;gCACD,MAAM;6BACT,MAAM;2BACR,MAAM;CAC9B,CAAC"}
@@ -15,9 +15,12 @@ export const TOOLTIP_TEXT = {
15
15
  addPanel: 'Add panel',
16
16
  addGroup: 'Add panel group',
17
17
  downloadDashboard: 'Download JSON',
18
+ editDatasources: 'Edit datasources',
18
19
  editJson: 'Edit JSON',
19
20
  editVariables: 'Edit variables',
20
21
  refreshDashboard: 'Refresh dashboard',
22
+ refreshDashboardInterval: 'Auto refresh interval',
23
+ viewJson: 'View JSON',
21
24
  // Group buttons
22
25
  addPanelToGroup: 'Add panel to group',
23
26
  deleteGroup: 'Delete group',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/user-interface-text.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const TOOLTIP_TEXT = {\n // Toolbar buttons\n addPanel: 'Add panel',\n addGroup: 'Add panel group',\n downloadDashboard: 'Download JSON',\n editJson: 'Edit JSON',\n editVariables: 'Edit variables',\n refreshDashboard: 'Refresh dashboard',\n // Group buttons\n addPanelToGroup: 'Add panel to group',\n deleteGroup: 'Delete group',\n editGroup: 'Edit group',\n moveGroupDown: 'Move group down',\n moveGroupUp: 'Move group up',\n // Panel buttons\n editPanel: 'Edit',\n duplicatePanel: 'Duplicate',\n deletePanel: 'Delete',\n movePanel: 'Move',\n // Variable editor buttons\n refreshVariableValues: 'Refresh values',\n copyVariableValues: 'Copy values to clipboard',\n};\n\nexport const ARIA_LABEL_TEXT = {\n // Group buttons\n addPanelToGroup: (groupName: string) => `add panel to group ${groupName}`,\n deleteGroup: (groupName: string) => `delete group ${groupName}`,\n editGroup: (groupName: string) => `edit group ${groupName}`,\n moveGroupDown: (groupName: string) => `move group ${groupName} down`,\n moveGroupUp: (groupName: string) => `move group ${groupName} up`,\n // Panel buttons\n editPanel: (panelName: string) => `edit panel ${panelName}`,\n duplicatePanel: (panelName: string) => `duplicate panel ${panelName}`,\n deletePanel: (panelName: string) => `delete panel ${panelName}`,\n movePanel: (panelName: string) => `move panel ${panelName}`,\n};\n"],"names":["TOOLTIP_TEXT","addPanel","addGroup","downloadDashboard","editJson","editVariables","refreshDashboard","addPanelToGroup","deleteGroup","editGroup","moveGroupDown","moveGroupUp","editPanel","duplicatePanel","deletePanel","movePanel","refreshVariableValues","copyVariableValues","ARIA_LABEL_TEXT","groupName","panelName"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,MAAMA,YAAY,GAAG;IAC1B,kBAAkB;IAClBC,QAAQ,EAAE,WAAW;IACrBC,QAAQ,EAAE,iBAAiB;IAC3BC,iBAAiB,EAAE,eAAe;IAClCC,QAAQ,EAAE,WAAW;IACrBC,aAAa,EAAE,gBAAgB;IAC/BC,gBAAgB,EAAE,mBAAmB;IACrC,gBAAgB;IAChBC,eAAe,EAAE,oBAAoB;IACrCC,WAAW,EAAE,cAAc;IAC3BC,SAAS,EAAE,YAAY;IACvBC,aAAa,EAAE,iBAAiB;IAChCC,WAAW,EAAE,eAAe;IAC5B,gBAAgB;IAChBC,SAAS,EAAE,MAAM;IACjBC,cAAc,EAAE,WAAW;IAC3BC,WAAW,EAAE,QAAQ;IACrBC,SAAS,EAAE,MAAM;IACjB,0BAA0B;IAC1BC,qBAAqB,EAAE,gBAAgB;IACvCC,kBAAkB,EAAE,0BAA0B;CAC/C,CAAC;AAEF,OAAO,MAAMC,eAAe,GAAG;IAC7B,gBAAgB;IAChBX,eAAe,EAAE,CAACY,SAAiB,GAAK,CAAC,mBAAmB,EAAEA,SAAS,CAAC,CAAC;IACzEX,WAAW,EAAE,CAACW,SAAiB,GAAK,CAAC,aAAa,EAAEA,SAAS,CAAC,CAAC;IAC/DV,SAAS,EAAE,CAACU,SAAiB,GAAK,CAAC,WAAW,EAAEA,SAAS,CAAC,CAAC;IAC3DT,aAAa,EAAE,CAACS,SAAiB,GAAK,CAAC,WAAW,EAAEA,SAAS,CAAC,KAAK,CAAC;IACpER,WAAW,EAAE,CAACQ,SAAiB,GAAK,CAAC,WAAW,EAAEA,SAAS,CAAC,GAAG,CAAC;IAChE,gBAAgB;IAChBP,SAAS,EAAE,CAACQ,SAAiB,GAAK,CAAC,WAAW,EAAEA,SAAS,CAAC,CAAC;IAC3DP,cAAc,EAAE,CAACO,SAAiB,GAAK,CAAC,gBAAgB,EAAEA,SAAS,CAAC,CAAC;IACrEN,WAAW,EAAE,CAACM,SAAiB,GAAK,CAAC,aAAa,EAAEA,SAAS,CAAC,CAAC;IAC/DL,SAAS,EAAE,CAACK,SAAiB,GAAK,CAAC,WAAW,EAAEA,SAAS,CAAC,CAAC;CAC5D,CAAC"}
1
+ {"version":3,"sources":["../../src/constants/user-interface-text.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const TOOLTIP_TEXT = {\n // Toolbar buttons\n addPanel: 'Add panel',\n addGroup: 'Add panel group',\n downloadDashboard: 'Download JSON',\n editDatasources: 'Edit datasources',\n editJson: 'Edit JSON',\n editVariables: 'Edit variables',\n refreshDashboard: 'Refresh dashboard',\n refreshDashboardInterval: 'Auto refresh interval',\n viewJson: 'View JSON',\n // Group buttons\n addPanelToGroup: 'Add panel to group',\n deleteGroup: 'Delete group',\n editGroup: 'Edit group',\n moveGroupDown: 'Move group down',\n moveGroupUp: 'Move group up',\n // Panel buttons\n editPanel: 'Edit',\n duplicatePanel: 'Duplicate',\n deletePanel: 'Delete',\n movePanel: 'Move',\n // Variable editor buttons\n refreshVariableValues: 'Refresh values',\n copyVariableValues: 'Copy values to clipboard',\n};\n\nexport const ARIA_LABEL_TEXT = {\n // Group buttons\n addPanelToGroup: (groupName: string) => `add panel to group ${groupName}`,\n deleteGroup: (groupName: string) => `delete group ${groupName}`,\n editGroup: (groupName: string) => `edit group ${groupName}`,\n moveGroupDown: (groupName: string) => `move group ${groupName} down`,\n moveGroupUp: (groupName: string) => `move group ${groupName} up`,\n // Panel buttons\n editPanel: (panelName: string) => `edit panel ${panelName}`,\n duplicatePanel: (panelName: string) => `duplicate panel ${panelName}`,\n deletePanel: (panelName: string) => `delete panel ${panelName}`,\n movePanel: (panelName: string) => `move panel ${panelName}`,\n};\n"],"names":["TOOLTIP_TEXT","addPanel","addGroup","downloadDashboard","editDatasources","editJson","editVariables","refreshDashboard","refreshDashboardInterval","viewJson","addPanelToGroup","deleteGroup","editGroup","moveGroupDown","moveGroupUp","editPanel","duplicatePanel","deletePanel","movePanel","refreshVariableValues","copyVariableValues","ARIA_LABEL_TEXT","groupName","panelName"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,MAAMA,eAAe;IAC1B,kBAAkB;IAClBC,UAAU;IACVC,UAAU;IACVC,mBAAmB;IACnBC,iBAAiB;IACjBC,UAAU;IACVC,eAAe;IACfC,kBAAkB;IAClBC,0BAA0B;IAC1BC,UAAU;IACV,gBAAgB;IAChBC,iBAAiB;IACjBC,aAAa;IACbC,WAAW;IACXC,eAAe;IACfC,aAAa;IACb,gBAAgB;IAChBC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;IACbC,WAAW;IACX,0BAA0B;IAC1BC,uBAAuB;IACvBC,oBAAoB;AACtB,EAAE;AAEF,OAAO,MAAMC,kBAAkB;IAC7B,gBAAgB;IAChBX,iBAAiB,CAACY,YAAsB,CAAC,mBAAmB,EAAEA,UAAU,CAAC;IACzEX,aAAa,CAACW,YAAsB,CAAC,aAAa,EAAEA,UAAU,CAAC;IAC/DV,WAAW,CAACU,YAAsB,CAAC,WAAW,EAAEA,UAAU,CAAC;IAC3DT,eAAe,CAACS,YAAsB,CAAC,WAAW,EAAEA,UAAU,KAAK,CAAC;IACpER,aAAa,CAACQ,YAAsB,CAAC,WAAW,EAAEA,UAAU,GAAG,CAAC;IAChE,gBAAgB;IAChBP,WAAW,CAACQ,YAAsB,CAAC,WAAW,EAAEA,UAAU,CAAC;IAC3DP,gBAAgB,CAACO,YAAsB,CAAC,gBAAgB,EAAEA,UAAU,CAAC;IACrEN,aAAa,CAACM,YAAsB,CAAC,aAAa,EAAEA,UAAU,CAAC;IAC/DL,WAAW,CAACK,YAAsB,CAAC,WAAW,EAAEA,UAAU,CAAC;AAC7D,EAAE"}
@@ -1,6 +1,6 @@
1
1
  import type { StoreApi } from 'zustand';
2
2
  import { ReactNode } from 'react';
3
- import { DashboardResource, Display, ProjectMetadata, DurationString } from '@perses-dev/core';
3
+ import { DashboardResource, Display, ProjectMetadata, DurationString, DatasourceSpec } from '@perses-dev/core';
4
4
  import { PanelGroupEditorSlice } from './panel-group-editor-slice';
5
5
  import { PanelGroupSlice } from './panel-group-slice';
6
6
  import { PanelEditorSlice } from './panel-editor-slice';
@@ -19,6 +19,7 @@ export interface DashboardStoreState extends PanelGroupSlice, PanelSlice, PanelG
19
19
  duration: DurationString;
20
20
  refreshInterval: DurationString;
21
21
  display?: Display;
22
+ datasources?: Record<string, DatasourceSpec>;
22
23
  }
23
24
  export interface DashboardStoreProps {
24
25
  dashboardResource: DashboardResource;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardProvider.d.ts","sourceRoot":"","sources":["../../../src/context/DashboardProvider/DashboardProvider.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC,OAAO,EAAiB,SAAS,EAAgD,MAAM,OAAO,CAAC;AAC/F,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAA+B,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAsD,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAA0B,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAoB,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAA+B,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAA0B,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAmC,qCAAqC,EAAE,MAAM,gCAAgC,CAAC;AACxH,OAAO,EAAgC,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AAC/G,OAAO,EAA6B,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAA6B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG1F,MAAM,WAAW,mBACf,SAAQ,eAAe,EACrB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,qCAAqC,EACrC,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,oEAAsE,CAAC;AAEpG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,CAAC,KAM/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,eA0B9D"}
1
+ {"version":3,"file":"DashboardProvider.d.ts","sourceRoot":"","sources":["../../../src/context/DashboardProvider/DashboardProvider.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC,OAAO,EAAiB,SAAS,EAAgD,MAAM,OAAO,CAAC;AAC/F,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,cAAc,EAEd,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAA+B,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAsD,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAA0B,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAoB,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAA+B,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAA0B,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAmC,qCAAqC,EAAE,MAAM,gCAAgC,CAAC;AACxH,OAAO,EAAgC,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AAC/G,OAAO,EAA6B,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAA6B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG1F,MAAM,WAAW,mBACf,SAAQ,eAAe,EACrB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,qCAAqC,EACrC,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,oEAAsE,CAAC;AAEpG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,CAAC,KAM/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,eA0B9D"}
@@ -43,8 +43,8 @@ export function DashboardProvider(props) {
43
43
  ]);
44
44
  // load plugin to retrieve initial spec if default panel kind is defined
45
45
  const { defaultPluginKinds } = usePluginRegistry();
46
- var ref;
47
- const defaultPanelKind = (ref = defaultPluginKinds === null || defaultPluginKinds === void 0 ? void 0 : defaultPluginKinds['Panel']) !== null && ref !== void 0 ? ref : '';
46
+ var _defaultPluginKinds_Panel;
47
+ const defaultPanelKind = (_defaultPluginKinds_Panel = defaultPluginKinds === null || defaultPluginKinds === void 0 ? void 0 : defaultPluginKinds['Panel']) !== null && _defaultPluginKinds_Panel !== void 0 ? _defaultPluginKinds_Panel : '';
48
48
  const { data: plugin } = usePlugin('Panel', defaultPanelKind);
49
49
  const [store] = useState(createDashboardStore(props)); // prevent calling createDashboardStore every time it rerenders
50
50
  useEffect(()=>{
@@ -67,9 +67,9 @@ export function DashboardProvider(props) {
67
67
  });
68
68
  }
69
69
  function initStore(props) {
70
- const { initialState: { dashboardResource , isEditMode } , } = props;
71
- const { spec: { display , duration , refreshInterval =DEFAULT_REFRESH_INTERVAL } , metadata , } = dashboardResource;
72
- let { spec: { layouts , panels } , } = dashboardResource;
70
+ const { initialState: { dashboardResource , isEditMode } } = props;
71
+ const { spec: { display , duration , refreshInterval =DEFAULT_REFRESH_INTERVAL , datasources } , metadata } = dashboardResource;
72
+ let { spec: { layouts , panels } } = dashboardResource;
73
73
  // Set fallbacks in case the frontend is used with a non-Perses backend
74
74
  layouts = layouts !== null && layouts !== void 0 ? layouts : [];
75
75
  panels = panels !== null && panels !== void 0 ? panels : {};
@@ -90,11 +90,12 @@ function initStore(props) {
90
90
  display,
91
91
  duration,
92
92
  refreshInterval,
93
+ datasources,
93
94
  isEditMode: !!isEditMode,
94
95
  setEditMode: (isEditMode)=>set({
95
96
  isEditMode
96
97
  }),
97
- setDashboard: ({ metadata , spec: { display , panels ={} , layouts =[] , duration , refreshInterval } })=>{
98
+ setDashboard: ({ metadata , spec: { display , panels ={} , layouts =[] , duration , refreshInterval , datasources ={} } })=>{
98
99
  set((state)=>{
99
100
  state.metadata = metadata;
100
101
  state.display = display;
@@ -104,6 +105,7 @@ function initStore(props) {
104
105
  state.panelGroupOrder = panelGroupOrder;
105
106
  state.duration = duration;
106
107
  state.refreshInterval = refreshInterval !== null && refreshInterval !== void 0 ? refreshInterval : DEFAULT_REFRESH_INTERVAL;
108
+ state.datasources = datasources;
107
109
  });
108
110
  }
109
111
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/DashboardProvider/DashboardProvider.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createStore, useStore } from 'zustand';\nimport type { StoreApi } from 'zustand';\nimport { devtools } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\nimport { shallow } from 'zustand/shallow';\nimport { createContext, ReactNode, useCallback, useContext, useEffect, useState } from 'react';\nimport {\n DashboardResource,\n Display,\n ProjectMetadata,\n DurationString,\n DEFAULT_REFRESH_INTERVAL,\n} from '@perses-dev/core';\nimport { usePlugin, usePluginRegistry } from '@perses-dev/plugin-system';\nimport { createPanelGroupEditorSlice, PanelGroupEditorSlice } from './panel-group-editor-slice';\nimport { convertLayoutsToPanelGroups, createPanelGroupSlice, PanelGroupSlice } from './panel-group-slice';\nimport { createPanelEditorSlice, PanelEditorSlice } from './panel-editor-slice';\nimport { createPanelSlice, PanelSlice } from './panel-slice';\nimport { createDeletePanelGroupSlice, DeletePanelGroupSlice } from './delete-panel-group-slice';\nimport { createDeletePanelSlice, DeletePanelSlice } from './delete-panel-slice';\nimport { createDiscardChangesDialogSlice, DiscardChangesConfirmationDialogSlice } from './discard-changes-dialog-slice';\nimport { createSaveChangesDialogSlice, SaveChangesConfirmationDialogSlice } from './save-changes-dialog-slice';\nimport { createDuplicatePanelSlice, DuplicatePanelSlice } from './duplicate-panel-slice';\nimport { createEditJsonDialogSlice, EditJsonDialogSlice } from './edit-json-dialog-slice';\nimport { createPanelDefinition } from './common';\n\nexport interface DashboardStoreState\n extends PanelGroupSlice,\n PanelSlice,\n PanelGroupEditorSlice,\n DeletePanelGroupSlice,\n PanelEditorSlice,\n DeletePanelSlice,\n DiscardChangesConfirmationDialogSlice,\n DuplicatePanelSlice,\n EditJsonDialogSlice,\n SaveChangesConfirmationDialogSlice {\n isEditMode: boolean;\n setEditMode: (isEditMode: boolean) => void;\n setDashboard: (dashboard: DashboardResource) => void;\n metadata: ProjectMetadata;\n duration: DurationString;\n refreshInterval: DurationString;\n display?: Display;\n}\n\nexport interface DashboardStoreProps {\n dashboardResource: DashboardResource;\n isEditMode?: boolean;\n}\n\nexport interface DashboardProviderProps {\n initialState: DashboardStoreProps;\n children?: ReactNode;\n}\n\nexport const DashboardContext = createContext<StoreApi<DashboardStoreState> | undefined>(undefined);\n\nexport function useDashboardStore<T>(selector: (state: DashboardStoreState) => T) {\n const store = useContext(DashboardContext);\n if (store === undefined) {\n throw new Error('No DashboardContext found. Did you forget a Provider?');\n }\n return useStore(store, selector, shallow);\n}\n\nexport function DashboardProvider(props: DashboardProviderProps) {\n const createDashboardStore = useCallback(initStore, [props]);\n\n // load plugin to retrieve initial spec if default panel kind is defined\n const { defaultPluginKinds } = usePluginRegistry();\n const defaultPanelKind = defaultPluginKinds?.['Panel'] ?? '';\n const { data: plugin } = usePlugin('Panel', defaultPanelKind);\n\n const [store] = useState(createDashboardStore(props)); // prevent calling createDashboardStore every time it rerenders\n\n useEffect(() => {\n if (plugin === undefined) return;\n const defaultPanelSpec = plugin.createInitialOptions();\n // set default panel kind, spec, and queries for add panel editor\n store.setState({\n initialValues: {\n panelDefinition: createPanelDefinition(defaultPanelKind, defaultPanelSpec),\n },\n });\n }, [plugin, store, defaultPanelKind]);\n\n return (\n <DashboardContext.Provider value={store as StoreApi<DashboardStoreState>}>\n {props.children}\n </DashboardContext.Provider>\n );\n}\n\nfunction initStore(props: DashboardProviderProps) {\n const {\n initialState: { dashboardResource, isEditMode },\n } = props;\n\n const {\n spec: { display, duration, refreshInterval = DEFAULT_REFRESH_INTERVAL },\n metadata,\n } = dashboardResource;\n\n let {\n spec: { layouts, panels },\n } = dashboardResource;\n\n // Set fallbacks in case the frontend is used with a non-Perses backend\n layouts = layouts ?? [];\n panels = panels ?? {};\n\n const store = createStore<DashboardStoreState>()(\n immer(\n devtools((...args) => {\n const [set] = args;\n return {\n /* Groups */\n ...createPanelGroupSlice(layouts)(...args),\n ...createPanelGroupEditorSlice(...args),\n ...createDeletePanelGroupSlice(...args),\n /* Panels */\n ...createPanelSlice(panels)(...args),\n ...createPanelEditorSlice()(...args),\n ...createDeletePanelSlice()(...args),\n ...createDuplicatePanelSlice()(...args),\n /* General */\n ...createDiscardChangesDialogSlice(...args),\n ...createEditJsonDialogSlice(...args),\n ...createSaveChangesDialogSlice(...args),\n metadata,\n display,\n duration,\n refreshInterval,\n isEditMode: !!isEditMode,\n setEditMode: (isEditMode: boolean) => set({ isEditMode }),\n setDashboard: ({ metadata, spec: { display, panels = {}, layouts = [], duration, refreshInterval } }) => {\n set((state) => {\n state.metadata = metadata;\n state.display = display;\n state.panels = panels;\n const { panelGroups, panelGroupOrder } = convertLayoutsToPanelGroups(layouts);\n state.panelGroups = panelGroups;\n state.panelGroupOrder = panelGroupOrder;\n state.duration = duration;\n state.refreshInterval = refreshInterval ?? DEFAULT_REFRESH_INTERVAL;\n });\n },\n };\n })\n )\n );\n\n return store;\n}\n"],"names":["createStore","useStore","devtools","immer","shallow","createContext","useCallback","useContext","useEffect","useState","DEFAULT_REFRESH_INTERVAL","usePlugin","usePluginRegistry","createPanelGroupEditorSlice","convertLayoutsToPanelGroups","createPanelGroupSlice","createPanelEditorSlice","createPanelSlice","createDeletePanelGroupSlice","createDeletePanelSlice","createDiscardChangesDialogSlice","createSaveChangesDialogSlice","createDuplicatePanelSlice","createEditJsonDialogSlice","createPanelDefinition","DashboardContext","undefined","useDashboardStore","selector","store","Error","DashboardProvider","props","createDashboardStore","initStore","defaultPluginKinds","defaultPanelKind","data","plugin","defaultPanelSpec","createInitialOptions","setState","initialValues","panelDefinition","Provider","value","children","initialState","dashboardResource","isEditMode","spec","display","duration","refreshInterval","metadata","layouts","panels","args","set","setEditMode","setDashboard","state","panelGroups","panelGroupOrder"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/context/DashboardProvider/DashboardProvider.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createStore, useStore } from 'zustand';\nimport type { StoreApi } from 'zustand';\nimport { devtools } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\nimport { shallow } from 'zustand/shallow';\nimport { createContext, ReactNode, useCallback, useContext, useEffect, useState } from 'react';\nimport {\n DashboardResource,\n Display,\n ProjectMetadata,\n DurationString,\n DEFAULT_REFRESH_INTERVAL,\n DatasourceSpec,\n} from '@perses-dev/core';\nimport { usePlugin, usePluginRegistry } from '@perses-dev/plugin-system';\nimport { createPanelGroupEditorSlice, PanelGroupEditorSlice } from './panel-group-editor-slice';\nimport { convertLayoutsToPanelGroups, createPanelGroupSlice, PanelGroupSlice } from './panel-group-slice';\nimport { createPanelEditorSlice, PanelEditorSlice } from './panel-editor-slice';\nimport { createPanelSlice, PanelSlice } from './panel-slice';\nimport { createDeletePanelGroupSlice, DeletePanelGroupSlice } from './delete-panel-group-slice';\nimport { createDeletePanelSlice, DeletePanelSlice } from './delete-panel-slice';\nimport { createDiscardChangesDialogSlice, DiscardChangesConfirmationDialogSlice } from './discard-changes-dialog-slice';\nimport { createSaveChangesDialogSlice, SaveChangesConfirmationDialogSlice } from './save-changes-dialog-slice';\nimport { createDuplicatePanelSlice, DuplicatePanelSlice } from './duplicate-panel-slice';\nimport { createEditJsonDialogSlice, EditJsonDialogSlice } from './edit-json-dialog-slice';\nimport { createPanelDefinition } from './common';\n\nexport interface DashboardStoreState\n extends PanelGroupSlice,\n PanelSlice,\n PanelGroupEditorSlice,\n DeletePanelGroupSlice,\n PanelEditorSlice,\n DeletePanelSlice,\n DiscardChangesConfirmationDialogSlice,\n DuplicatePanelSlice,\n EditJsonDialogSlice,\n SaveChangesConfirmationDialogSlice {\n isEditMode: boolean;\n setEditMode: (isEditMode: boolean) => void;\n setDashboard: (dashboard: DashboardResource) => void;\n metadata: ProjectMetadata;\n duration: DurationString;\n refreshInterval: DurationString;\n display?: Display;\n datasources?: Record<string, DatasourceSpec>;\n}\n\nexport interface DashboardStoreProps {\n dashboardResource: DashboardResource;\n isEditMode?: boolean;\n}\n\nexport interface DashboardProviderProps {\n initialState: DashboardStoreProps;\n children?: ReactNode;\n}\n\nexport const DashboardContext = createContext<StoreApi<DashboardStoreState> | undefined>(undefined);\n\nexport function useDashboardStore<T>(selector: (state: DashboardStoreState) => T) {\n const store = useContext(DashboardContext);\n if (store === undefined) {\n throw new Error('No DashboardContext found. Did you forget a Provider?');\n }\n return useStore(store, selector, shallow);\n}\n\nexport function DashboardProvider(props: DashboardProviderProps) {\n const createDashboardStore = useCallback(initStore, [props]);\n\n // load plugin to retrieve initial spec if default panel kind is defined\n const { defaultPluginKinds } = usePluginRegistry();\n const defaultPanelKind = defaultPluginKinds?.['Panel'] ?? '';\n const { data: plugin } = usePlugin('Panel', defaultPanelKind);\n\n const [store] = useState(createDashboardStore(props)); // prevent calling createDashboardStore every time it rerenders\n\n useEffect(() => {\n if (plugin === undefined) return;\n const defaultPanelSpec = plugin.createInitialOptions();\n // set default panel kind, spec, and queries for add panel editor\n store.setState({\n initialValues: {\n panelDefinition: createPanelDefinition(defaultPanelKind, defaultPanelSpec),\n },\n });\n }, [plugin, store, defaultPanelKind]);\n\n return (\n <DashboardContext.Provider value={store as StoreApi<DashboardStoreState>}>\n {props.children}\n </DashboardContext.Provider>\n );\n}\n\nfunction initStore(props: DashboardProviderProps) {\n const {\n initialState: { dashboardResource, isEditMode },\n } = props;\n\n const {\n spec: { display, duration, refreshInterval = DEFAULT_REFRESH_INTERVAL, datasources },\n metadata,\n } = dashboardResource;\n\n let {\n spec: { layouts, panels },\n } = dashboardResource;\n\n // Set fallbacks in case the frontend is used with a non-Perses backend\n layouts = layouts ?? [];\n panels = panels ?? {};\n\n const store = createStore<DashboardStoreState>()(\n immer(\n devtools((...args) => {\n const [set] = args;\n return {\n /* Groups */\n ...createPanelGroupSlice(layouts)(...args),\n ...createPanelGroupEditorSlice(...args),\n ...createDeletePanelGroupSlice(...args),\n /* Panels */\n ...createPanelSlice(panels)(...args),\n ...createPanelEditorSlice()(...args),\n ...createDeletePanelSlice()(...args),\n ...createDuplicatePanelSlice()(...args),\n /* General */\n ...createDiscardChangesDialogSlice(...args),\n ...createEditJsonDialogSlice(...args),\n ...createSaveChangesDialogSlice(...args),\n metadata,\n display,\n duration,\n refreshInterval,\n datasources,\n isEditMode: !!isEditMode,\n setEditMode: (isEditMode: boolean) => set({ isEditMode }),\n setDashboard: ({\n metadata,\n spec: { display, panels = {}, layouts = [], duration, refreshInterval, datasources = {} },\n }) => {\n set((state) => {\n state.metadata = metadata;\n state.display = display;\n state.panels = panels;\n const { panelGroups, panelGroupOrder } = convertLayoutsToPanelGroups(layouts);\n state.panelGroups = panelGroups;\n state.panelGroupOrder = panelGroupOrder;\n state.duration = duration;\n state.refreshInterval = refreshInterval ?? DEFAULT_REFRESH_INTERVAL;\n state.datasources = datasources;\n });\n },\n };\n })\n )\n );\n\n return store;\n}\n"],"names":["createStore","useStore","devtools","immer","shallow","createContext","useCallback","useContext","useEffect","useState","DEFAULT_REFRESH_INTERVAL","usePlugin","usePluginRegistry","createPanelGroupEditorSlice","convertLayoutsToPanelGroups","createPanelGroupSlice","createPanelEditorSlice","createPanelSlice","createDeletePanelGroupSlice","createDeletePanelSlice","createDiscardChangesDialogSlice","createSaveChangesDialogSlice","createDuplicatePanelSlice","createEditJsonDialogSlice","createPanelDefinition","DashboardContext","undefined","useDashboardStore","selector","store","Error","DashboardProvider","props","createDashboardStore","initStore","defaultPluginKinds","defaultPanelKind","data","plugin","defaultPanelSpec","createInitialOptions","setState","initialValues","panelDefinition","Provider","value","children","initialState","dashboardResource","isEditMode","spec","display","duration","refreshInterval","datasources","metadata","layouts","panels","args","set","setEditMode","setDashboard","state","panelGroups","panelGroupOrder"],"mappings":"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"}