@perses-dev/components 0.55.0-rc.1 → 0.56.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 (204) hide show
  1. package/dist/AlignSelector/AlignSelector.js +115 -25
  2. package/dist/AlignSelector/AlignSelector.js.map +1 -1
  3. package/dist/CodeEditor/CodeEditor.d.ts +19 -0
  4. package/dist/CodeEditor/CodeEditor.d.ts.map +1 -0
  5. package/dist/CodeEditor/CodeEditor.js +122 -0
  6. package/dist/CodeEditor/CodeEditor.js.map +1 -0
  7. package/dist/ColorPicker/ColorPicker.js +153 -61
  8. package/dist/ColorPicker/ColorPicker.js.map +1 -1
  9. package/dist/ColorPicker/OptionsColorPicker.js +147 -52
  10. package/dist/ColorPicker/OptionsColorPicker.js.map +1 -1
  11. package/dist/ContentWithLegend/ContentWithLegend.js +144 -41
  12. package/dist/ContentWithLegend/ContentWithLegend.js.map +1 -1
  13. package/dist/DensitySelector/DensitySelector.js +53 -20
  14. package/dist/DensitySelector/DensitySelector.js.map +1 -1
  15. package/dist/Dialog/Dialog.d.ts +3 -2
  16. package/dist/Dialog/Dialog.d.ts.map +1 -1
  17. package/dist/Dialog/Dialog.js +202 -49
  18. package/dist/Dialog/Dialog.js.map +1 -1
  19. package/dist/Dialog/DiscardChangesConfirmationDialog.js +79 -27
  20. package/dist/Dialog/DiscardChangesConfirmationDialog.js.map +1 -1
  21. package/dist/DragAndDrop/DragAndDropList.js +184 -113
  22. package/dist/DragAndDrop/DragAndDropList.js.map +1 -1
  23. package/dist/DragAndDrop/DragButton.js +131 -52
  24. package/dist/DragAndDrop/DragButton.js.map +1 -1
  25. package/dist/DragAndDrop/DropIndicator.js +51 -26
  26. package/dist/DragAndDrop/DropIndicator.js.map +1 -1
  27. package/dist/Drawer/Drawer.js +75 -15
  28. package/dist/Drawer/Drawer.js.map +1 -1
  29. package/dist/EChart/EChart.js +179 -90
  30. package/dist/EChart/EChart.js.map +1 -1
  31. package/dist/ErrorAlert.js +14 -4
  32. package/dist/ErrorAlert.js.map +1 -1
  33. package/dist/ExemplarMetadata/ExemplarMetadataTooltip.js +463 -190
  34. package/dist/ExemplarMetadata/ExemplarMetadataTooltip.js.map +1 -1
  35. package/dist/FontSizeSelector/FontSizeSelector.js +82 -50
  36. package/dist/FontSizeSelector/FontSizeSelector.js.map +1 -1
  37. package/dist/FormEditor/FormActions.js +88 -14
  38. package/dist/FormEditor/FormActions.js.map +1 -1
  39. package/dist/FormatControls/FormatControls.js +246 -99
  40. package/dist/FormatControls/FormatControls.js.map +1 -1
  41. package/dist/FormatControls/UnitSelector.js +90 -25
  42. package/dist/FormatControls/UnitSelector.js.map +1 -1
  43. package/dist/InfoTooltip/InfoTooltip.js +105 -42
  44. package/dist/InfoTooltip/InfoTooltip.js.map +1 -1
  45. package/dist/JSONEditor.d.ts +2 -6
  46. package/dist/JSONEditor.d.ts.map +1 -1
  47. package/dist/JSONEditor.js +24 -37
  48. package/dist/JSONEditor.js.map +1 -1
  49. package/dist/Legend/CompactLegend.js +77 -27
  50. package/dist/Legend/CompactLegend.js.map +1 -1
  51. package/dist/Legend/Legend.js +184 -82
  52. package/dist/Legend/Legend.js.map +1 -1
  53. package/dist/Legend/LegendColorBadge.js +54 -9
  54. package/dist/Legend/LegendColorBadge.js.map +1 -1
  55. package/dist/Legend/ListLegend.js +46 -16
  56. package/dist/Legend/ListLegend.js.map +1 -1
  57. package/dist/Legend/ListLegendItem.js +184 -48
  58. package/dist/Legend/ListLegendItem.js.map +1 -1
  59. package/dist/Legend/TableLegend.d.ts.map +1 -1
  60. package/dist/Legend/TableLegend.js +90 -48
  61. package/dist/Legend/TableLegend.js.map +1 -1
  62. package/dist/Legend/legend-model.d.ts +2 -2
  63. package/dist/Legend/legend-model.d.ts.map +1 -1
  64. package/dist/Legend/legend-model.js.map +1 -1
  65. package/dist/LinksEditor/LinkEditorForm.js +148 -67
  66. package/dist/LinksEditor/LinkEditorForm.js.map +1 -1
  67. package/dist/ModeSelector/ModeSelector.js +61 -19
  68. package/dist/ModeSelector/ModeSelector.js.map +1 -1
  69. package/dist/OptionsEditorLayout/OptionsEditorColumn.js +20 -9
  70. package/dist/OptionsEditorLayout/OptionsEditorColumn.js.map +1 -1
  71. package/dist/OptionsEditorLayout/OptionsEditorControl.js +130 -54
  72. package/dist/OptionsEditorLayout/OptionsEditorControl.js.map +1 -1
  73. package/dist/OptionsEditorLayout/OptionsEditorGrid.js +17 -6
  74. package/dist/OptionsEditorLayout/OptionsEditorGrid.js.map +1 -1
  75. package/dist/OptionsEditorLayout/OptionsEditorGroup.js +76 -28
  76. package/dist/OptionsEditorLayout/OptionsEditorGroup.js.map +1 -1
  77. package/dist/Overlay/Overlay.js +71 -27
  78. package/dist/Overlay/Overlay.js.map +1 -1
  79. package/dist/RefreshIntervalPicker/RefreshIntervalPicker.js +96 -38
  80. package/dist/RefreshIntervalPicker/RefreshIntervalPicker.js.map +1 -1
  81. package/dist/RepeatGrid/RepeatGrid.js +117 -45
  82. package/dist/RepeatGrid/RepeatGrid.js.map +1 -1
  83. package/dist/SettingsAutocomplete/SettingsAutocomplete.js +99 -38
  84. package/dist/SettingsAutocomplete/SettingsAutocomplete.js.map +1 -1
  85. package/dist/SortSelector/SortSelector.js +51 -18
  86. package/dist/SortSelector/SortSelector.js.map +1 -1
  87. package/dist/SortSelector/SortSelectorButtons.js +109 -25
  88. package/dist/SortSelector/SortSelectorButtons.js.map +1 -1
  89. package/dist/Table/InnerTable.js +46 -15
  90. package/dist/Table/InnerTable.js.map +1 -1
  91. package/dist/Table/Table.d.ts +3 -1
  92. package/dist/Table/Table.d.ts.map +1 -1
  93. package/dist/Table/Table.js +410 -158
  94. package/dist/Table/Table.js.map +1 -1
  95. package/dist/Table/TableBody.js +15 -4
  96. package/dist/Table/TableBody.js.map +1 -1
  97. package/dist/Table/TableCell.js +284 -107
  98. package/dist/Table/TableCell.js.map +1 -1
  99. package/dist/Table/TableCheckbox.js +101 -32
  100. package/dist/Table/TableCheckbox.js.map +1 -1
  101. package/dist/Table/TableFoot.js +15 -4
  102. package/dist/Table/TableFoot.js.map +1 -1
  103. package/dist/Table/TableHead.js +15 -4
  104. package/dist/Table/TableHead.js.map +1 -1
  105. package/dist/Table/TableHeaderCell.js +119 -62
  106. package/dist/Table/TableHeaderCell.js.map +1 -1
  107. package/dist/Table/TableRow.js +33 -9
  108. package/dist/Table/TableRow.js.map +1 -1
  109. package/dist/Table/TableToolbar.d.ts +5 -4
  110. package/dist/Table/TableToolbar.d.ts.map +1 -1
  111. package/dist/Table/TableToolbar.js +172 -100
  112. package/dist/Table/TableToolbar.js.map +1 -1
  113. package/dist/Table/VirtualizedTable.d.ts +11 -11
  114. package/dist/Table/VirtualizedTable.d.ts.map +1 -1
  115. package/dist/Table/VirtualizedTable.js +387 -219
  116. package/dist/Table/VirtualizedTable.js.map +1 -1
  117. package/dist/Table/VirtualizedTableContainer.js +27 -7
  118. package/dist/Table/VirtualizedTableContainer.js.map +1 -1
  119. package/dist/Table/hooks/useFuzzySearch.d.ts +6 -5
  120. package/dist/Table/hooks/useFuzzySearch.d.ts.map +1 -1
  121. package/dist/Table/hooks/useFuzzySearch.js +57 -32
  122. package/dist/Table/hooks/useFuzzySearch.js.map +1 -1
  123. package/dist/Table/hooks/useTableKeyboardNav.js +115 -74
  124. package/dist/Table/hooks/useTableKeyboardNav.js.map +1 -1
  125. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.d.ts +1 -1
  126. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.d.ts.map +1 -1
  127. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.js +74 -53
  128. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.js.map +1 -1
  129. package/dist/Table/model/table-model.d.ts +44 -15
  130. package/dist/Table/model/table-model.d.ts.map +1 -1
  131. package/dist/Table/model/table-model.js +33 -1
  132. package/dist/Table/model/table-model.js.map +1 -1
  133. package/dist/ThresholdsEditor/ThresholdInput.js +137 -47
  134. package/dist/ThresholdsEditor/ThresholdInput.js.map +1 -1
  135. package/dist/ThresholdsEditor/ThresholdsEditor.js +341 -174
  136. package/dist/ThresholdsEditor/ThresholdsEditor.js.map +1 -1
  137. package/dist/TimeRangeSelector/DateTimeRangePicker.js +368 -162
  138. package/dist/TimeRangeSelector/DateTimeRangePicker.js.map +1 -1
  139. package/dist/TimeRangeSelector/TimeRangeSelector.js +580 -209
  140. package/dist/TimeRangeSelector/TimeRangeSelector.js.map +1 -1
  141. package/dist/TimeSeriesTooltip/SeriesInfo.js +189 -65
  142. package/dist/TimeSeriesTooltip/SeriesInfo.js.map +1 -1
  143. package/dist/TimeSeriesTooltip/SeriesLabelsStack.js +168 -78
  144. package/dist/TimeSeriesTooltip/SeriesLabelsStack.js.map +1 -1
  145. package/dist/TimeSeriesTooltip/SeriesMarker.js +38 -11
  146. package/dist/TimeSeriesTooltip/SeriesMarker.js.map +1 -1
  147. package/dist/TimeSeriesTooltip/TimeChartTooltip.js +229 -72
  148. package/dist/TimeSeriesTooltip/TimeChartTooltip.js.map +1 -1
  149. package/dist/TimeSeriesTooltip/TooltipContent.js +73 -27
  150. package/dist/TimeSeriesTooltip/TooltipContent.js.map +1 -1
  151. package/dist/TimeSeriesTooltip/TooltipHeader.js +221 -121
  152. package/dist/TimeSeriesTooltip/TooltipHeader.js.map +1 -1
  153. package/dist/TimeSeriesTooltip/tooltip-model.js +44 -38
  154. package/dist/TimeSeriesTooltip/tooltip-model.js.map +1 -1
  155. package/dist/TimeZoneSelector.js +131 -36
  156. package/dist/TimeZoneSelector.js.map +1 -1
  157. package/dist/ToolbarIconButton/ToolbarIconButton.js +18 -7
  158. package/dist/ToolbarIconButton/ToolbarIconButton.js.map +1 -1
  159. package/dist/TransformsEditor/TransformEditor.js +830 -334
  160. package/dist/TransformsEditor/TransformEditor.js.map +1 -1
  161. package/dist/TransformsEditor/TransformEditorContainer.js +252 -90
  162. package/dist/TransformsEditor/TransformEditorContainer.js.map +1 -1
  163. package/dist/TransformsEditor/TransformsEditor.js +170 -59
  164. package/dist/TransformsEditor/TransformsEditor.js.map +1 -1
  165. package/dist/ValueMappingEditor/ValueMappingEditor.js +800 -322
  166. package/dist/ValueMappingEditor/ValueMappingEditor.js.map +1 -1
  167. package/dist/ValueMappingEditor/ValueMappingsEditor.js +218 -91
  168. package/dist/ValueMappingEditor/ValueMappingsEditor.js.map +1 -1
  169. package/dist/YAMLEditor/YAMLEditor.d.ts +12 -0
  170. package/dist/YAMLEditor/YAMLEditor.d.ts.map +1 -0
  171. package/dist/YAMLEditor/YAMLEditor.js +41 -0
  172. package/dist/YAMLEditor/YAMLEditor.js.map +1 -0
  173. package/dist/YAMLEditor/index.d.ts +2 -0
  174. package/dist/YAMLEditor/index.d.ts.map +1 -0
  175. package/dist/YAMLEditor/index.js +15 -0
  176. package/dist/YAMLEditor/index.js.map +1 -0
  177. package/dist/YAMLEditor/yaml-utils.d.ts +11 -0
  178. package/dist/YAMLEditor/yaml-utils.d.ts.map +1 -0
  179. package/dist/YAMLEditor/yaml-utils.js +52 -0
  180. package/dist/YAMLEditor/yaml-utils.js.map +1 -0
  181. package/dist/YAxisLabel.js +64 -20
  182. package/dist/YAxisLabel.js.map +1 -1
  183. package/dist/context/ChartsProvider.js +32 -16
  184. package/dist/context/ChartsProvider.js.map +1 -1
  185. package/dist/context/ItemActionsProvider.js +110 -61
  186. package/dist/context/ItemActionsProvider.js.map +1 -1
  187. package/dist/context/SelectionProvider.js +170 -66
  188. package/dist/context/SelectionProvider.js.map +1 -1
  189. package/dist/context/SnackbarProvider.js +101 -44
  190. package/dist/context/SnackbarProvider.js.map +1 -1
  191. package/dist/context/TimeZoneProvider.js +35 -14
  192. package/dist/context/TimeZoneProvider.js.map +1 -1
  193. package/dist/controls/TextField.js +86 -25
  194. package/dist/controls/TextField.js.map +1 -1
  195. package/dist/index.d.ts +1 -0
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +1 -0
  198. package/dist/index.js.map +1 -1
  199. package/dist/utils/browser-storage.js +64 -34
  200. package/dist/utils/browser-storage.js.map +1 -1
  201. package/dist/utils/time-series-data.d.ts.map +1 -1
  202. package/dist/utils/time-series-data.js +5 -2
  203. package/dist/utils/time-series-data.js.map +1 -1
  204. package/package.json +13 -7
@@ -11,80 +11,191 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import { c as _c } from "react-compiler-runtime";
14
15
  import { Button, Stack } from "@mui/material";
15
16
  import AddIcon from "mdi-material-ui/Plus";
16
17
  import { useState } from "react";
17
18
  import { TransformEditorContainer } from "./TransformEditorContainer.js";
18
- export function TransformsEditor({ value, onChange, ...props }) {
19
- const [transformsCollapsed, setTransformsCollapsed] = useState(value.map(()=>true));
20
- function handleTransformChange(index, transform) {
21
- const updatedTransforms = [
22
- ...value
23
- ];
24
- updatedTransforms[index] = transform;
25
- onChange(updatedTransforms);
19
+ export function TransformsEditor(t0) {
20
+ const $ = _c(33);
21
+ let onChange;
22
+ let props;
23
+ let value;
24
+ if ($[0] !== t0) {
25
+ ({ value, onChange, ...props } = t0);
26
+ $[0] = t0;
27
+ $[1] = onChange;
28
+ $[2] = props;
29
+ $[3] = value;
30
+ } else {
31
+ onChange = $[1];
32
+ props = $[2];
33
+ value = $[3];
26
34
  }
27
- function handleTransformAdd() {
28
- const updatedTransforms = [
29
- ...value
30
- ];
31
- // @ts-expect-error: Unknown transform
32
- updatedTransforms.push({
33
- kind: '',
34
- spec: {}
35
- });
36
- onChange(updatedTransforms);
37
- setTransformsCollapsed((prev)=>{
38
- prev.push(false);
39
- return [
40
- ...prev
35
+ let t1;
36
+ if ($[4] !== value) {
37
+ t1 = value.map(_temp);
38
+ $[4] = value;
39
+ $[5] = t1;
40
+ } else {
41
+ t1 = $[5];
42
+ }
43
+ const [transformsCollapsed, setTransformsCollapsed] = useState(t1);
44
+ let t2;
45
+ if ($[6] !== onChange || $[7] !== value) {
46
+ t2 = function handleTransformChange(index, transform) {
47
+ const updatedTransforms = [
48
+ ...value
41
49
  ];
42
- });
50
+ updatedTransforms[index] = transform;
51
+ onChange(updatedTransforms);
52
+ };
53
+ $[6] = onChange;
54
+ $[7] = value;
55
+ $[8] = t2;
56
+ } else {
57
+ t2 = $[8];
43
58
  }
44
- function handleTransformDelete(index) {
45
- const updatedTransforms = [
46
- ...value
47
- ];
48
- updatedTransforms.splice(index, 1);
49
- onChange(updatedTransforms);
50
- setTransformsCollapsed((prev)=>{
51
- prev.splice(index, 1);
52
- return [
53
- ...prev
59
+ const handleTransformChange = t2;
60
+ let t3;
61
+ if ($[9] !== onChange || $[10] !== value) {
62
+ t3 = function handleTransformAdd() {
63
+ const updatedTransforms_0 = [
64
+ ...value
54
65
  ];
55
- });
66
+ updatedTransforms_0.push({
67
+ kind: "",
68
+ spec: {}
69
+ });
70
+ onChange(updatedTransforms_0);
71
+ setTransformsCollapsed(_temp2);
72
+ };
73
+ $[9] = onChange;
74
+ $[10] = value;
75
+ $[11] = t3;
76
+ } else {
77
+ t3 = $[11];
56
78
  }
57
- function handleTransformCollapseExpand(index, collapsed) {
58
- setTransformsCollapsed((prev)=>{
59
- prev[index] = collapsed;
60
- return [
61
- ...prev
79
+ const handleTransformAdd = t3;
80
+ let t4;
81
+ if ($[12] !== onChange || $[13] !== value) {
82
+ t4 = function handleTransformDelete(index_0) {
83
+ const updatedTransforms_1 = [
84
+ ...value
62
85
  ];
63
- });
86
+ updatedTransforms_1.splice(index_0, 1);
87
+ onChange(updatedTransforms_1);
88
+ setTransformsCollapsed((prev_0)=>{
89
+ prev_0.splice(index_0, 1);
90
+ return [
91
+ ...prev_0
92
+ ];
93
+ });
94
+ };
95
+ $[12] = onChange;
96
+ $[13] = value;
97
+ $[14] = t4;
98
+ } else {
99
+ t4 = $[14];
100
+ }
101
+ const handleTransformDelete = t4;
102
+ let t5;
103
+ if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
104
+ t5 = function handleTransformCollapseExpand(index_1, collapsed) {
105
+ setTransformsCollapsed((prev_1)=>{
106
+ prev_1[index_1] = collapsed;
107
+ return [
108
+ ...prev_1
109
+ ];
110
+ });
111
+ };
112
+ $[15] = t5;
113
+ } else {
114
+ t5 = $[15];
64
115
  }
65
- return /*#__PURE__*/ _jsxs(Stack, {
66
- gap: 1,
67
- ...props,
68
- children: [
69
- value.map((transform, i)=>/*#__PURE__*/ _jsx(TransformEditorContainer, {
116
+ const handleTransformCollapseExpand = t5;
117
+ let t6;
118
+ if ($[16] !== handleTransformChange || $[17] !== handleTransformDelete || $[18] !== transformsCollapsed || $[19] !== value) {
119
+ let t7;
120
+ if ($[21] !== handleTransformChange || $[22] !== handleTransformDelete || $[23] !== transformsCollapsed) {
121
+ t7 = (transform_0, i)=>/*#__PURE__*/ _jsx(TransformEditorContainer, {
70
122
  index: i,
71
- value: transform,
123
+ value: transform_0,
72
124
  isCollapsed: transformsCollapsed[i] ?? true,
73
125
  onChange: (updatedTransform)=>handleTransformChange(i, updatedTransform),
74
126
  onDelete: ()=>handleTransformDelete(i),
75
- onCollapse: (collapsed)=>handleTransformCollapseExpand(i, collapsed)
76
- }, i)),
77
- /*#__PURE__*/ _jsx(Button, {
78
- variant: "contained",
79
- startIcon: /*#__PURE__*/ _jsx(AddIcon, {}),
80
- sx: {
81
- marginTop: 1
82
- },
83
- onClick: handleTransformAdd,
84
- children: "Add Transformation"
85
- })
86
- ]
87
- });
127
+ onCollapse: (collapsed_0)=>handleTransformCollapseExpand(i, collapsed_0)
128
+ }, i);
129
+ $[21] = handleTransformChange;
130
+ $[22] = handleTransformDelete;
131
+ $[23] = transformsCollapsed;
132
+ $[24] = t7;
133
+ } else {
134
+ t7 = $[24];
135
+ }
136
+ t6 = value.map(t7);
137
+ $[16] = handleTransformChange;
138
+ $[17] = handleTransformDelete;
139
+ $[18] = transformsCollapsed;
140
+ $[19] = value;
141
+ $[20] = t6;
142
+ } else {
143
+ t6 = $[20];
144
+ }
145
+ let t7;
146
+ let t8;
147
+ if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
148
+ t7 = /*#__PURE__*/ _jsx(AddIcon, {});
149
+ t8 = {
150
+ marginTop: 1
151
+ };
152
+ $[25] = t7;
153
+ $[26] = t8;
154
+ } else {
155
+ t7 = $[25];
156
+ t8 = $[26];
157
+ }
158
+ let t9;
159
+ if ($[27] !== handleTransformAdd) {
160
+ t9 = /*#__PURE__*/ _jsx(Button, {
161
+ variant: "contained",
162
+ startIcon: t7,
163
+ sx: t8,
164
+ onClick: handleTransformAdd,
165
+ children: "Add Transformation"
166
+ });
167
+ $[27] = handleTransformAdd;
168
+ $[28] = t9;
169
+ } else {
170
+ t9 = $[28];
171
+ }
172
+ let t10;
173
+ if ($[29] !== props || $[30] !== t6 || $[31] !== t9) {
174
+ t10 = /*#__PURE__*/ _jsxs(Stack, {
175
+ gap: 1,
176
+ ...props,
177
+ children: [
178
+ t6,
179
+ t9
180
+ ]
181
+ });
182
+ $[29] = props;
183
+ $[30] = t6;
184
+ $[31] = t9;
185
+ $[32] = t10;
186
+ } else {
187
+ t10 = $[32];
188
+ }
189
+ return t10;
190
+ }
191
+ function _temp2(prev) {
192
+ prev.push(false);
193
+ return [
194
+ ...prev
195
+ ];
196
+ }
197
+ function _temp() {
198
+ return true;
88
199
  }
89
200
 
90
201
  //# sourceMappingURL=TransformsEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/TransformsEditor/TransformsEditor.tsx"],"sourcesContent":["// Copyright 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 type { StackProps } from '@mui/material';\nimport { Button, Stack } from '@mui/material';\nimport AddIcon from 'mdi-material-ui/Plus';\nimport type { ReactElement } from 'react';\nimport { useState } from 'react';\n\nimport type { Transform } from '../model';\nimport { TransformEditorContainer } from './TransformEditorContainer';\n\nexport interface TransformsEditorProps extends Omit<StackProps, 'onChange'> {\n value: Transform[];\n onChange: (transforms: Transform[]) => void;\n}\n\nexport function TransformsEditor({ value, onChange, ...props }: TransformsEditorProps): ReactElement {\n const [transformsCollapsed, setTransformsCollapsed] = useState(value.map(() => true));\n\n function handleTransformChange(index: number, transform: Transform): void {\n const updatedTransforms = [...value];\n updatedTransforms[index] = transform;\n onChange(updatedTransforms);\n }\n\n function handleTransformAdd(): void {\n const updatedTransforms = [...value];\n // @ts-expect-error: Unknown transform\n updatedTransforms.push({ kind: '', spec: {} });\n onChange(updatedTransforms);\n setTransformsCollapsed((prev) => {\n prev.push(false);\n return [...prev];\n });\n }\n\n function handleTransformDelete(index: number): void {\n const updatedTransforms = [...value];\n updatedTransforms.splice(index, 1);\n onChange(updatedTransforms);\n setTransformsCollapsed((prev) => {\n prev.splice(index, 1);\n return [...prev];\n });\n }\n\n function handleTransformCollapseExpand(index: number, collapsed: boolean): void {\n setTransformsCollapsed((prev) => {\n prev[index] = collapsed;\n return [...prev];\n });\n }\n\n return (\n <Stack gap={1} {...props}>\n {value.map((transform, i) => (\n <TransformEditorContainer\n key={i}\n index={i}\n value={transform}\n isCollapsed={transformsCollapsed[i] ?? true}\n onChange={(updatedTransform: Transform) => handleTransformChange(i, updatedTransform)}\n onDelete={() => handleTransformDelete(i)}\n onCollapse={(collapsed) => handleTransformCollapseExpand(i, collapsed)}\n />\n ))}\n\n <Button variant=\"contained\" startIcon={<AddIcon />} sx={{ marginTop: 1 }} onClick={handleTransformAdd}>\n Add Transformation\n </Button>\n </Stack>\n );\n}\n"],"names":["Button","Stack","AddIcon","useState","TransformEditorContainer","TransformsEditor","value","onChange","props","transformsCollapsed","setTransformsCollapsed","map","handleTransformChange","index","transform","updatedTransforms","handleTransformAdd","push","kind","spec","prev","handleTransformDelete","splice","handleTransformCollapseExpand","collapsed","gap","i","isCollapsed","updatedTransform","onDelete","onCollapse","variant","startIcon","sx","marginTop","onClick"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAASA,MAAM,EAAEC,KAAK,QAAQ,gBAAgB;AAC9C,OAAOC,aAAa,uBAAuB;AAE3C,SAASC,QAAQ,QAAQ,QAAQ;AAGjC,SAASC,wBAAwB,QAAQ,gCAA6B;AAOtE,OAAO,SAASC,iBAAiB,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGC,OAA8B;IACnF,MAAM,CAACC,qBAAqBC,uBAAuB,GAAGP,SAASG,MAAMK,GAAG,CAAC,IAAM;IAE/E,SAASC,sBAAsBC,KAAa,EAAEC,SAAoB;QAChE,MAAMC,oBAAoB;eAAIT;SAAM;QACpCS,iBAAiB,CAACF,MAAM,GAAGC;QAC3BP,SAASQ;IACX;IAEA,SAASC;QACP,MAAMD,oBAAoB;eAAIT;SAAM;QACpC,sCAAsC;QACtCS,kBAAkBE,IAAI,CAAC;YAAEC,MAAM;YAAIC,MAAM,CAAC;QAAE;QAC5CZ,SAASQ;QACTL,uBAAuB,CAACU;YACtBA,KAAKH,IAAI,CAAC;YACV,OAAO;mBAAIG;aAAK;QAClB;IACF;IAEA,SAASC,sBAAsBR,KAAa;QAC1C,MAAME,oBAAoB;eAAIT;SAAM;QACpCS,kBAAkBO,MAAM,CAACT,OAAO;QAChCN,SAASQ;QACTL,uBAAuB,CAACU;YACtBA,KAAKE,MAAM,CAACT,OAAO;YACnB,OAAO;mBAAIO;aAAK;QAClB;IACF;IAEA,SAASG,8BAA8BV,KAAa,EAAEW,SAAkB;QACtEd,uBAAuB,CAACU;YACtBA,IAAI,CAACP,MAAM,GAAGW;YACd,OAAO;mBAAIJ;aAAK;QAClB;IACF;IAEA,qBACE,MAACnB;QAAMwB,KAAK;QAAI,GAAGjB,KAAK;;YACrBF,MAAMK,GAAG,CAAC,CAACG,WAAWY,kBACrB,KAACtB;oBAECS,OAAOa;oBACPpB,OAAOQ;oBACPa,aAAalB,mBAAmB,CAACiB,EAAE,IAAI;oBACvCnB,UAAU,CAACqB,mBAAgChB,sBAAsBc,GAAGE;oBACpEC,UAAU,IAAMR,sBAAsBK;oBACtCI,YAAY,CAACN,YAAcD,8BAA8BG,GAAGF;mBANvDE;0BAUT,KAAC1B;gBAAO+B,SAAQ;gBAAYC,yBAAW,KAAC9B;gBAAY+B,IAAI;oBAAEC,WAAW;gBAAE;gBAAGC,SAASnB;0BAAoB;;;;AAK7G"}
1
+ {"version":3,"sources":["../../src/TransformsEditor/TransformsEditor.tsx"],"sourcesContent":["// Copyright 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 type { StackProps } from '@mui/material';\nimport { Button, Stack } from '@mui/material';\nimport AddIcon from 'mdi-material-ui/Plus';\nimport type { ReactElement } from 'react';\nimport { useState } from 'react';\n\nimport type { Transform } from '../model';\nimport { TransformEditorContainer } from './TransformEditorContainer';\n\nexport interface TransformsEditorProps extends Omit<StackProps, 'onChange'> {\n value: Transform[];\n onChange: (transforms: Transform[]) => void;\n}\n\nexport function TransformsEditor({ value, onChange, ...props }: TransformsEditorProps): ReactElement {\n const [transformsCollapsed, setTransformsCollapsed] = useState(value.map(() => true));\n\n function handleTransformChange(index: number, transform: Transform): void {\n const updatedTransforms = [...value];\n updatedTransforms[index] = transform;\n onChange(updatedTransforms);\n }\n\n function handleTransformAdd(): void {\n const updatedTransforms = [...value];\n // @ts-expect-error: Unknown transform\n updatedTransforms.push({ kind: '', spec: {} });\n onChange(updatedTransforms);\n setTransformsCollapsed((prev) => {\n prev.push(false);\n return [...prev];\n });\n }\n\n function handleTransformDelete(index: number): void {\n const updatedTransforms = [...value];\n updatedTransforms.splice(index, 1);\n onChange(updatedTransforms);\n setTransformsCollapsed((prev) => {\n prev.splice(index, 1);\n return [...prev];\n });\n }\n\n function handleTransformCollapseExpand(index: number, collapsed: boolean): void {\n setTransformsCollapsed((prev) => {\n prev[index] = collapsed;\n return [...prev];\n });\n }\n\n return (\n <Stack gap={1} {...props}>\n {value.map((transform, i) => (\n <TransformEditorContainer\n key={i}\n index={i}\n value={transform}\n isCollapsed={transformsCollapsed[i] ?? true}\n onChange={(updatedTransform: Transform) => handleTransformChange(i, updatedTransform)}\n onDelete={() => handleTransformDelete(i)}\n onCollapse={(collapsed) => handleTransformCollapseExpand(i, collapsed)}\n />\n ))}\n\n <Button variant=\"contained\" startIcon={<AddIcon />} sx={{ marginTop: 1 }} onClick={handleTransformAdd}>\n Add Transformation\n </Button>\n </Stack>\n );\n}\n"],"names":["Button","Stack","AddIcon","useState","TransformEditorContainer"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAGjC,SAASA,MAAM,EAAEC,KAAK,QAAQ,gBAAgB;AAC9C,OAAOC,aAAa,uBAAuB;AAE3C,SAASC,QAAQ,QAAQ,QAAQ;AAGjC,SAASC,wBAAwB,QAAQ,gCAA6B;AAOtE,OAAO"}