@pie-lib/graphing 3.2.0-next.2 → 3.2.0-next.5
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/CHANGELOG.md +21 -29
- package/LICENSE.md +5 -0
- package/lib/axis/arrow.js +1 -1
- package/lib/axis/axes.js +1 -1
- package/lib/axis/index.js +1 -1
- package/lib/bg.js +1 -1
- package/lib/container/actions.js +1 -1
- package/lib/container/index.js +1 -1
- package/lib/container/marks.js +1 -1
- package/lib/container/middleware.js +1 -1
- package/lib/container/reducer.js +1 -1
- package/lib/coordinates-label.js +1 -1
- package/lib/graph-with-controls.js +1 -1
- package/lib/graph.js +1 -1
- package/lib/grid-setup.js +1 -1
- package/lib/grid.js +1 -1
- package/lib/index.js +1 -1
- package/lib/key-legend.js +1 -1
- package/lib/label-svg-icon.js +1 -1
- package/lib/labels.js +1 -1
- package/lib/mark-label.js +1 -1
- package/lib/toggle-bar.js +1 -1
- package/lib/tool-menu.js +1 -1
- package/lib/tools/absolute/component.js +1 -1
- package/lib/tools/absolute/index.js +1 -1
- package/lib/tools/circle/bg-circle.js +1 -1
- package/lib/tools/circle/component.js +1 -1
- package/lib/tools/circle/index.js +1 -1
- package/lib/tools/exponential/component.js +1 -1
- package/lib/tools/exponential/index.js +1 -1
- package/lib/tools/index.js +1 -1
- package/lib/tools/line/component.js +1 -1
- package/lib/tools/line/index.js +1 -1
- package/lib/tools/parabola/component.js +1 -1
- package/lib/tools/parabola/index.js +1 -1
- package/lib/tools/point/component.js +1 -1
- package/lib/tools/point/index.js +1 -1
- package/lib/tools/polygon/component.js +1 -1
- package/lib/tools/polygon/index.js +1 -1
- package/lib/tools/polygon/line.js +1 -1
- package/lib/tools/polygon/polygon.js +1 -1
- package/lib/tools/ray/component.js +1 -1
- package/lib/tools/ray/index.js +1 -1
- package/lib/tools/segment/component.js +1 -1
- package/lib/tools/segment/index.js +1 -1
- package/lib/tools/shared/arrow-head.js +1 -1
- package/lib/tools/shared/icons/CorrectSVG.js +1 -1
- package/lib/tools/shared/icons/IncorrectSVG.js +1 -1
- package/lib/tools/shared/icons/MissingSVG.js +1 -1
- package/lib/tools/shared/line/index.js +1 -1
- package/lib/tools/shared/line/line-path.js +1 -1
- package/lib/tools/shared/line/with-root-edge.js +1 -1
- package/lib/tools/shared/point/arrow-point.js +1 -1
- package/lib/tools/shared/point/arrow.js +1 -1
- package/lib/tools/shared/point/base-point.js +1 -1
- package/lib/tools/shared/point/index.js +1 -1
- package/lib/tools/shared/styles.js +1 -1
- package/lib/tools/shared/types.js +1 -1
- package/lib/tools/sine/component.js +1 -1
- package/lib/tools/sine/index.js +1 -1
- package/lib/tools/vector/component.js +1 -1
- package/lib/tools/vector/index.js +1 -1
- package/lib/undo-redo.js +1 -1
- package/lib/use-debounce.js +1 -1
- package/lib/utils.js +1 -1
- package/package.json +4 -4
- package/lib/__tests__/bg.test.js +0 -282
- package/lib/__tests__/coordinates-label.test.js +0 -276
- package/lib/__tests__/graph-with-controls.test.js +0 -275
- package/lib/__tests__/graph.test.js +0 -927
- package/lib/__tests__/grid-setup.test.js +0 -729
- package/lib/__tests__/grid.test.js +0 -29
- package/lib/__tests__/key-legend.test.js +0 -321
- package/lib/__tests__/label-svg-icon.test.js +0 -373
- package/lib/__tests__/labels.test.js +0 -61
- package/lib/__tests__/mark-label.test.js +0 -133
- package/lib/__tests__/toggle-bar.test.js +0 -197
- package/lib/__tests__/tool-menu.test.js +0 -151
- package/lib/__tests__/undo-redo.test.js +0 -31
- package/lib/__tests__/use-debounce.test.js +0 -24
- package/lib/__tests__/utils.js +0 -70
- package/lib/__tests__/utils.test.js +0 -123
- package/lib/axis/__tests__/arrow.test.js +0 -60
- package/lib/axis/__tests__/axes.test.js +0 -195
- package/lib/container/__tests__/actions.test.js +0 -108
- package/lib/container/__tests__/index.test.js +0 -503
- package/lib/container/__tests__/marks.test.js +0 -259
- package/lib/container/__tests__/middleware.test.js +0 -244
- package/lib/container/__tests__/reducer.test.js +0 -450
- package/lib/tools/absolute/__tests__/component.test.js +0 -65
- package/lib/tools/circle/__tests__/bg-circle.test.js +0 -33
- package/lib/tools/circle/__tests__/component.test.js +0 -615
- package/lib/tools/circle/__tests__/index.test.js +0 -576
- package/lib/tools/exponential/__tests__/component.test.js +0 -64
- package/lib/tools/exponential/__tests__/index.test.js +0 -828
- package/lib/tools/line/__tests__/component.test.js +0 -45
- package/lib/tools/parabola/__tests__/component.test.js +0 -64
- package/lib/tools/parabola/__tests__/index.test.js +0 -564
- package/lib/tools/point/__tests__/component.test.js +0 -434
- package/lib/tools/point/__tests__/index.test.js +0 -262
- package/lib/tools/polygon/__tests__/component.test.js +0 -485
- package/lib/tools/polygon/__tests__/index.test.js +0 -303
- package/lib/tools/polygon/__tests__/line.test.js +0 -50
- package/lib/tools/polygon/__tests__/polygon.test.js +0 -85
- package/lib/tools/ray/__tests__/component.test.js +0 -35
- package/lib/tools/segment/__tests__/component.test.js +0 -35
- package/lib/tools/shared/__tests__/arrow-head.test.js +0 -45
- package/lib/tools/shared/line/__tests__/index.test.js +0 -124
- package/lib/tools/shared/line/__tests__/line-path.test.js +0 -62
- package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -90
- package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -127
- package/lib/tools/shared/point/__tests__/base-point.test.js +0 -122
- package/lib/tools/sine/__tests__/component.test.js +0 -72
- package/lib/tools/vector/__tests__/component.test.js +0 -32
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
5
|
-
var _index = require("../index");
|
|
6
|
-
var _component = _interopRequireDefault(require("../component"));
|
|
7
|
-
var xy = function xy(x, y) {
|
|
8
|
-
return {
|
|
9
|
-
x: x,
|
|
10
|
-
y: y
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Test suite for polygon tool
|
|
16
|
-
*
|
|
17
|
-
* Note: equalPoints() uses roundNumber() which rounds to 4 decimal places.
|
|
18
|
-
* - Values like 1.0001 and 1.0002 are considered DIFFERENT (round to 1.0001 and 1.0002)
|
|
19
|
-
* - Values like 1.00001 and 1.00002 are considered EQUAL (both round to 1.0000)
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
describe('polygon', function () {
|
|
23
|
-
describe('addPointToArray', function () {
|
|
24
|
-
var assertAddPoint = function assertAddPoint(point, arr, expected) {
|
|
25
|
-
it("returns expected result when adding point to array", function () {
|
|
26
|
-
var result = (0, _index.addPointToArray)(point, arr);
|
|
27
|
-
expect(result).toEqual(expected);
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
assertAddPoint(xy(0, 0), [], {
|
|
31
|
-
closed: false,
|
|
32
|
-
points: [xy(0, 0)]
|
|
33
|
-
});
|
|
34
|
-
assertAddPoint(xy(0, 0), [xy(0, 0)], {
|
|
35
|
-
closed: false,
|
|
36
|
-
points: [xy(0, 0)]
|
|
37
|
-
});
|
|
38
|
-
assertAddPoint(xy(1, 1), [xy(0, 0)], {
|
|
39
|
-
closed: false,
|
|
40
|
-
points: [xy(0, 0), xy(1, 1)]
|
|
41
|
-
});
|
|
42
|
-
it('handles undefined array', function () {
|
|
43
|
-
var result = (0, _index.addPointToArray)(xy(1, 2), undefined);
|
|
44
|
-
expect(result).toEqual({
|
|
45
|
-
points: [xy(1, 2)],
|
|
46
|
-
closed: false
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
it('handles null array', function () {
|
|
50
|
-
var result = (0, _index.addPointToArray)(xy(1, 2), null);
|
|
51
|
-
expect(result).toEqual({
|
|
52
|
-
points: [xy(1, 2)],
|
|
53
|
-
closed: false
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
it('closes polygon when clicking first point', function () {
|
|
57
|
-
var firstPoint = xy(1, 2);
|
|
58
|
-
var points = [firstPoint, xy(3, 4), xy(5, 6)];
|
|
59
|
-
var result = (0, _index.addPointToArray)(firstPoint, points);
|
|
60
|
-
expect(result).toEqual({
|
|
61
|
-
points: points,
|
|
62
|
-
closed: true
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
it('does not add duplicate point in middle', function () {
|
|
66
|
-
var points = [xy(1, 2), xy(3, 4), xy(5, 6)];
|
|
67
|
-
var result = (0, _index.addPointToArray)(points[1], points);
|
|
68
|
-
expect(result).toEqual({
|
|
69
|
-
points: points,
|
|
70
|
-
closed: false
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
it('adds new point to array with 2+ points', function () {
|
|
74
|
-
var points = [xy(0, 0), xy(1, 1)];
|
|
75
|
-
var newPoint = xy(2, 2);
|
|
76
|
-
var result = (0, _index.addPointToArray)(newPoint, points);
|
|
77
|
-
expect(result).toEqual({
|
|
78
|
-
points: [].concat(points, [newPoint]),
|
|
79
|
-
closed: false
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
it('handles points within rounding tolerance', function () {
|
|
83
|
-
// roundNumber rounds to 4 decimal places
|
|
84
|
-
// 1.0001 and 1.0002 round to different values after toFixed(4)
|
|
85
|
-
var firstPoint = xy(1.0001, 2.0001);
|
|
86
|
-
var closePoint = xy(1.0002, 2.0002);
|
|
87
|
-
var result = (0, _index.addPointToArray)(closePoint, [firstPoint]);
|
|
88
|
-
|
|
89
|
-
// Since they round to different values, both points are added
|
|
90
|
-
expect(result).toEqual({
|
|
91
|
-
points: [firstPoint, closePoint],
|
|
92
|
-
closed: false
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
it('handles points that round to exactly the same value', function () {
|
|
96
|
-
// Points that round to exactly the same value after toFixed(4)
|
|
97
|
-
var firstPoint = xy(1.0001, 2.0001);
|
|
98
|
-
var samePoint = xy(1.0001, 2.0001);
|
|
99
|
-
var result = (0, _index.addPointToArray)(samePoint, [firstPoint]);
|
|
100
|
-
|
|
101
|
-
// Since they round to the same value, point is not added
|
|
102
|
-
expect(result).toEqual({
|
|
103
|
-
points: [firstPoint],
|
|
104
|
-
closed: false
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
describe('tool', function () {
|
|
110
|
-
var t;
|
|
111
|
-
beforeEach(function () {
|
|
112
|
-
t = (0, _index.tool)();
|
|
113
|
-
});
|
|
114
|
-
describe('tool structure', function () {
|
|
115
|
-
it('creates polygon type', function () {
|
|
116
|
-
expect(t.type).toEqual('polygon');
|
|
117
|
-
});
|
|
118
|
-
it('has Component property', function () {
|
|
119
|
-
expect(t.Component).toBe(_component["default"]);
|
|
120
|
-
});
|
|
121
|
-
it('has complete method', function () {
|
|
122
|
-
expect((0, _typeof2["default"])(t.complete)).toBe('function');
|
|
123
|
-
});
|
|
124
|
-
it('has addPoint method', function () {
|
|
125
|
-
expect((0, _typeof2["default"])(t.addPoint)).toBe('function');
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
describe('complete', function () {
|
|
129
|
-
it('closes polygon', function () {
|
|
130
|
-
expect(t.complete()).toEqual({
|
|
131
|
-
building: false,
|
|
132
|
-
closed: true
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
it('marks polygon as not building', function () {
|
|
136
|
-
var mark = {
|
|
137
|
-
type: 'polygon',
|
|
138
|
-
points: [xy(1, 2), xy(3, 4)],
|
|
139
|
-
closed: false,
|
|
140
|
-
building: true
|
|
141
|
-
};
|
|
142
|
-
var result = t.complete(null, mark);
|
|
143
|
-
expect(result.building).toBe(false);
|
|
144
|
-
});
|
|
145
|
-
it('marks polygon as closed', function () {
|
|
146
|
-
var mark = {
|
|
147
|
-
type: 'polygon',
|
|
148
|
-
points: [xy(1, 2), xy(3, 4)],
|
|
149
|
-
closed: false,
|
|
150
|
-
building: true
|
|
151
|
-
};
|
|
152
|
-
var result = t.complete(null, mark);
|
|
153
|
-
expect(result.closed).toBe(true);
|
|
154
|
-
});
|
|
155
|
-
it('preserves other mark properties', function () {
|
|
156
|
-
var mark = {
|
|
157
|
-
type: 'polygon',
|
|
158
|
-
points: [xy(1, 2)],
|
|
159
|
-
closed: false,
|
|
160
|
-
building: true,
|
|
161
|
-
label: 'Test',
|
|
162
|
-
color: 'red'
|
|
163
|
-
};
|
|
164
|
-
var result = t.complete(null, mark);
|
|
165
|
-
expect(result.label).toBe('Test');
|
|
166
|
-
expect(result.color).toBe('red');
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
describe('addPoint', function () {
|
|
170
|
-
it('creates new polygon with first point', function () {
|
|
171
|
-
var mark = t.addPoint({
|
|
172
|
-
x: 0,
|
|
173
|
-
y: 0
|
|
174
|
-
});
|
|
175
|
-
expect(mark).toEqual({
|
|
176
|
-
type: 'polygon',
|
|
177
|
-
points: [{
|
|
178
|
-
x: 0,
|
|
179
|
-
y: 0
|
|
180
|
-
}],
|
|
181
|
-
closed: false,
|
|
182
|
-
building: true
|
|
183
|
-
});
|
|
184
|
-
});
|
|
185
|
-
it('adds second point to existing mark', function () {
|
|
186
|
-
var mark = t.addPoint({
|
|
187
|
-
x: 0,
|
|
188
|
-
y: 0
|
|
189
|
-
}, {
|
|
190
|
-
points: [{
|
|
191
|
-
x: 1,
|
|
192
|
-
y: 1
|
|
193
|
-
}]
|
|
194
|
-
});
|
|
195
|
-
expect(mark).toEqual({
|
|
196
|
-
building: true,
|
|
197
|
-
closed: false,
|
|
198
|
-
points: [{
|
|
199
|
-
x: 1,
|
|
200
|
-
y: 1
|
|
201
|
-
}, {
|
|
202
|
-
x: 0,
|
|
203
|
-
y: 0
|
|
204
|
-
}]
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
it('creates mark with building flag true', function () {
|
|
208
|
-
var mark = t.addPoint(xy(1, 2));
|
|
209
|
-
expect(mark.building).toBe(true);
|
|
210
|
-
});
|
|
211
|
-
it('creates mark with closed flag false', function () {
|
|
212
|
-
var mark = t.addPoint(xy(1, 2));
|
|
213
|
-
expect(mark.closed).toBe(false);
|
|
214
|
-
});
|
|
215
|
-
it('adds multiple points sequentially', function () {
|
|
216
|
-
var mark = t.addPoint(xy(0, 0));
|
|
217
|
-
mark = t.addPoint(xy(1, 1), mark);
|
|
218
|
-
mark = t.addPoint(xy(2, 2), mark);
|
|
219
|
-
expect(mark.points).toHaveLength(3);
|
|
220
|
-
expect(mark.points).toEqual([xy(0, 0), xy(1, 1), xy(2, 2)]);
|
|
221
|
-
});
|
|
222
|
-
it('closes polygon when clicking first point', function () {
|
|
223
|
-
var firstPoint = xy(1, 2);
|
|
224
|
-
var mark = t.addPoint(firstPoint);
|
|
225
|
-
mark = t.addPoint(xy(3, 4), mark);
|
|
226
|
-
mark = t.addPoint(xy(5, 6), mark);
|
|
227
|
-
mark = t.addPoint(firstPoint, mark);
|
|
228
|
-
expect(mark.closed).toBe(true);
|
|
229
|
-
expect(mark.building).toBe(false);
|
|
230
|
-
});
|
|
231
|
-
it('does not add duplicate points', function () {
|
|
232
|
-
var point = xy(1, 2);
|
|
233
|
-
var mark = t.addPoint(point);
|
|
234
|
-
mark = t.addPoint(xy(3, 4), mark);
|
|
235
|
-
// Adding the first point again would close it
|
|
236
|
-
// Let's add it one more time after closing to test duplicate handling
|
|
237
|
-
mark = t.addPoint(point, mark);
|
|
238
|
-
|
|
239
|
-
// When we add the first point to a polygon with 2+ points, it closes
|
|
240
|
-
expect(mark.points).toHaveLength(2);
|
|
241
|
-
expect(mark.closed).toBe(true);
|
|
242
|
-
expect(mark.building).toBe(false);
|
|
243
|
-
});
|
|
244
|
-
it('does not add duplicate non-first points', function () {
|
|
245
|
-
var firstPoint = xy(1, 2);
|
|
246
|
-
var secondPoint = xy(3, 4);
|
|
247
|
-
var mark = t.addPoint(firstPoint);
|
|
248
|
-
mark = t.addPoint(secondPoint, mark);
|
|
249
|
-
mark = t.addPoint(xy(5, 6), mark);
|
|
250
|
-
// Try to add the second point again (not the first point)
|
|
251
|
-
mark = t.addPoint(secondPoint, mark);
|
|
252
|
-
|
|
253
|
-
// Should not add the duplicate point
|
|
254
|
-
expect(mark.points).toHaveLength(3);
|
|
255
|
-
expect(mark.points).toEqual([firstPoint, secondPoint, xy(5, 6)]);
|
|
256
|
-
expect(mark.closed).toBe(false);
|
|
257
|
-
});
|
|
258
|
-
it('preserves mark properties when adding points', function () {
|
|
259
|
-
var mark = {
|
|
260
|
-
type: 'polygon',
|
|
261
|
-
points: [xy(1, 2)],
|
|
262
|
-
closed: false,
|
|
263
|
-
building: true,
|
|
264
|
-
label: 'My Shape'
|
|
265
|
-
};
|
|
266
|
-
var result = t.addPoint(xy(3, 4), mark);
|
|
267
|
-
expect(result.label).toBe('My Shape');
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
describe('integration scenarios', function () {
|
|
271
|
-
it('creates complete triangle', function () {
|
|
272
|
-
var p1 = xy(0, 0);
|
|
273
|
-
var p2 = xy(1, 0);
|
|
274
|
-
var p3 = xy(0.5, 1);
|
|
275
|
-
var mark = t.addPoint(p1);
|
|
276
|
-
mark = t.addPoint(p2, mark);
|
|
277
|
-
mark = t.addPoint(p3, mark);
|
|
278
|
-
mark = t.addPoint(p1, mark);
|
|
279
|
-
expect(mark.points).toEqual([p1, p2, p3]);
|
|
280
|
-
expect(mark.closed).toBe(true);
|
|
281
|
-
expect(mark.building).toBe(false);
|
|
282
|
-
});
|
|
283
|
-
it('creates complete square', function () {
|
|
284
|
-
var points = [xy(0, 0), xy(1, 0), xy(1, 1), xy(0, 1)];
|
|
285
|
-
var mark = t.addPoint(points[0]);
|
|
286
|
-
points.slice(1).forEach(function (p) {
|
|
287
|
-
mark = t.addPoint(p, mark);
|
|
288
|
-
});
|
|
289
|
-
mark = t.addPoint(points[0], mark);
|
|
290
|
-
expect(mark.points).toEqual(points);
|
|
291
|
-
expect(mark.closed).toBe(true);
|
|
292
|
-
});
|
|
293
|
-
it('can force complete without closing', function () {
|
|
294
|
-
var mark = t.addPoint(xy(0, 0));
|
|
295
|
-
mark = t.addPoint(xy(1, 1), mark);
|
|
296
|
-
mark = t.complete(null, mark);
|
|
297
|
-
expect(mark.closed).toBe(true);
|
|
298
|
-
expect(mark.building).toBe(false);
|
|
299
|
-
expect(mark.points).toHaveLength(2);
|
|
300
|
-
});
|
|
301
|
-
});
|
|
302
|
-
});
|
|
303
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJyZXF1aXJlIiwiX2NvbXBvbmVudCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJ4eSIsIngiLCJ5IiwiZGVzY3JpYmUiLCJhc3NlcnRBZGRQb2ludCIsInBvaW50IiwiYXJyIiwiZXhwZWN0ZWQiLCJpdCIsInJlc3VsdCIsImFkZFBvaW50VG9BcnJheSIsImV4cGVjdCIsInRvRXF1YWwiLCJjbG9zZWQiLCJwb2ludHMiLCJ1bmRlZmluZWQiLCJmaXJzdFBvaW50IiwibmV3UG9pbnQiLCJjb25jYXQiLCJjbG9zZVBvaW50Iiwic2FtZVBvaW50IiwidCIsImJlZm9yZUVhY2giLCJ0b29sIiwidHlwZSIsIkNvbXBvbmVudCIsInRvQmUiLCJQb2x5Z29uIiwiX3R5cGVvZjIiLCJjb21wbGV0ZSIsImFkZFBvaW50IiwiYnVpbGRpbmciLCJtYXJrIiwibGFiZWwiLCJjb2xvciIsInRvSGF2ZUxlbmd0aCIsInNlY29uZFBvaW50IiwicDEiLCJwMiIsInAzIiwic2xpY2UiLCJmb3JFYWNoIiwicCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL19fdGVzdHNfXy9pbmRleC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBvaW50VG9BcnJheSwgdG9vbCB9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCBQb2x5Z29uIGZyb20gJy4uL2NvbXBvbmVudCc7XG5cbmNvbnN0IHh5ID0gKHgsIHkpID0+ICh7IHgsIHkgfSk7XG5cbi8qKlxuICogVGVzdCBzdWl0ZSBmb3IgcG9seWdvbiB0b29sXG4gKlxuICogTm90ZTogZXF1YWxQb2ludHMoKSB1c2VzIHJvdW5kTnVtYmVyKCkgd2hpY2ggcm91bmRzIHRvIDQgZGVjaW1hbCBwbGFjZXMuXG4gKiAtIFZhbHVlcyBsaWtlIDEuMDAwMSBhbmQgMS4wMDAyIGFyZSBjb25zaWRlcmVkIERJRkZFUkVOVCAocm91bmQgdG8gMS4wMDAxIGFuZCAxLjAwMDIpXG4gKiAtIFZhbHVlcyBsaWtlIDEuMDAwMDEgYW5kIDEuMDAwMDIgYXJlIGNvbnNpZGVyZWQgRVFVQUwgKGJvdGggcm91bmQgdG8gMS4wMDAwKVxuICovXG5cbmRlc2NyaWJlKCdwb2x5Z29uJywgKCkgPT4ge1xuICBkZXNjcmliZSgnYWRkUG9pbnRUb0FycmF5JywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydEFkZFBvaW50ID0gKHBvaW50LCBhcnIsIGV4cGVjdGVkKSA9PiB7XG4gICAgICBpdChgcmV0dXJucyBleHBlY3RlZCByZXN1bHQgd2hlbiBhZGRpbmcgcG9pbnQgdG8gYXJyYXlgLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGFkZFBvaW50VG9BcnJheShwb2ludCwgYXJyKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgYXNzZXJ0QWRkUG9pbnQoeHkoMCwgMCksIFtdLCB7IGNsb3NlZDogZmFsc2UsIHBvaW50czogW3h5KDAsIDApXSB9KTtcbiAgICBhc3NlcnRBZGRQb2ludCh4eSgwLCAwKSwgW3h5KDAsIDApXSwgeyBjbG9zZWQ6IGZhbHNlLCBwb2ludHM6IFt4eSgwLCAwKV0gfSk7XG4gICAgYXNzZXJ0QWRkUG9pbnQoeHkoMSwgMSksIFt4eSgwLCAwKV0sIHtcbiAgICAgIGNsb3NlZDogZmFsc2UsXG4gICAgICBwb2ludHM6IFt4eSgwLCAwKSwgeHkoMSwgMSldLFxuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgdW5kZWZpbmVkIGFycmF5JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYWRkUG9pbnRUb0FycmF5KHh5KDEsIDIpLCB1bmRlZmluZWQpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7IHBvaW50czogW3h5KDEsIDIpXSwgY2xvc2VkOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIG51bGwgYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhZGRQb2ludFRvQXJyYXkoeHkoMSwgMiksIG51bGwpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7IHBvaW50czogW3h5KDEsIDIpXSwgY2xvc2VkOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdjbG9zZXMgcG9seWdvbiB3aGVuIGNsaWNraW5nIGZpcnN0IHBvaW50JywgKCkgPT4ge1xuICAgICAgY29uc3QgZmlyc3RQb2ludCA9IHh5KDEsIDIpO1xuICAgICAgY29uc3QgcG9pbnRzID0gW2ZpcnN0UG9pbnQsIHh5KDMsIDQpLCB4eSg1LCA2KV07XG4gICAgICBjb25zdCByZXN1bHQgPSBhZGRQb2ludFRvQXJyYXkoZmlyc3RQb2ludCwgcG9pbnRzKTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7IHBvaW50cywgY2xvc2VkOiB0cnVlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IGFkZCBkdXBsaWNhdGUgcG9pbnQgaW4gbWlkZGxlJywgKCkgPT4ge1xuICAgICAgY29uc3QgcG9pbnRzID0gW3h5KDEsIDIpLCB4eSgzLCA0KSwgeHkoNSwgNildO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYWRkUG9pbnRUb0FycmF5KHBvaW50c1sxXSwgcG9pbnRzKTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7IHBvaW50cywgY2xvc2VkOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhZGRzIG5ldyBwb2ludCB0byBhcnJheSB3aXRoIDIrIHBvaW50cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHBvaW50cyA9IFt4eSgwLCAwKSwgeHkoMSwgMSldO1xuICAgICAgY29uc3QgbmV3UG9pbnQgPSB4eSgyLCAyKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGFkZFBvaW50VG9BcnJheShuZXdQb2ludCwgcG9pbnRzKTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIHBvaW50czogWy4uLnBvaW50cywgbmV3UG9pbnRdLFxuICAgICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBwb2ludHMgd2l0aGluIHJvdW5kaW5nIHRvbGVyYW5jZScsICgpID0+IHtcbiAgICAgIC8vIHJvdW5kTnVtYmVyIHJvdW5kcyB0byA0IGRlY2ltYWwgcGxhY2VzXG4gICAgICAvLyAxLjAwMDEgYW5kIDEuMDAwMiByb3VuZCB0byBkaWZmZXJlbnQgdmFsdWVzIGFmdGVyIHRvRml4ZWQoNClcbiAgICAgIGNvbnN0IGZpcnN0UG9pbnQgPSB4eSgxLjAwMDEsIDIuMDAwMSk7XG4gICAgICBjb25zdCBjbG9zZVBvaW50ID0geHkoMS4wMDAyLCAyLjAwMDIpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYWRkUG9pbnRUb0FycmF5KGNsb3NlUG9pbnQsIFtmaXJzdFBvaW50XSk7XG5cbiAgICAgIC8vIFNpbmNlIHRoZXkgcm91bmQgdG8gZGlmZmVyZW50IHZhbHVlcywgYm90aCBwb2ludHMgYXJlIGFkZGVkXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsgcG9pbnRzOiBbZmlyc3RQb2ludCwgY2xvc2VQb2ludF0sIGNsb3NlZDogZmFsc2UgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBwb2ludHMgdGhhdCByb3VuZCB0byBleGFjdGx5IHRoZSBzYW1lIHZhbHVlJywgKCkgPT4ge1xuICAgICAgLy8gUG9pbnRzIHRoYXQgcm91bmQgdG8gZXhhY3RseSB0aGUgc2FtZSB2YWx1ZSBhZnRlciB0b0ZpeGVkKDQpXG4gICAgICBjb25zdCBmaXJzdFBvaW50ID0geHkoMS4wMDAxLCAyLjAwMDEpO1xuICAgICAgY29uc3Qgc2FtZVBvaW50ID0geHkoMS4wMDAxLCAyLjAwMDEpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYWRkUG9pbnRUb0FycmF5KHNhbWVQb2ludCwgW2ZpcnN0UG9pbnRdKTtcblxuICAgICAgLy8gU2luY2UgdGhleSByb3VuZCB0byB0aGUgc2FtZSB2YWx1ZSwgcG9pbnQgaXMgbm90IGFkZGVkXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsgcG9pbnRzOiBbZmlyc3RQb2ludF0sIGNsb3NlZDogZmFsc2UgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCd0b29sJywgKCkgPT4ge1xuICBsZXQgdDtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB0ID0gdG9vbCgpO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9vbCBzdHJ1Y3R1cmUnLCAoKSA9PiB7XG4gICAgaXQoJ2NyZWF0ZXMgcG9seWdvbiB0eXBlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHQudHlwZSkudG9FcXVhbCgncG9seWdvbicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhcyBDb21wb25lbnQgcHJvcGVydHknLCAoKSA9PiB7XG4gICAgICBleHBlY3QodC5Db21wb25lbnQpLnRvQmUoUG9seWdvbik7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFzIGNvbXBsZXRlIG1ldGhvZCcsICgpID0+IHtcbiAgICAgIGV4cGVjdCh0eXBlb2YgdC5jb21wbGV0ZSkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYXMgYWRkUG9pbnQgbWV0aG9kJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHR5cGVvZiB0LmFkZFBvaW50KS50b0JlKCdmdW5jdGlvbicpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY29tcGxldGUnLCAoKSA9PiB7XG4gICAgaXQoJ2Nsb3NlcyBwb2x5Z29uJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHQuY29tcGxldGUoKSkudG9FcXVhbCh7IGJ1aWxkaW5nOiBmYWxzZSwgY2xvc2VkOiB0cnVlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ21hcmtzIHBvbHlnb24gYXMgbm90IGJ1aWxkaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFyayA9IHtcbiAgICAgICAgdHlwZTogJ3BvbHlnb24nLFxuICAgICAgICBwb2ludHM6IFt4eSgxLCAyKSwgeHkoMywgNCldLFxuICAgICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgICAgICBidWlsZGluZzogdHJ1ZSxcbiAgICAgIH07XG4gICAgICBjb25zdCByZXN1bHQgPSB0LmNvbXBsZXRlKG51bGwsIG1hcmspO1xuXG4gICAgICBleHBlY3QocmVzdWx0LmJ1aWxkaW5nKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdtYXJrcyBwb2x5Z29uIGFzIGNsb3NlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmsgPSB7XG4gICAgICAgIHR5cGU6ICdwb2x5Z29uJyxcbiAgICAgICAgcG9pbnRzOiBbeHkoMSwgMiksIHh5KDMsIDQpXSxcbiAgICAgICAgY2xvc2VkOiBmYWxzZSxcbiAgICAgICAgYnVpbGRpbmc6IHRydWUsXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzdWx0ID0gdC5jb21wbGV0ZShudWxsLCBtYXJrKTtcblxuICAgICAgZXhwZWN0KHJlc3VsdC5jbG9zZWQpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgncHJlc2VydmVzIG90aGVyIG1hcmsgcHJvcGVydGllcycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmsgPSB7XG4gICAgICAgIHR5cGU6ICdwb2x5Z29uJyxcbiAgICAgICAgcG9pbnRzOiBbeHkoMSwgMildLFxuICAgICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgICAgICBidWlsZGluZzogdHJ1ZSxcbiAgICAgICAgbGFiZWw6ICdUZXN0JyxcbiAgICAgICAgY29sb3I6ICdyZWQnLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHQuY29tcGxldGUobnVsbCwgbWFyayk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQubGFiZWwpLnRvQmUoJ1Rlc3QnKTtcbiAgICAgIGV4cGVjdChyZXN1bHQuY29sb3IpLnRvQmUoJ3JlZCcpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYWRkUG9pbnQnLCAoKSA9PiB7XG4gICAgaXQoJ2NyZWF0ZXMgbmV3IHBvbHlnb24gd2l0aCBmaXJzdCBwb2ludCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmsgPSB0LmFkZFBvaW50KHsgeDogMCwgeTogMCB9KTtcbiAgICAgIGV4cGVjdChtYXJrKS50b0VxdWFsKHtcbiAgICAgICAgdHlwZTogJ3BvbHlnb24nLFxuICAgICAgICBwb2ludHM6IFt7IHg6IDAsIHk6IDAgfV0sXG4gICAgICAgIGNsb3NlZDogZmFsc2UsXG4gICAgICAgIGJ1aWxkaW5nOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYWRkcyBzZWNvbmQgcG9pbnQgdG8gZXhpc3RpbmcgbWFyaycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmsgPSB0LmFkZFBvaW50KHsgeDogMCwgeTogMCB9LCB7IHBvaW50czogW3sgeDogMSwgeTogMSB9XSB9KTtcbiAgICAgIGV4cGVjdChtYXJrKS50b0VxdWFsKHtcbiAgICAgICAgYnVpbGRpbmc6IHRydWUsXG4gICAgICAgIGNsb3NlZDogZmFsc2UsXG4gICAgICAgIHBvaW50czogW1xuICAgICAgICAgIHsgeDogMSwgeTogMSB9LFxuICAgICAgICAgIHsgeDogMCwgeTogMCB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY3JlYXRlcyBtYXJrIHdpdGggYnVpbGRpbmcgZmxhZyB0cnVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFyayA9IHQuYWRkUG9pbnQoeHkoMSwgMikpO1xuICAgICAgZXhwZWN0KG1hcmsuYnVpbGRpbmcpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY3JlYXRlcyBtYXJrIHdpdGggY2xvc2VkIGZsYWcgZmFsc2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtYXJrID0gdC5hZGRQb2ludCh4eSgxLCAyKSk7XG4gICAgICBleHBlY3QobWFyay5jbG9zZWQpLnRvQmUoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FkZHMgbXVsdGlwbGUgcG9pbnRzIHNlcXVlbnRpYWxseScsICgpID0+IHtcbiAgICAgIGxldCBtYXJrID0gdC5hZGRQb2ludCh4eSgwLCAwKSk7XG4gICAgICBtYXJrID0gdC5hZGRQb2ludCh4eSgxLCAxKSwgbWFyayk7XG4gICAgICBtYXJrID0gdC5hZGRQb2ludCh4eSgyLCAyKSwgbWFyayk7XG5cbiAgICAgIGV4cGVjdChtYXJrLnBvaW50cykudG9IYXZlTGVuZ3RoKDMpO1xuICAgICAgZXhwZWN0KG1hcmsucG9pbnRzKS50b0VxdWFsKFt4eSgwLCAwKSwgeHkoMSwgMSksIHh5KDIsIDIpXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2xvc2VzIHBvbHlnb24gd2hlbiBjbGlja2luZyBmaXJzdCBwb2ludCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0UG9pbnQgPSB4eSgxLCAyKTtcbiAgICAgIGxldCBtYXJrID0gdC5hZGRQb2ludChmaXJzdFBvaW50KTtcbiAgICAgIG1hcmsgPSB0LmFkZFBvaW50KHh5KDMsIDQpLCBtYXJrKTtcbiAgICAgIG1hcmsgPSB0LmFkZFBvaW50KHh5KDUsIDYpLCBtYXJrKTtcbiAgICAgIG1hcmsgPSB0LmFkZFBvaW50KGZpcnN0UG9pbnQsIG1hcmspO1xuXG4gICAgICBleHBlY3QobWFyay5jbG9zZWQpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobWFyay5idWlsZGluZykudG9CZShmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgYWRkIGR1cGxpY2F0ZSBwb2ludHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwb2ludCA9IHh5KDEsIDIpO1xuICAgICAgbGV0IG1hcmsgPSB0LmFkZFBvaW50KHBvaW50KTtcbiAgICAgIG1hcmsgPSB0LmFkZFBvaW50KHh5KDMsIDQpLCBtYXJrKTtcbiAgICAgIC8vIEFkZGluZyB0aGUgZmlyc3QgcG9pbnQgYWdhaW4gd291bGQgY2xvc2UgaXRcbiAgICAgIC8vIExldCdzIGFkZCBpdCBvbmUgbW9yZSB0aW1lIGFmdGVyIGNsb3NpbmcgdG8gdGVzdCBkdXBsaWNhdGUgaGFuZGxpbmdcbiAgICAgIG1hcmsgPSB0LmFkZFBvaW50KHBvaW50LCBtYXJrKTtcblxuICAgICAgLy8gV2hlbiB3ZSBhZGQgdGhlIGZpcnN0IHBvaW50IHRvIGEgcG9seWdvbiB3aXRoIDIrIHBvaW50cywgaXQgY2xvc2VzXG4gICAgICBleHBlY3QobWFyay5wb2ludHMpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgICAgIGV4cGVjdChtYXJrLmNsb3NlZCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChtYXJrLmJ1aWxkaW5nKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCBhZGQgZHVwbGljYXRlIG5vbi1maXJzdCBwb2ludHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmaXJzdFBvaW50ID0geHkoMSwgMik7XG4gICAgICBjb25zdCBzZWNvbmRQb2ludCA9IHh5KDMsIDQpO1xuICAgICAgbGV0IG1hcmsgPSB0LmFkZFBvaW50KGZpcnN0UG9pbnQpO1xuICAgICAgbWFyayA9IHQuYWRkUG9pbnQoc2Vjb25kUG9pbnQsIG1hcmspO1xuICAgICAgbWFyayA9IHQuYWRkUG9pbnQoeHkoNSwgNiksIG1hcmspO1xuICAgICAgLy8gVHJ5IHRvIGFkZCB0aGUgc2Vjb25kIHBvaW50IGFnYWluIChub3QgdGhlIGZpcnN0IHBvaW50KVxuICAgICAgbWFyayA9IHQuYWRkUG9pbnQoc2Vjb25kUG9pbnQsIG1hcmspO1xuXG4gICAgICAvLyBTaG91bGQgbm90IGFkZCB0aGUgZHVwbGljYXRlIHBvaW50XG4gICAgICBleHBlY3QobWFyay5wb2ludHMpLnRvSGF2ZUxlbmd0aCgzKTtcbiAgICAgIGV4cGVjdChtYXJrLnBvaW50cykudG9FcXVhbChbZmlyc3RQb2ludCwgc2Vjb25kUG9pbnQsIHh5KDUsIDYpXSk7XG4gICAgICBleHBlY3QobWFyay5jbG9zZWQpLnRvQmUoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3ByZXNlcnZlcyBtYXJrIHByb3BlcnRpZXMgd2hlbiBhZGRpbmcgcG9pbnRzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFyayA9IHtcbiAgICAgICAgdHlwZTogJ3BvbHlnb24nLFxuICAgICAgICBwb2ludHM6IFt4eSgxLCAyKV0sXG4gICAgICAgIGNsb3NlZDogZmFsc2UsXG4gICAgICAgIGJ1aWxkaW5nOiB0cnVlLFxuICAgICAgICBsYWJlbDogJ015IFNoYXBlJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHQuYWRkUG9pbnQoeHkoMywgNCksIG1hcmspO1xuICAgICAgZXhwZWN0KHJlc3VsdC5sYWJlbCkudG9CZSgnTXkgU2hhcGUnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2ludGVncmF0aW9uIHNjZW5hcmlvcycsICgpID0+IHtcbiAgICBpdCgnY3JlYXRlcyBjb21wbGV0ZSB0cmlhbmdsZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHAxID0geHkoMCwgMCk7XG4gICAgICBjb25zdCBwMiA9IHh5KDEsIDApO1xuICAgICAgY29uc3QgcDMgPSB4eSgwLjUsIDEpO1xuXG4gICAgICBsZXQgbWFyayA9IHQuYWRkUG9pbnQocDEpO1xuICAgICAgbWFyayA9IHQuYWRkUG9pbnQocDIsIG1hcmspO1xuICAgICAgbWFyayA9IHQuYWRkUG9pbnQocDMsIG1hcmspO1xuICAgICAgbWFyayA9IHQuYWRkUG9pbnQocDEsIG1hcmspO1xuXG4gICAgICBleHBlY3QobWFyay5wb2ludHMpLnRvRXF1YWwoW3AxLCBwMiwgcDNdKTtcbiAgICAgIGV4cGVjdChtYXJrLmNsb3NlZCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChtYXJrLmJ1aWxkaW5nKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdjcmVhdGVzIGNvbXBsZXRlIHNxdWFyZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHBvaW50cyA9IFt4eSgwLCAwKSwgeHkoMSwgMCksIHh5KDEsIDEpLCB4eSgwLCAxKV07XG5cbiAgICAgIGxldCBtYXJrID0gdC5hZGRQb2ludChwb2ludHNbMF0pO1xuICAgICAgcG9pbnRzLnNsaWNlKDEpLmZvckVhY2goKHApID0+IHtcbiAgICAgICAgbWFyayA9IHQuYWRkUG9pbnQocCwgbWFyayk7XG4gICAgICB9KTtcbiAgICAgIG1hcmsgPSB0LmFkZFBvaW50KHBvaW50c1swXSwgbWFyayk7XG5cbiAgICAgIGV4cGVjdChtYXJrLnBvaW50cykudG9FcXVhbChwb2ludHMpO1xuICAgICAgZXhwZWN0KG1hcmsuY2xvc2VkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NhbiBmb3JjZSBjb21wbGV0ZSB3aXRob3V0IGNsb3NpbmcnLCAoKSA9PiB7XG4gICAgICBsZXQgbWFyayA9IHQuYWRkUG9pbnQoeHkoMCwgMCkpO1xuICAgICAgbWFyayA9IHQuYWRkUG9pbnQoeHkoMSwgMSksIG1hcmspO1xuICAgICAgbWFyayA9IHQuY29tcGxldGUobnVsbCwgbWFyayk7XG5cbiAgICAgIGV4cGVjdChtYXJrLmNsb3NlZCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChtYXJrLmJ1aWxkaW5nKS50b0JlKGZhbHNlKTtcbiAgICAgIGV4cGVjdChtYXJrLnBvaW50cykudG9IYXZlTGVuZ3RoKDIpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBTUcsRUFBRSxHQUFHLFNBQUxBLEVBQUVBLENBQUlDLENBQUMsRUFBRUMsQ0FBQztFQUFBLE9BQU07SUFBRUQsQ0FBQyxFQUFEQSxDQUFDO0lBQUVDLENBQUMsRUFBREE7RUFBRSxDQUFDO0FBQUEsQ0FBQzs7QUFFL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsWUFBTTtFQUN4QkEsUUFBUSxDQUFDLGlCQUFpQixFQUFFLFlBQU07SUFDaEMs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
|
|
@@ -1,50 +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 _line = require("../line");
|
|
8
|
-
var _utils = require("../../../__tests__/utils");
|
|
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('Line', function () {
|
|
12
|
-
var renderComponent = function renderComponent(extras) {
|
|
13
|
-
var defaults = {
|
|
14
|
-
classes: {},
|
|
15
|
-
className: 'className',
|
|
16
|
-
graphProps: (0, _utils.graphProps)()
|
|
17
|
-
};
|
|
18
|
-
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
19
|
-
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_line.Line, props));
|
|
20
|
-
};
|
|
21
|
-
describe('rendering', function () {
|
|
22
|
-
it('renders without crashing', function () {
|
|
23
|
-
var _renderComponent = renderComponent(),
|
|
24
|
-
container = _renderComponent.container;
|
|
25
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
26
|
-
});
|
|
27
|
-
it('renders with from and to points', function () {
|
|
28
|
-
var _renderComponent2 = renderComponent({
|
|
29
|
-
from: {
|
|
30
|
-
x: 0,
|
|
31
|
-
y: 0
|
|
32
|
-
},
|
|
33
|
-
to: {
|
|
34
|
-
x: 5,
|
|
35
|
-
y: 5
|
|
36
|
-
}
|
|
37
|
-
}),
|
|
38
|
-
container = _renderComponent2.container;
|
|
39
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
40
|
-
});
|
|
41
|
-
it('renders with className', function () {
|
|
42
|
-
var _renderComponent3 = renderComponent({
|
|
43
|
-
className: 'custom-line'
|
|
44
|
-
}),
|
|
45
|
-
container = _renderComponent3.container;
|
|
46
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbGluZSIsIl91dGlscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZGVzY3JpYmUiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJncmFwaFByb3BzIiwicHJvcHMiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiTGluZSIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXJDb21wb25lbnQyIiwiZnJvbSIsIngiLCJ5IiwidG8iLCJfcmVuZGVyQ29tcG9uZW50MyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL19fdGVzdHNfXy9saW5lLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IExpbmUgfSBmcm9tICcuLi9saW5lJztcbmltcG9ydCB7IGdyYXBoUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9fX3Rlc3RzX18vdXRpbHMnO1xuXG5kZXNjcmliZSgnTGluZScsICgpID0+IHtcbiAgY29uc3QgcmVuZGVyQ29tcG9uZW50ID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgZ3JhcGhQcm9wczogZ3JhcGhQcm9wcygpLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKDxMaW5lIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGZyb20gYW5kIHRvIHBvaW50cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBmcm9tOiB7IHg6IDAsIHk6IDAgfSxcbiAgICAgICAgdG86IHsgeDogNSwgeTogNSB9LFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGNsYXNzTmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBjbGFzc05hbWU6ICdjdXN0b20tbGluZScgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJ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
|
|
@@ -1,85 +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 _polygon = require("../polygon");
|
|
8
|
-
var _utils = require("../../../__tests__/utils");
|
|
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
|
-
var xy = function xy(x, y) {
|
|
12
|
-
return {
|
|
13
|
-
x: x,
|
|
14
|
-
y: y
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
describe('Polygon', function () {
|
|
18
|
-
var renderComponent = function renderComponent(extras) {
|
|
19
|
-
var defaults = {
|
|
20
|
-
classes: {},
|
|
21
|
-
className: 'className',
|
|
22
|
-
graphProps: (0, _utils.graphProps)(),
|
|
23
|
-
closed: false
|
|
24
|
-
};
|
|
25
|
-
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
26
|
-
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_polygon.Polygon, props));
|
|
27
|
-
};
|
|
28
|
-
describe('rendering', function () {
|
|
29
|
-
it('renders without crashing', function () {
|
|
30
|
-
var _renderComponent = renderComponent({
|
|
31
|
-
points: [{
|
|
32
|
-
x: 1,
|
|
33
|
-
y: 1
|
|
34
|
-
}]
|
|
35
|
-
}),
|
|
36
|
-
container = _renderComponent.container;
|
|
37
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
38
|
-
});
|
|
39
|
-
it('renders multiple points', function () {
|
|
40
|
-
var points = [xy(0, 0), xy(1, 1), xy(2, 0)];
|
|
41
|
-
var _renderComponent2 = renderComponent({
|
|
42
|
-
points: points
|
|
43
|
-
}),
|
|
44
|
-
container = _renderComponent2.container;
|
|
45
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
46
|
-
});
|
|
47
|
-
it('renders closed polygon', function () {
|
|
48
|
-
var points = [xy(0, 0), xy(1, 1), xy(2, 0)];
|
|
49
|
-
var _renderComponent3 = renderComponent({
|
|
50
|
-
points: points,
|
|
51
|
-
closed: true
|
|
52
|
-
}),
|
|
53
|
-
container = _renderComponent3.container;
|
|
54
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
55
|
-
});
|
|
56
|
-
it('renders open polygon', function () {
|
|
57
|
-
var points = [xy(0, 0), xy(1, 1)];
|
|
58
|
-
var _renderComponent4 = renderComponent({
|
|
59
|
-
points: points,
|
|
60
|
-
closed: false
|
|
61
|
-
}),
|
|
62
|
-
container = _renderComponent4.container;
|
|
63
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
describe('getPointString', function () {
|
|
68
|
-
var assertString = function assertString(arr, expected) {
|
|
69
|
-
it('creates: ', function () {
|
|
70
|
-
var result = (0, _polygon.getPointString)(arr, {
|
|
71
|
-
x: jest.fn(function (n) {
|
|
72
|
-
return n;
|
|
73
|
-
}),
|
|
74
|
-
y: jest.fn(function (n) {
|
|
75
|
-
return n;
|
|
76
|
-
})
|
|
77
|
-
});
|
|
78
|
-
expect(result).toEqual(expected);
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
assertString([xy(1, 1)], '1,1');
|
|
82
|
-
assertString([xy(1, 1), xy(2, 1)], '1,1 2,1');
|
|
83
|
-
assertString([xy(1, 1), xy(2, 1), xy(4, 4)], '1,1 2,1 4,4');
|
|
84
|
-
});
|
|
85
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcG9seWdvbiIsIl91dGlscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwieHkiLCJ4IiwieSIsImRlc2NyaWJlIiwicmVuZGVyQ29tcG9uZW50IiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZ3JhcGhQcm9wcyIsImNsb3NlZCIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIlBvbHlnb24iLCJpdCIsIl9yZW5kZXJDb21wb25lbnQiLCJwb2ludHMiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyQ29tcG9uZW50MiIsIl9yZW5kZXJDb21wb25lbnQzIiwiX3JlbmRlckNvbXBvbmVudDQiLCJhc3NlcnRTdHJpbmciLCJhcnIiLCJleHBlY3RlZCIsInJlc3VsdCIsImdldFBvaW50U3RyaW5nIiwiamVzdCIsImZuIiwibiIsInRvRXF1YWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbHMvcG9seWdvbi9fX3Rlc3RzX18vcG9seWdvbi50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRQb2ludFN0cmluZywgUG9seWdvbiB9IGZyb20gJy4uL3BvbHlnb24nO1xuaW1wb3J0IHsgZ3JhcGhQcm9wcyB9IGZyb20gJy4uLy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5cbmNvbnN0IHh5ID0gKHgsIHkpID0+ICh7IHgsIHkgfSk7XG5cbmRlc2NyaWJlKCdQb2x5Z29uJywgKCkgPT4ge1xuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBncmFwaFByb3BzOiBncmFwaFByb3BzKCksXG4gICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKDxQb2x5Z29uIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBwb2ludHM6IFt7IHg6IDEsIHk6IDEgfV0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBtdWx0aXBsZSBwb2ludHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwb2ludHMgPSBbeHkoMCwgMCksIHh5KDEsIDEpLCB4eSgyLCAwKV07XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgcG9pbnRzIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY2xvc2VkIHBvbHlnb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBwb2ludHMgPSBbeHkoMCwgMCksIHh5KDEsIDEpLCB4eSgyLCAwKV07XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgcG9pbnRzLCBjbG9zZWQ6IHRydWUgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBvcGVuIHBvbHlnb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBwb2ludHMgPSBbeHkoMCwgMCksIHh5KDEsIDEpXTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBwb2ludHMsIGNsb3NlZDogZmFsc2UgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdnZXRQb2ludFN0cmluZycsICgpID0+IHtcbiAgY29uc3QgYXNzZXJ0U3RyaW5nID0gKGFyciwgZXhwZWN0ZWQpID0+IHtcbiAgICBpdCgnY3JlYXRlczogJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZ2V0UG9pbnRTdHJpbmcoYXJyLCB7XG4gICAgICAgIHg6IGplc3QuZm4oKG4pID0+IG4pLFxuICAgICAgICB5OiBqZXN0LmZuKChuKSA9PiBuKSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgfTtcblxuICBhc3NlcnRTdHJpbmcoW3h5KDEsIDEpXSwgJzEsMScpO1xuICBhc3NlcnRTdHJpbmcoW3h5KDEsIDEpLCB4eSgyLCAxKV0sICcxLDEgMiwxJyk7XG4gIGFzc2VydFN0cmluZyhbeHkoMSwgMSksIHh5KDIsIDEpLCB4eSg0LCA0KV0sICcx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
|
|
@@ -1,35 +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 _component = require("../component");
|
|
8
|
-
var _utils = require("../../../__tests__/utils");
|
|
9
|
-
var _plot = require("@pie-lib/plot");
|
|
10
|
-
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; }
|
|
11
|
-
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; }
|
|
12
|
-
describe('RayLine', function () {
|
|
13
|
-
var onChange = jest.fn();
|
|
14
|
-
var renderComponent = function renderComponent(extras) {
|
|
15
|
-
var defaults = {
|
|
16
|
-
classes: {},
|
|
17
|
-
className: 'className',
|
|
18
|
-
onChange: onChange,
|
|
19
|
-
markerId: '1',
|
|
20
|
-
graphProps: (0, _utils.graphProps)(),
|
|
21
|
-
from: _plot.utils.xy(0, 0),
|
|
22
|
-
to: _plot.utils.xy(1, 1)
|
|
23
|
-
};
|
|
24
|
-
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
25
|
-
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_component.RayLine, props));
|
|
26
|
-
};
|
|
27
|
-
describe('rendering', function () {
|
|
28
|
-
it('renders without crashing', function () {
|
|
29
|
-
var _renderComponent = renderComponent(),
|
|
30
|
-
container = _renderComponent.container;
|
|
31
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tcG9uZW50IiwiX3V0aWxzIiwiX3Bsb3QiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJtYXJrZXJJZCIsImdyYXBoUHJvcHMiLCJnZXRHcmFwaFByb3BzIiwiZnJvbSIsInV0aWxzIiwieHkiLCJ0byIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIlJheUxpbmUiLCJpdCIsIl9yZW5kZXJDb21wb25lbnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbHMvcmF5L19fdGVzdHNfXy9jb21wb25lbnQudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHBpZS1saWIvdGVzdC11dGlscyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmF5TGluZSB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBncmFwaFByb3BzIGFzIGdldEdyYXBoUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9fX3Rlc3RzX18vdXRpbHMnO1xuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcblxuZGVzY3JpYmUoJ1JheUxpbmUnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgY29uc3QgcmVuZGVyQ29tcG9uZW50ID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBtYXJrZXJJZDogJzEnLFxuICAgICAgZ3JhcGhQcm9wczogZ2V0R3JhcGhQcm9wcygpLFxuICAgICAgZnJvbTogdXRpbHMueHkoMCwgMCksXG4gICAgICB0bzogdXRpbHMueHkoMSwgMSksXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPFJheUxpbmUgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQXNDLFNBQUFNLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFD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
|
|
@@ -1,35 +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 _component = require("../component");
|
|
8
|
-
var _utils = require("../../../__tests__/utils");
|
|
9
|
-
var _plot = require("@pie-lib/plot");
|
|
10
|
-
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; }
|
|
11
|
-
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; }
|
|
12
|
-
var xy = _plot.utils.xy;
|
|
13
|
-
describe('Line', function () {
|
|
14
|
-
var onChange = jest.fn();
|
|
15
|
-
var renderComponent = function renderComponent(extras) {
|
|
16
|
-
var defaults = {
|
|
17
|
-
classes: {},
|
|
18
|
-
className: 'className',
|
|
19
|
-
onChange: onChange,
|
|
20
|
-
graphProps: (0, _utils.graphProps)(),
|
|
21
|
-
from: xy(0, 0),
|
|
22
|
-
to: xy(1, 1)
|
|
23
|
-
};
|
|
24
|
-
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
25
|
-
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_component.Line, props));
|
|
26
|
-
};
|
|
27
|
-
describe('rendering', function () {
|
|
28
|
-
it('renders without crashing', function () {
|
|
29
|
-
var _renderComponent = renderComponent(),
|
|
30
|
-
container = _renderComponent.container;
|
|
31
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tcG9uZW50IiwiX3V0aWxzIiwiX3Bsb3QiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInh5IiwidXRpbHMiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwicmVuZGVyQ29tcG9uZW50IiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZ3JhcGhQcm9wcyIsImdldEdyYXBoUHJvcHMiLCJmcm9tIiwidG8iLCJwcm9wcyIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJMaW5lIiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3NlZ21lbnQvX190ZXN0c19fL2NvbXBvbmVudC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5lIH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IGdyYXBoUHJvcHMgYXMgZ2V0R3JhcGhQcm9wcyB9IGZyb20gJy4uLy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5pbXBvcnQgeyB1dGlscyB9IGZyb20gJ0BwaWUtbGliL3Bsb3QnO1xuXG5jb25zdCB7IHh5IH0gPSB1dGlscztcbmRlc2NyaWJlKCdMaW5lJywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgZ3JhcGhQcm9wczogZ2V0R3JhcGhQcm9wcygpLFxuICAgICAgZnJvbTogeHkoMCwgMCksXG4gICAgICB0bzogeHkoMSwgMSksXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPExpbmUgey4uLnByb3BzfSAvPik7XG4gIH07XG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUFzQyxTQUFBTSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFB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
|