@perses-dev/dashboards 0.8.1 → 0.10.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 (258) hide show
  1. package/dist/cjs/components/Dashboard.js +25 -14
  2. package/dist/cjs/components/DashboardToolbar.js +148 -20
  3. package/dist/cjs/components/GridLayout/GridItemContent.js +25 -19
  4. package/dist/cjs/components/GridLayout/GridLayout.js +92 -27
  5. package/dist/cjs/components/GridLayout/GridTitle.js +91 -31
  6. package/dist/cjs/components/GridLayout/index.js +18 -19
  7. package/dist/cjs/components/Panel/DeletePanelDialog.js +91 -0
  8. package/dist/cjs/components/Panel/Panel.js +156 -55
  9. package/dist/cjs/components/Panel/Panel.test.js +58 -41
  10. package/dist/cjs/components/Panel/PanelContent.js +41 -12
  11. package/dist/cjs/components/Panel/index.js +16 -17
  12. package/dist/cjs/components/PanelDrawer/PanelDrawer.js +84 -108
  13. package/dist/cjs/components/PanelDrawer/PanelDrawer.test.js +87 -92
  14. package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +194 -0
  15. package/dist/cjs/components/PanelDrawer/PanelPreview.js +48 -0
  16. package/dist/cjs/components/PanelDrawer/index.js +28 -0
  17. package/dist/cjs/components/PanelGroupDialog/DeletePanelGroupDialog.js +86 -0
  18. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.js +121 -39
  19. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.test.js +74 -88
  20. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +120 -38
  21. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.test.js +42 -27
  22. package/dist/cjs/components/TimeRangeControls/index.js +16 -17
  23. package/dist/cjs/components/Variables/Variable.js +195 -36
  24. package/dist/cjs/components/Variables/VariableEditor.js +207 -0
  25. package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +236 -0
  26. package/dist/cjs/components/Variables/VariableEditorForm/index.js +28 -0
  27. package/dist/cjs/components/Variables/VariableEditorForm/variable-editor-form-model.js +88 -0
  28. package/dist/cjs/components/Variables/VariableList.js +81 -13
  29. package/dist/cjs/components/Variables/index.js +18 -18
  30. package/dist/cjs/components/index.js +21 -21
  31. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +70 -0
  32. package/dist/cjs/context/DashboardProvider/common.js +18 -0
  33. package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +71 -0
  34. package/dist/cjs/context/DashboardProvider/index.js +29 -0
  35. package/dist/cjs/context/DashboardProvider/layout-slice.js +200 -0
  36. package/dist/cjs/context/DashboardProvider/panel-editing-slice.js +156 -0
  37. package/dist/cjs/context/DashboardProvider/panel-group-slice.js +38 -0
  38. package/dist/cjs/context/DatasourceStoreProvider.js +170 -0
  39. package/dist/cjs/context/QueryStringProvider.js +69 -15
  40. package/dist/cjs/context/TemplateVariableProvider.js +135 -136
  41. package/dist/cjs/context/TimeRangeProvider.js +79 -30
  42. package/dist/cjs/context/index.js +20 -22
  43. package/dist/cjs/css/styles.js +43 -39
  44. package/dist/cjs/index.js +19 -20
  45. package/dist/cjs/test/dashboard-provider.js +51 -0
  46. package/dist/cjs/test/index.js +18 -18
  47. package/dist/cjs/test/plugin-registry.js +52 -25
  48. package/dist/cjs/test/render.js +25 -22
  49. package/dist/cjs/test/setup-tests.js +4 -2
  50. package/dist/cjs/test/testDashboard.js +203 -107
  51. package/dist/cjs/utils/functions.js +9 -5
  52. package/dist/cjs/views/ViewDashboard/DashboardApp.js +49 -23
  53. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +62 -31
  54. package/dist/cjs/views/ViewDashboard/index.js +16 -17
  55. package/dist/cjs/views/ViewDashboard/tests/panelGroups.test.js +165 -0
  56. package/dist/cjs/views/index.js +16 -17
  57. package/dist/components/Dashboard.d.ts +1 -4
  58. package/dist/components/Dashboard.d.ts.map +1 -1
  59. package/dist/components/Dashboard.js +34 -1
  60. package/dist/components/Dashboard.js.map +1 -0
  61. package/dist/components/DashboardToolbar.d.ts.map +1 -1
  62. package/dist/components/DashboardToolbar.js +154 -1
  63. package/dist/components/DashboardToolbar.js.map +1 -0
  64. package/dist/components/GridLayout/GridItemContent.d.ts +3 -3
  65. package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
  66. package/dist/components/GridLayout/GridItemContent.js +35 -1
  67. package/dist/components/GridLayout/GridItemContent.js.map +1 -0
  68. package/dist/components/GridLayout/GridLayout.d.ts +2 -3
  69. package/dist/components/GridLayout/GridLayout.d.ts.map +1 -1
  70. package/dist/components/GridLayout/GridLayout.js +102 -1
  71. package/dist/components/GridLayout/GridLayout.js.map +1 -0
  72. package/dist/components/GridLayout/GridTitle.d.ts.map +1 -1
  73. package/dist/components/GridLayout/GridTitle.js +99 -1
  74. package/dist/components/GridLayout/GridTitle.js.map +1 -0
  75. package/dist/components/GridLayout/index.js +16 -1
  76. package/dist/components/GridLayout/index.js.map +1 -0
  77. package/dist/components/Panel/DeletePanelDialog.d.ts +5 -0
  78. package/dist/components/Panel/DeletePanelDialog.d.ts.map +1 -0
  79. package/dist/components/Panel/DeletePanelDialog.js +80 -0
  80. package/dist/components/Panel/DeletePanelDialog.js.map +1 -0
  81. package/dist/components/Panel/Panel.d.ts +1 -1
  82. package/dist/components/Panel/Panel.d.ts.map +1 -1
  83. package/dist/components/Panel/Panel.js +181 -1
  84. package/dist/components/Panel/Panel.js.map +1 -0
  85. package/dist/components/Panel/Panel.test.js +74 -1
  86. package/dist/components/Panel/Panel.test.js.map +1 -0
  87. package/dist/components/Panel/PanelContent.d.ts +5 -4
  88. package/dist/components/Panel/PanelContent.d.ts.map +1 -1
  89. package/dist/components/Panel/PanelContent.js +41 -1
  90. package/dist/components/Panel/PanelContent.js.map +1 -0
  91. package/dist/components/Panel/index.js +15 -1
  92. package/dist/components/Panel/index.js.map +1 -0
  93. package/dist/components/PanelDrawer/PanelDrawer.d.ts +4 -2
  94. package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
  95. package/dist/components/PanelDrawer/PanelDrawer.js +96 -1
  96. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -0
  97. package/dist/components/PanelDrawer/PanelDrawer.test.js +99 -1
  98. package/dist/components/PanelDrawer/PanelDrawer.test.js.map +1 -0
  99. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +12 -0
  100. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -0
  101. package/dist/components/PanelDrawer/PanelEditorForm.js +184 -0
  102. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -0
  103. package/dist/components/PanelDrawer/PanelPreview.d.ts +4 -0
  104. package/dist/components/PanelDrawer/PanelPreview.d.ts.map +1 -0
  105. package/dist/components/PanelDrawer/PanelPreview.js +42 -0
  106. package/dist/components/PanelDrawer/PanelPreview.js.map +1 -0
  107. package/dist/components/PanelDrawer/index.d.ts +2 -0
  108. package/dist/components/PanelDrawer/index.d.ts.map +1 -0
  109. package/dist/components/PanelDrawer/index.js +15 -0
  110. package/dist/components/PanelDrawer/index.js.map +1 -0
  111. package/dist/components/PanelGroupDialog/DeletePanelGroupDialog.d.ts +4 -0
  112. package/dist/components/PanelGroupDialog/DeletePanelGroupDialog.d.ts.map +1 -0
  113. package/dist/components/PanelGroupDialog/DeletePanelGroupDialog.js +75 -0
  114. package/dist/components/PanelGroupDialog/DeletePanelGroupDialog.js.map +1 -0
  115. package/dist/components/PanelGroupDialog/PanelGroupDialog.d.ts.map +1 -1
  116. package/dist/components/PanelGroupDialog/PanelGroupDialog.js +131 -1
  117. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -0
  118. package/dist/components/PanelGroupDialog/PanelGroupDialog.test.js +74 -1
  119. package/dist/components/PanelGroupDialog/PanelGroupDialog.test.js.map +1 -0
  120. package/dist/components/TimeRangeControls/TimeRangeControls.js +137 -1
  121. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -0
  122. package/dist/components/TimeRangeControls/TimeRangeControls.test.js +59 -1
  123. package/dist/components/TimeRangeControls/TimeRangeControls.test.js.map +1 -0
  124. package/dist/components/TimeRangeControls/index.js +15 -1
  125. package/dist/components/TimeRangeControls/index.js.map +1 -0
  126. package/dist/components/Variables/Variable.d.ts.map +1 -1
  127. package/dist/components/Variables/Variable.js +210 -1
  128. package/dist/components/Variables/Variable.js.map +1 -0
  129. package/dist/components/Variables/VariableEditor.d.ts +8 -0
  130. package/dist/components/Variables/VariableEditor.d.ts.map +1 -0
  131. package/dist/components/Variables/VariableEditor.js +196 -0
  132. package/dist/components/Variables/VariableEditor.js.map +1 -0
  133. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts +8 -0
  134. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -0
  135. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +225 -0
  136. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -0
  137. package/dist/components/Variables/VariableEditorForm/index.d.ts +2 -0
  138. package/dist/components/Variables/VariableEditorForm/index.d.ts.map +1 -0
  139. package/dist/components/Variables/VariableEditorForm/index.js +15 -0
  140. package/dist/components/Variables/VariableEditorForm/index.js.map +1 -0
  141. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts +21 -0
  142. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts.map +1 -0
  143. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js +76 -0
  144. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js.map +1 -0
  145. package/dist/components/Variables/VariableList.d.ts.map +1 -1
  146. package/dist/components/Variables/VariableList.js +84 -1
  147. package/dist/components/Variables/VariableList.js.map +1 -0
  148. package/dist/components/Variables/index.d.ts +1 -0
  149. package/dist/components/Variables/index.d.ts.map +1 -1
  150. package/dist/components/Variables/index.js +17 -1
  151. package/dist/components/Variables/index.js.map +1 -0
  152. package/dist/components/index.d.ts +1 -0
  153. package/dist/components/index.d.ts.map +1 -1
  154. package/dist/components/index.js +20 -1
  155. package/dist/components/index.js.map +1 -0
  156. package/dist/context/DashboardProvider/DashboardProvider.d.ts +23 -0
  157. package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -0
  158. package/dist/context/DashboardProvider/DashboardProvider.js +52 -0
  159. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -0
  160. package/dist/context/DashboardProvider/common.d.ts +5 -0
  161. package/dist/context/DashboardProvider/common.d.ts.map +1 -0
  162. package/dist/context/DashboardProvider/common.js +17 -0
  163. package/dist/context/DashboardProvider/common.js.map +1 -0
  164. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts +32 -0
  165. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts.map +1 -0
  166. package/dist/context/DashboardProvider/dashboard-provider-api.js +56 -0
  167. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -0
  168. package/dist/context/DashboardProvider/index.d.ts +3 -0
  169. package/dist/context/DashboardProvider/index.d.ts.map +1 -0
  170. package/dist/context/DashboardProvider/index.js +16 -0
  171. package/dist/context/DashboardProvider/index.js.map +1 -0
  172. package/dist/context/DashboardProvider/layout-slice.d.ts +57 -0
  173. package/dist/context/DashboardProvider/layout-slice.d.ts.map +1 -0
  174. package/dist/context/DashboardProvider/layout-slice.js +196 -0
  175. package/dist/context/DashboardProvider/layout-slice.js.map +1 -0
  176. package/dist/context/DashboardProvider/panel-editing-slice.d.ts +70 -0
  177. package/dist/context/DashboardProvider/panel-editing-slice.d.ts.map +1 -0
  178. package/dist/context/DashboardProvider/panel-editing-slice.js +152 -0
  179. package/dist/context/DashboardProvider/panel-editing-slice.js.map +1 -0
  180. package/dist/context/DashboardProvider/panel-group-slice.d.ts +15 -0
  181. package/dist/context/DashboardProvider/panel-group-slice.d.ts.map +1 -0
  182. package/dist/context/DashboardProvider/panel-group-slice.js +32 -0
  183. package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -0
  184. package/dist/context/DatasourceStoreProvider.d.ts +24 -0
  185. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -0
  186. package/dist/context/DatasourceStoreProvider.js +166 -0
  187. package/dist/context/DatasourceStoreProvider.js.map +1 -0
  188. package/dist/context/QueryStringProvider.js +40 -1
  189. package/dist/context/QueryStringProvider.js.map +1 -0
  190. package/dist/context/TemplateVariableProvider.d.ts +8 -3
  191. package/dist/context/TemplateVariableProvider.d.ts.map +1 -1
  192. package/dist/context/TemplateVariableProvider.js +199 -1
  193. package/dist/context/TemplateVariableProvider.js.map +1 -0
  194. package/dist/context/TimeRangeProvider.js +72 -1
  195. package/dist/context/TimeRangeProvider.js.map +1 -0
  196. package/dist/context/index.d.ts +3 -4
  197. package/dist/context/index.d.ts.map +1 -1
  198. package/dist/context/index.js +19 -1
  199. package/dist/context/index.js.map +1 -0
  200. package/dist/css/styles.js +186 -1
  201. package/dist/css/styles.js.map +1 -0
  202. package/dist/index.js +17 -1
  203. package/dist/index.js.map +1 -0
  204. package/dist/test/dashboard-provider.d.ts +19 -0
  205. package/dist/test/dashboard-provider.d.ts.map +1 -0
  206. package/dist/test/dashboard-provider.js +40 -0
  207. package/dist/test/dashboard-provider.js.map +1 -0
  208. package/dist/test/index.d.ts +1 -0
  209. package/dist/test/index.d.ts.map +1 -1
  210. package/dist/test/index.js +17 -1
  211. package/dist/test/index.js.map +1 -0
  212. package/dist/test/plugin-registry.d.ts +3 -4
  213. package/dist/test/plugin-registry.d.ts.map +1 -1
  214. package/dist/test/plugin-registry.js +74 -1
  215. package/dist/test/plugin-registry.js.map +1 -0
  216. package/dist/test/render.d.ts +1 -2
  217. package/dist/test/render.d.ts.map +1 -1
  218. package/dist/test/render.js +34 -1
  219. package/dist/test/render.js.map +1 -0
  220. package/dist/test/setup-tests.js +18 -1
  221. package/dist/test/setup-tests.js.map +1 -0
  222. package/dist/test/testDashboard.d.ts.map +1 -1
  223. package/dist/test/testDashboard.js +286 -1
  224. package/dist/test/testDashboard.js.map +1 -0
  225. package/dist/utils/functions.js +17 -1
  226. package/dist/utils/functions.js.map +1 -0
  227. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  228. package/dist/views/ViewDashboard/DashboardApp.js +55 -1
  229. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -0
  230. package/dist/views/ViewDashboard/ViewDashboard.d.ts +2 -0
  231. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  232. package/dist/views/ViewDashboard/ViewDashboard.js +79 -1
  233. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -0
  234. package/dist/views/ViewDashboard/index.js +15 -1
  235. package/dist/views/ViewDashboard/index.js.map +1 -0
  236. package/dist/views/ViewDashboard/tests/panelGroups.test.d.ts +2 -0
  237. package/dist/views/ViewDashboard/tests/panelGroups.test.d.ts.map +1 -0
  238. package/dist/views/ViewDashboard/tests/panelGroups.test.js +158 -0
  239. package/dist/views/ViewDashboard/tests/panelGroups.test.js.map +1 -0
  240. package/dist/views/index.js +15 -1
  241. package/dist/views/index.js.map +1 -0
  242. package/package.json +13 -7
  243. package/dist/cjs/components/PanelDrawer/PanelOptionsEditor.js +0 -19
  244. package/dist/cjs/context/DashboardAppSlice.js +0 -45
  245. package/dist/cjs/context/DashboardProvider.js +0 -98
  246. package/dist/cjs/context/LayoutsSlice.js +0 -42
  247. package/dist/components/PanelDrawer/PanelOptionsEditor.d.ts +0 -9
  248. package/dist/components/PanelDrawer/PanelOptionsEditor.d.ts.map +0 -1
  249. package/dist/components/PanelDrawer/PanelOptionsEditor.js +0 -1
  250. package/dist/context/DashboardAppSlice.d.ts +0 -26
  251. package/dist/context/DashboardAppSlice.d.ts.map +0 -1
  252. package/dist/context/DashboardAppSlice.js +0 -1
  253. package/dist/context/DashboardProvider.d.ts +0 -34
  254. package/dist/context/DashboardProvider.d.ts.map +0 -1
  255. package/dist/context/DashboardProvider.js +0 -1
  256. package/dist/context/LayoutsSlice.d.ts +0 -12
  257. package/dist/context/LayoutsSlice.d.ts.map +0 -1
  258. package/dist/context/LayoutsSlice.js +0 -1
@@ -1 +1,84 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useState}from"react";import{Button,Stack,Box,Drawer,TableContainer,TableBody,TableRow,TableCell,Table,Paper,TableHead}from"@mui/material";import{useTemplateVariableDefinitions,useEditMode}from"../../context";import{TemplateVariable}from"./Variable";export function TemplateVariableList(){const[e,a]=useState(!1),l=useTemplateVariableDefinitions(),{isEditMode:i}=useEditMode();return _jsxs(Box,{m:2,children:[_jsx(Drawer,{anchor:"right",open:e,onClose:()=>a(!1),children:_jsxs(Box,{width:900,p:4,children:[_jsx(TableContainer,{component:Paper,children:_jsxs(Table,{sx:{minWidth:650},"aria-label":"simple table",children:[_jsx(TableHead,{children:_jsxs(TableRow,{children:[_jsx(TableCell,{children:"Variable Name"}),_jsx(TableCell,{align:"right",children:"Type"})]})}),_jsx(TableBody,{children:l.map((e=>_jsxs(TableRow,{sx:{"&:last-child td, &:last-child th":{border:0}},children:[_jsx(TableCell,{component:"th",scope:"row",sx:{fontWeight:"bold"},children:e.name}),_jsx(TableCell,{align:"right",children:e.kind})]},e.name)))})]})}),_jsx("pre",{children:JSON.stringify(l,null,2)})]})}),_jsx(Box,{display:"flex",justifyContent:"space-between",children:_jsxs(Stack,{direction:"row",spacing:2,children:[l.map((e=>_jsx(Box,{children:_jsx(TemplateVariable,{name:e.name},e.name)},e.name))),i&&_jsx(Button,{onClick:()=>a(!0),children:"Modify Variables"})]})})]})}
1
+ // Copyright 2022 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import { useState } from 'react';
15
+ import { Button, Stack, Box, Drawer } from '@mui/material';
16
+ import EyeIcon from 'mdi-material-ui/Eye';
17
+ import PencilIcon from 'mdi-material-ui/Pencil';
18
+ import { useTemplateVariableDefinitions, useEditMode, useTemplateVariableActions } from '../../context';
19
+ import { TemplateVariable } from './Variable';
20
+ import { VariableEditor } from './VariableEditor';
21
+ export function TemplateVariableList() {
22
+ const [isEditing, setIsEditing] = useState(false);
23
+ const variableDefinitions = useTemplateVariableDefinitions();
24
+ const { isEditMode } = useEditMode();
25
+ const [showVariablesInEditMode, setShowVariablesInEditMode] = useState(true);
26
+ const showVariables = isEditMode ? showVariablesInEditMode : true;
27
+ const { setVariableDefinitions } = useTemplateVariableActions();
28
+ return /*#__PURE__*/ _jsxs(Box, {
29
+ m: 2,
30
+ children: [
31
+ /*#__PURE__*/ _jsx(Drawer, {
32
+ anchor: 'right',
33
+ open: isEditing,
34
+ children: /*#__PURE__*/ _jsx(VariableEditor, {
35
+ onCancel: ()=>{
36
+ setIsEditing(false);
37
+ },
38
+ variableDefinitions: variableDefinitions,
39
+ onChange: (v)=>{
40
+ setVariableDefinitions(v);
41
+ setIsEditing(false);
42
+ }
43
+ })
44
+ }),
45
+ isEditMode && /*#__PURE__*/ _jsxs(Box, {
46
+ pb: 2,
47
+ children: [
48
+ /*#__PURE__*/ _jsxs(Button, {
49
+ onClick: ()=>setShowVariablesInEditMode(!showVariablesInEditMode),
50
+ startIcon: /*#__PURE__*/ _jsx(EyeIcon, {}),
51
+ children: [
52
+ showVariablesInEditMode ? 'Hide' : 'Show',
53
+ " Variables"
54
+ ]
55
+ }),
56
+ /*#__PURE__*/ _jsx(Button, {
57
+ onClick: ()=>setIsEditing(true),
58
+ startIcon: /*#__PURE__*/ _jsx(PencilIcon, {}),
59
+ children: "Edit Variables"
60
+ })
61
+ ]
62
+ }),
63
+ /*#__PURE__*/ _jsx(Box, {
64
+ display: 'flex',
65
+ justifyContent: "space-between",
66
+ children: /*#__PURE__*/ _jsx(Stack, {
67
+ direction: 'row',
68
+ spacing: 2,
69
+ children: showVariables && variableDefinitions.map((v)=>{
70
+ var ref;
71
+ /*#__PURE__*/ return _jsx(Box, {
72
+ display: ((ref = v.spec.display) === null || ref === void 0 ? void 0 : ref.hidden) ? 'none' : undefined,
73
+ children: /*#__PURE__*/ _jsx(TemplateVariable, {
74
+ name: v.spec.name
75
+ }, v.spec.name)
76
+ }, v.spec.name);
77
+ })
78
+ })
79
+ })
80
+ ]
81
+ });
82
+ }
83
+
84
+ //# sourceMappingURL=VariableList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Variables/VariableList.tsx"],"sourcesContent":["// Copyright 2022 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 { Button, Stack, Box, Drawer } from '@mui/material';\nimport EyeIcon from 'mdi-material-ui/Eye';\nimport PencilIcon from 'mdi-material-ui/Pencil';\n\nimport { useTemplateVariableDefinitions, useEditMode, useTemplateVariableActions } from '../../context';\nimport { TemplateVariable } from './Variable';\nimport { VariableEditor } from './VariableEditor';\n\nexport function TemplateVariableList() {\n const [isEditing, setIsEditing] = useState(false);\n const variableDefinitions = useTemplateVariableDefinitions();\n const { isEditMode } = useEditMode();\n const [showVariablesInEditMode, setShowVariablesInEditMode] = useState(true);\n const showVariables = isEditMode ? showVariablesInEditMode : true;\n const { setVariableDefinitions } = useTemplateVariableActions();\n\n return (\n <Box m={2}>\n <Drawer anchor={'right'} open={isEditing}>\n <VariableEditor\n onCancel={() => {\n setIsEditing(false);\n }}\n variableDefinitions={variableDefinitions}\n onChange={(v) => {\n setVariableDefinitions(v);\n setIsEditing(false);\n }}\n />\n </Drawer>\n {isEditMode && (\n <Box pb={2}>\n <Button onClick={() => setShowVariablesInEditMode(!showVariablesInEditMode)} startIcon={<EyeIcon />}>\n {showVariablesInEditMode ? 'Hide' : 'Show'} Variables\n </Button>\n <Button onClick={() => setIsEditing(true)} startIcon={<PencilIcon />}>\n Edit Variables\n </Button>\n </Box>\n )}\n <Box display={'flex'} justifyContent=\"space-between\">\n <Stack direction={'row'} spacing={2}>\n {showVariables &&\n variableDefinitions.map((v) => (\n <Box key={v.spec.name} display={v.spec.display?.hidden ? 'none' : undefined}>\n <TemplateVariable key={v.spec.name} name={v.spec.name} />\n </Box>\n ))}\n </Stack>\n </Box>\n </Box>\n );\n}\n"],"names":["useState","Button","Stack","Box","Drawer","EyeIcon","PencilIcon","useTemplateVariableDefinitions","useEditMode","useTemplateVariableActions","TemplateVariable","VariableEditor","TemplateVariableList","isEditing","setIsEditing","variableDefinitions","isEditMode","showVariablesInEditMode","setShowVariablesInEditMode","showVariables","setVariableDefinitions","m","anchor","open","onCancel","onChange","v","pb","onClick","startIcon","display","justifyContent","direction","spacing","map","spec","hidden","undefined","name"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC;AAAA,SAASA,QAAQ,QAAQ,OAAO,CAAC;AACjC,SAASC,MAAM,EAAEC,KAAK,EAAEC,GAAG,EAAEC,MAAM,QAAQ,eAAe,CAAC;AAC3D,OAAOC,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAOC,UAAU,MAAM,wBAAwB,CAAC;AAEhD,SAASC,8BAA8B,EAAEC,WAAW,EAAEC,0BAA0B,QAAQ,eAAe,CAAC;AACxG,SAASC,gBAAgB,QAAQ,YAAY,CAAC;AAC9C,SAASC,cAAc,QAAQ,kBAAkB,CAAC;AAElD,OAAO,SAASC,oBAAoB,GAAG;IACrC,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGd,QAAQ,CAAC,KAAK,CAAC,AAAC;IAClD,MAAMe,mBAAmB,GAAGR,8BAA8B,EAAE,AAAC;IAC7D,MAAM,EAAES,UAAU,CAAA,EAAE,GAAGR,WAAW,EAAE,AAAC;IACrC,MAAM,CAACS,uBAAuB,EAAEC,0BAA0B,CAAC,GAAGlB,QAAQ,CAAC,IAAI,CAAC,AAAC;IAC7E,MAAMmB,aAAa,GAAGH,UAAU,GAAGC,uBAAuB,GAAG,IAAI,AAAC;IAClE,MAAM,EAAEG,sBAAsB,CAAA,EAAE,GAAGX,0BAA0B,EAAE,AAAC;IAEhE,qBACE,MAACN,GAAG;QAACkB,CAAC,EAAE,CAAC;;0BACP,KAACjB,MAAM;gBAACkB,MAAM,EAAE,OAAO;gBAAEC,IAAI,EAAEV,SAAS;0BACtC,cAAA,KAACF,cAAc;oBACba,QAAQ,EAAE,IAAM;wBACdV,YAAY,CAAC,KAAK,CAAC,CAAC;oBACtB,CAAC;oBACDC,mBAAmB,EAAEA,mBAAmB;oBACxCU,QAAQ,EAAE,CAACC,CAAC,GAAK;wBACfN,sBAAsB,CAACM,CAAC,CAAC,CAAC;wBAC1BZ,YAAY,CAAC,KAAK,CAAC,CAAC;oBACtB,CAAC;kBACD;cACK;YACRE,UAAU,kBACT,MAACb,GAAG;gBAACwB,EAAE,EAAE,CAAC;;kCACR,MAAC1B,MAAM;wBAAC2B,OAAO,EAAE,IAAMV,0BAA0B,CAAC,CAACD,uBAAuB,CAAC;wBAAEY,SAAS,gBAAE,KAACxB,OAAO,KAAG;;4BAChGY,uBAAuB,GAAG,MAAM,GAAG,MAAM;4BAAC,YAC7C;;sBAAS;kCACT,KAAChB,MAAM;wBAAC2B,OAAO,EAAE,IAAMd,YAAY,CAAC,IAAI,CAAC;wBAAEe,SAAS,gBAAE,KAACvB,UAAU,KAAG;kCAAE,gBAEtE;sBAAS;;cACL,AACP;0BACD,KAACH,GAAG;gBAAC2B,OAAO,EAAE,MAAM;gBAAEC,cAAc,EAAC,eAAe;0BAClD,cAAA,KAAC7B,KAAK;oBAAC8B,SAAS,EAAE,KAAK;oBAAEC,OAAO,EAAE,CAAC;8BAChCd,aAAa,IACZJ,mBAAmB,CAACmB,GAAG,CAAC,CAACR,CAAC;4BACQA,GAAc;sCAA9C,OAAA,KAACvB,GAAG;4BAAmB2B,OAAO,EAAEJ,CAAAA,CAAAA,GAAc,GAAdA,CAAC,CAACS,IAAI,CAACL,OAAO,cAAdJ,GAAc,WAAQ,GAAtBA,KAAAA,CAAsB,GAAtBA,GAAc,CAAEU,MAAM,CAAA,GAAG,MAAM,GAAGC,SAAS;sCACzE,cAAA,KAAC3B,gBAAgB;gCAAmB4B,IAAI,EAAEZ,CAAC,CAACS,IAAI,CAACG,IAAI;+BAA9BZ,CAAC,CAACS,IAAI,CAACG,IAAI,CAAuB;2BADjDZ,CAAC,CAACS,IAAI,CAACG,IAAI,CAEf,CAAA;qBACP,CAAC;kBACE;cACJ;;MACF,CACN;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './Variable';
2
2
  export * from './VariableList';
3
+ export * from './VariableEditorForm';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/index.tsx"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/index.tsx"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
@@ -1 +1,17 @@
1
- export*from"./Variable";export*from"./VariableList";
1
+ // Copyright 2022 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ export * from './Variable';
14
+ export * from './VariableList';
15
+ export * from './VariableEditorForm';
16
+
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Variables/index.tsx"],"sourcesContent":["// Copyright 2022 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 './Variable';\nexport * from './VariableList';\nexport * from './VariableEditorForm';\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,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export * from './Dashboard';
2
2
  export * from './GridLayout';
3
3
  export * from './Panel';
4
+ export * from './PanelDrawer';
4
5
  export * from './TimeRangeControls';
5
6
  export * from './Variables';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAaA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAaA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
@@ -1 +1,20 @@
1
- export*from"./Dashboard";export*from"./GridLayout";export*from"./Panel";export*from"./TimeRangeControls";export*from"./Variables";
1
+ // Copyright 2022 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ export * from './Dashboard';
14
+ export * from './GridLayout';
15
+ export * from './Panel';
16
+ export * from './PanelDrawer';
17
+ export * from './TimeRangeControls';
18
+ export * from './Variables';
19
+
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["// Copyright 2022 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 './Dashboard';\nexport * from './GridLayout';\nexport * from './Panel';\nexport * from './PanelDrawer';\nexport * from './TimeRangeControls';\nexport * from './Variables';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,23 @@
1
+ /// <reference types="react" />
2
+ import type { StoreApi } from 'zustand';
3
+ import { DashboardSpec, DurationString } from '@perses-dev/core';
4
+ import { PanelGroupSlice } from './panel-group-slice';
5
+ import { LayoutSlice } from './layout-slice';
6
+ import { PanelEditorSlice } from './panel-editing-slice';
7
+ export interface DashboardStoreState extends PanelGroupSlice, LayoutSlice, PanelEditorSlice {
8
+ defaultTimeRange: DurationString;
9
+ isEditMode: boolean;
10
+ setEditMode: (isEditMode: boolean) => void;
11
+ }
12
+ export interface DashboardStoreProps {
13
+ dashboardSpec: DashboardSpec;
14
+ isEditMode?: boolean;
15
+ }
16
+ export interface DashboardProviderProps {
17
+ initialState: DashboardStoreProps;
18
+ children?: React.ReactNode;
19
+ }
20
+ export declare const DashboardContext: import("react").Context<StoreApi<DashboardStoreState> | undefined>;
21
+ export declare function useDashboardStore<T>(selector: (state: DashboardStoreState) => T): T;
22
+ export declare function DashboardProvider(props: DashboardProviderProps): JSX.Element;
23
+ //# sourceMappingURL=DashboardProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardProvider.d.ts","sourceRoot":"","sources":["../../../src/context/DashboardProvider/DashboardProvider.tsx"],"names":[],"mappings":";AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAyB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAqB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAA0B,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,MAAM,WAAW,mBAAoB,SAAQ,eAAe,EAAE,WAAW,EAAE,gBAAgB;IACzF,gBAAgB,EAAE,cAAc,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,oEAAsE,CAAC;AAEpG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,CAAC,KAM/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,eA6B9D"}
@@ -0,0 +1,52 @@
1
+ // Copyright 2022 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { createStore, useStore } from 'zustand';
15
+ import { devtools } from 'zustand/middleware';
16
+ import { immer } from 'zustand/middleware/immer';
17
+ import shallow from 'zustand/shallow';
18
+ import { createContext, useContext } from 'react';
19
+ import { createPanelGroupSlice } from './panel-group-slice';
20
+ import { createLayoutSlice } from './layout-slice';
21
+ import { createPanelEditorSlice } from './panel-editing-slice';
22
+ export const DashboardContext = /*#__PURE__*/ createContext(undefined);
23
+ export function useDashboardStore(selector) {
24
+ const store = useContext(DashboardContext);
25
+ if (store === undefined) {
26
+ throw new Error('No DashboardContext found. Did you forget a Provider?');
27
+ }
28
+ return useStore(store, selector, shallow);
29
+ }
30
+ export function DashboardProvider(props) {
31
+ const { children , initialState: { dashboardSpec , isEditMode } , } = props;
32
+ const { layouts , panels } = dashboardSpec;
33
+ const dashboardStore = createStore()(immer(devtools((...args)=>{
34
+ const [set] = args;
35
+ return {
36
+ ...createPanelGroupSlice(...args),
37
+ ...createLayoutSlice(layouts)(...args),
38
+ ...createPanelEditorSlice(panels)(...args),
39
+ defaultTimeRange: dashboardSpec.duration,
40
+ isEditMode: !!isEditMode,
41
+ setEditMode: (isEditMode)=>set({
42
+ isEditMode
43
+ })
44
+ };
45
+ })));
46
+ return /*#__PURE__*/ _jsx(DashboardContext.Provider, {
47
+ value: dashboardStore,
48
+ children: children
49
+ });
50
+ }
51
+
52
+ //# sourceMappingURL=DashboardProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/DashboardProvider/DashboardProvider.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createStore, useStore } from 'zustand';\nimport type { StoreApi } from 'zustand';\nimport { devtools } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\nimport shallow from 'zustand/shallow';\nimport { createContext, useContext } from 'react';\nimport { DashboardSpec, DurationString } from '@perses-dev/core';\nimport { createPanelGroupSlice, PanelGroupSlice } from './panel-group-slice';\nimport { createLayoutSlice, LayoutSlice } from './layout-slice';\nimport { createPanelEditorSlice, PanelEditorSlice } from './panel-editing-slice';\n\nexport interface DashboardStoreState extends PanelGroupSlice, LayoutSlice, PanelEditorSlice {\n defaultTimeRange: DurationString;\n isEditMode: boolean;\n setEditMode: (isEditMode: boolean) => void;\n}\n\nexport interface DashboardStoreProps {\n dashboardSpec: DashboardSpec;\n isEditMode?: boolean;\n}\n\nexport interface DashboardProviderProps {\n initialState: DashboardStoreProps;\n children?: React.ReactNode;\n}\n\nexport const DashboardContext = createContext<StoreApi<DashboardStoreState> | undefined>(undefined);\n\nexport function useDashboardStore<T>(selector: (state: DashboardStoreState) => T) {\n const store = useContext(DashboardContext);\n if (store === undefined) {\n throw new Error('No DashboardContext found. Did you forget a Provider?');\n }\n return useStore(store, selector, shallow);\n}\n\nexport function DashboardProvider(props: DashboardProviderProps) {\n const {\n children,\n initialState: { dashboardSpec, isEditMode },\n } = props;\n\n const { layouts, panels } = dashboardSpec;\n\n const dashboardStore = createStore<DashboardStoreState>()(\n immer(\n devtools((...args) => {\n const [set] = args;\n return {\n ...createPanelGroupSlice(...args),\n ...createLayoutSlice(layouts)(...args),\n ...createPanelEditorSlice(panels)(...args),\n defaultTimeRange: dashboardSpec.duration,\n isEditMode: !!isEditMode,\n setEditMode: (isEditMode: boolean) => set({ isEditMode }),\n };\n })\n )\n );\n\n return (\n <DashboardContext.Provider value={dashboardStore as StoreApi<DashboardStoreState>}>\n {children}\n </DashboardContext.Provider>\n );\n}\n"],"names":["createStore","useStore","devtools","immer","shallow","createContext","useContext","createPanelGroupSlice","createLayoutSlice","createPanelEditorSlice","DashboardContext","undefined","useDashboardStore","selector","store","Error","DashboardProvider","props","children","initialState","dashboardSpec","isEditMode","layouts","panels","dashboardStore","args","set","defaultTimeRange","duration","setEditMode","Provider","value"],"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,WAAW,EAAEC,QAAQ,QAAQ,SAAS,CAAC;AAEhD,SAASC,QAAQ,QAAQ,oBAAoB,CAAC;AAC9C,SAASC,KAAK,QAAQ,0BAA0B,CAAC;AACjD,OAAOC,OAAO,MAAM,iBAAiB,CAAC;AACtC,SAASC,aAAa,EAAEC,UAAU,QAAQ,OAAO,CAAC;AAElD,SAASC,qBAAqB,QAAyB,qBAAqB,CAAC;AAC7E,SAASC,iBAAiB,QAAqB,gBAAgB,CAAC;AAChE,SAASC,sBAAsB,QAA0B,uBAAuB,CAAC;AAkBjF,OAAO,MAAMC,gBAAgB,iBAAGL,aAAa,CAA4CM,SAAS,CAAC,CAAC;AAEpG,OAAO,SAASC,iBAAiB,CAAIC,QAA2C,EAAE;IAChF,MAAMC,KAAK,GAAGR,UAAU,CAACI,gBAAgB,CAAC,AAAC;IAC3C,IAAII,KAAK,KAAKH,SAAS,EAAE;QACvB,MAAM,IAAII,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAOd,QAAQ,CAACa,KAAK,EAAED,QAAQ,EAAET,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,SAASY,iBAAiB,CAACC,KAA6B,EAAE;IAC/D,MAAM,EACJC,QAAQ,CAAA,EACRC,YAAY,EAAE,EAAEC,aAAa,CAAA,EAAEC,UAAU,CAAA,EAAE,CAAA,IAC5C,GAAGJ,KAAK,AAAC;IAEV,MAAM,EAAEK,OAAO,CAAA,EAAEC,MAAM,CAAA,EAAE,GAAGH,aAAa,AAAC;IAE1C,MAAMI,cAAc,GAAGxB,WAAW,EAAuB,CACvDG,KAAK,CACHD,QAAQ,CAAC,CAAIuB,GAAAA,IAAI,GAAK;QACpB,MAAM,CAACC,GAAG,CAAC,GAAGD,IAAI,AAAC;QACnB,OAAO;YACL,GAAGlB,qBAAqB,IAAIkB,IAAI,CAAC;YACjC,GAAGjB,iBAAiB,CAACc,OAAO,CAAC,IAAIG,IAAI,CAAC;YACtC,GAAGhB,sBAAsB,CAACc,MAAM,CAAC,IAAIE,IAAI,CAAC;YAC1CE,gBAAgB,EAAEP,aAAa,CAACQ,QAAQ;YACxCP,UAAU,EAAE,CAAC,CAACA,UAAU;YACxBQ,WAAW,EAAE,CAACR,UAAmB,GAAKK,GAAG,CAAC;oBAAEL,UAAU;iBAAE,CAAC;SAC1D,CAAC;IACJ,CAAC,CAAC,CACH,CACF,AAAC;IAEF,qBACE,KAACX,gBAAgB,CAACoB,QAAQ;QAACC,KAAK,EAAEP,cAAc;kBAC7CN,QAAQ;MACiB,CAC5B;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * The middleware applied to the DashboardStore (can be used as generic argument in StateCreator).
3
+ */
4
+ export declare type Middleware = [['zustand/immer', never], ['zustand/devtools', never]];
5
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/context/DashboardProvider/common.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,oBAAY,UAAU,GAAG,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ // Copyright 2022 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ /**
14
+ * The middleware applied to the DashboardStore (can be used as generic argument in StateCreator).
15
+ */ export { };
16
+
17
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/DashboardProvider/common.ts"],"sourcesContent":["// Copyright 2022 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\n/**\n * The middleware applied to the DashboardStore (can be used as generic argument in StateCreator).\n */\nexport type Middleware = [['zustand/immer', never], ['zustand/devtools', never]];\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;;CAEC,GACD,WAAiF"}
@@ -0,0 +1,32 @@
1
+ export declare function useEditMode(): {
2
+ isEditMode: boolean;
3
+ setEditMode: (isEditMode: boolean) => void;
4
+ };
5
+ export declare function useLayouts(): {
6
+ layouts: import("./layout-slice").PanelGroupDefinition[];
7
+ addPanelToGroup: (panelKey: string, groupIndex: number) => void;
8
+ movePanelToGroup: (layoutItem: import("./layout-slice").LayoutItem, newGroupIndex: number) => void;
9
+ updatePanelGroup: (layout: Omit<import("./layout-slice").PanelGroupDefinition, "id">, groupIndex?: number | undefined) => void;
10
+ swapPanelGroups: (xIndex: number, yIndex: number) => void;
11
+ deletePanelGroup: (groupIndex: number) => void;
12
+ };
13
+ export declare function usePanelGroupDialog(): {
14
+ panelGroupDialog: import("./panel-group-slice").PanelGroupDialog | undefined;
15
+ openPanelGroupDialog: (groupIndex?: number | undefined) => void;
16
+ closePanelGroupDialog: () => void;
17
+ deletePanelGroupDialog: import("./panel-group-slice").PanelGroupDialog | undefined;
18
+ openDeletePanelGroupDialog: (groupIndex: number) => void;
19
+ closeDeletePanelGroupDialog: () => void;
20
+ };
21
+ export declare function usePanels(): {
22
+ panels: Record<string, import("@perses-dev/core").PanelDefinition<import("@perses-dev/core").UnknownSpec>>;
23
+ panelEditor: import("./panel-editing-slice").PanelEditorState | undefined;
24
+ addPanel: (initialGroup: number) => void;
25
+ editPanel: (item: import("./layout-slice").LayoutItem) => void;
26
+ deletePanels: (panels: import("./layout-slice").LayoutItem[]) => void;
27
+ deletePanelDialog: import("./panel-editing-slice").DeletePanelDialog | undefined;
28
+ openDeletePanelDialog: (item: import("./layout-slice").LayoutItem) => void;
29
+ closeDeletePanelDialog: () => void;
30
+ };
31
+ export declare function useDefaultTimeRange(): import("@perses-dev/core").DurationString;
32
+ //# sourceMappingURL=dashboard-provider-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-provider-api.d.ts","sourceRoot":"","sources":["../../../src/context/DashboardProvider/dashboard-provider-api.ts"],"names":[],"mappings":"AAeA,wBAAgB,WAAW;;;EAE1B;AAED,wBAAgB,UAAU;;;;;;;EAWzB;AAED,wBAAgB,mBAAmB;;;;;;;EAkBlC;AAED,wBAAgB,SAAS;;;;;;;;;EAsBxB;AAED,wBAAgB,mBAAmB,8CAElC"}
@@ -0,0 +1,56 @@
1
+ // Copyright 2022 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { useDashboardStore } from './DashboardProvider';
14
+ export function useEditMode() {
15
+ return useDashboardStore(({ isEditMode , setEditMode })=>({
16
+ isEditMode,
17
+ setEditMode
18
+ }));
19
+ }
20
+ export function useLayouts() {
21
+ return useDashboardStore(({ layouts , addPanelToGroup , movePanelToGroup , updatePanelGroup , swapPanelGroups , deletePanelGroup })=>({
22
+ layouts,
23
+ addPanelToGroup,
24
+ movePanelToGroup,
25
+ updatePanelGroup,
26
+ swapPanelGroups,
27
+ deletePanelGroup
28
+ }));
29
+ }
30
+ export function usePanelGroupDialog() {
31
+ return useDashboardStore(({ panelGroupDialog , openPanelGroupDialog , closePanelGroupDialog , deletePanelGroupDialog , openDeletePanelGroupDialog , closeDeletePanelGroupDialog , })=>({
32
+ panelGroupDialog,
33
+ openPanelGroupDialog,
34
+ closePanelGroupDialog,
35
+ deletePanelGroupDialog,
36
+ openDeletePanelGroupDialog,
37
+ closeDeletePanelGroupDialog
38
+ }));
39
+ }
40
+ export function usePanels() {
41
+ return useDashboardStore(({ panels , panelEditor , addPanel , editPanel , deletePanelDialog , deletePanels , openDeletePanelDialog , closeDeletePanelDialog , })=>({
42
+ panels,
43
+ panelEditor,
44
+ addPanel,
45
+ editPanel,
46
+ deletePanels,
47
+ deletePanelDialog,
48
+ openDeletePanelDialog,
49
+ closeDeletePanelDialog
50
+ }));
51
+ }
52
+ export function useDefaultTimeRange() {
53
+ return useDashboardStore((state)=>state.defaultTimeRange);
54
+ }
55
+
56
+ //# sourceMappingURL=dashboard-provider-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/DashboardProvider/dashboard-provider-api.ts"],"sourcesContent":["// Copyright 2022 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 { useDashboardStore } from './DashboardProvider';\n\nexport function useEditMode() {\n return useDashboardStore(({ isEditMode, setEditMode }) => ({ isEditMode, setEditMode }));\n}\n\nexport function useLayouts() {\n return useDashboardStore(\n ({ layouts, addPanelToGroup, movePanelToGroup, updatePanelGroup, swapPanelGroups, deletePanelGroup }) => ({\n layouts,\n addPanelToGroup,\n movePanelToGroup,\n updatePanelGroup,\n swapPanelGroups,\n deletePanelGroup,\n })\n );\n}\n\nexport function usePanelGroupDialog() {\n return useDashboardStore(\n ({\n panelGroupDialog,\n openPanelGroupDialog,\n closePanelGroupDialog,\n deletePanelGroupDialog,\n openDeletePanelGroupDialog,\n closeDeletePanelGroupDialog,\n }) => ({\n panelGroupDialog,\n openPanelGroupDialog,\n closePanelGroupDialog,\n deletePanelGroupDialog,\n openDeletePanelGroupDialog,\n closeDeletePanelGroupDialog,\n })\n );\n}\n\nexport function usePanels() {\n return useDashboardStore(\n ({\n panels,\n panelEditor,\n addPanel,\n editPanel,\n deletePanelDialog,\n deletePanels,\n openDeletePanelDialog,\n closeDeletePanelDialog,\n }) => ({\n panels,\n panelEditor,\n addPanel,\n editPanel,\n deletePanels,\n deletePanelDialog,\n openDeletePanelDialog,\n closeDeletePanelDialog,\n })\n );\n}\n\nexport function useDefaultTimeRange() {\n return useDashboardStore((state) => state.defaultTimeRange);\n}\n"],"names":["useDashboardStore","useEditMode","isEditMode","setEditMode","useLayouts","layouts","addPanelToGroup","movePanelToGroup","updatePanelGroup","swapPanelGroups","deletePanelGroup","usePanelGroupDialog","panelGroupDialog","openPanelGroupDialog","closePanelGroupDialog","deletePanelGroupDialog","openDeletePanelGroupDialog","closeDeletePanelGroupDialog","usePanels","panels","panelEditor","addPanel","editPanel","deletePanelDialog","deletePanels","openDeletePanelDialog","closeDeletePanelDialog","useDefaultTimeRange","state","defaultTimeRange"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,iBAAiB,QAAQ,qBAAqB,CAAC;AAExD,OAAO,SAASC,WAAW,GAAG;IAC5B,OAAOD,iBAAiB,CAAC,CAAC,EAAEE,UAAU,CAAA,EAAEC,WAAW,CAAA,EAAE,GAAM,CAAA;YAAED,UAAU;YAAEC,WAAW;SAAE,CAAA,AAAC,CAAC,CAAC;AAC3F,CAAC;AAED,OAAO,SAASC,UAAU,GAAG;IAC3B,OAAOJ,iBAAiB,CACtB,CAAC,EAAEK,OAAO,CAAA,EAAEC,eAAe,CAAA,EAAEC,gBAAgB,CAAA,EAAEC,gBAAgB,CAAA,EAAEC,eAAe,CAAA,EAAEC,gBAAgB,CAAA,EAAE,GAAM,CAAA;YACxGL,OAAO;YACPC,eAAe;YACfC,gBAAgB;YAChBC,gBAAgB;YAChBC,eAAe;YACfC,gBAAgB;SACjB,CAAA,AAAC,CACH,CAAC;AACJ,CAAC;AAED,OAAO,SAASC,mBAAmB,GAAG;IACpC,OAAOX,iBAAiB,CACtB,CAAC,EACCY,gBAAgB,CAAA,EAChBC,oBAAoB,CAAA,EACpBC,qBAAqB,CAAA,EACrBC,sBAAsB,CAAA,EACtBC,0BAA0B,CAAA,EAC1BC,2BAA2B,CAAA,IAC5B,GAAM,CAAA;YACLL,gBAAgB;YAChBC,oBAAoB;YACpBC,qBAAqB;YACrBC,sBAAsB;YACtBC,0BAA0B;YAC1BC,2BAA2B;SAC5B,CAAA,AAAC,CACH,CAAC;AACJ,CAAC;AAED,OAAO,SAASC,SAAS,GAAG;IAC1B,OAAOlB,iBAAiB,CACtB,CAAC,EACCmB,MAAM,CAAA,EACNC,WAAW,CAAA,EACXC,QAAQ,CAAA,EACRC,SAAS,CAAA,EACTC,iBAAiB,CAAA,EACjBC,YAAY,CAAA,EACZC,qBAAqB,CAAA,EACrBC,sBAAsB,CAAA,IACvB,GAAM,CAAA;YACLP,MAAM;YACNC,WAAW;YACXC,QAAQ;YACRC,SAAS;YACTE,YAAY;YACZD,iBAAiB;YACjBE,qBAAqB;YACrBC,sBAAsB;SACvB,CAAA,AAAC,CACH,CAAC;AACJ,CAAC;AAED,OAAO,SAASC,mBAAmB,GAAG;IACpC,OAAO3B,iBAAiB,CAAC,CAAC4B,KAAK,GAAKA,KAAK,CAACC,gBAAgB,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './dashboard-provider-api';
2
+ export * from './DashboardProvider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/DashboardProvider/index.ts"],"names":[],"mappings":"AAaA,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ // Copyright 2022 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ export * from './dashboard-provider-api';
14
+ export * from './DashboardProvider';
15
+
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/DashboardProvider/index.ts"],"sourcesContent":["// Copyright 2022 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 './dashboard-provider-api';\nexport * from './DashboardProvider';\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,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { GridItemDefinition, LayoutDefinition } from '@perses-dev/core';
2
+ import { StateCreator } from 'zustand';
3
+ import { Middleware } from './common';
4
+ import { PanelEditorSlice } from './panel-editing-slice';
5
+ export interface LayoutSlice {
6
+ layouts: PanelGroupDefinition[];
7
+ /**
8
+ * Given a LayoutItem location, returns the panel's unique key at that location.
9
+ */
10
+ getPanelKey: (layoutItem: LayoutItem) => string;
11
+ /**
12
+ * Add a panel with the specified key to an existing group.
13
+ */
14
+ addPanelToGroup: (panelKey: string, groupIndex: number) => void;
15
+ /**
16
+ * Move an existing Panel to a new panel group.
17
+ */
18
+ movePanelToGroup: (layoutItem: LayoutItem, newGroupIndex: number) => void;
19
+ /**
20
+ * Updates an existing panel group to, for example, change its display properties.
21
+ */
22
+ updatePanelGroup: (layout: Omit<PanelGroupDefinition, 'id'>, groupIndex?: number) => void;
23
+ /**
24
+ * Rearrange the order of panel groups by swapping the positions
25
+ */
26
+ swapPanelGroups: (xIndex: number, yIndex: number) => void;
27
+ /**
28
+ * Delete panel group and all the panels within the group
29
+ */
30
+ deletePanelGroup: (groupIndex: number) => void;
31
+ /**
32
+ * Delete panel in panel group
33
+ */
34
+ deletePanelInPanelGroup: (layoutItem: LayoutItem) => void;
35
+ /**
36
+ * Map panel to panel groups
37
+ */
38
+ mapPanelToPanelGroups: () => Record<string, PanelGroupDefinition['id'][]>;
39
+ }
40
+ export interface PanelGroupDefinition {
41
+ id: number;
42
+ items: GridItemDefinition[];
43
+ isCollapsed?: boolean;
44
+ title?: string;
45
+ }
46
+ /**
47
+ * The location of an item (e.g. a Panel) in layouts.
48
+ */
49
+ export interface LayoutItem {
50
+ groupIndex: number;
51
+ itemIndex: number;
52
+ }
53
+ /**
54
+ * Curried function for creating a LayoutEditorSlice.
55
+ */
56
+ export declare function createLayoutSlice(layouts: LayoutDefinition[]): StateCreator<LayoutSlice & PanelEditorSlice, Middleware, [], LayoutSlice>;
57
+ //# sourceMappingURL=layout-slice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-slice.d.ts","sourceRoot":"","sources":["../../../src/context/DashboardProvider/layout-slice.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAsC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAEhC;;OAEG;IACH,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,MAAM,CAAC;IAEhD;;OAEG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhE;;OAEG;IACH,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1E;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1F;;OAEG;IACH,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1D;;OAEG;IACH,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,uBAAuB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAE1D;;OAEG;IACH,qBAAqB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EAAE,GAC1B,YAAY,CAAC,WAAW,GAAG,gBAAgB,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,CAAC,CAiJ3E"}