@pie-lib/graphing 2.15.0-beta.4 → 2.15.0-beta.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 +24 -0
- package/lib/__tests__/graph-with-controls.test.js +215 -0
- package/lib/__tests__/graph.test.js +290 -0
- package/lib/__tests__/grid.test.js +40 -0
- package/lib/__tests__/labels.test.js +59 -0
- package/lib/__tests__/mark-label.test.js +154 -0
- package/lib/__tests__/toggle-bar.test.js +54 -0
- package/lib/__tests__/tool-menu.test.js +43 -0
- package/lib/__tests__/undo-redo.test.js +42 -0
- package/lib/__tests__/use-debounce.test.js +28 -0
- package/lib/__tests__/utils.js +72 -0
- package/lib/__tests__/utils.test.js +133 -0
- package/lib/axis/__tests__/arrow.test.js +68 -0
- package/lib/axis/__tests__/axes.test.js +214 -0
- package/lib/tools/absolute/__tests__/component.test.js +74 -0
- package/lib/tools/circle/__tests__/bg-circle.test.js +46 -0
- package/lib/tools/circle/__tests__/component.test.js +259 -0
- package/lib/tools/exponential/__tests__/component.test.js +73 -0
- package/lib/tools/line/__tests__/component.test.js +56 -0
- package/lib/tools/parabola/__tests__/component.test.js +73 -0
- package/lib/tools/point/__tests__/component.test.js +97 -0
- package/lib/tools/polygon/__tests__/component.test.js +255 -0
- package/lib/tools/polygon/__tests__/index.test.js +95 -0
- package/lib/tools/polygon/__tests__/line.test.js +43 -0
- package/lib/tools/polygon/__tests__/polygon.test.js +73 -0
- package/lib/tools/ray/__tests__/component.test.js +48 -0
- package/lib/tools/segment/__tests__/component.test.js +48 -0
- package/lib/tools/shared/__tests__/arrow-head.test.js +62 -0
- package/lib/tools/shared/line/__tests__/index.test.js +301 -0
- package/lib/tools/shared/line/__tests__/line-path.test.js +78 -0
- package/lib/tools/shared/line/__tests__/with-root-edge.test.js +122 -0
- package/lib/tools/shared/point/__tests__/arrow-point.test.js +137 -0
- package/lib/tools/shared/point/__tests__/base-point.test.js +134 -0
- package/lib/tools/sine/__tests__/component.test.js +81 -0
- package/lib/tools/vector/__tests__/component.test.js +45 -0
- package/package.json +8 -8
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _enzyme = require("enzyme");
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _utils = require("../../../__tests__/utils");
|
|
12
|
+
|
|
13
|
+
var _component = require("../component");
|
|
14
|
+
|
|
15
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
+
|
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
+
|
|
19
|
+
var xyLabel = function xyLabel(x, y, index, label) {
|
|
20
|
+
return _objectSpread(_objectSpread({}, (0, _utils.xy)(x, y, index)), {}, {
|
|
21
|
+
label: label
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
describe('buildLines', function () {
|
|
26
|
+
var defaultPoints = [(0, _utils.xy)(0, 0), (0, _utils.xy)(1, 1), (0, _utils.xy)(1, 0)];
|
|
27
|
+
|
|
28
|
+
var assertBuildLines = function assertBuildLines(points, closed, expected) {
|
|
29
|
+
it("builds points and lines for ".concat(points, " = ").concat(expected), function () {
|
|
30
|
+
var result = (0, _component.buildLines)(points);
|
|
31
|
+
expect(result).toMatchObject([{
|
|
32
|
+
from: (0, _utils.xy)(0, 0, 0),
|
|
33
|
+
to: (0, _utils.xy)(1, 1, 1)
|
|
34
|
+
}, {
|
|
35
|
+
from: (0, _utils.xy)(1, 1, 1),
|
|
36
|
+
to: (0, _utils.xy)(1, 0, 2)
|
|
37
|
+
}]);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
assertBuildLines(defaultPoints, true, []);
|
|
42
|
+
});
|
|
43
|
+
describe('swap', function () {
|
|
44
|
+
it('swaps pairs', function () {
|
|
45
|
+
var result = (0, _component.swap)([(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 2, 2)], (0, _utils.xy)(0, 0, 0), (0, _utils.xy)(3, 3, 0));
|
|
46
|
+
expect(result).toEqual([(0, _utils.xy)(3, 3, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 2, 2)]);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('RawBaseComponent', function () {
|
|
50
|
+
var w;
|
|
51
|
+
var onChange = jest.fn();
|
|
52
|
+
var onChangeProps = jest.fn();
|
|
53
|
+
|
|
54
|
+
var wrapper = function wrapper(extras) {
|
|
55
|
+
var defaults = {
|
|
56
|
+
classes: {},
|
|
57
|
+
className: 'className',
|
|
58
|
+
onChange: onChange,
|
|
59
|
+
onChangeProps: onChangeProps,
|
|
60
|
+
onClosePolygon: jest.fn(),
|
|
61
|
+
graphProps: (0, _utils.graphProps)(),
|
|
62
|
+
points: []
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
66
|
+
|
|
67
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_component.RawBaseComponent, props));
|
|
68
|
+
}; // used to test items that have labels attached to points
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
var labelNode = document.createElement('foreignObject');
|
|
72
|
+
var points = [xyLabel(0, 0, 0, 'A'), xyLabel(2, 2, 1, 'B'), xyLabel(0, 2, 2, 'C')];
|
|
73
|
+
|
|
74
|
+
var wrapperWithLabels = function wrapperWithLabels(extras) {
|
|
75
|
+
return wrapper(_objectSpread({
|
|
76
|
+
labelNode: labelNode,
|
|
77
|
+
points: points
|
|
78
|
+
}, extras));
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
describe('snapshot', function () {
|
|
82
|
+
it('renders', function () {
|
|
83
|
+
w = wrapper();
|
|
84
|
+
expect(w).toMatchSnapshot();
|
|
85
|
+
});
|
|
86
|
+
it('renders with labels', function () {
|
|
87
|
+
w = wrapperWithLabels();
|
|
88
|
+
expect(w).toMatchSnapshot();
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe('logic', function () {
|
|
92
|
+
describe('dragPoint', function () {
|
|
93
|
+
it('calls onChange', function () {
|
|
94
|
+
onChange = jest.fn();
|
|
95
|
+
w = wrapper({
|
|
96
|
+
points: [(0, _utils.xy)(1, 1)],
|
|
97
|
+
onChange: onChange
|
|
98
|
+
});
|
|
99
|
+
w.instance().dragPoint(0, (0, _utils.xy)(1, 1), (0, _utils.xy)(2, 2));
|
|
100
|
+
expect(onChange).toHaveBeenCalledWith([(0, _utils.xy)(2, 2)]);
|
|
101
|
+
});
|
|
102
|
+
it('calls onChange keeping label property from point', function () {
|
|
103
|
+
onChange = jest.fn();
|
|
104
|
+
w = wrapperWithLabels(onChange);
|
|
105
|
+
w.instance().dragPoint(0, (0, _utils.xy)(0, 0), (0, _utils.xy)(0, 1));
|
|
106
|
+
expect(onChange).toHaveBeenCalledWith([{
|
|
107
|
+
x: 0,
|
|
108
|
+
y: 1,
|
|
109
|
+
label: 'A'
|
|
110
|
+
}, points[1], points[2]]);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
describe('dragLine', function () {
|
|
114
|
+
it('calls onChange', function () {
|
|
115
|
+
w = wrapper({
|
|
116
|
+
points: [(0, _utils.xy)(1, 1, 0), (0, _utils.xy)(2, 2, 1)],
|
|
117
|
+
onChange: onChange
|
|
118
|
+
});
|
|
119
|
+
w.instance().dragLine({
|
|
120
|
+
from: (0, _utils.xy)(1, 1, 0),
|
|
121
|
+
to: (0, _utils.xy)(2, 2, 1)
|
|
122
|
+
}, {
|
|
123
|
+
from: (0, _utils.xy)(2, 2, 0),
|
|
124
|
+
to: (0, _utils.xy)(4, 4, 1)
|
|
125
|
+
});
|
|
126
|
+
expect(onChange).toHaveBeenCalledWith([(0, _utils.xy)(2, 2, 0), (0, _utils.xy)(4, 4, 1)]);
|
|
127
|
+
});
|
|
128
|
+
it('calls onChange keeping label property from both points', function () {
|
|
129
|
+
onChange = jest.fn();
|
|
130
|
+
w = wrapperWithLabels(onChange);
|
|
131
|
+
w.instance().dragLine({
|
|
132
|
+
from: points[0],
|
|
133
|
+
to: points[1]
|
|
134
|
+
}, {
|
|
135
|
+
from: (0, _utils.xy)(0, 1, 0),
|
|
136
|
+
to: (0, _utils.xy)(2, 3, 1)
|
|
137
|
+
});
|
|
138
|
+
expect(onChange).toHaveBeenCalledWith([xyLabel(0, 1, 0, 'A'), xyLabel(2, 3, 1, 'B'), points[2]]);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
describe('dragPoly', function () {
|
|
142
|
+
it('calls onChange', function () {
|
|
143
|
+
w = wrapper({
|
|
144
|
+
onChange: onChange
|
|
145
|
+
});
|
|
146
|
+
var existing = [(0, _utils.xy)(1, 1)];
|
|
147
|
+
var next = [(0, _utils.xy)(2, 2)];
|
|
148
|
+
w.instance().dragPoly(existing, next);
|
|
149
|
+
expect(onChange).toHaveBeenCalledWith([(0, _utils.xy)(2, 2)]);
|
|
150
|
+
});
|
|
151
|
+
it('calls onChange keeping label property from all points', function () {
|
|
152
|
+
onChange = jest.fn();
|
|
153
|
+
w = wrapperWithLabels(onChange);
|
|
154
|
+
w.instance().dragPoly(points, [(0, _utils.xy)(0, 1, 0), (0, _utils.xy)(2, 3, 1), (0, _utils.xy)(0, 3, 2)]);
|
|
155
|
+
expect(onChange).toHaveBeenCalledWith([xyLabel(0, 1, 0, 'A'), xyLabel(2, 3, 1, 'B'), xyLabel(0, 3, 2, 'C')]);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
describe('labelChange', function () {
|
|
159
|
+
it('updates "label" property for point', function () {
|
|
160
|
+
w = wrapperWithLabels();
|
|
161
|
+
w.instance().labelChange(_objectSpread(_objectSpread({}, points[0]), {}, {
|
|
162
|
+
label: 'Label A'
|
|
163
|
+
}), 0);
|
|
164
|
+
expect(onChangeProps).toBeCalledWith([_objectSpread(_objectSpread({}, points[0]), {}, {
|
|
165
|
+
label: 'Label A'
|
|
166
|
+
}), points[1], points[2]]);
|
|
167
|
+
w.instance().labelChange(_objectSpread(_objectSpread({}, points[1]), {}, {
|
|
168
|
+
label: 'Label B'
|
|
169
|
+
}), 1);
|
|
170
|
+
expect(onChangeProps).toBeCalledWith([points[0], _objectSpread(_objectSpread({}, points[1]), {}, {
|
|
171
|
+
label: 'Label B'
|
|
172
|
+
}), points[2]]);
|
|
173
|
+
});
|
|
174
|
+
it('removes "label" property if the field is empty', function () {
|
|
175
|
+
w = wrapperWithLabels();
|
|
176
|
+
w.instance().labelChange(_objectSpread(_objectSpread({}, points[0]), {}, {
|
|
177
|
+
label: ''
|
|
178
|
+
}), 0);
|
|
179
|
+
expect(onChangeProps).toBeCalledWith([(0, _utils.xy)(0, 0, 0), points[1], points[2]]);
|
|
180
|
+
w.instance().labelChange(_objectSpread(_objectSpread({}, points[1]), {}, {
|
|
181
|
+
label: ''
|
|
182
|
+
}), 1);
|
|
183
|
+
expect(onChangeProps).toBeCalledWith([points[0], (0, _utils.xy)(2, 2, 1), points[2]]);
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
describe('close', function () {
|
|
188
|
+
it('calls onClosePolygon', function () {
|
|
189
|
+
var onClosePolygon = jest.fn();
|
|
190
|
+
w = wrapper({
|
|
191
|
+
onClosePolygon: onClosePolygon,
|
|
192
|
+
points: [(0, _utils.xy)(1, 1), (0, _utils.xy)(2, 2), (0, _utils.xy)(3, 3)]
|
|
193
|
+
});
|
|
194
|
+
w.instance().close();
|
|
195
|
+
expect(onClosePolygon).toHaveBeenCalled();
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
describe('clickPoint', function () {
|
|
199
|
+
var onClick = jest.fn();
|
|
200
|
+
var onClosePolygon = jest.fn();
|
|
201
|
+
beforeEach(function () {
|
|
202
|
+
onClosePolygon.mockClear();
|
|
203
|
+
onClick.mockClear();
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
var assertCallback = function assertCallback(isToolActive, closed, index, mock) {
|
|
207
|
+
it('calls onClosePolygon', function () {
|
|
208
|
+
var w = wrapper({
|
|
209
|
+
points: [(0, _utils.xy)(1, 1), (0, _utils.xy)(2, 2), (0, _utils.xy)(3, 3)],
|
|
210
|
+
onClosePolygon: onClosePolygon,
|
|
211
|
+
onClick: onClick,
|
|
212
|
+
isToolActive: isToolActive,
|
|
213
|
+
closed: closed
|
|
214
|
+
});
|
|
215
|
+
w.instance().clickPoint((0, _utils.xy)(1, 1, 0), index, {});
|
|
216
|
+
expect(mock).toHaveBeenCalled();
|
|
217
|
+
});
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
assertCallback(true, false, 0, onClosePolygon);
|
|
221
|
+
assertCallback(true, false, 1, onClick);
|
|
222
|
+
assertCallback(false, false, 0, onClick);
|
|
223
|
+
assertCallback(true, true, 0, onClick);
|
|
224
|
+
it('adds "label" property to a point', function () {
|
|
225
|
+
var onChangeProps = jest.fn();
|
|
226
|
+
var w = wrapperWithLabels({
|
|
227
|
+
labelModeEnabled: true,
|
|
228
|
+
onChangeProps: onChangeProps,
|
|
229
|
+
points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(2, 2, 1), (0, _utils.xy)(0, 2, 2)]
|
|
230
|
+
});
|
|
231
|
+
w.instance().clickPoint((0, _utils.xy)(0, 0, 0), 0, {});
|
|
232
|
+
expect(onChangeProps).toHaveBeenCalledWith([xyLabel(0, 0, 0, ''), (0, _utils.xy)(2, 2, 1), (0, _utils.xy)(0, 2, 2)]);
|
|
233
|
+
});
|
|
234
|
+
it('adds "label" property to a point when limit labeling', function () {
|
|
235
|
+
var onChangeProps = jest.fn();
|
|
236
|
+
var w = wrapperWithLabels({
|
|
237
|
+
labelModeEnabled: true,
|
|
238
|
+
onChangeProps: onChangeProps,
|
|
239
|
+
limitLabeling: true
|
|
240
|
+
});
|
|
241
|
+
w.instance().clickPoint((0, _utils.xy)(0, 0, 0), 0, {});
|
|
242
|
+
expect(onChangeProps).toHaveBeenCalledTimes(0);
|
|
243
|
+
});
|
|
244
|
+
it('if point already has label, keeps that value', function () {
|
|
245
|
+
var onChangeProps = jest.fn();
|
|
246
|
+
var w = wrapperWithLabels({
|
|
247
|
+
labelModeEnabled: true,
|
|
248
|
+
onChangeProps: onChangeProps
|
|
249
|
+
});
|
|
250
|
+
w.instance().clickPoint(points[0], 0, {});
|
|
251
|
+
expect(onChangeProps).toHaveBeenCalledWith(points);
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL19fdGVzdHNfXy9jb21wb25lbnQudGVzdC5qc3giXSwibmFtZXMiOlsieHlMYWJlbCIsIngiLCJ5IiwiaW5kZXgiLCJsYWJlbCIsImRlc2NyaWJlIiwiZGVmYXVsdFBvaW50cyIsImFzc2VydEJ1aWxkTGluZXMiLCJwb2ludHMiLCJjbG9zZWQiLCJleHBlY3RlZCIsIml0IiwicmVzdWx0IiwiZXhwZWN0IiwidG9NYXRjaE9iamVjdCIsImZyb20iLCJ0byIsInRvRXF1YWwiLCJ3Iiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJvbkNoYW5nZVByb3BzIiwid3JhcHBlciIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsIm9uQ2xvc2VQb2x5Z29uIiwiZ3JhcGhQcm9wcyIsInByb3BzIiwibGFiZWxOb2RlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid3JhcHBlcldpdGhMYWJlbHMiLCJ0b01hdGNoU25hcHNob3QiLCJpbnN0YW5jZSIsImRyYWdQb2ludCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiZHJhZ0xpbmUiLCJleGlzdGluZyIsIm5leHQiLCJkcmFnUG9seSIsImxhYmVsQ2hhbmdlIiwidG9CZUNhbGxlZFdpdGgiLCJjbG9zZSIsInRvSGF2ZUJlZW5DYWxsZWQiLCJvbkNsaWNrIiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsImFzc2VydENhbGxiYWNrIiwiaXNUb29sQWN0aXZlIiwibW9jayIsImNsaWNrUG9pbnQiLCJsYWJlbE1vZGVFbmFibGVkIiwibGltaXRMYWJlbGluZyIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7OztBQUVBLElBQU1BLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLENBQUQsRUFBSUMsQ0FBSixFQUFPQyxLQUFQLEVBQWNDLEtBQWQ7QUFBQSx5Q0FDWCxlQUFHSCxDQUFILEVBQU1DLENBQU4sRUFBU0MsS0FBVCxDQURXO0FBRWRDLElBQUFBLEtBQUssRUFBTEE7QUFGYztBQUFBLENBQWhCOztBQUtBQyxRQUFRLENBQUMsWUFBRCxFQUFlLFlBQU07QUFDM0IsTUFBTUMsYUFBYSxHQUFHLENBQUMsZUFBRyxDQUFILEVBQU0sQ0FBTixDQUFELEVBQVcsZUFBRyxDQUFILEVBQU0sQ0FBTixDQUFYLEVBQXFCLGVBQUcsQ0FBSCxFQUFNLENBQU4sQ0FBckIsQ0FBdEI7O0FBRUEsTUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDQyxNQUFELEVBQVNDLE1BQVQsRUFBaUJDLFFBQWpCLEVBQThCO0FBQ3JEQyxJQUFBQSxFQUFFLHVDQUFnQ0gsTUFBaEMsZ0JBQTRDRSxRQUE1QyxHQUF3RCxZQUFNO0FBQzlELFVBQU1FLE1BQU0sR0FBRywyQkFBV0osTUFBWCxDQUFmO0FBQ0FLLE1BQUFBLE1BQU0sQ0FBQ0QsTUFBRCxDQUFOLENBQWVFLGFBQWYsQ0FBNkIsQ0FDM0I7QUFBRUMsUUFBQUEsSUFBSSxFQUFFLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQVI7QUFBcUJDLFFBQUFBLEVBQUUsRUFBRSxlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVDtBQUF6QixPQUQyQixFQUUzQjtBQUFFRCxRQUFBQSxJQUFJLEVBQUUsZUFBRyxDQUFILEVBQU0sQ0FBTixFQUFTLENBQVQsQ0FBUjtBQUFxQkMsUUFBQUEsRUFBRSxFQUFFLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFUO0FBQXpCLE9BRjJCLENBQTdCO0FBSUQsS0FOQyxDQUFGO0FBT0QsR0FSRDs7QUFVQVQsRUFBQUEsZ0JBQWdCLENBQUNELGFBQUQsRUFBZ0IsSUFBaEIsRUFBc0IsRUFBdEIsQ0FBaEI7QUFDRCxDQWRPLENBQVI7QUFnQkFELFFBQVEsQ0FBQyxNQUFELEVBQVMsWUFBTTtBQUNyQk0sRUFBQUEsRUFBRSxDQUFDLGFBQUQsRUFBZ0IsWUFBTTtBQUN0QixRQUFNQyxNQUFNLEdBQUcscUJBQUssQ0FBQyxlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFELEVBQWMsZUFBRyxDQUFILEVBQU0sQ0FBTixFQUFTLENBQVQsQ0FBZCxFQUEyQixlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUEzQixDQUFMLEVBQThDLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQTlDLEVBQTJELGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQTNELENBQWY7QUFDQUMsSUFBQUEsTUFBTSxDQUFDRCxNQUFELENBQU4sQ0FBZUssT0FBZixDQUF1QixDQUFDLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQUQsRUFBYyxlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFkLEVBQTJCLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQTNCLENBQXZCO0FBQ0QsR0FIQyxDQUFGO0FBSUQsQ0FMTyxDQUFSO0FBT0FaLFFBQVEsQ0FBQyxrQkFBRCxFQUFxQixZQUFNO0FBQ2pDLE1BQUlhLENBQUo7QUFDQSxNQUFJQyxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsRUFBTCxFQUFmO0FBQ0EsTUFBSUMsYUFBYSxHQUFHRixJQUFJLENBQUNDLEVBQUwsRUFBcEI7O0FBQ0EsTUFBTUUsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFZO0FBQzFCLFFBQU1DLFFBQVEsR0FBRztBQUNmQyxNQUFBQSxPQUFPLEVBQUUsRUFETTtBQUVmQyxNQUFBQSxTQUFTLEVBQUUsV0FGSTtBQUdmUixNQUFBQSxRQUFRLEVBQVJBLFFBSGU7QUFJZkcsTUFBQUEsYUFBYSxFQUFiQSxhQUplO0FBS2ZNLE1BQUFBLGNBQWMsRUFBRVIsSUFBSSxDQUFDQyxFQUFMLEVBTEQ7QUFNZlEsTUFBQUEsVUFBVSxFQUFFLHdCQU5HO0FBT2ZyQixNQUFBQSxNQUFNLEVBQUU7QUFQTyxLQUFqQjs7QUFTQSxRQUFNc0IsS0FBSyxtQ0FBUUwsUUFBUixHQUFxQkQsTUFBckIsQ0FBWDs7QUFFQSxXQUFPLG1DQUFRLGdDQUFDLDJCQUFELEVBQXNCTSxLQUF0QixDQUFSLENBQVA7QUFDRCxHQWJELENBSmlDLENBbUJqQzs7O0FBQ0EsTUFBTUMsU0FBUyxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsZUFBdkIsQ0FBbEI7QUFDQSxNQUFNekIsTUFBTSxHQUFHLENBQUNSLE9BQU8sQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxHQUFWLENBQVIsRUFBd0JBLE9BQU8sQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxHQUFWLENBQS9CLEVBQStDQSxPQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsR0FBVixDQUF0RCxDQUFmOztBQUNBLE1BQU1rQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUNWLE1BQUQ7QUFBQSxXQUN4QkQsT0FBTztBQUNMUSxNQUFBQSxTQUFTLEVBQUVBLFNBRE47QUFFTHZCLE1BQUFBLE1BQU0sRUFBRUE7QUFGSCxPQUdGZ0IsTUFIRSxFQURpQjtBQUFBLEdBQTFCOztBQU9BbkIsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCTSxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEJPLE1BQUFBLENBQUMsR0FBR0ssT0FBTyxFQUFYO0FBQ0FWLE1BQUFBLE1BQU0sQ0FBQ0ssQ0FBRCxDQUFOLENBQVVpQixlQUFWO0FBQ0QsS0FIQyxDQUFGO0FBS0F4QixJQUFBQSxFQUFFLENBQUMscUJBQUQsRUFBd0IsWUFBTTtBQUM5Qk8sTUFBQUEsQ0FBQyxHQUFHZ0IsaUJBQWlCLEVBQXJCO0FBQ0FyQixNQUFBQSxNQUFNLENBQUNLLENBQUQsQ0FBTixDQUFVaUIsZUFBVjtBQUNELEtBSEMsQ0FBRjtBQUlELEdBVk8sQ0FBUjtBQVlBOUIsRUFBQUEsUUFBUSxDQUFDLE9BQUQsRUFBVSxZQUFNO0FBQ3RCQSxJQUFBQSxRQUFRLENBQUMsV0FBRCxFQUFjLFlBQU07QUFDMUJNLE1BQUFBLEVBQUUsQ0FBQyxnQkFBRCxFQUFtQixZQUFNO0FBQ3pCUSxRQUFBQSxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsRUFBTCxFQUFYO0FBQ0FILFFBQUFBLENBQUMsR0FBR0ssT0FBTyxDQUFDO0FBQUVmLFVBQUFBLE1BQU0sRUFBRSxDQUFDLGVBQUcsQ0FBSCxFQUFNLENBQU4sQ0FBRCxDQUFWO0FBQXNCVyxVQUFBQSxRQUFRLEVBQVJBO0FBQXRCLFNBQUQsQ0FBWDtBQUNBRCxRQUFBQSxDQUFDLENBQUNrQixRQUFGLEdBQWFDLFNBQWIsQ0FBdUIsQ0FBdkIsRUFBMEIsZUFBRyxDQUFILEVBQU0sQ0FBTixDQUExQixFQUFvQyxlQUFHLENBQUgsRUFBTSxDQUFOLENBQXBDO0FBQ0F4QixRQUFBQSxNQUFNLENBQUNNLFFBQUQsQ0FBTixDQUFpQm1CLG9CQUFqQixDQUFzQyxDQUFDLGVBQUcsQ0FBSCxFQUFNLENBQU4sQ0FBRCxDQUF0QztBQUNELE9BTEMsQ0FBRjtBQU9BM0IsTUFBQUEsRUFBRSxDQUFDLGtEQUFELEVBQXFELFlBQU07QUFDM0RRLFFBQUFBLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQVg7QUFDQUgsUUFBQUEsQ0FBQyxHQUFHZ0IsaUJBQWlCLENBQUNmLFFBQUQsQ0FBckI7QUFFQUQsUUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhQyxTQUFiLENBQXVCLENBQXZCLEVBQTBCLGVBQUcsQ0FBSCxFQUFNLENBQU4sQ0FBMUIsRUFBb0MsZUFBRyxDQUFILEVBQU0sQ0FBTixDQUFwQztBQUNBeEIsUUFBQUEsTUFBTSxDQUFDTSxRQUFELENBQU4sQ0FBaUJtQixvQkFBakIsQ0FBc0MsQ0FBQztBQUFFckMsVUFBQUEsQ0FBQyxFQUFFLENBQUw7QUFBUUMsVUFBQUEsQ0FBQyxFQUFFLENBQVg7QUFBY0UsVUFBQUEsS0FBSyxFQUFFO0FBQXJCLFNBQUQsRUFBNkJJLE1BQU0sQ0FBQyxDQUFELENBQW5DLEVBQXdDQSxNQUFNLENBQUMsQ0FBRCxDQUE5QyxDQUF0QztBQUNELE9BTkMsQ0FBRjtBQU9ELEtBZk8sQ0FBUjtBQWlCQUgsSUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCTSxNQUFBQSxFQUFFLENBQUMsZ0JBQUQsRUFBbUIsWUFBTTtBQUN6Qk8sUUFBQUEsQ0FBQyxHQUFHSyxPQUFPLENBQUM7QUFBRWYsVUFBQUEsTUFBTSxFQUFFLENBQUMsZUFBRyxDQUFILEVBQU0sQ0FBTixFQUFTLENBQVQsQ0FBRCxFQUFjLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQWQsQ0FBVjtBQUFzQ1csVUFBQUEsUUFBUSxFQUFSQTtBQUF0QyxTQUFELENBQVg7QUFDQUQsUUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhRyxRQUFiLENBQXNCO0FBQUV4QixVQUFBQSxJQUFJLEVBQUUsZUFBRyxDQUFILEVBQU0sQ0FBTixFQUFTLENBQVQsQ0FBUjtBQUFxQkMsVUFBQUEsRUFBRSxFQUFFLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFUO0FBQXpCLFNBQXRCLEVBQThEO0FBQUVELFVBQUFBLElBQUksRUFBRSxlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFSO0FBQXFCQyxVQUFBQSxFQUFFLEVBQUUsZUFBRyxDQUFILEVBQU0sQ0FBTixFQUFTLENBQVQ7QUFBekIsU0FBOUQ7QUFDQUgsUUFBQUEsTUFBTSxDQUFDTSxRQUFELENBQU4sQ0FBaUJtQixvQkFBakIsQ0FBc0MsQ0FBQyxlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFELEVBQWMsZUFBRyxDQUFILEVBQU0sQ0FBTixFQUFTLENBQVQsQ0FBZCxDQUF0QztBQUNELE9BSkMsQ0FBRjtBQU1BM0IsTUFBQUEsRUFBRSxDQUFDLHdEQUFELEVBQTJELFlBQU07QUFDakVRLFFBQUFBLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQVg7QUFDQUgsUUFBQUEsQ0FBQyxHQUFHZ0IsaUJBQWlCLENBQUNmLFFBQUQsQ0FBckI7QUFFQUQsUUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhRyxRQUFiLENBQ0U7QUFBRXhCLFVBQUFBLElBQUksRUFBRVAsTUFBTSxDQUFDLENBQUQsQ0FBZDtBQUFtQlEsVUFBQUEsRUFBRSxFQUFFUixNQUFNLENBQUMsQ0FBRDtBQUE3QixTQURGLEVBRUU7QUFDRU8sVUFBQUEsSUFBSSxFQUFFLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBRFI7QUFFRUMsVUFBQUEsRUFBRSxFQUFFLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFUO0FBRk4sU0FGRjtBQU9BSCxRQUFBQSxNQUFNLENBQUNNLFFBQUQsQ0FBTixDQUFpQm1CLG9CQUFqQixDQUFzQyxDQUFDdEMsT0FBTyxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLEdBQVYsQ0FBUixFQUF3QkEsT0FBTyxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLEdBQVYsQ0FBL0IsRUFBK0NRLE1BQU0sQ0FBQyxDQUFELENBQXJELENBQXRDO0FBQ0QsT0FaQyxDQUFGO0FBYUQsS0FwQk8sQ0FBUjtBQXNCQUgsSUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCTSxNQUFBQSxFQUFFLENBQUMsZ0JBQUQsRUFBbUIsWUFBTTtBQUN6Qk8sUUFBQUEsQ0FBQyxHQUFHSyxPQUFPLENBQUM7QUFBRUosVUFBQUEsUUFBUSxFQUFSQTtBQUFGLFNBQUQsQ0FBWDtBQUNBLFlBQU1xQixRQUFRLEdBQUcsQ0FBQyxlQUFHLENBQUgsRUFBTSxDQUFOLENBQUQsQ0FBakI7QUFDQSxZQUFNQyxJQUFJLEdBQUcsQ0FBQyxlQUFHLENBQUgsRUFBTSxDQUFOLENBQUQsQ0FBYjtBQUNBdkIsUUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhTSxRQUFiLENBQXNCRixRQUF0QixFQUFnQ0MsSUFBaEM7QUFDQTVCLFFBQUFBLE1BQU0sQ0FBQ00sUUFBRCxDQUFOLENBQWlCbUIsb0JBQWpCLENBQXNDLENBQUMsZUFBRyxDQUFILEVBQU0sQ0FBTixDQUFELENBQXRDO0FBQ0QsT0FOQyxDQUFGO0FBUUEzQixNQUFBQSxFQUFFLENBQUMsdURBQUQsRUFBMEQsWUFBTTtBQUNoRVEsUUFBQUEsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEVBQUwsRUFBWDtBQUNBSCxRQUFBQSxDQUFDLEdBQUdnQixpQkFBaUIsQ0FBQ2YsUUFBRCxDQUFyQjtBQUVBRCxRQUFBQSxDQUFDLENBQUNrQixRQUFGLEdBQWFNLFFBQWIsQ0FBc0JsQyxNQUF0QixFQUE4QixDQUFDLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQUQsRUFBYyxlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFkLEVBQTJCLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQTNCLENBQTlCO0FBQ0FLLFFBQUFBLE1BQU0sQ0FBQ00sUUFBRCxDQUFOLENBQWlCbUIsb0JBQWpCLENBQXNDLENBQUN0QyxPQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsR0FBVixDQUFSLEVBQXdCQSxPQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsR0FBVixDQUEvQixFQUErQ0EsT0FBTyxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLEdBQVYsQ0FBdEQsQ0FBdEM7QUFDRCxPQU5DLENBQUY7QUFPRCxLQWhCTyxDQUFSO0FBa0JBSyxJQUFBQSxRQUFRLENBQUMsYUFBRCxFQUFnQixZQUFNO0FBQzVCTSxNQUFBQSxFQUFFLENBQUMsb0NBQUQsRUFBdUMsWUFBTTtBQUM3Q08sUUFBQUEsQ0FBQyxHQUFHZ0IsaUJBQWlCLEVBQXJCO0FBRUFoQixRQUFBQSxDQUFDLENBQUNrQixRQUFGLEdBQWFPLFdBQWIsaUNBQThCbkMsTUFBTSxDQUFDLENBQUQsQ0FBcEM7QUFBeUNKLFVBQUFBLEtBQUssRUFBRTtBQUFoRCxZQUE2RCxDQUE3RDtBQUNBUyxRQUFBQSxNQUFNLENBQUNTLGFBQUQsQ0FBTixDQUFzQnNCLGNBQXRCLENBQXFDLGlDQUFNcEMsTUFBTSxDQUFDLENBQUQsQ0FBWjtBQUFpQkosVUFBQUEsS0FBSyxFQUFFO0FBQXhCLFlBQXFDSSxNQUFNLENBQUMsQ0FBRCxDQUEzQyxFQUFnREEsTUFBTSxDQUFDLENBQUQsQ0FBdEQsQ0FBckM7QUFFQVUsUUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhTyxXQUFiLGlDQUE4Qm5DLE1BQU0sQ0FBQyxDQUFELENBQXBDO0FBQXlDSixVQUFBQSxLQUFLLEVBQUU7QUFBaEQsWUFBNkQsQ0FBN0Q7QUFDQVMsUUFBQUEsTUFBTSxDQUFDUyxhQUFELENBQU4sQ0FBc0JzQixjQUF0QixDQUFxQyxDQUFDcEMsTUFBTSxDQUFDLENBQUQsQ0FBUCxrQ0FBaUJBLE1BQU0sQ0FBQyxDQUFELENBQXZCO0FBQTRCSixVQUFBQSxLQUFLLEVBQUU7QUFBbkMsWUFBZ0RJLE1BQU0sQ0FBQyxDQUFELENBQXRELENBQXJDO0FBQ0QsT0FSQyxDQUFGO0FBVUFHLE1BQUFBLEVBQUUsQ0FBQyxnREFBRCxFQUFtRCxZQUFNO0FBQ3pETyxRQUFBQSxDQUFDLEdBQUdnQixpQkFBaUIsRUFBckI7QUFFQWhCLFFBQUFBLENBQUMsQ0FBQ2tCLFFBQUYsR0FBYU8sV0FBYixpQ0FBOEJuQyxNQUFNLENBQUMsQ0FBRCxDQUFwQztBQUF5Q0osVUFBQUEsS0FBSyxFQUFFO0FBQWhELFlBQXNELENBQXREO0FBQ0FTLFFBQUFBLE1BQU0sQ0FBQ1MsYUFBRCxDQUFOLENBQXNCc0IsY0FBdEIsQ0FBcUMsQ0FBQyxlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFELEVBQWNwQyxNQUFNLENBQUMsQ0FBRCxDQUFwQixFQUF5QkEsTUFBTSxDQUFDLENBQUQsQ0FBL0IsQ0FBckM7QUFFQVUsUUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhTyxXQUFiLGlDQUE4Qm5DLE1BQU0sQ0FBQyxDQUFELENBQXBDO0FBQXlDSixVQUFBQSxLQUFLLEVBQUU7QUFBaEQsWUFBc0QsQ0FBdEQ7QUFDQVMsUUFBQUEsTUFBTSxDQUFDUyxhQUFELENBQU4sQ0FBc0JzQixjQUF0QixDQUFxQyxDQUFDcEMsTUFBTSxDQUFDLENBQUQsQ0FBUCxFQUFZLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQVosRUFBeUJBLE1BQU0sQ0FBQyxDQUFELENBQS9CLENBQXJDO0FBQ0QsT0FSQyxDQUFGO0FBU0QsS0FwQk8sQ0FBUjtBQXFCRCxHQS9FTyxDQUFSO0FBaUZBSCxFQUFBQSxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdEJNLElBQUFBLEVBQUUsQ0FBQyxzQkFBRCxFQUF5QixZQUFNO0FBQy9CLFVBQU1pQixjQUFjLEdBQUdSLElBQUksQ0FBQ0MsRUFBTCxFQUF2QjtBQUNBSCxNQUFBQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQztBQUFFSyxRQUFBQSxjQUFjLEVBQWRBLGNBQUY7QUFBa0JwQixRQUFBQSxNQUFNLEVBQUUsQ0FBQyxlQUFHLENBQUgsRUFBTSxDQUFOLENBQUQsRUFBVyxlQUFHLENBQUgsRUFBTSxDQUFOLENBQVgsRUFBcUIsZUFBRyxDQUFILEVBQU0sQ0FBTixDQUFyQjtBQUExQixPQUFELENBQVg7QUFDQVUsTUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhUyxLQUFiO0FBQ0FoQyxNQUFBQSxNQUFNLENBQUNlLGNBQUQsQ0FBTixDQUF1QmtCLGdCQUF2QjtBQUNELEtBTEMsQ0FBRjtBQU1ELEdBUE8sQ0FBUjtBQVNBekMsRUFBQUEsUUFBUSxDQUFDLFlBQUQsRUFBZSxZQUFNO0FBQzNCLFFBQUkwQyxPQUFPLEdBQUczQixJQUFJLENBQUNDLEVBQUwsRUFBZDtBQUNBLFFBQUlPLGNBQWMsR0FBR1IsSUFBSSxDQUFDQyxFQUFMLEVBQXJCO0FBQ0EyQixJQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmcEIsTUFBQUEsY0FBYyxDQUFDcUIsU0FBZjtBQUNBRixNQUFBQSxPQUFPLENBQUNFLFNBQVI7QUFDRCxLQUhTLENBQVY7O0FBS0EsUUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFDQyxZQUFELEVBQWUxQyxNQUFmLEVBQXVCTixLQUF2QixFQUE4QmlELElBQTlCLEVBQXVDO0FBQzVEekMsTUFBQUEsRUFBRSxDQUFDLHNCQUFELEVBQXlCLFlBQU07QUFDL0IsWUFBTU8sQ0FBQyxHQUFHSyxPQUFPLENBQUM7QUFDaEJmLFVBQUFBLE1BQU0sRUFBRSxDQUFDLGVBQUcsQ0FBSCxFQUFNLENBQU4sQ0FBRCxFQUFXLGVBQUcsQ0FBSCxFQUFNLENBQU4sQ0FBWCxFQUFxQixlQUFHLENBQUgsRUFBTSxDQUFOLENBQXJCLENBRFE7QUFFaEJvQixVQUFBQSxjQUFjLEVBQWRBLGNBRmdCO0FBR2hCbUIsVUFBQUEsT0FBTyxFQUFQQSxPQUhnQjtBQUloQkksVUFBQUEsWUFBWSxFQUFaQSxZQUpnQjtBQUtoQjFDLFVBQUFBLE1BQU0sRUFBTkE7QUFMZ0IsU0FBRCxDQUFqQjtBQVFBUyxRQUFBQSxDQUFDLENBQUNrQixRQUFGLEdBQWFpQixVQUFiLENBQXdCLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQXhCLEVBQXFDbEQsS0FBckMsRUFBNEMsRUFBNUM7QUFDQVUsUUFBQUEsTUFBTSxDQUFDdUMsSUFBRCxDQUFOLENBQWFOLGdCQUFiO0FBQ0QsT0FYQyxDQUFGO0FBWUQsS0FiRDs7QUFlQUksSUFBQUEsY0FBYyxDQUFDLElBQUQsRUFBTyxLQUFQLEVBQWMsQ0FBZCxFQUFpQnRCLGNBQWpCLENBQWQ7QUFDQXNCLElBQUFBLGNBQWMsQ0FBQyxJQUFELEVBQU8sS0FBUCxFQUFjLENBQWQsRUFBaUJILE9BQWpCLENBQWQ7QUFDQUcsSUFBQUEsY0FBYyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsQ0FBZixFQUFrQkgsT0FBbEIsQ0FBZDtBQUNBRyxJQUFBQSxjQUFjLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxDQUFiLEVBQWdCSCxPQUFoQixDQUFkO0FBRUFwQyxJQUFBQSxFQUFFLENBQUMsa0NBQUQsRUFBcUMsWUFBTTtBQUMzQyxVQUFNVyxhQUFhLEdBQUdGLElBQUksQ0FBQ0MsRUFBTCxFQUF0QjtBQUNBLFVBQU1ILENBQUMsR0FBR2dCLGlCQUFpQixDQUFDO0FBQzFCb0IsUUFBQUEsZ0JBQWdCLEVBQUUsSUFEUTtBQUUxQmhDLFFBQUFBLGFBQWEsRUFBYkEsYUFGMEI7QUFHMUJkLFFBQUFBLE1BQU0sRUFBRSxDQUFDLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQUQsRUFBYyxlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFkLEVBQTJCLGVBQUcsQ0FBSCxFQUFNLENBQU4sRUFBUyxDQUFULENBQTNCO0FBSGtCLE9BQUQsQ0FBM0I7QUFNQVUsTUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhaUIsVUFBYixDQUF3QixlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUF4QixFQUFxQyxDQUFyQyxFQUF3QyxFQUF4QztBQUNBeEMsTUFBQUEsTUFBTSxDQUFDUyxhQUFELENBQU4sQ0FBc0JnQixvQkFBdEIsQ0FBMkMsQ0FBQ3RDLE9BQU8sQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxFQUFWLENBQVIsRUFBdUIsZUFBRyxDQUFILEVBQU0sQ0FBTixFQUFTLENBQVQsQ0FBdkIsRUFBb0MsZUFBRyxDQUFILEVBQU0sQ0FBTixFQUFTLENBQVQsQ0FBcEMsQ0FBM0M7QUFDRCxLQVZDLENBQUY7QUFZQVcsSUFBQUEsRUFBRSxDQUFDLHNEQUFELEVBQXlELFlBQU07QUFDL0QsVUFBTVcsYUFBYSxHQUFHRixJQUFJLENBQUNDLEVBQUwsRUFBdEI7QUFDQSxVQUFNSCxDQUFDLEdBQUdnQixpQkFBaUIsQ0FBQztBQUMxQm9CLFFBQUFBLGdCQUFnQixFQUFFLElBRFE7QUFFMUJoQyxRQUFBQSxhQUFhLEVBQWJBLGFBRjBCO0FBRzFCaUMsUUFBQUEsYUFBYSxFQUFFO0FBSFcsT0FBRCxDQUEzQjtBQU1BckMsTUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhaUIsVUFBYixDQUF3QixlQUFHLENBQUgsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUF4QixFQUFxQyxDQUFyQyxFQUF3QyxFQUF4QztBQUNBeEMsTUFBQUEsTUFBTSxDQUFDUyxhQUFELENBQU4sQ0FBc0JrQyxxQkFBdEIsQ0FBNEMsQ0FBNUM7QUFDRCxLQVZDLENBQUY7QUFZQTdDLElBQUFBLEVBQUUsQ0FBQyw4Q0FBRCxFQUFpRCxZQUFNO0FBQ3ZELFVBQU1XLGFBQWEsR0FBR0YsSUFBSSxDQUFDQyxFQUFMLEVBQXRCO0FBQ0EsVUFBTUgsQ0FBQyxHQUFHZ0IsaUJBQWlCLENBQUM7QUFBRW9CLFFBQUFBLGdCQUFnQixFQUFFLElBQXBCO0FBQTBCaEMsUUFBQUEsYUFBYSxFQUFiQTtBQUExQixPQUFELENBQTNCO0FBRUFKLE1BQUFBLENBQUMsQ0FBQ2tCLFFBQUYsR0FBYWlCLFVBQWIsQ0FBd0I3QyxNQUFNLENBQUMsQ0FBRCxDQUE5QixFQUFtQyxDQUFuQyxFQUFzQyxFQUF0QztBQUNBSyxNQUFBQSxNQUFNLENBQUNTLGFBQUQsQ0FBTixDQUFzQmdCLG9CQUF0QixDQUEyQzlCLE1BQTNDO0FBQ0QsS0FOQyxDQUFGO0FBT0QsR0EzRE8sQ0FBUjtBQTRERCxDQS9MTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ3JhcGhQcm9wcywgeHkgfSBmcm9tICcuLi8uLi8uLi9fX3Rlc3RzX18vdXRpbHMnO1xuXG5pbXBvcnQgeyBSYXdCYXNlQ29tcG9uZW50LCBidWlsZExpbmVzLCBzd2FwIH0gZnJvbSAnLi4vY29tcG9uZW50JztcblxuY29uc3QgeHlMYWJlbCA9ICh4LCB5LCBpbmRleCwgbGFiZWwpID0+ICh7XG4gIC4uLnh5KHgsIHksIGluZGV4KSxcbiAgbGFiZWwsXG59KTtcblxuZGVzY3JpYmUoJ2J1aWxkTGluZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRQb2ludHMgPSBbeHkoMCwgMCksIHh5KDEsIDEpLCB4eSgxLCAwKV07XG5cbiAgY29uc3QgYXNzZXJ0QnVpbGRMaW5lcyA9IChwb2ludHMsIGNsb3NlZCwgZXhwZWN0ZWQpID0+IHtcbiAgICBpdChgYnVpbGRzIHBvaW50cyBhbmQgbGluZXMgZm9yICR7cG9pbnRzfSA9ICR7ZXhwZWN0ZWR9YCwgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRMaW5lcyhwb2ludHMpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaE9iamVjdChbXG4gICAgICAgIHsgZnJvbTogeHkoMCwgMCwgMCksIHRvOiB4eSgxLCAxLCAxKSB9LFxuICAgICAgICB7IGZyb206IHh5KDEsIDEsIDEpLCB0bzogeHkoMSwgMCwgMikgfSxcbiAgICAgIF0pO1xuICAgIH0pO1xuICB9O1xuXG4gIGFzc2VydEJ1aWxkTGluZXMoZGVmYXVsdFBvaW50cywgdHJ1ZSwgW10pO1xufSk7XG5cbmRlc2NyaWJlKCdzd2FwJywgKCkgPT4ge1xuICBpdCgnc3dhcHMgcGFpcnMnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gc3dhcChbeHkoMCwgMCwgMCksIHh5KDEsIDEsIDEpLCB4eSgyLCAyLCAyKV0sIHh5KDAsIDAsIDApLCB4eSgzLCAzLCAwKSk7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChbeHkoMywgMywgMCksIHh5KDEsIDEsIDEpLCB4eSgyLCAyLCAyKV0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnUmF3QmFzZUNvbXBvbmVudCcsICgpID0+IHtcbiAgbGV0IHc7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgbGV0IG9uQ2hhbmdlUHJvcHMgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ2hhbmdlUHJvcHMsXG4gICAgICBvbkNsb3NlUG9seWdvbjogamVzdC5mbigpLFxuICAgICAgZ3JhcGhQcm9wczogZ3JhcGhQcm9wcygpLFxuICAgICAgcG9pbnRzOiBbXSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG5cbiAgICByZXR1cm4gc2hhbGxvdyg8UmF3QmFzZUNvbXBvbmVudCB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICAvLyB1c2VkIHRvIHRlc3QgaXRlbXMgdGhhdCBoYXZlIGxhYmVscyBhdHRhY2hlZCB0byBwb2ludHNcbiAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICBjb25zdCBwb2ludHMgPSBbeHlMYWJlbCgwLCAwLCAwLCAnQScpLCB4eUxhYmVsKDIsIDIsIDEsICdCJyksIHh5TGFiZWwoMCwgMiwgMiwgJ0MnKV07XG4gIGNvbnN0IHdyYXBwZXJXaXRoTGFiZWxzID0gKGV4dHJhcykgPT5cbiAgICB3cmFwcGVyKHtcbiAgICAgIGxhYmVsTm9kZTogbGFiZWxOb2RlLFxuICAgICAgcG9pbnRzOiBwb2ludHMsXG4gICAgICAuLi5leHRyYXMsXG4gICAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgdyA9IHdyYXBwZXIoKTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggbGFiZWxzJywgKCkgPT4ge1xuICAgICAgdyA9IHdyYXBwZXJXaXRoTGFiZWxzKCk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBkZXNjcmliZSgnZHJhZ1BvaW50JywgKCkgPT4ge1xuICAgICAgaXQoJ2NhbGxzIG9uQ2hhbmdlJywgKCkgPT4ge1xuICAgICAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICAgICAgdyA9IHdyYXBwZXIoeyBwb2ludHM6IFt4eSgxLCAxKV0sIG9uQ2hhbmdlIH0pO1xuICAgICAgICB3Lmluc3RhbmNlKCkuZHJhZ1BvaW50KDAsIHh5KDEsIDEpLCB4eSgyLCAyKSk7XG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoW3h5KDIsIDIpXSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIGtlZXBpbmcgbGFiZWwgcHJvcGVydHkgZnJvbSBwb2ludCcsICgpID0+IHtcbiAgICAgICAgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgICAgIHcgPSB3cmFwcGVyV2l0aExhYmVscyhvbkNoYW5nZSk7XG5cbiAgICAgICAgdy5pbnN0YW5jZSgpLmRyYWdQb2ludCgwLCB4eSgwLCAwKSwgeHkoMCwgMSkpO1xuICAgICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFt7IHg6IDAsIHk6IDEsIGxhYmVsOiAnQScgfSwgcG9pbnRzWzFdLCBwb2ludHNbMl1dKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2RyYWdMaW5lJywgKCkgPT4ge1xuICAgICAgaXQoJ2NhbGxzIG9uQ2hhbmdlJywgKCkgPT4ge1xuICAgICAgICB3ID0gd3JhcHBlcih7IHBvaW50czogW3h5KDEsIDEsIDApLCB4eSgyLCAyLCAxKV0sIG9uQ2hhbmdlIH0pO1xuICAgICAgICB3Lmluc3RhbmNlKCkuZHJhZ0xpbmUoeyBmcm9tOiB4eSgxLCAxLCAwKSwgdG86IHh5KDIsIDIsIDEpIH0sIHsgZnJvbTogeHkoMiwgMiwgMCksIHRvOiB4eSg0LCA0LCAxKSB9KTtcbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbeHkoMiwgMiwgMCksIHh5KDQsIDQsIDEpXSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIGtlZXBpbmcgbGFiZWwgcHJvcGVydHkgZnJvbSBib3RoIHBvaW50cycsICgpID0+IHtcbiAgICAgICAgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgICAgIHcgPSB3cmFwcGVyV2l0aExhYmVscyhvbkNoYW5nZSk7XG5cbiAgICAgICAgdy5pbnN0YW5jZSgpLmRyYWdMaW5lKFxuICAgICAgICAgIHsgZnJvbTogcG9pbnRzWzBdLCB0bzogcG9pbnRzWzFdIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZnJvbTogeHkoMCwgMSwgMCksXG4gICAgICAgICAgICB0bzogeHkoMiwgMywgMSksXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbeHlMYWJlbCgwLCAxLCAwLCAnQScpLCB4eUxhYmVsKDIsIDMsIDEsICdCJyksIHBvaW50c1syXV0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnZHJhZ1BvbHknLCAoKSA9PiB7XG4gICAgICBpdCgnY2FsbHMgb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIHcgPSB3cmFwcGVyKHsgb25DaGFuZ2UgfSk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gW3h5KDEsIDEpXTtcbiAgICAgICAgY29uc3QgbmV4dCA9IFt4eSgyLCAyKV07XG4gICAgICAgIHcuaW5zdGFuY2UoKS5kcmFnUG9seShleGlzdGluZywgbmV4dCk7XG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoW3h5KDIsIDIpXSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIGtlZXBpbmcgbGFiZWwgcHJvcGVydHkgZnJvbSBhbGwgcG9pbnRzJywgKCkgPT4ge1xuICAgICAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICAgICAgdyA9IHdyYXBwZXJXaXRoTGFiZWxzKG9uQ2hhbmdlKTtcblxuICAgICAgICB3Lmluc3RhbmNlKCkuZHJhZ1BvbHkocG9pbnRzLCBbeHkoMCwgMSwgMCksIHh5KDIsIDMsIDEpLCB4eSgwLCAzLCAyKV0pO1xuICAgICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFt4eUxhYmVsKDAsIDEsIDAsICdBJyksIHh5TGFiZWwoMiwgMywgMSwgJ0InKSwgeHlMYWJlbCgwLCAzLCAyLCAnQycpXSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdsYWJlbENoYW5nZScsICgpID0+IHtcbiAgICAgIGl0KCd1cGRhdGVzIFwibGFiZWxcIiBwcm9wZXJ0eSBmb3IgcG9pbnQnLCAoKSA9PiB7XG4gICAgICAgIHcgPSB3cmFwcGVyV2l0aExhYmVscygpO1xuXG4gICAgICAgIHcuaW5zdGFuY2UoKS5sYWJlbENoYW5nZSh7IC4uLnBvaW50c1swXSwgbGFiZWw6ICdMYWJlbCBBJyB9LCAwKTtcbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlUHJvcHMpLnRvQmVDYWxsZWRXaXRoKFt7IC4uLnBvaW50c1swXSwgbGFiZWw6ICdMYWJlbCBBJyB9LCBwb2ludHNbMV0sIHBvaW50c1syXV0pO1xuXG4gICAgICAgIHcuaW5zdGFuY2UoKS5sYWJlbENoYW5nZSh7IC4uLnBvaW50c1sxXSwgbGFiZWw6ICdMYWJlbCBCJyB9LCAxKTtcbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlUHJvcHMpLnRvQmVDYWxsZWRXaXRoKFtwb2ludHNbMF0sIHsgLi4ucG9pbnRzWzFdLCBsYWJlbDogJ0xhYmVsIEInIH0sIHBvaW50c1syXV0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdyZW1vdmVzIFwibGFiZWxcIiBwcm9wZXJ0eSBpZiB0aGUgZmllbGQgaXMgZW1wdHknLCAoKSA9PiB7XG4gICAgICAgIHcgPSB3cmFwcGVyV2l0aExhYmVscygpO1xuXG4gICAgICAgIHcuaW5zdGFuY2UoKS5sYWJlbENoYW5nZSh7IC4uLnBvaW50c1swXSwgbGFiZWw6ICcnIH0sIDApO1xuICAgICAgICBleHBlY3Qob25DaGFuZ2VQcm9wcykudG9CZUNhbGxlZFdpdGgoW3h5KDAsIDAsIDApLCBwb2ludHNbMV0sIHBvaW50c1syXV0pO1xuXG4gICAgICAgIHcuaW5zdGFuY2UoKS5sYWJlbENoYW5nZSh7IC4uLnBvaW50c1sxXSwgbGFiZWw6ICcnIH0sIDEpO1xuICAgICAgICBleHBlY3Qob25DaGFuZ2VQcm9wcykudG9CZUNhbGxlZFdpdGgoW3BvaW50c1swXSwgeHkoMiwgMiwgMSksIHBvaW50c1syXV0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjbG9zZScsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgb25DbG9zZVBvbHlnb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbkNsb3NlUG9seWdvbiA9IGplc3QuZm4oKTtcbiAgICAgIHcgPSB3cmFwcGVyKHsgb25DbG9zZVBvbHlnb24sIHBvaW50czogW3h5KDEsIDEpLCB4eSgyLCAyKSwgeHkoMywgMyldIH0pO1xuICAgICAgdy5pbnN0YW5jZSgpLmNsb3NlKCk7XG4gICAgICBleHBlY3Qob25DbG9zZVBvbHlnb24pLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NsaWNrUG9pbnQnLCAoKSA9PiB7XG4gICAgbGV0IG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG4gICAgbGV0IG9uQ2xvc2VQb2x5Z29uID0gamVzdC5mbigpO1xuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgb25DbG9zZVBvbHlnb24ubW9ja0NsZWFyKCk7XG4gICAgICBvbkNsaWNrLm1vY2tDbGVhcigpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYXNzZXJ0Q2FsbGJhY2sgPSAoaXNUb29sQWN0aXZlLCBjbG9zZWQsIGluZGV4LCBtb2NrKSA9PiB7XG4gICAgICBpdCgnY2FsbHMgb25DbG9zZVBvbHlnb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHcgPSB3cmFwcGVyKHtcbiAgICAgICAgICBwb2ludHM6IFt4eSgxLCAxKSwgeHkoMiwgMiksIHh5KDMsIDMpXSxcbiAgICAgICAgICBvbkNsb3NlUG9seWdvbixcbiAgICAgICAgICBvbkNsaWNrLFxuICAgICAgICAgIGlzVG9vbEFjdGl2ZSxcbiAgICAgICAgICBjbG9zZWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHcuaW5zdGFuY2UoKS5jbGlja1BvaW50KHh5KDEsIDEsIDApLCBpbmRleCwge30pO1xuICAgICAgICBleHBlY3QobW9jaykudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzc2VydENhbGxiYWNrKHRydWUsIGZhbHNlLCAwLCBvbkNsb3NlUG9seWdvbik7XG4gICAgYXNzZXJ0Q2FsbGJhY2sodHJ1ZSwgZmFsc2UsIDEsIG9uQ2xpY2spO1xuICAgIGFzc2VydENhbGxiYWNrKGZhbHNlLCBmYWxzZSwgMCwgb25DbGljayk7XG4gICAgYXNzZXJ0Q2FsbGJhY2sodHJ1ZSwgdHJ1ZSwgMCwgb25DbGljayk7XG5cbiAgICBpdCgnYWRkcyBcImxhYmVsXCIgcHJvcGVydHkgdG8gYSBwb2ludCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG9uQ2hhbmdlUHJvcHMgPSBqZXN0LmZuKCk7XG4gICAgICBjb25zdCB3ID0gd3JhcHBlcldpdGhMYWJlbHMoe1xuICAgICAgICBsYWJlbE1vZGVFbmFibGVkOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZVByb3BzLFxuICAgICAgICBwb2ludHM6IFt4eSgwLCAwLCAwKSwgeHkoMiwgMiwgMSksIHh5KDAsIDIsIDIpXSxcbiAgICAgIH0pO1xuXG4gICAgICB3Lmluc3RhbmNlKCkuY2xpY2tQb2ludCh4eSgwLCAwLCAwKSwgMCwge30pO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlUHJvcHMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFt4eUxhYmVsKDAsIDAsIDAsICcnKSwgeHkoMiwgMiwgMSksIHh5KDAsIDIsIDIpXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYWRkcyBcImxhYmVsXCIgcHJvcGVydHkgdG8gYSBwb2ludCB3aGVuIGxpbWl0IGxhYmVsaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3Qgb25DaGFuZ2VQcm9wcyA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IHcgPSB3cmFwcGVyV2l0aExhYmVscyh7XG4gICAgICAgIGxhYmVsTW9kZUVuYWJsZWQ6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlUHJvcHMsXG4gICAgICAgIGxpbWl0TGFiZWxpbmc6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdy5pbnN0YW5jZSgpLmNsaWNrUG9pbnQoeHkoMCwgMCwgMCksIDAsIHt9KTtcbiAgICAgIGV4cGVjdChvbkNoYW5nZVByb3BzKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaWYgcG9pbnQgYWxyZWFkeSBoYXMgbGFiZWwsIGtlZXBzIHRoYXQgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbkNoYW5nZVByb3BzID0gamVzdC5mbigpO1xuICAgICAgY29uc3QgdyA9IHdyYXBwZXJXaXRoTGFiZWxzKHsgbGFiZWxNb2RlRW5hYmxlZDogdHJ1ZSwgb25DaGFuZ2VQcm9wcyB9KTtcblxuICAgICAgdy5pbnN0YW5jZSgpLmNsaWNrUG9pbnQocG9pbnRzWzBdLCAwLCB7fSk7XG4gICAgICBleHBlY3Qob25DaGFuZ2VQcm9wcykudG9IYXZlQmVlbkNhbGxlZFdpdGgocG9pbnRzKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _index = require("../index");
|
|
4
|
+
|
|
5
|
+
var xy = function xy(x, y) {
|
|
6
|
+
return {
|
|
7
|
+
x: x,
|
|
8
|
+
y: y
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
describe('polygon', function () {
|
|
13
|
+
describe('addPointToArray', function () {
|
|
14
|
+
var assertAddPoint = function assertAddPoint(point, arr, expected) {
|
|
15
|
+
it("returns ".concat(expected, " when adding ").concat(point, " to ").concat(arr), function () {
|
|
16
|
+
var result = (0, _index.addPointToArray)(point, arr);
|
|
17
|
+
expect(result).toEqual(expected);
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
assertAddPoint(xy(0, 0), [], {
|
|
22
|
+
closed: false,
|
|
23
|
+
points: [xy(0, 0)]
|
|
24
|
+
});
|
|
25
|
+
assertAddPoint(xy(0, 0), [xy(0, 0)], {
|
|
26
|
+
closed: false,
|
|
27
|
+
points: [xy(0, 0)]
|
|
28
|
+
});
|
|
29
|
+
assertAddPoint(xy(1, 1), [xy(0, 0)], {
|
|
30
|
+
closed: false,
|
|
31
|
+
points: [xy(0, 0), xy(1, 1)]
|
|
32
|
+
});
|
|
33
|
+
assertAddPoint(xy(1, 1), [xy(0, 0)], {
|
|
34
|
+
closed: false,
|
|
35
|
+
points: [xy(0, 0), xy(1, 1)]
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe('tool', function () {
|
|
40
|
+
var t;
|
|
41
|
+
beforeEach(function () {
|
|
42
|
+
t = (0, _index.tool)();
|
|
43
|
+
});
|
|
44
|
+
it('creates polygon type', function () {
|
|
45
|
+
expect(t.type).toEqual('polygon');
|
|
46
|
+
});
|
|
47
|
+
describe('complete', function () {
|
|
48
|
+
it('closes polygon', function () {
|
|
49
|
+
expect(t.complete()).toEqual({
|
|
50
|
+
building: false,
|
|
51
|
+
closed: true
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe('addPoint', function () {
|
|
56
|
+
it('creates new point', function () {
|
|
57
|
+
var mark = t.addPoint({
|
|
58
|
+
x: 0,
|
|
59
|
+
y: 0
|
|
60
|
+
});
|
|
61
|
+
expect(mark).toEqual({
|
|
62
|
+
type: 'polygon',
|
|
63
|
+
points: [{
|
|
64
|
+
x: 0,
|
|
65
|
+
y: 0
|
|
66
|
+
}],
|
|
67
|
+
closed: false,
|
|
68
|
+
building: true
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
it('adds the point', function () {
|
|
72
|
+
var mark = t.addPoint({
|
|
73
|
+
x: 0,
|
|
74
|
+
y: 0
|
|
75
|
+
}, {
|
|
76
|
+
points: [{
|
|
77
|
+
x: 1,
|
|
78
|
+
y: 1
|
|
79
|
+
}]
|
|
80
|
+
});
|
|
81
|
+
expect(mark).toEqual({
|
|
82
|
+
building: true,
|
|
83
|
+
closed: false,
|
|
84
|
+
points: [{
|
|
85
|
+
x: 1,
|
|
86
|
+
y: 1
|
|
87
|
+
}, {
|
|
88
|
+
x: 0,
|
|
89
|
+
y: 0
|
|
90
|
+
}]
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL19fdGVzdHNfXy9pbmRleC50ZXN0LmpzIl0sIm5hbWVzIjpbInh5IiwieCIsInkiLCJkZXNjcmliZSIsImFzc2VydEFkZFBvaW50IiwicG9pbnQiLCJhcnIiLCJleHBlY3RlZCIsIml0IiwicmVzdWx0IiwiZXhwZWN0IiwidG9FcXVhbCIsImNsb3NlZCIsInBvaW50cyIsInQiLCJiZWZvcmVFYWNoIiwidHlwZSIsImNvbXBsZXRlIiwiYnVpbGRpbmciLCJtYXJrIiwiYWRkUG9pbnQiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBRUEsSUFBTUEsRUFBRSxHQUFHLFNBQUxBLEVBQUssQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsU0FBVztBQUFFRCxJQUFBQSxDQUFDLEVBQURBLENBQUY7QUFBS0MsSUFBQUEsQ0FBQyxFQUFEQTtBQUFMLEdBQVg7QUFBQSxDQUFYOztBQUVBQyxRQUFRLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDeEJBLEVBQUFBLFFBQVEsQ0FBQyxpQkFBRCxFQUFvQixZQUFNO0FBQ2hDLFFBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsS0FBRCxFQUFRQyxHQUFSLEVBQWFDLFFBQWIsRUFBMEI7QUFDL0NDLE1BQUFBLEVBQUUsbUJBQVlELFFBQVosMEJBQW9DRixLQUFwQyxpQkFBZ0RDLEdBQWhELEdBQXVELFlBQU07QUFDN0QsWUFBTUcsTUFBTSxHQUFHLDRCQUFnQkosS0FBaEIsRUFBdUJDLEdBQXZCLENBQWY7QUFDQUksUUFBQUEsTUFBTSxDQUFDRCxNQUFELENBQU4sQ0FBZUUsT0FBZixDQUF1QkosUUFBdkI7QUFDRCxPQUhDLENBQUY7QUFJRCxLQUxEOztBQU1BSCxJQUFBQSxjQUFjLENBQUNKLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUFILEVBQVcsRUFBWCxFQUFlO0FBQUVZLE1BQUFBLE1BQU0sRUFBRSxLQUFWO0FBQWlCQyxNQUFBQSxNQUFNLEVBQUUsQ0FB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Q0FBTDtBQUFRQyxRQUFBQSxDQUFDLEVBQUU7QUFBWCxPQUFYLEVBQTJCO0FBQUVXLFFBQUFBLE1BQU0sRUFBRSxDQUFDO0FBQUVaLFVBQUFBLENBQUMsRUFBRSxDQUFMO0FBQVFDLFVBQUFBLENBQUMsRUFBRTtBQUFYLFNBQUQ7QUFBVixPQUEzQixDQUFiO0FBQ0FRLE1BQUFBLE1BQU0sQ0FBQ1MsSUFBRCxDQUFOLENBQWFSLE9BQWIsQ0FBcUI7QUFDbkJPLFFBQUFBLFFBQVEsRUFBRSxJQURTO0FBRW5CTixRQUFBQSxNQUFNLEVBQUUsS0FGVztBQUduQkMsUUFBQUEsTUFBTSxFQUFFLENBQ047QUFBRVosVUFBQUEsQ0FBQyxFQUFFLENBQUw7QUFBUUMsVUFBQUEsQ0FBQyxFQUFFO0FBQVgsU0FETSxFQUVOO0FBQUVELFVBQUFBLENBQUMsRUFBRSxDQUFMO0FBQVFDLFVBQUFBLENBQUMsRUFBRTtBQUFYLFNBRk07QUFIVyxPQUFyQjtBQVFELEtBVkMsQ0FBRjtBQVdELEdBdEJPLENBQVI7QUF1QkQsQ0F2Q08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBvaW50VG9BcnJheSwgdG9vbCB9IGZyb20gJy4uL2luZGV4JztcblxuY29uc3QgeHkgPSAoeCwgeSkgPT4gKHsgeCwgeSB9KTtcblxuZGVzY3JpYmUoJ3BvbHlnb24nLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdhZGRQb2ludFRvQXJyYXknLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0QWRkUG9pbnQgPSAocG9pbnQsIGFyciwgZXhwZWN0ZWQpID0+IHtcbiAgICAgIGl0KGByZXR1cm5zICR7ZXhwZWN0ZWR9IHdoZW4gYWRkaW5nICR7cG9pbnR9IHRvICR7YXJyfWAsICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYWRkUG9pbnRUb0FycmF5KHBvaW50LCBhcnIpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgYXNzZXJ0QWRkUG9pbnQoeHkoMCwgMCksIFtdLCB7IGNsb3NlZDogZmFsc2UsIHBvaW50czogW3h5KDAsIDApXSB9KTtcbiAgICBhc3NlcnRBZGRQb2ludCh4eSgwLCAwKSwgW3h5KDAsIDApXSwgeyBjbG9zZWQ6IGZhbHNlLCBwb2ludHM6IFt4eSgwLCAwKV0gfSk7XG4gICAgYXNzZXJ0QWRkUG9pbnQoeHkoMSwgMSksIFt4eSgwLCAwKV0sIHtcbiAgICAgIGNsb3NlZDogZmFsc2UsXG4gICAgICBwb2ludHM6IFt4eSgwLCAwKSwgeHkoMSwgMSldLFxuICAgIH0pO1xuICAgIGFzc2VydEFkZFBvaW50KHh5KDEsIDEpLCBbeHkoMCwgMCldLCB7XG4gICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgICAgcG9pbnRzOiBbeHkoMCwgMCksIHh5KDEsIDEpXSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3Rvb2wnLCAoKSA9PiB7XG4gIGxldCB0O1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB0ID0gdG9vbCgpO1xuICB9KTtcblxuICBpdCgnY3JlYXRlcyBwb2x5Z29uIHR5cGUnLCAoKSA9PiB7XG4gICAgZXhwZWN0KHQudHlwZSkudG9FcXVhbCgncG9seWdvbicpO1xuICB9KTtcblxuICBkZXNjcmliZSgnY29tcGxldGUnLCAoKSA9PiB7XG4gICAgaXQoJ2Nsb3NlcyBwb2x5Z29uJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHQuY29tcGxldGUoKSkudG9FcXVhbCh7IGJ1aWxkaW5nOiBmYWxzZSwgY2xvc2VkOiB0cnVlIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYWRkUG9pbnQnLCAoKSA9PiB7XG4gICAgaXQoJ2NyZWF0ZXMgbmV3IHBvaW50JywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFyayA9IHQuYWRkUG9pbnQoeyB4OiAwLCB5OiAwIH0pO1xuICAgICAgZXhwZWN0KG1hcmspLnRvRXF1YWwoe1xuICAgICAgICB0eXBlOiAncG9seWdvbicsXG4gICAgICAgIHBvaW50czogW3sgeDogMCwgeTogMCB9XSxcbiAgICAgICAgY2xvc2VkOiBmYWxzZSxcbiAgICAgICAgYnVpbGRpbmc6IHRydWUsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhZGRzIHRoZSBwb2ludCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmsgPSB0LmFkZFBvaW50KHsgeDogMCwgeTogMCB9LCB7IHBvaW50czogW3sgeDogMSwgeTogMSB9XSB9KTtcbiAgICAgIGV4cGVjdChtYXJrKS50b0VxdWFsKHtcbiAgICAgICAgYnVpbGRpbmc6IHRydWUsXG4gICAgICAgIGNsb3NlZDogZmFsc2UsXG4gICAgICAgIHBvaW50czogW1xuICAgICAgICAgIHsgeDogMSwgeTogMSB9LFxuICAgICAgICAgIHsgeDogMCwgeTogMCB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _enzyme = require("enzyme");
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _line = require("../line");
|
|
12
|
+
|
|
13
|
+
var _utils = require("../../../__tests__/utils");
|
|
14
|
+
|
|
15
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
+
|
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
+
|
|
19
|
+
describe('Line', function () {
|
|
20
|
+
var w;
|
|
21
|
+
var onChange = jest.fn();
|
|
22
|
+
|
|
23
|
+
var wrapper = function wrapper(extras) {
|
|
24
|
+
var defaults = {
|
|
25
|
+
classes: {},
|
|
26
|
+
className: 'className',
|
|
27
|
+
graphProps: (0, _utils.graphProps)()
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
31
|
+
|
|
32
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_line.Line, props));
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
describe('snapshot', function () {
|
|
36
|
+
it('renders', function () {
|
|
37
|
+
w = wrapper();
|
|
38
|
+
expect(w).toMatchSnapshot();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('logic', function () {});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL19fdGVzdHNfXy9saW5lLnRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwidyIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwid3JhcHBlciIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsImdyYXBoUHJvcHMiLCJwcm9wcyIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUFBLFFBQVEsQ0FBQyxNQUFELEVBQVMsWUFBTTtBQUNyQixNQUFJQyxDQUFKO0FBQ0EsTUFBSUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEVBQUwsRUFBZjs7QUFDQSxNQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxNQUFELEVBQVk7QUFDMUIsUUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLE1BQUFBLE9BQU8sRUFBRSxFQURNO0FBRWZDLE1BQUFBLFNBQVMsRUFBRSxXQUZJO0FBR2ZDLE1BQUFBLFVBQVUsRUFBRTtBQUhHLEtBQWpCOztBQUtBLFFBQU1DLEtBQUssbUNBQVFKLFFBQVIsR0FBcUJELE1BQXJCLENBQVg7O0FBQ0EsV0FBTyxtQ0FBUSxnQ0FBQyxVQUFELEVBQVVLLEtBQVYsQ0FBUixDQUFQO0FBQ0QsR0FSRDs7QUFTQVgsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCWSxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEJYLE1BQUFBLENBQUMsR0FBR0ksT0FBTyxFQUFYO0FBQ0FRLE1BQUFBLE1BQU0sQ0FBQ1osQ0FBRCxDQUFOLENBQVVhLGVBQVY7QUFDRCxLQUhDLENBQUY7QUFJRCxHQUxPLENBQVI7QUFNQWQsRUFBQUEsUUFBUSxDQUFDLE9BQUQsRUFBVSxZQUFNLENBQUUsQ0FBbEIsQ0FBUjtBQUNELENBbkJPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5lIH0gZnJvbSAnLi4vbGluZSc7XG5pbXBvcnQgeyBncmFwaFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX190ZXN0c19fL3V0aWxzJztcblxuZGVzY3JpYmUoJ0xpbmUnLCAoKSA9PiB7XG4gIGxldCB3O1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBncmFwaFByb3BzOiBncmFwaFByb3BzKCksXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiBzaGFsbG93KDxMaW5lIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICB3ID0gd3JhcHBlcigpO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge30pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _enzyme = require("enzyme");
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _polygon = require("../polygon");
|
|
12
|
+
|
|
13
|
+
var _utils = require("../../../__tests__/utils");
|
|
14
|
+
|
|
15
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
+
|
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
+
|
|
19
|
+
var xy = function xy(x, y) {
|
|
20
|
+
return {
|
|
21
|
+
x: x,
|
|
22
|
+
y: y
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
describe('Polygon', function () {
|
|
27
|
+
var w;
|
|
28
|
+
|
|
29
|
+
var wrapper = function wrapper(extras) {
|
|
30
|
+
var defaults = {
|
|
31
|
+
classes: {},
|
|
32
|
+
className: 'className',
|
|
33
|
+
graphProps: (0, _utils.graphProps)(),
|
|
34
|
+
closed: false
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
38
|
+
|
|
39
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_polygon.Polygon, props));
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
describe('snapshot', function () {
|
|
43
|
+
it('renders', function () {
|
|
44
|
+
w = wrapper({
|
|
45
|
+
points: [{
|
|
46
|
+
x: 1,
|
|
47
|
+
y: 1
|
|
48
|
+
}]
|
|
49
|
+
});
|
|
50
|
+
expect(w).toMatchSnapshot();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('getPointString', function () {
|
|
55
|
+
var assertString = function assertString(arr, expected) {
|
|
56
|
+
it('creates: ', function () {
|
|
57
|
+
var result = (0, _polygon.getPointString)(arr, {
|
|
58
|
+
x: jest.fn(function (n) {
|
|
59
|
+
return n;
|
|
60
|
+
}),
|
|
61
|
+
y: jest.fn(function (n) {
|
|
62
|
+
return n;
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
expect(result).toEqual(expected);
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
assertString([xy(1, 1)], '1,1');
|
|
70
|
+
assertString([xy(1, 1), xy(2, 1)], '1,1 2,1');
|
|
71
|
+
assertString([xy(1, 1), xy(2, 1), xy(4, 4)], '1,1 2,1 4,4');
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9wb2x5Z29uL19fdGVzdHNfXy9wb2x5Z29uLnRlc3QuanN4Il0sIm5hbWVzIjpbInh5IiwieCIsInkiLCJkZXNjcmliZSIsInciLCJ3cmFwcGVyIiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZ3JhcGhQcm9wcyIsImNsb3NlZCIsInByb3BzIiwiaXQiLCJwb2ludHMiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJhc3NlcnRTdHJpbmciLCJhcnIiLCJleHBlY3RlZCIsInJlc3VsdCIsImplc3QiLCJmbiIsIm4iLCJ0b0VxdWFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsRUFBRSxHQUFHLFNBQUxBLEVBQUssQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsU0FBVztBQUFFRCxJQUFBQSxDQUFDLEVBQURBLENBQUY7QUFBS0MsSUFBQUEsQ0FBQyxFQUFEQTtBQUFMLEdBQVg7QUFBQSxDQUFYOztBQUVBQyxRQUFRLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDeEIsTUFBSUMsQ0FBSjs7QUFDQSxNQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxNQUFELEVBQVk7QUFDMUIsUUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLE1BQUFBLE9BQU8sRUFBRSxFQURNO0FBRWZDLE1BQUFBLFNBQVMsRUFBRSxXQUZJO0FBR2ZDLE1BQUFBLFVBQVUsRUFBRSx3QkFIRztBQUlmQyxNQUFBQSxNQUFNLEVBQUU7QUFKTyxLQUFqQjs7QUFNQSxRQUFNQyxLQUFLLG1DQUFRTCxRQUFSLEdBQXFCRCxNQUFyQixDQUFYOztBQUNBLFdBQU8sbUNBQVEsZ0NBQUMsZ0JBQUQsRUFBYU0sS0FBYixDQUFSLENBQVA7QUFDRCxHQVREOztBQVdBVCxFQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekJVLElBQUFBLEVBQUUsQ0FBQyxTQUFELEVBQVksWUFBTTtBQUNsQlQsTUFBQUEsQ0FBQyxHQUFHQyxPQUFPLENBQUM7QUFBRVMsUUFBQUEsTUFBTSxFQUFFLENBQUM7QUFBRWIsVUFBQUEsQ0FBQyxFQUFFLENBQUw7QUFBUUMsVUFBQUEsQ0FBQyxFQUFFO0FBQVgsU0FBRDtBQUFWLE9BQUQsQ0FBWDtBQUNBYSxNQUFBQSxNQUFNLENBQUNYLENBQUQsQ0FBTixDQUFVWSxlQUFWO0FBQ0QsS0FIQyxDQUFGO0FBSUQsR0FMTyxDQUFSO0FBTUQsQ0FuQk8sQ0FBUjtBQXFCQWIsUUFBUSxDQUFDLGdCQUFELEVBQW1CLFlBQU07QUFDL0IsTUFBTWMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsR0FBRCxFQUFNQyxRQUFOLEVBQW1CO0FBQ3RDTixJQUFBQSxFQUFFLENBQUMsV0FBRCxFQUFjLFlBQU07QUFDcEIsVUFBTU8sTUFBTSxHQUFHLDZCQUFlRixHQUFmLEVBQW9CO0FBQ2pDakIsUUFBQUEsQ0FBQyxFQUFFb0IsSUFBSSxDQUFDQyxFQUFMLENBQVEsVUFBQ0MsQ0FBRDtBQUFBLGlCQUFPQSxDQUFQO0FBQUEsU0FBUixDQUQ4QjtBQUVqQ3JCLFFBQUFBLENBQUMsRUFBRW1CLElBQUksQ0FBQ0MsRUFBTCxDQUFRLFVBQUNDLENBQUQ7QUFBQSxpQkFBT0EsQ0FBUDtBQUFBLFNBQVI7QUFGOEIsT0FBcEIsQ0FBZjtBQUtBUixNQUFBQSxNQUFNLENBQUNLLE1BQUQsQ0FBTixDQUFlSSxPQUFmLENBQXVCTCxRQUF2QjtBQUNELEtBUEMsQ0FBRjtBQVFELEdBVEQ7O0FBV0FGLEVBQUFBLFlBQVksQ0FBQyxDQUFDakIsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLENBQUgsQ0FBRCxFQUFhLEtBQWIsQ0FBWjtBQUNBaUIsRUFBQUEsWUFBWSxDQUFDLENBQUNqQixFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FBSCxFQUFXQSxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FBYixDQUFELEVBQXVCLFNBQXZCLENBQVo7QUFDQWlCLEVBQUFBLFlBQVksQ0FBQyxDQUFDakIsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLENBQUgsRUFBV0EsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLENBQWIsRUFBcUJBLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUF2QixDQUFELEVBQWlDLGFBQWpDLENBQVo7QUFDRCxDQWZPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQb2x5Z29uLCBnZXRQb2ludFN0cmluZyB9IGZyb20gJy4uL3BvbHlnb24nO1xuaW1wb3J0IHsgZ3JhcGhQcm9wcyB9IGZyb20gJy4uLy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5cbmNvbnN0IHh5ID0gKHgsIHkpID0+ICh7IHgsIHkgfSk7XG5cbmRlc2NyaWJlKCdQb2x5Z29uJywgKCkgPT4ge1xuICBsZXQgdztcbiAgY29uc3Qgd3JhcHBlciA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIGdyYXBoUHJvcHM6IGdyYXBoUHJvcHMoKSxcbiAgICAgIGNsb3NlZDogZmFsc2UsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiBzaGFsbG93KDxQb2x5Z29uIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKHsgcG9pbnRzOiBbeyB4OiAxLCB5OiAxIH1dIH0pO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnZ2V0UG9pbnRTdHJpbmcnLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VydFN0cmluZyA9IChhcnIsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoJ2NyZWF0ZXM6ICcsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGdldFBvaW50U3RyaW5nKGFyciwge1xuICAgICAgICB4OiBqZXN0LmZuKChuKSA9PiBuKSxcbiAgICAgICAgeTogamVzdC5mbigobikgPT4gbiksXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgfSk7XG4gIH07XG5cbiAgYXNzZXJ0U3RyaW5nKFt4eSgxLCAxKV0sICcxLDEnKTtcbiAgYXNzZXJ0U3RyaW5nKFt4eSgxLCAxKSwgeHkoMiwgMSldLCAnMSwxIDIsMScpO1xuICBhc3NlcnRTdHJpbmcoW3h5KDEsIDEpLCB4eSgyLCAxKSwgeHkoNCwgNCldLCAnMSwxIDIsMSA0LDQnKTtcbn0pO1xuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _enzyme = require("enzyme");
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _component = require("../component");
|
|
12
|
+
|
|
13
|
+
var _utils = require("../../../__tests__/utils");
|
|
14
|
+
|
|
15
|
+
var _plot = require("@pie-lib/plot");
|
|
16
|
+
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
20
|
+
|
|
21
|
+
describe('RayLine', function () {
|
|
22
|
+
var w;
|
|
23
|
+
var onChange = jest.fn();
|
|
24
|
+
|
|
25
|
+
var wrapper = function wrapper(extras) {
|
|
26
|
+
var defaults = {
|
|
27
|
+
classes: {},
|
|
28
|
+
className: 'className',
|
|
29
|
+
onChange: onChange,
|
|
30
|
+
markerId: '1',
|
|
31
|
+
graphProps: (0, _utils.graphProps)(),
|
|
32
|
+
from: _plot.utils.xy(0, 0),
|
|
33
|
+
to: _plot.utils.xy(1, 1)
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
37
|
+
|
|
38
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_component.RayLine, props));
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
describe('snapshot', function () {
|
|
42
|
+
it('renders', function () {
|
|
43
|
+
var w = wrapper();
|
|
44
|
+
expect(w).toMatchSnapshot();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9yYXkvX190ZXN0c19fL2NvbXBvbmVudC50ZXN0LmpzeCJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInciLCJvbkNoYW5nZSIsImplc3QiLCJmbiIsIndyYXBwZXIiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJtYXJrZXJJZCIsImdyYXBoUHJvcHMiLCJmcm9tIiwidXRpbHMiLCJ4eSIsInRvIiwicHJvcHMiLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUNBQSxRQUFRLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDeEIsTUFBSUMsQ0FBSjtBQUNBLE1BQUlDLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQWY7O0FBQ0EsTUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFZO0FBQzFCLFFBQU1DLFFBQVEsR0FBRztBQUNmQyxNQUFBQSxPQUFPLEVBQUUsRUFETTtBQUVmQyxNQUFBQSxTQUFTLEVBQUUsV0FGSTtBQUdmUCxNQUFBQSxRQUFRLEVBQVJBLFFBSGU7QUFJZlEsTUFBQUEsUUFBUSxFQUFFLEdBSks7QUFLZkMsTUFBQUEsVUFBVSxFQUFFLHdCQUxHO0FBTWZDLE1BQUFBLElBQUksRUFBRUMsWUFBTUMsRUFBTixDQUFTLENBQVQsRUFBWSxDQUFaLENBTlM7QUFPZkMsTUFBQUEsRUFBRSxFQUFFRixZQUFNQyxFQUFOLENBQVMsQ0FBVCxFQUFZLENBQVo7QUFQVyxLQUFqQjs7QUFTQSxRQUFNRSxLQUFLLG1DQUFRVCxRQUFSLEdBQXFCRCxNQUFyQixDQUFYOztBQUNBLFdBQU8sbUNBQVEsZ0NBQUMsa0JBQUQsRUFBYVUsS0FBYixDQUFSLENBQVA7QUFDRCxHQVpEOztBQWNBaEIsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCaUIsSUFBQUEsRUFBRSxDQUFDLFNBQUQsRUFBWSxZQUFNO0FBQ2xCLFVBQU1oQixDQUFDLEdBQUdJLE9BQU8sRUFBakI7QUFDQWEsTUFBQUEsTUFBTSxDQUFDakIsQ0FBRCxDQUFOLENBQVVrQixlQUFWO0FBQ0QsS0FIQyxDQUFGO0FBSUQsR0FMTyxDQUFSO0FBTUQsQ0F2Qk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJheUxpbmUgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgZ3JhcGhQcm9wcyBhcyBnZXRHcmFwaFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX190ZXN0c19fL3V0aWxzJztcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnQHBpZS1saWIvcGxvdCc7XG5kZXNjcmliZSgnUmF5TGluZScsICgpID0+IHtcbiAgbGV0IHc7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgY29uc3Qgd3JhcHBlciA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgbWFya2VySWQ6ICcxJyxcbiAgICAgIGdyYXBoUHJvcHM6IGdldEdyYXBoUHJvcHMoKSxcbiAgICAgIGZyb206IHV0aWxzLnh5KDAsIDApLFxuICAgICAgdG86IHV0aWxzLnh5KDEsIDEpLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gc2hhbGxvdyg8UmF5TGluZSB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gd3JhcHBlcigpO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _enzyme = require("enzyme");
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _component = require("../component");
|
|
12
|
+
|
|
13
|
+
var _utils = require("../../../__tests__/utils");
|
|
14
|
+
|
|
15
|
+
var _plot = require("@pie-lib/plot");
|
|
16
|
+
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
20
|
+
|
|
21
|
+
var xy = _plot.utils.xy;
|
|
22
|
+
describe('Line', function () {
|
|
23
|
+
var w;
|
|
24
|
+
var onChange = jest.fn();
|
|
25
|
+
|
|
26
|
+
var wrapper = function wrapper(extras) {
|
|
27
|
+
var defaults = {
|
|
28
|
+
classes: {},
|
|
29
|
+
className: 'className',
|
|
30
|
+
onChange: onChange,
|
|
31
|
+
graphProps: (0, _utils.graphProps)(),
|
|
32
|
+
from: xy(0, 0),
|
|
33
|
+
to: xy(1, 1)
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
37
|
+
|
|
38
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_component.Line, props));
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
describe('snapshot', function () {
|
|
42
|
+
it('renders', function () {
|
|
43
|
+
var w = wrapper();
|
|
44
|
+
expect(w).toMatchSnapshot();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9zZWdtZW50L19fdGVzdHNfXy9jb21wb25lbnQudGVzdC5qc3giXSwibmFtZXMiOlsieHkiLCJ1dGlscyIsImRlc2NyaWJlIiwidyIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwid3JhcHBlciIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsImdyYXBoUHJvcHMiLCJmcm9tIiwidG8iLCJwcm9wcyIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBQ0EsSUFBUUEsRUFBUixHQUFlQyxXQUFmLENBQVFELEVBQVI7QUFDQUUsUUFBUSxDQUFDLE1BQUQsRUFBUyxZQUFNO0FBQ3JCLE1BQUlDLENBQUo7QUFDQSxNQUFJQyxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsRUFBTCxFQUFmOztBQUNBLE1BQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLE1BQUQsRUFBWTtBQUMxQixRQUFNQyxRQUFRLEdBQUc7QUFDZkMsTUFBQUEsT0FBTyxFQUFFLEVBRE07QUFFZkMsTUFBQUEsU0FBUyxFQUFFLFdBRkk7QUFHZlAsTUFBQUEsUUFBUSxFQUFSQSxRQUhlO0FBSWZRLE1BQUFBLFVBQVUsRUFBRSx3QkFKRztBQUtmQyxNQUFBQSxJQUFJLEVBQUViLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUxPO0FBTWZjLE1BQUFBLEVBQUUsRUFBRWQsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKO0FBTlMsS0FBakI7O0FBUUEsUUFBTWUsS0FBSyxtQ0FBUU4sUUFBUixHQUFxQkQsTUFBckIsQ0FBWDs7QUFDQSxXQUFPLG1DQUFRLGdDQUFDLGVBQUQsRUFBVU8sS0FBVixDQUFSLENBQVA7QUFDRCxHQVhEOztBQVlBYixFQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekJjLElBQUFBLEVBQUUsQ0FBQyxTQUFELEVBQVksWUFBTTtBQUNsQixVQUFNYixDQUFDLEdBQUdJLE9BQU8sRUFBakI7QUFDQVUsTUFBQUEsTUFBTSxDQUFDZCxDQUFELENBQU4sQ0FBVWUsZUFBVjtBQUNELEtBSEMsQ0FBRjtBQUlELEdBTE8sQ0FBUjtBQU1ELENBckJPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5lIH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IGdyYXBoUHJvcHMgYXMgZ2V0R3JhcGhQcm9wcyB9IGZyb20gJy4uLy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5pbXBvcnQgeyB1dGlscyB9IGZyb20gJ0BwaWUtbGliL3Bsb3QnO1xuY29uc3QgeyB4eSB9ID0gdXRpbHM7XG5kZXNjcmliZSgnTGluZScsICgpID0+IHtcbiAgbGV0IHc7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgY29uc3Qgd3JhcHBlciA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgZ3JhcGhQcm9wczogZ2V0R3JhcGhQcm9wcygpLFxuICAgICAgZnJvbTogeHkoMCwgMCksXG4gICAgICB0bzogeHkoMSwgMSksXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiBzaGFsbG93KDxMaW5lIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gd3JhcHBlcigpO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|