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