@perses-dev/dashboards 0.38.0 → 0.39.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.
- package/dist/cjs/components/Dashboard/Dashboard.js +3 -2
- package/dist/cjs/components/GridLayout/GridItemContent.js +3 -1
- package/dist/cjs/components/GridLayout/GridLayout.js +1 -0
- package/dist/cjs/components/Panel/Panel.js +8 -3
- package/dist/cjs/components/Panel/PanelHeader.js +7 -3
- package/dist/cjs/components/SaveDashboardButton/SaveDashboardButton.js +3 -1
- package/dist/cjs/components/Variables/EditVariablesButton.js +2 -0
- package/dist/cjs/components/Variables/TemplateVariable.js +20 -16
- package/dist/cjs/components/Variables/VariableEditor.js +255 -94
- package/dist/cjs/components/Variables/VariableList.js +38 -18
- package/dist/cjs/context/TemplateVariableProvider/TemplateVariableProvider.js +71 -24
- package/dist/cjs/context/TemplateVariableProvider/hydrationUtils.js +55 -5
- package/dist/cjs/context/TemplateVariableProvider/utils.js +39 -7
- package/dist/cjs/test/render.js +1 -1
- package/dist/cjs/views/ViewDashboard/DashboardApp.js +6 -1
- package/dist/cjs/views/ViewDashboard/ViewDashboard.js +4 -3
- package/dist/components/Dashboard/Dashboard.d.ts +3 -1
- package/dist/components/Dashboard/Dashboard.d.ts.map +1 -1
- package/dist/components/Dashboard/Dashboard.js +3 -2
- package/dist/components/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/GridLayout/GridItemContent.d.ts +2 -0
- package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
- package/dist/components/GridLayout/GridItemContent.js +3 -1
- package/dist/components/GridLayout/GridItemContent.js.map +1 -1
- package/dist/components/GridLayout/GridLayout.d.ts +2 -0
- package/dist/components/GridLayout/GridLayout.d.ts.map +1 -1
- package/dist/components/GridLayout/GridLayout.js +1 -0
- package/dist/components/GridLayout/GridLayout.js.map +1 -1
- package/dist/components/Panel/Panel.d.ts +20 -0
- package/dist/components/Panel/Panel.d.ts.map +1 -1
- package/dist/components/Panel/Panel.js +8 -3
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/Panel/PanelHeader.d.ts +2 -1
- package/dist/components/Panel/PanelHeader.d.ts.map +1 -1
- package/dist/components/Panel/PanelHeader.js +7 -3
- package/dist/components/Panel/PanelHeader.js.map +1 -1
- package/dist/components/PanelDrawer/PanelPreview.d.ts.map +1 -1
- package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
- package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts.map +1 -1
- package/dist/components/SaveDashboardButton/SaveDashboardButton.js +3 -1
- package/dist/components/SaveDashboardButton/SaveDashboardButton.js.map +1 -1
- package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
- package/dist/components/Variables/EditVariablesButton.js +3 -1
- package/dist/components/Variables/EditVariablesButton.js.map +1 -1
- package/dist/components/Variables/TemplateVariable.d.ts +2 -1
- package/dist/components/Variables/TemplateVariable.d.ts.map +1 -1
- package/dist/components/Variables/TemplateVariable.js +20 -16
- package/dist/components/Variables/TemplateVariable.js.map +1 -1
- package/dist/components/Variables/VariableEditor.d.ts +7 -0
- package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
- package/dist/components/Variables/VariableEditor.js +247 -92
- package/dist/components/Variables/VariableEditor.js.map +1 -1
- package/dist/components/Variables/VariableList.d.ts +5 -0
- package/dist/components/Variables/VariableList.d.ts.map +1 -1
- package/dist/components/Variables/VariableList.js +31 -17
- package/dist/components/Variables/VariableList.js.map +1 -1
- package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +39 -10
- package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +1 -1
- package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js +76 -27
- package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +1 -1
- package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts +9 -2
- package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts.map +1 -1
- package/dist/context/TemplateVariableProvider/hydrationUtils.js +60 -5
- package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +1 -1
- package/dist/context/TemplateVariableProvider/utils.d.ts +27 -2
- package/dist/context/TemplateVariableProvider/utils.d.ts.map +1 -1
- package/dist/context/TemplateVariableProvider/utils.js +46 -4
- package/dist/context/TemplateVariableProvider/utils.js.map +1 -1
- package/dist/test/render.js +2 -2
- package/dist/test/render.js.map +1 -1
- package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
- package/dist/views/ViewDashboard/DashboardApp.js +7 -2
- package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
- package/dist/views/ViewDashboard/ViewDashboard.d.ts +2 -1
- package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
- package/dist/views/ViewDashboard/ViewDashboard.js +4 -3
- package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableEditor.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/VariableEditor.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"VariableEditor.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/VariableEditor.tsx"],"names":[],"mappings":";AAiCA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAOtD,OAAO,EAA4B,aAAa,EAAkB,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAuC,MAAM,eAAe,CAAC;AAsBhG,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,2BAA2B,EAAE,0BAA0B,EAAE,CAAC;IAC1D,QAAQ,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAC9D,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,eA8QA;AAMD,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAAA;CAAE,eAoBrF"}
|
|
@@ -12,15 +12,17 @@
|
|
|
12
12
|
// limitations under the License.
|
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
14
|
import { useState, useMemo } from 'react';
|
|
15
|
-
import { Button, Stack, Box, TableContainer, TableBody, TableRow, TableCell as MuiTableCell, Table, TableHead, Switch, Typography, IconButton, Alert, styled } from '@mui/material';
|
|
15
|
+
import { Button, Stack, Box, TableContainer, TableBody, TableRow, TableCell as MuiTableCell, Table, TableHead, Switch, Typography, IconButton, Alert, styled, capitalize, Tooltip } from '@mui/material';
|
|
16
16
|
import AddIcon from 'mdi-material-ui/Plus';
|
|
17
17
|
import { useImmer } from 'use-immer';
|
|
18
18
|
import PencilIcon from 'mdi-material-ui/Pencil';
|
|
19
19
|
import TrashIcon from 'mdi-material-ui/TrashCan';
|
|
20
20
|
import ArrowUp from 'mdi-material-ui/ArrowUp';
|
|
21
21
|
import ArrowDown from 'mdi-material-ui/ArrowDown';
|
|
22
|
+
import ContentDuplicate from 'mdi-material-ui/ContentDuplicate';
|
|
22
23
|
import { VariableEditForm, VARIABLE_TYPES } from '@perses-dev/plugin-system';
|
|
23
24
|
import { useDiscardChangesConfirmationDialog } from '../../context';
|
|
25
|
+
import { hydrateTemplateVariableStates } from '../../context/TemplateVariableProvider/hydrationUtils';
|
|
24
26
|
function getVariableLabelByKind(kind) {
|
|
25
27
|
var ref;
|
|
26
28
|
return (ref = VARIABLE_TYPES.find((variableType)=>variableType.kind === kind)) === null || ref === void 0 ? void 0 : ref.label;
|
|
@@ -41,9 +43,18 @@ export function VariableEditor(props) {
|
|
|
41
43
|
const [variableDefinitions, setVariableDefinitions] = useImmer(props.variableDefinitions);
|
|
42
44
|
const [variableEditIdx, setVariableEditIdx] = useState(null);
|
|
43
45
|
const [variableFormAction, setVariableFormAction] = useState('update');
|
|
46
|
+
const externalVariableDefinitions = props.externalVariableDefinitions;
|
|
44
47
|
const validation = useMemo(()=>getValidation(variableDefinitions), [
|
|
45
48
|
variableDefinitions
|
|
46
49
|
]);
|
|
50
|
+
const [variableState] = useMemo(()=>{
|
|
51
|
+
return [
|
|
52
|
+
hydrateTemplateVariableStates(variableDefinitions, {}, externalVariableDefinitions)
|
|
53
|
+
];
|
|
54
|
+
}, [
|
|
55
|
+
externalVariableDefinitions,
|
|
56
|
+
variableDefinitions
|
|
57
|
+
]);
|
|
47
58
|
const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];
|
|
48
59
|
const { openDiscardChangesConfirmationDialog , closeDiscardChangesConfirmationDialog } = useDiscardChangesConfirmationDialog();
|
|
49
60
|
const handleCancel = ()=>{
|
|
@@ -120,7 +131,12 @@ export function VariableEditor(props) {
|
|
|
120
131
|
}
|
|
121
132
|
});
|
|
122
133
|
};
|
|
123
|
-
|
|
134
|
+
const overrideVariable = (v)=>{
|
|
135
|
+
setVariableDefinitions((draft)=>{
|
|
136
|
+
draft.push(v);
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
var ref, ref1;
|
|
124
140
|
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
125
141
|
children: [
|
|
126
142
|
currentEditingVariableDefinition && /*#__PURE__*/ _jsx(VariableEditForm, {
|
|
@@ -151,7 +167,7 @@ export function VariableEditor(props) {
|
|
|
151
167
|
children: [
|
|
152
168
|
/*#__PURE__*/ _jsx(Typography, {
|
|
153
169
|
variant: "h2",
|
|
154
|
-
children: "Variables"
|
|
170
|
+
children: "Dashboard Variables"
|
|
155
171
|
}),
|
|
156
172
|
/*#__PURE__*/ _jsxs(Stack, {
|
|
157
173
|
direction: "row",
|
|
@@ -176,113 +192,226 @@ export function VariableEditor(props) {
|
|
|
176
192
|
})
|
|
177
193
|
]
|
|
178
194
|
}),
|
|
179
|
-
/*#__PURE__*/
|
|
195
|
+
/*#__PURE__*/ _jsxs(Box, {
|
|
180
196
|
padding: 2,
|
|
181
197
|
sx: {
|
|
182
198
|
overflowY: 'scroll'
|
|
183
199
|
},
|
|
184
|
-
children:
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
children:
|
|
201
|
-
/*#__PURE__*/ _jsx(TableCell, {
|
|
202
|
-
children: "Visibility"
|
|
203
|
-
}),
|
|
204
|
-
/*#__PURE__*/ _jsx(TableCell, {
|
|
205
|
-
children: "Name"
|
|
206
|
-
}),
|
|
207
|
-
/*#__PURE__*/ _jsx(TableCell, {
|
|
208
|
-
children: "Type"
|
|
209
|
-
}),
|
|
210
|
-
/*#__PURE__*/ _jsx(TableCell, {
|
|
211
|
-
align: "right"
|
|
212
|
-
})
|
|
213
|
-
]
|
|
214
|
-
})
|
|
215
|
-
}),
|
|
216
|
-
/*#__PURE__*/ _jsx(TableBody, {
|
|
217
|
-
children: variableDefinitions.map((v, idx)=>{
|
|
218
|
-
var ref1;
|
|
219
|
-
/*#__PURE__*/ return _jsxs(TableRow, {
|
|
200
|
+
children: [
|
|
201
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
202
|
+
spacing: 2,
|
|
203
|
+
children: [
|
|
204
|
+
!validation.isValid && validation.errors.map((error)=>/*#__PURE__*/ _jsx(Alert, {
|
|
205
|
+
severity: "error",
|
|
206
|
+
children: error
|
|
207
|
+
}, error)),
|
|
208
|
+
/*#__PURE__*/ _jsx(TableContainer, {
|
|
209
|
+
children: /*#__PURE__*/ _jsxs(Table, {
|
|
210
|
+
sx: {
|
|
211
|
+
minWidth: 650
|
|
212
|
+
},
|
|
213
|
+
"aria-label": "table of variables",
|
|
214
|
+
children: [
|
|
215
|
+
/*#__PURE__*/ _jsx(TableHead, {
|
|
216
|
+
children: /*#__PURE__*/ _jsxs(TableRow, {
|
|
220
217
|
children: [
|
|
221
218
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
222
|
-
|
|
223
|
-
scope: "row",
|
|
224
|
-
children: /*#__PURE__*/ _jsx(Switch, {
|
|
225
|
-
checked: ((ref1 = v.spec.display) === null || ref1 === void 0 ? void 0 : ref1.hidden) !== true,
|
|
226
|
-
onChange: (e)=>{
|
|
227
|
-
toggleVariableVisibility(idx, e.target.checked);
|
|
228
|
-
}
|
|
229
|
-
})
|
|
219
|
+
children: "Visibility"
|
|
230
220
|
}),
|
|
231
221
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
232
|
-
|
|
233
|
-
scope: "row",
|
|
234
|
-
sx: {
|
|
235
|
-
fontWeight: 'bold'
|
|
236
|
-
},
|
|
237
|
-
children: v.spec.name
|
|
222
|
+
children: "Name"
|
|
238
223
|
}),
|
|
239
224
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
240
|
-
children:
|
|
225
|
+
children: "Type"
|
|
241
226
|
}),
|
|
242
|
-
/*#__PURE__*/
|
|
243
|
-
align: "right"
|
|
227
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
228
|
+
align: "right"
|
|
229
|
+
})
|
|
230
|
+
]
|
|
231
|
+
})
|
|
232
|
+
}),
|
|
233
|
+
/*#__PURE__*/ _jsx(TableBody, {
|
|
234
|
+
children: variableDefinitions.map((v, idx)=>{
|
|
235
|
+
var ref1;
|
|
236
|
+
/*#__PURE__*/ return _jsxs(TableRow, {
|
|
237
|
+
children: [
|
|
238
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
239
|
+
component: "th",
|
|
240
|
+
scope: "row",
|
|
241
|
+
children: /*#__PURE__*/ _jsx(Switch, {
|
|
242
|
+
checked: ((ref1 = v.spec.display) === null || ref1 === void 0 ? void 0 : ref1.hidden) !== true,
|
|
243
|
+
onChange: (e)=>{
|
|
244
|
+
toggleVariableVisibility(idx, e.target.checked);
|
|
245
|
+
}
|
|
246
|
+
})
|
|
247
|
+
}),
|
|
248
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
249
|
+
component: "th",
|
|
250
|
+
scope: "row",
|
|
251
|
+
sx: {
|
|
252
|
+
fontWeight: 'bold'
|
|
253
|
+
},
|
|
254
|
+
children: /*#__PURE__*/ _jsx(VariableName, {
|
|
255
|
+
name: v.spec.name,
|
|
256
|
+
state: variableState.get({
|
|
257
|
+
name: v.spec.name
|
|
258
|
+
})
|
|
259
|
+
})
|
|
260
|
+
}),
|
|
261
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
262
|
+
children: (ref = getVariableLabelByKind(v.kind)) !== null && ref !== void 0 ? ref : v.kind
|
|
263
|
+
}),
|
|
264
|
+
/*#__PURE__*/ _jsxs(TableCell, {
|
|
265
|
+
align: "right",
|
|
266
|
+
children: [
|
|
267
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
268
|
+
onClick: ()=>changeVariableOrder(idx, 'up'),
|
|
269
|
+
disabled: idx === 0,
|
|
270
|
+
children: /*#__PURE__*/ _jsx(ArrowUp, {})
|
|
271
|
+
}),
|
|
272
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
273
|
+
onClick: ()=>changeVariableOrder(idx, 'down'),
|
|
274
|
+
disabled: idx === variableDefinitions.length - 1,
|
|
275
|
+
children: /*#__PURE__*/ _jsx(ArrowDown, {})
|
|
276
|
+
}),
|
|
277
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
278
|
+
onClick: ()=>editVariable(idx),
|
|
279
|
+
children: /*#__PURE__*/ _jsx(PencilIcon, {})
|
|
280
|
+
}),
|
|
281
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
282
|
+
onClick: ()=>removeVariable(idx),
|
|
283
|
+
children: /*#__PURE__*/ _jsx(TrashIcon, {})
|
|
284
|
+
})
|
|
285
|
+
]
|
|
286
|
+
})
|
|
287
|
+
]
|
|
288
|
+
}, v.spec.name);
|
|
289
|
+
})
|
|
290
|
+
})
|
|
291
|
+
]
|
|
292
|
+
})
|
|
293
|
+
}),
|
|
294
|
+
/*#__PURE__*/ _jsx(Box, {
|
|
295
|
+
display: "flex",
|
|
296
|
+
children: /*#__PURE__*/ _jsx(Button, {
|
|
297
|
+
variant: "contained",
|
|
298
|
+
startIcon: /*#__PURE__*/ _jsx(AddIcon, {}),
|
|
299
|
+
sx: {
|
|
300
|
+
marginLeft: 'auto'
|
|
301
|
+
},
|
|
302
|
+
onClick: addVariable,
|
|
303
|
+
children: "Add Variable"
|
|
304
|
+
})
|
|
305
|
+
})
|
|
306
|
+
]
|
|
307
|
+
}),
|
|
308
|
+
externalVariableDefinitions.map((extVar)=>{
|
|
309
|
+
/*#__PURE__*/ return _jsxs(Stack, {
|
|
310
|
+
children: [
|
|
311
|
+
/*#__PURE__*/ _jsxs(Typography, {
|
|
312
|
+
variant: "h2",
|
|
313
|
+
children: [
|
|
314
|
+
capitalize(extVar.source),
|
|
315
|
+
" Variables"
|
|
316
|
+
]
|
|
317
|
+
}),
|
|
318
|
+
/*#__PURE__*/ _jsx(TableContainer, {
|
|
319
|
+
children: /*#__PURE__*/ _jsxs(Table, {
|
|
320
|
+
sx: {
|
|
321
|
+
minWidth: 650
|
|
322
|
+
},
|
|
323
|
+
"aria-label": "table of variables",
|
|
324
|
+
children: [
|
|
325
|
+
/*#__PURE__*/ _jsx(TableHead, {
|
|
326
|
+
children: /*#__PURE__*/ _jsxs(TableRow, {
|
|
327
|
+
children: [
|
|
328
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
329
|
+
children: "Visibility"
|
|
330
|
+
}),
|
|
331
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
332
|
+
children: "Name"
|
|
333
|
+
}),
|
|
334
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
335
|
+
children: "Type"
|
|
336
|
+
}),
|
|
337
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
338
|
+
align: "right"
|
|
339
|
+
})
|
|
340
|
+
]
|
|
341
|
+
})
|
|
342
|
+
}),
|
|
343
|
+
/*#__PURE__*/ _jsx(TableBody, {
|
|
344
|
+
children: extVar.definitions.map((v)=>{
|
|
345
|
+
var ref;
|
|
346
|
+
/*#__PURE__*/ return _jsxs(TableRow, {
|
|
244
347
|
children: [
|
|
245
|
-
/*#__PURE__*/ _jsx(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
children: /*#__PURE__*/ _jsx(
|
|
348
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
349
|
+
component: "th",
|
|
350
|
+
scope: "row",
|
|
351
|
+
children: /*#__PURE__*/ _jsx(Switch, {
|
|
352
|
+
checked: ((ref = v.spec.display) === null || ref === void 0 ? void 0 : ref.hidden) !== true,
|
|
353
|
+
disabled: true
|
|
354
|
+
})
|
|
249
355
|
}),
|
|
250
|
-
/*#__PURE__*/ _jsx(
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
356
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
357
|
+
component: "th",
|
|
358
|
+
scope: "row",
|
|
359
|
+
sx: {
|
|
360
|
+
fontWeight: 'bold'
|
|
361
|
+
},
|
|
362
|
+
children: /*#__PURE__*/ _jsx(VariableName, {
|
|
363
|
+
name: v.spec.name,
|
|
364
|
+
state: variableState.get({
|
|
365
|
+
name: v.spec.name,
|
|
366
|
+
source: extVar.source
|
|
367
|
+
})
|
|
368
|
+
})
|
|
254
369
|
}),
|
|
255
|
-
/*#__PURE__*/ _jsx(
|
|
256
|
-
|
|
257
|
-
children: /*#__PURE__*/ _jsx(PencilIcon, {})
|
|
370
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
371
|
+
children: (ref1 = getVariableLabelByKind(v.kind)) !== null && ref1 !== void 0 ? ref1 : v.kind
|
|
258
372
|
}),
|
|
259
|
-
/*#__PURE__*/
|
|
260
|
-
|
|
261
|
-
children:
|
|
373
|
+
/*#__PURE__*/ _jsxs(TableCell, {
|
|
374
|
+
align: "right",
|
|
375
|
+
children: [
|
|
376
|
+
/*#__PURE__*/ _jsx(Tooltip, {
|
|
377
|
+
title: "Override",
|
|
378
|
+
children: /*#__PURE__*/ _jsx(IconButton, {
|
|
379
|
+
onClick: ()=>overrideVariable(v),
|
|
380
|
+
disabled: !!variableState.get({
|
|
381
|
+
name: v.spec.name
|
|
382
|
+
}),
|
|
383
|
+
children: /*#__PURE__*/ _jsx(ContentDuplicate, {})
|
|
384
|
+
})
|
|
385
|
+
}),
|
|
386
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
387
|
+
disabled: true,
|
|
388
|
+
children: /*#__PURE__*/ _jsx(ArrowUp, {})
|
|
389
|
+
}),
|
|
390
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
391
|
+
disabled: true,
|
|
392
|
+
children: /*#__PURE__*/ _jsx(ArrowDown, {})
|
|
393
|
+
}),
|
|
394
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
395
|
+
disabled: true,
|
|
396
|
+
children: /*#__PURE__*/ _jsx(PencilIcon, {})
|
|
397
|
+
}),
|
|
398
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
399
|
+
disabled: true,
|
|
400
|
+
children: /*#__PURE__*/ _jsx(TrashIcon, {})
|
|
401
|
+
})
|
|
402
|
+
]
|
|
262
403
|
})
|
|
263
404
|
]
|
|
264
|
-
})
|
|
265
|
-
|
|
266
|
-
}
|
|
267
|
-
|
|
405
|
+
}, v.spec.name);
|
|
406
|
+
})
|
|
407
|
+
})
|
|
408
|
+
]
|
|
268
409
|
})
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
})
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
children: /*#__PURE__*/ _jsx(Button, {
|
|
275
|
-
variant: "contained",
|
|
276
|
-
startIcon: /*#__PURE__*/ _jsx(AddIcon, {}),
|
|
277
|
-
sx: {
|
|
278
|
-
marginLeft: 'auto'
|
|
279
|
-
},
|
|
280
|
-
onClick: addVariable,
|
|
281
|
-
children: "Add Variable"
|
|
282
|
-
})
|
|
283
|
-
})
|
|
284
|
-
]
|
|
285
|
-
})
|
|
410
|
+
})
|
|
411
|
+
]
|
|
412
|
+
}, extVar.source);
|
|
413
|
+
})
|
|
414
|
+
]
|
|
286
415
|
})
|
|
287
416
|
]
|
|
288
417
|
})
|
|
@@ -292,5 +421,31 @@ export function VariableEditor(props) {
|
|
|
292
421
|
const TableCell = styled(MuiTableCell)(({ theme })=>({
|
|
293
422
|
borderBottom: `solid 1px ${theme.palette.divider}`
|
|
294
423
|
}));
|
|
424
|
+
export function VariableName(props) {
|
|
425
|
+
const { name , state } = props;
|
|
426
|
+
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
427
|
+
children: [
|
|
428
|
+
!(state === null || state === void 0 ? void 0 : state.overridden) && `${name} `,
|
|
429
|
+
!(state === null || state === void 0 ? void 0 : state.overridden) && (state === null || state === void 0 ? void 0 : state.overriding) && /*#__PURE__*/ _jsx(Box, {
|
|
430
|
+
fontWeight: "normal",
|
|
431
|
+
color: (theme)=>theme.palette.primary.main,
|
|
432
|
+
children: "(overriding)"
|
|
433
|
+
}),
|
|
434
|
+
(state === null || state === void 0 ? void 0 : state.overridden) && /*#__PURE__*/ _jsxs(_Fragment, {
|
|
435
|
+
children: [
|
|
436
|
+
/*#__PURE__*/ _jsx(Box, {
|
|
437
|
+
color: (theme)=>theme.palette.grey[500],
|
|
438
|
+
children: name
|
|
439
|
+
}),
|
|
440
|
+
/*#__PURE__*/ _jsx(Box, {
|
|
441
|
+
fontWeight: "normal",
|
|
442
|
+
color: (theme)=>theme.palette.grey[500],
|
|
443
|
+
children: "(overridden)"
|
|
444
|
+
})
|
|
445
|
+
]
|
|
446
|
+
})
|
|
447
|
+
]
|
|
448
|
+
});
|
|
449
|
+
}
|
|
295
450
|
|
|
296
451
|
//# sourceMappingURL=VariableEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Variables/VariableEditor.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, useMemo } from 'react';\nimport {\n Button,\n Stack,\n Box,\n TableContainer,\n TableBody,\n TableRow,\n TableCell as MuiTableCell,\n Table,\n TableHead,\n Switch,\n Typography,\n IconButton,\n Alert,\n styled,\n} from '@mui/material';\nimport AddIcon from 'mdi-material-ui/Plus';\nimport { VariableDefinition } from '@perses-dev/core';\nimport { useImmer } from 'use-immer';\nimport PencilIcon from 'mdi-material-ui/Pencil';\nimport TrashIcon from 'mdi-material-ui/TrashCan';\nimport ArrowUp from 'mdi-material-ui/ArrowUp';\nimport ArrowDown from 'mdi-material-ui/ArrowDown';\nimport { Action, VariableEditForm, VARIABLE_TYPES } from '@perses-dev/plugin-system';\nimport { useDiscardChangesConfirmationDialog } from '../../context';\n\nfunction getVariableLabelByKind(kind: string) {\n return VARIABLE_TYPES.find((variableType) => variableType.kind === kind)?.label;\n}\n\nfunction getValidation(variableDefinitions: VariableDefinition[]) {\n const errors = [];\n\n /** Variable names must be unique */\n const variableNames = variableDefinitions.map((variableDefinition) => variableDefinition.spec.name);\n const uniqueVariableNames = new Set(variableNames);\n if (variableNames.length !== uniqueVariableNames.size) {\n errors.push('Variable names must be unique');\n }\n return {\n errors: errors,\n isValid: errors.length === 0,\n };\n}\n\nexport function VariableEditor(props: {\n variableDefinitions: VariableDefinition[];\n onChange: (variableDefinitions: VariableDefinition[]) => void;\n onCancel: () => void;\n}) {\n const [variableDefinitions, setVariableDefinitions] = useImmer(props.variableDefinitions);\n const [variableEditIdx, setVariableEditIdx] = useState<number | null>(null);\n const [variableFormAction, setVariableFormAction] = useState<Action>('update');\n\n const validation = useMemo(() => getValidation(variableDefinitions), [variableDefinitions]);\n const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n const handleCancel = () => {\n if (JSON.stringify(props.variableDefinitions) !== JSON.stringify(variableDefinitions)) {\n openDiscardChangesConfirmationDialog({\n onDiscardChanges: () => {\n closeDiscardChangesConfirmationDialog();\n props.onCancel();\n },\n onCancel: () => {\n closeDiscardChangesConfirmationDialog();\n },\n description:\n 'You have unapplied changes. Are you sure you want to discard these changes? Changes cannot be recovered.',\n });\n } else {\n props.onCancel();\n }\n };\n\n const removeVariable = (index: number) => {\n setVariableDefinitions((draft) => {\n draft.splice(index, 1);\n });\n };\n\n const addVariable = () => {\n setVariableFormAction('create');\n setVariableDefinitions((draft) => {\n draft.push({\n kind: 'TextVariable',\n spec: {\n name: 'NewVariable',\n value: '',\n },\n });\n });\n setVariableEditIdx(variableDefinitions.length);\n };\n\n const editVariable = (index: number) => {\n setVariableFormAction('update');\n setVariableEditIdx(index);\n };\n\n const toggleVariableVisibility = (index: number, visible: boolean) => {\n setVariableDefinitions((draft) => {\n const v = draft[index];\n if (!v) {\n return;\n }\n if (!v.spec.display) {\n v.spec.display = {\n name: v.spec.name,\n hidden: false,\n };\n }\n v.spec.display.hidden = visible === false;\n });\n };\n\n const changeVariableOrder = (index: number, direction: 'up' | 'down') => {\n setVariableDefinitions((draft) => {\n if (direction === 'up') {\n const prevElement = draft[index - 1];\n const currentElement = draft[index];\n if (index === 0 || !prevElement || !currentElement) {\n return;\n }\n draft[index - 1] = currentElement;\n draft[index] = prevElement;\n } else {\n const nextElement = draft[index + 1];\n const currentElement = draft[index];\n if (index === draft.length - 1 || !nextElement || !currentElement) {\n return;\n }\n draft[index + 1] = currentElement;\n draft[index] = nextElement;\n }\n });\n };\n\n return (\n <>\n {currentEditingVariableDefinition && (\n <VariableEditForm\n initialVariableDefinition={currentEditingVariableDefinition}\n onChange={(definition) => {\n setVariableDefinitions((draft) => {\n draft[variableEditIdx] = definition;\n setVariableEditIdx(null);\n });\n }}\n onCancel={() => {\n if (variableFormAction === 'create') {\n removeVariable(variableEditIdx);\n }\n setVariableEditIdx(null);\n }}\n action={variableFormAction}\n />\n )}\n {!currentEditingVariableDefinition && (\n <>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n padding: (theme) => theme.spacing(1, 2),\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n <Typography variant=\"h2\">Variables</Typography>\n <Stack direction=\"row\" spacing={1} marginLeft=\"auto\">\n <Button\n disabled={props.variableDefinitions === variableDefinitions || !validation.isValid}\n variant=\"contained\"\n onClick={() => {\n props.onChange(variableDefinitions);\n }}\n >\n Apply\n </Button>\n <Button color=\"secondary\" variant=\"outlined\" onClick={handleCancel}>\n Cancel\n </Button>\n </Stack>\n </Box>\n <Box padding={2} sx={{ overflowY: 'scroll' }}>\n <Stack spacing={2}>\n {!validation.isValid &&\n validation.errors.map((error) => (\n <Alert severity=\"error\" key={error}>\n {error}\n </Alert>\n ))}\n <TableContainer>\n <Table sx={{ minWidth: 650 }} aria-label=\"table of variables\">\n <TableHead>\n <TableRow>\n <TableCell>Visibility</TableCell>\n <TableCell>Name</TableCell>\n <TableCell>Type</TableCell>\n <TableCell align=\"right\" />\n </TableRow>\n </TableHead>\n <TableBody>\n {variableDefinitions.map((v, idx) => (\n <TableRow key={v.spec.name}>\n <TableCell component=\"th\" scope=\"row\">\n <Switch\n checked={v.spec.display?.hidden !== true}\n onChange={(e) => {\n toggleVariableVisibility(idx, e.target.checked);\n }}\n />\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" sx={{ fontWeight: 'bold' }}>\n {v.spec.name}\n </TableCell>\n <TableCell>{getVariableLabelByKind(v.kind) ?? v.kind}</TableCell>\n <TableCell align=\"right\">\n <IconButton onClick={() => changeVariableOrder(idx, 'up')} disabled={idx === 0}>\n <ArrowUp />\n </IconButton>\n <IconButton\n onClick={() => changeVariableOrder(idx, 'down')}\n disabled={idx === variableDefinitions.length - 1}\n >\n <ArrowDown />\n </IconButton>\n\n <IconButton onClick={() => editVariable(idx)}>\n <PencilIcon />\n </IconButton>\n <IconButton onClick={() => removeVariable(idx)}>\n <TrashIcon />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n <Box display=\"flex\">\n <Button variant=\"contained\" startIcon={<AddIcon />} sx={{ marginLeft: 'auto' }} onClick={addVariable}>\n Add Variable\n </Button>\n </Box>\n </Stack>\n </Box>\n </>\n )}\n </>\n );\n}\n\nconst TableCell = styled(MuiTableCell)(({ theme }) => ({\n borderBottom: `solid 1px ${theme.palette.divider}`,\n}));\n"],"names":["useState","useMemo","Button","Stack","Box","TableContainer","TableBody","TableRow","TableCell","MuiTableCell","Table","TableHead","Switch","Typography","IconButton","Alert","styled","AddIcon","useImmer","PencilIcon","TrashIcon","ArrowUp","ArrowDown","VariableEditForm","VARIABLE_TYPES","useDiscardChangesConfirmationDialog","getVariableLabelByKind","kind","find","variableType","label","getValidation","variableDefinitions","errors","variableNames","map","variableDefinition","spec","name","uniqueVariableNames","Set","length","size","push","isValid","VariableEditor","props","setVariableDefinitions","variableEditIdx","setVariableEditIdx","variableFormAction","setVariableFormAction","validation","currentEditingVariableDefinition","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleCancel","JSON","stringify","onDiscardChanges","onCancel","description","removeVariable","index","draft","splice","addVariable","value","editVariable","toggleVariableVisibility","visible","v","display","hidden","changeVariableOrder","direction","prevElement","currentElement","nextElement","initialVariableDefinition","onChange","definition","action","sx","alignItems","padding","theme","spacing","borderBottom","palette","divider","variant","marginLeft","disabled","onClick","color","overflowY","error","severity","minWidth","aria-label","align","idx","component","scope","checked","e","target","fontWeight","startIcon"],"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,EAAEC,OAAO,QAAQ,OAAO,CAAC;AAC1C,SACEC,MAAM,EACNC,KAAK,EACLC,GAAG,EACHC,cAAc,EACdC,SAAS,EACTC,QAAQ,EACRC,SAAS,IAAIC,YAAY,EACzBC,KAAK,EACLC,SAAS,EACTC,MAAM,EACNC,UAAU,EACVC,UAAU,EACVC,KAAK,EACLC,MAAM,QACD,eAAe,CAAC;AACvB,OAAOC,OAAO,MAAM,sBAAsB,CAAC;AAE3C,SAASC,QAAQ,QAAQ,WAAW,CAAC;AACrC,OAAOC,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAOC,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAOC,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAOC,SAAS,MAAM,2BAA2B,CAAC;AAClD,SAAiBC,gBAAgB,EAAEC,cAAc,QAAQ,2BAA2B,CAAC;AACrF,SAASC,mCAAmC,QAAQ,eAAe,CAAC;AAEpE,SAASC,sBAAsB,CAACC,IAAY,EAAE;QACrCH,GAAiE;IAAxE,OAAOA,CAAAA,GAAiE,GAAjEA,cAAc,CAACI,IAAI,CAAC,CAACC,YAAY,GAAKA,YAAY,CAACF,IAAI,KAAKA,IAAI,CAAC,cAAjEH,GAAiE,WAAO,GAAxEA,KAAAA,CAAwE,GAAxEA,GAAiE,CAAEM,KAAK,CAAC;AAClF,CAAC;AAED,SAASC,aAAa,CAACC,mBAAyC,EAAE;IAChE,MAAMC,MAAM,GAAG,EAAE,AAAC;IAElB,mCAAmC,GACnC,MAAMC,aAAa,GAAGF,mBAAmB,CAACG,GAAG,CAAC,CAACC,kBAAkB,GAAKA,kBAAkB,CAACC,IAAI,CAACC,IAAI,CAAC,AAAC;IACpG,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAACN,aAAa,CAAC,AAAC;IACnD,IAAIA,aAAa,CAACO,MAAM,KAAKF,mBAAmB,CAACG,IAAI,EAAE;QACrDT,MAAM,CAACU,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO;QACLV,MAAM,EAAEA,MAAM;QACdW,OAAO,EAAEX,MAAM,CAACQ,MAAM,KAAK,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,OAAO,SAASI,cAAc,CAACC,KAI9B,EAAE;IACD,MAAM,CAACd,mBAAmB,EAAEe,sBAAsB,CAAC,GAAG7B,QAAQ,CAAC4B,KAAK,CAACd,mBAAmB,CAAC,AAAC;IAC1F,MAAM,CAACgB,eAAe,EAAEC,kBAAkB,CAAC,GAAGjD,QAAQ,CAAgB,IAAI,CAAC,AAAC;IAC5E,MAAM,CAACkD,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGnD,QAAQ,CAAS,QAAQ,CAAC,AAAC;IAE/E,MAAMoD,UAAU,GAAGnD,OAAO,CAAC,IAAM8B,aAAa,CAACC,mBAAmB,CAAC,EAAE;QAACA,mBAAmB;KAAC,CAAC,AAAC;IAC5F,MAAMqB,gCAAgC,GAAG,OAAOL,eAAe,KAAK,QAAQ,IAAIhB,mBAAmB,CAACgB,eAAe,CAAC,AAAC;IAErH,MAAM,EAAEM,oCAAoC,CAAA,EAAEC,qCAAqC,CAAA,EAAE,GACnF9B,mCAAmC,EAAE,AAAC;IACxC,MAAM+B,YAAY,GAAG,IAAM;QACzB,IAAIC,IAAI,CAACC,SAAS,CAACZ,KAAK,CAACd,mBAAmB,CAAC,KAAKyB,IAAI,CAACC,SAAS,CAAC1B,mBAAmB,CAAC,EAAE;YACrFsB,oCAAoC,CAAC;gBACnCK,gBAAgB,EAAE,IAAM;oBACtBJ,qCAAqC,EAAE,CAAC;oBACxCT,KAAK,CAACc,QAAQ,EAAE,CAAC;gBACnB,CAAC;gBACDA,QAAQ,EAAE,IAAM;oBACdL,qCAAqC,EAAE,CAAC;gBAC1C,CAAC;gBACDM,WAAW,EACT,0GAA0G;aAC7G,CAAC,CAAC;QACL,OAAO;YACLf,KAAK,CAACc,QAAQ,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,AAAC;IAEF,MAAME,cAAc,GAAG,CAACC,KAAa,GAAK;QACxChB,sBAAsB,CAAC,CAACiB,KAAK,GAAK;YAChCA,KAAK,CAACC,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,AAAC;IAEF,MAAMG,WAAW,GAAG,IAAM;QACxBf,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAChCJ,sBAAsB,CAAC,CAACiB,KAAK,GAAK;YAChCA,KAAK,CAACrB,IAAI,CAAC;gBACThB,IAAI,EAAE,cAAc;gBACpBU,IAAI,EAAE;oBACJC,IAAI,EAAE,aAAa;oBACnB6B,KAAK,EAAE,EAAE;iBACV;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACHlB,kBAAkB,CAACjB,mBAAmB,CAACS,MAAM,CAAC,CAAC;IACjD,CAAC,AAAC;IAEF,MAAM2B,YAAY,GAAG,CAACL,KAAa,GAAK;QACtCZ,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAChCF,kBAAkB,CAACc,KAAK,CAAC,CAAC;IAC5B,CAAC,AAAC;IAEF,MAAMM,wBAAwB,GAAG,CAACN,KAAa,EAAEO,OAAgB,GAAK;QACpEvB,sBAAsB,CAAC,CAACiB,KAAK,GAAK;YAChC,MAAMO,CAAC,GAAGP,KAAK,CAACD,KAAK,CAAC,AAAC;YACvB,IAAI,CAACQ,CAAC,EAAE;gBACN,OAAO;YACT,CAAC;YACD,IAAI,CAACA,CAAC,CAAClC,IAAI,CAACmC,OAAO,EAAE;gBACnBD,CAAC,CAAClC,IAAI,CAACmC,OAAO,GAAG;oBACflC,IAAI,EAAEiC,CAAC,CAAClC,IAAI,CAACC,IAAI;oBACjBmC,MAAM,EAAE,KAAK;iBACd,CAAC;YACJ,CAAC;YACDF,CAAC,CAAClC,IAAI,CAACmC,OAAO,CAACC,MAAM,GAAGH,OAAO,KAAK,KAAK,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,AAAC;IAEF,MAAMI,mBAAmB,GAAG,CAACX,KAAa,EAAEY,SAAwB,GAAK;QACvE5B,sBAAsB,CAAC,CAACiB,KAAK,GAAK;YAChC,IAAIW,SAAS,KAAK,IAAI,EAAE;gBACtB,MAAMC,WAAW,GAAGZ,KAAK,CAACD,KAAK,GAAG,CAAC,CAAC,AAAC;gBACrC,MAAMc,cAAc,GAAGb,KAAK,CAACD,KAAK,CAAC,AAAC;gBACpC,IAAIA,KAAK,KAAK,CAAC,IAAI,CAACa,WAAW,IAAI,CAACC,cAAc,EAAE;oBAClD,OAAO;gBACT,CAAC;gBACDb,KAAK,CAACD,KAAK,GAAG,CAAC,CAAC,GAAGc,cAAc,CAAC;gBAClCb,KAAK,CAACD,KAAK,CAAC,GAAGa,WAAW,CAAC;YAC7B,OAAO;gBACL,MAAME,WAAW,GAAGd,KAAK,CAACD,KAAK,GAAG,CAAC,CAAC,AAAC;gBACrC,MAAMc,eAAc,GAAGb,KAAK,CAACD,KAAK,CAAC,AAAC;gBACpC,IAAIA,KAAK,KAAKC,KAAK,CAACvB,MAAM,GAAG,CAAC,IAAI,CAACqC,WAAW,IAAI,CAACD,eAAc,EAAE;oBACjE,OAAO;gBACT,CAAC;gBACDb,KAAK,CAACD,KAAK,GAAG,CAAC,CAAC,GAAGc,eAAc,CAAC;gBAClCb,KAAK,CAACD,KAAK,CAAC,GAAGe,WAAW,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,AAAC;QAgFgCpD,GAA8B;IA9EhE,qBACE;;YACG2B,gCAAgC,kBAC/B,KAAC9B,gBAAgB;gBACfwD,yBAAyB,EAAE1B,gCAAgC;gBAC3D2B,QAAQ,EAAE,CAACC,UAAU,GAAK;oBACxBlC,sBAAsB,CAAC,CAACiB,KAAK,GAAK;wBAChCA,KAAK,CAAChB,eAAe,CAAC,GAAGiC,UAAU,CAAC;wBACpChC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,CAAC,CAAC;gBACL,CAAC;gBACDW,QAAQ,EAAE,IAAM;oBACd,IAAIV,kBAAkB,KAAK,QAAQ,EAAE;wBACnCY,cAAc,CAACd,eAAe,CAAC,CAAC;oBAClC,CAAC;oBACDC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBACDiC,MAAM,EAAEhC,kBAAkB;cAC1B,AACH;YACA,CAACG,gCAAgC,kBAChC;;kCACE,MAACjD,GAAG;wBACF+E,EAAE,EAAE;4BACFX,OAAO,EAAE,MAAM;4BACfY,UAAU,EAAE,QAAQ;4BACpBC,OAAO,EAAE,CAACC,KAAK,GAAKA,KAAK,CAACC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;4BACvCC,YAAY,EAAE,CAACF,KAAK,GAAK,CAAC,UAAU,EAAEA,KAAK,CAACG,OAAO,CAACC,OAAO,CAAC,CAAC;yBAC9D;;0CAED,KAAC7E,UAAU;gCAAC8E,OAAO,EAAC,IAAI;0CAAC,WAAS;8BAAa;0CAC/C,MAACxF,KAAK;gCAACwE,SAAS,EAAC,KAAK;gCAACY,OAAO,EAAE,CAAC;gCAAEK,UAAU,EAAC,MAAM;;kDAClD,KAAC1F,MAAM;wCACL2F,QAAQ,EAAE/C,KAAK,CAACd,mBAAmB,KAAKA,mBAAmB,IAAI,CAACoB,UAAU,CAACR,OAAO;wCAClF+C,OAAO,EAAC,WAAW;wCACnBG,OAAO,EAAE,IAAM;4CACbhD,KAAK,CAACkC,QAAQ,CAAChD,mBAAmB,CAAC,CAAC;wCACtC,CAAC;kDACF,OAED;sCAAS;kDACT,KAAC9B,MAAM;wCAAC6F,KAAK,EAAC,WAAW;wCAACJ,OAAO,EAAC,UAAU;wCAACG,OAAO,EAAEtC,YAAY;kDAAE,QAEpE;sCAAS;;8BACH;;sBACJ;kCACN,KAACpD,GAAG;wBAACiF,OAAO,EAAE,CAAC;wBAAEF,EAAE,EAAE;4BAAEa,SAAS,EAAE,QAAQ;yBAAE;kCAC1C,cAAA,MAAC7F,KAAK;4BAACoF,OAAO,EAAE,CAAC;;gCACd,CAACnC,UAAU,CAACR,OAAO,IAClBQ,UAAU,CAACnB,MAAM,CAACE,GAAG,CAAC,CAAC8D,KAAK,iBAC1B,KAAClF,KAAK;wCAACmF,QAAQ,EAAC,OAAO;kDACpBD,KAAK;uCADqBA,KAAK,CAE1B,AACT,CAAC;8CACJ,KAAC5F,cAAc;8CACb,cAAA,MAACK,KAAK;wCAACyE,EAAE,EAAE;4CAAEgB,QAAQ,EAAE,GAAG;yCAAE;wCAAEC,YAAU,EAAC,oBAAoB;;0DAC3D,KAACzF,SAAS;0DACR,cAAA,MAACJ,QAAQ;;sEACP,KAACC,SAAS;sEAAC,YAAU;0DAAY;sEACjC,KAACA,SAAS;sEAAC,MAAI;0DAAY;sEAC3B,KAACA,SAAS;sEAAC,MAAI;0DAAY;sEAC3B,KAACA,SAAS;4DAAC6F,KAAK,EAAC,OAAO;0DAAG;;kDAClB;8CACD;0DACZ,KAAC/F,SAAS;0DACP0B,mBAAmB,CAACG,GAAG,CAAC,CAACoC,CAAC,EAAE+B,GAAG;wDAIf/B,IAAc;kEAH7B,OAAA,MAAChE,QAAQ;;0EACP,KAACC,SAAS;gEAAC+F,SAAS,EAAC,IAAI;gEAACC,KAAK,EAAC,KAAK;0EACnC,cAAA,KAAC5F,MAAM;oEACL6F,OAAO,EAAElC,CAAAA,CAAAA,IAAc,GAAdA,CAAC,CAAClC,IAAI,CAACmC,OAAO,cAAdD,IAAc,WAAQ,GAAtBA,KAAAA,CAAsB,GAAtBA,IAAc,CAAEE,MAAM,CAAA,KAAK,IAAI;oEACxCO,QAAQ,EAAE,CAAC0B,CAAC,GAAK;wEACfrC,wBAAwB,CAACiC,GAAG,EAAEI,CAAC,CAACC,MAAM,CAACF,OAAO,CAAC,CAAC;oEAClD,CAAC;kEACD;8DACQ;0EACZ,KAACjG,SAAS;gEAAC+F,SAAS,EAAC,IAAI;gEAACC,KAAK,EAAC,KAAK;gEAACrB,EAAE,EAAE;oEAAEyB,UAAU,EAAE,MAAM;iEAAE;0EAC7DrC,CAAC,CAAClC,IAAI,CAACC,IAAI;8DACF;0EACZ,KAAC9B,SAAS;0EAAEkB,CAAAA,GAA8B,GAA9BA,sBAAsB,CAAC6C,CAAC,CAAC5C,IAAI,CAAC,cAA9BD,GAA8B,cAA9BA,GAA8B,GAAI6C,CAAC,CAAC5C,IAAI;8DAAa;0EACjE,MAACnB,SAAS;gEAAC6F,KAAK,EAAC,OAAO;;kFACtB,KAACvF,UAAU;wEAACgF,OAAO,EAAE,IAAMpB,mBAAmB,CAAC4B,GAAG,EAAE,IAAI,CAAC;wEAAET,QAAQ,EAAES,GAAG,KAAK,CAAC;kFAC5E,cAAA,KAACjF,OAAO,KAAG;sEACA;kFACb,KAACP,UAAU;wEACTgF,OAAO,EAAE,IAAMpB,mBAAmB,CAAC4B,GAAG,EAAE,MAAM,CAAC;wEAC/CT,QAAQ,EAAES,GAAG,KAAKtE,mBAAmB,CAACS,MAAM,GAAG,CAAC;kFAEhD,cAAA,KAACnB,SAAS,KAAG;sEACF;kFAEb,KAACR,UAAU;wEAACgF,OAAO,EAAE,IAAM1B,YAAY,CAACkC,GAAG,CAAC;kFAC1C,cAAA,KAACnF,UAAU,KAAG;sEACH;kFACb,KAACL,UAAU;wEAACgF,OAAO,EAAE,IAAMhC,cAAc,CAACwC,GAAG,CAAC;kFAC5C,cAAA,KAAClF,SAAS,KAAG;sEACF;;8DACH;;uDA9BCmD,CAAC,CAAClC,IAAI,CAACC,IAAI,CA+Bf,CAAA;iDACZ,CAAC;8CACQ;;sCACN;kCACO;8CACjB,KAAClC,GAAG;oCAACoE,OAAO,EAAC,MAAM;8CACjB,cAAA,KAACtE,MAAM;wCAACyF,OAAO,EAAC,WAAW;wCAACkB,SAAS,gBAAE,KAAC5F,OAAO,KAAG;wCAAEkE,EAAE,EAAE;4CAAES,UAAU,EAAE,MAAM;yCAAE;wCAAEE,OAAO,EAAE5B,WAAW;kDAAE,cAEtG;sCAAS;kCACL;;0BACA;sBACJ;;cACL,AACJ;;MACA,CACH;AACJ,CAAC;AAED,MAAM1D,SAAS,GAAGQ,MAAM,CAACP,YAAY,CAAC,CAAC,CAAC,EAAE6E,KAAK,CAAA,EAAE,GAAM,CAAA;QACrDE,YAAY,EAAE,CAAC,UAAU,EAAEF,KAAK,CAACG,OAAO,CAACC,OAAO,CAAC,CAAC;KACnD,CAAA,AAAC,CAAC,AAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Variables/VariableEditor.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, useMemo } from 'react';\nimport {\n Button,\n Stack,\n Box,\n TableContainer,\n TableBody,\n TableRow,\n TableCell as MuiTableCell,\n Table,\n TableHead,\n Switch,\n Typography,\n IconButton,\n Alert,\n styled,\n capitalize,\n Tooltip,\n} from '@mui/material';\nimport AddIcon from 'mdi-material-ui/Plus';\nimport { VariableDefinition } from '@perses-dev/core';\nimport { useImmer } from 'use-immer';\nimport PencilIcon from 'mdi-material-ui/Pencil';\nimport TrashIcon from 'mdi-material-ui/TrashCan';\nimport ArrowUp from 'mdi-material-ui/ArrowUp';\nimport ArrowDown from 'mdi-material-ui/ArrowDown';\nimport ContentDuplicate from 'mdi-material-ui/ContentDuplicate';\nimport { Action, VariableEditForm, VariableState, VARIABLE_TYPES } from '@perses-dev/plugin-system';\nimport { ExternalVariableDefinition, useDiscardChangesConfirmationDialog } from '../../context';\nimport { hydrateTemplateVariableStates } from '../../context/TemplateVariableProvider/hydrationUtils';\n\nfunction getVariableLabelByKind(kind: string) {\n return VARIABLE_TYPES.find((variableType) => variableType.kind === kind)?.label;\n}\n\nfunction getValidation(variableDefinitions: VariableDefinition[]) {\n const errors = [];\n\n /** Variable names must be unique */\n const variableNames = variableDefinitions.map((variableDefinition) => variableDefinition.spec.name);\n const uniqueVariableNames = new Set(variableNames);\n if (variableNames.length !== uniqueVariableNames.size) {\n errors.push('Variable names must be unique');\n }\n return {\n errors: errors,\n isValid: errors.length === 0,\n };\n}\n\nexport function VariableEditor(props: {\n variableDefinitions: VariableDefinition[];\n externalVariableDefinitions: ExternalVariableDefinition[];\n onChange: (variableDefinitions: VariableDefinition[]) => void;\n onCancel: () => void;\n}) {\n const [variableDefinitions, setVariableDefinitions] = useImmer(props.variableDefinitions);\n const [variableEditIdx, setVariableEditIdx] = useState<number | null>(null);\n const [variableFormAction, setVariableFormAction] = useState<Action>('update');\n\n const externalVariableDefinitions = props.externalVariableDefinitions;\n const validation = useMemo(() => getValidation(variableDefinitions), [variableDefinitions]);\n const [variableState] = useMemo(() => {\n return [hydrateTemplateVariableStates(variableDefinitions, {}, externalVariableDefinitions)];\n }, [externalVariableDefinitions, variableDefinitions]);\n const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n const handleCancel = () => {\n if (JSON.stringify(props.variableDefinitions) !== JSON.stringify(variableDefinitions)) {\n openDiscardChangesConfirmationDialog({\n onDiscardChanges: () => {\n closeDiscardChangesConfirmationDialog();\n props.onCancel();\n },\n onCancel: () => {\n closeDiscardChangesConfirmationDialog();\n },\n description:\n 'You have unapplied changes. Are you sure you want to discard these changes? Changes cannot be recovered.',\n });\n } else {\n props.onCancel();\n }\n };\n\n const removeVariable = (index: number) => {\n setVariableDefinitions((draft) => {\n draft.splice(index, 1);\n });\n };\n\n const addVariable = () => {\n setVariableFormAction('create');\n setVariableDefinitions((draft) => {\n draft.push({\n kind: 'TextVariable',\n spec: {\n name: 'NewVariable',\n value: '',\n },\n });\n });\n setVariableEditIdx(variableDefinitions.length);\n };\n\n const editVariable = (index: number) => {\n setVariableFormAction('update');\n setVariableEditIdx(index);\n };\n\n const toggleVariableVisibility = (index: number, visible: boolean) => {\n setVariableDefinitions((draft) => {\n const v = draft[index];\n if (!v) {\n return;\n }\n if (!v.spec.display) {\n v.spec.display = {\n name: v.spec.name,\n hidden: false,\n };\n }\n v.spec.display.hidden = visible === false;\n });\n };\n\n const changeVariableOrder = (index: number, direction: 'up' | 'down') => {\n setVariableDefinitions((draft) => {\n if (direction === 'up') {\n const prevElement = draft[index - 1];\n const currentElement = draft[index];\n if (index === 0 || !prevElement || !currentElement) {\n return;\n }\n draft[index - 1] = currentElement;\n draft[index] = prevElement;\n } else {\n const nextElement = draft[index + 1];\n const currentElement = draft[index];\n if (index === draft.length - 1 || !nextElement || !currentElement) {\n return;\n }\n draft[index + 1] = currentElement;\n draft[index] = nextElement;\n }\n });\n };\n\n const overrideVariable = (v: VariableDefinition) => {\n setVariableDefinitions((draft) => {\n draft.push(v);\n });\n };\n\n return (\n <>\n {currentEditingVariableDefinition && (\n <VariableEditForm\n initialVariableDefinition={currentEditingVariableDefinition}\n onChange={(definition) => {\n setVariableDefinitions((draft) => {\n draft[variableEditIdx] = definition;\n setVariableEditIdx(null);\n });\n }}\n onCancel={() => {\n if (variableFormAction === 'create') {\n removeVariable(variableEditIdx);\n }\n setVariableEditIdx(null);\n }}\n action={variableFormAction}\n />\n )}\n {!currentEditingVariableDefinition && (\n <>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n padding: (theme) => theme.spacing(1, 2),\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n <Typography variant=\"h2\">Dashboard Variables</Typography>\n <Stack direction=\"row\" spacing={1} marginLeft=\"auto\">\n <Button\n disabled={props.variableDefinitions === variableDefinitions || !validation.isValid}\n variant=\"contained\"\n onClick={() => {\n props.onChange(variableDefinitions);\n }}\n >\n Apply\n </Button>\n <Button color=\"secondary\" variant=\"outlined\" onClick={handleCancel}>\n Cancel\n </Button>\n </Stack>\n </Box>\n <Box padding={2} sx={{ overflowY: 'scroll' }}>\n <Stack spacing={2}>\n {!validation.isValid &&\n validation.errors.map((error) => (\n <Alert severity=\"error\" key={error}>\n {error}\n </Alert>\n ))}\n <TableContainer>\n <Table sx={{ minWidth: 650 }} aria-label=\"table of variables\">\n <TableHead>\n <TableRow>\n <TableCell>Visibility</TableCell>\n <TableCell>Name</TableCell>\n <TableCell>Type</TableCell>\n <TableCell align=\"right\" />\n </TableRow>\n </TableHead>\n <TableBody>\n {variableDefinitions.map((v, idx) => (\n <TableRow key={v.spec.name}>\n <TableCell component=\"th\" scope=\"row\">\n <Switch\n checked={v.spec.display?.hidden !== true}\n onChange={(e) => {\n toggleVariableVisibility(idx, e.target.checked);\n }}\n />\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" sx={{ fontWeight: 'bold' }}>\n <VariableName name={v.spec.name} state={variableState.get({ name: v.spec.name })} />\n </TableCell>\n <TableCell>{getVariableLabelByKind(v.kind) ?? v.kind}</TableCell>\n <TableCell align=\"right\">\n <IconButton onClick={() => changeVariableOrder(idx, 'up')} disabled={idx === 0}>\n <ArrowUp />\n </IconButton>\n <IconButton\n onClick={() => changeVariableOrder(idx, 'down')}\n disabled={idx === variableDefinitions.length - 1}\n >\n <ArrowDown />\n </IconButton>\n\n <IconButton onClick={() => editVariable(idx)}>\n <PencilIcon />\n </IconButton>\n <IconButton onClick={() => removeVariable(idx)}>\n <TrashIcon />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n <Box display=\"flex\">\n <Button variant=\"contained\" startIcon={<AddIcon />} sx={{ marginLeft: 'auto' }} onClick={addVariable}>\n Add Variable\n </Button>\n </Box>\n </Stack>\n\n {externalVariableDefinitions.map((extVar) => (\n <Stack key={extVar.source}>\n <Typography variant=\"h2\">{capitalize(extVar.source)} Variables</Typography>\n <TableContainer>\n <Table sx={{ minWidth: 650 }} aria-label=\"table of variables\">\n <TableHead>\n <TableRow>\n <TableCell>Visibility</TableCell>\n <TableCell>Name</TableCell>\n <TableCell>Type</TableCell>\n <TableCell align=\"right\" />\n </TableRow>\n </TableHead>\n <TableBody>\n {extVar.definitions.map((v) => (\n <TableRow key={v.spec.name}>\n <TableCell component=\"th\" scope=\"row\">\n <Switch checked={v.spec.display?.hidden !== true} disabled />\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" sx={{ fontWeight: 'bold' }}>\n <VariableName\n name={v.spec.name}\n state={variableState.get({ name: v.spec.name, source: extVar.source })}\n />\n </TableCell>\n <TableCell>{getVariableLabelByKind(v.kind) ?? v.kind}</TableCell>\n <TableCell align=\"right\">\n <Tooltip title=\"Override\">\n <IconButton\n onClick={() => overrideVariable(v)}\n disabled={!!variableState.get({ name: v.spec.name })}\n >\n <ContentDuplicate />\n </IconButton>\n </Tooltip>\n <IconButton disabled>\n <ArrowUp />\n </IconButton>\n <IconButton disabled>\n <ArrowDown />\n </IconButton>\n <IconButton disabled>\n <PencilIcon />\n </IconButton>\n <IconButton disabled>\n <TrashIcon />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n </Stack>\n ))}\n </Box>\n </>\n )}\n </>\n );\n}\n\nconst TableCell = styled(MuiTableCell)(({ theme }) => ({\n borderBottom: `solid 1px ${theme.palette.divider}`,\n}));\n\nexport function VariableName(props: { name: string; state: VariableState | undefined }) {\n const { name, state } = props;\n return (\n <>\n {!state?.overridden && `${name} `}\n {!state?.overridden && state?.overriding && (\n <Box fontWeight=\"normal\" color={(theme) => theme.palette.primary.main}>\n (overriding)\n </Box>\n )}\n {state?.overridden && (\n <>\n <Box color={(theme) => theme.palette.grey[500]}>{name}</Box>\n <Box fontWeight=\"normal\" color={(theme) => theme.palette.grey[500]}>\n (overridden)\n </Box>\n </>\n )}\n </>\n );\n}\n"],"names":["useState","useMemo","Button","Stack","Box","TableContainer","TableBody","TableRow","TableCell","MuiTableCell","Table","TableHead","Switch","Typography","IconButton","Alert","styled","capitalize","Tooltip","AddIcon","useImmer","PencilIcon","TrashIcon","ArrowUp","ArrowDown","ContentDuplicate","VariableEditForm","VARIABLE_TYPES","useDiscardChangesConfirmationDialog","hydrateTemplateVariableStates","getVariableLabelByKind","kind","find","variableType","label","getValidation","variableDefinitions","errors","variableNames","map","variableDefinition","spec","name","uniqueVariableNames","Set","length","size","push","isValid","VariableEditor","props","setVariableDefinitions","variableEditIdx","setVariableEditIdx","variableFormAction","setVariableFormAction","externalVariableDefinitions","validation","variableState","currentEditingVariableDefinition","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleCancel","JSON","stringify","onDiscardChanges","onCancel","description","removeVariable","index","draft","splice","addVariable","value","editVariable","toggleVariableVisibility","visible","v","display","hidden","changeVariableOrder","direction","prevElement","currentElement","nextElement","overrideVariable","initialVariableDefinition","onChange","definition","action","sx","alignItems","padding","theme","spacing","borderBottom","palette","divider","variant","marginLeft","disabled","onClick","color","overflowY","error","severity","minWidth","aria-label","align","idx","component","scope","checked","e","target","fontWeight","VariableName","state","get","startIcon","extVar","source","definitions","title","overridden","overriding","primary","main","grey"],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { VariableSpec } from '@perses-dev/core';
|
|
2
3
|
export declare function TemplateVariableList(): JSX.Element;
|
|
4
|
+
export declare function TemplateVariableListItem({ spec, source }: {
|
|
5
|
+
spec: VariableSpec;
|
|
6
|
+
source?: string;
|
|
7
|
+
}): JSX.Element;
|
|
3
8
|
//# sourceMappingURL=VariableList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableList.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/VariableList.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"VariableList.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/VariableList.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAsB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYpE,wBAAgB,oBAAoB,gBAmBnC;AAED,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,eAejG"}
|
|
@@ -10,30 +10,44 @@
|
|
|
10
10
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
11
|
// See the License for the specific language governing permissions and
|
|
12
12
|
// limitations under the License.
|
|
13
|
-
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
14
|
import { Box } from '@mui/material';
|
|
15
|
-
import { useTemplateVariableDefinitions } from '../../context';
|
|
15
|
+
import { useTemplateExternalVariableDefinitions, useTemplateVariable, useTemplateVariableDefinitions } from '../../context';
|
|
16
16
|
import { TemplateVariable } from './TemplateVariable';
|
|
17
17
|
const VARIABLE_INPUT_MIN_WIDTH = '120px';
|
|
18
18
|
const VARIABLE_INPUT_MAX_WIDTH = '240px';
|
|
19
19
|
export function TemplateVariableList() {
|
|
20
20
|
const variableDefinitions = useTemplateVariableDefinitions();
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}, v.spec.name)
|
|
34
|
-
}, v.spec.name);
|
|
35
|
-
})
|
|
21
|
+
const externalVariableDefinitions = useTemplateExternalVariableDefinitions();
|
|
22
|
+
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
23
|
+
children: [
|
|
24
|
+
externalVariableDefinitions.slice().reverse() // We reverse to have the most prioritized on top
|
|
25
|
+
.map((def)=>def.definitions.map((v)=>/*#__PURE__*/ _jsx(TemplateVariableListItem, {
|
|
26
|
+
spec: v.spec,
|
|
27
|
+
source: def.source
|
|
28
|
+
}, v.spec.name + def.source))),
|
|
29
|
+
variableDefinitions.map((v)=>/*#__PURE__*/ _jsx(TemplateVariableListItem, {
|
|
30
|
+
spec: v.spec
|
|
31
|
+
}, v.spec.name))
|
|
32
|
+
]
|
|
36
33
|
});
|
|
37
34
|
}
|
|
35
|
+
export function TemplateVariableListItem({ spec , source }) {
|
|
36
|
+
var ref, ref1;
|
|
37
|
+
const ctx = useTemplateVariable(spec.name, source);
|
|
38
|
+
var ref2, ref3;
|
|
39
|
+
return /*#__PURE__*/ _jsx(Box, {
|
|
40
|
+
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,
|
|
41
|
+
minWidth: VARIABLE_INPUT_MIN_WIDTH,
|
|
42
|
+
maxWidth: VARIABLE_INPUT_MAX_WIDTH,
|
|
43
|
+
marginBottom: 1,
|
|
44
|
+
marginRight: 1,
|
|
45
|
+
"data-testid": "template-variable",
|
|
46
|
+
children: /*#__PURE__*/ _jsx(TemplateVariable, {
|
|
47
|
+
name: spec.name,
|
|
48
|
+
source: source
|
|
49
|
+
}, (ref2 = spec.name + source) !== null && ref2 !== void 0 ? ref2 : '')
|
|
50
|
+
}, (ref3 = spec.name + source) !== null && ref3 !== void 0 ? ref3 : '');
|
|
51
|
+
}
|
|
38
52
|
|
|
39
53
|
//# sourceMappingURL=VariableList.js.map
|