@pie-lib/graphing-solution-set 4.1.0-beta.7 → 4.1.0-beta.8

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 (67) hide show
  1. package/package.json +3 -3
  2. package/lib/__tests__/bg.test.js +0 -282
  3. package/lib/__tests__/bg.test.js.map +0 -1
  4. package/lib/__tests__/coordinates-label.test.js +0 -276
  5. package/lib/__tests__/coordinates-label.test.js.map +0 -1
  6. package/lib/__tests__/graph-with-controls.test.js +0 -256
  7. package/lib/__tests__/graph-with-controls.test.js.map +0 -1
  8. package/lib/__tests__/graph.test.js +0 -113
  9. package/lib/__tests__/graph.test.js.map +0 -1
  10. package/lib/__tests__/grid-setup.test.js +0 -729
  11. package/lib/__tests__/grid-setup.test.js.map +0 -1
  12. package/lib/__tests__/grid.test.js +0 -29
  13. package/lib/__tests__/grid.test.js.map +0 -1
  14. package/lib/__tests__/labels.test.js +0 -45
  15. package/lib/__tests__/labels.test.js.map +0 -1
  16. package/lib/__tests__/mark-label.test.js +0 -133
  17. package/lib/__tests__/mark-label.test.js.map +0 -1
  18. package/lib/__tests__/toggle-bar.test.js +0 -146
  19. package/lib/__tests__/toggle-bar.test.js.map +0 -1
  20. package/lib/__tests__/tool-menu.test.js +0 -540
  21. package/lib/__tests__/tool-menu.test.js.map +0 -1
  22. package/lib/__tests__/undo-redo.test.js +0 -31
  23. package/lib/__tests__/undo-redo.test.js.map +0 -1
  24. package/lib/__tests__/use-debounce.test.js +0 -24
  25. package/lib/__tests__/use-debounce.test.js.map +0 -1
  26. package/lib/__tests__/utils.js +0 -70
  27. package/lib/__tests__/utils.js.map +0 -1
  28. package/lib/__tests__/utils.test.js +0 -123
  29. package/lib/__tests__/utils.test.js.map +0 -1
  30. package/lib/axis/__tests__/arrow.test.js +0 -60
  31. package/lib/axis/__tests__/arrow.test.js.map +0 -1
  32. package/lib/axis/__tests__/axes.test.js +0 -160
  33. package/lib/axis/__tests__/axes.test.js.map +0 -1
  34. package/lib/container/__tests__/actions.test.js +0 -108
  35. package/lib/container/__tests__/actions.test.js.map +0 -1
  36. package/lib/container/__tests__/index.test.js +0 -346
  37. package/lib/container/__tests__/index.test.js.map +0 -1
  38. package/lib/container/__tests__/marks.test.js +0 -259
  39. package/lib/container/__tests__/marks.test.js.map +0 -1
  40. package/lib/container/__tests__/middleware.test.js +0 -244
  41. package/lib/container/__tests__/middleware.test.js.map +0 -1
  42. package/lib/container/__tests__/reducer.test.js +0 -450
  43. package/lib/container/__tests__/reducer.test.js.map +0 -1
  44. package/lib/tools/line/__tests__/component.test.js +0 -45
  45. package/lib/tools/line/__tests__/component.test.js.map +0 -1
  46. package/lib/tools/polygon/__tests__/component.test.js +0 -501
  47. package/lib/tools/polygon/__tests__/component.test.js.map +0 -1
  48. package/lib/tools/polygon/__tests__/index.test.js +0 -92
  49. package/lib/tools/polygon/__tests__/index.test.js.map +0 -1
  50. package/lib/tools/polygon/__tests__/line.test.js +0 -30
  51. package/lib/tools/polygon/__tests__/line.test.js.map +0 -1
  52. package/lib/tools/polygon/__tests__/polygon.test.js +0 -61
  53. package/lib/tools/polygon/__tests__/polygon.test.js.map +0 -1
  54. package/lib/tools/shared/__tests__/arrow-head.test.js +0 -45
  55. package/lib/tools/shared/__tests__/arrow-head.test.js.map +0 -1
  56. package/lib/tools/shared/line/__tests__/index.test.js +0 -725
  57. package/lib/tools/shared/line/__tests__/index.test.js.map +0 -1
  58. package/lib/tools/shared/line/__tests__/line-path.test.js +0 -64
  59. package/lib/tools/shared/line/__tests__/line-path.test.js.map +0 -1
  60. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -618
  61. package/lib/tools/shared/line/__tests__/with-root-edge.test.js.map +0 -1
  62. package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -127
  63. package/lib/tools/shared/point/__tests__/arrow-point.test.js.map +0 -1
  64. package/lib/tools/shared/point/__tests__/arrow.test.js +0 -619
  65. package/lib/tools/shared/point/__tests__/arrow.test.js.map +0 -1
  66. package/lib/tools/shared/point/__tests__/base-point.test.js +0 -122
  67. package/lib/tools/shared/point/__tests__/base-point.test.js.map +0 -1
@@ -1,540 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
5
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
- var _testUtils = require("@pie-lib/test-utils");
7
- var _react = _interopRequireDefault(require("react"));
8
- var _toolMenu = _interopRequireDefault(require("../tool-menu"));
9
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
- describe('ToolMenu', function () {
12
- var onChange;
13
- var tools = ['one', 'two'];
14
- beforeEach(function () {
15
- onChange = jest.fn();
16
- });
17
- var renderComponent = function renderComponent(extras) {
18
- var defaults = {
19
- classes: {},
20
- className: 'className',
21
- onChange: onChange,
22
- currentTool: tools[0],
23
- tools: tools,
24
- gssLineData: {
25
- selectedTool: 'lineA',
26
- numberOfLines: 2,
27
- lineA: {
28
- lineType: 'Solid'
29
- },
30
- lineB: {
31
- lineType: 'Solid'
32
- }
33
- }
34
- };
35
- var props = _objectSpread(_objectSpread({}, defaults), extras);
36
- return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_toolMenu["default"], props));
37
- };
38
- describe('rendering', function () {
39
- it('renders without crashing', function () {
40
- var _renderComponent = renderComponent(),
41
- container = _renderComponent.container;
42
- expect(container.firstChild).toBeInTheDocument();
43
- });
44
- it('renders Line A radio button', function () {
45
- var _renderComponent2 = renderComponent(),
46
- getByText = _renderComponent2.getByText;
47
- expect(getByText('Line A')).toBeInTheDocument();
48
- });
49
- it('renders Line B radio button when numberOfLines is 2', function () {
50
- var _renderComponent3 = renderComponent(),
51
- getByText = _renderComponent3.getByText;
52
- expect(getByText('Line B')).toBeInTheDocument();
53
- });
54
- it('does not render Line B radio button when numberOfLines is 1', function () {
55
- var _renderComponent4 = renderComponent({
56
- gssLineData: {
57
- selectedTool: 'lineA',
58
- numberOfLines: 1,
59
- lineA: {
60
- lineType: 'Solid'
61
- },
62
- lineB: {
63
- lineType: 'Solid'
64
- }
65
- }
66
- }),
67
- queryByText = _renderComponent4.queryByText;
68
- expect(queryByText('Line B')).not.toBeInTheDocument();
69
- });
70
- it('renders Solution Set radio button', function () {
71
- var _renderComponent5 = renderComponent(),
72
- getByText = _renderComponent5.getByText;
73
- expect(getByText('Solution Set')).toBeInTheDocument();
74
- });
75
- it('renders Solid and Dashed buttons for Line A', function () {
76
- var _renderComponent6 = renderComponent(),
77
- getAllByText = _renderComponent6.getAllByText;
78
- var solidButtons = getAllByText(/Solid/);
79
- var dashedButtons = getAllByText(/Dashed/);
80
- expect(solidButtons.length).toBeGreaterThan(0);
81
- expect(dashedButtons.length).toBeGreaterThan(0);
82
- });
83
- it('shows checkmark on selected line type for Line A', function () {
84
- var _renderComponent7 = renderComponent({
85
- gssLineData: {
86
- selectedTool: 'lineA',
87
- numberOfLines: 2,
88
- lineA: {
89
- lineType: 'Solid'
90
- },
91
- lineB: {
92
- lineType: 'Dashed'
93
- }
94
- }
95
- }),
96
- getAllByText = _renderComponent7.getAllByText;
97
- var solidButtons = getAllByText(/✔ Solid/);
98
- expect(solidButtons.length).toBeGreaterThan(0);
99
- });
100
- it('disables all controls when disabled prop is true', function () {
101
- var _renderComponent8 = renderComponent({
102
- disabled: true
103
- }),
104
- getAllByRole = _renderComponent8.getAllByRole;
105
- var radios = getAllByRole('radio');
106
- var buttons = getAllByRole('button');
107
- radios.forEach(function (radio) {
108
- expect(radio).toBeDisabled();
109
- });
110
- buttons.forEach(function (button) {
111
- expect(button).toBeDisabled();
112
- });
113
- });
114
- });
115
- describe('onChangeRadioValue', function () {
116
- it('calls onChange with updated selectedTool when lineA radio is clicked', function () {
117
- var _renderComponent9 = renderComponent({
118
- gssLineData: {
119
- selectedTool: 'solutionSet',
120
- numberOfLines: 2,
121
- lineA: {
122
- lineType: 'Solid'
123
- },
124
- lineB: {
125
- lineType: 'Solid'
126
- }
127
- }
128
- }),
129
- getAllByRole = _renderComponent9.getAllByRole;
130
- var radios = getAllByRole('radio');
131
- var lineARadio = radios.find(function (r) {
132
- return r.value === 'lineA';
133
- });
134
- _testUtils.fireEvent.click(lineARadio);
135
- expect(onChange).toHaveBeenCalledTimes(1);
136
- var _onChange$mock$calls$ = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
137
- updatedData = _onChange$mock$calls$[0],
138
- oldSelectedTool = _onChange$mock$calls$[1];
139
- expect(updatedData.selectedTool).toBe('lineA');
140
- expect(oldSelectedTool).toBe('solutionSet');
141
- });
142
- it('calls onChange with updated selectedTool when lineB radio is clicked', function () {
143
- var _renderComponent0 = renderComponent({
144
- gssLineData: {
145
- selectedTool: 'lineA',
146
- numberOfLines: 2,
147
- lineA: {
148
- lineType: 'Solid'
149
- },
150
- lineB: {
151
- lineType: 'Solid'
152
- }
153
- }
154
- }),
155
- getAllByRole = _renderComponent0.getAllByRole;
156
- var radios = getAllByRole('radio');
157
- var lineBRadio = radios.find(function (r) {
158
- return r.value === 'lineB';
159
- });
160
- _testUtils.fireEvent.click(lineBRadio);
161
- expect(onChange).toHaveBeenCalledTimes(1);
162
- var _onChange$mock$calls$2 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
163
- updatedData = _onChange$mock$calls$2[0],
164
- oldSelectedTool = _onChange$mock$calls$2[1];
165
- expect(updatedData.selectedTool).toBe('lineB');
166
- expect(oldSelectedTool).toBe('lineA');
167
- });
168
- it('calls onChange with updated selectedTool when solutionSet radio is clicked', function () {
169
- var _renderComponent1 = renderComponent({
170
- gssLineData: {
171
- selectedTool: 'lineA',
172
- numberOfLines: 2,
173
- lineA: {
174
- lineType: 'Solid'
175
- },
176
- lineB: {
177
- lineType: 'Solid'
178
- }
179
- }
180
- }),
181
- getAllByRole = _renderComponent1.getAllByRole;
182
- var radios = getAllByRole('radio');
183
- var solutionSetRadio = radios.find(function (r) {
184
- return r.value === 'solutionSet';
185
- });
186
- _testUtils.fireEvent.click(solutionSetRadio);
187
- expect(onChange).toHaveBeenCalledTimes(1);
188
- var _onChange$mock$calls$3 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
189
- updatedData = _onChange$mock$calls$3[0],
190
- oldSelectedTool = _onChange$mock$calls$3[1];
191
- expect(updatedData.selectedTool).toBe('solutionSet');
192
- expect(oldSelectedTool).toBe('lineA');
193
- });
194
- it('preserves other gssLineData properties when changing selectedTool', function () {
195
- var _renderComponent10 = renderComponent({
196
- gssLineData: {
197
- selectedTool: 'lineA',
198
- numberOfLines: 2,
199
- lineA: {
200
- lineType: 'Dashed'
201
- },
202
- lineB: {
203
- lineType: 'Solid'
204
- }
205
- }
206
- }),
207
- getAllByRole = _renderComponent10.getAllByRole;
208
- var radios = getAllByRole('radio');
209
- var lineBRadio = radios.find(function (r) {
210
- return r.value === 'lineB';
211
- });
212
- _testUtils.fireEvent.click(lineBRadio);
213
- var _onChange$mock$calls$4 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
214
- updatedData = _onChange$mock$calls$4[0];
215
- expect(updatedData.lineA.lineType).toBe('Dashed');
216
- expect(updatedData.lineB.lineType).toBe('Solid');
217
- expect(updatedData.numberOfLines).toBe(2);
218
- });
219
- it('does not call onChange when disabled', function () {
220
- var _renderComponent11 = renderComponent({
221
- disabled: true,
222
- gssLineData: {
223
- selectedTool: 'lineA',
224
- numberOfLines: 2,
225
- lineA: {
226
- lineType: 'Solid'
227
- },
228
- lineB: {
229
- lineType: 'Solid'
230
- }
231
- }
232
- }),
233
- getAllByRole = _renderComponent11.getAllByRole;
234
- var radios = getAllByRole('radio');
235
- var lineBRadio = radios.find(function (r) {
236
- return r.value === 'lineB';
237
- });
238
-
239
- // Disabled radios should not fire change events
240
- expect(lineBRadio).toBeDisabled();
241
- });
242
- });
243
- describe('lineTypeChange', function () {
244
- it('calls onChange with updated lineType for Line A when Solid button is clicked', function () {
245
- var _renderComponent12 = renderComponent({
246
- gssLineData: {
247
- selectedTool: 'lineA',
248
- numberOfLines: 2,
249
- lineA: {
250
- lineType: 'Dashed'
251
- },
252
- lineB: {
253
- lineType: 'Solid'
254
- }
255
- }
256
- }),
257
- getAllByText = _renderComponent12.getAllByText;
258
- var solidButtons = getAllByText(/Solid/);
259
- // First solid button should be for Line A
260
- _testUtils.fireEvent.click(solidButtons[0]);
261
- expect(onChange).toHaveBeenCalledTimes(1);
262
- var _onChange$mock$calls$5 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
263
- updatedData = _onChange$mock$calls$5[0],
264
- oldSelectedTool = _onChange$mock$calls$5[1];
265
- expect(updatedData.lineA.lineType).toBe('Solid');
266
- expect(oldSelectedTool).toBe('lineA');
267
- });
268
- it('calls onChange with updated lineType for Line A when Dashed button is clicked', function () {
269
- var _renderComponent13 = renderComponent({
270
- gssLineData: {
271
- selectedTool: 'lineA',
272
- numberOfLines: 2,
273
- lineA: {
274
- lineType: 'Solid'
275
- },
276
- lineB: {
277
- lineType: 'Solid'
278
- }
279
- }
280
- }),
281
- getAllByText = _renderComponent13.getAllByText;
282
- var dashedButtons = getAllByText(/Dashed/);
283
- // First dashed button should be for Line A
284
- _testUtils.fireEvent.click(dashedButtons[0]);
285
- expect(onChange).toHaveBeenCalledTimes(1);
286
- var _onChange$mock$calls$6 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
287
- updatedData = _onChange$mock$calls$6[0],
288
- oldSelectedTool = _onChange$mock$calls$6[1];
289
- expect(updatedData.lineA.lineType).toBe('Dashed');
290
- expect(oldSelectedTool).toBe('lineA');
291
- });
292
- it('calls onChange with updated lineType for Line B when Solid button is clicked', function () {
293
- var _renderComponent14 = renderComponent({
294
- gssLineData: {
295
- selectedTool: 'lineB',
296
- numberOfLines: 2,
297
- lineA: {
298
- lineType: 'Solid'
299
- },
300
- lineB: {
301
- lineType: 'Dashed'
302
- }
303
- }
304
- }),
305
- getAllByText = _renderComponent14.getAllByText;
306
- var solidButtons = getAllByText(/Solid/);
307
- // Second solid button should be for Line B
308
- _testUtils.fireEvent.click(solidButtons[1]);
309
- expect(onChange).toHaveBeenCalledTimes(1);
310
- var _onChange$mock$calls$7 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
311
- updatedData = _onChange$mock$calls$7[0],
312
- oldSelectedTool = _onChange$mock$calls$7[1];
313
- expect(updatedData.lineB.lineType).toBe('Solid');
314
- expect(oldSelectedTool).toBe('lineB');
315
- });
316
- it('calls onChange with updated lineType for Line B when Dashed button is clicked', function () {
317
- var _renderComponent15 = renderComponent({
318
- gssLineData: {
319
- selectedTool: 'lineB',
320
- numberOfLines: 2,
321
- lineA: {
322
- lineType: 'Solid'
323
- },
324
- lineB: {
325
- lineType: 'Solid'
326
- }
327
- }
328
- }),
329
- getAllByText = _renderComponent15.getAllByText;
330
- var dashedButtons = getAllByText(/Dashed/);
331
- // Second dashed button should be for Line B
332
- _testUtils.fireEvent.click(dashedButtons[1]);
333
- expect(onChange).toHaveBeenCalledTimes(1);
334
- var _onChange$mock$calls$8 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
335
- updatedData = _onChange$mock$calls$8[0],
336
- oldSelectedTool = _onChange$mock$calls$8[1];
337
- expect(updatedData.lineB.lineType).toBe('Dashed');
338
- expect(oldSelectedTool).toBe('lineB');
339
- });
340
- it('preserves other line properties when changing Line A lineType', function () {
341
- var _renderComponent16 = renderComponent({
342
- gssLineData: {
343
- selectedTool: 'lineA',
344
- numberOfLines: 2,
345
- lineA: {
346
- lineType: 'Solid'
347
- },
348
- lineB: {
349
- lineType: 'Dashed'
350
- }
351
- }
352
- }),
353
- getAllByText = _renderComponent16.getAllByText;
354
- var dashedButtons = getAllByText(/Dashed/);
355
- _testUtils.fireEvent.click(dashedButtons[0]);
356
- var _onChange$mock$calls$9 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
357
- updatedData = _onChange$mock$calls$9[0];
358
- expect(updatedData.lineA.lineType).toBe('Dashed');
359
- expect(updatedData.lineB.lineType).toBe('Dashed');
360
- expect(updatedData.selectedTool).toBe('lineA');
361
- expect(updatedData.numberOfLines).toBe(2);
362
- });
363
- it('preserves other line properties when changing Line B lineType', function () {
364
- var _renderComponent17 = renderComponent({
365
- gssLineData: {
366
- selectedTool: 'lineB',
367
- numberOfLines: 2,
368
- lineA: {
369
- lineType: 'Dashed'
370
- },
371
- lineB: {
372
- lineType: 'Solid'
373
- }
374
- }
375
- }),
376
- getAllByText = _renderComponent17.getAllByText;
377
- var dashedButtons = getAllByText(/Dashed/);
378
- _testUtils.fireEvent.click(dashedButtons[1]);
379
- var _onChange$mock$calls$0 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
380
- updatedData = _onChange$mock$calls$0[0];
381
- expect(updatedData.lineA.lineType).toBe('Dashed');
382
- expect(updatedData.lineB.lineType).toBe('Dashed');
383
- expect(updatedData.selectedTool).toBe('lineB');
384
- expect(updatedData.numberOfLines).toBe(2);
385
- });
386
- it('handles multiple line type changes correctly', function () {
387
- var _renderComponent18 = renderComponent({
388
- gssLineData: {
389
- selectedTool: 'lineA',
390
- numberOfLines: 2,
391
- lineA: {
392
- lineType: 'Solid'
393
- },
394
- lineB: {
395
- lineType: 'Solid'
396
- }
397
- }
398
- }),
399
- getAllByText = _renderComponent18.getAllByText;
400
-
401
- // Change Line A to Dashed
402
- var dashedButtons = getAllByText(/Dashed/);
403
- _testUtils.fireEvent.click(dashedButtons[0]);
404
- expect(onChange).toHaveBeenCalledTimes(1);
405
- var _onChange$mock$calls$1 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
406
- updatedData = _onChange$mock$calls$1[0];
407
- expect(updatedData.lineA.lineType).toBe('Dashed');
408
-
409
- // Change Line B to Dashed
410
- dashedButtons = getAllByText(/Dashed/);
411
- _testUtils.fireEvent.click(dashedButtons[1]);
412
- expect(onChange).toHaveBeenCalledTimes(2);
413
- var _onChange$mock$calls$10 = (0, _slicedToArray2["default"])(onChange.mock.calls[1], 1);
414
- updatedData = _onChange$mock$calls$10[0];
415
- expect(updatedData.lineB.lineType).toBe('Dashed');
416
- });
417
- it('does not call onChange when line type button is disabled', function () {
418
- var _renderComponent19 = renderComponent({
419
- disabled: true,
420
- gssLineData: {
421
- selectedTool: 'lineA',
422
- numberOfLines: 2,
423
- lineA: {
424
- lineType: 'Solid'
425
- },
426
- lineB: {
427
- lineType: 'Solid'
428
- }
429
- }
430
- }),
431
- getAllByRole = _renderComponent19.getAllByRole;
432
- var buttons = getAllByRole('button');
433
- buttons.forEach(function (button) {
434
- expect(button).toBeDisabled();
435
- });
436
- });
437
- it('maintains correct state when clicking same line type that is already selected', function () {
438
- var _renderComponent20 = renderComponent({
439
- gssLineData: {
440
- selectedTool: 'lineA',
441
- numberOfLines: 2,
442
- lineA: {
443
- lineType: 'Solid'
444
- },
445
- lineB: {
446
- lineType: 'Solid'
447
- }
448
- }
449
- }),
450
- getAllByText = _renderComponent20.getAllByText;
451
- var solidButtons = getAllByText(/Solid/);
452
- _testUtils.fireEvent.click(solidButtons[0]); // Click Solid when already Solid
453
-
454
- expect(onChange).toHaveBeenCalledTimes(1);
455
- var _onChange$mock$calls$11 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
456
- updatedData = _onChange$mock$calls$11[0];
457
- expect(updatedData.lineA.lineType).toBe('Solid');
458
- });
459
- });
460
- describe('integration tests', function () {
461
- it('allows switching selected tool and changing line type in sequence', function () {
462
- var _renderComponent21 = renderComponent({
463
- gssLineData: {
464
- selectedTool: 'lineA',
465
- numberOfLines: 2,
466
- lineA: {
467
- lineType: 'Solid'
468
- },
469
- lineB: {
470
- lineType: 'Solid'
471
- }
472
- }
473
- }),
474
- getAllByRole = _renderComponent21.getAllByRole,
475
- getAllByText = _renderComponent21.getAllByText;
476
-
477
- // Switch to Line B
478
- var radios = getAllByRole('radio');
479
- var lineBRadio = radios.find(function (r) {
480
- return r.value === 'lineB';
481
- });
482
- _testUtils.fireEvent.click(lineBRadio);
483
- expect(onChange).toHaveBeenCalledTimes(1);
484
- var _onChange$mock$calls$12 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
485
- updatedData = _onChange$mock$calls$12[0];
486
- expect(updatedData.selectedTool).toBe('lineB');
487
-
488
- // Change Line B to Dashed
489
- var dashedButtons = getAllByText(/Dashed/);
490
- _testUtils.fireEvent.click(dashedButtons[1]);
491
- expect(onChange).toHaveBeenCalledTimes(2);
492
- var _onChange$mock$calls$13 = (0, _slicedToArray2["default"])(onChange.mock.calls[1], 1);
493
- updatedData = _onChange$mock$calls$13[0];
494
- expect(updatedData.lineB.lineType).toBe('Dashed');
495
- });
496
- it('handles complete workflow of switching between all tools and changing line types', function () {
497
- var _renderComponent22 = renderComponent({
498
- gssLineData: {
499
- selectedTool: 'lineA',
500
- numberOfLines: 2,
501
- lineA: {
502
- lineType: 'Solid'
503
- },
504
- lineB: {
505
- lineType: 'Solid'
506
- }
507
- }
508
- }),
509
- getAllByRole = _renderComponent22.getAllByRole,
510
- getAllByText = _renderComponent22.getAllByText;
511
-
512
- // Change Line A to Dashed
513
- var dashedButtons = getAllByText(/Dashed/);
514
- _testUtils.fireEvent.click(dashedButtons[0]);
515
- expect(onChange.mock.calls[0][0].lineA.lineType).toBe('Dashed');
516
-
517
- // Switch to Line B
518
- var radios = getAllByRole('radio');
519
- var lineBRadio = radios.find(function (r) {
520
- return r.value === 'lineB';
521
- });
522
- _testUtils.fireEvent.click(lineBRadio);
523
- expect(onChange.mock.calls[1][0].selectedTool).toBe('lineB');
524
-
525
- // Change Line B to Dashed
526
- dashedButtons = getAllByText(/Dashed/);
527
- _testUtils.fireEvent.click(dashedButtons[1]);
528
- expect(onChange.mock.calls[2][0].lineB.lineType).toBe('Dashed');
529
-
530
- // Switch to Solution Set
531
- var solutionSetRadio = radios.find(function (r) {
532
- return r.value === 'solutionSet';
533
- });
534
- _testUtils.fireEvent.click(solutionSetRadio);
535
- expect(onChange.mock.calls[3][0].selectedTool).toBe('solutionSet');
536
- expect(onChange).toHaveBeenCalledTimes(4);
537
- });
538
- });
539
- });
540
- //# sourceMappingURL=tool-menu.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-menu.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_toolMenu","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","onChange","tools","beforeEach","jest","fn","renderComponent","extras","defaults","classes","className","currentTool","gssLineData","selectedTool","numberOfLines","lineA","lineType","lineB","props","render","createElement","it","_renderComponent","container","expect","firstChild","toBeInTheDocument","_renderComponent2","getByText","_renderComponent3","_renderComponent4","queryByText","not","_renderComponent5","_renderComponent6","getAllByText","solidButtons","dashedButtons","toBeGreaterThan","_renderComponent7","_renderComponent8","disabled","getAllByRole","radios","buttons","radio","toBeDisabled","button","_renderComponent9","lineARadio","find","value","fireEvent","click","toHaveBeenCalledTimes","_onChange$mock$calls$","_slicedToArray2","mock","calls","updatedData","oldSelectedTool","toBe","_renderComponent0","lineBRadio","_onChange$mock$calls$2","_renderComponent1","solutionSetRadio","_onChange$mock$calls$3","_renderComponent10","_onChange$mock$calls$4","_renderComponent11","_renderComponent12","_onChange$mock$calls$5","_renderComponent13","_onChange$mock$calls$6","_renderComponent14","_onChange$mock$calls$7","_renderComponent15","_onChange$mock$calls$8","_renderComponent16","_onChange$mock$calls$9","_renderComponent17","_onChange$mock$calls$0","_renderComponent18","_onChange$mock$calls$1","_onChange$mock$calls$10","_renderComponent19","_renderComponent20","_onChange$mock$calls$11","_renderComponent21","_onChange$mock$calls$12","_onChange$mock$calls$13","_renderComponent22"],"sources":["../../src/__tests__/tool-menu.test.jsx"],"sourcesContent":["import { fireEvent, render } from '@pie-lib/test-utils';\nimport React from 'react';\n\nimport ToolMenu from '../tool-menu';\n\ndescribe('ToolMenu', () => {\n let onChange;\n const tools = ['one', 'two'];\n\n beforeEach(() => {\n onChange = jest.fn();\n });\n\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n onChange,\n currentTool: tools[0],\n tools,\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n };\n const props = { ...defaults, ...extras };\n return render(<ToolMenu {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders Line A radio button', () => {\n const { getByText } = renderComponent();\n expect(getByText('Line A')).toBeInTheDocument();\n });\n\n it('renders Line B radio button when numberOfLines is 2', () => {\n const { getByText } = renderComponent();\n expect(getByText('Line B')).toBeInTheDocument();\n });\n\n it('does not render Line B radio button when numberOfLines is 1', () => {\n const { queryByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 1,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n expect(queryByText('Line B')).not.toBeInTheDocument();\n });\n\n it('renders Solution Set radio button', () => {\n const { getByText } = renderComponent();\n expect(getByText('Solution Set')).toBeInTheDocument();\n });\n\n it('renders Solid and Dashed buttons for Line A', () => {\n const { getAllByText } = renderComponent();\n const solidButtons = getAllByText(/Solid/);\n const dashedButtons = getAllByText(/Dashed/);\n expect(solidButtons.length).toBeGreaterThan(0);\n expect(dashedButtons.length).toBeGreaterThan(0);\n });\n\n it('shows checkmark on selected line type for Line A', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Dashed' },\n },\n });\n const solidButtons = getAllByText(/✔ Solid/);\n expect(solidButtons.length).toBeGreaterThan(0);\n });\n\n it('disables all controls when disabled prop is true', () => {\n const { getAllByRole } = renderComponent({ disabled: true });\n const radios = getAllByRole('radio');\n const buttons = getAllByRole('button');\n\n radios.forEach((radio) => {\n expect(radio).toBeDisabled();\n });\n\n buttons.forEach((button) => {\n expect(button).toBeDisabled();\n });\n });\n });\n\n describe('onChangeRadioValue', () => {\n it('calls onChange with updated selectedTool when lineA radio is clicked', () => {\n const { getAllByRole } = renderComponent({\n gssLineData: {\n selectedTool: 'solutionSet',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const lineARadio = radios.find((r) => r.value === 'lineA');\n\n fireEvent.click(lineARadio);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.selectedTool).toBe('lineA');\n expect(oldSelectedTool).toBe('solutionSet');\n });\n\n it('calls onChange with updated selectedTool when lineB radio is clicked', () => {\n const { getAllByRole } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n\n fireEvent.click(lineBRadio);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.selectedTool).toBe('lineB');\n expect(oldSelectedTool).toBe('lineA');\n });\n\n it('calls onChange with updated selectedTool when solutionSet radio is clicked', () => {\n const { getAllByRole } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const solutionSetRadio = radios.find((r) => r.value === 'solutionSet');\n\n fireEvent.click(solutionSetRadio);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.selectedTool).toBe('solutionSet');\n expect(oldSelectedTool).toBe('lineA');\n });\n\n it('preserves other gssLineData properties when changing selectedTool', () => {\n const { getAllByRole } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Dashed' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n\n fireEvent.click(lineBRadio);\n\n const [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n expect(updatedData.lineB.lineType).toBe('Solid');\n expect(updatedData.numberOfLines).toBe(2);\n });\n\n it('does not call onChange when disabled', () => {\n const { getAllByRole } = renderComponent({\n disabled: true,\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n\n // Disabled radios should not fire change events\n expect(lineBRadio).toBeDisabled();\n });\n });\n\n describe('lineTypeChange', () => {\n it('calls onChange with updated lineType for Line A when Solid button is clicked', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Dashed' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const solidButtons = getAllByText(/Solid/);\n // First solid button should be for Line A\n fireEvent.click(solidButtons[0]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Solid');\n expect(oldSelectedTool).toBe('lineA');\n });\n\n it('calls onChange with updated lineType for Line A when Dashed button is clicked', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const dashedButtons = getAllByText(/Dashed/);\n // First dashed button should be for Line A\n fireEvent.click(dashedButtons[0]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n expect(oldSelectedTool).toBe('lineA');\n });\n\n it('calls onChange with updated lineType for Line B when Solid button is clicked', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineB',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Dashed' },\n },\n });\n\n const solidButtons = getAllByText(/Solid/);\n // Second solid button should be for Line B\n fireEvent.click(solidButtons[1]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.lineB.lineType).toBe('Solid');\n expect(oldSelectedTool).toBe('lineB');\n });\n\n it('calls onChange with updated lineType for Line B when Dashed button is clicked', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineB',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const dashedButtons = getAllByText(/Dashed/);\n // Second dashed button should be for Line B\n fireEvent.click(dashedButtons[1]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.lineB.lineType).toBe('Dashed');\n expect(oldSelectedTool).toBe('lineB');\n });\n\n it('preserves other line properties when changing Line A lineType', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Dashed' },\n },\n });\n\n const dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[0]);\n\n const [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n expect(updatedData.lineB.lineType).toBe('Dashed');\n expect(updatedData.selectedTool).toBe('lineA');\n expect(updatedData.numberOfLines).toBe(2);\n });\n\n it('preserves other line properties when changing Line B lineType', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineB',\n numberOfLines: 2,\n lineA: { lineType: 'Dashed' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[1]);\n\n const [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n expect(updatedData.lineB.lineType).toBe('Dashed');\n expect(updatedData.selectedTool).toBe('lineB');\n expect(updatedData.numberOfLines).toBe(2);\n });\n\n it('handles multiple line type changes correctly', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n // Change Line A to Dashed\n let dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[0]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n let [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n\n // Change Line B to Dashed\n dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[1]);\n\n expect(onChange).toHaveBeenCalledTimes(2);\n [updatedData] = onChange.mock.calls[1];\n expect(updatedData.lineB.lineType).toBe('Dashed');\n });\n\n it('does not call onChange when line type button is disabled', () => {\n const { getAllByRole } = renderComponent({\n disabled: true,\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const buttons = getAllByRole('button');\n\n buttons.forEach((button) => {\n expect(button).toBeDisabled();\n });\n });\n\n it('maintains correct state when clicking same line type that is already selected', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const solidButtons = getAllByText(/Solid/);\n fireEvent.click(solidButtons[0]); // Click Solid when already Solid\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Solid');\n });\n });\n\n describe('integration tests', () => {\n it('allows switching selected tool and changing line type in sequence', () => {\n const { getAllByRole, getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n // Switch to Line B\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n fireEvent.click(lineBRadio);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n let [updatedData] = onChange.mock.calls[0];\n expect(updatedData.selectedTool).toBe('lineB');\n\n // Change Line B to Dashed\n const dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[1]);\n\n expect(onChange).toHaveBeenCalledTimes(2);\n [updatedData] = onChange.mock.calls[1];\n expect(updatedData.lineB.lineType).toBe('Dashed');\n });\n\n it('handles complete workflow of switching between all tools and changing line types', () => {\n const { getAllByRole, getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n // Change Line A to Dashed\n let dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[0]);\n expect(onChange.mock.calls[0][0].lineA.lineType).toBe('Dashed');\n\n // Switch to Line B\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n fireEvent.click(lineBRadio);\n expect(onChange.mock.calls[1][0].selectedTool).toBe('lineB');\n\n // Change Line B to Dashed\n dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[1]);\n expect(onChange.mock.calls[2][0].lineB.lineType).toBe('Dashed');\n\n // Switch to Solution Set\n const solutionSetRadio = radios.find((r) => r.value === 'solutionSet');\n fireEvent.click(solutionSetRadio);\n expect(onChange.mock.calls[3][0].selectedTool).toBe('solutionSet');\n\n expect(onChange).toHaveBeenCalledTimes(4);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
- var _testUtils = require("@pie-lib/test-utils");
6
- var _react = _interopRequireDefault(require("react"));
7
- var _undoRedo = _interopRequireDefault(require("../undo-redo"));
8
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- describe('UndoRedo', function () {
11
- var onUndo = jest.fn();
12
- var onRedo = jest.fn();
13
- var onReset = jest.fn();
14
- var renderComponent = function renderComponent(extras) {
15
- var defaults = {
16
- onUndo: onUndo,
17
- onRedo: onRedo,
18
- onReset: onReset
19
- };
20
- var props = _objectSpread(_objectSpread({}, defaults), extras);
21
- return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_undoRedo["default"], props));
22
- };
23
- describe('rendering', function () {
24
- it('renders without crashing', function () {
25
- var _renderComponent = renderComponent(),
26
- container = _renderComponent.container;
27
- expect(container.firstChild).toBeInTheDocument();
28
- });
29
- });
30
- });
31
- //# sourceMappingURL=undo-redo.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"undo-redo.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_undoRedo","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","onUndo","jest","fn","onRedo","onReset","renderComponent","extras","defaults","props","render","createElement","it","_renderComponent","container","expect","firstChild","toBeInTheDocument"],"sources":["../../src/__tests__/undo-redo.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport UndoRedo from '../undo-redo';\n\ndescribe('UndoRedo', () => {\n let onUndo = jest.fn();\n let onRedo = jest.fn();\n let onReset = jest.fn();\n\n const renderComponent = (extras) => {\n const defaults = {\n onUndo,\n onRedo,\n onReset,\n };\n const props = { ...defaults, ...extras };\n return render(<UndoRedo {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":";;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,SAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAoC,SAAAI,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEpCoB,QAAQ,CAAC,UAAU,EAAE,YAAM;EACzB,IAAIC,MAAM,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACtB,IAAIC,MAAM,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EACtB,IAAIE,OAAO,GAAGH,IAAI,CAACC,EAAE,CAAC,CAAC;EAEvB,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAM,EAAK;IAClC,IAAMC,QAAQ,GAAG;MACfP,MAAM,EAANA,MAAM;MACNG,MAAM,EAANA,MAAM;MACNC,OAAO,EAAPA;IACF,CAAC;IACD,IAAMI,KAAK,GAAAjB,aAAA,CAAAA,aAAA,KAAQgB,QAAQ,GAAKD,MAAM,CAAE;IACxC,OAAO,IAAAG,iBAAM,eAAClC,MAAA,YAAAmC,aAAA,CAACjC,SAAA,WAAQ,EAAK+B,KAAQ,CAAC,CAAC;EACxC,CAAC;EAEDT,QAAQ,CAAC,WAAW,EAAE,YAAM;IAC1BY,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnC,IAAAC,gBAAA,GAAsBP,eAAe,CAAC,CAAC;QAA/BQ,SAAS,GAAAD,gBAAA,CAATC,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}