@perses-dev/dashboards 0.0.0-snapshot-scatterplot-fix-imports-95e1b59 → 0.0.0-snapshot-histogram-types-78c5104

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 (366) hide show
  1. package/dist/cjs/components/Dashboard/Dashboard.js +8 -1
  2. package/dist/cjs/components/DashboardStickyToolbar/DashboardStickyToolbar.js +2 -2
  3. package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +4 -4
  4. package/dist/cjs/components/Datasources/DatasourceEditor.js +18 -18
  5. package/dist/cjs/components/Datasources/EditDatasourcesButton.js +2 -5
  6. package/dist/cjs/components/DeletePanelDialog/DeletePanelDialog.js +2 -0
  7. package/dist/cjs/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +5 -4
  8. package/dist/cjs/components/DownloadButton/DownloadButton.js +135 -29
  9. package/dist/cjs/components/EditJsonDialog/EditJsonDialog.js +10 -13
  10. package/dist/cjs/components/EmptyDashboard/EmptyDashboard.js +2 -2
  11. package/dist/cjs/components/GridLayout/GridContainer.js +15 -10
  12. package/dist/cjs/components/GridLayout/GridItemContent.js +20 -4
  13. package/dist/cjs/components/GridLayout/GridLayout.js +57 -12
  14. package/dist/cjs/components/GridLayout/GridTitle.js +3 -3
  15. package/dist/cjs/{validation/panel.js → components/Panel/HeaderIconButton.js} +8 -10
  16. package/dist/cjs/components/Panel/Panel.js +19 -11
  17. package/dist/cjs/components/Panel/PanelActions.js +365 -0
  18. package/dist/cjs/components/Panel/PanelContent.js +59 -13
  19. package/dist/cjs/components/Panel/PanelHeader.js +14 -117
  20. package/dist/cjs/components/Panel/PanelLinks.js +136 -0
  21. package/dist/cjs/components/Panel/PanelPluginLoader.js +56 -0
  22. package/dist/cjs/components/Panel/index.js +1 -0
  23. package/dist/cjs/components/PanelDrawer/PanelDrawer.js +9 -6
  24. package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +81 -67
  25. package/dist/cjs/components/PanelDrawer/PanelPreview.js +7 -3
  26. package/dist/cjs/components/PanelDrawer/usePanelEditor.js +9 -6
  27. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.js +1 -1
  28. package/dist/cjs/components/QuerySummaryTable/QuerySummaryTable.js +3 -5
  29. package/dist/cjs/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +4 -6
  30. package/dist/cjs/components/SaveDashboardButton/SaveDashboardButton.js +2 -2
  31. package/dist/cjs/components/Variables/BuiltinVariableAccordions.js +7 -14
  32. package/dist/cjs/components/Variables/EditVariablesButton.js +4 -4
  33. package/dist/cjs/components/Variables/{TemplateVariable.js → Variable.js} +52 -60
  34. package/dist/cjs/components/Variables/VariableEditor.js +34 -40
  35. package/dist/cjs/components/Variables/VariableList.js +23 -22
  36. package/dist/cjs/components/Variables/index.js +2 -2
  37. package/dist/cjs/constants/styles.js +19 -7
  38. package/dist/cjs/constants/user-interface-text.js +3 -1
  39. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +10 -8
  40. package/dist/cjs/context/DashboardProvider/DashboardProviderWithQueryParams.js +36 -0
  41. package/dist/cjs/context/DashboardProvider/common.js +2 -2
  42. package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +25 -6
  43. package/dist/cjs/context/DashboardProvider/delete-panel-slice.js +1 -2
  44. package/dist/cjs/context/DashboardProvider/panel-editor-slice.js +7 -10
  45. package/dist/cjs/context/DashboardProvider/panel-group-editor-slice.js +1 -2
  46. package/dist/cjs/context/DashboardProvider/panel-group-slice.js +8 -3
  47. package/dist/cjs/context/DashboardProvider/view-panel-slice.js +79 -0
  48. package/dist/cjs/context/DatasourceStoreProvider.js +18 -23
  49. package/dist/cjs/context/{TemplateVariableProvider/TemplateVariableProvider.js → VariableProvider/VariableProvider.js} +76 -87
  50. package/dist/cjs/context/{TemplateVariableProvider → VariableProvider}/hydrationUtils.js +11 -14
  51. package/dist/cjs/{validation → context/VariableProvider}/index.js +2 -2
  52. package/dist/cjs/context/{TemplateVariableProvider → VariableProvider}/query-params.js +1 -1
  53. package/dist/cjs/context/{TemplateVariableProvider → VariableProvider}/utils.js +3 -3
  54. package/dist/cjs/context/index.js +2 -2
  55. package/dist/cjs/context/useDashboard.js +4 -4
  56. package/dist/cjs/test/datasource-provider.js +1 -1
  57. package/dist/cjs/test/plugin-registry.js +8 -3
  58. package/dist/cjs/test/render.js +13 -11
  59. package/dist/cjs/views/ViewDashboard/DashboardApp.js +6 -4
  60. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +10 -9
  61. package/dist/components/AddGroupButton/AddGroupButton.d.ts +2 -1
  62. package/dist/components/AddGroupButton/AddGroupButton.d.ts.map +1 -1
  63. package/dist/components/AddGroupButton/AddGroupButton.js.map +1 -1
  64. package/dist/components/AddPanelButton/AddPanelButton.d.ts +2 -1
  65. package/dist/components/AddPanelButton/AddPanelButton.d.ts.map +1 -1
  66. package/dist/components/AddPanelButton/AddPanelButton.js.map +1 -1
  67. package/dist/components/Dashboard/Dashboard.d.ts +2 -1
  68. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -1
  69. package/dist/components/Dashboard/Dashboard.js +8 -1
  70. package/dist/components/Dashboard/Dashboard.js.map +1 -1
  71. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.d.ts +2 -1
  72. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.d.ts.map +1 -1
  73. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js +3 -3
  74. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js.map +1 -1
  75. package/dist/components/DashboardToolbar/DashboardToolbar.d.ts +4 -2
  76. package/dist/components/DashboardToolbar/DashboardToolbar.d.ts.map +1 -1
  77. package/dist/components/DashboardToolbar/DashboardToolbar.js +4 -4
  78. package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
  79. package/dist/components/Datasources/DatasourceEditor.d.ts +2 -1
  80. package/dist/components/Datasources/DatasourceEditor.d.ts.map +1 -1
  81. package/dist/components/Datasources/DatasourceEditor.js +19 -19
  82. package/dist/components/Datasources/DatasourceEditor.js.map +1 -1
  83. package/dist/components/Datasources/EditDatasourcesButton.d.ts +2 -1
  84. package/dist/components/Datasources/EditDatasourcesButton.d.ts.map +1 -1
  85. package/dist/components/Datasources/EditDatasourcesButton.js +2 -5
  86. package/dist/components/Datasources/EditDatasourcesButton.js.map +1 -1
  87. package/dist/components/DeletePanelDialog/DeletePanelDialog.d.ts +2 -1
  88. package/dist/components/DeletePanelDialog/DeletePanelDialog.d.ts.map +1 -1
  89. package/dist/components/DeletePanelDialog/DeletePanelDialog.js +3 -1
  90. package/dist/components/DeletePanelDialog/DeletePanelDialog.js.map +1 -1
  91. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.d.ts +2 -1
  92. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.d.ts.map +1 -1
  93. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +6 -5
  94. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js.map +1 -1
  95. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.d.ts +2 -1
  96. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.d.ts.map +1 -1
  97. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js.map +1 -1
  98. package/dist/components/DownloadButton/DownloadButton.d.ts +2 -5
  99. package/dist/components/DownloadButton/DownloadButton.d.ts.map +1 -1
  100. package/dist/components/DownloadButton/DownloadButton.js +94 -29
  101. package/dist/components/DownloadButton/DownloadButton.js.map +1 -1
  102. package/dist/components/EditButton/EditButton.d.ts +2 -1
  103. package/dist/components/EditButton/EditButton.d.ts.map +1 -1
  104. package/dist/components/EditButton/EditButton.js.map +1 -1
  105. package/dist/components/EditJsonButton/EditJsonButton.d.ts +2 -1
  106. package/dist/components/EditJsonButton/EditJsonButton.d.ts.map +1 -1
  107. package/dist/components/EditJsonButton/EditJsonButton.js.map +1 -1
  108. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts +2 -1
  109. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts.map +1 -1
  110. package/dist/components/EditJsonDialog/EditJsonDialog.js +7 -10
  111. package/dist/components/EditJsonDialog/EditJsonDialog.js.map +1 -1
  112. package/dist/components/EmptyDashboard/EmptyDashboard.d.ts +3 -3
  113. package/dist/components/EmptyDashboard/EmptyDashboard.d.ts.map +1 -1
  114. package/dist/components/EmptyDashboard/EmptyDashboard.js +2 -2
  115. package/dist/components/EmptyDashboard/EmptyDashboard.js.map +1 -1
  116. package/dist/components/GridLayout/GridContainer.d.ts +5 -3
  117. package/dist/components/GridLayout/GridContainer.d.ts.map +1 -1
  118. package/dist/components/GridLayout/GridContainer.js +15 -10
  119. package/dist/components/GridLayout/GridContainer.js.map +1 -1
  120. package/dist/components/GridLayout/GridItemContent.d.ts +2 -1
  121. package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
  122. package/dist/components/GridLayout/GridItemContent.js +22 -6
  123. package/dist/components/GridLayout/GridItemContent.js.map +1 -1
  124. package/dist/components/GridLayout/GridLayout.d.ts +4 -2
  125. package/dist/components/GridLayout/GridLayout.d.ts.map +1 -1
  126. package/dist/components/GridLayout/GridLayout.js +59 -14
  127. package/dist/components/GridLayout/GridLayout.js.map +1 -1
  128. package/dist/components/GridLayout/GridTitle.d.ts +3 -2
  129. package/dist/components/GridLayout/GridTitle.d.ts.map +1 -1
  130. package/dist/components/GridLayout/GridTitle.js +3 -3
  131. package/dist/components/GridLayout/GridTitle.js.map +1 -1
  132. package/dist/components/Panel/HeaderIconButton.d.ts +5 -0
  133. package/dist/components/Panel/HeaderIconButton.d.ts.map +1 -0
  134. package/dist/{stories/decorators/index.js → components/Panel/HeaderIconButton.js} +7 -6
  135. package/dist/components/Panel/HeaderIconButton.js.map +1 -0
  136. package/dist/components/Panel/Panel.d.ts +16 -5
  137. package/dist/components/Panel/Panel.d.ts.map +1 -1
  138. package/dist/components/Panel/Panel.js +25 -12
  139. package/dist/components/Panel/Panel.js.map +1 -1
  140. package/dist/components/Panel/PanelActions.d.ts +22 -0
  141. package/dist/components/Panel/PanelActions.d.ts.map +1 -0
  142. package/dist/components/Panel/PanelActions.js +352 -0
  143. package/dist/components/Panel/PanelActions.js.map +1 -0
  144. package/dist/components/Panel/PanelContent.d.ts +7 -5
  145. package/dist/components/Panel/PanelContent.d.ts.map +1 -1
  146. package/dist/components/Panel/PanelContent.js +61 -15
  147. package/dist/components/Panel/PanelContent.js.map +1 -1
  148. package/dist/components/Panel/PanelHeader.d.ts +10 -8
  149. package/dist/components/Panel/PanelHeader.d.ts.map +1 -1
  150. package/dist/components/Panel/PanelHeader.js +18 -116
  151. package/dist/components/Panel/PanelHeader.js.map +1 -1
  152. package/dist/components/Panel/PanelLinks.d.ts +6 -0
  153. package/dist/components/Panel/PanelLinks.d.ts.map +1 -0
  154. package/dist/components/Panel/PanelLinks.js +123 -0
  155. package/dist/components/Panel/PanelLinks.js.map +1 -0
  156. package/dist/components/Panel/PanelPluginLoader.d.ts +13 -0
  157. package/dist/components/Panel/PanelPluginLoader.d.ts.map +1 -0
  158. package/dist/components/Panel/PanelPluginLoader.js +51 -0
  159. package/dist/components/Panel/PanelPluginLoader.js.map +1 -0
  160. package/dist/components/Panel/index.d.ts +1 -0
  161. package/dist/components/Panel/index.d.ts.map +1 -1
  162. package/dist/components/Panel/index.js +1 -0
  163. package/dist/components/Panel/index.js.map +1 -1
  164. package/dist/components/PanelDrawer/PanelDrawer.d.ts +2 -1
  165. package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
  166. package/dist/components/PanelDrawer/PanelDrawer.js +10 -7
  167. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
  168. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +3 -3
  169. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
  170. package/dist/components/PanelDrawer/PanelEditorForm.js +84 -70
  171. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
  172. package/dist/components/PanelDrawer/PanelPreview.d.ts +3 -2
  173. package/dist/components/PanelDrawer/PanelPreview.d.ts.map +1 -1
  174. package/dist/components/PanelDrawer/PanelPreview.js +8 -4
  175. package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
  176. package/dist/components/PanelDrawer/usePanelEditor.d.ts +12 -10
  177. package/dist/components/PanelDrawer/usePanelEditor.d.ts.map +1 -1
  178. package/dist/components/PanelDrawer/usePanelEditor.js +9 -6
  179. package/dist/components/PanelDrawer/usePanelEditor.js.map +1 -1
  180. package/dist/components/PanelGroupDialog/PanelGroupDialog.d.ts +2 -1
  181. package/dist/components/PanelGroupDialog/PanelGroupDialog.d.ts.map +1 -1
  182. package/dist/components/PanelGroupDialog/PanelGroupDialog.js +1 -1
  183. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -1
  184. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.d.ts +2 -1
  185. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.d.ts.map +1 -1
  186. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js.map +1 -1
  187. package/dist/components/QuerySummaryTable/QuerySummaryTable.d.ts +2 -1
  188. package/dist/components/QuerySummaryTable/QuerySummaryTable.d.ts.map +1 -1
  189. package/dist/components/QuerySummaryTable/QuerySummaryTable.js +3 -5
  190. package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -1
  191. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.d.ts +2 -1
  192. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.d.ts.map +1 -1
  193. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +5 -7
  194. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js.map +1 -1
  195. package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts +2 -1
  196. package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts.map +1 -1
  197. package/dist/components/SaveDashboardButton/SaveDashboardButton.js +3 -3
  198. package/dist/components/SaveDashboardButton/SaveDashboardButton.js.map +1 -1
  199. package/dist/components/Variables/BuiltinVariableAccordions.d.ts +2 -1
  200. package/dist/components/Variables/BuiltinVariableAccordions.d.ts.map +1 -1
  201. package/dist/components/Variables/BuiltinVariableAccordions.js +7 -14
  202. package/dist/components/Variables/BuiltinVariableAccordions.js.map +1 -1
  203. package/dist/components/Variables/EditVariablesButton.d.ts +2 -1
  204. package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
  205. package/dist/components/Variables/EditVariablesButton.js +5 -5
  206. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  207. package/dist/components/Variables/{TemplateVariable.d.ts → Variable.d.ts} +6 -5
  208. package/dist/components/Variables/Variable.d.ts.map +1 -0
  209. package/dist/components/Variables/{TemplateVariable.js → Variable.js} +53 -61
  210. package/dist/components/Variables/Variable.js.map +1 -0
  211. package/dist/components/Variables/VariableEditor.d.ts +3 -2
  212. package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
  213. package/dist/components/Variables/VariableEditor.js +35 -41
  214. package/dist/components/Variables/VariableEditor.js.map +1 -1
  215. package/dist/components/Variables/VariableList.d.ts +4 -3
  216. package/dist/components/Variables/VariableList.d.ts.map +1 -1
  217. package/dist/components/Variables/VariableList.js +21 -20
  218. package/dist/components/Variables/VariableList.js.map +1 -1
  219. package/dist/components/Variables/index.d.ts +1 -1
  220. package/dist/components/Variables/index.d.ts.map +1 -1
  221. package/dist/components/Variables/index.js +2 -2
  222. package/dist/components/Variables/index.js.map +1 -1
  223. package/dist/constants/styles.d.ts +5 -2
  224. package/dist/constants/styles.d.ts.map +1 -1
  225. package/dist/constants/styles.js +6 -3
  226. package/dist/constants/styles.js.map +1 -1
  227. package/dist/constants/user-interface-text.d.ts +3 -1
  228. package/dist/constants/user-interface-text.d.ts.map +1 -1
  229. package/dist/constants/user-interface-text.js +3 -1
  230. package/dist/constants/user-interface-text.js.map +1 -1
  231. package/dist/context/DashboardProvider/DashboardProvider.d.ts +6 -3
  232. package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
  233. package/dist/context/DashboardProvider/DashboardProvider.js +11 -9
  234. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  235. package/dist/context/DashboardProvider/DashboardProviderWithQueryParams.d.ts +4 -0
  236. package/dist/context/DashboardProvider/DashboardProviderWithQueryParams.d.ts.map +1 -0
  237. package/dist/context/DashboardProvider/DashboardProviderWithQueryParams.js +28 -0
  238. package/dist/context/DashboardProvider/DashboardProviderWithQueryParams.js.map +1 -0
  239. package/dist/context/DashboardProvider/common.d.ts.map +1 -1
  240. package/dist/context/DashboardProvider/common.js +2 -2
  241. package/dist/context/DashboardProvider/common.js.map +1 -1
  242. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts +45 -23
  243. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts.map +1 -1
  244. package/dist/context/DashboardProvider/dashboard-provider-api.js +23 -6
  245. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
  246. package/dist/context/DashboardProvider/delete-panel-group-slice.d.ts +2 -1
  247. package/dist/context/DashboardProvider/delete-panel-group-slice.d.ts.map +1 -1
  248. package/dist/context/DashboardProvider/delete-panel-group-slice.js.map +1 -1
  249. package/dist/context/DashboardProvider/delete-panel-slice.js +1 -2
  250. package/dist/context/DashboardProvider/delete-panel-slice.js.map +1 -1
  251. package/dist/context/DashboardProvider/discard-changes-dialog-slice.js.map +1 -1
  252. package/dist/context/DashboardProvider/duplicate-panel-slice.js.map +1 -1
  253. package/dist/context/DashboardProvider/edit-json-dialog-slice.js.map +1 -1
  254. package/dist/context/DashboardProvider/index.d.ts +1 -2
  255. package/dist/context/DashboardProvider/index.d.ts.map +1 -1
  256. package/dist/context/DashboardProvider/index.js.map +1 -1
  257. package/dist/context/DashboardProvider/panel-editor-slice.d.ts +2 -9
  258. package/dist/context/DashboardProvider/panel-editor-slice.d.ts.map +1 -1
  259. package/dist/context/DashboardProvider/panel-editor-slice.js +4 -7
  260. package/dist/context/DashboardProvider/panel-editor-slice.js.map +1 -1
  261. package/dist/context/DashboardProvider/panel-group-editor-slice.d.ts +2 -1
  262. package/dist/context/DashboardProvider/panel-group-editor-slice.d.ts.map +1 -1
  263. package/dist/context/DashboardProvider/panel-group-editor-slice.js +1 -2
  264. package/dist/context/DashboardProvider/panel-group-editor-slice.js.map +1 -1
  265. package/dist/context/DashboardProvider/panel-group-slice.d.ts +3 -3
  266. package/dist/context/DashboardProvider/panel-group-slice.d.ts.map +1 -1
  267. package/dist/context/DashboardProvider/panel-group-slice.js +7 -3
  268. package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -1
  269. package/dist/context/DashboardProvider/save-changes-dialog-slice.js.map +1 -1
  270. package/dist/context/DashboardProvider/view-panel-slice.d.ts +21 -0
  271. package/dist/context/DashboardProvider/view-panel-slice.d.ts.map +1 -0
  272. package/dist/context/DashboardProvider/view-panel-slice.js +73 -0
  273. package/dist/context/DashboardProvider/view-panel-slice.js.map +1 -0
  274. package/dist/context/DatasourceStoreProvider.d.ts +7 -7
  275. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  276. package/dist/context/DatasourceStoreProvider.js +18 -23
  277. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  278. package/dist/context/VariableProvider/VariableProvider.d.ts +119 -0
  279. package/dist/context/VariableProvider/VariableProvider.d.ts.map +1 -0
  280. package/dist/context/{TemplateVariableProvider/TemplateVariableProvider.js → VariableProvider/VariableProvider.js} +62 -64
  281. package/dist/context/VariableProvider/VariableProvider.js.map +1 -0
  282. package/dist/context/{TemplateVariableProvider → VariableProvider}/hydrationUtils.d.ts +1 -1
  283. package/dist/context/VariableProvider/hydrationUtils.d.ts.map +1 -0
  284. package/dist/context/{TemplateVariableProvider → VariableProvider}/hydrationUtils.js +9 -12
  285. package/dist/context/VariableProvider/hydrationUtils.js.map +1 -0
  286. package/dist/context/VariableProvider/index.d.ts +2 -0
  287. package/dist/context/VariableProvider/index.d.ts.map +1 -0
  288. package/dist/{validation → context/VariableProvider}/index.js +2 -2
  289. package/dist/context/VariableProvider/index.js.map +1 -0
  290. package/dist/context/{TemplateVariableProvider → VariableProvider}/query-params.d.ts +2 -6
  291. package/dist/context/VariableProvider/query-params.d.ts.map +1 -0
  292. package/dist/context/{TemplateVariableProvider → VariableProvider}/query-params.js +1 -1
  293. package/dist/context/VariableProvider/query-params.js.map +1 -0
  294. package/dist/context/{TemplateVariableProvider → VariableProvider}/utils.d.ts +1 -1
  295. package/dist/context/VariableProvider/utils.d.ts.map +1 -0
  296. package/dist/context/{TemplateVariableProvider → VariableProvider}/utils.js +3 -3
  297. package/dist/context/VariableProvider/utils.js.map +1 -0
  298. package/dist/context/index.d.ts +1 -1
  299. package/dist/context/index.d.ts.map +1 -1
  300. package/dist/context/index.js +2 -2
  301. package/dist/context/index.js.map +1 -1
  302. package/dist/context/useDashboard.d.ts.map +1 -1
  303. package/dist/context/useDashboard.js +4 -4
  304. package/dist/context/useDashboard.js.map +1 -1
  305. package/dist/test/dashboard-provider.d.ts +1 -1
  306. package/dist/test/dashboard-provider.d.ts.map +1 -1
  307. package/dist/test/dashboard-provider.js.map +1 -1
  308. package/dist/test/datasource-provider.d.ts +3 -3
  309. package/dist/test/datasource-provider.d.ts.map +1 -1
  310. package/dist/test/datasource-provider.js +1 -1
  311. package/dist/test/datasource-provider.js.map +1 -1
  312. package/dist/test/plugin-registry.d.ts.map +1 -1
  313. package/dist/test/plugin-registry.js +8 -3
  314. package/dist/test/plugin-registry.js.map +1 -1
  315. package/dist/test/render.d.ts +2 -2
  316. package/dist/test/render.d.ts.map +1 -1
  317. package/dist/test/render.js +9 -7
  318. package/dist/test/render.js.map +1 -1
  319. package/dist/utils/panelUtils.d.ts.map +1 -1
  320. package/dist/utils/panelUtils.js.map +1 -1
  321. package/dist/views/ViewDashboard/DashboardApp.d.ts +4 -2
  322. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  323. package/dist/views/ViewDashboard/DashboardApp.js +6 -4
  324. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  325. package/dist/views/ViewDashboard/ViewDashboard.d.ts +4 -3
  326. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  327. package/dist/views/ViewDashboard/ViewDashboard.js +11 -10
  328. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  329. package/package.json +12 -12
  330. package/dist/cjs/context/TemplateVariableProvider/index.js +0 -30
  331. package/dist/cjs/stories/decorators/WithDashboard.js +0 -41
  332. package/dist/cjs/stories/decorators/WithDatasourceStore.js +0 -39
  333. package/dist/cjs/stories/decorators/WithTemplateVariables.js +0 -37
  334. package/dist/cjs/stories/decorators/constants.js +0 -39
  335. package/dist/cjs/stories/decorators/index.js +0 -33
  336. package/dist/components/Variables/TemplateVariable.d.ts.map +0 -1
  337. package/dist/components/Variables/TemplateVariable.js.map +0 -1
  338. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +0 -77
  339. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +0 -1
  340. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +0 -1
  341. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts.map +0 -1
  342. package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +0 -1
  343. package/dist/context/TemplateVariableProvider/index.d.ts +0 -2
  344. package/dist/context/TemplateVariableProvider/index.d.ts.map +0 -1
  345. package/dist/context/TemplateVariableProvider/index.js +0 -15
  346. package/dist/context/TemplateVariableProvider/index.js.map +0 -1
  347. package/dist/context/TemplateVariableProvider/query-params.d.ts.map +0 -1
  348. package/dist/context/TemplateVariableProvider/query-params.js.map +0 -1
  349. package/dist/context/TemplateVariableProvider/utils.d.ts.map +0 -1
  350. package/dist/context/TemplateVariableProvider/utils.js.map +0 -1
  351. package/dist/stories/decorators/WithDashboard.js +0 -33
  352. package/dist/stories/decorators/WithDashboard.js.map +0 -1
  353. package/dist/stories/decorators/WithDatasourceStore.js +0 -31
  354. package/dist/stories/decorators/WithDatasourceStore.js.map +0 -1
  355. package/dist/stories/decorators/WithTemplateVariables.js +0 -29
  356. package/dist/stories/decorators/WithTemplateVariables.js.map +0 -1
  357. package/dist/stories/decorators/constants.js +0 -31
  358. package/dist/stories/decorators/constants.js.map +0 -1
  359. package/dist/stories/decorators/index.js.map +0 -1
  360. package/dist/validation/index.d.ts +0 -2
  361. package/dist/validation/index.d.ts.map +0 -1
  362. package/dist/validation/index.js.map +0 -1
  363. package/dist/validation/panel.d.ts +0 -19
  364. package/dist/validation/panel.d.ts.map +0 -1
  365. package/dist/validation/panel.js +0 -21
  366. package/dist/validation/panel.js.map +0 -1
@@ -22,27 +22,73 @@ Object.defineProperty(exports, "PanelContent", {
22
22
  });
23
23
  const _jsxruntime = require("react/jsx-runtime");
24
24
  const _pluginsystem = require("@perses-dev/plugin-system");
25
+ const _components = require("@perses-dev/components");
25
26
  const _material = require("@mui/material");
27
+ const _PanelPluginLoader = require("./PanelPluginLoader");
26
28
  function PanelContent(props) {
27
- const { panelPluginKind, contentDimensions, definition, ...others } = props;
28
- const { data: plugin, isLoading } = (0, _pluginsystem.usePlugin)('Panel', panelPluginKind, {
29
- useErrorBoundary: true
29
+ const { panelPluginKind, definition, queryResults, spec, contentDimensions } = props;
30
+ const { data: plugin, isLoading: isPanelLoading } = (0, _pluginsystem.usePlugin)('Panel', panelPluginKind, {
31
+ throwOnError: true
30
32
  });
31
- const PanelComponent = plugin === null || plugin === void 0 ? void 0 : plugin.PanelComponent;
32
- if (isLoading) {
33
+ // Show fullsize skeleton if the panel plugin is loading.
34
+ if (isPanelLoading) {
33
35
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Skeleton, {
34
36
  variant: "rectangular",
35
- width: contentDimensions === null || contentDimensions === void 0 ? void 0 : contentDimensions.width,
36
- height: contentDimensions === null || contentDimensions === void 0 ? void 0 : contentDimensions.height,
37
+ width: contentDimensions?.width,
38
+ height: contentDimensions?.height,
37
39
  "aria-label": "Loading..."
38
40
  });
39
41
  }
40
- if (PanelComponent === undefined) {
41
- throw new Error(`Missing PanelComponent from panel plugin for kind '${panelPluginKind}'`);
42
+ // Render the panel if any query has data, or the panel doesn't have a query attached (for example MarkdownPanel).
43
+ // Loading indicator or errors of other queries are shown in the panel header.
44
+ const queryResultsWithData = queryResults.flatMap((q)=>q.data ? [
45
+ {
46
+ data: q.data,
47
+ definition: q.definition
48
+ }
49
+ ] : []);
50
+ if (queryResultsWithData.length > 0 || queryResults.length === 0) {
51
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_PanelPluginLoader.PanelPluginLoader, {
52
+ kind: panelPluginKind,
53
+ spec: spec,
54
+ contentDimensions: contentDimensions,
55
+ definition: definition,
56
+ queryResults: queryResultsWithData
57
+ });
58
+ }
59
+ // No query has data, show loading overlay if any query is fetching data.
60
+ if (queryResults.some((q)=>q.isFetching)) {
61
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(PanelLoading, {
62
+ plugin: plugin,
63
+ spec: spec,
64
+ definition: definition,
65
+ contentDimensions: contentDimensions
66
+ });
67
+ }
68
+ // No query has data or is loading, show the error if any query has an error.
69
+ // The error will be catched in <ErrorBoundary> of <Panel>.
70
+ const queryError = queryResults.find((q)=>q.error);
71
+ if (queryError) {
72
+ throw queryError.error;
42
73
  }
43
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(PanelComponent, {
44
- ...others,
45
- contentDimensions: contentDimensions,
46
- definition: definition
74
+ // At this point, one or more queries are defined, but no query has data, is loading, or has an error.
75
+ // This can happen if all queries are disabled (e.g. dependent dashboard variables are loading, or they are not in the viewport of the browser).
76
+ // Most likely, some query will be enabled later. Render the panel loading skeleton.
77
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(PanelLoading, {
78
+ plugin: plugin,
79
+ spec: spec,
80
+ definition: definition,
81
+ contentDimensions: contentDimensions
47
82
  });
48
83
  }
84
+ function PanelLoading({ plugin, spec, definition, contentDimensions }) {
85
+ if (plugin?.LoadingComponent) {
86
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(plugin.LoadingComponent, {
87
+ spec: spec,
88
+ contentDimensions: contentDimensions,
89
+ definition: definition,
90
+ queryResults: []
91
+ });
92
+ }
93
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.LoadingOverlay, {});
94
+ }
@@ -1,4 +1,4 @@
1
- // Copyright 2023 The Perses Authors
1
+ // Copyright 2025 The Perses Authors
2
2
  // Licensed under the Apache License, Version 2.0 (the "License");
3
3
  // you may not use this file except in compliance with the License.
4
4
  // You may obtain a copy of the License at
@@ -23,83 +23,14 @@ Object.defineProperty(exports, "PanelHeader", {
23
23
  const _jsxruntime = require("react/jsx-runtime");
24
24
  const _material = require("@mui/material");
25
25
  const _components = require("@perses-dev/components");
26
- const _InformationOutline = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/InformationOutline"));
27
- const _PencilOutline = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/PencilOutline"));
28
- const _DeleteOutline = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/DeleteOutline"));
29
- const _DragVertical = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/DragVertical"));
30
- const _ContentCopy = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/ContentCopy"));
31
26
  const _pluginsystem = require("@perses-dev/plugin-system");
32
27
  const _constants = require("../../constants");
33
- function _interop_require_default(obj) {
34
- return obj && obj.__esModule ? obj : {
35
- default: obj
36
- };
37
- }
38
- function PanelHeader({ id, title: rawTitle, description: rawDescription, editHandlers, sx, extra, ...rest }) {
28
+ const _PanelActions = require("./PanelActions");
29
+ function PanelHeader({ id, title: rawTitle, description: rawDescription, links, queryResults, readHandlers, editHandlers, sx, extra, ...rest }) {
39
30
  const titleElementId = `${id}-title`;
40
31
  const descriptionTooltipId = `${id}-description`;
41
32
  const title = (0, _pluginsystem.useReplaceVariablesInString)(rawTitle);
42
33
  const description = (0, _pluginsystem.useReplaceVariablesInString)(rawDescription);
43
- let actions = undefined;
44
- if (editHandlers !== undefined) {
45
- // If there are edit handlers, always just show the edit buttons
46
- actions = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
47
- children: [
48
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
49
- description: _constants.TOOLTIP_TEXT.editPanel,
50
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(HeaderIconButton, {
51
- "aria-label": _constants.ARIA_LABEL_TEXT.editPanel(title),
52
- size: "small",
53
- onClick: editHandlers.onEditPanelClick,
54
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_PencilOutline.default, {
55
- fontSize: "inherit"
56
- })
57
- })
58
- }),
59
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
60
- description: _constants.TOOLTIP_TEXT.duplicatePanel,
61
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(HeaderIconButton, {
62
- "aria-label": _constants.ARIA_LABEL_TEXT.duplicatePanel(title),
63
- size: "small",
64
- onClick: editHandlers.onDuplicatePanelClick,
65
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_ContentCopy.default, {
66
- fontSize: "inherit",
67
- sx: {
68
- // Shrink this icon a little bit to look more consistent
69
- // with the other icons in the header.
70
- transform: 'scale(0.925)'
71
- }
72
- })
73
- })
74
- }),
75
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
76
- description: _constants.TOOLTIP_TEXT.deletePanel,
77
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(HeaderIconButton, {
78
- "aria-label": _constants.ARIA_LABEL_TEXT.deletePanel(title),
79
- size: "small",
80
- onClick: editHandlers.onDeletePanelClick,
81
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_DeleteOutline.default, {
82
- fontSize: "inherit"
83
- })
84
- })
85
- }),
86
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
87
- description: _constants.TOOLTIP_TEXT.movePanel,
88
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(HeaderIconButton, {
89
- "aria-label": _constants.ARIA_LABEL_TEXT.movePanel(title),
90
- size: "small",
91
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_DragVertical.default, {
92
- className: "drag-handle",
93
- sx: {
94
- cursor: 'grab'
95
- },
96
- fontSize: "inherit"
97
- })
98
- })
99
- })
100
- ]
101
- });
102
- }
103
34
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.CardHeader, {
104
35
  id: id,
105
36
  component: "header",
@@ -116,68 +47,34 @@ function PanelHeader({ id, title: rawTitle, description: rawDescription, editHan
116
47
  // `minHeight` guarantees that the header has the correct height
117
48
  // when there is no title (i.e. in the preview)
118
49
  lineHeight: '24px',
119
- minHeight: '24px',
50
+ minHeight: '26px',
120
51
  whiteSpace: 'nowrap',
121
52
  overflow: 'hidden',
122
53
  textOverflow: 'ellipsis'
123
54
  },
124
55
  children: title
125
56
  }),
126
- description !== undefined && description.trim().length > 0 && /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
127
- id: descriptionTooltipId,
57
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_PanelActions.PanelActions, {
58
+ title: title,
128
59
  description: description,
129
- enterDelay: 100,
130
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(HeaderIconButton, {
131
- "aria-label": "panel description",
132
- size: "small",
133
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_InformationOutline.default, {
134
- "aria-describedby": "info-tooltip",
135
- "aria-hidden": false,
136
- fontSize: "inherit",
137
- sx: {
138
- color: (theme)=>theme.palette.text.secondary
139
- }
140
- })
141
- })
60
+ descriptionTooltipId: descriptionTooltipId,
61
+ links: links,
62
+ queryResults: queryResults,
63
+ readHandlers: readHandlers,
64
+ editHandlers: editHandlers,
65
+ extra: extra
142
66
  })
143
67
  ]
144
68
  }),
145
- action: /*#__PURE__*/ (0, _jsxruntime.jsxs)(HeaderActionWrapper, {
146
- direction: "row",
147
- spacing: 0.25,
148
- alignItems: "center",
149
- children: [
150
- editHandlers === undefined && extra,
151
- " ",
152
- actions
153
- ]
154
- }),
155
69
  sx: (0, _components.combineSx)((theme)=>({
70
+ containerType: 'inline-size',
71
+ containerName: _constants.HEADER_ACTIONS_CONTAINER_NAME,
156
72
  padding: theme.spacing(1),
157
73
  borderBottom: `solid 1px ${theme.palette.divider}`,
158
74
  '.MuiCardHeader-content': {
159
75
  overflow: 'hidden'
160
- },
161
- '.MuiCardHeader-action': {
162
- // Overriding the negative margins from MUI's defaults, so we
163
- // can vertically center the icons. Moving these values to a wrapper
164
- // inside the action in `HeaderActionWrapper` below.
165
- // https://github.com/mui/material-ui/blob/master/packages/mui-material/src/CardHeader/CardHeader.js#L56-L58
166
- margin: 'auto'
167
76
  }
168
77
  }), sx),
169
78
  ...rest
170
79
  });
171
80
  }
172
- const HeaderIconButton = (0, _material.styled)(_material.IconButton)(({ theme })=>({
173
- borderRadius: theme.shape.borderRadius,
174
- padding: '4px'
175
- }));
176
- const HeaderActionWrapper = (0, _material.styled)(_material.Stack)(()=>({
177
- // Adding back the negative margins from MUI's defaults for actions, so we
178
- // avoid increasing the header size when actions are present while also being
179
- // able to vertically center the actions.
180
- // https://github.com/mui/material-ui/blob/master/packages/mui-material/src/CardHeader/CardHeader.js#L56-L58
181
- marginTop: -4,
182
- marginBottom: -4
183
- }));
@@ -0,0 +1,136 @@
1
+ // Copyright 2024 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ Object.defineProperty(exports, "PanelLinks", {
18
+ enumerable: true,
19
+ get: function() {
20
+ return PanelLinks;
21
+ }
22
+ });
23
+ const _jsxruntime = require("react/jsx-runtime");
24
+ const _material = require("@mui/material");
25
+ const _Launch = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Launch"));
26
+ const _react = require("react");
27
+ const _components = require("@perses-dev/components");
28
+ const _pluginsystem = require("@perses-dev/plugin-system");
29
+ function _interop_require_default(obj) {
30
+ return obj && obj.__esModule ? obj : {
31
+ default: obj
32
+ };
33
+ }
34
+ function PanelLinks({ links }) {
35
+ const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
36
+ const isMenuOpened = Boolean(anchorEl);
37
+ const handleOpenMenu = (event)=>{
38
+ setAnchorEl(event.currentTarget);
39
+ };
40
+ const handleClose = ()=>{
41
+ setAnchorEl(null);
42
+ };
43
+ // If there is only one link, show it directly
44
+ if (links.length === 1 && links[0]) {
45
+ const link = links[0];
46
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(LinkButton, {
47
+ link: link
48
+ });
49
+ }
50
+ // Else we show a menu with a list of all links
51
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
52
+ children: [
53
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
54
+ description: `${links.length} links`,
55
+ enterDelay: 100,
56
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
57
+ "aria-label": "Panel links",
58
+ size: "small",
59
+ onClick: handleOpenMenu,
60
+ sx: (theme)=>({
61
+ borderRadius: theme.shape.borderRadius,
62
+ padding: '4px'
63
+ }),
64
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Launch.default, {
65
+ "aria-describedby": "links-icon",
66
+ fontSize: "inherit",
67
+ sx: {
68
+ color: (theme)=>theme.palette.text.secondary
69
+ }
70
+ })
71
+ })
72
+ }),
73
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Menu, {
74
+ anchorEl: anchorEl,
75
+ open: isMenuOpened,
76
+ onClose: handleClose,
77
+ MenuListProps: {
78
+ 'aria-labelledby': 'panel-links'
79
+ },
80
+ children: links.map((link)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(LinkMenuItem, {
81
+ link: link
82
+ }, link.url))
83
+ })
84
+ ]
85
+ });
86
+ }
87
+ function LinkButton({ link }) {
88
+ const { url, name, tooltip, targetBlank } = useLink(link);
89
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
90
+ description: tooltip ?? url,
91
+ enterDelay: 100,
92
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
93
+ "aria-label": name ?? url,
94
+ size: "small",
95
+ href: url,
96
+ target: targetBlank ? '_blank' : '_self',
97
+ sx: (theme)=>({
98
+ borderRadius: theme.shape.borderRadius,
99
+ padding: '4px'
100
+ }),
101
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Launch.default, {
102
+ fontSize: "inherit",
103
+ sx: {
104
+ color: (theme)=>theme.palette.text.secondary
105
+ }
106
+ })
107
+ })
108
+ });
109
+ }
110
+ function LinkMenuItem({ link }) {
111
+ const { url, name, tooltip, targetBlank } = useLink(link);
112
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
113
+ description: tooltip ?? url,
114
+ enterDelay: 100,
115
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
116
+ component: _material.Link,
117
+ href: url,
118
+ target: targetBlank ? '_blank' : '_self',
119
+ children: name ?? url
120
+ })
121
+ });
122
+ }
123
+ function useLink(link) {
124
+ const url = (0, _pluginsystem.useReplaceVariablesInString)(link.url) ?? link.url;
125
+ const name = (0, _pluginsystem.useReplaceVariablesInString)(link.name);
126
+ const tooltip = (0, _pluginsystem.useReplaceVariablesInString)(link.tooltip);
127
+ if (link.renderVariables === false) {
128
+ return link;
129
+ }
130
+ return {
131
+ ...link,
132
+ url,
133
+ name,
134
+ tooltip
135
+ };
136
+ }
@@ -0,0 +1,56 @@
1
+ // Copyright 2025 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ Object.defineProperty(exports, "PanelPluginLoader", {
18
+ enumerable: true,
19
+ get: function() {
20
+ return PanelPluginLoader;
21
+ }
22
+ });
23
+ const _jsxruntime = require("react/jsx-runtime");
24
+ const _pluginsystem = require("@perses-dev/plugin-system");
25
+ const _material = require("@mui/material");
26
+ function PanelPluginLoader(props) {
27
+ const { kind, spec, contentDimensions, definition, queryResults } = props;
28
+ const { data: plugin, isLoading: isPanelLoading } = (0, _pluginsystem.usePlugin)('Panel', kind, {
29
+ throwOnError: true
30
+ });
31
+ const PanelComponent = plugin?.PanelComponent;
32
+ const supportedQueryTypes = plugin?.supportedQueryTypes || [];
33
+ // Show fullsize skeleton if the panel plugin is loading.
34
+ if (isPanelLoading) {
35
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Skeleton, {
36
+ variant: "rectangular",
37
+ width: contentDimensions?.width,
38
+ height: contentDimensions?.height,
39
+ "aria-label": "Loading..."
40
+ });
41
+ }
42
+ if (PanelComponent === undefined) {
43
+ throw new Error(`Missing PanelComponent from panel plugin for kind '${kind}'`);
44
+ }
45
+ for (const queryResult of queryResults){
46
+ if (!supportedQueryTypes.includes(queryResult.definition.kind)) {
47
+ throw new Error(`This panel does not support queries of type '${queryResult.definition.kind}'. Supported query types: ${supportedQueryTypes.join(', ')}.`);
48
+ }
49
+ }
50
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(PanelComponent, {
51
+ spec: spec,
52
+ contentDimensions: contentDimensions,
53
+ definition: definition,
54
+ queryResults: queryResults
55
+ });
56
+ }
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
17
  _export_star(require("./Panel"), exports);
18
+ _export_star(require("./PanelPluginLoader"), exports);
18
19
  function _export_star(from, to) {
19
20
  Object.keys(from).forEach(function(k) {
20
21
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
@@ -44,7 +44,7 @@ const PanelDrawer = ()=>{
44
44
  };
45
45
  // Don't call closeDrawer on the store until the Drawer has completely transitioned out and reset close state
46
46
  const handleExited = ()=>{
47
- panelEditor === null || panelEditor === void 0 ? void 0 : panelEditor.close();
47
+ panelEditor?.close();
48
48
  setIsClosing(false);
49
49
  };
50
50
  // Disables closing on click out. This is a quick-win solution to avoid losing draft changes.
@@ -58,11 +58,14 @@ const PanelDrawer = ()=>{
58
58
  onExited: handleExited
59
59
  },
60
60
  "data-testid": "panel-editor",
61
- children: panelEditor && /*#__PURE__*/ (0, _jsxruntime.jsx)(_PanelEditorForm.PanelEditorForm, {
62
- initialAction: panelEditor.mode,
63
- initialValues: panelEditor.initialValues,
64
- onSave: handleSave,
65
- onClose: handleClose
61
+ children: panelEditor && /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.ErrorBoundary, {
62
+ FallbackComponent: _components.ErrorAlert,
63
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_PanelEditorForm.PanelEditorForm, {
64
+ initialAction: panelEditor.mode,
65
+ initialValues: panelEditor.initialValues,
66
+ onSave: handleSave,
67
+ onClose: handleClose
68
+ })
66
69
  })
67
70
  });
68
71
  };