@camstack/addon-pipeline-orchestrator 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/@mf-types.zip +0 -0
  2. package/dist/ReactKonva-JXCACcqD.mjs +7267 -0
  3. package/dist/_CoreInternals-B7PHssO3.mjs +3808 -0
  4. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__konva__loadShare__.mjs-F783v1sm.mjs +8 -0
  5. package/dist/{__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.mjs-B848Fc_m.mjs → __mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.mjs-0qpbQxoV.mjs} +9 -9
  6. package/dist/{__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.mjs_commonjs-proxy-B-q1guKT.mjs → __mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.mjs_commonjs-proxy-DekuE8px.mjs} +1 -1
  7. package/dist/{__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-CeGb2_QF.mjs → __mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-Ba_7PYkj.mjs} +1 -1
  8. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_konva__loadShare__.mjs-CJUQOcTE.mjs +18 -0
  9. package/dist/_stub.js +995 -15851
  10. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-sOGV7J8L.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-GASHflbS.mjs} +30 -0
  11. package/dist/{client-BkQItW6e.mjs → client-CzjQ3uuI.mjs} +2 -2
  12. package/dist/{hostInit-DMdjwivI.mjs → hostInit-B0XiFU2K.mjs} +50 -22
  13. package/dist/{index-BUn7hM0v.mjs → index-BD2XShwZ.mjs} +1 -1
  14. package/dist/{index-BK5-EWzN.mjs → index-BP1Nti7b.mjs} +114 -109
  15. package/dist/{index-BJzn4K_R.mjs → index-C1DnrJuR.mjs} +1 -1
  16. package/dist/index-C52WDzRJ.mjs +3842 -0
  17. package/dist/{index-Bj470a3A.mjs → index-Cbqs9uJn.mjs} +1 -1
  18. package/dist/{index-BI-_eQhe.mjs → index-DOuehnyb.mjs} +1 -1
  19. package/dist/{index-Cj-UePAd.mjs → index-DaulYonp.mjs} +1 -1
  20. package/dist/index.js +6 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +6 -1
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/{jsx-runtime-CJ4xYF4l.mjs → jsx-runtime-DACJhJOv.mjs} +1 -1
  25. package/dist/remoteEntry.js +1 -1
  26. package/package.json +1 -1
@@ -0,0 +1,3808 @@
1
+ const de = Math.PI / 180;
2
+ function ue() {
3
+ return typeof window < "u" && ({}.toString.call(window) === "[object Window]" || {}.toString.call(window) === "[object global]");
4
+ }
5
+ const B = typeof global < "u" ? global : typeof window < "u" ? window : typeof WorkerGlobalScope < "u" ? self : {}, m = {
6
+ _global: B,
7
+ version: "10.3.0",
8
+ isBrowser: ue(),
9
+ isUnminified: /param/.test(function(n) {
10
+ }.toString()),
11
+ dblClickWindow: 400,
12
+ getAngle(n) {
13
+ return m.angleDeg ? n * de : n;
14
+ },
15
+ enableTrace: !1,
16
+ pointerEventsEnabled: !0,
17
+ autoDrawEnabled: !0,
18
+ hitOnDragEnabled: !1,
19
+ capturePointerEventsEnabled: !1,
20
+ _mouseListenClick: !1,
21
+ _touchListenClick: !1,
22
+ _pointerListenClick: !1,
23
+ _mouseInDblClickWindow: !1,
24
+ _touchInDblClickWindow: !1,
25
+ _pointerInDblClickWindow: !1,
26
+ _mouseDblClickPointerId: null,
27
+ _touchDblClickPointerId: null,
28
+ _pointerDblClickPointerId: null,
29
+ _renderBackend: "web",
30
+ legacyTextRendering: !1,
31
+ pixelRatio: typeof window < "u" && window.devicePixelRatio || 1,
32
+ dragDistance: 3,
33
+ angleDeg: !0,
34
+ showWarnings: !0,
35
+ dragButtons: [0, 1],
36
+ isDragging() {
37
+ return m.DD.isDragging;
38
+ },
39
+ isTransforming() {
40
+ var n, t;
41
+ return (t = (n = m.Transformer) === null || n === void 0 ? void 0 : n.isTransforming()) !== null && t !== void 0 ? t : !1;
42
+ },
43
+ isDragReady() {
44
+ return !!m.DD.node;
45
+ },
46
+ releaseCanvasOnDestroy: !0,
47
+ document: B.document,
48
+ _injectGlobal(n) {
49
+ typeof B.Konva < "u" && console.error("Several Konva instances detected. It is not recommended to use multiple Konva instances in the same environment."), B.Konva = n;
50
+ }
51
+ }, nt = (n) => {
52
+ m[n.prototype.getClassName()] = n;
53
+ };
54
+ m._injectGlobal(m);
55
+ const fe = `Konva.js unsupported environment.
56
+
57
+ Looks like you are trying to use Konva.js in Node.js environment. because "document" object is undefined.
58
+
59
+ To use Konva.js in Node.js environment, you need to use the "canvas-backend" or "skia-backend" module.
60
+
61
+ bash: npm install canvas
62
+ js: import "konva/canvas-backend";
63
+
64
+ or
65
+
66
+ bash: npm install skia-canvas
67
+ js: import "konva/skia-backend";
68
+ `, At = () => {
69
+ if (typeof document > "u")
70
+ throw new Error(fe);
71
+ };
72
+ class L {
73
+ constructor(t = [1, 0, 0, 1, 0, 0]) {
74
+ this.dirty = !1, this.m = t && t.slice() || [1, 0, 0, 1, 0, 0];
75
+ }
76
+ reset() {
77
+ this.m[0] = 1, this.m[1] = 0, this.m[2] = 0, this.m[3] = 1, this.m[4] = 0, this.m[5] = 0;
78
+ }
79
+ copy() {
80
+ return new L(this.m);
81
+ }
82
+ copyInto(t) {
83
+ t.m[0] = this.m[0], t.m[1] = this.m[1], t.m[2] = this.m[2], t.m[3] = this.m[3], t.m[4] = this.m[4], t.m[5] = this.m[5];
84
+ }
85
+ point(t) {
86
+ const e = this.m;
87
+ return {
88
+ x: e[0] * t.x + e[2] * t.y + e[4],
89
+ y: e[1] * t.x + e[3] * t.y + e[5]
90
+ };
91
+ }
92
+ translate(t, e) {
93
+ return this.m[4] += this.m[0] * t + this.m[2] * e, this.m[5] += this.m[1] * t + this.m[3] * e, this;
94
+ }
95
+ scale(t, e) {
96
+ return this.m[0] *= t, this.m[1] *= t, this.m[2] *= e, this.m[3] *= e, this;
97
+ }
98
+ rotate(t) {
99
+ const e = Math.cos(t), i = Math.sin(t), s = this.m[0] * e + this.m[2] * i, r = this.m[1] * e + this.m[3] * i, a = this.m[0] * -i + this.m[2] * e, o = this.m[1] * -i + this.m[3] * e;
100
+ return this.m[0] = s, this.m[1] = r, this.m[2] = a, this.m[3] = o, this;
101
+ }
102
+ getTranslation() {
103
+ return {
104
+ x: this.m[4],
105
+ y: this.m[5]
106
+ };
107
+ }
108
+ skew(t, e) {
109
+ const i = this.m[0] + this.m[2] * e, s = this.m[1] + this.m[3] * e, r = this.m[2] + this.m[0] * t, a = this.m[3] + this.m[1] * t;
110
+ return this.m[0] = i, this.m[1] = s, this.m[2] = r, this.m[3] = a, this;
111
+ }
112
+ multiply(t) {
113
+ const e = this.m[0] * t.m[0] + this.m[2] * t.m[1], i = this.m[1] * t.m[0] + this.m[3] * t.m[1], s = this.m[0] * t.m[2] + this.m[2] * t.m[3], r = this.m[1] * t.m[2] + this.m[3] * t.m[3], a = this.m[0] * t.m[4] + this.m[2] * t.m[5] + this.m[4], o = this.m[1] * t.m[4] + this.m[3] * t.m[5] + this.m[5];
114
+ return this.m[0] = e, this.m[1] = i, this.m[2] = s, this.m[3] = r, this.m[4] = a, this.m[5] = o, this;
115
+ }
116
+ invert() {
117
+ const t = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]), e = this.m[3] * t, i = -this.m[1] * t, s = -this.m[2] * t, r = this.m[0] * t, a = t * (this.m[2] * this.m[5] - this.m[3] * this.m[4]), o = t * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);
118
+ return this.m[0] = e, this.m[1] = i, this.m[2] = s, this.m[3] = r, this.m[4] = a, this.m[5] = o, this;
119
+ }
120
+ getMatrix() {
121
+ return this.m;
122
+ }
123
+ decompose() {
124
+ const t = this.m[0], e = this.m[1], i = this.m[2], s = this.m[3], r = this.m[4], a = this.m[5], o = t * s - e * i, h = {
125
+ x: r,
126
+ y: a,
127
+ rotation: 0,
128
+ scaleX: 0,
129
+ scaleY: 0,
130
+ skewX: 0,
131
+ skewY: 0
132
+ };
133
+ if (t != 0 || e != 0) {
134
+ const l = Math.sqrt(t * t + e * e);
135
+ h.rotation = e > 0 ? Math.acos(t / l) : -Math.acos(t / l), h.scaleX = l, h.scaleY = o / l, h.skewX = (t * i + e * s) / o, h.skewY = 0;
136
+ } else if (i != 0 || s != 0) {
137
+ const l = Math.sqrt(i * i + s * s);
138
+ h.rotation = Math.PI / 2 - (s > 0 ? Math.acos(-i / l) : -Math.acos(i / l)), h.scaleX = o / l, h.scaleY = l, h.skewX = 0, h.skewY = (t * i + e * s) / o;
139
+ }
140
+ return h.rotation = c._getRotation(h.rotation), h;
141
+ }
142
+ }
143
+ const ge = "[object Array]", pe = "[object Number]", me = "[object String]", _e = "[object Boolean]", ye = Math.PI / 180, Ce = 180 / Math.PI, X = "#", ve = "", be = "0", Se = "Konva warning: ", Gt = "Konva error: ", we = "rgb(", pt = {
144
+ aliceblue: [240, 248, 255],
145
+ antiquewhite: [250, 235, 215],
146
+ aqua: [0, 255, 255],
147
+ aquamarine: [127, 255, 212],
148
+ azure: [240, 255, 255],
149
+ beige: [245, 245, 220],
150
+ bisque: [255, 228, 196],
151
+ black: [0, 0, 0],
152
+ blanchedalmond: [255, 235, 205],
153
+ blue: [0, 0, 255],
154
+ blueviolet: [138, 43, 226],
155
+ brown: [165, 42, 42],
156
+ burlywood: [222, 184, 135],
157
+ cadetblue: [95, 158, 160],
158
+ chartreuse: [127, 255, 0],
159
+ chocolate: [210, 105, 30],
160
+ coral: [255, 127, 80],
161
+ cornflowerblue: [100, 149, 237],
162
+ cornsilk: [255, 248, 220],
163
+ crimson: [220, 20, 60],
164
+ cyan: [0, 255, 255],
165
+ darkblue: [0, 0, 139],
166
+ darkcyan: [0, 139, 139],
167
+ darkgoldenrod: [184, 132, 11],
168
+ darkgray: [169, 169, 169],
169
+ darkgreen: [0, 100, 0],
170
+ darkgrey: [169, 169, 169],
171
+ darkkhaki: [189, 183, 107],
172
+ darkmagenta: [139, 0, 139],
173
+ darkolivegreen: [85, 107, 47],
174
+ darkorange: [255, 140, 0],
175
+ darkorchid: [153, 50, 204],
176
+ darkred: [139, 0, 0],
177
+ darksalmon: [233, 150, 122],
178
+ darkseagreen: [143, 188, 143],
179
+ darkslateblue: [72, 61, 139],
180
+ darkslategray: [47, 79, 79],
181
+ darkslategrey: [47, 79, 79],
182
+ darkturquoise: [0, 206, 209],
183
+ darkviolet: [148, 0, 211],
184
+ deeppink: [255, 20, 147],
185
+ deepskyblue: [0, 191, 255],
186
+ dimgray: [105, 105, 105],
187
+ dimgrey: [105, 105, 105],
188
+ dodgerblue: [30, 144, 255],
189
+ firebrick: [178, 34, 34],
190
+ floralwhite: [255, 255, 240],
191
+ forestgreen: [34, 139, 34],
192
+ fuchsia: [255, 0, 255],
193
+ gainsboro: [220, 220, 220],
194
+ ghostwhite: [248, 248, 255],
195
+ gold: [255, 215, 0],
196
+ goldenrod: [218, 165, 32],
197
+ gray: [128, 128, 128],
198
+ green: [0, 128, 0],
199
+ greenyellow: [173, 255, 47],
200
+ grey: [128, 128, 128],
201
+ honeydew: [240, 255, 240],
202
+ hotpink: [255, 105, 180],
203
+ indianred: [205, 92, 92],
204
+ indigo: [75, 0, 130],
205
+ ivory: [255, 255, 240],
206
+ khaki: [240, 230, 140],
207
+ lavender: [230, 230, 250],
208
+ lavenderblush: [255, 240, 245],
209
+ lawngreen: [124, 252, 0],
210
+ lemonchiffon: [255, 250, 205],
211
+ lightblue: [173, 216, 230],
212
+ lightcoral: [240, 128, 128],
213
+ lightcyan: [224, 255, 255],
214
+ lightgoldenrodyellow: [250, 250, 210],
215
+ lightgray: [211, 211, 211],
216
+ lightgreen: [144, 238, 144],
217
+ lightgrey: [211, 211, 211],
218
+ lightpink: [255, 182, 193],
219
+ lightsalmon: [255, 160, 122],
220
+ lightseagreen: [32, 178, 170],
221
+ lightskyblue: [135, 206, 250],
222
+ lightslategray: [119, 136, 153],
223
+ lightslategrey: [119, 136, 153],
224
+ lightsteelblue: [176, 196, 222],
225
+ lightyellow: [255, 255, 224],
226
+ lime: [0, 255, 0],
227
+ limegreen: [50, 205, 50],
228
+ linen: [250, 240, 230],
229
+ magenta: [255, 0, 255],
230
+ maroon: [128, 0, 0],
231
+ mediumaquamarine: [102, 205, 170],
232
+ mediumblue: [0, 0, 205],
233
+ mediumorchid: [186, 85, 211],
234
+ mediumpurple: [147, 112, 219],
235
+ mediumseagreen: [60, 179, 113],
236
+ mediumslateblue: [123, 104, 238],
237
+ mediumspringgreen: [0, 250, 154],
238
+ mediumturquoise: [72, 209, 204],
239
+ mediumvioletred: [199, 21, 133],
240
+ midnightblue: [25, 25, 112],
241
+ mintcream: [245, 255, 250],
242
+ mistyrose: [255, 228, 225],
243
+ moccasin: [255, 228, 181],
244
+ navajowhite: [255, 222, 173],
245
+ navy: [0, 0, 128],
246
+ oldlace: [253, 245, 230],
247
+ olive: [128, 128, 0],
248
+ olivedrab: [107, 142, 35],
249
+ orange: [255, 165, 0],
250
+ orangered: [255, 69, 0],
251
+ orchid: [218, 112, 214],
252
+ palegoldenrod: [238, 232, 170],
253
+ palegreen: [152, 251, 152],
254
+ paleturquoise: [175, 238, 238],
255
+ palevioletred: [219, 112, 147],
256
+ papayawhip: [255, 239, 213],
257
+ peachpuff: [255, 218, 185],
258
+ peru: [205, 133, 63],
259
+ pink: [255, 192, 203],
260
+ plum: [221, 160, 203],
261
+ powderblue: [176, 224, 230],
262
+ purple: [128, 0, 128],
263
+ rebeccapurple: [102, 51, 153],
264
+ red: [255, 0, 0],
265
+ rosybrown: [188, 143, 143],
266
+ royalblue: [65, 105, 225],
267
+ saddlebrown: [139, 69, 19],
268
+ salmon: [250, 128, 114],
269
+ sandybrown: [244, 164, 96],
270
+ seagreen: [46, 139, 87],
271
+ seashell: [255, 245, 238],
272
+ sienna: [160, 82, 45],
273
+ silver: [192, 192, 192],
274
+ skyblue: [135, 206, 235],
275
+ slateblue: [106, 90, 205],
276
+ slategray: [119, 128, 144],
277
+ slategrey: [119, 128, 144],
278
+ snow: [255, 255, 250],
279
+ springgreen: [0, 255, 127],
280
+ steelblue: [70, 130, 180],
281
+ tan: [210, 180, 140],
282
+ teal: [0, 128, 128],
283
+ thistle: [216, 191, 216],
284
+ transparent: [255, 255, 255, 0],
285
+ tomato: [255, 99, 71],
286
+ turquoise: [64, 224, 208],
287
+ violet: [238, 130, 238],
288
+ wheat: [245, 222, 179],
289
+ white: [255, 255, 255],
290
+ whitesmoke: [245, 245, 245],
291
+ yellow: [255, 255, 0],
292
+ yellowgreen: [154, 205, 5]
293
+ }, xe = /rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/;
294
+ let st = [], V = null;
295
+ const Ee = typeof requestAnimationFrame < "u" && requestAnimationFrame || function(n) {
296
+ setTimeout(n, 16);
297
+ }, c = {
298
+ _isElement(n) {
299
+ return !!(n && n.nodeType == 1);
300
+ },
301
+ _isFunction(n) {
302
+ return !!(n && n.constructor && n.call && n.apply);
303
+ },
304
+ _isPlainObject(n) {
305
+ return !!n && n.constructor === Object;
306
+ },
307
+ _isArray(n) {
308
+ return Object.prototype.toString.call(n) === ge;
309
+ },
310
+ _isNumber(n) {
311
+ return Object.prototype.toString.call(n) === pe && !isNaN(n) && isFinite(n);
312
+ },
313
+ _isString(n) {
314
+ return Object.prototype.toString.call(n) === me;
315
+ },
316
+ _isBoolean(n) {
317
+ return Object.prototype.toString.call(n) === _e;
318
+ },
319
+ isObject(n) {
320
+ return n instanceof Object;
321
+ },
322
+ isValidSelector(n) {
323
+ if (typeof n != "string")
324
+ return !1;
325
+ const t = n[0];
326
+ return t === "#" || t === "." || t === t.toUpperCase();
327
+ },
328
+ _sign(n) {
329
+ return n === 0 || n > 0 ? 1 : -1;
330
+ },
331
+ requestAnimFrame(n) {
332
+ st.push(n), st.length === 1 && Ee(function() {
333
+ const t = st;
334
+ st = [], t.forEach(function(e) {
335
+ e();
336
+ });
337
+ });
338
+ },
339
+ createCanvasElement() {
340
+ At();
341
+ const n = document.createElement("canvas");
342
+ try {
343
+ n.style = n.style || {};
344
+ } catch {
345
+ }
346
+ return n;
347
+ },
348
+ createImageElement() {
349
+ return At(), document.createElement("img");
350
+ },
351
+ _isInDocument(n) {
352
+ for (; n = n.parentNode; )
353
+ if (n == document)
354
+ return !0;
355
+ return !1;
356
+ },
357
+ _urlToImage(n, t) {
358
+ const e = c.createImageElement();
359
+ e.onload = function() {
360
+ t(e);
361
+ }, e.src = n;
362
+ },
363
+ _rgbToHex(n, t, e) {
364
+ return ((1 << 24) + (n << 16) + (t << 8) + e).toString(16).slice(1);
365
+ },
366
+ _hexToRgb(n) {
367
+ n = n.replace(X, ve);
368
+ const t = parseInt(n, 16);
369
+ return {
370
+ r: t >> 16 & 255,
371
+ g: t >> 8 & 255,
372
+ b: t & 255
373
+ };
374
+ },
375
+ getRandomColor() {
376
+ let n = (Math.random() * 16777215 << 0).toString(16);
377
+ for (; n.length < 6; )
378
+ n = be + n;
379
+ return X + n;
380
+ },
381
+ isCanvasFarblingActive() {
382
+ if (V !== null)
383
+ return V;
384
+ if (typeof document > "u")
385
+ return V = !1, !1;
386
+ const n = this.createCanvasElement();
387
+ n.width = 10, n.height = 10;
388
+ const t = n.getContext("2d", {
389
+ willReadFrequently: !0
390
+ });
391
+ t.clearRect(0, 0, 10, 10), t.fillStyle = "#282828", t.fillRect(0, 0, 10, 10);
392
+ const e = t.getImageData(0, 0, 10, 10).data;
393
+ let i = !1;
394
+ for (let s = 0; s < 100; s++)
395
+ if (e[s * 4] !== 40 || e[s * 4 + 1] !== 40 || e[s * 4 + 2] !== 40 || e[s * 4 + 3] !== 255) {
396
+ i = !0;
397
+ break;
398
+ }
399
+ return V = i, this.releaseCanvas(n), V;
400
+ },
401
+ getHitColor() {
402
+ const n = this.getRandomColor();
403
+ return this.isCanvasFarblingActive() ? this.getSnappedHexColor(n) : n;
404
+ },
405
+ getHitColorKey(n, t, e) {
406
+ return this.isCanvasFarblingActive() && (n = Math.round(n / 5) * 5, t = Math.round(t / 5) * 5, e = Math.round(e / 5) * 5), X + this._rgbToHex(n, t, e);
407
+ },
408
+ getSnappedHexColor(n) {
409
+ const t = this._hexToRgb(n);
410
+ return X + this._rgbToHex(Math.round(t.r / 5) * 5, Math.round(t.g / 5) * 5, Math.round(t.b / 5) * 5);
411
+ },
412
+ getRGB(n) {
413
+ let t;
414
+ return n in pt ? (t = pt[n], {
415
+ r: t[0],
416
+ g: t[1],
417
+ b: t[2]
418
+ }) : n[0] === X ? this._hexToRgb(n.substring(1)) : n.substr(0, 4) === we ? (t = xe.exec(n.replace(/ /g, "")), {
419
+ r: parseInt(t[1], 10),
420
+ g: parseInt(t[2], 10),
421
+ b: parseInt(t[3], 10)
422
+ }) : {
423
+ r: 0,
424
+ g: 0,
425
+ b: 0
426
+ };
427
+ },
428
+ colorToRGBA(n) {
429
+ return n = n || "black", c._namedColorToRBA(n) || c._hex3ColorToRGBA(n) || c._hex4ColorToRGBA(n) || c._hex6ColorToRGBA(n) || c._hex8ColorToRGBA(n) || c._rgbColorToRGBA(n) || c._rgbaColorToRGBA(n) || c._hslColorToRGBA(n);
430
+ },
431
+ _namedColorToRBA(n) {
432
+ const t = pt[n.toLowerCase()];
433
+ return t ? {
434
+ r: t[0],
435
+ g: t[1],
436
+ b: t[2],
437
+ a: 1
438
+ } : null;
439
+ },
440
+ _rgbColorToRGBA(n) {
441
+ if (n.indexOf("rgb(") === 0) {
442
+ n = n.match(/rgb\(([^)]+)\)/)[1];
443
+ const t = n.split(/ *, */).map(Number);
444
+ return {
445
+ r: t[0],
446
+ g: t[1],
447
+ b: t[2],
448
+ a: 1
449
+ };
450
+ }
451
+ },
452
+ _rgbaColorToRGBA(n) {
453
+ if (n.indexOf("rgba(") === 0) {
454
+ n = n.match(/rgba\(([^)]+)\)/)[1];
455
+ const t = n.split(/ *, */).map((e, i) => e.slice(-1) === "%" ? i === 3 ? parseInt(e) / 100 : parseInt(e) / 100 * 255 : Number(e));
456
+ return {
457
+ r: t[0],
458
+ g: t[1],
459
+ b: t[2],
460
+ a: t[3]
461
+ };
462
+ }
463
+ },
464
+ _hex8ColorToRGBA(n) {
465
+ if (n[0] === "#" && n.length === 9)
466
+ return {
467
+ r: parseInt(n.slice(1, 3), 16),
468
+ g: parseInt(n.slice(3, 5), 16),
469
+ b: parseInt(n.slice(5, 7), 16),
470
+ a: parseInt(n.slice(7, 9), 16) / 255
471
+ };
472
+ },
473
+ _hex6ColorToRGBA(n) {
474
+ if (n[0] === "#" && n.length === 7)
475
+ return {
476
+ r: parseInt(n.slice(1, 3), 16),
477
+ g: parseInt(n.slice(3, 5), 16),
478
+ b: parseInt(n.slice(5, 7), 16),
479
+ a: 1
480
+ };
481
+ },
482
+ _hex4ColorToRGBA(n) {
483
+ if (n[0] === "#" && n.length === 5)
484
+ return {
485
+ r: parseInt(n[1] + n[1], 16),
486
+ g: parseInt(n[2] + n[2], 16),
487
+ b: parseInt(n[3] + n[3], 16),
488
+ a: parseInt(n[4] + n[4], 16) / 255
489
+ };
490
+ },
491
+ _hex3ColorToRGBA(n) {
492
+ if (n[0] === "#" && n.length === 4)
493
+ return {
494
+ r: parseInt(n[1] + n[1], 16),
495
+ g: parseInt(n[2] + n[2], 16),
496
+ b: parseInt(n[3] + n[3], 16),
497
+ a: 1
498
+ };
499
+ },
500
+ _hslColorToRGBA(n) {
501
+ if (/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.test(n)) {
502
+ const [t, ...e] = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(n), i = Number(e[0]) / 360, s = Number(e[1]) / 100, r = Number(e[2]) / 100;
503
+ let a, o, h;
504
+ if (s === 0)
505
+ return h = r * 255, {
506
+ r: Math.round(h),
507
+ g: Math.round(h),
508
+ b: Math.round(h),
509
+ a: 1
510
+ };
511
+ r < 0.5 ? a = r * (1 + s) : a = r + s - r * s;
512
+ const l = 2 * r - a, d = [0, 0, 0];
513
+ for (let u = 0; u < 3; u++)
514
+ o = i + 1 / 3 * -(u - 1), o < 0 && o++, o > 1 && o--, 6 * o < 1 ? h = l + (a - l) * 6 * o : 2 * o < 1 ? h = a : 3 * o < 2 ? h = l + (a - l) * (2 / 3 - o) * 6 : h = l, d[u] = h * 255;
515
+ return {
516
+ r: Math.round(d[0]),
517
+ g: Math.round(d[1]),
518
+ b: Math.round(d[2]),
519
+ a: 1
520
+ };
521
+ }
522
+ },
523
+ haveIntersection(n, t) {
524
+ return !(t.x > n.x + n.width || t.x + t.width < n.x || t.y > n.y + n.height || t.y + t.height < n.y);
525
+ },
526
+ cloneObject(n) {
527
+ const t = {};
528
+ for (const e in n)
529
+ this._isPlainObject(n[e]) ? t[e] = this.cloneObject(n[e]) : this._isArray(n[e]) ? t[e] = this.cloneArray(n[e]) : t[e] = n[e];
530
+ return t;
531
+ },
532
+ cloneArray(n) {
533
+ return n.slice(0);
534
+ },
535
+ degToRad(n) {
536
+ return n * ye;
537
+ },
538
+ radToDeg(n) {
539
+ return n * Ce;
540
+ },
541
+ _degToRad(n) {
542
+ return c.warn("Util._degToRad is removed. Please use public Util.degToRad instead."), c.degToRad(n);
543
+ },
544
+ _radToDeg(n) {
545
+ return c.warn("Util._radToDeg is removed. Please use public Util.radToDeg instead."), c.radToDeg(n);
546
+ },
547
+ _getRotation(n) {
548
+ return m.angleDeg ? c.radToDeg(n) : n;
549
+ },
550
+ _capitalize(n) {
551
+ return n.charAt(0).toUpperCase() + n.slice(1);
552
+ },
553
+ throw(n) {
554
+ throw new Error(Gt + n);
555
+ },
556
+ error(n) {
557
+ console.error(Gt + n);
558
+ },
559
+ warn(n) {
560
+ m.showWarnings && console.warn(Se + n);
561
+ },
562
+ each(n, t) {
563
+ for (const e in n)
564
+ t(e, n[e]);
565
+ },
566
+ _inRange(n, t, e) {
567
+ return t <= n && n < e;
568
+ },
569
+ _getProjectionToSegment(n, t, e, i, s, r) {
570
+ let a, o, h;
571
+ const l = (n - e) * (n - e) + (t - i) * (t - i);
572
+ if (l == 0)
573
+ a = n, o = t, h = (s - e) * (s - e) + (r - i) * (r - i);
574
+ else {
575
+ const d = ((s - n) * (e - n) + (r - t) * (i - t)) / l;
576
+ d < 0 ? (a = n, o = t, h = (n - s) * (n - s) + (t - r) * (t - r)) : d > 1 ? (a = e, o = i, h = (e - s) * (e - s) + (i - r) * (i - r)) : (a = n + d * (e - n), o = t + d * (i - t), h = (a - s) * (a - s) + (o - r) * (o - r));
577
+ }
578
+ return [a, o, h];
579
+ },
580
+ _getProjectionToLine(n, t, e) {
581
+ const i = c.cloneObject(n);
582
+ let s = Number.MAX_VALUE;
583
+ return t.forEach(function(r, a) {
584
+ if (!e && a === t.length - 1)
585
+ return;
586
+ const o = t[(a + 1) % t.length], h = c._getProjectionToSegment(r.x, r.y, o.x, o.y, n.x, n.y), l = h[0], d = h[1], u = h[2];
587
+ u < s && (i.x = l, i.y = d, s = u);
588
+ }), i;
589
+ },
590
+ _prepareArrayForTween(n, t, e) {
591
+ const i = [], s = [];
592
+ if (n.length > t.length) {
593
+ const a = t;
594
+ t = n, n = a;
595
+ }
596
+ for (let a = 0; a < n.length; a += 2)
597
+ i.push({
598
+ x: n[a],
599
+ y: n[a + 1]
600
+ });
601
+ for (let a = 0; a < t.length; a += 2)
602
+ s.push({
603
+ x: t[a],
604
+ y: t[a + 1]
605
+ });
606
+ const r = [];
607
+ return s.forEach(function(a) {
608
+ const o = c._getProjectionToLine(a, i, e);
609
+ r.push(o.x), r.push(o.y);
610
+ }), r;
611
+ },
612
+ _prepareToStringify(n) {
613
+ let t;
614
+ n.visitedByCircularReferenceRemoval = !0;
615
+ for (const e in n)
616
+ if (n.hasOwnProperty(e) && n[e] && typeof n[e] == "object") {
617
+ if (t = Object.getOwnPropertyDescriptor(n, e), n[e].visitedByCircularReferenceRemoval || c._isElement(n[e]))
618
+ if (t.configurable)
619
+ delete n[e];
620
+ else
621
+ return null;
622
+ else if (c._prepareToStringify(n[e]) === null)
623
+ if (t.configurable)
624
+ delete n[e];
625
+ else
626
+ return null;
627
+ }
628
+ return delete n.visitedByCircularReferenceRemoval, n;
629
+ },
630
+ _assign(n, t) {
631
+ for (const e in t)
632
+ n[e] = t[e];
633
+ return n;
634
+ },
635
+ _getFirstPointerId(n) {
636
+ return n.touches ? n.changedTouches[0].identifier : n.pointerId || 999;
637
+ },
638
+ releaseCanvas(...n) {
639
+ m.releaseCanvasOnDestroy && n.forEach((t) => {
640
+ t.width = 0, t.height = 0;
641
+ });
642
+ },
643
+ drawRoundedRectPath(n, t, e, i) {
644
+ let s = t < 0 ? t : 0, r = e < 0 ? e : 0;
645
+ t = Math.abs(t), e = Math.abs(e);
646
+ let a = 0, o = 0, h = 0, l = 0;
647
+ typeof i == "number" ? a = o = h = l = Math.min(i, t / 2, e / 2) : (a = Math.min(i[0] || 0, t / 2, e / 2), o = Math.min(i[1] || 0, t / 2, e / 2), l = Math.min(i[2] || 0, t / 2, e / 2), h = Math.min(i[3] || 0, t / 2, e / 2)), n.moveTo(s + a, r), n.lineTo(s + t - o, r), n.arc(s + t - o, r + o, o, Math.PI * 3 / 2, 0, !1), n.lineTo(s + t, r + e - l), n.arc(s + t - l, r + e - l, l, 0, Math.PI / 2, !1), n.lineTo(s + h, r + e), n.arc(s + h, r + e - h, h, Math.PI / 2, Math.PI, !1), n.lineTo(s, r + a), n.arc(s + a, r + a, a, Math.PI, Math.PI * 3 / 2, !1);
648
+ },
649
+ drawRoundedPolygonPath(n, t, e, i, s) {
650
+ i = Math.abs(i);
651
+ for (let r = 0; r < e; r++) {
652
+ const a = t[(r - 1 + e) % e], o = t[r], h = t[(r + 1) % e], l = { x: o.x - a.x, y: o.y - a.y }, d = { x: h.x - o.x, y: h.y - o.y }, u = Math.hypot(l.x, l.y), f = Math.hypot(d.x, d.y);
653
+ let C;
654
+ typeof s == "number" ? C = s : C = r < s.length ? s[r] : 0, C = i * Math.cos(Math.PI / e) * Math.min(1, C / i * 2);
655
+ const P = { x: l.x / u, y: l.y / u }, E = { x: d.x / f, y: d.y / f }, x = {
656
+ x: o.x - P.x * C,
657
+ y: o.y - P.y * C
658
+ }, A = {
659
+ x: o.x + E.x * C,
660
+ y: o.y + E.y * C
661
+ };
662
+ r === 0 ? n.moveTo(x.x, x.y) : n.lineTo(x.x, x.y), n.arcTo(o.x, o.y, A.x, A.y, C);
663
+ }
664
+ }
665
+ };
666
+ function Pe(n) {
667
+ const t = [], e = n.length, i = c;
668
+ for (let s = 0; s < e; s++) {
669
+ let r = n[s];
670
+ i._isNumber(r) ? r = Math.round(r * 1e3) / 1e3 : i._isString(r) || (r = r + ""), t.push(r);
671
+ }
672
+ return t;
673
+ }
674
+ const Ot = ",", ke = "(", Re = ")", Te = "([", Ae = "])", Ge = ";", Oe = "()", De = "=", Dt = [
675
+ "arc",
676
+ "arcTo",
677
+ "beginPath",
678
+ "bezierCurveTo",
679
+ "clearRect",
680
+ "clip",
681
+ "closePath",
682
+ "createLinearGradient",
683
+ "createPattern",
684
+ "createRadialGradient",
685
+ "drawImage",
686
+ "ellipse",
687
+ "fill",
688
+ "fillText",
689
+ "getImageData",
690
+ "createImageData",
691
+ "lineTo",
692
+ "moveTo",
693
+ "putImageData",
694
+ "quadraticCurveTo",
695
+ "rect",
696
+ "roundRect",
697
+ "restore",
698
+ "rotate",
699
+ "save",
700
+ "scale",
701
+ "setLineDash",
702
+ "setTransform",
703
+ "stroke",
704
+ "strokeText",
705
+ "transform",
706
+ "translate"
707
+ ], Le = [
708
+ "fillStyle",
709
+ "strokeStyle",
710
+ "shadowColor",
711
+ "shadowBlur",
712
+ "shadowOffsetX",
713
+ "shadowOffsetY",
714
+ "letterSpacing",
715
+ "lineCap",
716
+ "lineDashOffset",
717
+ "lineJoin",
718
+ "lineWidth",
719
+ "miterLimit",
720
+ "direction",
721
+ "font",
722
+ "textAlign",
723
+ "textBaseline",
724
+ "globalAlpha",
725
+ "globalCompositeOperation",
726
+ "imageSmoothingEnabled",
727
+ "filter"
728
+ ], Ie = 100;
729
+ let rt = null;
730
+ function Lt() {
731
+ if (rt !== null)
732
+ return rt;
733
+ try {
734
+ const t = c.createCanvasElement().getContext("2d");
735
+ return t ? !!t && "filter" in t : (rt = !1, !1);
736
+ } catch {
737
+ return rt = !1, !1;
738
+ }
739
+ }
740
+ class ft {
741
+ constructor(t) {
742
+ this.canvas = t, m.enableTrace && (this.traceArr = [], this._enableTrace());
743
+ }
744
+ fillShape(t) {
745
+ t.fillEnabled() && this._fill(t);
746
+ }
747
+ _fill(t) {
748
+ }
749
+ strokeShape(t) {
750
+ t.hasStroke() && this._stroke(t);
751
+ }
752
+ _stroke(t) {
753
+ }
754
+ fillStrokeShape(t) {
755
+ t.attrs.fillAfterStrokeEnabled ? (this.strokeShape(t), this.fillShape(t)) : (this.fillShape(t), this.strokeShape(t));
756
+ }
757
+ getTrace(t, e) {
758
+ let i = this.traceArr, s = i.length, r = "", a, o, h, l;
759
+ for (a = 0; a < s; a++)
760
+ o = i[a], h = o.method, h ? (l = o.args, r += h, t ? r += Oe : c._isArray(l[0]) ? r += Te + l.join(Ot) + Ae : (e && (l = l.map((d) => typeof d == "number" ? Math.floor(d) : d)), r += ke + l.join(Ot) + Re)) : (r += o.property, t || (r += De + o.val)), r += Ge;
761
+ return r;
762
+ }
763
+ clearTrace() {
764
+ this.traceArr = [];
765
+ }
766
+ _trace(t) {
767
+ let e = this.traceArr, i;
768
+ e.push(t), i = e.length, i >= Ie && e.shift();
769
+ }
770
+ reset() {
771
+ const t = this.getCanvas().getPixelRatio();
772
+ this.setTransform(1 * t, 0, 0, 1 * t, 0, 0);
773
+ }
774
+ getCanvas() {
775
+ return this.canvas;
776
+ }
777
+ clear(t) {
778
+ const e = this.getCanvas();
779
+ t ? this.clearRect(t.x || 0, t.y || 0, t.width || 0, t.height || 0) : this.clearRect(0, 0, e.getWidth() / e.pixelRatio, e.getHeight() / e.pixelRatio);
780
+ }
781
+ _applyLineCap(t) {
782
+ const e = t.attrs.lineCap;
783
+ e && this.setAttr("lineCap", e);
784
+ }
785
+ _applyOpacity(t) {
786
+ const e = t.getAbsoluteOpacity();
787
+ e !== 1 && this.setAttr("globalAlpha", e);
788
+ }
789
+ _applyLineJoin(t) {
790
+ const e = t.attrs.lineJoin;
791
+ e && this.setAttr("lineJoin", e);
792
+ }
793
+ _applyMiterLimit(t) {
794
+ const e = t.attrs.miterLimit;
795
+ e != null && this.setAttr("miterLimit", e);
796
+ }
797
+ setAttr(t, e) {
798
+ this._context[t] = e;
799
+ }
800
+ arc(t, e, i, s, r, a) {
801
+ this._context.arc(t, e, i, s, r, a);
802
+ }
803
+ arcTo(t, e, i, s, r) {
804
+ this._context.arcTo(t, e, i, s, r);
805
+ }
806
+ beginPath() {
807
+ this._context.beginPath();
808
+ }
809
+ bezierCurveTo(t, e, i, s, r, a) {
810
+ this._context.bezierCurveTo(t, e, i, s, r, a);
811
+ }
812
+ clearRect(t, e, i, s) {
813
+ this._context.clearRect(t, e, i, s);
814
+ }
815
+ clip(...t) {
816
+ this._context.clip.apply(this._context, t);
817
+ }
818
+ closePath() {
819
+ this._context.closePath();
820
+ }
821
+ createImageData(t, e) {
822
+ const i = arguments;
823
+ if (i.length === 2)
824
+ return this._context.createImageData(t, e);
825
+ if (i.length === 1)
826
+ return this._context.createImageData(t);
827
+ }
828
+ createLinearGradient(t, e, i, s) {
829
+ return this._context.createLinearGradient(t, e, i, s);
830
+ }
831
+ createPattern(t, e) {
832
+ return this._context.createPattern(t, e);
833
+ }
834
+ createRadialGradient(t, e, i, s, r, a) {
835
+ return this._context.createRadialGradient(t, e, i, s, r, a);
836
+ }
837
+ drawImage(t, e, i, s, r, a, o, h, l) {
838
+ const d = arguments, u = this._context;
839
+ d.length === 3 ? u.drawImage(t, e, i) : d.length === 5 ? u.drawImage(t, e, i, s, r) : d.length === 9 && u.drawImage(t, e, i, s, r, a, o, h, l);
840
+ }
841
+ ellipse(t, e, i, s, r, a, o, h) {
842
+ this._context.ellipse(t, e, i, s, r, a, o, h);
843
+ }
844
+ isPointInPath(t, e, i, s) {
845
+ return i ? this._context.isPointInPath(i, t, e, s) : this._context.isPointInPath(t, e, s);
846
+ }
847
+ fill(...t) {
848
+ this._context.fill.apply(this._context, t);
849
+ }
850
+ fillRect(t, e, i, s) {
851
+ this._context.fillRect(t, e, i, s);
852
+ }
853
+ strokeRect(t, e, i, s) {
854
+ this._context.strokeRect(t, e, i, s);
855
+ }
856
+ fillText(t, e, i, s) {
857
+ s ? this._context.fillText(t, e, i, s) : this._context.fillText(t, e, i);
858
+ }
859
+ measureText(t) {
860
+ return this._context.measureText(t);
861
+ }
862
+ getImageData(t, e, i, s) {
863
+ return this._context.getImageData(t, e, i, s);
864
+ }
865
+ lineTo(t, e) {
866
+ this._context.lineTo(t, e);
867
+ }
868
+ moveTo(t, e) {
869
+ this._context.moveTo(t, e);
870
+ }
871
+ rect(t, e, i, s) {
872
+ this._context.rect(t, e, i, s);
873
+ }
874
+ roundRect(t, e, i, s, r) {
875
+ this._context.roundRect(t, e, i, s, r);
876
+ }
877
+ putImageData(t, e, i) {
878
+ this._context.putImageData(t, e, i);
879
+ }
880
+ quadraticCurveTo(t, e, i, s) {
881
+ this._context.quadraticCurveTo(t, e, i, s);
882
+ }
883
+ restore() {
884
+ this._context.restore();
885
+ }
886
+ rotate(t) {
887
+ this._context.rotate(t);
888
+ }
889
+ save() {
890
+ this._context.save();
891
+ }
892
+ scale(t, e) {
893
+ this._context.scale(t, e);
894
+ }
895
+ setLineDash(t) {
896
+ this._context.setLineDash ? this._context.setLineDash(t) : "mozDash" in this._context ? this._context.mozDash = t : "webkitLineDash" in this._context && (this._context.webkitLineDash = t);
897
+ }
898
+ getLineDash() {
899
+ return this._context.getLineDash();
900
+ }
901
+ setTransform(t, e, i, s, r, a) {
902
+ this._context.setTransform(t, e, i, s, r, a);
903
+ }
904
+ stroke(t) {
905
+ t ? this._context.stroke(t) : this._context.stroke();
906
+ }
907
+ strokeText(t, e, i, s) {
908
+ this._context.strokeText(t, e, i, s);
909
+ }
910
+ transform(t, e, i, s, r, a) {
911
+ this._context.transform(t, e, i, s, r, a);
912
+ }
913
+ translate(t, e) {
914
+ this._context.translate(t, e);
915
+ }
916
+ _enableTrace() {
917
+ let t = this, e = Dt.length, i = this.setAttr, s, r;
918
+ const a = function(o) {
919
+ let h = t[o], l;
920
+ t[o] = function() {
921
+ return r = Pe(Array.prototype.slice.call(arguments, 0)), l = h.apply(t, arguments), t._trace({
922
+ method: o,
923
+ args: r
924
+ }), l;
925
+ };
926
+ };
927
+ for (s = 0; s < e; s++)
928
+ a(Dt[s]);
929
+ t.setAttr = function() {
930
+ i.apply(t, arguments);
931
+ const o = arguments[0];
932
+ let h = arguments[1];
933
+ (o === "shadowOffsetX" || o === "shadowOffsetY" || o === "shadowBlur") && (h = h / this.canvas.getPixelRatio()), t._trace({
934
+ property: o,
935
+ val: h
936
+ });
937
+ };
938
+ }
939
+ _applyGlobalCompositeOperation(t) {
940
+ const e = t.attrs.globalCompositeOperation;
941
+ !e || e === "source-over" || this.setAttr("globalCompositeOperation", e);
942
+ }
943
+ }
944
+ Le.forEach(function(n) {
945
+ Object.defineProperty(ft.prototype, n, {
946
+ get() {
947
+ return this._context[n];
948
+ },
949
+ set(t) {
950
+ this._context[n] = t;
951
+ }
952
+ });
953
+ });
954
+ class Me extends ft {
955
+ constructor(t, { willReadFrequently: e = !1 } = {}) {
956
+ super(t), this._context = t._canvas.getContext("2d", {
957
+ willReadFrequently: e
958
+ });
959
+ }
960
+ _fillColor(t) {
961
+ const e = t.fill();
962
+ this.setAttr("fillStyle", e), t._fillFunc(this);
963
+ }
964
+ _fillPattern(t) {
965
+ this.setAttr("fillStyle", t._getFillPattern()), t._fillFunc(this);
966
+ }
967
+ _fillLinearGradient(t) {
968
+ const e = t._getLinearGradient();
969
+ e && (this.setAttr("fillStyle", e), t._fillFunc(this));
970
+ }
971
+ _fillRadialGradient(t) {
972
+ const e = t._getRadialGradient();
973
+ e && (this.setAttr("fillStyle", e), t._fillFunc(this));
974
+ }
975
+ _fill(t) {
976
+ const e = t.fill(), i = t.getFillPriority();
977
+ if (e && i === "color") {
978
+ this._fillColor(t);
979
+ return;
980
+ }
981
+ const s = t.getFillPatternImage();
982
+ if (s && i === "pattern") {
983
+ this._fillPattern(t);
984
+ return;
985
+ }
986
+ const r = t.getFillLinearGradientColorStops();
987
+ if (r && i === "linear-gradient") {
988
+ this._fillLinearGradient(t);
989
+ return;
990
+ }
991
+ const a = t.getFillRadialGradientColorStops();
992
+ if (a && i === "radial-gradient") {
993
+ this._fillRadialGradient(t);
994
+ return;
995
+ }
996
+ e ? this._fillColor(t) : s ? this._fillPattern(t) : r ? this._fillLinearGradient(t) : a && this._fillRadialGradient(t);
997
+ }
998
+ _strokeLinearGradient(t) {
999
+ const e = t.getStrokeLinearGradientStartPoint(), i = t.getStrokeLinearGradientEndPoint(), s = t.getStrokeLinearGradientColorStops(), r = this.createLinearGradient(e.x, e.y, i.x, i.y);
1000
+ if (s) {
1001
+ for (let a = 0; a < s.length; a += 2)
1002
+ r.addColorStop(s[a], s[a + 1]);
1003
+ this.setAttr("strokeStyle", r);
1004
+ }
1005
+ }
1006
+ _stroke(t) {
1007
+ const e = t.dash(), i = t.getStrokeScaleEnabled();
1008
+ if (t.hasStroke()) {
1009
+ if (!i) {
1010
+ this.save();
1011
+ const r = this.getCanvas().getPixelRatio();
1012
+ this.setTransform(r, 0, 0, r, 0, 0);
1013
+ }
1014
+ this._applyLineCap(t), e && t.dashEnabled() && (this.setLineDash(e), this.setAttr("lineDashOffset", t.dashOffset())), this.setAttr("lineWidth", t.strokeWidth()), t.getShadowForStrokeEnabled() || this.setAttr("shadowColor", "rgba(0,0,0,0)"), t.getStrokeLinearGradientColorStops() ? this._strokeLinearGradient(t) : this.setAttr("strokeStyle", t.stroke()), t._strokeFunc(this), i || this.restore();
1015
+ }
1016
+ }
1017
+ _applyShadow(t) {
1018
+ var e, i, s;
1019
+ const r = (e = t.getShadowRGBA()) !== null && e !== void 0 ? e : "black", a = (i = t.getShadowBlur()) !== null && i !== void 0 ? i : 5, o = (s = t.getShadowOffset()) !== null && s !== void 0 ? s : {
1020
+ x: 0,
1021
+ y: 0
1022
+ }, h = t.getAbsoluteScale(), l = this.canvas.getPixelRatio(), d = h.x * l, u = h.y * l;
1023
+ this.setAttr("shadowColor", r), this.setAttr("shadowBlur", a * Math.min(Math.abs(d), Math.abs(u))), this.setAttr("shadowOffsetX", o.x * d), this.setAttr("shadowOffsetY", o.y * u);
1024
+ }
1025
+ }
1026
+ class Fe extends ft {
1027
+ constructor(t) {
1028
+ super(t), this._context = t._canvas.getContext("2d", {
1029
+ willReadFrequently: !0
1030
+ });
1031
+ }
1032
+ _fill(t) {
1033
+ this.save(), this.setAttr("fillStyle", t.colorKey), t._fillFuncHit(this), this.restore();
1034
+ }
1035
+ strokeShape(t) {
1036
+ t.hasHitStroke() && this._stroke(t);
1037
+ }
1038
+ _stroke(t) {
1039
+ if (t.hasHitStroke()) {
1040
+ const e = t.getStrokeScaleEnabled();
1041
+ if (!e) {
1042
+ this.save();
1043
+ const r = this.getCanvas().getPixelRatio();
1044
+ this.setTransform(r, 0, 0, r, 0, 0);
1045
+ }
1046
+ this._applyLineCap(t);
1047
+ const i = t.hitStrokeWidth(), s = i === "auto" ? t.strokeWidth() : i;
1048
+ this.setAttr("lineWidth", s), this.setAttr("strokeStyle", t.colorKey), t._strokeFuncHit(this), e || this.restore();
1049
+ }
1050
+ }
1051
+ }
1052
+ let at;
1053
+ function Be() {
1054
+ if (at)
1055
+ return at;
1056
+ const n = c.createCanvasElement(), t = n.getContext("2d");
1057
+ return at = (function() {
1058
+ const e = m._global.devicePixelRatio || 1, i = t.webkitBackingStorePixelRatio || t.mozBackingStorePixelRatio || t.msBackingStorePixelRatio || t.oBackingStorePixelRatio || t.backingStorePixelRatio || 1;
1059
+ return e / i;
1060
+ })(), c.releaseCanvas(n), at;
1061
+ }
1062
+ class xt {
1063
+ constructor(t) {
1064
+ this.pixelRatio = 1, this.width = 0, this.height = 0, this.isCache = !1;
1065
+ const i = (t || {}).pixelRatio || m.pixelRatio || Be();
1066
+ this.pixelRatio = i, this._canvas = c.createCanvasElement(), this._canvas.style.padding = "0", this._canvas.style.margin = "0", this._canvas.style.border = "0", this._canvas.style.background = "transparent", this._canvas.style.position = "absolute", this._canvas.style.top = "0", this._canvas.style.left = "0";
1067
+ }
1068
+ getContext() {
1069
+ return this.context;
1070
+ }
1071
+ getPixelRatio() {
1072
+ return this.pixelRatio;
1073
+ }
1074
+ setPixelRatio(t) {
1075
+ const e = this.pixelRatio;
1076
+ this.pixelRatio = t, this.setSize(this.getWidth() / e, this.getHeight() / e);
1077
+ }
1078
+ setWidth(t) {
1079
+ this.width = this._canvas.width = t * this.pixelRatio, this._canvas.style.width = t + "px";
1080
+ const e = this.pixelRatio;
1081
+ this.getContext()._context.scale(e, e);
1082
+ }
1083
+ setHeight(t) {
1084
+ this.height = this._canvas.height = t * this.pixelRatio, this._canvas.style.height = t + "px";
1085
+ const e = this.pixelRatio;
1086
+ this.getContext()._context.scale(e, e);
1087
+ }
1088
+ getWidth() {
1089
+ return this.width;
1090
+ }
1091
+ getHeight() {
1092
+ return this.height;
1093
+ }
1094
+ setSize(t, e) {
1095
+ this.setWidth(t || 0), this.setHeight(e || 0);
1096
+ }
1097
+ toDataURL(t, e) {
1098
+ try {
1099
+ return this._canvas.toDataURL(t, e);
1100
+ } catch {
1101
+ try {
1102
+ return this._canvas.toDataURL();
1103
+ } catch (s) {
1104
+ return c.error("Unable to get data URL. " + s.message + " For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html."), "";
1105
+ }
1106
+ }
1107
+ }
1108
+ }
1109
+ class D extends xt {
1110
+ constructor(t = { width: 0, height: 0, willReadFrequently: !1 }) {
1111
+ super(t), this.context = new Me(this, {
1112
+ willReadFrequently: t.willReadFrequently
1113
+ }), this.setSize(t.width, t.height);
1114
+ }
1115
+ }
1116
+ class Et extends xt {
1117
+ constructor(t = { width: 0, height: 0 }) {
1118
+ super(t), this.hitCanvas = !0, this.context = new Fe(this), this.setSize(t.width, t.height);
1119
+ }
1120
+ }
1121
+ const v = {
1122
+ get isDragging() {
1123
+ let n = !1;
1124
+ return v._dragElements.forEach((t) => {
1125
+ t.dragStatus === "dragging" && (n = !0);
1126
+ }), n;
1127
+ },
1128
+ justDragged: !1,
1129
+ get node() {
1130
+ let n;
1131
+ return v._dragElements.forEach((t) => {
1132
+ n = t.node;
1133
+ }), n;
1134
+ },
1135
+ _dragElements: /* @__PURE__ */ new Map(),
1136
+ _drag(n) {
1137
+ const t = [];
1138
+ v._dragElements.forEach((e, i) => {
1139
+ const { node: s } = e, r = s.getStage();
1140
+ r.setPointersPositions(n), e.pointerId === void 0 && (e.pointerId = c._getFirstPointerId(n));
1141
+ const a = r._changedPointerPositions.find((o) => o.id === e.pointerId);
1142
+ if (a) {
1143
+ if (e.dragStatus !== "dragging") {
1144
+ const o = s.dragDistance();
1145
+ if (Math.max(Math.abs(a.x - e.startPointerPos.x), Math.abs(a.y - e.startPointerPos.y)) < o || (s.startDrag({ evt: n }), !s.isDragging()))
1146
+ return;
1147
+ }
1148
+ s._setDragPosition(n, e), t.push(s);
1149
+ }
1150
+ }), t.forEach((e) => {
1151
+ e.getStage() && e.fire("dragmove", {
1152
+ type: "dragmove",
1153
+ target: e,
1154
+ evt: n
1155
+ }, !0);
1156
+ });
1157
+ },
1158
+ _endDragBefore(n) {
1159
+ const t = [];
1160
+ v._dragElements.forEach((e) => {
1161
+ const { node: i } = e, s = i.getStage();
1162
+ if (n && s.setPointersPositions(n), !s._changedPointerPositions.find((o) => o.id === e.pointerId))
1163
+ return;
1164
+ (e.dragStatus === "dragging" || e.dragStatus === "stopped") && (v.justDragged = !0, m._mouseListenClick = !1, m._touchListenClick = !1, m._pointerListenClick = !1, e.dragStatus = "stopped");
1165
+ const a = e.node.getLayer() || e.node instanceof m.Stage && e.node;
1166
+ a && t.indexOf(a) === -1 && t.push(a);
1167
+ }), t.forEach((e) => {
1168
+ e.draw();
1169
+ });
1170
+ },
1171
+ _endDragAfter(n) {
1172
+ v._dragElements.forEach((t, e) => {
1173
+ t.dragStatus === "stopped" && t.node.fire("dragend", {
1174
+ type: "dragend",
1175
+ target: t.node,
1176
+ evt: n
1177
+ }, !0), t.dragStatus !== "dragging" && v._dragElements.delete(e);
1178
+ });
1179
+ }
1180
+ };
1181
+ m.isBrowser && (window.addEventListener("mouseup", v._endDragBefore, !0), window.addEventListener("touchend", v._endDragBefore, !0), window.addEventListener("touchcancel", v._endDragBefore, !0), window.addEventListener("mousemove", v._drag), window.addEventListener("touchmove", v._drag), window.addEventListener("mouseup", v._endDragAfter, !1), window.addEventListener("touchend", v._endDragAfter, !1), window.addEventListener("touchcancel", v._endDragAfter, !1));
1182
+ function I(n) {
1183
+ return c._isString(n) ? '"' + n + '"' : Object.prototype.toString.call(n) === "[object Number]" || c._isBoolean(n) ? n : Object.prototype.toString.call(n);
1184
+ }
1185
+ function wi(n) {
1186
+ return n > 255 ? 255 : n < 0 ? 0 : Math.round(n);
1187
+ }
1188
+ function b() {
1189
+ if (m.isUnminified)
1190
+ return function(n, t) {
1191
+ return c._isNumber(n) || c.warn(I(n) + ' is a not valid value for "' + t + '" attribute. The value should be a number.'), n;
1192
+ };
1193
+ }
1194
+ function xi(n) {
1195
+ if (m.isUnminified)
1196
+ return function(t, e) {
1197
+ let i = c._isNumber(t), s = c._isArray(t) && t.length == n;
1198
+ return !i && !s && c.warn(I(t) + ' is a not valid value for "' + e + '" attribute. The value should be a number or Array<number>(' + n + ")"), t;
1199
+ };
1200
+ }
1201
+ function Ne() {
1202
+ if (m.isUnminified)
1203
+ return function(n, t) {
1204
+ return c._isNumber(n) || n === "auto" || c.warn(I(n) + ' is a not valid value for "' + t + '" attribute. The value should be a number or "auto".'), n;
1205
+ };
1206
+ }
1207
+ function Y() {
1208
+ if (m.isUnminified)
1209
+ return function(n, t) {
1210
+ return c._isString(n) || c.warn(I(n) + ' is a not valid value for "' + t + '" attribute. The value should be a string.'), n;
1211
+ };
1212
+ }
1213
+ function Wt() {
1214
+ if (m.isUnminified)
1215
+ return function(n, t) {
1216
+ const e = c._isString(n), i = Object.prototype.toString.call(n) === "[object CanvasGradient]" || n && n.addColorStop;
1217
+ return e || i || c.warn(I(n) + ' is a not valid value for "' + t + '" attribute. The value should be a string or a native gradient.'), n;
1218
+ };
1219
+ }
1220
+ function Ei() {
1221
+ if (m.isUnminified)
1222
+ return function(n, t) {
1223
+ const e = Int8Array ? Object.getPrototypeOf(Int8Array) : null;
1224
+ return e && n instanceof e || (c._isArray(n) ? n.forEach(function(i) {
1225
+ c._isNumber(i) || c.warn('"' + t + '" attribute has non numeric element ' + i + ". Make sure that all elements are numbers.");
1226
+ }) : c.warn(I(n) + ' is a not valid value for "' + t + '" attribute. The value should be a array of numbers.')), n;
1227
+ };
1228
+ }
1229
+ function M() {
1230
+ if (m.isUnminified)
1231
+ return function(n, t) {
1232
+ return n === !0 || n === !1 || c.warn(I(n) + ' is a not valid value for "' + t + '" attribute. The value should be a boolean.'), n;
1233
+ };
1234
+ }
1235
+ function He(n) {
1236
+ if (m.isUnminified)
1237
+ return function(t, e) {
1238
+ return t == null || c.isObject(t) || c.warn(I(t) + ' is a not valid value for "' + e + '" attribute. The value should be an object with properties ' + n), t;
1239
+ };
1240
+ }
1241
+ const W = "get", j = "set", g = {
1242
+ addGetterSetter(n, t, e, i, s) {
1243
+ g.addGetter(n, t, e), g.addSetter(n, t, i, s), g.addOverloadedGetterSetter(n, t);
1244
+ },
1245
+ addGetter(n, t, e) {
1246
+ const i = W + c._capitalize(t);
1247
+ n.prototype[i] = n.prototype[i] || function() {
1248
+ const s = this.attrs[t];
1249
+ return s === void 0 ? e : s;
1250
+ };
1251
+ },
1252
+ addSetter(n, t, e, i) {
1253
+ const s = j + c._capitalize(t);
1254
+ n.prototype[s] || g.overWriteSetter(n, t, e, i);
1255
+ },
1256
+ overWriteSetter(n, t, e, i) {
1257
+ const s = j + c._capitalize(t);
1258
+ n.prototype[s] = function(r) {
1259
+ return e && r !== void 0 && r !== null && (r = e.call(this, r, t)), this._setAttr(t, r), i && i.call(this), this;
1260
+ };
1261
+ },
1262
+ addComponentsGetterSetter(n, t, e, i, s) {
1263
+ const r = e.length, a = c._capitalize, o = W + a(t), h = j + a(t);
1264
+ n.prototype[o] = function() {
1265
+ const d = {};
1266
+ for (let u = 0; u < r; u++) {
1267
+ const f = e[u];
1268
+ d[f] = this.getAttr(t + a(f));
1269
+ }
1270
+ return d;
1271
+ };
1272
+ const l = He(e);
1273
+ n.prototype[h] = function(d) {
1274
+ const u = this.attrs[t];
1275
+ i && (d = i.call(this, d, t)), l && l.call(this, d, t);
1276
+ for (const f in d)
1277
+ d.hasOwnProperty(f) && this._setAttr(t + a(f), d[f]);
1278
+ return d || e.forEach((f) => {
1279
+ this._setAttr(t + a(f), void 0);
1280
+ }), this._fireChangeEvent(t, u, d), s && s.call(this), this;
1281
+ }, g.addOverloadedGetterSetter(n, t);
1282
+ },
1283
+ addOverloadedGetterSetter(n, t) {
1284
+ const e = c._capitalize(t), i = j + e, s = W + e;
1285
+ n.prototype[t] = function() {
1286
+ return arguments.length ? (this[i](arguments[0]), this) : this[s]();
1287
+ };
1288
+ },
1289
+ addDeprecatedGetterSetter(n, t, e, i) {
1290
+ c.error("Adding deprecated " + t);
1291
+ const s = W + c._capitalize(t), r = t + " property is deprecated and will be removed soon. Look at Konva change log for more information.";
1292
+ n.prototype[s] = function() {
1293
+ c.error(r);
1294
+ const a = this.attrs[t];
1295
+ return a === void 0 ? e : a;
1296
+ }, g.addSetter(n, t, i, function() {
1297
+ c.error(r);
1298
+ }), g.addOverloadedGetterSetter(n, t);
1299
+ },
1300
+ backCompat(n, t) {
1301
+ c.each(t, function(e, i) {
1302
+ const s = n.prototype[i], r = W + c._capitalize(e), a = j + c._capitalize(e);
1303
+ function o() {
1304
+ s.apply(this, arguments), c.error('"' + e + '" method is deprecated and will be removed soon. Use ""' + i + '" instead.');
1305
+ }
1306
+ n.prototype[e] = o, n.prototype[r] = o, n.prototype[a] = o;
1307
+ });
1308
+ },
1309
+ afterSetFilter() {
1310
+ this._filterUpToDate = !1;
1311
+ }
1312
+ };
1313
+ function Ue(n) {
1314
+ const t = /(\w+)\(([^)]+)\)/g;
1315
+ let e;
1316
+ for (; (e = t.exec(n)) !== null; ) {
1317
+ const [, i, s] = e;
1318
+ switch (i) {
1319
+ case "blur": {
1320
+ const r = parseFloat(s.replace("px", ""));
1321
+ return function(a) {
1322
+ this.blurRadius(r * 0.5);
1323
+ const o = m.Filters;
1324
+ o && o.Blur && o.Blur.call(this, a);
1325
+ };
1326
+ }
1327
+ case "brightness": {
1328
+ const r = s.includes("%") ? parseFloat(s) / 100 : parseFloat(s);
1329
+ return function(a) {
1330
+ this.brightness(r);
1331
+ const o = m.Filters;
1332
+ o && o.Brightness && o.Brightness.call(this, a);
1333
+ };
1334
+ }
1335
+ case "contrast": {
1336
+ const r = parseFloat(s);
1337
+ return function(a) {
1338
+ const o = 100 * (Math.sqrt(r) - 1);
1339
+ this.contrast(o);
1340
+ const h = m.Filters;
1341
+ h && h.Contrast && h.Contrast.call(this, a);
1342
+ };
1343
+ }
1344
+ case "grayscale":
1345
+ return function(r) {
1346
+ const a = m.Filters;
1347
+ a && a.Grayscale && a.Grayscale.call(this, r);
1348
+ };
1349
+ case "sepia":
1350
+ return function(r) {
1351
+ const a = m.Filters;
1352
+ a && a.Sepia && a.Sepia.call(this, r);
1353
+ };
1354
+ case "invert":
1355
+ return function(r) {
1356
+ const a = m.Filters;
1357
+ a && a.Invert && a.Invert.call(this, r);
1358
+ };
1359
+ default:
1360
+ c.warn(`CSS filter "${i}" is not supported in fallback mode. Consider using function filters for better compatibility.`);
1361
+ break;
1362
+ }
1363
+ }
1364
+ return () => {
1365
+ };
1366
+ }
1367
+ const dt = "absoluteOpacity", It = "allEventListeners", T = "absoluteTransform", Mt = "absoluteScale", F = "canvas", Ye = "Change", Xe = "children", Ve = "konva", vt = "listening", We = "mouseenter", je = "mouseleave", Ke = "pointerenter", qe = "pointerleave", ze = "touchenter", Je = "touchleave", Ft = "set", Bt = "Shape", ut = " ", Nt = "stage", O = "transform", $e = "Stage", bt = "visible", Ze = [
1368
+ "xChange.konva",
1369
+ "yChange.konva",
1370
+ "scaleXChange.konva",
1371
+ "scaleYChange.konva",
1372
+ "skewXChange.konva",
1373
+ "skewYChange.konva",
1374
+ "rotationChange.konva",
1375
+ "offsetXChange.konva",
1376
+ "offsetYChange.konva",
1377
+ "transformsEnabledChange.konva"
1378
+ ].join(ut);
1379
+ let Qe = 1;
1380
+ class _ {
1381
+ constructor(t) {
1382
+ this._id = Qe++, this.eventListeners = {}, this.attrs = {}, this.index = 0, this._allEventListeners = null, this.parent = null, this._cache = /* @__PURE__ */ new Map(), this._attachedDepsListeners = /* @__PURE__ */ new Map(), this._lastPos = null, this._batchingTransformChange = !1, this._needClearTransformCache = !1, this._filterUpToDate = !1, this._isUnderCache = !1, this._dragEventId = null, this._shouldFireChangeEvents = !1, this.setAttrs(t), this._shouldFireChangeEvents = !0;
1383
+ }
1384
+ hasChildren() {
1385
+ return !1;
1386
+ }
1387
+ _clearCache(t) {
1388
+ (t === O || t === T) && this._cache.get(t) ? this._cache.get(t).dirty = !0 : t ? this._cache.delete(t) : this._cache.clear();
1389
+ }
1390
+ _getCache(t, e) {
1391
+ let i = this._cache.get(t);
1392
+ return (i === void 0 || (t === O || t === T) && i.dirty === !0) && (i = e.call(this), this._cache.set(t, i)), i;
1393
+ }
1394
+ _calculate(t, e, i) {
1395
+ if (!this._attachedDepsListeners.get(t)) {
1396
+ const s = e.map((r) => r + "Change.konva").join(ut);
1397
+ this.on(s, () => {
1398
+ this._clearCache(t);
1399
+ }), this._attachedDepsListeners.set(t, !0);
1400
+ }
1401
+ return this._getCache(t, i);
1402
+ }
1403
+ _getCanvasCache() {
1404
+ return this._cache.get(F);
1405
+ }
1406
+ _clearSelfAndDescendantCache(t) {
1407
+ this._clearCache(t), t === T && this.fire("absoluteTransformChange");
1408
+ }
1409
+ clearCache() {
1410
+ if (this._cache.has(F)) {
1411
+ const { scene: t, filter: e, hit: i } = this._cache.get(F);
1412
+ c.releaseCanvas(t._canvas, e._canvas, i._canvas), this._cache.delete(F);
1413
+ }
1414
+ return this._clearSelfAndDescendantCache(), this._requestDraw(), this;
1415
+ }
1416
+ cache(t) {
1417
+ const e = t || {};
1418
+ let i = {};
1419
+ (e.x === void 0 || e.y === void 0 || e.width === void 0 || e.height === void 0) && (i = this.getClientRect({
1420
+ skipTransform: !0,
1421
+ relativeTo: this.getParent() || void 0
1422
+ }));
1423
+ let s = Math.ceil(e.width || i.width), r = Math.ceil(e.height || i.height), a = e.pixelRatio, o = e.x === void 0 ? Math.floor(i.x) : e.x, h = e.y === void 0 ? Math.floor(i.y) : e.y, l = e.offset || 0, d = e.drawBorder || !1, u = e.hitCanvasPixelRatio || 1;
1424
+ if (!s || !r) {
1425
+ c.error("Can not cache the node. Width or height of the node equals 0. Caching is skipped.");
1426
+ return;
1427
+ }
1428
+ const f = Math.abs(Math.round(i.x) - o) > 0.5 ? 1 : 0, C = Math.abs(Math.round(i.y) - h) > 0.5 ? 1 : 0;
1429
+ s += l * 2 + f, r += l * 2 + C, o -= l, h -= l;
1430
+ const y = new D({
1431
+ pixelRatio: a,
1432
+ width: s,
1433
+ height: r
1434
+ }), P = new D({
1435
+ pixelRatio: a,
1436
+ width: 0,
1437
+ height: 0,
1438
+ willReadFrequently: !0
1439
+ }), E = new Et({
1440
+ pixelRatio: u,
1441
+ width: s,
1442
+ height: r
1443
+ }), x = y.getContext(), A = E.getContext(), G = new D({
1444
+ width: y.width / y.pixelRatio + Math.abs(o),
1445
+ height: y.height / y.pixelRatio + Math.abs(h),
1446
+ pixelRatio: y.pixelRatio
1447
+ }), Tt = G.getContext();
1448
+ return E.isCache = !0, y.isCache = !0, this._cache.delete(F), this._filterUpToDate = !1, e.imageSmoothingEnabled === !1 && (y.getContext()._context.imageSmoothingEnabled = !1, P.getContext()._context.imageSmoothingEnabled = !1), x.save(), A.save(), Tt.save(), x.translate(-o, -h), A.translate(-o, -h), Tt.translate(-o, -h), G.x = o, G.y = h, this._isUnderCache = !0, this._clearSelfAndDescendantCache(dt), this._clearSelfAndDescendantCache(Mt), this.drawScene(y, this, G), this.drawHit(E, this), this._isUnderCache = !1, x.restore(), A.restore(), d && (x.save(), x.beginPath(), x.rect(0, 0, s, r), x.closePath(), x.setAttr("strokeStyle", "red"), x.setAttr("lineWidth", 5), x.stroke(), x.restore()), c.releaseCanvas(G._canvas), this._cache.set(F, {
1449
+ scene: y,
1450
+ filter: P,
1451
+ hit: E,
1452
+ x: o,
1453
+ y: h
1454
+ }), this._requestDraw(), this;
1455
+ }
1456
+ isCached() {
1457
+ return this._cache.has(F);
1458
+ }
1459
+ getClientRect(t) {
1460
+ throw new Error('abstract "getClientRect" method call');
1461
+ }
1462
+ _transformedRect(t, e) {
1463
+ const i = [
1464
+ { x: t.x, y: t.y },
1465
+ { x: t.x + t.width, y: t.y },
1466
+ { x: t.x + t.width, y: t.y + t.height },
1467
+ { x: t.x, y: t.y + t.height }
1468
+ ];
1469
+ let s = 1 / 0, r = 1 / 0, a = -1 / 0, o = -1 / 0;
1470
+ const h = this.getAbsoluteTransform(e);
1471
+ return i.forEach(function(l) {
1472
+ const d = h.point(l);
1473
+ s === void 0 && (s = a = d.x, r = o = d.y), s = Math.min(s, d.x), r = Math.min(r, d.y), a = Math.max(a, d.x), o = Math.max(o, d.y);
1474
+ }), {
1475
+ x: s,
1476
+ y: r,
1477
+ width: a - s,
1478
+ height: o - r
1479
+ };
1480
+ }
1481
+ _drawCachedSceneCanvas(t) {
1482
+ t.save(), t._applyOpacity(this), t._applyGlobalCompositeOperation(this);
1483
+ const e = this._getCanvasCache();
1484
+ t.translate(e.x, e.y);
1485
+ const i = this._getCachedSceneCanvas(), s = i.pixelRatio;
1486
+ t.drawImage(i._canvas, 0, 0, i.width / s, i.height / s), t.restore();
1487
+ }
1488
+ _drawCachedHitCanvas(t) {
1489
+ const e = this._getCanvasCache(), i = e.hit;
1490
+ t.save(), t.translate(e.x, e.y), t.drawImage(i._canvas, 0, 0, i.width / i.pixelRatio, i.height / i.pixelRatio), t.restore();
1491
+ }
1492
+ _getCachedSceneCanvas() {
1493
+ let t = this.filters(), e = this._getCanvasCache(), i = e.scene, s = e.filter, r = s.getContext(), a, o, h, l;
1494
+ if (!t || t.length === 0)
1495
+ return i;
1496
+ if (this._filterUpToDate)
1497
+ return s;
1498
+ let d = !0;
1499
+ for (let f = 0; f < t.length; f++)
1500
+ if (typeof t[f] == "string" && Lt(), typeof t[f] != "string" || !Lt()) {
1501
+ d = !1;
1502
+ break;
1503
+ }
1504
+ const u = i.pixelRatio;
1505
+ if (s.setSize(i.width / i.pixelRatio, i.height / i.pixelRatio), d) {
1506
+ const f = t.join(" ");
1507
+ return r.save(), r.setAttr("filter", f), r.drawImage(i._canvas, 0, 0, i.getWidth() / u, i.getHeight() / u), r.restore(), this._filterUpToDate = !0, s;
1508
+ }
1509
+ try {
1510
+ for (a = t.length, r.clear(), r.drawImage(i._canvas, 0, 0, i.getWidth() / u, i.getHeight() / u), o = r.getImageData(0, 0, s.getWidth(), s.getHeight()), h = 0; h < a; h++)
1511
+ l = t[h], typeof l == "string" && (l = Ue(l)), l.call(this, o), r.putImageData(o, 0, 0);
1512
+ } catch (f) {
1513
+ c.error("Unable to apply filter. " + f.message + " This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.");
1514
+ }
1515
+ return this._filterUpToDate = !0, s;
1516
+ }
1517
+ on(...t) {
1518
+ const e = t[0], i = t[1];
1519
+ if (t[2], this._cache && this._cache.delete(It), t.length === 3)
1520
+ return this._delegate.apply(this, t);
1521
+ const s = e.split(ut);
1522
+ for (let r = 0; r < s.length; r++) {
1523
+ const o = s[r].split("."), h = o[0], l = o[1] || "";
1524
+ this.eventListeners[h] || (this.eventListeners[h] = []), this.eventListeners[h].push({ name: l, handler: i });
1525
+ }
1526
+ return this;
1527
+ }
1528
+ off(t, e) {
1529
+ let i = (t || "").split(ut), s = i.length, r, a, o, h, l, d;
1530
+ if (this._cache && this._cache.delete(It), !t)
1531
+ for (a in this.eventListeners)
1532
+ this._off(a);
1533
+ for (r = 0; r < s; r++)
1534
+ if (o = i[r], h = o.split("."), l = h[0], d = h[1], l)
1535
+ this.eventListeners[l] && this._off(l, d, e);
1536
+ else
1537
+ for (a in this.eventListeners)
1538
+ this._off(a, d, e);
1539
+ return this;
1540
+ }
1541
+ dispatchEvent(t) {
1542
+ const e = {
1543
+ target: this,
1544
+ type: t.type,
1545
+ evt: t
1546
+ };
1547
+ return this.fire(t.type, e), this;
1548
+ }
1549
+ addEventListener(t, e) {
1550
+ return this.on(t, function(i) {
1551
+ e.call(this, i.evt);
1552
+ }), this;
1553
+ }
1554
+ removeEventListener(t) {
1555
+ return this.off(t), this;
1556
+ }
1557
+ _delegate(t, e, i) {
1558
+ const s = this;
1559
+ return this.on(t, function(r) {
1560
+ const a = r.target.findAncestors(e, !0, s);
1561
+ for (let o = 0; o < a.length; o++)
1562
+ r = c.cloneObject(r), r.currentTarget = a[o], i.call(a[o], r);
1563
+ }), this;
1564
+ }
1565
+ remove() {
1566
+ return this.isDragging() && this.stopDrag(), v._dragElements.delete(this._id), v._dragElements.forEach((t, e) => {
1567
+ this.isAncestorOf(t.node) && v._dragElements.delete(e);
1568
+ }), this._remove(), this;
1569
+ }
1570
+ _clearCaches() {
1571
+ this._clearSelfAndDescendantCache(T), this._clearSelfAndDescendantCache(dt), this._clearSelfAndDescendantCache(Mt), this._clearSelfAndDescendantCache(Nt), this._clearSelfAndDescendantCache(bt), this._clearSelfAndDescendantCache(vt);
1572
+ }
1573
+ _remove() {
1574
+ this._clearCaches();
1575
+ const t = this.getParent();
1576
+ t && t.children && (t.children.splice(this.index, 1), t._setChildrenIndices(), this.parent = null);
1577
+ }
1578
+ destroy() {
1579
+ return this.remove(), this.clearCache(), this;
1580
+ }
1581
+ getAttr(t) {
1582
+ const e = "get" + c._capitalize(t);
1583
+ return c._isFunction(this[e]) ? this[e]() : this.attrs[t];
1584
+ }
1585
+ getAncestors() {
1586
+ let t = this.getParent(), e = [];
1587
+ for (; t; )
1588
+ e.push(t), t = t.getParent();
1589
+ return e;
1590
+ }
1591
+ getAttrs() {
1592
+ return this.attrs || {};
1593
+ }
1594
+ setAttrs(t) {
1595
+ return this._batchTransformChanges(() => {
1596
+ let e, i;
1597
+ if (!t)
1598
+ return this;
1599
+ for (e in t)
1600
+ e !== Xe && (i = Ft + c._capitalize(e), c._isFunction(this[i]) ? this[i](t[e]) : this._setAttr(e, t[e]));
1601
+ }), this;
1602
+ }
1603
+ isListening() {
1604
+ return this._getCache(vt, this._isListening);
1605
+ }
1606
+ _isListening(t) {
1607
+ if (!this.listening())
1608
+ return !1;
1609
+ const i = this.getParent();
1610
+ return i && i !== t && this !== t ? i._isListening(t) : !0;
1611
+ }
1612
+ isVisible() {
1613
+ return this._getCache(bt, this._isVisible);
1614
+ }
1615
+ _isVisible(t) {
1616
+ if (!this.visible())
1617
+ return !1;
1618
+ const i = this.getParent();
1619
+ return i && i !== t && this !== t ? i._isVisible(t) : !0;
1620
+ }
1621
+ shouldDrawHit(t, e = !1) {
1622
+ if (t)
1623
+ return this._isVisible(t) && this._isListening(t);
1624
+ const i = this.getLayer();
1625
+ let s = !1;
1626
+ v._dragElements.forEach((a) => {
1627
+ a.dragStatus === "dragging" && (a.node.nodeType === "Stage" || a.node.getLayer() === i) && (s = !0);
1628
+ });
1629
+ const r = !e && !m.hitOnDragEnabled && (s || m.isTransforming());
1630
+ return this.isListening() && this.isVisible() && !r;
1631
+ }
1632
+ show() {
1633
+ return this.visible(!0), this;
1634
+ }
1635
+ hide() {
1636
+ return this.visible(!1), this;
1637
+ }
1638
+ getZIndex() {
1639
+ return this.index || 0;
1640
+ }
1641
+ getAbsoluteZIndex() {
1642
+ let t = this.getDepth(), e = this, i = 0, s, r, a, o;
1643
+ function h(d) {
1644
+ for (s = [], r = d.length, a = 0; a < r; a++)
1645
+ o = d[a], i++, o.nodeType !== Bt && (s = s.concat(o.getChildren().slice())), o._id === e._id && (a = r);
1646
+ s.length > 0 && s[0].getDepth() <= t && h(s);
1647
+ }
1648
+ const l = this.getStage();
1649
+ return e.nodeType !== $e && l && h(l.getChildren()), i;
1650
+ }
1651
+ getDepth() {
1652
+ let t = 0, e = this.parent;
1653
+ for (; e; )
1654
+ t++, e = e.parent;
1655
+ return t;
1656
+ }
1657
+ _batchTransformChanges(t) {
1658
+ this._batchingTransformChange = !0, t(), this._batchingTransformChange = !1, this._needClearTransformCache && (this._clearCache(O), this._clearSelfAndDescendantCache(T)), this._needClearTransformCache = !1;
1659
+ }
1660
+ setPosition(t) {
1661
+ return this._batchTransformChanges(() => {
1662
+ this.x(t.x), this.y(t.y);
1663
+ }), this;
1664
+ }
1665
+ getPosition() {
1666
+ return {
1667
+ x: this.x(),
1668
+ y: this.y()
1669
+ };
1670
+ }
1671
+ getRelativePointerPosition() {
1672
+ const t = this.getStage();
1673
+ if (!t)
1674
+ return null;
1675
+ const e = t.getPointerPosition();
1676
+ if (!e)
1677
+ return null;
1678
+ const i = this.getAbsoluteTransform().copy();
1679
+ return i.invert(), i.point(e);
1680
+ }
1681
+ getAbsolutePosition(t) {
1682
+ let e = !1, i = this.parent;
1683
+ for (; i; ) {
1684
+ if (i.isCached()) {
1685
+ e = !0;
1686
+ break;
1687
+ }
1688
+ i = i.parent;
1689
+ }
1690
+ e && !t && (t = !0);
1691
+ const s = this.getAbsoluteTransform(t).getMatrix(), r = new L(), a = this.offset();
1692
+ return r.m = s.slice(), r.translate(a.x, a.y), r.getTranslation();
1693
+ }
1694
+ setAbsolutePosition(t) {
1695
+ const { x: e, y: i, ...s } = this._clearTransform();
1696
+ this.attrs.x = e, this.attrs.y = i, this._clearCache(O);
1697
+ const r = this._getAbsoluteTransform().copy();
1698
+ return r.invert(), r.translate(t.x, t.y), t = {
1699
+ x: this.attrs.x + r.getTranslation().x,
1700
+ y: this.attrs.y + r.getTranslation().y
1701
+ }, this._setTransform(s), this.setPosition({ x: t.x, y: t.y }), this._clearCache(O), this._clearSelfAndDescendantCache(T), this;
1702
+ }
1703
+ _setTransform(t) {
1704
+ let e;
1705
+ for (e in t)
1706
+ this.attrs[e] = t[e];
1707
+ }
1708
+ _clearTransform() {
1709
+ const t = {
1710
+ x: this.x(),
1711
+ y: this.y(),
1712
+ rotation: this.rotation(),
1713
+ scaleX: this.scaleX(),
1714
+ scaleY: this.scaleY(),
1715
+ offsetX: this.offsetX(),
1716
+ offsetY: this.offsetY(),
1717
+ skewX: this.skewX(),
1718
+ skewY: this.skewY()
1719
+ };
1720
+ return this.attrs.x = 0, this.attrs.y = 0, this.attrs.rotation = 0, this.attrs.scaleX = 1, this.attrs.scaleY = 1, this.attrs.offsetX = 0, this.attrs.offsetY = 0, this.attrs.skewX = 0, this.attrs.skewY = 0, t;
1721
+ }
1722
+ move(t) {
1723
+ let e = t.x, i = t.y, s = this.x(), r = this.y();
1724
+ return e !== void 0 && (s += e), i !== void 0 && (r += i), this.setPosition({ x: s, y: r }), this;
1725
+ }
1726
+ _eachAncestorReverse(t, e) {
1727
+ let i = [], s = this.getParent(), r, a;
1728
+ if (!(e && e._id === this._id)) {
1729
+ for (i.unshift(this); s && (!e || s._id !== e._id); )
1730
+ i.unshift(s), s = s.parent;
1731
+ for (r = i.length, a = 0; a < r; a++)
1732
+ t(i[a]);
1733
+ }
1734
+ }
1735
+ rotate(t) {
1736
+ return this.rotation(this.rotation() + t), this;
1737
+ }
1738
+ moveToTop() {
1739
+ if (!this.parent)
1740
+ return c.warn("Node has no parent. moveToTop function is ignored."), !1;
1741
+ const t = this.index, e = this.parent.getChildren().length;
1742
+ return t < e - 1 ? (this.parent.children.splice(t, 1), this.parent.children.push(this), this.parent._setChildrenIndices(), !0) : !1;
1743
+ }
1744
+ moveUp() {
1745
+ if (!this.parent)
1746
+ return c.warn("Node has no parent. moveUp function is ignored."), !1;
1747
+ const t = this.index, e = this.parent.getChildren().length;
1748
+ return t < e - 1 ? (this.parent.children.splice(t, 1), this.parent.children.splice(t + 1, 0, this), this.parent._setChildrenIndices(), !0) : !1;
1749
+ }
1750
+ moveDown() {
1751
+ if (!this.parent)
1752
+ return c.warn("Node has no parent. moveDown function is ignored."), !1;
1753
+ const t = this.index;
1754
+ return t > 0 ? (this.parent.children.splice(t, 1), this.parent.children.splice(t - 1, 0, this), this.parent._setChildrenIndices(), !0) : !1;
1755
+ }
1756
+ moveToBottom() {
1757
+ if (!this.parent)
1758
+ return c.warn("Node has no parent. moveToBottom function is ignored."), !1;
1759
+ const t = this.index;
1760
+ return t > 0 ? (this.parent.children.splice(t, 1), this.parent.children.unshift(this), this.parent._setChildrenIndices(), !0) : !1;
1761
+ }
1762
+ setZIndex(t) {
1763
+ if (!this.parent)
1764
+ return c.warn("Node has no parent. zIndex parameter is ignored."), this;
1765
+ (t < 0 || t >= this.parent.children.length) && c.warn("Unexpected value " + t + " for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to " + (this.parent.children.length - 1) + ".");
1766
+ const e = this.index;
1767
+ return this.parent.children.splice(e, 1), this.parent.children.splice(t, 0, this), this.parent._setChildrenIndices(), this;
1768
+ }
1769
+ getAbsoluteOpacity() {
1770
+ return this._getCache(dt, this._getAbsoluteOpacity);
1771
+ }
1772
+ _getAbsoluteOpacity() {
1773
+ let t = this.opacity();
1774
+ const e = this.getParent();
1775
+ return e && !e._isUnderCache && (t *= e.getAbsoluteOpacity()), t;
1776
+ }
1777
+ moveTo(t) {
1778
+ return this.getParent() !== t && (this._remove(), t.add(this)), this;
1779
+ }
1780
+ toObject() {
1781
+ let t = this.getAttrs(), e, i, s, r, a;
1782
+ const o = {
1783
+ attrs: {},
1784
+ className: this.getClassName()
1785
+ };
1786
+ for (e in t)
1787
+ i = t[e], a = c.isObject(i) && !c._isPlainObject(i) && !c._isArray(i), !a && (s = typeof this[e] == "function" && this[e], delete t[e], r = s ? s.call(this) : null, t[e] = i, r !== i && (o.attrs[e] = i));
1788
+ return c._prepareToStringify(o);
1789
+ }
1790
+ toJSON() {
1791
+ return JSON.stringify(this.toObject());
1792
+ }
1793
+ getParent() {
1794
+ return this.parent;
1795
+ }
1796
+ findAncestors(t, e, i) {
1797
+ const s = [];
1798
+ e && this._isMatch(t) && s.push(this);
1799
+ let r = this.parent;
1800
+ for (; r; ) {
1801
+ if (r === i)
1802
+ return s;
1803
+ r._isMatch(t) && s.push(r), r = r.parent;
1804
+ }
1805
+ return s;
1806
+ }
1807
+ isAncestorOf(t) {
1808
+ return !1;
1809
+ }
1810
+ findAncestor(t, e, i) {
1811
+ return this.findAncestors(t, e, i)[0];
1812
+ }
1813
+ _isMatch(t) {
1814
+ if (!t)
1815
+ return !1;
1816
+ if (typeof t == "function")
1817
+ return t(this);
1818
+ let e = t.replace(/ /g, "").split(","), i = e.length, s, r;
1819
+ for (s = 0; s < i; s++)
1820
+ if (r = e[s], c.isValidSelector(r) || (c.warn('Selector "' + r + '" is invalid. Allowed selectors examples are "#foo", ".bar" or "Group".'), c.warn('If you have a custom shape with such className, please change it to start with upper letter like "Triangle".'), c.warn("Konva is awesome, right?")), r.charAt(0) === "#") {
1821
+ if (this.id() === r.slice(1))
1822
+ return !0;
1823
+ } else if (r.charAt(0) === ".") {
1824
+ if (this.hasName(r.slice(1)))
1825
+ return !0;
1826
+ } else if (this.className === r || this.nodeType === r)
1827
+ return !0;
1828
+ return !1;
1829
+ }
1830
+ getLayer() {
1831
+ const t = this.getParent();
1832
+ return t ? t.getLayer() : null;
1833
+ }
1834
+ getStage() {
1835
+ return this._getCache(Nt, this._getStage);
1836
+ }
1837
+ _getStage() {
1838
+ const t = this.getParent();
1839
+ return t ? t.getStage() : null;
1840
+ }
1841
+ fire(t, e = {}, i) {
1842
+ return e.target = e.target || this, i ? this._fireAndBubble(t, e) : this._fire(t, e), this;
1843
+ }
1844
+ getAbsoluteTransform(t) {
1845
+ return t ? this._getAbsoluteTransform(t) : this._getCache(T, this._getAbsoluteTransform);
1846
+ }
1847
+ _getAbsoluteTransform(t) {
1848
+ let e;
1849
+ if (t)
1850
+ return e = new L(), this._eachAncestorReverse(function(i) {
1851
+ const s = i.transformsEnabled();
1852
+ s === "all" ? e.multiply(i.getTransform()) : s === "position" && e.translate(i.x() - i.offsetX(), i.y() - i.offsetY());
1853
+ }, t), e;
1854
+ {
1855
+ e = this._cache.get(T) || new L(), this.parent ? this.parent.getAbsoluteTransform().copyInto(e) : e.reset();
1856
+ const i = this.transformsEnabled();
1857
+ if (i === "all")
1858
+ e.multiply(this.getTransform());
1859
+ else if (i === "position") {
1860
+ const s = this.attrs.x || 0, r = this.attrs.y || 0, a = this.attrs.offsetX || 0, o = this.attrs.offsetY || 0;
1861
+ e.translate(s - a, r - o);
1862
+ }
1863
+ return e.dirty = !1, e;
1864
+ }
1865
+ }
1866
+ getAbsoluteScale(t) {
1867
+ let e = this;
1868
+ for (; e; )
1869
+ e._isUnderCache && (t = e), e = e.getParent();
1870
+ const s = this.getAbsoluteTransform(t).decompose();
1871
+ return {
1872
+ x: s.scaleX,
1873
+ y: s.scaleY
1874
+ };
1875
+ }
1876
+ getAbsoluteRotation() {
1877
+ return this.getAbsoluteTransform().decompose().rotation;
1878
+ }
1879
+ getTransform() {
1880
+ return this._getCache(O, this._getTransform);
1881
+ }
1882
+ _getTransform() {
1883
+ var t, e;
1884
+ const i = this._cache.get(O) || new L();
1885
+ i.reset();
1886
+ const s = this.x(), r = this.y(), a = m.getAngle(this.rotation()), o = (t = this.attrs.scaleX) !== null && t !== void 0 ? t : 1, h = (e = this.attrs.scaleY) !== null && e !== void 0 ? e : 1, l = this.attrs.skewX || 0, d = this.attrs.skewY || 0, u = this.attrs.offsetX || 0, f = this.attrs.offsetY || 0;
1887
+ return (s !== 0 || r !== 0) && i.translate(s, r), a !== 0 && i.rotate(a), (l !== 0 || d !== 0) && i.skew(l, d), (o !== 1 || h !== 1) && i.scale(o, h), (u !== 0 || f !== 0) && i.translate(-1 * u, -1 * f), i.dirty = !1, i;
1888
+ }
1889
+ clone(t) {
1890
+ let e = c.cloneObject(this.attrs), i, s, r, a, o;
1891
+ for (i in t)
1892
+ e[i] = t[i];
1893
+ const h = new this.constructor(e);
1894
+ for (i in this.eventListeners)
1895
+ for (s = this.eventListeners[i], r = s.length, a = 0; a < r; a++)
1896
+ o = s[a], o.name.indexOf(Ve) < 0 && (h.eventListeners[i] || (h.eventListeners[i] = []), h.eventListeners[i].push(o));
1897
+ return h;
1898
+ }
1899
+ _toKonvaCanvas(t) {
1900
+ t = t || {};
1901
+ const e = this.getClientRect(), i = this.getStage(), s = t.x !== void 0 ? t.x : Math.floor(e.x), r = t.y !== void 0 ? t.y : Math.floor(e.y), a = t.pixelRatio || 1, o = new D({
1902
+ width: t.width || Math.ceil(e.width) || (i ? i.width() : 0),
1903
+ height: t.height || Math.ceil(e.height) || (i ? i.height() : 0),
1904
+ pixelRatio: a
1905
+ }), h = o.getContext(), l = new D({
1906
+ width: o.width / o.pixelRatio + Math.abs(s),
1907
+ height: o.height / o.pixelRatio + Math.abs(r),
1908
+ pixelRatio: o.pixelRatio
1909
+ });
1910
+ return t.imageSmoothingEnabled === !1 && (h._context.imageSmoothingEnabled = !1), h.save(), (s || r) && h.translate(-1 * s, -1 * r), this.drawScene(o, void 0, l), h.restore(), o;
1911
+ }
1912
+ toCanvas(t) {
1913
+ return this._toKonvaCanvas(t)._canvas;
1914
+ }
1915
+ toDataURL(t) {
1916
+ t = t || {};
1917
+ const e = t.mimeType || null, i = t.quality || null, s = this._toKonvaCanvas(t).toDataURL(e, i);
1918
+ return t.callback && t.callback(s), s;
1919
+ }
1920
+ toImage(t) {
1921
+ return new Promise((e, i) => {
1922
+ try {
1923
+ const s = t?.callback;
1924
+ s && delete t.callback, c._urlToImage(this.toDataURL(t), function(r) {
1925
+ e(r), s?.(r);
1926
+ });
1927
+ } catch (s) {
1928
+ i(s);
1929
+ }
1930
+ });
1931
+ }
1932
+ toBlob(t) {
1933
+ return new Promise((e, i) => {
1934
+ try {
1935
+ const s = t?.callback;
1936
+ s && delete t.callback, this.toCanvas(t).toBlob((r) => {
1937
+ e(r), s?.(r);
1938
+ }, t?.mimeType, t?.quality);
1939
+ } catch (s) {
1940
+ i(s);
1941
+ }
1942
+ });
1943
+ }
1944
+ setSize(t) {
1945
+ return this.width(t.width), this.height(t.height), this;
1946
+ }
1947
+ getSize() {
1948
+ return {
1949
+ width: this.width(),
1950
+ height: this.height()
1951
+ };
1952
+ }
1953
+ getClassName() {
1954
+ return this.className || this.nodeType;
1955
+ }
1956
+ getType() {
1957
+ return this.nodeType;
1958
+ }
1959
+ getDragDistance() {
1960
+ return this.attrs.dragDistance !== void 0 ? this.attrs.dragDistance : this.parent ? this.parent.getDragDistance() : m.dragDistance;
1961
+ }
1962
+ _off(t, e, i) {
1963
+ let s = this.eventListeners[t], r, a, o;
1964
+ for (r = 0; r < s.length; r++)
1965
+ if (a = s[r].name, o = s[r].handler, (a !== "konva" || e === "konva") && (!e || a === e) && (!i || i === o)) {
1966
+ if (s.splice(r, 1), s.length === 0) {
1967
+ delete this.eventListeners[t];
1968
+ break;
1969
+ }
1970
+ r--;
1971
+ }
1972
+ }
1973
+ _fireChangeEvent(t, e, i) {
1974
+ this._fire(t + Ye, {
1975
+ oldVal: e,
1976
+ newVal: i
1977
+ });
1978
+ }
1979
+ addName(t) {
1980
+ if (!this.hasName(t)) {
1981
+ const e = this.name(), i = e ? e + " " + t : t;
1982
+ this.name(i);
1983
+ }
1984
+ return this;
1985
+ }
1986
+ hasName(t) {
1987
+ if (!t)
1988
+ return !1;
1989
+ const e = this.name();
1990
+ return e ? (e || "").split(/\s/g).indexOf(t) !== -1 : !1;
1991
+ }
1992
+ removeName(t) {
1993
+ const e = (this.name() || "").split(/\s/g), i = e.indexOf(t);
1994
+ return i !== -1 && (e.splice(i, 1), this.name(e.join(" "))), this;
1995
+ }
1996
+ setAttr(t, e) {
1997
+ const i = this[Ft + c._capitalize(t)];
1998
+ return c._isFunction(i) ? i.call(this, e) : this._setAttr(t, e), this;
1999
+ }
2000
+ _requestDraw() {
2001
+ if (m.autoDrawEnabled) {
2002
+ const t = this.getLayer() || this.getStage();
2003
+ t?.batchDraw();
2004
+ }
2005
+ }
2006
+ _setAttr(t, e) {
2007
+ const i = this.attrs[t];
2008
+ i === e && !c.isObject(e) || (e == null ? delete this.attrs[t] : this.attrs[t] = e, this._shouldFireChangeEvents && this._fireChangeEvent(t, i, e), this._requestDraw());
2009
+ }
2010
+ _setComponentAttr(t, e, i) {
2011
+ let s;
2012
+ i !== void 0 && (s = this.attrs[t], s || (this.attrs[t] = this.getAttr(t)), this.attrs[t][e] = i, this._fireChangeEvent(t, s, i));
2013
+ }
2014
+ _fireAndBubble(t, e, i) {
2015
+ e && this.nodeType === Bt && (e.target = this);
2016
+ const s = [
2017
+ We,
2018
+ je,
2019
+ Ke,
2020
+ qe,
2021
+ ze,
2022
+ Je
2023
+ ];
2024
+ if (!(s.indexOf(t) !== -1 && (i && (this === i || this.isAncestorOf && this.isAncestorOf(i)) || this.nodeType === "Stage" && !i))) {
2025
+ this._fire(t, e);
2026
+ const a = s.indexOf(t) !== -1 && i && i.isAncestorOf && i.isAncestorOf(this) && !i.isAncestorOf(this.parent);
2027
+ (e && !e.cancelBubble || !e) && this.parent && this.parent.isListening() && !a && (i && i.parent ? this._fireAndBubble.call(this.parent, t, e, i) : this._fireAndBubble.call(this.parent, t, e));
2028
+ }
2029
+ }
2030
+ _getProtoListeners(t) {
2031
+ var e, i;
2032
+ const { nodeType: s } = this, r = _.protoListenerMap.get(s) || {};
2033
+ let a = r?.[t];
2034
+ if (a === void 0) {
2035
+ a = [];
2036
+ let o = Object.getPrototypeOf(this);
2037
+ for (; o; ) {
2038
+ const h = (i = (e = o.eventListeners) === null || e === void 0 ? void 0 : e[t]) !== null && i !== void 0 ? i : [];
2039
+ a.push(...h), o = Object.getPrototypeOf(o);
2040
+ }
2041
+ r[t] = a, _.protoListenerMap.set(s, r);
2042
+ }
2043
+ return a;
2044
+ }
2045
+ _fire(t, e) {
2046
+ e = e || {}, e.currentTarget = this, e.type = t;
2047
+ const i = this._getProtoListeners(t);
2048
+ if (i) {
2049
+ const r = i.slice();
2050
+ for (let a = 0; a < r.length; a++)
2051
+ r[a].handler.call(this, e);
2052
+ }
2053
+ const s = this.eventListeners[t];
2054
+ if (s) {
2055
+ const r = s.slice(), a = r.length;
2056
+ for (let h = 0; h < r.length; h++)
2057
+ r[h].handler.call(this, e);
2058
+ const o = this.eventListeners[t];
2059
+ if (o)
2060
+ for (let h = a; h < o.length; h++)
2061
+ o[h].handler.call(this, e);
2062
+ }
2063
+ }
2064
+ draw() {
2065
+ return this.drawScene(), this.drawHit(), this;
2066
+ }
2067
+ _createDragElement(t) {
2068
+ const e = t ? t.pointerId : void 0, i = this.getStage(), s = this.getAbsolutePosition();
2069
+ if (!i)
2070
+ return;
2071
+ const r = i._getPointerById(e) || i._changedPointerPositions[0] || s;
2072
+ v._dragElements.set(this._id, {
2073
+ node: this,
2074
+ startPointerPos: r,
2075
+ offset: {
2076
+ x: r.x - s.x,
2077
+ y: r.y - s.y
2078
+ },
2079
+ dragStatus: "ready",
2080
+ pointerId: e,
2081
+ startEvent: t
2082
+ });
2083
+ }
2084
+ startDrag(t, e = !0) {
2085
+ v._dragElements.has(this._id) || this._createDragElement(t);
2086
+ const i = v._dragElements.get(this._id);
2087
+ i.dragStatus = "dragging", this.fire("dragstart", {
2088
+ type: "dragstart",
2089
+ target: this,
2090
+ evt: i.startEvent && i.startEvent.evt || t && t.evt
2091
+ }, e);
2092
+ }
2093
+ _setDragPosition(t, e) {
2094
+ const i = this.getStage()._getPointerById(e.pointerId);
2095
+ if (!i)
2096
+ return;
2097
+ let s = {
2098
+ x: i.x - e.offset.x,
2099
+ y: i.y - e.offset.y
2100
+ };
2101
+ const r = this.dragBoundFunc();
2102
+ if (r !== void 0) {
2103
+ const a = r.call(this, s, t);
2104
+ a ? s = a : c.warn("dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.");
2105
+ }
2106
+ (!this._lastPos || this._lastPos.x !== s.x || this._lastPos.y !== s.y) && (this.setAbsolutePosition(s), this._requestDraw()), this._lastPos = s;
2107
+ }
2108
+ stopDrag(t) {
2109
+ const e = v._dragElements.get(this._id);
2110
+ e && (e.dragStatus = "stopped"), v._endDragBefore(t), v._endDragAfter(t);
2111
+ }
2112
+ setDraggable(t) {
2113
+ this._setAttr("draggable", t), this._dragChange();
2114
+ }
2115
+ isDragging() {
2116
+ const t = v._dragElements.get(this._id);
2117
+ return t ? t.dragStatus === "dragging" : !1;
2118
+ }
2119
+ _listenDrag() {
2120
+ this._dragCleanup(), this.on("mousedown.konva touchstart.konva", function(t) {
2121
+ if (!(!(t.evt.button !== void 0) || m.dragButtons.indexOf(t.evt.button) >= 0) || this.isDragging())
2122
+ return;
2123
+ let s = !1;
2124
+ v._dragElements.forEach((r) => {
2125
+ this.isAncestorOf(r.node) && (s = !0);
2126
+ }), s || this._createDragElement(t);
2127
+ });
2128
+ }
2129
+ _dragChange() {
2130
+ if (this.attrs.draggable)
2131
+ this._listenDrag();
2132
+ else {
2133
+ if (this._dragCleanup(), !this.getStage())
2134
+ return;
2135
+ const e = v._dragElements.get(this._id), i = e && e.dragStatus === "dragging", s = e && e.dragStatus === "ready";
2136
+ i ? this.stopDrag() : s && v._dragElements.delete(this._id);
2137
+ }
2138
+ }
2139
+ _dragCleanup() {
2140
+ this.off("mousedown.konva"), this.off("touchstart.konva");
2141
+ }
2142
+ isClientRectOnScreen(t = { x: 0, y: 0 }) {
2143
+ const e = this.getStage();
2144
+ if (!e)
2145
+ return !1;
2146
+ const i = {
2147
+ x: -t.x,
2148
+ y: -t.y,
2149
+ width: e.width() + 2 * t.x,
2150
+ height: e.height() + 2 * t.y
2151
+ };
2152
+ return c.haveIntersection(i, this.getClientRect());
2153
+ }
2154
+ static create(t, e) {
2155
+ return c._isString(t) && (t = JSON.parse(t)), this._createNode(t, e);
2156
+ }
2157
+ static _createNode(t, e) {
2158
+ let i = _.prototype.getClassName.call(t), s = t.children, r, a, o;
2159
+ e && (t.attrs.container = e), m[i] || (c.warn('Can not find a node with class name "' + i + '". Fallback to "Shape".'), i = "Shape");
2160
+ const h = m[i];
2161
+ if (r = new h(t.attrs), s)
2162
+ for (a = s.length, o = 0; o < a; o++)
2163
+ r.add(_._createNode(s[o]));
2164
+ return r;
2165
+ }
2166
+ }
2167
+ _.protoListenerMap = /* @__PURE__ */ new Map();
2168
+ _.prototype.nodeType = "Node";
2169
+ _.prototype._attrsAffectingSize = [];
2170
+ _.prototype.eventListeners = {};
2171
+ _.prototype.on(Ze, function() {
2172
+ if (this._batchingTransformChange) {
2173
+ this._needClearTransformCache = !0;
2174
+ return;
2175
+ }
2176
+ this._clearCache(O), this._clearSelfAndDescendantCache(T);
2177
+ });
2178
+ _.prototype.on("visibleChange.konva", function() {
2179
+ this._clearSelfAndDescendantCache(bt);
2180
+ });
2181
+ _.prototype.on("listeningChange.konva", function() {
2182
+ this._clearSelfAndDescendantCache(vt);
2183
+ });
2184
+ _.prototype.on("opacityChange.konva", function() {
2185
+ this._clearSelfAndDescendantCache(dt);
2186
+ });
2187
+ const S = g.addGetterSetter;
2188
+ S(_, "zIndex");
2189
+ S(_, "absolutePosition");
2190
+ S(_, "position");
2191
+ S(_, "x", 0, b());
2192
+ S(_, "y", 0, b());
2193
+ S(_, "globalCompositeOperation", "source-over", Y());
2194
+ S(_, "opacity", 1, b());
2195
+ S(_, "name", "", Y());
2196
+ S(_, "id", "", Y());
2197
+ S(_, "rotation", 0, b());
2198
+ g.addComponentsGetterSetter(_, "scale", ["x", "y"]);
2199
+ S(_, "scaleX", 1, b());
2200
+ S(_, "scaleY", 1, b());
2201
+ g.addComponentsGetterSetter(_, "skew", ["x", "y"]);
2202
+ S(_, "skewX", 0, b());
2203
+ S(_, "skewY", 0, b());
2204
+ g.addComponentsGetterSetter(_, "offset", ["x", "y"]);
2205
+ S(_, "offsetX", 0, b());
2206
+ S(_, "offsetY", 0, b());
2207
+ S(_, "dragDistance", void 0, b());
2208
+ S(_, "width", 0, b());
2209
+ S(_, "height", 0, b());
2210
+ S(_, "listening", !0, M());
2211
+ S(_, "preventDefault", !0, M());
2212
+ S(_, "filters", void 0, function(n) {
2213
+ return this._filterUpToDate = !1, n;
2214
+ });
2215
+ S(_, "visible", !0, M());
2216
+ S(_, "transformsEnabled", "all", Y());
2217
+ S(_, "size");
2218
+ S(_, "dragBoundFunc");
2219
+ S(_, "draggable", !1, M());
2220
+ g.backCompat(_, {
2221
+ rotateDeg: "rotate",
2222
+ setRotationDeg: "setRotation",
2223
+ getRotationDeg: "getRotation"
2224
+ });
2225
+ class k extends _ {
2226
+ constructor() {
2227
+ super(...arguments), this.children = [];
2228
+ }
2229
+ getChildren(t) {
2230
+ const e = this.children || [];
2231
+ return t ? e.filter(t) : e;
2232
+ }
2233
+ hasChildren() {
2234
+ return this.getChildren().length > 0;
2235
+ }
2236
+ removeChildren() {
2237
+ return this.getChildren().forEach((t) => {
2238
+ t.parent = null, t.index = 0, t.remove();
2239
+ }), this.children = [], this._requestDraw(), this;
2240
+ }
2241
+ destroyChildren() {
2242
+ return this.getChildren().forEach((t) => {
2243
+ t.parent = null, t.index = 0, t.destroy();
2244
+ }), this.children = [], this._requestDraw(), this;
2245
+ }
2246
+ add(...t) {
2247
+ if (t.length === 0)
2248
+ return this;
2249
+ if (t.length > 1) {
2250
+ for (let i = 0; i < t.length; i++)
2251
+ this.add(t[i]);
2252
+ return this;
2253
+ }
2254
+ const e = t[0];
2255
+ return e.getParent() ? (e.moveTo(this), this) : (this._validateAdd(e), e.index = this.getChildren().length, e.parent = this, e._clearCaches(), this.getChildren().push(e), this._fire("add", {
2256
+ child: e
2257
+ }), this._requestDraw(), this);
2258
+ }
2259
+ destroy() {
2260
+ return this.hasChildren() && this.destroyChildren(), super.destroy(), this;
2261
+ }
2262
+ find(t) {
2263
+ return this._generalFind(t, !1);
2264
+ }
2265
+ findOne(t) {
2266
+ const e = this._generalFind(t, !0);
2267
+ return e.length > 0 ? e[0] : void 0;
2268
+ }
2269
+ _generalFind(t, e) {
2270
+ const i = [];
2271
+ return this._descendants((s) => {
2272
+ const r = s._isMatch(t);
2273
+ return r && i.push(s), !!(r && e);
2274
+ }), i;
2275
+ }
2276
+ _descendants(t) {
2277
+ let e = !1;
2278
+ const i = this.getChildren();
2279
+ for (const s of i) {
2280
+ if (e = t(s), e)
2281
+ return !0;
2282
+ if (s.hasChildren() && (e = s._descendants(t), e))
2283
+ return !0;
2284
+ }
2285
+ return !1;
2286
+ }
2287
+ toObject() {
2288
+ const t = _.prototype.toObject.call(this);
2289
+ return t.children = [], this.getChildren().forEach((e) => {
2290
+ t.children.push(e.toObject());
2291
+ }), t;
2292
+ }
2293
+ isAncestorOf(t) {
2294
+ let e = t.getParent();
2295
+ for (; e; ) {
2296
+ if (e._id === this._id)
2297
+ return !0;
2298
+ e = e.getParent();
2299
+ }
2300
+ return !1;
2301
+ }
2302
+ clone(t) {
2303
+ const e = _.prototype.clone.call(this, t);
2304
+ return this.getChildren().forEach(function(i) {
2305
+ e.add(i.clone());
2306
+ }), e;
2307
+ }
2308
+ getAllIntersections(t) {
2309
+ const e = [];
2310
+ return this.find("Shape").forEach((i) => {
2311
+ i.isVisible() && i.intersects(t) && e.push(i);
2312
+ }), e;
2313
+ }
2314
+ _clearSelfAndDescendantCache(t) {
2315
+ var e;
2316
+ super._clearSelfAndDescendantCache(t), !this.isCached() && ((e = this.children) === null || e === void 0 || e.forEach(function(i) {
2317
+ i._clearSelfAndDescendantCache(t);
2318
+ }));
2319
+ }
2320
+ _setChildrenIndices() {
2321
+ var t;
2322
+ (t = this.children) === null || t === void 0 || t.forEach(function(e, i) {
2323
+ e.index = i;
2324
+ }), this._requestDraw();
2325
+ }
2326
+ drawScene(t, e, i) {
2327
+ const s = this.getLayer(), r = t || s && s.getCanvas(), a = r && r.getContext(), o = this._getCanvasCache(), h = o && o.scene, l = r && r.isCache;
2328
+ if (!this.isVisible() && !l)
2329
+ return this;
2330
+ if (h) {
2331
+ a.save();
2332
+ const d = this.getAbsoluteTransform(e).getMatrix();
2333
+ a.transform(d[0], d[1], d[2], d[3], d[4], d[5]), this._drawCachedSceneCanvas(a), a.restore();
2334
+ } else
2335
+ this._drawChildren("drawScene", r, e, i);
2336
+ return this;
2337
+ }
2338
+ drawHit(t, e) {
2339
+ if (!this.shouldDrawHit(e))
2340
+ return this;
2341
+ const i = this.getLayer(), s = t || i && i.hitCanvas, r = s && s.getContext(), a = this._getCanvasCache();
2342
+ if (a && a.hit) {
2343
+ r.save();
2344
+ const h = this.getAbsoluteTransform(e).getMatrix();
2345
+ r.transform(h[0], h[1], h[2], h[3], h[4], h[5]), this._drawCachedHitCanvas(r), r.restore();
2346
+ } else
2347
+ this._drawChildren("drawHit", s, e);
2348
+ return this;
2349
+ }
2350
+ _drawChildren(t, e, i, s) {
2351
+ var r;
2352
+ const a = e && e.getContext(), o = this.clipWidth(), h = this.clipHeight(), l = this.clipFunc(), d = typeof o == "number" && typeof h == "number" || l, u = i === this;
2353
+ if (d) {
2354
+ a.save();
2355
+ const C = this.getAbsoluteTransform(i);
2356
+ let y = C.getMatrix();
2357
+ a.transform(y[0], y[1], y[2], y[3], y[4], y[5]), a.beginPath();
2358
+ let P;
2359
+ if (l)
2360
+ P = l.call(this, a, this);
2361
+ else {
2362
+ const E = this.clipX(), x = this.clipY();
2363
+ a.rect(E || 0, x || 0, o, h);
2364
+ }
2365
+ a.clip.apply(a, P), y = C.copy().invert().getMatrix(), a.transform(y[0], y[1], y[2], y[3], y[4], y[5]);
2366
+ }
2367
+ const f = !u && this.globalCompositeOperation() !== "source-over" && t === "drawScene";
2368
+ f && (a.save(), a._applyGlobalCompositeOperation(this)), (r = this.children) === null || r === void 0 || r.forEach(function(C) {
2369
+ C[t](e, i, s);
2370
+ }), f && a.restore(), d && a.restore();
2371
+ }
2372
+ getClientRect(t = {}) {
2373
+ var e;
2374
+ const i = t.skipTransform, s = t.relativeTo;
2375
+ let r, a, o, h, l = {
2376
+ x: 1 / 0,
2377
+ y: 1 / 0,
2378
+ width: 0,
2379
+ height: 0
2380
+ };
2381
+ const d = this;
2382
+ (e = this.children) === null || e === void 0 || e.forEach(function(C) {
2383
+ if (!C.visible())
2384
+ return;
2385
+ const y = C.getClientRect({
2386
+ relativeTo: d,
2387
+ skipShadow: t.skipShadow,
2388
+ skipStroke: t.skipStroke
2389
+ });
2390
+ y.width === 0 && y.height === 0 || (r === void 0 ? (r = y.x, a = y.y, o = y.x + y.width, h = y.y + y.height) : (r = Math.min(r, y.x), a = Math.min(a, y.y), o = Math.max(o, y.x + y.width), h = Math.max(h, y.y + y.height)));
2391
+ });
2392
+ const u = this.find("Shape");
2393
+ let f = !1;
2394
+ for (let C = 0; C < u.length; C++)
2395
+ if (u[C]._isVisible(this)) {
2396
+ f = !0;
2397
+ break;
2398
+ }
2399
+ return f && r !== void 0 ? l = {
2400
+ x: r,
2401
+ y: a,
2402
+ width: o - r,
2403
+ height: h - a
2404
+ } : l = {
2405
+ x: 0,
2406
+ y: 0,
2407
+ width: 0,
2408
+ height: 0
2409
+ }, i ? l : this._transformedRect(l, s);
2410
+ }
2411
+ }
2412
+ g.addComponentsGetterSetter(k, "clip", [
2413
+ "x",
2414
+ "y",
2415
+ "width",
2416
+ "height"
2417
+ ]);
2418
+ g.addGetterSetter(k, "clipX", void 0, b());
2419
+ g.addGetterSetter(k, "clipY", void 0, b());
2420
+ g.addGetterSetter(k, "clipWidth", void 0, b());
2421
+ g.addGetterSetter(k, "clipHeight", void 0, b());
2422
+ g.addGetterSetter(k, "clipFunc");
2423
+ const it = /* @__PURE__ */ new Map(), jt = m._global.PointerEvent !== void 0;
2424
+ function mt(n) {
2425
+ return it.get(n);
2426
+ }
2427
+ function Pt(n) {
2428
+ return {
2429
+ evt: n,
2430
+ pointerId: n.pointerId
2431
+ };
2432
+ }
2433
+ function Kt(n, t) {
2434
+ return it.get(n) === t;
2435
+ }
2436
+ function qt(n, t) {
2437
+ Z(n), t.getStage() && (it.set(n, t), jt && t._fire("gotpointercapture", Pt(new PointerEvent("gotpointercapture"))));
2438
+ }
2439
+ function Z(n, t) {
2440
+ const e = it.get(n);
2441
+ if (!e)
2442
+ return;
2443
+ const i = e.getStage();
2444
+ i && i.content, it.delete(n), jt && e._fire("lostpointercapture", Pt(new PointerEvent("lostpointercapture")));
2445
+ }
2446
+ const ti = "Stage", ei = "string", Ht = "px", ii = "mouseout", zt = "mouseleave", Jt = "mouseover", $t = "mouseenter", Zt = "mousemove", Qt = "mousedown", te = "mouseup", K = "pointermove", q = "pointerdown", U = "pointerup", z = "pointercancel", ni = "lostpointercapture", ot = "pointerout", J = "pointerleave", ht = "pointerover", lt = "pointerenter", St = "contextmenu", ee = "touchstart", ie = "touchend", ne = "touchmove", se = "touchcancel", wt = "wheel", si = 5, ri = [
2447
+ [$t, "_pointerenter"],
2448
+ [Qt, "_pointerdown"],
2449
+ [Zt, "_pointermove"],
2450
+ [te, "_pointerup"],
2451
+ [zt, "_pointerleave"],
2452
+ [ee, "_pointerdown"],
2453
+ [ne, "_pointermove"],
2454
+ [ie, "_pointerup"],
2455
+ [se, "_pointercancel"],
2456
+ [Jt, "_pointerover"],
2457
+ [wt, "_wheel"],
2458
+ [St, "_contextmenu"],
2459
+ [q, "_pointerdown"],
2460
+ [K, "_pointermove"],
2461
+ [U, "_pointerup"],
2462
+ [z, "_pointercancel"],
2463
+ [J, "_pointerleave"],
2464
+ [ni, "_lostpointercapture"]
2465
+ ], _t = {
2466
+ mouse: {
2467
+ [ot]: ii,
2468
+ [J]: zt,
2469
+ [ht]: Jt,
2470
+ [lt]: $t,
2471
+ [K]: Zt,
2472
+ [q]: Qt,
2473
+ [U]: te,
2474
+ [z]: "mousecancel",
2475
+ pointerclick: "click",
2476
+ pointerdblclick: "dblclick"
2477
+ },
2478
+ touch: {
2479
+ [ot]: "touchout",
2480
+ [J]: "touchleave",
2481
+ [ht]: "touchover",
2482
+ [lt]: "touchenter",
2483
+ [K]: ne,
2484
+ [q]: ee,
2485
+ [U]: ie,
2486
+ [z]: se,
2487
+ pointerclick: "tap",
2488
+ pointerdblclick: "dbltap"
2489
+ },
2490
+ pointer: {
2491
+ [ot]: ot,
2492
+ [J]: J,
2493
+ [ht]: ht,
2494
+ [lt]: lt,
2495
+ [K]: K,
2496
+ [q]: q,
2497
+ [U]: U,
2498
+ [z]: z,
2499
+ pointerclick: "pointerclick",
2500
+ pointerdblclick: "pointerdblclick"
2501
+ }
2502
+ }, $ = (n) => n.indexOf("pointer") >= 0 ? "pointer" : n.indexOf("touch") >= 0 ? "touch" : "mouse", H = (n) => {
2503
+ const t = $(n);
2504
+ if (t === "pointer")
2505
+ return m.pointerEventsEnabled && _t.pointer;
2506
+ if (t === "touch")
2507
+ return _t.touch;
2508
+ if (t === "mouse")
2509
+ return _t.mouse;
2510
+ };
2511
+ function Ut(n = {}) {
2512
+ return (n.clipFunc || n.clipWidth || n.clipHeight) && c.warn("Stage does not support clipping. Please use clip for Layers or Groups."), n;
2513
+ }
2514
+ const ai = "Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);", Q = [];
2515
+ class gt extends k {
2516
+ constructor(t) {
2517
+ super(Ut(t)), this._pointerPositions = [], this._changedPointerPositions = [], this._buildDOM(), this._bindContentEvents(), Q.push(this), this.on("widthChange.konva heightChange.konva", this._resizeDOM), this.on("visibleChange.konva", this._checkVisibility), this.on("clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva", () => {
2518
+ Ut(this.attrs);
2519
+ }), this._checkVisibility();
2520
+ }
2521
+ _validateAdd(t) {
2522
+ const e = t.getType() === "Layer", i = t.getType() === "FastLayer";
2523
+ e || i || c.throw("You may only add layers to the stage.");
2524
+ }
2525
+ _checkVisibility() {
2526
+ if (!this.content)
2527
+ return;
2528
+ const t = this.visible() ? "" : "none";
2529
+ this.content.style.display = t;
2530
+ }
2531
+ setContainer(t) {
2532
+ if (typeof t === ei) {
2533
+ let e;
2534
+ if (t.charAt(0) === ".") {
2535
+ const i = t.slice(1);
2536
+ t = document.getElementsByClassName(i)[0];
2537
+ } else
2538
+ t.charAt(0) !== "#" ? e = t : e = t.slice(1), t = document.getElementById(e);
2539
+ if (!t)
2540
+ throw "Can not find container in document with id " + e;
2541
+ }
2542
+ return this._setAttr("container", t), this.content && (this.content.parentElement && this.content.parentElement.removeChild(this.content), t.appendChild(this.content)), this;
2543
+ }
2544
+ shouldDrawHit() {
2545
+ return !0;
2546
+ }
2547
+ clear() {
2548
+ const t = this.children, e = t.length;
2549
+ for (let i = 0; i < e; i++)
2550
+ t[i].clear();
2551
+ return this;
2552
+ }
2553
+ clone(t) {
2554
+ return t || (t = {}), t.container = typeof document < "u" && document.createElement("div"), k.prototype.clone.call(this, t);
2555
+ }
2556
+ destroy() {
2557
+ super.destroy();
2558
+ const t = this.content;
2559
+ t && c._isInDocument(t) && this.container().removeChild(t);
2560
+ const e = Q.indexOf(this);
2561
+ return e > -1 && Q.splice(e, 1), c.releaseCanvas(this.bufferCanvas._canvas, this.bufferHitCanvas._canvas), this;
2562
+ }
2563
+ getPointerPosition() {
2564
+ const t = this._pointerPositions[0] || this._changedPointerPositions[0];
2565
+ return t ? {
2566
+ x: t.x,
2567
+ y: t.y
2568
+ } : (c.warn(ai), null);
2569
+ }
2570
+ _getPointerById(t) {
2571
+ return this._pointerPositions.find((e) => e.id === t);
2572
+ }
2573
+ getPointersPositions() {
2574
+ return this._pointerPositions;
2575
+ }
2576
+ getStage() {
2577
+ return this;
2578
+ }
2579
+ getContent() {
2580
+ return this.content;
2581
+ }
2582
+ _toKonvaCanvas(t) {
2583
+ t = { ...t }, t.x = t.x || 0, t.y = t.y || 0, t.width = t.width || this.width(), t.height = t.height || this.height();
2584
+ const e = new D({
2585
+ width: t.width,
2586
+ height: t.height,
2587
+ pixelRatio: t.pixelRatio || 1
2588
+ }), i = e.getContext()._context, s = this.children;
2589
+ return (t.x || t.y) && i.translate(-1 * t.x, -1 * t.y), s.forEach(function(r) {
2590
+ if (!r.isVisible())
2591
+ return;
2592
+ const a = r._toKonvaCanvas(t);
2593
+ i.drawImage(a._canvas, t.x, t.y, a.getWidth() / a.getPixelRatio(), a.getHeight() / a.getPixelRatio());
2594
+ }), e;
2595
+ }
2596
+ getIntersection(t) {
2597
+ if (!t)
2598
+ return null;
2599
+ const e = this.children, i = e.length, s = i - 1;
2600
+ for (let r = s; r >= 0; r--) {
2601
+ const a = e[r].getIntersection(t);
2602
+ if (a)
2603
+ return a;
2604
+ }
2605
+ return null;
2606
+ }
2607
+ _resizeDOM() {
2608
+ const t = this.width(), e = this.height();
2609
+ this.content && (this.content.style.width = t + Ht, this.content.style.height = e + Ht), this.bufferCanvas.setSize(t, e), this.bufferHitCanvas.setSize(t, e), this.children.forEach((i) => {
2610
+ i.setSize({ width: t, height: e }), i.draw();
2611
+ });
2612
+ }
2613
+ add(t, ...e) {
2614
+ if (arguments.length > 1) {
2615
+ for (let s = 0; s < arguments.length; s++)
2616
+ this.add(arguments[s]);
2617
+ return this;
2618
+ }
2619
+ super.add(t);
2620
+ const i = this.children.length;
2621
+ return i > si && c.warn("The stage has " + i + " layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group."), t.setSize({ width: this.width(), height: this.height() }), t.draw(), m.isBrowser && this.content.appendChild(t.canvas._canvas), this;
2622
+ }
2623
+ getParent() {
2624
+ return null;
2625
+ }
2626
+ getLayer() {
2627
+ return null;
2628
+ }
2629
+ hasPointerCapture(t) {
2630
+ return Kt(t, this);
2631
+ }
2632
+ setPointerCapture(t) {
2633
+ qt(t, this);
2634
+ }
2635
+ releaseCapture(t) {
2636
+ Z(t);
2637
+ }
2638
+ getLayers() {
2639
+ return this.children;
2640
+ }
2641
+ _bindContentEvents() {
2642
+ m.isBrowser && ri.forEach(([t, e]) => {
2643
+ this.content.addEventListener(t, (i) => {
2644
+ this[e](i);
2645
+ }, { passive: !1 });
2646
+ });
2647
+ }
2648
+ _pointerenter(t) {
2649
+ this.setPointersPositions(t);
2650
+ const e = H(t.type);
2651
+ e && this._fire(e.pointerenter, {
2652
+ evt: t,
2653
+ target: this,
2654
+ currentTarget: this
2655
+ });
2656
+ }
2657
+ _pointerover(t) {
2658
+ this.setPointersPositions(t);
2659
+ const e = H(t.type);
2660
+ e && this._fire(e.pointerover, {
2661
+ evt: t,
2662
+ target: this,
2663
+ currentTarget: this
2664
+ });
2665
+ }
2666
+ _getTargetShape(t) {
2667
+ let e = this[t + "targetShape"];
2668
+ return e && !e.getStage() && (e = null), e;
2669
+ }
2670
+ _pointerleave(t) {
2671
+ const e = H(t.type), i = $(t.type);
2672
+ if (!e)
2673
+ return;
2674
+ this.setPointersPositions(t);
2675
+ const s = this._getTargetShape(i), r = !(m.isDragging() || m.isTransforming()) || m.hitOnDragEnabled;
2676
+ s && r ? (s._fireAndBubble(e.pointerout, { evt: t }), s._fireAndBubble(e.pointerleave, { evt: t }), this._fire(e.pointerleave, {
2677
+ evt: t,
2678
+ target: this,
2679
+ currentTarget: this
2680
+ }), this[i + "targetShape"] = null) : r && (this._fire(e.pointerleave, {
2681
+ evt: t,
2682
+ target: this,
2683
+ currentTarget: this
2684
+ }), this._fire(e.pointerout, {
2685
+ evt: t,
2686
+ target: this,
2687
+ currentTarget: this
2688
+ })), this.pointerPos = null, this._pointerPositions = [];
2689
+ }
2690
+ _pointerdown(t) {
2691
+ const e = H(t.type), i = $(t.type);
2692
+ if (!e)
2693
+ return;
2694
+ this.setPointersPositions(t);
2695
+ let s = !1;
2696
+ this._changedPointerPositions.forEach((r) => {
2697
+ const a = this.getIntersection(r);
2698
+ if (v.justDragged = !1, m["_" + i + "ListenClick"] = !0, !a || !a.isListening()) {
2699
+ this[i + "ClickStartShape"] = void 0;
2700
+ return;
2701
+ }
2702
+ m.capturePointerEventsEnabled && a.setPointerCapture(r.id), this[i + "ClickStartShape"] = a, a._fireAndBubble(e.pointerdown, {
2703
+ evt: t,
2704
+ pointerId: r.id
2705
+ }), s = !0;
2706
+ const o = t.type.indexOf("touch") >= 0;
2707
+ a.preventDefault() && t.cancelable && o && t.preventDefault();
2708
+ }), s || this._fire(e.pointerdown, {
2709
+ evt: t,
2710
+ target: this,
2711
+ currentTarget: this,
2712
+ pointerId: this._pointerPositions[0].id
2713
+ });
2714
+ }
2715
+ _pointermove(t) {
2716
+ const e = H(t.type), i = $(t.type);
2717
+ if (!e)
2718
+ return;
2719
+ const s = t.type.indexOf("touch") >= 0 || t.pointerType === "touch";
2720
+ if (m.isDragging() && v.node.preventDefault() && t.cancelable && s && t.preventDefault(), this.setPointersPositions(t), !(!(m.isDragging() || m.isTransforming()) || m.hitOnDragEnabled))
2721
+ return;
2722
+ const a = {};
2723
+ let o = !1;
2724
+ const h = this._getTargetShape(i);
2725
+ this._changedPointerPositions.forEach((l) => {
2726
+ const d = mt(l.id) || this.getIntersection(l), u = l.id, f = { evt: t, pointerId: u }, C = h !== d;
2727
+ if (C && h && (h._fireAndBubble(e.pointerout, { ...f }, d), h._fireAndBubble(e.pointerleave, { ...f }, d)), d) {
2728
+ if (a[d._id])
2729
+ return;
2730
+ a[d._id] = !0;
2731
+ }
2732
+ d && d.isListening() ? (o = !0, C && (d._fireAndBubble(e.pointerover, { ...f }, h), d._fireAndBubble(e.pointerenter, { ...f }, h), this[i + "targetShape"] = d), d._fireAndBubble(e.pointermove, { ...f })) : h && (this._fire(e.pointerover, {
2733
+ evt: t,
2734
+ target: this,
2735
+ currentTarget: this,
2736
+ pointerId: u
2737
+ }), this[i + "targetShape"] = null);
2738
+ }), o || this._fire(e.pointermove, {
2739
+ evt: t,
2740
+ target: this,
2741
+ currentTarget: this,
2742
+ pointerId: this._changedPointerPositions[0].id
2743
+ });
2744
+ }
2745
+ _pointerup(t) {
2746
+ const e = H(t.type), i = $(t.type);
2747
+ if (!e)
2748
+ return;
2749
+ this.setPointersPositions(t);
2750
+ const s = this[i + "ClickStartShape"], r = this[i + "ClickEndShape"], a = {};
2751
+ let o = !1;
2752
+ this._changedPointerPositions.forEach((h) => {
2753
+ const l = mt(h.id) || this.getIntersection(h);
2754
+ if (l) {
2755
+ if (l.releaseCapture(h.id), a[l._id])
2756
+ return;
2757
+ a[l._id] = !0;
2758
+ }
2759
+ const d = h.id, u = { evt: t, pointerId: d };
2760
+ let f = !1;
2761
+ m["_" + i + "InDblClickWindow"] ? (f = !0, clearTimeout(this[i + "DblTimeout"])) : v.justDragged || (m["_" + i + "InDblClickWindow"] = !0, clearTimeout(this[i + "DblTimeout"])), this[i + "DblTimeout"] = setTimeout(function() {
2762
+ m["_" + i + "InDblClickWindow"] = !1;
2763
+ }, m.dblClickWindow), l && l.isListening() ? (o = !0, this[i + "ClickEndShape"] = l, l._fireAndBubble(e.pointerup, { ...u }), m["_" + i + "ListenClick"] && s && s === l && (l._fireAndBubble(e.pointerclick, { ...u }), f && r && r === l && l._fireAndBubble(e.pointerdblclick, { ...u }))) : (this[i + "ClickEndShape"] = null, o || (this._fire(e.pointerup, {
2764
+ evt: t,
2765
+ target: this,
2766
+ currentTarget: this,
2767
+ pointerId: this._changedPointerPositions[0].id
2768
+ }), o = !0), m["_" + i + "ListenClick"] && this._fire(e.pointerclick, {
2769
+ evt: t,
2770
+ target: this,
2771
+ currentTarget: this,
2772
+ pointerId: d
2773
+ }), f && this._fire(e.pointerdblclick, {
2774
+ evt: t,
2775
+ target: this,
2776
+ currentTarget: this,
2777
+ pointerId: d
2778
+ }));
2779
+ }), o || this._fire(e.pointerup, {
2780
+ evt: t,
2781
+ target: this,
2782
+ currentTarget: this,
2783
+ pointerId: this._changedPointerPositions[0].id
2784
+ }), m["_" + i + "ListenClick"] = !1, t.cancelable && i !== "touch" && i !== "pointer" && t.preventDefault();
2785
+ }
2786
+ _contextmenu(t) {
2787
+ this.setPointersPositions(t);
2788
+ const e = this.getIntersection(this.getPointerPosition());
2789
+ e && e.isListening() ? e._fireAndBubble(St, { evt: t }) : this._fire(St, {
2790
+ evt: t,
2791
+ target: this,
2792
+ currentTarget: this
2793
+ });
2794
+ }
2795
+ _wheel(t) {
2796
+ this.setPointersPositions(t);
2797
+ const e = this.getIntersection(this.getPointerPosition());
2798
+ e && e.isListening() ? e._fireAndBubble(wt, { evt: t }) : this._fire(wt, {
2799
+ evt: t,
2800
+ target: this,
2801
+ currentTarget: this
2802
+ });
2803
+ }
2804
+ _pointercancel(t) {
2805
+ this.setPointersPositions(t);
2806
+ const e = mt(t.pointerId) || this.getIntersection(this.getPointerPosition());
2807
+ e && e._fireAndBubble(U, Pt(t)), Z(t.pointerId);
2808
+ }
2809
+ _lostpointercapture(t) {
2810
+ Z(t.pointerId);
2811
+ }
2812
+ setPointersPositions(t) {
2813
+ const e = this._getContentPosition();
2814
+ let i = null, s = null;
2815
+ t = t || window.event, t.touches !== void 0 ? (this._pointerPositions = [], this._changedPointerPositions = [], Array.prototype.forEach.call(t.touches, (r) => {
2816
+ this._pointerPositions.push({
2817
+ id: r.identifier,
2818
+ x: (r.clientX - e.left) / e.scaleX,
2819
+ y: (r.clientY - e.top) / e.scaleY
2820
+ });
2821
+ }), Array.prototype.forEach.call(t.changedTouches || t.touches, (r) => {
2822
+ this._changedPointerPositions.push({
2823
+ id: r.identifier,
2824
+ x: (r.clientX - e.left) / e.scaleX,
2825
+ y: (r.clientY - e.top) / e.scaleY
2826
+ });
2827
+ })) : (i = (t.clientX - e.left) / e.scaleX, s = (t.clientY - e.top) / e.scaleY, this.pointerPos = {
2828
+ x: i,
2829
+ y: s
2830
+ }, this._pointerPositions = [{ x: i, y: s, id: c._getFirstPointerId(t) }], this._changedPointerPositions = [
2831
+ { x: i, y: s, id: c._getFirstPointerId(t) }
2832
+ ]);
2833
+ }
2834
+ _setPointerPosition(t) {
2835
+ c.warn('Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.'), this.setPointersPositions(t);
2836
+ }
2837
+ _getContentPosition() {
2838
+ if (!this.content || !this.content.getBoundingClientRect)
2839
+ return {
2840
+ top: 0,
2841
+ left: 0,
2842
+ scaleX: 1,
2843
+ scaleY: 1
2844
+ };
2845
+ const t = this.content.getBoundingClientRect();
2846
+ return {
2847
+ top: t.top,
2848
+ left: t.left,
2849
+ scaleX: t.width / this.content.clientWidth || 1,
2850
+ scaleY: t.height / this.content.clientHeight || 1
2851
+ };
2852
+ }
2853
+ _buildDOM() {
2854
+ if (this.bufferCanvas = new D({
2855
+ width: this.width(),
2856
+ height: this.height()
2857
+ }), this.bufferHitCanvas = new Et({
2858
+ pixelRatio: 1,
2859
+ width: this.width(),
2860
+ height: this.height()
2861
+ }), !m.isBrowser)
2862
+ return;
2863
+ const t = this.container();
2864
+ if (!t)
2865
+ throw "Stage has no container. A container is required.";
2866
+ t.innerHTML = "", this.content = document.createElement("div"), this.content.style.position = "relative", this.content.style.userSelect = "none", this.content.className = "konvajs-content", this.content.setAttribute("role", "presentation"), t.appendChild(this.content), this._resizeDOM();
2867
+ }
2868
+ cache() {
2869
+ return c.warn("Cache function is not allowed for stage. You may use cache only for layers, groups and shapes."), this;
2870
+ }
2871
+ clearCache() {
2872
+ return this;
2873
+ }
2874
+ batchDraw() {
2875
+ return this.getChildren().forEach(function(t) {
2876
+ t.batchDraw();
2877
+ }), this;
2878
+ }
2879
+ }
2880
+ gt.prototype.nodeType = ti;
2881
+ nt(gt);
2882
+ g.addGetterSetter(gt, "container");
2883
+ m.isBrowser && document.addEventListener("visibilitychange", () => {
2884
+ Q.forEach((n) => {
2885
+ n.batchDraw();
2886
+ });
2887
+ });
2888
+ const re = "hasShadow", ae = "shadowRGBA", oe = "patternImage", he = "linearGradient", le = "radialGradient";
2889
+ let ct;
2890
+ function yt() {
2891
+ return ct || (ct = c.createCanvasElement().getContext("2d"), ct);
2892
+ }
2893
+ const tt = {};
2894
+ function oi(n) {
2895
+ const t = this.attrs.fillRule;
2896
+ t ? n.fill(t) : n.fill();
2897
+ }
2898
+ function hi(n) {
2899
+ n.stroke();
2900
+ }
2901
+ function li(n) {
2902
+ const t = this.attrs.fillRule;
2903
+ t ? n.fill(t) : n.fill();
2904
+ }
2905
+ function ci(n) {
2906
+ n.stroke();
2907
+ }
2908
+ function di() {
2909
+ this._clearCache(re);
2910
+ }
2911
+ function ui() {
2912
+ this._clearCache(ae);
2913
+ }
2914
+ function fi() {
2915
+ this._clearCache(oe);
2916
+ }
2917
+ function gi() {
2918
+ this._clearCache(he);
2919
+ }
2920
+ function pi() {
2921
+ this._clearCache(le);
2922
+ }
2923
+ class p extends _ {
2924
+ constructor(t) {
2925
+ super(t);
2926
+ let e, i = 0;
2927
+ for (; e = c.getHitColor(), !(e && !(e in tt)); )
2928
+ if (i++, i >= 1e4) {
2929
+ c.warn("Failed to find a unique color key for a shape. Konva may work incorrectly. Most likely your browser is using canvas farbling. Consider disabling it."), e = c.getRandomColor();
2930
+ break;
2931
+ }
2932
+ this.colorKey = e, tt[e] = this;
2933
+ }
2934
+ getContext() {
2935
+ return c.warn("shape.getContext() method is deprecated. Please do not use it."), this.getLayer().getContext();
2936
+ }
2937
+ getCanvas() {
2938
+ return c.warn("shape.getCanvas() method is deprecated. Please do not use it."), this.getLayer().getCanvas();
2939
+ }
2940
+ getSceneFunc() {
2941
+ return this.attrs.sceneFunc || this._sceneFunc;
2942
+ }
2943
+ getHitFunc() {
2944
+ return this.attrs.hitFunc || this._hitFunc;
2945
+ }
2946
+ hasShadow() {
2947
+ return this._getCache(re, this._hasShadow);
2948
+ }
2949
+ _hasShadow() {
2950
+ return this.shadowEnabled() && this.shadowOpacity() !== 0 && !!(this.shadowColor() || this.shadowBlur() || this.shadowOffsetX() || this.shadowOffsetY());
2951
+ }
2952
+ _getFillPattern() {
2953
+ return this._getCache(oe, this.__getFillPattern);
2954
+ }
2955
+ __getFillPattern() {
2956
+ if (this.fillPatternImage()) {
2957
+ const e = yt().createPattern(this.fillPatternImage(), this.fillPatternRepeat() || "repeat");
2958
+ if (e && e.setTransform) {
2959
+ const i = new L();
2960
+ i.translate(this.fillPatternX(), this.fillPatternY()), i.rotate(m.getAngle(this.fillPatternRotation())), i.scale(this.fillPatternScaleX(), this.fillPatternScaleY()), i.translate(-1 * this.fillPatternOffsetX(), -1 * this.fillPatternOffsetY());
2961
+ const s = i.getMatrix(), r = typeof DOMMatrix > "u" ? {
2962
+ a: s[0],
2963
+ b: s[1],
2964
+ c: s[2],
2965
+ d: s[3],
2966
+ e: s[4],
2967
+ f: s[5]
2968
+ } : new DOMMatrix(s);
2969
+ e.setTransform(r);
2970
+ }
2971
+ return e;
2972
+ }
2973
+ }
2974
+ _getLinearGradient() {
2975
+ return this._getCache(he, this.__getLinearGradient);
2976
+ }
2977
+ __getLinearGradient() {
2978
+ const t = this.fillLinearGradientColorStops();
2979
+ if (t) {
2980
+ const e = yt(), i = this.fillLinearGradientStartPoint(), s = this.fillLinearGradientEndPoint(), r = e.createLinearGradient(i.x, i.y, s.x, s.y);
2981
+ for (let a = 0; a < t.length; a += 2)
2982
+ r.addColorStop(t[a], t[a + 1]);
2983
+ return r;
2984
+ }
2985
+ }
2986
+ _getRadialGradient() {
2987
+ return this._getCache(le, this.__getRadialGradient);
2988
+ }
2989
+ __getRadialGradient() {
2990
+ const t = this.fillRadialGradientColorStops();
2991
+ if (t) {
2992
+ const e = yt(), i = this.fillRadialGradientStartPoint(), s = this.fillRadialGradientEndPoint(), r = e.createRadialGradient(i.x, i.y, this.fillRadialGradientStartRadius(), s.x, s.y, this.fillRadialGradientEndRadius());
2993
+ for (let a = 0; a < t.length; a += 2)
2994
+ r.addColorStop(t[a], t[a + 1]);
2995
+ return r;
2996
+ }
2997
+ }
2998
+ getShadowRGBA() {
2999
+ return this._getCache(ae, this._getShadowRGBA);
3000
+ }
3001
+ _getShadowRGBA() {
3002
+ if (!this.hasShadow())
3003
+ return;
3004
+ const t = c.colorToRGBA(this.shadowColor());
3005
+ if (t)
3006
+ return "rgba(" + t.r + "," + t.g + "," + t.b + "," + t.a * (this.shadowOpacity() || 1) + ")";
3007
+ }
3008
+ hasFill() {
3009
+ return this._calculate("hasFill", [
3010
+ "fillEnabled",
3011
+ "fill",
3012
+ "fillPatternImage",
3013
+ "fillLinearGradientColorStops",
3014
+ "fillRadialGradientColorStops"
3015
+ ], () => this.fillEnabled() && !!(this.fill() || this.fillPatternImage() || this.fillLinearGradientColorStops() || this.fillRadialGradientColorStops()));
3016
+ }
3017
+ hasStroke() {
3018
+ return this._calculate("hasStroke", [
3019
+ "strokeEnabled",
3020
+ "strokeWidth",
3021
+ "stroke",
3022
+ "strokeLinearGradientColorStops"
3023
+ ], () => this.strokeEnabled() && this.strokeWidth() && !!(this.stroke() || this.strokeLinearGradientColorStops()));
3024
+ }
3025
+ hasHitStroke() {
3026
+ const t = this.hitStrokeWidth();
3027
+ return t === "auto" ? this.hasStroke() : this.strokeEnabled() && !!t;
3028
+ }
3029
+ intersects(t) {
3030
+ const e = this.getStage();
3031
+ if (!e)
3032
+ return !1;
3033
+ const i = e.bufferHitCanvas;
3034
+ return i.getContext().clear(), this.drawHit(i, void 0, !0), i.context.getImageData(Math.round(t.x), Math.round(t.y), 1, 1).data[3] > 0;
3035
+ }
3036
+ destroy() {
3037
+ return _.prototype.destroy.call(this), delete tt[this.colorKey], delete this.colorKey, this;
3038
+ }
3039
+ _useBufferCanvas(t) {
3040
+ var e;
3041
+ if (!((e = this.attrs.perfectDrawEnabled) !== null && e !== void 0 ? e : !0))
3042
+ return !1;
3043
+ const s = t || this.hasFill(), r = this.hasStroke(), a = this.getAbsoluteOpacity() !== 1;
3044
+ if (s && r && a)
3045
+ return !0;
3046
+ const o = this.hasShadow(), h = this.shadowForStrokeEnabled();
3047
+ return !!(s && r && o && h);
3048
+ }
3049
+ setStrokeHitEnabled(t) {
3050
+ c.warn("strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead."), t ? this.hitStrokeWidth("auto") : this.hitStrokeWidth(0);
3051
+ }
3052
+ getStrokeHitEnabled() {
3053
+ return this.hitStrokeWidth() !== 0;
3054
+ }
3055
+ getSelfRect() {
3056
+ const t = this.size();
3057
+ return {
3058
+ x: this._centroid ? -t.width / 2 : 0,
3059
+ y: this._centroid ? -t.height / 2 : 0,
3060
+ width: t.width,
3061
+ height: t.height
3062
+ };
3063
+ }
3064
+ getClientRect(t = {}) {
3065
+ let e = !1, i = this.getParent();
3066
+ for (; i; ) {
3067
+ if (i.isCached()) {
3068
+ e = !0;
3069
+ break;
3070
+ }
3071
+ i = i.getParent();
3072
+ }
3073
+ const s = t.skipTransform, r = t.relativeTo || e && this.getStage() || void 0, a = this.getSelfRect(), h = !t.skipStroke && this.hasStroke() && this.strokeWidth() || 0, l = a.width + h, d = a.height + h, u = !t.skipShadow && this.hasShadow(), f = u ? this.shadowOffsetX() : 0, C = u ? this.shadowOffsetY() : 0, y = l + Math.abs(f), P = d + Math.abs(C), E = u && this.shadowBlur() || 0, x = y + E * 2, A = P + E * 2, G = {
3074
+ width: x,
3075
+ height: A,
3076
+ x: -(h / 2 + E) + Math.min(f, 0) + a.x,
3077
+ y: -(h / 2 + E) + Math.min(C, 0) + a.y
3078
+ };
3079
+ return s ? G : this._transformedRect(G, r);
3080
+ }
3081
+ drawScene(t, e, i) {
3082
+ const s = this.getLayer(), r = t || s.getCanvas(), a = r.getContext(), o = this._getCanvasCache(), h = this.getSceneFunc(), l = this.hasShadow();
3083
+ let d;
3084
+ const u = e === this;
3085
+ if (!this.isVisible() && !u)
3086
+ return this;
3087
+ if (o) {
3088
+ a.save();
3089
+ const f = this.getAbsoluteTransform(e).getMatrix();
3090
+ return a.transform(f[0], f[1], f[2], f[3], f[4], f[5]), this._drawCachedSceneCanvas(a), a.restore(), this;
3091
+ }
3092
+ if (!h)
3093
+ return this;
3094
+ if (a.save(), this._useBufferCanvas()) {
3095
+ d = this.getStage();
3096
+ const f = i || d.bufferCanvas, C = f.getContext();
3097
+ i ? (C.save(), C.setTransform(1, 0, 0, 1, 0, 0), C.clearRect(0, 0, f.width, f.height), C.restore()) : C.clear(), C.save(), C._applyLineJoin(this), C._applyMiterLimit(this);
3098
+ const y = this.getAbsoluteTransform(e).getMatrix();
3099
+ C.transform(y[0], y[1], y[2], y[3], y[4], y[5]), h.call(this, C, this), C.restore();
3100
+ const P = f.pixelRatio;
3101
+ l && a._applyShadow(this), u || (a._applyOpacity(this), a._applyGlobalCompositeOperation(this)), a.drawImage(f._canvas, f.x || 0, f.y || 0, f.width / P, f.height / P);
3102
+ } else {
3103
+ if (a._applyLineJoin(this), a._applyMiterLimit(this), !u) {
3104
+ const f = this.getAbsoluteTransform(e).getMatrix();
3105
+ a.transform(f[0], f[1], f[2], f[3], f[4], f[5]), a._applyOpacity(this), a._applyGlobalCompositeOperation(this);
3106
+ }
3107
+ l && a._applyShadow(this), h.call(this, a, this);
3108
+ }
3109
+ return a.restore(), this;
3110
+ }
3111
+ drawHit(t, e, i = !1) {
3112
+ if (!this.shouldDrawHit(e, i))
3113
+ return this;
3114
+ const s = this.getLayer(), r = t || s.hitCanvas, a = r && r.getContext(), o = this.hitFunc() || this.sceneFunc(), h = this._getCanvasCache(), l = h && h.hit;
3115
+ if (this.colorKey || c.warn("Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()"), l) {
3116
+ a.save();
3117
+ const u = this.getAbsoluteTransform(e).getMatrix();
3118
+ return a.transform(u[0], u[1], u[2], u[3], u[4], u[5]), this._drawCachedHitCanvas(a), a.restore(), this;
3119
+ }
3120
+ if (!o)
3121
+ return this;
3122
+ if (a.save(), a._applyLineJoin(this), a._applyMiterLimit(this), !(this === e)) {
3123
+ const u = this.getAbsoluteTransform(e).getMatrix();
3124
+ a.transform(u[0], u[1], u[2], u[3], u[4], u[5]);
3125
+ }
3126
+ return o.call(this, a, this), a.restore(), this;
3127
+ }
3128
+ drawHitFromCache(t = 0) {
3129
+ const e = this._getCanvasCache(), i = this._getCachedSceneCanvas(), s = e.hit, r = s.getContext(), a = s.getWidth(), o = s.getHeight();
3130
+ r.clear(), r.drawImage(i._canvas, 0, 0, a, o);
3131
+ try {
3132
+ const h = r.getImageData(0, 0, a, o), l = h.data, d = l.length, u = c._hexToRgb(this.colorKey);
3133
+ for (let f = 0; f < d; f += 4)
3134
+ l[f + 3] > t ? (l[f] = u.r, l[f + 1] = u.g, l[f + 2] = u.b, l[f + 3] = 255) : l[f + 3] = 0;
3135
+ r.putImageData(h, 0, 0);
3136
+ } catch (h) {
3137
+ c.error("Unable to draw hit graph from cached scene canvas. " + h.message);
3138
+ }
3139
+ return this;
3140
+ }
3141
+ hasPointerCapture(t) {
3142
+ return Kt(t, this);
3143
+ }
3144
+ setPointerCapture(t) {
3145
+ qt(t, this);
3146
+ }
3147
+ releaseCapture(t) {
3148
+ Z(t);
3149
+ }
3150
+ }
3151
+ p.prototype._fillFunc = oi;
3152
+ p.prototype._strokeFunc = hi;
3153
+ p.prototype._fillFuncHit = li;
3154
+ p.prototype._strokeFuncHit = ci;
3155
+ p.prototype._centroid = !1;
3156
+ p.prototype.nodeType = "Shape";
3157
+ nt(p);
3158
+ p.prototype.eventListeners = {};
3159
+ p.prototype.on("shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva", di);
3160
+ p.prototype.on("shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva", ui);
3161
+ p.prototype.on("fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva", fi);
3162
+ p.prototype.on("fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva", gi);
3163
+ p.prototype.on("fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva", pi);
3164
+ g.addGetterSetter(p, "stroke", void 0, Wt());
3165
+ g.addGetterSetter(p, "strokeWidth", 2, b());
3166
+ g.addGetterSetter(p, "fillAfterStrokeEnabled", !1);
3167
+ g.addGetterSetter(p, "hitStrokeWidth", "auto", Ne());
3168
+ g.addGetterSetter(p, "strokeHitEnabled", !0, M());
3169
+ g.addGetterSetter(p, "perfectDrawEnabled", !0, M());
3170
+ g.addGetterSetter(p, "shadowForStrokeEnabled", !0, M());
3171
+ g.addGetterSetter(p, "lineJoin");
3172
+ g.addGetterSetter(p, "lineCap");
3173
+ g.addGetterSetter(p, "miterLimit");
3174
+ g.addGetterSetter(p, "sceneFunc");
3175
+ g.addGetterSetter(p, "hitFunc");
3176
+ g.addGetterSetter(p, "dash");
3177
+ g.addGetterSetter(p, "dashOffset", 0, b());
3178
+ g.addGetterSetter(p, "shadowColor", void 0, Y());
3179
+ g.addGetterSetter(p, "shadowBlur", 0, b());
3180
+ g.addGetterSetter(p, "shadowOpacity", 1, b());
3181
+ g.addComponentsGetterSetter(p, "shadowOffset", ["x", "y"]);
3182
+ g.addGetterSetter(p, "shadowOffsetX", 0, b());
3183
+ g.addGetterSetter(p, "shadowOffsetY", 0, b());
3184
+ g.addGetterSetter(p, "fillPatternImage");
3185
+ g.addGetterSetter(p, "fill", void 0, Wt());
3186
+ g.addGetterSetter(p, "fillPatternX", 0, b());
3187
+ g.addGetterSetter(p, "fillPatternY", 0, b());
3188
+ g.addGetterSetter(p, "fillLinearGradientColorStops");
3189
+ g.addGetterSetter(p, "strokeLinearGradientColorStops");
3190
+ g.addGetterSetter(p, "fillRadialGradientStartRadius", 0);
3191
+ g.addGetterSetter(p, "fillRadialGradientEndRadius", 0);
3192
+ g.addGetterSetter(p, "fillRadialGradientColorStops");
3193
+ g.addGetterSetter(p, "fillPatternRepeat", "repeat");
3194
+ g.addGetterSetter(p, "fillEnabled", !0);
3195
+ g.addGetterSetter(p, "strokeEnabled", !0);
3196
+ g.addGetterSetter(p, "shadowEnabled", !0);
3197
+ g.addGetterSetter(p, "dashEnabled", !0);
3198
+ g.addGetterSetter(p, "strokeScaleEnabled", !0);
3199
+ g.addGetterSetter(p, "fillPriority", "color");
3200
+ g.addComponentsGetterSetter(p, "fillPatternOffset", ["x", "y"]);
3201
+ g.addGetterSetter(p, "fillPatternOffsetX", 0, b());
3202
+ g.addGetterSetter(p, "fillPatternOffsetY", 0, b());
3203
+ g.addComponentsGetterSetter(p, "fillPatternScale", ["x", "y"]);
3204
+ g.addGetterSetter(p, "fillPatternScaleX", 1, b());
3205
+ g.addGetterSetter(p, "fillPatternScaleY", 1, b());
3206
+ g.addComponentsGetterSetter(p, "fillLinearGradientStartPoint", [
3207
+ "x",
3208
+ "y"
3209
+ ]);
3210
+ g.addComponentsGetterSetter(p, "strokeLinearGradientStartPoint", [
3211
+ "x",
3212
+ "y"
3213
+ ]);
3214
+ g.addGetterSetter(p, "fillLinearGradientStartPointX", 0);
3215
+ g.addGetterSetter(p, "strokeLinearGradientStartPointX", 0);
3216
+ g.addGetterSetter(p, "fillLinearGradientStartPointY", 0);
3217
+ g.addGetterSetter(p, "strokeLinearGradientStartPointY", 0);
3218
+ g.addComponentsGetterSetter(p, "fillLinearGradientEndPoint", [
3219
+ "x",
3220
+ "y"
3221
+ ]);
3222
+ g.addComponentsGetterSetter(p, "strokeLinearGradientEndPoint", [
3223
+ "x",
3224
+ "y"
3225
+ ]);
3226
+ g.addGetterSetter(p, "fillLinearGradientEndPointX", 0);
3227
+ g.addGetterSetter(p, "strokeLinearGradientEndPointX", 0);
3228
+ g.addGetterSetter(p, "fillLinearGradientEndPointY", 0);
3229
+ g.addGetterSetter(p, "strokeLinearGradientEndPointY", 0);
3230
+ g.addComponentsGetterSetter(p, "fillRadialGradientStartPoint", [
3231
+ "x",
3232
+ "y"
3233
+ ]);
3234
+ g.addGetterSetter(p, "fillRadialGradientStartPointX", 0);
3235
+ g.addGetterSetter(p, "fillRadialGradientStartPointY", 0);
3236
+ g.addComponentsGetterSetter(p, "fillRadialGradientEndPoint", [
3237
+ "x",
3238
+ "y"
3239
+ ]);
3240
+ g.addGetterSetter(p, "fillRadialGradientEndPointX", 0);
3241
+ g.addGetterSetter(p, "fillRadialGradientEndPointY", 0);
3242
+ g.addGetterSetter(p, "fillPatternRotation", 0);
3243
+ g.addGetterSetter(p, "fillRule", void 0, Y());
3244
+ g.backCompat(p, {
3245
+ dashArray: "dash",
3246
+ getDashArray: "getDash",
3247
+ setDashArray: "getDash",
3248
+ drawFunc: "sceneFunc",
3249
+ getDrawFunc: "getSceneFunc",
3250
+ setDrawFunc: "setSceneFunc",
3251
+ drawHitFunc: "hitFunc",
3252
+ getDrawHitFunc: "getHitFunc",
3253
+ setDrawHitFunc: "setHitFunc"
3254
+ });
3255
+ const mi = "beforeDraw", _i = "draw", ce = [
3256
+ { x: 0, y: 0 },
3257
+ { x: -1, y: -1 },
3258
+ { x: 1, y: -1 },
3259
+ { x: 1, y: 1 },
3260
+ { x: -1, y: 1 }
3261
+ ], yi = ce.length;
3262
+ class N extends k {
3263
+ constructor(t) {
3264
+ super(t), this.canvas = new D(), this.hitCanvas = new Et({
3265
+ pixelRatio: 1
3266
+ }), this._waitingForDraw = !1, this.on("visibleChange.konva", this._checkVisibility), this._checkVisibility(), this.on("imageSmoothingEnabledChange.konva", this._setSmoothEnabled), this._setSmoothEnabled();
3267
+ }
3268
+ createPNGStream() {
3269
+ return this.canvas._canvas.createPNGStream();
3270
+ }
3271
+ getCanvas() {
3272
+ return this.canvas;
3273
+ }
3274
+ getNativeCanvasElement() {
3275
+ return this.canvas._canvas;
3276
+ }
3277
+ getHitCanvas() {
3278
+ return this.hitCanvas;
3279
+ }
3280
+ getContext() {
3281
+ return this.getCanvas().getContext();
3282
+ }
3283
+ clear(t) {
3284
+ return this.getContext().clear(t), this.getHitCanvas().getContext().clear(t), this;
3285
+ }
3286
+ setZIndex(t) {
3287
+ super.setZIndex(t);
3288
+ const e = this.getStage();
3289
+ return e && e.content && (e.content.removeChild(this.getNativeCanvasElement()), t < e.children.length - 1 ? e.content.insertBefore(this.getNativeCanvasElement(), e.children[t + 1].getCanvas()._canvas) : e.content.appendChild(this.getNativeCanvasElement())), this;
3290
+ }
3291
+ moveToTop() {
3292
+ _.prototype.moveToTop.call(this);
3293
+ const t = this.getStage();
3294
+ return t && t.content && (t.content.removeChild(this.getNativeCanvasElement()), t.content.appendChild(this.getNativeCanvasElement())), !0;
3295
+ }
3296
+ moveUp() {
3297
+ if (!_.prototype.moveUp.call(this))
3298
+ return !1;
3299
+ const e = this.getStage();
3300
+ return !e || !e.content ? !1 : (e.content.removeChild(this.getNativeCanvasElement()), this.index < e.children.length - 1 ? e.content.insertBefore(this.getNativeCanvasElement(), e.children[this.index + 1].getCanvas()._canvas) : e.content.appendChild(this.getNativeCanvasElement()), !0);
3301
+ }
3302
+ moveDown() {
3303
+ if (_.prototype.moveDown.call(this)) {
3304
+ const t = this.getStage();
3305
+ if (t) {
3306
+ const e = t.children;
3307
+ t.content && (t.content.removeChild(this.getNativeCanvasElement()), t.content.insertBefore(this.getNativeCanvasElement(), e[this.index + 1].getCanvas()._canvas));
3308
+ }
3309
+ return !0;
3310
+ }
3311
+ return !1;
3312
+ }
3313
+ moveToBottom() {
3314
+ if (_.prototype.moveToBottom.call(this)) {
3315
+ const t = this.getStage();
3316
+ if (t) {
3317
+ const e = t.children;
3318
+ t.content && (t.content.removeChild(this.getNativeCanvasElement()), t.content.insertBefore(this.getNativeCanvasElement(), e[1].getCanvas()._canvas));
3319
+ }
3320
+ return !0;
3321
+ }
3322
+ return !1;
3323
+ }
3324
+ getLayer() {
3325
+ return this;
3326
+ }
3327
+ remove() {
3328
+ const t = this.getNativeCanvasElement();
3329
+ return _.prototype.remove.call(this), t && t.parentNode && c._isInDocument(t) && t.parentNode.removeChild(t), this;
3330
+ }
3331
+ getStage() {
3332
+ return this.parent;
3333
+ }
3334
+ setSize({ width: t, height: e }) {
3335
+ return this.canvas.setSize(t, e), this.hitCanvas.setSize(t, e), this._setSmoothEnabled(), this;
3336
+ }
3337
+ _validateAdd(t) {
3338
+ const e = t.getType();
3339
+ e !== "Group" && e !== "Shape" && c.throw("You may only add groups and shapes to a layer.");
3340
+ }
3341
+ _toKonvaCanvas(t) {
3342
+ return t = { ...t }, t.width = t.width || this.getWidth(), t.height = t.height || this.getHeight(), t.x = t.x !== void 0 ? t.x : this.x(), t.y = t.y !== void 0 ? t.y : this.y(), _.prototype._toKonvaCanvas.call(this, t);
3343
+ }
3344
+ _checkVisibility() {
3345
+ this.visible() ? this.canvas._canvas.style.display = "block" : this.canvas._canvas.style.display = "none";
3346
+ }
3347
+ _setSmoothEnabled() {
3348
+ this.getContext()._context.imageSmoothingEnabled = this.imageSmoothingEnabled();
3349
+ }
3350
+ getWidth() {
3351
+ if (this.parent)
3352
+ return this.parent.width();
3353
+ }
3354
+ setWidth() {
3355
+ c.warn('Can not change width of layer. Use "stage.width(value)" function instead.');
3356
+ }
3357
+ getHeight() {
3358
+ if (this.parent)
3359
+ return this.parent.height();
3360
+ }
3361
+ setHeight() {
3362
+ c.warn('Can not change height of layer. Use "stage.height(value)" function instead.');
3363
+ }
3364
+ batchDraw() {
3365
+ return this._waitingForDraw || (this._waitingForDraw = !0, c.requestAnimFrame(() => {
3366
+ this.draw(), this._waitingForDraw = !1;
3367
+ })), this;
3368
+ }
3369
+ getIntersection(t) {
3370
+ if (!this.isListening() || !this.isVisible())
3371
+ return null;
3372
+ let e = 1, i = !1;
3373
+ for (; ; ) {
3374
+ for (let s = 0; s < yi; s++) {
3375
+ const r = ce[s], a = this._getIntersection({
3376
+ x: t.x + r.x * e,
3377
+ y: t.y + r.y * e
3378
+ }), o = a.shape;
3379
+ if (o)
3380
+ return o;
3381
+ if (i = !!a.antialiased, !a.antialiased)
3382
+ break;
3383
+ }
3384
+ if (i)
3385
+ e += 1;
3386
+ else
3387
+ return null;
3388
+ }
3389
+ }
3390
+ _getIntersection(t) {
3391
+ const e = this.hitCanvas.pixelRatio, i = this.hitCanvas.context.getImageData(Math.round(t.x * e), Math.round(t.y * e), 1, 1).data, s = i[3];
3392
+ if (s === 255) {
3393
+ const r = c.getHitColorKey(i[0], i[1], i[2]), a = tt[r];
3394
+ return a ? {
3395
+ shape: a
3396
+ } : {
3397
+ antialiased: !0
3398
+ };
3399
+ } else if (s > 0)
3400
+ return {
3401
+ antialiased: !0
3402
+ };
3403
+ return {};
3404
+ }
3405
+ drawScene(t, e, i) {
3406
+ const s = this.getLayer(), r = t || s && s.getCanvas();
3407
+ return this._fire(mi, {
3408
+ node: this
3409
+ }), this.clearBeforeDraw() && r.getContext().clear(), k.prototype.drawScene.call(this, r, e, i), this._fire(_i, {
3410
+ node: this
3411
+ }), this;
3412
+ }
3413
+ drawHit(t, e) {
3414
+ const i = this.getLayer(), s = t || i && i.hitCanvas;
3415
+ return i && i.clearBeforeDraw() && i.getHitCanvas().getContext().clear(), k.prototype.drawHit.call(this, s, e), this;
3416
+ }
3417
+ enableHitGraph() {
3418
+ return this.hitGraphEnabled(!0), this;
3419
+ }
3420
+ disableHitGraph() {
3421
+ return this.hitGraphEnabled(!1), this;
3422
+ }
3423
+ setHitGraphEnabled(t) {
3424
+ c.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."), this.listening(t);
3425
+ }
3426
+ getHitGraphEnabled(t) {
3427
+ return c.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."), this.listening();
3428
+ }
3429
+ toggleHitCanvas() {
3430
+ if (!this.parent || !this.parent.content)
3431
+ return;
3432
+ const t = this.parent;
3433
+ !!this.hitCanvas._canvas.parentNode ? t.content.removeChild(this.hitCanvas._canvas) : t.content.appendChild(this.hitCanvas._canvas);
3434
+ }
3435
+ destroy() {
3436
+ return c.releaseCanvas(this.getNativeCanvasElement(), this.getHitCanvas()._canvas), super.destroy();
3437
+ }
3438
+ }
3439
+ N.prototype.nodeType = "Layer";
3440
+ nt(N);
3441
+ g.addGetterSetter(N, "imageSmoothingEnabled", !0);
3442
+ g.addGetterSetter(N, "clearBeforeDraw", !0);
3443
+ g.addGetterSetter(N, "hitGraphEnabled", !0, M());
3444
+ class kt extends N {
3445
+ constructor(t) {
3446
+ super(t), this.listening(!1), c.warn('Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.');
3447
+ }
3448
+ }
3449
+ kt.prototype.nodeType = "FastLayer";
3450
+ nt(kt);
3451
+ class Rt extends k {
3452
+ _validateAdd(t) {
3453
+ const e = t.getType();
3454
+ e !== "Group" && e !== "Shape" && c.throw("You may only add groups and shapes to groups.");
3455
+ }
3456
+ }
3457
+ Rt.prototype.nodeType = "Group";
3458
+ nt(Rt);
3459
+ const Ct = (function() {
3460
+ return B.performance && B.performance.now ? function() {
3461
+ return B.performance.now();
3462
+ } : function() {
3463
+ return (/* @__PURE__ */ new Date()).getTime();
3464
+ };
3465
+ })();
3466
+ class R {
3467
+ constructor(t, e) {
3468
+ this.id = R.animIdCounter++, this.frame = {
3469
+ time: 0,
3470
+ timeDiff: 0,
3471
+ lastTime: Ct(),
3472
+ frameRate: 0
3473
+ }, this.func = t, this.setLayers(e);
3474
+ }
3475
+ setLayers(t) {
3476
+ let e = [];
3477
+ return t && (e = Array.isArray(t) ? t : [t]), this.layers = e, this;
3478
+ }
3479
+ getLayers() {
3480
+ return this.layers;
3481
+ }
3482
+ addLayer(t) {
3483
+ const e = this.layers, i = e.length;
3484
+ for (let s = 0; s < i; s++)
3485
+ if (e[s]._id === t._id)
3486
+ return !1;
3487
+ return this.layers.push(t), !0;
3488
+ }
3489
+ isRunning() {
3490
+ const e = R.animations, i = e.length;
3491
+ for (let s = 0; s < i; s++)
3492
+ if (e[s].id === this.id)
3493
+ return !0;
3494
+ return !1;
3495
+ }
3496
+ start() {
3497
+ return this.stop(), this.frame.timeDiff = 0, this.frame.lastTime = Ct(), R._addAnimation(this), this;
3498
+ }
3499
+ stop() {
3500
+ return R._removeAnimation(this), this;
3501
+ }
3502
+ _updateFrameObject(t) {
3503
+ this.frame.timeDiff = t - this.frame.lastTime, this.frame.lastTime = t, this.frame.time += this.frame.timeDiff, this.frame.frameRate = 1e3 / this.frame.timeDiff;
3504
+ }
3505
+ static _addAnimation(t) {
3506
+ this.animations.push(t), this._handleAnimation();
3507
+ }
3508
+ static _removeAnimation(t) {
3509
+ const e = t.id, i = this.animations, s = i.length;
3510
+ for (let r = 0; r < s; r++)
3511
+ if (i[r].id === e) {
3512
+ this.animations.splice(r, 1);
3513
+ break;
3514
+ }
3515
+ }
3516
+ static _runFrames() {
3517
+ const t = {}, e = this.animations;
3518
+ for (let i = 0; i < e.length; i++) {
3519
+ const s = e[i], r = s.layers, a = s.func;
3520
+ s._updateFrameObject(Ct());
3521
+ const o = r.length;
3522
+ let h;
3523
+ if (a ? h = a.call(s, s.frame) !== !1 : h = !0, !!h)
3524
+ for (let l = 0; l < o; l++) {
3525
+ const d = r[l];
3526
+ d._id !== void 0 && (t[d._id] = d);
3527
+ }
3528
+ }
3529
+ for (const i in t)
3530
+ t.hasOwnProperty(i) && t[i].batchDraw();
3531
+ }
3532
+ static _animationLoop() {
3533
+ const t = R;
3534
+ t.animations.length ? (t._runFrames(), c.requestAnimFrame(t._animationLoop)) : t.animRunning = !1;
3535
+ }
3536
+ static _handleAnimation() {
3537
+ this.animRunning || (this.animRunning = !0, c.requestAnimFrame(this._animationLoop));
3538
+ }
3539
+ }
3540
+ R.animations = [];
3541
+ R.animIdCounter = 0;
3542
+ R.animRunning = !1;
3543
+ const Ci = {
3544
+ node: 1,
3545
+ duration: 1,
3546
+ easing: 1,
3547
+ onFinish: 1,
3548
+ yoyo: 1
3549
+ }, vi = 1, Yt = 2, Xt = 3, Vt = ["fill", "stroke", "shadowColor"];
3550
+ let bi = 0;
3551
+ class Si {
3552
+ constructor(t, e, i, s, r, a, o) {
3553
+ this.prop = t, this.propFunc = e, this.begin = s, this._pos = s, this.duration = a, this._change = 0, this.prevPos = 0, this.yoyo = o, this._time = 0, this._position = 0, this._startTime = 0, this._finish = 0, this.func = i, this._change = r - this.begin, this.pause();
3554
+ }
3555
+ fire(t) {
3556
+ const e = this[t];
3557
+ e && e();
3558
+ }
3559
+ setTime(t) {
3560
+ t > this.duration ? this.yoyo ? (this._time = this.duration, this.reverse()) : this.finish() : t < 0 ? this.yoyo ? (this._time = 0, this.play()) : this.reset() : (this._time = t, this.update());
3561
+ }
3562
+ getTime() {
3563
+ return this._time;
3564
+ }
3565
+ setPosition(t) {
3566
+ this.prevPos = this._pos, this.propFunc(t), this._pos = t;
3567
+ }
3568
+ getPosition(t) {
3569
+ return t === void 0 && (t = this._time), this.func(t, this.begin, this._change, this.duration);
3570
+ }
3571
+ play() {
3572
+ this.state = Yt, this._startTime = this.getTimer() - this._time, this.onEnterFrame(), this.fire("onPlay");
3573
+ }
3574
+ reverse() {
3575
+ this.state = Xt, this._time = this.duration - this._time, this._startTime = this.getTimer() - this._time, this.onEnterFrame(), this.fire("onReverse");
3576
+ }
3577
+ seek(t) {
3578
+ this.pause(), this._time = t, this.update(), this.fire("onSeek");
3579
+ }
3580
+ reset() {
3581
+ this.pause(), this._time = 0, this.update(), this.fire("onReset");
3582
+ }
3583
+ finish() {
3584
+ this.pause(), this._time = this.duration, this.update(), this.fire("onFinish");
3585
+ }
3586
+ update() {
3587
+ this.setPosition(this.getPosition(this._time)), this.fire("onUpdate");
3588
+ }
3589
+ onEnterFrame() {
3590
+ const t = this.getTimer() - this._startTime;
3591
+ this.state === Yt ? this.setTime(t) : this.state === Xt && this.setTime(this.duration - t);
3592
+ }
3593
+ pause() {
3594
+ this.state = vi, this.fire("onPause");
3595
+ }
3596
+ getTimer() {
3597
+ return (/* @__PURE__ */ new Date()).getTime();
3598
+ }
3599
+ }
3600
+ class w {
3601
+ constructor(t) {
3602
+ const e = this, i = t.node, s = i._id, r = t.easing || et.Linear, a = !!t.yoyo;
3603
+ let o, h;
3604
+ typeof t.duration > "u" ? o = 0.3 : t.duration === 0 ? o = 1e-3 : o = t.duration, this.node = i, this._id = bi++;
3605
+ const l = i.getLayer() || (i instanceof m.Stage ? i.getLayers() : null);
3606
+ l || c.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."), this.anim = new R(function() {
3607
+ e.tween.onEnterFrame();
3608
+ }, l), this.tween = new Si(h, function(d) {
3609
+ e._tweenFunc(d);
3610
+ }, r, 0, 1, o * 1e3, a), this._addListeners(), w.attrs[s] || (w.attrs[s] = {}), w.attrs[s][this._id] || (w.attrs[s][this._id] = {}), w.tweens[s] || (w.tweens[s] = {});
3611
+ for (h in t)
3612
+ Ci[h] === void 0 && this._addAttr(h, t[h]);
3613
+ this.reset(), this.onFinish = t.onFinish, this.onReset = t.onReset, this.onUpdate = t.onUpdate;
3614
+ }
3615
+ _addAttr(t, e) {
3616
+ const i = this.node, s = i._id;
3617
+ let r, a, o, h, l;
3618
+ const d = w.tweens[s][t];
3619
+ d && delete w.attrs[s][d][t];
3620
+ let u = i.getAttr(t);
3621
+ if (c._isArray(e))
3622
+ if (r = [], a = Math.max(e.length, u.length), t === "points" && e.length !== u.length && (e.length > u.length ? (h = u, u = c._prepareArrayForTween(u, e, i.closed())) : (o = e, e = c._prepareArrayForTween(e, u, i.closed()))), t.indexOf("fill") === 0)
3623
+ for (let f = 0; f < a; f++)
3624
+ if (f % 2 === 0)
3625
+ r.push(e[f] - u[f]);
3626
+ else {
3627
+ const C = c.colorToRGBA(u[f]);
3628
+ l = c.colorToRGBA(e[f]), u[f] = C, r.push({
3629
+ r: l.r - C.r,
3630
+ g: l.g - C.g,
3631
+ b: l.b - C.b,
3632
+ a: l.a - C.a
3633
+ });
3634
+ }
3635
+ else
3636
+ for (let f = 0; f < a; f++)
3637
+ r.push(e[f] - u[f]);
3638
+ else Vt.indexOf(t) !== -1 ? (u = c.colorToRGBA(u), l = c.colorToRGBA(e), r = {
3639
+ r: l.r - u.r,
3640
+ g: l.g - u.g,
3641
+ b: l.b - u.b,
3642
+ a: l.a - u.a
3643
+ }) : r = e - u;
3644
+ w.attrs[s][this._id][t] = {
3645
+ start: u,
3646
+ diff: r,
3647
+ end: e,
3648
+ trueEnd: o,
3649
+ trueStart: h
3650
+ }, w.tweens[s][t] = this._id;
3651
+ }
3652
+ _tweenFunc(t) {
3653
+ const e = this.node, i = w.attrs[e._id][this._id];
3654
+ let s, r, a, o, h, l, d, u;
3655
+ for (s in i) {
3656
+ if (r = i[s], a = r.start, o = r.diff, u = r.end, c._isArray(a))
3657
+ if (h = [], d = Math.max(a.length, u.length), s.indexOf("fill") === 0)
3658
+ for (l = 0; l < d; l++)
3659
+ l % 2 === 0 ? h.push((a[l] || 0) + o[l] * t) : h.push("rgba(" + Math.round(a[l].r + o[l].r * t) + "," + Math.round(a[l].g + o[l].g * t) + "," + Math.round(a[l].b + o[l].b * t) + "," + (a[l].a + o[l].a * t) + ")");
3660
+ else
3661
+ for (l = 0; l < d; l++)
3662
+ h.push((a[l] || 0) + o[l] * t);
3663
+ else Vt.indexOf(s) !== -1 ? h = "rgba(" + Math.round(a.r + o.r * t) + "," + Math.round(a.g + o.g * t) + "," + Math.round(a.b + o.b * t) + "," + (a.a + o.a * t) + ")" : h = a + o * t;
3664
+ e.setAttr(s, h);
3665
+ }
3666
+ }
3667
+ _addListeners() {
3668
+ this.tween.onPlay = () => {
3669
+ this.anim.start();
3670
+ }, this.tween.onReverse = () => {
3671
+ this.anim.start();
3672
+ }, this.tween.onPause = () => {
3673
+ this.anim.stop();
3674
+ }, this.tween.onFinish = () => {
3675
+ const t = this.node, e = w.attrs[t._id][this._id];
3676
+ e.points && e.points.trueEnd && t.setAttr("points", e.points.trueEnd), this.onFinish && this.onFinish.call(this);
3677
+ }, this.tween.onReset = () => {
3678
+ const t = this.node, e = w.attrs[t._id][this._id];
3679
+ e.points && e.points.trueStart && t.points(e.points.trueStart), this.onReset && this.onReset();
3680
+ }, this.tween.onUpdate = () => {
3681
+ this.onUpdate && this.onUpdate.call(this);
3682
+ };
3683
+ }
3684
+ play() {
3685
+ return this.tween.play(), this;
3686
+ }
3687
+ reverse() {
3688
+ return this.tween.reverse(), this;
3689
+ }
3690
+ reset() {
3691
+ return this.tween.reset(), this;
3692
+ }
3693
+ seek(t) {
3694
+ return this.tween.seek(t * 1e3), this;
3695
+ }
3696
+ pause() {
3697
+ return this.tween.pause(), this;
3698
+ }
3699
+ finish() {
3700
+ return this.tween.finish(), this;
3701
+ }
3702
+ destroy() {
3703
+ const t = this.node._id, e = this._id, i = w.tweens[t];
3704
+ this.pause(), this.anim && this.anim.stop();
3705
+ for (const s in i)
3706
+ delete w.tweens[t][s];
3707
+ delete w.attrs[t][e], w.tweens[t] && (Object.keys(w.tweens[t]).length === 0 && delete w.tweens[t], Object.keys(w.attrs[t]).length === 0 && delete w.attrs[t]);
3708
+ }
3709
+ }
3710
+ w.attrs = {};
3711
+ w.tweens = {};
3712
+ _.prototype.to = function(n) {
3713
+ const t = n.onFinish;
3714
+ n.node = this, n.onFinish = function() {
3715
+ this.destroy(), t && t();
3716
+ }, new w(n).play();
3717
+ };
3718
+ const et = {
3719
+ BackEaseIn(n, t, e, i) {
3720
+ return e * (n /= i) * n * ((1.70158 + 1) * n - 1.70158) + t;
3721
+ },
3722
+ BackEaseOut(n, t, e, i) {
3723
+ return e * ((n = n / i - 1) * n * ((1.70158 + 1) * n + 1.70158) + 1) + t;
3724
+ },
3725
+ BackEaseInOut(n, t, e, i) {
3726
+ let s = 1.70158;
3727
+ return (n /= i / 2) < 1 ? e / 2 * (n * n * (((s *= 1.525) + 1) * n - s)) + t : e / 2 * ((n -= 2) * n * (((s *= 1.525) + 1) * n + s) + 2) + t;
3728
+ },
3729
+ ElasticEaseIn(n, t, e, i, s, r) {
3730
+ let a = 0;
3731
+ return n === 0 ? t : (n /= i) === 1 ? t + e : (r || (r = i * 0.3), !s || s < Math.abs(e) ? (s = e, a = r / 4) : a = r / (2 * Math.PI) * Math.asin(e / s), -(s * Math.pow(2, 10 * (n -= 1)) * Math.sin((n * i - a) * (2 * Math.PI) / r)) + t);
3732
+ },
3733
+ ElasticEaseOut(n, t, e, i, s, r) {
3734
+ let a = 0;
3735
+ return n === 0 ? t : (n /= i) === 1 ? t + e : (r || (r = i * 0.3), !s || s < Math.abs(e) ? (s = e, a = r / 4) : a = r / (2 * Math.PI) * Math.asin(e / s), s * Math.pow(2, -10 * n) * Math.sin((n * i - a) * (2 * Math.PI) / r) + e + t);
3736
+ },
3737
+ ElasticEaseInOut(n, t, e, i, s, r) {
3738
+ let a = 0;
3739
+ return n === 0 ? t : (n /= i / 2) === 2 ? t + e : (r || (r = i * (0.3 * 1.5)), !s || s < Math.abs(e) ? (s = e, a = r / 4) : a = r / (2 * Math.PI) * Math.asin(e / s), n < 1 ? -0.5 * (s * Math.pow(2, 10 * (n -= 1)) * Math.sin((n * i - a) * (2 * Math.PI) / r)) + t : s * Math.pow(2, -10 * (n -= 1)) * Math.sin((n * i - a) * (2 * Math.PI) / r) * 0.5 + e + t);
3740
+ },
3741
+ BounceEaseOut(n, t, e, i) {
3742
+ return (n /= i) < 1 / 2.75 ? e * (7.5625 * n * n) + t : n < 2 / 2.75 ? e * (7.5625 * (n -= 1.5 / 2.75) * n + 0.75) + t : n < 2.5 / 2.75 ? e * (7.5625 * (n -= 2.25 / 2.75) * n + 0.9375) + t : e * (7.5625 * (n -= 2.625 / 2.75) * n + 0.984375) + t;
3743
+ },
3744
+ BounceEaseIn(n, t, e, i) {
3745
+ return e - et.BounceEaseOut(i - n, 0, e, i) + t;
3746
+ },
3747
+ BounceEaseInOut(n, t, e, i) {
3748
+ return n < i / 2 ? et.BounceEaseIn(n * 2, 0, e, i) * 0.5 + t : et.BounceEaseOut(n * 2 - i, 0, e, i) * 0.5 + e * 0.5 + t;
3749
+ },
3750
+ EaseIn(n, t, e, i) {
3751
+ return e * (n /= i) * n + t;
3752
+ },
3753
+ EaseOut(n, t, e, i) {
3754
+ return -e * (n /= i) * (n - 2) + t;
3755
+ },
3756
+ EaseInOut(n, t, e, i) {
3757
+ return (n /= i / 2) < 1 ? e / 2 * n * n + t : -e / 2 * (--n * (n - 2) - 1) + t;
3758
+ },
3759
+ StrongEaseIn(n, t, e, i) {
3760
+ return e * (n /= i) * n * n * n * n + t;
3761
+ },
3762
+ StrongEaseOut(n, t, e, i) {
3763
+ return e * ((n = n / i - 1) * n * n * n * n + 1) + t;
3764
+ },
3765
+ StrongEaseInOut(n, t, e, i) {
3766
+ return (n /= i / 2) < 1 ? e / 2 * n * n * n * n * n + t : e / 2 * ((n -= 2) * n * n * n * n + 2) + t;
3767
+ },
3768
+ Linear(n, t, e, i) {
3769
+ return e * n / i + t;
3770
+ }
3771
+ }, Pi = c._assign(m, {
3772
+ Util: c,
3773
+ Transform: L,
3774
+ Node: _,
3775
+ Container: k,
3776
+ Stage: gt,
3777
+ stages: Q,
3778
+ Layer: N,
3779
+ FastLayer: kt,
3780
+ Group: Rt,
3781
+ DD: v,
3782
+ Shape: p,
3783
+ shapes: tt,
3784
+ Animation: R,
3785
+ Tween: w,
3786
+ Easings: et,
3787
+ Context: ft,
3788
+ Canvas: xt
3789
+ });
3790
+ export {
3791
+ R as A,
3792
+ g as F,
3793
+ Rt as G,
3794
+ m as K,
3795
+ _ as N,
3796
+ wi as R,
3797
+ p as S,
3798
+ L as T,
3799
+ c as U,
3800
+ nt as _,
3801
+ M as a,
3802
+ Ei as b,
3803
+ xi as c,
3804
+ Ne as d,
3805
+ Y as e,
3806
+ Pi as f,
3807
+ b as g
3808
+ };