@anu3ev/fabric-image-editor 0.1.34 → 0.1.36

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 (2) hide show
  1. package/dist/main.js +392 -475
  2. package/package.json +2 -1
package/dist/main.js CHANGED
@@ -1,15 +1,24 @@
1
- var Oe = Object.defineProperty;
2
- var me = Object.getOwnPropertySymbols;
3
- var Te = Object.prototype.hasOwnProperty, ke = Object.prototype.propertyIsEnumerable;
4
- var fe = (o, e, t) => e in o ? Oe(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, Q = (o, e) => {
1
+ var Te = Object.defineProperty;
2
+ var G = Object.getOwnPropertySymbols;
3
+ var Me = Object.prototype.hasOwnProperty, fe = Object.prototype.propertyIsEnumerable;
4
+ var me = (o, e, t) => e in o ? Te(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, A = (o, e) => {
5
5
  for (var t in e || (e = {}))
6
- Te.call(e, t) && fe(o, t, e[t]);
7
- if (me)
8
- for (var t of me(e))
9
- ke.call(e, t) && fe(o, t, e[t]);
6
+ Me.call(e, t) && me(o, t, e[t]);
7
+ if (G)
8
+ for (var t of G(e))
9
+ fe.call(e, t) && me(o, t, e[t]);
10
10
  return o;
11
11
  };
12
- var J = (o, e, t) => new Promise((a, r) => {
12
+ var X = (o, e) => {
13
+ var t = {};
14
+ for (var a in o)
15
+ Me.call(o, a) && e.indexOf(a) < 0 && (t[a] = o[a]);
16
+ if (o != null && G)
17
+ for (var a of G(o))
18
+ e.indexOf(a) < 0 && fe.call(o, a) && (t[a] = o[a]);
19
+ return t;
20
+ };
21
+ var $ = (o, e, t) => new Promise((a, r) => {
13
22
  var i = (c) => {
14
23
  try {
15
24
  s(t.next(c));
@@ -25,11 +34,11 @@ var J = (o, e, t) => new Promise((a, r) => {
25
34
  }, s = (c) => c.done ? a(c.value) : Promise.resolve(c.value).then(i, n);
26
35
  s((t = t.apply(o, e)).next());
27
36
  });
28
- import { ActiveSelection as H, util as _, controlsUtils as xe, InteractiveFabricObject as Be, loadSVGFromURL as Ze, FabricImage as K, Point as ze, Rect as Ue, Circle as Ye, Triangle as Pe, Group as He, Canvas as _e, Pattern as Re } from "fabric";
29
- import { create as We } from "jsondiffpatch";
30
- var Fe = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", C = function() {
37
+ import { ActiveSelection as _, util as R, controlsUtils as Oe, InteractiveFabricObject as ke, loadSVGFromURL as xe, FabricImage as q, Point as Be, Rect as Ze, Circle as ze, Triangle as Ue, Group as Ye, Canvas as He, Pattern as Pe } from "fabric";
38
+ import { create as _e } from "jsondiffpatch";
39
+ var Re = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", D = function() {
31
40
  for (var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 21, t = "", a = crypto.getRandomValues(new Uint8Array(e |= 0)); e--; )
32
- t += Fe[a[e] & 63];
41
+ t += Re[a[e] & 63];
33
42
  return t;
34
43
  };
35
44
  class P {
@@ -86,7 +95,7 @@ class P {
86
95
  this.canvas.setActiveObject(r[0]);
87
96
  return;
88
97
  }
89
- const i = new H(r, {
98
+ const i = new _(r, {
90
99
  canvas: this.canvas
91
100
  });
92
101
  this.canvas.setActiveObject(i), this.canvas.requestRenderAll();
@@ -173,7 +182,7 @@ class P {
173
182
  * @param {String} event.code — код клавиши
174
183
  */
175
184
  handleUndoRedoEvent(e) {
176
- return J(this, null, function* () {
185
+ return $(this, null, function* () {
177
186
  const { ctrlKey: t, metaKey: a, code: r, repeat: i } = e;
178
187
  !t && !a || i || this.isUndoRedoKeyPressed || (r === "KeyZ" ? (e.preventDefault(), this.isUndoRedoKeyPressed = !0, yield this.editor.historyManager.undo()) : r === "KeyY" && (e.preventDefault(), this.isUndoRedoKeyPressed = !0, yield this.editor.historyManager.redo()));
179
188
  });
@@ -320,7 +329,7 @@ class P {
320
329
  };
321
330
  }
322
331
  }
323
- class Ve {
332
+ class We {
324
333
  /**
325
334
  * @description Класс для динамической загрузки внешних модулей.
326
335
  */
@@ -338,7 +347,7 @@ class Ve {
338
347
  return this.loaders[e] ? (this.cache.has(e) || this.cache.set(e, this.loaders[e]()), this.cache.get(e)) : Promise.reject(new Error('Unknown module "'.concat(e, '"')));
339
348
  }
340
349
  }
341
- class Ge {
350
+ class Fe {
342
351
  /**
343
352
  * @param {string|URL} [scriptUrl] — URL скрипта воркера.
344
353
  * По-умолчанию использует файл рядом с этим модулем
@@ -378,7 +387,7 @@ class Ge {
378
387
  * @returns {Promise<any>}
379
388
  */
380
389
  post(e, t) {
381
- var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [], r = "".concat(e, ":").concat(C(8));
390
+ var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [], r = "".concat(e, ":").concat(D(8));
382
391
  return new Promise((i, n) => {
383
392
  this._callbacks.set(r, {
384
393
  resolve: i,
@@ -397,50 +406,50 @@ class Ge {
397
406
  this.worker.terminate();
398
407
  }
399
408
  }
400
- var I = 12, Xe = 2, te = 8, ae = 20, Qe = 100, re = 20, ie = 8, Je = 100, ne = 32, se = 1, Ke = "#2B2D33", oe = "#3D8BF4", ce = "#FFFFFF";
401
- function V(o, e, t, a, r) {
402
- var i = I, n = Xe;
403
- o.save(), o.translate(e, t), o.rotate(_.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-12 / 2, -12 / 2, i, i, n), o.fill(), o.stroke(), o.restore();
404
- }
405
- function Me(o, e, t, a, r) {
406
- var i = te, n = ae, s = Qe;
407
- o.save(), o.translate(e, t), o.rotate(_.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-8 / 2, -20 / 2, i, n, s), o.fill(), o.stroke(), o.restore();
409
+ var I = 12, Ve = 2, te = 8, ae = 20, Ge = 100, re = 20, ie = 8, Xe = 100, ne = 32, se = 1, Qe = "#2B2D33", oe = "#3D8BF4", ce = "#FFFFFF";
410
+ function Q(o, e, t, a, r) {
411
+ var i = I, n = Ve;
412
+ o.save(), o.translate(e, t), o.rotate(R.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-12 / 2, -12 / 2, i, i, n), o.fill(), o.stroke(), o.restore();
408
413
  }
409
414
  function je(o, e, t, a, r) {
410
- var i = re, n = ie, s = Je;
411
- o.save(), o.translate(e, t), o.rotate(_.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-20 / 2, -8 / 2, i, n, s), o.fill(), o.stroke(), o.restore();
415
+ var i = te, n = ae, s = Ge;
416
+ o.save(), o.translate(e, t), o.rotate(R.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-8 / 2, -20 / 2, i, n, s), o.fill(), o.stroke(), o.restore();
412
417
  }
413
- var $e = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE4Ljc1IDQuMzc1djMuNzVhLjYyNS42MjUgMCAwIDEtLjYyNS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDEgMC0xLjI1aDIuMTRsLTIuMDc3LTEuOTAzLS4wMi0uMDE5YTYuMjUgNi4yNSAwIDEgMC0uMTMgOC45NjcuNjI2LjYyNiAwIDAgMSAuODYuOTA5QTcuNDU2IDcuNDU2IDAgMCAxIDEwIDE3LjVoLS4xMDNhNy41IDcuNSAwIDEgMSA1LjM5Ni0xMi44MTJMMTcuNSA2LjcwM1Y0LjM3NWEuNjI1LjYyNSAwIDAgMSAxLjI1IDBaIi8+PC9zdmc+", we = new Image();
414
- we.src = $e;
415
- function qe(o, e, t, a, r) {
418
+ function ye(o, e, t, a, r) {
419
+ var i = re, n = ie, s = Xe;
420
+ o.save(), o.translate(e, t), o.rotate(R.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-20 / 2, -8 / 2, i, n, s), o.fill(), o.stroke(), o.restore();
421
+ }
422
+ var Je = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE4Ljc1IDQuMzc1djMuNzVhLjYyNS42MjUgMCAwIDEtLjYyNS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDEgMC0xLjI1aDIuMTRsLTIuMDc3LTEuOTAzLS4wMi0uMDE5YTYuMjUgNi4yNSAwIDEgMC0uMTMgOC45NjcuNjI2LjYyNiAwIDAgMSAuODYuOTA5QTcuNDU2IDcuNDU2IDAgMCAxIDEwIDE3LjVoLS4xMDNhNy41IDcuNSAwIDEgMSA1LjM5Ni0xMi44MTJMMTcuNSA2LjcwM1Y0LjM3NWEuNjI1LjYyNSAwIDAgMSAxLjI1IDBaIi8+PC9zdmc+", De = new Image();
423
+ De.src = Je;
424
+ function Ke(o, e, t, a, r) {
416
425
  var i = ne, n = i / 2;
417
- o.save(), o.translate(e, t), o.rotate(_.degreesToRadians(r.angle)), o.fillStyle = Ke, o.beginPath(), o.arc(0, 0, n, 0, 2 * Math.PI), o.fill(), o.drawImage(we, -16 / 2, -16 / 2, n, n), o.restore();
426
+ o.save(), o.translate(e, t), o.rotate(R.degreesToRadians(r.angle)), o.fillStyle = Qe, o.beginPath(), o.arc(0, 0, n, 0, 2 * Math.PI), o.fill(), o.drawImage(De, -16 / 2, -16 / 2, n, n), o.restore();
418
427
  }
419
- var et = {
428
+ var $e = {
420
429
  // Угловые точки
421
430
  tl: {
422
- render: V,
431
+ render: Q,
423
432
  sizeX: I,
424
433
  sizeY: I,
425
434
  offsetX: 0,
426
435
  offsetY: 0
427
436
  },
428
437
  tr: {
429
- render: V,
438
+ render: Q,
430
439
  sizeX: I,
431
440
  sizeY: I,
432
441
  offsetX: 0,
433
442
  offsetY: 0
434
443
  },
435
444
  bl: {
436
- render: V,
445
+ render: Q,
437
446
  sizeX: I,
438
447
  sizeY: I,
439
448
  offsetX: 0,
440
449
  offsetY: 0
441
450
  },
442
451
  br: {
443
- render: V,
452
+ render: Q,
444
453
  sizeX: I,
445
454
  sizeY: I,
446
455
  offsetX: 0,
@@ -448,14 +457,14 @@ var et = {
448
457
  },
449
458
  // Середина вертикалей
450
459
  ml: {
451
- render: Me,
460
+ render: je,
452
461
  sizeX: te,
453
462
  sizeY: ae,
454
463
  offsetX: 0,
455
464
  offsetY: 0
456
465
  },
457
466
  mr: {
458
- render: Me,
467
+ render: je,
459
468
  sizeX: te,
460
469
  sizeY: ae,
461
470
  offsetX: 0,
@@ -463,14 +472,14 @@ var et = {
463
472
  },
464
473
  // Середина горизонталей
465
474
  mt: {
466
- render: je,
475
+ render: ye,
467
476
  sizeX: re,
468
477
  sizeY: ie,
469
478
  offsetX: 0,
470
479
  offsetY: 0
471
480
  },
472
481
  mb: {
473
- render: je,
482
+ render: ye,
474
483
  sizeX: re,
475
484
  sizeY: ie,
476
485
  offsetX: 0,
@@ -478,17 +487,17 @@ var et = {
478
487
  },
479
488
  // Специальный «rotate» контрол
480
489
  mtr: {
481
- render: qe,
490
+ render: Ke,
482
491
  sizeX: ne,
483
492
  sizeY: ne,
484
493
  offsetX: 0,
485
494
  offsetY: -32
486
495
  }
487
496
  };
488
- class tt {
497
+ class qe {
489
498
  static apply() {
490
- var e = xe.createObjectDefaultControls();
491
- Object.entries(et).forEach((t) => {
499
+ var e = Oe.createObjectDefaultControls();
500
+ Object.entries($e).forEach((t) => {
492
501
  var [a, r] = t;
493
502
  Object.assign(e[a], {
494
503
  render: r.render,
@@ -496,12 +505,15 @@ class tt {
496
505
  sizeY: r.sizeY,
497
506
  offsetX: r.offsetX,
498
507
  offsetY: r.offsetY
508
+ }), a === "mtr" && (e[a].cursorStyle = "grab", e[a].mouseDownHandler = (i, n, s, c) => {
509
+ var u = n.target;
510
+ u.canvas.setCursor("grabbing");
499
511
  });
500
- }), Be.ownDefaults.controls = e;
512
+ }), ke.ownDefaults.controls = e;
501
513
  }
502
514
  }
503
- var at = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi44NzUgMi41YS42MjUuNjI1IDAgMCAwLS42MjUuNjI0VjYuMjVIMy4xMjVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2MTBjMCAuMzQ1LjI4LjYyNS42MjUuNjI1aDEwYy4zNDUgMCAuNjI1LS4yOC42MjUtLjYyNXYtMy4xMjZoMy4xMjVjLjM0NSAwIC42MjUtLjI4LjYyNS0uNjI1di0xMGEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTEwWm02Ljg3NSAxMGgyLjVWMy43NUg3LjV2Mi41aDUuNjI1Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NS42MjRabS0xMCAzLjc1VjcuNWg4Ljc1djguNzVIMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", rt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDcuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDMuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjVabTEzLjc1IDBIMy43NXY4Ljc1aDEyLjVWNy41WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMS44NzVhMi4xODggMi4xODggMCAwIDAtMi4xODggMi4xODh2Mi44MTJhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyYTMuNDM3IDMuNDM3IDAgMSAxIDYuODc1IDB2Mi44MTNhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyQTIuMTg4IDIuMTg4IDAgMCAwIDEwIDEuODc2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDEyLjgxM2EuOTM3LjkzNyAwIDEgMCAwLTEuODc1LjkzNy45MzcgMCAwIDAgMCAxLjg3NFoiLz48L3N2Zz4=", it = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE2LjI1IDYuMjVINy41VjQuMzc1YTIuNSAyLjUgMCAwIDEgMi41LTIuNWMxLjIgMCAyLjI4MS44NiAyLjUxMiAyYS42MjUuNjI1IDAgMCAwIDEuMjI2LS4yNWMtLjM1NC0xLjczOC0xLjkyNS0zLTMuNzM4LTNhMy43NTQgMy43NTQgMCAwIDAtMy43NSAzLjc1VjYuMjVoLTIuNUExLjI1IDEuMjUgMCAwIDAgMi41IDcuNXY4Ljc1YTEuMjUgMS4yNSAwIDAgMCAxLjI1IDEuMjVoMTIuNWExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjcuNWExLjI1IDEuMjUgMCAwIDAtMS4yNS0xLjI1Wm0wIDEwSDMuNzVWNy41aDEyLjV2OC43NVptLTUuMzEzLTQuMzc1YS45MzcuOTM3IDAgMSAxLTEuODc0IDAgLjkzNy45MzcgMCAwIDEgMS44NzQgMFoiLz48L3N2Zz4K", nt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuNSA4LjEyNSAxMCAxMi41bDcuNS00LjM3NUwxMCAzLjc1IDIuNSA4LjEyNVoiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjY4NSAzLjIxYS42MjUuNjI1IDAgMCAxIC42MyAwbDcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOGw3LjUtNC4zNzVaTTMuNzQgOC4xMjUgMTAgMTEuNzc2bDYuMjYtMy42NTFMMTAgNC40NzQgMy43NCA4LjEyNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA5LjQ2YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDExLjc3NmwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA5LjQ2Wm0tMS42NiAyLjQxNUwxMCAxNS41MjZsNi4yNi0zLjY1MS0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNi0xLjk3NSAxLjE1MVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", st = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMy4yMWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDguMTI1IDEwIDExLjc3Nmw2LjI2LTMuNjUxTDEwIDQuNDc0IDMuNzQgOC4xMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjcxNCAxMCAxMCAxMi41bDQuMjg2LTIuNSAzLjIxNCAxLjg3NUwxMCAxNi4yNWwtNy41LTQuMzc1TDUuNzE0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDkuNDZhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgMTEuNzc2bDMuOTctMi4zMTZhLjYyNS42MjUgMCAwIDEgLjYzIDBsMy4yMTUgMS44NzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhMNS40IDkuNDZabS0xLjY2IDIuNDE1TDEwIDE1LjUyNmw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2LTEuOTc1IDEuMTUxWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", ot = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIuNSA2LjI1IDcuNSA0LjM3NSA3LjUtNC4zNzVMMTAgMS44NzUgMi41IDYuMjVaIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMS4zMzVhLjYyNS42MjUgMCAwIDEgLjYzIDBsNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4bDcuNS00LjM3NVpNMy43NCA2LjI1IDEwIDkuOTAxbDYuMjYtMy42NTFMMTAgMi41OTkgMy43NCA2LjI1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDExLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCAxMy42NTFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgMTEuMzM1Wk0zLjc0IDEzLjc1IDEwIDE3LjQwMWw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTMuNzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgNy41ODVhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgOS45MDFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgNy41ODVaTTMuNzQgMTAgMTAgMTMuNjUxIDE2LjI2IDEwbC0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNkwzLjc0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", ct = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS45NiAxMy40MzVhLjYyNS42MjUgMCAwIDEgLjg1NS0uMjI1TDEwIDE3LjQwMWw3LjE4NS00LjE5YS42MjUuNjI1IDAgMCAxIC42MyAxLjA3OWwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEtLjIyNS0uODU1Wk05LjY4NSAxLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDYuMjUgMTAgOS45MDFsNi4yNi0zLjY1MUwxMCAyLjU5OSAzLjc0IDYuMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjcxNCAxMS44NzUgNC4yODYgMi41IDQuMjg2LTIuNUwxNy41IDEzLjc1IDEwIDE4LjEyNSAyLjUgMTMuNzVsMy4yMTQtMS44NzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgMTEuMzM1YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDEzLjY1MWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCAxMS4zMzVaTTMuNzQgMTMuNzUgMTAgMTcuNDAxbDYuMjYtMy42NTEtMS45NzQtMS4xNTEtMy45NzEgMi4zMTZhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTMuOTctMi4zMTZMMy43NCAxMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA3LjU4NWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCA5LjkwMWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA3LjU4NVpNMy43NCAxMCAxMCAxMy42NTEgMTYuMjYgMTBsLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTBaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", ut = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0VDNEU0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xMjUgMS4yNUExLjg3NSAxLjg3NSAwIDAgMCA2LjI1IDMuMTI1di42MjVIMy4xMjVhLjYyNS42MjUgMCAwIDAgMCAxLjI1aC42MjV2MTEuMjVBMS4yNSAxLjI1IDAgMCAwIDUgMTcuNWgxMGExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjVoLjYyNWEuNjI1LjYyNSAwIDAgMCAwLTEuMjVIMTMuNzV2LS42MjVhMS44NzUgMS44NzUgMCAwIDAtMS44NzUtMS44NzVoLTMuNzVabTQuMzc1IDIuNXYtLjYyNWEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2LjYyNWg1Wk01IDE2LjI1VjVoMTB2MTEuMjVINVpNOC4xMjUgNy41Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NWEuNjI1LjYyNSAwIDEgMS0xLjI1IDB2LTVjMC0uMzQ1LjI4LS42MjUuNjI1LS42MjVabTQuMzc1IDUuNjI1di01YS42MjUuNjI1IDAgMCAwLTEuMjUgMHY1YS42MjUuNjI1IDAgMSAwIDEuMjUgMFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==";
504
- function ye(o, e, t, a, r, i, n) {
515
+ var et = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi44NzUgMi41YS42MjUuNjI1IDAgMCAwLS42MjUuNjI0VjYuMjVIMy4xMjVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2MTBjMCAuMzQ1LjI4LjYyNS42MjUuNjI1aDEwYy4zNDUgMCAuNjI1LS4yOC42MjUtLjYyNXYtMy4xMjZoMy4xMjVjLjM0NSAwIC42MjUtLjI4LjYyNS0uNjI1di0xMGEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTEwWm02Ljg3NSAxMGgyLjVWMy43NUg3LjV2Mi41aDUuNjI1Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NS42MjRabS0xMCAzLjc1VjcuNWg4Ljc1djguNzVIMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", tt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDcuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDMuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjVabTEzLjc1IDBIMy43NXY4Ljc1aDEyLjVWNy41WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMS44NzVhMi4xODggMi4xODggMCAwIDAtMi4xODggMi4xODh2Mi44MTJhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyYTMuNDM3IDMuNDM3IDAgMSAxIDYuODc1IDB2Mi44MTNhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyQTIuMTg4IDIuMTg4IDAgMCAwIDEwIDEuODc2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDEyLjgxM2EuOTM3LjkzNyAwIDEgMCAwLTEuODc1LjkzNy45MzcgMCAwIDAgMCAxLjg3NFoiLz48L3N2Zz4=", at = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE2LjI1IDYuMjVINy41VjQuMzc1YTIuNSAyLjUgMCAwIDEgMi41LTIuNWMxLjIgMCAyLjI4MS44NiAyLjUxMiAyYS42MjUuNjI1IDAgMCAwIDEuMjI2LS4yNWMtLjM1NC0xLjczOC0xLjkyNS0zLTMuNzM4LTNhMy43NTQgMy43NTQgMCAwIDAtMy43NSAzLjc1VjYuMjVoLTIuNUExLjI1IDEuMjUgMCAwIDAgMi41IDcuNXY4Ljc1YTEuMjUgMS4yNSAwIDAgMCAxLjI1IDEuMjVoMTIuNWExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjcuNWExLjI1IDEuMjUgMCAwIDAtMS4yNS0xLjI1Wm0wIDEwSDMuNzVWNy41aDEyLjV2OC43NVptLTUuMzEzLTQuMzc1YS45MzcuOTM3IDAgMSAxLTEuODc0IDAgLjkzNy45MzcgMCAwIDEgMS44NzQgMFoiLz48L3N2Zz4K", rt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuNSA4LjEyNSAxMCAxMi41bDcuNS00LjM3NUwxMCAzLjc1IDIuNSA4LjEyNVoiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjY4NSAzLjIxYS42MjUuNjI1IDAgMCAxIC42MyAwbDcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOGw3LjUtNC4zNzVaTTMuNzQgOC4xMjUgMTAgMTEuNzc2bDYuMjYtMy42NTFMMTAgNC40NzQgMy43NCA4LjEyNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA5LjQ2YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDExLjc3NmwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA5LjQ2Wm0tMS42NiAyLjQxNUwxMCAxNS41MjZsNi4yNi0zLjY1MS0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNi0xLjk3NSAxLjE1MVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", it = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMy4yMWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDguMTI1IDEwIDExLjc3Nmw2LjI2LTMuNjUxTDEwIDQuNDc0IDMuNzQgOC4xMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjcxNCAxMCAxMCAxMi41bDQuMjg2LTIuNSAzLjIxNCAxLjg3NUwxMCAxNi4yNWwtNy41LTQuMzc1TDUuNzE0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDkuNDZhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgMTEuNzc2bDMuOTctMi4zMTZhLjYyNS42MjUgMCAwIDEgLjYzIDBsMy4yMTUgMS44NzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhMNS40IDkuNDZabS0xLjY2IDIuNDE1TDEwIDE1LjUyNmw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2LTEuOTc1IDEuMTUxWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", nt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIuNSA2LjI1IDcuNSA0LjM3NSA3LjUtNC4zNzVMMTAgMS44NzUgMi41IDYuMjVaIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMS4zMzVhLjYyNS42MjUgMCAwIDEgLjYzIDBsNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4bDcuNS00LjM3NVpNMy43NCA2LjI1IDEwIDkuOTAxbDYuMjYtMy42NTFMMTAgMi41OTkgMy43NCA2LjI1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDExLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCAxMy42NTFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgMTEuMzM1Wk0zLjc0IDEzLjc1IDEwIDE3LjQwMWw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTMuNzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgNy41ODVhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgOS45MDFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgNy41ODVaTTMuNzQgMTAgMTAgMTMuNjUxIDE2LjI2IDEwbC0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNkwzLjc0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", st = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS45NiAxMy40MzVhLjYyNS42MjUgMCAwIDEgLjg1NS0uMjI1TDEwIDE3LjQwMWw3LjE4NS00LjE5YS42MjUuNjI1IDAgMCAxIC42MyAxLjA3OWwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEtLjIyNS0uODU1Wk05LjY4NSAxLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDYuMjUgMTAgOS45MDFsNi4yNi0zLjY1MUwxMCAyLjU5OSAzLjc0IDYuMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjcxNCAxMS44NzUgNC4yODYgMi41IDQuMjg2LTIuNUwxNy41IDEzLjc1IDEwIDE4LjEyNSAyLjUgMTMuNzVsMy4yMTQtMS44NzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgMTEuMzM1YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDEzLjY1MWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCAxMS4zMzVaTTMuNzQgMTMuNzUgMTAgMTcuNDAxbDYuMjYtMy42NTEtMS45NzQtMS4xNTEtMy45NzEgMi4zMTZhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTMuOTctMi4zMTZMMy43NCAxMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA3LjU4NWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCA5LjkwMWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA3LjU4NVpNMy43NCAxMCAxMCAxMy42NTEgMTYuMjYgMTBsLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTBaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", ot = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0VDNEU0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xMjUgMS4yNUExLjg3NSAxLjg3NSAwIDAgMCA2LjI1IDMuMTI1di42MjVIMy4xMjVhLjYyNS42MjUgMCAwIDAgMCAxLjI1aC42MjV2MTEuMjVBMS4yNSAxLjI1IDAgMCAwIDUgMTcuNWgxMGExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjVoLjYyNWEuNjI1LjYyNSAwIDAgMCAwLTEuMjVIMTMuNzV2LS42MjVhMS44NzUgMS44NzUgMCAwIDAtMS44NzUtMS44NzVoLTMuNzVabTQuMzc1IDIuNXYtLjYyNWEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2LjYyNWg1Wk01IDE2LjI1VjVoMTB2MTEuMjVINVpNOC4xMjUgNy41Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NWEuNjI1LjYyNSAwIDEgMS0xLjI1IDB2LTVjMC0uMzQ1LjI4LS42MjUuNjI1LS42MjVabTQuMzc1IDUuNjI1di01YS42MjUuNjI1IDAgMCAwLTEuMjUgMHY1YS42MjUuNjI1IDAgMSAwIDEuMjUgMFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==";
516
+ function pe(o, e, t, a, r, i, n) {
505
517
  try {
506
518
  var s = o[i](n), c = s.value;
507
519
  } catch (u) {
@@ -509,22 +521,22 @@ function ye(o, e, t, a, r, i, n) {
509
521
  }
510
522
  s.done ? e(c) : Promise.resolve(c).then(a, r);
511
523
  }
512
- function dt(o) {
524
+ function ct(o) {
513
525
  return function() {
514
526
  var e = this, t = arguments;
515
527
  return new Promise(function(a, r) {
516
528
  var i = o.apply(e, t);
517
529
  function n(c) {
518
- ye(i, a, r, n, s, "next", c);
530
+ pe(i, a, r, n, s, "next", c);
519
531
  }
520
532
  function s(c) {
521
- ye(i, a, r, n, s, "throw", c);
533
+ pe(i, a, r, n, s, "throw", c);
522
534
  }
523
535
  n(void 0);
524
536
  });
525
537
  };
526
538
  }
527
- const Y = {
539
+ const H = {
528
540
  style: {
529
541
  position: "absolute",
530
542
  display: "none",
@@ -583,18 +595,18 @@ const Y = {
583
595
  }],
584
596
  offsetTop: 50,
585
597
  icons: {
586
- copyPaste: at,
587
- delete: ut,
588
- lock: rt,
589
- unlock: it,
590
- bringToFront: ot,
591
- sendToBack: ct,
592
- bringForward: nt,
593
- sendBackwards: st
598
+ copyPaste: et,
599
+ delete: ot,
600
+ lock: tt,
601
+ unlock: at,
602
+ bringToFront: nt,
603
+ sendToBack: st,
604
+ bringForward: rt,
605
+ sendBackwards: it
594
606
  },
595
607
  handlers: {
596
608
  copyPaste: function() {
597
- var o = dt(function* (t) {
609
+ var o = ct(function* (t) {
598
610
  yield t.clipboardManager.copy(), yield t.clipboardManager.paste();
599
611
  });
600
612
  function e(t) {
@@ -625,7 +637,7 @@ const Y = {
625
637
  }
626
638
  }
627
639
  };
628
- function pe(o, e) {
640
+ function be(o, e) {
629
641
  var t = Object.keys(o);
630
642
  if (Object.getOwnPropertySymbols) {
631
643
  var a = Object.getOwnPropertySymbols(o);
@@ -638,22 +650,22 @@ function pe(o, e) {
638
650
  function j(o) {
639
651
  for (var e = 1; e < arguments.length; e++) {
640
652
  var t = arguments[e] != null ? arguments[e] : {};
641
- e % 2 ? pe(Object(t), !0).forEach(function(a) {
642
- lt(o, a, t[a]);
643
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : pe(Object(t)).forEach(function(a) {
653
+ e % 2 ? be(Object(t), !0).forEach(function(a) {
654
+ ut(o, a, t[a]);
655
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : be(Object(t)).forEach(function(a) {
644
656
  Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
645
657
  });
646
658
  }
647
659
  return o;
648
660
  }
649
- function lt(o, e, t) {
650
- return (e = ht(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
661
+ function ut(o, e, t) {
662
+ return (e = dt(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
651
663
  }
652
- function ht(o) {
653
- var e = gt(o, "string");
664
+ function dt(o) {
665
+ var e = lt(o, "string");
654
666
  return typeof e == "symbol" ? e : e + "";
655
667
  }
656
- function gt(o, e) {
668
+ function lt(o, e) {
657
669
  if (typeof o != "object" || !o) return o;
658
670
  var t = o[Symbol.toPrimitive];
659
671
  if (t !== void 0) {
@@ -663,7 +675,7 @@ function gt(o, e) {
663
675
  }
664
676
  return (e === "string" ? String : Number)(o);
665
677
  }
666
- class vt {
678
+ class ht {
667
679
  /**
668
680
  * @param {object} options
669
681
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -675,11 +687,11 @@ class vt {
675
687
  if (this.options = t.options, !!this.options.showToolbar) {
676
688
  this.editor = t, this.canvas = t.canvas;
677
689
  var a = this.options.toolbar || {};
678
- this.config = j(j(j({}, Y), a), {}, {
679
- style: j(j({}, Y.style), a.style || {}),
680
- btnStyle: j(j({}, Y.btnStyle), a.btnStyle || {}),
681
- icons: j(j({}, Y.icons), a.icons || {}),
682
- handlers: j(j({}, Y.handlers), a.handlers || {})
690
+ this.config = j(j(j({}, H), a), {}, {
691
+ style: j(j({}, H.style), a.style || {}),
692
+ btnStyle: j(j({}, H.btnStyle), a.btnStyle || {}),
693
+ icons: j(j({}, H.icons), a.icons || {}),
694
+ handlers: j(j({}, H.handlers), a.handlers || {})
683
695
  }), this.currentTarget = null, this.currentLocked = null, this.isTransforming = !1, this._onMouseDown = this._handleMouseDown.bind(this), this._onObjectMoving = this._startTransform.bind(this), this._onObjectScaling = this._startTransform.bind(this), this._onObjectRotating = this._startTransform.bind(this), this._onMouseUp = this._endTransform.bind(this), this._onObjectModified = this._endTransform.bind(this), this._onSelectionChange = this._updateToolbar.bind(this), this._onSelectionClear = () => {
684
696
  this.el.style.display = "none";
685
697
  }, this._createDOM(), this._bindEvents();
@@ -800,10 +812,10 @@ class vt {
800
812
  } = e.getCenterPoint(), {
801
813
  top: u,
802
814
  height: l
803
- } = e.getBoundingRect(!1, !0), d = c * i + n, h = d - t.offsetWidth / 2, v = (u + l) * i + s + a.offsetTop;
815
+ } = e.getBoundingRect(!1, !0), d = c * i + n, h = d - t.offsetWidth / 2, g = (u + l) * i + s + a.offsetTop;
804
816
  Object.assign(t.style, {
805
817
  left: "".concat(h, "px"),
806
- top: "".concat(v, "px"),
818
+ top: "".concat(g, "px"),
807
819
  display: "flex"
808
820
  });
809
821
  }
@@ -815,7 +827,7 @@ class vt {
815
827
  this.el.removeEventListener("mouseover", this._onBtnOver), this.el.removeEventListener("mouseout", this._onBtnOut), this.canvas.off("mouse:down", this._onMouseDown), this.canvas.off("object:moving", this._onObjectMoving), this.canvas.off("object:scaling", this._onObjectScaling), this.canvas.off("object:rotating", this._onObjectRotating), this.canvas.off("mouse:up", this._onMouseUp), this.canvas.off("object:modified", this._onObjectModified), this.canvas.off("selection:created", this._onSelectionChange), this.canvas.off("selection:updated", this._onSelectionChange), this.canvas.off("selection:changed", this._onSelectionChange), this.canvas.off("after:render", this._onSelectionChange), this.canvas.off("selection:cleared", this._onSelectionClear), this.el.remove();
816
828
  }
817
829
  }
818
- function be(o, e, t, a, r, i, n) {
830
+ function Ie(o, e, t, a, r, i, n) {
819
831
  try {
820
832
  var s = o[i](n), c = s.value;
821
833
  } catch (u) {
@@ -823,22 +835,22 @@ function be(o, e, t, a, r, i, n) {
823
835
  }
824
836
  s.done ? e(c) : Promise.resolve(c).then(a, r);
825
837
  }
826
- function $(o) {
838
+ function ee(o) {
827
839
  return function() {
828
840
  var e = this, t = arguments;
829
841
  return new Promise(function(a, r) {
830
842
  var i = o.apply(e, t);
831
843
  function n(c) {
832
- be(i, a, r, n, s, "next", c);
844
+ Ie(i, a, r, n, s, "next", c);
833
845
  }
834
846
  function s(c) {
835
- be(i, a, r, n, s, "throw", c);
847
+ Ie(i, a, r, n, s, "throw", c);
836
848
  }
837
849
  n(void 0);
838
850
  });
839
851
  };
840
852
  }
841
- class mt {
853
+ class gt {
842
854
  /**
843
855
  * @param {object} options
844
856
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -854,7 +866,7 @@ class mt {
854
866
  return this._historySuspendCount > 0;
855
867
  }
856
868
  _createDiffPatcher() {
857
- this.diffPatcher = We({
869
+ this.diffPatcher = _e({
858
870
  objectHash(e) {
859
871
  return [e.id, e.format, e.locked, e.left, e.top, e.width, e.height, e.flipX, e.flipY, e.scaleX, e.scaleY, e.angle, e.opacity].join("-");
860
872
  },
@@ -927,7 +939,7 @@ class mt {
927
939
  */
928
940
  loadStateFromFullState(e) {
929
941
  var t = this;
930
- return $(function* () {
942
+ return ee(function* () {
931
943
  if (e) {
932
944
  console.log("loadStateFromFullState fullState", e), yield t.canvas.loadFromJSON(e);
933
945
  var a = t.canvas.getObjects().find((i) => i.id === "montage-area");
@@ -943,7 +955,7 @@ class mt {
943
955
  */
944
956
  undo() {
945
957
  var e = this;
946
- return $(function* () {
958
+ return ee(function* () {
947
959
  if (!e.skipHistory) {
948
960
  if (e.currentIndex <= 0) {
949
961
  console.log("Нет предыдущих состояний для отмены.");
@@ -970,7 +982,7 @@ class mt {
970
982
  */
971
983
  redo() {
972
984
  var e = this;
973
- return $(function* () {
985
+ return ee(function* () {
974
986
  if (!e.skipHistory) {
975
987
  if (e.currentIndex >= e.patches.length) {
976
988
  console.log("Нет состояний для повтора.");
@@ -992,8 +1004,8 @@ class mt {
992
1004
  })();
993
1005
  }
994
1006
  }
995
- const ft = 0.1, Mt = 2, jt = 0.1, yt = 90, T = 16, k = 16, L = 4096, E = 4096;
996
- function Ie(o, e, t, a, r, i, n) {
1007
+ const vt = 0.1, mt = 2, Mt = 0.1, ft = 90, k = 16, x = 16, E = 4096, T = 4096;
1008
+ function Se(o, e, t, a, r, i, n) {
997
1009
  try {
998
1010
  var s = o[i](n), c = s.value;
999
1011
  } catch (u) {
@@ -1007,16 +1019,16 @@ function O(o) {
1007
1019
  return new Promise(function(a, r) {
1008
1020
  var i = o.apply(e, t);
1009
1021
  function n(c) {
1010
- Ie(i, a, r, n, s, "next", c);
1022
+ Se(i, a, r, n, s, "next", c);
1011
1023
  }
1012
1024
  function s(c) {
1013
- Ie(i, a, r, n, s, "throw", c);
1025
+ Se(i, a, r, n, s, "throw", c);
1014
1026
  }
1015
1027
  n(void 0);
1016
1028
  });
1017
1029
  };
1018
1030
  }
1019
- class A {
1031
+ class C {
1020
1032
  /**
1021
1033
  * @param {object} options
1022
1034
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -1054,39 +1066,39 @@ class A {
1054
1066
  transformManager: c,
1055
1067
  historyManager: u,
1056
1068
  errorManager: l
1057
- } = t.editor, d = yield t.getContentType(a), h = A.getFormatFromContentType(d), {
1058
- acceptContentTypes: v,
1069
+ } = t.editor, d = yield t.getContentType(a), h = C.getFormatFromContentType(d), {
1070
+ acceptContentTypes: g,
1059
1071
  acceptFormats: m
1060
1072
  } = t;
1061
1073
  if (!t.isAllowedContentType(d)) {
1062
- var f = "Неверный contentType для изображения: ".concat(d, ". Ожидается один из: ").concat(t.acceptContentTypes.join(", "), ".");
1074
+ var M = "Неверный contentType для изображения: ".concat(d, ". Ожидается один из: ").concat(t.acceptContentTypes.join(", "), ".");
1063
1075
  return l.emitError({
1064
1076
  origin: "ImageManager",
1065
1077
  method: "importImage",
1066
1078
  code: "INVALID_CONTENT_TYPE",
1067
- message: f,
1079
+ message: M,
1068
1080
  data: {
1069
1081
  source: a,
1070
1082
  format: h,
1071
1083
  contentType: d,
1072
- acceptContentTypes: v,
1084
+ acceptContentTypes: g,
1073
1085
  acceptFormats: m
1074
1086
  }
1075
1087
  }), null;
1076
1088
  }
1077
1089
  u.suspendHistory();
1078
1090
  try {
1079
- var M, g;
1091
+ var f, v;
1080
1092
  if (a instanceof File)
1081
- M = URL.createObjectURL(a);
1093
+ f = URL.createObjectURL(a);
1082
1094
  else if (typeof a == "string") {
1083
1095
  var S = yield fetch(a, {
1084
1096
  mode: "cors"
1085
- }), w = yield S.blob({
1097
+ }), N = yield S.blob({
1086
1098
  type: d,
1087
1099
  quality: 1
1088
1100
  });
1089
- M = URL.createObjectURL(w);
1101
+ f = URL.createObjectURL(N);
1090
1102
  } else
1091
1103
  return l.emitError({
1092
1104
  origin: "ImageManager",
@@ -1097,71 +1109,71 @@ class A {
1097
1109
  source: a,
1098
1110
  format: h,
1099
1111
  contentType: d,
1100
- acceptContentTypes: v,
1112
+ acceptContentTypes: g,
1101
1113
  acceptFormats: m
1102
1114
  }
1103
1115
  }), null;
1104
- if (t._createdBlobUrls.push(M), h === "svg") {
1105
- var D = yield Ze(M);
1106
- g = _.groupSVGElements(D.objects, D.options);
1116
+ if (t._createdBlobUrls.push(f), h === "svg") {
1117
+ var w = yield xe(f);
1118
+ v = R.groupSVGElements(w.objects, w.options);
1107
1119
  } else
1108
- g = yield K.fromURL(M, {
1120
+ v = yield q.fromURL(f, {
1109
1121
  crossOrigin: "anonymous"
1110
1122
  });
1111
1123
  var {
1112
- width: N,
1124
+ width: L,
1113
1125
  height: y
1114
- } = g;
1115
- if (y > E || N > L) {
1116
- var p = yield t.resizeImageToBoundaries(g._element.src, "max"), x = URL.createObjectURL(p);
1117
- t._createdBlobUrls.push(x), g = yield K.fromURL(x, {
1126
+ } = v;
1127
+ if (y > T || L > E) {
1128
+ var p = yield t.resizeImageToBoundaries(v._element.src, "max"), B = URL.createObjectURL(p);
1129
+ t._createdBlobUrls.push(B), v = yield q.fromURL(B, {
1118
1130
  crossOrigin: "anonymous"
1119
1131
  });
1120
- } else if (y < k || N < T) {
1121
- var R = yield t.resizeImageToBoundaries(g._element.src, "min"), B = URL.createObjectURL(R);
1122
- t._createdBlobUrls.push(B), g = yield K.fromURL(B, {
1132
+ } else if (y < x || L < k) {
1133
+ var W = yield t.resizeImageToBoundaries(v._element.src, "min"), Z = URL.createObjectURL(W);
1134
+ t._createdBlobUrls.push(Z), v = yield q.fromURL(Z, {
1123
1135
  crossOrigin: "anonymous"
1124
1136
  });
1125
1137
  }
1126
- if (g.set("id", "".concat(g.type, "-").concat(C())), g.set("format", h), r === "scale-montage")
1138
+ if (v.set("id", "".concat(v.type, "-").concat(D())), v.set("format", h), r === "scale-montage")
1127
1139
  t.editor.canvasManager.scaleMontageAreaToImage({
1128
- object: g,
1140
+ object: v,
1129
1141
  withoutSave: !0
1130
1142
  });
1131
1143
  else {
1132
1144
  var {
1133
- width: W,
1134
- height: Z
1135
- } = s, z = t.calculateScaleFactor({
1136
- imageObject: g,
1145
+ width: F,
1146
+ height: z
1147
+ } = s, U = t.calculateScaleFactor({
1148
+ imageObject: v,
1137
1149
  scaleType: r
1138
1150
  });
1139
- r === "image-contain" && z < 1 ? c.fitObject({
1140
- object: g,
1151
+ r === "image-contain" && U < 1 ? c.fitObject({
1152
+ object: v,
1141
1153
  type: "contain",
1142
1154
  withoutSave: !0
1143
- }) : r === "image-cover" && (N > W || y > Z) && c.fitObject({
1144
- object: g,
1155
+ }) : r === "image-cover" && (L > F || y > z) && c.fitObject({
1156
+ object: v,
1145
1157
  type: "cover",
1146
1158
  withoutSave: !0
1147
1159
  });
1148
1160
  }
1149
- n.add(g), n.centerObject(g), n.setActiveObject(g), n.renderAll(), u.resumeHistory(), i || u.saveState();
1150
- var F = {
1151
- image: g,
1161
+ n.add(v), n.centerObject(v), n.setActiveObject(v), n.renderAll(), u.resumeHistory(), i || u.saveState();
1162
+ var V = {
1163
+ image: v,
1152
1164
  format: h,
1153
1165
  contentType: d,
1154
1166
  scale: r,
1155
1167
  withoutSave: i,
1156
1168
  source: a
1157
1169
  };
1158
- return n.fire("editor:image-imported", F), F;
1159
- } catch (U) {
1170
+ return n.fire("editor:image-imported", V), V;
1171
+ } catch (Y) {
1160
1172
  return l.emitError({
1161
1173
  origin: "ImageManager",
1162
1174
  method: "importImage",
1163
1175
  code: "IMPORT_FAILED",
1164
- message: "Ошибка импорта изображения: ".concat(U.message),
1176
+ message: "Ошибка импорта изображения: ".concat(Y.message),
1165
1177
  data: {
1166
1178
  source: a,
1167
1179
  format: h,
@@ -1184,15 +1196,15 @@ class A {
1184
1196
  resizeImageToBoundaries(e) {
1185
1197
  var t = arguments, a = this;
1186
1198
  return O(function* () {
1187
- var r = t.length > 1 && t[1] !== void 0 ? t[1] : "max", i = "Размер изображения больше максимального размера канваса, поэтому оно будет уменьшено до максимальных размеров c сохранением пропорций: ".concat(L, "x").concat(E);
1188
- r === "min" && (i = "Размер изображения меньше минимального размера канваса, поэтому оно будет увеличено до минимальных размеров c сохранением пропорций: ".concat(T, "x").concat(k));
1199
+ var r = t.length > 1 && t[1] !== void 0 ? t[1] : "max", i = "Размер изображения больше максимального размера канваса, поэтому оно будет уменьшено до максимальных размеров c сохранением пропорций: ".concat(E, "x").concat(T);
1200
+ r === "min" && (i = "Размер изображения меньше минимального размера канваса, поэтому оно будет увеличено до минимальных размеров c сохранением пропорций: ".concat(k, "x").concat(x));
1189
1201
  var n = {
1190
1202
  dataURL: e,
1191
1203
  sizeType: r,
1192
- maxWidth: L,
1193
- maxHeight: E,
1194
- minWidth: T,
1195
- minHeight: k
1204
+ maxWidth: E,
1205
+ maxHeight: T,
1206
+ minWidth: k,
1207
+ minHeight: x
1196
1208
  };
1197
1209
  return a.editor.errorManager.emitWarning({
1198
1210
  origin: "ImageManager",
@@ -1228,32 +1240,32 @@ class A {
1228
1240
  workerManager: u
1229
1241
  } = t.editor;
1230
1242
  try {
1231
- var l = r === "application/pdf", d = l ? "image/jpg" : r, h = A.getFormatFromContentType(d);
1243
+ var l = r === "application/pdf", d = l ? "image/jpg" : r, h = C.getFormatFromContentType(d);
1232
1244
  c.setCoords();
1233
1245
  var {
1234
- left: v,
1246
+ left: g,
1235
1247
  top: m,
1236
- width: f,
1237
- height: M
1238
- } = c.getBoundingRect(), g = yield s.clone(["id", "format", "locked"]);
1239
- ["image/jpg", "image/jpeg"].includes(d) && (g.backgroundColor = "#ffffff");
1240
- var S = g.getObjects().find((b) => b.id === c.id);
1241
- S.visible = !1, g.viewportTransform = [1, 0, 0, 1, -v, -m], g.setDimensions({
1242
- width: f,
1243
- height: M
1248
+ width: M,
1249
+ height: f
1250
+ } = c.getBoundingRect(), v = yield s.clone(["id", "format", "locked"]);
1251
+ ["image/jpg", "image/jpeg"].includes(d) && (v.backgroundColor = "#ffffff");
1252
+ var S = v.getObjects().find((b) => b.id === c.id);
1253
+ S.visible = !1, v.viewportTransform = [1, 0, 0, 1, -g, -m], v.setDimensions({
1254
+ width: M,
1255
+ height: f
1244
1256
  }, {
1245
1257
  backstoreOnly: !0
1246
- }), g.renderAll();
1247
- var w = g.getObjects().filter((b) => b.format).every((b) => b.format === "svg");
1248
- if (h === "svg" && w) {
1249
- var D = g.toSVG();
1250
- g.dispose();
1251
- var N = A._exportSVGStringAsFile(D, {
1258
+ }), v.renderAll();
1259
+ var N = v.getObjects().filter((b) => b.format).every((b) => b.format === "svg");
1260
+ if (h === "svg" && N) {
1261
+ var w = v.toSVG();
1262
+ v.dispose();
1263
+ var L = C._exportSVGStringAsFile(w, {
1252
1264
  exportAsBase64: i,
1253
1265
  exportAsBlob: n,
1254
1266
  fileName: a
1255
1267
  }), y = {
1256
- image: N,
1268
+ image: L,
1257
1269
  format: "svg",
1258
1270
  contentType: "image/svg+xml",
1259
1271
  fileName: a.replace(/\.[^/.]+$/, ".svg")
@@ -1261,38 +1273,38 @@ class A {
1261
1273
  return s.fire("editor:canvas-exported", y), y;
1262
1274
  }
1263
1275
  var p = yield new Promise((b) => {
1264
- g.getElement().toBlob(b);
1276
+ v.getElement().toBlob(b);
1265
1277
  });
1266
- if (g.dispose(), n) {
1267
- var x = {
1278
+ if (v.dispose(), n) {
1279
+ var B = {
1268
1280
  image: p,
1269
1281
  format: h,
1270
1282
  contentType: d,
1271
1283
  fileName: a
1272
1284
  };
1273
- return s.fire("editor:canvas-exported", x), x;
1285
+ return s.fire("editor:canvas-exported", B), B;
1274
1286
  }
1275
- var R = yield createImageBitmap(p), B = yield u.post("toDataURL", {
1287
+ var W = yield createImageBitmap(p), Z = yield u.post("toDataURL", {
1276
1288
  format: h,
1277
1289
  quality: 1,
1278
- bitmap: R
1279
- }, [R]);
1290
+ bitmap: W
1291
+ }, [W]);
1280
1292
  if (l) {
1281
- var W = 0.264583, Z = f * W, z = M * W, F = (yield t.editor.moduleLoader.loadModule("jspdf")).jsPDF, U = new F({
1282
- orientation: Z > z ? "landscape" : "portrait",
1293
+ var F = 0.264583, z = M * F, U = f * F, V = (yield t.editor.moduleLoader.loadModule("jspdf")).jsPDF, Y = new V({
1294
+ orientation: z > U ? "landscape" : "portrait",
1283
1295
  unit: "mm",
1284
- format: [Z, z]
1296
+ format: [z, U]
1285
1297
  });
1286
- if (U.addImage(B, "JPG", 0, 0, Z, z), i) {
1287
- var De = U.output("datauristring"), de = {
1288
- image: De,
1298
+ if (Y.addImage(Z, "JPG", 0, 0, z, U), i) {
1299
+ var Ne = Y.output("datauristring"), de = {
1300
+ image: Ne,
1289
1301
  format: "pdf",
1290
1302
  contentType: "application/pdf",
1291
1303
  fileName: a
1292
1304
  };
1293
1305
  return s.fire("editor:canvas-exported", de), de;
1294
1306
  }
1295
- var Ne = U.output("blob"), Le = new File([Ne], a, {
1307
+ var we = Y.output("blob"), Le = new File([we], a, {
1296
1308
  type: "application/pdf"
1297
1309
  }), le = {
1298
1310
  image: Le,
@@ -1304,14 +1316,14 @@ class A {
1304
1316
  }
1305
1317
  if (i) {
1306
1318
  var he = {
1307
- image: B,
1319
+ image: Z,
1308
1320
  format: h,
1309
1321
  contentType: d,
1310
1322
  fileName: a
1311
1323
  };
1312
1324
  return s.fire("editor:canvas-exported", he), he;
1313
1325
  }
1314
- var ge = h === "svg" && !w ? a.replace(/\.[^/.]+$/, ".png") : a, Ee = new File([p], ge, {
1326
+ var ge = h === "svg" && !N ? a.replace(/\.[^/.]+$/, ".png") : a, Ee = new File([p], ge, {
1315
1327
  type: d
1316
1328
  }), ve = {
1317
1329
  image: Ee,
@@ -1374,14 +1386,14 @@ class A {
1374
1386
  }
1375
1387
  }), "";
1376
1388
  try {
1377
- var d = A.getFormatFromContentType(i);
1389
+ var d = C.getFormatFromContentType(i);
1378
1390
  if (d === "svg") {
1379
- var h = l.toSVG(), v = t._exportSVGStringAsFile(h, {
1391
+ var h = l.toSVG(), g = t._exportSVGStringAsFile(h, {
1380
1392
  exportAsBase64: n,
1381
1393
  exportAsBlob: s,
1382
1394
  fileName: r
1383
1395
  }), m = {
1384
- image: v,
1396
+ image: g,
1385
1397
  format: d,
1386
1398
  contentType: "image/svg+xml",
1387
1399
  fileName: r.replace(/\.[^/.]+$/, ".svg")
@@ -1389,34 +1401,34 @@ class A {
1389
1401
  return c.fire("editor:object-exported", m), m;
1390
1402
  }
1391
1403
  if (n) {
1392
- var f = yield createImageBitmap(l._element), M = yield u.post("toDataURL", {
1404
+ var M = yield createImageBitmap(l._element), f = yield u.post("toDataURL", {
1393
1405
  format: d,
1394
1406
  quality: 1,
1395
- bitmap: f
1396
- }, [f]), g = {
1397
- image: M,
1407
+ bitmap: M
1408
+ }, [M]), v = {
1409
+ image: f,
1398
1410
  format: d,
1399
1411
  contentType: i,
1400
1412
  fileName: r
1401
1413
  };
1402
- return c.fire("editor:object-exported", g), g;
1414
+ return c.fire("editor:object-exported", v), v;
1403
1415
  }
1404
- var S = l.toCanvasElement(), w = yield new Promise((p) => {
1416
+ var S = l.toCanvasElement(), N = yield new Promise((p) => {
1405
1417
  S.toBlob(p);
1406
1418
  });
1407
1419
  if (s) {
1408
- var D = {
1409
- image: w,
1420
+ var w = {
1421
+ image: N,
1410
1422
  format: d,
1411
1423
  contentType: i,
1412
1424
  fileName: r
1413
1425
  };
1414
- return c.fire("editor:object-exported", D), D;
1426
+ return c.fire("editor:object-exported", w), w;
1415
1427
  }
1416
- var N = new File([w], r, {
1428
+ var L = new File([N], r, {
1417
1429
  type: i
1418
1430
  }), y = {
1419
- image: N,
1431
+ image: L,
1420
1432
  format: d,
1421
1433
  contentType: i,
1422
1434
  fileName: r
@@ -1473,7 +1485,7 @@ class A {
1473
1485
  * @returns {string[]} - массив допустимых форматов изображений
1474
1486
  */
1475
1487
  getAllowedFormatsFromContentTypes() {
1476
- return this.acceptContentTypes.map((e) => A.getFormatFromContentType(e)).filter((e) => e);
1488
+ return this.acceptContentTypes.map((e) => C.getFormatFromContentType(e)).filter((e) => e);
1477
1489
  }
1478
1490
  /**
1479
1491
  * Извлекает чистый формат (subtype) из contentType,
@@ -1542,7 +1554,7 @@ class A {
1542
1554
  try {
1543
1555
  var t, a = new URL(e), r = (t = a.pathname.split(".").pop()) === null || t === void 0 ? void 0 : t.toLowerCase(), i = {};
1544
1556
  return this.acceptContentTypes.forEach((n) => {
1545
- var s = A.getFormatFromContentType(n);
1557
+ var s = C.getFormatFromContentType(n);
1546
1558
  s && (i[s] = n);
1547
1559
  }), i[r] || "application/octet-stream";
1548
1560
  } catch (n) {
@@ -1570,7 +1582,7 @@ class A {
1570
1582
  return a === "contain" || a === "image-contain" ? Math.min(i / s, n / c) : a === "cover" || a === "image-cover" ? Math.max(i / s, n / c) : 1;
1571
1583
  }
1572
1584
  }
1573
- class pt {
1585
+ class jt {
1574
1586
  /**
1575
1587
  * @param {object} options
1576
1588
  * @param {ImageEditor} options.editor – экземпляр редактора
@@ -1606,7 +1618,7 @@ class pt {
1606
1618
  } = this.editor, {
1607
1619
  width: c,
1608
1620
  height: u
1609
- } = n, l = Number(Math.max(Math.min(e, L), T));
1621
+ } = n, l = Number(Math.max(Math.min(e, E), k));
1610
1622
  if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreWidth(s) : this.setCanvasBackstoreWidth(l), n.set({
1611
1623
  width: l
1612
1624
  }), i.clipPath.set({
@@ -1617,10 +1629,10 @@ class pt {
1617
1629
  return;
1618
1630
  }
1619
1631
  var {
1620
- left: v,
1632
+ left: g,
1621
1633
  top: m
1622
- } = this.getObjectDefaultCoords(n), f = i.getZoom();
1623
- i.setViewportTransform([f, 0, 0, f, v, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-width-changed", {
1634
+ } = this.getObjectDefaultCoords(n), M = i.getZoom();
1635
+ i.setViewportTransform([M, 0, 0, M, g, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-width-changed", {
1624
1636
  width: e
1625
1637
  });
1626
1638
  }
@@ -1650,7 +1662,7 @@ class pt {
1650
1662
  } = this.editor, {
1651
1663
  width: c,
1652
1664
  height: u
1653
- } = n, l = Number(Math.max(Math.min(e, E), k));
1665
+ } = n, l = Number(Math.max(Math.min(e, T), x));
1654
1666
  if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreHeight(s) : this.setCanvasBackstoreHeight(l), n.set({
1655
1667
  height: l
1656
1668
  }), i.clipPath.set({
@@ -1661,10 +1673,10 @@ class pt {
1661
1673
  return;
1662
1674
  }
1663
1675
  var {
1664
- left: v,
1676
+ left: g,
1665
1677
  top: m
1666
- } = this.getObjectDefaultCoords(n), f = i.getZoom();
1667
- i.setViewportTransform([f, 0, 0, f, v, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-height-changed", {
1678
+ } = this.getObjectDefaultCoords(n), M = i.getZoom();
1679
+ i.setViewportTransform([M, 0, 0, M, g, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-height-changed", {
1668
1680
  height: e
1669
1681
  });
1670
1682
  }
@@ -1677,7 +1689,7 @@ class pt {
1677
1689
  var {
1678
1690
  canvas: e,
1679
1691
  montageArea: t
1680
- } = this.editor, a = e.getWidth(), r = e.getHeight(), i = e.getZoom(), n = new ze(a / 2, r / 2);
1692
+ } = this.editor, a = e.getWidth(), r = e.getHeight(), i = e.getZoom(), n = new Be(a / 2, r / 2);
1681
1693
  t.set({
1682
1694
  left: a / 2,
1683
1695
  top: r / 2
@@ -1712,7 +1724,7 @@ class pt {
1712
1724
  }
1713
1725
  setCanvasBackstoreWidth(e) {
1714
1726
  if (!(!e || typeof e != "number")) {
1715
- var t = Math.max(Math.min(e, L), T);
1727
+ var t = Math.max(Math.min(e, E), k);
1716
1728
  this.editor.canvas.setDimensions({
1717
1729
  width: t
1718
1730
  }, {
@@ -1722,7 +1734,7 @@ class pt {
1722
1734
  }
1723
1735
  setCanvasBackstoreHeight(e) {
1724
1736
  if (!(!e || typeof e != "number")) {
1725
- var t = Math.max(Math.min(e, E), k);
1737
+ var t = Math.max(Math.min(e, T), x);
1726
1738
  this.editor.canvas.setDimensions({
1727
1739
  height: t
1728
1740
  }, {
@@ -1733,7 +1745,7 @@ class pt {
1733
1745
  adaptCanvasToContainer() {
1734
1746
  var {
1735
1747
  canvas: e
1736
- } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, i = Math.max(Math.min(a, L), T), n = Math.max(Math.min(r, E), k);
1748
+ } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, i = Math.max(Math.min(a, E), k), n = Math.max(Math.min(r, T), x);
1737
1749
  console.log("adaptCanvasToContainer newWidth", i), console.log("adaptCanvasToContainer newHeight", n), e.setDimensions({
1738
1750
  width: i,
1739
1751
  height: n
@@ -1916,23 +1928,23 @@ class pt {
1916
1928
  var {
1917
1929
  width: l,
1918
1930
  height: d
1919
- } = u, h = Math.min(l, L), v = Math.min(d, E);
1931
+ } = u, h = Math.min(l, E), g = Math.min(d, T);
1920
1932
  if (t) {
1921
1933
  var {
1922
1934
  width: m,
1923
- height: f
1924
- } = i, M = l / m, g = d / f, S = Math.max(M, g);
1925
- h = m * S, v = f * S;
1935
+ height: M
1936
+ } = i, f = l / m, v = d / M, S = Math.max(f, v);
1937
+ h = m * S, g = M * S;
1926
1938
  }
1927
1939
  this.setResolutionWidth(h, {
1928
1940
  withoutSave: !0
1929
- }), this.setResolutionHeight(v, {
1941
+ }), this.setResolutionHeight(g, {
1930
1942
  withoutSave: !0
1931
1943
  }), (l > s || d > c) && n.calculateAndApplyDefaultZoom(s, c), n.resetObject(u, {
1932
1944
  withoutSave: !0
1933
1945
  }), r.centerObject(u), r.renderAll(), a || this.editor.historyManager.saveState(), r.fire("editor:canvas-scaled", {
1934
1946
  width: h,
1935
- height: v
1947
+ height: g
1936
1948
  });
1937
1949
  }
1938
1950
  }
@@ -1987,7 +1999,7 @@ class pt {
1987
1999
  return r.filter((i) => i.id !== t.id && i.id !== a.id);
1988
2000
  }
1989
2001
  }
1990
- class bt {
2002
+ class yt {
1991
2003
  /**
1992
2004
  * @param {object} options
1993
2005
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2026,7 +2038,7 @@ class bt {
2026
2038
  * Если передавать координаты курсора, то нужно быть аккуратнее, так как юзер может выйти за пределы рабочей области
2027
2039
  */
2028
2040
  zoom() {
2029
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : jt, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2041
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Mt, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2030
2042
  if (e) {
2031
2043
  var {
2032
2044
  canvas: a,
@@ -2098,7 +2110,7 @@ class bt {
2098
2110
  * @fires editor:object-rotated
2099
2111
  */
2100
2112
  rotate() {
2101
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : yt, {
2113
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ft, {
2102
2114
  withoutSave: t
2103
2115
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2104
2116
  canvas: a,
@@ -2185,13 +2197,13 @@ class bt {
2185
2197
  if (["activeselection"].includes(c.type) && !r) {
2186
2198
  var u = c.getObjects();
2187
2199
  i.discardActiveObject(), u.forEach((h) => {
2188
- var v = n.calculateScaleFactor({
2200
+ var g = n.calculateScaleFactor({
2189
2201
  imageObject: h,
2190
2202
  scaleType: t
2191
2203
  });
2192
- h.scale(v), i.centerObject(h);
2204
+ h.scale(g), i.centerObject(h);
2193
2205
  });
2194
- var l = new H(u, {
2206
+ var l = new _(u, {
2195
2207
  canvas: i
2196
2208
  });
2197
2209
  i.setActiveObject(l);
@@ -2253,12 +2265,12 @@ class bt {
2253
2265
  height: d
2254
2266
  } = i, {
2255
2267
  width: h,
2256
- height: v
2268
+ height: g
2257
2269
  } = u, m = n.calculateScaleFactor({
2258
2270
  imageObject: u,
2259
2271
  scaleType: c
2260
2272
  });
2261
- c === "contain" && m < 1 || c === "cover" && (h > l || v > d) ? this.fitObject({
2273
+ c === "contain" && m < 1 || c === "cover" && (h > l || g > d) ? this.fitObject({
2262
2274
  object: u,
2263
2275
  withoutSave: !0
2264
2276
  }) : u.set({
@@ -2274,7 +2286,7 @@ class bt {
2274
2286
  }
2275
2287
  }
2276
2288
  }
2277
- class It {
2289
+ class pt {
2278
2290
  /**
2279
2291
  * @param {object} options
2280
2292
  * @param {ImageEditor} options.editor – экземпляр редактора
@@ -2374,7 +2386,7 @@ class It {
2374
2386
  }
2375
2387
  }
2376
2388
  }
2377
- class G {
2389
+ class J {
2378
2390
  /**
2379
2391
  * @param {object} options
2380
2392
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2421,7 +2433,7 @@ class G {
2421
2433
  } = this.editor;
2422
2434
  r.suspendHistory();
2423
2435
  var i = e || a.getActiveObject();
2424
- i && (i.type === "activeselection" ? G._moveSelectionForward(a, i) : a.bringObjectForward(i), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-forward"));
2436
+ i && (i.type === "activeselection" ? J._moveSelectionForward(a, i) : a.bringObjectForward(i), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-forward"));
2425
2437
  }
2426
2438
  /**
2427
2439
  * Отправить объект на задний план по оси Z
@@ -2471,7 +2483,7 @@ class G {
2471
2483
  } = this.editor;
2472
2484
  i.suspendHistory();
2473
2485
  var s = e || a.getActiveObject();
2474
- s && (s.type === "activeselection" ? G._moveSelectionBackwards(a, s) : a.sendObjectBackwards(s), a.sendObjectToBack(r), a.sendObjectToBack(n), a.renderAll(), i.resumeHistory(), t || i.saveState(), a.fire("editor:object-send-backwards"));
2486
+ s && (s.type === "activeselection" ? J._moveSelectionBackwards(a, s) : a.sendObjectBackwards(s), a.sendObjectToBack(r), a.sendObjectToBack(n), a.renderAll(), i.resumeHistory(), t || i.saveState(), a.fire("editor:object-send-backwards"));
2475
2487
  }
2476
2488
  /**
2477
2489
  * Сдвигает выделенные объекты на один уровень вверх относительно ближайшего верхнего объекта
@@ -2483,7 +2495,7 @@ class G {
2483
2495
  static _moveSelectionForward(e, t) {
2484
2496
  for (var a = e.getObjects(), r = t.getObjects(), i = r.map((l) => a.indexOf(l)), n = -1, s = function(d) {
2485
2497
  var h = a[d];
2486
- if (!r.includes(h) && i.some((v) => d > v))
2498
+ if (!r.includes(h) && i.some((g) => d > g))
2487
2499
  return n = d, 1;
2488
2500
  }, c = 0; c < a.length && !s(c); c += 1)
2489
2501
  ;
@@ -2510,115 +2522,60 @@ class G {
2510
2522
  e.moveObjectTo(r[n], i - 1);
2511
2523
  }
2512
2524
  }
2513
- var St = ["id", "left", "top", "width", "height", "fill"], At = ["id", "left", "top", "radius", "fill"], Ct = ["id", "left", "top", "width", "height", "fill"];
2514
- function Se(o, e) {
2515
- var t = Object.keys(o);
2516
- if (Object.getOwnPropertySymbols) {
2517
- var a = Object.getOwnPropertySymbols(o);
2518
- e && (a = a.filter(function(r) {
2519
- return Object.getOwnPropertyDescriptor(o, r).enumerable;
2520
- })), t.push.apply(t, a);
2521
- }
2522
- return t;
2523
- }
2524
- function q(o) {
2525
- for (var e = 1; e < arguments.length; e++) {
2526
- var t = arguments[e] != null ? arguments[e] : {};
2527
- e % 2 ? Se(Object(t), !0).forEach(function(a) {
2528
- wt(o, a, t[a]);
2529
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : Se(Object(t)).forEach(function(a) {
2530
- Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
2531
- });
2532
- }
2533
- return o;
2534
- }
2535
- function wt(o, e, t) {
2536
- return (e = Dt(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
2537
- }
2538
- function Dt(o) {
2539
- var e = Nt(o, "string");
2540
- return typeof e == "symbol" ? e : e + "";
2541
- }
2542
- function Nt(o, e) {
2543
- if (typeof o != "object" || !o) return o;
2544
- var t = o[Symbol.toPrimitive];
2545
- if (t !== void 0) {
2546
- var a = t.call(o, e);
2547
- if (typeof a != "object") return a;
2548
- throw new TypeError("@@toPrimitive must return a primitive value.");
2549
- }
2550
- return (e === "string" ? String : Number)(o);
2551
- }
2552
- function ee(o, e) {
2553
- if (o == null) return {};
2554
- var t, a, r = Lt(o, e);
2555
- if (Object.getOwnPropertySymbols) {
2556
- var i = Object.getOwnPropertySymbols(o);
2557
- for (a = 0; a < i.length; a++) t = i[a], e.indexOf(t) === -1 && {}.propertyIsEnumerable.call(o, t) && (r[t] = o[t]);
2558
- }
2559
- return r;
2560
- }
2561
- function Lt(o, e) {
2562
- if (o == null) return {};
2563
- var t = {};
2564
- for (var a in o) if ({}.hasOwnProperty.call(o, a)) {
2565
- if (e.indexOf(a) !== -1) continue;
2566
- t[a] = o[a];
2567
- }
2568
- return t;
2569
- }
2570
- class Et {
2525
+ class bt {
2571
2526
  /**
2572
- * @param {object} options
2573
- * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
2527
+ * Менеджер фигур для редактора.
2528
+ * @param {Object} options - Опции и настройки менеджера фигур.
2529
+ * @param {ImageEditor} options.editor - Ссылка на экземпляр редактора.
2574
2530
  */
2575
- constructor(e) {
2576
- var {
2577
- editor: t
2578
- } = e;
2579
- this.editor = t;
2531
+ constructor({ editor: e }) {
2532
+ this.editor = e;
2580
2533
  }
2581
2534
  /**
2582
2535
  * Добавление прямоугольника
2583
2536
  * @param {Object} shapeOptions
2537
+ * @param {String} shapeOptions.id - Уникальный идентификатор фигуры
2584
2538
  * @param {Number} shapeOptions.left - Координата X
2585
2539
  * @param {Number} shapeOptions.top - Координата Y
2586
2540
  * @param {Number} shapeOptions.width - Ширина
2587
2541
  * @param {Number} shapeOptions.height - Высота
2588
2542
  * @param {String} shapeOptions.fill - Цвет заливки
2589
- * @param {String} shapeOptions.originX - Ориентация по X
2590
- * @param {String} shapeOptions.originY - Ориентация по Y
2591
2543
  * @param {Rect} shapeOptions.rest - Остальные параметры
2592
2544
  *
2545
+ * @param {Object} flags - Флаги для управления поведением
2593
2546
  * @param {Object} flags.withoutSelection - Не выделять объект
2594
2547
  * @param {Object} flags.withoutAdding - Не добавлять объект в canvas
2595
2548
  */
2596
- addRectangle() {
2597
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2598
- id: t = "rect-".concat(C()),
2599
- left: a,
2600
- top: r,
2601
- width: i = 100,
2602
- height: n = 100,
2603
- fill: s = "blue"
2604
- } = e, c = ee(e, St), {
2605
- withoutSelection: u,
2606
- withoutAdding: l
2607
- } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2608
- canvas: d
2609
- } = this.editor, h = new Ue(q({
2610
- id: t,
2611
- left: a,
2612
- top: r,
2613
- width: i,
2614
- height: n,
2615
- fill: s
2616
- }, c));
2617
- return !a && !r && d.centerObject(h), l || (d.add(h), u || d.setActiveObject(h), d.renderAll()), h;
2549
+ addRectangle(l = {}, { withoutSelection: c, withoutAdding: u } = {}) {
2550
+ var d = l, {
2551
+ id: e = `rect-${D()}`,
2552
+ left: t,
2553
+ top: a,
2554
+ width: r = 100,
2555
+ height: i = 100,
2556
+ fill: n = "blue"
2557
+ } = d, s = X(d, [
2558
+ "id",
2559
+ "left",
2560
+ "top",
2561
+ "width",
2562
+ "height",
2563
+ "fill"
2564
+ ]);
2565
+ const { canvas: h } = this.editor, g = new Ze(A({
2566
+ id: e,
2567
+ left: t,
2568
+ top: a,
2569
+ width: r,
2570
+ height: i,
2571
+ fill: n
2572
+ }, s));
2573
+ return !t && !a && h.centerObject(g), u || (h.add(g), c || h.setActiveObject(g), h.renderAll()), g;
2618
2574
  }
2619
2575
  /**
2620
2576
  * Добавление круга
2621
2577
  * @param {Object} shapeOptions
2578
+ * @param {String} shapeOptions.id - Уникальный идентификатор фигуры
2622
2579
  * @param {Number} shapeOptions.left - Координата X
2623
2580
  * @param {Number} shapeOptions.top - Координата Y
2624
2581
  * @param {Number} shapeOptions.radius - Радиус
@@ -2627,33 +2584,37 @@ class Et {
2627
2584
  * @param {String} shapeOptions.originY - Ориентация по Y
2628
2585
  * @param {Circle} shapeOptions.rest - Остальные параметры
2629
2586
  *
2587
+ * @param {Object} flags - Флаги для управления поведением
2630
2588
  * @param {Object} flags.withoutSelection - Не выделять объект
2631
2589
  * @param {Object} flags.withoutAdding - Не добавлять объект в canvas
2632
2590
  */
2633
- addCircle() {
2634
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2635
- id: t = "circle-".concat(C()),
2636
- left: a,
2637
- top: r,
2638
- radius: i = 50,
2639
- fill: n = "green"
2640
- } = e, s = ee(e, At), {
2641
- withoutSelection: c,
2642
- withoutAdding: u
2643
- } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2644
- canvas: l
2645
- } = this.editor, d = new Ye(q({
2646
- id: t,
2647
- left: a,
2648
- top: r,
2649
- fill: n,
2650
- radius: i
2651
- }, s));
2652
- return !a && !r && l.centerObject(d), u || (l.add(d), c || l.setActiveObject(d), l.renderAll()), d;
2591
+ addCircle(u = {}, { withoutSelection: s, withoutAdding: c } = {}) {
2592
+ var l = u, {
2593
+ id: e = `circle-${D()}`,
2594
+ left: t,
2595
+ top: a,
2596
+ radius: r = 50,
2597
+ fill: i = "green"
2598
+ } = l, n = X(l, [
2599
+ "id",
2600
+ "left",
2601
+ "top",
2602
+ "radius",
2603
+ "fill"
2604
+ ]);
2605
+ const { canvas: d } = this.editor, h = new ze(A({
2606
+ id: e,
2607
+ left: t,
2608
+ top: a,
2609
+ fill: i,
2610
+ radius: r
2611
+ }, n));
2612
+ return !t && !a && d.centerObject(h), c || (d.add(h), s || d.setActiveObject(h), d.renderAll()), h;
2653
2613
  }
2654
2614
  /**
2655
2615
  * Добавление треугольника
2656
2616
  * @param {Object} shapeOptions
2617
+ * @param {String} shapeOptions.id - Уникальный идентификатор фигуры
2657
2618
  * @param {Number} shapeOptions.left - Координата X
2658
2619
  * @param {Number} shapeOptions.top - Координата Y
2659
2620
  * @param {Number} shapeOptions.width - Ширина
@@ -2663,31 +2624,35 @@ class Et {
2663
2624
  * @param {String} shapeOptions.fill - Цвет заливки
2664
2625
  * @param {Triangle} shapeOptions.rest - Остальные параметры
2665
2626
  *
2627
+ * @param {Object} flags - Флаги для управления поведением
2666
2628
  * @param {Object} flags.withoutSelection - Не выделять объект
2667
2629
  * @param {Object} flags.withoutAdding - Не добавлять объект в canvas
2668
2630
  */
2669
- addTriangle() {
2670
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2671
- id: t = "triangle-".concat(C()),
2672
- left: a,
2673
- top: r,
2674
- width: i = 100,
2675
- height: n = 100,
2676
- fill: s = "yellow"
2677
- } = e, c = ee(e, Ct), {
2678
- withoutSelection: u,
2679
- withoutAdding: l
2680
- } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2681
- canvas: d
2682
- } = this.editor, h = new Pe(q({
2683
- id: t,
2684
- left: a,
2685
- top: r,
2686
- fill: s,
2687
- width: i,
2688
- height: n
2689
- }, c));
2690
- return !a && !r && d.centerObject(h), l || (d.add(h), u || d.setActiveObject(h), d.renderAll()), h;
2631
+ addTriangle(l = {}, { withoutSelection: c, withoutAdding: u } = {}) {
2632
+ var d = l, {
2633
+ id: e = `triangle-${D()}`,
2634
+ left: t,
2635
+ top: a,
2636
+ width: r = 100,
2637
+ height: i = 100,
2638
+ fill: n = "yellow"
2639
+ } = d, s = X(d, [
2640
+ "id",
2641
+ "left",
2642
+ "top",
2643
+ "width",
2644
+ "height",
2645
+ "fill"
2646
+ ]);
2647
+ const { canvas: h } = this.editor, g = new Ue(A({
2648
+ id: e,
2649
+ left: t,
2650
+ top: a,
2651
+ fill: n,
2652
+ width: r,
2653
+ height: i
2654
+ }, s));
2655
+ return !t && !a && h.centerObject(g), u || (h.add(g), c || h.setActiveObject(g), h.renderAll()), g;
2691
2656
  }
2692
2657
  }
2693
2658
  function Ae(o, e, t, a, r, i, n) {
@@ -2713,7 +2678,7 @@ function Ce(o) {
2713
2678
  });
2714
2679
  };
2715
2680
  }
2716
- class Ot {
2681
+ class It {
2717
2682
  /**
2718
2683
  * @param {object} options
2719
2684
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2781,11 +2746,11 @@ class Ot {
2781
2746
  if (e.clipboard) {
2782
2747
  var a = yield e.clipboard.clone(["format"]);
2783
2748
  t.discardActiveObject(), a.set({
2784
- id: "".concat(a.type, "-").concat(C()),
2749
+ id: "".concat(a.type, "-").concat(D()),
2785
2750
  left: a.left + 10,
2786
2751
  top: a.top + 10,
2787
2752
  evented: !0
2788
- }), a instanceof H ? (a.canvas = t, a.forEachObject((r) => {
2753
+ }), a instanceof _ ? (a.canvas = t, a.forEachObject((r) => {
2789
2754
  t.add(r);
2790
2755
  })) : t.add(a), t.setActiveObject(a), t.requestRenderAll(), t.fire("editor:object-pasted", {
2791
2756
  object: a
@@ -2794,7 +2759,7 @@ class Ot {
2794
2759
  })();
2795
2760
  }
2796
2761
  }
2797
- class Tt {
2762
+ class St {
2798
2763
  /**
2799
2764
  * @param {object} options
2800
2765
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2877,7 +2842,7 @@ class Tt {
2877
2842
  }
2878
2843
  }
2879
2844
  }
2880
- class kt {
2845
+ class At {
2881
2846
  /**
2882
2847
  * @param {object} options
2883
2848
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2906,8 +2871,8 @@ class kt {
2906
2871
  r.suspendHistory();
2907
2872
  var i = e || a.getActiveObject();
2908
2873
  if (i && i.type === "activeselection") {
2909
- var n = i.getObjects(), s = new He(n);
2910
- n.forEach((c) => a.remove(c)), s.set("id", "".concat(s.type, "-").concat(C())), a.add(s), a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-grouped");
2874
+ var n = i.getObjects(), s = new Ye(n);
2875
+ n.forEach((c) => a.remove(c)), s.set("id", "".concat(s.type, "-").concat(D())), a.add(s), a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-grouped");
2911
2876
  }
2912
2877
  }
2913
2878
  /**
@@ -2930,14 +2895,14 @@ class kt {
2930
2895
  if (!(!i || i.type !== "group")) {
2931
2896
  var n = i.removeAll();
2932
2897
  a.remove(i), n.forEach((c) => a.add(c));
2933
- var s = new H(n, {
2898
+ var s = new _(n, {
2934
2899
  canvas: a
2935
2900
  });
2936
2901
  a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-ungrouped");
2937
2902
  }
2938
2903
  }
2939
2904
  }
2940
- class xt {
2905
+ class Ct {
2941
2906
  /**
2942
2907
  * @param {object} options
2943
2908
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2959,7 +2924,7 @@ class xt {
2959
2924
  objectLockManager: a
2960
2925
  } = this.editor;
2961
2926
  e.discardActiveObject();
2962
- var r = t.getObjects(), i = r.some((s) => s.locked), n = r.length > 1 ? new H(t.getObjects(), {
2927
+ var r = t.getObjects(), i = r.some((s) => s.locked), n = r.length > 1 ? new _(t.getObjects(), {
2963
2928
  canvas: e
2964
2929
  }) : r[0];
2965
2930
  i && a.lockObject({
@@ -2971,7 +2936,7 @@ class xt {
2971
2936
  });
2972
2937
  }
2973
2938
  }
2974
- class Bt {
2939
+ class Dt {
2975
2940
  /**
2976
2941
  * @param {object} options
2977
2942
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -3007,7 +2972,7 @@ class Bt {
3007
2972
  }), a.discardActiveObject(), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-deleted"));
3008
2973
  }
3009
2974
  }
3010
- var Zt = {
2975
+ var Nt = {
3011
2976
  IMAGE_MANAGER: {
3012
2977
  /**
3013
2978
  * Некорректный Content-Type изображения
@@ -3035,87 +3000,75 @@ var Zt = {
3035
3000
  IMAGE_EXPORT_FAILED: "IMAGE_EXPORT_FAILED"
3036
3001
  }
3037
3002
  };
3038
- class X {
3039
- constructor(e) {
3040
- var {
3041
- editor: t
3042
- } = e;
3043
- this.editor = t;
3003
+ class K {
3004
+ constructor({ editor: e }) {
3005
+ this._buffer = [], this.editor = e;
3006
+ }
3007
+ get buffer() {
3008
+ return this._buffer;
3009
+ }
3010
+ cleanBuffer() {
3011
+ this._buffer.length = 0;
3044
3012
  }
3045
3013
  /**
3046
3014
  * Эмитит событие ошибки через fabricjs
3047
3015
  * @param {object} options
3048
- * @param {string} [origin='ImageEditor'] — источник ошибки (по умолчанию 'ImageEditor')
3049
- * @param {string} [method='Unknown Method'] — метод, вызвавший ошибку (по умолчанию 'Unknown Method')
3050
- * @param {string} code — код ошибки (из errorCodes)
3051
- * @param {object} [data] — доп. данные (опционально)
3052
- * @param {string} [message] — текст ошибки (опционально, если не передан, то используется код ошибки)
3016
+ * @param {string} [options.origin='ImageEditor'] — источник ошибки (по умолчанию 'ImageEditor')
3017
+ * @param {string} [options.method='Unknown Method'] — метод, вызвавший ошибку (по умолчанию 'Unknown Method')
3018
+ * @param {string} options.code — код ошибки (из errorCodes)
3019
+ * @param {object} [options.data] — доп. данные (опционально)
3020
+ * @param {string} [options.message] — текст ошибки (опционально, если не передан, то используется код ошибки)
3053
3021
  * @fires editor:error
3054
3022
  */
3055
- emitError(e) {
3056
- var {
3057
- origin: t = "ImageEditor",
3058
- method: a = "Unknown Method",
3059
- code: r,
3060
- data: i,
3061
- message: n
3062
- } = e;
3063
- if (!X.isValidErrorCode(r)) {
3064
- console.warn("Неизвестный код ошибки: ", {
3065
- code: r,
3066
- origin: t,
3067
- method: a
3068
- });
3023
+ emitError({ origin: e = "ImageEditor", method: t = "Unknown Method", code: a, data: r, message: i }) {
3024
+ if (!K.isValidErrorCode(a)) {
3025
+ console.warn("Неизвестный код ошибки: ", { code: a, origin: e, method: t });
3069
3026
  return;
3070
3027
  }
3071
- if (r) {
3072
- var s = n || r;
3073
- console.error("".concat(t, ". ").concat(a, ". ").concat(r, ". ").concat(s), i), this.editor.canvas.fire("editor:error", {
3074
- code: r,
3075
- origin: t,
3076
- method: a,
3077
- message: s,
3078
- data: i
3079
- });
3080
- }
3028
+ if (!a) return;
3029
+ const n = i || a;
3030
+ console.error(`${e}. ${t}. ${a}. ${n}`, r);
3031
+ const s = {
3032
+ code: a,
3033
+ origin: e,
3034
+ method: t,
3035
+ message: n,
3036
+ data: r
3037
+ };
3038
+ this._buffer.push(A({
3039
+ type: "editor:error"
3040
+ }, s)), this.editor.canvas.fire("editor:error", s);
3081
3041
  }
3082
3042
  /**
3083
3043
  * Эмитит предупреждение через fabricjs
3084
3044
  * @param {object} options
3085
- * @param {string} [origin='ImageEditor'] — источник предупреждения (по умолчанию 'ImageEditor')
3086
- * @param {string} [method='Unknown Method'] — метод, вызвавший предупреждение (по умолчанию 'Unknown Method')
3087
- * @param {string} code — код предупреждения (из errorCodes)
3088
- * @param {object} [data] — доп. данные (опционально)
3089
- * @param {string} [message] — текст предупреждения (опционально, если не передан, то используется код предупреждения)
3045
+ * @param {string} [options.origin='ImageEditor'] — источник предупреждения (по умолчанию 'ImageEditor')
3046
+ * @param {string} [options.method='Unknown Method'] — метод, вызвавший предупреждение (по умолчанию 'Unknown Method')
3047
+ * @param {string} options.code — код предупреждения (из errorCodes)
3048
+ * @param {object} [options.data] — доп. данные (опционально)
3049
+ * @param {string} [options.message] — текст предупреждения (опционально, если не передан, то используется код предупреждения)
3090
3050
  * @fires editor:warning
3091
3051
  */
3092
- emitWarning(e) {
3093
- var {
3094
- origin: t = "ImageEditor",
3095
- method: a = "Unknown Method",
3096
- code: r,
3097
- message: i,
3098
- data: n
3099
- } = e;
3100
- if (!X.isValidErrorCode(r)) {
3101
- console.warn("Неизвестный код ошибки: ", {
3102
- code: r,
3103
- origin: t,
3104
- method: a
3105
- });
3052
+ emitWarning({ origin: e = "ImageEditor", method: t = "Unknown Method", code: a, message: r, data: i }) {
3053
+ if (!K.isValidErrorCode(a)) {
3054
+ console.warn("Неизвестный код предупреждения: ", { code: a, origin: e, method: t });
3106
3055
  return;
3107
3056
  }
3108
- var s = i || r;
3109
- console.warn("".concat(t, ". ").concat(a, ". ").concat(r, ". ").concat(s), n), this.editor.canvas.fire("editor:warning", {
3110
- code: r,
3111
- origin: t,
3112
- method: a,
3113
- message: i,
3114
- data: n
3115
- });
3057
+ const n = r || a;
3058
+ console.warn(`${e}. ${t}. ${a}. ${n}`, i);
3059
+ const s = {
3060
+ code: a,
3061
+ origin: e,
3062
+ method: t,
3063
+ message: n,
3064
+ data: i
3065
+ };
3066
+ this._buffer.push(A({
3067
+ type: "editor:warning"
3068
+ }, s)), this.editor.canvas.fire("editor:warning", s);
3116
3069
  }
3117
3070
  static isValidErrorCode(e) {
3118
- return e ? Object.values(Zt).some((t) => Object.values(t).includes(e)) : !1;
3071
+ return e ? Object.values(Nt).some((t) => Object.values(t).includes(e)) : !1;
3119
3072
  }
3120
3073
  }
3121
3074
  class ue {
@@ -3127,10 +3080,10 @@ class ue {
3127
3080
  constructor(e, t) {
3128
3081
  this.options = t;
3129
3082
  const { defaultScale: a, minZoom: r, maxZoom: i } = t;
3130
- this.containerId = e, this.editorId = `${e}-${C()}`, this.clipboard = null, this.defaultZoom = a, this.minZoom = r || ft, this.maxZoom = i || Mt, this.init();
3083
+ this.containerId = e, this.editorId = `${e}-${D()}`, this.clipboard = null, this.defaultZoom = a, this.minZoom = r || vt, this.maxZoom = i || mt, this.init();
3131
3084
  }
3132
3085
  init() {
3133
- return J(this, null, function* () {
3086
+ return $(this, null, function* () {
3134
3087
  const {
3135
3088
  editorContainerWidth: e,
3136
3089
  editorContainerHeight: t,
@@ -3143,13 +3096,13 @@ class ue {
3143
3096
  scaleType: u,
3144
3097
  _onReadyCallback: l
3145
3098
  } = this.options;
3146
- if (tt.apply(), this.canvas = new _e(this.containerId, this.options), this.moduleLoader = new Ve(), this.workerManager = new Ge(), this.errorManager = new X({ editor: this }), this.historyManager = new mt({ editor: this }), this.toolbar = new vt({ editor: this }), this.transformManager = new bt({ editor: this }), this.canvasManager = new pt({ editor: this }), this.imageManager = new A({ editor: this }), this.layerManager = new G({ editor: this }), this.shapeManager = new Et({ editor: this }), this.interactionBlocker = new It({ editor: this }), this.clipboardManager = new Ot({ editor: this }), this.objectLockManager = new Tt({ editor: this }), this.groupingManager = new kt({ editor: this }), this.selectionManager = new xt({ editor: this }), this.deletionManager = new Bt({ editor: this }), this._createMontageArea(), this._createClippingArea(), this.listeners = new P({ editor: this, options: this.options }), this.canvasManager.setEditorContainerWidth(e), this.canvasManager.setEditorContainerHeight(t), this.canvasManager.setCanvasWrapperWidth(a), this.canvasManager.setCanvasWrapperHeight(r), this.canvasManager.setCanvasCSSWidth(i), this.canvasManager.setCanvasCSSHeight(n), s != null && s.source) {
3099
+ if (qe.apply(), this.canvas = new He(this.containerId, this.options), this.moduleLoader = new We(), this.workerManager = new Fe(), this.errorManager = new K({ editor: this }), this.historyManager = new gt({ editor: this }), this.toolbar = new ht({ editor: this }), this.transformManager = new yt({ editor: this }), this.canvasManager = new jt({ editor: this }), this.imageManager = new C({ editor: this }), this.layerManager = new J({ editor: this }), this.shapeManager = new bt({ editor: this }), this.interactionBlocker = new pt({ editor: this }), this.clipboardManager = new It({ editor: this }), this.objectLockManager = new St({ editor: this }), this.groupingManager = new At({ editor: this }), this.selectionManager = new Ct({ editor: this }), this.deletionManager = new Dt({ editor: this }), this._createMontageArea(), this._createClippingArea(), this.listeners = new P({ editor: this, options: this.options }), this.canvasManager.setEditorContainerWidth(e), this.canvasManager.setEditorContainerHeight(t), this.canvasManager.setCanvasWrapperWidth(a), this.canvasManager.setCanvasWrapperHeight(r), this.canvasManager.setCanvasCSSWidth(i), this.canvasManager.setCanvasCSSHeight(n), s != null && s.source) {
3147
3100
  const {
3148
3101
  source: d,
3149
3102
  scale: h = `image-${u}`,
3150
- withoutSave: v = !0
3103
+ withoutSave: g = !0
3151
3104
  } = s;
3152
- yield this.imageManager.importImage({ source: d, scale: h, withoutSave: v });
3105
+ yield this.imageManager.importImage({ source: d, scale: h, withoutSave: g });
3153
3106
  } else
3154
3107
  this.canvasManager.setDefaultScale({ withoutSave: !0 });
3155
3108
  c && this.historyManager.loadStateFromFullState(c), this.historyManager.saveState(), console.log("editor:ready"), this.canvas.fire("editor:ready", this), typeof l == "function" && l(this);
@@ -3197,7 +3150,7 @@ class ue {
3197
3150
  }, { withoutSelection: !0, withoutAdding: !0 });
3198
3151
  }
3199
3152
  destroy() {
3200
- this.listeners.destroy(), this.toolbar.destroy(), this.canvas.dispose(), this.workerManager.worker.terminate(), this.imageManager.revokeBlobUrls();
3153
+ this.listeners.destroy(), this.toolbar.destroy(), this.canvas.dispose(), this.workerManager.worker.terminate(), this.imageManager.revokeBlobUrls(), this.errorManager.cleanBuffer();
3201
3154
  }
3202
3155
  /**
3203
3156
  * Создает паттерн мозаики.
@@ -3207,46 +3160,35 @@ class ue {
3207
3160
  const e = document.createElement("canvas");
3208
3161
  e.width = 20, e.height = 20;
3209
3162
  const t = e.getContext("2d");
3210
- return t.fillStyle = "#ddd", t.fillRect(0, 0, 40, 40), t.fillStyle = "#ccc", t.fillRect(0, 0, 10, 10), t.fillRect(10, 10, 10, 10), new Re({
3163
+ return t.fillStyle = "#ddd", t.fillRect(0, 0, 40, 40), t.fillStyle = "#ccc", t.fillRect(0, 0, 10, 10), t.fillRect(10, 10, 10, 10), new Pe({
3211
3164
  source: e,
3212
3165
  repeat: "repeat"
3213
3166
  });
3214
3167
  }
3215
3168
  }
3216
- const zt = {
3217
- // Cохраняют ли объекты свой текущий порядок (z-index) при выделении
3169
+ const wt = {
3170
+ /**
3171
+ * Опции редактора
3172
+ */
3218
3173
  preserveObjectStacking: !0,
3219
- // Возможность взаимодействия с объектом за пределами монтажной области
3220
3174
  controlsAboveOverlay: !0,
3221
- // Зум по центру
3222
3175
  centeredScaling: !0,
3223
- // Поворот объекта по центру
3224
3176
  centeredRotation: !0,
3225
3177
  /*
3226
- * Кастомные опции
3227
- */
3228
- // Canvas Montage Area width and height
3178
+ * Кастомные опции
3179
+ */
3229
3180
  montageAreaWidth: 512,
3230
3181
  montageAreaHeight: 512,
3231
- // Canvas backstore width and height
3232
3182
  canvasBackstoreWidth: "auto",
3233
3183
  canvasBackstoreHeight: "auto",
3234
- // Canvas (upper & lower) CSS width and height
3235
3184
  canvasCSSWidth: "100%",
3236
3185
  canvasCSSHeight: "100%",
3237
- // Wrapper CSS width and height
3238
3186
  canvasWrapperWidth: "100%",
3239
3187
  canvasWrapperHeight: "100%",
3240
- // Container CSS width and height
3241
3188
  editorContainerWidth: "fit-content",
3242
3189
  editorContainerHeight: "100%",
3243
- // Максимальная длина истории действий
3244
3190
  maxHistoryLength: 50,
3245
- // Дефолтный тип скейлинга для объектов (cotain/cover)
3246
3191
  scaleType: "contain",
3247
- /**
3248
- * Массив допустимых форматов изображений для загрузки в редактор.
3249
- */
3250
3192
  acceptContentTypes: [
3251
3193
  "image/png",
3252
3194
  "image/jpeg",
@@ -3254,11 +3196,7 @@ const zt = {
3254
3196
  "image/svg+xml",
3255
3197
  "image/webp"
3256
3198
  ],
3257
- // Показывать панель инструментов для выделенного объекта
3258
3199
  showToolbar: !0,
3259
- // Настройки панели инструментов выделенного объекта.
3260
- // Можно передать массив с названиями действий или объект с настройками, кастомными иконками и обработчиками
3261
- // ui/toolbar-manager/default-config.js
3262
3200
  toolbar: {
3263
3201
  lockedActions: [{
3264
3202
  name: "Разблокировать",
@@ -3295,51 +3233,30 @@ const zt = {
3295
3233
  }
3296
3234
  ]
3297
3235
  },
3298
- // Можно передать JSON объект в виде строки для инициализации редактора
3299
3236
  initialStateJSON: null,
3300
- /*
3301
- * Объект изображения с которым редактор будет инициализирован. Может содержать:
3302
- * - {String} url - URL изображения (обязательный)
3303
- * - {String} scaleType - Тип скейлинга (image-contain/image-cover/scale-montage)
3304
- * - {Boolean} withoutSave - Не сохранять состояние редактора (по умолчанию false)
3305
- */
3306
3237
  initialImage: null,
3307
- // Дефолтный масштаб
3308
3238
  defaultScale: 1,
3309
- // Минимальный и максимальный зум
3310
3239
  minZoom: 0.1,
3311
3240
  maxZoom: 2,
3312
- // Максимальная кратность зума относительно текущего defaultZoom
3313
3241
  maxZoomFactor: 2,
3314
- // Шаг зума
3315
3242
  zoomRatio: 0.1,
3316
3243
  overlayMaskColor: "rgba(136, 136, 136, 0.6)",
3317
3244
  /*
3318
3245
  * Настройки слушателей событий
3319
3246
  */
3320
- // Адаптировать канвас при изменении размеров контейнера (например, при изменении размеров окна браузера)
3321
3247
  adaptCanvasToContainer: !0,
3322
- // Поднимать объект на передний план по оси Z при выделении
3323
3248
  bringToFrontOnSelection: !1,
3324
- // Зум по колесику мыши
3325
3249
  mouseWheelZooming: !0,
3326
- // Перемещение канваса при зажатой кнопке ALT
3327
3250
  canvasDragging: !0,
3328
- // Копирование объектов (Ctrl + C, Ctrl + V)
3329
3251
  copyObjectsByHotkey: !0,
3330
- // Вставка изображения из буфера обмена
3331
3252
  pasteImageFromClipboard: !0,
3332
- // Отмена/повтор действия по сочетанию клавиш (Ctrl + Z, Ctrl + Y)
3333
3253
  undoRedoByHotKeys: !0,
3334
- // Выделение всех объектов по сочетанию клавиш (Ctrl + A)
3335
3254
  selectAllByHotkey: !0,
3336
- // Удаление объектов по сочетанию клавиш (Delete)
3337
3255
  deleteObjectsByHotkey: !0,
3338
- // Сброс параметров объекта по двойному клику
3339
3256
  resetObjectFitByDoubleClick: !0
3340
3257
  };
3341
- function Ht(o, e = {}) {
3342
- const t = Q(Q({}, zt), e), a = document.getElementById(o);
3258
+ function Ot(o, e = {}) {
3259
+ const t = A(A({}, wt), e), a = document.getElementById(o);
3343
3260
  if (!a)
3344
3261
  return Promise.reject(new Error(`Контейнер с ID "${o}" не найден.`));
3345
3262
  const r = document.createElement("canvas");
@@ -3350,6 +3267,6 @@ function Ht(o, e = {}) {
3350
3267
  });
3351
3268
  }
3352
3269
  export {
3353
- Ht as default
3270
+ Ot as default
3354
3271
  };
3355
3272
  //# sourceMappingURL=main.js.map