@perses-dev/dashboards 0.0.0-snapshot-time-chart-rewrite-4667058 → 0.0.0-snapshot-panel-extra-content-3-17f9c42

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 (124) hide show
  1. package/dist/cjs/components/Dashboard/Dashboard.js +3 -2
  2. package/dist/cjs/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +12 -52
  3. package/dist/cjs/components/EditJsonDialog/EditJsonDialog.js +2 -1
  4. package/dist/cjs/components/GridLayout/GridItemContent.js +3 -1
  5. package/dist/cjs/components/GridLayout/GridLayout.js +1 -0
  6. package/dist/cjs/components/GridLayout/index.js +3 -1
  7. package/dist/cjs/components/Panel/Panel.js +8 -3
  8. package/dist/cjs/components/Panel/PanelHeader.js +7 -3
  9. package/dist/cjs/components/SaveDashboardButton/SaveDashboardButton.js +3 -1
  10. package/dist/cjs/components/Variables/EditVariablesButton.js +2 -0
  11. package/dist/cjs/components/Variables/TemplateVariable.js +22 -18
  12. package/dist/cjs/components/Variables/VariableEditor.js +271 -99
  13. package/dist/cjs/components/Variables/VariableList.js +38 -18
  14. package/dist/cjs/components/Variables/index.js +0 -2
  15. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +3 -2
  16. package/dist/cjs/context/DatasourceStoreProvider.js +22 -18
  17. package/dist/cjs/context/TemplateVariableProvider/TemplateVariableProvider.js +71 -24
  18. package/dist/cjs/context/TemplateVariableProvider/hydrationUtils.js +55 -5
  19. package/dist/cjs/context/TemplateVariableProvider/utils.js +39 -7
  20. package/dist/cjs/views/ViewDashboard/DashboardApp.js +1 -1
  21. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +6 -4
  22. package/dist/components/Dashboard/Dashboard.d.ts +3 -1
  23. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -1
  24. package/dist/components/Dashboard/Dashboard.js +3 -2
  25. package/dist/components/Dashboard/Dashboard.js.map +1 -1
  26. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.d.ts +1 -1
  27. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.d.ts.map +1 -1
  28. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +11 -46
  29. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js.map +1 -1
  30. package/dist/components/EditJsonDialog/EditJsonDialog.js +2 -1
  31. package/dist/components/EditJsonDialog/EditJsonDialog.js.map +1 -1
  32. package/dist/components/GridLayout/GridItemContent.d.ts +2 -0
  33. package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
  34. package/dist/components/GridLayout/GridItemContent.js +3 -1
  35. package/dist/components/GridLayout/GridItemContent.js.map +1 -1
  36. package/dist/components/GridLayout/GridLayout.d.ts +2 -0
  37. package/dist/components/GridLayout/GridLayout.d.ts.map +1 -1
  38. package/dist/components/GridLayout/GridLayout.js +1 -0
  39. package/dist/components/GridLayout/GridLayout.js.map +1 -1
  40. package/dist/components/GridLayout/index.d.ts +3 -1
  41. package/dist/components/GridLayout/index.d.ts.map +1 -1
  42. package/dist/components/GridLayout/index.js +3 -1
  43. package/dist/components/GridLayout/index.js.map +1 -1
  44. package/dist/components/Panel/Panel.d.ts +20 -0
  45. package/dist/components/Panel/Panel.d.ts.map +1 -1
  46. package/dist/components/Panel/Panel.js +8 -3
  47. package/dist/components/Panel/Panel.js.map +1 -1
  48. package/dist/components/Panel/PanelHeader.d.ts +2 -1
  49. package/dist/components/Panel/PanelHeader.d.ts.map +1 -1
  50. package/dist/components/Panel/PanelHeader.js +7 -3
  51. package/dist/components/Panel/PanelHeader.js.map +1 -1
  52. package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts.map +1 -1
  53. package/dist/components/SaveDashboardButton/SaveDashboardButton.js +3 -1
  54. package/dist/components/SaveDashboardButton/SaveDashboardButton.js.map +1 -1
  55. package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
  56. package/dist/components/Variables/EditVariablesButton.js +3 -1
  57. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  58. package/dist/components/Variables/TemplateVariable.d.ts +2 -1
  59. package/dist/components/Variables/TemplateVariable.d.ts.map +1 -1
  60. package/dist/components/Variables/TemplateVariable.js +21 -17
  61. package/dist/components/Variables/TemplateVariable.js.map +1 -1
  62. package/dist/components/Variables/VariableEditor.d.ts +7 -0
  63. package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
  64. package/dist/components/Variables/VariableEditor.js +261 -95
  65. package/dist/components/Variables/VariableEditor.js.map +1 -1
  66. package/dist/components/Variables/VariableList.d.ts +5 -0
  67. package/dist/components/Variables/VariableList.d.ts.map +1 -1
  68. package/dist/components/Variables/VariableList.js +31 -17
  69. package/dist/components/Variables/VariableList.js.map +1 -1
  70. package/dist/components/Variables/index.d.ts +0 -2
  71. package/dist/components/Variables/index.d.ts.map +1 -1
  72. package/dist/components/Variables/index.js +0 -2
  73. package/dist/components/Variables/index.js.map +1 -1
  74. package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
  75. package/dist/context/DashboardProvider/DashboardProvider.js +3 -2
  76. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  77. package/dist/context/DatasourceStoreProvider.d.ts +4 -3
  78. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  79. package/dist/context/DatasourceStoreProvider.js +22 -18
  80. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  81. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +39 -10
  82. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +1 -1
  83. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js +76 -27
  84. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +1 -1
  85. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts +9 -2
  86. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts.map +1 -1
  87. package/dist/context/TemplateVariableProvider/hydrationUtils.js +60 -5
  88. package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +1 -1
  89. package/dist/context/TemplateVariableProvider/utils.d.ts +27 -2
  90. package/dist/context/TemplateVariableProvider/utils.d.ts.map +1 -1
  91. package/dist/context/TemplateVariableProvider/utils.js +46 -4
  92. package/dist/context/TemplateVariableProvider/utils.js.map +1 -1
  93. package/dist/views/ViewDashboard/DashboardApp.js +2 -2
  94. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  95. package/dist/views/ViewDashboard/ViewDashboard.d.ts +2 -1
  96. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  97. package/dist/views/ViewDashboard/ViewDashboard.js +6 -4
  98. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  99. package/package.json +6 -6
  100. package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +0 -399
  101. package/dist/cjs/components/Variables/VariableEditorForm/VariablePreview.js +0 -178
  102. package/dist/cjs/components/Variables/VariableEditorForm/index.js +0 -29
  103. package/dist/cjs/components/Variables/VariableEditorForm/variable-editor-form-model.js +0 -91
  104. package/dist/cjs/components/Variables/variable-model.js +0 -117
  105. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts +0 -10
  106. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +0 -1
  107. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +0 -354
  108. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +0 -1
  109. package/dist/components/Variables/VariableEditorForm/VariablePreview.d.ts +0 -16
  110. package/dist/components/Variables/VariableEditorForm/VariablePreview.d.ts.map +0 -1
  111. package/dist/components/Variables/VariableEditorForm/VariablePreview.js +0 -122
  112. package/dist/components/Variables/VariableEditorForm/VariablePreview.js.map +0 -1
  113. package/dist/components/Variables/VariableEditorForm/index.d.ts +0 -3
  114. package/dist/components/Variables/VariableEditorForm/index.d.ts.map +0 -1
  115. package/dist/components/Variables/VariableEditorForm/index.js +0 -16
  116. package/dist/components/Variables/VariableEditorForm/index.js.map +0 -1
  117. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts +0 -23
  118. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts.map +0 -1
  119. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js +0 -79
  120. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js.map +0 -1
  121. package/dist/components/Variables/variable-model.d.ts +0 -16
  122. package/dist/components/Variables/variable-model.d.ts.map +0 -1
  123. package/dist/components/Variables/variable-model.js +0 -105
  124. package/dist/components/Variables/variable-model.js.map +0 -1
@@ -14,9 +14,15 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- Object.defineProperty(exports, "VariableEditor", {
18
- enumerable: true,
19
- get: ()=>VariableEditor
17
+ function _export(target, all) {
18
+ for(var name in all)Object.defineProperty(target, name, {
19
+ enumerable: true,
20
+ get: all[name]
21
+ });
22
+ }
23
+ _export(exports, {
24
+ VariableEditor: ()=>VariableEditor,
25
+ VariableName: ()=>VariableName
20
26
  });
21
27
  const _jsxRuntime = require("react/jsx-runtime");
22
28
  const _react = require("react");
@@ -27,9 +33,10 @@ const _pencil = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/Pe
27
33
  const _trashCan = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/TrashCan"));
28
34
  const _arrowUp = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/ArrowUp"));
29
35
  const _arrowDown = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/ArrowDown"));
36
+ const _contentDuplicate = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/ContentDuplicate"));
37
+ const _pluginSystem = require("@perses-dev/plugin-system");
30
38
  const _context = require("../../context");
31
- const _variableEditorForm = require("./VariableEditorForm");
32
- const _variableModel = require("./variable-model");
39
+ const _hydrationUtils = require("../../context/TemplateVariableProvider/hydrationUtils");
33
40
  function _interopRequireDefault(obj) {
34
41
  return obj && obj.__esModule ? obj : {
35
42
  default: obj
@@ -37,7 +44,7 @@ function _interopRequireDefault(obj) {
37
44
  }
38
45
  function getVariableLabelByKind(kind) {
39
46
  var ref;
40
- return (ref = _variableModel.VARIABLE_TYPES.find((variableType)=>variableType.kind === kind)) === null || ref === void 0 ? void 0 : ref.label;
47
+ return (ref = _pluginSystem.VARIABLE_TYPES.find((variableType)=>variableType.kind === kind)) === null || ref === void 0 ? void 0 : ref.label;
41
48
  }
42
49
  function getValidation(variableDefinitions) {
43
50
  const errors = [];
@@ -54,9 +61,19 @@ function getValidation(variableDefinitions) {
54
61
  function VariableEditor(props) {
55
62
  const [variableDefinitions, setVariableDefinitions] = (0, _useImmer.useImmer)(props.variableDefinitions);
56
63
  const [variableEditIdx, setVariableEditIdx] = (0, _react.useState)(null);
64
+ const [variableFormAction, setVariableFormAction] = (0, _react.useState)('update');
65
+ const externalVariableDefinitions = props.externalVariableDefinitions;
57
66
  const validation = (0, _react.useMemo)(()=>getValidation(variableDefinitions), [
58
67
  variableDefinitions
59
68
  ]);
69
+ const [variableState] = (0, _react.useMemo)(()=>{
70
+ return [
71
+ (0, _hydrationUtils.hydrateTemplateVariableStates)(variableDefinitions, {}, externalVariableDefinitions)
72
+ ];
73
+ }, [
74
+ externalVariableDefinitions,
75
+ variableDefinitions
76
+ ]);
60
77
  const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];
61
78
  const { openDiscardChangesConfirmationDialog , closeDiscardChangesConfirmationDialog } = (0, _context.useDiscardChangesConfirmationDialog)();
62
79
  const handleCancel = ()=>{
@@ -81,6 +98,7 @@ function VariableEditor(props) {
81
98
  });
82
99
  };
83
100
  const addVariable = ()=>{
101
+ setVariableFormAction('create');
84
102
  setVariableDefinitions((draft)=>{
85
103
  draft.push({
86
104
  kind: 'TextVariable',
@@ -92,6 +110,10 @@ function VariableEditor(props) {
92
110
  });
93
111
  setVariableEditIdx(variableDefinitions.length);
94
112
  };
113
+ const editVariable = (index)=>{
114
+ setVariableFormAction('update');
115
+ setVariableEditIdx(index);
116
+ };
95
117
  const toggleVariableVisibility = (index, visible)=>{
96
118
  setVariableDefinitions((draft)=>{
97
119
  const v = draft[index];
@@ -128,10 +150,15 @@ function VariableEditor(props) {
128
150
  }
129
151
  });
130
152
  };
131
- var ref;
153
+ const overrideVariable = (v)=>{
154
+ setVariableDefinitions((draft)=>{
155
+ draft.push(v);
156
+ });
157
+ };
158
+ var ref, ref1;
132
159
  return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
133
160
  children: [
134
- currentEditingVariableDefinition && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_variableEditorForm.VariableEditForm, {
161
+ currentEditingVariableDefinition && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginSystem.VariableEditForm, {
135
162
  initialVariableDefinition: currentEditingVariableDefinition,
136
163
  onChange: (definition)=>{
137
164
  setVariableDefinitions((draft)=>{
@@ -139,7 +166,13 @@ function VariableEditor(props) {
139
166
  setVariableEditIdx(null);
140
167
  });
141
168
  },
142
- onCancel: ()=>setVariableEditIdx(null)
169
+ onCancel: ()=>{
170
+ if (variableFormAction === 'create') {
171
+ removeVariable(variableEditIdx);
172
+ }
173
+ setVariableEditIdx(null);
174
+ },
175
+ action: variableFormAction
143
176
  }),
144
177
  !currentEditingVariableDefinition && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
145
178
  children: [
@@ -153,7 +186,7 @@ function VariableEditor(props) {
153
186
  children: [
154
187
  /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
155
188
  variant: "h2",
156
- children: "Variables"
189
+ children: "Dashboard Variables"
157
190
  }),
158
191
  /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
159
192
  direction: "row",
@@ -178,113 +211,226 @@ function VariableEditor(props) {
178
211
  })
179
212
  ]
180
213
  }),
181
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
214
+ /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
182
215
  padding: 2,
183
216
  sx: {
184
217
  overflowY: 'scroll'
185
218
  },
186
- children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
187
- spacing: 2,
188
- children: [
189
- !validation.isValid && validation.errors.map((error)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Alert, {
190
- severity: "error",
191
- children: error
192
- }, error)),
193
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableContainer, {
194
- children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Table, {
195
- sx: {
196
- minWidth: 650
197
- },
198
- "aria-label": "table of variables",
199
- children: [
200
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableHead, {
201
- children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.TableRow, {
202
- children: [
203
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
204
- children: "Visibility"
205
- }),
206
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
207
- children: "Name"
208
- }),
209
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
210
- children: "Type"
211
- }),
212
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
213
- align: "right"
214
- })
215
- ]
216
- })
217
- }),
218
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableBody, {
219
- children: variableDefinitions.map((v, idx)=>{
220
- var ref1;
221
- /*#__PURE__*/ return (0, _jsxRuntime.jsxs)(_material.TableRow, {
219
+ children: [
220
+ /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
221
+ spacing: 2,
222
+ children: [
223
+ !validation.isValid && validation.errors.map((error)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Alert, {
224
+ severity: "error",
225
+ children: error
226
+ }, error)),
227
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableContainer, {
228
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Table, {
229
+ sx: {
230
+ minWidth: 650
231
+ },
232
+ "aria-label": "table of variables",
233
+ children: [
234
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableHead, {
235
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.TableRow, {
222
236
  children: [
223
237
  /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
224
- component: "th",
225
- scope: "row",
226
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
227
- checked: ((ref1 = v.spec.display) === null || ref1 === void 0 ? void 0 : ref1.hidden) !== true,
228
- onChange: (e)=>{
229
- toggleVariableVisibility(idx, e.target.checked);
230
- }
231
- })
238
+ children: "Visibility"
232
239
  }),
233
240
  /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
234
- component: "th",
235
- scope: "row",
236
- sx: {
237
- fontWeight: 'bold'
238
- },
239
- children: v.spec.name
241
+ children: "Name"
240
242
  }),
241
243
  /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
242
- children: (ref = getVariableLabelByKind(v.kind)) !== null && ref !== void 0 ? ref : v.kind
244
+ children: "Type"
243
245
  }),
244
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(TableCell, {
245
- align: "right",
246
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
247
+ align: "right"
248
+ })
249
+ ]
250
+ })
251
+ }),
252
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableBody, {
253
+ children: variableDefinitions.map((v, idx)=>{
254
+ var ref1;
255
+ /*#__PURE__*/ return (0, _jsxRuntime.jsxs)(_material.TableRow, {
256
+ children: [
257
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
258
+ component: "th",
259
+ scope: "row",
260
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
261
+ checked: ((ref1 = v.spec.display) === null || ref1 === void 0 ? void 0 : ref1.hidden) !== true,
262
+ onChange: (e)=>{
263
+ toggleVariableVisibility(idx, e.target.checked);
264
+ }
265
+ })
266
+ }),
267
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
268
+ component: "th",
269
+ scope: "row",
270
+ sx: {
271
+ fontWeight: 'bold'
272
+ },
273
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(VariableName, {
274
+ name: v.spec.name,
275
+ state: variableState.get({
276
+ name: v.spec.name
277
+ })
278
+ })
279
+ }),
280
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
281
+ children: (ref = getVariableLabelByKind(v.kind)) !== null && ref !== void 0 ? ref : v.kind
282
+ }),
283
+ /*#__PURE__*/ (0, _jsxRuntime.jsxs)(TableCell, {
284
+ align: "right",
285
+ children: [
286
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
287
+ onClick: ()=>changeVariableOrder(idx, 'up'),
288
+ disabled: idx === 0,
289
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_arrowUp.default, {})
290
+ }),
291
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
292
+ onClick: ()=>changeVariableOrder(idx, 'down'),
293
+ disabled: idx === variableDefinitions.length - 1,
294
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_arrowDown.default, {})
295
+ }),
296
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
297
+ onClick: ()=>editVariable(idx),
298
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pencil.default, {})
299
+ }),
300
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
301
+ onClick: ()=>removeVariable(idx),
302
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_trashCan.default, {})
303
+ })
304
+ ]
305
+ })
306
+ ]
307
+ }, v.spec.name);
308
+ })
309
+ })
310
+ ]
311
+ })
312
+ }),
313
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
314
+ display: "flex",
315
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
316
+ variant: "contained",
317
+ startIcon: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_plus.default, {}),
318
+ sx: {
319
+ marginLeft: 'auto'
320
+ },
321
+ onClick: addVariable,
322
+ children: "Add Variable"
323
+ })
324
+ })
325
+ ]
326
+ }),
327
+ externalVariableDefinitions.map((extVar)=>{
328
+ /*#__PURE__*/ return (0, _jsxRuntime.jsxs)(_material.Stack, {
329
+ children: [
330
+ /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Typography, {
331
+ variant: "h2",
332
+ children: [
333
+ (0, _material.capitalize)(extVar.source),
334
+ " Variables"
335
+ ]
336
+ }),
337
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableContainer, {
338
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Table, {
339
+ sx: {
340
+ minWidth: 650
341
+ },
342
+ "aria-label": "table of variables",
343
+ children: [
344
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableHead, {
345
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.TableRow, {
346
+ children: [
347
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
348
+ children: "Visibility"
349
+ }),
350
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
351
+ children: "Name"
352
+ }),
353
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
354
+ children: "Type"
355
+ }),
356
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
357
+ align: "right"
358
+ })
359
+ ]
360
+ })
361
+ }),
362
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TableBody, {
363
+ children: extVar.definitions.map((v)=>{
364
+ var ref;
365
+ /*#__PURE__*/ return (0, _jsxRuntime.jsxs)(_material.TableRow, {
246
366
  children: [
247
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
248
- onClick: ()=>changeVariableOrder(idx, 'up'),
249
- disabled: idx === 0,
250
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_arrowUp.default, {})
367
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
368
+ component: "th",
369
+ scope: "row",
370
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
371
+ checked: ((ref = v.spec.display) === null || ref === void 0 ? void 0 : ref.hidden) !== true,
372
+ disabled: true
373
+ })
251
374
  }),
252
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
253
- onClick: ()=>changeVariableOrder(idx, 'down'),
254
- disabled: idx === variableDefinitions.length - 1,
255
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_arrowDown.default, {})
375
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
376
+ component: "th",
377
+ scope: "row",
378
+ sx: {
379
+ fontWeight: 'bold'
380
+ },
381
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(VariableName, {
382
+ name: v.spec.name,
383
+ state: variableState.get({
384
+ name: v.spec.name,
385
+ source: extVar.source
386
+ })
387
+ })
256
388
  }),
257
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
258
- onClick: ()=>setVariableEditIdx(idx),
259
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pencil.default, {})
389
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(TableCell, {
390
+ children: (ref1 = getVariableLabelByKind(v.kind)) !== null && ref1 !== void 0 ? ref1 : v.kind
260
391
  }),
261
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
262
- onClick: ()=>removeVariable(idx),
263
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_trashCan.default, {})
392
+ /*#__PURE__*/ (0, _jsxRuntime.jsxs)(TableCell, {
393
+ align: "right",
394
+ children: [
395
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Tooltip, {
396
+ title: "Override",
397
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
398
+ onClick: ()=>overrideVariable(v),
399
+ disabled: !!variableState.get({
400
+ name: v.spec.name
401
+ }),
402
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_contentDuplicate.default, {})
403
+ })
404
+ }),
405
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
406
+ disabled: true,
407
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_arrowUp.default, {})
408
+ }),
409
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
410
+ disabled: true,
411
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_arrowDown.default, {})
412
+ }),
413
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
414
+ disabled: true,
415
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pencil.default, {})
416
+ }),
417
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
418
+ disabled: true,
419
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_trashCan.default, {})
420
+ })
421
+ ]
264
422
  })
265
423
  ]
266
- })
267
- ]
268
- }, v.spec.name);
269
- })
424
+ }, v.spec.name);
425
+ })
426
+ })
427
+ ]
270
428
  })
271
- ]
272
- })
273
- }),
274
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
275
- display: "flex",
276
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
277
- variant: "contained",
278
- startIcon: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_plus.default, {}),
279
- sx: {
280
- marginLeft: 'auto'
281
- },
282
- onClick: addVariable,
283
- children: "Add Variable"
284
- })
285
- })
286
- ]
287
- })
429
+ })
430
+ ]
431
+ }, extVar.source);
432
+ })
433
+ ]
288
434
  })
289
435
  ]
290
436
  })
@@ -294,3 +440,29 @@ function VariableEditor(props) {
294
440
  const TableCell = (0, _material.styled)(_material.TableCell)(({ theme })=>({
295
441
  borderBottom: `solid 1px ${theme.palette.divider}`
296
442
  }));
443
+ function VariableName(props) {
444
+ const { name , state } = props;
445
+ return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
446
+ children: [
447
+ !(state === null || state === void 0 ? void 0 : state.overridden) && `${name} `,
448
+ !(state === null || state === void 0 ? void 0 : state.overridden) && (state === null || state === void 0 ? void 0 : state.overriding) && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
449
+ fontWeight: "normal",
450
+ color: (theme)=>theme.palette.primary.main,
451
+ children: "(overriding)"
452
+ }),
453
+ (state === null || state === void 0 ? void 0 : state.overridden) && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
454
+ children: [
455
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
456
+ color: (theme)=>theme.palette.grey[500],
457
+ children: name
458
+ }),
459
+ /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
460
+ fontWeight: "normal",
461
+ color: (theme)=>theme.palette.grey[500],
462
+ children: "(overridden)"
463
+ })
464
+ ]
465
+ })
466
+ ]
467
+ });
468
+ }
@@ -14,9 +14,15 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- Object.defineProperty(exports, "TemplateVariableList", {
18
- enumerable: true,
19
- get: ()=>TemplateVariableList
17
+ function _export(target, all) {
18
+ for(var name in all)Object.defineProperty(target, name, {
19
+ enumerable: true,
20
+ get: all[name]
21
+ });
22
+ }
23
+ _export(exports, {
24
+ TemplateVariableList: ()=>TemplateVariableList,
25
+ TemplateVariableListItem: ()=>TemplateVariableListItem
20
26
  });
21
27
  const _jsxRuntime = require("react/jsx-runtime");
22
28
  const _material = require("@mui/material");
@@ -26,20 +32,34 @@ const VARIABLE_INPUT_MIN_WIDTH = '120px';
26
32
  const VARIABLE_INPUT_MAX_WIDTH = '240px';
27
33
  function TemplateVariableList() {
28
34
  const variableDefinitions = (0, _context.useTemplateVariableDefinitions)();
29
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
30
- children: variableDefinitions.map((v)=>{
31
- var ref;
32
- /*#__PURE__*/ return (0, _jsxRuntime.jsx)(_material.Box, {
33
- display: ((ref = v.spec.display) === null || ref === void 0 ? void 0 : ref.hidden) ? 'none' : undefined,
34
- minWidth: VARIABLE_INPUT_MIN_WIDTH,
35
- maxWidth: VARIABLE_INPUT_MAX_WIDTH,
36
- marginBottom: 1,
37
- marginRight: 1,
38
- "data-testid": "template-variable",
39
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_templateVariable.TemplateVariable, {
40
- name: v.spec.name
41
- }, v.spec.name)
42
- }, v.spec.name);
43
- })
35
+ const externalVariableDefinitions = (0, _context.useTemplateExternalVariableDefinitions)();
36
+ return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
37
+ children: [
38
+ externalVariableDefinitions.slice().reverse() // We reverse to have the most prioritized on top
39
+ .map((def)=>def.definitions.map((v)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(TemplateVariableListItem, {
40
+ spec: v.spec,
41
+ source: def.source
42
+ }, v.spec.name + def.source))),
43
+ variableDefinitions.map((v)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(TemplateVariableListItem, {
44
+ spec: v.spec
45
+ }, v.spec.name))
46
+ ]
44
47
  });
45
48
  }
49
+ function TemplateVariableListItem({ spec , source }) {
50
+ var ref, ref1;
51
+ const ctx = (0, _context.useTemplateVariable)(spec.name, source);
52
+ var ref2, ref3;
53
+ return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
54
+ display: ((ref = ctx.state) === null || ref === void 0 ? void 0 : ref.overridden) || ((ref1 = spec.display) === null || ref1 === void 0 ? void 0 : ref1.hidden) ? 'none' : undefined,
55
+ minWidth: VARIABLE_INPUT_MIN_WIDTH,
56
+ maxWidth: VARIABLE_INPUT_MAX_WIDTH,
57
+ marginBottom: 1,
58
+ marginRight: 1,
59
+ "data-testid": "template-variable",
60
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_templateVariable.TemplateVariable, {
61
+ name: spec.name,
62
+ source: source
63
+ }, (ref2 = spec.name + source) !== null && ref2 !== void 0 ? ref2 : '')
64
+ }, (ref3 = spec.name + source) !== null && ref3 !== void 0 ? ref3 : '');
65
+ }
@@ -17,9 +17,7 @@ Object.defineProperty(exports, "__esModule", {
17
17
  _exportStar(require("./EditVariablesButton"), exports);
18
18
  _exportStar(require("./TemplateVariable"), exports);
19
19
  _exportStar(require("./VariableEditor"), exports);
20
- _exportStar(require("./VariableEditorForm"), exports);
21
20
  _exportStar(require("./VariableList"), exports);
22
- _exportStar(require("./variable-model"), exports);
23
21
  function _exportStar(from, to) {
24
22
  Object.keys(from).forEach(function(k) {
25
23
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
@@ -31,6 +31,7 @@ const _middleware = require("zustand/middleware");
31
31
  const _immer = require("zustand/middleware/immer");
32
32
  const _shallow = require("zustand/shallow");
33
33
  const _react = require("react");
34
+ const _core = require("@perses-dev/core");
34
35
  const _pluginSystem = require("@perses-dev/plugin-system");
35
36
  const _panelGroupEditorSlice = require("./panel-group-editor-slice");
36
37
  const _panelGroupSlice = require("./panel-group-slice");
@@ -82,7 +83,7 @@ function DashboardProvider(props) {
82
83
  }
83
84
  function initStore(props) {
84
85
  const { initialState: { dashboardResource , isEditMode } , } = props;
85
- const { spec: { display , duration , refreshInterval } , metadata , } = dashboardResource;
86
+ const { spec: { display , duration , refreshInterval =_core.DEFAULT_REFRESH_INTERVAL } , metadata , } = dashboardResource;
86
87
  let { spec: { layouts , panels } , } = dashboardResource;
87
88
  // Set fallbacks in case the frontend is used with a non-Perses backend
88
89
  layouts = layouts !== null && layouts !== void 0 ? layouts : [];
@@ -117,7 +118,7 @@ function initStore(props) {
117
118
  state.panelGroups = panelGroups;
118
119
  state.panelGroupOrder = panelGroupOrder;
119
120
  state.duration = duration;
120
- state.refreshInterval = refreshInterval;
121
+ state.refreshInterval = refreshInterval !== null && refreshInterval !== void 0 ? refreshInterval : _core.DEFAULT_REFRESH_INTERVAL;
121
122
  });
122
123
  }
123
124
  };