@perses-dev/components 0.50.1 → 0.51.0-beta.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/ColorPicker/ColorPicker.js +2 -2
- package/dist/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/ContentWithLegend/model/content-with-legend-model.js +2 -3
- package/dist/ContentWithLegend/model/content-with-legend-model.js.map +1 -1
- package/dist/DragAndDrop/DragButton.d.ts +2 -2
- package/dist/DragAndDrop/DragButton.d.ts.map +1 -1
- package/dist/DragAndDrop/DragButton.js +6 -4
- package/dist/DragAndDrop/DragButton.js.map +1 -1
- package/dist/Drawer/Drawer.js +1 -1
- package/dist/Drawer/Drawer.js.map +1 -1
- package/dist/EChart/EChart.js +3 -4
- package/dist/EChart/EChart.js.map +1 -1
- package/dist/GaugeChart/GaugeChart.js +2 -5
- package/dist/GaugeChart/GaugeChart.js.map +1 -1
- package/dist/InfoTooltip/InfoTooltip.js +5 -4
- package/dist/InfoTooltip/InfoTooltip.js.map +1 -1
- package/dist/Legend/ListLegendItem.js +3 -4
- package/dist/Legend/ListLegendItem.js.map +1 -1
- package/dist/LineChart/LineChart.js +4 -8
- package/dist/LineChart/LineChart.js.map +1 -1
- package/dist/LinksEditor/LinksEditor.js +9 -18
- package/dist/LinksEditor/LinksEditor.js.map +1 -1
- package/dist/Overlay/Overlay.js +1 -1
- package/dist/Overlay/Overlay.js.map +1 -1
- package/dist/SettingsAutocomplete/SettingsAutocomplete.js +1 -2
- package/dist/SettingsAutocomplete/SettingsAutocomplete.js.map +1 -1
- package/dist/StatChart/StatChart.js +3 -5
- package/dist/StatChart/StatChart.js.map +1 -1
- package/dist/StatChart/calculateFontSize.js +2 -4
- package/dist/StatChart/calculateFontSize.js.map +1 -1
- package/dist/StatusHistoryChart/StatusHistoryChart.js +1 -2
- package/dist/StatusHistoryChart/StatusHistoryChart.js.map +1 -1
- package/dist/Table/Table.js +5 -5
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/TableCell.js +5 -6
- package/dist/Table/TableCell.js.map +1 -1
- package/dist/Table/VirtualizedTable.js +11 -14
- package/dist/Table/VirtualizedTable.js.map +1 -1
- package/dist/Table/hooks/useTableKeyboardNav.js +1 -1
- package/dist/Table/hooks/useTableKeyboardNav.js.map +1 -1
- package/dist/Table/hooks/useVirtualizedTableKeyboardNav.js +7 -13
- package/dist/Table/hooks/useVirtualizedTableKeyboardNav.js.map +1 -1
- package/dist/Table/model/table-model.js +1 -1
- package/dist/Table/model/table-model.js.map +1 -1
- package/dist/ThresholdsEditor/ThresholdsEditor.js +15 -23
- package/dist/ThresholdsEditor/ThresholdsEditor.js.map +1 -1
- package/dist/TimeChart/TimeChart.js +3 -6
- package/dist/TimeChart/TimeChart.js.map +1 -1
- package/dist/TimeSeriesTooltip/LineChartTooltip.js +6 -11
- package/dist/TimeSeriesTooltip/LineChartTooltip.js.map +1 -1
- package/dist/TimeSeriesTooltip/SeriesInfo.js +1 -2
- package/dist/TimeSeriesTooltip/SeriesInfo.js.map +1 -1
- package/dist/TimeSeriesTooltip/TimeChartTooltip.js +2 -3
- package/dist/TimeSeriesTooltip/TimeChartTooltip.js.map +1 -1
- package/dist/TimeSeriesTooltip/TooltipHeader.js +4 -10
- package/dist/TimeSeriesTooltip/TooltipHeader.js.map +1 -1
- package/dist/TimeSeriesTooltip/nearby-series.js +13 -23
- package/dist/TimeSeriesTooltip/nearby-series.js.map +1 -1
- package/dist/TimeSeriesTooltip/utils.js +2 -4
- package/dist/TimeSeriesTooltip/utils.js.map +1 -1
- package/dist/TransformsEditor/TransformEditor.js +4 -7
- package/dist/TransformsEditor/TransformEditor.js.map +1 -1
- package/dist/TransformsEditor/TransformEditorContainer.js +3 -5
- package/dist/TransformsEditor/TransformEditorContainer.js.map +1 -1
- package/dist/TransformsEditor/TransformsEditor.js +3 -6
- package/dist/TransformsEditor/TransformsEditor.js.map +1 -1
- package/dist/ValueMappingEditor/ValueMappingEditor.js +11 -24
- package/dist/ValueMappingEditor/ValueMappingEditor.js.map +1 -1
- package/dist/cjs/ColorPicker/ColorPicker.js +2 -2
- package/dist/cjs/ContentWithLegend/model/content-with-legend-model.js +2 -3
- package/dist/cjs/DragAndDrop/DragButton.js +5 -3
- package/dist/cjs/Drawer/Drawer.js +1 -1
- package/dist/cjs/EChart/EChart.js +3 -4
- package/dist/cjs/GaugeChart/GaugeChart.js +2 -5
- package/dist/cjs/InfoTooltip/InfoTooltip.js +5 -4
- package/dist/cjs/Legend/ListLegendItem.js +3 -4
- package/dist/cjs/LineChart/LineChart.js +4 -8
- package/dist/cjs/LinksEditor/LinksEditor.js +9 -18
- package/dist/cjs/Overlay/Overlay.js +1 -1
- package/dist/cjs/SettingsAutocomplete/SettingsAutocomplete.js +1 -2
- package/dist/cjs/StatChart/StatChart.js +3 -5
- package/dist/cjs/StatChart/calculateFontSize.js +2 -4
- package/dist/cjs/StatusHistoryChart/StatusHistoryChart.js +1 -2
- package/dist/cjs/Table/Table.js +5 -5
- package/dist/cjs/Table/TableCell.js +5 -6
- package/dist/cjs/Table/VirtualizedTable.js +11 -14
- package/dist/cjs/Table/hooks/useTableKeyboardNav.js +1 -1
- package/dist/cjs/Table/hooks/useVirtualizedTableKeyboardNav.js +7 -13
- package/dist/cjs/Table/model/table-model.js +1 -1
- package/dist/cjs/ThresholdsEditor/ThresholdsEditor.js +15 -23
- package/dist/cjs/TimeChart/TimeChart.js +3 -6
- package/dist/cjs/TimeSeriesTooltip/LineChartTooltip.js +6 -11
- package/dist/cjs/TimeSeriesTooltip/SeriesInfo.js +1 -2
- package/dist/cjs/TimeSeriesTooltip/TimeChartTooltip.js +2 -3
- package/dist/cjs/TimeSeriesTooltip/TooltipHeader.js +4 -10
- package/dist/cjs/TimeSeriesTooltip/nearby-series.js +13 -23
- package/dist/cjs/TimeSeriesTooltip/utils.js +2 -4
- package/dist/cjs/TransformsEditor/TransformEditor.js +4 -7
- package/dist/cjs/TransformsEditor/TransformEditorContainer.js +3 -5
- package/dist/cjs/TransformsEditor/TransformsEditor.js +3 -6
- package/dist/cjs/ValueMappingEditor/ValueMappingEditor.js +11 -24
- package/dist/cjs/context/TimeZoneProvider.js +1 -1
- package/dist/cjs/controls/TextField.js +1 -1
- package/dist/cjs/utils/chart-actions.js +1 -2
- package/dist/cjs/utils/format.js +1 -1
- package/dist/cjs/utils/theme-gen.js +5 -7
- package/dist/context/TimeZoneProvider.js +1 -1
- package/dist/context/TimeZoneProvider.js.map +1 -1
- package/dist/controls/TextField.js +1 -1
- package/dist/controls/TextField.js.map +1 -1
- package/dist/utils/chart-actions.js +1 -2
- package/dist/utils/chart-actions.js.map +1 -1
- package/dist/utils/format.js +1 -1
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/theme-gen.js +5 -7
- package/dist/utils/theme-gen.js.map +1 -1
- package/package.json +3 -3
|
@@ -18,8 +18,6 @@ import { OptionsColorPicker } from '../ColorPicker/OptionsColorPicker';
|
|
|
18
18
|
const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
19
19
|
switch(mapping.kind){
|
|
20
20
|
case 'Value':
|
|
21
|
-
var _mapping_spec;
|
|
22
|
-
var _mapping_spec_value;
|
|
23
21
|
return /*#__PURE__*/ _jsx(Stack, {
|
|
24
22
|
gap: 1,
|
|
25
23
|
direction: "row",
|
|
@@ -27,7 +25,7 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
27
25
|
children: /*#__PURE__*/ _jsx(TextField, {
|
|
28
26
|
label: "Value",
|
|
29
27
|
placeholder: "Exact value",
|
|
30
|
-
value:
|
|
28
|
+
value: mapping.spec?.value ?? '',
|
|
31
29
|
onChange: (e)=>onChange({
|
|
32
30
|
...mapping,
|
|
33
31
|
spec: {
|
|
@@ -39,8 +37,6 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
39
37
|
})
|
|
40
38
|
});
|
|
41
39
|
case 'Range':
|
|
42
|
-
var _mapping_spec1, _mapping_spec2;
|
|
43
|
-
var _mapping_spec_from, _mapping_spec_to;
|
|
44
40
|
return /*#__PURE__*/ _jsxs(Stack, {
|
|
45
41
|
gap: 1,
|
|
46
42
|
direction: "row",
|
|
@@ -49,7 +45,7 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
49
45
|
/*#__PURE__*/ _jsx(TextField, {
|
|
50
46
|
label: "From",
|
|
51
47
|
placeholder: "Start of range",
|
|
52
|
-
value:
|
|
48
|
+
value: mapping.spec?.from ?? '',
|
|
53
49
|
onChange: (e)=>onChange({
|
|
54
50
|
...mapping,
|
|
55
51
|
spec: {
|
|
@@ -62,7 +58,7 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
62
58
|
/*#__PURE__*/ _jsx(TextField, {
|
|
63
59
|
label: "To",
|
|
64
60
|
placeholder: "End of range (inclusive)",
|
|
65
|
-
value:
|
|
61
|
+
value: mapping.spec?.to ?? '',
|
|
66
62
|
onChange: (e)=>onChange({
|
|
67
63
|
...mapping,
|
|
68
64
|
spec: {
|
|
@@ -75,8 +71,6 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
75
71
|
]
|
|
76
72
|
});
|
|
77
73
|
case 'Regex':
|
|
78
|
-
var _mapping_spec3;
|
|
79
|
-
var _mapping_spec_pattern;
|
|
80
74
|
return /*#__PURE__*/ _jsx(Stack, {
|
|
81
75
|
gap: 1,
|
|
82
76
|
direction: "row",
|
|
@@ -84,7 +78,7 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
84
78
|
children: /*#__PURE__*/ _jsx(TextField, {
|
|
85
79
|
label: "Regular Expression",
|
|
86
80
|
placeholder: "JavaScript regular expression",
|
|
87
|
-
value:
|
|
81
|
+
value: mapping.spec?.pattern ?? '',
|
|
88
82
|
onChange: (e)=>onChange({
|
|
89
83
|
...mapping,
|
|
90
84
|
spec: {
|
|
@@ -96,8 +90,6 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
96
90
|
})
|
|
97
91
|
});
|
|
98
92
|
case 'Misc':
|
|
99
|
-
var _mapping_spec4;
|
|
100
|
-
var _mapping_spec_value1;
|
|
101
93
|
return /*#__PURE__*/ _jsx(Stack, {
|
|
102
94
|
gap: 1,
|
|
103
95
|
direction: "row",
|
|
@@ -105,7 +97,7 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
105
97
|
children: /*#__PURE__*/ _jsxs(TextField, {
|
|
106
98
|
select: true,
|
|
107
99
|
label: "Value",
|
|
108
|
-
value:
|
|
100
|
+
value: mapping.spec?.value ?? '',
|
|
109
101
|
onChange: (e)=>onChange({
|
|
110
102
|
...mapping,
|
|
111
103
|
spec: {
|
|
@@ -210,7 +202,6 @@ const ConditionEditor = ({ mapping, onChange, ...props })=>{
|
|
|
210
202
|
}
|
|
211
203
|
};
|
|
212
204
|
export const ValueMappingEditor = ({ mapping, onChange, onDelete, ...props })=>{
|
|
213
|
-
var _mapping_spec_result, _mapping_spec, _mapping_spec_result1, _mapping_spec1;
|
|
214
205
|
const handleColorChange = (color)=>{
|
|
215
206
|
onChange({
|
|
216
207
|
...mapping,
|
|
@@ -223,7 +214,6 @@ export const ValueMappingEditor = ({ mapping, onChange, onDelete, ...props })=>{
|
|
|
223
214
|
}
|
|
224
215
|
});
|
|
225
216
|
};
|
|
226
|
-
var _mapping_spec_result_value, _mapping_spec_result_color;
|
|
227
217
|
return /*#__PURE__*/ _jsxs(Grid, {
|
|
228
218
|
container: true,
|
|
229
219
|
spacing: 2,
|
|
@@ -326,20 +316,17 @@ export const ValueMappingEditor = ({ mapping, onChange, onDelete, ...props })=>{
|
|
|
326
316
|
},
|
|
327
317
|
children: /*#__PURE__*/ _jsx(TextField, {
|
|
328
318
|
label: "Display text",
|
|
329
|
-
value:
|
|
330
|
-
onChange: (e)=>{
|
|
331
|
-
var _mapping_spec;
|
|
332
|
-
return onChange({
|
|
319
|
+
value: mapping.spec?.result?.value ?? '',
|
|
320
|
+
onChange: (e)=>onChange({
|
|
333
321
|
...mapping,
|
|
334
322
|
spec: {
|
|
335
323
|
...mapping.spec,
|
|
336
324
|
result: {
|
|
337
|
-
...
|
|
325
|
+
...mapping.spec?.result,
|
|
338
326
|
value: e.target.value
|
|
339
327
|
}
|
|
340
328
|
}
|
|
341
|
-
})
|
|
342
|
-
},
|
|
329
|
+
}),
|
|
343
330
|
fullWidth: true
|
|
344
331
|
})
|
|
345
332
|
}),
|
|
@@ -351,9 +338,9 @@ export const ValueMappingEditor = ({ mapping, onChange, onDelete, ...props })=>{
|
|
|
351
338
|
direction: "row",
|
|
352
339
|
justifyContent: "center",
|
|
353
340
|
gap: 1,
|
|
354
|
-
children:
|
|
341
|
+
children: mapping.spec?.result?.color ? /*#__PURE__*/ _jsx(OptionsColorPicker, {
|
|
355
342
|
label: "Color",
|
|
356
|
-
color:
|
|
343
|
+
color: mapping.spec.result.color ?? '#000',
|
|
357
344
|
onColorChange: handleColorChange,
|
|
358
345
|
onClear: ()=>handleColorChange(undefined)
|
|
359
346
|
}) : /*#__PURE__*/ _jsx(IconButton, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ValueMappingEditor/ValueMappingEditor.tsx"],"sourcesContent":["// Copyright 2024 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 {\n Grid2Props as GridProps,\n IconButton,\n MenuItem,\n Stack,\n StackProps,\n TextField,\n Tooltip,\n Typography,\n Grid2 as Grid,\n} from '@mui/material';\nimport DeleteIcon from 'mdi-material-ui/DeleteOutline';\nimport PlusIcon from 'mdi-material-ui/Plus';\nimport { ValueMapping } from '@perses-dev/core';\nimport { FC } from 'react';\nimport { OptionsColorPicker } from '../ColorPicker/OptionsColorPicker';\n\ninterface ValueMappingConditionEditorProps extends Omit<StackProps, 'onChange'> {\n mapping: ValueMapping;\n onChange: (condition: ValueMapping) => void;\n}\n\nconst ConditionEditor: FC<ValueMappingConditionEditorProps> = ({ mapping, onChange, ...props }) => {\n switch (mapping.kind) {\n case 'Value':\n return (\n <Stack gap={1} direction=\"row\" {...props}>\n <TextField\n label=\"Value\"\n placeholder=\"Exact value\"\n value={mapping.spec?.value ?? ''}\n onChange={(e) =>\n onChange({\n ...mapping,\n spec: { ...mapping.spec, value: e.target.value },\n })\n }\n fullWidth\n />\n </Stack>\n );\n case 'Range':\n return (\n <Stack gap={1} direction=\"row\" {...props}>\n <TextField\n label=\"From\"\n placeholder=\"Start of range\"\n value={mapping.spec?.from ?? ''}\n onChange={(e) =>\n onChange({\n ...mapping,\n spec: { ...mapping.spec, from: e.target.value === '' ? undefined : +e.target.value },\n })\n }\n fullWidth\n />\n <TextField\n label=\"To\"\n placeholder=\"End of range (inclusive)\"\n value={mapping.spec?.to ?? ''}\n onChange={(e) =>\n onChange({\n ...mapping,\n spec: { ...mapping.spec, to: e.target.value === '' ? undefined : +e.target.value },\n })\n }\n fullWidth\n />\n </Stack>\n );\n case 'Regex':\n return (\n <Stack gap={1} direction=\"row\" {...props}>\n <TextField\n label=\"Regular Expression\"\n placeholder=\"JavaScript regular expression\"\n value={mapping.spec?.pattern ?? ''}\n onChange={(e) => onChange({ ...mapping, spec: { ...mapping.spec, pattern: e.target.value } })}\n fullWidth\n />\n </Stack>\n );\n case 'Misc':\n return (\n <Stack gap={1} direction=\"row\" {...props}>\n <TextField\n select\n label=\"Value\"\n value={mapping.spec?.value ?? ''}\n onChange={(e) => onChange({ ...mapping, spec: { value: e.target.value } } as ValueMapping)}\n SelectProps={{\n renderValue: (selected) => {\n switch (selected) {\n case 'empty':\n return 'Empty';\n case 'null':\n return 'Null';\n case 'NaN':\n return 'NaN';\n case 'true':\n return 'True';\n case 'false':\n return 'False';\n default:\n return String(selected);\n }\n },\n }}\n fullWidth\n >\n <MenuItem value=\"empty\">\n <Stack>\n <Typography>Empty</Typography>\n <Typography variant=\"caption\">Matches empty string</Typography>\n </Stack>\n </MenuItem>\n <MenuItem value=\"null\">\n <Stack>\n <Typography>Null</Typography>\n <Typography variant=\"caption\">Matches null or undefined</Typography>\n </Stack>\n </MenuItem>\n <MenuItem value=\"NaN\">\n <Stack>\n <Typography>NaN</Typography>\n <Typography variant=\"caption\">Matches Not a Number value</Typography>\n </Stack>\n </MenuItem>\n <MenuItem value=\"true\">\n <Stack>\n <Typography>True</Typography>\n <Typography variant=\"caption\">Matches true boolean</Typography>\n </Stack>\n </MenuItem>\n <MenuItem value=\"false\">\n <Stack>\n <Typography>False</Typography>\n <Typography variant=\"caption\">Matches false boolean</Typography>\n </Stack>\n </MenuItem>\n </TextField>\n </Stack>\n );\n default:\n return null;\n }\n};\nexport interface ValueMappingEditorProps extends Omit<GridProps, 'onChange'> {\n mapping: ValueMapping;\n onChange: (mapping: ValueMapping) => void;\n onDelete: () => void;\n}\n\nexport const ValueMappingEditor: FC<ValueMappingEditorProps> = ({ mapping, onChange, onDelete, ...props }) => {\n const handleColorChange = (color?: string): void => {\n onChange({\n ...mapping,\n spec: {\n ...mapping.spec,\n result: {\n ...mapping.spec.result,\n color,\n },\n },\n } as ValueMapping);\n };\n return (\n <Grid container spacing={2} {...props}>\n <Grid size={{ xs: 5 }}>\n <Stack direction=\"row\" gap={1} width=\"100%\">\n <TextField\n select\n label=\"Type\"\n value={mapping.kind}\n onChange={(e) => onChange({ ...mapping, kind: e.target.value } as ValueMapping)}\n required\n sx={{ width: '120px' }}\n >\n <MenuItem value=\"Value\">\n <Stack>\n <Typography>Value</Typography>\n {mapping.kind !== 'Value' && <Typography variant=\"caption\">Matches an exact text value</Typography>}\n </Stack>\n </MenuItem>\n <MenuItem value=\"Range\">\n <Stack>\n <Typography>Range</Typography>\n {mapping.kind !== 'Range' && (\n <Typography variant=\"caption\">Matches against a numerical range</Typography>\n )}\n </Stack>\n </MenuItem>\n <MenuItem value=\"Regex\">\n <Stack>\n <Typography>Regex</Typography>\n {mapping.kind !== 'Regex' && (\n <Typography variant=\"caption\">Matches against a regular expression</Typography>\n )}\n </Stack>\n </MenuItem>\n <MenuItem value=\"Misc\">\n <Stack>\n <Typography>Misc</Typography>\n {mapping.kind !== 'Misc' && (\n <Typography variant=\"caption\">Matches against empty, null and NaN values</Typography>\n )}\n </Stack>\n </MenuItem>\n </TextField>\n <ConditionEditor\n width=\"100%\"\n mapping={mapping}\n onChange={(updatedMapping) => onChange({ ...mapping, ...updatedMapping })}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 4 }}>\n <TextField\n label=\"Display text\"\n value={mapping.spec?.result?.value ?? ''}\n onChange={(e) =>\n onChange({\n ...mapping,\n spec: {\n ...mapping.spec,\n result: {\n ...mapping.spec?.result,\n value: e.target.value,\n },\n },\n } as ValueMapping)\n }\n fullWidth\n />\n </Grid>\n <Grid size={{ xs: 1 }}>\n <Stack direction=\"row\" justifyContent=\"center\" gap={1}>\n {mapping.spec?.result?.color ? (\n <OptionsColorPicker\n label=\"Color\"\n color={mapping.spec.result.color ?? '#000'}\n onColorChange={handleColorChange}\n onClear={() => handleColorChange(undefined)}\n />\n ) : (\n <IconButton onClick={() => handleColorChange('#000')}>\n <PlusIcon />\n </IconButton>\n )}\n </Stack>\n </Grid>\n <Grid size={{ xs: 1 }} textAlign=\"end\">\n <Tooltip title=\"Remove mapping settings\" placement=\"top\">\n <IconButton size=\"small\" sx={{ marginLeft: 'auto' }} onClick={onDelete}>\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </Grid>\n </Grid>\n );\n};\n"],"names":["IconButton","MenuItem","Stack","TextField","Tooltip","Typography","Grid2","Grid","DeleteIcon","PlusIcon","OptionsColorPicker","ConditionEditor","mapping","onChange","props","kind","gap","direction","label","placeholder","value","spec","e","target","fullWidth","from","undefined","to","pattern","select","SelectProps","renderValue","selected","String","variant","ValueMappingEditor","onDelete","handleColorChange","color","result","container","spacing","size","xs","width","required","sx","updatedMapping","justifyContent","onColorChange","onClear","onClick","textAlign","title","placement","marginLeft"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/ValueMappingEditor/ValueMappingEditor.tsx"],"sourcesContent":["// Copyright 2024 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 {\n Grid2Props as GridProps,\n IconButton,\n MenuItem,\n Stack,\n StackProps,\n TextField,\n Tooltip,\n Typography,\n Grid2 as Grid,\n} from '@mui/material';\nimport DeleteIcon from 'mdi-material-ui/DeleteOutline';\nimport PlusIcon from 'mdi-material-ui/Plus';\nimport { ValueMapping } from '@perses-dev/core';\nimport { FC } from 'react';\nimport { OptionsColorPicker } from '../ColorPicker/OptionsColorPicker';\n\ninterface ValueMappingConditionEditorProps extends Omit<StackProps, 'onChange'> {\n mapping: ValueMapping;\n onChange: (condition: ValueMapping) => void;\n}\n\nconst ConditionEditor: FC<ValueMappingConditionEditorProps> = ({ mapping, onChange, ...props }) => {\n switch (mapping.kind) {\n case 'Value':\n return (\n <Stack gap={1} direction=\"row\" {...props}>\n <TextField\n label=\"Value\"\n placeholder=\"Exact value\"\n value={mapping.spec?.value ?? ''}\n onChange={(e) =>\n onChange({\n ...mapping,\n spec: { ...mapping.spec, value: e.target.value },\n })\n }\n fullWidth\n />\n </Stack>\n );\n case 'Range':\n return (\n <Stack gap={1} direction=\"row\" {...props}>\n <TextField\n label=\"From\"\n placeholder=\"Start of range\"\n value={mapping.spec?.from ?? ''}\n onChange={(e) =>\n onChange({\n ...mapping,\n spec: { ...mapping.spec, from: e.target.value === '' ? undefined : +e.target.value },\n })\n }\n fullWidth\n />\n <TextField\n label=\"To\"\n placeholder=\"End of range (inclusive)\"\n value={mapping.spec?.to ?? ''}\n onChange={(e) =>\n onChange({\n ...mapping,\n spec: { ...mapping.spec, to: e.target.value === '' ? undefined : +e.target.value },\n })\n }\n fullWidth\n />\n </Stack>\n );\n case 'Regex':\n return (\n <Stack gap={1} direction=\"row\" {...props}>\n <TextField\n label=\"Regular Expression\"\n placeholder=\"JavaScript regular expression\"\n value={mapping.spec?.pattern ?? ''}\n onChange={(e) => onChange({ ...mapping, spec: { ...mapping.spec, pattern: e.target.value } })}\n fullWidth\n />\n </Stack>\n );\n case 'Misc':\n return (\n <Stack gap={1} direction=\"row\" {...props}>\n <TextField\n select\n label=\"Value\"\n value={mapping.spec?.value ?? ''}\n onChange={(e) => onChange({ ...mapping, spec: { value: e.target.value } } as ValueMapping)}\n SelectProps={{\n renderValue: (selected) => {\n switch (selected) {\n case 'empty':\n return 'Empty';\n case 'null':\n return 'Null';\n case 'NaN':\n return 'NaN';\n case 'true':\n return 'True';\n case 'false':\n return 'False';\n default:\n return String(selected);\n }\n },\n }}\n fullWidth\n >\n <MenuItem value=\"empty\">\n <Stack>\n <Typography>Empty</Typography>\n <Typography variant=\"caption\">Matches empty string</Typography>\n </Stack>\n </MenuItem>\n <MenuItem value=\"null\">\n <Stack>\n <Typography>Null</Typography>\n <Typography variant=\"caption\">Matches null or undefined</Typography>\n </Stack>\n </MenuItem>\n <MenuItem value=\"NaN\">\n <Stack>\n <Typography>NaN</Typography>\n <Typography variant=\"caption\">Matches Not a Number value</Typography>\n </Stack>\n </MenuItem>\n <MenuItem value=\"true\">\n <Stack>\n <Typography>True</Typography>\n <Typography variant=\"caption\">Matches true boolean</Typography>\n </Stack>\n </MenuItem>\n <MenuItem value=\"false\">\n <Stack>\n <Typography>False</Typography>\n <Typography variant=\"caption\">Matches false boolean</Typography>\n </Stack>\n </MenuItem>\n </TextField>\n </Stack>\n );\n default:\n return null;\n }\n};\nexport interface ValueMappingEditorProps extends Omit<GridProps, 'onChange'> {\n mapping: ValueMapping;\n onChange: (mapping: ValueMapping) => void;\n onDelete: () => void;\n}\n\nexport const ValueMappingEditor: FC<ValueMappingEditorProps> = ({ mapping, onChange, onDelete, ...props }) => {\n const handleColorChange = (color?: string): void => {\n onChange({\n ...mapping,\n spec: {\n ...mapping.spec,\n result: {\n ...mapping.spec.result,\n color,\n },\n },\n } as ValueMapping);\n };\n return (\n <Grid container spacing={2} {...props}>\n <Grid size={{ xs: 5 }}>\n <Stack direction=\"row\" gap={1} width=\"100%\">\n <TextField\n select\n label=\"Type\"\n value={mapping.kind}\n onChange={(e) => onChange({ ...mapping, kind: e.target.value } as ValueMapping)}\n required\n sx={{ width: '120px' }}\n >\n <MenuItem value=\"Value\">\n <Stack>\n <Typography>Value</Typography>\n {mapping.kind !== 'Value' && <Typography variant=\"caption\">Matches an exact text value</Typography>}\n </Stack>\n </MenuItem>\n <MenuItem value=\"Range\">\n <Stack>\n <Typography>Range</Typography>\n {mapping.kind !== 'Range' && (\n <Typography variant=\"caption\">Matches against a numerical range</Typography>\n )}\n </Stack>\n </MenuItem>\n <MenuItem value=\"Regex\">\n <Stack>\n <Typography>Regex</Typography>\n {mapping.kind !== 'Regex' && (\n <Typography variant=\"caption\">Matches against a regular expression</Typography>\n )}\n </Stack>\n </MenuItem>\n <MenuItem value=\"Misc\">\n <Stack>\n <Typography>Misc</Typography>\n {mapping.kind !== 'Misc' && (\n <Typography variant=\"caption\">Matches against empty, null and NaN values</Typography>\n )}\n </Stack>\n </MenuItem>\n </TextField>\n <ConditionEditor\n width=\"100%\"\n mapping={mapping}\n onChange={(updatedMapping) => onChange({ ...mapping, ...updatedMapping })}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 4 }}>\n <TextField\n label=\"Display text\"\n value={mapping.spec?.result?.value ?? ''}\n onChange={(e) =>\n onChange({\n ...mapping,\n spec: {\n ...mapping.spec,\n result: {\n ...mapping.spec?.result,\n value: e.target.value,\n },\n },\n } as ValueMapping)\n }\n fullWidth\n />\n </Grid>\n <Grid size={{ xs: 1 }}>\n <Stack direction=\"row\" justifyContent=\"center\" gap={1}>\n {mapping.spec?.result?.color ? (\n <OptionsColorPicker\n label=\"Color\"\n color={mapping.spec.result.color ?? '#000'}\n onColorChange={handleColorChange}\n onClear={() => handleColorChange(undefined)}\n />\n ) : (\n <IconButton onClick={() => handleColorChange('#000')}>\n <PlusIcon />\n </IconButton>\n )}\n </Stack>\n </Grid>\n <Grid size={{ xs: 1 }} textAlign=\"end\">\n <Tooltip title=\"Remove mapping settings\" placement=\"top\">\n <IconButton size=\"small\" sx={{ marginLeft: 'auto' }} onClick={onDelete}>\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </Grid>\n </Grid>\n );\n};\n"],"names":["IconButton","MenuItem","Stack","TextField","Tooltip","Typography","Grid2","Grid","DeleteIcon","PlusIcon","OptionsColorPicker","ConditionEditor","mapping","onChange","props","kind","gap","direction","label","placeholder","value","spec","e","target","fullWidth","from","undefined","to","pattern","select","SelectProps","renderValue","selected","String","variant","ValueMappingEditor","onDelete","handleColorChange","color","result","container","spacing","size","xs","width","required","sx","updatedMapping","justifyContent","onColorChange","onClear","onClick","textAlign","title","placement","marginLeft"],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ const ColorPicker = ({ color, onChange, onClear, palette })=>{
|
|
|
36
36
|
const [value, setValue] = (0, _react.useState)(color);
|
|
37
37
|
const handleColorChange = (color)=>{
|
|
38
38
|
setValue(color);
|
|
39
|
-
onChange
|
|
39
|
+
onChange?.(color);
|
|
40
40
|
};
|
|
41
41
|
// we should update this if https://github.com/omgovich/react-colorful/issues/157 is resolved
|
|
42
42
|
const handleInputChange = (e)=>{
|
|
@@ -44,7 +44,7 @@ const ColorPicker = ({ color, onChange, onClear, palette })=>{
|
|
|
44
44
|
setValue(`#${inputValue}`); // always prefix input value with # to indicate hex format
|
|
45
45
|
// only set color if input value is a valid hex color
|
|
46
46
|
if (isValidHex(e.target.value)) {
|
|
47
|
-
onChange
|
|
47
|
+
onChange?.(e.target.value);
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
50
|
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
|
|
@@ -48,7 +48,7 @@ const PANEL_HEIGHT_LG_BREAKPOINT = 300;
|
|
|
48
48
|
const LEGEND_HEIGHT_SM = 40;
|
|
49
49
|
const LEGEND_HEIGHT_LG = 100;
|
|
50
50
|
function getContentWithLegendLayout({ width, height, legendProps, legendSize, minChildrenHeight, minChildrenWidth, spacing, theme }) {
|
|
51
|
-
const legendOptions = legendProps
|
|
51
|
+
const legendOptions = legendProps?.options;
|
|
52
52
|
const hasLegend = !!legendOptions;
|
|
53
53
|
const noLegendLayout = {
|
|
54
54
|
legend: {
|
|
@@ -84,10 +84,9 @@ function getContentWithLegendLayout({ width, height, legendProps, legendSize, mi
|
|
|
84
84
|
legendHeight = LEGEND_HEIGHT_LG;
|
|
85
85
|
}
|
|
86
86
|
} else {
|
|
87
|
-
var _legendProps_tableProps;
|
|
88
87
|
// Table mode
|
|
89
88
|
const tableLayout = (0, _Table.getTableCellLayout)(theme, 'compact');
|
|
90
|
-
const tableColumns =
|
|
89
|
+
const tableColumns = legendProps?.tableProps?.columns || [];
|
|
91
90
|
const columnsWidth = tableColumns.reduce((total, col)=>{
|
|
92
91
|
if (typeof col.width === 'number') {
|
|
93
92
|
total += col.width;
|
|
@@ -64,7 +64,7 @@ function handleMoveDown(element, elements) {
|
|
|
64
64
|
newElements.splice(index + 1, 0, element);
|
|
65
65
|
return newElements;
|
|
66
66
|
}
|
|
67
|
-
function DragButton({ onMoveUp, onMoveDown, onMoveLeft, onMoveRight, menuSx }) {
|
|
67
|
+
const DragButton = /*#__PURE__*/ (0, _react.forwardRef)(function DragButton({ onMoveUp, onMoveDown, onMoveLeft, onMoveRight, menuSx, ...otherProps }, ref) {
|
|
68
68
|
const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
|
|
69
69
|
const open = Boolean(anchorEl);
|
|
70
70
|
function handleClick(event) {
|
|
@@ -72,11 +72,13 @@ function DragButton({ onMoveUp, onMoveDown, onMoveLeft, onMoveRight, menuSx }) {
|
|
|
72
72
|
}
|
|
73
73
|
function handleMove(callback) {
|
|
74
74
|
setAnchorEl(null);
|
|
75
|
-
callback
|
|
75
|
+
callback?.();
|
|
76
76
|
}
|
|
77
77
|
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
|
78
78
|
children: [
|
|
79
79
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
|
|
80
|
+
...otherProps,
|
|
81
|
+
ref: ref,
|
|
80
82
|
"aria-label": "move",
|
|
81
83
|
"aria-haspopup": true,
|
|
82
84
|
"aria-expanded": open,
|
|
@@ -118,4 +120,4 @@ function DragButton({ onMoveUp, onMoveDown, onMoveLeft, onMoveRight, menuSx }) {
|
|
|
118
120
|
})
|
|
119
121
|
]
|
|
120
122
|
});
|
|
121
|
-
}
|
|
123
|
+
});
|
|
@@ -36,7 +36,7 @@ const Drawer = ({ anchor = 'right', isOpen, onClose, PaperProps, children, ...re
|
|
|
36
36
|
sx: (0, _utils.combineSx)({
|
|
37
37
|
width: isSmaller ? '100%' : `${DRAWER_DEFAULT_WIDTH}px`,
|
|
38
38
|
overflow: 'hidden'
|
|
39
|
-
}, PaperProps
|
|
39
|
+
}, PaperProps?.sx)
|
|
40
40
|
},
|
|
41
41
|
children: children
|
|
42
42
|
});
|
|
@@ -56,11 +56,11 @@ const EChart = /*#__PURE__*/ (0, _react.memo)(function EChart({ option, theme, r
|
|
|
56
56
|
(0, _react.useLayoutEffect)(()=>{
|
|
57
57
|
if (containerRef.current === null || chartElement.current !== null) return;
|
|
58
58
|
chartElement.current = (0, _core.init)(containerRef.current, theme, {
|
|
59
|
-
renderer: renderer
|
|
59
|
+
renderer: renderer ?? 'canvas'
|
|
60
60
|
});
|
|
61
61
|
if (chartElement.current === undefined) return;
|
|
62
62
|
chartElement.current.setOption(initialOption.current, true);
|
|
63
|
-
onChartInitialized
|
|
63
|
+
onChartInitialized?.(chartElement.current);
|
|
64
64
|
if (_instance !== undefined) {
|
|
65
65
|
_instance.current = chartElement.current;
|
|
66
66
|
}
|
|
@@ -160,8 +160,7 @@ function bindEvents(instance, events) {
|
|
|
160
160
|
}
|
|
161
161
|
for(const eventName in events){
|
|
162
162
|
if (Object.prototype.hasOwnProperty.call(events, eventName)) {
|
|
163
|
-
|
|
164
|
-
const customEvent = (_events_eventName = events[eventName]) !== null && _events_eventName !== void 0 ? _events_eventName : null;
|
|
163
|
+
const customEvent = events[eventName] ?? null;
|
|
165
164
|
if (customEvent) {
|
|
166
165
|
bindEvent(eventName, customEvent);
|
|
167
166
|
}
|
|
@@ -51,11 +51,9 @@ function GaugeChart(props) {
|
|
|
51
51
|
const chartsTheme = (0, _context.useChartsTheme)();
|
|
52
52
|
// useDeepMemo ensures value size util does not rerun everytime you hover on the chart
|
|
53
53
|
const option = (0, _core.useDeepMemo)(()=>{
|
|
54
|
-
var _chartsTheme_echartsTheme_textStyle;
|
|
55
54
|
if (data.value === undefined) return chartsTheme.noDataOption;
|
|
56
55
|
// adjusts fontSize depending on number of characters
|
|
57
56
|
const valueSizeClamp = getResponsiveValueSize(data.value, format, width, height);
|
|
58
|
-
var _chartsTheme_echartsTheme_textStyle_color;
|
|
59
57
|
return {
|
|
60
58
|
title: {
|
|
61
59
|
show: false
|
|
@@ -185,7 +183,7 @@ function GaugeChart(props) {
|
|
|
185
183
|
// https://echarts.apache.org/en/option.html#series-gauge.data.title
|
|
186
184
|
title: {
|
|
187
185
|
show: true,
|
|
188
|
-
color:
|
|
186
|
+
color: chartsTheme.echartsTheme.textStyle?.color ?? 'inherit',
|
|
189
187
|
offsetCenter: [
|
|
190
188
|
0,
|
|
191
189
|
'55%'
|
|
@@ -223,8 +221,7 @@ function getResponsiveValueSize(value, format, width, height) {
|
|
|
223
221
|
const MAX_SIZE = 24;
|
|
224
222
|
const SIZE_MULTIPLIER = 0.7;
|
|
225
223
|
const formattedValue = typeof value === 'number' ? (0, _core.formatValue)(value, format) : `${value}`;
|
|
226
|
-
|
|
227
|
-
const valueCharacters = (_formattedValue_length = formattedValue.length) !== null && _formattedValue_length !== void 0 ? _formattedValue_length : 2;
|
|
224
|
+
const valueCharacters = formattedValue.length ?? 2;
|
|
228
225
|
const valueSize = Math.min(width, height) / valueCharacters * SIZE_MULTIPLIER;
|
|
229
226
|
return `clamp(${MIN_SIZE}px, ${valueSize}px, ${MAX_SIZE}px)`;
|
|
230
227
|
}
|
|
@@ -35,13 +35,13 @@ const InfoTooltip = ({ id, title, description, placement, children, enterDelay,
|
|
|
35
35
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(StyledTooltip, {
|
|
36
36
|
arrow: true,
|
|
37
37
|
id: id,
|
|
38
|
-
placement: placement
|
|
38
|
+
placement: placement ?? 'top',
|
|
39
39
|
title: /*#__PURE__*/ (0, _jsxruntime.jsx)(TooltipContent, {
|
|
40
40
|
title: title,
|
|
41
41
|
description: description
|
|
42
42
|
}),
|
|
43
|
-
enterDelay: enterDelay
|
|
44
|
-
enterNextDelay: enterNextDelay
|
|
43
|
+
enterDelay: enterDelay ?? 500,
|
|
44
|
+
enterNextDelay: enterNextDelay ?? 500,
|
|
45
45
|
children: wrappedChildren
|
|
46
46
|
});
|
|
47
47
|
};
|
|
@@ -59,7 +59,8 @@ const TooltipContent = ({ title, description })=>{
|
|
|
59
59
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
|
|
60
60
|
variant: "caption",
|
|
61
61
|
sx: (theme)=>({
|
|
62
|
-
color: theme.palette.text.primary
|
|
62
|
+
color: theme.palette.text.primary,
|
|
63
|
+
whiteSpace: 'pre-line'
|
|
63
64
|
}),
|
|
64
65
|
children: description
|
|
65
66
|
})
|
|
@@ -38,9 +38,8 @@ const ListLegendItemBase = /*#__PURE__*/ (0, _react.forwardRef)(function ListLeg
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
const handleClick = (e)=>{
|
|
41
|
-
var _item_onClick;
|
|
42
41
|
onClick(e, item.id);
|
|
43
|
-
|
|
42
|
+
item.onClick?.(e);
|
|
44
43
|
};
|
|
45
44
|
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.ListItemButton, {
|
|
46
45
|
...others,
|
|
@@ -51,11 +50,11 @@ const ListLegendItemBase = /*#__PURE__*/ (0, _react.forwardRef)(function ListLeg
|
|
|
51
50
|
}, sx),
|
|
52
51
|
dense: true,
|
|
53
52
|
onClick: handleClick,
|
|
54
|
-
onMouseOver: (e)=>onMouseOver
|
|
53
|
+
onMouseOver: (e)=>onMouseOver?.(e, {
|
|
55
54
|
id: item.id,
|
|
56
55
|
index
|
|
57
56
|
}),
|
|
58
|
-
onMouseOut: (e)=>onMouseOut
|
|
57
|
+
onMouseOut: (e)=>onMouseOut?.(e, {
|
|
59
58
|
id: item.id,
|
|
60
59
|
index
|
|
61
60
|
}),
|
|
@@ -45,7 +45,6 @@ const _utils = require("../utils");
|
|
|
45
45
|
_renderers.CanvasRenderer
|
|
46
46
|
]);
|
|
47
47
|
const LineChart = /*#__PURE__*/ (0, _react.forwardRef)(function LineChart({ height, data, yAxis, format, grid, legend, tooltipConfig = _TimeSeriesTooltip.DEFAULT_TOOLTIP_CONFIG, noDataVariant = 'message', syncGroup, onDataZoom, onDoubleClick, __experimentalEChartsOptionsOverride }, ref) {
|
|
48
|
-
var _option_tooltip;
|
|
49
48
|
const chartsTheme = (0, _context.useChartsTheme)();
|
|
50
49
|
const chartRef = (0, _react.useRef)();
|
|
51
50
|
const [showTooltip, setShowTooltip] = (0, _react.useState)(true);
|
|
@@ -84,10 +83,8 @@ const LineChart = /*#__PURE__*/ (0, _react.forwardRef)(function LineChart({ heig
|
|
|
84
83
|
}, 10);
|
|
85
84
|
}
|
|
86
85
|
if (onDataZoom === undefined || params.batch[0] === undefined) return;
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
var _params_batch__endValue;
|
|
90
|
-
const endIndex = (_params_batch__endValue = params.batch[0].endValue) !== null && _params_batch__endValue !== void 0 ? _params_batch__endValue : data.xAxis.length - 1;
|
|
86
|
+
const startIndex = params.batch[0].startValue ?? 0;
|
|
87
|
+
const endIndex = params.batch[0].endValue ?? data.xAxis.length - 1;
|
|
91
88
|
const xAxisStartValue = data.xAxis[startIndex];
|
|
92
89
|
const xAxisEndValue = data.xAxis[endIndex];
|
|
93
90
|
if (xAxisStartValue !== undefined && xAxisEndValue !== undefined) {
|
|
@@ -115,8 +112,7 @@ const LineChart = /*#__PURE__*/ (0, _react.forwardRef)(function LineChart({ heig
|
|
|
115
112
|
// The "chart" `noDataVariant` is only used when the `timeSeries` is an
|
|
116
113
|
// empty array because a `null` value will throw an error.
|
|
117
114
|
if (data.timeSeries === null || data.timeSeries.length === 0 && noDataVariant === 'message') return noDataOption;
|
|
118
|
-
|
|
119
|
-
const rangeMs = (_data_rangeMs = data.rangeMs) !== null && _data_rangeMs !== void 0 ? _data_rangeMs : (0, _utils.getDateRange)(data.xAxis);
|
|
115
|
+
const rangeMs = data.rangeMs ?? (0, _utils.getDateRange)(data.xAxis);
|
|
120
116
|
const option = {
|
|
121
117
|
series: data.timeSeries,
|
|
122
118
|
xAxis: {
|
|
@@ -250,7 +246,7 @@ const LineChart = /*#__PURE__*/ (0, _react.forwardRef)(function LineChart({ heig
|
|
|
250
246
|
}
|
|
251
247
|
},
|
|
252
248
|
children: [
|
|
253
|
-
showTooltip === true &&
|
|
249
|
+
showTooltip === true && option.tooltip?.showContent === false && tooltipConfig.hidden !== true && /*#__PURE__*/ (0, _jsxruntime.jsx)(_TimeSeriesTooltip.LineChartTooltip, {
|
|
254
250
|
chartRef: chartRef,
|
|
255
251
|
chartData: data,
|
|
256
252
|
wrapLabels: tooltipConfig.wrapLabels,
|
|
@@ -94,56 +94,47 @@ function LinkControl({ control, index }) {
|
|
|
94
94
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
|
|
95
95
|
control: control,
|
|
96
96
|
name: `panelDefinition.spec.links.${index}.url`,
|
|
97
|
-
render: ({ field, fieldState })
|
|
98
|
-
var _fieldState_error;
|
|
99
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
|
|
97
|
+
render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
|
|
100
98
|
...field,
|
|
101
99
|
required: true,
|
|
102
100
|
fullWidth: true,
|
|
103
101
|
label: "URL",
|
|
104
102
|
error: !!fieldState.error,
|
|
105
|
-
helperText:
|
|
103
|
+
helperText: fieldState.error?.message,
|
|
106
104
|
onChange: (event)=>{
|
|
107
105
|
field.onChange(event);
|
|
108
106
|
}
|
|
109
|
-
})
|
|
110
|
-
}
|
|
107
|
+
})
|
|
111
108
|
}),
|
|
112
109
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
|
|
113
110
|
control: control,
|
|
114
111
|
name: `panelDefinition.spec.links.${index}.name`,
|
|
115
|
-
render: ({ field, fieldState })
|
|
116
|
-
var _fieldState_error;
|
|
117
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
|
|
112
|
+
render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
|
|
118
113
|
...field,
|
|
119
114
|
fullWidth: true,
|
|
120
115
|
label: "Name",
|
|
121
116
|
defaultValue: "",
|
|
122
117
|
error: !!fieldState.error,
|
|
123
|
-
helperText:
|
|
118
|
+
helperText: fieldState.error?.message,
|
|
124
119
|
onChange: (event)=>{
|
|
125
120
|
field.onChange(event);
|
|
126
121
|
}
|
|
127
|
-
})
|
|
128
|
-
}
|
|
122
|
+
})
|
|
129
123
|
}),
|
|
130
124
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_reacthookform.Controller, {
|
|
131
125
|
control: control,
|
|
132
126
|
name: `panelDefinition.spec.links.${index}.tooltip`,
|
|
133
|
-
render: ({ field, fieldState })
|
|
134
|
-
var _fieldState_error;
|
|
135
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
|
|
127
|
+
render: ({ field, fieldState })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
|
|
136
128
|
...field,
|
|
137
129
|
fullWidth: true,
|
|
138
130
|
label: "Tooltip",
|
|
139
131
|
defaultValue: "",
|
|
140
132
|
error: !!fieldState.error,
|
|
141
|
-
helperText:
|
|
133
|
+
helperText: fieldState.error?.message,
|
|
142
134
|
onChange: (event)=>{
|
|
143
135
|
field.onChange(event);
|
|
144
136
|
}
|
|
145
|
-
})
|
|
146
|
-
}
|
|
137
|
+
})
|
|
147
138
|
})
|
|
148
139
|
]
|
|
149
140
|
}),
|
|
@@ -26,8 +26,7 @@ function SettingsAutocomplete({ options, renderInput = (params)=>/*#__PURE__*/ (
|
|
|
26
26
|
...params
|
|
27
27
|
}), ...otherProps }) {
|
|
28
28
|
const getOptionLabel = (option)=>{
|
|
29
|
-
|
|
30
|
-
return (_option_label = option.label) !== null && _option_label !== void 0 ? _option_label : option.id;
|
|
29
|
+
return option.label ?? option.id;
|
|
31
30
|
};
|
|
32
31
|
// Note: this component currently is not virtualized because it is specific
|
|
33
32
|
// to being used for settings, which generally have a pretty small list of
|
|
@@ -50,16 +50,14 @@ const SERIES_NAME_MAX_FONT_SIZE = 30;
|
|
|
50
50
|
const SERIES_NAME_FONT_WEIGHT = 400;
|
|
51
51
|
const VALUE_FONT_WEIGHT = 700;
|
|
52
52
|
const StatChart = (props)=>{
|
|
53
|
-
var _data_seriesData, _data_seriesData1;
|
|
54
53
|
const { width, height, data, sparkline, showSeriesName, format, valueFontSize } = props;
|
|
55
54
|
const chartsTheme = (0, _context.useChartsTheme)();
|
|
56
55
|
const color = data.color;
|
|
57
56
|
const formattedValue = (0, _formatStatChartValue.formatStatChartValue)(data.calculatedValue, format);
|
|
58
57
|
const containerPadding = chartsTheme.container.padding.default;
|
|
59
|
-
var _data_seriesData_name;
|
|
60
58
|
// calculate series name font size and height
|
|
61
59
|
let seriesNameFontSize = (0, _calculateFontSize.useOptimalFontSize)({
|
|
62
|
-
text:
|
|
60
|
+
text: data?.seriesData?.name ?? '',
|
|
63
61
|
fontWeight: SERIES_NAME_FONT_WEIGHT,
|
|
64
62
|
width,
|
|
65
63
|
height: height * 0.125,
|
|
@@ -158,7 +156,7 @@ const StatChart = (props)=>{
|
|
|
158
156
|
showSeriesName && /*#__PURE__*/ (0, _jsxruntime.jsx)(SeriesName, {
|
|
159
157
|
padding: containerPadding,
|
|
160
158
|
fontSize: seriesNameFontSize,
|
|
161
|
-
children:
|
|
159
|
+
children: data.seriesData?.name
|
|
162
160
|
}),
|
|
163
161
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(Value, {
|
|
164
162
|
variant: "h3",
|
|
@@ -192,7 +190,7 @@ const SeriesName = (0, _material.styled)(_material.Typography, {
|
|
|
192
190
|
const Value = (0, _material.styled)(_material.Typography, {
|
|
193
191
|
shouldForwardProp: (prop)=>prop !== 'color' && prop !== 'padding' && prop !== 'fontSize' && prop !== 'sparkline'
|
|
194
192
|
})(({ theme, color, padding, fontSize, sparkline })=>({
|
|
195
|
-
color: color
|
|
193
|
+
color: color ?? theme.palette.text.primary,
|
|
196
194
|
fontSize: `${fontSize}px`,
|
|
197
195
|
padding: sparkline ? `${padding}px ${padding}px 0 ${padding}px` : ` 0 ${padding}px`,
|
|
198
196
|
whiteSpace: 'nowrap',
|
|
@@ -39,10 +39,8 @@ function useOptimalFontSize({ text, fontWeight, width, height, lineHeight, maxSi
|
|
|
39
39
|
return Number(fontSizeOverride);
|
|
40
40
|
}
|
|
41
41
|
const textStyle = echartsTheme.textStyle;
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
var _textStyle_fontFamily;
|
|
45
|
-
const fontFamily = (_textStyle_fontFamily = textStyle === null || textStyle === void 0 ? void 0 : textStyle.fontFamily) !== null && _textStyle_fontFamily !== void 0 ? _textStyle_fontFamily : 'Lato';
|
|
42
|
+
const fontSize = Number(textStyle?.fontSize) ?? 12;
|
|
43
|
+
const fontFamily = textStyle?.fontFamily ?? 'Lato';
|
|
46
44
|
// set the font on the canvas context
|
|
47
45
|
const fontStyle = `${fontWeight} ${fontSize}px ${fontFamily}`;
|
|
48
46
|
ctx.font = fontStyle;
|
|
@@ -45,7 +45,6 @@ const StatusHistoryChart = (props)=>{
|
|
|
45
45
|
const { timeZone } = (0, _TimeZoneProvider.useTimeZone)();
|
|
46
46
|
const chartsTheme = (0, _ChartsProvider.useChartsTheme)();
|
|
47
47
|
const theme = (0, _material.useTheme)();
|
|
48
|
-
var _timeScale_rangeMs;
|
|
49
48
|
const option = {
|
|
50
49
|
tooltip: {
|
|
51
50
|
appendToBody: true,
|
|
@@ -75,7 +74,7 @@ const StatusHistoryChart = (props)=>{
|
|
|
75
74
|
},
|
|
76
75
|
axisLabel: {
|
|
77
76
|
hideOverlap: true,
|
|
78
|
-
formatter: (0, _getformattedaxislabel.getFormattedStatusHistoryAxisLabel)(
|
|
77
|
+
formatter: (0, _getformattedaxislabel.getFormattedStatusHistoryAxisLabel)(timeScale?.rangeMs ?? 0, timeZone)
|
|
79
78
|
}
|
|
80
79
|
},
|
|
81
80
|
yAxis: {
|