@anu3ev/fabric-image-editor 0.1.39 → 0.1.41

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 +508 -414
  2. package/package.json +2 -2
package/dist/main.js CHANGED
@@ -1,44 +1,44 @@
1
1
  var Le = Object.defineProperty;
2
- var X = Object.getOwnPropertySymbols;
2
+ var G = Object.getOwnPropertySymbols;
3
3
  var Me = Object.prototype.hasOwnProperty, fe = Object.prototype.propertyIsEnumerable;
4
4
  var me = (o, e, t) => e in o ? Le(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, C = (o, e) => {
5
5
  for (var t in e || (e = {}))
6
6
  Me.call(e, t) && me(o, t, e[t]);
7
- if (X)
8
- for (var t of X(e))
7
+ if (G)
8
+ for (var t of G(e))
9
9
  fe.call(e, t) && me(o, t, e[t]);
10
10
  return o;
11
11
  };
12
- var Q = (o, e) => {
12
+ var X = (o, e) => {
13
13
  var t = {};
14
14
  for (var a in o)
15
15
  Me.call(o, a) && e.indexOf(a) < 0 && (t[a] = o[a]);
16
- if (o != null && X)
17
- for (var a of X(o))
16
+ if (o != null && G)
17
+ for (var a of G(o))
18
18
  e.indexOf(a) < 0 && fe.call(o, a) && (t[a] = o[a]);
19
19
  return t;
20
20
  };
21
- var H = (o, e, t) => new Promise((a, r) => {
22
- var i = (c) => {
21
+ var Q = (o, e, t) => new Promise((a, r) => {
22
+ var n = (c) => {
23
23
  try {
24
24
  s(t.next(c));
25
25
  } catch (u) {
26
26
  r(u);
27
27
  }
28
- }, n = (c) => {
28
+ }, i = (c) => {
29
29
  try {
30
30
  s(t.throw(c));
31
31
  } catch (u) {
32
32
  r(u);
33
33
  }
34
- }, s = (c) => c.done ? a(c.value) : Promise.resolve(c.value).then(i, n);
34
+ }, s = (c) => c.done ? a(c.value) : Promise.resolve(c.value).then(n, i);
35
35
  s((t = t.apply(o, e)).next());
36
36
  });
37
- import { ActiveSelection as W, util as _, controlsUtils as Ee, InteractiveFabricObject as Oe, loadSVGFromURL as Te, FabricImage as q, Point as ke, Rect as xe, Circle as Be, Triangle as Ze, Group as ze, Canvas as Ue, Pattern as Ye } from "fabric";
38
- import { create as He } from "jsondiffpatch";
39
- var Pe = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", S = function() {
37
+ import { ActiveSelection as H, util as P, controlsUtils as Ee, InteractiveFabricObject as Oe, loadSVGFromURL as Te, FabricImage as q, Point as ke, Rect as xe, Circle as Be, Triangle as Ze, Group as ze, Canvas as Ue, Pattern as Ye } from "fabric";
38
+ import { create as _e } from "jsondiffpatch";
39
+ var Re = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", A = function() {
40
40
  for (var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 21, t = "", a = crypto.getRandomValues(new Uint8Array(e |= 0)); e--; )
41
- t += Pe[a[e] & 63];
41
+ t += Re[a[e] & 63];
42
42
  return t;
43
43
  };
44
44
  class R {
@@ -69,14 +69,14 @@ class R {
69
69
  canvasDragging: t,
70
70
  mouseWheelZooming: a,
71
71
  bringToFrontOnSelection: r,
72
- copyObjectsByHotkey: i,
73
- pasteImageFromClipboard: n,
72
+ copyObjectsByHotkey: n,
73
+ pasteImageFromClipboard: i,
74
74
  undoRedoByHotKeys: s,
75
75
  selectAllByHotkey: c,
76
76
  deleteObjectsByHotkey: u,
77
77
  resetObjectFitByDoubleClick: d
78
78
  } = this.options;
79
- t && (this.canvas.on("mouse:down", this.handleCanvasDragStartBound), this.canvas.on("mouse:move", this.handleCanvasDraggingBound), this.canvas.on("mouse:up", this.handleCanvasDragEndBound), document.addEventListener("keydown", this.handleSpaceKeyDownBound, { capture: !0 }), document.addEventListener("keyup", this.handleSpaceKeyUpBound, { capture: !0 })), a && this.canvas.on("mouse:wheel", this.handleMouseWheelZoomBound), r && (this.canvas.on("selection:created", this.handleBringToFrontBound), this.canvas.on("selection:updated", this.handleBringToFrontBound)), d && this.canvas.on("mouse:dblclick", this.handleResetObjectFitBound), e && window.addEventListener("resize", this.handleContainerResizeBound, { capture: !0 }), i && document.addEventListener("keydown", this.handleCopyEventBound, { capture: !0 }), n && document.addEventListener("paste", this.handlePasteEventBound, { capture: !0 }), s && (document.addEventListener("keydown", this.handleUndoRedoEventBound, { capture: !0 }), document.addEventListener("keyup", this.handleUndoRedoKeyUpBound, { capture: !0 })), c && document.addEventListener("keydown", this.handleSelectAllEventBound, { capture: !0 }), u && document.addEventListener("keydown", this.handleDeleteObjectsEventBound, { capture: !0 }), this.canvas.on("object:modified", this.handleObjectModifiedHistoryBound), this.canvas.on("object:rotating", this.handleObjectRotatingHistoryBound), this.canvas.on("object:added", this.handleObjectAddedHistoryBound), this.canvas.on("object:removed", this.handleObjectRemovedHistoryBound), this.canvas.on("object:added", this.handleOverlayUpdateBound), this.canvas.on("selection:created", this.handleOverlayUpdateBound), this.canvas.on("selection:created", this.handleLockedSelectionBound), this.canvas.on("selection:updated", this.handleLockedSelectionBound);
79
+ t && (this.canvas.on("mouse:down", this.handleCanvasDragStartBound), this.canvas.on("mouse:move", this.handleCanvasDraggingBound), this.canvas.on("mouse:up", this.handleCanvasDragEndBound), document.addEventListener("keydown", this.handleSpaceKeyDownBound, { capture: !0 }), document.addEventListener("keyup", this.handleSpaceKeyUpBound, { capture: !0 })), a && this.canvas.on("mouse:wheel", this.handleMouseWheelZoomBound), r && (this.canvas.on("selection:created", this.handleBringToFrontBound), this.canvas.on("selection:updated", this.handleBringToFrontBound)), d && this.canvas.on("mouse:dblclick", this.handleResetObjectFitBound), e && window.addEventListener("resize", this.handleContainerResizeBound, { capture: !0 }), n && document.addEventListener("keydown", this.handleCopyEventBound, { capture: !0 }), i && document.addEventListener("paste", this.handlePasteEventBound, { capture: !0 }), s && (document.addEventListener("keydown", this.handleUndoRedoEventBound, { capture: !0 }), document.addEventListener("keyup", this.handleUndoRedoKeyUpBound, { capture: !0 })), c && document.addEventListener("keydown", this.handleSelectAllEventBound, { capture: !0 }), u && document.addEventListener("keydown", this.handleDeleteObjectsEventBound, { capture: !0 }), this.canvas.on("object:modified", this.handleObjectModifiedHistoryBound), this.canvas.on("object:rotating", this.handleObjectRotatingHistoryBound), this.canvas.on("object:added", this.handleObjectAddedHistoryBound), this.canvas.on("object:removed", this.handleObjectRemovedHistoryBound), this.canvas.on("object:added", this.handleOverlayUpdateBound), this.canvas.on("selection:created", this.handleOverlayUpdateBound), this.canvas.on("selection:created", this.handleLockedSelectionBound), this.canvas.on("selection:updated", this.handleLockedSelectionBound);
80
80
  }
81
81
  /**
82
82
  * При массовом выделении объектов удаляем из него залоченные.
@@ -85,8 +85,8 @@ class R {
85
85
  * @param {TPointerEvent} [params.e] - событие указателя (опционально)
86
86
  */
87
87
  _filterLockedSelection({ selected: e, e: t }) {
88
- if (!(e != null && e.length) || !(t instanceof MouseEvent) || e.length === 1 || !e.some((n) => n.locked)) return;
89
- const r = e.filter((n) => !n.locked);
88
+ if (!(e != null && e.length) || !(t instanceof MouseEvent) || e.length === 1 || !e.some((i) => i.locked)) return;
89
+ const r = e.filter((i) => !i.locked);
90
90
  if (r.length === 0) {
91
91
  this.canvas.discardActiveObject();
92
92
  return;
@@ -95,10 +95,10 @@ class R {
95
95
  this.canvas.setActiveObject(r[0]);
96
96
  return;
97
97
  }
98
- const i = new W(r, {
98
+ const n = new H(r, {
99
99
  canvas: this.canvas
100
100
  });
101
- this.canvas.setActiveObject(i), this.canvas.requestRenderAll();
101
+ this.canvas.setActiveObject(n), this.canvas.requestRenderAll();
102
102
  }
103
103
  /**
104
104
  * Обработчики для сохранения состояния редактора в истории.
@@ -157,9 +157,9 @@ class R {
157
157
  * @param {String} event.code — код клавиши
158
158
  */
159
159
  handleUndoRedoEvent(e) {
160
- return H(this, null, function* () {
161
- const { ctrlKey: t, metaKey: a, code: r, repeat: i } = e;
162
- !t && !a || i || this.isUndoRedoKeyPressed || (r === "KeyZ" ? (e.preventDefault(), this.isUndoRedoKeyPressed = !0, yield this.editor.historyManager.undo()) : r === "KeyY" && (e.preventDefault(), this.isUndoRedoKeyPressed = !0, yield this.editor.historyManager.redo()));
160
+ return Q(this, null, function* () {
161
+ const { ctrlKey: t, metaKey: a, code: r, repeat: n } = e;
162
+ !t && !a || n || !/Mac/i.test(navigator.userAgent) && this.isUndoRedoKeyPressed || (r === "KeyZ" ? (e.preventDefault(), this.isUndoRedoKeyPressed = !0, yield this.editor.historyManager.undo()) : r === "KeyY" && (e.preventDefault(), this.isUndoRedoKeyPressed = !0, yield this.editor.historyManager.redo()));
163
163
  });
164
164
  }
165
165
  /**
@@ -168,7 +168,7 @@ class R {
168
168
  * @param {String} event.code — код клавиши
169
169
  */
170
170
  handleUndoRedoKeyUp({ code: e }) {
171
- (e === "KeyZ" || e === "KeyY") && (this.isUndoRedoKeyPressed = !1);
171
+ ["KeyZ", "KeyY"].includes(e) && (this.isUndoRedoKeyPressed = !1);
172
172
  }
173
173
  /**
174
174
  * Обработчик для выделения всех объектов (Ctrl+A).
@@ -197,12 +197,12 @@ class R {
197
197
  */
198
198
  handleSpaceKeyDown(e) {
199
199
  if (e.code !== "Space") return;
200
- const { canvas: t, editor: a, isSpacePressed: r, isDragging: i } = this;
201
- r || i || (this.isSpacePressed = !0, e.preventDefault(), t.set({
200
+ const { canvas: t, editor: a, isSpacePressed: r, isDragging: n } = this;
201
+ r || n || (this.isSpacePressed = !0, e.preventDefault(), t.set({
202
202
  selection: !1,
203
203
  defaultCursor: "grab"
204
- }), t.setCursor("grab"), a.canvasManager.getObjects().forEach((n) => {
205
- n.set({
204
+ }), t.setCursor("grab"), a.canvasManager.getObjects().forEach((i) => {
205
+ i.set({
206
206
  selectable: !1,
207
207
  evented: !1
208
208
  });
@@ -297,14 +297,14 @@ class R {
297
297
  static debounce(e, t) {
298
298
  let a = null;
299
299
  return function(...r) {
300
- const i = this;
300
+ const n = this;
301
301
  a && clearTimeout(a), a = setTimeout(() => {
302
- e.apply(i, r);
302
+ e.apply(n, r);
303
303
  }, t);
304
304
  };
305
305
  }
306
306
  }
307
- class Re {
307
+ class He {
308
308
  /**
309
309
  * @description Класс для динамической загрузки внешних модулей.
310
310
  */
@@ -322,7 +322,7 @@ class Re {
322
322
  return this.loaders[e] ? (this.cache.has(e) || this.cache.set(e, this.loaders[e]()), this.cache.get(e)) : Promise.reject(new Error('Unknown module "'.concat(e, '"')));
323
323
  }
324
324
  }
325
- class We {
325
+ class Pe {
326
326
  /**
327
327
  * @param {string|URL} [scriptUrl] — URL скрипта воркера.
328
328
  * По-умолчанию использует файл рядом с этим модулем
@@ -349,10 +349,10 @@ class We {
349
349
  } = e, {
350
350
  requestId: a,
351
351
  success: r,
352
- data: i,
353
- error: n
352
+ data: n,
353
+ error: i
354
354
  } = t, s = this._callbacks.get(a);
355
- s && (r ? s.resolve(i) : s.reject(new Error(n)), this._callbacks.delete(a));
355
+ s && (r ? s.resolve(n) : s.reject(new Error(i)), this._callbacks.delete(a));
356
356
  }
357
357
  /**
358
358
  * Универсальный метод отправки команды в воркер
@@ -362,11 +362,11 @@ class We {
362
362
  * @returns {Promise<any>}
363
363
  */
364
364
  post(e, t) {
365
- var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [], r = "".concat(e, ":").concat(S(8));
366
- return new Promise((i, n) => {
365
+ var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [], r = "".concat(e, ":").concat(A(8));
366
+ return new Promise((n, i) => {
367
367
  this._callbacks.set(r, {
368
- resolve: i,
369
- reject: n
368
+ resolve: n,
369
+ reject: i
370
370
  }), this.worker.postMessage({
371
371
  action: e,
372
372
  payload: t,
@@ -381,24 +381,24 @@ class We {
381
381
  this.worker.terminate();
382
382
  }
383
383
  }
384
- var I = 12, _e = 2, te = 8, ae = 20, Fe = 100, re = 20, ie = 8, Ve = 100, ne = 32, se = 1, Ge = "#2B2D33", oe = "#3D8BF4", ce = "#FFFFFF";
384
+ var I = 12, We = 2, te = 8, ae = 20, Fe = 100, re = 20, ne = 8, Ve = 100, ie = 32, se = 1, Ge = "#2B2D33", oe = "#3D8BF4", ce = "#FFFFFF";
385
385
  function J(o, e, t, a, r) {
386
- var i = I, n = _e;
387
- o.save(), o.translate(e, t), o.rotate(_.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-12 / 2, -12 / 2, i, i, n), o.fill(), o.stroke(), o.restore();
386
+ var n = I, i = We;
387
+ o.save(), o.translate(e, t), o.rotate(P.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-12 / 2, -12 / 2, n, n, i), o.fill(), o.stroke(), o.restore();
388
388
  }
389
389
  function je(o, e, t, a, r) {
390
- var i = te, n = ae, s = Fe;
391
- o.save(), o.translate(e, t), o.rotate(_.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-8 / 2, -20 / 2, i, n, s), o.fill(), o.stroke(), o.restore();
390
+ var n = te, i = ae, s = Fe;
391
+ o.save(), o.translate(e, t), o.rotate(P.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-8 / 2, -20 / 2, n, i, s), o.fill(), o.stroke(), o.restore();
392
392
  }
393
393
  function ye(o, e, t, a, r) {
394
- var i = re, n = ie, s = Ve;
395
- o.save(), o.translate(e, t), o.rotate(_.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-20 / 2, -8 / 2, i, n, s), o.fill(), o.stroke(), o.restore();
394
+ var n = re, i = ne, s = Ve;
395
+ o.save(), o.translate(e, t), o.rotate(P.degreesToRadians(r.angle)), o.fillStyle = ce, o.strokeStyle = oe, o.lineWidth = se, o.beginPath(), o.roundRect(-20 / 2, -8 / 2, n, i, s), o.fill(), o.stroke(), o.restore();
396
396
  }
397
- var Xe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE4Ljc1IDQuMzc1djMuNzVhLjYyNS42MjUgMCAwIDEtLjYyNS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDEgMC0xLjI1aDIuMTRsLTIuMDc3LTEuOTAzLS4wMi0uMDE5YTYuMjUgNi4yNSAwIDEgMC0uMTMgOC45NjcuNjI2LjYyNiAwIDAgMSAuODYuOTA5QTcuNDU2IDcuNDU2IDAgMCAxIDEwIDE3LjVoLS4xMDNhNy41IDcuNSAwIDEgMSA1LjM5Ni0xMi44MTJMMTcuNSA2LjcwM1Y0LjM3NWEuNjI1LjYyNSAwIDAgMSAxLjI1IDBaIi8+PC9zdmc+", Ae = new Image();
398
- Ae.src = Xe;
397
+ var Xe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE4Ljc1IDQuMzc1djMuNzVhLjYyNS42MjUgMCAwIDEtLjYyNS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDEgMC0xLjI1aDIuMTRsLTIuMDc3LTEuOTAzLS4wMi0uMDE5YTYuMjUgNi4yNSAwIDEgMC0uMTMgOC45NjcuNjI2LjYyNiAwIDAgMSAuODYuOTA5QTcuNDU2IDcuNDU2IDAgMCAxIDEwIDE3LjVoLS4xMDNhNy41IDcuNSAwIDEgMSA1LjM5Ni0xMi44MTJMMTcuNSA2LjcwM1Y0LjM3NWEuNjI1LjYyNSAwIDAgMSAxLjI1IDBaIi8+PC9zdmc+", Se = new Image();
398
+ Se.src = Xe;
399
399
  function Qe(o, e, t, a, r) {
400
- var i = ne, n = i / 2;
401
- o.save(), o.translate(e, t), o.rotate(_.degreesToRadians(r.angle)), o.fillStyle = Ge, o.beginPath(), o.arc(0, 0, n, 0, 2 * Math.PI), o.fill(), o.drawImage(Ae, -16 / 2, -16 / 2, n, n), o.restore();
400
+ var n = ie, i = n / 2;
401
+ o.save(), o.translate(e, t), o.rotate(P.degreesToRadians(r.angle)), o.fillStyle = Ge, o.beginPath(), o.arc(0, 0, i, 0, 2 * Math.PI), o.fill(), o.drawImage(Se, -16 / 2, -16 / 2, i, i), o.restore();
402
402
  }
403
403
  var Je = {
404
404
  // Угловые точки
@@ -449,22 +449,22 @@ var Je = {
449
449
  mt: {
450
450
  render: ye,
451
451
  sizeX: re,
452
- sizeY: ie,
452
+ sizeY: ne,
453
453
  offsetX: 0,
454
454
  offsetY: 0
455
455
  },
456
456
  mb: {
457
457
  render: ye,
458
458
  sizeX: re,
459
- sizeY: ie,
459
+ sizeY: ne,
460
460
  offsetX: 0,
461
461
  offsetY: 0
462
462
  },
463
463
  // Специальный «rotate» контрол
464
464
  mtr: {
465
465
  render: Qe,
466
- sizeX: ne,
467
- sizeY: ne,
466
+ sizeX: ie,
467
+ sizeY: ie,
468
468
  offsetX: 0,
469
469
  offsetY: -32
470
470
  }
@@ -480,17 +480,17 @@ class Ke {
480
480
  sizeY: r.sizeY,
481
481
  offsetX: r.offsetX,
482
482
  offsetY: r.offsetY
483
- }), a === "mtr" && (e[a].cursorStyle = "grab", e[a].mouseDownHandler = (i, n, s, c) => {
484
- var u = n.target;
483
+ }), a === "mtr" && (e[a].cursorStyle = "grab", e[a].mouseDownHandler = (n, i, s, c) => {
484
+ var u = i.target;
485
485
  u.canvas.setCursor("grabbing");
486
486
  });
487
487
  }), Oe.ownDefaults.controls = e;
488
488
  }
489
489
  }
490
- var $e = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi44NzUgMi41YS42MjUuNjI1IDAgMCAwLS42MjUuNjI0VjYuMjVIMy4xMjVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2MTBjMCAuMzQ1LjI4LjYyNS42MjUuNjI1aDEwYy4zNDUgMCAuNjI1LS4yOC42MjUtLjYyNXYtMy4xMjZoMy4xMjVjLjM0NSAwIC42MjUtLjI4LjYyNS0uNjI1di0xMGEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTEwWm02Ljg3NSAxMGgyLjVWMy43NUg3LjV2Mi41aDUuNjI1Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NS42MjRabS0xMCAzLjc1VjcuNWg4Ljc1djguNzVIMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", qe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDcuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDMuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjVabTEzLjc1IDBIMy43NXY4Ljc1aDEyLjVWNy41WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMS44NzVhMi4xODggMi4xODggMCAwIDAtMi4xODggMi4xODh2Mi44MTJhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyYTMuNDM3IDMuNDM3IDAgMSAxIDYuODc1IDB2Mi44MTNhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyQTIuMTg4IDIuMTg4IDAgMCAwIDEwIDEuODc2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDEyLjgxM2EuOTM3LjkzNyAwIDEgMCAwLTEuODc1LjkzNy45MzcgMCAwIDAgMCAxLjg3NFoiLz48L3N2Zz4=", et = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE2LjI1IDYuMjVINy41VjQuMzc1YTIuNSAyLjUgMCAwIDEgMi41LTIuNWMxLjIgMCAyLjI4MS44NiAyLjUxMiAyYS42MjUuNjI1IDAgMCAwIDEuMjI2LS4yNWMtLjM1NC0xLjczOC0xLjkyNS0zLTMuNzM4LTNhMy43NTQgMy43NTQgMCAwIDAtMy43NSAzLjc1VjYuMjVoLTIuNUExLjI1IDEuMjUgMCAwIDAgMi41IDcuNXY4Ljc1YTEuMjUgMS4yNSAwIDAgMCAxLjI1IDEuMjVoMTIuNWExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjcuNWExLjI1IDEuMjUgMCAwIDAtMS4yNS0xLjI1Wm0wIDEwSDMuNzVWNy41aDEyLjV2OC43NVptLTUuMzEzLTQuMzc1YS45MzcuOTM3IDAgMSAxLTEuODc0IDAgLjkzNy45MzcgMCAwIDEgMS44NzQgMFoiLz48L3N2Zz4K", tt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuNSA4LjEyNSAxMCAxMi41bDcuNS00LjM3NUwxMCAzLjc1IDIuNSA4LjEyNVoiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjY4NSAzLjIxYS42MjUuNjI1IDAgMCAxIC42MyAwbDcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOGw3LjUtNC4zNzVaTTMuNzQgOC4xMjUgMTAgMTEuNzc2bDYuMjYtMy42NTFMMTAgNC40NzQgMy43NCA4LjEyNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA5LjQ2YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDExLjc3NmwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA5LjQ2Wm0tMS42NiAyLjQxNUwxMCAxNS41MjZsNi4yNi0zLjY1MS0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNi0xLjk3NSAxLjE1MVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", at = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMy4yMWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDguMTI1IDEwIDExLjc3Nmw2LjI2LTMuNjUxTDEwIDQuNDc0IDMuNzQgOC4xMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjcxNCAxMCAxMCAxMi41bDQuMjg2LTIuNSAzLjIxNCAxLjg3NUwxMCAxNi4yNWwtNy41LTQuMzc1TDUuNzE0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDkuNDZhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgMTEuNzc2bDMuOTctMi4zMTZhLjYyNS42MjUgMCAwIDEgLjYzIDBsMy4yMTUgMS44NzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhMNS40IDkuNDZabS0xLjY2IDIuNDE1TDEwIDE1LjUyNmw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2LTEuOTc1IDEuMTUxWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", rt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIuNSA2LjI1IDcuNSA0LjM3NSA3LjUtNC4zNzVMMTAgMS44NzUgMi41IDYuMjVaIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMS4zMzVhLjYyNS42MjUgMCAwIDEgLjYzIDBsNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4bDcuNS00LjM3NVpNMy43NCA2LjI1IDEwIDkuOTAxbDYuMjYtMy42NTFMMTAgMi41OTkgMy43NCA2LjI1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDExLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCAxMy42NTFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgMTEuMzM1Wk0zLjc0IDEzLjc1IDEwIDE3LjQwMWw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTMuNzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgNy41ODVhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgOS45MDFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgNy41ODVaTTMuNzQgMTAgMTAgMTMuNjUxIDE2LjI2IDEwbC0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNkwzLjc0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", it = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS45NiAxMy40MzVhLjYyNS42MjUgMCAwIDEgLjg1NS0uMjI1TDEwIDE3LjQwMWw3LjE4NS00LjE5YS42MjUuNjI1IDAgMCAxIC42MyAxLjA3OWwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEtLjIyNS0uODU1Wk05LjY4NSAxLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDYuMjUgMTAgOS45MDFsNi4yNi0zLjY1MUwxMCAyLjU5OSAzLjc0IDYuMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjcxNCAxMS44NzUgNC4yODYgMi41IDQuMjg2LTIuNUwxNy41IDEzLjc1IDEwIDE4LjEyNSAyLjUgMTMuNzVsMy4yMTQtMS44NzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgMTEuMzM1YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDEzLjY1MWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCAxMS4zMzVaTTMuNzQgMTMuNzUgMTAgMTcuNDAxbDYuMjYtMy42NTEtMS45NzQtMS4xNTEtMy45NzEgMi4zMTZhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTMuOTctMi4zMTZMMy43NCAxMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA3LjU4NWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCA5LjkwMWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA3LjU4NVpNMy43NCAxMCAxMCAxMy42NTEgMTYuMjYgMTBsLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTBaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", nt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0VDNEU0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xMjUgMS4yNUExLjg3NSAxLjg3NSAwIDAgMCA2LjI1IDMuMTI1di42MjVIMy4xMjVhLjYyNS42MjUgMCAwIDAgMCAxLjI1aC42MjV2MTEuMjVBMS4yNSAxLjI1IDAgMCAwIDUgMTcuNWgxMGExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjVoLjYyNWEuNjI1LjYyNSAwIDAgMCAwLTEuMjVIMTMuNzV2LS42MjVhMS44NzUgMS44NzUgMCAwIDAtMS44NzUtMS44NzVoLTMuNzVabTQuMzc1IDIuNXYtLjYyNWEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2LjYyNWg1Wk01IDE2LjI1VjVoMTB2MTEuMjVINVpNOC4xMjUgNy41Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NWEuNjI1LjYyNSAwIDEgMS0xLjI1IDB2LTVjMC0uMzQ1LjI4LS42MjUuNjI1LS42MjVabTQuMzc1IDUuNjI1di01YS42MjUuNjI1IDAgMCAwLTEuMjUgMHY1YS42MjUuNjI1IDAgMSAwIDEuMjUgMFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==";
491
- function pe(o, e, t, a, r, i, n) {
490
+ var $e = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi44NzUgMi41YS42MjUuNjI1IDAgMCAwLS42MjUuNjI0VjYuMjVIMy4xMjVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2MTBjMCAuMzQ1LjI4LjYyNS42MjUuNjI1aDEwYy4zNDUgMCAuNjI1LS4yOC42MjUtLjYyNXYtMy4xMjZoMy4xMjVjLjM0NSAwIC42MjUtLjI4LjYyNS0uNjI1di0xMGEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTEwWm02Ljg3NSAxMGgyLjVWMy43NUg3LjV2Mi41aDUuNjI1Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NS42MjRabS0xMCAzLjc1VjcuNWg4Ljc1djguNzVIMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", qe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDcuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDMuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjVabTEzLjc1IDBIMy43NXY4Ljc1aDEyLjVWNy41WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMS44NzVhMi4xODggMi4xODggMCAwIDAtMi4xODggMi4xODh2Mi44MTJhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyYTMuNDM3IDMuNDM3IDAgMSAxIDYuODc1IDB2Mi44MTNhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyQTIuMTg4IDIuMTg4IDAgMCAwIDEwIDEuODc2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDEyLjgxM2EuOTM3LjkzNyAwIDEgMCAwLTEuODc1LjkzNy45MzcgMCAwIDAgMCAxLjg3NFoiLz48L3N2Zz4=", et = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE2LjI1IDYuMjVINy41VjQuMzc1YTIuNSAyLjUgMCAwIDEgMi41LTIuNWMxLjIgMCAyLjI4MS44NiAyLjUxMiAyYS42MjUuNjI1IDAgMCAwIDEuMjI2LS4yNWMtLjM1NC0xLjczOC0xLjkyNS0zLTMuNzM4LTNhMy43NTQgMy43NTQgMCAwIDAtMy43NSAzLjc1VjYuMjVoLTIuNUExLjI1IDEuMjUgMCAwIDAgMi41IDcuNXY4Ljc1YTEuMjUgMS4yNSAwIDAgMCAxLjI1IDEuMjVoMTIuNWExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjcuNWExLjI1IDEuMjUgMCAwIDAtMS4yNS0xLjI1Wm0wIDEwSDMuNzVWNy41aDEyLjV2OC43NVptLTUuMzEzLTQuMzc1YS45MzcuOTM3IDAgMSAxLTEuODc0IDAgLjkzNy45MzcgMCAwIDEgMS44NzQgMFoiLz48L3N2Zz4K", tt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuNSA4LjEyNSAxMCAxMi41bDcuNS00LjM3NUwxMCAzLjc1IDIuNSA4LjEyNVoiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjY4NSAzLjIxYS42MjUuNjI1IDAgMCAxIC42MyAwbDcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOGw3LjUtNC4zNzVaTTMuNzQgOC4xMjUgMTAgMTEuNzc2bDYuMjYtMy42NTFMMTAgNC40NzQgMy43NCA4LjEyNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA5LjQ2YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDExLjc3NmwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA5LjQ2Wm0tMS42NiAyLjQxNUwxMCAxNS41MjZsNi4yNi0zLjY1MS0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNi0xLjk3NSAxLjE1MVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", at = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMy4yMWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDguMTI1IDEwIDExLjc3Nmw2LjI2LTMuNjUxTDEwIDQuNDc0IDMuNzQgOC4xMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjcxNCAxMCAxMCAxMi41bDQuMjg2LTIuNSAzLjIxNCAxLjg3NUwxMCAxNi4yNWwtNy41LTQuMzc1TDUuNzE0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDkuNDZhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgMTEuNzc2bDMuOTctMi4zMTZhLjYyNS42MjUgMCAwIDEgLjYzIDBsMy4yMTUgMS44NzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhMNS40IDkuNDZabS0xLjY2IDIuNDE1TDEwIDE1LjUyNmw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2LTEuOTc1IDEuMTUxWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", rt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIuNSA2LjI1IDcuNSA0LjM3NSA3LjUtNC4zNzVMMTAgMS44NzUgMi41IDYuMjVaIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMS4zMzVhLjYyNS42MjUgMCAwIDEgLjYzIDBsNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4bDcuNS00LjM3NVpNMy43NCA2LjI1IDEwIDkuOTAxbDYuMjYtMy42NTFMMTAgMi41OTkgMy43NCA2LjI1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDExLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCAxMy42NTFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgMTEuMzM1Wk0zLjc0IDEzLjc1IDEwIDE3LjQwMWw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTMuNzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgNy41ODVhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgOS45MDFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgNy41ODVaTTMuNzQgMTAgMTAgMTMuNjUxIDE2LjI2IDEwbC0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNkwzLjc0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", nt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS45NiAxMy40MzVhLjYyNS42MjUgMCAwIDEgLjg1NS0uMjI1TDEwIDE3LjQwMWw3LjE4NS00LjE5YS42MjUuNjI1IDAgMCAxIC42MyAxLjA3OWwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEtLjIyNS0uODU1Wk05LjY4NSAxLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDYuMjUgMTAgOS45MDFsNi4yNi0zLjY1MUwxMCAyLjU5OSAzLjc0IDYuMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjcxNCAxMS44NzUgNC4yODYgMi41IDQuMjg2LTIuNUwxNy41IDEzLjc1IDEwIDE4LjEyNSAyLjUgMTMuNzVsMy4yMTQtMS44NzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgMTEuMzM1YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDEzLjY1MWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCAxMS4zMzVaTTMuNzQgMTMuNzUgMTAgMTcuNDAxbDYuMjYtMy42NTEtMS45NzQtMS4xNTEtMy45NzEgMi4zMTZhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTMuOTctMi4zMTZMMy43NCAxMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA3LjU4NWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCA5LjkwMWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA3LjU4NVpNMy43NCAxMCAxMCAxMy42NTEgMTYuMjYgMTBsLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTBaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", it = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0VDNEU0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xMjUgMS4yNUExLjg3NSAxLjg3NSAwIDAgMCA2LjI1IDMuMTI1di42MjVIMy4xMjVhLjYyNS42MjUgMCAwIDAgMCAxLjI1aC42MjV2MTEuMjVBMS4yNSAxLjI1IDAgMCAwIDUgMTcuNWgxMGExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjVoLjYyNWEuNjI1LjYyNSAwIDAgMCAwLTEuMjVIMTMuNzV2LS42MjVhMS44NzUgMS44NzUgMCAwIDAtMS44NzUtMS44NzVoLTMuNzVabTQuMzc1IDIuNXYtLjYyNWEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2LjYyNWg1Wk01IDE2LjI1VjVoMTB2MTEuMjVINVpNOC4xMjUgNy41Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NWEuNjI1LjYyNSAwIDEgMS0xLjI1IDB2LTVjMC0uMzQ1LjI4LS42MjUuNjI1LS42MjVabTQuMzc1IDUuNjI1di01YS42MjUuNjI1IDAgMCAwLTEuMjUgMHY1YS42MjUuNjI1IDAgMSAwIDEuMjUgMFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==";
491
+ function pe(o, e, t, a, r, n, i) {
492
492
  try {
493
- var s = o[i](n), c = s.value;
493
+ var s = o[n](i), c = s.value;
494
494
  } catch (u) {
495
495
  return void t(u);
496
496
  }
@@ -500,18 +500,18 @@ function st(o) {
500
500
  return function() {
501
501
  var e = this, t = arguments;
502
502
  return new Promise(function(a, r) {
503
- var i = o.apply(e, t);
504
- function n(c) {
505
- pe(i, a, r, n, s, "next", c);
503
+ var n = o.apply(e, t);
504
+ function i(c) {
505
+ pe(n, a, r, i, s, "next", c);
506
506
  }
507
507
  function s(c) {
508
- pe(i, a, r, n, s, "throw", c);
508
+ pe(n, a, r, i, s, "throw", c);
509
509
  }
510
- n(void 0);
510
+ i(void 0);
511
511
  });
512
512
  };
513
513
  }
514
- const P = {
514
+ const _ = {
515
515
  style: {
516
516
  position: "absolute",
517
517
  display: "none",
@@ -571,11 +571,11 @@ const P = {
571
571
  offsetTop: 50,
572
572
  icons: {
573
573
  copyPaste: $e,
574
- delete: nt,
574
+ delete: it,
575
575
  lock: qe,
576
576
  unlock: et,
577
577
  bringToFront: rt,
578
- sendToBack: it,
578
+ sendToBack: nt,
579
579
  bringForward: tt,
580
580
  sendBackwards: at
581
581
  },
@@ -662,11 +662,11 @@ class dt {
662
662
  if (this.options = t.options, !!this.options.showToolbar) {
663
663
  this.editor = t, this.canvas = t.canvas;
664
664
  var a = this.options.toolbar || {};
665
- this.config = j(j(j({}, P), a), {}, {
666
- style: j(j({}, P.style), a.style || {}),
667
- btnStyle: j(j({}, P.btnStyle), a.btnStyle || {}),
668
- icons: j(j({}, P.icons), a.icons || {}),
669
- handlers: j(j({}, P.handlers), a.handlers || {})
665
+ this.config = j(j(j({}, _), a), {}, {
666
+ style: j(j({}, _.style), a.style || {}),
667
+ btnStyle: j(j({}, _.btnStyle), a.btnStyle || {}),
668
+ icons: j(j({}, _.icons), a.icons || {}),
669
+ handlers: j(j({}, _.handlers), a.handlers || {})
670
670
  }), this.currentTarget = null, this.currentLocked = null, this.isTransforming = !1, this._onMouseDown = this._handleMouseDown.bind(this), this._onObjectMoving = this._startTransform.bind(this), this._onObjectScaling = this._startTransform.bind(this), this._onObjectRotating = this._startTransform.bind(this), this._onMouseUp = this._endTransform.bind(this), this._onObjectModified = this._endTransform.bind(this), this._onSelectionChange = this._updateToolbar.bind(this), this._onSelectionClear = () => {
671
671
  this.el.style.display = "none";
672
672
  }, this._createDOM(), this._bindEvents();
@@ -700,14 +700,14 @@ class dt {
700
700
  this.el.innerHTML = "";
701
701
  var a = function() {
702
702
  var {
703
- name: n,
703
+ name: i,
704
704
  handle: s
705
705
  } = r, {
706
706
  icons: c,
707
707
  btnStyle: u,
708
708
  handlers: d
709
709
  } = t.config, l = document.createElement("button");
710
- l.innerHTML = c[s] ? '<img src="'.concat(c[s], '" title="').concat(n, '" />') : n, Object.assign(l.style, u), l.onclick = () => {
710
+ l.innerHTML = c[s] ? '<img src="'.concat(c[s], '" title="').concat(i, '" />') : i, Object.assign(l.style, u), l.onclick = () => {
711
711
  var h;
712
712
  return (h = d[s]) === null || h === void 0 ? void 0 : h.call(d, t.editor);
713
713
  }, t.el.appendChild(l);
@@ -782,12 +782,12 @@ class dt {
782
782
  canvas: r
783
783
  } = this;
784
784
  e.setCoords();
785
- var i = r.getZoom(), [, , , , n, s] = r.viewportTransform, {
785
+ var n = r.getZoom(), [, , , , i, s] = r.viewportTransform, {
786
786
  x: c
787
787
  } = e.getCenterPoint(), {
788
788
  top: u,
789
789
  height: d
790
- } = e.getBoundingRect(!1, !0), l = c * i + n, h = l - t.offsetWidth / 2, g = (u + d) * i + s + a.offsetTop;
790
+ } = e.getBoundingRect(!1, !0), l = c * n + i, h = l - t.offsetWidth / 2, g = (u + d) * n + s + a.offsetTop;
791
791
  Object.assign(t.style, {
792
792
  left: "".concat(h, "px"),
793
793
  top: "".concat(g, "px"),
@@ -802,9 +802,9 @@ class dt {
802
802
  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();
803
803
  }
804
804
  }
805
- function Ie(o, e, t, a, r, i, n) {
805
+ function Ie(o, e, t, a, r, n, i) {
806
806
  try {
807
- var s = o[i](n), c = s.value;
807
+ var s = o[n](i), c = s.value;
808
808
  } catch (u) {
809
809
  return void t(u);
810
810
  }
@@ -814,14 +814,14 @@ function ee(o) {
814
814
  return function() {
815
815
  var e = this, t = arguments;
816
816
  return new Promise(function(a, r) {
817
- var i = o.apply(e, t);
818
- function n(c) {
819
- Ie(i, a, r, n, s, "next", c);
817
+ var n = o.apply(e, t);
818
+ function i(c) {
819
+ Ie(n, a, r, i, s, "next", c);
820
820
  }
821
821
  function s(c) {
822
- Ie(i, a, r, n, s, "throw", c);
822
+ Ie(n, a, r, i, s, "throw", c);
823
823
  }
824
- n(void 0);
824
+ i(void 0);
825
825
  });
826
826
  };
827
827
  }
@@ -844,7 +844,7 @@ class lt {
844
844
  return this.patches[this.currentIndex - 1] || null;
845
845
  }
846
846
  _createDiffPatcher() {
847
- this.diffPatcher = He({
847
+ this.diffPatcher = _e({
848
848
  objectHash(e) {
849
849
  return [e.id, e.format, e.locked, e.left, e.top, e.width, e.height, e.flipX, e.flipY, e.scaleX, e.scaleY, e.angle, e.opacity].join("-");
850
850
  },
@@ -887,8 +887,8 @@ class lt {
887
887
  baseState: e,
888
888
  currentIndex: t,
889
889
  patches: a
890
- } = this, r = JSON.parse(JSON.stringify(e)), i = 0; i < t; i += 1)
891
- r = this.diffPatcher.patch(r, a[i].diff);
890
+ } = this, r = JSON.parse(JSON.stringify(e)), n = 0; n < t; n += 1)
891
+ r = this.diffPatcher.patch(r, a[n].diff);
892
892
  return console.log("getFullState state", r), r;
893
893
  }
894
894
  /**
@@ -908,7 +908,7 @@ class lt {
908
908
  return;
909
909
  }
910
910
  console.log("baseState", this.baseState), this.currentIndex < this.patches.length && this.patches.splice(this.currentIndex), console.log("diff", a), this.totalChangesCount += 1, this.patches.push({
911
- id: S(),
911
+ id: A(),
912
912
  diff: a
913
913
  }), this.currentIndex += 1, this.patches.length > this.maxHistoryLength && (this.baseState = this.diffPatcher.patch(this.baseState, this.patches[0].diff), this.patches.shift(), this.currentIndex -= 1, this.baseStateChangesCount += 1), console.log("Состояние сохранено. Текущий индекс истории:", this.currentIndex);
914
914
  }
@@ -926,16 +926,16 @@ class lt {
926
926
  var {
927
927
  canvas: a,
928
928
  canvasManager: r,
929
- interactionBlocker: i
929
+ interactionBlocker: n
930
930
  } = t.editor, {
931
- width: n,
931
+ width: i,
932
932
  height: s
933
933
  } = a;
934
934
  yield a.loadFromJSON(e);
935
935
  var c = a.getObjects().find((d) => d.id === "montage-area");
936
- c && (t.editor.montageArea = c, (n !== e.width || s !== e.height) && r.updateCanvasAndFitObjects());
936
+ c && (t.editor.montageArea = c, (i !== e.width || s !== e.height) && r.updateCanvasAndFitObjects());
937
937
  var u = a.getObjects().find((d) => d.id === "overlay-mask");
938
- u && (i.overlayMask = u, i.overlayMask.visible = !1), a.renderAll(), a.fire("editor:history-state-loaded", {
938
+ u && (n.overlayMask = u, n.overlayMask.visible = !1), a.renderAll(), a.fire("editor:history-state-loaded", {
939
939
  fullState: e,
940
940
  currentIndex: t.currentIndex,
941
941
  totalChangesCount: t.totalChangesCount,
@@ -962,7 +962,14 @@ class lt {
962
962
  try {
963
963
  e.currentIndex -= 1, e.totalChangesCount -= 1;
964
964
  var t = e.getFullState();
965
- yield e.loadStateFromFullState(t), console.log("Undo выполнен. Текущий индекс истории:", e.currentIndex), e.canvas.fire("editor:undo");
965
+ yield e.loadStateFromFullState(t), console.log("Undo выполнен. Текущий индекс истории:", e.currentIndex), e.canvas.fire("editor:undo", {
966
+ fullState: t,
967
+ currentIndex: e.currentIndex,
968
+ totalChangesCount: e.totalChangesCount,
969
+ baseStateChangesCount: e.baseStateChangesCount,
970
+ patchesCount: e.patches.length,
971
+ patches: e.patches
972
+ });
966
973
  } catch (a) {
967
974
  console.error("undo. Ошибка отмены действия: ", a), e.canvas.fire("editor:error", {
968
975
  message: "Ошибка отмены действия: ".concat(a.message)
@@ -989,7 +996,14 @@ class lt {
989
996
  try {
990
997
  e.currentIndex += 1, e.totalChangesCount += 1;
991
998
  var t = e.getFullState();
992
- console.log("fullState", t), yield e.loadStateFromFullState(t), console.log("Redo выполнен. Текущий индекс истории:", e.currentIndex), e.canvas.fire("editor:redo");
999
+ console.log("fullState", t), yield e.loadStateFromFullState(t), console.log("Redo выполнен. Текущий индекс истории:", e.currentIndex), e.canvas.fire("editor:redo", {
1000
+ fullState: t,
1001
+ currentIndex: e.currentIndex,
1002
+ totalChangesCount: e.totalChangesCount,
1003
+ baseStateChangesCount: e.baseStateChangesCount,
1004
+ patchesCount: e.patches.length,
1005
+ patches: e.patches
1006
+ });
993
1007
  } catch (a) {
994
1008
  console.error("redo. Ошибка повтора действия: ", a), e.canvas.fire("editor:error", {
995
1009
  message: "Ошибка повтора действия: ".concat(a.message)
@@ -1002,9 +1016,9 @@ class lt {
1002
1016
  }
1003
1017
  }
1004
1018
  const ht = 0.1, gt = 2, vt = 0.1, mt = 90, k = 16, x = 16, E = 4096, O = 4096;
1005
- function Se(o, e, t, a, r, i, n) {
1019
+ function Ae(o, e, t, a, r, n, i) {
1006
1020
  try {
1007
- var s = o[i](n), c = s.value;
1021
+ var s = o[n](i), c = s.value;
1008
1022
  } catch (u) {
1009
1023
  return void t(u);
1010
1024
  }
@@ -1014,18 +1028,18 @@ function T(o) {
1014
1028
  return function() {
1015
1029
  var e = this, t = arguments;
1016
1030
  return new Promise(function(a, r) {
1017
- var i = o.apply(e, t);
1018
- function n(c) {
1019
- Se(i, a, r, n, s, "next", c);
1031
+ var n = o.apply(e, t);
1032
+ function i(c) {
1033
+ Ae(n, a, r, i, s, "next", c);
1020
1034
  }
1021
1035
  function s(c) {
1022
- Se(i, a, r, n, s, "throw", c);
1036
+ Ae(n, a, r, i, s, "throw", c);
1023
1037
  }
1024
- n(void 0);
1038
+ i(void 0);
1025
1039
  });
1026
1040
  };
1027
1041
  }
1028
- class w {
1042
+ class D {
1029
1043
  /**
1030
1044
  * @param {object} options
1031
1045
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -1054,16 +1068,16 @@ class w {
1054
1068
  var {
1055
1069
  source: a,
1056
1070
  scale: r = "image-".concat(t.options.scaleType),
1057
- withoutSave: i = !1
1071
+ withoutSave: n = !1
1058
1072
  } = e;
1059
1073
  if (!a) return null;
1060
1074
  var {
1061
- canvas: n,
1075
+ canvas: i,
1062
1076
  montageArea: s,
1063
1077
  transformManager: c,
1064
1078
  historyManager: u,
1065
1079
  errorManager: d
1066
- } = t.editor, l = yield t.getContentType(a), h = w.getFormatFromContentType(l), {
1080
+ } = t.editor, l = yield t.getContentType(a), h = D.getFormatFromContentType(l), {
1067
1081
  acceptContentTypes: g,
1068
1082
  acceptFormats: M
1069
1083
  } = t;
@@ -1089,13 +1103,13 @@ class w {
1089
1103
  if (a instanceof File)
1090
1104
  f = URL.createObjectURL(a);
1091
1105
  else if (typeof a == "string") {
1092
- var A = yield fetch(a, {
1106
+ var S = yield fetch(a, {
1093
1107
  mode: "cors"
1094
- }), D = yield A.blob({
1108
+ }), N = yield S.blob({
1095
1109
  type: l,
1096
1110
  quality: 1
1097
1111
  });
1098
- f = URL.createObjectURL(D);
1112
+ f = URL.createObjectURL(N);
1099
1113
  } else
1100
1114
  return d.emitError({
1101
1115
  origin: "ImageManager",
@@ -1111,8 +1125,8 @@ class w {
1111
1125
  }
1112
1126
  }), null;
1113
1127
  if (t._createdBlobUrls.push(f), h === "svg") {
1114
- var N = yield Te(f);
1115
- v = _.groupSVGElements(N.objects, N.options);
1128
+ var w = yield Te(f);
1129
+ v = P.groupSVGElements(w.objects, w.options);
1116
1130
  } else
1117
1131
  v = yield q.fromURL(f, {
1118
1132
  crossOrigin: "anonymous"
@@ -1127,19 +1141,19 @@ class w {
1127
1141
  crossOrigin: "anonymous"
1128
1142
  });
1129
1143
  } else if (y < x || L < k) {
1130
- var F = yield t.resizeImageToBoundaries(v._element.src, "min"), Z = URL.createObjectURL(F);
1144
+ var W = yield t.resizeImageToBoundaries(v._element.src, "min"), Z = URL.createObjectURL(W);
1131
1145
  t._createdBlobUrls.push(Z), v = yield q.fromURL(Z, {
1132
1146
  crossOrigin: "anonymous"
1133
1147
  });
1134
1148
  }
1135
- if (v.set("id", "".concat(v.type, "-").concat(S())), v.set("format", h), r === "scale-montage")
1149
+ if (v.set("id", "".concat(v.type, "-").concat(A())), v.set("format", h), r === "scale-montage")
1136
1150
  t.editor.canvasManager.scaleMontageAreaToImage({
1137
1151
  object: v,
1138
1152
  withoutSave: !0
1139
1153
  });
1140
1154
  else {
1141
1155
  var {
1142
- width: V,
1156
+ width: F,
1143
1157
  height: z
1144
1158
  } = s, U = t.calculateScaleFactor({
1145
1159
  imageObject: v,
@@ -1149,22 +1163,22 @@ class w {
1149
1163
  object: v,
1150
1164
  type: "contain",
1151
1165
  withoutSave: !0
1152
- }) : r === "image-cover" && (L > V || y > z) && c.fitObject({
1166
+ }) : r === "image-cover" && (L > F || y > z) && c.fitObject({
1153
1167
  object: v,
1154
1168
  type: "cover",
1155
1169
  withoutSave: !0
1156
1170
  });
1157
1171
  }
1158
- n.add(v), n.centerObject(v), n.setActiveObject(v), n.renderAll(), u.resumeHistory(), i || u.saveState();
1159
- var G = {
1172
+ i.add(v), i.centerObject(v), i.setActiveObject(v), i.renderAll(), u.resumeHistory(), n || u.saveState();
1173
+ var V = {
1160
1174
  image: v,
1161
1175
  format: h,
1162
1176
  contentType: l,
1163
1177
  scale: r,
1164
- withoutSave: i,
1178
+ withoutSave: n,
1165
1179
  source: a
1166
1180
  };
1167
- return n.fire("editor:image-imported", G), G;
1181
+ return i.fire("editor:image-imported", V), V;
1168
1182
  } catch (Y) {
1169
1183
  return d.emitError({
1170
1184
  origin: "ImageManager",
@@ -1176,7 +1190,7 @@ class w {
1176
1190
  format: h,
1177
1191
  contentType: l,
1178
1192
  scale: r,
1179
- withoutSave: i
1193
+ withoutSave: n
1180
1194
  }
1181
1195
  }), u.resumeHistory(), null;
1182
1196
  }
@@ -1193,9 +1207,9 @@ class w {
1193
1207
  resizeImageToBoundaries(e) {
1194
1208
  var t = arguments, a = this;
1195
1209
  return T(function* () {
1196
- var r = t.length > 1 && t[1] !== void 0 ? t[1] : "max", i = "Размер изображения больше максимального размера канваса, поэтому оно будет уменьшено до максимальных размеров c сохранением пропорций: ".concat(E, "x").concat(O);
1197
- r === "min" && (i = "Размер изображения меньше минимального размера канваса, поэтому оно будет увеличено до минимальных размеров c сохранением пропорций: ".concat(k, "x").concat(x));
1198
- var n = {
1210
+ var r = t.length > 1 && t[1] !== void 0 ? t[1] : "max", n = "Размер изображения больше максимального размера канваса, поэтому оно будет уменьшено до максимальных размеров c сохранением пропорций: ".concat(E, "x").concat(O);
1211
+ r === "min" && (n = "Размер изображения меньше минимального размера канваса, поэтому оно будет увеличено до минимальных размеров c сохранением пропорций: ".concat(k, "x").concat(x));
1212
+ var i = {
1199
1213
  dataURL: e,
1200
1214
  sizeType: r,
1201
1215
  maxWidth: E,
@@ -1207,9 +1221,9 @@ class w {
1207
1221
  origin: "ImageManager",
1208
1222
  method: "resizeImageToBoundaries",
1209
1223
  code: "IMAGE_RESIZE_WARNING",
1210
- message: i,
1211
- data: n
1212
- }), a.editor.workerManager.post("resizeImage", n);
1224
+ message: n,
1225
+ data: i
1226
+ }), a.editor.workerManager.post("resizeImage", i);
1213
1227
  })();
1214
1228
  }
1215
1229
  /**
@@ -1229,15 +1243,15 @@ class w {
1229
1243
  var {
1230
1244
  fileName: a = "image.png",
1231
1245
  contentType: r = "image/png",
1232
- exportAsBase64: i = !1,
1233
- exportAsBlob: n = !1
1246
+ exportAsBase64: n = !1,
1247
+ exportAsBlob: i = !1
1234
1248
  } = e.length > 0 && e[0] !== void 0 ? e[0] : {}, {
1235
1249
  canvas: s,
1236
1250
  montageArea: c,
1237
1251
  workerManager: u
1238
1252
  } = t.editor;
1239
1253
  try {
1240
- var d = r === "application/pdf", l = d ? "image/jpg" : r, h = w.getFormatFromContentType(l);
1254
+ var d = r === "application/pdf", l = d ? "image/jpg" : r, h = D.getFormatFromContentType(l);
1241
1255
  c.setCoords();
1242
1256
  var {
1243
1257
  left: g,
@@ -1246,20 +1260,20 @@ class w {
1246
1260
  height: f
1247
1261
  } = c.getBoundingRect(), v = yield s.clone(["id", "format", "locked"]);
1248
1262
  ["image/jpg", "image/jpeg"].includes(l) && (v.backgroundColor = "#ffffff");
1249
- var A = v.getObjects().find((b) => b.id === c.id);
1250
- A.visible = !1, v.viewportTransform = [1, 0, 0, 1, -g, -M], v.setDimensions({
1263
+ var S = v.getObjects().find((b) => b.id === c.id);
1264
+ S.visible = !1, v.viewportTransform = [1, 0, 0, 1, -g, -M], v.setDimensions({
1251
1265
  width: m,
1252
1266
  height: f
1253
1267
  }, {
1254
1268
  backstoreOnly: !0
1255
1269
  }), v.renderAll();
1256
- var D = v.getObjects().filter((b) => b.format).every((b) => b.format === "svg");
1257
- if (h === "svg" && D) {
1258
- var N = v.toSVG();
1270
+ var N = v.getObjects().filter((b) => b.format).every((b) => b.format === "svg");
1271
+ if (h === "svg" && N) {
1272
+ var w = v.toSVG();
1259
1273
  v.dispose();
1260
- var L = w._exportSVGStringAsFile(N, {
1261
- exportAsBase64: i,
1262
- exportAsBlob: n,
1274
+ var L = D._exportSVGStringAsFile(w, {
1275
+ exportAsBase64: n,
1276
+ exportAsBlob: i,
1263
1277
  fileName: a
1264
1278
  }), y = {
1265
1279
  image: L,
@@ -1272,7 +1286,7 @@ class w {
1272
1286
  var p = yield new Promise((b) => {
1273
1287
  v.getElement().toBlob(b);
1274
1288
  });
1275
- if (v.dispose(), n) {
1289
+ if (v.dispose(), i) {
1276
1290
  var B = {
1277
1291
  image: p,
1278
1292
  format: h,
@@ -1281,18 +1295,18 @@ class w {
1281
1295
  };
1282
1296
  return s.fire("editor:canvas-exported", B), B;
1283
1297
  }
1284
- var F = yield createImageBitmap(p), Z = yield u.post("toDataURL", {
1298
+ var W = yield createImageBitmap(p), Z = yield u.post("toDataURL", {
1285
1299
  format: h,
1286
1300
  quality: 1,
1287
- bitmap: F
1288
- }, [F]);
1301
+ bitmap: W
1302
+ }, [W]);
1289
1303
  if (d) {
1290
- var V = 0.264583, z = m * V, U = f * V, G = (yield t.editor.moduleLoader.loadModule("jspdf")).jsPDF, Y = new G({
1304
+ var F = 0.264583, z = m * F, U = f * F, V = (yield t.editor.moduleLoader.loadModule("jspdf")).jsPDF, Y = new V({
1291
1305
  orientation: z > U ? "landscape" : "portrait",
1292
1306
  unit: "mm",
1293
1307
  format: [z, U]
1294
1308
  });
1295
- if (Y.addImage(Z, "JPG", 0, 0, z, U), i) {
1309
+ if (Y.addImage(Z, "JPG", 0, 0, z, U), n) {
1296
1310
  var Ce = Y.output("datauristring"), de = {
1297
1311
  image: Ce,
1298
1312
  format: "pdf",
@@ -1301,17 +1315,17 @@ class w {
1301
1315
  };
1302
1316
  return s.fire("editor:canvas-exported", de), de;
1303
1317
  }
1304
- var we = Y.output("blob"), De = new File([we], a, {
1318
+ var De = Y.output("blob"), Ne = new File([De], a, {
1305
1319
  type: "application/pdf"
1306
1320
  }), le = {
1307
- image: De,
1321
+ image: Ne,
1308
1322
  format: "pdf",
1309
1323
  contentType: "application/pdf",
1310
1324
  fileName: a
1311
1325
  };
1312
1326
  return s.fire("editor:canvas-exported", le), le;
1313
1327
  }
1314
- if (i) {
1328
+ if (n) {
1315
1329
  var he = {
1316
1330
  image: Z,
1317
1331
  format: h,
@@ -1320,10 +1334,10 @@ class w {
1320
1334
  };
1321
1335
  return s.fire("editor:canvas-exported", he), he;
1322
1336
  }
1323
- var ge = h === "svg" && !D ? a.replace(/\.[^/.]+$/, ".png") : a, Ne = new File([p], ge, {
1337
+ var ge = h === "svg" && !N ? a.replace(/\.[^/.]+$/, ".png") : a, we = new File([p], ge, {
1324
1338
  type: l
1325
1339
  }), ve = {
1326
- image: Ne,
1340
+ image: we,
1327
1341
  format: h,
1328
1342
  contentType: l,
1329
1343
  fileName: ge
@@ -1338,8 +1352,8 @@ class w {
1338
1352
  data: {
1339
1353
  contentType: r,
1340
1354
  fileName: a,
1341
- exportAsBase64: i,
1342
- exportAsBlob: n
1355
+ exportAsBase64: n,
1356
+ exportAsBlob: i
1343
1357
  }
1344
1358
  }), "";
1345
1359
  }
@@ -1362,8 +1376,8 @@ class w {
1362
1376
  var {
1363
1377
  object: a,
1364
1378
  fileName: r = "image.png",
1365
- contentType: i = "image/png",
1366
- exportAsBase64: n = !1,
1379
+ contentType: n = "image/png",
1380
+ exportAsBase64: i = !1,
1367
1381
  exportAsBlob: s = !1
1368
1382
  } = e.length > 0 && e[0] !== void 0 ? e[0] : {}, {
1369
1383
  canvas: c,
@@ -1376,17 +1390,17 @@ class w {
1376
1390
  code: "NO_OBJECT_SELECTED",
1377
1391
  message: "Не выбран объект для экспорта",
1378
1392
  data: {
1379
- contentType: i,
1393
+ contentType: n,
1380
1394
  fileName: r,
1381
- exportAsBase64: n,
1395
+ exportAsBase64: i,
1382
1396
  exportAsBlob: s
1383
1397
  }
1384
1398
  }), "";
1385
1399
  try {
1386
- var l = w.getFormatFromContentType(i);
1400
+ var l = D.getFormatFromContentType(n);
1387
1401
  if (l === "svg") {
1388
1402
  var h = d.toSVG(), g = t._exportSVGStringAsFile(h, {
1389
- exportAsBase64: n,
1403
+ exportAsBase64: i,
1390
1404
  exportAsBlob: s,
1391
1405
  fileName: r
1392
1406
  }), M = {
@@ -1397,7 +1411,7 @@ class w {
1397
1411
  };
1398
1412
  return c.fire("editor:object-exported", M), M;
1399
1413
  }
1400
- if (n) {
1414
+ if (i) {
1401
1415
  var m = yield createImageBitmap(d._element), f = yield u.post("toDataURL", {
1402
1416
  format: l,
1403
1417
  quality: 1,
@@ -1405,29 +1419,29 @@ class w {
1405
1419
  }, [m]), v = {
1406
1420
  image: f,
1407
1421
  format: l,
1408
- contentType: i,
1422
+ contentType: n,
1409
1423
  fileName: r
1410
1424
  };
1411
1425
  return c.fire("editor:object-exported", v), v;
1412
1426
  }
1413
- var A = d.toCanvasElement(), D = yield new Promise((p) => {
1414
- A.toBlob(p);
1427
+ var S = d.toCanvasElement(), N = yield new Promise((p) => {
1428
+ S.toBlob(p);
1415
1429
  });
1416
1430
  if (s) {
1417
- var N = {
1418
- image: D,
1431
+ var w = {
1432
+ image: N,
1419
1433
  format: l,
1420
- contentType: i,
1434
+ contentType: n,
1421
1435
  fileName: r
1422
1436
  };
1423
- return c.fire("editor:object-exported", N), N;
1437
+ return c.fire("editor:object-exported", w), w;
1424
1438
  }
1425
- var L = new File([D], r, {
1426
- type: i
1439
+ var L = new File([N], r, {
1440
+ type: n
1427
1441
  }), y = {
1428
1442
  image: L,
1429
1443
  format: l,
1430
- contentType: i,
1444
+ contentType: n,
1431
1445
  fileName: r
1432
1446
  };
1433
1447
  return c.fire("editor:object-exported", y), y;
@@ -1438,9 +1452,9 @@ class w {
1438
1452
  code: "IMAGE_EXPORT_FAILED",
1439
1453
  message: "Ошибка экспорта объекта: ".concat(p.message),
1440
1454
  data: {
1441
- contentType: i,
1455
+ contentType: n,
1442
1456
  fileName: r,
1443
- exportAsBase64: n,
1457
+ exportAsBase64: i,
1444
1458
  exportAsBlob: s
1445
1459
  }
1446
1460
  }), "";
@@ -1482,7 +1496,7 @@ class w {
1482
1496
  * @returns {string[]} - массив допустимых форматов изображений
1483
1497
  */
1484
1498
  getAllowedFormatsFromContentTypes() {
1485
- return this.acceptContentTypes.map((e) => w.getFormatFromContentType(e)).filter((e) => e);
1499
+ return this.acceptContentTypes.map((e) => D.getFormatFromContentType(e)).filter((e) => e);
1486
1500
  }
1487
1501
  /**
1488
1502
  * Извлекает чистый формат (subtype) из contentType,
@@ -1532,11 +1546,11 @@ class w {
1532
1546
  try {
1533
1547
  var r = yield fetch(e, {
1534
1548
  method: "HEAD"
1535
- }), i = r.headers.get("content-type");
1536
- if (i && i.startsWith("image/"))
1537
- return i.split(";")[0];
1538
- } catch (n) {
1539
- console.warn("HEAD запрос неудачен, определяем тип по расширению:", n);
1549
+ }), n = r.headers.get("content-type");
1550
+ if (n && n.startsWith("image/"))
1551
+ return n.split(";")[0];
1552
+ } catch (i) {
1553
+ console.warn("HEAD запрос неудачен, определяем тип по расширению:", i);
1540
1554
  }
1541
1555
  return t.getContentTypeFromExtension(e);
1542
1556
  })();
@@ -1549,13 +1563,13 @@ class w {
1549
1563
  */
1550
1564
  getContentTypeFromExtension(e) {
1551
1565
  try {
1552
- var t, a = new URL(e), r = (t = a.pathname.split(".").pop()) === null || t === void 0 ? void 0 : t.toLowerCase(), i = {};
1553
- return this.acceptContentTypes.forEach((n) => {
1554
- var s = w.getFormatFromContentType(n);
1555
- s && (i[s] = n);
1556
- }), i[r] || "application/octet-stream";
1557
- } catch (n) {
1558
- return console.warn("Не удалось определить расширение из URL:", e, n), "application/octet-stream";
1566
+ var t, a = new URL(e), r = (t = a.pathname.split(".").pop()) === null || t === void 0 ? void 0 : t.toLowerCase(), n = {};
1567
+ return this.acceptContentTypes.forEach((i) => {
1568
+ var s = D.getFormatFromContentType(i);
1569
+ s && (n[s] = i);
1570
+ }), n[r] || "application/octet-stream";
1571
+ } catch (i) {
1572
+ return console.warn("Не удалось определить расширение из URL:", e, i), "application/octet-stream";
1559
1573
  }
1560
1574
  }
1561
1575
  /**
@@ -1572,11 +1586,11 @@ class w {
1572
1586
  montageArea: r
1573
1587
  } = this.editor;
1574
1588
  if (!r || !t) return 1;
1575
- var i = r.width, n = r.height, {
1589
+ var n = r.width, i = r.height, {
1576
1590
  width: s,
1577
1591
  height: c
1578
1592
  } = t;
1579
- return a === "contain" || a === "image-contain" ? Math.min(i / s, n / c) : a === "cover" || a === "image-cover" ? Math.max(i / s, n / c) : 1;
1593
+ return a === "contain" || a === "image-contain" ? Math.min(n / s, i / c) : a === "cover" || a === "image-cover" ? Math.max(n / s, i / c) : 1;
1580
1594
  }
1581
1595
  }
1582
1596
  class Mt {
@@ -1607,18 +1621,18 @@ class Mt {
1607
1621
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
1608
1622
  if (e) {
1609
1623
  var {
1610
- canvas: i,
1611
- montageArea: n,
1624
+ canvas: n,
1625
+ montageArea: i,
1612
1626
  options: {
1613
1627
  canvasBackstoreWidth: s
1614
1628
  }
1615
1629
  } = this.editor, {
1616
1630
  width: c,
1617
1631
  height: u
1618
- } = n, d = Number(Math.max(Math.min(e, E), k));
1619
- if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreWidth(s) : this.setCanvasBackstoreWidth(d), n.set({
1632
+ } = i, d = Number(Math.max(Math.min(e, E), k));
1633
+ if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreWidth(s) : this.setCanvasBackstoreWidth(d), i.set({
1620
1634
  width: d
1621
- }), i.clipPath.set({
1635
+ }), n.clipPath.set({
1622
1636
  width: d
1623
1637
  }), t) {
1624
1638
  var l = d / c, h = u * l;
@@ -1628,8 +1642,8 @@ class Mt {
1628
1642
  var {
1629
1643
  left: g,
1630
1644
  top: M
1631
- } = this.getObjectDefaultCoords(n), m = i.getZoom();
1632
- i.setViewportTransform([m, 0, 0, m, g, M]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-width-changed", {
1645
+ } = this.getObjectDefaultCoords(i), m = n.getZoom();
1646
+ n.setViewportTransform([m, 0, 0, m, g, M]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), n == null || n.fire("editor:resolution-width-changed", {
1633
1647
  width: e
1634
1648
  });
1635
1649
  }
@@ -1651,18 +1665,18 @@ class Mt {
1651
1665
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
1652
1666
  if (e) {
1653
1667
  var {
1654
- canvas: i,
1655
- montageArea: n,
1668
+ canvas: n,
1669
+ montageArea: i,
1656
1670
  options: {
1657
1671
  canvasBackstoreHeight: s
1658
1672
  }
1659
1673
  } = this.editor, {
1660
1674
  width: c,
1661
1675
  height: u
1662
- } = n, d = Number(Math.max(Math.min(e, O), x));
1663
- if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreHeight(s) : this.setCanvasBackstoreHeight(d), n.set({
1676
+ } = i, d = Number(Math.max(Math.min(e, O), x));
1677
+ if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreHeight(s) : this.setCanvasBackstoreHeight(d), i.set({
1664
1678
  height: d
1665
- }), i.clipPath.set({
1679
+ }), n.clipPath.set({
1666
1680
  height: d
1667
1681
  }), t) {
1668
1682
  var l = d / u, h = c * l;
@@ -1672,8 +1686,8 @@ class Mt {
1672
1686
  var {
1673
1687
  left: g,
1674
1688
  top: M
1675
- } = this.getObjectDefaultCoords(n), m = i.getZoom();
1676
- i.setViewportTransform([m, 0, 0, m, g, M]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-height-changed", {
1689
+ } = this.getObjectDefaultCoords(i), m = n.getZoom();
1690
+ n.setViewportTransform([m, 0, 0, m, g, M]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), n == null || n.fire("editor:resolution-height-changed", {
1677
1691
  height: e
1678
1692
  });
1679
1693
  }
@@ -1686,7 +1700,7 @@ class Mt {
1686
1700
  var {
1687
1701
  canvas: e,
1688
1702
  montageArea: t
1689
- } = this.editor, a = e.getWidth(), r = e.getHeight(), i = e.getZoom(), n = new ke(a / 2, r / 2);
1703
+ } = this.editor, a = e.getWidth(), r = e.getHeight(), n = e.getZoom(), i = new ke(a / 2, r / 2);
1690
1704
  t.set({
1691
1705
  left: a / 2,
1692
1706
  top: r / 2
@@ -1695,7 +1709,7 @@ class Mt {
1695
1709
  top: r / 2
1696
1710
  }), e.renderAll();
1697
1711
  var s = e.viewportTransform;
1698
- s[4] = a / 2 - n.x * i, s[5] = r / 2 - n.y * i, e.setViewportTransform(s), e.renderAll();
1712
+ s[4] = a / 2 - i.x * n, s[5] = r / 2 - i.y * n, e.setViewportTransform(s), e.renderAll();
1699
1713
  }
1700
1714
  /**
1701
1715
  * Метод для получения координат объекта с учетом текущего зума
@@ -1712,8 +1726,8 @@ class Mt {
1712
1726
  }), {};
1713
1727
  var {
1714
1728
  width: r,
1715
- height: i
1716
- } = a, n = t.getZoom(), s = (r - r * n) / 2, c = (i - i * n) / 2;
1729
+ height: n
1730
+ } = a, i = t.getZoom(), s = (r - r * i) / 2, c = (n - n * i) / 2;
1717
1731
  return {
1718
1732
  left: s,
1719
1733
  top: c
@@ -1742,10 +1756,10 @@ class Mt {
1742
1756
  adaptCanvasToContainer() {
1743
1757
  var {
1744
1758
  canvas: e
1745
- } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, i = Math.max(Math.min(a, E), k), n = Math.max(Math.min(r, O), x);
1746
- console.log("adaptCanvasToContainer newWidth", i), console.log("adaptCanvasToContainer newHeight", n), e.setDimensions({
1747
- width: i,
1748
- height: n
1759
+ } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, n = Math.max(Math.min(a, E), k), i = Math.max(Math.min(r, O), x);
1760
+ console.log("adaptCanvasToContainer newWidth", n), console.log("adaptCanvasToContainer newHeight", i), e.setDimensions({
1761
+ width: n,
1762
+ height: i
1749
1763
  }, {
1750
1764
  backstoreOnly: !0
1751
1765
  });
@@ -1762,13 +1776,13 @@ class Mt {
1762
1776
  transformManager: a,
1763
1777
  montageArea: {
1764
1778
  width: r,
1765
- height: i
1779
+ height: n
1766
1780
  }
1767
1781
  } = this.editor;
1768
1782
  this.setResolutionWidth(r, {
1769
1783
  adaptCanvasToContainer: !0,
1770
1784
  withoutSave: !0
1771
- }), this.setResolutionHeight(i, {
1785
+ }), this.setResolutionHeight(n, {
1772
1786
  adaptCanvasToContainer: !0,
1773
1787
  withoutSave: !0
1774
1788
  }), this.centerMontageArea(), t.selectAll(), a.fitObject({
@@ -1776,7 +1790,7 @@ class Mt {
1776
1790
  withoutSave: !0
1777
1791
  }), e.fire("editor:canvas-updated", {
1778
1792
  width: r,
1779
- height: i
1793
+ height: n
1780
1794
  });
1781
1795
  }
1782
1796
  /**
@@ -1794,7 +1808,7 @@ class Mt {
1794
1808
  var {
1795
1809
  canvas: t,
1796
1810
  montageArea: a
1797
- } = this.editor, r = a.width * e, i = a.height * e, n = t.wrapperEl.parentNode, s = r <= n.clientWidth ? "100%" : r, c = i <= n.clientHeight ? "100%" : i;
1811
+ } = this.editor, r = a.width * e, n = a.height * e, i = t.wrapperEl.parentNode, s = r <= i.clientWidth ? "100%" : r, c = n <= i.clientHeight ? "100%" : n;
1798
1812
  t.setDimensions({
1799
1813
  width: s,
1800
1814
  height: c
@@ -1893,25 +1907,25 @@ class Mt {
1893
1907
  var {
1894
1908
  canvas: r,
1895
1909
  options: {
1896
- editorContainer: i
1910
+ editorContainer: n
1897
1911
  }
1898
- } = this.editor, n = [];
1912
+ } = this.editor, i = [];
1899
1913
  switch (e) {
1900
1914
  case "canvas":
1901
- n.push(r.lowerCanvasEl, r.upperCanvasEl);
1915
+ i.push(r.lowerCanvasEl, r.upperCanvasEl);
1902
1916
  break;
1903
1917
  case "wrapper":
1904
- n.push(r.wrapperEl);
1918
+ i.push(r.wrapperEl);
1905
1919
  break;
1906
1920
  case "container":
1907
- n.push(i);
1921
+ i.push(n);
1908
1922
  break;
1909
1923
  default:
1910
- n.push(r.lowerCanvasEl, r.upperCanvasEl);
1924
+ i.push(r.lowerCanvasEl, r.upperCanvasEl);
1911
1925
  }
1912
1926
  var s = t === "width" ? "width" : "height";
1913
1927
  if (typeof a == "string") {
1914
- n.forEach((d) => {
1928
+ i.forEach((d) => {
1915
1929
  d.style[s] = a;
1916
1930
  });
1917
1931
  return;
@@ -1919,7 +1933,7 @@ class Mt {
1919
1933
  var c = parseFloat(a);
1920
1934
  if (!isNaN(c)) {
1921
1935
  var u = "".concat(c, "px");
1922
- n.forEach((d) => {
1936
+ i.forEach((d) => {
1923
1937
  d.style[s] = u;
1924
1938
  }), r.fire("editor:display-".concat(e, "-").concat(s, "-changed"), {
1925
1939
  element: e,
@@ -1943,8 +1957,8 @@ class Mt {
1943
1957
  withoutSave: a
1944
1958
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
1945
1959
  canvas: r,
1946
- montageArea: i,
1947
- transformManager: n,
1960
+ montageArea: n,
1961
+ transformManager: i,
1948
1962
  options: {
1949
1963
  montageAreaWidth: s,
1950
1964
  montageAreaHeight: c
@@ -1959,14 +1973,14 @@ class Mt {
1959
1973
  var {
1960
1974
  width: M,
1961
1975
  height: m
1962
- } = i, f = d / M, v = l / m, A = Math.max(f, v);
1963
- h = M * A, g = m * A;
1976
+ } = n, f = d / M, v = l / m, S = Math.max(f, v);
1977
+ h = M * S, g = m * S;
1964
1978
  }
1965
1979
  this.setResolutionWidth(h, {
1966
1980
  withoutSave: !0
1967
1981
  }), this.setResolutionHeight(g, {
1968
1982
  withoutSave: !0
1969
- }), (d > s || l > c) && n.calculateAndApplyDefaultZoom(), n.resetObject(u, {
1983
+ }), (d > s || l > c) && i.calculateAndApplyDefaultZoom(), i.resetObject(u, {
1970
1984
  withoutSave: !0
1971
1985
  }), r.centerObject(u), r.renderAll(), a || this.editor.historyManager.saveState(), r.fire("editor:montage-area-scaled-to-image", {
1972
1986
  object: u,
@@ -2003,13 +2017,13 @@ class Mt {
2003
2017
  transformManager: a,
2004
2018
  historyManager: r,
2005
2019
  options: {
2006
- montageAreaWidth: i,
2007
- montageAreaHeight: n
2020
+ montageAreaWidth: n,
2021
+ montageAreaHeight: i
2008
2022
  }
2009
2023
  } = this.editor;
2010
- a.resetZoom(), this.setResolutionWidth(i, {
2024
+ a.resetZoom(), this.setResolutionWidth(n, {
2011
2025
  withoutSave: !0
2012
- }), this.setResolutionHeight(n, {
2026
+ }), this.setResolutionHeight(i, {
2013
2027
  withoutSave: !0
2014
2028
  }), t.renderAll(), a.resetObjects(), e || r.saveState(), t.fire("editor:default-scale-set");
2015
2029
  }
@@ -2025,7 +2039,7 @@ class Mt {
2025
2039
  overlayMask: a
2026
2040
  }
2027
2041
  } = this.editor, r = e.getObjects();
2028
- return r.filter((i) => i.id !== t.id && i.id !== a.id);
2042
+ return r.filter((n) => n.id !== t.id && n.id !== a.id);
2029
2043
  }
2030
2044
  }
2031
2045
  class ft {
@@ -2049,10 +2063,10 @@ class ft {
2049
2063
  calculateAndApplyDefaultZoom() {
2050
2064
  var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.options.defaultScale, {
2051
2065
  canvas: t
2052
- } = this.editor, a = t.editorContainer, r = a.clientWidth, i = a.clientHeight, {
2053
- width: n,
2066
+ } = this.editor, a = t.editorContainer, r = a.clientWidth, n = a.clientHeight, {
2067
+ width: i,
2054
2068
  height: s
2055
- } = this.editor.montageArea, c = r / n * e, u = i / s * e, d = Math.min(c, u), {
2069
+ } = this.editor.montageArea, c = r / i * e, u = n / s * e, d = Math.min(c, u), {
2056
2070
  minZoom: l,
2057
2071
  maxZoom: h,
2058
2072
  maxZoomFactor: g
@@ -2074,15 +2088,20 @@ class ft {
2074
2088
  var {
2075
2089
  canvas: a,
2076
2090
  minZoom: r,
2077
- maxZoom: i
2078
- } = this.editor, n = a.getZoom(), {
2091
+ maxZoom: n
2092
+ } = this.editor, i = a.getZoom(), {
2079
2093
  x: s = t.pointX,
2080
2094
  y: c = t.pointY
2081
- } = a.getCenterPoint(), u = Number((n + Number(e)).toFixed(2));
2082
- u > i && (u = i), u < r && (u = r), a.zoomToPoint({
2095
+ } = a.getCenterPoint(), u = Number((i + Number(e)).toFixed(2));
2096
+ u > n && (u = n), u < r && (u = r), a.zoomToPoint({
2083
2097
  x: Number(s),
2084
2098
  y: Number(c)
2085
- }, u), a.fire("editor:zoom-changed", {
2099
+ }, u), console.log({
2100
+ currentZoom: i,
2101
+ zoom: u,
2102
+ pointX: s,
2103
+ pointY: c
2104
+ }), a.fire("editor:zoom-changed", {
2086
2105
  currentZoom: a.getZoom(),
2087
2106
  zoom: u,
2088
2107
  pointX: s,
@@ -2101,17 +2120,17 @@ class ft {
2101
2120
  minZoom: a,
2102
2121
  maxZoom: r
2103
2122
  } = this.editor, {
2104
- x: i,
2105
- y: n
2123
+ x: n,
2124
+ y: i
2106
2125
  } = t.getCenterPoint(), s = e;
2107
2126
  e > r && (s = r), e < a && (s = a), t.zoomToPoint({
2108
- x: Number(i),
2109
- y: Number(n)
2127
+ x: Number(n),
2128
+ y: Number(i)
2110
2129
  }, s), t.fire("editor:zoom-changed", {
2111
2130
  currentZoom: t.getZoom(),
2112
2131
  zoom: s,
2113
- pointX: i,
2114
- pointY: n
2132
+ pointX: n,
2133
+ pointY: i
2115
2134
  });
2116
2135
  }
2117
2136
  /**
@@ -2130,7 +2149,9 @@ class ft {
2130
2149
  x: Number(a),
2131
2150
  y: Number(r)
2132
2151
  }, t), this.editor.canvas.fire("editor:zoom-changed", {
2133
- currentZoom: e.getZoom()
2152
+ currentZoom: e.getZoom(),
2153
+ pointX: a,
2154
+ pointY: r
2134
2155
  });
2135
2156
  }
2136
2157
  /**
@@ -2146,11 +2167,13 @@ class ft {
2146
2167
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2147
2168
  canvas: a,
2148
2169
  historyManager: r
2149
- } = this.editor, i = a.getActiveObject();
2150
- if (i) {
2151
- var n = i.angle + e;
2152
- i.rotate(n), i.setCoords(), a.renderAll(), t || r.saveState(), a.fire("editor:object-rotated", {
2153
- angle: n
2170
+ } = this.editor, n = a.getActiveObject();
2171
+ if (n) {
2172
+ var i = n.angle + e;
2173
+ n.rotate(i), n.setCoords(), a.renderAll(), t || r.saveState(), a.fire("editor:object-rotated", {
2174
+ object: n,
2175
+ withoutSave: t,
2176
+ angle: i
2154
2177
  });
2155
2178
  }
2156
2179
  }
@@ -2167,7 +2190,10 @@ class ft {
2167
2190
  canvas: t,
2168
2191
  historyManager: a
2169
2192
  } = this.editor, r = t.getActiveObject();
2170
- r && (r.flipX = !r.flipX, t.renderAll(), e || a.saveState(), t.fire("editor:object-flipped-x"));
2193
+ r && (r.flipX = !r.flipX, t.renderAll(), e || a.saveState(), t.fire("editor:object-flipped-x", {
2194
+ object: r,
2195
+ withoutSave: e
2196
+ }));
2171
2197
  }
2172
2198
  /**
2173
2199
  * Отразить по вертикали
@@ -2182,7 +2208,10 @@ class ft {
2182
2208
  canvas: t,
2183
2209
  historyManager: a
2184
2210
  } = this.editor, r = t.getActiveObject();
2185
- r && (r.flipY = !r.flipY, t.renderAll(), e || a.saveState(), t.fire("editor:object-flipped-y"));
2211
+ r && (r.flipY = !r.flipY, t.renderAll(), e || a.saveState(), t.fire("editor:object-flipped-y", {
2212
+ object: r,
2213
+ withoutSave: e
2214
+ }));
2186
2215
  }
2187
2216
  /**
2188
2217
  * Установка прозрачности объекта
@@ -2196,11 +2225,15 @@ class ft {
2196
2225
  withoutSave: a
2197
2226
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2198
2227
  canvas: r,
2199
- historyManager: i
2200
- } = this.editor, n = e || r.getActiveObject();
2201
- n && (n.type === "activeselection" ? n.getObjects().forEach((s) => {
2228
+ historyManager: n
2229
+ } = this.editor, i = e || r.getActiveObject();
2230
+ i && (i.type === "activeselection" ? i.getObjects().forEach((s) => {
2202
2231
  s.set("opacity", t);
2203
- }) : n.set("opacity", t), r.renderAll(), a || i.saveState(), r.fire("editor:object-opacity-changed", t));
2232
+ }) : i.set("opacity", t), r.renderAll(), a || n.saveState(), r.fire("editor:object-opacity-changed", {
2233
+ object: i,
2234
+ opacity: t,
2235
+ withoutSave: a
2236
+ }));
2204
2237
  }
2205
2238
  /**
2206
2239
  * Масштабирование объекта
@@ -2220,32 +2253,32 @@ class ft {
2220
2253
  withoutSave: a,
2221
2254
  fitAsOneObject: r
2222
2255
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2223
- canvas: i,
2224
- imageManager: n,
2256
+ canvas: n,
2257
+ imageManager: i,
2225
2258
  historyManager: s
2226
- } = this.editor, c = e || i.getActiveObject();
2259
+ } = this.editor, c = e || n.getActiveObject();
2227
2260
  if (c) {
2228
2261
  if (c.set("angle", 0), ["activeselection"].includes(c.type) && !r) {
2229
2262
  var u = c.getObjects();
2230
- i.discardActiveObject(), u.forEach((h) => {
2231
- var g = n.calculateScaleFactor({
2263
+ n.discardActiveObject(), u.forEach((h) => {
2264
+ var g = i.calculateScaleFactor({
2232
2265
  imageObject: h,
2233
2266
  scaleType: t
2234
2267
  });
2235
- h.scale(g), i.centerObject(h);
2268
+ h.scale(g), n.centerObject(h);
2236
2269
  });
2237
- var d = new W(u, {
2238
- canvas: i
2270
+ var d = new H(u, {
2271
+ canvas: n
2239
2272
  });
2240
- i.setActiveObject(d);
2273
+ n.setActiveObject(d);
2241
2274
  } else {
2242
- var l = n.calculateScaleFactor({
2275
+ var l = i.calculateScaleFactor({
2243
2276
  imageObject: c,
2244
2277
  scaleType: t
2245
2278
  });
2246
- c.scale(l), i.centerObject(c);
2279
+ c.scale(l), n.centerObject(c);
2247
2280
  }
2248
- i.renderAll(), a || s.saveState(), i.fire("editor:object-fitted", {
2281
+ n.renderAll(), a || s.saveState(), n.fire("editor:object-fitted", {
2249
2282
  object: c,
2250
2283
  type: t,
2251
2284
  withoutSave: a,
@@ -2276,8 +2309,8 @@ class ft {
2276
2309
  withoutSave: a = !1
2277
2310
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2278
2311
  canvas: r,
2279
- montageArea: i,
2280
- imageManager: n,
2312
+ montageArea: n,
2313
+ imageManager: i,
2281
2314
  historyManager: s,
2282
2315
  options: {
2283
2316
  scaleType: c
@@ -2302,10 +2335,10 @@ class ft {
2302
2335
  var {
2303
2336
  width: l,
2304
2337
  height: h
2305
- } = i, {
2338
+ } = n, {
2306
2339
  width: g,
2307
2340
  height: M
2308
- } = u, m = n.calculateScaleFactor({
2341
+ } = u, m = i.calculateScaleFactor({
2309
2342
  imageObject: u,
2310
2343
  scaleType: c
2311
2344
  }), f = c === "contain" && m < 1 || c === "cover" && (g > l || M > h);
@@ -2322,7 +2355,11 @@ class ft {
2322
2355
  flipX: !1,
2323
2356
  flipY: !1,
2324
2357
  angle: 0
2325
- }), r.centerObject(u), r.renderAll(), s.resumeHistory(), a || s.saveState(), r.fire("editor:object-reset");
2358
+ }), r.centerObject(u), r.renderAll(), s.resumeHistory(), a || s.saveState(), r.fire("editor:object-reset", {
2359
+ object: u,
2360
+ withoutSave: a,
2361
+ alwaysFitObject: t
2362
+ });
2326
2363
  }
2327
2364
  }
2328
2365
  }
@@ -2376,14 +2413,14 @@ class jt {
2376
2413
  a.suspendHistory(), t.setCoords();
2377
2414
  var {
2378
2415
  left: r,
2379
- top: i,
2380
- width: n,
2416
+ top: n,
2417
+ width: i,
2381
2418
  height: s
2382
2419
  } = t.getBoundingRect();
2383
2420
  this.overlayMask.set({
2384
2421
  left: r,
2385
- top: i,
2386
- width: n,
2422
+ top: n,
2423
+ width: i,
2387
2424
  height: s
2388
2425
  }), e.discardActiveObject(), this.editor.layerManager.bringToFront(this.overlayMask, {
2389
2426
  withoutSave: !0
@@ -2452,10 +2489,13 @@ class K {
2452
2489
  historyManager: r
2453
2490
  } = this.editor;
2454
2491
  r.suspendHistory();
2455
- var i = e || a.getActiveObject();
2456
- i && (i.type === "activeselection" ? i.getObjects().forEach((n) => {
2457
- a.bringObjectToFront(n);
2458
- }) : a.bringObjectToFront(i), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-to-front"));
2492
+ var n = e || a.getActiveObject();
2493
+ n && (n.type === "activeselection" ? n.getObjects().forEach((i) => {
2494
+ a.bringObjectToFront(i);
2495
+ }) : a.bringObjectToFront(n), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-to-front", {
2496
+ object: n,
2497
+ withoutSave: t
2498
+ }));
2459
2499
  }
2460
2500
  /**
2461
2501
  * Поднять объект на один уровень вверх по оси Z
@@ -2472,8 +2512,11 @@ class K {
2472
2512
  historyManager: r
2473
2513
  } = this.editor;
2474
2514
  r.suspendHistory();
2475
- var i = e || a.getActiveObject();
2476
- i && (i.type === "activeselection" ? K._moveSelectionForward(a, i) : a.bringObjectForward(i), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-forward"));
2515
+ var n = e || a.getActiveObject();
2516
+ n && (n.type === "activeselection" ? K._moveSelectionForward(a, n) : a.bringObjectForward(n), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-forward", {
2517
+ object: n,
2518
+ withoutSave: t
2519
+ }));
2477
2520
  }
2478
2521
  /**
2479
2522
  * Отправить объект на задний план по оси Z
@@ -2488,12 +2531,12 @@ class K {
2488
2531
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2489
2532
  canvas: a,
2490
2533
  montageArea: r,
2491
- historyManager: i,
2534
+ historyManager: n,
2492
2535
  interactionBlocker: {
2493
- overlayMask: n
2536
+ overlayMask: i
2494
2537
  }
2495
2538
  } = this.editor;
2496
- i.suspendHistory();
2539
+ n.suspendHistory();
2497
2540
  var s = e || a.getActiveObject();
2498
2541
  if (s) {
2499
2542
  if (s.type === "activeselection")
@@ -2501,7 +2544,10 @@ class K {
2501
2544
  a.sendObjectToBack(c[u]);
2502
2545
  else
2503
2546
  a.sendObjectToBack(s);
2504
- a.sendObjectToBack(r), a.sendObjectToBack(n), a.renderAll(), i.resumeHistory(), t || i.saveState(), a.fire("editor:object-send-to-back");
2547
+ a.sendObjectToBack(r), a.sendObjectToBack(i), a.renderAll(), n.resumeHistory(), t || n.saveState(), a.fire("editor:object-send-to-back", {
2548
+ object: s,
2549
+ withoutSave: t
2550
+ });
2505
2551
  }
2506
2552
  }
2507
2553
  /**
@@ -2516,14 +2562,17 @@ class K {
2516
2562
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2517
2563
  canvas: a,
2518
2564
  montageArea: r,
2519
- historyManager: i,
2565
+ historyManager: n,
2520
2566
  interactionBlocker: {
2521
- overlayMask: n
2567
+ overlayMask: i
2522
2568
  }
2523
2569
  } = this.editor;
2524
- i.suspendHistory();
2570
+ n.suspendHistory();
2525
2571
  var s = e || a.getActiveObject();
2526
- s && (s.type === "activeselection" ? K._moveSelectionBackwards(a, s) : a.sendObjectBackwards(s), a.sendObjectToBack(r), a.sendObjectToBack(n), a.renderAll(), i.resumeHistory(), t || i.saveState(), a.fire("editor:object-send-backwards"));
2572
+ s && (s.type === "activeselection" ? K._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", {
2573
+ object: s,
2574
+ withoutSave: t
2575
+ }));
2527
2576
  }
2528
2577
  /**
2529
2578
  * Сдвигает выделенные объекты на один уровень вверх относительно ближайшего верхнего объекта
@@ -2533,20 +2582,20 @@ class K {
2533
2582
  * @private
2534
2583
  */
2535
2584
  static _moveSelectionForward(e, t) {
2536
- for (var a = e.getObjects(), r = t.getObjects(), i = r.map((d) => a.indexOf(d)), n = -1, s = function(l) {
2585
+ for (var a = e.getObjects(), r = t.getObjects(), n = r.map((d) => a.indexOf(d)), i = -1, s = function(l) {
2537
2586
  var h = a[l];
2538
- if (!r.includes(h) && i.some((g) => l > g))
2539
- return n = l, 1;
2587
+ if (!r.includes(h) && n.some((g) => l > g))
2588
+ return i = l, 1;
2540
2589
  }, c = 0; c < a.length && !s(c); c += 1)
2541
2590
  ;
2542
- if (n !== -1) {
2591
+ if (i !== -1) {
2543
2592
  var u = r.map((d) => ({
2544
2593
  obj: d,
2545
2594
  index: a.indexOf(d)
2546
2595
  })).sort((d, l) => l.index - d.index);
2547
2596
  u.forEach((d) => {
2548
2597
  var l = a.indexOf(d.obj);
2549
- l < n && (e.moveObjectTo(d.obj, n), n = l);
2598
+ l < i && (e.moveObjectTo(d.obj, i), i = l);
2550
2599
  });
2551
2600
  }
2552
2601
  }
@@ -2558,8 +2607,8 @@ class K {
2558
2607
  * @private
2559
2608
  */
2560
2609
  static _moveSelectionBackwards(e, t) {
2561
- for (var a = e.getObjects(), r = t.getObjects(), i = Math.min(...r.map((s) => a.indexOf(s))), n = r.length - 1; n >= 0; n -= 1)
2562
- e.moveObjectTo(r[n], i - 1);
2610
+ 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)
2611
+ e.moveObjectTo(r[i], n - 1);
2563
2612
  }
2564
2613
  }
2565
2614
  class yt {
@@ -2588,13 +2637,13 @@ class yt {
2588
2637
  */
2589
2638
  addRectangle(d = {}, { withoutSelection: c, withoutAdding: u } = {}) {
2590
2639
  var l = d, {
2591
- id: e = `rect-${S()}`,
2640
+ id: e = `rect-${A()}`,
2592
2641
  left: t,
2593
2642
  top: a,
2594
2643
  width: r = 100,
2595
- height: i = 100,
2596
- fill: n = "blue"
2597
- } = l, s = Q(l, [
2644
+ height: n = 100,
2645
+ fill: i = "blue"
2646
+ } = l, s = X(l, [
2598
2647
  "id",
2599
2648
  "left",
2600
2649
  "top",
@@ -2607,8 +2656,8 @@ class yt {
2607
2656
  left: t,
2608
2657
  top: a,
2609
2658
  width: r,
2610
- height: i,
2611
- fill: n
2659
+ height: n,
2660
+ fill: i
2612
2661
  }, s));
2613
2662
  return !t && !a && h.centerObject(g), u || (h.add(g), c || h.setActiveObject(g), h.renderAll()), g;
2614
2663
  }
@@ -2630,12 +2679,12 @@ class yt {
2630
2679
  */
2631
2680
  addCircle(u = {}, { withoutSelection: s, withoutAdding: c } = {}) {
2632
2681
  var d = u, {
2633
- id: e = `circle-${S()}`,
2682
+ id: e = `circle-${A()}`,
2634
2683
  left: t,
2635
2684
  top: a,
2636
2685
  radius: r = 50,
2637
- fill: i = "green"
2638
- } = d, n = Q(d, [
2686
+ fill: n = "green"
2687
+ } = d, i = X(d, [
2639
2688
  "id",
2640
2689
  "left",
2641
2690
  "top",
@@ -2646,9 +2695,9 @@ class yt {
2646
2695
  id: e,
2647
2696
  left: t,
2648
2697
  top: a,
2649
- fill: i,
2698
+ fill: n,
2650
2699
  radius: r
2651
- }, n));
2700
+ }, i));
2652
2701
  return !t && !a && l.centerObject(h), c || (l.add(h), s || l.setActiveObject(h), l.renderAll()), h;
2653
2702
  }
2654
2703
  /**
@@ -2670,13 +2719,13 @@ class yt {
2670
2719
  */
2671
2720
  addTriangle(d = {}, { withoutSelection: c, withoutAdding: u } = {}) {
2672
2721
  var l = d, {
2673
- id: e = `triangle-${S()}`,
2722
+ id: e = `triangle-${A()}`,
2674
2723
  left: t,
2675
2724
  top: a,
2676
2725
  width: r = 100,
2677
- height: i = 100,
2678
- fill: n = "yellow"
2679
- } = l, s = Q(l, [
2726
+ height: n = 100,
2727
+ fill: i = "yellow"
2728
+ } = l, s = X(l, [
2680
2729
  "id",
2681
2730
  "left",
2682
2731
  "top",
@@ -2688,9 +2737,9 @@ class yt {
2688
2737
  id: e,
2689
2738
  left: t,
2690
2739
  top: a,
2691
- fill: n,
2740
+ fill: i,
2692
2741
  width: r,
2693
- height: i
2742
+ height: n
2694
2743
  }, s));
2695
2744
  return !t && !a && h.centerObject(g), u || (h.add(g), c || h.setActiveObject(g), h.renderAll()), g;
2696
2745
  }
@@ -2708,48 +2757,69 @@ class pt {
2708
2757
  * @fires editor:object-copied
2709
2758
  */
2710
2759
  copy() {
2711
- return H(this, null, function* () {
2712
- const { canvas: e } = this.editor, t = e.getActiveObject();
2713
- if (t)
2714
- try {
2715
- const a = yield t.clone(["format"]);
2716
- if (this.clipboard = a, typeof ClipboardItem == "undefined" || !navigator.clipboard) {
2717
- console.warn(
2718
- // eslint-disable-next-line max-len
2719
- "ClipboardManager. navigator.clipboard не поддерживается в этом браузере или отсутствует соединение по HTTPS-протоколу."
2720
- ), e.fire("editor:object-copied", { object: a });
2721
- return;
2722
- }
2723
- if (this.clipboard.type !== "image") {
2724
- yield navigator.clipboard.writeText(`application/image-editor:${JSON.stringify(a)}`), e.fire("editor:object-copied", { object: a });
2725
- return;
2726
- }
2727
- const r = a.toCanvasElement(), i = yield new Promise((s) => {
2728
- r.toBlob(s);
2729
- });
2730
- if (!i) return;
2731
- const n = new ClipboardItem({ [i.type]: i });
2732
- yield navigator.clipboard.write([n]), e.fire("editor:object-copied", { object: a });
2733
- } catch (a) {
2734
- if (!(a instanceof Error)) return;
2735
- const r = "ClipboardManager. Ошибка записи в системный буфер обмена:";
2736
- console.error(r, a), e.fire("editor:error", {
2737
- message: `${r} ${a.message}`
2738
- });
2739
- }
2760
+ const { canvas: e, errorManager: t } = this.editor, a = e.getActiveObject();
2761
+ if (!a) return;
2762
+ if (typeof ClipboardItem == "undefined" || !navigator.clipboard)
2763
+ return t.emitWarning({
2764
+ origin: "ClipboardManager",
2765
+ method: "copy",
2766
+ code: "CLIPBOARD_NOT_SUPPORTED",
2767
+ message: "ClipboardManager. navigator.clipboard не поддерживается в этом браузере или отсутствует соединение по HTTPS-протоколу."
2768
+ }), this._cloneAndFire(e, a);
2769
+ if (a.type !== "image") {
2770
+ const h = `application/image-editor:${JSON.stringify(a.toObject(["format"]))}`;
2771
+ return navigator.clipboard.writeText(h).catch((g) => {
2772
+ t.emitWarning({
2773
+ origin: "ClipboardManager",
2774
+ method: "copy",
2775
+ code: "CLIPBOARD_WRITE_TEXT_FAILED",
2776
+ message: `Ошибка записи текстового объекта в буфер обмена: ${g.message}`,
2777
+ data: g
2778
+ });
2779
+ }), this._cloneAndFire(e, a);
2780
+ }
2781
+ const n = a.toCanvasElement().toDataURL(), i = n.slice(5).split(";")[0], s = n.split(",")[1], c = atob(s), u = new Uint8Array(c.length);
2782
+ for (let h = 0; h < c.length; h++)
2783
+ u[h] = c.charCodeAt(h);
2784
+ const d = new Blob([u.buffer], { type: i }), l = new ClipboardItem({ [i]: d });
2785
+ navigator.clipboard.write([l]).catch((h) => {
2786
+ t.emitWarning({
2787
+ origin: "ClipboardManager",
2788
+ method: "copy",
2789
+ code: "CLIPBOARD_WRITE_IMAGE_FAILED",
2790
+ message: `Ошибка записи изображения в буфер обмена: ${h.message}`
2791
+ });
2792
+ }), this._cloneAndFire(e, a);
2793
+ }
2794
+ /**
2795
+ * Клонирует объект и вызывает событие 'editor:object-copied'.
2796
+ * @param canvas - экземпляр canvas
2797
+ * @param object - активный объект
2798
+ */
2799
+ _cloneAndFire(e, t) {
2800
+ t.clone(["format"]).then((a) => {
2801
+ this.clipboard = a, e.fire("editor:object-copied", { object: a });
2802
+ }).catch((a) => {
2803
+ this.editor.errorManager.emitError({
2804
+ origin: "ClipboardManager",
2805
+ method: "_cloneAndFire",
2806
+ code: "CLONE_FAILED",
2807
+ message: "ClipboardManager. Ошибка клонирования объекта",
2808
+ data: a
2809
+ });
2740
2810
  });
2741
2811
  }
2742
2812
  /**
2743
- * Обработчик вставки объекта или изображения из буфера обмена.
2744
- * @param {Object} event — объект события
2745
- * @param {Object} event.clipboardData — данные из буфера обмена
2746
- * @param {Array} event.clipboardData.items — элементы буфера обмена
2747
- */
2813
+ * Обработчик вставки объекта или изображения из буфера обмена.
2814
+ * @param {Object} event — объект события
2815
+ * @param {Object} event.clipboardData — данные из буфера обмена
2816
+ * @param {Array} event.clipboardData.items — элементы буфера обмена
2817
+ */
2748
2818
  handlePasteEvent({ clipboardData: e }) {
2749
- var n;
2750
- if (!((n = e == null ? void 0 : e.items) != null && n.length)) return;
2819
+ var i;
2820
+ if (!((i = e == null ? void 0 : e.items) != null && i.length)) return;
2751
2821
  const { imageManager: t } = this.editor, { items: a } = e, r = a[a.length - 1];
2752
- if (console.log("handlePasteEvent clipboardData", e), console.log("handlePasteEvent lastItem", r), r.type !== "text/html") {
2822
+ if (r.type !== "text/html") {
2753
2823
  const s = r.getAsFile();
2754
2824
  if (!s) return;
2755
2825
  const c = new FileReader();
@@ -2758,9 +2828,9 @@ class pt {
2758
2828
  }, c.readAsDataURL(s);
2759
2829
  return;
2760
2830
  }
2761
- const i = e.getData("text/html");
2762
- if (i) {
2763
- const u = new DOMParser().parseFromString(i, "text/html").querySelector("img");
2831
+ const n = e.getData("text/html");
2832
+ if (n) {
2833
+ const u = new DOMParser().parseFromString(n, "text/html").querySelector("img");
2764
2834
  if (u != null && u.src) {
2765
2835
  t.importImage({ source: u.src });
2766
2836
  return;
@@ -2773,16 +2843,16 @@ class pt {
2773
2843
  * @fires editor:object-pasted
2774
2844
  */
2775
2845
  paste() {
2776
- return H(this, null, function* () {
2846
+ return Q(this, null, function* () {
2777
2847
  const { canvas: e } = this.editor;
2778
2848
  if (!this.clipboard) return;
2779
2849
  const t = yield this.clipboard.clone(["format"]);
2780
2850
  e.discardActiveObject(), t.set({
2781
- id: `${t.type}-${S()}`,
2851
+ id: `${t.type}-${A()}`,
2782
2852
  left: t.left + 10,
2783
2853
  top: t.top + 10,
2784
2854
  evented: !0
2785
- }), t instanceof W ? (t.canvas = e, t.forEachObject((a) => {
2855
+ }), t instanceof H ? (t.canvas = e, t.forEachObject((a) => {
2786
2856
  e.add(a);
2787
2857
  })) : e.add(t), e.setActiveObject(t), e.requestRenderAll(), e.fire("editor:object-pasted", { object: t });
2788
2858
  });
@@ -2814,9 +2884,9 @@ class bt {
2814
2884
  withoutSave: a
2815
2885
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2816
2886
  canvas: r,
2817
- historyManager: i
2818
- } = this.editor, n = e || r.getActiveObject();
2819
- if (!(!n || n.locked)) {
2887
+ historyManager: n
2888
+ } = this.editor, i = e || r.getActiveObject();
2889
+ if (!(!i || i.locked)) {
2820
2890
  var s = {
2821
2891
  lockMovementX: !0,
2822
2892
  lockMovementY: !0,
@@ -2827,12 +2897,14 @@ class bt {
2827
2897
  lockSkewingY: !0,
2828
2898
  locked: !0
2829
2899
  };
2830
- n.set(s);
2831
- var c = !t && ["activeselection", "group"].includes(n.type);
2832
- c && n.getObjects().forEach((u) => {
2900
+ i.set(s);
2901
+ var c = !t && ["activeselection", "group"].includes(i.type);
2902
+ c && i.getObjects().forEach((u) => {
2833
2903
  u.set(s);
2834
- }), r.renderAll(), a || i.saveState(), r.fire("editor:object-locked", {
2835
- object: n
2904
+ }), r.renderAll(), a || n.saveState(), r.fire("editor:object-locked", {
2905
+ object: i,
2906
+ skipInnerObjects: t,
2907
+ withoutSave: a
2836
2908
  });
2837
2909
  }
2838
2910
  }
@@ -2851,9 +2923,9 @@ class bt {
2851
2923
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2852
2924
  canvas: a,
2853
2925
  historyManager: r
2854
- } = this.editor, i = e || a.getActiveObject();
2855
- if (i) {
2856
- var n = {
2926
+ } = this.editor, n = e || a.getActiveObject();
2927
+ if (n) {
2928
+ var i = {
2857
2929
  lockMovementX: !1,
2858
2930
  lockMovementY: !1,
2859
2931
  lockRotation: !1,
@@ -2863,10 +2935,11 @@ class bt {
2863
2935
  lockSkewingY: !1,
2864
2936
  locked: !1
2865
2937
  };
2866
- i.set(n), ["activeselection", "group"].includes(i.type) && i.getObjects().forEach((s) => {
2867
- s.set(n);
2938
+ n.set(i), ["activeselection", "group"].includes(n.type) && n.getObjects().forEach((s) => {
2939
+ s.set(i);
2868
2940
  }), a.renderAll(), t || r.saveState(), a.fire("editor:object-unlocked", {
2869
- object: i
2941
+ object: n,
2942
+ withoutSave: t
2870
2943
  });
2871
2944
  }
2872
2945
  }
@@ -2898,11 +2971,11 @@ class It {
2898
2971
  historyManager: r
2899
2972
  } = this.editor;
2900
2973
  r.suspendHistory();
2901
- var i = e || a.getActiveObject();
2902
- if (i && i.type === "activeselection") {
2903
- var n = i.getObjects(), s = new ze(n);
2904
- n.forEach((c) => a.remove(c)), s.set("id", "".concat(s.type, "-").concat(S())), a.add(s), a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-grouped", {
2905
- object: i,
2974
+ var n = e || a.getActiveObject();
2975
+ if (n && n.type === "activeselection") {
2976
+ var i = n.getObjects(), s = new ze(i);
2977
+ i.forEach((c) => a.remove(c)), s.set("id", "".concat(s.type, "-").concat(A())), a.add(s), a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-grouped", {
2978
+ object: n,
2906
2979
  group: s,
2907
2980
  withoutSave: t
2908
2981
  });
@@ -2924,22 +2997,22 @@ class It {
2924
2997
  historyManager: r
2925
2998
  } = this.editor;
2926
2999
  r.suspendHistory();
2927
- var i = e || a.getActiveObject();
2928
- if (!(!i || i.type !== "group")) {
2929
- var n = i.removeAll();
2930
- a.remove(i), n.forEach((c) => a.add(c));
2931
- var s = new W(n, {
3000
+ var n = e || a.getActiveObject();
3001
+ if (!(!n || n.type !== "group")) {
3002
+ var i = n.removeAll();
3003
+ a.remove(n), i.forEach((c) => a.add(c));
3004
+ var s = new H(i, {
2932
3005
  canvas: a
2933
3006
  });
2934
3007
  a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-ungrouped", {
2935
- object: i,
3008
+ object: n,
2936
3009
  selection: s,
2937
3010
  withoutSave: t
2938
3011
  });
2939
3012
  }
2940
3013
  }
2941
3014
  }
2942
- class St {
3015
+ class At {
2943
3016
  /**
2944
3017
  * @param {object} options
2945
3018
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2961,19 +3034,19 @@ class St {
2961
3034
  objectLockManager: a
2962
3035
  } = this.editor;
2963
3036
  e.discardActiveObject();
2964
- var r = t.getObjects(), i = r.some((s) => s.locked), n = r.length > 1 ? new W(t.getObjects(), {
3037
+ var r = t.getObjects(), n = r.some((s) => s.locked), i = r.length > 1 ? new H(t.getObjects(), {
2965
3038
  canvas: e
2966
3039
  }) : r[0];
2967
- i && a.lockObject({
2968
- object: n,
3040
+ n && a.lockObject({
3041
+ object: i,
2969
3042
  skipInnerObjects: !0,
2970
3043
  withoutSave: !0
2971
- }), e.setActiveObject(n), e.requestRenderAll(), e.fire("editor:all-objects-selected", {
2972
- selected: n
3044
+ }), e.setActiveObject(i), e.requestRenderAll(), e.fire("editor:all-objects-selected", {
3045
+ selected: i
2973
3046
  });
2974
3047
  }
2975
3048
  }
2976
- class At {
3049
+ class St {
2977
3050
  /**
2978
3051
  * @param {object} options
2979
3052
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2998,16 +3071,16 @@ class At {
2998
3071
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2999
3072
  canvas: a,
3000
3073
  historyManager: r,
3001
- groupingManager: i
3002
- } = this.editor, n = (e || a.getActiveObjects()).filter((s) => !s.locked);
3003
- n != null && n.length && (r.suspendHistory(), n.forEach((s) => {
3074
+ groupingManager: n
3075
+ } = this.editor, i = (e || a.getActiveObjects()).filter((s) => !s.locked);
3076
+ i != null && i.length && (r.suspendHistory(), i.forEach((s) => {
3004
3077
  if (s.type === "group" && s.format !== "svg") {
3005
- i.ungroup(s), this.deleteSelectedObjects();
3078
+ n.ungroup(s), this.deleteSelectedObjects();
3006
3079
  return;
3007
3080
  }
3008
3081
  a.remove(s);
3009
3082
  }), a.discardActiveObject(), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-deleted", {
3010
- objects: n,
3083
+ objects: i,
3011
3084
  withoutSave: t
3012
3085
  }));
3013
3086
  }
@@ -3038,6 +3111,27 @@ var Ct = {
3038
3111
  * Ошибка при экспорте изображения
3039
3112
  */
3040
3113
  IMAGE_EXPORT_FAILED: "IMAGE_EXPORT_FAILED"
3114
+ },
3115
+ /**
3116
+ * Коды ошибок и предупреждений для ClipboardManager.
3117
+ */
3118
+ CLIPBOARD_CODES: {
3119
+ /**
3120
+ * Буфер обмена не поддерживается в браузере или отсутствует HTTPS-соединение.
3121
+ */
3122
+ CLIPBOARD_NOT_SUPPORTED: "CLIPBOARD_NOT_SUPPORTED",
3123
+ /**
3124
+ * Ошибка записи текстового объекта в буфер обмена.
3125
+ */
3126
+ CLIPBOARD_WRITE_TEXT_FAILED: "CLIPBOARD_WRITE_TEXT_FAILED",
3127
+ /**
3128
+ * Ошибка записи изображения в буфер обмена.
3129
+ */
3130
+ CLIPBOARD_WRITE_IMAGE_FAILED: "CLIPBOARD_WRITE_IMAGE_FAILED",
3131
+ /**
3132
+ * Ошибка клонирования объекта.
3133
+ */
3134
+ CLONE_FAILED: "CLONE_FAILED"
3041
3135
  }
3042
3136
  };
3043
3137
  class $ {
@@ -3060,19 +3154,19 @@ class $ {
3060
3154
  * @param {string} [options.message] — текст ошибки (опционально, если не передан, то используется код ошибки)
3061
3155
  * @fires editor:error
3062
3156
  */
3063
- emitError({ origin: e = "ImageEditor", method: t = "Unknown Method", code: a, data: r, message: i }) {
3157
+ emitError({ origin: e = "ImageEditor", method: t = "Unknown Method", code: a, data: r, message: n }) {
3064
3158
  if (!$.isValidErrorCode(a)) {
3065
3159
  console.warn("Неизвестный код ошибки: ", { code: a, origin: e, method: t });
3066
3160
  return;
3067
3161
  }
3068
3162
  if (!a) return;
3069
- const n = i || a;
3070
- console.error(`${e}. ${t}. ${a}. ${n}`, r);
3163
+ const i = n || a;
3164
+ console.error(`${e}. ${t}. ${a}. ${i}`, r);
3071
3165
  const s = {
3072
3166
  code: a,
3073
3167
  origin: e,
3074
3168
  method: t,
3075
- message: n,
3169
+ message: i,
3076
3170
  data: r
3077
3171
  };
3078
3172
  this._buffer.push(C({
@@ -3089,19 +3183,19 @@ class $ {
3089
3183
  * @param {string} [options.message] — текст предупреждения (опционально, если не передан, то используется код предупреждения)
3090
3184
  * @fires editor:warning
3091
3185
  */
3092
- emitWarning({ origin: e = "ImageEditor", method: t = "Unknown Method", code: a, message: r, data: i }) {
3186
+ emitWarning({ origin: e = "ImageEditor", method: t = "Unknown Method", code: a, message: r, data: n }) {
3093
3187
  if (!$.isValidErrorCode(a)) {
3094
3188
  console.warn("Неизвестный код предупреждения: ", { code: a, origin: e, method: t });
3095
3189
  return;
3096
3190
  }
3097
- const n = r || a;
3098
- console.warn(`${e}. ${t}. ${a}. ${n}`, i);
3191
+ const i = r || a;
3192
+ console.warn(`${e}. ${t}. ${a}. ${i}`, n);
3099
3193
  const s = {
3100
3194
  code: a,
3101
3195
  origin: e,
3102
3196
  method: t,
3103
- message: n,
3104
- data: i
3197
+ message: i,
3198
+ data: n
3105
3199
  };
3106
3200
  this._buffer.push(C({
3107
3201
  type: "editor:warning"
@@ -3115,28 +3209,28 @@ class ue {
3115
3209
  /**
3116
3210
  * Конструктор класса ImageEditor.
3117
3211
  * @param {string} canvasId - идентификатор канваса, в котором будет создан редактор
3118
- * @param {IEditorOptions} options - опции и настройки редактора
3212
+ * @param {CanvasOptions} options - опции и настройки редактора
3119
3213
  */
3120
3214
  constructor(e, t) {
3121
3215
  this.options = t;
3122
- const { defaultScale: a, minZoom: r, maxZoom: i } = t;
3123
- this.containerId = e, this.editorId = `${e}-${S()}`, this.clipboard = null, this.defaultZoom = a, this.minZoom = r || ht, this.maxZoom = i || gt, this.init();
3216
+ const { defaultScale: a, minZoom: r, maxZoom: n } = t;
3217
+ this.containerId = e, this.editorId = `${e}-${A()}`, this.clipboard = null, this.defaultZoom = a, this.minZoom = r || ht, this.maxZoom = n || gt, this.init();
3124
3218
  }
3125
3219
  init() {
3126
- return H(this, null, function* () {
3220
+ return Q(this, null, function* () {
3127
3221
  const {
3128
3222
  editorContainerWidth: e,
3129
3223
  editorContainerHeight: t,
3130
3224
  canvasWrapperWidth: a,
3131
3225
  canvasWrapperHeight: r,
3132
- canvasCSSWidth: i,
3133
- canvasCSSHeight: n,
3226
+ canvasCSSWidth: n,
3227
+ canvasCSSHeight: i,
3134
3228
  initialImage: s,
3135
3229
  initialStateJSON: c,
3136
3230
  scaleType: u,
3137
3231
  _onReadyCallback: d
3138
3232
  } = this.options;
3139
- if (Ke.apply(), this.canvas = new Ue(this.containerId, this.options), this.moduleLoader = new Re(), this.workerManager = new We(), this.errorManager = new $({ editor: this }), this.historyManager = new lt({ editor: this }), this.toolbar = new dt({ editor: this }), this.transformManager = new ft({ editor: this }), this.canvasManager = new Mt({ editor: this }), this.imageManager = new w({ editor: this }), this.layerManager = new K({ editor: this }), this.shapeManager = new yt({ editor: this }), this.interactionBlocker = new jt({ editor: this }), this.clipboardManager = new pt({ editor: this }), this.objectLockManager = new bt({ editor: this }), this.groupingManager = new It({ editor: this }), this.selectionManager = new St({ editor: this }), this.deletionManager = new At({ editor: this }), this._createMontageArea(), this._createClippingArea(), this.listeners = new R({ editor: this, options: this.options }), this.canvasManager.setEditorContainerWidth(e), this.canvasManager.setEditorContainerHeight(t), this.canvasManager.setCanvasWrapperWidth(a), this.canvasManager.setCanvasWrapperHeight(r), this.canvasManager.setCanvasCSSWidth(i), this.canvasManager.setCanvasCSSHeight(n), s != null && s.source) {
3233
+ if (Ke.apply(), this.canvas = new Ue(this.containerId, this.options), this.moduleLoader = new He(), this.workerManager = new Pe(), this.errorManager = new $({ editor: this }), this.historyManager = new lt({ editor: this }), this.toolbar = new dt({ editor: this }), this.transformManager = new ft({ editor: this }), this.canvasManager = new Mt({ editor: this }), this.imageManager = new D({ editor: this }), this.layerManager = new K({ editor: this }), this.shapeManager = new yt({ editor: this }), this.interactionBlocker = new jt({ editor: this }), this.clipboardManager = new pt({ editor: this }), this.objectLockManager = new bt({ editor: this }), this.groupingManager = new It({ editor: this }), this.selectionManager = new At({ editor: this }), this.deletionManager = new St({ editor: this }), this._createMontageArea(), this._createClippingArea(), this.listeners = new R({ editor: this, options: this.options }), this.canvasManager.setEditorContainerWidth(e), this.canvasManager.setEditorContainerHeight(t), this.canvasManager.setCanvasWrapperWidth(a), this.canvasManager.setCanvasWrapperHeight(r), this.canvasManager.setCanvasCSSWidth(n), this.canvasManager.setCanvasCSSHeight(i), s != null && s.source) {
3140
3234
  const {
3141
3235
  source: l,
3142
3236
  scale: h = `image-${u}`,
@@ -3206,7 +3300,7 @@ class ue {
3206
3300
  });
3207
3301
  }
3208
3302
  }
3209
- const wt = {
3303
+ const Dt = {
3210
3304
  /**
3211
3305
  * Опции редактора
3212
3306
  */
@@ -3295,14 +3389,14 @@ const wt = {
3295
3389
  resetObjectFitByDoubleClick: !0
3296
3390
  };
3297
3391
  function Et(o, e = {}) {
3298
- const t = C(C({}, wt), e), a = document.getElementById(o);
3392
+ const t = C(C({}, Dt), e), a = document.getElementById(o);
3299
3393
  if (!a)
3300
3394
  return Promise.reject(new Error(`Контейнер с ID "${o}" не найден.`));
3301
3395
  const r = document.createElement("canvas");
3302
- return r.id = `${o}-canvas`, a.appendChild(r), t.editorContainer = a, new Promise((i) => {
3303
- t._onReadyCallback = i;
3304
- const n = new ue(r.id, t);
3305
- window[o] = n;
3396
+ return r.id = `${o}-canvas`, a.appendChild(r), t.editorContainer = a, new Promise((n) => {
3397
+ t._onReadyCallback = n;
3398
+ const i = new ue(r.id, t);
3399
+ window[o] = i;
3306
3400
  });
3307
3401
  }
3308
3402
  export {