@perses-dev/dashboards 0.24.0 → 0.26.0

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 (161) hide show
  1. package/dist/cjs/components/AddPanelButton/AddPanelButton.js +9 -2
  2. package/dist/cjs/components/Dashboard/Dashboard.js +23 -6
  3. package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +8 -17
  4. package/dist/cjs/components/EditButton/EditButton.js +41 -0
  5. package/dist/cjs/components/EditButton/index.js +28 -0
  6. package/dist/cjs/components/EditJsonButton/EditJsonButton.js +42 -0
  7. package/dist/cjs/components/EditJsonButton/index.js +28 -0
  8. package/dist/cjs/components/EditJsonDialog/EditJsonDialog.js +86 -0
  9. package/dist/cjs/components/EditJsonDialog/index.js +28 -0
  10. package/dist/cjs/components/EmptyDashboard/EmptyDashboard.js +128 -0
  11. package/dist/cjs/components/EmptyDashboard/index.js +28 -0
  12. package/dist/cjs/components/Panel/Panel.js +0 -4
  13. package/dist/cjs/components/Panel/PanelHeader.js +2 -2
  14. package/dist/cjs/components/QuerySummaryTable/QuerySummaryTable.js +185 -0
  15. package/dist/cjs/components/QuerySummaryTable/index.js +28 -0
  16. package/dist/cjs/components/ToolbarIconButton/ToolbarIconButton.js +6 -3
  17. package/dist/cjs/components/Variables/EditVariablesButton.js +9 -2
  18. package/dist/cjs/components/index.js +4 -0
  19. package/dist/cjs/constants/user-interface-text.js +1 -0
  20. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +12 -6
  21. package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +10 -1
  22. package/dist/cjs/context/DashboardProvider/edit-json-dialog-slice.js +36 -0
  23. package/dist/cjs/context/DatasourceStoreProvider.js +9 -3
  24. package/dist/cjs/context/TemplateVariableProvider/TemplateVariableProvider.js +3 -41
  25. package/dist/cjs/context/TemplateVariableProvider/hydrationUtils.js +68 -0
  26. package/dist/cjs/stories/decorators/WithDashboard.js +39 -0
  27. package/dist/cjs/stories/decorators/WithDatasourceStore.js +82 -0
  28. package/dist/cjs/stories/decorators/WithPluginRegistry.js +91 -0
  29. package/dist/cjs/stories/decorators/WithQueryClient.js +29 -0
  30. package/dist/cjs/stories/decorators/WithQueryParams.js +29 -0
  31. package/dist/cjs/stories/decorators/WithTemplateVariables.js +35 -0
  32. package/dist/cjs/stories/decorators/WithTimeRange.js +38 -0
  33. package/dist/cjs/stories/decorators/constants.js +36 -0
  34. package/dist/cjs/stories/decorators/index.js +35 -0
  35. package/dist/cjs/views/ViewDashboard/DashboardApp.js +11 -4
  36. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +2 -1
  37. package/dist/components/AddPanelButton/AddPanelButton.d.ts +16 -1
  38. package/dist/components/AddPanelButton/AddPanelButton.d.ts.map +1 -1
  39. package/dist/components/AddPanelButton/AddPanelButton.js +9 -2
  40. package/dist/components/AddPanelButton/AddPanelButton.js.map +1 -1
  41. package/dist/components/Dashboard/Dashboard.d.ts +10 -2
  42. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -1
  43. package/dist/components/Dashboard/Dashboard.js +24 -7
  44. package/dist/components/Dashboard/Dashboard.js.map +1 -1
  45. package/dist/components/DashboardToolbar/DashboardToolbar.d.ts.map +1 -1
  46. package/dist/components/DashboardToolbar/DashboardToolbar.js +8 -12
  47. package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
  48. package/dist/components/EditButton/EditButton.d.ts +13 -0
  49. package/dist/components/EditButton/EditButton.d.ts.map +1 -0
  50. package/dist/components/EditButton/EditButton.js +30 -0
  51. package/dist/components/EditButton/EditButton.js.map +1 -0
  52. package/dist/components/EditButton/index.d.ts +2 -0
  53. package/dist/components/EditButton/index.d.ts.map +1 -0
  54. package/dist/components/EditButton/index.js +15 -0
  55. package/dist/components/EditButton/index.js.map +1 -0
  56. package/dist/components/EditJsonButton/EditJsonButton.d.ts +3 -0
  57. package/dist/components/EditJsonButton/EditJsonButton.d.ts.map +1 -0
  58. package/dist/components/EditJsonButton/EditJsonButton.js +31 -0
  59. package/dist/components/EditJsonButton/EditJsonButton.js.map +1 -0
  60. package/dist/components/EditJsonButton/index.d.ts +2 -0
  61. package/dist/components/EditJsonButton/index.d.ts.map +1 -0
  62. package/dist/components/EditJsonButton/index.js +15 -0
  63. package/dist/components/EditJsonButton/index.js.map +1 -0
  64. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts +3 -0
  65. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts.map +1 -0
  66. package/dist/components/EditJsonDialog/EditJsonDialog.js +80 -0
  67. package/dist/components/EditJsonDialog/EditJsonDialog.js.map +1 -0
  68. package/dist/components/EditJsonDialog/index.d.ts +2 -0
  69. package/dist/components/EditJsonDialog/index.d.ts.map +1 -0
  70. package/dist/components/EditJsonDialog/index.js +15 -0
  71. package/dist/components/EditJsonDialog/index.js.map +1 -0
  72. package/dist/components/EmptyDashboard/EmptyDashboard.d.ts +37 -0
  73. package/dist/components/EmptyDashboard/EmptyDashboard.d.ts.map +1 -0
  74. package/dist/components/EmptyDashboard/EmptyDashboard.js +124 -0
  75. package/dist/components/EmptyDashboard/EmptyDashboard.js.map +1 -0
  76. package/dist/components/EmptyDashboard/index.d.ts +2 -0
  77. package/dist/components/EmptyDashboard/index.d.ts.map +1 -0
  78. package/dist/components/EmptyDashboard/index.js +15 -0
  79. package/dist/components/EmptyDashboard/index.js.map +1 -0
  80. package/dist/components/Panel/Panel.d.ts.map +1 -1
  81. package/dist/components/Panel/Panel.js +0 -4
  82. package/dist/components/Panel/Panel.js.map +1 -1
  83. package/dist/components/Panel/PanelHeader.d.ts +1 -2
  84. package/dist/components/Panel/PanelHeader.d.ts.map +1 -1
  85. package/dist/components/Panel/PanelHeader.js +2 -2
  86. package/dist/components/Panel/PanelHeader.js.map +1 -1
  87. package/dist/components/QuerySummaryTable/QuerySummaryTable.d.ts +11 -0
  88. package/dist/components/QuerySummaryTable/QuerySummaryTable.d.ts.map +1 -0
  89. package/dist/components/QuerySummaryTable/QuerySummaryTable.js +179 -0
  90. package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -0
  91. package/dist/components/QuerySummaryTable/index.d.ts +2 -0
  92. package/dist/components/QuerySummaryTable/index.d.ts.map +1 -0
  93. package/dist/components/QuerySummaryTable/index.js +15 -0
  94. package/dist/components/QuerySummaryTable/index.js.map +1 -0
  95. package/dist/components/ToolbarIconButton/ToolbarIconButton.d.ts +1 -1
  96. package/dist/components/ToolbarIconButton/ToolbarIconButton.d.ts.map +1 -1
  97. package/dist/components/ToolbarIconButton/ToolbarIconButton.js +6 -3
  98. package/dist/components/ToolbarIconButton/ToolbarIconButton.js.map +1 -1
  99. package/dist/components/Variables/EditVariablesButton.d.ts +16 -1
  100. package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
  101. package/dist/components/Variables/EditVariablesButton.js +9 -2
  102. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  103. package/dist/components/index.d.ts +4 -0
  104. package/dist/components/index.d.ts.map +1 -1
  105. package/dist/components/index.js +4 -0
  106. package/dist/components/index.js.map +1 -1
  107. package/dist/constants/user-interface-text.d.ts +1 -0
  108. package/dist/constants/user-interface-text.d.ts.map +1 -1
  109. package/dist/constants/user-interface-text.js +1 -0
  110. package/dist/constants/user-interface-text.js.map +1 -1
  111. package/dist/context/DashboardProvider/DashboardProvider.d.ts +2 -1
  112. package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
  113. package/dist/context/DashboardProvider/DashboardProvider.js +12 -6
  114. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  115. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts +8 -0
  116. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts.map +1 -1
  117. package/dist/context/DashboardProvider/dashboard-provider-api.js +10 -0
  118. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
  119. package/dist/context/DashboardProvider/edit-json-dialog-slice.d.ts +12 -0
  120. package/dist/context/DashboardProvider/edit-json-dialog-slice.d.ts.map +1 -0
  121. package/dist/context/DashboardProvider/edit-json-dialog-slice.js +30 -0
  122. package/dist/context/DashboardProvider/edit-json-dialog-slice.js.map +1 -0
  123. package/dist/context/DatasourceStoreProvider.d.ts +2 -0
  124. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  125. package/dist/context/DatasourceStoreProvider.js +9 -3
  126. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  127. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +3 -2
  128. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +1 -1
  129. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js +1 -39
  130. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +1 -1
  131. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts +4 -0
  132. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts.map +1 -0
  133. package/dist/context/TemplateVariableProvider/hydrationUtils.js +62 -0
  134. package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +1 -0
  135. package/dist/stories/decorators/WithDashboard.js +33 -0
  136. package/dist/stories/decorators/WithDashboard.js.map +1 -0
  137. package/dist/stories/decorators/WithDatasourceStore.js +76 -0
  138. package/dist/stories/decorators/WithDatasourceStore.js.map +1 -0
  139. package/dist/stories/decorators/WithPluginRegistry.js +46 -0
  140. package/dist/stories/decorators/WithPluginRegistry.js.map +1 -0
  141. package/dist/stories/decorators/WithQueryClient.js +23 -0
  142. package/dist/stories/decorators/WithQueryClient.js.map +1 -0
  143. package/dist/stories/decorators/WithQueryParams.js +23 -0
  144. package/dist/stories/decorators/WithQueryParams.js.map +1 -0
  145. package/dist/stories/decorators/WithTemplateVariables.js +29 -0
  146. package/dist/stories/decorators/WithTemplateVariables.js.map +1 -0
  147. package/dist/stories/decorators/WithTimeRange.js +32 -0
  148. package/dist/stories/decorators/WithTimeRange.js.map +1 -0
  149. package/dist/stories/decorators/constants.js +30 -0
  150. package/dist/stories/decorators/constants.js.map +1 -0
  151. package/dist/stories/decorators/index.js +22 -0
  152. package/dist/stories/decorators/index.js.map +1 -0
  153. package/dist/views/ViewDashboard/DashboardApp.d.ts +2 -0
  154. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  155. package/dist/views/ViewDashboard/DashboardApp.js +12 -5
  156. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  157. package/dist/views/ViewDashboard/ViewDashboard.d.ts +2 -8
  158. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  159. package/dist/views/ViewDashboard/ViewDashboard.js +2 -1
  160. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  161. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/stories/decorators/index.ts"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './constants';\nexport * from './WithDashboard';\nexport * from './WithDatasourceStore';\nexport * from './WithPluginRegistry';\nexport * from './WithQueryClient';\nexport * from './WithQueryParams';\nexport * from './WithTemplateVariables';\nexport * from './WithTimeRange';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
@@ -1,6 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { DashboardResource } from '@perses-dev/core';
3
+ import { EmptyDashboardProps } from '../../components';
3
4
  export interface DashboardAppProps {
5
+ emptyDashboardProps?: Partial<EmptyDashboardProps>;
4
6
  dashboardResource: DashboardResource;
5
7
  dashboardTitleComponent?: JSX.Element;
6
8
  onSave?: (entity: DashboardResource) => Promise<DashboardResource>;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardApp.d.ts","sourceRoot":"","sources":["../../../src/views/ViewDashboard/DashboardApp.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAYrD,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,uBAAuB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB,gBAyEpD,CAAC"}
1
+ {"version":3,"file":"DashboardApp.d.ts","sourceRoot":"","sources":["../../../src/views/ViewDashboard/DashboardApp.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAQL,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,uBAAuB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAEtC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB,gBAuFpD,CAAC"}
@@ -14,10 +14,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  import { useState } from 'react';
15
15
  import { Box } from '@mui/material';
16
16
  import { ErrorAlert, ErrorBoundary } from '@perses-dev/components';
17
- import { PanelDrawer, Dashboard, PanelGroupDialog, DeletePanelGroupDialog, DiscardChangesConfirmationDialog, DashboardToolbar, DeletePanelDialog } from '../../components';
17
+ import { PanelDrawer, Dashboard, PanelGroupDialog, DeletePanelGroupDialog, DiscardChangesConfirmationDialog, DashboardToolbar, DeletePanelDialog, EditJsonDialog } from '../../components';
18
18
  import { useDashboard, useDiscardChangesConfirmationDialog, useEditMode } from '../../context';
19
19
  export const DashboardApp = (props)=>{
20
- const { dashboardResource , dashboardTitleComponent , onSave , onDiscard , initialVariableIsSticky , isReadonly } = props;
20
+ const { dashboardResource , dashboardTitleComponent , emptyDashboardProps , onSave , onDiscard , initialVariableIsSticky , isReadonly , } = props;
21
21
  const { setEditMode } = useEditMode();
22
22
  const { dashboard , setDashboard } = useDashboard();
23
23
  const [originalDashboard, setOriginalDashboard] = useState(undefined);
@@ -72,18 +72,25 @@ export const DashboardApp = (props)=>{
72
72
  }),
73
73
  /*#__PURE__*/ _jsxs(Box, {
74
74
  sx: {
75
- padding: (theme)=>theme.spacing(2)
75
+ padding: (theme)=>theme.spacing(2),
76
+ height: '100%'
76
77
  },
77
78
  children: [
78
79
  /*#__PURE__*/ _jsx(ErrorBoundary, {
79
80
  FallbackComponent: ErrorAlert,
80
- children: /*#__PURE__*/ _jsx(Dashboard, {})
81
+ children: /*#__PURE__*/ _jsx(Dashboard, {
82
+ emptyDashboardProps: {
83
+ onEditButtonClick,
84
+ ...emptyDashboardProps
85
+ }
86
+ })
81
87
  }),
82
88
  /*#__PURE__*/ _jsx(PanelDrawer, {}),
83
89
  /*#__PURE__*/ _jsx(PanelGroupDialog, {}),
84
90
  /*#__PURE__*/ _jsx(DeletePanelGroupDialog, {}),
85
91
  /*#__PURE__*/ _jsx(DeletePanelDialog, {}),
86
- /*#__PURE__*/ _jsx(DiscardChangesConfirmationDialog, {})
92
+ /*#__PURE__*/ _jsx(DiscardChangesConfirmationDialog, {}),
93
+ /*#__PURE__*/ _jsx(EditJsonDialog, {})
87
94
  ]
88
95
  })
89
96
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/ViewDashboard/DashboardApp.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { useState } from 'react';\nimport { Box } from '@mui/material';\nimport { ErrorAlert, ErrorBoundary } from '@perses-dev/components';\nimport { DashboardResource } from '@perses-dev/core';\nimport {\n PanelDrawer,\n Dashboard,\n PanelGroupDialog,\n DeletePanelGroupDialog,\n DiscardChangesConfirmationDialog,\n DashboardToolbar,\n DeletePanelDialog,\n} from '../../components';\nimport { useDashboard, useDiscardChangesConfirmationDialog, useEditMode } from '../../context';\n\nexport interface DashboardAppProps {\n dashboardResource: DashboardResource;\n dashboardTitleComponent?: JSX.Element;\n onSave?: (entity: DashboardResource) => Promise<DashboardResource>;\n onDiscard?: (entity: DashboardResource) => void;\n initialVariableIsSticky?: boolean;\n isReadonly: boolean;\n}\n\nexport const DashboardApp = (props: DashboardAppProps) => {\n const { dashboardResource, dashboardTitleComponent, onSave, onDiscard, initialVariableIsSticky, isReadonly } = props;\n const { setEditMode } = useEditMode();\n const { dashboard, setDashboard } = useDashboard();\n const [originalDashboard, setOriginalDashboard] = useState<DashboardResource | undefined>(undefined);\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n\n const handleDiscardChanges = () => {\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);\n }\n };\n\n const onEditButtonClick = () => {\n setEditMode(true);\n setOriginalDashboard(dashboard);\n };\n\n const onCancelButtonClick = () => {\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 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={initialVariableIsSticky}\n onSave={onSave}\n isReadonly={isReadonly}\n onEditButtonClick={onEditButtonClick}\n onCancelButtonClick={onCancelButtonClick}\n />\n <Box sx={{ padding: (theme) => theme.spacing(2) }}>\n <ErrorBoundary FallbackComponent={ErrorAlert}>\n <Dashboard />\n </ErrorBoundary>\n <PanelDrawer />\n <PanelGroupDialog />\n <DeletePanelGroupDialog />\n <DeletePanelDialog />\n <DiscardChangesConfirmationDialog />\n </Box>\n </Box>\n );\n};\n"],"names":["useState","Box","ErrorAlert","ErrorBoundary","PanelDrawer","Dashboard","PanelGroupDialog","DeletePanelGroupDialog","DiscardChangesConfirmationDialog","DashboardToolbar","DeletePanelDialog","useDashboard","useDiscardChangesConfirmationDialog","useEditMode","DashboardApp","props","dashboardResource","dashboardTitleComponent","onSave","onDiscard","initialVariableIsSticky","isReadonly","setEditMode","dashboard","setDashboard","originalDashboard","setOriginalDashboard","undefined","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleDiscardChanges","onEditButtonClick","onCancelButtonClick","JSON","stringify","onDiscardChanges","onCancel","sx","flexGrow","overflowX","overflowY","display","flexDirection","dashboardName","metadata","name","padding","theme","spacing","FallbackComponent"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/ViewDashboard/DashboardApp.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { useState } from 'react';\nimport { Box } from '@mui/material';\nimport { ErrorAlert, ErrorBoundary } from '@perses-dev/components';\nimport { DashboardResource } from '@perses-dev/core';\nimport {\n PanelDrawer,\n Dashboard,\n PanelGroupDialog,\n DeletePanelGroupDialog,\n DiscardChangesConfirmationDialog,\n DashboardToolbar,\n DeletePanelDialog,\n EmptyDashboardProps,\n EditJsonDialog,\n} from '../../components';\nimport { useDashboard, useDiscardChangesConfirmationDialog, useEditMode } from '../../context';\n\nexport interface DashboardAppProps {\n emptyDashboardProps?: Partial<EmptyDashboardProps>;\n dashboardResource: DashboardResource;\n dashboardTitleComponent?: JSX.Element;\n\n onSave?: (entity: DashboardResource) => Promise<DashboardResource>;\n onDiscard?: (entity: DashboardResource) => void;\n initialVariableIsSticky?: boolean;\n isReadonly: boolean;\n}\n\nexport const DashboardApp = (props: DashboardAppProps) => {\n const {\n dashboardResource,\n dashboardTitleComponent,\n emptyDashboardProps,\n onSave,\n onDiscard,\n initialVariableIsSticky,\n isReadonly,\n } = props;\n const { setEditMode } = useEditMode();\n const { dashboard, setDashboard } = useDashboard();\n const [originalDashboard, setOriginalDashboard] = useState<DashboardResource | undefined>(undefined);\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n\n const handleDiscardChanges = () => {\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);\n }\n };\n\n const onEditButtonClick = () => {\n setEditMode(true);\n setOriginalDashboard(dashboard);\n };\n\n const onCancelButtonClick = () => {\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 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={initialVariableIsSticky}\n onSave={onSave}\n isReadonly={isReadonly}\n onEditButtonClick={onEditButtonClick}\n onCancelButtonClick={onCancelButtonClick}\n />\n <Box sx={{ padding: (theme) => theme.spacing(2), height: '100%' }}>\n <ErrorBoundary FallbackComponent={ErrorAlert}>\n <Dashboard\n emptyDashboardProps={{\n onEditButtonClick,\n ...emptyDashboardProps,\n }}\n />\n </ErrorBoundary>\n <PanelDrawer />\n <PanelGroupDialog />\n <DeletePanelGroupDialog />\n <DeletePanelDialog />\n <DiscardChangesConfirmationDialog />\n <EditJsonDialog />\n </Box>\n </Box>\n );\n};\n"],"names":["useState","Box","ErrorAlert","ErrorBoundary","PanelDrawer","Dashboard","PanelGroupDialog","DeletePanelGroupDialog","DiscardChangesConfirmationDialog","DashboardToolbar","DeletePanelDialog","EditJsonDialog","useDashboard","useDiscardChangesConfirmationDialog","useEditMode","DashboardApp","props","dashboardResource","dashboardTitleComponent","emptyDashboardProps","onSave","onDiscard","initialVariableIsSticky","isReadonly","setEditMode","dashboard","setDashboard","originalDashboard","setOriginalDashboard","undefined","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleDiscardChanges","onEditButtonClick","onCancelButtonClick","JSON","stringify","onDiscardChanges","onCancel","sx","flexGrow","overflowX","overflowY","display","flexDirection","dashboardName","metadata","name","padding","theme","spacing","height","FallbackComponent"],"mappings":"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"}
@@ -1,15 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { BoxProps } from '@mui/material';
3
- import { DashboardResource } from '@perses-dev/core';
4
3
  import { DatasourceStoreProviderProps } from '../../context';
5
- export interface ViewDashboardProps extends Omit<BoxProps, 'children'> {
6
- dashboardResource: DashboardResource;
4
+ import { DashboardAppProps } from './DashboardApp';
5
+ export interface ViewDashboardProps extends Omit<BoxProps, 'children'>, DashboardAppProps {
7
6
  datasourceApi: DatasourceStoreProviderProps['datasourceApi'];
8
- dashboardTitleComponent?: JSX.Element;
9
- onSave?: (entity: DashboardResource) => Promise<DashboardResource>;
10
- onDiscard?: (entity: DashboardResource) => void;
11
- initialVariableIsSticky?: boolean;
12
- isReadonly: boolean;
13
7
  isEditing?: boolean;
14
8
  }
15
9
  /**
@@ -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;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAGL,4BAA4B,EAE7B,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;IACpE,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAC;IAC7D,uBAAuB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,eAmDtD"}
1
+ {"version":3,"file":"ViewDashboard.d.ts","sourceRoot":"","sources":["../../../src/views/ViewDashboard/ViewDashboard.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAO,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EAGL,4BAA4B,EAE7B,MAAM,eAAe,CAAC;AACvB,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,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,eAqDtD"}
@@ -19,7 +19,7 @@ import { DashboardApp } from './DashboardApp';
19
19
  /**
20
20
  * The View for displaying a Dashboard, along with the UI for selecting variable values.
21
21
  */ export function ViewDashboard(props) {
22
- const { dashboardResource , datasourceApi , dashboardTitleComponent , onSave , onDiscard , initialVariableIsSticky , isReadonly , isEditing , sx , ...others } = props;
22
+ const { dashboardResource , datasourceApi , dashboardTitleComponent , emptyDashboardProps , onSave , onDiscard , initialVariableIsSticky , isReadonly , isEditing , sx , ...others } = props;
23
23
  const { spec } = dashboardResource;
24
24
  var _duration;
25
25
  const dashboardDuration = (_duration = spec.duration) !== null && _duration !== void 0 ? _duration : '1h';
@@ -51,6 +51,7 @@ import { DashboardApp } from './DashboardApp';
51
51
  children: /*#__PURE__*/ _jsx(DashboardApp, {
52
52
  dashboardResource: dashboardResource,
53
53
  dashboardTitleComponent: dashboardTitleComponent,
54
+ emptyDashboardProps: emptyDashboardProps,
54
55
  onSave: onSave,
55
56
  onDiscard: onDiscard,
56
57
  initialVariableIsSticky: initialVariableIsSticky,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/ViewDashboard/ViewDashboard.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box, BoxProps } from '@mui/material';\nimport { DashboardResource } from '@perses-dev/core';\nimport { ErrorBoundary, ErrorAlert, combineSx } from '@perses-dev/components';\nimport { TimeRangeProvider, useInitialTimeRange } from '@perses-dev/plugin-system';\nimport {\n TemplateVariableProvider,\n DashboardProvider,\n DatasourceStoreProviderProps,\n DatasourceStoreProvider,\n} from '../../context';\nimport { DashboardApp } from './DashboardApp';\n\nexport interface ViewDashboardProps extends Omit<BoxProps, 'children'> {\n dashboardResource: DashboardResource;\n datasourceApi: DatasourceStoreProviderProps['datasourceApi'];\n dashboardTitleComponent?: JSX.Element;\n onSave?: (entity: DashboardResource) => Promise<DashboardResource>;\n onDiscard?: (entity: DashboardResource) => void;\n initialVariableIsSticky?: boolean;\n isReadonly: boolean;\n isEditing?: 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) {\n const {\n dashboardResource,\n datasourceApi,\n dashboardTitleComponent,\n onSave,\n onDiscard,\n initialVariableIsSticky,\n isReadonly,\n isEditing,\n sx,\n ...others\n } = props;\n const { spec } = dashboardResource;\n const dashboardDuration = spec.duration ?? '1h';\n const initialTimeRange = useInitialTimeRange(dashboardDuration);\n\n return (\n <DatasourceStoreProvider dashboardResource={dashboardResource} datasourceApi={datasourceApi}>\n <DashboardProvider initialState={{ dashboardResource, isEditMode: !!isEditing }}>\n <TimeRangeProvider initialTimeRange={initialTimeRange} enabledURLParams={true}>\n <TemplateVariableProvider initialVariableDefinitions={spec.variables}>\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 dashboardTitleComponent={dashboardTitleComponent}\n onSave={onSave}\n onDiscard={onDiscard}\n initialVariableIsSticky={initialVariableIsSticky}\n isReadonly={isReadonly}\n />\n </ErrorBoundary>\n </Box>\n </TemplateVariableProvider>\n </TimeRangeProvider>\n </DashboardProvider>\n </DatasourceStoreProvider>\n );\n}\n"],"names":["Box","ErrorBoundary","ErrorAlert","combineSx","TimeRangeProvider","useInitialTimeRange","TemplateVariableProvider","DashboardProvider","DatasourceStoreProvider","DashboardApp","ViewDashboard","props","dashboardResource","datasourceApi","dashboardTitleComponent","onSave","onDiscard","initialVariableIsSticky","isReadonly","isEditing","sx","others","spec","dashboardDuration","duration","initialTimeRange","initialState","isEditMode","enabledURLParams","initialVariableDefinitions","variables","display","width","height","position","overflow","FallbackComponent"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC;AAAA,SAASA,GAAG,QAAkB,eAAe,CAAC;AAE9C,SAASC,aAAa,EAAEC,UAAU,EAAEC,SAAS,QAAQ,wBAAwB,CAAC;AAC9E,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ,2BAA2B,CAAC;AACnF,SACEC,wBAAwB,EACxBC,iBAAiB,EAEjBC,uBAAuB,QAClB,eAAe,CAAC;AACvB,SAASC,YAAY,QAAQ,gBAAgB,CAAC;AAa9C;;CAEC,GACD,OAAO,SAASC,aAAa,CAACC,KAAyB,EAAE;IACvD,MAAM,EACJC,iBAAiB,CAAA,EACjBC,aAAa,CAAA,EACbC,uBAAuB,CAAA,EACvBC,MAAM,CAAA,EACNC,SAAS,CAAA,EACTC,uBAAuB,CAAA,EACvBC,UAAU,CAAA,EACVC,SAAS,CAAA,EACTC,EAAE,CAAA,EACF,GAAGC,MAAM,EACV,GAAGV,KAAK,AAAC;IACV,MAAM,EAAEW,IAAI,CAAA,EAAE,GAAGV,iBAAiB,AAAC;QACTU,SAAa;IAAvC,MAAMC,iBAAiB,GAAGD,CAAAA,SAAa,GAAbA,IAAI,CAACE,QAAQ,cAAbF,SAAa,cAAbA,SAAa,GAAI,IAAI,AAAC;IAChD,MAAMG,gBAAgB,GAAGpB,mBAAmB,CAACkB,iBAAiB,CAAC,AAAC;IAEhE,qBACE,KAACf,uBAAuB;QAACI,iBAAiB,EAAEA,iBAAiB;QAAEC,aAAa,EAAEA,aAAa;kBACzF,cAAA,KAACN,iBAAiB;YAACmB,YAAY,EAAE;gBAAEd,iBAAiB;gBAAEe,UAAU,EAAE,CAAC,CAACR,SAAS;aAAE;sBAC7E,cAAA,KAACf,iBAAiB;gBAACqB,gBAAgB,EAAEA,gBAAgB;gBAAEG,gBAAgB,EAAE,IAAI;0BAC3E,cAAA,KAACtB,wBAAwB;oBAACuB,0BAA0B,EAAEP,IAAI,CAACQ,SAAS;8BAClE,cAAA,KAAC9B,GAAG;wBACFoB,EAAE,EAAEjB,SAAS,CACX;4BACE4B,OAAO,EAAE,MAAM;4BACfC,KAAK,EAAE,MAAM;4BACbC,MAAM,EAAE,MAAM;4BACdC,QAAQ,EAAE,UAAU;4BACpBC,QAAQ,EAAE,QAAQ;yBACnB,EACDf,EAAE,CACH;wBACA,GAAGC,MAAM;kCAEV,cAAA,KAACpB,aAAa;4BAACmC,iBAAiB,EAAElC,UAAU;sCAC1C,cAAA,KAACO,YAAY;gCACXG,iBAAiB,EAAEA,iBAAiB;gCACpCE,uBAAuB,EAAEA,uBAAuB;gCAChDC,MAAM,EAAEA,MAAM;gCACdC,SAAS,EAAEA,SAAS;gCACpBC,uBAAuB,EAAEA,uBAAuB;gCAChDC,UAAU,EAAEA,UAAU;8BACtB;0BACY;sBACZ;kBACmB;cACT;UACF;MACI,CAC1B;AACJ,CAAC"}
1
+ {"version":3,"sources":["../../../src/views/ViewDashboard/ViewDashboard.tsx"],"sourcesContent":["// Copyright 2023 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box, BoxProps } from '@mui/material';\nimport { ErrorBoundary, ErrorAlert, combineSx } from '@perses-dev/components';\nimport { TimeRangeProvider, useInitialTimeRange } from '@perses-dev/plugin-system';\nimport {\n TemplateVariableProvider,\n DashboardProvider,\n DatasourceStoreProviderProps,\n DatasourceStoreProvider,\n} from '../../context';\nimport { DashboardApp, DashboardAppProps } from './DashboardApp';\n\nexport interface ViewDashboardProps extends Omit<BoxProps, 'children'>, DashboardAppProps {\n datasourceApi: DatasourceStoreProviderProps['datasourceApi'];\n isEditing?: 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) {\n const {\n dashboardResource,\n datasourceApi,\n dashboardTitleComponent,\n emptyDashboardProps,\n onSave,\n onDiscard,\n initialVariableIsSticky,\n isReadonly,\n isEditing,\n sx,\n ...others\n } = props;\n const { spec } = dashboardResource;\n const dashboardDuration = spec.duration ?? '1h';\n const initialTimeRange = useInitialTimeRange(dashboardDuration);\n\n return (\n <DatasourceStoreProvider dashboardResource={dashboardResource} datasourceApi={datasourceApi}>\n <DashboardProvider initialState={{ dashboardResource, isEditMode: !!isEditing }}>\n <TimeRangeProvider initialTimeRange={initialTimeRange} enabledURLParams={true}>\n <TemplateVariableProvider initialVariableDefinitions={spec.variables}>\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 dashboardTitleComponent={dashboardTitleComponent}\n emptyDashboardProps={emptyDashboardProps}\n onSave={onSave}\n onDiscard={onDiscard}\n initialVariableIsSticky={initialVariableIsSticky}\n isReadonly={isReadonly}\n />\n </ErrorBoundary>\n </Box>\n </TemplateVariableProvider>\n </TimeRangeProvider>\n </DashboardProvider>\n </DatasourceStoreProvider>\n );\n}\n"],"names":["Box","ErrorBoundary","ErrorAlert","combineSx","TimeRangeProvider","useInitialTimeRange","TemplateVariableProvider","DashboardProvider","DatasourceStoreProvider","DashboardApp","ViewDashboard","props","dashboardResource","datasourceApi","dashboardTitleComponent","emptyDashboardProps","onSave","onDiscard","initialVariableIsSticky","isReadonly","isEditing","sx","others","spec","dashboardDuration","duration","initialTimeRange","initialState","isEditMode","enabledURLParams","initialVariableDefinitions","variables","display","width","height","position","overflow","FallbackComponent"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC;AAAA,SAASA,GAAG,QAAkB,eAAe,CAAC;AAC9C,SAASC,aAAa,EAAEC,UAAU,EAAEC,SAAS,QAAQ,wBAAwB,CAAC;AAC9E,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ,2BAA2B,CAAC;AACnF,SACEC,wBAAwB,EACxBC,iBAAiB,EAEjBC,uBAAuB,QAClB,eAAe,CAAC;AACvB,SAASC,YAAY,QAA2B,gBAAgB,CAAC;AAOjE;;CAEC,GACD,OAAO,SAASC,aAAa,CAACC,KAAyB,EAAE;IACvD,MAAM,EACJC,iBAAiB,CAAA,EACjBC,aAAa,CAAA,EACbC,uBAAuB,CAAA,EACvBC,mBAAmB,CAAA,EACnBC,MAAM,CAAA,EACNC,SAAS,CAAA,EACTC,uBAAuB,CAAA,EACvBC,UAAU,CAAA,EACVC,SAAS,CAAA,EACTC,EAAE,CAAA,EACF,GAAGC,MAAM,EACV,GAAGX,KAAK,AAAC;IACV,MAAM,EAAEY,IAAI,CAAA,EAAE,GAAGX,iBAAiB,AAAC;QACTW,SAAa;IAAvC,MAAMC,iBAAiB,GAAGD,CAAAA,SAAa,GAAbA,IAAI,CAACE,QAAQ,cAAbF,SAAa,cAAbA,SAAa,GAAI,IAAI,AAAC;IAChD,MAAMG,gBAAgB,GAAGrB,mBAAmB,CAACmB,iBAAiB,CAAC,AAAC;IAEhE,qBACE,KAAChB,uBAAuB;QAACI,iBAAiB,EAAEA,iBAAiB;QAAEC,aAAa,EAAEA,aAAa;kBACzF,cAAA,KAACN,iBAAiB;YAACoB,YAAY,EAAE;gBAAEf,iBAAiB;gBAAEgB,UAAU,EAAE,CAAC,CAACR,SAAS;aAAE;sBAC7E,cAAA,KAAChB,iBAAiB;gBAACsB,gBAAgB,EAAEA,gBAAgB;gBAAEG,gBAAgB,EAAE,IAAI;0BAC3E,cAAA,KAACvB,wBAAwB;oBAACwB,0BAA0B,EAAEP,IAAI,CAACQ,SAAS;8BAClE,cAAA,KAAC/B,GAAG;wBACFqB,EAAE,EAAElB,SAAS,CACX;4BACE6B,OAAO,EAAE,MAAM;4BACfC,KAAK,EAAE,MAAM;4BACbC,MAAM,EAAE,MAAM;4BACdC,QAAQ,EAAE,UAAU;4BACpBC,QAAQ,EAAE,QAAQ;yBACnB,EACDf,EAAE,CACH;wBACA,GAAGC,MAAM;kCAEV,cAAA,KAACrB,aAAa;4BAACoC,iBAAiB,EAAEnC,UAAU;sCAC1C,cAAA,KAACO,YAAY;gCACXG,iBAAiB,EAAEA,iBAAiB;gCACpCE,uBAAuB,EAAEA,uBAAuB;gCAChDC,mBAAmB,EAAEA,mBAAmB;gCACxCC,MAAM,EAAEA,MAAM;gCACdC,SAAS,EAAEA,SAAS;gCACpBC,uBAAuB,EAAEA,uBAAuB;gCAChDC,UAAU,EAAEA,UAAU;8BACtB;0BACY;sBACZ;kBACmB;cACT;UACF;MACI,CAC1B;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perses-dev/dashboards",
3
- "version": "0.24.0",
3
+ "version": "0.26.0",
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,9 +29,9 @@
29
29
  "lint:fix": "eslint --fix src --ext .ts,.tsx"
30
30
  },
31
31
  "dependencies": {
32
- "@perses-dev/components": "0.24.0",
33
- "@perses-dev/core": "0.24.0",
34
- "@perses-dev/plugin-system": "0.24.0",
32
+ "@perses-dev/components": "0.26.0",
33
+ "@perses-dev/core": "0.26.0",
34
+ "@perses-dev/plugin-system": "0.26.0",
35
35
  "@types/react-grid-layout": "^1.3.2",
36
36
  "date-fns": "^2.28.0",
37
37
  "immer": "^9.0.15",