@anu3ev/fabric-image-editor 0.1.34 → 0.1.35

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 +326 -400
  2. package/package.json +1 -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, T = (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 R, util as W, 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 Re } from "jsondiffpatch";
39
+ var We = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", C = 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 += We[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(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 _e {
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
  * По-умолчанию использует файл рядом с этим модулем
@@ -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(W.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(W.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(W.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+", Ne = new Image();
423
+ Ne.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(W.degreesToRadians(r.angle)), o.fillStyle = Qe, o.beginPath(), o.arc(0, 0, n, 0, 2 * Math.PI), o.fill(), o.drawImage(Ne, -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,
@@ -497,11 +506,11 @@ class tt {
497
506
  offsetX: r.offsetX,
498
507
  offsetY: r.offsetY
499
508
  });
500
- }), Be.ownDefaults.controls = e;
509
+ }), ke.ownDefaults.controls = e;
501
510
  }
502
511
  }
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) {
512
+ 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==";
513
+ function pe(o, e, t, a, r, i, n) {
505
514
  try {
506
515
  var s = o[i](n), c = s.value;
507
516
  } catch (u) {
@@ -509,22 +518,22 @@ function ye(o, e, t, a, r, i, n) {
509
518
  }
510
519
  s.done ? e(c) : Promise.resolve(c).then(a, r);
511
520
  }
512
- function dt(o) {
521
+ function ct(o) {
513
522
  return function() {
514
523
  var e = this, t = arguments;
515
524
  return new Promise(function(a, r) {
516
525
  var i = o.apply(e, t);
517
526
  function n(c) {
518
- ye(i, a, r, n, s, "next", c);
527
+ pe(i, a, r, n, s, "next", c);
519
528
  }
520
529
  function s(c) {
521
- ye(i, a, r, n, s, "throw", c);
530
+ pe(i, a, r, n, s, "throw", c);
522
531
  }
523
532
  n(void 0);
524
533
  });
525
534
  };
526
535
  }
527
- const Y = {
536
+ const H = {
528
537
  style: {
529
538
  position: "absolute",
530
539
  display: "none",
@@ -583,18 +592,18 @@ const Y = {
583
592
  }],
584
593
  offsetTop: 50,
585
594
  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
595
+ copyPaste: et,
596
+ delete: ot,
597
+ lock: tt,
598
+ unlock: at,
599
+ bringToFront: nt,
600
+ sendToBack: st,
601
+ bringForward: rt,
602
+ sendBackwards: it
594
603
  },
595
604
  handlers: {
596
605
  copyPaste: function() {
597
- var o = dt(function* (t) {
606
+ var o = ct(function* (t) {
598
607
  yield t.clipboardManager.copy(), yield t.clipboardManager.paste();
599
608
  });
600
609
  function e(t) {
@@ -625,7 +634,7 @@ const Y = {
625
634
  }
626
635
  }
627
636
  };
628
- function pe(o, e) {
637
+ function be(o, e) {
629
638
  var t = Object.keys(o);
630
639
  if (Object.getOwnPropertySymbols) {
631
640
  var a = Object.getOwnPropertySymbols(o);
@@ -638,22 +647,22 @@ function pe(o, e) {
638
647
  function j(o) {
639
648
  for (var e = 1; e < arguments.length; e++) {
640
649
  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) {
650
+ e % 2 ? be(Object(t), !0).forEach(function(a) {
651
+ ut(o, a, t[a]);
652
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : be(Object(t)).forEach(function(a) {
644
653
  Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
645
654
  });
646
655
  }
647
656
  return o;
648
657
  }
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;
658
+ function ut(o, e, t) {
659
+ return (e = dt(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
651
660
  }
652
- function ht(o) {
653
- var e = gt(o, "string");
661
+ function dt(o) {
662
+ var e = lt(o, "string");
654
663
  return typeof e == "symbol" ? e : e + "";
655
664
  }
656
- function gt(o, e) {
665
+ function lt(o, e) {
657
666
  if (typeof o != "object" || !o) return o;
658
667
  var t = o[Symbol.toPrimitive];
659
668
  if (t !== void 0) {
@@ -663,7 +672,7 @@ function gt(o, e) {
663
672
  }
664
673
  return (e === "string" ? String : Number)(o);
665
674
  }
666
- class vt {
675
+ class ht {
667
676
  /**
668
677
  * @param {object} options
669
678
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -675,11 +684,11 @@ class vt {
675
684
  if (this.options = t.options, !!this.options.showToolbar) {
676
685
  this.editor = t, this.canvas = t.canvas;
677
686
  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 || {})
687
+ this.config = j(j(j({}, H), a), {}, {
688
+ style: j(j({}, H.style), a.style || {}),
689
+ btnStyle: j(j({}, H.btnStyle), a.btnStyle || {}),
690
+ icons: j(j({}, H.icons), a.icons || {}),
691
+ handlers: j(j({}, H.handlers), a.handlers || {})
683
692
  }), 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
693
  this.el.style.display = "none";
685
694
  }, this._createDOM(), this._bindEvents();
@@ -800,10 +809,10 @@ class vt {
800
809
  } = e.getCenterPoint(), {
801
810
  top: u,
802
811
  height: l
803
- } = e.getBoundingRect(!1, !0), d = c * i + n, h = d - t.offsetWidth / 2, v = (u + l) * i + s + a.offsetTop;
812
+ } = e.getBoundingRect(!1, !0), d = c * i + n, h = d - t.offsetWidth / 2, g = (u + l) * i + s + a.offsetTop;
804
813
  Object.assign(t.style, {
805
814
  left: "".concat(h, "px"),
806
- top: "".concat(v, "px"),
815
+ top: "".concat(g, "px"),
807
816
  display: "flex"
808
817
  });
809
818
  }
@@ -815,7 +824,7 @@ class vt {
815
824
  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
825
  }
817
826
  }
818
- function be(o, e, t, a, r, i, n) {
827
+ function Ie(o, e, t, a, r, i, n) {
819
828
  try {
820
829
  var s = o[i](n), c = s.value;
821
830
  } catch (u) {
@@ -823,22 +832,22 @@ function be(o, e, t, a, r, i, n) {
823
832
  }
824
833
  s.done ? e(c) : Promise.resolve(c).then(a, r);
825
834
  }
826
- function $(o) {
835
+ function ee(o) {
827
836
  return function() {
828
837
  var e = this, t = arguments;
829
838
  return new Promise(function(a, r) {
830
839
  var i = o.apply(e, t);
831
840
  function n(c) {
832
- be(i, a, r, n, s, "next", c);
841
+ Ie(i, a, r, n, s, "next", c);
833
842
  }
834
843
  function s(c) {
835
- be(i, a, r, n, s, "throw", c);
844
+ Ie(i, a, r, n, s, "throw", c);
836
845
  }
837
846
  n(void 0);
838
847
  });
839
848
  };
840
849
  }
841
- class mt {
850
+ class gt {
842
851
  /**
843
852
  * @param {object} options
844
853
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -854,7 +863,7 @@ class mt {
854
863
  return this._historySuspendCount > 0;
855
864
  }
856
865
  _createDiffPatcher() {
857
- this.diffPatcher = We({
866
+ this.diffPatcher = Re({
858
867
  objectHash(e) {
859
868
  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
869
  },
@@ -927,7 +936,7 @@ class mt {
927
936
  */
928
937
  loadStateFromFullState(e) {
929
938
  var t = this;
930
- return $(function* () {
939
+ return ee(function* () {
931
940
  if (e) {
932
941
  console.log("loadStateFromFullState fullState", e), yield t.canvas.loadFromJSON(e);
933
942
  var a = t.canvas.getObjects().find((i) => i.id === "montage-area");
@@ -943,7 +952,7 @@ class mt {
943
952
  */
944
953
  undo() {
945
954
  var e = this;
946
- return $(function* () {
955
+ return ee(function* () {
947
956
  if (!e.skipHistory) {
948
957
  if (e.currentIndex <= 0) {
949
958
  console.log("Нет предыдущих состояний для отмены.");
@@ -970,7 +979,7 @@ class mt {
970
979
  */
971
980
  redo() {
972
981
  var e = this;
973
- return $(function* () {
982
+ return ee(function* () {
974
983
  if (!e.skipHistory) {
975
984
  if (e.currentIndex >= e.patches.length) {
976
985
  console.log("Нет состояний для повтора.");
@@ -992,8 +1001,8 @@ class mt {
992
1001
  })();
993
1002
  }
994
1003
  }
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) {
1004
+ const vt = 0.1, mt = 2, Mt = 0.1, ft = 90, k = 16, x = 16, L = 4096, E = 4096;
1005
+ function Se(o, e, t, a, r, i, n) {
997
1006
  try {
998
1007
  var s = o[i](n), c = s.value;
999
1008
  } catch (u) {
@@ -1007,10 +1016,10 @@ function O(o) {
1007
1016
  return new Promise(function(a, r) {
1008
1017
  var i = o.apply(e, t);
1009
1018
  function n(c) {
1010
- Ie(i, a, r, n, s, "next", c);
1019
+ Se(i, a, r, n, s, "next", c);
1011
1020
  }
1012
1021
  function s(c) {
1013
- Ie(i, a, r, n, s, "throw", c);
1022
+ Se(i, a, r, n, s, "throw", c);
1014
1023
  }
1015
1024
  n(void 0);
1016
1025
  });
@@ -1055,38 +1064,38 @@ class A {
1055
1064
  historyManager: u,
1056
1065
  errorManager: l
1057
1066
  } = t.editor, d = yield t.getContentType(a), h = A.getFormatFromContentType(d), {
1058
- acceptContentTypes: v,
1067
+ acceptContentTypes: g,
1059
1068
  acceptFormats: m
1060
1069
  } = t;
1061
1070
  if (!t.isAllowedContentType(d)) {
1062
- var f = "Неверный contentType для изображения: ".concat(d, ". Ожидается один из: ").concat(t.acceptContentTypes.join(", "), ".");
1071
+ var M = "Неверный contentType для изображения: ".concat(d, ". Ожидается один из: ").concat(t.acceptContentTypes.join(", "), ".");
1063
1072
  return l.emitError({
1064
1073
  origin: "ImageManager",
1065
1074
  method: "importImage",
1066
1075
  code: "INVALID_CONTENT_TYPE",
1067
- message: f,
1076
+ message: M,
1068
1077
  data: {
1069
1078
  source: a,
1070
1079
  format: h,
1071
1080
  contentType: d,
1072
- acceptContentTypes: v,
1081
+ acceptContentTypes: g,
1073
1082
  acceptFormats: m
1074
1083
  }
1075
1084
  }), null;
1076
1085
  }
1077
1086
  u.suspendHistory();
1078
1087
  try {
1079
- var M, g;
1088
+ var f, v;
1080
1089
  if (a instanceof File)
1081
- M = URL.createObjectURL(a);
1090
+ f = URL.createObjectURL(a);
1082
1091
  else if (typeof a == "string") {
1083
1092
  var S = yield fetch(a, {
1084
1093
  mode: "cors"
1085
- }), w = yield S.blob({
1094
+ }), N = yield S.blob({
1086
1095
  type: d,
1087
1096
  quality: 1
1088
1097
  });
1089
- M = URL.createObjectURL(w);
1098
+ f = URL.createObjectURL(N);
1090
1099
  } else
1091
1100
  return l.emitError({
1092
1101
  origin: "ImageManager",
@@ -1097,71 +1106,71 @@ class A {
1097
1106
  source: a,
1098
1107
  format: h,
1099
1108
  contentType: d,
1100
- acceptContentTypes: v,
1109
+ acceptContentTypes: g,
1101
1110
  acceptFormats: m
1102
1111
  }
1103
1112
  }), null;
1104
- if (t._createdBlobUrls.push(M), h === "svg") {
1105
- var D = yield Ze(M);
1106
- g = _.groupSVGElements(D.objects, D.options);
1113
+ if (t._createdBlobUrls.push(f), h === "svg") {
1114
+ var D = yield xe(f);
1115
+ v = W.groupSVGElements(D.objects, D.options);
1107
1116
  } else
1108
- g = yield K.fromURL(M, {
1117
+ v = yield q.fromURL(f, {
1109
1118
  crossOrigin: "anonymous"
1110
1119
  });
1111
1120
  var {
1112
- width: N,
1121
+ width: w,
1113
1122
  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, {
1123
+ } = v;
1124
+ if (y > E || w > L) {
1125
+ var p = yield t.resizeImageToBoundaries(v._element.src, "max"), B = URL.createObjectURL(p);
1126
+ t._createdBlobUrls.push(B), v = yield q.fromURL(B, {
1118
1127
  crossOrigin: "anonymous"
1119
1128
  });
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, {
1129
+ } else if (y < x || w < k) {
1130
+ var _ = yield t.resizeImageToBoundaries(v._element.src, "min"), Z = URL.createObjectURL(_);
1131
+ t._createdBlobUrls.push(Z), v = yield q.fromURL(Z, {
1123
1132
  crossOrigin: "anonymous"
1124
1133
  });
1125
1134
  }
1126
- if (g.set("id", "".concat(g.type, "-").concat(C())), g.set("format", h), r === "scale-montage")
1135
+ if (v.set("id", "".concat(v.type, "-").concat(C())), v.set("format", h), r === "scale-montage")
1127
1136
  t.editor.canvasManager.scaleMontageAreaToImage({
1128
- object: g,
1137
+ object: v,
1129
1138
  withoutSave: !0
1130
1139
  });
1131
1140
  else {
1132
1141
  var {
1133
- width: W,
1134
- height: Z
1135
- } = s, z = t.calculateScaleFactor({
1136
- imageObject: g,
1142
+ width: F,
1143
+ height: z
1144
+ } = s, U = t.calculateScaleFactor({
1145
+ imageObject: v,
1137
1146
  scaleType: r
1138
1147
  });
1139
- r === "image-contain" && z < 1 ? c.fitObject({
1140
- object: g,
1148
+ r === "image-contain" && U < 1 ? c.fitObject({
1149
+ object: v,
1141
1150
  type: "contain",
1142
1151
  withoutSave: !0
1143
- }) : r === "image-cover" && (N > W || y > Z) && c.fitObject({
1144
- object: g,
1152
+ }) : r === "image-cover" && (w > F || y > z) && c.fitObject({
1153
+ object: v,
1145
1154
  type: "cover",
1146
1155
  withoutSave: !0
1147
1156
  });
1148
1157
  }
1149
- n.add(g), n.centerObject(g), n.setActiveObject(g), n.renderAll(), u.resumeHistory(), i || u.saveState();
1150
- var F = {
1151
- image: g,
1158
+ n.add(v), n.centerObject(v), n.setActiveObject(v), n.renderAll(), u.resumeHistory(), i || u.saveState();
1159
+ var V = {
1160
+ image: v,
1152
1161
  format: h,
1153
1162
  contentType: d,
1154
1163
  scale: r,
1155
1164
  withoutSave: i,
1156
1165
  source: a
1157
1166
  };
1158
- return n.fire("editor:image-imported", F), F;
1159
- } catch (U) {
1167
+ return n.fire("editor:image-imported", V), V;
1168
+ } catch (Y) {
1160
1169
  return l.emitError({
1161
1170
  origin: "ImageManager",
1162
1171
  method: "importImage",
1163
1172
  code: "IMPORT_FAILED",
1164
- message: "Ошибка импорта изображения: ".concat(U.message),
1173
+ message: "Ошибка импорта изображения: ".concat(Y.message),
1165
1174
  data: {
1166
1175
  source: a,
1167
1176
  format: h,
@@ -1185,14 +1194,14 @@ class A {
1185
1194
  var t = arguments, a = this;
1186
1195
  return O(function* () {
1187
1196
  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));
1197
+ r === "min" && (i = "Размер изображения меньше минимального размера канваса, поэтому оно будет увеличено до минимальных размеров c сохранением пропорций: ".concat(k, "x").concat(x));
1189
1198
  var n = {
1190
1199
  dataURL: e,
1191
1200
  sizeType: r,
1192
1201
  maxWidth: L,
1193
1202
  maxHeight: E,
1194
- minWidth: T,
1195
- minHeight: k
1203
+ minWidth: k,
1204
+ minHeight: x
1196
1205
  };
1197
1206
  return a.editor.errorManager.emitWarning({
1198
1207
  origin: "ImageManager",
@@ -1231,29 +1240,29 @@ class A {
1231
1240
  var l = r === "application/pdf", d = l ? "image/jpg" : r, h = A.getFormatFromContentType(d);
1232
1241
  c.setCoords();
1233
1242
  var {
1234
- left: v,
1243
+ left: g,
1235
1244
  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
1245
+ width: M,
1246
+ height: f
1247
+ } = c.getBoundingRect(), v = yield s.clone(["id", "format", "locked"]);
1248
+ ["image/jpg", "image/jpeg"].includes(d) && (v.backgroundColor = "#ffffff");
1249
+ var S = v.getObjects().find((b) => b.id === c.id);
1250
+ S.visible = !1, v.viewportTransform = [1, 0, 0, 1, -g, -m], v.setDimensions({
1251
+ width: M,
1252
+ height: f
1244
1253
  }, {
1245
1254
  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, {
1255
+ }), v.renderAll();
1256
+ var N = v.getObjects().filter((b) => b.format).every((b) => b.format === "svg");
1257
+ if (h === "svg" && N) {
1258
+ var D = v.toSVG();
1259
+ v.dispose();
1260
+ var w = A._exportSVGStringAsFile(D, {
1252
1261
  exportAsBase64: i,
1253
1262
  exportAsBlob: n,
1254
1263
  fileName: a
1255
1264
  }), y = {
1256
- image: N,
1265
+ image: w,
1257
1266
  format: "svg",
1258
1267
  contentType: "image/svg+xml",
1259
1268
  fileName: a.replace(/\.[^/.]+$/, ".svg")
@@ -1261,30 +1270,30 @@ class A {
1261
1270
  return s.fire("editor:canvas-exported", y), y;
1262
1271
  }
1263
1272
  var p = yield new Promise((b) => {
1264
- g.getElement().toBlob(b);
1273
+ v.getElement().toBlob(b);
1265
1274
  });
1266
- if (g.dispose(), n) {
1267
- var x = {
1275
+ if (v.dispose(), n) {
1276
+ var B = {
1268
1277
  image: p,
1269
1278
  format: h,
1270
1279
  contentType: d,
1271
1280
  fileName: a
1272
1281
  };
1273
- return s.fire("editor:canvas-exported", x), x;
1282
+ return s.fire("editor:canvas-exported", B), B;
1274
1283
  }
1275
- var R = yield createImageBitmap(p), B = yield u.post("toDataURL", {
1284
+ var _ = yield createImageBitmap(p), Z = yield u.post("toDataURL", {
1276
1285
  format: h,
1277
1286
  quality: 1,
1278
- bitmap: R
1279
- }, [R]);
1287
+ bitmap: _
1288
+ }, [_]);
1280
1289
  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",
1290
+ var F = 0.264583, z = M * F, U = f * F, V = (yield t.editor.moduleLoader.loadModule("jspdf")).jsPDF, Y = new V({
1291
+ orientation: z > U ? "landscape" : "portrait",
1283
1292
  unit: "mm",
1284
- format: [Z, z]
1293
+ format: [z, U]
1285
1294
  });
1286
- if (U.addImage(B, "JPG", 0, 0, Z, z), i) {
1287
- var De = U.output("datauristring"), de = {
1295
+ if (Y.addImage(Z, "JPG", 0, 0, z, U), i) {
1296
+ var De = Y.output("datauristring"), de = {
1288
1297
  image: De,
1289
1298
  format: "pdf",
1290
1299
  contentType: "application/pdf",
@@ -1292,7 +1301,7 @@ class A {
1292
1301
  };
1293
1302
  return s.fire("editor:canvas-exported", de), de;
1294
1303
  }
1295
- var Ne = U.output("blob"), Le = new File([Ne], a, {
1304
+ var we = Y.output("blob"), Le = new File([we], a, {
1296
1305
  type: "application/pdf"
1297
1306
  }), le = {
1298
1307
  image: Le,
@@ -1304,14 +1313,14 @@ class A {
1304
1313
  }
1305
1314
  if (i) {
1306
1315
  var he = {
1307
- image: B,
1316
+ image: Z,
1308
1317
  format: h,
1309
1318
  contentType: d,
1310
1319
  fileName: a
1311
1320
  };
1312
1321
  return s.fire("editor:canvas-exported", he), he;
1313
1322
  }
1314
- var ge = h === "svg" && !w ? a.replace(/\.[^/.]+$/, ".png") : a, Ee = new File([p], ge, {
1323
+ var ge = h === "svg" && !N ? a.replace(/\.[^/.]+$/, ".png") : a, Ee = new File([p], ge, {
1315
1324
  type: d
1316
1325
  }), ve = {
1317
1326
  image: Ee,
@@ -1376,12 +1385,12 @@ class A {
1376
1385
  try {
1377
1386
  var d = A.getFormatFromContentType(i);
1378
1387
  if (d === "svg") {
1379
- var h = l.toSVG(), v = t._exportSVGStringAsFile(h, {
1388
+ var h = l.toSVG(), g = t._exportSVGStringAsFile(h, {
1380
1389
  exportAsBase64: n,
1381
1390
  exportAsBlob: s,
1382
1391
  fileName: r
1383
1392
  }), m = {
1384
- image: v,
1393
+ image: g,
1385
1394
  format: d,
1386
1395
  contentType: "image/svg+xml",
1387
1396
  fileName: r.replace(/\.[^/.]+$/, ".svg")
@@ -1389,34 +1398,34 @@ class A {
1389
1398
  return c.fire("editor:object-exported", m), m;
1390
1399
  }
1391
1400
  if (n) {
1392
- var f = yield createImageBitmap(l._element), M = yield u.post("toDataURL", {
1401
+ var M = yield createImageBitmap(l._element), f = yield u.post("toDataURL", {
1393
1402
  format: d,
1394
1403
  quality: 1,
1395
- bitmap: f
1396
- }, [f]), g = {
1397
- image: M,
1404
+ bitmap: M
1405
+ }, [M]), v = {
1406
+ image: f,
1398
1407
  format: d,
1399
1408
  contentType: i,
1400
1409
  fileName: r
1401
1410
  };
1402
- return c.fire("editor:object-exported", g), g;
1411
+ return c.fire("editor:object-exported", v), v;
1403
1412
  }
1404
- var S = l.toCanvasElement(), w = yield new Promise((p) => {
1413
+ var S = l.toCanvasElement(), N = yield new Promise((p) => {
1405
1414
  S.toBlob(p);
1406
1415
  });
1407
1416
  if (s) {
1408
1417
  var D = {
1409
- image: w,
1418
+ image: N,
1410
1419
  format: d,
1411
1420
  contentType: i,
1412
1421
  fileName: r
1413
1422
  };
1414
1423
  return c.fire("editor:object-exported", D), D;
1415
1424
  }
1416
- var N = new File([w], r, {
1425
+ var w = new File([N], r, {
1417
1426
  type: i
1418
1427
  }), y = {
1419
- image: N,
1428
+ image: w,
1420
1429
  format: d,
1421
1430
  contentType: i,
1422
1431
  fileName: r
@@ -1570,7 +1579,7 @@ class A {
1570
1579
  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
1580
  }
1572
1581
  }
1573
- class pt {
1582
+ class jt {
1574
1583
  /**
1575
1584
  * @param {object} options
1576
1585
  * @param {ImageEditor} options.editor – экземпляр редактора
@@ -1606,7 +1615,7 @@ class pt {
1606
1615
  } = this.editor, {
1607
1616
  width: c,
1608
1617
  height: u
1609
- } = n, l = Number(Math.max(Math.min(e, L), T));
1618
+ } = n, l = Number(Math.max(Math.min(e, L), k));
1610
1619
  if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreWidth(s) : this.setCanvasBackstoreWidth(l), n.set({
1611
1620
  width: l
1612
1621
  }), i.clipPath.set({
@@ -1617,10 +1626,10 @@ class pt {
1617
1626
  return;
1618
1627
  }
1619
1628
  var {
1620
- left: v,
1629
+ left: g,
1621
1630
  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", {
1631
+ } = this.getObjectDefaultCoords(n), M = i.getZoom();
1632
+ i.setViewportTransform([M, 0, 0, M, g, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-width-changed", {
1624
1633
  width: e
1625
1634
  });
1626
1635
  }
@@ -1650,7 +1659,7 @@ class pt {
1650
1659
  } = this.editor, {
1651
1660
  width: c,
1652
1661
  height: u
1653
- } = n, l = Number(Math.max(Math.min(e, E), k));
1662
+ } = n, l = Number(Math.max(Math.min(e, E), x));
1654
1663
  if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreHeight(s) : this.setCanvasBackstoreHeight(l), n.set({
1655
1664
  height: l
1656
1665
  }), i.clipPath.set({
@@ -1661,10 +1670,10 @@ class pt {
1661
1670
  return;
1662
1671
  }
1663
1672
  var {
1664
- left: v,
1673
+ left: g,
1665
1674
  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", {
1675
+ } = this.getObjectDefaultCoords(n), M = i.getZoom();
1676
+ i.setViewportTransform([M, 0, 0, M, g, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-height-changed", {
1668
1677
  height: e
1669
1678
  });
1670
1679
  }
@@ -1677,7 +1686,7 @@ class pt {
1677
1686
  var {
1678
1687
  canvas: e,
1679
1688
  montageArea: t
1680
- } = this.editor, a = e.getWidth(), r = e.getHeight(), i = e.getZoom(), n = new ze(a / 2, r / 2);
1689
+ } = this.editor, a = e.getWidth(), r = e.getHeight(), i = e.getZoom(), n = new Be(a / 2, r / 2);
1681
1690
  t.set({
1682
1691
  left: a / 2,
1683
1692
  top: r / 2
@@ -1712,7 +1721,7 @@ class pt {
1712
1721
  }
1713
1722
  setCanvasBackstoreWidth(e) {
1714
1723
  if (!(!e || typeof e != "number")) {
1715
- var t = Math.max(Math.min(e, L), T);
1724
+ var t = Math.max(Math.min(e, L), k);
1716
1725
  this.editor.canvas.setDimensions({
1717
1726
  width: t
1718
1727
  }, {
@@ -1722,7 +1731,7 @@ class pt {
1722
1731
  }
1723
1732
  setCanvasBackstoreHeight(e) {
1724
1733
  if (!(!e || typeof e != "number")) {
1725
- var t = Math.max(Math.min(e, E), k);
1734
+ var t = Math.max(Math.min(e, E), x);
1726
1735
  this.editor.canvas.setDimensions({
1727
1736
  height: t
1728
1737
  }, {
@@ -1733,7 +1742,7 @@ class pt {
1733
1742
  adaptCanvasToContainer() {
1734
1743
  var {
1735
1744
  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);
1745
+ } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, i = Math.max(Math.min(a, L), k), n = Math.max(Math.min(r, E), x);
1737
1746
  console.log("adaptCanvasToContainer newWidth", i), console.log("adaptCanvasToContainer newHeight", n), e.setDimensions({
1738
1747
  width: i,
1739
1748
  height: n
@@ -1916,23 +1925,23 @@ class pt {
1916
1925
  var {
1917
1926
  width: l,
1918
1927
  height: d
1919
- } = u, h = Math.min(l, L), v = Math.min(d, E);
1928
+ } = u, h = Math.min(l, L), g = Math.min(d, E);
1920
1929
  if (t) {
1921
1930
  var {
1922
1931
  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;
1932
+ height: M
1933
+ } = i, f = l / m, v = d / M, S = Math.max(f, v);
1934
+ h = m * S, g = M * S;
1926
1935
  }
1927
1936
  this.setResolutionWidth(h, {
1928
1937
  withoutSave: !0
1929
- }), this.setResolutionHeight(v, {
1938
+ }), this.setResolutionHeight(g, {
1930
1939
  withoutSave: !0
1931
1940
  }), (l > s || d > c) && n.calculateAndApplyDefaultZoom(s, c), n.resetObject(u, {
1932
1941
  withoutSave: !0
1933
1942
  }), r.centerObject(u), r.renderAll(), a || this.editor.historyManager.saveState(), r.fire("editor:canvas-scaled", {
1934
1943
  width: h,
1935
- height: v
1944
+ height: g
1936
1945
  });
1937
1946
  }
1938
1947
  }
@@ -1987,7 +1996,7 @@ class pt {
1987
1996
  return r.filter((i) => i.id !== t.id && i.id !== a.id);
1988
1997
  }
1989
1998
  }
1990
- class bt {
1999
+ class yt {
1991
2000
  /**
1992
2001
  * @param {object} options
1993
2002
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2026,7 +2035,7 @@ class bt {
2026
2035
  * Если передавать координаты курсора, то нужно быть аккуратнее, так как юзер может выйти за пределы рабочей области
2027
2036
  */
2028
2037
  zoom() {
2029
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : jt, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2038
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Mt, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2030
2039
  if (e) {
2031
2040
  var {
2032
2041
  canvas: a,
@@ -2098,7 +2107,7 @@ class bt {
2098
2107
  * @fires editor:object-rotated
2099
2108
  */
2100
2109
  rotate() {
2101
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : yt, {
2110
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ft, {
2102
2111
  withoutSave: t
2103
2112
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2104
2113
  canvas: a,
@@ -2185,13 +2194,13 @@ class bt {
2185
2194
  if (["activeselection"].includes(c.type) && !r) {
2186
2195
  var u = c.getObjects();
2187
2196
  i.discardActiveObject(), u.forEach((h) => {
2188
- var v = n.calculateScaleFactor({
2197
+ var g = n.calculateScaleFactor({
2189
2198
  imageObject: h,
2190
2199
  scaleType: t
2191
2200
  });
2192
- h.scale(v), i.centerObject(h);
2201
+ h.scale(g), i.centerObject(h);
2193
2202
  });
2194
- var l = new H(u, {
2203
+ var l = new R(u, {
2195
2204
  canvas: i
2196
2205
  });
2197
2206
  i.setActiveObject(l);
@@ -2253,12 +2262,12 @@ class bt {
2253
2262
  height: d
2254
2263
  } = i, {
2255
2264
  width: h,
2256
- height: v
2265
+ height: g
2257
2266
  } = u, m = n.calculateScaleFactor({
2258
2267
  imageObject: u,
2259
2268
  scaleType: c
2260
2269
  });
2261
- c === "contain" && m < 1 || c === "cover" && (h > l || v > d) ? this.fitObject({
2270
+ c === "contain" && m < 1 || c === "cover" && (h > l || g > d) ? this.fitObject({
2262
2271
  object: u,
2263
2272
  withoutSave: !0
2264
2273
  }) : u.set({
@@ -2274,7 +2283,7 @@ class bt {
2274
2283
  }
2275
2284
  }
2276
2285
  }
2277
- class It {
2286
+ class pt {
2278
2287
  /**
2279
2288
  * @param {object} options
2280
2289
  * @param {ImageEditor} options.editor – экземпляр редактора
@@ -2374,7 +2383,7 @@ class It {
2374
2383
  }
2375
2384
  }
2376
2385
  }
2377
- class G {
2386
+ class J {
2378
2387
  /**
2379
2388
  * @param {object} options
2380
2389
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2421,7 +2430,7 @@ class G {
2421
2430
  } = this.editor;
2422
2431
  r.suspendHistory();
2423
2432
  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"));
2433
+ 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
2434
  }
2426
2435
  /**
2427
2436
  * Отправить объект на задний план по оси Z
@@ -2471,7 +2480,7 @@ class G {
2471
2480
  } = this.editor;
2472
2481
  i.suspendHistory();
2473
2482
  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"));
2483
+ 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
2484
  }
2476
2485
  /**
2477
2486
  * Сдвигает выделенные объекты на один уровень вверх относительно ближайшего верхнего объекта
@@ -2483,7 +2492,7 @@ class G {
2483
2492
  static _moveSelectionForward(e, t) {
2484
2493
  for (var a = e.getObjects(), r = t.getObjects(), i = r.map((l) => a.indexOf(l)), n = -1, s = function(d) {
2485
2494
  var h = a[d];
2486
- if (!r.includes(h) && i.some((v) => d > v))
2495
+ if (!r.includes(h) && i.some((g) => d > g))
2487
2496
  return n = d, 1;
2488
2497
  }, c = 0; c < a.length && !s(c); c += 1)
2489
2498
  ;
@@ -2510,115 +2519,60 @@ class G {
2510
2519
  e.moveObjectTo(r[n], i - 1);
2511
2520
  }
2512
2521
  }
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 {
2522
+ class bt {
2571
2523
  /**
2572
- * @param {object} options
2573
- * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
2524
+ * Менеджер фигур для редактора.
2525
+ * @param {Object} options - Опции и настройки менеджера фигур.
2526
+ * @param {ImageEditor} options.editor - Ссылка на экземпляр редактора.
2574
2527
  */
2575
- constructor(e) {
2576
- var {
2577
- editor: t
2578
- } = e;
2579
- this.editor = t;
2528
+ constructor({ editor: e }) {
2529
+ this.editor = e;
2580
2530
  }
2581
2531
  /**
2582
2532
  * Добавление прямоугольника
2583
2533
  * @param {Object} shapeOptions
2534
+ * @param {String} shapeOptions.id - Уникальный идентификатор фигуры
2584
2535
  * @param {Number} shapeOptions.left - Координата X
2585
2536
  * @param {Number} shapeOptions.top - Координата Y
2586
2537
  * @param {Number} shapeOptions.width - Ширина
2587
2538
  * @param {Number} shapeOptions.height - Высота
2588
2539
  * @param {String} shapeOptions.fill - Цвет заливки
2589
- * @param {String} shapeOptions.originX - Ориентация по X
2590
- * @param {String} shapeOptions.originY - Ориентация по Y
2591
2540
  * @param {Rect} shapeOptions.rest - Остальные параметры
2592
2541
  *
2542
+ * @param {Object} flags - Флаги для управления поведением
2593
2543
  * @param {Object} flags.withoutSelection - Не выделять объект
2594
2544
  * @param {Object} flags.withoutAdding - Не добавлять объект в canvas
2595
2545
  */
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;
2546
+ addRectangle(l = {}, { withoutSelection: c, withoutAdding: u } = {}) {
2547
+ var d = l, {
2548
+ id: e = `rect-${C()}`,
2549
+ left: t,
2550
+ top: a,
2551
+ width: r = 100,
2552
+ height: i = 100,
2553
+ fill: n = "blue"
2554
+ } = d, s = X(d, [
2555
+ "id",
2556
+ "left",
2557
+ "top",
2558
+ "width",
2559
+ "height",
2560
+ "fill"
2561
+ ]);
2562
+ const { canvas: h } = this.editor, g = new Ze(T({
2563
+ id: e,
2564
+ left: t,
2565
+ top: a,
2566
+ width: r,
2567
+ height: i,
2568
+ fill: n
2569
+ }, s));
2570
+ return !t && !a && h.centerObject(g), u || (h.add(g), c || h.setActiveObject(g), h.renderAll()), g;
2618
2571
  }
2619
2572
  /**
2620
2573
  * Добавление круга
2621
2574
  * @param {Object} shapeOptions
2575
+ * @param {String} shapeOptions.id - Уникальный идентификатор фигуры
2622
2576
  * @param {Number} shapeOptions.left - Координата X
2623
2577
  * @param {Number} shapeOptions.top - Координата Y
2624
2578
  * @param {Number} shapeOptions.radius - Радиус
@@ -2627,33 +2581,37 @@ class Et {
2627
2581
  * @param {String} shapeOptions.originY - Ориентация по Y
2628
2582
  * @param {Circle} shapeOptions.rest - Остальные параметры
2629
2583
  *
2584
+ * @param {Object} flags - Флаги для управления поведением
2630
2585
  * @param {Object} flags.withoutSelection - Не выделять объект
2631
2586
  * @param {Object} flags.withoutAdding - Не добавлять объект в canvas
2632
2587
  */
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;
2588
+ addCircle(u = {}, { withoutSelection: s, withoutAdding: c } = {}) {
2589
+ var l = u, {
2590
+ id: e = `circle-${C()}`,
2591
+ left: t,
2592
+ top: a,
2593
+ radius: r = 50,
2594
+ fill: i = "green"
2595
+ } = l, n = X(l, [
2596
+ "id",
2597
+ "left",
2598
+ "top",
2599
+ "radius",
2600
+ "fill"
2601
+ ]);
2602
+ const { canvas: d } = this.editor, h = new ze(T({
2603
+ id: e,
2604
+ left: t,
2605
+ top: a,
2606
+ fill: i,
2607
+ radius: r
2608
+ }, n));
2609
+ return !t && !a && d.centerObject(h), c || (d.add(h), s || d.setActiveObject(h), d.renderAll()), h;
2653
2610
  }
2654
2611
  /**
2655
2612
  * Добавление треугольника
2656
2613
  * @param {Object} shapeOptions
2614
+ * @param {String} shapeOptions.id - Уникальный идентификатор фигуры
2657
2615
  * @param {Number} shapeOptions.left - Координата X
2658
2616
  * @param {Number} shapeOptions.top - Координата Y
2659
2617
  * @param {Number} shapeOptions.width - Ширина
@@ -2663,31 +2621,35 @@ class Et {
2663
2621
  * @param {String} shapeOptions.fill - Цвет заливки
2664
2622
  * @param {Triangle} shapeOptions.rest - Остальные параметры
2665
2623
  *
2624
+ * @param {Object} flags - Флаги для управления поведением
2666
2625
  * @param {Object} flags.withoutSelection - Не выделять объект
2667
2626
  * @param {Object} flags.withoutAdding - Не добавлять объект в canvas
2668
2627
  */
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;
2628
+ addTriangle(l = {}, { withoutSelection: c, withoutAdding: u } = {}) {
2629
+ var d = l, {
2630
+ id: e = `triangle-${C()}`,
2631
+ left: t,
2632
+ top: a,
2633
+ width: r = 100,
2634
+ height: i = 100,
2635
+ fill: n = "yellow"
2636
+ } = d, s = X(d, [
2637
+ "id",
2638
+ "left",
2639
+ "top",
2640
+ "width",
2641
+ "height",
2642
+ "fill"
2643
+ ]);
2644
+ const { canvas: h } = this.editor, g = new Ue(T({
2645
+ id: e,
2646
+ left: t,
2647
+ top: a,
2648
+ fill: n,
2649
+ width: r,
2650
+ height: i
2651
+ }, s));
2652
+ return !t && !a && h.centerObject(g), u || (h.add(g), c || h.setActiveObject(g), h.renderAll()), g;
2691
2653
  }
2692
2654
  }
2693
2655
  function Ae(o, e, t, a, r, i, n) {
@@ -2713,7 +2675,7 @@ function Ce(o) {
2713
2675
  });
2714
2676
  };
2715
2677
  }
2716
- class Ot {
2678
+ class It {
2717
2679
  /**
2718
2680
  * @param {object} options
2719
2681
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2785,7 +2747,7 @@ class Ot {
2785
2747
  left: a.left + 10,
2786
2748
  top: a.top + 10,
2787
2749
  evented: !0
2788
- }), a instanceof H ? (a.canvas = t, a.forEachObject((r) => {
2750
+ }), a instanceof R ? (a.canvas = t, a.forEachObject((r) => {
2789
2751
  t.add(r);
2790
2752
  })) : t.add(a), t.setActiveObject(a), t.requestRenderAll(), t.fire("editor:object-pasted", {
2791
2753
  object: a
@@ -2794,7 +2756,7 @@ class Ot {
2794
2756
  })();
2795
2757
  }
2796
2758
  }
2797
- class Tt {
2759
+ class St {
2798
2760
  /**
2799
2761
  * @param {object} options
2800
2762
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2877,7 +2839,7 @@ class Tt {
2877
2839
  }
2878
2840
  }
2879
2841
  }
2880
- class kt {
2842
+ class At {
2881
2843
  /**
2882
2844
  * @param {object} options
2883
2845
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2906,7 +2868,7 @@ class kt {
2906
2868
  r.suspendHistory();
2907
2869
  var i = e || a.getActiveObject();
2908
2870
  if (i && i.type === "activeselection") {
2909
- var n = i.getObjects(), s = new He(n);
2871
+ var n = i.getObjects(), s = new Ye(n);
2910
2872
  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");
2911
2873
  }
2912
2874
  }
@@ -2930,14 +2892,14 @@ class kt {
2930
2892
  if (!(!i || i.type !== "group")) {
2931
2893
  var n = i.removeAll();
2932
2894
  a.remove(i), n.forEach((c) => a.add(c));
2933
- var s = new H(n, {
2895
+ var s = new R(n, {
2934
2896
  canvas: a
2935
2897
  });
2936
2898
  a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-ungrouped");
2937
2899
  }
2938
2900
  }
2939
2901
  }
2940
- class xt {
2902
+ class Ct {
2941
2903
  /**
2942
2904
  * @param {object} options
2943
2905
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2959,7 +2921,7 @@ class xt {
2959
2921
  objectLockManager: a
2960
2922
  } = this.editor;
2961
2923
  e.discardActiveObject();
2962
- var r = t.getObjects(), i = r.some((s) => s.locked), n = r.length > 1 ? new H(t.getObjects(), {
2924
+ var r = t.getObjects(), i = r.some((s) => s.locked), n = r.length > 1 ? new R(t.getObjects(), {
2963
2925
  canvas: e
2964
2926
  }) : r[0];
2965
2927
  i && a.lockObject({
@@ -2971,7 +2933,7 @@ class xt {
2971
2933
  });
2972
2934
  }
2973
2935
  }
2974
- class Bt {
2936
+ class Nt {
2975
2937
  /**
2976
2938
  * @param {object} options
2977
2939
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -3007,7 +2969,7 @@ class Bt {
3007
2969
  }), a.discardActiveObject(), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-deleted"));
3008
2970
  }
3009
2971
  }
3010
- var Zt = {
2972
+ var Dt = {
3011
2973
  IMAGE_MANAGER: {
3012
2974
  /**
3013
2975
  * Некорректный Content-Type изображения
@@ -3035,7 +2997,7 @@ var Zt = {
3035
2997
  IMAGE_EXPORT_FAILED: "IMAGE_EXPORT_FAILED"
3036
2998
  }
3037
2999
  };
3038
- class X {
3000
+ class K {
3039
3001
  constructor(e) {
3040
3002
  var {
3041
3003
  editor: t
@@ -3060,7 +3022,7 @@ class X {
3060
3022
  data: i,
3061
3023
  message: n
3062
3024
  } = e;
3063
- if (!X.isValidErrorCode(r)) {
3025
+ if (!K.isValidErrorCode(r)) {
3064
3026
  console.warn("Неизвестный код ошибки: ", {
3065
3027
  code: r,
3066
3028
  origin: t,
@@ -3097,7 +3059,7 @@ class X {
3097
3059
  message: i,
3098
3060
  data: n
3099
3061
  } = e;
3100
- if (!X.isValidErrorCode(r)) {
3062
+ if (!K.isValidErrorCode(r)) {
3101
3063
  console.warn("Неизвестный код ошибки: ", {
3102
3064
  code: r,
3103
3065
  origin: t,
@@ -3115,7 +3077,7 @@ class X {
3115
3077
  });
3116
3078
  }
3117
3079
  static isValidErrorCode(e) {
3118
- return e ? Object.values(Zt).some((t) => Object.values(t).includes(e)) : !1;
3080
+ return e ? Object.values(Dt).some((t) => Object.values(t).includes(e)) : !1;
3119
3081
  }
3120
3082
  }
3121
3083
  class ue {
@@ -3127,10 +3089,10 @@ class ue {
3127
3089
  constructor(e, t) {
3128
3090
  this.options = t;
3129
3091
  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();
3092
+ this.containerId = e, this.editorId = `${e}-${C()}`, this.clipboard = null, this.defaultZoom = a, this.minZoom = r || vt, this.maxZoom = i || mt, this.init();
3131
3093
  }
3132
3094
  init() {
3133
- return J(this, null, function* () {
3095
+ return $(this, null, function* () {
3134
3096
  const {
3135
3097
  editorContainerWidth: e,
3136
3098
  editorContainerHeight: t,
@@ -3143,13 +3105,13 @@ class ue {
3143
3105
  scaleType: u,
3144
3106
  _onReadyCallback: l
3145
3107
  } = 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) {
3108
+ if (qe.apply(), this.canvas = new He(this.containerId, this.options), this.moduleLoader = new _e(), 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 A({ 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 Nt({ 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
3109
  const {
3148
3110
  source: d,
3149
3111
  scale: h = `image-${u}`,
3150
- withoutSave: v = !0
3112
+ withoutSave: g = !0
3151
3113
  } = s;
3152
- yield this.imageManager.importImage({ source: d, scale: h, withoutSave: v });
3114
+ yield this.imageManager.importImage({ source: d, scale: h, withoutSave: g });
3153
3115
  } else
3154
3116
  this.canvasManager.setDefaultScale({ withoutSave: !0 });
3155
3117
  c && this.historyManager.loadStateFromFullState(c), this.historyManager.saveState(), console.log("editor:ready"), this.canvas.fire("editor:ready", this), typeof l == "function" && l(this);
@@ -3207,46 +3169,35 @@ class ue {
3207
3169
  const e = document.createElement("canvas");
3208
3170
  e.width = 20, e.height = 20;
3209
3171
  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({
3172
+ 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
3173
  source: e,
3212
3174
  repeat: "repeat"
3213
3175
  });
3214
3176
  }
3215
3177
  }
3216
- const zt = {
3217
- // Cохраняют ли объекты свой текущий порядок (z-index) при выделении
3178
+ const wt = {
3179
+ /**
3180
+ * Опции редактора
3181
+ */
3218
3182
  preserveObjectStacking: !0,
3219
- // Возможность взаимодействия с объектом за пределами монтажной области
3220
3183
  controlsAboveOverlay: !0,
3221
- // Зум по центру
3222
3184
  centeredScaling: !0,
3223
- // Поворот объекта по центру
3224
3185
  centeredRotation: !0,
3225
3186
  /*
3226
- * Кастомные опции
3227
- */
3228
- // Canvas Montage Area width and height
3187
+ * Кастомные опции
3188
+ */
3229
3189
  montageAreaWidth: 512,
3230
3190
  montageAreaHeight: 512,
3231
- // Canvas backstore width and height
3232
3191
  canvasBackstoreWidth: "auto",
3233
3192
  canvasBackstoreHeight: "auto",
3234
- // Canvas (upper & lower) CSS width and height
3235
3193
  canvasCSSWidth: "100%",
3236
3194
  canvasCSSHeight: "100%",
3237
- // Wrapper CSS width and height
3238
3195
  canvasWrapperWidth: "100%",
3239
3196
  canvasWrapperHeight: "100%",
3240
- // Container CSS width and height
3241
3197
  editorContainerWidth: "fit-content",
3242
3198
  editorContainerHeight: "100%",
3243
- // Максимальная длина истории действий
3244
3199
  maxHistoryLength: 50,
3245
- // Дефолтный тип скейлинга для объектов (cotain/cover)
3246
3200
  scaleType: "contain",
3247
- /**
3248
- * Массив допустимых форматов изображений для загрузки в редактор.
3249
- */
3250
3201
  acceptContentTypes: [
3251
3202
  "image/png",
3252
3203
  "image/jpeg",
@@ -3254,11 +3205,7 @@ const zt = {
3254
3205
  "image/svg+xml",
3255
3206
  "image/webp"
3256
3207
  ],
3257
- // Показывать панель инструментов для выделенного объекта
3258
3208
  showToolbar: !0,
3259
- // Настройки панели инструментов выделенного объекта.
3260
- // Можно передать массив с названиями действий или объект с настройками, кастомными иконками и обработчиками
3261
- // ui/toolbar-manager/default-config.js
3262
3209
  toolbar: {
3263
3210
  lockedActions: [{
3264
3211
  name: "Разблокировать",
@@ -3295,51 +3242,30 @@ const zt = {
3295
3242
  }
3296
3243
  ]
3297
3244
  },
3298
- // Можно передать JSON объект в виде строки для инициализации редактора
3299
3245
  initialStateJSON: null,
3300
- /*
3301
- * Объект изображения с которым редактор будет инициализирован. Может содержать:
3302
- * - {String} url - URL изображения (обязательный)
3303
- * - {String} scaleType - Тип скейлинга (image-contain/image-cover/scale-montage)
3304
- * - {Boolean} withoutSave - Не сохранять состояние редактора (по умолчанию false)
3305
- */
3306
3246
  initialImage: null,
3307
- // Дефолтный масштаб
3308
3247
  defaultScale: 1,
3309
- // Минимальный и максимальный зум
3310
3248
  minZoom: 0.1,
3311
3249
  maxZoom: 2,
3312
- // Максимальная кратность зума относительно текущего defaultZoom
3313
3250
  maxZoomFactor: 2,
3314
- // Шаг зума
3315
3251
  zoomRatio: 0.1,
3316
3252
  overlayMaskColor: "rgba(136, 136, 136, 0.6)",
3317
3253
  /*
3318
3254
  * Настройки слушателей событий
3319
3255
  */
3320
- // Адаптировать канвас при изменении размеров контейнера (например, при изменении размеров окна браузера)
3321
3256
  adaptCanvasToContainer: !0,
3322
- // Поднимать объект на передний план по оси Z при выделении
3323
3257
  bringToFrontOnSelection: !1,
3324
- // Зум по колесику мыши
3325
3258
  mouseWheelZooming: !0,
3326
- // Перемещение канваса при зажатой кнопке ALT
3327
3259
  canvasDragging: !0,
3328
- // Копирование объектов (Ctrl + C, Ctrl + V)
3329
3260
  copyObjectsByHotkey: !0,
3330
- // Вставка изображения из буфера обмена
3331
3261
  pasteImageFromClipboard: !0,
3332
- // Отмена/повтор действия по сочетанию клавиш (Ctrl + Z, Ctrl + Y)
3333
3262
  undoRedoByHotKeys: !0,
3334
- // Выделение всех объектов по сочетанию клавиш (Ctrl + A)
3335
3263
  selectAllByHotkey: !0,
3336
- // Удаление объектов по сочетанию клавиш (Delete)
3337
3264
  deleteObjectsByHotkey: !0,
3338
- // Сброс параметров объекта по двойному клику
3339
3265
  resetObjectFitByDoubleClick: !0
3340
3266
  };
3341
- function Ht(o, e = {}) {
3342
- const t = Q(Q({}, zt), e), a = document.getElementById(o);
3267
+ function Ot(o, e = {}) {
3268
+ const t = T(T({}, wt), e), a = document.getElementById(o);
3343
3269
  if (!a)
3344
3270
  return Promise.reject(new Error(`Контейнер с ID "${o}" не найден.`));
3345
3271
  const r = document.createElement("canvas");
@@ -3350,6 +3276,6 @@ function Ht(o, e = {}) {
3350
3276
  });
3351
3277
  }
3352
3278
  export {
3353
- Ht as default
3279
+ Ot as default
3354
3280
  };
3355
3281
  //# sourceMappingURL=main.js.map