@anu3ev/fabric-image-editor 0.1.31 → 0.1.32

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.
@@ -1,34 +1,38 @@
1
- import { ActiveSelection as U, util as Y, controlsUtils as Oe, InteractiveFabricObject as Te, loadSVGFromURL as ke, FabricImage as le, Point as xe, Rect as Be, Circle as Ze, Triangle as ze, Group as Pe, Pattern as Ue, Canvas as Ye } from "fabric";
2
- import { create as He } from "jsondiffpatch";
3
- var _e = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", w = function() {
1
+ var Oe = Object.defineProperty;
2
+ var ge = Object.getOwnPropertySymbols;
3
+ var Te = Object.prototype.hasOwnProperty, ke = Object.prototype.propertyIsEnumerable;
4
+ var ve = (s, e, t) => e in s ? Oe(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t, X = (s, e) => {
5
+ for (var t in e || (e = {}))
6
+ Te.call(e, t) && ve(s, t, e[t]);
7
+ if (ge)
8
+ for (var t of ge(e))
9
+ ke.call(e, t) && ve(s, t, e[t]);
10
+ return s;
11
+ };
12
+ var Q = (s, e, t) => new Promise((a, r) => {
13
+ var i = (c) => {
14
+ try {
15
+ o(t.next(c));
16
+ } catch (u) {
17
+ r(u);
18
+ }
19
+ }, n = (c) => {
20
+ try {
21
+ o(t.throw(c));
22
+ } catch (u) {
23
+ r(u);
24
+ }
25
+ }, o = (c) => c.done ? a(c.value) : Promise.resolve(c.value).then(i, n);
26
+ o((t = t.apply(s, e)).next());
27
+ });
28
+ import { ActiveSelection as Y, util as P, controlsUtils as xe, InteractiveFabricObject as Be, loadSVGFromURL as Ze, FabricImage as me, Point as ze, Rect as Ue, Circle as Ye, Triangle as Pe, Group as He, Canvas as _e, Pattern as Re } from "fabric";
29
+ import { create as We } from "jsondiffpatch";
30
+ var Fe = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", w = function() {
4
31
  for (var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 21, t = "", a = crypto.getRandomValues(new Uint8Array(e |= 0)); e--; )
5
- t += _e[a[e] & 63];
32
+ t += Fe[a[e] & 63];
6
33
  return t;
7
34
  };
8
- function he(o, e, t, a, r, n, i) {
9
- try {
10
- var s = o[n](i), c = s.value;
11
- } catch (u) {
12
- return void t(u);
13
- }
14
- s.done ? e(c) : Promise.resolve(c).then(a, r);
15
- }
16
- function Re(o) {
17
- return function() {
18
- var e = this, t = arguments;
19
- return new Promise(function(a, r) {
20
- var n = o.apply(e, t);
21
- function i(c) {
22
- he(n, a, r, i, s, "next", c);
23
- }
24
- function s(c) {
25
- he(n, a, r, i, s, "throw", c);
26
- }
27
- i(void 0);
28
- });
29
- };
30
- }
31
- class P {
35
+ class U {
32
36
  /**
33
37
  * Конструктор принимает редактор и опции.
34
38
  * @param {Object} params
@@ -44,75 +48,48 @@ class P {
44
48
  * @param {Boolean} [params.options.deleteObjectsByHotkey] — удаление объектов по Delete
45
49
  * @param {Boolean} [params.options.resetObjectFitByDoubleClick] — сброс фита объекта по двойному клику
46
50
  */
47
- constructor(e) {
48
- var {
49
- editor: t,
50
- options: a = {}
51
- } = e;
52
- this.editor = t, this.canvas = t.canvas, this.options = a, this.isUndoRedoKeyPressed = !1, this.isSpacePressed = !1, this.handleAdaptCanvasToContainerBound = P.debounce(this.handleAdaptCanvasToContainer.bind(this), 500), this.handleCopyEventBound = this.handleCopyEvent.bind(this), this.handlePasteEventBound = this.handlePasteEvent.bind(this), this.handleUndoRedoEventBound = this.handleUndoRedoEvent.bind(this), this.handleUndoRedoKeyUpBound = this.handleUndoRedoKeyUp.bind(this), this.handleSelectAllEventBound = this.handleSelectAllEvent.bind(this), this.handleDeleteObjectsEventBound = this.handleDeleteObjectsEvent.bind(this), this.handleSpaceKeyDownBound = this.handleSpaceKeyDown.bind(this), this.handleSpaceKeyUpBound = this.handleSpaceKeyUp.bind(this), this.handleObjectModifiedHistoryBound = P.debounce(this.handleObjectModifiedHistory.bind(this), 300), this.handleObjectRotatingHistoryBound = P.debounce(this.handleObjectRotatingHistory.bind(this), 300), this.handleObjectAddedHistoryBound = this.handleObjectAddedHistory.bind(this), this.handleObjectRemovedHistoryBound = this.handleObjectRemovedHistory.bind(this), this.handleOverlayUpdateBound = this.handleOverlayUpdate.bind(this), this.handleCanvasDragStartBound = this.handleCanvasDragStart.bind(this), this.handleCanvasDraggingBound = this.handleCanvasDragging.bind(this), this.handleCanvasDragEndBound = this.handleCanvasDragEnd.bind(this), this.handleMouseWheelZoomBound = this.handleMouseWheelZoom.bind(this), this.handleBringToFrontBound = this.handleBringToFront.bind(this), this.handleResetObjectFitBound = this.handleResetObjectFit.bind(this), this.handleLockedSelectionBound = this._filterLockedSelection.bind(this), this.init();
51
+ constructor({ editor: e, options: t = {} }) {
52
+ this.isDragging = !1, this.lastMouseX = 0, this.lastMouseY = 0, this.isUndoRedoKeyPressed = !1, this.isSpacePressed = !1, this.canvasDragging = !1, this.mouseWheelZooming = !1, this.bringToFrontOnSelection = !1, this.resetObjectFitByDoubleClick = !1, this.copyObjectsByHotkey = !1, this.pasteImageFromClipboard = !1, this.undoRedoByHotKeys = !1, this.selectAllByHotkey = !1, this.deleteObjectsByHotkey = !1, this.adaptCanvasToContainer = !1, this.editor = e, this.canvas = e.canvas, this.options = t, this.handleAdaptCanvasToContainerBound = U.debounce(this.handleAdaptCanvasToContainer.bind(this), 500), this.handleCopyEventBound = this.handleCopyEvent.bind(this), this.handlePasteEventBound = this.handlePasteEvent.bind(this), this.handleUndoRedoEventBound = this.handleUndoRedoEvent.bind(this), this.handleUndoRedoKeyUpBound = this.handleUndoRedoKeyUp.bind(this), this.handleSelectAllEventBound = this.handleSelectAllEvent.bind(this), this.handleDeleteObjectsEventBound = this.handleDeleteObjectsEvent.bind(this), this.handleSpaceKeyDownBound = this.handleSpaceKeyDown.bind(this), this.handleSpaceKeyUpBound = this.handleSpaceKeyUp.bind(this), this.handleObjectModifiedHistoryBound = U.debounce(this.handleObjectModifiedHistory.bind(this), 300), this.handleObjectRotatingHistoryBound = U.debounce(this.handleObjectRotatingHistory.bind(this), 300), this.handleObjectAddedHistoryBound = this.handleObjectAddedHistory.bind(this), this.handleObjectRemovedHistoryBound = this.handleObjectRemovedHistory.bind(this), this.handleOverlayUpdateBound = this.handleOverlayUpdate.bind(this), this.handleCanvasDragStartBound = this.handleCanvasDragStart.bind(this), this.handleCanvasDraggingBound = this.handleCanvasDragging.bind(this), this.handleCanvasDragEndBound = this.handleCanvasDragEnd.bind(this), this.handleMouseWheelZoomBound = this.handleMouseWheelZoom.bind(this), this.handleBringToFrontBound = this.handleBringToFront.bind(this), this.handleResetObjectFitBound = this.handleResetObjectFit.bind(this), this.handleLockedSelectionBound = this._filterLockedSelection.bind(this), this.init();
53
53
  }
54
54
  /**
55
55
  * Инициализация всех обработчиков согласно опциям.
56
56
  */
57
57
  init() {
58
- var {
58
+ const {
59
59
  adaptCanvasToContainer: e,
60
60
  canvasDragging: t,
61
61
  mouseWheelZooming: a,
62
62
  bringToFrontOnSelection: r,
63
- copyObjectsByHotkey: n,
64
- pasteImageFromClipboard: i,
65
- undoRedoByHotKeys: s,
63
+ copyObjectsByHotkey: i,
64
+ pasteImageFromClipboard: n,
65
+ undoRedoByHotKeys: o,
66
66
  selectAllByHotkey: c,
67
67
  deleteObjectsByHotkey: u,
68
68
  resetObjectFitByDoubleClick: l
69
69
  } = this.options;
70
- 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, {
71
- capture: !0
72
- }), document.addEventListener("keyup", this.handleSpaceKeyUpBound, {
73
- capture: !0
74
- })), a && this.canvas.on("mouse:wheel", this.handleMouseWheelZoomBound), r && (this.canvas.on("selection:created", this.handleBringToFrontBound), this.canvas.on("selection:updated", this.handleBringToFrontBound)), l && this.canvas.on("mouse:dblclick", this.handleResetObjectFitBound), e && window.addEventListener("resize", this.handleAdaptCanvasToContainerBound, {
75
- capture: !0
76
- }), n && document.addEventListener("keydown", this.handleCopyEventBound, {
77
- capture: !0
78
- }), i && document.addEventListener("paste", this.handlePasteEventBound, {
79
- capture: !0
80
- }), s && (document.addEventListener("keydown", this.handleUndoRedoEventBound, {
81
- capture: !0
82
- }), document.addEventListener("keyup", this.handleUndoRedoKeyUpBound, {
83
- capture: !0
84
- })), c && document.addEventListener("keydown", this.handleSelectAllEventBound, {
85
- capture: !0
86
- }), u && document.addEventListener("keydown", this.handleDeleteObjectsEventBound, {
87
- capture: !0
88
- }), 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.bind(this)), this.canvas.on("selection:updated", this.handleLockedSelectionBound.bind(this));
70
+ 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)), l && this.canvas.on("mouse:dblclick", this.handleResetObjectFitBound), e && window.addEventListener("resize", this.handleAdaptCanvasToContainerBound, { capture: !0 }), i && document.addEventListener("keydown", this.handleCopyEventBound, { capture: !0 }), n && document.addEventListener("paste", this.handlePasteEventBound, { capture: !0 }), o && (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.bind(this)), this.canvas.on("selection:updated", this.handleLockedSelectionBound.bind(this));
89
71
  }
90
72
  /**
91
73
  * При массовом выделении объектов удаляем из него залоченные.
92
- */
93
- _filterLockedSelection(e) {
94
- var {
95
- selected: t,
96
- e: a
97
- } = e;
98
- if (!(!(t != null && t.length) || !(a instanceof MouseEvent)) && t.length !== 1) {
99
- var r = t.some((s) => s.locked);
100
- if (r) {
101
- var n = t.filter((s) => !s.locked);
102
- if (n.length === 0) {
103
- this.canvas.discardActiveObject();
104
- return;
105
- }
106
- if (n.length === 1) {
107
- this.canvas.setActiveObject(n[0]);
108
- return;
109
- }
110
- var i = new U(n, {
111
- canvas: this.canvas
112
- });
113
- this.canvas.setActiveObject(i), this.canvas.requestRenderAll();
114
- }
74
+ * @param {{ selected: FabricObject[], e?: TPointerEvent }} params - параметры события
75
+ * @param {FabricObject[]} params.selected - массив выделенных объектов
76
+ * @param {TPointerEvent} [params.e] - событие указателя (опционально)
77
+ */
78
+ _filterLockedSelection({ selected: e, e: t }) {
79
+ if (!(e != null && e.length) || !(t instanceof MouseEvent) || e.length === 1 || !e.some((n) => n.locked)) return;
80
+ const r = e.filter((n) => !n.locked);
81
+ if (r.length === 0) {
82
+ this.canvas.discardActiveObject();
83
+ return;
115
84
  }
85
+ if (r.length === 1) {
86
+ this.canvas.setActiveObject(r[0]);
87
+ return;
88
+ }
89
+ const i = new Y(r, {
90
+ canvas: this.canvas
91
+ });
92
+ this.canvas.setActiveObject(i), this.canvas.requestRenderAll();
116
93
  }
117
94
  /**
118
95
  * Обработчики для сохранения состояния редактора в истории.
@@ -134,9 +111,7 @@ class P {
134
111
  * Обновление overlayMask при добавлении объектов или выделении.
135
112
  */
136
113
  handleOverlayUpdate() {
137
- var {
138
- interactionBlocker: e
139
- } = this.editor;
114
+ const { interactionBlocker: e } = this.editor;
140
115
  !e.isBlocked || !e.overlayMask || this.editor.interactionBlocker.refresh();
141
116
  }
142
117
  // --- Глобальные DOM-обработчики ---
@@ -145,34 +120,18 @@ class P {
145
120
  * Адаптирует канвас к размерам контейнера.
146
121
  */
147
122
  handleAdaptCanvasToContainer() {
148
- var {
149
- width: e,
150
- height: t
151
- } = this.editor.montageArea;
152
- this.editor.canvasManager.setResolutionWidth(e, {
153
- adaptCanvasToContainer: !0,
154
- withoutSave: !0
155
- }), this.editor.canvasManager.setResolutionHeight(t, {
156
- adaptCanvasToContainer: !0,
157
- withoutSave: !0
158
- }), this.editor.canvasManager.centerMontageArea(), this.editor.selectionManager.selectAll(), this.editor.transformManager.fitObject({
159
- fitAsOneObject: !0,
160
- withoutSave: !0
161
- });
123
+ const { width: e, height: t } = this.editor.montageArea;
124
+ this.editor.canvasManager.setResolutionWidth(e, { adaptCanvasToContainer: !0, withoutSave: !0 }), this.editor.canvasManager.setResolutionHeight(t, { adaptCanvasToContainer: !0, withoutSave: !0 }), this.editor.canvasManager.centerMontageArea(), this.editor.selectionManager.selectAll(), this.editor.transformManager.fitObject({ fitAsOneObject: !0, withoutSave: !0 });
162
125
  }
163
126
  /**
164
127
  * Обработчик для Ctrl+C (копирование).
165
- * @param {Object} event — объект события
128
+ * @param {KeyboardEvent} event — объект события
166
129
  * @param {Boolean} event.ctrlKey — зажата ли клавиша Ctrl
167
130
  * @param {Boolean} event.metaKey — зажата ли клавиша Cmd (для Mac)
168
131
  * @param {String} event.code — код клавиши
169
132
  */
170
133
  handleCopyEvent(e) {
171
- var {
172
- ctrlKey: t,
173
- metaKey: a,
174
- code: r
175
- } = e;
134
+ const { ctrlKey: t, metaKey: a, code: r } = e;
176
135
  !t && !a || r !== "KeyC" || (e.preventDefault(), this.editor.clipboardManager.copy());
177
136
  }
178
137
  /**
@@ -183,39 +142,28 @@ class P {
183
142
  *
184
143
  * TODO: Попробовать вынести методы в классы-менеджеры.
185
144
  */
186
- handlePasteEvent(e) {
187
- var t, {
188
- clipboardData: a
189
- } = e;
190
- if (a != null && (t = a.items) !== null && t !== void 0 && t.length) {
191
- var {
192
- imageManager: r
193
- } = this.editor, {
194
- items: n
195
- } = a, i = n[n.length - 1];
196
- if (i.type.indexOf("image") !== -1) {
197
- var s = i.getAsFile();
198
- if (!s) return;
199
- var c = new FileReader();
200
- c.onload = (v) => {
201
- this.editor.imageManager.importImage({
202
- source: v.target.result
203
- });
204
- }, c.readAsDataURL(s);
145
+ handlePasteEvent({ clipboardData: e }) {
146
+ var n;
147
+ if (!((n = e == null ? void 0 : e.items) != null && n.length)) return;
148
+ const { imageManager: t } = this.editor, { items: a } = e, r = a[a.length - 1];
149
+ if (r.type.indexOf("image") !== -1) {
150
+ const o = r.getAsFile();
151
+ if (!o) return;
152
+ const c = new FileReader();
153
+ c.onload = (u) => {
154
+ u.target && this.editor.imageManager.importImage({ source: u.target.result });
155
+ }, c.readAsDataURL(o);
156
+ return;
157
+ }
158
+ const i = e.getData("text/html");
159
+ if (i) {
160
+ const u = new DOMParser().parseFromString(i, "text/html").querySelector("img");
161
+ if (u != null && u.src) {
162
+ t.importImage({ source: u.src });
205
163
  return;
206
164
  }
207
- var u = a.getData("text/html");
208
- if (u) {
209
- var l = new DOMParser(), d = l.parseFromString(u, "text/html"), h = d.querySelector("img");
210
- if (h != null && h.src) {
211
- r.importImage({
212
- source: h.src
213
- });
214
- return;
215
- }
216
- }
217
- this.editor.clipboardManager.paste();
218
165
  }
166
+ this.editor.clipboardManager.paste();
219
167
  }
220
168
  /**
221
169
  * Обработчик для отмены/повтора (Ctrl+Z/Ctrl+Y).
@@ -225,27 +173,18 @@ class P {
225
173
  * @param {String} event.code — код клавиши
226
174
  */
227
175
  handleUndoRedoEvent(e) {
228
- var t = this;
229
- return Re(function* () {
230
- var {
231
- ctrlKey: a,
232
- metaKey: r,
233
- code: n,
234
- repeat: i
235
- } = e;
236
- !a && !r || i || t.isUndoRedoKeyPressed || (n === "KeyZ" ? (e.preventDefault(), t.isUndoRedoKeyPressed = !0, yield t.editor.historyManager.undo()) : n === "KeyY" && (e.preventDefault(), t.isUndoRedoKeyPressed = !0, yield t.editor.historyManager.redo()));
237
- })();
176
+ return Q(this, null, function* () {
177
+ const { ctrlKey: t, metaKey: a, code: r, repeat: i } = e;
178
+ !t && !a || i || this.isUndoRedoKeyPressed || (r === "KeyZ" ? (e.preventDefault(), this.isUndoRedoKeyPressed = !0, yield this.editor.historyManager.undo()) : r === "KeyY" && (e.preventDefault(), this.isUndoRedoKeyPressed = !0, yield this.editor.historyManager.redo()));
179
+ });
238
180
  }
239
181
  /**
240
182
  * Обработчик для отпускания клавиш Ctrl+Z/Ctrl+Y.
241
183
  * @param {Object} event — объект события
242
184
  * @param {String} event.code — код клавиши
243
185
  */
244
- handleUndoRedoKeyUp(e) {
245
- var {
246
- code: t
247
- } = e;
248
- (t === "KeyZ" || t === "KeyY") && (this.isUndoRedoKeyPressed = !1);
186
+ handleUndoRedoKeyUp({ code: e }) {
187
+ (e === "KeyZ" || e === "KeyY") && (this.isUndoRedoKeyPressed = !1);
249
188
  }
250
189
  /**
251
190
  * Обработчик для выделения всех объектов (Ctrl+A).
@@ -255,11 +194,7 @@ class P {
255
194
  * @param {String} event.code — код клавиши
256
195
  */
257
196
  handleSelectAllEvent(e) {
258
- var {
259
- ctrlKey: t,
260
- metaKey: a,
261
- code: r
262
- } = e;
197
+ const { ctrlKey: t, metaKey: a, code: r } = e;
263
198
  !t && !a || r !== "KeyA" || (e.preventDefault(), this.editor.selectionManager.selectAll());
264
199
  }
265
200
  /**
@@ -277,23 +212,17 @@ class P {
277
212
  * @param {String} event.code — код клавиши
278
213
  */
279
214
  handleSpaceKeyDown(e) {
280
- if (e.code === "Space") {
281
- var {
282
- canvas: t,
283
- editor: a,
284
- isSpacePressed: r,
285
- isDragging: n
286
- } = this;
287
- r || n || (this.isSpacePressed = !0, e.preventDefault(), t.set({
288
- selection: !1,
289
- defaultCursor: "grab"
290
- }), t.setCursor("grab"), a.canvasManager.getObjects().forEach((i) => {
291
- i.set({
292
- selectable: !1,
293
- evented: !1
294
- });
295
- }));
296
- }
215
+ if (e.code !== "Space") return;
216
+ const { canvas: t, editor: a, isSpacePressed: r, isDragging: i } = this;
217
+ r || i || (this.isSpacePressed = !0, e.preventDefault(), t.set({
218
+ selection: !1,
219
+ defaultCursor: "grab"
220
+ }), t.setCursor("grab"), a.canvasManager.getObjects().forEach((n) => {
221
+ n.set({
222
+ selectable: !1,
223
+ evented: !1
224
+ });
225
+ }));
297
226
  }
298
227
  /**
299
228
  * Обработчик для отпускания пробела.
@@ -303,7 +232,7 @@ class P {
303
232
  * @param {String} event.code — код клавиши
304
233
  */
305
234
  handleSpaceKeyUp(e) {
306
- e.code === "Space" && (this.isSpacePressed = !1, this.canvas.isDragging && this.handleCanvasDragEnd(), this.canvas.set({
235
+ e.code === "Space" && (this.isSpacePressed = !1, this.isDragging && this.handleCanvasDragEnd(), this.canvas.set({
307
236
  defaultCursor: "default",
308
237
  selection: !0
309
238
  }), this.canvas.setCursor("default"), this.editor.canvasManager.getObjects().forEach((t) => {
@@ -316,115 +245,82 @@ class P {
316
245
  // --- Обработчики для событий canvas (Fabric) ---
317
246
  /**
318
247
  * Начало перетаскивания канваса (срабатывает при mouse:down и зажатом пробеле).
319
- * @param {Object} options
320
- * @param {Object} options.e — объект события
248
+ * @param {TPointerEventInfo<TPointerEvent>} options - событие указателя
249
+ * @param {TPointerEvent} options.e — объект события (MouseEvent или TouchEvent)
321
250
  */
322
- handleCanvasDragStart(e) {
323
- var {
324
- e: t
325
- } = e;
326
- this.isSpacePressed && (this.canvas.set({
327
- isDragging: !0,
328
- defaultCursor: "grabbing"
329
- }), this.canvas.setCursor("grabbing"), this.canvas.lastPosX = t.clientX, this.canvas.lastPosY = t.clientY);
251
+ handleCanvasDragStart({ e }) {
252
+ !this.isSpacePressed || !(e instanceof MouseEvent) || (this.isDragging = !0, this.lastMouseX = e.clientX, this.lastMouseY = e.clientY, this.canvas.setCursor("grabbing"));
330
253
  }
331
254
  /**
332
255
  * Перетаскивание канваса (mouse:move).
333
- * @param {Object} options
334
- * @param {Object} options.e — объект события
256
+ * @param {TPointerEventInfo<TPointerEvent>} options
257
+ * @param {MouseEvent} options.e — объект события
335
258
  *
336
259
  * TODO: Надо как-то ограничить область перетаскивания, чтобы канвас не уходил сильно далеко за пределы экрана
337
260
  */
338
- handleCanvasDragging(e) {
339
- var {
340
- e: t
341
- } = e;
342
- if (!(!this.canvas.isDragging || !this.isSpacePressed)) {
343
- var a = this.canvas.viewportTransform;
344
- a[4] += t.clientX - this.canvas.lastPosX, a[5] += t.clientY - this.canvas.lastPosY, this.canvas.requestRenderAll(), this.canvas.lastPosX = t.clientX, this.canvas.lastPosY = t.clientY;
345
- }
261
+ handleCanvasDragging({ e }) {
262
+ if (!this.isDragging || !this.isSpacePressed || !(e instanceof MouseEvent)) return;
263
+ const t = this.canvas.viewportTransform;
264
+ t[4] += e.clientX - this.lastMouseX, t[5] += e.clientY - this.lastMouseY, this.canvas.requestRenderAll(), this.lastMouseX = e.clientX, this.lastMouseY = e.clientY;
346
265
  }
347
266
  /**
348
267
  * Завершение перетаскивания канваса (mouse:up).
349
268
  * Сохраняет новое положение канваса.
350
269
  */
351
270
  handleCanvasDragEnd() {
352
- this.canvas.isDragging && (this.canvas.setViewportTransform(this.canvas.viewportTransform), this.canvas.set("isDragging", !1), this.isSpacePressed && (this.canvas.set("defaultCursor", "grab"), this.canvas.setCursor("grab")));
271
+ this.isDragging && (this.canvas.setViewportTransform(this.canvas.viewportTransform), this.isDragging = !1, this.isSpacePressed && (this.canvas.set("defaultCursor", "grab"), this.canvas.setCursor("grab")));
353
272
  }
354
273
  /**
355
274
  * Обработчик зума колесиком мыши. Работает при зажатом Ctrl или Cmd.
356
- * @param {Object} options
357
- * @param {Object} options.e — объект события
275
+ * @param {TPointerEventInfo<WheelEvent>} options - правильно!
276
+ * @param {WheelEvent} options.e — объект события
358
277
  */
359
- handleMouseWheelZoom(e) {
360
- var {
361
- e: t
362
- } = e;
363
- if (!(!t.ctrlKey && !t.metaKey)) {
364
- var a = 1e-3, r = -t.deltaY * a;
365
- this.editor.transformManager.zoom(r), t.preventDefault(), t.stopPropagation();
366
- }
278
+ handleMouseWheelZoom({ e }) {
279
+ if (!e.ctrlKey && !e.metaKey) return;
280
+ const a = -e.deltaY * 1e-3;
281
+ this.editor.transformManager.zoom(a), e.preventDefault(), e.stopPropagation();
367
282
  }
368
283
  /**
369
284
  * Обработчик, поднимающий выделенные объекты на передний план.
370
- * @param {Object} event - объект события Fabric
371
- * @param {Array} event.selected - массив выбранных объектов
285
+ * @param {{ selected: FabricObject[] }} event - объект события выделения
286
+ * @param {FabricObject[]} event.selected - массив выбранных объектов
372
287
  */
373
- handleBringToFront(e) {
374
- var {
375
- selected: t
376
- } = e;
377
- t != null && t.length && t.forEach((a) => {
378
- this.editor.layerManager.bringToFront(a);
288
+ handleBringToFront({ selected: e }) {
289
+ e != null && e.length && e.forEach((t) => {
290
+ this.editor.layerManager.bringToFront(t);
379
291
  });
380
292
  }
381
293
  /**
382
294
  * Обработчик сброса объекта по двойному клику.
295
+ * @param {TPointerEventInfo<TPointerEvent>} options - объект события fabric
383
296
  */
384
297
  handleResetObjectFit(e) {
385
- var {
386
- target: t
387
- } = e;
298
+ const t = e == null ? void 0 : e.target;
388
299
  t && this.editor.transformManager.resetObject(t);
389
300
  }
390
301
  /**
391
302
  * Метод для удаления всех слушателей
392
303
  */
393
304
  destroy() {
394
- window.removeEventListener("resize", this.handleAdaptCanvasToContainerBound, {
395
- capture: !0
396
- }), document.removeEventListener("keydown", this.handleCopyEventBound, {
397
- capture: !0
398
- }), document.removeEventListener("paste", this.handlePasteEventBound, {
399
- capture: !0
400
- }), document.removeEventListener("keydown", this.handleUndoRedoEventBound, {
401
- capture: !0
402
- }), document.removeEventListener("keyup", this.handleUndoRedoKeyUpBound, {
403
- capture: !0
404
- }), document.removeEventListener("keydown", this.handleSelectAllEventBound, {
405
- capture: !0
406
- }), document.removeEventListener("keydown", this.handleDeleteObjectsEventBound, {
407
- capture: !0
408
- }), this.options.canvasDragging && (this.canvas.off("mouse:down", this.handleCanvasDragStartBound), this.canvas.off("mouse:move", this.handleCanvasDraggingBound), this.canvas.off("mouse:up", this.handleCanvasDragEndBound), document.removeEventListener("keydown", this.handleSpaceKeyDownBound, {
409
- capture: !0
410
- }), document.removeEventListener("keyup", this.handleSpaceKeyUpBound, {
411
- capture: !0
412
- })), this.options.mouseWheelZooming && this.canvas.off("mouse:wheel", this.handleMouseWheelZoomBound), this.options.bringToFrontOnSelection && (this.canvas.off("selection:created", this.handleBringToFrontBound), this.canvas.off("selection:updated", this.handleBringToFrontBound)), this.options.resetObjectFitByDoubleClick && this.canvas.off("mouse:dblclick", this.handleResetObjectFitBound), this.canvas.off("object:modified", this.handleObjectModifiedHistoryBound), this.canvas.off("object:rotating", this.handleObjectRotatingHistoryBound), this.canvas.off("object:added", this.handleObjectAddedHistoryBound), this.canvas.off("object:removed", this.handleObjectRemovedHistoryBound), this.canvas.off("object:added", this.handleOverlayUpdateBound), this.canvas.off("selection:created", this.handleOverlayUpdateBound), this.canvas.off("selection:created", this.handleLockedSelectionBound.bind(this)), this.canvas.off("selection:updated", this.handleLockedSelectionBound.bind(this));
413
- }
414
- // Дебаунс для снижения частоты сохранения состояния
305
+ window.removeEventListener("resize", this.handleAdaptCanvasToContainerBound, { capture: !0 }), document.removeEventListener("keydown", this.handleCopyEventBound, { capture: !0 }), document.removeEventListener("paste", this.handlePasteEventBound, { capture: !0 }), document.removeEventListener("keydown", this.handleUndoRedoEventBound, { capture: !0 }), document.removeEventListener("keyup", this.handleUndoRedoKeyUpBound, { capture: !0 }), document.removeEventListener("keydown", this.handleSelectAllEventBound, { capture: !0 }), document.removeEventListener("keydown", this.handleDeleteObjectsEventBound, { capture: !0 }), this.options.canvasDragging && (this.canvas.off("mouse:down", this.handleCanvasDragStartBound), this.canvas.off("mouse:move", this.handleCanvasDraggingBound), this.canvas.off("mouse:up", this.handleCanvasDragEndBound), document.removeEventListener("keydown", this.handleSpaceKeyDownBound, { capture: !0 }), document.removeEventListener("keyup", this.handleSpaceKeyUpBound, { capture: !0 })), this.options.mouseWheelZooming && this.canvas.off("mouse:wheel", this.handleMouseWheelZoomBound), this.options.bringToFrontOnSelection && (this.canvas.off("selection:created", this.handleBringToFrontBound), this.canvas.off("selection:updated", this.handleBringToFrontBound)), this.options.resetObjectFitByDoubleClick && this.canvas.off("mouse:dblclick", this.handleResetObjectFitBound), this.canvas.off("object:modified", this.handleObjectModifiedHistoryBound), this.canvas.off("object:rotating", this.handleObjectRotatingHistoryBound), this.canvas.off("object:added", this.handleObjectAddedHistoryBound), this.canvas.off("object:removed", this.handleObjectRemovedHistoryBound), this.canvas.off("object:added", this.handleOverlayUpdateBound), this.canvas.off("selection:created", this.handleOverlayUpdateBound), this.canvas.off("selection:created", this.handleLockedSelectionBound.bind(this)), this.canvas.off("selection:updated", this.handleLockedSelectionBound.bind(this));
306
+ }
307
+ /**
308
+ * Дебаунс для снижения частоты вызова функции.
309
+ * @param fn — функция-обработчик
310
+ * @param delay — задержка в миллисекундах
311
+ * @returns новую обёртку-обработчик
312
+ */
415
313
  static debounce(e, t) {
416
- var a = null;
417
- return function() {
418
- for (var r = arguments.length, n = new Array(r), i = 0; i < r; i++)
419
- n[i] = arguments[i];
420
- var s = this;
421
- clearTimeout(a), a = setTimeout(() => {
422
- e.apply(s, n);
314
+ let a = null;
315
+ return function(...r) {
316
+ const i = this;
317
+ a && clearTimeout(a), a = setTimeout(() => {
318
+ e.apply(i, r);
423
319
  }, t);
424
320
  };
425
321
  }
426
322
  }
427
- class We {
323
+ class Ve {
428
324
  /**
429
325
  * @description Класс для динамической загрузки внешних модулей.
430
326
  */
@@ -442,7 +338,7 @@ class We {
442
338
  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, '"')));
443
339
  }
444
340
  }
445
- class Fe {
341
+ class Ge {
446
342
  /**
447
343
  * @param {string|URL} [scriptUrl] — URL скрипта воркера.
448
344
  * По-умолчанию использует файл рядом с этим модулем
@@ -469,10 +365,10 @@ class Fe {
469
365
  } = e, {
470
366
  requestId: a,
471
367
  success: r,
472
- data: n,
473
- error: i
474
- } = t, s = this._callbacks.get(a);
475
- s && (r ? s.resolve(n) : s.reject(new Error(i)), this._callbacks.delete(a));
368
+ data: i,
369
+ error: n
370
+ } = t, o = this._callbacks.get(a);
371
+ o && (r ? o.resolve(i) : o.reject(new Error(n)), this._callbacks.delete(a));
476
372
  }
477
373
  /**
478
374
  * Универсальный метод отправки команды в воркер
@@ -483,10 +379,10 @@ class Fe {
483
379
  */
484
380
  post(e, t) {
485
381
  var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [], r = "".concat(e, ":").concat(w(8));
486
- return new Promise((n, i) => {
382
+ return new Promise((i, n) => {
487
383
  this._callbacks.set(r, {
488
- resolve: n,
489
- reject: i
384
+ resolve: i,
385
+ reject: n
490
386
  }), this.worker.postMessage({
491
387
  action: e,
492
388
  payload: t,
@@ -501,26 +397,26 @@ class Fe {
501
397
  this.worker.terminate();
502
398
  }
503
399
  }
504
- var I = 12, Ve = 2, K = 8, $ = 20, Ge = 100, q = 20, ee = 8, Xe = 100, te = 32, ae = 1, Qe = "#2B2D33", re = "#3D8BF4", ne = "#FFFFFF";
505
- function W(o, e, t, a, r) {
506
- var n = I, i = Ve;
507
- o.save(), o.translate(e, t), o.rotate(Y.degreesToRadians(r.angle)), o.fillStyle = ne, o.strokeStyle = re, o.lineWidth = ae, o.beginPath(), o.roundRect(-12 / 2, -12 / 2, n, n, i), o.fill(), o.stroke(), o.restore();
400
+ var I = 12, Xe = 2, q = 8, ee = 20, Qe = 100, te = 20, ae = 8, Je = 100, re = 32, ie = 1, Ke = "#2B2D33", ne = "#3D8BF4", se = "#FFFFFF";
401
+ function W(s, e, t, a, r) {
402
+ var i = I, n = Xe;
403
+ s.save(), s.translate(e, t), s.rotate(P.degreesToRadians(r.angle)), s.fillStyle = se, s.strokeStyle = ne, s.lineWidth = ie, s.beginPath(), s.roundRect(-12 / 2, -12 / 2, i, i, n), s.fill(), s.stroke(), s.restore();
508
404
  }
509
- function ge(o, e, t, a, r) {
510
- var n = K, i = $, s = Ge;
511
- o.save(), o.translate(e, t), o.rotate(Y.degreesToRadians(r.angle)), o.fillStyle = ne, o.strokeStyle = re, o.lineWidth = ae, o.beginPath(), o.roundRect(-8 / 2, -20 / 2, n, i, s), o.fill(), o.stroke(), o.restore();
405
+ function fe(s, e, t, a, r) {
406
+ var i = q, n = ee, o = Qe;
407
+ s.save(), s.translate(e, t), s.rotate(P.degreesToRadians(r.angle)), s.fillStyle = se, s.strokeStyle = ne, s.lineWidth = ie, s.beginPath(), s.roundRect(-8 / 2, -20 / 2, i, n, o), s.fill(), s.stroke(), s.restore();
512
408
  }
513
- function ve(o, e, t, a, r) {
514
- var n = q, i = ee, s = Xe;
515
- o.save(), o.translate(e, t), o.rotate(Y.degreesToRadians(r.angle)), o.fillStyle = ne, o.strokeStyle = re, o.lineWidth = ae, o.beginPath(), o.roundRect(-20 / 2, -8 / 2, n, i, s), o.fill(), o.stroke(), o.restore();
409
+ function Me(s, e, t, a, r) {
410
+ var i = te, n = ae, o = Je;
411
+ s.save(), s.translate(e, t), s.rotate(P.degreesToRadians(r.angle)), s.fillStyle = se, s.strokeStyle = ne, s.lineWidth = ie, s.beginPath(), s.roundRect(-20 / 2, -8 / 2, i, n, o), s.fill(), s.stroke(), s.restore();
516
412
  }
517
- var Je = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE4Ljc1IDQuMzc1djMuNzVhLjYyNS42MjUgMCAwIDEtLjYyNS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDEgMC0xLjI1aDIuMTRsLTIuMDc3LTEuOTAzLS4wMi0uMDE5YTYuMjUgNi4yNSAwIDEgMC0uMTMgOC45NjcuNjI2LjYyNiAwIDAgMSAuODYuOTA5QTcuNDU2IDcuNDU2IDAgMCAxIDEwIDE3LjVoLS4xMDNhNy41IDcuNSAwIDEgMSA1LjM5Ni0xMi44MTJMMTcuNSA2LjcwM1Y0LjM3NWEuNjI1LjYyNSAwIDAgMSAxLjI1IDBaIi8+PC9zdmc+", we = new Image();
518
- we.src = Je;
519
- function Ke(o, e, t, a, r) {
520
- var n = te, i = n / 2;
521
- o.save(), o.translate(e, t), o.rotate(Y.degreesToRadians(r.angle)), o.fillStyle = Qe, o.beginPath(), o.arc(0, 0, i, 0, 2 * Math.PI), o.fill(), o.drawImage(we, -16 / 2, -16 / 2, i, i), o.restore();
413
+ var $e = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE4Ljc1IDQuMzc1djMuNzVhLjYyNS42MjUgMCAwIDEtLjYyNS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDEgMC0xLjI1aDIuMTRsLTIuMDc3LTEuOTAzLS4wMi0uMDE5YTYuMjUgNi4yNSAwIDEgMC0uMTMgOC45NjcuNjI2LjYyNiAwIDAgMSAuODYuOTA5QTcuNDU2IDcuNDU2IDAgMCAxIDEwIDE3LjVoLS4xMDNhNy41IDcuNSAwIDEgMSA1LjM5Ni0xMi44MTJMMTcuNSA2LjcwM1Y0LjM3NWEuNjI1LjYyNSAwIDAgMSAxLjI1IDBaIi8+PC9zdmc+", we = new Image();
414
+ we.src = $e;
415
+ function qe(s, e, t, a, r) {
416
+ var i = re, n = i / 2;
417
+ s.save(), s.translate(e, t), s.rotate(P.degreesToRadians(r.angle)), s.fillStyle = Ke, s.beginPath(), s.arc(0, 0, n, 0, 2 * Math.PI), s.fill(), s.drawImage(we, -16 / 2, -16 / 2, n, n), s.restore();
522
418
  }
523
- var $e = {
419
+ var et = {
524
420
  // Угловые точки
525
421
  tl: {
526
422
  render: W,
@@ -552,47 +448,47 @@ var $e = {
552
448
  },
553
449
  // Середина вертикалей
554
450
  ml: {
555
- render: ge,
556
- sizeX: K,
557
- sizeY: $,
451
+ render: fe,
452
+ sizeX: q,
453
+ sizeY: ee,
558
454
  offsetX: 0,
559
455
  offsetY: 0
560
456
  },
561
457
  mr: {
562
- render: ge,
563
- sizeX: K,
564
- sizeY: $,
458
+ render: fe,
459
+ sizeX: q,
460
+ sizeY: ee,
565
461
  offsetX: 0,
566
462
  offsetY: 0
567
463
  },
568
464
  // Середина горизонталей
569
465
  mt: {
570
- render: ve,
571
- sizeX: q,
572
- sizeY: ee,
466
+ render: Me,
467
+ sizeX: te,
468
+ sizeY: ae,
573
469
  offsetX: 0,
574
470
  offsetY: 0
575
471
  },
576
472
  mb: {
577
- render: ve,
578
- sizeX: q,
579
- sizeY: ee,
473
+ render: Me,
474
+ sizeX: te,
475
+ sizeY: ae,
580
476
  offsetX: 0,
581
477
  offsetY: 0
582
478
  },
583
479
  // Специальный «rotate» контрол
584
480
  mtr: {
585
- render: Ke,
586
- sizeX: te,
587
- sizeY: te,
481
+ render: qe,
482
+ sizeX: re,
483
+ sizeY: re,
588
484
  offsetX: 0,
589
485
  offsetY: -32
590
486
  }
591
487
  };
592
- class qe {
488
+ class tt {
593
489
  static apply() {
594
- var e = Oe.createObjectDefaultControls();
595
- Object.entries($e).forEach((t) => {
490
+ var e = xe.createObjectDefaultControls();
491
+ Object.entries(et).forEach((t) => {
596
492
  var [a, r] = t;
597
493
  Object.assign(e[a], {
598
494
  render: r.render,
@@ -601,30 +497,30 @@ class qe {
601
497
  offsetX: r.offsetX,
602
498
  offsetY: r.offsetY
603
499
  });
604
- }), Te.ownDefaults.controls = e;
500
+ }), Be.ownDefaults.controls = e;
605
501
  }
606
502
  }
607
- var et = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi44NzUgMi41YS42MjUuNjI1IDAgMCAwLS42MjUuNjI0VjYuMjVIMy4xMjVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2MTBjMCAuMzQ1LjI4LjYyNS42MjUuNjI1aDEwYy4zNDUgMCAuNjI1LS4yOC42MjUtLjYyNXYtMy4xMjZoMy4xMjVjLjM0NSAwIC42MjUtLjI4LjYyNS0uNjI1di0xMGEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTEwWm02Ljg3NSAxMGgyLjVWMy43NUg3LjV2Mi41aDUuNjI1Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NS42MjRabS0xMCAzLjc1VjcuNWg4Ljc1djguNzVIMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", tt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDcuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDMuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjVabTEzLjc1IDBIMy43NXY4Ljc1aDEyLjVWNy41WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMS44NzVhMi4xODggMi4xODggMCAwIDAtMi4xODggMi4xODh2Mi44MTJhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyYTMuNDM3IDMuNDM3IDAgMSAxIDYuODc1IDB2Mi44MTNhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyQTIuMTg4IDIuMTg4IDAgMCAwIDEwIDEuODc2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDEyLjgxM2EuOTM3LjkzNyAwIDEgMCAwLTEuODc1LjkzNy45MzcgMCAwIDAgMCAxLjg3NFoiLz48L3N2Zz4=", at = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE2LjI1IDYuMjVINy41VjQuMzc1YTIuNSAyLjUgMCAwIDEgMi41LTIuNWMxLjIgMCAyLjI4MS44NiAyLjUxMiAyYS42MjUuNjI1IDAgMCAwIDEuMjI2LS4yNWMtLjM1NC0xLjczOC0xLjkyNS0zLTMuNzM4LTNhMy43NTQgMy43NTQgMCAwIDAtMy43NSAzLjc1VjYuMjVoLTIuNUExLjI1IDEuMjUgMCAwIDAgMi41IDcuNXY4Ljc1YTEuMjUgMS4yNSAwIDAgMCAxLjI1IDEuMjVoMTIuNWExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjcuNWExLjI1IDEuMjUgMCAwIDAtMS4yNS0xLjI1Wm0wIDEwSDMuNzVWNy41aDEyLjV2OC43NVptLTUuMzEzLTQuMzc1YS45MzcuOTM3IDAgMSAxLTEuODc0IDAgLjkzNy45MzcgMCAwIDEgMS44NzQgMFoiLz48L3N2Zz4K", rt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuNSA4LjEyNSAxMCAxMi41bDcuNS00LjM3NUwxMCAzLjc1IDIuNSA4LjEyNVoiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjY4NSAzLjIxYS42MjUuNjI1IDAgMCAxIC42MyAwbDcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOGw3LjUtNC4zNzVaTTMuNzQgOC4xMjUgMTAgMTEuNzc2bDYuMjYtMy42NTFMMTAgNC40NzQgMy43NCA4LjEyNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA5LjQ2YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDExLjc3NmwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA5LjQ2Wm0tMS42NiAyLjQxNUwxMCAxNS41MjZsNi4yNi0zLjY1MS0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNi0xLjk3NSAxLjE1MVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", nt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMy4yMWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDguMTI1IDEwIDExLjc3Nmw2LjI2LTMuNjUxTDEwIDQuNDc0IDMuNzQgOC4xMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjcxNCAxMCAxMCAxMi41bDQuMjg2LTIuNSAzLjIxNCAxLjg3NUwxMCAxNi4yNWwtNy41LTQuMzc1TDUuNzE0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDkuNDZhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgMTEuNzc2bDMuOTctMi4zMTZhLjYyNS42MjUgMCAwIDEgLjYzIDBsMy4yMTUgMS44NzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhMNS40IDkuNDZabS0xLjY2IDIuNDE1TDEwIDE1LjUyNmw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2LTEuOTc1IDEuMTUxWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", it = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIuNSA2LjI1IDcuNSA0LjM3NSA3LjUtNC4zNzVMMTAgMS44NzUgMi41IDYuMjVaIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMS4zMzVhLjYyNS42MjUgMCAwIDEgLjYzIDBsNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4bDcuNS00LjM3NVpNMy43NCA2LjI1IDEwIDkuOTAxbDYuMjYtMy42NTFMMTAgMi41OTkgMy43NCA2LjI1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDExLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCAxMy42NTFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgMTEuMzM1Wk0zLjc0IDEzLjc1IDEwIDE3LjQwMWw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTMuNzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgNy41ODVhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgOS45MDFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgNy41ODVaTTMuNzQgMTAgMTAgMTMuNjUxIDE2LjI2IDEwbC0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNkwzLjc0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", ot = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS45NiAxMy40MzVhLjYyNS42MjUgMCAwIDEgLjg1NS0uMjI1TDEwIDE3LjQwMWw3LjE4NS00LjE5YS42MjUuNjI1IDAgMCAxIC42MyAxLjA3OWwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEtLjIyNS0uODU1Wk05LjY4NSAxLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDYuMjUgMTAgOS45MDFsNi4yNi0zLjY1MUwxMCAyLjU5OSAzLjc0IDYuMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjcxNCAxMS44NzUgNC4yODYgMi41IDQuMjg2LTIuNUwxNy41IDEzLjc1IDEwIDE4LjEyNSAyLjUgMTMuNzVsMy4yMTQtMS44NzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgMTEuMzM1YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDEzLjY1MWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCAxMS4zMzVaTTMuNzQgMTMuNzUgMTAgMTcuNDAxbDYuMjYtMy42NTEtMS45NzQtMS4xNTEtMy45NzEgMi4zMTZhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTMuOTctMi4zMTZMMy43NCAxMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA3LjU4NWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCA5LjkwMWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA3LjU4NVpNMy43NCAxMCAxMCAxMy42NTEgMTYuMjYgMTBsLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTBaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", st = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0VDNEU0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xMjUgMS4yNUExLjg3NSAxLjg3NSAwIDAgMCA2LjI1IDMuMTI1di42MjVIMy4xMjVhLjYyNS42MjUgMCAwIDAgMCAxLjI1aC42MjV2MTEuMjVBMS4yNSAxLjI1IDAgMCAwIDUgMTcuNWgxMGExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjVoLjYyNWEuNjI1LjYyNSAwIDAgMCAwLTEuMjVIMTMuNzV2LS42MjVhMS44NzUgMS44NzUgMCAwIDAtMS44NzUtMS44NzVoLTMuNzVabTQuMzc1IDIuNXYtLjYyNWEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2LjYyNWg1Wk01IDE2LjI1VjVoMTB2MTEuMjVINVpNOC4xMjUgNy41Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NWEuNjI1LjYyNSAwIDEgMS0xLjI1IDB2LTVjMC0uMzQ1LjI4LS42MjUuNjI1LS42MjVabTQuMzc1IDUuNjI1di01YS42MjUuNjI1IDAgMCAwLTEuMjUgMHY1YS42MjUuNjI1IDAgMSAwIDEuMjUgMFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==";
608
- function me(o, e, t, a, r, n, i) {
503
+ var at = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi44NzUgMi41YS42MjUuNjI1IDAgMCAwLS42MjUuNjI0VjYuMjVIMy4xMjVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2MTBjMCAuMzQ1LjI4LjYyNS42MjUuNjI1aDEwYy4zNDUgMCAuNjI1LS4yOC42MjUtLjYyNXYtMy4xMjZoMy4xMjVjLjM0NSAwIC42MjUtLjI4LjYyNS0uNjI1di0xMGEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTEwWm02Ljg3NSAxMGgyLjVWMy43NUg3LjV2Mi41aDUuNjI1Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NS42MjRabS0xMCAzLjc1VjcuNWg4Ljc1djguNzVIMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", rt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDcuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDMuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjVabTEzLjc1IDBIMy43NXY4Ljc1aDEyLjVWNy41WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMS44NzVhMi4xODggMi4xODggMCAwIDAtMi4xODggMi4xODh2Mi44MTJhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyYTMuNDM3IDMuNDM3IDAgMSAxIDYuODc1IDB2Mi44MTNhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyQTIuMTg4IDIuMTg4IDAgMCAwIDEwIDEuODc2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDEyLjgxM2EuOTM3LjkzNyAwIDEgMCAwLTEuODc1LjkzNy45MzcgMCAwIDAgMCAxLjg3NFoiLz48L3N2Zz4=", it = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE2LjI1IDYuMjVINy41VjQuMzc1YTIuNSAyLjUgMCAwIDEgMi41LTIuNWMxLjIgMCAyLjI4MS44NiAyLjUxMiAyYS42MjUuNjI1IDAgMCAwIDEuMjI2LS4yNWMtLjM1NC0xLjczOC0xLjkyNS0zLTMuNzM4LTNhMy43NTQgMy43NTQgMCAwIDAtMy43NSAzLjc1VjYuMjVoLTIuNUExLjI1IDEuMjUgMCAwIDAgMi41IDcuNXY4Ljc1YTEuMjUgMS4yNSAwIDAgMCAxLjI1IDEuMjVoMTIuNWExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjcuNWExLjI1IDEuMjUgMCAwIDAtMS4yNS0xLjI1Wm0wIDEwSDMuNzVWNy41aDEyLjV2OC43NVptLTUuMzEzLTQuMzc1YS45MzcuOTM3IDAgMSAxLTEuODc0IDAgLjkzNy45MzcgMCAwIDEgMS44NzQgMFoiLz48L3N2Zz4K", nt = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuNSA4LjEyNSAxMCAxMi41bDcuNS00LjM3NUwxMCAzLjc1IDIuNSA4LjEyNVoiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjY4NSAzLjIxYS42MjUuNjI1IDAgMCAxIC42MyAwbDcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOGw3LjUtNC4zNzVaTTMuNzQgOC4xMjUgMTAgMTEuNzc2bDYuMjYtMy42NTFMMTAgNC40NzQgMy43NCA4LjEyNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA5LjQ2YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDExLjc3NmwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA5LjQ2Wm0tMS42NiAyLjQxNUwxMCAxNS41MjZsNi4yNi0zLjY1MS0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNi0xLjk3NSAxLjE1MVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", st = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMy4yMWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDguMTI1IDEwIDExLjc3Nmw2LjI2LTMuNjUxTDEwIDQuNDc0IDMuNzQgOC4xMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjcxNCAxMCAxMCAxMi41bDQuMjg2LTIuNSAzLjIxNCAxLjg3NUwxMCAxNi4yNWwtNy41LTQuMzc1TDUuNzE0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDkuNDZhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgMTEuNzc2bDMuOTctMi4zMTZhLjYyNS42MjUgMCAwIDEgLjYzIDBsMy4yMTUgMS44NzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhMNS40IDkuNDZabS0xLjY2IDIuNDE1TDEwIDE1LjUyNmw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2LTEuOTc1IDEuMTUxWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", ot = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIuNSA2LjI1IDcuNSA0LjM3NSA3LjUtNC4zNzVMMTAgMS44NzUgMi41IDYuMjVaIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMS4zMzVhLjYyNS42MjUgMCAwIDEgLjYzIDBsNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4bDcuNS00LjM3NVpNMy43NCA2LjI1IDEwIDkuOTAxbDYuMjYtMy42NTFMMTAgMi41OTkgMy43NCA2LjI1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDExLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCAxMy42NTFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgMTEuMzM1Wk0zLjc0IDEzLjc1IDEwIDE3LjQwMWw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTMuNzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgNy41ODVhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgOS45MDFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgNy41ODVaTTMuNzQgMTAgMTAgMTMuNjUxIDE2LjI2IDEwbC0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNkwzLjc0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", ct = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS45NiAxMy40MzVhLjYyNS42MjUgMCAwIDEgLjg1NS0uMjI1TDEwIDE3LjQwMWw3LjE4NS00LjE5YS42MjUuNjI1IDAgMCAxIC42MyAxLjA3OWwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEtLjIyNS0uODU1Wk05LjY4NSAxLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDYuMjUgMTAgOS45MDFsNi4yNi0zLjY1MUwxMCAyLjU5OSAzLjc0IDYuMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjcxNCAxMS44NzUgNC4yODYgMi41IDQuMjg2LTIuNUwxNy41IDEzLjc1IDEwIDE4LjEyNSAyLjUgMTMuNzVsMy4yMTQtMS44NzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgMTEuMzM1YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDEzLjY1MWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCAxMS4zMzVaTTMuNzQgMTMuNzUgMTAgMTcuNDAxbDYuMjYtMy42NTEtMS45NzQtMS4xNTEtMy45NzEgMi4zMTZhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTMuOTctMi4zMTZMMy43NCAxMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA3LjU4NWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCA5LjkwMWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA3LjU4NVpNMy43NCAxMCAxMCAxMy42NTEgMTYuMjYgMTBsLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTBaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", ut = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0VDNEU0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xMjUgMS4yNUExLjg3NSAxLjg3NSAwIDAgMCA2LjI1IDMuMTI1di42MjVIMy4xMjVhLjYyNS42MjUgMCAwIDAgMCAxLjI1aC42MjV2MTEuMjVBMS4yNSAxLjI1IDAgMCAwIDUgMTcuNWgxMGExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjVoLjYyNWEuNjI1LjYyNSAwIDAgMCAwLTEuMjVIMTMuNzV2LS42MjVhMS44NzUgMS44NzUgMCAwIDAtMS44NzUtMS44NzVoLTMuNzVabTQuMzc1IDIuNXYtLjYyNWEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2LjYyNWg1Wk01IDE2LjI1VjVoMTB2MTEuMjVINVpNOC4xMjUgNy41Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NWEuNjI1LjYyNSAwIDEgMS0xLjI1IDB2LTVjMC0uMzQ1LjI4LS42MjUuNjI1LS42MjVabTQuMzc1IDUuNjI1di01YS42MjUuNjI1IDAgMCAwLTEuMjUgMHY1YS42MjUuNjI1IDAgMSAwIDEuMjUgMFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==";
504
+ function je(s, e, t, a, r, i, n) {
609
505
  try {
610
- var s = o[n](i), c = s.value;
506
+ var o = s[i](n), c = o.value;
611
507
  } catch (u) {
612
508
  return void t(u);
613
509
  }
614
- s.done ? e(c) : Promise.resolve(c).then(a, r);
510
+ o.done ? e(c) : Promise.resolve(c).then(a, r);
615
511
  }
616
- function ct(o) {
512
+ function dt(s) {
617
513
  return function() {
618
514
  var e = this, t = arguments;
619
515
  return new Promise(function(a, r) {
620
- var n = o.apply(e, t);
621
- function i(c) {
622
- me(n, a, r, i, s, "next", c);
516
+ var i = s.apply(e, t);
517
+ function n(c) {
518
+ je(i, a, r, n, o, "next", c);
623
519
  }
624
- function s(c) {
625
- me(n, a, r, i, s, "throw", c);
520
+ function o(c) {
521
+ je(i, a, r, n, o, "throw", c);
626
522
  }
627
- i(void 0);
523
+ n(void 0);
628
524
  });
629
525
  };
630
526
  }
@@ -687,87 +583,87 @@ const B = {
687
583
  }],
688
584
  offsetTop: 50,
689
585
  icons: {
690
- copyPaste: et,
691
- delete: st,
692
- lock: tt,
693
- unlock: at,
694
- bringToFront: it,
695
- sendToBack: ot,
696
- bringForward: rt,
697
- sendBackwards: nt
586
+ copyPaste: at,
587
+ delete: ut,
588
+ lock: rt,
589
+ unlock: it,
590
+ bringToFront: ot,
591
+ sendToBack: ct,
592
+ bringForward: nt,
593
+ sendBackwards: st
698
594
  },
699
595
  handlers: {
700
596
  copyPaste: function() {
701
- var o = ct(function* (t) {
597
+ var s = dt(function* (t) {
702
598
  yield t.clipboardManager.copy(), yield t.clipboardManager.paste();
703
599
  });
704
600
  function e(t) {
705
- return o.apply(this, arguments);
601
+ return s.apply(this, arguments);
706
602
  }
707
603
  return e;
708
604
  }(),
709
- delete: (o) => {
710
- o.deletionManager.deleteSelectedObjects();
605
+ delete: (s) => {
606
+ s.deletionManager.deleteSelectedObjects();
711
607
  },
712
- lock: (o) => {
713
- o.objectLockManager.lockObject();
608
+ lock: (s) => {
609
+ s.objectLockManager.lockObject();
714
610
  },
715
- unlock: (o) => {
716
- o.objectLockManager.unlockObject();
611
+ unlock: (s) => {
612
+ s.objectLockManager.unlockObject();
717
613
  },
718
- bringForward: (o) => {
719
- o.layerManager.bringForward();
614
+ bringForward: (s) => {
615
+ s.layerManager.bringForward();
720
616
  },
721
- bringToFront: (o) => {
722
- o.layerManager.bringToFront();
617
+ bringToFront: (s) => {
618
+ s.layerManager.bringToFront();
723
619
  },
724
- sendToBack: (o) => {
725
- o.layerManager.sendToBack();
620
+ sendToBack: (s) => {
621
+ s.layerManager.sendToBack();
726
622
  },
727
- sendBackwards: (o) => {
728
- o.layerManager.sendBackwards();
623
+ sendBackwards: (s) => {
624
+ s.layerManager.sendBackwards();
729
625
  }
730
626
  }
731
627
  };
732
- function fe(o, e) {
733
- var t = Object.keys(o);
628
+ function ye(s, e) {
629
+ var t = Object.keys(s);
734
630
  if (Object.getOwnPropertySymbols) {
735
- var a = Object.getOwnPropertySymbols(o);
631
+ var a = Object.getOwnPropertySymbols(s);
736
632
  e && (a = a.filter(function(r) {
737
- return Object.getOwnPropertyDescriptor(o, r).enumerable;
633
+ return Object.getOwnPropertyDescriptor(s, r).enumerable;
738
634
  })), t.push.apply(t, a);
739
635
  }
740
636
  return t;
741
637
  }
742
- function j(o) {
638
+ function j(s) {
743
639
  for (var e = 1; e < arguments.length; e++) {
744
640
  var t = arguments[e] != null ? arguments[e] : {};
745
- e % 2 ? fe(Object(t), !0).forEach(function(a) {
746
- ut(o, a, t[a]);
747
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : fe(Object(t)).forEach(function(a) {
748
- Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
641
+ e % 2 ? ye(Object(t), !0).forEach(function(a) {
642
+ lt(s, a, t[a]);
643
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(s, Object.getOwnPropertyDescriptors(t)) : ye(Object(t)).forEach(function(a) {
644
+ Object.defineProperty(s, a, Object.getOwnPropertyDescriptor(t, a));
749
645
  });
750
646
  }
751
- return o;
647
+ return s;
752
648
  }
753
- function ut(o, e, t) {
754
- return (e = dt(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
649
+ function lt(s, e, t) {
650
+ return (e = ht(e)) in s ? Object.defineProperty(s, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : s[e] = t, s;
755
651
  }
756
- function dt(o) {
757
- var e = lt(o, "string");
652
+ function ht(s) {
653
+ var e = gt(s, "string");
758
654
  return typeof e == "symbol" ? e : e + "";
759
655
  }
760
- function lt(o, e) {
761
- if (typeof o != "object" || !o) return o;
762
- var t = o[Symbol.toPrimitive];
656
+ function gt(s, e) {
657
+ if (typeof s != "object" || !s) return s;
658
+ var t = s[Symbol.toPrimitive];
763
659
  if (t !== void 0) {
764
- var a = t.call(o, e);
660
+ var a = t.call(s, e);
765
661
  if (typeof a != "object") return a;
766
662
  throw new TypeError("@@toPrimitive must return a primitive value.");
767
663
  }
768
- return (e === "string" ? String : Number)(o);
664
+ return (e === "string" ? String : Number)(s);
769
665
  }
770
- class ht {
666
+ class vt {
771
667
  /**
772
668
  * @param {object} options
773
669
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -817,16 +713,16 @@ class ht {
817
713
  this.el.innerHTML = "";
818
714
  var a = function() {
819
715
  var {
820
- name: i,
821
- handle: s
716
+ name: n,
717
+ handle: o
822
718
  } = r, {
823
719
  icons: c,
824
720
  btnStyle: u,
825
721
  handlers: l
826
722
  } = t.config, d = document.createElement("button");
827
- d.innerHTML = c[s] ? '<img src="'.concat(c[s], '" title="').concat(i, '" />') : i, Object.assign(d.style, u), d.onclick = () => {
723
+ d.innerHTML = c[o] ? '<img src="'.concat(c[o], '" title="').concat(n, '" />') : n, Object.assign(d.style, u), d.onclick = () => {
828
724
  var h;
829
- return (h = l[s]) === null || h === void 0 ? void 0 : h.call(l, t.editor);
725
+ return (h = l[o]) === null || h === void 0 ? void 0 : h.call(l, t.editor);
830
726
  }, t.el.appendChild(d);
831
727
  };
832
728
  for (var r of e)
@@ -899,12 +795,12 @@ class ht {
899
795
  canvas: r
900
796
  } = this;
901
797
  e.setCoords();
902
- var n = r.getZoom(), [, , , , i, s] = r.viewportTransform, {
798
+ var i = r.getZoom(), [, , , , n, o] = r.viewportTransform, {
903
799
  x: c
904
800
  } = e.getCenterPoint(), {
905
801
  top: u,
906
802
  height: l
907
- } = e.getBoundingRect(!1, !0), d = c * n + i, h = d - t.offsetWidth / 2, v = (u + l) * n + s + a.offsetTop;
803
+ } = e.getBoundingRect(!1, !0), d = c * i + n, h = d - t.offsetWidth / 2, v = (u + l) * i + o + a.offsetTop;
908
804
  Object.assign(t.style, {
909
805
  left: "".concat(h, "px"),
910
806
  top: "".concat(v, "px"),
@@ -919,30 +815,30 @@ class ht {
919
815
  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();
920
816
  }
921
817
  }
922
- function Me(o, e, t, a, r, n, i) {
818
+ function pe(s, e, t, a, r, i, n) {
923
819
  try {
924
- var s = o[n](i), c = s.value;
820
+ var o = s[i](n), c = o.value;
925
821
  } catch (u) {
926
822
  return void t(u);
927
823
  }
928
- s.done ? e(c) : Promise.resolve(c).then(a, r);
824
+ o.done ? e(c) : Promise.resolve(c).then(a, r);
929
825
  }
930
- function X(o) {
826
+ function J(s) {
931
827
  return function() {
932
828
  var e = this, t = arguments;
933
829
  return new Promise(function(a, r) {
934
- var n = o.apply(e, t);
935
- function i(c) {
936
- Me(n, a, r, i, s, "next", c);
830
+ var i = s.apply(e, t);
831
+ function n(c) {
832
+ pe(i, a, r, n, o, "next", c);
937
833
  }
938
- function s(c) {
939
- Me(n, a, r, i, s, "throw", c);
834
+ function o(c) {
835
+ pe(i, a, r, n, o, "throw", c);
940
836
  }
941
- i(void 0);
837
+ n(void 0);
942
838
  });
943
839
  };
944
840
  }
945
- class gt {
841
+ class mt {
946
842
  /**
947
843
  * @param {object} options
948
844
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -958,7 +854,7 @@ class gt {
958
854
  return this._historySuspendCount > 0;
959
855
  }
960
856
  _createDiffPatcher() {
961
- this.diffPatcher = He({
857
+ this.diffPatcher = We({
962
858
  objectHash(e) {
963
859
  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("-");
964
860
  },
@@ -1001,8 +897,8 @@ class gt {
1001
897
  baseState: e,
1002
898
  currentIndex: t,
1003
899
  patches: a
1004
- } = this, r = JSON.parse(JSON.stringify(e)), n = 0; n < t; n += 1)
1005
- r = this.diffPatcher.patch(r, a[n]);
900
+ } = this, r = JSON.parse(JSON.stringify(e)), i = 0; i < t; i += 1)
901
+ r = this.diffPatcher.patch(r, a[i]);
1006
902
  return console.log("getFullState state", r), r;
1007
903
  }
1008
904
  /**
@@ -1031,12 +927,12 @@ class gt {
1031
927
  */
1032
928
  loadStateFromFullState(e) {
1033
929
  var t = this;
1034
- return X(function* () {
930
+ return J(function* () {
1035
931
  if (e) {
1036
932
  console.log("loadStateFromFullState fullState", e), yield t.canvas.loadFromJSON(e);
1037
- var a = t.canvas.getObjects().find((n) => n.id === "montage-area");
933
+ var a = t.canvas.getObjects().find((i) => i.id === "montage-area");
1038
934
  a && (t.editor.montageArea = a);
1039
- var r = t.canvas.getObjects().find((n) => n.id === "overlay-mask");
935
+ var r = t.canvas.getObjects().find((i) => i.id === "overlay-mask");
1040
936
  r && (t.editor.interactionBlocker.overlayMask = r, t.editor.interactionBlocker.overlayMask.visible = !1), t.canvas.renderAll(), t.canvas.fire("editor:history-state-loaded");
1041
937
  }
1042
938
  })();
@@ -1047,7 +943,7 @@ class gt {
1047
943
  */
1048
944
  undo() {
1049
945
  var e = this;
1050
- return X(function* () {
946
+ return J(function* () {
1051
947
  if (!e.skipHistory) {
1052
948
  if (e.currentIndex <= 0) {
1053
949
  console.log("Нет предыдущих состояний для отмены.");
@@ -1074,7 +970,7 @@ class gt {
1074
970
  */
1075
971
  redo() {
1076
972
  var e = this;
1077
- return X(function* () {
973
+ return J(function* () {
1078
974
  if (!e.skipHistory) {
1079
975
  if (e.currentIndex >= e.patches.length) {
1080
976
  console.log("Нет состояний для повтора.");
@@ -1096,27 +992,27 @@ class gt {
1096
992
  })();
1097
993
  }
1098
994
  }
1099
- var vt = 0.1, mt = 2, ft = 0.1, Mt = 90, Z = 16, z = 16, N = 4096, L = 4096;
1100
- function je(o, e, t, a, r, n, i) {
995
+ const ft = 0.1, Mt = 2, jt = 0.1, yt = 90, Z = 16, z = 16, D = 4096, L = 4096;
996
+ function be(s, e, t, a, r, i, n) {
1101
997
  try {
1102
- var s = o[n](i), c = s.value;
998
+ var o = s[i](n), c = o.value;
1103
999
  } catch (u) {
1104
1000
  return void t(u);
1105
1001
  }
1106
- s.done ? e(c) : Promise.resolve(c).then(a, r);
1002
+ o.done ? e(c) : Promise.resolve(c).then(a, r);
1107
1003
  }
1108
- function T(o) {
1004
+ function T(s) {
1109
1005
  return function() {
1110
1006
  var e = this, t = arguments;
1111
1007
  return new Promise(function(a, r) {
1112
- var n = o.apply(e, t);
1113
- function i(c) {
1114
- je(n, a, r, i, s, "next", c);
1008
+ var i = s.apply(e, t);
1009
+ function n(c) {
1010
+ be(i, a, r, n, o, "next", c);
1115
1011
  }
1116
- function s(c) {
1117
- je(n, a, r, i, s, "throw", c);
1012
+ function o(c) {
1013
+ be(i, a, r, n, o, "throw", c);
1118
1014
  }
1119
- i(void 0);
1015
+ n(void 0);
1120
1016
  });
1121
1017
  };
1122
1018
  }
@@ -1149,12 +1045,12 @@ class A {
1149
1045
  var {
1150
1046
  source: a,
1151
1047
  scale: r = "image-".concat(t.options.scaleType),
1152
- withoutSave: n = !1
1048
+ withoutSave: i = !1
1153
1049
  } = e;
1154
1050
  if (!a) return null;
1155
1051
  var {
1156
- canvas: i,
1157
- montageArea: s,
1052
+ canvas: n,
1053
+ montageArea: o,
1158
1054
  transformManager: c,
1159
1055
  historyManager: u,
1160
1056
  errorManager: l
@@ -1206,19 +1102,19 @@ class A {
1206
1102
  }
1207
1103
  }), null;
1208
1104
  if (t._createdBlobUrls.push(M), h === "svg") {
1209
- var D = yield ke(M);
1210
- g = Y.groupSVGElements(D.objects, D.options);
1105
+ var N = yield Ze(M);
1106
+ g = P.groupSVGElements(N.objects, N.options);
1211
1107
  } else
1212
- g = yield le.fromURL(M, {
1108
+ g = yield me.fromURL(M, {
1213
1109
  crossOrigin: "anonymous"
1214
1110
  });
1215
1111
  var {
1216
1112
  width: E,
1217
1113
  height: S
1218
1114
  } = g;
1219
- if (S > L || E > N) {
1115
+ if (S > L || E > D) {
1220
1116
  var p = yield t.resizeImageToBoundaries(g._element.src, "max"), k = URL.createObjectURL(p);
1221
- t._createdBlobUrls.push(k), g = yield le.fromURL(k, {
1117
+ t._createdBlobUrls.push(k), g = yield me.fromURL(k, {
1222
1118
  crossOrigin: "anonymous"
1223
1119
  });
1224
1120
  }
@@ -1231,7 +1127,7 @@ class A {
1231
1127
  var {
1232
1128
  width: H,
1233
1129
  height: _
1234
- } = s, R = t.calculateScaleFactor({
1130
+ } = o, R = t.calculateScaleFactor({
1235
1131
  imageObject: g,
1236
1132
  scaleType: r
1237
1133
  });
@@ -1245,16 +1141,16 @@ class A {
1245
1141
  withoutSave: !0
1246
1142
  });
1247
1143
  }
1248
- i.add(g), i.centerObject(g), i.setActiveObject(g), i.renderAll(), u.resumeHistory(), n || u.saveState();
1144
+ n.add(g), n.centerObject(g), n.setActiveObject(g), n.renderAll(), u.resumeHistory(), i || u.saveState();
1249
1145
  var O = {
1250
1146
  image: g,
1251
1147
  format: h,
1252
1148
  contentType: d,
1253
1149
  scale: r,
1254
- withoutSave: n,
1150
+ withoutSave: i,
1255
1151
  source: a
1256
1152
  };
1257
- return i.fire("editor:image-imported", O), O;
1153
+ return n.fire("editor:image-imported", O), O;
1258
1154
  } catch (x) {
1259
1155
  return l.emitError({
1260
1156
  origin: "ImageManager",
@@ -1266,7 +1162,7 @@ class A {
1266
1162
  format: h,
1267
1163
  contentType: d,
1268
1164
  scale: r,
1269
- withoutSave: n
1165
+ withoutSave: i
1270
1166
  }
1271
1167
  }), u.resumeHistory(), null;
1272
1168
  }
@@ -1283,24 +1179,24 @@ class A {
1283
1179
  resizeImageToBoundaries(e) {
1284
1180
  var t = arguments, a = this;
1285
1181
  return T(function* () {
1286
- var r = t.length > 1 && t[1] !== void 0 ? t[1] : "max", n = "Размер изображения больше максимального размера канваса, поэтому оно будет уменьшено до максимальных размеров: ".concat(N, "x").concat(L);
1182
+ var r = t.length > 1 && t[1] !== void 0 ? t[1] : "max", i = "Размер изображения больше максимального размера канваса, поэтому оно будет уменьшено до максимальных размеров: ".concat(D, "x").concat(L);
1287
1183
  a.editor.errorManager.emitWarning({
1288
1184
  origin: "ImageManager",
1289
1185
  method: "resizeImageToBoundaries",
1290
1186
  code: "IMAGE_RESIZE_WARNING",
1291
- message: n,
1187
+ message: i,
1292
1188
  data: {
1293
1189
  dataURL: e,
1294
1190
  size: r
1295
1191
  }
1296
1192
  });
1297
- var i = yield a.editor.workerManager.post("resizeImage", {
1193
+ var n = yield a.editor.workerManager.post("resizeImage", {
1298
1194
  dataURL: e,
1299
- maxWidth: N,
1195
+ maxWidth: D,
1300
1196
  maxHeight: L,
1301
1197
  sizeType: r
1302
1198
  });
1303
- return i;
1199
+ return n;
1304
1200
  })();
1305
1201
  }
1306
1202
  /**
@@ -1320,10 +1216,10 @@ class A {
1320
1216
  var {
1321
1217
  fileName: a = "image.png",
1322
1218
  contentType: r = "image/png",
1323
- exportAsBase64: n = !1,
1324
- exportAsBlob: i = !1
1219
+ exportAsBase64: i = !1,
1220
+ exportAsBlob: n = !1
1325
1221
  } = e.length > 0 && e[0] !== void 0 ? e[0] : {}, {
1326
- canvas: s,
1222
+ canvas: o,
1327
1223
  montageArea: c,
1328
1224
  workerManager: u
1329
1225
  } = t.editor;
@@ -1335,7 +1231,7 @@ class A {
1335
1231
  top: m,
1336
1232
  width: f,
1337
1233
  height: M
1338
- } = c.getBoundingRect(), g = yield s.clone(["id", "format", "locked"]);
1234
+ } = c.getBoundingRect(), g = yield o.clone(["id", "format", "locked"]);
1339
1235
  ["image/jpg", "image/jpeg"].includes(d) && (g.backgroundColor = "#ffffff");
1340
1236
  var C = g.getObjects().find((b) => b.id === c.id);
1341
1237
  C.visible = !1, g.viewportTransform = [1, 0, 0, 1, -v, -m], g.setDimensions({
@@ -1346,11 +1242,11 @@ class A {
1346
1242
  }), g.renderAll();
1347
1243
  var y = g.getObjects().filter((b) => b.format).every((b) => b.format === "svg");
1348
1244
  if (h === "svg" && y) {
1349
- var D = g.toSVG();
1245
+ var N = g.toSVG();
1350
1246
  g.dispose();
1351
- var E = A._exportSVGStringAsFile(D, {
1352
- exportAsBase64: n,
1353
- exportAsBlob: i,
1247
+ var E = A._exportSVGStringAsFile(N, {
1248
+ exportAsBase64: i,
1249
+ exportAsBlob: n,
1354
1250
  fileName: a
1355
1251
  }), S = {
1356
1252
  image: E,
@@ -1358,19 +1254,19 @@ class A {
1358
1254
  contentType: "image/svg+xml",
1359
1255
  fileName: a.replace(/\.[^/.]+$/, ".svg")
1360
1256
  };
1361
- return s.fire("editor:canvas-exported", S), S;
1257
+ return o.fire("editor:canvas-exported", S), S;
1362
1258
  }
1363
1259
  var p = yield new Promise((b) => {
1364
1260
  g.getElement().toBlob(b);
1365
1261
  });
1366
- if (g.dispose(), i) {
1262
+ if (g.dispose(), n) {
1367
1263
  var k = {
1368
1264
  image: p,
1369
1265
  format: h,
1370
1266
  contentType: d,
1371
1267
  fileName: a
1372
1268
  };
1373
- return s.fire("editor:canvas-exported", k), k;
1269
+ return o.fire("editor:canvas-exported", k), k;
1374
1270
  }
1375
1271
  var H = yield createImageBitmap(p), _ = yield u.post("toDataURL", {
1376
1272
  format: h,
@@ -1383,43 +1279,43 @@ class A {
1383
1279
  unit: "mm",
1384
1280
  format: [O, x]
1385
1281
  });
1386
- if (G.addImage(_, "JPG", 0, 0, O, x), n) {
1387
- var De = G.output("datauristring"), oe = {
1388
- image: De,
1282
+ if (G.addImage(_, "JPG", 0, 0, O, x), i) {
1283
+ var Ne = G.output("datauristring"), ce = {
1284
+ image: Ne,
1389
1285
  format: "pdf",
1390
1286
  contentType: "application/pdf",
1391
1287
  fileName: a
1392
1288
  };
1393
- return s.fire("editor:canvas-exported", oe), oe;
1289
+ return o.fire("editor:canvas-exported", ce), ce;
1394
1290
  }
1395
- var Ne = G.output("blob"), Le = new File([Ne], a, {
1291
+ var De = G.output("blob"), Le = new File([De], a, {
1396
1292
  type: "application/pdf"
1397
- }), se = {
1293
+ }), ue = {
1398
1294
  image: Le,
1399
1295
  format: "pdf",
1400
1296
  contentType: "application/pdf",
1401
1297
  fileName: a
1402
1298
  };
1403
- return s.fire("editor:canvas-exported", se), se;
1299
+ return o.fire("editor:canvas-exported", ue), ue;
1404
1300
  }
1405
- if (n) {
1406
- var ce = {
1301
+ if (i) {
1302
+ var de = {
1407
1303
  image: _,
1408
1304
  format: h,
1409
1305
  contentType: d,
1410
1306
  fileName: a
1411
1307
  };
1412
- return s.fire("editor:canvas-exported", ce), ce;
1308
+ return o.fire("editor:canvas-exported", de), de;
1413
1309
  }
1414
- var ue = h === "svg" && !y ? a.replace(/\.[^/.]+$/, ".png") : a, Ee = new File([p], ue, {
1310
+ var le = h === "svg" && !y ? a.replace(/\.[^/.]+$/, ".png") : a, Ee = new File([p], le, {
1415
1311
  type: d
1416
- }), de = {
1312
+ }), he = {
1417
1313
  image: Ee,
1418
1314
  format: h,
1419
1315
  contentType: d,
1420
- fileName: ue
1316
+ fileName: le
1421
1317
  };
1422
- return s.fire("editor:canvas-exported", de), de;
1318
+ return o.fire("editor:canvas-exported", he), he;
1423
1319
  } catch (b) {
1424
1320
  return t.editor.errorManager.emitError({
1425
1321
  origin: "ImageManager",
@@ -1429,8 +1325,8 @@ class A {
1429
1325
  data: {
1430
1326
  contentType: r,
1431
1327
  fileName: a,
1432
- exportAsBase64: n,
1433
- exportAsBlob: i
1328
+ exportAsBase64: i,
1329
+ exportAsBlob: n
1434
1330
  }
1435
1331
  }), "";
1436
1332
  }
@@ -1453,9 +1349,9 @@ class A {
1453
1349
  var {
1454
1350
  object: a,
1455
1351
  fileName: r = "image.png",
1456
- contentType: n = "image/png",
1457
- exportAsBase64: i = !1,
1458
- exportAsBlob: s = !1
1352
+ contentType: i = "image/png",
1353
+ exportAsBase64: n = !1,
1354
+ exportAsBlob: o = !1
1459
1355
  } = e.length > 0 && e[0] !== void 0 ? e[0] : {}, {
1460
1356
  canvas: c,
1461
1357
  workerManager: u
@@ -1467,18 +1363,18 @@ class A {
1467
1363
  code: "NO_OBJECT_SELECTED",
1468
1364
  message: "Не выбран объект для экспорта",
1469
1365
  data: {
1470
- contentType: n,
1366
+ contentType: i,
1471
1367
  fileName: r,
1472
- exportAsBase64: i,
1473
- exportAsBlob: s
1368
+ exportAsBase64: n,
1369
+ exportAsBlob: o
1474
1370
  }
1475
1371
  }), "";
1476
1372
  try {
1477
- var d = A.getFormatFromContentType(n);
1373
+ var d = A.getFormatFromContentType(i);
1478
1374
  if (d === "svg") {
1479
1375
  var h = l.toSVG(), v = t._exportSVGStringAsFile(h, {
1480
- exportAsBase64: i,
1481
- exportAsBlob: s,
1376
+ exportAsBase64: n,
1377
+ exportAsBlob: o,
1482
1378
  fileName: r
1483
1379
  }), m = {
1484
1380
  image: v,
@@ -1488,7 +1384,7 @@ class A {
1488
1384
  };
1489
1385
  return c.fire("editor:object-exported", m), m;
1490
1386
  }
1491
- if (i) {
1387
+ if (n) {
1492
1388
  var f = yield createImageBitmap(l._element), M = yield u.post("toDataURL", {
1493
1389
  format: d,
1494
1390
  quality: 1,
@@ -1496,7 +1392,7 @@ class A {
1496
1392
  }, [f]), g = {
1497
1393
  image: M,
1498
1394
  format: d,
1499
- contentType: n,
1395
+ contentType: i,
1500
1396
  fileName: r
1501
1397
  };
1502
1398
  return c.fire("editor:object-exported", g), g;
@@ -1504,21 +1400,21 @@ class A {
1504
1400
  var C = l.toCanvasElement(), y = yield new Promise((p) => {
1505
1401
  C.toBlob(p);
1506
1402
  });
1507
- if (s) {
1508
- var D = {
1403
+ if (o) {
1404
+ var N = {
1509
1405
  image: y,
1510
1406
  format: d,
1511
- contentType: n,
1407
+ contentType: i,
1512
1408
  fileName: r
1513
1409
  };
1514
- return c.fire("editor:object-exported", D), D;
1410
+ return c.fire("editor:object-exported", N), N;
1515
1411
  }
1516
1412
  var E = new File([y], r, {
1517
- type: n
1413
+ type: i
1518
1414
  }), S = {
1519
1415
  image: E,
1520
1416
  format: d,
1521
- contentType: n,
1417
+ contentType: i,
1522
1418
  fileName: r
1523
1419
  };
1524
1420
  return c.fire("editor:object-exported", S), S;
@@ -1529,10 +1425,10 @@ class A {
1529
1425
  code: "IMAGE_EXPORT_FAILED",
1530
1426
  message: "Ошибка экспорта объекта: ".concat(p.message),
1531
1427
  data: {
1532
- contentType: n,
1428
+ contentType: i,
1533
1429
  fileName: r,
1534
- exportAsBase64: i,
1535
- exportAsBlob: s
1430
+ exportAsBase64: n,
1431
+ exportAsBlob: o
1536
1432
  }
1537
1433
  }), "";
1538
1434
  }
@@ -1623,11 +1519,11 @@ class A {
1623
1519
  try {
1624
1520
  var r = yield fetch(e, {
1625
1521
  method: "HEAD"
1626
- }), n = r.headers.get("content-type");
1627
- if (n && n.startsWith("image/"))
1628
- return n.split(";")[0];
1629
- } catch (i) {
1630
- console.warn("HEAD запрос неудачен, определяем тип по расширению:", i);
1522
+ }), i = r.headers.get("content-type");
1523
+ if (i && i.startsWith("image/"))
1524
+ return i.split(";")[0];
1525
+ } catch (n) {
1526
+ console.warn("HEAD запрос неудачен, определяем тип по расширению:", n);
1631
1527
  }
1632
1528
  return t.getContentTypeFromExtension(e);
1633
1529
  })();
@@ -1640,13 +1536,13 @@ class A {
1640
1536
  */
1641
1537
  getContentTypeFromExtension(e) {
1642
1538
  try {
1643
- var t, a = new URL(e), r = (t = a.pathname.split(".").pop()) === null || t === void 0 ? void 0 : t.toLowerCase(), n = {};
1644
- return this.acceptContentTypes.forEach((i) => {
1645
- var s = A.getFormatFromContentType(i);
1646
- s && (n[s] = i);
1647
- }), n[r] || "application/octet-stream";
1648
- } catch (i) {
1649
- return console.warn("Не удалось определить расширение из URL:", e, i), "application/octet-stream";
1539
+ var t, a = new URL(e), r = (t = a.pathname.split(".").pop()) === null || t === void 0 ? void 0 : t.toLowerCase(), i = {};
1540
+ return this.acceptContentTypes.forEach((n) => {
1541
+ var o = A.getFormatFromContentType(n);
1542
+ o && (i[o] = n);
1543
+ }), i[r] || "application/octet-stream";
1544
+ } catch (n) {
1545
+ return console.warn("Не удалось определить расширение из URL:", e, n), "application/octet-stream";
1650
1546
  }
1651
1547
  }
1652
1548
  /**
@@ -1663,14 +1559,14 @@ class A {
1663
1559
  montageArea: r
1664
1560
  } = this.editor;
1665
1561
  if (!r || !t) return 1;
1666
- var n = r.width, i = r.height, {
1667
- width: s,
1562
+ var i = r.width, n = r.height, {
1563
+ width: o,
1668
1564
  height: c
1669
1565
  } = t;
1670
- return a === "contain" || a === "image-contain" ? Math.min(n / s, i / c) : a === "cover" || a === "image-cover" ? Math.max(n / s, i / c) : 1;
1566
+ return a === "contain" || a === "image-contain" ? Math.min(i / o, n / c) : a === "cover" || a === "image-cover" ? Math.max(i / o, n / c) : 1;
1671
1567
  }
1672
1568
  }
1673
- class jt {
1569
+ class pt {
1674
1570
  /**
1675
1571
  * @param {object} options
1676
1572
  * @param {ImageEditor} options.editor – экземпляр редактора
@@ -1683,10 +1579,11 @@ class jt {
1683
1579
  }
1684
1580
  /**
1685
1581
  * Устанавливаем внутреннюю ширину канваса (для экспорта)
1686
- * @param {String} width
1687
- * @param {Object} options
1688
- * @param {Boolean} options.preserveProportional - Сохранить пропорции
1689
- * @param {Boolean} options.withoutSave - Не сохранять состояние
1582
+ * @param {String|Number} width
1583
+ * @param {Object} [options={}]
1584
+ * @param {Boolean} [options.preserveProportional] - Сохранить пропорции
1585
+ * @param {Boolean} [options.withoutSave] - Не сохранять состояние
1586
+ * @param {Boolean} [options.adaptCanvasToContainer] - Адаптировать канвас к контейнеру
1690
1587
  * @fires editor:resolution-width-changed
1691
1588
  */
1692
1589
  setResolutionWidth(e) {
@@ -1697,18 +1594,18 @@ class jt {
1697
1594
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
1698
1595
  if (e) {
1699
1596
  var {
1700
- canvas: n,
1701
- montageArea: i,
1597
+ canvas: i,
1598
+ montageArea: n,
1702
1599
  options: {
1703
- canvasBackstoreWidth: s
1600
+ canvasBackstoreWidth: o
1704
1601
  }
1705
1602
  } = this.editor, {
1706
1603
  width: c,
1707
1604
  height: u
1708
- } = i, l = Number(Math.max(Math.min(e, N), Z));
1709
- if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreWidth(s) : this.setCanvasBackstoreWidth(l), i.set({
1605
+ } = n, l = Number(Math.max(Math.min(e, D), Z));
1606
+ if (!o || o === "auto" || r ? this.adaptCanvasToContainer() : o ? this.setCanvasBackstoreWidth(o) : this.setCanvasBackstoreWidth(l), n.set({
1710
1607
  width: l
1711
- }), n.clipPath.set({
1608
+ }), i.clipPath.set({
1712
1609
  width: l
1713
1610
  }), t) {
1714
1611
  var d = l / c, h = u * d;
@@ -1718,18 +1615,19 @@ class jt {
1718
1615
  var {
1719
1616
  left: v,
1720
1617
  top: m
1721
- } = this.getObjectDefaultCoords(i), f = n.getZoom();
1722
- n.setViewportTransform([f, 0, 0, f, v, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), n == null || n.fire("editor:resolution-width-changed", {
1618
+ } = this.getObjectDefaultCoords(n), f = i.getZoom();
1619
+ i.setViewportTransform([f, 0, 0, f, v, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-width-changed", {
1723
1620
  width: e
1724
1621
  });
1725
1622
  }
1726
1623
  }
1727
1624
  /**
1728
1625
  * Устанавливаем внутреннюю высоту канваса (для экспорта)
1729
- * @param {String} height
1730
- * @param {Object} options
1731
- * @param {Boolean} options.preserveProportional - Сохранить пропорции
1732
- * @param {Boolean} options.withoutSave - Не сохранять состояние
1626
+ * @param {String|Number} height
1627
+ * @param {Object} [options={}]
1628
+ * @param {Boolean} [options.preserveProportional] - Сохранить пропорции
1629
+ * @param {Boolean} [options.withoutSave] - Не сохранять состояние
1630
+ * @param {Boolean} [options.adaptCanvasToContainer] - Адаптировать канвас к контейнеру
1733
1631
  * @fires editor:resolution-height-changed
1734
1632
  */
1735
1633
  setResolutionHeight(e) {
@@ -1740,18 +1638,18 @@ class jt {
1740
1638
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
1741
1639
  if (e) {
1742
1640
  var {
1743
- canvas: n,
1744
- montageArea: i,
1641
+ canvas: i,
1642
+ montageArea: n,
1745
1643
  options: {
1746
- canvasBackstoreHeight: s
1644
+ canvasBackstoreHeight: o
1747
1645
  }
1748
1646
  } = this.editor, {
1749
1647
  width: c,
1750
1648
  height: u
1751
- } = i, l = Number(Math.max(Math.min(e, L), z));
1752
- if (!s || s === "auto" || r ? this.adaptCanvasToContainer() : s ? this.setCanvasBackstoreHeight(s) : this.setCanvasBackstoreHeight(l), i.set({
1649
+ } = n, l = Number(Math.max(Math.min(e, L), z));
1650
+ if (!o || o === "auto" || r ? this.adaptCanvasToContainer() : o ? this.setCanvasBackstoreHeight(o) : this.setCanvasBackstoreHeight(l), n.set({
1753
1651
  height: l
1754
- }), n.clipPath.set({
1652
+ }), i.clipPath.set({
1755
1653
  height: l
1756
1654
  }), t) {
1757
1655
  var d = l / u, h = c * d;
@@ -1761,8 +1659,8 @@ class jt {
1761
1659
  var {
1762
1660
  left: v,
1763
1661
  top: m
1764
- } = this.getObjectDefaultCoords(i), f = n.getZoom();
1765
- n.setViewportTransform([f, 0, 0, f, v, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), n == null || n.fire("editor:resolution-height-changed", {
1662
+ } = this.getObjectDefaultCoords(n), f = i.getZoom();
1663
+ i.setViewportTransform([f, 0, 0, f, v, m]), this.centerMontageArea(), a || this.editor.historyManager.saveState(), i == null || i.fire("editor:resolution-height-changed", {
1766
1664
  height: e
1767
1665
  });
1768
1666
  }
@@ -1775,7 +1673,7 @@ class jt {
1775
1673
  var {
1776
1674
  canvas: e,
1777
1675
  montageArea: t
1778
- } = this.editor, a = e.getWidth(), r = e.getHeight(), n = e.getZoom(), i = new xe(a / 2, r / 2);
1676
+ } = this.editor, a = e.getWidth(), r = e.getHeight(), i = e.getZoom(), n = new ze(a / 2, r / 2);
1779
1677
  t.set({
1780
1678
  left: a / 2,
1781
1679
  top: r / 2
@@ -1783,8 +1681,8 @@ class jt {
1783
1681
  left: a / 2,
1784
1682
  top: r / 2
1785
1683
  }), e.renderAll();
1786
- var s = e.viewportTransform;
1787
- s[4] = a / 2 - i.x * n, s[5] = r / 2 - i.y * n, e.setViewportTransform(s), e.renderAll();
1684
+ var o = e.viewportTransform;
1685
+ o[4] = a / 2 - n.x * i, o[5] = r / 2 - n.y * i, e.setViewportTransform(o), e.renderAll();
1788
1686
  }
1789
1687
  /**
1790
1688
  * Метод для получения координат объекта с учетом текущего зума
@@ -1801,16 +1699,16 @@ class jt {
1801
1699
  }), {};
1802
1700
  var {
1803
1701
  width: r,
1804
- height: n
1805
- } = a, i = t.getZoom(), s = (r - r * i) / 2, c = (n - n * i) / 2;
1702
+ height: i
1703
+ } = a, n = t.getZoom(), o = (r - r * n) / 2, c = (i - i * n) / 2;
1806
1704
  return {
1807
- left: s,
1705
+ left: o,
1808
1706
  top: c
1809
1707
  };
1810
1708
  }
1811
1709
  setCanvasBackstoreWidth(e) {
1812
1710
  if (!(!e || typeof e != "number")) {
1813
- var t = Math.max(Math.min(e, N), Z);
1711
+ var t = Math.max(Math.min(e, D), Z);
1814
1712
  this.editor.canvas.setDimensions({
1815
1713
  width: t
1816
1714
  }, {
@@ -1831,10 +1729,10 @@ class jt {
1831
1729
  adaptCanvasToContainer() {
1832
1730
  var {
1833
1731
  canvas: e
1834
- } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, n = Math.max(Math.min(a, N), Z), i = Math.max(Math.min(r, L), z);
1835
- console.log("adaptCanvasToContainer newWidth", n), console.log("adaptCanvasToContainer newHeight", i), e.setDimensions({
1836
- width: n,
1837
- height: i
1732
+ } = this.editor, t = e.editorContainer, a = t.clientWidth, r = t.clientHeight, i = Math.max(Math.min(a, D), Z), n = Math.max(Math.min(r, L), z);
1733
+ console.log("adaptCanvasToContainer newWidth", i), console.log("adaptCanvasToContainer newHeight", n), e.setDimensions({
1734
+ width: i,
1735
+ height: n
1838
1736
  }, {
1839
1737
  backstoreOnly: !0
1840
1738
  });
@@ -1854,9 +1752,9 @@ class jt {
1854
1752
  var {
1855
1753
  canvas: t,
1856
1754
  montageArea: a
1857
- } = 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;
1755
+ } = this.editor, r = a.width * e, i = a.height * e, n = t.wrapperEl.parentNode, o = r <= n.clientWidth ? "100%" : r, c = i <= n.clientHeight ? "100%" : i;
1858
1756
  t.setDimensions({
1859
- width: s,
1757
+ width: o,
1860
1758
  height: c
1861
1759
  }, {
1862
1760
  cssOnly: !0
@@ -1953,35 +1851,35 @@ class jt {
1953
1851
  var {
1954
1852
  canvas: r,
1955
1853
  options: {
1956
- editorContainer: n
1854
+ editorContainer: i
1957
1855
  }
1958
- } = this.editor, i = [];
1856
+ } = this.editor, n = [];
1959
1857
  switch (e) {
1960
1858
  case "canvas":
1961
- i.push(r.lowerCanvasEl, r.upperCanvasEl);
1859
+ n.push(r.lowerCanvasEl, r.upperCanvasEl);
1962
1860
  break;
1963
1861
  case "wrapper":
1964
- i.push(r.wrapperEl);
1862
+ n.push(r.wrapperEl);
1965
1863
  break;
1966
1864
  case "container":
1967
- i.push(n);
1865
+ n.push(i);
1968
1866
  break;
1969
1867
  default:
1970
- i.push(r.lowerCanvasEl, r.upperCanvasEl);
1868
+ n.push(r.lowerCanvasEl, r.upperCanvasEl);
1971
1869
  }
1972
- var s = t === "width" ? "width" : "height";
1870
+ var o = t === "width" ? "width" : "height";
1973
1871
  if (typeof a == "string") {
1974
- i.forEach((l) => {
1975
- l.style[s] = a;
1872
+ n.forEach((l) => {
1873
+ l.style[o] = a;
1976
1874
  });
1977
1875
  return;
1978
1876
  }
1979
1877
  var c = parseFloat(a);
1980
1878
  if (!isNaN(c)) {
1981
1879
  var u = "".concat(c, "px");
1982
- i.forEach((l) => {
1983
- l.style[s] = u;
1984
- }), r.fire("editor:display-".concat(e, "-").concat(s, "-changed"), {
1880
+ n.forEach((l) => {
1881
+ l.style[o] = u;
1882
+ }), r.fire("editor:display-".concat(e, "-").concat(o, "-changed"), {
1985
1883
  element: e,
1986
1884
  value: a
1987
1885
  });
@@ -2003,10 +1901,10 @@ class jt {
2003
1901
  withoutSave: a
2004
1902
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2005
1903
  canvas: r,
2006
- montageArea: n,
2007
- transformManager: i,
1904
+ montageArea: i,
1905
+ transformManager: n,
2008
1906
  options: {
2009
- montageAreaWidth: s,
1907
+ montageAreaWidth: o,
2010
1908
  montageAreaHeight: c
2011
1909
  }
2012
1910
  } = this.editor, u = e || r.getActiveObject();
@@ -2021,19 +1919,19 @@ class jt {
2021
1919
  message: h
2022
1920
  });
2023
1921
  }
2024
- var v = Math.min(l, N), m = Math.min(d, L);
1922
+ var v = Math.min(l, D), m = Math.min(d, L);
2025
1923
  if (t) {
2026
1924
  var {
2027
1925
  width: f,
2028
1926
  height: M
2029
- } = n, g = l / f, C = d / M, y = Math.max(g, C);
1927
+ } = i, g = l / f, C = d / M, y = Math.max(g, C);
2030
1928
  v = f * y, m = M * y;
2031
1929
  }
2032
1930
  this.setResolutionWidth(v, {
2033
1931
  withoutSave: !0
2034
1932
  }), this.setResolutionHeight(m, {
2035
1933
  withoutSave: !0
2036
- }), (l > s || d > c) && i.calculateAndApplyDefaultZoom(s, c), i.resetObject(u, {
1934
+ }), (l > o || d > c) && n.calculateAndApplyDefaultZoom(o, c), n.resetObject(u, {
2037
1935
  withoutSave: !0
2038
1936
  }), r.centerObject(u), r.renderAll(), a || this.editor.historyManager.saveState(), r.fire("editor:canvas-scaled", {
2039
1937
  width: v,
@@ -2067,13 +1965,13 @@ class jt {
2067
1965
  transformManager: a,
2068
1966
  historyManager: r,
2069
1967
  options: {
2070
- montageAreaWidth: n,
2071
- montageAreaHeight: i
1968
+ montageAreaWidth: i,
1969
+ montageAreaHeight: n
2072
1970
  }
2073
1971
  } = this.editor;
2074
- a.resetZoom(), this.setResolutionWidth(n, {
1972
+ a.resetZoom(), this.setResolutionWidth(i, {
2075
1973
  withoutSave: !0
2076
- }), this.setResolutionHeight(i, {
1974
+ }), this.setResolutionHeight(n, {
2077
1975
  withoutSave: !0
2078
1976
  }), t.renderAll(), a.resetObjects(), e || r.saveState(), t.fire("editor:default-scale-set");
2079
1977
  }
@@ -2089,10 +1987,10 @@ class jt {
2089
1987
  overlayMask: a
2090
1988
  }
2091
1989
  } = this.editor, r = e.getObjects();
2092
- return r.filter((n) => n.id !== t.id && n.id !== a.id);
1990
+ return r.filter((i) => i.id !== t.id && i.id !== a.id);
2093
1991
  }
2094
1992
  }
2095
- class yt {
1993
+ class bt {
2096
1994
  /**
2097
1995
  * @param {object} options
2098
1996
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2114,12 +2012,12 @@ class yt {
2114
2012
  var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.options.montageAreaWidth, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.options.montageAreaHeight, {
2115
2013
  width: a,
2116
2014
  height: r
2117
- } = this.editor.montageArea, n = e / a, i = t / r, s = Math.min(n, i), {
2015
+ } = this.editor.montageArea, i = e / a, n = t / r, o = Math.min(i, n), {
2118
2016
  minZoom: c,
2119
2017
  maxZoom: u,
2120
2018
  maxZoomFactor: l
2121
2019
  } = this.options;
2122
- this.minZoom = Math.min(s / l, c), this.maxZoom = Math.max(s * l, u), this.defaultZoom = s, this.setZoom(s);
2020
+ this.minZoom = Math.min(o / l, c), this.maxZoom = Math.max(o * l, u), this.defaultZoom = o, this.setZoom(o);
2123
2021
  }
2124
2022
  /**
2125
2023
  * Увеличение/уменьшение масштаба
@@ -2131,23 +2029,23 @@ class yt {
2131
2029
  * Если передавать координаты курсора, то нужно быть аккуратнее, так как юзер может выйти за пределы рабочей области
2132
2030
  */
2133
2031
  zoom() {
2134
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ft, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2032
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : jt, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2135
2033
  if (e) {
2136
2034
  var {
2137
2035
  canvas: a,
2138
2036
  minZoom: r,
2139
- maxZoom: n
2140
- } = this.editor, i = a.getZoom(), {
2141
- x: s = t.pointX,
2037
+ maxZoom: i
2038
+ } = this.editor, n = a.getZoom(), {
2039
+ x: o = t.pointX,
2142
2040
  y: c = t.pointY
2143
- } = a.getCenterPoint(), u = Number((i + Number(e)).toFixed(2));
2144
- u > n && (u = n), u < r && (u = r), a.zoomToPoint({
2145
- x: Number(s),
2041
+ } = a.getCenterPoint(), u = Number((n + Number(e)).toFixed(2));
2042
+ u > i && (u = i), u < r && (u = r), a.zoomToPoint({
2043
+ x: Number(o),
2146
2044
  y: Number(c)
2147
2045
  }, u), a.fire("editor:zoom-changed", {
2148
2046
  currentZoom: a.getZoom(),
2149
2047
  zoom: u,
2150
- pointX: s,
2048
+ pointX: o,
2151
2049
  pointY: c
2152
2050
  });
2153
2051
  }
@@ -2163,17 +2061,17 @@ class yt {
2163
2061
  minZoom: a,
2164
2062
  maxZoom: r
2165
2063
  } = this.editor, {
2166
- x: n,
2167
- y: i
2168
- } = t.getCenterPoint(), s = e;
2169
- e > r && (s = r), e < a && (s = a), t.zoomToPoint({
2170
- x: Number(n),
2171
- y: Number(i)
2172
- }, s), t.fire("editor:zoom-changed", {
2064
+ x: i,
2065
+ y: n
2066
+ } = t.getCenterPoint(), o = e;
2067
+ e > r && (o = r), e < a && (o = a), t.zoomToPoint({
2068
+ x: Number(i),
2069
+ y: Number(n)
2070
+ }, o), t.fire("editor:zoom-changed", {
2173
2071
  currentZoom: t.getZoom(),
2174
- zoom: s,
2175
- pointX: n,
2176
- pointY: i
2072
+ zoom: o,
2073
+ pointX: i,
2074
+ pointY: n
2177
2075
  });
2178
2076
  }
2179
2077
  /**
@@ -2203,16 +2101,16 @@ class yt {
2203
2101
  * @fires editor:object-rotated
2204
2102
  */
2205
2103
  rotate() {
2206
- var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Mt, {
2104
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : yt, {
2207
2105
  withoutSave: t
2208
2106
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2209
2107
  canvas: a,
2210
2108
  historyManager: r
2211
- } = this.editor, n = a.getActiveObject();
2212
- if (n) {
2213
- var i = n.angle + e;
2214
- n.rotate(i), n.setCoords(), a.renderAll(), t || r.saveState(), a.fire("editor:object-rotated", {
2215
- angle: i
2109
+ } = this.editor, i = a.getActiveObject();
2110
+ if (i) {
2111
+ var n = i.angle + e;
2112
+ i.rotate(n), i.setCoords(), a.renderAll(), t || r.saveState(), a.fire("editor:object-rotated", {
2113
+ angle: n
2216
2114
  });
2217
2115
  }
2218
2116
  }
@@ -2258,11 +2156,11 @@ class yt {
2258
2156
  withoutSave: a
2259
2157
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2260
2158
  canvas: r,
2261
- historyManager: n
2262
- } = this.editor, i = e || r.getActiveObject();
2263
- i && (i.type === "activeselection" ? i.getObjects().forEach((s) => {
2264
- s.set("opacity", t);
2265
- }) : i.set("opacity", t), r.renderAll(), a || n.saveState(), r.fire("editor:object-opacity-changed", t));
2159
+ historyManager: i
2160
+ } = this.editor, n = e || r.getActiveObject();
2161
+ n && (n.type === "activeselection" ? n.getObjects().forEach((o) => {
2162
+ o.set("opacity", t);
2163
+ }) : n.set("opacity", t), r.renderAll(), a || i.saveState(), r.fire("editor:object-opacity-changed", t));
2266
2164
  }
2267
2165
  /**
2268
2166
  * Масштабирование изображения
@@ -2282,32 +2180,32 @@ class yt {
2282
2180
  withoutSave: a,
2283
2181
  fitAsOneObject: r
2284
2182
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2285
- canvas: n,
2286
- imageManager: i,
2287
- historyManager: s
2288
- } = this.editor, c = e || n.getActiveObject();
2183
+ canvas: i,
2184
+ imageManager: n,
2185
+ historyManager: o
2186
+ } = this.editor, c = e || i.getActiveObject();
2289
2187
  if (c) {
2290
2188
  if (["activeselection"].includes(c.type) && !r) {
2291
2189
  var u = c.getObjects();
2292
- n.discardActiveObject(), u.forEach((h) => {
2293
- var v = i.calculateScaleFactor({
2190
+ i.discardActiveObject(), u.forEach((h) => {
2191
+ var v = n.calculateScaleFactor({
2294
2192
  imageObject: h,
2295
2193
  scaleType: t
2296
2194
  });
2297
- h.scale(v), n.centerObject(h);
2195
+ h.scale(v), i.centerObject(h);
2298
2196
  });
2299
- var l = new U(u, {
2300
- canvas: n
2197
+ var l = new Y(u, {
2198
+ canvas: i
2301
2199
  });
2302
- n.setActiveObject(l);
2200
+ i.setActiveObject(l);
2303
2201
  } else {
2304
- var d = i.calculateScaleFactor({
2202
+ var d = n.calculateScaleFactor({
2305
2203
  imageObject: c,
2306
2204
  scaleType: t
2307
2205
  });
2308
- c.scale(d), n.centerObject(c);
2206
+ c.scale(d), i.centerObject(c);
2309
2207
  }
2310
- n.renderAll(), a || s.saveState(), n.fire("editor:image-fitted", {
2208
+ i.renderAll(), a || o.saveState(), i.fire("editor:image-fitted", {
2311
2209
  type: t
2312
2210
  });
2313
2211
  }
@@ -2333,15 +2231,15 @@ class yt {
2333
2231
  withoutSave: a = !1
2334
2232
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2335
2233
  canvas: r,
2336
- montageArea: n,
2337
- imageManager: i,
2338
- historyManager: s,
2234
+ montageArea: i,
2235
+ imageManager: n,
2236
+ historyManager: o,
2339
2237
  options: {
2340
2238
  scaleType: c
2341
2239
  }
2342
2240
  } = this.editor, u = e || r.getActiveObject();
2343
2241
  if (!(!u || u.locked)) {
2344
- if (s.suspendHistory(), u.type !== "image" && u.format !== "svg" && (u.set({
2242
+ if (o.suspendHistory(), u.type !== "image" && u.format !== "svg" && (u.set({
2345
2243
  scaleX: 1,
2346
2244
  scaleY: 1,
2347
2245
  flipX: !1,
@@ -2356,10 +2254,10 @@ class yt {
2356
2254
  var {
2357
2255
  width: l,
2358
2256
  height: d
2359
- } = n, {
2257
+ } = i, {
2360
2258
  width: h,
2361
2259
  height: v
2362
- } = u, m = i.calculateScaleFactor({
2260
+ } = u, m = n.calculateScaleFactor({
2363
2261
  imageObject: u,
2364
2262
  scaleType: c
2365
2263
  });
@@ -2375,11 +2273,11 @@ class yt {
2375
2273
  flipX: !1,
2376
2274
  flipY: !1,
2377
2275
  angle: 0
2378
- }), r.centerObject(u), r.renderAll(), s.resumeHistory(), a || s.saveState(), r.fire("editor:object-reset");
2276
+ }), r.centerObject(u), r.renderAll(), o.resumeHistory(), a || o.saveState(), r.fire("editor:object-reset");
2379
2277
  }
2380
2278
  }
2381
2279
  }
2382
- class pt {
2280
+ class It {
2383
2281
  /**
2384
2282
  * @param {object} options
2385
2283
  * @param {ImageEditor} options.editor – экземпляр редактора
@@ -2429,15 +2327,15 @@ class pt {
2429
2327
  a.suspendHistory(), t.setCoords();
2430
2328
  var {
2431
2329
  left: r,
2432
- top: n,
2433
- width: i,
2434
- height: s
2330
+ top: i,
2331
+ width: n,
2332
+ height: o
2435
2333
  } = t.getBoundingRect();
2436
2334
  this.overlayMask.set({
2437
2335
  left: r,
2438
- top: n,
2439
- width: i,
2440
- height: s
2336
+ top: i,
2337
+ width: n,
2338
+ height: o
2441
2339
  }), e.discardActiveObject(), this.editor.layerManager.bringToFront(this.overlayMask, {
2442
2340
  withoutSave: !0
2443
2341
  }), a.resumeHistory();
@@ -2505,10 +2403,10 @@ class F {
2505
2403
  historyManager: r
2506
2404
  } = this.editor;
2507
2405
  r.suspendHistory();
2508
- var n = e || a.getActiveObject();
2509
- n && (n.type === "activeselection" ? n.getObjects().forEach((i) => {
2510
- a.bringObjectToFront(i);
2511
- }) : a.bringObjectToFront(n), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-to-front"));
2406
+ var i = e || a.getActiveObject();
2407
+ i && (i.type === "activeselection" ? i.getObjects().forEach((n) => {
2408
+ a.bringObjectToFront(n);
2409
+ }) : a.bringObjectToFront(i), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-to-front"));
2512
2410
  }
2513
2411
  /**
2514
2412
  * Поднять объект на один уровень вверх по оси Z
@@ -2525,8 +2423,8 @@ class F {
2525
2423
  historyManager: r
2526
2424
  } = this.editor;
2527
2425
  r.suspendHistory();
2528
- var n = e || a.getActiveObject();
2529
- n && (n.type === "activeselection" ? F._moveSelectionForward(a, n) : a.bringObjectForward(n), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-forward"));
2426
+ var i = e || a.getActiveObject();
2427
+ i && (i.type === "activeselection" ? F._moveSelectionForward(a, i) : a.bringObjectForward(i), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:object-bring-forward"));
2530
2428
  }
2531
2429
  /**
2532
2430
  * Отправить объект на задний план по оси Z
@@ -2541,20 +2439,20 @@ class F {
2541
2439
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2542
2440
  canvas: a,
2543
2441
  montageArea: r,
2544
- historyManager: n,
2442
+ historyManager: i,
2545
2443
  interactionBlocker: {
2546
- overlayMask: i
2444
+ overlayMask: n
2547
2445
  }
2548
2446
  } = this.editor;
2549
- n.suspendHistory();
2550
- var s = e || a.getActiveObject();
2551
- if (s) {
2552
- if (s.type === "activeselection")
2553
- for (var c = s.getObjects(), u = c.length - 1; u >= 0; u -= 1)
2447
+ i.suspendHistory();
2448
+ var o = e || a.getActiveObject();
2449
+ if (o) {
2450
+ if (o.type === "activeselection")
2451
+ for (var c = o.getObjects(), u = c.length - 1; u >= 0; u -= 1)
2554
2452
  a.sendObjectToBack(c[u]);
2555
2453
  else
2556
- a.sendObjectToBack(s);
2557
- a.sendObjectToBack(r), a.sendObjectToBack(i), a.renderAll(), n.resumeHistory(), t || n.saveState(), a.fire("editor:object-send-to-back");
2454
+ a.sendObjectToBack(o);
2455
+ a.sendObjectToBack(r), a.sendObjectToBack(n), a.renderAll(), i.resumeHistory(), t || i.saveState(), a.fire("editor:object-send-to-back");
2558
2456
  }
2559
2457
  }
2560
2458
  /**
@@ -2569,14 +2467,14 @@ class F {
2569
2467
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2570
2468
  canvas: a,
2571
2469
  montageArea: r,
2572
- historyManager: n,
2470
+ historyManager: i,
2573
2471
  interactionBlocker: {
2574
- overlayMask: i
2472
+ overlayMask: n
2575
2473
  }
2576
2474
  } = this.editor;
2577
- n.suspendHistory();
2578
- var s = e || a.getActiveObject();
2579
- s && (s.type === "activeselection" ? F._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"));
2475
+ i.suspendHistory();
2476
+ var o = e || a.getActiveObject();
2477
+ o && (o.type === "activeselection" ? F._moveSelectionBackwards(a, o) : a.sendObjectBackwards(o), a.sendObjectToBack(r), a.sendObjectToBack(n), a.renderAll(), i.resumeHistory(), t || i.saveState(), a.fire("editor:object-send-backwards"));
2580
2478
  }
2581
2479
  /**
2582
2480
  * Сдвигает выделенные объекты на один уровень вверх относительно ближайшего верхнего объекта
@@ -2586,20 +2484,20 @@ class F {
2586
2484
  * @private
2587
2485
  */
2588
2486
  static _moveSelectionForward(e, t) {
2589
- for (var a = e.getObjects(), r = t.getObjects(), n = r.map((l) => a.indexOf(l)), i = -1, s = function(d) {
2487
+ for (var a = e.getObjects(), r = t.getObjects(), i = r.map((l) => a.indexOf(l)), n = -1, o = function(d) {
2590
2488
  var h = a[d];
2591
- if (!r.includes(h) && n.some((v) => d > v))
2592
- return i = d, 1;
2593
- }, c = 0; c < a.length && !s(c); c += 1)
2489
+ if (!r.includes(h) && i.some((v) => d > v))
2490
+ return n = d, 1;
2491
+ }, c = 0; c < a.length && !o(c); c += 1)
2594
2492
  ;
2595
- if (i !== -1) {
2493
+ if (n !== -1) {
2596
2494
  var u = r.map((l) => ({
2597
2495
  obj: l,
2598
2496
  index: a.indexOf(l)
2599
2497
  })).sort((l, d) => d.index - l.index);
2600
2498
  u.forEach((l) => {
2601
2499
  var d = a.indexOf(l.obj);
2602
- d < i && (e.moveObjectTo(l.obj, i), i = d);
2500
+ d < n && (e.moveObjectTo(l.obj, n), n = d);
2603
2501
  });
2604
2502
  }
2605
2503
  }
@@ -2611,68 +2509,68 @@ class F {
2611
2509
  * @private
2612
2510
  */
2613
2511
  static _moveSelectionBackwards(e, t) {
2614
- 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)
2615
- e.moveObjectTo(r[i], n - 1);
2512
+ for (var a = e.getObjects(), r = t.getObjects(), i = Math.min(...r.map((o) => a.indexOf(o))), n = r.length - 1; n >= 0; n -= 1)
2513
+ e.moveObjectTo(r[n], i - 1);
2616
2514
  }
2617
2515
  }
2618
- var bt = ["id", "left", "top", "width", "height", "fill"], It = ["id", "left", "top", "radius", "fill"], St = ["id", "left", "top", "width", "height", "fill"];
2619
- function ye(o, e) {
2620
- var t = Object.keys(o);
2516
+ var St = ["id", "left", "top", "width", "height", "fill"], At = ["id", "left", "top", "radius", "fill"], wt = ["id", "left", "top", "width", "height", "fill"];
2517
+ function Ie(s, e) {
2518
+ var t = Object.keys(s);
2621
2519
  if (Object.getOwnPropertySymbols) {
2622
- var a = Object.getOwnPropertySymbols(o);
2520
+ var a = Object.getOwnPropertySymbols(s);
2623
2521
  e && (a = a.filter(function(r) {
2624
- return Object.getOwnPropertyDescriptor(o, r).enumerable;
2522
+ return Object.getOwnPropertyDescriptor(s, r).enumerable;
2625
2523
  })), t.push.apply(t, a);
2626
2524
  }
2627
2525
  return t;
2628
2526
  }
2629
- function Q(o) {
2527
+ function K(s) {
2630
2528
  for (var e = 1; e < arguments.length; e++) {
2631
2529
  var t = arguments[e] != null ? arguments[e] : {};
2632
- e % 2 ? ye(Object(t), !0).forEach(function(a) {
2633
- At(o, a, t[a]);
2634
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : ye(Object(t)).forEach(function(a) {
2635
- Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
2530
+ e % 2 ? Ie(Object(t), !0).forEach(function(a) {
2531
+ Ct(s, a, t[a]);
2532
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(s, Object.getOwnPropertyDescriptors(t)) : Ie(Object(t)).forEach(function(a) {
2533
+ Object.defineProperty(s, a, Object.getOwnPropertyDescriptor(t, a));
2636
2534
  });
2637
2535
  }
2638
- return o;
2536
+ return s;
2639
2537
  }
2640
- function At(o, e, t) {
2641
- return (e = wt(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
2538
+ function Ct(s, e, t) {
2539
+ return (e = Nt(e)) in s ? Object.defineProperty(s, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : s[e] = t, s;
2642
2540
  }
2643
- function wt(o) {
2644
- var e = Ct(o, "string");
2541
+ function Nt(s) {
2542
+ var e = Dt(s, "string");
2645
2543
  return typeof e == "symbol" ? e : e + "";
2646
2544
  }
2647
- function Ct(o, e) {
2648
- if (typeof o != "object" || !o) return o;
2649
- var t = o[Symbol.toPrimitive];
2545
+ function Dt(s, e) {
2546
+ if (typeof s != "object" || !s) return s;
2547
+ var t = s[Symbol.toPrimitive];
2650
2548
  if (t !== void 0) {
2651
- var a = t.call(o, e);
2549
+ var a = t.call(s, e);
2652
2550
  if (typeof a != "object") return a;
2653
2551
  throw new TypeError("@@toPrimitive must return a primitive value.");
2654
2552
  }
2655
- return (e === "string" ? String : Number)(o);
2553
+ return (e === "string" ? String : Number)(s);
2656
2554
  }
2657
- function J(o, e) {
2658
- if (o == null) return {};
2659
- var t, a, r = Dt(o, e);
2555
+ function $(s, e) {
2556
+ if (s == null) return {};
2557
+ var t, a, r = Lt(s, e);
2660
2558
  if (Object.getOwnPropertySymbols) {
2661
- var n = Object.getOwnPropertySymbols(o);
2662
- for (a = 0; a < n.length; a++) t = n[a], e.indexOf(t) === -1 && {}.propertyIsEnumerable.call(o, t) && (r[t] = o[t]);
2559
+ var i = Object.getOwnPropertySymbols(s);
2560
+ for (a = 0; a < i.length; a++) t = i[a], e.indexOf(t) === -1 && {}.propertyIsEnumerable.call(s, t) && (r[t] = s[t]);
2663
2561
  }
2664
2562
  return r;
2665
2563
  }
2666
- function Dt(o, e) {
2667
- if (o == null) return {};
2564
+ function Lt(s, e) {
2565
+ if (s == null) return {};
2668
2566
  var t = {};
2669
- for (var a in o) if ({}.hasOwnProperty.call(o, a)) {
2567
+ for (var a in s) if ({}.hasOwnProperty.call(s, a)) {
2670
2568
  if (e.indexOf(a) !== -1) continue;
2671
- t[a] = o[a];
2569
+ t[a] = s[a];
2672
2570
  }
2673
2571
  return t;
2674
2572
  }
2675
- class Nt {
2573
+ class Et {
2676
2574
  /**
2677
2575
  * @param {object} options
2678
2576
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2703,21 +2601,21 @@ class Nt {
2703
2601
  id: t = "rect-".concat(w()),
2704
2602
  left: a,
2705
2603
  top: r,
2706
- width: n = 100,
2707
- height: i = 100,
2708
- fill: s = "blue"
2709
- } = e, c = J(e, bt), {
2604
+ width: i = 100,
2605
+ height: n = 100,
2606
+ fill: o = "blue"
2607
+ } = e, c = $(e, St), {
2710
2608
  withoutSelection: u,
2711
2609
  withoutAdding: l
2712
2610
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2713
2611
  canvas: d
2714
- } = this.editor, h = new Be(Q({
2612
+ } = this.editor, h = new Ue(K({
2715
2613
  id: t,
2716
2614
  left: a,
2717
2615
  top: r,
2718
- width: n,
2719
- height: i,
2720
- fill: s
2616
+ width: i,
2617
+ height: n,
2618
+ fill: o
2721
2619
  }, c));
2722
2620
  return !a && !r && d.centerObject(h), l || (d.add(h), u || d.setActiveObject(h), d.renderAll()), h;
2723
2621
  }
@@ -2740,20 +2638,20 @@ class Nt {
2740
2638
  id: t = "circle-".concat(w()),
2741
2639
  left: a,
2742
2640
  top: r,
2743
- radius: n = 50,
2744
- fill: i = "green"
2745
- } = e, s = J(e, It), {
2641
+ radius: i = 50,
2642
+ fill: n = "green"
2643
+ } = e, o = $(e, At), {
2746
2644
  withoutSelection: c,
2747
2645
  withoutAdding: u
2748
2646
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2749
2647
  canvas: l
2750
- } = this.editor, d = new Ze(Q({
2648
+ } = this.editor, d = new Ye(K({
2751
2649
  id: t,
2752
2650
  left: a,
2753
2651
  top: r,
2754
- fill: i,
2755
- radius: n
2756
- }, s));
2652
+ fill: n,
2653
+ radius: i
2654
+ }, o));
2757
2655
  return !a && !r && l.centerObject(d), u || (l.add(d), c || l.setActiveObject(d), l.renderAll()), d;
2758
2656
  }
2759
2657
  /**
@@ -2776,49 +2674,49 @@ class Nt {
2776
2674
  id: t = "triangle-".concat(w()),
2777
2675
  left: a,
2778
2676
  top: r,
2779
- width: n = 100,
2780
- height: i = 100,
2781
- fill: s = "yellow"
2782
- } = e, c = J(e, St), {
2677
+ width: i = 100,
2678
+ height: n = 100,
2679
+ fill: o = "yellow"
2680
+ } = e, c = $(e, wt), {
2783
2681
  withoutSelection: u,
2784
2682
  withoutAdding: l
2785
2683
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
2786
2684
  canvas: d
2787
- } = this.editor, h = new ze(Q({
2685
+ } = this.editor, h = new Pe(K({
2788
2686
  id: t,
2789
2687
  left: a,
2790
2688
  top: r,
2791
- fill: s,
2792
- width: n,
2793
- height: i
2689
+ fill: o,
2690
+ width: i,
2691
+ height: n
2794
2692
  }, c));
2795
2693
  return !a && !r && d.centerObject(h), l || (d.add(h), u || d.setActiveObject(h), d.renderAll()), h;
2796
2694
  }
2797
2695
  }
2798
- function pe(o, e, t, a, r, n, i) {
2696
+ function Se(s, e, t, a, r, i, n) {
2799
2697
  try {
2800
- var s = o[n](i), c = s.value;
2698
+ var o = s[i](n), c = o.value;
2801
2699
  } catch (u) {
2802
2700
  return void t(u);
2803
2701
  }
2804
- s.done ? e(c) : Promise.resolve(c).then(a, r);
2702
+ o.done ? e(c) : Promise.resolve(c).then(a, r);
2805
2703
  }
2806
- function be(o) {
2704
+ function Ae(s) {
2807
2705
  return function() {
2808
2706
  var e = this, t = arguments;
2809
2707
  return new Promise(function(a, r) {
2810
- var n = o.apply(e, t);
2811
- function i(c) {
2812
- pe(n, a, r, i, s, "next", c);
2708
+ var i = s.apply(e, t);
2709
+ function n(c) {
2710
+ Se(i, a, r, n, o, "next", c);
2813
2711
  }
2814
- function s(c) {
2815
- pe(n, a, r, i, s, "throw", c);
2712
+ function o(c) {
2713
+ Se(i, a, r, n, o, "throw", c);
2816
2714
  }
2817
- i(void 0);
2715
+ n(void 0);
2818
2716
  });
2819
2717
  };
2820
2718
  }
2821
- class Lt {
2719
+ class Ot {
2822
2720
  /**
2823
2721
  * @param {object} options
2824
2722
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2835,7 +2733,7 @@ class Lt {
2835
2733
  */
2836
2734
  copy() {
2837
2735
  var e = this;
2838
- return be(function* () {
2736
+ return Ae(function* () {
2839
2737
  var {
2840
2738
  canvas: t
2841
2739
  } = e.editor, a = t.getActiveObject();
@@ -2857,12 +2755,12 @@ class Lt {
2857
2755
  });
2858
2756
  return;
2859
2757
  }
2860
- var n = r.toCanvasElement(), i = yield new Promise((u) => {
2861
- n.toBlob(u);
2862
- }), s = new ClipboardItem({
2863
- [i.type]: i
2758
+ var i = r.toCanvasElement(), n = yield new Promise((u) => {
2759
+ i.toBlob(u);
2760
+ }), o = new ClipboardItem({
2761
+ [n.type]: n
2864
2762
  });
2865
- yield navigator.clipboard.write([s]), t.fire("editor:object-copied", {
2763
+ yield navigator.clipboard.write([o]), t.fire("editor:object-copied", {
2866
2764
  object: r
2867
2765
  });
2868
2766
  } catch (u) {
@@ -2879,7 +2777,7 @@ class Lt {
2879
2777
  */
2880
2778
  paste() {
2881
2779
  var e = this;
2882
- return be(function* () {
2780
+ return Ae(function* () {
2883
2781
  var {
2884
2782
  canvas: t
2885
2783
  } = e.editor;
@@ -2890,7 +2788,7 @@ class Lt {
2890
2788
  left: a.left + 10,
2891
2789
  top: a.top + 10,
2892
2790
  evented: !0
2893
- }), a instanceof U ? (a.canvas = t, a.forEachObject((r) => {
2791
+ }), a instanceof Y ? (a.canvas = t, a.forEachObject((r) => {
2894
2792
  t.add(r);
2895
2793
  })) : t.add(a), t.setActiveObject(a), t.requestRenderAll(), t.fire("editor:object-pasted", {
2896
2794
  object: a
@@ -2899,7 +2797,7 @@ class Lt {
2899
2797
  })();
2900
2798
  }
2901
2799
  }
2902
- class Et {
2800
+ class Tt {
2903
2801
  /**
2904
2802
  * @param {object} options
2905
2803
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -2925,10 +2823,10 @@ class Et {
2925
2823
  withoutSave: a
2926
2824
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2927
2825
  canvas: r,
2928
- historyManager: n
2929
- } = this.editor, i = e || r.getActiveObject();
2930
- if (!(!i || i.locked)) {
2931
- var s = {
2826
+ historyManager: i
2827
+ } = this.editor, n = e || r.getActiveObject();
2828
+ if (!(!n || n.locked)) {
2829
+ var o = {
2932
2830
  lockMovementX: !0,
2933
2831
  lockMovementY: !0,
2934
2832
  lockRotation: !0,
@@ -2938,12 +2836,12 @@ class Et {
2938
2836
  lockSkewingY: !0,
2939
2837
  locked: !0
2940
2838
  };
2941
- i.set(s);
2942
- var c = !t && ["activeselection", "group"].includes(i.type);
2943
- c && i.getObjects().forEach((u) => {
2944
- u.set(s);
2945
- }), r.renderAll(), a || n.saveState(), r.fire("editor:object-locked", {
2946
- object: i
2839
+ n.set(o);
2840
+ var c = !t && ["activeselection", "group"].includes(n.type);
2841
+ c && n.getObjects().forEach((u) => {
2842
+ u.set(o);
2843
+ }), r.renderAll(), a || i.saveState(), r.fire("editor:object-locked", {
2844
+ object: n
2947
2845
  });
2948
2846
  }
2949
2847
  }
@@ -2962,9 +2860,9 @@ class Et {
2962
2860
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
2963
2861
  canvas: a,
2964
2862
  historyManager: r
2965
- } = this.editor, n = e || a.getActiveObject();
2966
- if (n) {
2967
- var i = {
2863
+ } = this.editor, i = e || a.getActiveObject();
2864
+ if (i) {
2865
+ var n = {
2968
2866
  lockMovementX: !1,
2969
2867
  lockMovementY: !1,
2970
2868
  lockRotation: !1,
@@ -2974,15 +2872,15 @@ class Et {
2974
2872
  lockSkewingY: !1,
2975
2873
  locked: !1
2976
2874
  };
2977
- n.set(i), ["activeselection", "group"].includes(n.type) && n.getObjects().forEach((s) => {
2978
- s.set(i);
2875
+ i.set(n), ["activeselection", "group"].includes(i.type) && i.getObjects().forEach((o) => {
2876
+ o.set(n);
2979
2877
  }), a.renderAll(), t || r.saveState(), a.fire("editor:object-unlocked", {
2980
- object: n
2878
+ object: i
2981
2879
  });
2982
2880
  }
2983
2881
  }
2984
2882
  }
2985
- class Ot {
2883
+ class kt {
2986
2884
  /**
2987
2885
  * @param {object} options
2988
2886
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -3009,10 +2907,10 @@ class Ot {
3009
2907
  historyManager: r
3010
2908
  } = this.editor;
3011
2909
  r.suspendHistory();
3012
- var n = e || a.getActiveObject();
3013
- if (n && n.type === "activeselection") {
3014
- var i = n.getObjects(), s = new Pe(i);
3015
- i.forEach((c) => a.remove(c)), s.set("id", "".concat(s.type, "-").concat(w())), a.add(s), a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-grouped");
2910
+ var i = e || a.getActiveObject();
2911
+ if (i && i.type === "activeselection") {
2912
+ var n = i.getObjects(), o = new He(n);
2913
+ n.forEach((c) => a.remove(c)), o.set("id", "".concat(o.type, "-").concat(w())), a.add(o), a.setActiveObject(o), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-grouped");
3016
2914
  }
3017
2915
  }
3018
2916
  /**
@@ -3031,18 +2929,18 @@ class Ot {
3031
2929
  historyManager: r
3032
2930
  } = this.editor;
3033
2931
  r.suspendHistory();
3034
- var n = e || a.getActiveObject();
3035
- if (!(!n || n.type !== "group")) {
3036
- var i = n.removeAll();
3037
- a.remove(n), i.forEach((c) => a.add(c));
3038
- var s = new U(i, {
2932
+ var i = e || a.getActiveObject();
2933
+ if (!(!i || i.type !== "group")) {
2934
+ var n = i.removeAll();
2935
+ a.remove(i), n.forEach((c) => a.add(c));
2936
+ var o = new Y(n, {
3039
2937
  canvas: a
3040
2938
  });
3041
- a.setActiveObject(s), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-ungrouped");
2939
+ a.setActiveObject(o), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-ungrouped");
3042
2940
  }
3043
2941
  }
3044
2942
  }
3045
- class Tt {
2943
+ class xt {
3046
2944
  /**
3047
2945
  * @param {object} options
3048
2946
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -3064,19 +2962,19 @@ class Tt {
3064
2962
  objectLockManager: a
3065
2963
  } = this.editor;
3066
2964
  e.discardActiveObject();
3067
- var r = t.getObjects(), n = r.some((s) => s.locked), i = r.length > 1 ? new U(t.getObjects(), {
2965
+ var r = t.getObjects(), i = r.some((o) => o.locked), n = r.length > 1 ? new Y(t.getObjects(), {
3068
2966
  canvas: e
3069
2967
  }) : r[0];
3070
- n && a.lockObject({
3071
- object: i,
2968
+ i && a.lockObject({
2969
+ object: n,
3072
2970
  skipInnerObjects: !0,
3073
2971
  withoutSave: !0
3074
- }), e.setActiveObject(i), e.requestRenderAll(), e.fire("editor:all-objects-selected", {
3075
- selected: i
2972
+ }), e.setActiveObject(n), e.requestRenderAll(), e.fire("editor:all-objects-selected", {
2973
+ selected: n
3076
2974
  });
3077
2975
  }
3078
2976
  }
3079
- class kt {
2977
+ class Bt {
3080
2978
  /**
3081
2979
  * @param {object} options
3082
2980
  * @param {ImageEditor} options.editor - экземпляр редактора с доступом к canvas
@@ -3101,17 +2999,17 @@ class kt {
3101
2999
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
3102
3000
  canvas: a,
3103
3001
  historyManager: r
3104
- } = this.editor, n = (e || a.getActiveObjects()).filter((i) => !i.locked);
3105
- n != null && n.length && (r.suspendHistory(), n.forEach((i) => {
3106
- if (i.type === "group" && i.format !== "svg") {
3107
- this.ungroup(i), this.deleteSelectedObjects();
3002
+ } = this.editor, i = (e || a.getActiveObjects()).filter((n) => !n.locked);
3003
+ i != null && i.length && (r.suspendHistory(), i.forEach((n) => {
3004
+ if (n.type === "group" && n.format !== "svg") {
3005
+ this.ungroup(n), this.deleteSelectedObjects();
3108
3006
  return;
3109
3007
  }
3110
- a.remove(i);
3008
+ a.remove(n);
3111
3009
  }), a.discardActiveObject(), a.renderAll(), r.resumeHistory(), t || r.saveState(), a.fire("editor:objects-deleted"));
3112
3010
  }
3113
3011
  }
3114
- var xt = {
3012
+ var Zt = {
3115
3013
  IMAGE_MANAGER: {
3116
3014
  /**
3117
3015
  * Некорректный Content-Type изображения
@@ -3161,8 +3059,8 @@ class V {
3161
3059
  origin: t = "ImageEditor",
3162
3060
  method: a = "Unknown Method",
3163
3061
  code: r,
3164
- data: n,
3165
- message: i
3062
+ data: i,
3063
+ message: n
3166
3064
  } = e;
3167
3065
  if (!V.isValidErrorCode(r)) {
3168
3066
  console.warn("Неизвестный код ошибки: ", {
@@ -3173,13 +3071,13 @@ class V {
3173
3071
  return;
3174
3072
  }
3175
3073
  if (r) {
3176
- var s = i || r;
3177
- console.error("".concat(t, ". ").concat(a, ". ").concat(r, ". ").concat(s), n), this.editor.canvas.fire("editor:error", {
3074
+ var o = n || r;
3075
+ console.error("".concat(t, ". ").concat(a, ". ").concat(r, ". ").concat(o), i), this.editor.canvas.fire("editor:error", {
3178
3076
  code: r,
3179
3077
  origin: t,
3180
3078
  method: a,
3181
- message: s,
3182
- data: n
3079
+ message: o,
3080
+ data: i
3183
3081
  });
3184
3082
  }
3185
3083
  }
@@ -3198,8 +3096,8 @@ class V {
3198
3096
  origin: t = "ImageEditor",
3199
3097
  method: a = "Unknown Method",
3200
3098
  code: r,
3201
- message: n,
3202
- data: i
3099
+ message: i,
3100
+ data: n
3203
3101
  } = e;
3204
3102
  if (!V.isValidErrorCode(r)) {
3205
3103
  console.warn("Неизвестный код ошибки: ", {
@@ -3209,131 +3107,65 @@ class V {
3209
3107
  });
3210
3108
  return;
3211
3109
  }
3212
- var s = n || r;
3213
- console.warn("".concat(t, ". ").concat(a, ". ").concat(r, ". ").concat(s), i), this.editor.canvas.fire("editor:warning", {
3110
+ var o = i || r;
3111
+ console.warn("".concat(t, ". ").concat(a, ". ").concat(r, ". ").concat(o), n), this.editor.canvas.fire("editor:warning", {
3214
3112
  code: r,
3215
3113
  origin: t,
3216
3114
  method: a,
3217
- message: n,
3218
- data: i
3115
+ message: i,
3116
+ data: n
3219
3117
  });
3220
3118
  }
3221
3119
  static isValidErrorCode(e) {
3222
- return e ? Object.values(xt).some((t) => Object.values(t).includes(e)) : !1;
3223
- }
3224
- }
3225
- function Ie(o, e, t, a, r, n, i) {
3226
- try {
3227
- var s = o[n](i), c = s.value;
3228
- } catch (u) {
3229
- return void t(u);
3120
+ return e ? Object.values(Zt).some((t) => Object.values(t).includes(e)) : !1;
3230
3121
  }
3231
- s.done ? e(c) : Promise.resolve(c).then(a, r);
3232
3122
  }
3233
- function Bt(o) {
3234
- return function() {
3235
- var e = this, t = arguments;
3236
- return new Promise(function(a, r) {
3237
- var n = o.apply(e, t);
3238
- function i(c) {
3239
- Ie(n, a, r, i, s, "next", c);
3240
- }
3241
- function s(c) {
3242
- Ie(n, a, r, i, s, "throw", c);
3243
- }
3244
- i(void 0);
3245
- });
3246
- };
3247
- }
3248
- class ie {
3249
- constructor(e) {
3250
- var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
3123
+ class oe {
3124
+ /**
3125
+ * Конструктор класса ImageEditor.
3126
+ * @param {string} canvasId - идентификатор канваса, в котором будет создан редактор
3127
+ * @param {IEditorOptions} options - опции и настройки редактора
3128
+ */
3129
+ constructor(e, t) {
3251
3130
  this.options = t;
3252
- var {
3253
- defaultScale: a,
3254
- minZoom: r,
3255
- maxZoom: n
3256
- } = t;
3257
- this.containerId = e, this.editorId = "".concat(e, "-").concat(w()), this.clipboard = null, this.defaultZoom = a, this.minZoom = r || vt, this.maxZoom = n || mt, this.init();
3131
+ const { defaultScale: a, minZoom: r, maxZoom: i } = t;
3132
+ this.containerId = e, this.editorId = `${e}-${w()}`, this.clipboard = null, this.defaultZoom = a, this.minZoom = r || ft, this.maxZoom = i || Mt, this.init();
3258
3133
  }
3259
3134
  init() {
3260
- var e = this;
3261
- return Bt(function* () {
3262
- var {
3263
- editorContainerWidth: t,
3264
- editorContainerHeight: a,
3265
- canvasWrapperWidth: r,
3266
- canvasWrapperHeight: n,
3135
+ return Q(this, null, function* () {
3136
+ const {
3137
+ editorContainerWidth: e,
3138
+ editorContainerHeight: t,
3139
+ canvasWrapperWidth: a,
3140
+ canvasWrapperHeight: r,
3267
3141
  canvasCSSWidth: i,
3268
- canvasCSSHeight: s,
3269
- initialImage: c,
3270
- initialStateJSON: u,
3271
- scaleType: l,
3272
- _onReadyCallback: d
3273
- } = e.options;
3274
- if (qe.apply(), e.canvas = new Ye(e.containerId, e.options), e.moduleLoader = new We(), e.workerManager = new Fe(), e.errorManager = new V({
3275
- editor: e
3276
- }), e.historyManager = new gt({
3277
- editor: e
3278
- }), e.toolbar = new ht({
3279
- editor: e
3280
- }), e.transformManager = new yt({
3281
- editor: e
3282
- }), e.canvasManager = new jt({
3283
- editor: e
3284
- }), e.imageManager = new A({
3285
- editor: e
3286
- }), e.layerManager = new F({
3287
- editor: e
3288
- }), e.shapeManager = new Nt({
3289
- editor: e
3290
- }), e.interactionBlocker = new pt({
3291
- editor: e
3292
- }), e.clipboardManager = new Lt({
3293
- editor: e
3294
- }), e.objectLockManager = new Et({
3295
- editor: e
3296
- }), e.groupingManager = new Ot({
3297
- editor: e
3298
- }), e.selectionManager = new Tt({
3299
- editor: e
3300
- }), e.deletionManager = new kt({
3301
- editor: e
3302
- }), e._createMonageArea(), e._createClippingArea(), e.listeners = new P({
3303
- editor: e,
3304
- options: e.options
3305
- }), e.canvasManager.setEditorContainerWidth(t), e.canvasManager.setEditorContainerHeight(a), e.canvasManager.setCanvasWrapperWidth(r), e.canvasManager.setCanvasWrapperHeight(n), e.canvasManager.setCanvasCSSWidth(i), e.canvasManager.setCanvasCSSHeight(s), c != null && c.source) {
3306
- var {
3307
- source: h,
3308
- scale: v = "image-".concat(l),
3309
- withoutSave: m = !0
3310
- } = c;
3311
- yield e.imageManager.importImage({
3312
- source: h,
3313
- scale: v,
3314
- withoutSave: m
3315
- });
3142
+ canvasCSSHeight: n,
3143
+ initialImage: o,
3144
+ initialStateJSON: c,
3145
+ scaleType: u,
3146
+ _onReadyCallback: l
3147
+ } = this.options;
3148
+ if (tt.apply(), this.canvas = new _e(this.containerId, this.options), this.moduleLoader = new Ve(), this.workerManager = new Ge(), this.errorManager = new V({ editor: this }), this.historyManager = new mt({ editor: this }), this.toolbar = new vt({ editor: this }), this.transformManager = new bt({ editor: this }), this.canvasManager = new pt({ editor: this }), this.imageManager = new A({ editor: this }), this.layerManager = new F({ editor: this }), this.shapeManager = new Et({ editor: this }), this.interactionBlocker = new It({ editor: this }), this.clipboardManager = new Ot({ editor: this }), this.objectLockManager = new Tt({ editor: this }), this.groupingManager = new kt({ editor: this }), this.selectionManager = new xt({ editor: this }), this.deletionManager = new Bt({ editor: this }), this._createMonageArea(), this._createClippingArea(), this.listeners = new U({ 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), o != null && o.source) {
3149
+ const {
3150
+ source: d,
3151
+ scale: h = `image-${u}`,
3152
+ withoutSave: v = !0
3153
+ } = o;
3154
+ yield this.imageManager.importImage({ source: d, scale: h, withoutSave: v });
3316
3155
  } else
3317
- e.canvasManager.setDefaultScale({
3318
- withoutSave: !0
3319
- });
3320
- u && e.historyManager.loadStateFromFullState(u), e.historyManager.saveState(), console.log("editor:ready"), e.canvas.fire("editor:ready", e), typeof d == "function" && d(e);
3321
- })();
3156
+ this.canvasManager.setDefaultScale({ withoutSave: !0 });
3157
+ c && this.historyManager.loadStateFromFullState(c), this.historyManager.saveState(), console.log("editor:ready"), this.canvas.fire("editor:ready", this), typeof l == "function" && l(this);
3158
+ });
3322
3159
  }
3323
- /**
3324
- * Создаёт монтажную область
3325
- * @private
3326
- * @returns {void}
3327
- */
3328
3160
  _createMonageArea() {
3329
- var {
3161
+ const {
3330
3162
  montageAreaWidth: e,
3331
3163
  montageAreaHeight: t
3332
3164
  } = this.options;
3333
3165
  this.montageArea = this.shapeManager.addRectangle({
3334
3166
  width: e,
3335
3167
  height: t,
3336
- fill: ie._createMosaicPattern(),
3168
+ fill: oe._createMosaicPattern(),
3337
3169
  stroke: null,
3338
3170
  strokeWidth: 0,
3339
3171
  selectable: !1,
@@ -3345,17 +3177,10 @@ class ie {
3345
3177
  originY: "center",
3346
3178
  objectCaching: !1,
3347
3179
  noScaleCache: !0
3348
- }, {
3349
- withoutSelection: !0
3350
- });
3180
+ }, { withoutSelection: !0 });
3351
3181
  }
3352
- /**
3353
- * Создаёт область клиппинга
3354
- * @private
3355
- * @returns {void}
3356
- */
3357
3182
  _createClippingArea() {
3358
- var {
3183
+ const {
3359
3184
  montageAreaWidth: e,
3360
3185
  montageAreaHeight: t
3361
3186
  } = this.options;
@@ -3364,7 +3189,6 @@ class ie {
3364
3189
  width: e,
3365
3190
  height: t,
3366
3191
  stroke: null,
3367
- fill: null,
3368
3192
  strokeWidth: 0,
3369
3193
  hasBorders: !1,
3370
3194
  hasControls: !1,
@@ -3372,32 +3196,26 @@ class ie {
3372
3196
  evented: !1,
3373
3197
  originX: "center",
3374
3198
  originY: "center"
3375
- }, {
3376
- withoutSelection: !0,
3377
- withoutAdding: !0
3378
- });
3199
+ }, { withoutSelection: !0, withoutAdding: !0 });
3379
3200
  }
3380
- /**
3381
- * Метод для удаления редактора и всех слушателей.
3382
- */
3383
3201
  destroy() {
3384
3202
  this.listeners.destroy(), this.toolbar.destroy(), this.canvas.dispose(), this.workerManager.worker.terminate(), this.imageManager.revokeBlobUrls();
3385
3203
  }
3386
3204
  /**
3387
3205
  * Создает паттерн мозаики.
3388
- * @returns {object} паттерн мозаики
3206
+ * @returns {Pattern} паттерн мозаики
3389
3207
  */
3390
3208
  static _createMosaicPattern() {
3391
- var e = document.createElement("canvas");
3209
+ const e = document.createElement("canvas");
3392
3210
  e.width = 20, e.height = 20;
3393
- var t = e.getContext("2d");
3394
- return t.fillStyle = "#ddd", t.fillRect(0, 0, 40, 40), t.fillStyle = "#ccc", t.fillRect(0, 0, 10, 10), t.fillRect(10, 10, 10, 10), new Ue({
3211
+ const t = e.getContext("2d");
3212
+ return t.fillStyle = "#ddd", t.fillRect(0, 0, 40, 40), t.fillStyle = "#ccc", t.fillRect(0, 0, 10, 10), t.fillRect(10, 10, 10, 10), new Re({
3395
3213
  source: e,
3396
3214
  repeat: "repeat"
3397
3215
  });
3398
3216
  }
3399
3217
  }
3400
- const Zt = {
3218
+ const zt = {
3401
3219
  // Cохраняют ли объекты свой текущий порядок (z-index) при выделении
3402
3220
  preserveObjectStacking: !0,
3403
3221
  // Возможность взаимодействия с объектом за пределами монтажной области
@@ -3431,7 +3249,13 @@ const Zt = {
3431
3249
  /**
3432
3250
  * Массив допустимых форматов изображений для загрузки в редактор.
3433
3251
  */
3434
- acceptContentTypes: ["image/png", "image/jpeg", "image/jpg", "image/svg+xml", "image/webp"],
3252
+ acceptContentTypes: [
3253
+ "image/png",
3254
+ "image/jpeg",
3255
+ "image/jpg",
3256
+ "image/svg+xml",
3257
+ "image/webp"
3258
+ ],
3435
3259
  // Показывать панель инструментов для выделенного объекта
3436
3260
  showToolbar: !0,
3437
3261
  // Настройки панели инструментов выделенного объекта.
@@ -3442,28 +3266,36 @@ const Zt = {
3442
3266
  name: "Разблокировать",
3443
3267
  handle: "unlock"
3444
3268
  }],
3445
- actions: [{
3446
- name: "Создать копию",
3447
- handle: "copyPaste"
3448
- }, {
3449
- name: "Заблокировать",
3450
- handle: "lock"
3451
- }, {
3452
- name: "На передний план",
3453
- handle: "bringToFront"
3454
- }, {
3455
- name: "На задний план",
3456
- handle: "sendToBack"
3457
- }, {
3458
- name: "На один уровень вверх",
3459
- handle: "bringForward"
3460
- }, {
3461
- name: "На один уровень вниз",
3462
- handle: "sendBackwards"
3463
- }, {
3464
- name: "Удалить",
3465
- handle: "delete"
3466
- }]
3269
+ actions: [
3270
+ {
3271
+ name: "Создать копию",
3272
+ handle: "copyPaste"
3273
+ },
3274
+ {
3275
+ name: "Заблокировать",
3276
+ handle: "lock"
3277
+ },
3278
+ {
3279
+ name: "На передний план",
3280
+ handle: "bringToFront"
3281
+ },
3282
+ {
3283
+ name: "На задний план",
3284
+ handle: "sendToBack"
3285
+ },
3286
+ {
3287
+ name: "На один уровень вверх",
3288
+ handle: "bringForward"
3289
+ },
3290
+ {
3291
+ name: "На один уровень вниз",
3292
+ handle: "sendBackwards"
3293
+ },
3294
+ {
3295
+ name: "Удалить",
3296
+ handle: "delete"
3297
+ }
3298
+ ]
3467
3299
  },
3468
3300
  // Можно передать JSON объект в виде строки для инициализации редактора
3469
3301
  initialStateJSON: null,
@@ -3508,56 +3340,18 @@ const Zt = {
3508
3340
  // Сброс параметров объекта по двойному клику
3509
3341
  resetObjectFitByDoubleClick: !0
3510
3342
  };
3511
- function Se(o, e) {
3512
- var t = Object.keys(o);
3513
- if (Object.getOwnPropertySymbols) {
3514
- var a = Object.getOwnPropertySymbols(o);
3515
- e && (a = a.filter(function(r) {
3516
- return Object.getOwnPropertyDescriptor(o, r).enumerable;
3517
- })), t.push.apply(t, a);
3518
- }
3519
- return t;
3520
- }
3521
- function Ae(o) {
3522
- for (var e = 1; e < arguments.length; e++) {
3523
- var t = arguments[e] != null ? arguments[e] : {};
3524
- e % 2 ? Se(Object(t), !0).forEach(function(a) {
3525
- zt(o, a, t[a]);
3526
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : Se(Object(t)).forEach(function(a) {
3527
- Object.defineProperty(o, a, Object.getOwnPropertyDescriptor(t, a));
3528
- });
3529
- }
3530
- return o;
3531
- }
3532
- function zt(o, e, t) {
3533
- return (e = Pt(e)) in o ? Object.defineProperty(o, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : o[e] = t, o;
3534
- }
3535
- function Pt(o) {
3536
- var e = Ut(o, "string");
3537
- return typeof e == "symbol" ? e : e + "";
3538
- }
3539
- function Ut(o, e) {
3540
- if (typeof o != "object" || !o) return o;
3541
- var t = o[Symbol.toPrimitive];
3542
- if (t !== void 0) {
3543
- var a = t.call(o, e);
3544
- if (typeof a != "object") return a;
3545
- throw new TypeError("@@toPrimitive must return a primitive value.");
3546
- }
3547
- return (e === "string" ? String : Number)(o);
3548
- }
3549
- function _t(o) {
3550
- var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, t = Ae(Ae({}, Zt), e), a = document.getElementById(o);
3343
+ function Ht(s, e = {}) {
3344
+ const t = X(X({}, zt), e), a = document.getElementById(s);
3551
3345
  if (!a)
3552
- return Promise.reject(new Error('Контейнер с ID "'.concat(o, '" не найден.')));
3553
- var r = document.createElement("canvas");
3554
- return r.id = "".concat(o, "-canvas"), a.appendChild(r), t.editorContainer = a, new Promise((n) => {
3555
- t._onReadyCallback = n;
3556
- var i = new ie(r.id, t);
3557
- window[o] = i;
3346
+ return Promise.reject(new Error(`Контейнер с ID "${s}" не найден.`));
3347
+ const r = document.createElement("canvas");
3348
+ return r.id = `${s}-canvas`, a.appendChild(r), t.editorContainer = a, new Promise((i) => {
3349
+ t._onReadyCallback = i;
3350
+ const n = new oe(r.id, t);
3351
+ window[s] = n;
3558
3352
  });
3559
3353
  }
3560
3354
  export {
3561
- _t as default
3355
+ Ht as default
3562
3356
  };
3563
- //# sourceMappingURL=main.js.map
3357
+ //# sourceMappingURL=main.map