@perses-dev/dashboards 0.54.0-beta.0 → 0.54.0-beta.10

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 (276) hide show
  1. package/dist/cjs/components/Annotations/AnnotationsEditor.js +302 -0
  2. package/dist/cjs/components/Annotations/EditAnnotationsButton.js +83 -0
  3. package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +4 -2
  4. package/dist/cjs/components/GridLayout/GridItemContent.js +4 -11
  5. package/dist/cjs/components/Panel/Panel.js +4 -1
  6. package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +2 -2
  7. package/dist/cjs/components/PanelDrawer/PanelQueriesSharedControls.js +3 -16
  8. package/dist/cjs/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +20 -3
  9. package/dist/cjs/components/Variables/VariableEditor.js +52 -18
  10. package/dist/cjs/constants/defaults.js +32 -0
  11. package/dist/cjs/constants/index.js +1 -0
  12. package/dist/cjs/constants/user-interface-text.js +1 -0
  13. package/dist/cjs/context/AnnotationProvider/AnnotationHydrationWrapper.js +50 -0
  14. package/dist/cjs/context/AnnotationProvider/AnnotationProvider.js +145 -0
  15. package/dist/cjs/context/AnnotationProvider/index.js +30 -0
  16. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +11 -4
  17. package/dist/cjs/context/DashboardProvider/panel-group-slice.js +14 -11
  18. package/dist/cjs/context/DashboardProvider/use-save-dashboard.js +12 -4
  19. package/dist/cjs/context/DatasourceStoreProvider.js +38 -5
  20. package/dist/cjs/context/VariableProvider/VariableProvider.js +11 -6
  21. package/dist/cjs/context/index.js +1 -0
  22. package/dist/cjs/context/useDashboard.js +11 -1
  23. package/dist/cjs/index.js +1 -0
  24. package/dist/cjs/keyboard-shortcuts/index.js +3 -0
  25. package/dist/cjs/keyboard-shortcuts/utils.js +11 -0
  26. package/dist/cjs/model/PanelGroupDefinition.js +25 -0
  27. package/dist/cjs/model/index.js +2 -1
  28. package/dist/cjs/views/ViewDashboard/DashboardApp.js +9 -1
  29. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +33 -28
  30. package/dist/components/AddGroupButton/AddGroupButton.js +1 -1
  31. package/dist/components/AddGroupButton/AddGroupButton.js.map +1 -1
  32. package/dist/components/AddPanelButton/AddPanelButton.js +1 -1
  33. package/dist/components/AddPanelButton/AddPanelButton.js.map +1 -1
  34. package/dist/components/Annotations/AnnotationsEditor.d.ts +8 -0
  35. package/dist/components/Annotations/AnnotationsEditor.d.ts.map +1 -0
  36. package/dist/components/Annotations/AnnotationsEditor.js +289 -0
  37. package/dist/components/Annotations/AnnotationsEditor.js.map +1 -0
  38. package/dist/components/Annotations/EditAnnotationsButton.d.ts +18 -0
  39. package/dist/components/Annotations/EditAnnotationsButton.d.ts.map +1 -0
  40. package/dist/components/Annotations/EditAnnotationsButton.js +70 -0
  41. package/dist/components/Annotations/EditAnnotationsButton.js.map +1 -0
  42. package/dist/components/Dashboard/Dashboard.js +1 -1
  43. package/dist/components/Dashboard/Dashboard.js.map +1 -1
  44. package/dist/components/DashboardLinks/DashboardLinksEditor.js +1 -1
  45. package/dist/components/DashboardLinks/DashboardLinksEditor.js.map +1 -1
  46. package/dist/components/DashboardLinks/EditDashboardLinksButton.js +1 -1
  47. package/dist/components/DashboardLinks/EditDashboardLinksButton.js.map +1 -1
  48. package/dist/components/DashboardShortcuts/useDashboardShortcuts.js.map +1 -1
  49. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js +1 -1
  50. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js.map +1 -1
  51. package/dist/components/DashboardToolbar/DashboardToolbar.d.ts +2 -0
  52. package/dist/components/DashboardToolbar/DashboardToolbar.d.ts.map +1 -1
  53. package/dist/components/DashboardToolbar/DashboardToolbar.js +5 -3
  54. package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
  55. package/dist/components/Datasources/DatasourceEditor.d.ts.map +1 -1
  56. package/dist/components/Datasources/DatasourceEditor.js +1 -1
  57. package/dist/components/Datasources/DatasourceEditor.js.map +1 -1
  58. package/dist/components/Datasources/EditDatasourcesButton.js +1 -1
  59. package/dist/components/Datasources/EditDatasourcesButton.js.map +1 -1
  60. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +1 -1
  61. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js.map +1 -1
  62. package/dist/components/DownloadButton/DownloadButton.js +1 -1
  63. package/dist/components/DownloadButton/DownloadButton.js.map +1 -1
  64. package/dist/components/DownloadButton/serializeDashboard.d.ts +1 -1
  65. package/dist/components/DownloadButton/serializeDashboard.d.ts.map +1 -1
  66. package/dist/components/DownloadButton/serializeDashboard.js.map +1 -1
  67. package/dist/components/EditButton/EditButton.js +1 -1
  68. package/dist/components/EditButton/EditButton.js.map +1 -1
  69. package/dist/components/EditJsonButton/EditJsonButton.js +1 -1
  70. package/dist/components/EditJsonButton/EditJsonButton.js.map +1 -1
  71. package/dist/components/EditJsonDialog/EditJsonDialog.js +1 -1
  72. package/dist/components/EditJsonDialog/EditJsonDialog.js.map +1 -1
  73. package/dist/components/EmptyDashboard/EmptyDashboard.js +1 -1
  74. package/dist/components/EmptyDashboard/EmptyDashboard.js.map +1 -1
  75. package/dist/components/GridLayout/GridContainer.js +1 -1
  76. package/dist/components/GridLayout/GridContainer.js.map +1 -1
  77. package/dist/components/GridLayout/GridItemContent.d.ts +1 -1
  78. package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
  79. package/dist/components/GridLayout/GridItemContent.js +4 -11
  80. package/dist/components/GridLayout/GridItemContent.js.map +1 -1
  81. package/dist/components/GridLayout/GridLayout.d.ts.map +1 -1
  82. package/dist/components/GridLayout/GridLayout.js +1 -1
  83. package/dist/components/GridLayout/GridLayout.js.map +1 -1
  84. package/dist/components/GridLayout/GridTitle.js +1 -1
  85. package/dist/components/GridLayout/GridTitle.js.map +1 -1
  86. package/dist/components/GridLayout/Row.d.ts +1 -1
  87. package/dist/components/GridLayout/Row.d.ts.map +1 -1
  88. package/dist/components/GridLayout/Row.js +1 -1
  89. package/dist/components/GridLayout/Row.js.map +1 -1
  90. package/dist/components/LeaveDialog/LeaveDialog.d.ts +1 -1
  91. package/dist/components/LeaveDialog/LeaveDialog.d.ts.map +1 -1
  92. package/dist/components/LeaveDialog/LeaveDialog.js +1 -1
  93. package/dist/components/LeaveDialog/LeaveDialog.js.map +1 -1
  94. package/dist/components/LinksDisplay/LinksDisplay.js +1 -1
  95. package/dist/components/LinksDisplay/LinksDisplay.js.map +1 -1
  96. package/dist/components/Panel/Panel.d.ts +1 -1
  97. package/dist/components/Panel/Panel.d.ts.map +1 -1
  98. package/dist/components/Panel/Panel.js +5 -2
  99. package/dist/components/Panel/Panel.js.map +1 -1
  100. package/dist/components/Panel/PanelActions.js +1 -1
  101. package/dist/components/Panel/PanelActions.js.map +1 -1
  102. package/dist/components/Panel/PanelContent.js +1 -1
  103. package/dist/components/Panel/PanelContent.js.map +1 -1
  104. package/dist/components/Panel/PanelHeader.js +1 -1
  105. package/dist/components/Panel/PanelHeader.js.map +1 -1
  106. package/dist/components/Panel/PanelPluginLoader.js +1 -1
  107. package/dist/components/Panel/PanelPluginLoader.js.map +1 -1
  108. package/dist/components/Panel/useSelectionItemActions.js +1 -1
  109. package/dist/components/Panel/useSelectionItemActions.js.map +1 -1
  110. package/dist/components/PanelDrawer/PanelDrawer.js +1 -1
  111. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
  112. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +1 -1
  113. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
  114. package/dist/components/PanelDrawer/PanelEditorForm.js +3 -3
  115. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
  116. package/dist/components/PanelDrawer/PanelPreview.js +1 -1
  117. package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
  118. package/dist/components/PanelDrawer/PanelQueriesSharedControls.d.ts.map +1 -1
  119. package/dist/components/PanelDrawer/PanelQueriesSharedControls.js +5 -18
  120. package/dist/components/PanelDrawer/PanelQueriesSharedControls.js.map +1 -1
  121. package/dist/components/PanelGroupDialog/PanelGroupDialog.js +1 -1
  122. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -1
  123. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js +1 -1
  124. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js.map +1 -1
  125. package/dist/components/QuerySummaryTable/QuerySummaryTable.js +1 -1
  126. package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -1
  127. package/dist/components/QueryViewerDialog/QueryViewerDialog.js +1 -1
  128. package/dist/components/QueryViewerDialog/QueryViewerDialog.js.map +1 -1
  129. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.d.ts.map +1 -1
  130. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +22 -5
  131. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js.map +1 -1
  132. package/dist/components/Variables/EditVariablesButton.js +1 -1
  133. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  134. package/dist/components/Variables/ListVariableListBox.js +1 -1
  135. package/dist/components/Variables/ListVariableListBox.js.map +1 -1
  136. package/dist/components/Variables/Variable.js +2 -2
  137. package/dist/components/Variables/Variable.js.map +1 -1
  138. package/dist/components/Variables/VariableEditor.d.ts +1 -1
  139. package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
  140. package/dist/components/Variables/VariableEditor.js +57 -23
  141. package/dist/components/Variables/VariableEditor.js.map +1 -1
  142. package/dist/components/Variables/VariableList.d.ts.map +1 -1
  143. package/dist/components/Variables/VariableList.js +1 -1
  144. package/dist/components/Variables/VariableList.js.map +1 -1
  145. package/dist/constants/defaults.d.ts +4 -0
  146. package/dist/constants/defaults.d.ts.map +1 -0
  147. package/dist/{model/DashboardResource.js → constants/defaults.js} +3 -5
  148. package/dist/constants/defaults.js.map +1 -0
  149. package/dist/constants/index.d.ts +1 -0
  150. package/dist/constants/index.d.ts.map +1 -1
  151. package/dist/constants/index.js +1 -0
  152. package/dist/constants/index.js.map +1 -1
  153. package/dist/constants/user-interface-text.d.ts +1 -0
  154. package/dist/constants/user-interface-text.d.ts.map +1 -1
  155. package/dist/constants/user-interface-text.js +1 -0
  156. package/dist/constants/user-interface-text.js.map +1 -1
  157. package/dist/context/AnnotationProvider/AnnotationHydrationWrapper.d.ts +7 -0
  158. package/dist/context/AnnotationProvider/AnnotationHydrationWrapper.d.ts.map +1 -0
  159. package/dist/context/AnnotationProvider/AnnotationHydrationWrapper.js +48 -0
  160. package/dist/context/AnnotationProvider/AnnotationHydrationWrapper.js.map +1 -0
  161. package/dist/context/AnnotationProvider/AnnotationProvider.d.ts +40 -0
  162. package/dist/context/AnnotationProvider/AnnotationProvider.d.ts.map +1 -0
  163. package/dist/context/AnnotationProvider/AnnotationProvider.js +114 -0
  164. package/dist/context/AnnotationProvider/AnnotationProvider.js.map +1 -0
  165. package/dist/context/AnnotationProvider/index.d.ts +2 -0
  166. package/dist/context/AnnotationProvider/index.d.ts.map +1 -0
  167. package/dist/context/AnnotationProvider/index.js +15 -0
  168. package/dist/context/AnnotationProvider/index.js.map +1 -0
  169. package/dist/context/DashboardProvider/DashboardProvider.d.ts +4 -2
  170. package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
  171. package/dist/context/DashboardProvider/DashboardProvider.js +11 -4
  172. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  173. package/dist/context/DashboardProvider/common.d.ts +1 -1
  174. package/dist/context/DashboardProvider/common.d.ts.map +1 -1
  175. package/dist/context/DashboardProvider/common.js.map +1 -1
  176. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts +2 -2
  177. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts.map +1 -1
  178. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
  179. package/dist/context/DashboardProvider/delete-panel-slice.d.ts +1 -1
  180. package/dist/context/DashboardProvider/delete-panel-slice.d.ts.map +1 -1
  181. package/dist/context/DashboardProvider/delete-panel-slice.js.map +1 -1
  182. package/dist/context/DashboardProvider/duplicate-panel-slice.d.ts +1 -1
  183. package/dist/context/DashboardProvider/duplicate-panel-slice.d.ts.map +1 -1
  184. package/dist/context/DashboardProvider/duplicate-panel-slice.js.map +1 -1
  185. package/dist/context/DashboardProvider/panel-editor-slice.d.ts +2 -1
  186. package/dist/context/DashboardProvider/panel-editor-slice.d.ts.map +1 -1
  187. package/dist/context/DashboardProvider/panel-editor-slice.js.map +1 -1
  188. package/dist/context/DashboardProvider/panel-group-slice.d.ts +1 -1
  189. package/dist/context/DashboardProvider/panel-group-slice.d.ts.map +1 -1
  190. package/dist/context/DashboardProvider/panel-group-slice.js +14 -11
  191. package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -1
  192. package/dist/context/DashboardProvider/save-changes-dialog-slice.d.ts +8 -1
  193. package/dist/context/DashboardProvider/save-changes-dialog-slice.d.ts.map +1 -1
  194. package/dist/context/DashboardProvider/save-changes-dialog-slice.js.map +1 -1
  195. package/dist/context/DashboardProvider/use-save-dashboard.d.ts.map +1 -1
  196. package/dist/context/DashboardProvider/use-save-dashboard.js +13 -5
  197. package/dist/context/DashboardProvider/use-save-dashboard.js.map +1 -1
  198. package/dist/context/DashboardProvider/view-panel-slice.d.ts +1 -1
  199. package/dist/context/DashboardProvider/view-panel-slice.d.ts.map +1 -1
  200. package/dist/context/DashboardProvider/view-panel-slice.js.map +1 -1
  201. package/dist/context/DatasourceStoreProvider.d.ts +1 -2
  202. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  203. package/dist/context/DatasourceStoreProvider.js +40 -7
  204. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  205. package/dist/context/PanelEditorProvider/PanelEditorProvider.js +1 -1
  206. package/dist/context/PanelEditorProvider/PanelEditorProvider.js.map +1 -1
  207. package/dist/context/VariableProvider/VariableProvider.d.ts +3 -2
  208. package/dist/context/VariableProvider/VariableProvider.d.ts.map +1 -1
  209. package/dist/context/VariableProvider/VariableProvider.js +13 -8
  210. package/dist/context/VariableProvider/VariableProvider.js.map +1 -1
  211. package/dist/context/VariableProvider/hydrationUtils.d.ts +1 -1
  212. package/dist/context/VariableProvider/hydrationUtils.d.ts.map +1 -1
  213. package/dist/context/VariableProvider/hydrationUtils.js.map +1 -1
  214. package/dist/context/VariableProvider/utils.d.ts +1 -1
  215. package/dist/context/VariableProvider/utils.d.ts.map +1 -1
  216. package/dist/context/VariableProvider/utils.js.map +1 -1
  217. package/dist/context/index.d.ts +1 -0
  218. package/dist/context/index.d.ts.map +1 -1
  219. package/dist/context/index.js +1 -0
  220. package/dist/context/index.js.map +1 -1
  221. package/dist/context/useDashboard.d.ts +2 -3
  222. package/dist/context/useDashboard.d.ts.map +1 -1
  223. package/dist/context/useDashboard.js +11 -1
  224. package/dist/context/useDashboard.js.map +1 -1
  225. package/dist/index.d.ts +1 -0
  226. package/dist/index.d.ts.map +1 -1
  227. package/dist/index.js +1 -0
  228. package/dist/index.js.map +1 -1
  229. package/dist/keyboard-shortcuts/PanelFocusProvider.js +1 -1
  230. package/dist/keyboard-shortcuts/PanelFocusProvider.js.map +1 -1
  231. package/dist/keyboard-shortcuts/index.d.ts +1 -1
  232. package/dist/keyboard-shortcuts/index.d.ts.map +1 -1
  233. package/dist/keyboard-shortcuts/index.js +1 -1
  234. package/dist/keyboard-shortcuts/index.js.map +1 -1
  235. package/dist/keyboard-shortcuts/utils.d.ts +8 -0
  236. package/dist/keyboard-shortcuts/utils.d.ts.map +1 -1
  237. package/dist/keyboard-shortcuts/utils.js +13 -0
  238. package/dist/keyboard-shortcuts/utils.js.map +1 -1
  239. package/dist/model/PanelGroupDefinition.d.ts +59 -0
  240. package/dist/model/PanelGroupDefinition.d.ts.map +1 -0
  241. package/dist/model/PanelGroupDefinition.js +19 -0
  242. package/dist/model/PanelGroupDefinition.js.map +1 -0
  243. package/dist/model/VariableDefinition.d.ts +50 -0
  244. package/dist/model/VariableDefinition.d.ts.map +1 -0
  245. package/dist/model/VariableDefinition.js +20 -0
  246. package/dist/model/VariableDefinition.js.map +1 -0
  247. package/dist/model/index.d.ts +2 -1
  248. package/dist/model/index.d.ts.map +1 -1
  249. package/dist/model/index.js +2 -1
  250. package/dist/model/index.js.map +1 -1
  251. package/dist/test/dashboard-provider.d.ts +1 -1
  252. package/dist/test/dashboard-provider.d.ts.map +1 -1
  253. package/dist/test/dashboard-provider.js.map +1 -1
  254. package/dist/test/datasource-provider.d.ts +1 -1
  255. package/dist/test/datasource-provider.d.ts.map +1 -1
  256. package/dist/test/datasource-provider.js.map +1 -1
  257. package/dist/test/render.js +1 -1
  258. package/dist/test/render.js.map +1 -1
  259. package/dist/test/testDashboard.d.ts +1 -1
  260. package/dist/test/testDashboard.d.ts.map +1 -1
  261. package/dist/test/testDashboard.js.map +1 -1
  262. package/dist/utils/panelUtils.d.ts +1 -1
  263. package/dist/utils/panelUtils.d.ts.map +1 -1
  264. package/dist/utils/panelUtils.js.map +1 -1
  265. package/dist/views/ViewDashboard/DashboardApp.d.ts +3 -1
  266. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  267. package/dist/views/ViewDashboard/DashboardApp.js +11 -3
  268. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  269. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  270. package/dist/views/ViewDashboard/ViewDashboard.js +33 -28
  271. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  272. package/package.json +9 -10
  273. package/dist/model/DashboardResource.d.ts +0 -15
  274. package/dist/model/DashboardResource.d.ts.map +0 -1
  275. package/dist/model/DashboardResource.js.map +0 -1
  276. /package/dist/cjs/model/{DashboardResource.js → VariableDefinition.js} +0 -0
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  // Copyright The Perses Authors
2
3
  // Licensed under the Apache License, Version 2.0 (the "License");
3
4
  // you may not use this file except in compliance with the License.
@@ -10,8 +11,7 @@
10
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
12
  // See the License for the specific language governing permissions and
12
13
  // limitations under the License.
13
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
- import { useState } from 'react';
14
+ import { useMemo, useState } from 'react';
15
15
  import { Box } from '@mui/material';
16
16
  import { ChartsProvider, ErrorAlert, ErrorBoundary, useChartsTheme } from '@perses-dev/components';
17
17
  import { useDatasourceStore } from '@perses-dev/plugin-system';
@@ -26,7 +26,7 @@ export const DashboardApp = (props)=>{
26
26
  });
27
27
  };
28
28
  const DashboardAppContent = (props)=>{
29
- const { dashboardResource, emptyDashboardProps, isReadonly, isVariableEnabled, isDatasourceEnabled, disableShortcuts, isCreating, isInitialVariableSticky, isLeavingConfirmDialogEnabled, dashboardTitleComponent, onSave, onDiscard } = props;
29
+ const { dashboardResource, emptyDashboardProps, isReadonly, isVariableEnabled, isAnnotationEnabled, isDatasourceEnabled, disableShortcuts, isCreating, isInitialVariableSticky, isLeavingConfirmDialogEnabled, dashboardTitleComponent, userPreferenceTimezone, onSave, onDiscard } = props;
30
30
  const chartsTheme = useChartsTheme();
31
31
  const { isEditMode, setEditMode } = useEditMode();
32
32
  const { dashboard, setDashboard } = useDashboard();
@@ -71,6 +71,12 @@ const DashboardAppContent = (props)=>{
71
71
  onCancelButtonClick,
72
72
  disabled: disableShortcuts
73
73
  });
74
+ const toolBarTimezone = useMemo(()=>{
75
+ return dashboardResource.spec.timezone || userPreferenceTimezone || 'local';
76
+ }, [
77
+ dashboardResource.spec,
78
+ userPreferenceTimezone
79
+ ]);
74
80
  return /*#__PURE__*/ _jsxs(Box, {
75
81
  sx: {
76
82
  flexGrow: 1,
@@ -82,11 +88,13 @@ const DashboardAppContent = (props)=>{
82
88
  children: [
83
89
  /*#__PURE__*/ _jsx(DashboardToolbar, {
84
90
  dashboardName: dashboardResource.metadata.name,
91
+ timezone: toolBarTimezone,
85
92
  dashboardTitleComponent: dashboardTitleComponent,
86
93
  initialVariableIsSticky: isInitialVariableSticky,
87
94
  onSave: onSave,
88
95
  isReadonly: isReadonly,
89
96
  isVariableEnabled: isVariableEnabled,
97
+ isAnnotationEnabled: isAnnotationEnabled,
90
98
  isDatasourceEnabled: isDatasourceEnabled,
91
99
  onEditButtonClick: onEditButtonClick,
92
100
  onCancelButtonClick: onCancelButtonClick
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/ViewDashboard/DashboardApp.tsx"],"sourcesContent":["// Copyright 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 { ReactElement, ReactNode, useState } from 'react';\nimport { Box } from '@mui/material';\nimport { ChartsProvider, ErrorAlert, ErrorBoundary, useChartsTheme } from '@perses-dev/components';\nimport { useDatasourceStore } from '@perses-dev/plugin-system';\nimport { DashboardSpec } from '@perses-dev/spec';\nimport {\n PanelDrawer,\n Dashboard,\n useDashboardShortcuts,\n PanelGroupDialog,\n DeletePanelGroupDialog,\n DashboardDiscardChangesConfirmationDialog,\n DashboardToolbar,\n DeletePanelDialog,\n EmptyDashboardProps,\n EditJsonDialog,\n SaveChangesConfirmationDialog,\n LeaveDialog,\n} from '../../components';\nimport { OnSaveDashboard, useDashboard, useDiscardChangesConfirmationDialog, useEditMode } from '../../context';\nimport { PanelFocusProvider } from '../../keyboard-shortcuts';\nimport { DashboardResource } from '../../model';\n\nexport interface DashboardAppProps {\n dashboardResource: DashboardResource;\n emptyDashboardProps?: Partial<EmptyDashboardProps>;\n isReadonly: boolean;\n isVariableEnabled: boolean;\n isDatasourceEnabled: boolean;\n disableShortcuts?: boolean;\n isCreating?: boolean;\n isInitialVariableSticky?: boolean;\n // If true, browser confirmation dialog will be shown when navigating away with unsaved changes (closing tab, ...).\n isLeavingConfirmDialogEnabled?: boolean;\n dashboardTitleComponent?: ReactNode;\n onSave?: OnSaveDashboard;\n onDiscard?: (name: string, spec: DashboardSpec) => void;\n}\n\nexport const DashboardApp = (props: DashboardAppProps): ReactElement => {\n return (\n <PanelFocusProvider>\n <DashboardAppContent {...props} />\n </PanelFocusProvider>\n );\n};\n\nconst DashboardAppContent = (props: DashboardAppProps): ReactElement => {\n const {\n dashboardResource,\n emptyDashboardProps,\n isReadonly,\n isVariableEnabled,\n isDatasourceEnabled,\n disableShortcuts,\n isCreating,\n isInitialVariableSticky,\n isLeavingConfirmDialogEnabled,\n dashboardTitleComponent,\n onSave,\n onDiscard,\n } = props;\n\n const chartsTheme = useChartsTheme();\n\n const { isEditMode, setEditMode } = useEditMode();\n\n const { dashboard, setDashboard } = useDashboard();\n const [originalDashboard, setOriginalDashboard] = useState<DashboardResource | undefined>(undefined);\n\n const { setSavedDatasources } = useDatasourceStore();\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n\n const handleDiscardChanges = (): void => {\n // Reset to the original spec and exit edit mode\n if (originalDashboard) {\n setDashboard(originalDashboard);\n }\n setEditMode(false);\n closeDiscardChangesConfirmationDialog();\n if (onDiscard) {\n onDiscard(dashboard.metadata.name, dashboard.spec);\n }\n };\n\n const onEditButtonClick = (): void => {\n setEditMode(true);\n setOriginalDashboard(dashboard);\n setSavedDatasources(dashboard.spec.datasources ?? {});\n };\n\n const onCancelButtonClick = (): void => {\n // check if dashboard has been modified\n if (JSON.stringify(dashboard) === JSON.stringify(originalDashboard)) {\n setEditMode(false);\n } else {\n openDiscardChangesConfirmationDialog({\n onDiscardChanges: () => {\n handleDiscardChanges();\n },\n onCancel: () => {\n closeDiscardChangesConfirmationDialog();\n },\n });\n }\n };\n\n useDashboardShortcuts({\n onSave,\n isReadonly,\n onEditButtonClick,\n onCancelButtonClick,\n disabled: disableShortcuts,\n });\n\n return (\n <Box\n sx={{\n flexGrow: 1,\n overflowX: 'hidden',\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <DashboardToolbar\n dashboardName={dashboardResource.metadata.name}\n dashboardTitleComponent={dashboardTitleComponent}\n initialVariableIsSticky={isInitialVariableSticky}\n onSave={onSave}\n isReadonly={isReadonly}\n isVariableEnabled={isVariableEnabled}\n isDatasourceEnabled={isDatasourceEnabled}\n onEditButtonClick={onEditButtonClick}\n onCancelButtonClick={onCancelButtonClick}\n />\n <Box sx={{ paddingTop: 2, paddingX: 2, height: '100%' }}>\n <ErrorBoundary FallbackComponent={ErrorAlert}>\n <Dashboard\n emptyDashboardProps={{\n onEditButtonClick,\n ...emptyDashboardProps,\n }}\n />\n </ErrorBoundary>\n <ChartsProvider chartsTheme={chartsTheme} enablePinning={false} enableSyncGrouping={false}>\n <PanelDrawer />\n </ChartsProvider>\n <PanelGroupDialog />\n <DeletePanelGroupDialog />\n <DeletePanelDialog />\n <DashboardDiscardChangesConfirmationDialog />\n <EditJsonDialog isReadonly={!isEditMode} disableMetadataEdition={!isCreating} />\n <SaveChangesConfirmationDialog />\n {isLeavingConfirmDialogEnabled && isEditMode && (\n <LeaveDialog original={originalDashboard} current={dashboard} />\n )}\n </Box>\n </Box>\n );\n};\n"],"names":["useState","Box","ChartsProvider","ErrorAlert","ErrorBoundary","useChartsTheme","useDatasourceStore","PanelDrawer","Dashboard","useDashboardShortcuts","PanelGroupDialog","DeletePanelGroupDialog","DashboardDiscardChangesConfirmationDialog","DashboardToolbar","DeletePanelDialog","EditJsonDialog","SaveChangesConfirmationDialog","LeaveDialog","useDashboard","useDiscardChangesConfirmationDialog","useEditMode","PanelFocusProvider","DashboardApp","props","DashboardAppContent","dashboardResource","emptyDashboardProps","isReadonly","isVariableEnabled","isDatasourceEnabled","disableShortcuts","isCreating","isInitialVariableSticky","isLeavingConfirmDialogEnabled","dashboardTitleComponent","onSave","onDiscard","chartsTheme","isEditMode","setEditMode","dashboard","setDashboard","originalDashboard","setOriginalDashboard","undefined","setSavedDatasources","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleDiscardChanges","metadata","name","spec","onEditButtonClick","datasources","onCancelButtonClick","JSON","stringify","onDiscardChanges","onCancel","disabled","sx","flexGrow","overflowX","overflowY","display","flexDirection","dashboardName","initialVariableIsSticky","paddingTop","paddingX","height","FallbackComponent","enablePinning","enableSyncGrouping","disableMetadataEdition","original","current"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/ViewDashboard/DashboardApp.tsx"],"sourcesContent":["// Copyright 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 { ReactElement, ReactNode, useMemo, useState } from 'react';\nimport { Box } from '@mui/material';\nimport { ChartsProvider, ErrorAlert, ErrorBoundary, useChartsTheme } from '@perses-dev/components';\nimport { useDatasourceStore } from '@perses-dev/plugin-system';\nimport { DashboardSpec } from '@perses-dev/spec';\nimport { DashboardResource } from '@perses-dev/client';\nimport {\n PanelDrawer,\n Dashboard,\n useDashboardShortcuts,\n PanelGroupDialog,\n DeletePanelGroupDialog,\n DashboardDiscardChangesConfirmationDialog,\n DashboardToolbar,\n DeletePanelDialog,\n EmptyDashboardProps,\n EditJsonDialog,\n SaveChangesConfirmationDialog,\n LeaveDialog,\n} from '../../components';\nimport { OnSaveDashboard, useDashboard, useDiscardChangesConfirmationDialog, useEditMode } from '../../context';\nimport { PanelFocusProvider } from '../../keyboard-shortcuts';\n\nexport interface DashboardAppProps {\n dashboardResource: DashboardResource;\n emptyDashboardProps?: Partial<EmptyDashboardProps>;\n isReadonly: boolean;\n isVariableEnabled: boolean;\n isAnnotationEnabled: boolean;\n isDatasourceEnabled: boolean;\n disableShortcuts?: boolean;\n isCreating?: boolean;\n isInitialVariableSticky?: boolean;\n // If true, browser confirmation dialog will be shown when navigating away with unsaved changes (closing tab, ...).\n isLeavingConfirmDialogEnabled?: boolean;\n dashboardTitleComponent?: ReactNode;\n userPreferenceTimezone?: DashboardSpec['timezone'];\n onSave?: OnSaveDashboard;\n onDiscard?: (name: string, spec: DashboardSpec) => void;\n}\n\nexport const DashboardApp = (props: DashboardAppProps): ReactElement => {\n return (\n <PanelFocusProvider>\n <DashboardAppContent {...props} />\n </PanelFocusProvider>\n );\n};\n\nconst DashboardAppContent = (props: DashboardAppProps): ReactElement => {\n const {\n dashboardResource,\n emptyDashboardProps,\n isReadonly,\n isVariableEnabled,\n isAnnotationEnabled,\n isDatasourceEnabled,\n disableShortcuts,\n isCreating,\n isInitialVariableSticky,\n isLeavingConfirmDialogEnabled,\n dashboardTitleComponent,\n userPreferenceTimezone,\n onSave,\n onDiscard,\n } = props;\n\n const chartsTheme = useChartsTheme();\n\n const { isEditMode, setEditMode } = useEditMode();\n\n const { dashboard, setDashboard } = useDashboard();\n const [originalDashboard, setOriginalDashboard] = useState<DashboardResource | undefined>(undefined);\n\n const { setSavedDatasources } = useDatasourceStore();\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n\n const handleDiscardChanges = (): void => {\n // Reset to the original spec and exit edit mode\n if (originalDashboard) {\n setDashboard(originalDashboard);\n }\n setEditMode(false);\n closeDiscardChangesConfirmationDialog();\n if (onDiscard) {\n onDiscard(dashboard.metadata.name, dashboard.spec);\n }\n };\n\n const onEditButtonClick = (): void => {\n setEditMode(true);\n setOriginalDashboard(dashboard);\n setSavedDatasources(dashboard.spec.datasources ?? {});\n };\n\n const onCancelButtonClick = (): void => {\n // check if dashboard has been modified\n if (JSON.stringify(dashboard) === JSON.stringify(originalDashboard)) {\n setEditMode(false);\n } else {\n openDiscardChangesConfirmationDialog({\n onDiscardChanges: () => {\n handleDiscardChanges();\n },\n onCancel: () => {\n closeDiscardChangesConfirmationDialog();\n },\n });\n }\n };\n\n useDashboardShortcuts({\n onSave,\n isReadonly,\n onEditButtonClick,\n onCancelButtonClick,\n disabled: disableShortcuts,\n });\n\n const toolBarTimezone = useMemo((): string => {\n return dashboardResource.spec.timezone || userPreferenceTimezone || 'local';\n }, [dashboardResource.spec, userPreferenceTimezone]);\n\n return (\n <Box\n sx={{\n flexGrow: 1,\n overflowX: 'hidden',\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <DashboardToolbar\n dashboardName={dashboardResource.metadata.name}\n timezone={toolBarTimezone}\n dashboardTitleComponent={dashboardTitleComponent}\n initialVariableIsSticky={isInitialVariableSticky}\n onSave={onSave}\n isReadonly={isReadonly}\n isVariableEnabled={isVariableEnabled}\n isAnnotationEnabled={isAnnotationEnabled}\n isDatasourceEnabled={isDatasourceEnabled}\n onEditButtonClick={onEditButtonClick}\n onCancelButtonClick={onCancelButtonClick}\n />\n <Box sx={{ paddingTop: 2, paddingX: 2, height: '100%' }}>\n <ErrorBoundary FallbackComponent={ErrorAlert}>\n <Dashboard\n emptyDashboardProps={{\n onEditButtonClick,\n ...emptyDashboardProps,\n }}\n />\n </ErrorBoundary>\n <ChartsProvider chartsTheme={chartsTheme} enablePinning={false} enableSyncGrouping={false}>\n <PanelDrawer />\n </ChartsProvider>\n <PanelGroupDialog />\n <DeletePanelGroupDialog />\n <DeletePanelDialog />\n <DashboardDiscardChangesConfirmationDialog />\n <EditJsonDialog isReadonly={!isEditMode} disableMetadataEdition={!isCreating} />\n <SaveChangesConfirmationDialog />\n {isLeavingConfirmDialogEnabled && isEditMode && (\n <LeaveDialog original={originalDashboard} current={dashboard} />\n )}\n </Box>\n </Box>\n );\n};\n"],"names":["useMemo","useState","Box","ChartsProvider","ErrorAlert","ErrorBoundary","useChartsTheme","useDatasourceStore","PanelDrawer","Dashboard","useDashboardShortcuts","PanelGroupDialog","DeletePanelGroupDialog","DashboardDiscardChangesConfirmationDialog","DashboardToolbar","DeletePanelDialog","EditJsonDialog","SaveChangesConfirmationDialog","LeaveDialog","useDashboard","useDiscardChangesConfirmationDialog","useEditMode","PanelFocusProvider","DashboardApp","props","DashboardAppContent","dashboardResource","emptyDashboardProps","isReadonly","isVariableEnabled","isAnnotationEnabled","isDatasourceEnabled","disableShortcuts","isCreating","isInitialVariableSticky","isLeavingConfirmDialogEnabled","dashboardTitleComponent","userPreferenceTimezone","onSave","onDiscard","chartsTheme","isEditMode","setEditMode","dashboard","setDashboard","originalDashboard","setOriginalDashboard","undefined","setSavedDatasources","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleDiscardChanges","metadata","name","spec","onEditButtonClick","datasources","onCancelButtonClick","JSON","stringify","onDiscardChanges","onCancel","disabled","toolBarTimezone","timezone","sx","flexGrow","overflowX","overflowY","display","flexDirection","dashboardName","initialVariableIsSticky","paddingTop","paddingX","height","FallbackComponent","enablePinning","enableSyncGrouping","disableMetadataEdition","original","current"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewDashboard.d.ts","sourceRoot":"","sources":["../../../src/views/ViewDashboard/ViewDashboard.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAO,QAAQ,EAAE,MAAM,eAAe,CAAC;AAU9C,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAC9C,OAAO,EACL,4BAA4B,EAE5B,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,iBAAiB;IACvF,aAAa,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAC;IAC7D,2BAA2B,CAAC,EAAE,qBAAqB,CAAC,6BAA6B,CAAC,CAAC;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAkHrE"}
1
+ {"version":3,"file":"ViewDashboard.d.ts","sourceRoot":"","sources":["../../../src/views/ViewDashboard/ViewDashboard.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAO,QAAQ,EAAE,MAAM,eAAe,CAAC;AAS9C,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAE9C,OAAO,EACL,4BAA4B,EAE5B,qBAAqB,EAGtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,iBAAiB;IACvF,aAAa,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAC;IAC7D,2BAA2B,CAAC,EAAE,qBAAqB,CAAC,6BAA6B,CAAC,CAAC;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAwHrE"}
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  // Copyright The Perses Authors
2
3
  // Licensed under the Apache License, Version 2.0 (the "License");
3
4
  // you may not use this file except in compliance with the License.
@@ -10,19 +11,18 @@
10
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
12
  // See the License for the specific language governing permissions and
12
13
  // limitations under the License.
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
14
  import { Box } from '@mui/material';
15
- import { DEFAULT_DASHBOARD_DURATION, DEFAULT_REFRESH_INTERVAL } from '@perses-dev/core'; // TODO
16
15
  import { ErrorBoundary, ErrorAlert, combineSx } from '@perses-dev/components';
17
16
  import { TimeRangeProviderWithQueryParams, useInitialRefreshInterval, useInitialTimeRange, usePluginBuiltinVariableDefinitions } from '@perses-dev/plugin-system';
18
17
  import { useMemo } from 'react';
19
- import { DatasourceStoreProvider, VariableProviderWithQueryParams } from '../../context';
18
+ import { DEFAULT_DASHBOARD_DURATION, DEFAULT_REFRESH_INTERVAL } from '../../constants';
19
+ import { DatasourceStoreProvider, VariableProviderWithQueryParams, AnnotationProvider } from '../../context';
20
20
  import { DashboardProviderWithQueryParams } from '../../context/DashboardProvider/DashboardProviderWithQueryParams';
21
21
  import { DashboardApp } from './DashboardApp';
22
22
  /**
23
23
  * The View for displaying a Dashboard, along with the UI for selecting variable values.
24
24
  */ export function ViewDashboard(props) {
25
- const { dashboardResource, datasourceApi, externalVariableDefinitions, emptyDashboardProps, isReadonly, isVariableEnabled, isDatasourceEnabled, disableShortcuts, isEditing, isCreating, isInitialVariableSticky, isLeavingConfirmDialogEnabled, dashboardTitleComponent, onSave, onDiscard, sx, ...others } = props;
25
+ const { dashboardResource, datasourceApi, externalVariableDefinitions, emptyDashboardProps, isReadonly, isVariableEnabled, isAnnotationEnabled, isDatasourceEnabled, disableShortcuts, isEditing, isCreating, isInitialVariableSticky, isLeavingConfirmDialogEnabled, dashboardTitleComponent, onSave, onDiscard, sx, userPreferenceTimezone, ...others } = props;
26
26
  const { spec } = dashboardResource;
27
27
  const dashboardDuration = spec.duration ?? DEFAULT_DASHBOARD_DURATION;
28
28
  const dashboardRefreshInterval = spec.refreshInterval ?? DEFAULT_REFRESH_INTERVAL;
@@ -82,30 +82,35 @@ import { DashboardApp } from './DashboardApp';
82
82
  initialVariableDefinitions: spec.variables,
83
83
  externalVariableDefinitions: externalVariableDefinitions,
84
84
  builtinVariableDefinitions: builtinVariables,
85
- children: /*#__PURE__*/ _jsx(Box, {
86
- sx: combineSx({
87
- display: 'flex',
88
- width: '100%',
89
- height: '100%',
90
- position: 'relative',
91
- overflow: 'hidden'
92
- }, sx),
93
- ...others,
94
- children: /*#__PURE__*/ _jsx(ErrorBoundary, {
95
- FallbackComponent: ErrorAlert,
96
- children: /*#__PURE__*/ _jsx(DashboardApp, {
97
- dashboardResource: dashboardResource,
98
- emptyDashboardProps: emptyDashboardProps,
99
- isReadonly: isReadonly,
100
- isVariableEnabled: isVariableEnabled,
101
- isDatasourceEnabled: isDatasourceEnabled,
102
- disableShortcuts: disableShortcuts,
103
- isCreating: isCreating,
104
- isInitialVariableSticky: isInitialVariableSticky,
105
- isLeavingConfirmDialogEnabled: isLeavingConfirmDialogEnabled,
106
- dashboardTitleComponent: dashboardTitleComponent,
107
- onSave: onSave,
108
- onDiscard: onDiscard
85
+ children: /*#__PURE__*/ _jsx(AnnotationProvider, {
86
+ initialAnnotationSpecs: spec.annotations ?? [],
87
+ children: /*#__PURE__*/ _jsx(Box, {
88
+ sx: combineSx({
89
+ display: 'flex',
90
+ width: '100%',
91
+ height: '100%',
92
+ position: 'relative',
93
+ overflow: 'hidden'
94
+ }, sx),
95
+ ...others,
96
+ children: /*#__PURE__*/ _jsx(ErrorBoundary, {
97
+ FallbackComponent: ErrorAlert,
98
+ children: /*#__PURE__*/ _jsx(DashboardApp, {
99
+ dashboardResource: dashboardResource,
100
+ emptyDashboardProps: emptyDashboardProps,
101
+ isReadonly: isReadonly,
102
+ isVariableEnabled: isVariableEnabled,
103
+ isAnnotationEnabled: isAnnotationEnabled,
104
+ isDatasourceEnabled: isDatasourceEnabled,
105
+ disableShortcuts: disableShortcuts,
106
+ isCreating: isCreating,
107
+ isInitialVariableSticky: isInitialVariableSticky,
108
+ isLeavingConfirmDialogEnabled: isLeavingConfirmDialogEnabled,
109
+ dashboardTitleComponent: dashboardTitleComponent,
110
+ onSave: onSave,
111
+ onDiscard: onDiscard,
112
+ userPreferenceTimezone: userPreferenceTimezone
113
+ })
109
114
  })
110
115
  })
111
116
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/ViewDashboard/ViewDashboard.tsx"],"sourcesContent":["// Copyright 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, BoxProps } from '@mui/material';\nimport { DEFAULT_DASHBOARD_DURATION, DEFAULT_REFRESH_INTERVAL } from '@perses-dev/core'; // TODO\nimport { BuiltinVariableDefinition } from '@perses-dev/spec';\nimport { ErrorBoundary, ErrorAlert, combineSx } from '@perses-dev/components';\nimport {\n TimeRangeProviderWithQueryParams,\n useInitialRefreshInterval,\n useInitialTimeRange,\n usePluginBuiltinVariableDefinitions,\n} from '@perses-dev/plugin-system';\nimport { ReactElement, useMemo } from 'react';\nimport {\n DatasourceStoreProviderProps,\n DatasourceStoreProvider,\n VariableProviderProps,\n VariableProviderWithQueryParams,\n} from '../../context';\nimport { DashboardProviderWithQueryParams } from '../../context/DashboardProvider/DashboardProviderWithQueryParams';\nimport { DashboardApp, DashboardAppProps } from './DashboardApp';\n\nexport interface ViewDashboardProps extends Omit<BoxProps, 'children'>, DashboardAppProps {\n datasourceApi: DatasourceStoreProviderProps['datasourceApi'];\n externalVariableDefinitions?: VariableProviderProps['externalVariableDefinitions'];\n isEditing?: boolean;\n isCreating?: boolean;\n}\n\n/**\n * The View for displaying a Dashboard, along with the UI for selecting variable values.\n */\nexport function ViewDashboard(props: ViewDashboardProps): ReactElement {\n const {\n dashboardResource,\n datasourceApi,\n externalVariableDefinitions,\n emptyDashboardProps,\n isReadonly,\n isVariableEnabled,\n isDatasourceEnabled,\n disableShortcuts,\n isEditing,\n isCreating,\n isInitialVariableSticky,\n isLeavingConfirmDialogEnabled,\n dashboardTitleComponent,\n onSave,\n onDiscard,\n sx,\n ...others\n } = props;\n const { spec } = dashboardResource;\n const dashboardDuration = spec.duration ?? DEFAULT_DASHBOARD_DURATION;\n const dashboardRefreshInterval = spec.refreshInterval ?? DEFAULT_REFRESH_INTERVAL;\n const initialTimeRange = useInitialTimeRange(dashboardDuration);\n const initialRefreshInterval = useInitialRefreshInterval(dashboardRefreshInterval);\n const { data } = usePluginBuiltinVariableDefinitions();\n\n const builtinVariables = useMemo(() => {\n const result = [\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__dashboard',\n value: () => dashboardResource.metadata.name,\n source: 'Dashboard',\n display: {\n name: '__dashboard',\n description: 'The name of the current dashboard',\n hidden: true,\n },\n },\n } as BuiltinVariableDefinition,\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__project',\n value: () => dashboardResource.metadata.project,\n source: 'Dashboard',\n display: {\n name: '__project',\n description: 'The name of the current dashboard project',\n hidden: true,\n },\n },\n } as BuiltinVariableDefinition,\n ];\n if (data) {\n data.forEach((def: BuiltinVariableDefinition) => result.push(def));\n }\n return result;\n }, [dashboardResource.metadata.name, dashboardResource.metadata.project, data]);\n\n return (\n <DatasourceStoreProvider dashboardResource={dashboardResource} datasourceApi={datasourceApi}>\n <DashboardProviderWithQueryParams\n initialState={{\n isEditMode: !!isEditing,\n dashboardResource,\n }}\n >\n <TimeRangeProviderWithQueryParams\n initialTimeRange={initialTimeRange}\n initialRefreshInterval={initialRefreshInterval}\n >\n <VariableProviderWithQueryParams\n initialVariableDefinitions={spec.variables}\n externalVariableDefinitions={externalVariableDefinitions}\n builtinVariableDefinitions={builtinVariables}\n >\n <Box\n sx={combineSx(\n {\n display: 'flex',\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n },\n sx\n )}\n {...others}\n >\n <ErrorBoundary FallbackComponent={ErrorAlert}>\n <DashboardApp\n dashboardResource={dashboardResource}\n emptyDashboardProps={emptyDashboardProps}\n isReadonly={isReadonly}\n isVariableEnabled={isVariableEnabled}\n isDatasourceEnabled={isDatasourceEnabled}\n disableShortcuts={disableShortcuts}\n isCreating={isCreating}\n isInitialVariableSticky={isInitialVariableSticky}\n isLeavingConfirmDialogEnabled={isLeavingConfirmDialogEnabled}\n dashboardTitleComponent={dashboardTitleComponent}\n onSave={onSave}\n onDiscard={onDiscard}\n />\n </ErrorBoundary>\n </Box>\n </VariableProviderWithQueryParams>\n </TimeRangeProviderWithQueryParams>\n </DashboardProviderWithQueryParams>\n </DatasourceStoreProvider>\n );\n}\n"],"names":["Box","DEFAULT_DASHBOARD_DURATION","DEFAULT_REFRESH_INTERVAL","ErrorBoundary","ErrorAlert","combineSx","TimeRangeProviderWithQueryParams","useInitialRefreshInterval","useInitialTimeRange","usePluginBuiltinVariableDefinitions","useMemo","DatasourceStoreProvider","VariableProviderWithQueryParams","DashboardProviderWithQueryParams","DashboardApp","ViewDashboard","props","dashboardResource","datasourceApi","externalVariableDefinitions","emptyDashboardProps","isReadonly","isVariableEnabled","isDatasourceEnabled","disableShortcuts","isEditing","isCreating","isInitialVariableSticky","isLeavingConfirmDialogEnabled","dashboardTitleComponent","onSave","onDiscard","sx","others","spec","dashboardDuration","duration","dashboardRefreshInterval","refreshInterval","initialTimeRange","initialRefreshInterval","data","builtinVariables","result","kind","name","value","metadata","source","display","description","hidden","project","forEach","def","push","initialState","isEditMode","initialVariableDefinitions","variables","builtinVariableDefinitions","width","height","position","overflow","FallbackComponent"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/ViewDashboard/ViewDashboard.tsx"],"sourcesContent":["// Copyright 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, BoxProps } from '@mui/material';\nimport { BuiltinVariableDefinition } from '@perses-dev/spec';\nimport { ErrorBoundary, ErrorAlert, combineSx } from '@perses-dev/components';\nimport {\n TimeRangeProviderWithQueryParams,\n useInitialRefreshInterval,\n useInitialTimeRange,\n usePluginBuiltinVariableDefinitions,\n} from '@perses-dev/plugin-system';\nimport { ReactElement, useMemo } from 'react';\nimport { DEFAULT_DASHBOARD_DURATION, DEFAULT_REFRESH_INTERVAL } from '../../constants';\nimport {\n DatasourceStoreProviderProps,\n DatasourceStoreProvider,\n VariableProviderProps,\n VariableProviderWithQueryParams,\n AnnotationProvider,\n} from '../../context';\nimport { DashboardProviderWithQueryParams } from '../../context/DashboardProvider/DashboardProviderWithQueryParams';\nimport { DashboardApp, DashboardAppProps } from './DashboardApp';\n\nexport interface ViewDashboardProps extends Omit<BoxProps, 'children'>, DashboardAppProps {\n datasourceApi: DatasourceStoreProviderProps['datasourceApi'];\n externalVariableDefinitions?: VariableProviderProps['externalVariableDefinitions'];\n isEditing?: boolean;\n isCreating?: boolean;\n}\n\n/**\n * The View for displaying a Dashboard, along with the UI for selecting variable values.\n */\nexport function ViewDashboard(props: ViewDashboardProps): ReactElement {\n const {\n dashboardResource,\n datasourceApi,\n externalVariableDefinitions,\n emptyDashboardProps,\n isReadonly,\n isVariableEnabled,\n isAnnotationEnabled,\n isDatasourceEnabled,\n disableShortcuts,\n isEditing,\n isCreating,\n isInitialVariableSticky,\n isLeavingConfirmDialogEnabled,\n dashboardTitleComponent,\n onSave,\n onDiscard,\n sx,\n userPreferenceTimezone,\n ...others\n } = props;\n const { spec } = dashboardResource;\n const dashboardDuration = spec.duration ?? DEFAULT_DASHBOARD_DURATION;\n const dashboardRefreshInterval = spec.refreshInterval ?? DEFAULT_REFRESH_INTERVAL;\n const initialTimeRange = useInitialTimeRange(dashboardDuration);\n const initialRefreshInterval = useInitialRefreshInterval(dashboardRefreshInterval);\n const { data } = usePluginBuiltinVariableDefinitions();\n\n const builtinVariables = useMemo(() => {\n const result = [\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__dashboard',\n value: () => dashboardResource.metadata.name,\n source: 'Dashboard',\n display: {\n name: '__dashboard',\n description: 'The name of the current dashboard',\n hidden: true,\n },\n },\n } as BuiltinVariableDefinition,\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__project',\n value: () => dashboardResource.metadata.project,\n source: 'Dashboard',\n display: {\n name: '__project',\n description: 'The name of the current dashboard project',\n hidden: true,\n },\n },\n } as BuiltinVariableDefinition,\n ];\n if (data) {\n data.forEach((def: BuiltinVariableDefinition) => result.push(def));\n }\n return result;\n }, [dashboardResource.metadata.name, dashboardResource.metadata.project, data]);\n\n return (\n <DatasourceStoreProvider dashboardResource={dashboardResource} datasourceApi={datasourceApi}>\n <DashboardProviderWithQueryParams\n initialState={{\n isEditMode: !!isEditing,\n dashboardResource,\n }}\n >\n <TimeRangeProviderWithQueryParams\n initialTimeRange={initialTimeRange}\n initialRefreshInterval={initialRefreshInterval}\n >\n <VariableProviderWithQueryParams\n initialVariableDefinitions={spec.variables}\n externalVariableDefinitions={externalVariableDefinitions}\n builtinVariableDefinitions={builtinVariables}\n >\n <AnnotationProvider initialAnnotationSpecs={spec.annotations ?? []}>\n <Box\n sx={combineSx(\n {\n display: 'flex',\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n },\n sx\n )}\n {...others}\n >\n <ErrorBoundary FallbackComponent={ErrorAlert}>\n <DashboardApp\n dashboardResource={dashboardResource}\n emptyDashboardProps={emptyDashboardProps}\n isReadonly={isReadonly}\n isVariableEnabled={isVariableEnabled}\n isAnnotationEnabled={isAnnotationEnabled}\n isDatasourceEnabled={isDatasourceEnabled}\n disableShortcuts={disableShortcuts}\n isCreating={isCreating}\n isInitialVariableSticky={isInitialVariableSticky}\n isLeavingConfirmDialogEnabled={isLeavingConfirmDialogEnabled}\n dashboardTitleComponent={dashboardTitleComponent}\n onSave={onSave}\n onDiscard={onDiscard}\n userPreferenceTimezone={userPreferenceTimezone}\n />\n </ErrorBoundary>\n </Box>\n </AnnotationProvider>\n </VariableProviderWithQueryParams>\n </TimeRangeProviderWithQueryParams>\n </DashboardProviderWithQueryParams>\n </DatasourceStoreProvider>\n );\n}\n"],"names":["Box","ErrorBoundary","ErrorAlert","combineSx","TimeRangeProviderWithQueryParams","useInitialRefreshInterval","useInitialTimeRange","usePluginBuiltinVariableDefinitions","useMemo","DEFAULT_DASHBOARD_DURATION","DEFAULT_REFRESH_INTERVAL","DatasourceStoreProvider","VariableProviderWithQueryParams","AnnotationProvider","DashboardProviderWithQueryParams","DashboardApp","ViewDashboard","props","dashboardResource","datasourceApi","externalVariableDefinitions","emptyDashboardProps","isReadonly","isVariableEnabled","isAnnotationEnabled","isDatasourceEnabled","disableShortcuts","isEditing","isCreating","isInitialVariableSticky","isLeavingConfirmDialogEnabled","dashboardTitleComponent","onSave","onDiscard","sx","userPreferenceTimezone","others","spec","dashboardDuration","duration","dashboardRefreshInterval","refreshInterval","initialTimeRange","initialRefreshInterval","data","builtinVariables","result","kind","name","value","metadata","source","display","description","hidden","project","forEach","def","push","initialState","isEditMode","initialVariableDefinitions","variables","builtinVariableDefinitions","initialAnnotationSpecs","annotations","width","height","position","overflow","FallbackComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perses-dev/dashboards",
3
- "version": "0.54.0-beta.0",
3
+ "version": "0.54.0-beta.10",
4
4
  "description": "The dashboards feature in Perses",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/perses/perses/blob/main/README.md",
@@ -29,18 +29,17 @@
29
29
  "lint:fix": "eslint --fix src --ext .ts,.tsx"
30
30
  },
31
31
  "dependencies": {
32
- "@perses-dev/components": "0.54.0-beta.0",
33
- "@perses-dev/core": "0.53.0",
34
- "@perses-dev/plugin-system": "0.54.0-beta.0",
35
- "@perses-dev/spec": "0.2.0-beta.0",
36
- "@types/react-grid-layout": "^1.3.2",
37
- "date-fns": "^4.1.0",
32
+ "@perses-dev/components": "0.54.0-beta.10",
33
+ "@perses-dev/plugin-system": "0.54.0-beta.10",
34
+ "@perses-dev/spec": "0.2.0-beta.6",
35
+ "@perses-dev/client": "0.54.0-beta.10",
36
+ "@tanstack/hotkeys": "^0.8.0",
37
+ "@tanstack/react-hotkeys": "^0.9.1",
38
38
  "immer": "^10.1.1",
39
39
  "mdi-material-ui": "^7.9.2",
40
40
  "react-grid-layout": "^1.3.4",
41
41
  "react-hook-form": "^7.46.1",
42
42
  "react-intersection-observer": "^9.4.0",
43
- "@tanstack/react-hotkeys": "^0.9.1",
44
43
  "use-immer": "^0.11.0",
45
44
  "use-query-params": "^2.2.1",
46
45
  "use-resize-observer": "^9.0.0",
@@ -48,8 +47,8 @@
48
47
  "zustand": "^4.3.3"
49
48
  },
50
49
  "devDependencies": {
51
- "history": "^5.3.0",
52
- "intersection-observer": "^0.12.2"
50
+ "@types/react-grid-layout": "^1.3.6",
51
+ "history": "^5.3.0"
53
52
  },
54
53
  "peerDependencies": {
55
54
  "@mui/material": "^6.1.10",
@@ -1,15 +0,0 @@
1
- import { DashboardSpec } from '@perses-dev/spec';
2
- export type DashboardKind = 'Dashboard' | 'EphemeralDashboard';
3
- export type DashboardMetaData = {
4
- name: string;
5
- project: string;
6
- createdAt?: string;
7
- updatedAt?: string;
8
- version?: number;
9
- };
10
- export interface DashboardResource {
11
- kind: DashboardKind;
12
- spec: DashboardSpec;
13
- metadata: DashboardMetaData;
14
- }
15
- //# sourceMappingURL=DashboardResource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardResource.d.ts","sourceRoot":"","sources":["../../src/model/DashboardResource.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAG/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/model/DashboardResource.ts"],"sourcesContent":["// Copyright 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 { DashboardSpec } from '@perses-dev/spec';\n\nexport type DashboardKind = 'Dashboard' | 'EphemeralDashboard';\n\n/* TODO: As discussed we can keep this intermediary type until we decide on a new location for it. */\nexport type DashboardMetaData = {\n name: string;\n project: string;\n createdAt?: string;\n updatedAt?: string;\n version?: number;\n};\n\n/* TODO: There is an open and ongoing issue whether the meta-data should be removed or not.\n Such a decision would affect DashbaordProvider and buildDatasourceProxyUrl\n https://github.com/perses/perses/issues/4016\n*/\nexport interface DashboardResource {\n kind: DashboardKind;\n spec: DashboardSpec;\n metadata: DashboardMetaData;\n}\n"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAejC;;;AAGA,GACA,WAIC"}