@anu3ev/fabric-image-editor 0.1.10 → 0.1.11

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 +428 -419
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -1,30 +1,30 @@
1
- import { ActiveSelection as Z, util as z, controlsUtils as Oe, InteractiveFabricObject as Te, Pattern as Ee, loadSVGFromURL as ke, FabricImage as de, Point as xe, Rect as Be, Circle as Ze, Triangle as ze, Group as Ue, Canvas as Pe } from "fabric";
1
+ import { ActiveSelection as Z, util as z, controlsUtils as Oe, InteractiveFabricObject as Te, loadSVGFromURL as Ee, FabricImage as de, Point as ke, Rect as xe, Circle as Be, Triangle as Ze, Group as ze, Pattern as Ue, Canvas as Pe } from "fabric";
2
2
  import { create as Ye } from "jsondiffpatch";
3
3
  var He = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", I = function() {
4
4
  for (var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 21, t = "", a = crypto.getRandomValues(new Uint8Array(e |= 0)); e--; )
5
5
  t += He[a[e] & 63];
6
6
  return t;
7
7
  };
8
- function le(i, e, t, a, r, n, o) {
8
+ function le(o, e, t, a, r, n, i) {
9
9
  try {
10
- var s = i[n](o), c = s.value;
10
+ var s = o[n](i), c = s.value;
11
11
  } catch (u) {
12
12
  return void t(u);
13
13
  }
14
14
  s.done ? e(c) : Promise.resolve(c).then(a, r);
15
15
  }
16
- function We(i) {
16
+ function We(o) {
17
17
  return function() {
18
18
  var e = this, t = arguments;
19
19
  return new Promise(function(a, r) {
20
- var n = i.apply(e, t);
21
- function o(c) {
22
- le(n, a, r, o, s, "next", c);
20
+ var n = o.apply(e, t);
21
+ function i(c) {
22
+ le(n, a, r, i, s, "next", c);
23
23
  }
24
24
  function s(c) {
25
- le(n, a, r, o, s, "throw", c);
25
+ le(n, a, r, i, s, "throw", c);
26
26
  }
27
- o(void 0);
27
+ i(void 0);
28
28
  });
29
29
  };
30
30
  }
@@ -61,7 +61,7 @@ class B {
61
61
  mouseWheelZooming: a,
62
62
  bringToFrontOnSelection: r,
63
63
  copyObjectsByHotkey: n,
64
- pasteImageFromClipboard: o,
64
+ pasteImageFromClipboard: i,
65
65
  undoRedoByHotKeys: s,
66
66
  selectAllByHotkey: c,
67
67
  deleteObjectsByHotkey: u,
@@ -71,7 +71,7 @@ class B {
71
71
  capture: !0
72
72
  }), n && document.addEventListener("keydown", this.handleCopyEventBound, {
73
73
  capture: !0
74
- }), o && document.addEventListener("paste", this.handlePasteEventBound, {
74
+ }), i && document.addEventListener("paste", this.handlePasteEventBound, {
75
75
  capture: !0
76
76
  }), s && (document.addEventListener("keydown", this.handleUndoRedoEventBound, {
77
77
  capture: !0
@@ -103,10 +103,10 @@ class B {
103
103
  this.canvas.setActiveObject(n[0]);
104
104
  return;
105
105
  }
106
- var o = new Z(n, {
106
+ var i = new Z(n, {
107
107
  canvas: this.canvas
108
108
  });
109
- this.canvas.setActiveObject(o), this.canvas.requestRenderAll();
109
+ this.canvas.setActiveObject(i), this.canvas.requestRenderAll();
110
110
  }
111
111
  }
112
112
  }
@@ -186,14 +186,14 @@ class B {
186
186
  items: r
187
187
  } = a, n = r[r.length - 1];
188
188
  if (n.type.indexOf("image") !== -1) {
189
- var o = n.getAsFile();
190
- if (!o) return;
189
+ var i = n.getAsFile();
190
+ if (!i) return;
191
191
  var s = new FileReader();
192
192
  s.onload = (h) => {
193
193
  this.editor.imageManager.importImage({
194
194
  source: h.target.result
195
195
  });
196
- }, s.readAsDataURL(o);
196
+ }, s.readAsDataURL(i);
197
197
  return;
198
198
  }
199
199
  var c = a.getData("text/html");
@@ -223,9 +223,9 @@ class B {
223
223
  ctrlKey: a,
224
224
  metaKey: r,
225
225
  code: n,
226
- repeat: o
226
+ repeat: i
227
227
  } = e;
228
- !a && !r || o || t.isUndoRedoKeyPressed || (n === "KeyZ" ? (e.preventDefault(), t.isUndoRedoKeyPressed = !0, yield t.editor.historyManager.undo()) : n === "KeyY" && (e.preventDefault(), t.isUndoRedoKeyPressed = !0, yield t.editor.historyManager.redo()));
228
+ !a && !r || i || t.isUndoRedoKeyPressed || (n === "KeyZ" ? (e.preventDefault(), t.isUndoRedoKeyPressed = !0, yield t.editor.historyManager.undo()) : n === "KeyY" && (e.preventDefault(), t.isUndoRedoKeyPressed = !0, yield t.editor.historyManager.redo()));
229
229
  })();
230
230
  }
231
231
  /**
@@ -354,8 +354,8 @@ class B {
354
354
  static debounce(e, t) {
355
355
  var a = null;
356
356
  return function() {
357
- for (var r = arguments.length, n = new Array(r), o = 0; o < r; o++)
358
- n[o] = arguments[o];
357
+ for (var r = arguments.length, n = new Array(r), i = 0; i < r; i++)
358
+ n[i] = arguments[i];
359
359
  var s = this;
360
360
  clearTimeout(a), a = setTimeout(() => {
361
361
  e.apply(s, n);
@@ -409,9 +409,9 @@ class Re {
409
409
  requestId: a,
410
410
  success: r,
411
411
  data: n,
412
- error: o
412
+ error: i
413
413
  } = t, s = this._callbacks.get(a);
414
- s && (r ? s.resolve(n) : s.reject(new Error(o)), this._callbacks.delete(a));
414
+ s && (r ? s.resolve(n) : s.reject(new Error(i)), this._callbacks.delete(a));
415
415
  }
416
416
  /**
417
417
  * Универсальный метод отправки команды в воркер
@@ -422,10 +422,10 @@ class Re {
422
422
  */
423
423
  post(e, t) {
424
424
  var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [], r = "".concat(e, ":").concat(I(8));
425
- return new Promise((n, o) => {
425
+ return new Promise((n, i) => {
426
426
  this._callbacks.set(r, {
427
427
  resolve: n,
428
- reject: o
428
+ reject: i
429
429
  }), this.worker.postMessage({
430
430
  action: e,
431
431
  payload: t,
@@ -440,24 +440,24 @@ class Re {
440
440
  this.worker.terminate();
441
441
  }
442
442
  }
443
- var p = 12, Ve = 2, X = 8, Q = 20, Fe = 100, J = 20, K = 8, Ge = 100, $ = 32, q = 1, Xe = "#2B2D33", ee = "#3D8BF4", te = "#FFFFFF";
444
- function U(i, e, t, a, r) {
445
- var n = p, o = Ve;
446
- i.save(), i.translate(e, t), i.rotate(z.degreesToRadians(r.angle)), i.fillStyle = te, i.strokeStyle = ee, i.lineWidth = q, i.beginPath(), i.roundRect(-12 / 2, -12 / 2, n, n, o), i.fill(), i.stroke(), i.restore();
443
+ var p = 12, Ve = 2, G = 8, X = 20, Fe = 100, Q = 20, J = 8, Ge = 100, K = 32, $ = 1, Xe = "#2B2D33", q = "#3D8BF4", ee = "#FFFFFF";
444
+ function U(o, e, t, a, r) {
445
+ var n = p, i = Ve;
446
+ o.save(), o.translate(e, t), o.rotate(z.degreesToRadians(r.angle)), o.fillStyle = ee, o.strokeStyle = q, o.lineWidth = $, o.beginPath(), o.roundRect(-12 / 2, -12 / 2, n, n, i), o.fill(), o.stroke(), o.restore();
447
447
  }
448
- function he(i, e, t, a, r) {
449
- var n = X, o = Q, s = Fe;
450
- i.save(), i.translate(e, t), i.rotate(z.degreesToRadians(r.angle)), i.fillStyle = te, i.strokeStyle = ee, i.lineWidth = q, i.beginPath(), i.roundRect(-8 / 2, -20 / 2, n, o, s), i.fill(), i.stroke(), i.restore();
448
+ function he(o, e, t, a, r) {
449
+ var n = G, i = X, s = Fe;
450
+ o.save(), o.translate(e, t), o.rotate(z.degreesToRadians(r.angle)), o.fillStyle = ee, o.strokeStyle = q, o.lineWidth = $, o.beginPath(), o.roundRect(-8 / 2, -20 / 2, n, i, s), o.fill(), o.stroke(), o.restore();
451
451
  }
452
- function ge(i, e, t, a, r) {
453
- var n = J, o = K, s = Ge;
454
- i.save(), i.translate(e, t), i.rotate(z.degreesToRadians(r.angle)), i.fillStyle = te, i.strokeStyle = ee, i.lineWidth = q, i.beginPath(), i.roundRect(-20 / 2, -8 / 2, n, o, s), i.fill(), i.stroke(), i.restore();
452
+ function ge(o, e, t, a, r) {
453
+ var n = Q, i = J, s = Ge;
454
+ o.save(), o.translate(e, t), o.rotate(z.degreesToRadians(r.angle)), o.fillStyle = ee, o.strokeStyle = q, o.lineWidth = $, o.beginPath(), o.roundRect(-20 / 2, -8 / 2, n, i, s), o.fill(), o.stroke(), o.restore();
455
455
  }
456
456
  var Qe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE4Ljc1IDQuMzc1djMuNzVhLjYyNS42MjUgMCAwIDEtLjYyNS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDEgMC0xLjI1aDIuMTRsLTIuMDc3LTEuOTAzLS4wMi0uMDE5YTYuMjUgNi4yNSAwIDEgMC0uMTMgOC45NjcuNjI2LjYyNiAwIDAgMSAuODYuOTA5QTcuNDU2IDcuNDU2IDAgMCAxIDEwIDE3LjVoLS4xMDNhNy41IDcuNSAwIDEgMSA1LjM5Ni0xMi44MTJMMTcuNSA2LjcwM1Y0LjM3NWEuNjI1LjYyNSAwIDAgMSAxLjI1IDBaIi8+PC9zdmc+", Ae = new Image();
457
457
  Ae.src = Qe;
458
- function Je(i, e, t, a, r) {
459
- var n = $, o = n / 2;
460
- i.save(), i.translate(e, t), i.rotate(z.degreesToRadians(r.angle)), i.fillStyle = Xe, i.beginPath(), i.arc(0, 0, o, 0, 2 * Math.PI), i.fill(), i.drawImage(Ae, -16 / 2, -16 / 2, o, o), i.restore();
458
+ function Je(o, e, t, a, r) {
459
+ var n = K, i = n / 2;
460
+ o.save(), o.translate(e, t), o.rotate(z.degreesToRadians(r.angle)), o.fillStyle = Xe, o.beginPath(), o.arc(0, 0, i, 0, 2 * Math.PI), o.fill(), o.drawImage(Ae, -16 / 2, -16 / 2, i, i), o.restore();
461
461
  }
462
462
  var Ke = {
463
463
  // Угловые точки
@@ -492,38 +492,38 @@ var Ke = {
492
492
  // Середина вертикалей
493
493
  ml: {
494
494
  render: he,
495
- sizeX: X,
496
- sizeY: Q,
495
+ sizeX: G,
496
+ sizeY: X,
497
497
  offsetX: 0,
498
498
  offsetY: 0
499
499
  },
500
500
  mr: {
501
501
  render: he,
502
- sizeX: X,
503
- sizeY: Q,
502
+ sizeX: G,
503
+ sizeY: X,
504
504
  offsetX: 0,
505
505
  offsetY: 0
506
506
  },
507
507
  // Середина горизонталей
508
508
  mt: {
509
509
  render: ge,
510
- sizeX: J,
511
- sizeY: K,
510
+ sizeX: Q,
511
+ sizeY: J,
512
512
  offsetX: 0,
513
513
  offsetY: 0
514
514
  },
515
515
  mb: {
516
516
  render: ge,
517
- sizeX: J,
518
- sizeY: K,
517
+ sizeX: Q,
518
+ sizeY: J,
519
519
  offsetX: 0,
520
520
  offsetY: 0
521
521
  },
522
522
  // Специальный «rotate» контрол
523
523
  mtr: {
524
524
  render: Je,
525
- sizeX: $,
526
- sizeY: $,
525
+ sizeX: K,
526
+ sizeY: K,
527
527
  offsetX: 0,
528
528
  offsetY: -32
529
529
  }
@@ -544,26 +544,26 @@ class $e {
544
544
  }
545
545
  }
546
546
  var qe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi44NzUgMi41YS42MjUuNjI1IDAgMCAwLS42MjUuNjI0VjYuMjVIMy4xMjVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2MTBjMCAuMzQ1LjI4LjYyNS42MjUuNjI1aDEwYy4zNDUgMCAuNjI1LS4yOC42MjUtLjYyNXYtMy4xMjZoMy4xMjVjLjM0NSAwIC42MjUtLjI4LjYyNS0uNjI1di0xMGEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTEwWm02Ljg3NSAxMGgyLjVWMy43NUg3LjV2Mi41aDUuNjI1Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NS42MjRabS0xMCAzLjc1VjcuNWg4Ljc1djguNzVIMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", et = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDcuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDMuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjVabTEzLjc1IDBIMy43NXY4Ljc1aDEyLjVWNy41WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMS44NzVhMi4xODggMi4xODggMCAwIDAtMi4xODggMi4xODh2Mi44MTJhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyYTMuNDM3IDMuNDM3IDAgMSAxIDYuODc1IDB2Mi44MTNhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyQTIuMTg4IDIuMTg4IDAgMCAwIDEwIDEuODc2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDEyLjgxM2EuOTM3LjkzNyAwIDEgMCAwLTEuODc1LjkzNy45MzcgMCAwIDAgMCAxLjg3NFoiLz48L3N2Zz4=", tt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE2LjI1IDYuMjVINy41VjQuMzc1YTIuNSAyLjUgMCAwIDEgMi41LTIuNWMxLjIgMCAyLjI4MS44NiAyLjUxMiAyYS42MjUuNjI1IDAgMCAwIDEuMjI2LS4yNWMtLjM1NC0xLjczOC0xLjkyNS0zLTMuNzM4LTNhMy43NTQgMy43NTQgMCAwIDAtMy43NSAzLjc1VjYuMjVoLTIuNUExLjI1IDEuMjUgMCAwIDAgMi41IDcuNXY4Ljc1YTEuMjUgMS4yNSAwIDAgMCAxLjI1IDEuMjVoMTIuNWExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjcuNWExLjI1IDEuMjUgMCAwIDAtMS4yNS0xLjI1Wm0wIDEwSDMuNzVWNy41aDEyLjV2OC43NVptLTUuMzEzLTQuMzc1YS45MzcuOTM3IDAgMSAxLTEuODc0IDAgLjkzNy45MzcgMCAwIDEgMS44NzQgMFoiLz48L3N2Zz4K", at = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuNSA4LjEyNSAxMCAxMi41bDcuNS00LjM3NUwxMCAzLjc1IDIuNSA4LjEyNVoiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjY4NSAzLjIxYS42MjUuNjI1IDAgMCAxIC42MyAwbDcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOGw3LjUtNC4zNzVaTTMuNzQgOC4xMjUgMTAgMTEuNzc2bDYuMjYtMy42NTFMMTAgNC40NzQgMy43NCA4LjEyNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA5LjQ2YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDExLjc3NmwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA5LjQ2Wm0tMS42NiAyLjQxNUwxMCAxNS41MjZsNi4yNi0zLjY1MS0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNi0xLjk3NSAxLjE1MVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", rt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMy4yMWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDguMTI1IDEwIDExLjc3Nmw2LjI2LTMuNjUxTDEwIDQuNDc0IDMuNzQgOC4xMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjcxNCAxMCAxMCAxMi41bDQuMjg2LTIuNSAzLjIxNCAxLjg3NUwxMCAxNi4yNWwtNy41LTQuMzc1TDUuNzE0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDkuNDZhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgMTEuNzc2bDMuOTctMi4zMTZhLjYyNS42MjUgMCAwIDEgLjYzIDBsMy4yMTUgMS44NzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhMNS40IDkuNDZabS0xLjY2IDIuNDE1TDEwIDE1LjUyNmw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2LTEuOTc1IDEuMTUxWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", nt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIuNSA2LjI1IDcuNSA0LjM3NSA3LjUtNC4zNzVMMTAgMS44NzUgMi41IDYuMjVaIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMS4zMzVhLjYyNS42MjUgMCAwIDEgLjYzIDBsNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4bDcuNS00LjM3NVpNMy43NCA2LjI1IDEwIDkuOTAxbDYuMjYtMy42NTFMMTAgMi41OTkgMy43NCA2LjI1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDExLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCAxMy42NTFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgMTEuMzM1Wk0zLjc0IDEzLjc1IDEwIDE3LjQwMWw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTMuNzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgNy41ODVhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgOS45MDFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgNy41ODVaTTMuNzQgMTAgMTAgMTMuNjUxIDE2LjI2IDEwbC0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNkwzLjc0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", it = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS45NiAxMy40MzVhLjYyNS42MjUgMCAwIDEgLjg1NS0uMjI1TDEwIDE3LjQwMWw3LjE4NS00LjE5YS42MjUuNjI1IDAgMCAxIC42MyAxLjA3OWwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEtLjIyNS0uODU1Wk05LjY4NSAxLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDYuMjUgMTAgOS45MDFsNi4yNi0zLjY1MUwxMCAyLjU5OSAzLjc0IDYuMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjcxNCAxMS44NzUgNC4yODYgMi41IDQuMjg2LTIuNUwxNy41IDEzLjc1IDEwIDE4LjEyNSAyLjUgMTMuNzVsMy4yMTQtMS44NzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgMTEuMzM1YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDEzLjY1MWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCAxMS4zMzVaTTMuNzQgMTMuNzUgMTAgMTcuNDAxbDYuMjYtMy42NTEtMS45NzQtMS4xNTEtMy45NzEgMi4zMTZhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTMuOTctMi4zMTZMMy43NCAxMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA3LjU4NWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCA5LjkwMWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA3LjU4NVpNMy43NCAxMCAxMCAxMy42NTEgMTYuMjYgMTBsLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTBaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", ot = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0VDNEU0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xMjUgMS4yNUExLjg3NSAxLjg3NSAwIDAgMCA2LjI1IDMuMTI1di42MjVIMy4xMjVhLjYyNS42MjUgMCAwIDAgMCAxLjI1aC42MjV2MTEuMjVBMS4yNSAxLjI1IDAgMCAwIDUgMTcuNWgxMGExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjVoLjYyNWEuNjI1LjYyNSAwIDAgMCAwLTEuMjVIMTMuNzV2LS42MjVhMS44NzUgMS44NzUgMCAwIDAtMS44NzUtMS44NzVoLTMuNzVabTQuMzc1IDIuNXYtLjYyNWEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2LjYyNWg1Wk01IDE2LjI1VjVoMTB2MTEuMjVINVpNOC4xMjUgNy41Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NWEuNjI1LjYyNSAwIDEgMS0xLjI1IDB2LTVjMC0uMzQ1LjI4LS42MjUuNjI1LS42MjVabTQuMzc1IDUuNjI1di01YS42MjUuNjI1IDAgMCAwLTEuMjUgMHY1YS42MjUuNjI1IDAgMSAwIDEuMjUgMFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==";
547
- function ve(i, e, t, a, r, n, o) {
547
+ function ve(o, e, t, a, r, n, i) {
548
548
  try {
549
- var s = i[n](o), c = s.value;
549
+ var s = o[n](i), c = s.value;
550
550
  } catch (u) {
551
551
  return void t(u);
552
552
  }
553
553
  s.done ? e(c) : Promise.resolve(c).then(a, r);
554
554
  }
555
- function st(i) {
555
+ function st(o) {
556
556
  return function() {
557
557
  var e = this, t = arguments;
558
558
  return new Promise(function(a, r) {
559
- var n = i.apply(e, t);
560
- function o(c) {
561
- ve(n, a, r, o, s, "next", c);
559
+ var n = o.apply(e, t);
560
+ function i(c) {
561
+ ve(n, a, r, i, s, "next", c);
562
562
  }
563
563
  function s(c) {
564
- ve(n, a, r, o, s, "throw", c);
564
+ ve(n, a, r, i, s, "throw", c);
565
565
  }
566
- o(void 0);
566
+ i(void 0);
567
567
  });
568
568
  };
569
569
  }
@@ -637,74 +637,74 @@ const E = {
637
637
  },
638
638
  handlers: {
639
639
  copyPaste: function() {
640
- var i = st(function* (t) {
640
+ var o = st(function* (t) {
641
641
  yield t.clipboardManager.copy(), yield t.clipboardManager.paste();
642
642
  });
643
643
  function e(t) {
644
- return i.apply(this, arguments);
644
+ return o.apply(this, arguments);
645
645
  }
646
646
  return e;
647
647
  }(),
648
- delete: (i) => {
649
- i.deletionManager.deleteSelectedObjects();
648
+ delete: (o) => {
649
+ o.deletionManager.deleteSelectedObjects();
650
650
  },
651
- lock: (i) => {
652
- i.objectLockManager.lockObject();
651
+ lock: (o) => {
652
+ o.objectLockManager.lockObject();
653
653
  },
654
- unlock: (i) => {
655
- i.objectLockManager.unlockObject();
654
+ unlock: (o) => {
655
+ o.objectLockManager.unlockObject();
656
656
  },
657
- bringForward: (i) => {
658
- i.layerManager.bringForward();
657
+ bringForward: (o) => {
658
+ o.layerManager.bringForward();
659
659
  },
660
- bringToFront: (i) => {
661
- i.layerManager.bringToFront();
660
+ bringToFront: (o) => {
661
+ o.layerManager.bringToFront();
662
662
  },
663
- sendToBack: (i) => {
664
- i.layerManager.sendToBack();
663
+ sendToBack: (o) => {
664
+ o.layerManager.sendToBack();
665
665
  },
666
- sendBackwards: (i) => {
667
- i.layerManager.sendBackwards();
666
+ sendBackwards: (o) => {
667
+ o.layerManager.sendBackwards();
668
668
  }
669
669
  }
670
670
  };
671
- function me(i, e) {
672
- var t = Object.keys(i);
671
+ function me(o, e) {
672
+ var t = Object.keys(o);
673
673
  if (Object.getOwnPropertySymbols) {
674
- var a = Object.getOwnPropertySymbols(i);
674
+ var a = Object.getOwnPropertySymbols(o);
675
675
  e && (a = a.filter(function(r) {
676
- return Object.getOwnPropertyDescriptor(i, r).enumerable;
676
+ return Object.getOwnPropertyDescriptor(o, r).enumerable;
677
677
  })), t.push.apply(t, a);
678
678
  }
679
679
  return t;
680
680
  }
681
- function M(i) {
681
+ function M(o) {
682
682
  for (var e = 1; e < arguments.length; e++) {
683
683
  var t = arguments[e] != null ? arguments[e] : {};
684
684
  e % 2 ? me(Object(t), !0).forEach(function(a) {
685
- ct(i, a, t[a]);
686
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(i, Object.getOwnPropertyDescriptors(t)) : me(Object(t)).forEach(function(a) {
687
- Object.defineProperty(i, a, Object.getOwnPropertyDescriptor(t, a));
685
+ ct(o, a, t[a]);
686
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : me(Object(t)).forEach(function(a) {
687
+ Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
688
688
  });
689
689
  }
690
- return i;
690
+ return o;
691
691
  }
692
- function ct(i, e, t) {
693
- return (e = ut(e)) in i ? Object.defineProperty(i, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : i[e] = t, i;
692
+ function ct(o, e, t) {
693
+ return (e = ut(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
694
694
  }
695
- function ut(i) {
696
- var e = dt(i, "string");
695
+ function ut(o) {
696
+ var e = dt(o, "string");
697
697
  return typeof e == "symbol" ? e : e + "";
698
698
  }
699
- function dt(i, e) {
700
- if (typeof i != "object" || !i) return i;
701
- var t = i[Symbol.toPrimitive];
699
+ function dt(o, e) {
700
+ if (typeof o != "object" || !o) return o;
701
+ var t = o[Symbol.toPrimitive];
702
702
  if (t !== void 0) {
703
- var a = t.call(i, e);
703
+ var a = t.call(o, e);
704
704
  if (typeof a != "object") return a;
705
705
  throw new TypeError("@@toPrimitive must return a primitive value.");
706
706
  }
707
- return (e === "string" ? String : Number)(i);
707
+ return (e === "string" ? String : Number)(o);
708
708
  }
709
709
  class lt {
710
710
  /**
@@ -756,14 +756,14 @@ class lt {
756
756
  this.el.innerHTML = "";
757
757
  var a = function() {
758
758
  var {
759
- name: o,
759
+ name: i,
760
760
  handle: s
761
761
  } = r, {
762
762
  icons: c,
763
763
  btnStyle: u,
764
764
  handlers: l
765
765
  } = t.config, d = document.createElement("button");
766
- d.innerHTML = c[s] ? '<img src="'.concat(c[s], '" title="').concat(o, '" />') : o, Object.assign(d.style, u), d.onclick = () => {
766
+ d.innerHTML = c[s] ? '<img src="'.concat(c[s], '" title="').concat(i, '" />') : i, Object.assign(d.style, u), d.onclick = () => {
767
767
  var h;
768
768
  return (h = l[s]) === null || h === void 0 ? void 0 : h.call(l, t.editor);
769
769
  }, t.el.appendChild(d);
@@ -838,12 +838,12 @@ class lt {
838
838
  canvas: r
839
839
  } = this;
840
840
  e.setCoords();
841
- var n = r.getZoom(), [, , , , o, s] = r.viewportTransform, {
841
+ var n = r.getZoom(), [, , , , i, s] = r.viewportTransform, {
842
842
  x: c
843
843
  } = e.getCenterPoint(), {
844
844
  top: u,
845
845
  height: l
846
- } = e.getBoundingRect(!1, !0), d = c * n + o, h = d - t.offsetWidth / 2, g = (u + l) * n + s + a.offsetTop;
846
+ } = e.getBoundingRect(!1, !0), d = c * n + i, h = d - t.offsetWidth / 2, g = (u + l) * n + s + a.offsetTop;
847
847
  Object.assign(t.style, {
848
848
  left: "".concat(h, "px"),
849
849
  top: "".concat(g, "px"),
@@ -858,26 +858,26 @@ class lt {
858
858
  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();
859
859
  }
860
860
  }
861
- function fe(i, e, t, a, r, n, o) {
861
+ function fe(o, e, t, a, r, n, i) {
862
862
  try {
863
- var s = i[n](o), c = s.value;
863
+ var s = o[n](i), c = s.value;
864
864
  } catch (u) {
865
865
  return void t(u);
866
866
  }
867
867
  s.done ? e(c) : Promise.resolve(c).then(a, r);
868
868
  }
869
- function V(i) {
869
+ function R(o) {
870
870
  return function() {
871
871
  var e = this, t = arguments;
872
872
  return new Promise(function(a, r) {
873
- var n = i.apply(e, t);
874
- function o(c) {
875
- fe(n, a, r, o, s, "next", c);
873
+ var n = o.apply(e, t);
874
+ function i(c) {
875
+ fe(n, a, r, i, s, "next", c);
876
876
  }
877
877
  function s(c) {
878
- fe(n, a, r, o, s, "throw", c);
878
+ fe(n, a, r, i, s, "throw", c);
879
879
  }
880
- o(void 0);
880
+ i(void 0);
881
881
  });
882
882
  };
883
883
  }
@@ -956,7 +956,7 @@ class ht {
956
956
  */
957
957
  loadStateFromFullState(e) {
958
958
  var t = this;
959
- return V(function* () {
959
+ return R(function* () {
960
960
  if (e) {
961
961
  console.log("loadStateFromFullState fullState", e), yield t.canvas.loadFromJSON(e);
962
962
  var a = t.canvas.getObjects().find((n) => n.id === "montage-area");
@@ -972,7 +972,7 @@ class ht {
972
972
  */
973
973
  undo() {
974
974
  var e = this;
975
- return V(function* () {
975
+ return R(function* () {
976
976
  if (!e.skipHistory) {
977
977
  if (e.currentIndex <= 0) {
978
978
  console.log("Нет предыдущих состояний для отмены.");
@@ -999,7 +999,7 @@ class ht {
999
999
  */
1000
1000
  redo() {
1001
1001
  var e = this;
1002
- return V(function* () {
1002
+ return R(function* () {
1003
1003
  if (!e.skipHistory) {
1004
1004
  if (e.currentIndex >= e.patches.length) {
1005
1005
  console.log("Нет состояний для повтора.");
@@ -1021,49 +1021,27 @@ class ht {
1021
1021
  })();
1022
1022
  }
1023
1023
  }
1024
- function Y(i) {
1025
- var {
1026
- montageArea: e,
1027
- imageObject: t,
1028
- scaleType: a = "contain"
1029
- } = i;
1030
- if (!e || !t) return 1;
1031
- var r = e.width, n = e.height, {
1032
- width: o,
1033
- height: s
1034
- } = t;
1035
- return a === "contain" || a === "image-contain" ? Math.min(r / o, n / s) : a === "cover" || a === "image-cover" ? Math.max(r / o, n / s) : 1;
1036
- }
1037
- function gt() {
1038
- var i = document.createElement("canvas");
1039
- i.width = 20, i.height = 20;
1040
- var e = i.getContext("2d");
1041
- return e.fillStyle = "#ddd", e.fillRect(0, 0, 40, 40), e.fillStyle = "#ccc", e.fillRect(0, 0, 10, 10), e.fillRect(10, 10, 10, 10), new Ee({
1042
- source: i,
1043
- repeat: "repeat"
1044
- });
1045
- }
1046
- var vt = 0.1, mt = 2, ft = 0.1, Mt = 90, k = 16, x = 16, D = 4096, C = 4096;
1047
- function Me(i, e, t, a, r, n, o) {
1024
+ var gt = 0.1, vt = 2, mt = 0.1, ft = 90, k = 16, x = 16, D = 4096, C = 4096;
1025
+ function Me(o, e, t, a, r, n, i) {
1048
1026
  try {
1049
- var s = i[n](o), c = s.value;
1027
+ var s = o[n](i), c = s.value;
1050
1028
  } catch (u) {
1051
1029
  return void t(u);
1052
1030
  }
1053
1031
  s.done ? e(c) : Promise.resolve(c).then(a, r);
1054
1032
  }
1055
- function P(i) {
1033
+ function P(o) {
1056
1034
  return function() {
1057
1035
  var e = this, t = arguments;
1058
1036
  return new Promise(function(a, r) {
1059
- var n = i.apply(e, t);
1060
- function o(c) {
1061
- Me(n, a, r, o, s, "next", c);
1037
+ var n = o.apply(e, t);
1038
+ function i(c) {
1039
+ Me(n, a, r, i, s, "next", c);
1062
1040
  }
1063
1041
  function s(c) {
1064
- Me(n, a, r, o, s, "throw", c);
1042
+ Me(n, a, r, i, s, "throw", c);
1065
1043
  }
1066
- o(void 0);
1044
+ i(void 0);
1067
1045
  });
1068
1046
  };
1069
1047
  }
@@ -1096,7 +1074,7 @@ class L {
1096
1074
  source: a,
1097
1075
  scale: r = "image-".concat(t.options.scaleType),
1098
1076
  withoutSave: n = !1,
1099
- contentType: o = "image/png"
1077
+ contentType: i = "image/png"
1100
1078
  } = e;
1101
1079
  if (a) {
1102
1080
  var {
@@ -1113,33 +1091,33 @@ class L {
1113
1091
  else if (typeof a == "string") {
1114
1092
  var g = yield fetch(a, {
1115
1093
  mode: "cors"
1116
- }), f = yield g.blob({
1117
- type: o,
1094
+ }), v = yield g.blob({
1095
+ type: i,
1118
1096
  quality: 1
1119
1097
  });
1120
- d = URL.createObjectURL(f);
1098
+ d = URL.createObjectURL(v);
1121
1099
  } else
1122
1100
  throw new Error("ImportImage. Неверный тип источника изображения. Ожидается URL или объект File.");
1123
1101
  t._createdBlobUrls.push(d);
1124
- var v = L.getFormatFromContentType(o);
1125
- if (v === "svg") {
1126
- var j = yield ke(d);
1102
+ var m = L.getFormatFromContentType(i);
1103
+ if (m === "svg") {
1104
+ var j = yield Ee(d);
1127
1105
  h = z.groupSVGElements(j.objects, j.options);
1128
1106
  } else
1129
1107
  h = yield de.fromURL(d, {
1130
1108
  crossOrigin: "anonymous"
1131
1109
  });
1132
1110
  var {
1133
- width: m,
1111
+ width: f,
1134
1112
  height: b
1135
1113
  } = h;
1136
- if (b > C || m > D) {
1114
+ if (b > C || f > D) {
1137
1115
  var y = yield t.resizeImageToBoundaries(h._element.src, "max"), S = URL.createObjectURL(y);
1138
1116
  t._createdBlobUrls.push(S), h = yield de.fromURL(S, {
1139
1117
  crossOrigin: "anonymous"
1140
1118
  });
1141
1119
  }
1142
- if (h.set("id", "".concat(h.type, "-").concat(I())), h.set("format", v), r === "scale-montage")
1120
+ if (h.set("id", "".concat(h.type, "-").concat(I())), h.set("format", m), r === "scale-montage")
1143
1121
  t.editor.canvasManager.scaleMontageAreaToImage({
1144
1122
  object: h,
1145
1123
  withoutSave: !0
@@ -1148,8 +1126,7 @@ class L {
1148
1126
  var {
1149
1127
  width: O,
1150
1128
  height: A
1151
- } = c, w = Y({
1152
- montageArea: c,
1129
+ } = c, w = t.calculateScaleFactor({
1153
1130
  imageObject: h,
1154
1131
  scaleType: r
1155
1132
  });
@@ -1157,7 +1134,7 @@ class L {
1157
1134
  object: h,
1158
1135
  type: "contain",
1159
1136
  withoutSave: !0
1160
- }) : r === "image-cover" && (m > O || b > A) && u.fitObject({
1137
+ }) : r === "image-cover" && (f > O || b > A) && u.fitObject({
1161
1138
  object: h,
1162
1139
  type: "cover",
1163
1140
  withoutSave: !0
@@ -1187,13 +1164,13 @@ class L {
1187
1164
  console.warn("importImage. ".concat(n)), a.editor.canvas.fire("editor:warning", {
1188
1165
  message: n
1189
1166
  });
1190
- var o = yield a.editor.workerManager.post("resizeImage", {
1167
+ var i = yield a.editor.workerManager.post("resizeImage", {
1191
1168
  dataURL: e,
1192
1169
  maxWidth: D,
1193
1170
  maxHeight: C,
1194
1171
  sizeType: r
1195
1172
  });
1196
- return o;
1173
+ return i;
1197
1174
  })();
1198
1175
  }
1199
1176
  /**
@@ -1214,7 +1191,7 @@ class L {
1214
1191
  fileName: a = "image.png",
1215
1192
  contentType: r = "image/png",
1216
1193
  exportAsBase64: n = !1,
1217
- exportAsBlob: o = !1
1194
+ exportAsBlob: i = !1
1218
1195
  } = e.length > 0 && e[0] !== void 0 ? e[0] : {}, {
1219
1196
  canvas: s,
1220
1197
  montageArea: c,
@@ -1223,25 +1200,25 @@ class L {
1223
1200
  c.setCoords();
1224
1201
  var {
1225
1202
  left: g,
1226
- top: f,
1227
- width: v,
1203
+ top: v,
1204
+ width: m,
1228
1205
  height: j
1229
- } = c.getBoundingRect(), m = yield s.clone(["id", "format", "locked"]);
1230
- ["image/jpg", "image/jpeg"].includes(d) && (m.backgroundColor = "#ffffff");
1231
- var b = m.getObjects().find((N) => N.id === c.id);
1232
- b.visible = !1, m.viewportTransform = [1, 0, 0, 1, -g, -f], m.setDimensions({
1233
- width: v,
1206
+ } = c.getBoundingRect(), f = yield s.clone(["id", "format", "locked"]);
1207
+ ["image/jpg", "image/jpeg"].includes(d) && (f.backgroundColor = "#ffffff");
1208
+ var b = f.getObjects().find((N) => N.id === c.id);
1209
+ b.visible = !1, f.viewportTransform = [1, 0, 0, 1, -g, -v], f.setDimensions({
1210
+ width: m,
1234
1211
  height: j
1235
1212
  }, {
1236
1213
  backstoreOnly: !0
1237
- }), m.renderAll();
1238
- var y = m.getObjects().filter((N) => N.format).every((N) => N.format === "svg");
1214
+ }), f.renderAll();
1215
+ var y = f.getObjects().filter((N) => N.format).every((N) => N.format === "svg");
1239
1216
  if (h === "svg" && y) {
1240
- var S = m.toSVG();
1241
- m.dispose();
1217
+ var S = f.toSVG();
1218
+ f.dispose();
1242
1219
  var O = L._exportSVGStringAsFile(S, {
1243
1220
  exportAsBase64: n,
1244
- exportAsBlob: o,
1221
+ exportAsBlob: i,
1245
1222
  fileName: a
1246
1223
  }), A = {
1247
1224
  image: O,
@@ -1252,9 +1229,9 @@ class L {
1252
1229
  return s.fire("editor:canvas-exported", A), A;
1253
1230
  }
1254
1231
  var w = yield new Promise((N) => {
1255
- m.getElement().toBlob(N);
1232
+ f.getElement().toBlob(N);
1256
1233
  });
1257
- if (m.dispose(), o) {
1234
+ if (f.dispose(), i) {
1258
1235
  var T = {
1259
1236
  image: w,
1260
1237
  format: h,
@@ -1269,13 +1246,13 @@ class L {
1269
1246
  bitmap: ae
1270
1247
  }, [ae]);
1271
1248
  if (l) {
1272
- var ne = 0.264583, W = v * ne, _ = j * ne, we = (yield t.editor.moduleLoader.loadModule("jspdf")).jsPDF, R = new we({
1273
- orientation: W > _ ? "landscape" : "portrait",
1249
+ var ne = 0.264583, H = m * ne, W = j * ne, we = (yield t.editor.moduleLoader.loadModule("jspdf")).jsPDF, _ = new we({
1250
+ orientation: H > W ? "landscape" : "portrait",
1274
1251
  unit: "mm",
1275
- format: [W, _]
1252
+ format: [H, W]
1276
1253
  });
1277
- if (R.addImage(re, "JPG", 0, 0, W, _), n) {
1278
- var Ne = R.output("datauristring"), ie = {
1254
+ if (_.addImage(re, "JPG", 0, 0, H, W), n) {
1255
+ var Ne = _.output("datauristring"), ie = {
1279
1256
  image: Ne,
1280
1257
  format: "pdf",
1281
1258
  contentType: "application/pdf",
@@ -1283,7 +1260,7 @@ class L {
1283
1260
  };
1284
1261
  return s.fire("editor:canvas-exported", ie), ie;
1285
1262
  }
1286
- var De = R.output("blob"), Ce = new File([De], a, {
1263
+ var De = _.output("blob"), Ce = new File([De], a, {
1287
1264
  type: "application/pdf"
1288
1265
  }), oe = {
1289
1266
  image: Ce,
@@ -1331,7 +1308,7 @@ class L {
1331
1308
  object: a,
1332
1309
  fileName: r = "image.png",
1333
1310
  contentType: n = "image/png",
1334
- exportAsBase64: o = !1,
1311
+ exportAsBase64: i = !1,
1335
1312
  exportAsBlob: s = !1
1336
1313
  } = e.length > 0 && e[0] !== void 0 ? e[0] : {}, {
1337
1314
  canvas: c,
@@ -1344,29 +1321,29 @@ class L {
1344
1321
  var d = L.getFormatFromContentType(n);
1345
1322
  if (d === "svg") {
1346
1323
  var h = l.toSVG(), g = t._exportSVGStringAsFile(h, {
1347
- exportAsBase64: o,
1324
+ exportAsBase64: i,
1348
1325
  exportAsBlob: s,
1349
1326
  fileName: r
1350
- }), f = {
1327
+ }), v = {
1351
1328
  image: g,
1352
1329
  format: d,
1353
1330
  contentType: "image/svg+xml",
1354
1331
  fileName: r.replace(/\.[^/.]+$/, ".svg")
1355
1332
  };
1356
- return c.fire("editor:object-exported", f), f;
1333
+ return c.fire("editor:object-exported", v), v;
1357
1334
  }
1358
- if (o) {
1359
- var v = yield createImageBitmap(l._element), j = yield u.post("toDataURL", {
1335
+ if (i) {
1336
+ var m = yield createImageBitmap(l._element), j = yield u.post("toDataURL", {
1360
1337
  format: d,
1361
1338
  quality: 1,
1362
- bitmap: v
1363
- }, [v]), m = {
1339
+ bitmap: m
1340
+ }, [m]), f = {
1364
1341
  image: j,
1365
1342
  format: d,
1366
1343
  contentType: n,
1367
1344
  fileName: r
1368
1345
  };
1369
- return c.fire("editor:object-exported", m), m;
1346
+ return c.fire("editor:object-exported", f), f;
1370
1347
  }
1371
1348
  var b = l.toCanvasElement(), y = yield new Promise((w) => {
1372
1349
  b.toBlob(w);
@@ -1432,8 +1409,28 @@ class L {
1432
1409
  var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", t = e.match(/^[^/]+\/([^+;]+)/);
1433
1410
  return t ? t[1] : "";
1434
1411
  }
1412
+ /**
1413
+ * Рассчитывает коэффициент масштабирования изображения.
1414
+ * @param {object} imageObject - объект изображения
1415
+ * @param {string} scaleType - тип масштабирования ('contain' или 'cover')
1416
+ * @returns {number} коэффициент масштабирования
1417
+ */
1418
+ calculateScaleFactor(e) {
1419
+ var {
1420
+ imageObject: t,
1421
+ scaleType: a = "contain"
1422
+ } = e, {
1423
+ montageArea: r
1424
+ } = this.editor;
1425
+ if (!r || !t) return 1;
1426
+ var n = r.width, i = r.height, {
1427
+ width: s,
1428
+ height: c
1429
+ } = t;
1430
+ return a === "contain" || a === "image-contain" ? Math.min(n / s, i / c) : a === "cover" || a === "image-cover" ? Math.max(n / s, i / c) : 1;
1431
+ }
1435
1432
  }
1436
- class jt {
1433
+ class Mt {
1437
1434
  /**
1438
1435
  * @param {object} options
1439
1436
  * @param {ImageEditor} options.editor – экземпляр редактора
@@ -1461,15 +1458,15 @@ class jt {
1461
1458
  if (e) {
1462
1459
  var {
1463
1460
  canvas: n,
1464
- montageArea: o,
1461
+ montageArea: i,
1465
1462
  options: {
1466
1463
  canvasBackstoreWidth: s
1467
1464
  }
1468
1465
  } = this.editor, {
1469
1466
  width: c,
1470
1467
  height: u
1471
- } = o, l = Number(Math.max(Math.min(e, D), k));
1472
- if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreWidth(s) : this.setCanvasBackstoreWidth(l), o.set({
1468
+ } = i, l = Number(Math.max(Math.min(e, D), k));
1469
+ if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreWidth(s) : this.setCanvasBackstoreWidth(l), i.set({
1473
1470
  width: l
1474
1471
  }), n.clipPath.set({
1475
1472
  width: l
@@ -1480,9 +1477,9 @@ class jt {
1480
1477
  }
1481
1478
  var {
1482
1479
  left: g,
1483
- top: f
1484
- } = this.getObjectDefaultCoords(o), v = n.getZoom();
1485
- n.setViewportTransform([v, 0, 0, v, g, f]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), n == null || n.fire("editor:resolution-width-changed", {
1480
+ top: v
1481
+ } = this.getObjectDefaultCoords(i), m = n.getZoom();
1482
+ n.setViewportTransform([m, 0, 0, m, g, v]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), n == null || n.fire("editor:resolution-width-changed", {
1486
1483
  width: e
1487
1484
  });
1488
1485
  }
@@ -1504,15 +1501,15 @@ class jt {
1504
1501
  if (e) {
1505
1502
  var {
1506
1503
  canvas: n,
1507
- montageArea: o,
1504
+ montageArea: i,
1508
1505
  options: {
1509
1506
  canvasBackstoreHeight: s
1510
1507
  }
1511
1508
  } = this.editor, {
1512
1509
  width: c,
1513
1510
  height: u
1514
- } = o, l = Number(Math.max(Math.min(e, C), x));
1515
- if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreHeight(s) : this.setCanvasBackstoreHeight(l), o.set({
1511
+ } = i, l = Number(Math.max(Math.min(e, C), x));
1512
+ if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreHeight(s) : this.setCanvasBackstoreHeight(l), i.set({
1516
1513
  height: l
1517
1514
  }), n.clipPath.set({
1518
1515
  height: l
@@ -1523,9 +1520,9 @@ class jt {
1523
1520
  }
1524
1521
  var {
1525
1522
  left: g,
1526
- top: f
1527
- } = this.getObjectDefaultCoords(o), v = n.getZoom();
1528
- n.setViewportTransform([v, 0, 0, v, g, f]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), n == null || n.fire("editor:resolution-height-changed", {
1523
+ top: v
1524
+ } = this.getObjectDefaultCoords(i), m = n.getZoom();
1525
+ n.setViewportTransform([m, 0, 0, m, g, v]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), n == null || n.fire("editor:resolution-height-changed", {
1529
1526
  height: e
1530
1527
  });
1531
1528
  }
@@ -1538,7 +1535,7 @@ class jt {
1538
1535
  var {
1539
1536
  canvas: e,
1540
1537
  montageArea: t
1541
- } = this.editor, a = e.getWidth(), r = e.getHeight(), n = e.getZoom(), o = new xe(a / 2, r / 2);
1538
+ } = this.editor, a = e.getWidth(), r = e.getHeight(), n = e.getZoom(), i = new ke(a / 2, r / 2);
1542
1539
  t.set({
1543
1540
  left: a / 2,
1544
1541
  top: r / 2
@@ -1547,7 +1544,7 @@ class jt {
1547
1544
  top: r / 2
1548
1545
  }), e.renderAll();
1549
1546
  var s = e.viewportTransform;
1550
- s[4] = a / 2 - o.x * n, s[5] = r / 2 - o.y * n, e.setViewportTransform(s), e.renderAll();
1547
+ s[4] = a / 2 - i.x * n, s[5] = r / 2 - i.y * n, e.setViewportTransform(s), e.renderAll();
1551
1548
  }
1552
1549
  /**
1553
1550
  * Метод для получения координат объекта с учетом текущего зума
@@ -1565,7 +1562,7 @@ class jt {
1565
1562
  var {
1566
1563
  width: r,
1567
1564
  height: n
1568
- } = a, o = t.getZoom(), s = (r - r * o) / 2, c = (n - n * o) / 2;
1565
+ } = a, i = t.getZoom(), s = (r - r * i) / 2, c = (n - n * i) / 2;
1569
1566
  return {
1570
1567
  left: s,
1571
1568
  top: c
@@ -1594,10 +1591,10 @@ class jt {
1594
1591
  adaptCanvasToContainer() {
1595
1592
  var {
1596
1593
  canvas: e
1597
- } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, n = Math.max(Math.min(a, D), k), o = Math.max(Math.min(r, C), x);
1598
- console.log("adaptCanvasToContainer newWidth", n), console.log("adaptCanvasToContainer newHeight", o), e.setDimensions({
1594
+ } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, n = Math.max(Math.min(a, D), k), i = Math.max(Math.min(r, C), x);
1595
+ console.log("adaptCanvasToContainer newWidth", n), console.log("adaptCanvasToContainer newHeight", i), e.setDimensions({
1599
1596
  width: n,
1600
- height: o
1597
+ height: i
1601
1598
  }, {
1602
1599
  backstoreOnly: !0
1603
1600
  });
@@ -1695,23 +1692,23 @@ class jt {
1695
1692
  options: {
1696
1693
  editorContainer: n
1697
1694
  }
1698
- } = this.editor, o = [];
1695
+ } = this.editor, i = [];
1699
1696
  switch (e) {
1700
1697
  case "canvas":
1701
- o.push(r.lowerCanvasEl, r.upperCanvasEl);
1698
+ i.push(r.lowerCanvasEl, r.upperCanvasEl);
1702
1699
  break;
1703
1700
  case "wrapper":
1704
- o.push(r.wrapperEl);
1701
+ i.push(r.wrapperEl);
1705
1702
  break;
1706
1703
  case "container":
1707
- o.push(n);
1704
+ i.push(n);
1708
1705
  break;
1709
1706
  default:
1710
- o.push(r.lowerCanvasEl, r.upperCanvasEl);
1707
+ i.push(r.lowerCanvasEl, r.upperCanvasEl);
1711
1708
  }
1712
1709
  var s = t === "width" ? "width" : "height";
1713
1710
  if (typeof a == "string") {
1714
- o.forEach((l) => {
1711
+ i.forEach((l) => {
1715
1712
  l.style[s] = a;
1716
1713
  });
1717
1714
  return;
@@ -1719,7 +1716,7 @@ class jt {
1719
1716
  var c = parseFloat(a);
1720
1717
  if (!isNaN(c)) {
1721
1718
  var u = "".concat(c, "px");
1722
- o.forEach((l) => {
1719
+ i.forEach((l) => {
1723
1720
  l.style[s] = u;
1724
1721
  }), r.fire("editor:display-".concat(e, "-").concat(s, "-changed"), {
1725
1722
  element: e,
@@ -1744,7 +1741,7 @@ class jt {
1744
1741
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
1745
1742
  canvas: r,
1746
1743
  montageArea: n,
1747
- transformManager: o,
1744
+ transformManager: i,
1748
1745
  options: {
1749
1746
  montageAreaWidth: s,
1750
1747
  montageAreaHeight: c
@@ -1761,23 +1758,23 @@ class jt {
1761
1758
  message: h
1762
1759
  });
1763
1760
  }
1764
- var g = Math.min(l, D), f = Math.min(d, C);
1761
+ var g = Math.min(l, D), v = Math.min(d, C);
1765
1762
  if (t) {
1766
1763
  var {
1767
- width: v,
1764
+ width: m,
1768
1765
  height: j
1769
- } = n, m = l / v, b = d / j, y = Math.max(m, b);
1770
- g = v * y, f = j * y;
1766
+ } = n, f = l / m, b = d / j, y = Math.max(f, b);
1767
+ g = m * y, v = j * y;
1771
1768
  }
1772
1769
  this.setResolutionWidth(g, {
1773
1770
  withoutSave: !0
1774
- }), this.setResolutionHeight(f, {
1771
+ }), this.setResolutionHeight(v, {
1775
1772
  withoutSave: !0
1776
- }), (l > s || d > c) && o.calculateAndApplyDefaultZoom(s, c), o.resetObject(u, {
1773
+ }), (l > s || d > c) && i.calculateAndApplyDefaultZoom(s, c), i.resetObject(u, {
1777
1774
  withoutSave: !0
1778
1775
  }), r.centerObject(u), r.renderAll(), a || this.editor.historyManager.saveState(), r.fire("editor:canvas-scaled", {
1779
1776
  width: g,
1780
- height: f
1777
+ height: v
1781
1778
  });
1782
1779
  }
1783
1780
  }
@@ -1808,12 +1805,12 @@ class jt {
1808
1805
  historyManager: r,
1809
1806
  options: {
1810
1807
  montageAreaWidth: n,
1811
- montageAreaHeight: o
1808
+ montageAreaHeight: i
1812
1809
  }
1813
1810
  } = this.editor;
1814
1811
  a.resetZoom(), this.setResolutionWidth(n, {
1815
1812
  withoutSave: !0
1816
- }), this.setResolutionHeight(o, {
1813
+ }), this.setResolutionHeight(i, {
1817
1814
  withoutSave: !0
1818
1815
  }), t.renderAll(), a.resetObjects(), e || r.saveState(), t.fire("editor:default-scale-set");
1819
1816
  }
@@ -1832,7 +1829,7 @@ class jt {
1832
1829
  return r.filter((n) => n.id !== t.id && n.id !== a.id);
1833
1830
  }
1834
1831
  }
1835
- class yt {
1832
+ class jt {
1836
1833
  /**
1837
1834
  * @param {object} options
1838
1835
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -1854,7 +1851,7 @@ class yt {
1854
1851
  var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.options.montageAreaWidth, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.options.montageAreaHeight, {
1855
1852
  width: a,
1856
1853
  height: r
1857
- } = this.editor.montageArea, n = e / a, o = t / r, s = Math.min(n, o), {
1854
+ } = this.editor.montageArea, n = e / a, i = t / r, s = Math.min(n, i), {
1858
1855
  minZoom: c,
1859
1856
  maxZoom: u,
1860
1857
  maxZoomFactor: l
@@ -1871,16 +1868,16 @@ class yt {
1871
1868
  * Если передавать координаты курсора, то нужно быть аккуратнее, так как юзер может выйти за пределы рабочей области
1872
1869
  */
1873
1870
  zoom() {
1874
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ft, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
1871
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : mt, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
1875
1872
  if (e) {
1876
1873
  var {
1877
1874
  canvas: a,
1878
1875
  minZoom: r,
1879
1876
  maxZoom: n
1880
- } = this.editor, o = a.getZoom(), {
1877
+ } = this.editor, i = a.getZoom(), {
1881
1878
  x: s = t.pointX,
1882
1879
  y: c = t.pointY
1883
- } = a.getCenterPoint(), u = Number((o + Number(e)).toFixed(2));
1880
+ } = a.getCenterPoint(), u = Number((i + Number(e)).toFixed(2));
1884
1881
  u > n && (u = n), u < r && (u = r), a.zoomToPoint({
1885
1882
  x: Number(s),
1886
1883
  y: Number(c)
@@ -1904,16 +1901,16 @@ class yt {
1904
1901
  maxZoom: r
1905
1902
  } = this.editor, {
1906
1903
  x: n,
1907
- y: o
1904
+ y: i
1908
1905
  } = t.getCenterPoint(), s = e;
1909
1906
  e > r && (s = r), e < a && (s = a), t.zoomToPoint({
1910
1907
  x: Number(n),
1911
- y: Number(o)
1908
+ y: Number(i)
1912
1909
  }, s), t.fire("editor:zoom-changed", {
1913
1910
  currentZoom: t.getZoom(),
1914
1911
  zoom: s,
1915
1912
  pointX: n,
1916
- pointY: o
1913
+ pointY: i
1917
1914
  });
1918
1915
  }
1919
1916
  /**
@@ -1943,16 +1940,16 @@ class yt {
1943
1940
  * @fires editor:object-rotated
1944
1941
  */
1945
1942
  rotate() {
1946
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Mt, {
1943
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ft, {
1947
1944
  withoutSave: t
1948
1945
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
1949
1946
  canvas: a,
1950
1947
  historyManager: r
1951
1948
  } = this.editor, n = a.getActiveObject();
1952
1949
  if (n) {
1953
- var o = n.angle + e;
1954
- n.rotate(o), n.setCoords(), a.renderAll(), t || r.saveState(), a.fire("editor:object-rotated", {
1955
- angle: o
1950
+ var i = n.angle + e;
1951
+ n.rotate(i), n.setCoords(), a.renderAll(), t || r.saveState(), a.fire("editor:object-rotated", {
1952
+ angle: i
1956
1953
  });
1957
1954
  }
1958
1955
  }
@@ -1999,10 +1996,10 @@ class yt {
1999
1996
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2000
1997
  canvas: r,
2001
1998
  historyManager: n
2002
- } = this.editor, o = e || r.getActiveObject();
2003
- o && (o.type === "activeselection" ? o.getObjects().forEach((s) => {
1999
+ } = this.editor, i = e || r.getActiveObject();
2000
+ i && (i.type === "activeselection" ? i.getObjects().forEach((s) => {
2004
2001
  s.set("opacity", t);
2005
- }) : o.set("opacity", t), r.renderAll(), a || n.saveState(), r.fire("editor:object-opacity-changed", t));
2002
+ }) : i.set("opacity", t), r.renderAll(), a || n.saveState(), r.fire("editor:object-opacity-changed", t));
2006
2003
  }
2007
2004
  /**
2008
2005
  * Масштабирование изображения
@@ -2023,33 +2020,32 @@ class yt {
2023
2020
  fitAsOneObject: r
2024
2021
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2025
2022
  canvas: n,
2026
- montageArea: o,
2027
- historyManager: s
2028
- } = this.editor, c = e || n.getActiveObject();
2029
- if (c) {
2030
- if (["activeselection"].includes(c.type) && !r) {
2031
- var u = c.getObjects();
2032
- n.discardActiveObject(), u.forEach((h) => {
2033
- var g = Y({
2034
- montageArea: o,
2035
- imageObject: h,
2023
+ montageArea: i,
2024
+ imageManager: s,
2025
+ historyManager: c
2026
+ } = this.editor, u = e || n.getActiveObject();
2027
+ if (u) {
2028
+ if (["activeselection"].includes(u.type) && !r) {
2029
+ var l = u.getObjects();
2030
+ n.discardActiveObject(), l.forEach((g) => {
2031
+ var v = s.calculateScaleFactor({
2032
+ imageObject: g,
2036
2033
  scaleType: t
2037
2034
  });
2038
- h.scale(g), n.centerObject(h);
2035
+ g.scale(v), n.centerObject(g);
2039
2036
  });
2040
- var l = new Z(u, {
2037
+ var d = new Z(l, {
2041
2038
  canvas: n
2042
2039
  });
2043
- n.setActiveObject(l);
2040
+ n.setActiveObject(d);
2044
2041
  } else {
2045
- var d = Y({
2046
- montageArea: o,
2047
- imageObject: c,
2042
+ var h = s.calculateScaleFactor({
2043
+ imageObject: u,
2048
2044
  scaleType: t
2049
2045
  });
2050
- c.scale(d), n.centerObject(c);
2046
+ u.scale(h), n.centerObject(u);
2051
2047
  }
2052
- n.renderAll(), a || s.saveState(), n.fire("editor:image-fitted", {
2048
+ n.renderAll(), a || c.saveState(), n.fire("editor:image-fitted", {
2053
2049
  type: t
2054
2050
  });
2055
2051
  }
@@ -2076,52 +2072,52 @@ class yt {
2076
2072
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2077
2073
  canvas: r,
2078
2074
  montageArea: n,
2079
- historyManager: o,
2075
+ imageManager: i,
2076
+ historyManager: s,
2080
2077
  options: {
2081
- scaleType: s
2078
+ scaleType: c
2082
2079
  }
2083
- } = this.editor, c = e || r.getActiveObject();
2084
- if (!(!c || c.locked)) {
2085
- if (o.suspendHistory(), c.type !== "image" && c.format !== "svg" && (c.set({
2080
+ } = this.editor, u = e || r.getActiveObject();
2081
+ if (!(!u || u.locked)) {
2082
+ if (s.suspendHistory(), u.type !== "image" && u.format !== "svg" && (u.set({
2086
2083
  scaleX: 1,
2087
2084
  scaleY: 1,
2088
2085
  flipX: !1,
2089
2086
  flipY: !1,
2090
2087
  angle: 0
2091
- }), r.centerObject(c), r.renderAll()), t)
2088
+ }), r.centerObject(u), r.renderAll()), t)
2092
2089
  this.fitObject({
2093
- object: c,
2090
+ object: u,
2094
2091
  withoutSave: !0
2095
2092
  });
2096
2093
  else {
2097
2094
  var {
2098
- width: u,
2099
- height: l
2095
+ width: l,
2096
+ height: d
2100
2097
  } = n, {
2101
- width: d,
2102
- height: h
2103
- } = c, g = Y({
2104
- montageArea: n,
2105
- imageObject: c,
2106
- scaleType: s
2098
+ width: h,
2099
+ height: g
2100
+ } = u, v = i.calculateScaleFactor({
2101
+ imageObject: u,
2102
+ scaleType: c
2107
2103
  });
2108
- s === "contain" && g < 1 || s === "cover" && (d > u || h > l) ? this.fitObject({
2109
- object: c,
2104
+ c === "contain" && v < 1 || c === "cover" && (h > l || g > d) ? this.fitObject({
2105
+ object: u,
2110
2106
  withoutSave: !0
2111
- }) : c.set({
2107
+ }) : u.set({
2112
2108
  scaleX: 1,
2113
2109
  scaleY: 1
2114
2110
  });
2115
2111
  }
2116
- c.set({
2112
+ u.set({
2117
2113
  flipX: !1,
2118
2114
  flipY: !1,
2119
2115
  angle: 0
2120
- }), r.centerObject(c), r.renderAll(), o.resumeHistory(), a || o.saveState(), r.fire("editor:object-reset");
2116
+ }), r.centerObject(u), r.renderAll(), s.resumeHistory(), a || s.saveState(), r.fire("editor:object-reset");
2121
2117
  }
2122
2118
  }
2123
2119
  }
2124
- class pt {
2120
+ class yt {
2125
2121
  /**
2126
2122
  * @param {object} options
2127
2123
  * @param {ImageEditor} options.editor – экземпляр редактора
@@ -2172,13 +2168,13 @@ class pt {
2172
2168
  var {
2173
2169
  left: r,
2174
2170
  top: n,
2175
- width: o,
2171
+ width: i,
2176
2172
  height: s
2177
2173
  } = t.getBoundingRect();
2178
2174
  this.overlayMask.set({
2179
2175
  left: r,
2180
2176
  top: n,
2181
- width: o,
2177
+ width: i,
2182
2178
  height: s
2183
2179
  }), e.discardActiveObject(), this.editor.layerManager.bringToFront(this.overlayMask, {
2184
2180
  withoutSave: !0
@@ -2221,7 +2217,7 @@ class pt {
2221
2217
  }
2222
2218
  }
2223
2219
  }
2224
- class H {
2220
+ class Y {
2225
2221
  /**
2226
2222
  * @param {object} options
2227
2223
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2248,8 +2244,8 @@ class H {
2248
2244
  } = this.editor;
2249
2245
  r.suspendHistory();
2250
2246
  var n = e || a.getActiveObject();
2251
- n && (n.type === "activeselection" ? n.getObjects().forEach((o) => {
2252
- a.bringObjectToFront(o);
2247
+ n && (n.type === "activeselection" ? n.getObjects().forEach((i) => {
2248
+ a.bringObjectToFront(i);
2253
2249
  }) : a.bringObjectToFront(n), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-to-front"));
2254
2250
  }
2255
2251
  /**
@@ -2268,7 +2264,7 @@ class H {
2268
2264
  } = this.editor;
2269
2265
  r.suspendHistory();
2270
2266
  var n = e || a.getActiveObject();
2271
- n && (n.type === "activeselection" ? H._moveSelectionForward(a, n) : a.bringObjectForward(n), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-forward"));
2267
+ n && (n.type === "activeselection" ? Y._moveSelectionForward(a, n) : a.bringObjectForward(n), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-forward"));
2272
2268
  }
2273
2269
  /**
2274
2270
  * Отправить объект на задний план по оси Z
@@ -2285,7 +2281,7 @@ class H {
2285
2281
  montageArea: r,
2286
2282
  historyManager: n,
2287
2283
  interactionBlocker: {
2288
- overlayMask: o
2284
+ overlayMask: i
2289
2285
  }
2290
2286
  } = this.editor;
2291
2287
  n.suspendHistory();
@@ -2296,7 +2292,7 @@ class H {
2296
2292
  a.sendObjectToBack(c[u]);
2297
2293
  else
2298
2294
  a.sendObjectToBack(s);
2299
- a.sendObjectToBack(r), a.sendObjectToBack(o), a.renderAll(), n.resumeHistory(), t || n.saveState(), a.fire("editor:object-send-to-back");
2295
+ a.sendObjectToBack(r), a.sendObjectToBack(i), a.renderAll(), n.resumeHistory(), t || n.saveState(), a.fire("editor:object-send-to-back");
2300
2296
  }
2301
2297
  }
2302
2298
  /**
@@ -2313,12 +2309,12 @@ class H {
2313
2309
  montageArea: r,
2314
2310
  historyManager: n,
2315
2311
  interactionBlocker: {
2316
- overlayMask: o
2312
+ overlayMask: i
2317
2313
  }
2318
2314
  } = this.editor;
2319
2315
  n.suspendHistory();
2320
2316
  var s = e || a.getActiveObject();
2321
- s && (s.type === "activeselection" ? H._moveSelectionBackwards(a, s) : a.sendObjectBackwards(s), a.sendObjectToBack(r), a.sendObjectToBack(o), a.renderAll(), n.resumeHistory(), t || n.saveState(), a.fire("editor:object-send-backwards"));
2317
+ s && (s.type === "activeselection" ? Y._moveSelectionBackwards(a, s) : a.sendObjectBackwards(s), a.sendObjectToBack(r), a.sendObjectToBack(i), a.renderAll(), n.resumeHistory(), t || n.saveState(), a.fire("editor:object-send-backwards"));
2322
2318
  }
2323
2319
  /**
2324
2320
  * Сдвигает выделенные объекты на один уровень вверх относительно ближайшего верхнего объекта
@@ -2328,20 +2324,20 @@ class H {
2328
2324
  * @private
2329
2325
  */
2330
2326
  static _moveSelectionForward(e, t) {
2331
- for (var a = e.getObjects(), r = t.getObjects(), n = r.map((l) => a.indexOf(l)), o = -1, s = function(d) {
2327
+ for (var a = e.getObjects(), r = t.getObjects(), n = r.map((l) => a.indexOf(l)), i = -1, s = function(d) {
2332
2328
  var h = a[d];
2333
2329
  if (!r.includes(h) && n.some((g) => d > g))
2334
- return o = d, 1;
2330
+ return i = d, 1;
2335
2331
  }, c = 0; c < a.length && !s(c); c += 1)
2336
2332
  ;
2337
- if (o !== -1) {
2333
+ if (i !== -1) {
2338
2334
  var u = r.map((l) => ({
2339
2335
  obj: l,
2340
2336
  index: a.indexOf(l)
2341
2337
  })).sort((l, d) => d.index - l.index);
2342
2338
  u.forEach((l) => {
2343
2339
  var d = a.indexOf(l.obj);
2344
- d < o && (e.moveObjectTo(l.obj, o), o = d);
2340
+ d < i && (e.moveObjectTo(l.obj, i), i = d);
2345
2341
  });
2346
2342
  }
2347
2343
  }
@@ -2353,68 +2349,68 @@ class H {
2353
2349
  * @private
2354
2350
  */
2355
2351
  static _moveSelectionBackwards(e, t) {
2356
- for (var a = e.getObjects(), r = t.getObjects(), n = Math.min(...r.map((s) => a.indexOf(s))), o = r.length - 1; o >= 0; o -= 1)
2357
- e.moveObjectTo(r[o], n - 1);
2352
+ for (var a = e.getObjects(), r = t.getObjects(), n = Math.min(...r.map((s) => a.indexOf(s))), i = r.length - 1; i >= 0; i -= 1)
2353
+ e.moveObjectTo(r[i], n - 1);
2358
2354
  }
2359
2355
  }
2360
- var bt = ["id", "left", "top", "width", "height", "fill"], It = ["id", "left", "top", "radius", "fill"], St = ["id", "left", "top", "width", "height", "fill"];
2361
- function je(i, e) {
2362
- var t = Object.keys(i);
2356
+ var pt = ["id", "left", "top", "width", "height", "fill"], bt = ["id", "left", "top", "radius", "fill"], It = ["id", "left", "top", "width", "height", "fill"];
2357
+ function je(o, e) {
2358
+ var t = Object.keys(o);
2363
2359
  if (Object.getOwnPropertySymbols) {
2364
- var a = Object.getOwnPropertySymbols(i);
2360
+ var a = Object.getOwnPropertySymbols(o);
2365
2361
  e && (a = a.filter(function(r) {
2366
- return Object.getOwnPropertyDescriptor(i, r).enumerable;
2362
+ return Object.getOwnPropertyDescriptor(o, r).enumerable;
2367
2363
  })), t.push.apply(t, a);
2368
2364
  }
2369
2365
  return t;
2370
2366
  }
2371
- function F(i) {
2367
+ function V(o) {
2372
2368
  for (var e = 1; e < arguments.length; e++) {
2373
2369
  var t = arguments[e] != null ? arguments[e] : {};
2374
2370
  e % 2 ? je(Object(t), !0).forEach(function(a) {
2375
- At(i, a, t[a]);
2376
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(i, Object.getOwnPropertyDescriptors(t)) : je(Object(t)).forEach(function(a) {
2377
- Object.defineProperty(i, a, Object.getOwnPropertyDescriptor(t, a));
2371
+ St(o, a, t[a]);
2372
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : je(Object(t)).forEach(function(a) {
2373
+ Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
2378
2374
  });
2379
2375
  }
2380
- return i;
2376
+ return o;
2381
2377
  }
2382
- function At(i, e, t) {
2383
- return (e = wt(e)) in i ? Object.defineProperty(i, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : i[e] = t, i;
2378
+ function St(o, e, t) {
2379
+ return (e = At(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
2384
2380
  }
2385
- function wt(i) {
2386
- var e = Nt(i, "string");
2381
+ function At(o) {
2382
+ var e = wt(o, "string");
2387
2383
  return typeof e == "symbol" ? e : e + "";
2388
2384
  }
2389
- function Nt(i, e) {
2390
- if (typeof i != "object" || !i) return i;
2391
- var t = i[Symbol.toPrimitive];
2385
+ function wt(o, e) {
2386
+ if (typeof o != "object" || !o) return o;
2387
+ var t = o[Symbol.toPrimitive];
2392
2388
  if (t !== void 0) {
2393
- var a = t.call(i, e);
2389
+ var a = t.call(o, e);
2394
2390
  if (typeof a != "object") return a;
2395
2391
  throw new TypeError("@@toPrimitive must return a primitive value.");
2396
2392
  }
2397
- return (e === "string" ? String : Number)(i);
2393
+ return (e === "string" ? String : Number)(o);
2398
2394
  }
2399
- function G(i, e) {
2400
- if (i == null) return {};
2401
- var t, a, r = Dt(i, e);
2395
+ function F(o, e) {
2396
+ if (o == null) return {};
2397
+ var t, a, r = Nt(o, e);
2402
2398
  if (Object.getOwnPropertySymbols) {
2403
- var n = Object.getOwnPropertySymbols(i);
2404
- for (a = 0; a < n.length; a++) t = n[a], e.indexOf(t) === -1 && {}.propertyIsEnumerable.call(i, t) && (r[t] = i[t]);
2399
+ var n = Object.getOwnPropertySymbols(o);
2400
+ for (a = 0; a < n.length; a++) t = n[a], e.indexOf(t) === -1 && {}.propertyIsEnumerable.call(o, t) && (r[t] = o[t]);
2405
2401
  }
2406
2402
  return r;
2407
2403
  }
2408
- function Dt(i, e) {
2409
- if (i == null) return {};
2404
+ function Nt(o, e) {
2405
+ if (o == null) return {};
2410
2406
  var t = {};
2411
- for (var a in i) if ({}.hasOwnProperty.call(i, a)) {
2407
+ for (var a in o) if ({}.hasOwnProperty.call(o, a)) {
2412
2408
  if (e.indexOf(a) !== -1) continue;
2413
- t[a] = i[a];
2409
+ t[a] = o[a];
2414
2410
  }
2415
2411
  return t;
2416
2412
  }
2417
- class Ct {
2413
+ class Dt {
2418
2414
  /**
2419
2415
  * @param {object} options
2420
2416
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2446,19 +2442,19 @@ class Ct {
2446
2442
  left: a,
2447
2443
  top: r,
2448
2444
  width: n = 100,
2449
- height: o = 100,
2445
+ height: i = 100,
2450
2446
  fill: s = "blue"
2451
- } = e, c = G(e, bt), {
2447
+ } = e, c = F(e, pt), {
2452
2448
  withoutSelection: u,
2453
2449
  withoutAdding: l
2454
2450
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2455
2451
  canvas: d
2456
- } = this.editor, h = new Be(F({
2452
+ } = this.editor, h = new xe(V({
2457
2453
  id: t,
2458
2454
  left: a,
2459
2455
  top: r,
2460
2456
  width: n,
2461
- height: o,
2457
+ height: i,
2462
2458
  fill: s
2463
2459
  }, c));
2464
2460
  return !a && !r && d.centerObject(h), l || (d.add(h), u || d.setActiveObject(h), d.renderAll()), h;
@@ -2483,17 +2479,17 @@ class Ct {
2483
2479
  left: a,
2484
2480
  top: r,
2485
2481
  radius: n = 50,
2486
- fill: o = "green"
2487
- } = e, s = G(e, It), {
2482
+ fill: i = "green"
2483
+ } = e, s = F(e, bt), {
2488
2484
  withoutSelection: c,
2489
2485
  withoutAdding: u
2490
2486
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2491
2487
  canvas: l
2492
- } = this.editor, d = new Ze(F({
2488
+ } = this.editor, d = new Be(V({
2493
2489
  id: t,
2494
2490
  left: a,
2495
2491
  top: r,
2496
- fill: o,
2492
+ fill: i,
2497
2493
  radius: n
2498
2494
  }, s));
2499
2495
  return !a && !r && l.centerObject(d), u || (l.add(d), c || l.setActiveObject(d), l.renderAll()), d;
@@ -2519,48 +2515,48 @@ class Ct {
2519
2515
  left: a,
2520
2516
  top: r,
2521
2517
  width: n = 100,
2522
- height: o = 100,
2518
+ height: i = 100,
2523
2519
  fill: s = "yellow"
2524
- } = e, c = G(e, St), {
2520
+ } = e, c = F(e, It), {
2525
2521
  withoutSelection: u,
2526
2522
  withoutAdding: l
2527
2523
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2528
2524
  canvas: d
2529
- } = this.editor, h = new ze(F({
2525
+ } = this.editor, h = new Ze(V({
2530
2526
  id: t,
2531
2527
  left: a,
2532
2528
  top: r,
2533
2529
  fill: s,
2534
2530
  width: n,
2535
- height: o
2531
+ height: i
2536
2532
  }, c));
2537
2533
  return !a && !r && d.centerObject(h), l || (d.add(h), u || d.setActiveObject(h), d.renderAll()), h;
2538
2534
  }
2539
2535
  }
2540
- function ye(i, e, t, a, r, n, o) {
2536
+ function ye(o, e, t, a, r, n, i) {
2541
2537
  try {
2542
- var s = i[n](o), c = s.value;
2538
+ var s = o[n](i), c = s.value;
2543
2539
  } catch (u) {
2544
2540
  return void t(u);
2545
2541
  }
2546
2542
  s.done ? e(c) : Promise.resolve(c).then(a, r);
2547
2543
  }
2548
- function pe(i) {
2544
+ function pe(o) {
2549
2545
  return function() {
2550
2546
  var e = this, t = arguments;
2551
2547
  return new Promise(function(a, r) {
2552
- var n = i.apply(e, t);
2553
- function o(c) {
2554
- ye(n, a, r, o, s, "next", c);
2548
+ var n = o.apply(e, t);
2549
+ function i(c) {
2550
+ ye(n, a, r, i, s, "next", c);
2555
2551
  }
2556
2552
  function s(c) {
2557
- ye(n, a, r, o, s, "throw", c);
2553
+ ye(n, a, r, i, s, "throw", c);
2558
2554
  }
2559
- o(void 0);
2555
+ i(void 0);
2560
2556
  });
2561
2557
  };
2562
2558
  }
2563
- class Lt {
2559
+ class Ct {
2564
2560
  /**
2565
2561
  * @param {object} options
2566
2562
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2599,10 +2595,10 @@ class Lt {
2599
2595
  });
2600
2596
  return;
2601
2597
  }
2602
- var n = r.toCanvasElement(), o = yield new Promise((u) => {
2598
+ var n = r.toCanvasElement(), i = yield new Promise((u) => {
2603
2599
  n.toBlob(u);
2604
2600
  }), s = new ClipboardItem({
2605
- [o.type]: o
2601
+ [i.type]: i
2606
2602
  });
2607
2603
  yield navigator.clipboard.write([s]), t.fire("editor:object-copied", {
2608
2604
  object: r
@@ -2641,7 +2637,7 @@ class Lt {
2641
2637
  })();
2642
2638
  }
2643
2639
  }
2644
- class Ot {
2640
+ class Lt {
2645
2641
  /**
2646
2642
  * @param {object} options
2647
2643
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2668,8 +2664,8 @@ class Ot {
2668
2664
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2669
2665
  canvas: r,
2670
2666
  historyManager: n
2671
- } = this.editor, o = e || r.getActiveObject();
2672
- if (!(!o || o.locked)) {
2667
+ } = this.editor, i = e || r.getActiveObject();
2668
+ if (!(!i || i.locked)) {
2673
2669
  var s = {
2674
2670
  lockMovementX: !0,
2675
2671
  lockMovementY: !0,
@@ -2680,12 +2676,12 @@ class Ot {
2680
2676
  lockSkewingY: !0,
2681
2677
  locked: !0
2682
2678
  };
2683
- o.set(s);
2684
- var c = !t && ["activeselection", "group"].includes(o.type);
2685
- c && o.getObjects().forEach((u) => {
2679
+ i.set(s);
2680
+ var c = !t && ["activeselection", "group"].includes(i.type);
2681
+ c && i.getObjects().forEach((u) => {
2686
2682
  u.set(s);
2687
2683
  }), r.renderAll(), a || n.saveState(), r.fire("editor:object-locked", {
2688
- object: o
2684
+ object: i
2689
2685
  });
2690
2686
  }
2691
2687
  }
@@ -2706,7 +2702,7 @@ class Ot {
2706
2702
  historyManager: r
2707
2703
  } = this.editor, n = e || a.getActiveObject();
2708
2704
  if (n) {
2709
- var o = {
2705
+ var i = {
2710
2706
  lockMovementX: !1,
2711
2707
  lockMovementY: !1,
2712
2708
  lockRotation: !1,
@@ -2716,15 +2712,15 @@ class Ot {
2716
2712
  lockSkewingY: !1,
2717
2713
  locked: !1
2718
2714
  };
2719
- n.set(o), ["activeselection", "group"].includes(n.type) && n.getObjects().forEach((s) => {
2720
- s.set(o);
2715
+ n.set(i), ["activeselection", "group"].includes(n.type) && n.getObjects().forEach((s) => {
2716
+ s.set(i);
2721
2717
  }), a.renderAll(), t || r.saveState(), a.fire("editor:object-unlocked", {
2722
2718
  object: n
2723
2719
  });
2724
2720
  }
2725
2721
  }
2726
2722
  }
2727
- class Tt {
2723
+ class Ot {
2728
2724
  /**
2729
2725
  * @param {object} options
2730
2726
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2753,8 +2749,8 @@ class Tt {
2753
2749
  r.suspendHistory();
2754
2750
  var n = e || a.getActiveObject();
2755
2751
  if (n && n.type === "activeselection") {
2756
- var o = n.getObjects(), s = new Ue(o);
2757
- o.forEach((c) => a.remove(c)), s.set("id", "".concat(s.type, "-").concat(I())), a.add(s), a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-grouped");
2752
+ var i = n.getObjects(), s = new ze(i);
2753
+ i.forEach((c) => a.remove(c)), s.set("id", "".concat(s.type, "-").concat(I())), a.add(s), a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-grouped");
2758
2754
  }
2759
2755
  }
2760
2756
  /**
@@ -2775,16 +2771,16 @@ class Tt {
2775
2771
  r.suspendHistory();
2776
2772
  var n = e || a.getActiveObject();
2777
2773
  if (!(!n || n.type !== "group")) {
2778
- var o = n.removeAll();
2779
- a.remove(n), o.forEach((c) => a.add(c));
2780
- var s = new Z(o, {
2774
+ var i = n.removeAll();
2775
+ a.remove(n), i.forEach((c) => a.add(c));
2776
+ var s = new Z(i, {
2781
2777
  canvas: a
2782
2778
  });
2783
2779
  a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-ungrouped");
2784
2780
  }
2785
2781
  }
2786
2782
  }
2787
- class Et {
2783
+ class Tt {
2788
2784
  /**
2789
2785
  * @param {object} options
2790
2786
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2806,19 +2802,19 @@ class Et {
2806
2802
  objectLockManager: a
2807
2803
  } = this.editor;
2808
2804
  e.discardActiveObject();
2809
- var r = t.getObjects(), n = r.some((s) => s.locked), o = r.length > 1 ? new Z(t.getObjects(), {
2805
+ var r = t.getObjects(), n = r.some((s) => s.locked), i = r.length > 1 ? new Z(t.getObjects(), {
2810
2806
  canvas: e
2811
2807
  }) : r[0];
2812
2808
  n && a.lockObject({
2813
- object: o,
2809
+ object: i,
2814
2810
  skipInnerObjects: !0,
2815
2811
  withoutSave: !0
2816
- }), e.setActiveObject(o), e.requestRenderAll(), e.fire("editor:all-objects-selected", {
2817
- selected: o
2812
+ }), e.setActiveObject(i), e.requestRenderAll(), e.fire("editor:all-objects-selected", {
2813
+ selected: i
2818
2814
  });
2819
2815
  }
2820
2816
  }
2821
- class kt {
2817
+ class Et {
2822
2818
  /**
2823
2819
  * @param {object} options
2824
2820
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2843,40 +2839,40 @@ class kt {
2843
2839
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2844
2840
  canvas: a,
2845
2841
  historyManager: r
2846
- } = this.editor, n = (e || a.getActiveObjects()).filter((o) => !o.locked);
2847
- n != null && n.length && (r.suspendHistory(), n.forEach((o) => {
2848
- if (o.type === "group" && o.format !== "svg") {
2849
- this.ungroup(o), this.deleteSelectedObjects();
2842
+ } = this.editor, n = (e || a.getActiveObjects()).filter((i) => !i.locked);
2843
+ n != null && n.length && (r.suspendHistory(), n.forEach((i) => {
2844
+ if (i.type === "group" && i.format !== "svg") {
2845
+ this.ungroup(i), this.deleteSelectedObjects();
2850
2846
  return;
2851
2847
  }
2852
- a.remove(o);
2848
+ a.remove(i);
2853
2849
  }), a.discardActiveObject(), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-deleted"));
2854
2850
  }
2855
2851
  }
2856
- function be(i, e, t, a, r, n, o) {
2852
+ function be(o, e, t, a, r, n, i) {
2857
2853
  try {
2858
- var s = i[n](o), c = s.value;
2854
+ var s = o[n](i), c = s.value;
2859
2855
  } catch (u) {
2860
2856
  return void t(u);
2861
2857
  }
2862
2858
  s.done ? e(c) : Promise.resolve(c).then(a, r);
2863
2859
  }
2864
- function xt(i) {
2860
+ function kt(o) {
2865
2861
  return function() {
2866
2862
  var e = this, t = arguments;
2867
2863
  return new Promise(function(a, r) {
2868
- var n = i.apply(e, t);
2869
- function o(c) {
2870
- be(n, a, r, o, s, "next", c);
2864
+ var n = o.apply(e, t);
2865
+ function i(c) {
2866
+ be(n, a, r, i, s, "next", c);
2871
2867
  }
2872
2868
  function s(c) {
2873
- be(n, a, r, o, s, "throw", c);
2869
+ be(n, a, r, i, s, "throw", c);
2874
2870
  }
2875
- o(void 0);
2871
+ i(void 0);
2876
2872
  });
2877
2873
  };
2878
2874
  }
2879
- class Bt {
2875
+ class te {
2880
2876
  constructor(e) {
2881
2877
  var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2882
2878
  this.options = t;
@@ -2885,17 +2881,17 @@ class Bt {
2885
2881
  minZoom: r,
2886
2882
  maxZoom: n
2887
2883
  } = t;
2888
- this.containerId = e, this.editorId = "".concat(e, "-").concat(I()), this.clipboard = null, this.defaultZoom = a, this.minZoom = r || vt, this.maxZoom = n || mt, this.init();
2884
+ this.containerId = e, this.editorId = "".concat(e, "-").concat(I()), this.clipboard = null, this.defaultZoom = a, this.minZoom = r || gt, this.maxZoom = n || vt, this.init();
2889
2885
  }
2890
2886
  init() {
2891
2887
  var e = this;
2892
- return xt(function* () {
2888
+ return kt(function* () {
2893
2889
  var {
2894
2890
  editorContainerWidth: t,
2895
2891
  editorContainerHeight: a,
2896
2892
  canvasWrapperWidth: r,
2897
2893
  canvasWrapperHeight: n,
2898
- canvasCSSWidth: o,
2894
+ canvasCSSWidth: i,
2899
2895
  canvasCSSHeight: s,
2900
2896
  initialImage: c,
2901
2897
  initialStateJSON: u,
@@ -2906,43 +2902,43 @@ class Bt {
2906
2902
  editor: e
2907
2903
  }), e.toolbar = new lt({
2908
2904
  editor: e
2909
- }), e.transformManager = new yt({
2905
+ }), e.transformManager = new jt({
2910
2906
  editor: e
2911
- }), e.canvasManager = new jt({
2907
+ }), e.canvasManager = new Mt({
2912
2908
  editor: e
2913
2909
  }), e.imageManager = new L({
2914
2910
  editor: e
2915
- }), e.layerManager = new H({
2911
+ }), e.layerManager = new Y({
2916
2912
  editor: e
2917
- }), e.shapeManager = new Ct({
2913
+ }), e.shapeManager = new Dt({
2918
2914
  editor: e
2919
- }), e.interactionBlocker = new pt({
2915
+ }), e.interactionBlocker = new yt({
2920
2916
  editor: e
2921
- }), e.clipboardManager = new Lt({
2917
+ }), e.clipboardManager = new Ct({
2922
2918
  editor: e
2923
- }), e.objectLockManager = new Ot({
2919
+ }), e.objectLockManager = new Lt({
2924
2920
  editor: e
2925
- }), e.groupingManager = new Tt({
2921
+ }), e.groupingManager = new Ot({
2926
2922
  editor: e
2927
- }), e.selectionManager = new Et({
2923
+ }), e.selectionManager = new Tt({
2928
2924
  editor: e
2929
- }), e.deletionManager = new kt({
2925
+ }), e.deletionManager = new Et({
2930
2926
  editor: e
2931
2927
  }), e._createMonageArea(), e._createClippingArea(), e.listeners = new B({
2932
2928
  editor: e,
2933
2929
  options: e.options
2934
- }), e.canvasManager.setEditorContainerWidth(t), e.canvasManager.setEditorContainerHeight(a), e.canvasManager.setCanvasWrapperWidth(r), e.canvasManager.setCanvasWrapperHeight(n), e.canvasManager.setCanvasCSSWidth(o), e.canvasManager.setCanvasCSSHeight(s), c != null && c.source) {
2930
+ }), e.canvasManager.setEditorContainerWidth(t), e.canvasManager.setEditorContainerHeight(a), e.canvasManager.setCanvasWrapperWidth(r), e.canvasManager.setCanvasWrapperHeight(n), e.canvasManager.setCanvasCSSWidth(i), e.canvasManager.setCanvasCSSHeight(s), c != null && c.source) {
2935
2931
  var {
2936
2932
  source: h,
2937
2933
  scale: g = "image-".concat(l),
2938
- withoutSave: f = !0,
2939
- contentType: v
2934
+ withoutSave: v = !0,
2935
+ contentType: m
2940
2936
  } = c;
2941
2937
  yield e.imageManager.importImage({
2942
2938
  source: h,
2943
2939
  scale: g,
2944
- withoutSave: f,
2945
- contentType: v
2940
+ withoutSave: v,
2941
+ contentType: m
2946
2942
  });
2947
2943
  } else
2948
2944
  e.canvasManager.setDefaultScale({
@@ -2964,7 +2960,7 @@ class Bt {
2964
2960
  this.montageArea = this.shapeManager.addRectangle({
2965
2961
  width: e,
2966
2962
  height: t,
2967
- fill: gt(),
2963
+ fill: te._createMosaicPattern(),
2968
2964
  stroke: null,
2969
2965
  strokeWidth: 0,
2970
2966
  selectable: !1,
@@ -3014,8 +3010,21 @@ class Bt {
3014
3010
  destroy() {
3015
3011
  this.listeners.destroy(), this.toolbar.destroy(), this.canvas.dispose(), this.workerManager.worker.terminate(), this.imageManager.revokeBlobUrls();
3016
3012
  }
3013
+ /**
3014
+ * Создает паттерн мозаики.
3015
+ * @returns {object} паттерн мозаики
3016
+ */
3017
+ static _createMosaicPattern() {
3018
+ var e = document.createElement("canvas");
3019
+ e.width = 20, e.height = 20;
3020
+ var t = e.getContext("2d");
3021
+ 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 Ue({
3022
+ source: e,
3023
+ repeat: "repeat"
3024
+ });
3025
+ }
3017
3026
  }
3018
- const Zt = {
3027
+ const xt = {
3019
3028
  // Cохраняют ли объекты свой текущий порядок (z-index) при выделении
3020
3029
  preserveObjectStacking: !0,
3021
3030
  // Возможность взаимодействия с объектом за пределами монтажной области
@@ -3122,56 +3131,56 @@ const Zt = {
3122
3131
  // Сброс параметров объекта по двойному клику
3123
3132
  resetObjectFitByDoubleClick: !0
3124
3133
  };
3125
- function Ie(i, e) {
3126
- var t = Object.keys(i);
3134
+ function Ie(o, e) {
3135
+ var t = Object.keys(o);
3127
3136
  if (Object.getOwnPropertySymbols) {
3128
- var a = Object.getOwnPropertySymbols(i);
3137
+ var a = Object.getOwnPropertySymbols(o);
3129
3138
  e && (a = a.filter(function(r) {
3130
- return Object.getOwnPropertyDescriptor(i, r).enumerable;
3139
+ return Object.getOwnPropertyDescriptor(o, r).enumerable;
3131
3140
  })), t.push.apply(t, a);
3132
3141
  }
3133
3142
  return t;
3134
3143
  }
3135
- function Se(i) {
3144
+ function Se(o) {
3136
3145
  for (var e = 1; e < arguments.length; e++) {
3137
3146
  var t = arguments[e] != null ? arguments[e] : {};
3138
3147
  e % 2 ? Ie(Object(t), !0).forEach(function(a) {
3139
- zt(i, a, t[a]);
3140
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(i, Object.getOwnPropertyDescriptors(t)) : Ie(Object(t)).forEach(function(a) {
3141
- Object.defineProperty(i, a, Object.getOwnPropertyDescriptor(t, a));
3148
+ Bt(o, a, t[a]);
3149
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : Ie(Object(t)).forEach(function(a) {
3150
+ Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
3142
3151
  });
3143
3152
  }
3144
- return i;
3153
+ return o;
3145
3154
  }
3146
- function zt(i, e, t) {
3147
- return (e = Ut(e)) in i ? Object.defineProperty(i, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : i[e] = t, i;
3155
+ function Bt(o, e, t) {
3156
+ return (e = Zt(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
3148
3157
  }
3149
- function Ut(i) {
3150
- var e = Pt(i, "string");
3158
+ function Zt(o) {
3159
+ var e = zt(o, "string");
3151
3160
  return typeof e == "symbol" ? e : e + "";
3152
3161
  }
3153
- function Pt(i, e) {
3154
- if (typeof i != "object" || !i) return i;
3155
- var t = i[Symbol.toPrimitive];
3162
+ function zt(o, e) {
3163
+ if (typeof o != "object" || !o) return o;
3164
+ var t = o[Symbol.toPrimitive];
3156
3165
  if (t !== void 0) {
3157
- var a = t.call(i, e);
3166
+ var a = t.call(o, e);
3158
3167
  if (typeof a != "object") return a;
3159
3168
  throw new TypeError("@@toPrimitive must return a primitive value.");
3160
3169
  }
3161
- return (e === "string" ? String : Number)(i);
3170
+ return (e === "string" ? String : Number)(o);
3162
3171
  }
3163
- function Wt(i) {
3164
- var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, t = Se(Se({}, Zt), e), a = document.getElementById(i);
3172
+ function Yt(o) {
3173
+ var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, t = Se(Se({}, xt), e), a = document.getElementById(o);
3165
3174
  if (!a)
3166
- return Promise.reject(new Error('Контейнер с ID "'.concat(i, '" не найден.')));
3175
+ return Promise.reject(new Error('Контейнер с ID "'.concat(o, '" не найден.')));
3167
3176
  var r = document.createElement("canvas");
3168
- return r.id = "".concat(i, "-canvas"), a.appendChild(r), t.editorContainer = a, new Promise((n) => {
3177
+ return r.id = "".concat(o, "-canvas"), a.appendChild(r), t.editorContainer = a, new Promise((n) => {
3169
3178
  t._onReadyCallback = n;
3170
- var o = new Bt(r.id, t);
3171
- window[i] = o;
3179
+ var i = new te(r.id, t);
3180
+ window[o] = i;
3172
3181
  });
3173
3182
  }
3174
3183
  export {
3175
- Wt as default
3184
+ Yt as default
3176
3185
  };
3177
3186
  //# sourceMappingURL=main.js.map