pixel-react 1.21.68 → 1.21.69
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/lib/components/AudioPlayer/AudioPlayer.js +1 -1
- package/lib/components/AudioPlayer/AudioPlayer.js.map +1 -1
- package/lib/components/Button/types.d.ts +2 -2
- package/lib/components/CardPanel/CardPanel.js +1 -3
- package/lib/components/CardPanel/CardPanel.js.map +1 -1
- package/lib/components/Drawer/Drawer.js +3 -4
- package/lib/components/Drawer/Drawer.js.map +1 -1
- package/lib/components/Editor/Editor.d.ts +1 -7
- package/lib/components/Editor/Editor.js +345 -29
- package/lib/components/Editor/Editor.js.map +1 -1
- package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.d.ts +1 -1
- package/lib/components/Excel/ExcelFile/ExcelFileComponents/areModelsEqual.js +1 -0
- package/lib/components/Excel/ExcelFile/ExcelFileComponents/areModelsEqual.js.map +1 -1
- package/lib/components/Icon/Icon.js +2 -15
- package/lib/components/Icon/Icon.js.map +1 -1
- package/lib/components/Icon/types.d.ts +1 -2
- package/lib/components/Input/Input.js +10 -13
- package/lib/components/Input/Input.js.map +1 -1
- package/lib/components/Input/types.d.ts +1 -2
- package/lib/components/MultiSelect/Dropdown.js +4 -3
- package/lib/components/MultiSelect/Dropdown.js.map +1 -1
- package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
- package/lib/components/MultiSelect/MultiSelect.js +6 -17
- package/lib/components/MultiSelect/MultiSelect.js.map +1 -1
- package/lib/components/MultiSelect/MultiSelectTypes.d.ts +2 -2
- package/lib/components/MultiSelect/dropdownTypes.d.ts +0 -3
- package/lib/components/Select/Select.js +7 -14
- package/lib/components/Select/Select.js.map +1 -1
- package/lib/components/Select/components/Dropdown.js +3 -3
- package/lib/components/Select/components/Dropdown.js.map +1 -1
- package/lib/components/Select/components/types.d.ts +0 -1
- package/lib/components/Select/components/types.js.map +1 -1
- package/lib/components/Select/types.d.ts +2 -2
- package/lib/components/Table/Table.js +3 -3
- package/lib/components/Table/Table.js.map +1 -1
- package/lib/components/Table/Types.d.ts +0 -8
- package/lib/components/Table/components/SortableRow.js +3 -2
- package/lib/components/Table/components/SortableRow.js.map +1 -1
- package/lib/components/Table/components/TableHeader.js +3 -3
- package/lib/components/Table/components/TableHeader.js.map +1 -1
- package/lib/components/Table/components/VirtualizedRows.js +1 -1
- package/lib/components/Table/components/VirtualizedRows.js.map +1 -1
- package/lib/components/TableTreeFn/Components/TableBody.js +1 -1
- package/lib/components/TableTreeFn/Components/TableBody.js.map +1 -1
- package/lib/components/TableTreeFn/Components/TableCell.js +1 -1
- package/lib/components/TableTreeFn/Components/TableCell.js.map +1 -1
- package/lib/components/TableTreeFn/Components/TableHead.js +2 -2
- package/lib/components/TableTreeFn/Components/TableHead.js.map +1 -1
- package/lib/components/TableTreeFn/Components/TableRow.js +1 -1
- package/lib/components/TableTreeFn/Components/TableRow.js.map +1 -1
- package/lib/components/TableTreeFn/TableTreeFn.js +2 -2
- package/lib/components/TableTreeFn/TableTreeFn.js.map +1 -1
- package/lib/components/TableTreeFn/types.d.ts +0 -8
- package/lib/index.d.ts +10 -31
- package/lib/index.js +9 -9
- package/lib/index.js.map +1 -1
- package/lib/styles.css +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -9
- package/lib/components/AudioPlayer/__tests__/AudioPlayer.test.d.ts +0 -1
- package/lib/components/AudioPlayer/__tests__/AudioPlayer.test.js +0 -68
- package/lib/components/AudioPlayer/__tests__/AudioPlayer.test.js.map +0 -1
- package/lib/components/Button/__tests__/Button.test.d.ts +0 -1
- package/lib/components/Button/__tests__/Button.test.js +0 -45
- package/lib/components/Button/__tests__/Button.test.js.map +0 -1
- package/lib/components/CardPanel/__tests__/CardPanel.test.d.ts +0 -1
- package/lib/components/CardPanel/__tests__/CardPanel.test.js +0 -36
- package/lib/components/CardPanel/__tests__/CardPanel.test.js.map +0 -1
- package/lib/components/Drawer/__tests__/Drawer.test.d.ts +0 -1
- package/lib/components/Drawer/__tests__/Drawer.test.js +0 -48
- package/lib/components/Drawer/__tests__/Drawer.test.js.map +0 -1
- package/lib/components/Editor/__tests__/beautify.test.d.ts +0 -1
- package/lib/components/Editor/__tests__/beautify.test.js +0 -15
- package/lib/components/Editor/__tests__/beautify.test.js.map +0 -1
- package/lib/components/Editor/beautify.d.ts +0 -1
- package/lib/components/Editor/beautify.js +0 -40
- package/lib/components/Editor/beautify.js.map +0 -1
- package/lib/components/Editor/useVariableDropdown.d.ts +0 -17
- package/lib/components/Editor/useVariableDropdown.js +0 -252
- package/lib/components/Editor/useVariableDropdown.js.map +0 -1
- package/lib/components/Icon/__tests__/Icon.test.d.ts +0 -1
- package/lib/components/Icon/__tests__/Icon.test.js +0 -66
- package/lib/components/Icon/__tests__/Icon.test.js.map +0 -1
- package/lib/components/Input/__tests__/Input.test.d.ts +0 -1
- package/lib/components/Input/__tests__/Input.test.js +0 -45
- package/lib/components/Input/__tests__/Input.test.js.map +0 -1
- package/lib/components/MultiSelect/__tests__/MultiSelect.test.d.ts +0 -1
- package/lib/components/MultiSelect/__tests__/MultiSelect.test.js +0 -30
- package/lib/components/MultiSelect/__tests__/MultiSelect.test.js.map +0 -1
- package/lib/components/Select/__tests__/Select.test.d.ts +0 -1
- package/lib/components/Select/__tests__/Select.test.js +0 -33
- package/lib/components/Select/__tests__/Select.test.js.map +0 -1
- package/lib/components/Table/__tests__/Table.test.d.ts +0 -1
- package/lib/components/Table/__tests__/Table.test.js +0 -26
- package/lib/components/Table/__tests__/Table.test.js.map +0 -1
- package/lib/components/TableTreeFn/__tests__/TableTreeFn.test.d.ts +0 -1
- package/lib/components/TableTreeFn/__tests__/TableTreeFn.test.js +0 -17
- package/lib/components/TableTreeFn/__tests__/TableTreeFn.test.js.map +0 -1
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
2
|
-
import { calculateDropdownPosition } from './calculateDropdownPosition';
|
|
3
|
-
export const useVariableDropdown = ({ editor, variableOptionsList, addForloopPrefix, isRequisiteType, setValue, }) => {
|
|
4
|
-
const decorationsRef = useRef([]);
|
|
5
|
-
const varRef = useRef(null);
|
|
6
|
-
const filterVarRef = useRef(null);
|
|
7
|
-
const [currentLine, setCurrentLine] = useState(0);
|
|
8
|
-
const [isTextSelected, setIsTextSelected] = useState(false);
|
|
9
|
-
const [showDropdown, setShowDropdown] = useState(false);
|
|
10
|
-
const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });
|
|
11
|
-
const [filteredVariableOptions, setFilteredVariableOptions] = useState([]);
|
|
12
|
-
// Setup listeners when editor is available
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
if (!editor)
|
|
15
|
-
return;
|
|
16
|
-
const cursorPositionDisposable = editor.onDidChangeCursorPosition((e) => {
|
|
17
|
-
setCurrentLine(e.position.lineNumber);
|
|
18
|
-
const position = editor.getPosition();
|
|
19
|
-
const model = editor.getModel();
|
|
20
|
-
if (!position || !model)
|
|
21
|
-
return;
|
|
22
|
-
const currentLineContent = model.getLineContent(position.lineNumber);
|
|
23
|
-
const col = position.column - 1;
|
|
24
|
-
if (col === 0) {
|
|
25
|
-
setShowDropdown(false);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const dollarIndex = currentLineContent.lastIndexOf('$', col - 1);
|
|
29
|
-
const openIndex = currentLineContent.lastIndexOf('${', col - 1);
|
|
30
|
-
const closeIndex = openIndex !== -1 ? currentLineContent.indexOf('}', openIndex + 2) : -1;
|
|
31
|
-
const insideVariable = openIndex !== -1 && closeIndex !== -1 && col - 1 > openIndex && col - 1 < closeIndex;
|
|
32
|
-
const isCloserEnd = !/\}/.test(currentLineContent.slice(dollarIndex + 1, col));
|
|
33
|
-
if (dollarIndex !== -1 &&
|
|
34
|
-
col > dollarIndex &&
|
|
35
|
-
!/\s/.test(currentLineContent.slice(dollarIndex + 1, col)) &&
|
|
36
|
-
!insideVariable &&
|
|
37
|
-
isCloserEnd) {
|
|
38
|
-
varRef.current = dollarIndex;
|
|
39
|
-
filterVarRef.current = currentLineContent.slice(dollarIndex + 1, col);
|
|
40
|
-
const filterVal = (filterVarRef.current ?? '').toLowerCase();
|
|
41
|
-
const filteredVariable = variableOptionsList.filter((opt) => {
|
|
42
|
-
const variableName = opt.type === '_startforloop' && addForloopPrefix ? `FLV_for:${opt.name}` : opt.name;
|
|
43
|
-
return variableName.toLowerCase().includes(filterVal);
|
|
44
|
-
});
|
|
45
|
-
setFilteredVariableOptions(filteredVariable);
|
|
46
|
-
const visiblePosition = editor.getScrolledVisiblePosition(position);
|
|
47
|
-
const editorDomNode = editor.getDomNode();
|
|
48
|
-
if (visiblePosition && editorDomNode) {
|
|
49
|
-
setDropdownPosition(calculateDropdownPosition(visiblePosition, editorDomNode, 150));
|
|
50
|
-
}
|
|
51
|
-
if (['keyboard', 'mouse', 'deleteLeft'].includes(e?.source || '')) {
|
|
52
|
-
setShowDropdown(true);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
setShowDropdown(false);
|
|
57
|
-
varRef.current = null;
|
|
58
|
-
filterVarRef.current = null;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
const mouseDownDisposable = editor.onMouseDown(() => {
|
|
62
|
-
setTimeout(() => {
|
|
63
|
-
const position = editor.getPosition();
|
|
64
|
-
const model = editor.getModel();
|
|
65
|
-
if (!position || !model)
|
|
66
|
-
return;
|
|
67
|
-
const currentLineContent = model.getLineContent(position.lineNumber);
|
|
68
|
-
const columnIndex = position.column - 2;
|
|
69
|
-
if (currentLineContent[columnIndex] === '$') {
|
|
70
|
-
varRef.current = columnIndex;
|
|
71
|
-
filterVarRef.current = '';
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
varRef.current = null;
|
|
75
|
-
filterVarRef.current = null;
|
|
76
|
-
}
|
|
77
|
-
}, 0);
|
|
78
|
-
});
|
|
79
|
-
const cursorSelectionDisposable = editor.onDidChangeCursorSelection(() => {
|
|
80
|
-
const selections = editor.getSelections() || [];
|
|
81
|
-
const hasSelection = selections.some((sel) => sel.startLineNumber !== sel.endLineNumber || sel.startColumn !== sel.endColumn);
|
|
82
|
-
setIsTextSelected(hasSelection);
|
|
83
|
-
});
|
|
84
|
-
const modelContentDisposable = editor.onDidChangeModelContent(() => {
|
|
85
|
-
const content = editor.getValue();
|
|
86
|
-
setValue(content);
|
|
87
|
-
const position = editor.getPosition();
|
|
88
|
-
const model = editor.getModel();
|
|
89
|
-
if (!position || !model)
|
|
90
|
-
return;
|
|
91
|
-
const currentLineContent = model.getLineContent(position.lineNumber);
|
|
92
|
-
const columnIndex = position.column - 2;
|
|
93
|
-
const currentVarIndex = varRef.current ?? columnIndex;
|
|
94
|
-
if (currentLineContent[currentVarIndex] === '$') {
|
|
95
|
-
if (varRef.current === null) {
|
|
96
|
-
varRef.current = columnIndex;
|
|
97
|
-
}
|
|
98
|
-
filterVarRef.current = currentLineContent.slice(varRef.current + 1, columnIndex);
|
|
99
|
-
const filteredVariable = variableOptionsList.filter((opt) => {
|
|
100
|
-
const variableName = opt.type === '_startforloop' && addForloopPrefix ? `FLV_for:${opt.name}` : opt.name;
|
|
101
|
-
return variableName.toLowerCase().includes((filterVarRef.current ?? '').toLowerCase());
|
|
102
|
-
});
|
|
103
|
-
if (filteredVariable.length) {
|
|
104
|
-
setFilteredVariableOptions(filteredVariable);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
setFilteredVariableOptions([]);
|
|
108
|
-
if (varRef.current !== columnIndex && currentLineContent[columnIndex] === ' ') {
|
|
109
|
-
varRef.current = null;
|
|
110
|
-
filterVarRef.current = null;
|
|
111
|
-
setShowDropdown(false);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
const visiblePosition = editor.getScrolledVisiblePosition(position);
|
|
115
|
-
const editorDomNode = editor.getDomNode();
|
|
116
|
-
if (visiblePosition && editorDomNode) {
|
|
117
|
-
setDropdownPosition(calculateDropdownPosition(visiblePosition, editorDomNode, 150));
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
varRef.current = null;
|
|
122
|
-
filterVarRef.current = null;
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
const blurDisposable = editor.onDidBlurEditorWidget(() => {
|
|
126
|
-
setShowDropdown(false);
|
|
127
|
-
varRef.current = null;
|
|
128
|
-
filterVarRef.current = null;
|
|
129
|
-
decorationsRef.current = [];
|
|
130
|
-
setCurrentLine(0);
|
|
131
|
-
});
|
|
132
|
-
return () => {
|
|
133
|
-
cursorPositionDisposable.dispose();
|
|
134
|
-
mouseDownDisposable.dispose();
|
|
135
|
-
cursorSelectionDisposable.dispose();
|
|
136
|
-
modelContentDisposable.dispose();
|
|
137
|
-
blurDisposable.dispose();
|
|
138
|
-
};
|
|
139
|
-
}, [editor, variableOptionsList, addForloopPrefix, setValue]);
|
|
140
|
-
// Decoration hook
|
|
141
|
-
useEffect(() => {
|
|
142
|
-
if (!editor || !currentLine)
|
|
143
|
-
return;
|
|
144
|
-
const decorations = [];
|
|
145
|
-
const lineNumberDecorations = [];
|
|
146
|
-
if (isTextSelected) {
|
|
147
|
-
lineNumberDecorations.push({
|
|
148
|
-
range: {
|
|
149
|
-
startLineNumber: currentLine,
|
|
150
|
-
startColumn: 1,
|
|
151
|
-
endLineNumber: currentLine,
|
|
152
|
-
endColumn: 1,
|
|
153
|
-
},
|
|
154
|
-
options: {
|
|
155
|
-
isWholeLine: false,
|
|
156
|
-
linesDecorationsClassName: 'active-line-number',
|
|
157
|
-
},
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
decorations.push({
|
|
162
|
-
range: {
|
|
163
|
-
startLineNumber: currentLine,
|
|
164
|
-
startColumn: 1,
|
|
165
|
-
endLineNumber: currentLine,
|
|
166
|
-
endColumn: 1,
|
|
167
|
-
},
|
|
168
|
-
options: {
|
|
169
|
-
isWholeLine: true,
|
|
170
|
-
className: 'current-line-background',
|
|
171
|
-
},
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
const decorationIds = decorationsRef.current || [];
|
|
175
|
-
decorationsRef.current = editor.deltaDecorations(decorationIds, [
|
|
176
|
-
...decorations,
|
|
177
|
-
...lineNumberDecorations,
|
|
178
|
-
]);
|
|
179
|
-
}, [editor, currentLine, isTextSelected]);
|
|
180
|
-
const insertSuggestion = useCallback((textToInsert, moveMarkers, currentPositionOffset) => {
|
|
181
|
-
if (!editor)
|
|
182
|
-
return;
|
|
183
|
-
const position = editor.getPosition();
|
|
184
|
-
if (!position)
|
|
185
|
-
return;
|
|
186
|
-
const currentVarIndex = varRef.current ?? 0;
|
|
187
|
-
editor.executeEdits('', [
|
|
188
|
-
{
|
|
189
|
-
range: {
|
|
190
|
-
startLineNumber: position.lineNumber,
|
|
191
|
-
startColumn: currentVarIndex + currentPositionOffset,
|
|
192
|
-
endLineNumber: position.lineNumber,
|
|
193
|
-
endColumn: currentVarIndex + (position.column - currentVarIndex),
|
|
194
|
-
},
|
|
195
|
-
text: textToInsert,
|
|
196
|
-
forceMoveMarkers: moveMarkers,
|
|
197
|
-
},
|
|
198
|
-
]);
|
|
199
|
-
// Update decorations for the current line
|
|
200
|
-
const decorationIds = decorationsRef.current || [];
|
|
201
|
-
decorationsRef.current = editor.deltaDecorations(decorationIds, [
|
|
202
|
-
{
|
|
203
|
-
range: {
|
|
204
|
-
startLineNumber: currentLine,
|
|
205
|
-
startColumn: 1,
|
|
206
|
-
endLineNumber: currentLine,
|
|
207
|
-
endColumn: 1,
|
|
208
|
-
},
|
|
209
|
-
options: {
|
|
210
|
-
isWholeLine: false,
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
]);
|
|
214
|
-
filterVarRef.current = null;
|
|
215
|
-
varRef.current = null;
|
|
216
|
-
setShowDropdown(false);
|
|
217
|
-
}, [editor, currentLine]);
|
|
218
|
-
const handleSelectSuggestion = useCallback((suggestion, type) => {
|
|
219
|
-
const val = `{${type}${type === 'FLV_for:' ? '' : '_'}${suggestion}}`;
|
|
220
|
-
insertSuggestion(val, false, 2);
|
|
221
|
-
}, [insertSuggestion]);
|
|
222
|
-
const handleSelectVariable = useCallback((option) => {
|
|
223
|
-
if (isRequisiteType) {
|
|
224
|
-
insertSuggestion(`'${option.name}'`, true, 1);
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
const typePrefix = option.parentVariableType === 'STEPGROUP'
|
|
228
|
-
? 'SGV'
|
|
229
|
-
: option?.type === 'GLOBAL'
|
|
230
|
-
? 'GV'
|
|
231
|
-
: option?.type === 'LOCAL'
|
|
232
|
-
? 'LV'
|
|
233
|
-
: (option?._id ?? option?.id ?? '').includes('PARAMETER')
|
|
234
|
-
? 'SGP'
|
|
235
|
-
: option?.type === '_startforloop'
|
|
236
|
-
? 'FLV_for:'
|
|
237
|
-
: option?.type === 'DATAPROVIDER'
|
|
238
|
-
? 'DPV'
|
|
239
|
-
: 'PEV';
|
|
240
|
-
const suggestionText = option?.type === 'DATAPROVIDER' ? `${option?.dpName}:${option?.varname}` : option?.name;
|
|
241
|
-
handleSelectSuggestion(suggestionText, typePrefix);
|
|
242
|
-
}
|
|
243
|
-
}, [isRequisiteType, handleSelectSuggestion, insertSuggestion]);
|
|
244
|
-
return {
|
|
245
|
-
showDropdown,
|
|
246
|
-
setShowDropdown,
|
|
247
|
-
dropdownPosition,
|
|
248
|
-
filteredVariableOptions,
|
|
249
|
-
handleSelectVariable,
|
|
250
|
-
};
|
|
251
|
-
};
|
|
252
|
-
//# sourceMappingURL=useVariableDropdown.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useVariableDropdown.js","sourceRoot":"","sources":["../../../src/components/Editor/useVariableDropdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { render, screen, fireEvent } from '@testing-library/react';
|
|
3
|
-
import { describe, it, expect, vi } from 'vitest';
|
|
4
|
-
import Icon from '../Icon';
|
|
5
|
-
// Mock the IconList to avoid depending on actual SVG imports
|
|
6
|
-
vi.mock('../iconList', () => {
|
|
7
|
-
return {
|
|
8
|
-
default: {
|
|
9
|
-
play: (props) => _jsx("svg", { "data-testid": "mock-play-svg", ...props }),
|
|
10
|
-
close: (props) => _jsx("svg", { "data-testid": "mock-close-svg", ...props }),
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
});
|
|
14
|
-
describe('Icon Component', () => {
|
|
15
|
-
it('renders correctly with a valid icon name', () => {
|
|
16
|
-
render(_jsx(Icon, { name: "play" }));
|
|
17
|
-
// By default, it has role="img" when not interactive
|
|
18
|
-
const iconContainer = screen.getByRole('img');
|
|
19
|
-
expect(iconContainer).toBeInTheDocument();
|
|
20
|
-
const svg = screen.getByTestId('mock-play-svg');
|
|
21
|
-
expect(svg).toBeInTheDocument();
|
|
22
|
-
});
|
|
23
|
-
it('returns null if icon name is invalid', () => {
|
|
24
|
-
const { container } = render(_jsx(Icon, { name: "invalid_icon" }));
|
|
25
|
-
expect(container).toBeEmptyDOMElement();
|
|
26
|
-
});
|
|
27
|
-
it('receives role="button" when onClick is provided', () => {
|
|
28
|
-
const handleClick = vi.fn();
|
|
29
|
-
render(_jsx(Icon, { name: "play", onClick: handleClick }));
|
|
30
|
-
const buttonIcon = screen.getByRole('button');
|
|
31
|
-
expect(buttonIcon).toBeInTheDocument();
|
|
32
|
-
});
|
|
33
|
-
it('handles onClick events', () => {
|
|
34
|
-
const handleClick = vi.fn();
|
|
35
|
-
render(_jsx(Icon, { name: "play", onClick: handleClick }));
|
|
36
|
-
const buttonIcon = screen.getByRole('button');
|
|
37
|
-
fireEvent.click(buttonIcon);
|
|
38
|
-
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
39
|
-
});
|
|
40
|
-
it('does not trigger onClick when disabled', () => {
|
|
41
|
-
const handleClick = vi.fn();
|
|
42
|
-
render(_jsx(Icon, { name: "play", onClick: handleClick, disabled: true }));
|
|
43
|
-
// When disabled and onClick is provided, it might still have role="button" but should not fire
|
|
44
|
-
const buttonIcon = screen.getByRole('button');
|
|
45
|
-
expect(buttonIcon).toHaveAttribute('aria-disabled', 'true');
|
|
46
|
-
fireEvent.click(buttonIcon);
|
|
47
|
-
expect(handleClick).not.toHaveBeenCalled();
|
|
48
|
-
});
|
|
49
|
-
it('fires onClick on Enter and Space keys', () => {
|
|
50
|
-
const handleClick = vi.fn();
|
|
51
|
-
render(_jsx(Icon, { name: "play", onClick: handleClick, tabIndex: 0 }));
|
|
52
|
-
const buttonIcon = screen.getByRole('button');
|
|
53
|
-
fireEvent.keyDown(buttonIcon, { key: 'Enter', code: 'Enter' });
|
|
54
|
-
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
55
|
-
fireEvent.keyDown(buttonIcon, { key: ' ', code: 'Space' });
|
|
56
|
-
expect(handleClick).toHaveBeenCalledTimes(2);
|
|
57
|
-
});
|
|
58
|
-
it('does not fire keyboard events when disabled', () => {
|
|
59
|
-
const handleClick = vi.fn();
|
|
60
|
-
render(_jsx(Icon, { name: "play", onClick: handleClick, tabIndex: 0, disabled: true }));
|
|
61
|
-
const buttonIcon = screen.getByRole('button');
|
|
62
|
-
fireEvent.keyDown(buttonIcon, { key: 'Enter', code: 'Enter' });
|
|
63
|
-
expect(handleClick).not.toHaveBeenCalled();
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
//# sourceMappingURL=Icon.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.test.js","sourceRoot":"","sources":["../../../../src/components/Icon/__tests__/Icon.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { render, screen, fireEvent } from '@testing-library/react';
|
|
3
|
-
import { describe, it, expect, vi } from 'vitest';
|
|
4
|
-
import Input from '../Input';
|
|
5
|
-
describe('Input Component', () => {
|
|
6
|
-
it('renders correctly with label', () => {
|
|
7
|
-
render(_jsx(Input, { label: "Username", name: "username", value: "", type: "text" }));
|
|
8
|
-
// Testing Library implicitly links label to input using htmlFor and id
|
|
9
|
-
const input = screen.getByLabelText(/username/i);
|
|
10
|
-
expect(input).toBeInTheDocument();
|
|
11
|
-
});
|
|
12
|
-
it('handles typing and onChange events', () => {
|
|
13
|
-
const handleChange = vi.fn();
|
|
14
|
-
render(_jsx(Input, { label: "Email", name: "email", value: "", type: "text", onChange: handleChange }));
|
|
15
|
-
const input = screen.getByLabelText(/email/i);
|
|
16
|
-
fireEvent.change(input, { target: { value: 'test@example.com' } });
|
|
17
|
-
expect(handleChange).toHaveBeenCalledTimes(1);
|
|
18
|
-
expect(input).toHaveValue('test@example.com');
|
|
19
|
-
});
|
|
20
|
-
it('renders as disabled when disabled prop is true', () => {
|
|
21
|
-
render(_jsx(Input, { label: "Disabled Input", name: "disabled", value: "", type: "text", disabled: true }));
|
|
22
|
-
const input = screen.getByLabelText(/disabled input/i);
|
|
23
|
-
expect(input).toBeDisabled();
|
|
24
|
-
});
|
|
25
|
-
it('maps helperText to aria-describedby on error', () => {
|
|
26
|
-
// Input component displays error/helper text only when touched or displayErrorImmediately is true
|
|
27
|
-
render(_jsx(Input, { label: "Error Input", name: "error", value: "", type: "text", error: true, helperText: "Password is too short", displayErrorImmediately: true }));
|
|
28
|
-
const input = screen.getByLabelText(/password/i);
|
|
29
|
-
expect(input).toHaveAttribute('aria-invalid', 'true');
|
|
30
|
-
const helperTextElement = screen.getByText(/password is too short/i);
|
|
31
|
-
expect(helperTextElement).toBeInTheDocument();
|
|
32
|
-
// Validate aria-describedby links to the helper text element id
|
|
33
|
-
const describedBy = input.getAttribute('aria-describedby');
|
|
34
|
-
expect(describedBy).toBe(helperTextElement.id);
|
|
35
|
-
});
|
|
36
|
-
it('prevents invalid keys for number type input', () => {
|
|
37
|
-
render(_jsx(Input, { label: "Age", name: "age", type: "number", value: "" }));
|
|
38
|
-
const input = screen.getByLabelText(/age/i);
|
|
39
|
-
fireEvent.keyDown(input, { key: 'e', code: 'KeyE' });
|
|
40
|
-
// JSDOM might not completely block char input on keyDown preventDefault natively in tests,
|
|
41
|
-
// but we can verify the event handler fires without crashing.
|
|
42
|
-
expect(input).toBeInTheDocument();
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=Input.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Input.test.js","sourceRoot":"","sources":["../../../../src/components/Input/__tests__/Input.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { render, screen, fireEvent } from '@testing-library/react';
|
|
3
|
-
import { describe, it, expect } from 'vitest';
|
|
4
|
-
import MultiSelect from '../MultiSelect';
|
|
5
|
-
describe('MultiSelect Component', () => {
|
|
6
|
-
const mockOptions = [
|
|
7
|
-
{ label: 'Option A', value: 'a' },
|
|
8
|
-
{ label: 'Option B', value: 'b' },
|
|
9
|
-
];
|
|
10
|
-
it('renders correctly', () => {
|
|
11
|
-
render(_jsx(MultiSelect, { label: "Multi", options: mockOptions }));
|
|
12
|
-
const combobox = screen.getByRole('combobox', { hidden: true });
|
|
13
|
-
expect(combobox).toBeInTheDocument();
|
|
14
|
-
});
|
|
15
|
-
it('opens dropdown and allows selection', () => {
|
|
16
|
-
render(_jsx(MultiSelect, { label: "Multi", options: mockOptions }));
|
|
17
|
-
const combobox = screen.getByRole('combobox', { hidden: true });
|
|
18
|
-
fireEvent.click(combobox);
|
|
19
|
-
const listbox = screen.getByRole('listbox');
|
|
20
|
-
expect(listbox).toBeInTheDocument();
|
|
21
|
-
});
|
|
22
|
-
it('can be navigated via keyboard', () => {
|
|
23
|
-
render(_jsx(MultiSelect, { label: "Multi", options: mockOptions }));
|
|
24
|
-
const combobox = screen.getByRole('combobox', { hidden: true });
|
|
25
|
-
fireEvent.keyDown(combobox, { key: 'Enter' });
|
|
26
|
-
const listbox = screen.getByRole('listbox');
|
|
27
|
-
expect(listbox).toBeInTheDocument();
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=MultiSelect.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.test.js","sourceRoot":"","sources":["../../../../src/components/MultiSelect/__tests__/MultiSelect.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,WAAW,GAAG;QAClB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;QACjC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;KAClC,CAAC;IAEF,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,KAAC,WAAW,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,WAAW,GAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,KAAC,WAAW,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,WAAW,GAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,KAAC,WAAW,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,WAAW,GAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { render, screen, fireEvent } from '@testing-library/react';
|
|
3
|
-
import { describe, it, expect } from 'vitest';
|
|
4
|
-
import Select from '../Select';
|
|
5
|
-
describe('Select Component', () => {
|
|
6
|
-
const mockOptions = [
|
|
7
|
-
{ label: 'Option 1', value: 'opt1' },
|
|
8
|
-
{ label: 'Option 2', value: 'opt2' },
|
|
9
|
-
];
|
|
10
|
-
it('renders with label and placeholder', () => {
|
|
11
|
-
render(_jsx(Select, { label: "Test Label", placeholder: "Choose one", optionsList: mockOptions, selectedOption: { label: '', value: '' }, onChange: () => { } }));
|
|
12
|
-
const label = screen.getByText('Test Label');
|
|
13
|
-
expect(label).toBeInTheDocument();
|
|
14
|
-
// Testing Library can find the combobox
|
|
15
|
-
const combobox = screen.getByRole('combobox', { hidden: true });
|
|
16
|
-
expect(combobox).toBeInTheDocument();
|
|
17
|
-
});
|
|
18
|
-
it('opens dropdown on click', () => {
|
|
19
|
-
render(_jsx(Select, { label: "Test", optionsList: mockOptions, selectedOption: { label: '', value: '' }, onChange: () => { } }));
|
|
20
|
-
const combobox = screen.getByRole('combobox');
|
|
21
|
-
fireEvent.click(combobox);
|
|
22
|
-
const listbox = screen.getByRole('listbox');
|
|
23
|
-
expect(listbox).toBeInTheDocument();
|
|
24
|
-
});
|
|
25
|
-
it('handles keyboard navigation (Enter to open)', () => {
|
|
26
|
-
render(_jsx(Select, { label: "Test", optionsList: mockOptions, selectedOption: { label: '', value: '' }, onChange: () => { } }));
|
|
27
|
-
const combobox = screen.getByRole('combobox');
|
|
28
|
-
fireEvent.keyDown(combobox, { key: 'Enter', code: 'Enter' });
|
|
29
|
-
const listbox = screen.getByRole('listbox');
|
|
30
|
-
expect(listbox).toBeInTheDocument();
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=Select.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Select.test.js","sourceRoot":"","sources":["../../../../src/components/Select/__tests__/Select.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,WAAW,GAAG;QAClB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;QACpC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;KACrC,CAAC;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,YAAY,EAAC,WAAW,EAAC,YAAY,EAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,GAAI,CAAC,CAAC;QACvJ,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAElC,wCAAwC;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,MAAM,EAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,GAAI,CAAC,CAAC;QACxH,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE9C,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,MAAM,EAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,GAAI,CAAC,CAAC;QACxH,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE9C,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import { describe, it, expect } from 'vitest';
|
|
4
|
-
import Table from '../Table';
|
|
5
|
-
describe('Table Component', () => {
|
|
6
|
-
const columns = [
|
|
7
|
-
{ key: 'id', title: 'ID' },
|
|
8
|
-
{ key: 'name', title: 'Name' },
|
|
9
|
-
];
|
|
10
|
-
const data = [
|
|
11
|
-
{ id: 1, name: 'Alice' },
|
|
12
|
-
{ id: 2, name: 'Bob' },
|
|
13
|
-
];
|
|
14
|
-
it('renders table headers and rows', () => {
|
|
15
|
-
render(_jsx(Table, { columns: columns, data: data, headerType: "default" }));
|
|
16
|
-
const table = screen.getByRole('grid');
|
|
17
|
-
expect(table).toBeInTheDocument();
|
|
18
|
-
const headers = screen.getAllByRole('columnheader');
|
|
19
|
-
expect(headers.length).toBeGreaterThan(0);
|
|
20
|
-
expect(headers[0]).toHaveTextContent('ID');
|
|
21
|
-
const rows = screen.getAllByRole('row');
|
|
22
|
-
// headers row + 2 data rows
|
|
23
|
-
expect(rows.length).toBe(3);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
//# sourceMappingURL=Table.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Table.test.js","sourceRoot":"","sources":["../../../../src/components/Table/__tests__/Table.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,OAAO,GAAG;QACd,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;QAC1B,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;KAC/B,CAAC;IACF,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;QACxB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;KACvB,CAAC;IAEF,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAC,SAAS,GAAG,CAAC,CAAC;QAErE,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,4BAA4B;QAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import { describe, it, expect } from 'vitest';
|
|
4
|
-
import TableTreeFn from '../TableTreeFn';
|
|
5
|
-
describe('TableTreeFn Component', () => {
|
|
6
|
-
const columns = [{ id: 'col1', title: 'Column 1', key: 'col1', width: '200', name: 'col1', accessor: 'col1' }];
|
|
7
|
-
const data = [
|
|
8
|
-
{ key: 'node-1', col1: 'Row 1' },
|
|
9
|
-
{ key: 'node-2', col1: 'Row 2' }
|
|
10
|
-
];
|
|
11
|
-
it('renders treegrid with correct accessibility roles', () => {
|
|
12
|
-
render(_jsx(TableTreeFn, { columnsData: columns, treeData: data, "aria-label": "Tree table" }));
|
|
13
|
-
const treegrid = screen.getByRole('treegrid');
|
|
14
|
-
expect(treegrid).toBeInTheDocument();
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
//# sourceMappingURL=TableTreeFn.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableTreeFn.test.js","sourceRoot":"","sources":["../../../../src/components/TableTreeFn/__tests__/TableTreeFn.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/G,MAAM,IAAI,GAAG;QACX,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;QAChC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;KACjC,CAAC;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CACJ,KAAC,WAAW,IACV,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,IAAW,gBACV,YAAY,GACvB,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|