@pie-element/hotspot 9.1.0 → 9.2.0-mui-update.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +66 -0
- package/configure/CHANGELOG.md +66 -0
- package/configure/lib/DeleteWidget.js +31 -44
- package/configure/lib/DeleteWidget.js.map +1 -1
- package/configure/lib/__tests__/DeleteWidget.test.js +60 -0
- package/configure/lib/__tests__/hotspot-container.test.js +377 -0
- package/configure/lib/__tests__/hotspot-drawable.test.js +233 -0
- package/configure/lib/__tests__/index.test.js +211 -0
- package/configure/lib/__tests__/root.test.js +440 -0
- package/configure/lib/__tests__/utils.test.js +287 -0
- package/configure/lib/button.js +27 -46
- package/configure/lib/button.js.map +1 -1
- package/configure/lib/buttons/circle.js +21 -28
- package/configure/lib/buttons/circle.js.map +1 -1
- package/configure/lib/buttons/polygon.js +27 -34
- package/configure/lib/buttons/polygon.js.map +1 -1
- package/configure/lib/buttons/rectangle.js +27 -34
- package/configure/lib/buttons/rectangle.js.map +1 -1
- package/configure/lib/defaults.js +3 -4
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/hotspot-circle.js +133 -199
- package/configure/lib/hotspot-circle.js.map +1 -1
- package/configure/lib/hotspot-container.js +251 -356
- package/configure/lib/hotspot-container.js.map +1 -1
- package/configure/lib/hotspot-drawable.js +361 -473
- package/configure/lib/hotspot-drawable.js.map +1 -1
- package/configure/lib/hotspot-palette.js +93 -140
- package/configure/lib/hotspot-palette.js.map +1 -1
- package/configure/lib/hotspot-polygon.js +213 -318
- package/configure/lib/hotspot-polygon.js.map +1 -1
- package/configure/lib/hotspot-rectangle.js +129 -193
- package/configure/lib/hotspot-rectangle.js.map +1 -1
- package/configure/lib/icons.js +1 -1
- package/configure/lib/icons.js.map +1 -1
- package/configure/lib/image-konva.js +47 -87
- package/configure/lib/image-konva.js.map +1 -1
- package/configure/lib/index.js +163 -223
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/root.js +302 -394
- package/configure/lib/root.js.map +1 -1
- package/configure/lib/shapes/circle.js +70 -102
- package/configure/lib/shapes/circle.js.map +1 -1
- package/configure/lib/shapes/index.js +5 -13
- package/configure/lib/shapes/index.js.map +1 -1
- package/configure/lib/shapes/polygon.js +65 -97
- package/configure/lib/shapes/polygon.js.map +1 -1
- package/configure/lib/shapes/rectagle.js +70 -102
- package/configure/lib/shapes/rectagle.js.map +1 -1
- package/configure/lib/shapes/utils.js +3 -9
- package/configure/lib/shapes/utils.js.map +1 -1
- package/configure/lib/upload-control.js +26 -53
- package/configure/lib/upload-control.js.map +1 -1
- package/configure/lib/utils.js +85 -138
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +11 -10
- package/configure/src/__tests__/index.test.js +11 -5
- package/configure/src/button.jsx +12 -20
- package/configure/src/hotspot-circle.jsx +5 -18
- package/configure/src/hotspot-container.jsx +82 -98
- package/configure/src/hotspot-drawable.jsx +43 -45
- package/configure/src/hotspot-palette.jsx +45 -37
- package/configure/src/hotspot-polygon.jsx +4 -20
- package/configure/src/hotspot-rectangle.jsx +4 -17
- package/configure/src/index.js +12 -2
- package/configure/src/root.jsx +85 -79
- package/configure/src/upload-control.jsx +6 -16
- package/controller/CHANGELOG.md +52 -0
- package/controller/lib/__tests__/index.test.js +586 -0
- package/controller/lib/__tests__/utils.test.js +8 -0
- package/controller/lib/defaults.js +3 -4
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +152 -206
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +15 -35
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/demo/pie.manifest.json +11 -0
- package/lib/__tests__/container.test.js +221 -0
- package/lib/__tests__/index.test.js +113 -0
- package/lib/__tests__/polygon.test.js +245 -0
- package/lib/__tests__/rectangle.test.js +236 -0
- package/lib/__tests__/session-updater.test.js +69 -0
- package/lib/hotspot/circle.js +111 -170
- package/lib/hotspot/circle.js.map +1 -1
- package/lib/hotspot/container.js +175 -261
- package/lib/hotspot/container.js.map +1 -1
- package/lib/hotspot/icons.js +1 -1
- package/lib/hotspot/icons.js.map +1 -1
- package/lib/hotspot/image-konva-tooltip.js +66 -113
- package/lib/hotspot/image-konva-tooltip.js.map +1 -1
- package/lib/hotspot/index.js +136 -199
- package/lib/hotspot/index.js.map +1 -1
- package/lib/hotspot/polygon.js +151 -215
- package/lib/hotspot/polygon.js.map +1 -1
- package/lib/hotspot/rectangle.js +130 -186
- package/lib/hotspot/rectangle.js.map +1 -1
- package/lib/index.js +188 -257
- package/lib/index.js.map +1 -1
- package/lib/session-updater.js +13 -19
- package/lib/session-updater.js.map +1 -1
- package/package.json +14 -11
- package/src/hotspot/circle.jsx +2 -13
- package/src/hotspot/container.jsx +35 -50
- package/src/hotspot/index.jsx +16 -28
- package/src/hotspot/polygon.jsx +4 -13
- package/src/hotspot/rectangle.jsx +4 -13
- package/src/index.js +21 -12
- package/LICENSE.md +0 -5
- package/configure/node_modules/debug/CHANGELOG.md +0 -395
- package/configure/node_modules/debug/LICENSE +0 -19
- package/configure/node_modules/debug/README.md +0 -437
- package/configure/node_modules/debug/node.js +0 -1
- package/configure/node_modules/debug/package.json +0 -51
- package/configure/node_modules/debug/src/browser.js +0 -180
- package/configure/node_modules/debug/src/common.js +0 -249
- package/configure/node_modules/debug/src/index.js +0 -12
- package/configure/node_modules/debug/src/node.js +0 -177
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _enzyme = require("enzyme");
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
var _root = require("../root");
|
|
7
|
+
var _defaults = _interopRequireDefault(require("../defaults"));
|
|
8
|
+
jest.mock('@pie-lib/config-ui', () => ({
|
|
9
|
+
choiceUtils: {
|
|
10
|
+
firstAvailableIndex: jest.fn()
|
|
11
|
+
},
|
|
12
|
+
settings: {
|
|
13
|
+
Panel: props => /*#__PURE__*/_react.default.createElement("div", props),
|
|
14
|
+
toggle: jest.fn(),
|
|
15
|
+
radio: jest.fn()
|
|
16
|
+
},
|
|
17
|
+
layout: {
|
|
18
|
+
ConfigLayout: ({
|
|
19
|
+
children
|
|
20
|
+
}) => /*#__PURE__*/_react.default.createElement("div", null, children)
|
|
21
|
+
}
|
|
22
|
+
}));
|
|
23
|
+
const model = () => ({
|
|
24
|
+
prompt: 'This is the question prompt',
|
|
25
|
+
imageUrl: 'https://cdn.fluence.net/image/0240eb1455ce4c4bb6180232347b6aef_W',
|
|
26
|
+
shapes: {
|
|
27
|
+
rectangles: [{
|
|
28
|
+
id: '0',
|
|
29
|
+
height: 140,
|
|
30
|
+
width: 130,
|
|
31
|
+
x: 1,
|
|
32
|
+
y: 1,
|
|
33
|
+
correct: true
|
|
34
|
+
}, {
|
|
35
|
+
id: '1',
|
|
36
|
+
height: 140,
|
|
37
|
+
width: 130,
|
|
38
|
+
x: 140,
|
|
39
|
+
y: 1
|
|
40
|
+
}, {
|
|
41
|
+
id: '2',
|
|
42
|
+
height: 140,
|
|
43
|
+
width: 130,
|
|
44
|
+
x: 280,
|
|
45
|
+
y: 1
|
|
46
|
+
}],
|
|
47
|
+
polygons: [{
|
|
48
|
+
points: [{
|
|
49
|
+
x: 1,
|
|
50
|
+
y: 148
|
|
51
|
+
}, {
|
|
52
|
+
x: 1,
|
|
53
|
+
y: 288
|
|
54
|
+
}, {
|
|
55
|
+
y: 288,
|
|
56
|
+
x: 129
|
|
57
|
+
}, {
|
|
58
|
+
y: 148,
|
|
59
|
+
x: 129
|
|
60
|
+
}],
|
|
61
|
+
correct: true,
|
|
62
|
+
id: '3'
|
|
63
|
+
}, {
|
|
64
|
+
id: '4',
|
|
65
|
+
points: [{
|
|
66
|
+
y: 151,
|
|
67
|
+
x: 141
|
|
68
|
+
}, {
|
|
69
|
+
y: 289,
|
|
70
|
+
x: 141
|
|
71
|
+
}, {
|
|
72
|
+
y: 289,
|
|
73
|
+
x: 269
|
|
74
|
+
}, {
|
|
75
|
+
x: 269,
|
|
76
|
+
y: 151
|
|
77
|
+
}],
|
|
78
|
+
correct: false
|
|
79
|
+
}, {
|
|
80
|
+
points: [{
|
|
81
|
+
x: 279,
|
|
82
|
+
y: 149.99999999999997
|
|
83
|
+
}, {
|
|
84
|
+
x: 279,
|
|
85
|
+
y: 289
|
|
86
|
+
}, {
|
|
87
|
+
x: 407,
|
|
88
|
+
y: 289
|
|
89
|
+
}, {
|
|
90
|
+
x: 407,
|
|
91
|
+
y: 149.99999999999997
|
|
92
|
+
}],
|
|
93
|
+
correct: false,
|
|
94
|
+
id: '5'
|
|
95
|
+
}],
|
|
96
|
+
circles: [{
|
|
97
|
+
id: '6',
|
|
98
|
+
radius: 70,
|
|
99
|
+
x: 100,
|
|
100
|
+
y: 100,
|
|
101
|
+
correct: false
|
|
102
|
+
}]
|
|
103
|
+
},
|
|
104
|
+
dimensions: {
|
|
105
|
+
height: 300,
|
|
106
|
+
width: 400
|
|
107
|
+
},
|
|
108
|
+
hotspotColor: 'rgba(137, 183, 244, 0.65)',
|
|
109
|
+
hotspotList: ['rgba(137, 183, 244, 0.65)', 'rgba(217, 30, 24, 0.65)', 'rgba(254, 241, 96, 0.65)'],
|
|
110
|
+
outlineColor: 'blue',
|
|
111
|
+
outlineList: ['blue', 'red', 'yellow'],
|
|
112
|
+
configure: {},
|
|
113
|
+
multipleCorrect: true,
|
|
114
|
+
partialScoring: false
|
|
115
|
+
});
|
|
116
|
+
describe('Root', () => {
|
|
117
|
+
let initialModel = model();
|
|
118
|
+
describe('render', () => {
|
|
119
|
+
it('renders', () => {
|
|
120
|
+
const props = {
|
|
121
|
+
classes: {},
|
|
122
|
+
configuration: _defaults.default.configuration,
|
|
123
|
+
model: initialModel
|
|
124
|
+
};
|
|
125
|
+
expect((0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_root.Root, props))).toMatchSnapshot();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe('logic', () => {
|
|
129
|
+
let w,
|
|
130
|
+
onColorChanged = jest.fn();
|
|
131
|
+
beforeEach(() => {
|
|
132
|
+
w = (config, onUpdateImageDimension, onUpdateShapes) => {
|
|
133
|
+
const props = {
|
|
134
|
+
classes: {},
|
|
135
|
+
configuration: config || _defaults.default.configuration,
|
|
136
|
+
model: {
|
|
137
|
+
...initialModel,
|
|
138
|
+
dimensions: {
|
|
139
|
+
width: 200,
|
|
140
|
+
height: 300
|
|
141
|
+
},
|
|
142
|
+
shapes: {
|
|
143
|
+
rectangles: [{
|
|
144
|
+
x: 10,
|
|
145
|
+
y: 10,
|
|
146
|
+
height: 100,
|
|
147
|
+
width: 100
|
|
148
|
+
}],
|
|
149
|
+
polygons: [{
|
|
150
|
+
points: [{
|
|
151
|
+
x: 0,
|
|
152
|
+
y: 200
|
|
153
|
+
}, {
|
|
154
|
+
x: 200,
|
|
155
|
+
y: 200
|
|
156
|
+
}, {
|
|
157
|
+
x: 100,
|
|
158
|
+
y: 300
|
|
159
|
+
}]
|
|
160
|
+
}]
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
onColorChanged,
|
|
164
|
+
onUpdateImageDimension,
|
|
165
|
+
onUpdateShapes
|
|
166
|
+
};
|
|
167
|
+
return (0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_root.Root, props));
|
|
168
|
+
};
|
|
169
|
+
});
|
|
170
|
+
describe('handleColorChange', () => {
|
|
171
|
+
it('calls onColorChanged', () => {
|
|
172
|
+
let wrapper = w();
|
|
173
|
+
wrapper.instance().handleColorChange('type', 'color');
|
|
174
|
+
expect(onColorChanged).toHaveBeenLastCalledWith('typeColor', 'color');
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
describe('KEEP IMAGE ASPECT RATIO: handleOnUpdateImageDimensions: calls onUpdateImageDimension & onUpdateShapes', () => {
|
|
178
|
+
let wrapper;
|
|
179
|
+
let onUpdateImageDimension = jest.fn();
|
|
180
|
+
let onUpdateShapes = jest.fn();
|
|
181
|
+
beforeEach(() => {
|
|
182
|
+
wrapper = w(undefined, onUpdateImageDimension, onUpdateShapes);
|
|
183
|
+
});
|
|
184
|
+
it('increase width with 100%:', () => {
|
|
185
|
+
wrapper.instance().handleOnUpdateImageDimensions(400, 'width');
|
|
186
|
+
expect(onUpdateImageDimension).toBeCalledWith({
|
|
187
|
+
width: 400,
|
|
188
|
+
height: 600
|
|
189
|
+
});
|
|
190
|
+
expect(onUpdateShapes).toBeCalledWith({
|
|
191
|
+
rectangles: [{
|
|
192
|
+
x: 20,
|
|
193
|
+
y: 20,
|
|
194
|
+
height: 200,
|
|
195
|
+
width: 200,
|
|
196
|
+
index: 0
|
|
197
|
+
}],
|
|
198
|
+
polygons: [{
|
|
199
|
+
points: [{
|
|
200
|
+
x: 0,
|
|
201
|
+
y: 400
|
|
202
|
+
}, {
|
|
203
|
+
x: 400,
|
|
204
|
+
y: 400
|
|
205
|
+
}, {
|
|
206
|
+
x: 200,
|
|
207
|
+
y: 600
|
|
208
|
+
}],
|
|
209
|
+
index: 1
|
|
210
|
+
}],
|
|
211
|
+
circles: []
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
it('decrease width with 50%', () => {
|
|
215
|
+
wrapper.instance().handleOnUpdateImageDimensions(100, 'width');
|
|
216
|
+
expect(onUpdateImageDimension).toBeCalledWith({
|
|
217
|
+
width: 100,
|
|
218
|
+
height: 150
|
|
219
|
+
});
|
|
220
|
+
expect(onUpdateShapes).toBeCalledWith({
|
|
221
|
+
rectangles: [{
|
|
222
|
+
x: 5,
|
|
223
|
+
y: 5,
|
|
224
|
+
height: 50,
|
|
225
|
+
width: 50,
|
|
226
|
+
index: 0
|
|
227
|
+
}],
|
|
228
|
+
polygons: [{
|
|
229
|
+
points: [{
|
|
230
|
+
x: 0,
|
|
231
|
+
y: 100
|
|
232
|
+
}, {
|
|
233
|
+
x: 100,
|
|
234
|
+
y: 100
|
|
235
|
+
}, {
|
|
236
|
+
x: 50,
|
|
237
|
+
y: 150
|
|
238
|
+
}],
|
|
239
|
+
index: 1
|
|
240
|
+
}],
|
|
241
|
+
circles: []
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
it('increase height with 50%:', () => {
|
|
245
|
+
wrapper.instance().handleOnUpdateImageDimensions(450, 'height');
|
|
246
|
+
expect(onUpdateImageDimension).toBeCalledWith({
|
|
247
|
+
width: 300,
|
|
248
|
+
height: 450
|
|
249
|
+
});
|
|
250
|
+
expect(onUpdateShapes).toBeCalledWith({
|
|
251
|
+
rectangles: [{
|
|
252
|
+
x: 15,
|
|
253
|
+
y: 15,
|
|
254
|
+
height: 150,
|
|
255
|
+
width: 150,
|
|
256
|
+
index: 0
|
|
257
|
+
}],
|
|
258
|
+
polygons: [{
|
|
259
|
+
points: [{
|
|
260
|
+
x: 0,
|
|
261
|
+
y: 300
|
|
262
|
+
}, {
|
|
263
|
+
x: 300,
|
|
264
|
+
y: 300
|
|
265
|
+
}, {
|
|
266
|
+
x: 150,
|
|
267
|
+
y: 450
|
|
268
|
+
}],
|
|
269
|
+
index: 1
|
|
270
|
+
}],
|
|
271
|
+
circles: []
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
it('decrease height with 10%', () => {
|
|
275
|
+
wrapper.instance().handleOnUpdateImageDimensions(270, 'height');
|
|
276
|
+
expect(onUpdateImageDimension).toBeCalledWith({
|
|
277
|
+
width: 180,
|
|
278
|
+
height: 270
|
|
279
|
+
});
|
|
280
|
+
expect(onUpdateShapes).toBeCalledWith({
|
|
281
|
+
rectangles: [{
|
|
282
|
+
x: 9,
|
|
283
|
+
y: 9,
|
|
284
|
+
height: 90,
|
|
285
|
+
width: 90,
|
|
286
|
+
index: 0
|
|
287
|
+
}],
|
|
288
|
+
polygons: [{
|
|
289
|
+
points: [{
|
|
290
|
+
x: 0,
|
|
291
|
+
y: 180
|
|
292
|
+
}, {
|
|
293
|
+
x: 180,
|
|
294
|
+
y: 180
|
|
295
|
+
}, {
|
|
296
|
+
x: 90,
|
|
297
|
+
y: 270
|
|
298
|
+
}],
|
|
299
|
+
index: 1
|
|
300
|
+
}],
|
|
301
|
+
circles: []
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
describe('DO NOT KEEP IMAGE ASPECT RATIO: handleOnUpdateImageDimensions: calls onUpdateImageDimension & onUpdateShapes', () => {
|
|
306
|
+
let wrapper;
|
|
307
|
+
let onUpdateImageDimension = jest.fn();
|
|
308
|
+
let onUpdateShapes = jest.fn();
|
|
309
|
+
beforeEach(() => {
|
|
310
|
+
wrapper = w({
|
|
311
|
+
..._defaults.default.configuration,
|
|
312
|
+
preserveAspectRatio: {
|
|
313
|
+
enabled: false
|
|
314
|
+
}
|
|
315
|
+
}, onUpdateImageDimension, onUpdateShapes);
|
|
316
|
+
});
|
|
317
|
+
it('increase width with 100%:', () => {
|
|
318
|
+
wrapper.instance().handleOnUpdateImageDimensions(400, 'width');
|
|
319
|
+
expect(onUpdateImageDimension).toBeCalledWith({
|
|
320
|
+
width: 400,
|
|
321
|
+
height: 300
|
|
322
|
+
});
|
|
323
|
+
expect(onUpdateShapes).toBeCalledWith({
|
|
324
|
+
rectangles: [{
|
|
325
|
+
x: 20,
|
|
326
|
+
y: 10,
|
|
327
|
+
height: 100,
|
|
328
|
+
width: 200,
|
|
329
|
+
index: 0
|
|
330
|
+
}],
|
|
331
|
+
polygons: [{
|
|
332
|
+
points: [{
|
|
333
|
+
x: 0,
|
|
334
|
+
y: 200
|
|
335
|
+
}, {
|
|
336
|
+
x: 400,
|
|
337
|
+
y: 200
|
|
338
|
+
}, {
|
|
339
|
+
x: 200,
|
|
340
|
+
y: 300
|
|
341
|
+
}],
|
|
342
|
+
index: 1
|
|
343
|
+
}],
|
|
344
|
+
circles: []
|
|
345
|
+
});
|
|
346
|
+
});
|
|
347
|
+
it('decrease width with 50%', () => {
|
|
348
|
+
wrapper.instance().handleOnUpdateImageDimensions(100, 'width');
|
|
349
|
+
expect(onUpdateImageDimension).toBeCalledWith({
|
|
350
|
+
width: 100,
|
|
351
|
+
height: 300
|
|
352
|
+
});
|
|
353
|
+
expect(onUpdateShapes).toBeCalledWith({
|
|
354
|
+
rectangles: [{
|
|
355
|
+
x: 5,
|
|
356
|
+
y: 10,
|
|
357
|
+
height: 100,
|
|
358
|
+
width: 50,
|
|
359
|
+
index: 0
|
|
360
|
+
}],
|
|
361
|
+
polygons: [{
|
|
362
|
+
points: [{
|
|
363
|
+
x: 0,
|
|
364
|
+
y: 200
|
|
365
|
+
}, {
|
|
366
|
+
x: 100,
|
|
367
|
+
y: 200
|
|
368
|
+
}, {
|
|
369
|
+
x: 50,
|
|
370
|
+
y: 300
|
|
371
|
+
}],
|
|
372
|
+
index: 1
|
|
373
|
+
}],
|
|
374
|
+
circles: []
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
it('increase height with 50%:', () => {
|
|
378
|
+
wrapper.instance().handleOnUpdateImageDimensions(450, 'height');
|
|
379
|
+
expect(onUpdateImageDimension).toBeCalledWith({
|
|
380
|
+
width: 200,
|
|
381
|
+
height: 450
|
|
382
|
+
});
|
|
383
|
+
expect(onUpdateShapes).toBeCalledWith({
|
|
384
|
+
rectangles: [{
|
|
385
|
+
x: 10,
|
|
386
|
+
y: 15,
|
|
387
|
+
height: 150,
|
|
388
|
+
width: 100,
|
|
389
|
+
index: 0
|
|
390
|
+
}],
|
|
391
|
+
polygons: [{
|
|
392
|
+
index: 1,
|
|
393
|
+
points: [{
|
|
394
|
+
x: 0,
|
|
395
|
+
y: 300
|
|
396
|
+
}, {
|
|
397
|
+
x: 200,
|
|
398
|
+
y: 300
|
|
399
|
+
}, {
|
|
400
|
+
x: 100,
|
|
401
|
+
y: 450
|
|
402
|
+
}]
|
|
403
|
+
}],
|
|
404
|
+
circles: []
|
|
405
|
+
});
|
|
406
|
+
});
|
|
407
|
+
it('decrease height with 10%', () => {
|
|
408
|
+
wrapper.instance().handleOnUpdateImageDimensions(270, 'height');
|
|
409
|
+
expect(onUpdateImageDimension).toBeCalledWith({
|
|
410
|
+
width: 200,
|
|
411
|
+
height: 270
|
|
412
|
+
});
|
|
413
|
+
expect(onUpdateShapes).toBeCalledWith({
|
|
414
|
+
rectangles: [{
|
|
415
|
+
x: 10,
|
|
416
|
+
y: 9,
|
|
417
|
+
height: 90,
|
|
418
|
+
width: 100,
|
|
419
|
+
index: 0
|
|
420
|
+
}],
|
|
421
|
+
polygons: [{
|
|
422
|
+
points: [{
|
|
423
|
+
x: 0,
|
|
424
|
+
y: 180
|
|
425
|
+
}, {
|
|
426
|
+
x: 200,
|
|
427
|
+
y: 180
|
|
428
|
+
}, {
|
|
429
|
+
x: 100,
|
|
430
|
+
y: 270
|
|
431
|
+
}],
|
|
432
|
+
index: 1
|
|
433
|
+
}],
|
|
434
|
+
circles: []
|
|
435
|
+
});
|
|
436
|
+
});
|
|
437
|
+
});
|
|
438
|
+
});
|
|
439
|
+
});
|
|
440
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZW56eW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcm9vdCIsIl9kZWZhdWx0cyIsImplc3QiLCJtb2NrIiwiY2hvaWNlVXRpbHMiLCJmaXJzdEF2YWlsYWJsZUluZGV4IiwiZm4iLCJzZXR0aW5ncyIsIlBhbmVsIiwicHJvcHMiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsInRvZ2dsZSIsInJhZGlvIiwibGF5b3V0IiwiQ29uZmlnTGF5b3V0IiwiY2hpbGRyZW4iLCJtb2RlbCIsInByb21wdCIsImltYWdlVXJsIiwic2hhcGVzIiwicmVjdGFuZ2xlcyIsImlkIiwiaGVpZ2h0Iiwid2lkdGgiLCJ4IiwieSIsImNvcnJlY3QiLCJwb2x5Z29ucyIsInBvaW50cyIsImNpcmNsZXMiLCJyYWRpdXMiLCJkaW1lbnNpb25zIiwiaG90c3BvdENvbG9yIiwiaG90c3BvdExpc3QiLCJvdXRsaW5lQ29sb3IiLCJvdXRsaW5lTGlzdCIsImNvbmZpZ3VyZSIsIm11bHRpcGxlQ29ycmVjdCIsInBhcnRpYWxTY29yaW5nIiwiZGVzY3JpYmUiLCJpbml0aWFsTW9kZWwiLCJpdCIsImNsYXNzZXMiLCJjb25maWd1cmF0aW9uIiwiZGVmYXVsdFZhbHVlcyIsImV4cGVjdCIsInNoYWxsb3ciLCJSb290IiwidG9NYXRjaFNuYXBzaG90IiwidyIsIm9uQ29sb3JDaGFuZ2VkIiwiYmVmb3JlRWFjaCIsImNvbmZpZyIsIm9uVXBkYXRlSW1hZ2VEaW1lbnNpb24iLCJvblVwZGF0ZVNoYXBlcyIsIndyYXBwZXIiLCJpbnN0YW5jZSIsImhhbmRsZUNvbG9yQ2hhbmdlIiwidG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoIiwidW5kZWZpbmVkIiwiaGFuZGxlT25VcGRhdGVJbWFnZURpbWVuc2lvbnMiLCJ0b0JlQ2FsbGVkV2l0aCIsImluZGV4IiwicHJlc2VydmVBc3BlY3RSYXRpbyIsImVuYWJsZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Jvb3QudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSb290IH0gZnJvbSAnLi4vcm9vdCc7XG5pbXBvcnQgZGVmYXVsdFZhbHVlcyBmcm9tICcuLi9kZWZhdWx0cyc7XG5cbmplc3QubW9jaygnQHBpZS1saWIvY29uZmlnLXVpJywgKCkgPT4gKHtcbiAgY2hvaWNlVXRpbHM6IHtcbiAgICBmaXJzdEF2YWlsYWJsZUluZGV4OiBqZXN0LmZuKCksXG4gIH0sXG4gIHNldHRpbmdzOiB7XG4gICAgUGFuZWw6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxuICAgIHRvZ2dsZTogamVzdC5mbigpLFxuICAgIHJhZGlvOiBqZXN0LmZuKCksXG4gIH0sXG4gIGxheW91dDoge1xuICAgIENvbmZpZ0xheW91dDogKHsgY2hpbGRyZW4gfSkgPT4gPGRpdj57Y2hpbGRyZW59PC9kaXY+LFxuICB9LFxufSkpO1xuXG5jb25zdCBtb2RlbCA9ICgpID0+ICh7XG4gIHByb21wdDogJ1RoaXMgaXMgdGhlIHF1ZXN0aW9uIHByb21wdCcsXG4gIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4uZmx1ZW5jZS5uZXQvaW1hZ2UvMDI0MGViMTQ1NWNlNGM0YmI2MTgwMjMyMzQ3YjZhZWZfVycsXG4gIHNoYXBlczoge1xuICAgIHJlY3RhbmdsZXM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICcwJyxcbiAgICAgICAgaGVpZ2h0OiAxNDAsXG4gICAgICAgIHdpZHRoOiAxMzAsXG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzEnLFxuICAgICAgICBoZWlnaHQ6IDE0MCxcbiAgICAgICAgd2lkdGg6IDEzMCxcbiAgICAgICAgeDogMTQwLFxuICAgICAgICB5OiAxLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICcyJyxcbiAgICAgICAgaGVpZ2h0OiAxNDAsXG4gICAgICAgIHdpZHRoOiAxMzAsXG4gICAgICAgIHg6IDI4MCxcbiAgICAgICAgeTogMSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBwb2x5Z29uczogW1xuICAgICAge1xuICAgICAgICBwb2ludHM6IFtcbiAgICAgICAgICB7IHg6IDEsIHk6IDE0OCB9LFxuICAgICAgICAgIHsgeDogMSwgeTogMjg4IH0sXG4gICAgICAgICAgeyB5OiAyODgsIHg6IDEyOSB9LFxuICAgICAgICAgIHsgeTogMTQ4LCB4OiAxMjkgfSxcbiAgICAgICAgXSxcbiAgICAgICAgY29ycmVjdDogdHJ1ZSxcbiAgICAgICAgaWQ6ICczJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnNCcsXG4gICAgICAgIHBvaW50czogW1xuICAgICAgICAgIHsgeTogMTUxLCB4OiAxNDEgfSxcbiAgICAgICAgICB7IHk6IDI4OSwgeDogMTQxIH0sXG4gICAgICAgICAgeyB5OiAyODksIHg6IDI2OSB9LFxuICAgICAgICAgIHsgeDogMjY5LCB5OiAxNTEgfSxcbiAgICAgICAgXSxcbiAgICAgICAgY29ycmVjdDogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwb2ludHM6IFtcbiAgICAgICAgICB7IHg6IDI3OSwgeTogMTQ5Ljk5OTk5OTk5OTk5OTk3IH0sXG4gICAgICAgICAgeyB4OiAyNzksIHk6IDI4OSB9LFxuICAgICAgICAgIHsgeDogNDA3LCB5OiAyODkgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB4OiA0MDcsXG4gICAgICAgICAgICB5OiAxNDkuOTk5OTk5OTk5OTk5OTcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgY29ycmVjdDogZmFsc2UsXG4gICAgICAgIGlkOiAnNScsXG4gICAgICB9LFxuICAgIF0sXG4gICAgY2lyY2xlczogW1xuICAgICAge1xuICAgICAgICBpZDogJzYnLFxuICAgICAgICByYWRpdXM6IDcwLFxuICAgICAgICB4OiAxMDAsXG4gICAgICAgIHk6IDEwMCxcbiAgICAgICAgY29ycmVjdDogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGRpbWVuc2lvbnM6IHsgaGVpZ2h0OiAzMDAsIHdpZHRoOiA0MDAgfSxcbiAgaG90c3BvdENvbG9yOiAncmdiYSgxMzcsIDE4MywgMjQ0LCAwLjY1KScsXG4gIGhvdHNwb3RMaXN0OiBbJ3JnYmEoMTM3LCAxODMsIDI0NCwgMC42NSknLCAncmdiYSgyMTcsIDMwLCAyNCwgMC42NSknLCAncmdiYSgyNTQsIDI0MSwgOTYsIDAuNjUpJ10sXG4gIG91dGxpbmVDb2xvcjogJ2JsdWUnLFxuICBvdXRsaW5lTGlzdDogWydibHVlJywgJ3JlZCcsICd5ZWxsb3cnXSxcbiAgY29uZmlndXJlOiB7fSxcbiAgbXVsdGlwbGVDb3JyZWN0OiB0cnVlLFxuICBwYXJ0aWFsU2NvcmluZzogZmFsc2UsXG59KTtcblxuZGVzY3JpYmUoJ1Jvb3QnLCAoKSA9PiB7XG4gIGxldCBpbml0aWFsTW9kZWwgPSBtb2RlbCgpO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgY2xhc3Nlczoge30sXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IGRlZmF1bHRWYWx1ZXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgbW9kZWw6IGluaXRpYWxNb2RlbCxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChzaGFsbG93KDxSb290IHsuLi5wcm9wc30gLz4pKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGxldCB3LFxuICAgICAgb25Db2xvckNoYW5nZWQgPSBqZXN0LmZuKCk7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIHcgPSAoY29uZmlnLCBvblVwZGF0ZUltYWdlRGltZW5zaW9uLCBvblVwZGF0ZVNoYXBlcykgPT4ge1xuICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICBjbGFzc2VzOiB7fSxcbiAgICAgICAgICBjb25maWd1cmF0aW9uOiBjb25maWcgfHwgZGVmYXVsdFZhbHVlcy5jb25maWd1cmF0aW9uLFxuICAgICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgICAuLi5pbml0aWFsTW9kZWwsXG4gICAgICAgICAgICBkaW1lbnNpb25zOiB7IHdpZHRoOiAyMDAsIGhlaWdodDogMzAwIH0sXG4gICAgICAgICAgICBzaGFwZXM6IHtcbiAgICAgICAgICAgICAgcmVjdGFuZ2xlczogW3sgeDogMTAsIHk6IDEwLCBoZWlnaHQ6IDEwMCwgd2lkdGg6IDEwMCB9XSxcbiAgICAgICAgICAgICAgcG9seWdvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBwb2ludHM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyB4OiAwLCB5OiAyMDAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyB4OiAyMDAsIHk6IDIwMCB9LFxuICAgICAgICAgICAgICAgICAgICB7IHg6IDEwMCwgeTogMzAwIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25Db2xvckNoYW5nZWQsXG4gICAgICAgICAgb25VcGRhdGVJbWFnZURpbWVuc2lvbixcbiAgICAgICAgICBvblVwZGF0ZVNoYXBlcyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gc2hhbGxvdyg8Um9vdCB7Li4ucHJvcHN9IC8+KTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnaGFuZGxlQ29sb3JDaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBpdCgnY2FsbHMgb25Db2xvckNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICAgIGxldCB3cmFwcGVyID0gdygpO1xuICAgICAgICB3cmFwcGVyLmluc3RhbmNlKCkuaGFuZGxlQ29sb3JDaGFuZ2UoJ3R5cGUnLCAnY29sb3InKTtcblxuICAgICAgICBleHBlY3Qob25Db2xvckNoYW5nZWQpLnRvSGF2ZUJlZW5MYXN0Q2FsbGVkV2l0aCgndHlwZUNvbG9yJywgJ2NvbG9yJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdLRUVQIElNQUdFIEFTUEVDVCBSQVRJTzogaGFuZGxlT25VcGRhdGVJbWFnZURpbWVuc2lvbnM6IGNhbGxzIG9uVXBkYXRlSW1hZ2VEaW1lbnNpb24gJiBvblVwZGF0ZVNoYXBlcycsICgpID0+IHtcbiAgICAgIGxldCB3cmFwcGVyO1xuICAgICAgbGV0IG9uVXBkYXRlSW1hZ2VEaW1lbnNpb24gPSBqZXN0LmZuKCk7XG4gICAgICBsZXQgb25VcGRhdGVTaGFwZXMgPSBqZXN0LmZuKCk7XG5cbiAgICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgICB3cmFwcGVyID0gdyh1bmRlZmluZWQsIG9uVXBkYXRlSW1hZ2VEaW1lbnNpb24sIG9uVXBkYXRlU2hhcGVzKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnaW5jcmVhc2Ugd2lkdGggd2l0aCAxMDAlOicsICgpID0+IHtcbiAgICAgICAgd3JhcHBlci5pbnN0YW5jZSgpLmhhbmRsZU9uVXBkYXRlSW1hZ2VEaW1lbnNpb25zKDQwMCwgJ3dpZHRoJyk7XG5cbiAgICAgICAgZXhwZWN0KG9uVXBkYXRlSW1hZ2VEaW1lbnNpb24pLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICB3aWR0aDogNDAwLFxuICAgICAgICAgIGhlaWdodDogNjAwLFxuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KG9uVXBkYXRlU2hhcGVzKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgcmVjdGFuZ2xlczogW3sgeDogMjAsIHk6IDIwLCBoZWlnaHQ6IDIwMCwgd2lkdGg6IDIwMCwgaW5kZXg6IDAgfV0sXG4gICAgICAgICAgcG9seWdvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcG9pbnRzOiBbXG4gICAgICAgICAgICAgICAgeyB4OiAwLCB5OiA0MDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6IDQwMCwgeTogNDAwIH0sXG4gICAgICAgICAgICAgICAgeyB4OiAyMDAsIHk6IDYwMCB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBpbmRleDogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjaXJjbGVzOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2RlY3JlYXNlIHdpZHRoIHdpdGggNTAlJywgKCkgPT4ge1xuICAgICAgICB3cmFwcGVyLmluc3RhbmNlKCkuaGFuZGxlT25VcGRhdGVJbWFnZURpbWVuc2lvbnMoMTAwLCAnd2lkdGgnKTtcblxuICAgICAgICBleHBlY3Qob25VcGRhdGVJbWFnZURpbWVuc2lvbikudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgaGVpZ2h0OiAxNTAsXG4gICAgICAgIH0pO1xuICAgICAgICBleHBlY3Qob25VcGRhdGVTaGFwZXMpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICByZWN0YW5nbGVzOiBbeyB4OiA1LCB5OiA1LCBoZWlnaHQ6IDUwLCB3aWR0aDogNTAsIGluZGV4OiAwIH1dLFxuICAgICAgICAgIHBvbHlnb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBvaW50czogW1xuICAgICAgICAgICAgICAgIHsgeDogMCwgeTogMTAwIH0sXG4gICAgICAgICAgICAgICAgeyB4OiAxMDAsIHk6IDEwMCB9LFxuICAgICAgICAgICAgICAgIHsgeDogNTAsIHk6IDE1MCB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBpbmRleDogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjaXJjbGVzOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2luY3JlYXNlIGhlaWdodCB3aXRoIDUwJTonLCAoKSA9PiB7XG4gICAgICAgIHdyYXBwZXIuaW5zdGFuY2UoKS5oYW5kbGVPblVwZGF0ZUltYWdlRGltZW5zaW9ucyg0NTAsICdoZWlnaHQnKTtcblxuICAgICAgICBleHBlY3Qob25VcGRhdGVJbWFnZURpbWVuc2lvbikudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgaGVpZ2h0OiA0NTAsXG4gICAgICAgIH0pO1xuICAgICAgICBleHBlY3Qob25VcGRhdGVTaGFwZXMpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICByZWN0YW5nbGVzOiBbeyB4OiAxNSwgeTogMTUsIGhlaWdodDogMTUwLCB3aWR0aDogMTUwLCBpbmRleDogMCB9XSxcbiAgICAgICAgICBwb2x5Z29uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwb2ludHM6IFtcbiAgICAgICAgICAgICAgICB7IHg6IDAsIHk6IDMwMCB9LFxuICAgICAgICAgICAgICAgIHsgeDogMzAwLCB5OiAzMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6IDE1MCwgeTogNDUwIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGluZGV4OiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGNpcmNsZXM6IFtdLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGVjcmVhc2UgaGVpZ2h0IHdpdGggMTAlJywgKCkgPT4ge1xuICAgICAgICB3cmFwcGVyLmluc3RhbmNlKCkuaGFuZGxlT25VcGRhdGVJbWFnZURpbWVuc2lvbnMoMjcwLCAnaGVpZ2h0Jyk7XG5cbiAgICAgICAgZXhwZWN0KG9uVXBkYXRlSW1hZ2VEaW1lbnNpb24pLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICB3aWR0aDogMTgwLFxuICAgICAgICAgIGhlaWdodDogMjcwLFxuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KG9uVXBkYXRlU2hhcGVzKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgcmVjdGFuZ2xlczogW3sgeDogOSwgeTogOSwgaGVpZ2h0OiA5MCwgd2lkdGg6IDkwLCBpbmRleDogMCB9XSxcbiAgICAgICAgICBwb2x5Z29uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwb2ludHM6IFtcbiAgICAgICAgICAgICAgICB7IHg6IDAsIHk6IDE4MCB9LFxuICAgICAgICAgICAgICAgIHsgeDogMTgwLCB5OiAxODAgfSxcbiAgICAgICAgICAgICAgICB7IHg6IDkwLCB5OiAyNzAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgaW5kZXg6IDEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgY2lyY2xlczogW10sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnRE8gTk9UIEtFRVAgSU1BR0UgQVNQRUNUIFJBVElPOiBoYW5kbGVPblVwZGF0ZUltYWdlRGltZW5zaW9uczogY2FsbHMgb25VcGRhdGVJbWFnZURpbWVuc2lvbiAmIG9uVXBkYXRlU2hhcGVzJywgKCkgPT4ge1xuICAgICAgbGV0IHdyYXBwZXI7XG4gICAgICBsZXQgb25VcGRhdGVJbWFnZURpbWVuc2lvbiA9IGplc3QuZm4oKTtcbiAgICAgIGxldCBvblVwZGF0ZVNoYXBlcyA9IGplc3QuZm4oKTtcblxuICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICAgIHdyYXBwZXIgPSB3KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW86IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25VcGRhdGVJbWFnZURpbWVuc2lvbixcbiAgICAgICAgICBvblVwZGF0ZVNoYXBlcyxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnaW5jcmVhc2Ugd2lkdGggd2l0aCAxMDAlOicsICgpID0+IHtcbiAgICAgICAgd3JhcHBlci5pbnN0YW5jZSgpLmhhbmRsZU9uVXBkYXRlSW1hZ2VEaW1lbnNpb25zKDQwMCwgJ3dpZHRoJyk7XG5cbiAgICAgICAgZXhwZWN0KG9uVXBkYXRlSW1hZ2VEaW1lbnNpb24pLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICB3aWR0aDogNDAwLFxuICAgICAgICAgIGhlaWdodDogMzAwLFxuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KG9uVXBkYXRlU2hhcGVzKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgcmVjdGFuZ2xlczogW3sgeDogMjAsIHk6IDEwLCBoZWlnaHQ6IDEwMCwgd2lkdGg6IDIwMCwgaW5kZXg6IDAgfV0sXG4gICAgICAgICAgcG9seWdvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcG9pbnRzOiBbXG4gICAgICAgICAgICAgICAgeyB4OiAwLCB5OiAyMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6IDQwMCwgeTogMjAwIH0sXG4gICAgICAgICAgICAgICAgeyB4OiAyMDAsIHk6IDMwMCB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBpbmRleDogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjaXJjbGVzOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2RlY3JlYXNlIHdpZHRoIHdpdGggNTAlJywgKCkgPT4ge1xuICAgICAgICB3cmFwcGVyLmluc3RhbmNlKCkuaGFuZGxlT25VcGRhdGVJbWFnZURpbWVuc2lvbnMoMTAwLCAnd2lkdGgnKTtcblxuICAgICAgICBleHBlY3Qob25VcGRhdGVJbWFnZURpbWVuc2lvbikudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgaGVpZ2h0OiAzMDAsXG4gICAgICAgIH0pO1xuICAgICAgICBleHBlY3Qob25VcGRhdGVTaGFwZXMpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICByZWN0YW5nbGVzOiBbeyB4OiA1LCB5OiAxMCwgaGVpZ2h0OiAxMDAsIHdpZHRoOiA1MCwgaW5kZXg6IDAgfV0sXG4gICAgICAgICAgcG9seWdvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcG9pbnRzOiBbXG4gICAgICAgICAgICAgICAgeyB4OiAwLCB5OiAyMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6IDEwMCwgeTogMjAwIH0sXG4gICAgICAgICAgICAgICAgeyB4OiA1MCwgeTogMzAwIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGluZGV4OiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGNpcmNsZXM6IFtdLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnaW5jcmVhc2UgaGVpZ2h0IHdpdGggNTAlOicsICgpID0+IHtcbiAgICAgICAgd3JhcHBlci5pbnN0YW5jZSgpLmhhbmRsZU9uVXBkYXRlSW1hZ2VEaW1lbnNpb25zKDQ1MCwgJ2hlaWdodCcpO1xuXG4gICAgICAgIGV4cGVjdChvblVwZGF0ZUltYWdlRGltZW5zaW9uKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgd2lkdGg6IDIwMCxcbiAgICAgICAgICBoZWlnaHQ6IDQ1MCxcbiAgICAgICAgfSk7XG4gICAgICAgIGV4cGVjdChvblVwZGF0ZVNoYXBlcykudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICAgIHJlY3RhbmdsZXM6IFt7IHg6IDEwLCB5OiAxNSwgaGVpZ2h0OiAxNTAsIHdpZHRoOiAxMDAsIGluZGV4OiAwIH1dLFxuICAgICAgICAgIHBvbHlnb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGluZGV4OiAxLFxuICAgICAgICAgICAgICBwb2ludHM6IFtcbiAgICAgICAgICAgICAgICB7IHg6IDAsIHk6IDMwMCB9LFxuICAgICAgICAgICAgICAgIHsgeDogMjAwLCB5OiAzMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6IDEwMCwgeTogNDUwIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgY2lyY2xlczogW10sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkZWNyZWFzZSBoZWlnaHQgd2l0aCAxMCUnLCAoKSA9PiB7XG4gICAgICAgIHdyYXBwZXIuaW5zdGFuY2UoKS5oYW5kbGVPblVwZGF0ZUltYWdlRGltZW5zaW9ucygyNzAsICdoZWlnaHQnKTtcblxuICAgICAgICBleHBlY3Qob25VcGRhdGVJbWFnZURpbWVuc2lvbikudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICAgIHdpZHRoOiAyMDAsXG4gICAgICAgICAgaGVpZ2h0OiAyNzAsXG4gICAgICAgIH0pO1xuICAgICAgICBleHBlY3Qob25VcGRhdGVTaGFwZXMpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICByZWN0YW5nbGVzOiBbeyB4OiAxMCwgeTogOSwgaGVpZ2h0OiA5MCwgd2lkdGg6IDEwMCwgaW5kZXg6IDAgfV0sXG4gICAgICAgICAgcG9seWdvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcG9pbnRzOiBbXG4gICAgICAgICAgICAgICAgeyB4OiAwLCB5OiAxODAgfSxcbiAgICAgICAgICAgICAgICB7IHg6IDIwMCwgeTogMTgwIH0sXG4gICAgICAgICAgICAgICAgeyB4OiAxMDAsIHk6IDI3MCB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBpbmRleDogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjaXJjbGVzOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBRUFLLElBQUksQ0FBQ0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLE9BQU87RUFDckNDLFdBQVcsRUFBRTtJQUNYQyxtQkFBbUIsRUFBRUgsSUFBSSxDQUFDSSxFQUFFLENBQUM7RUFDL0IsQ0FBQztFQUNEQyxRQUFRLEVBQUU7SUFDUkMsS0FBSyxFQUFHQyxLQUFLLGlCQUFLWCxNQUFBLENBQUFZLE9BQUEsQ0FBQUMsYUFBQSxRQUFTRixLQUFRLENBQUM7SUFDcENHLE1BQU0sRUFBRVYsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQztJQUNqQk8sS0FBSyxFQUFFWCxJQUFJLENBQUNJLEVBQUUsQ0FBQztFQUNqQixDQUFDO0VBQ0RRLE1BQU0sRUFBRTtJQUNOQyxZQUFZLEVBQUVBLENBQUM7TUFBRUM7SUFBUyxDQUFDLGtCQUFLbEIsTUFBQSxDQUFBWSxPQUFBLENBQUFDLGFBQUEsY0FBTUssUUFBYztFQUN0RDtBQUNGLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUMsS0FBSyxHQUFHQSxDQUFBLE1BQU87RUFDbkJDLE1BQU0sRUFBRSw2QkFBNkI7RUFDckNDLFFBQVEsRUFBRSxrRUFBa0U7RUFDNUVDLE1BQU0sRUFBRTtJQUNOQyxVQUFVLEVBQUUsQ0FDVjtNQUNFQyxFQUFFLEVBQUUsR0FBRztNQUNQQyxNQUFNLEVBQUUsR0FBRztNQUNYQyxLQUFLLEVBQUUsR0FBRztNQUNWQyxDQUFDLEVBQUUsQ0FBQztNQUNKQyxDQUFDLEVBQUUsQ0FBQztNQUNKQyxPQUFPLEVBQUU7SUFDWCxDQUFD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
|