@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.
Files changed (117) hide show
  1. package/dist/ColorPicker/ColorPicker.js +2 -2
  2. package/dist/ColorPicker/ColorPicker.js.map +1 -1
  3. package/dist/ContentWithLegend/model/content-with-legend-model.js +2 -3
  4. package/dist/ContentWithLegend/model/content-with-legend-model.js.map +1 -1
  5. package/dist/DragAndDrop/DragButton.d.ts +2 -2
  6. package/dist/DragAndDrop/DragButton.d.ts.map +1 -1
  7. package/dist/DragAndDrop/DragButton.js +6 -4
  8. package/dist/DragAndDrop/DragButton.js.map +1 -1
  9. package/dist/Drawer/Drawer.js +1 -1
  10. package/dist/Drawer/Drawer.js.map +1 -1
  11. package/dist/EChart/EChart.js +3 -4
  12. package/dist/EChart/EChart.js.map +1 -1
  13. package/dist/GaugeChart/GaugeChart.js +2 -5
  14. package/dist/GaugeChart/GaugeChart.js.map +1 -1
  15. package/dist/InfoTooltip/InfoTooltip.js +5 -4
  16. package/dist/InfoTooltip/InfoTooltip.js.map +1 -1
  17. package/dist/Legend/ListLegendItem.js +3 -4
  18. package/dist/Legend/ListLegendItem.js.map +1 -1
  19. package/dist/LineChart/LineChart.js +4 -8
  20. package/dist/LineChart/LineChart.js.map +1 -1
  21. package/dist/LinksEditor/LinksEditor.js +9 -18
  22. package/dist/LinksEditor/LinksEditor.js.map +1 -1
  23. package/dist/Overlay/Overlay.js +1 -1
  24. package/dist/Overlay/Overlay.js.map +1 -1
  25. package/dist/SettingsAutocomplete/SettingsAutocomplete.js +1 -2
  26. package/dist/SettingsAutocomplete/SettingsAutocomplete.js.map +1 -1
  27. package/dist/StatChart/StatChart.js +3 -5
  28. package/dist/StatChart/StatChart.js.map +1 -1
  29. package/dist/StatChart/calculateFontSize.js +2 -4
  30. package/dist/StatChart/calculateFontSize.js.map +1 -1
  31. package/dist/StatusHistoryChart/StatusHistoryChart.js +1 -2
  32. package/dist/StatusHistoryChart/StatusHistoryChart.js.map +1 -1
  33. package/dist/Table/Table.js +5 -5
  34. package/dist/Table/Table.js.map +1 -1
  35. package/dist/Table/TableCell.js +5 -6
  36. package/dist/Table/TableCell.js.map +1 -1
  37. package/dist/Table/VirtualizedTable.js +11 -14
  38. package/dist/Table/VirtualizedTable.js.map +1 -1
  39. package/dist/Table/hooks/useTableKeyboardNav.js +1 -1
  40. package/dist/Table/hooks/useTableKeyboardNav.js.map +1 -1
  41. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.js +7 -13
  42. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.js.map +1 -1
  43. package/dist/Table/model/table-model.js +1 -1
  44. package/dist/Table/model/table-model.js.map +1 -1
  45. package/dist/ThresholdsEditor/ThresholdsEditor.js +15 -23
  46. package/dist/ThresholdsEditor/ThresholdsEditor.js.map +1 -1
  47. package/dist/TimeChart/TimeChart.js +3 -6
  48. package/dist/TimeChart/TimeChart.js.map +1 -1
  49. package/dist/TimeSeriesTooltip/LineChartTooltip.js +6 -11
  50. package/dist/TimeSeriesTooltip/LineChartTooltip.js.map +1 -1
  51. package/dist/TimeSeriesTooltip/SeriesInfo.js +1 -2
  52. package/dist/TimeSeriesTooltip/SeriesInfo.js.map +1 -1
  53. package/dist/TimeSeriesTooltip/TimeChartTooltip.js +2 -3
  54. package/dist/TimeSeriesTooltip/TimeChartTooltip.js.map +1 -1
  55. package/dist/TimeSeriesTooltip/TooltipHeader.js +4 -10
  56. package/dist/TimeSeriesTooltip/TooltipHeader.js.map +1 -1
  57. package/dist/TimeSeriesTooltip/nearby-series.js +13 -23
  58. package/dist/TimeSeriesTooltip/nearby-series.js.map +1 -1
  59. package/dist/TimeSeriesTooltip/utils.js +2 -4
  60. package/dist/TimeSeriesTooltip/utils.js.map +1 -1
  61. package/dist/TransformsEditor/TransformEditor.js +4 -7
  62. package/dist/TransformsEditor/TransformEditor.js.map +1 -1
  63. package/dist/TransformsEditor/TransformEditorContainer.js +3 -5
  64. package/dist/TransformsEditor/TransformEditorContainer.js.map +1 -1
  65. package/dist/TransformsEditor/TransformsEditor.js +3 -6
  66. package/dist/TransformsEditor/TransformsEditor.js.map +1 -1
  67. package/dist/ValueMappingEditor/ValueMappingEditor.js +11 -24
  68. package/dist/ValueMappingEditor/ValueMappingEditor.js.map +1 -1
  69. package/dist/cjs/ColorPicker/ColorPicker.js +2 -2
  70. package/dist/cjs/ContentWithLegend/model/content-with-legend-model.js +2 -3
  71. package/dist/cjs/DragAndDrop/DragButton.js +5 -3
  72. package/dist/cjs/Drawer/Drawer.js +1 -1
  73. package/dist/cjs/EChart/EChart.js +3 -4
  74. package/dist/cjs/GaugeChart/GaugeChart.js +2 -5
  75. package/dist/cjs/InfoTooltip/InfoTooltip.js +5 -4
  76. package/dist/cjs/Legend/ListLegendItem.js +3 -4
  77. package/dist/cjs/LineChart/LineChart.js +4 -8
  78. package/dist/cjs/LinksEditor/LinksEditor.js +9 -18
  79. package/dist/cjs/Overlay/Overlay.js +1 -1
  80. package/dist/cjs/SettingsAutocomplete/SettingsAutocomplete.js +1 -2
  81. package/dist/cjs/StatChart/StatChart.js +3 -5
  82. package/dist/cjs/StatChart/calculateFontSize.js +2 -4
  83. package/dist/cjs/StatusHistoryChart/StatusHistoryChart.js +1 -2
  84. package/dist/cjs/Table/Table.js +5 -5
  85. package/dist/cjs/Table/TableCell.js +5 -6
  86. package/dist/cjs/Table/VirtualizedTable.js +11 -14
  87. package/dist/cjs/Table/hooks/useTableKeyboardNav.js +1 -1
  88. package/dist/cjs/Table/hooks/useVirtualizedTableKeyboardNav.js +7 -13
  89. package/dist/cjs/Table/model/table-model.js +1 -1
  90. package/dist/cjs/ThresholdsEditor/ThresholdsEditor.js +15 -23
  91. package/dist/cjs/TimeChart/TimeChart.js +3 -6
  92. package/dist/cjs/TimeSeriesTooltip/LineChartTooltip.js +6 -11
  93. package/dist/cjs/TimeSeriesTooltip/SeriesInfo.js +1 -2
  94. package/dist/cjs/TimeSeriesTooltip/TimeChartTooltip.js +2 -3
  95. package/dist/cjs/TimeSeriesTooltip/TooltipHeader.js +4 -10
  96. package/dist/cjs/TimeSeriesTooltip/nearby-series.js +13 -23
  97. package/dist/cjs/TimeSeriesTooltip/utils.js +2 -4
  98. package/dist/cjs/TransformsEditor/TransformEditor.js +4 -7
  99. package/dist/cjs/TransformsEditor/TransformEditorContainer.js +3 -5
  100. package/dist/cjs/TransformsEditor/TransformsEditor.js +3 -6
  101. package/dist/cjs/ValueMappingEditor/ValueMappingEditor.js +11 -24
  102. package/dist/cjs/context/TimeZoneProvider.js +1 -1
  103. package/dist/cjs/controls/TextField.js +1 -1
  104. package/dist/cjs/utils/chart-actions.js +1 -2
  105. package/dist/cjs/utils/format.js +1 -1
  106. package/dist/cjs/utils/theme-gen.js +5 -7
  107. package/dist/context/TimeZoneProvider.js +1 -1
  108. package/dist/context/TimeZoneProvider.js.map +1 -1
  109. package/dist/controls/TextField.js +1 -1
  110. package/dist/controls/TextField.js.map +1 -1
  111. package/dist/utils/chart-actions.js +1 -2
  112. package/dist/utils/chart-actions.js.map +1 -1
  113. package/dist/utils/format.js +1 -1
  114. package/dist/utils/format.js.map +1 -1
  115. package/dist/utils/theme-gen.js +5 -7
  116. package/dist/utils/theme-gen.js.map +1 -1
  117. 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: (_mapping_spec_value = (_mapping_spec = mapping.spec) === null || _mapping_spec === void 0 ? void 0 : _mapping_spec.value) !== null && _mapping_spec_value !== void 0 ? _mapping_spec_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: (_mapping_spec_from = (_mapping_spec1 = mapping.spec) === null || _mapping_spec1 === void 0 ? void 0 : _mapping_spec1.from) !== null && _mapping_spec_from !== void 0 ? _mapping_spec_from : '',
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: (_mapping_spec_to = (_mapping_spec2 = mapping.spec) === null || _mapping_spec2 === void 0 ? void 0 : _mapping_spec2.to) !== null && _mapping_spec_to !== void 0 ? _mapping_spec_to : '',
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: (_mapping_spec_pattern = (_mapping_spec3 = mapping.spec) === null || _mapping_spec3 === void 0 ? void 0 : _mapping_spec3.pattern) !== null && _mapping_spec_pattern !== void 0 ? _mapping_spec_pattern : '',
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: (_mapping_spec_value1 = (_mapping_spec4 = mapping.spec) === null || _mapping_spec4 === void 0 ? void 0 : _mapping_spec4.value) !== null && _mapping_spec_value1 !== void 0 ? _mapping_spec_value1 : '',
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: (_mapping_spec_result_value = (_mapping_spec = mapping.spec) === null || _mapping_spec === void 0 ? void 0 : (_mapping_spec_result = _mapping_spec.result) === null || _mapping_spec_result === void 0 ? void 0 : _mapping_spec_result.value) !== null && _mapping_spec_result_value !== void 0 ? _mapping_spec_result_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
- ...(_mapping_spec = mapping.spec) === null || _mapping_spec === void 0 ? void 0 : _mapping_spec.result,
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: ((_mapping_spec1 = mapping.spec) === null || _mapping_spec1 === void 0 ? void 0 : (_mapping_spec_result1 = _mapping_spec1.result) === null || _mapping_spec_result1 === void 0 ? void 0 : _mapping_spec_result1.color) ? /*#__PURE__*/ _jsx(OptionsColorPicker, {
341
+ children: mapping.spec?.result?.color ? /*#__PURE__*/ _jsx(OptionsColorPicker, {
355
342
  label: "Color",
356
- color: (_mapping_spec_result_color = mapping.spec.result.color) !== null && _mapping_spec_result_color !== void 0 ? _mapping_spec_result_color : '#000',
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 === null || onChange === void 0 ? void 0 : onChange(color);
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 === null || onChange === void 0 ? void 0 : onChange(e.target.value);
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 === null || legendProps === void 0 ? void 0 : legendProps.options;
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 = (legendProps === null || legendProps === void 0 ? void 0 : (_legendProps_tableProps = legendProps.tableProps) === null || _legendProps_tableProps === void 0 ? void 0 : _legendProps_tableProps.columns) || [];
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 === null || callback === void 0 ? void 0 : 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 === null || PaperProps === void 0 ? void 0 : PaperProps.sx)
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 !== null && renderer !== void 0 ? renderer : 'canvas'
59
+ renderer: renderer ?? 'canvas'
60
60
  });
61
61
  if (chartElement.current === undefined) return;
62
62
  chartElement.current.setOption(initialOption.current, true);
63
- onChartInitialized === null || onChartInitialized === void 0 ? void 0 : onChartInitialized(chartElement.current);
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
- var _events_eventName;
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: (_chartsTheme_echartsTheme_textStyle_color = (_chartsTheme_echartsTheme_textStyle = chartsTheme.echartsTheme.textStyle) === null || _chartsTheme_echartsTheme_textStyle === void 0 ? void 0 : _chartsTheme_echartsTheme_textStyle.color) !== null && _chartsTheme_echartsTheme_textStyle_color !== void 0 ? _chartsTheme_echartsTheme_textStyle_color : 'inherit',
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
- var _formattedValue_length;
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 !== null && placement !== void 0 ? placement : 'top',
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 !== null && enterDelay !== void 0 ? enterDelay : 500,
44
- enterNextDelay: enterNextDelay !== null && enterNextDelay !== void 0 ? enterNextDelay : 500,
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
- (_item_onClick = item.onClick) === null || _item_onClick === void 0 ? void 0 : _item_onClick.call(item, e);
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 === null || onMouseOver === void 0 ? void 0 : onMouseOver(e, {
53
+ onMouseOver: (e)=>onMouseOver?.(e, {
55
54
  id: item.id,
56
55
  index
57
56
  }),
58
- onMouseOut: (e)=>onMouseOut === null || onMouseOut === void 0 ? void 0 : onMouseOut(e, {
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
- var _params_batch__startValue;
88
- const startIndex = (_params_batch__startValue = params.batch[0].startValue) !== null && _params_batch__startValue !== void 0 ? _params_batch__startValue : 0;
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
- var _data_rangeMs;
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 && ((_option_tooltip = option.tooltip) === null || _option_tooltip === void 0 ? void 0 : _option_tooltip.showContent) === false && tooltipConfig.hidden !== true && /*#__PURE__*/ (0, _jsxruntime.jsx)(_TimeSeriesTooltip.LineChartTooltip, {
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: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
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: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
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: (_fieldState_error = fieldState.error) === null || _fieldState_error === void 0 ? void 0 : _fieldState_error.message,
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
  }),
@@ -59,7 +59,7 @@ function LoadingOverlay(props) {
59
59
  height: '100%',
60
60
  alignItems: 'center',
61
61
  justifyContent: 'center',
62
- padding: '0 10px'
62
+ px: 1
63
63
  },
64
64
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Skeleton, {
65
65
  variant: variant,
@@ -26,8 +26,7 @@ function SettingsAutocomplete({ options, renderInput = (params)=>/*#__PURE__*/ (
26
26
  ...params
27
27
  }), ...otherProps }) {
28
28
  const getOptionLabel = (option)=>{
29
- var _option_label;
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: (_data_seriesData_name = data === null || data === void 0 ? void 0 : (_data_seriesData = data.seriesData) === null || _data_seriesData === void 0 ? void 0 : _data_seriesData.name) !== null && _data_seriesData_name !== void 0 ? _data_seriesData_name : '',
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: (_data_seriesData1 = data.seriesData) === null || _data_seriesData1 === void 0 ? void 0 : _data_seriesData1.name
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 !== null && color !== void 0 ? color : theme.palette.text.primary,
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
- var _Number;
43
- const fontSize = (_Number = Number(textStyle === null || textStyle === void 0 ? void 0 : textStyle.fontSize)) !== null && _Number !== void 0 ? _Number : 12;
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)((_timeScale_rangeMs = timeScale === null || timeScale === void 0 ? void 0 : timeScale.rangeMs) !== null && _timeScale_rangeMs !== void 0 ? _timeScale_rangeMs : 0, timeZone)
77
+ formatter: (0, _getformattedaxislabel.getFormattedStatusHistoryAxisLabel)(timeScale?.rangeMs ?? 0, timeZone)
79
78
  }
80
79
  },
81
80
  yAxis: {