@anu3ev/fabric-image-editor 0.1.58 → 0.1.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/main.js +74 -75
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -2,7 +2,7 @@ var fe = Object.defineProperty, je = Object.defineProperties;
2
2
  var be = Object.getOwnPropertyDescriptors;
3
3
  var H = Object.getOwnPropertySymbols;
4
4
  var ce = Object.prototype.hasOwnProperty, de = Object.prototype.propertyIsEnumerable;
5
- var re = (c, e, t) => e in c ? fe(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t, y = (c, e) => {
5
+ var re = (c, e, t) => e in c ? fe(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t, p = (c, e) => {
6
6
  for (var t in e || (e = {}))
7
7
  ce.call(e, t) && re(c, t, e[t]);
8
8
  if (H)
@@ -35,7 +35,7 @@ var I = (c, e, t) => new Promise((s, n) => {
35
35
  }, o = (d) => d.done ? s(d.value) : Promise.resolve(d.value).then(i, a);
36
36
  o((t = t.apply(c, e)).next());
37
37
  });
38
- import { ActiveSelection as v, util as R, controlsUtils as ye, InteractiveFabricObject as pe, loadSVGFromURL as Ie, FabricImage as Z, Point as _, Rect as ve, Circle as Ae, Triangle as Se, Group as X, Canvas as Ce, Pattern as Ne } from "fabric";
38
+ import { ActiveSelection as v, util as R, controlsUtils as pe, InteractiveFabricObject as ye, loadSVGFromURL as Ie, FabricImage as Z, Point as _, Rect as ve, Circle as Ae, Triangle as Se, Group as X, Canvas as Ce, Pattern as Ne } from "fabric";
39
39
  import { create as De } from "jsondiffpatch";
40
40
  import Le from "diff-match-patch";
41
41
  var we = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", L = function() {
@@ -468,7 +468,7 @@ const Re = {
468
468
  };
469
469
  class He {
470
470
  static apply() {
471
- const e = ye.createObjectDefaultControls();
471
+ const e = pe.createObjectDefaultControls();
472
472
  Object.entries(Re).forEach(([t, s]) => {
473
473
  Object.assign(e[t], {
474
474
  render: s.render,
@@ -480,7 +480,7 @@ class He {
480
480
  var l;
481
481
  (l = a.target.canvas) == null || l.setCursor("grabbing");
482
482
  });
483
- }), pe.ownDefaults.controls = e;
483
+ }), ye.ownDefaults.controls = e;
484
484
  }
485
485
  }
486
486
  const Ye = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi44NzUgMi41YS42MjUuNjI1IDAgMCAwLS42MjUuNjI0VjYuMjVIMy4xMjVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2MTBjMCAuMzQ1LjI4LjYyNS42MjUuNjI1aDEwYy4zNDUgMCAuNjI1LS4yOC42MjUtLjYyNXYtMy4xMjZoMy4xMjVjLjM0NSAwIC42MjUtLjI4LjYyNS0uNjI1di0xMGEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTEwWm02Ljg3NSAxMGgyLjVWMy43NUg3LjV2Mi41aDUuNjI1Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NS42MjRabS0xMCAzLjc1VjcuNWg4Ljc1djguNzVIMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", We = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDcuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDMuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjVabTEzLjc1IDBIMy43NXY4Ljc1aDEyLjVWNy41WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMS44NzVhMi4xODggMi4xODggMCAwIDAtMi4xODggMi4xODh2Mi44MTJhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyYTMuNDM3IDMuNDM3IDAgMSAxIDYuODc1IDB2Mi44MTNhLjYyNS42MjUgMCAxIDEtMS4yNSAwVjQuMDYyQTIuMTg4IDIuMTg4IDAgMCAwIDEwIDEuODc2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDEyLjgxM2EuOTM3LjkzNyAwIDEgMCAwLTEuODc1LjkzNy45MzcgMCAwIDAgMCAxLjg3NFoiLz48L3N2Zz4=", _e = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE2LjI1IDYuMjVINy41VjQuMzc1YTIuNSAyLjUgMCAwIDEgMi41LTIuNWMxLjIgMCAyLjI4MS44NiAyLjUxMiAyYS42MjUuNjI1IDAgMCAwIDEuMjI2LS4yNWMtLjM1NC0xLjczOC0xLjkyNS0zLTMuNzM4LTNhMy43NTQgMy43NTQgMCAwIDAtMy43NSAzLjc1VjYuMjVoLTIuNUExLjI1IDEuMjUgMCAwIDAgMi41IDcuNXY4Ljc1YTEuMjUgMS4yNSAwIDAgMCAxLjI1IDEuMjVoMTIuNWExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjcuNWExLjI1IDEuMjUgMCAwIDAtMS4yNS0xLjI1Wm0wIDEwSDMuNzVWNy41aDEyLjV2OC43NVptLTUuMzEzLTQuMzc1YS45MzcuOTM3IDAgMSAxLTEuODc0IDAgLjkzNy45MzcgMCAwIDEgMS44NzQgMFoiLz48L3N2Zz4K", Pe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuNSA4LjEyNSAxMCAxMi41bDcuNS00LjM3NUwxMCAzLjc1IDIuNSA4LjEyNVoiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjY4NSAzLjIxYS42MjUuNjI1IDAgMCAxIC42MyAwbDcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOGw3LjUtNC4zNzVaTTMuNzQgOC4xMjUgMTAgMTEuNzc2bDYuMjYtMy42NTFMMTAgNC40NzQgMy43NCA4LjEyNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA5LjQ2YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDExLjc3NmwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA5LjQ2Wm0tMS42NiAyLjQxNUwxMCAxNS41MjZsNi4yNi0zLjY1MS0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNi0xLjk3NSAxLjE1MVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", Fe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMy4yMWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDguMTI1IDEwIDExLjc3Nmw2LjI2LTMuNjUxTDEwIDQuNDc0IDMuNzQgOC4xMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjcxNCAxMCAxMCAxMi41bDQuMjg2LTIuNSAzLjIxNCAxLjg3NUwxMCAxNi4yNWwtNy41LTQuMzc1TDUuNzE0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDkuNDZhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgMTEuNzc2bDMuOTctMi4zMTZhLjYyNS42MjUgMCAwIDEgLjYzIDBsMy4yMTUgMS44NzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhMNS40IDkuNDZabS0xLjY2IDIuNDE1TDEwIDE1LjUyNmw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2LTEuOTc1IDEuMTUxWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", Ve = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIuNSA2LjI1IDcuNSA0LjM3NSA3LjUtNC4zNzVMMTAgMS44NzUgMi41IDYuMjVaIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOS42ODUgMS4zMzVhLjYyNS42MjUgMCAwIDEgLjYzIDBsNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4bDcuNS00LjM3NVpNMy43NCA2LjI1IDEwIDkuOTAxbDYuMjYtMy42NTFMMTAgMi41OTkgMy43NCA2LjI1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS40IDExLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCAxMy42NTFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgMTEuMzM1Wk0zLjc0IDEzLjc1IDEwIDE3LjQwMWw2LjI2LTMuNjUxLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTMuNzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgNy41ODVhLjYyNS42MjUgMCAwIDEgLjYzIDBMMTAgOS45MDFsMy45Ny0yLjMxNmEuNjI1LjYyNSAwIDAgMSAuNjMgMGwzLjIxNSAxLjg3NWEuNjI1LjYyNSAwIDAgMSAwIDEuMDhsLTcuNSA0LjM3NWEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtNy41LTQuMzc1YS42MjUuNjI1IDAgMCAxIDAtMS4wOEw1LjQgNy41ODVaTTMuNzQgMTAgMTAgMTMuNjUxIDE2LjI2IDEwbC0xLjk3NC0xLjE1MS0zLjk3MSAyLjMxNmEuNjI1LjYyNSAwIDAgMS0uNjMgMGwtMy45Ny0yLjMxNkwzLjc0IDEwWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+", Ge = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS45NiAxMy40MzVhLjYyNS42MjUgMCAwIDEgLjg1NS0uMjI1TDEwIDE3LjQwMWw3LjE4NS00LjE5YS42MjUuNjI1IDAgMCAxIC42MyAxLjA3OWwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEtLjIyNS0uODU1Wk05LjY4NSAxLjMzNWEuNjI1LjYyNSAwIDAgMSAuNjMgMGw3LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEgMCAxLjA4bC03LjUgNC4zNzVhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTcuNS00LjM3NWEuNjI1LjYyNSAwIDAgMSAwLTEuMDhsNy41LTQuMzc1Wk0zLjc0IDYuMjUgMTAgOS45MDFsNi4yNi0zLjY1MUwxMCAyLjU5OSAzLjc0IDYuMjVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjcxNCAxMS44NzUgNC4yODYgMi41IDQuMjg2LTIuNUwxNy41IDEzLjc1IDEwIDE4LjEyNSAyLjUgMTMuNzVsMy4yMTQtMS44NzVaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQgMTEuMzM1YS42MjUuNjI1IDAgMCAxIC42MyAwTDEwIDEzLjY1MWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCAxMS4zMzVaTTMuNzQgMTMuNzUgMTAgMTcuNDAxbDYuMjYtMy42NTEtMS45NzQtMS4xNTEtMy45NzEgMi4zMTZhLjYyNS42MjUgMCAwIDEtLjYzIDBsLTMuOTctMi4zMTZMMy43NCAxMy43NVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNCA3LjU4NWEuNjI1LjYyNSAwIDAgMSAuNjMgMEwxMCA5LjkwMWwzLjk3LTIuMzE2YS42MjUuNjI1IDAgMCAxIC42MyAwbDMuMjE1IDEuODc1YS42MjUuNjI1IDAgMCAxIDAgMS4wOGwtNy41IDQuMzc1YS42MjUuNjI1IDAgMCAxLS42MyAwbC03LjUtNC4zNzVhLjYyNS42MjUgMCAwIDEgMC0xLjA4TDUuNCA3LjU4NVpNMy43NCAxMCAxMCAxMy42NTEgMTYuMjYgMTBsLTEuOTc0LTEuMTUxLTMuOTcxIDIuMzE2YS42MjUuNjI1IDAgMCAxLS42MyAwbC0zLjk3LTIuMzE2TDMuNzQgMTBaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=", Xe = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0VDNEU0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xMjUgMS4yNUExLjg3NSAxLjg3NSAwIDAgMCA2LjI1IDMuMTI1di42MjVIMy4xMjVhLjYyNS42MjUgMCAwIDAgMCAxLjI1aC42MjV2MTEuMjVBMS4yNSAxLjI1IDAgMCAwIDUgMTcuNWgxMGExLjI1IDEuMjUgMCAwIDAgMS4yNS0xLjI1VjVoLjYyNWEuNjI1LjYyNSAwIDAgMCAwLTEuMjVIMTMuNzV2LS42MjVhMS44NzUgMS44NzUgMCAwIDAtMS44NzUtMS44NzVoLTMuNzVabTQuMzc1IDIuNXYtLjYyNWEuNjI1LjYyNSAwIDAgMC0uNjI1LS42MjVoLTMuNzVhLjYyNS42MjUgMCAwIDAtLjYyNS42MjV2LjYyNWg1Wk01IDE2LjI1VjVoMTB2MTEuMjVINVpNOC4xMjUgNy41Yy4zNDUgMCAuNjI1LjI4LjYyNS42MjV2NWEuNjI1LjYyNSAwIDEgMS0xLjI1IDB2LTVjMC0uMzQ1LjI4LS42MjUuNjI1LS42MjVabTQuMzc1IDUuNjI1di01YS42MjUuNjI1IDAgMCAwLTEuMjUgMHY1YS42MjUuNjI1IDAgMSAwIDEuMjUgMFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==", U = {
@@ -561,7 +561,9 @@ const Ye = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj
561
561
  },
562
562
  handlers: {
563
563
  copyPaste: (c) => I(void 0, null, function* () {
564
- yield c.clipboardManager.copy(), yield c.clipboardManager.paste();
564
+ yield c.clipboardManager.copy(), yield c.clipboardManager.paste(), c.clipboardManager.clipboard && c.canvas.fire("editor:object-duplicated", {
565
+ object: c.clipboardManager.clipboard
566
+ });
565
567
  }),
566
568
  delete: (c) => {
567
569
  c.deletionManager.deleteSelectedObjects();
@@ -593,11 +595,11 @@ class Qe {
593
595
  _initToolbar() {
594
596
  if (!this.options.showToolbar) return;
595
597
  const e = this.options.toolbar || {};
596
- this.config = le(y(y({}, U), e), {
597
- style: y(y({}, U.style), e.style || {}),
598
- btnStyle: y(y({}, U.btnStyle), e.btnStyle || {}),
599
- icons: y(y({}, U.icons), e.icons || {}),
600
- handlers: y(y({}, U.handlers), e.handlers || {})
598
+ this.config = le(p(p({}, U), e), {
599
+ style: p(p({}, U.style), e.style || {}),
600
+ btnStyle: p(p({}, U.btnStyle), e.btnStyle || {}),
601
+ icons: p(p({}, U.icons), e.icons || {}),
602
+ handlers: p(p({}, U.handlers), e.handlers || {})
601
603
  }), this.currentTarget = null, this.currentLocked = !1, this.isTransforming = !1, this._onMouseDown = this._handleMouseDown.bind(this), this._onObjectMoving = this._startTransform.bind(this), this._onObjectScaling = this._startTransform.bind(this), this._onObjectRotating = this._startTransform.bind(this), this._onMouseUp = this._endTransform.bind(this), this._onObjectModified = this._endTransform.bind(this), this._onSelectionChange = this._updateToolbar.bind(this), this._onSelectionClear = () => {
602
604
  this.el.style.display = "none";
603
605
  }, this._createDOM(), this._bindEvents();
@@ -1052,14 +1054,14 @@ class D {
1052
1054
  o.setCoords();
1053
1055
  const { left: g, top: u, width: m, height: M } = o.getBoundingRect(), f = yield a.clone(["id", "format", "locked"]);
1054
1056
  ["image/jpg", "image/jpeg"].includes(l) && (f.backgroundColor = "#ffffff");
1055
- const j = f.getObjects().find((p) => p.id === o.id);
1057
+ const j = f.getObjects().find((y) => y.id === o.id);
1056
1058
  j && (j.visible = !1), f.viewportTransform = [1, 0, 0, 1, -g, -u], f.setDimensions({ width: m, height: M }, { backstoreOnly: !0 }), f.renderAll();
1057
- const A = f.getObjects().filter((p) => p.format).every((p) => p.format === "svg");
1059
+ const A = f.getObjects().filter((y) => y.format).every((y) => y.format === "svg");
1058
1060
  if (h === "svg" && A) {
1059
- const p = f.toSVG();
1061
+ const y = f.toSVG();
1060
1062
  f.dispose();
1061
1063
  const C = {
1062
- image: D._exportSVGStringAsFile(p, {
1064
+ image: D._exportSVGStringAsFile(y, {
1063
1065
  exportAsBase64: n,
1064
1066
  exportAsBlob: i,
1065
1067
  fileName: t
@@ -1070,19 +1072,19 @@ class D {
1070
1072
  };
1071
1073
  return a.fire("editor:canvas-exported", C), C;
1072
1074
  }
1073
- const b = yield new Promise((p, k) => {
1075
+ const b = yield new Promise((y, k) => {
1074
1076
  f.getElement().toBlob((C) => {
1075
- C ? p(C) : k(new Error("Failed to create Blob from canvas"));
1077
+ C ? y(C) : k(new Error("Failed to create Blob from canvas"));
1076
1078
  });
1077
1079
  });
1078
1080
  if (f.dispose(), i) {
1079
- const p = {
1081
+ const y = {
1080
1082
  image: b,
1081
1083
  format: h,
1082
1084
  contentType: l,
1083
1085
  fileName: t
1084
1086
  };
1085
- return a.fire("editor:canvas-exported", p), p;
1087
+ return a.fire("editor:canvas-exported", y), y;
1086
1088
  }
1087
1089
  const S = yield createImageBitmap(b), w = yield d.post(
1088
1090
  "toDataURL",
@@ -1113,13 +1115,13 @@ class D {
1113
1115
  return a.fire("editor:canvas-exported", ae), ae;
1114
1116
  }
1115
1117
  if (n) {
1116
- const p = {
1118
+ const y = {
1117
1119
  image: w,
1118
1120
  format: h,
1119
1121
  contentType: l,
1120
1122
  fileName: t
1121
1123
  };
1122
- return a.fire("editor:canvas-exported", p), p;
1124
+ return a.fire("editor:canvas-exported", y), y;
1123
1125
  }
1124
1126
  const E = h === "svg" && !A ? t.replace(/\.[^/.]+$/, ".png") : t, ie = {
1125
1127
  image: new File([b], E, { type: l }),
@@ -2177,7 +2179,7 @@ class it {
2177
2179
  "height",
2178
2180
  "fill"
2179
2181
  ]);
2180
- const { canvas: g } = this.editor, u = new ve(y({
2182
+ const { canvas: g } = this.editor, u = new ve(p({
2181
2183
  id: e,
2182
2184
  left: t,
2183
2185
  top: s,
@@ -2217,7 +2219,7 @@ class it {
2217
2219
  "radius",
2218
2220
  "fill"
2219
2221
  ]);
2220
- const { canvas: h } = this.editor, g = new Ae(y({
2222
+ const { canvas: h } = this.editor, g = new Ae(p({
2221
2223
  id: e,
2222
2224
  left: t,
2223
2225
  top: s,
@@ -2259,7 +2261,7 @@ class it {
2259
2261
  "height",
2260
2262
  "fill"
2261
2263
  ]);
2262
- const { canvas: g } = this.editor, u = new Se(y({
2264
+ const { canvas: g } = this.editor, u = new Se(p({
2263
2265
  id: e,
2264
2266
  left: t,
2265
2267
  top: s,
@@ -2283,59 +2285,56 @@ class at {
2283
2285
  * @fires editor:object-copied
2284
2286
  */
2285
2287
  copy() {
2286
- const { canvas: e, errorManager: t } = this.editor, s = e.getActiveObject();
2287
- if (!s) return;
2288
- if (typeof ClipboardItem == "undefined" || !navigator.clipboard) {
2289
- t.emitWarning({
2290
- origin: "ClipboardManager",
2291
- method: "copy",
2292
- code: "CLIPBOARD_NOT_SUPPORTED",
2293
- // eslint-disable-next-line max-len
2294
- message: "ClipboardManager. navigator.clipboard не поддерживается в этом браузере или отсутствует соединение по HTTPS-протоколу."
2295
- }), this._cloneAndFire(e, s);
2296
- return;
2297
- }
2298
- if (s.type !== "image") {
2299
- const g = `application/image-editor:${JSON.stringify(s.toObject(["format"]))}`;
2300
- navigator.clipboard.writeText(g).catch((u) => {
2288
+ return I(this, null, function* () {
2289
+ const { canvas: e, errorManager: t } = this.editor, s = e.getActiveObject();
2290
+ if (!s) return;
2291
+ try {
2292
+ const g = yield s.clone(["format"]);
2293
+ this.clipboard = g, e.fire("editor:object-copied", { object: g });
2294
+ } catch (g) {
2295
+ t.emitError({
2296
+ origin: "ClipboardManager",
2297
+ method: "copy",
2298
+ code: "CLONE_FAILED",
2299
+ message: "Ошибка клонирования объекта",
2300
+ data: g
2301
+ });
2302
+ return;
2303
+ }
2304
+ if (typeof ClipboardItem == "undefined" || !navigator.clipboard) {
2301
2305
  t.emitWarning({
2302
2306
  origin: "ClipboardManager",
2303
2307
  method: "copy",
2304
- code: "CLIPBOARD_WRITE_TEXT_FAILED",
2305
- message: `Ошибка записи текстового объекта в буфер обмена: ${u.message}`,
2306
- data: u
2308
+ code: "CLIPBOARD_NOT_SUPPORTED",
2309
+ // eslint-disable-next-line max-len
2310
+ message: "ClipboardManager. navigator.clipboard не поддерживается в этом браузере или отсутствует соединение по HTTPS-протоколу."
2311
+ });
2312
+ return;
2313
+ }
2314
+ if (s.type !== "image") {
2315
+ const g = `application/image-editor:${JSON.stringify(s.toObject(["format"]))}`;
2316
+ navigator.clipboard.writeText(g).catch((u) => {
2317
+ t.emitWarning({
2318
+ origin: "ClipboardManager",
2319
+ method: "copy",
2320
+ code: "CLIPBOARD_WRITE_TEXT_FAILED",
2321
+ message: `Ошибка записи текстового объекта в буфер обмена: ${u.message}`,
2322
+ data: u
2323
+ });
2324
+ });
2325
+ return;
2326
+ }
2327
+ const i = s.toCanvasElement().toDataURL(), a = i.slice(5).split(";")[0], o = i.split(",")[1], d = atob(o), r = new Uint8Array(d.length);
2328
+ for (let g = 0; g < d.length; g += 1)
2329
+ r[g] = d.charCodeAt(g);
2330
+ const l = new Blob([r.buffer], { type: a }), h = new ClipboardItem({ [a]: l });
2331
+ navigator.clipboard.write([h]).catch((g) => {
2332
+ t.emitWarning({
2333
+ origin: "ClipboardManager",
2334
+ method: "copy",
2335
+ code: "CLIPBOARD_WRITE_IMAGE_FAILED",
2336
+ message: `Ошибка записи изображения в буфер обмена: ${g.message}`
2307
2337
  });
2308
- }), this._cloneAndFire(e, s);
2309
- return;
2310
- }
2311
- const i = s.toCanvasElement().toDataURL(), a = i.slice(5).split(";")[0], o = i.split(",")[1], d = atob(o), r = new Uint8Array(d.length);
2312
- for (let g = 0; g < d.length; g += 1)
2313
- r[g] = d.charCodeAt(g);
2314
- const l = new Blob([r.buffer], { type: a }), h = new ClipboardItem({ [a]: l });
2315
- navigator.clipboard.write([h]).catch((g) => {
2316
- t.emitWarning({
2317
- origin: "ClipboardManager",
2318
- method: "copy",
2319
- code: "CLIPBOARD_WRITE_IMAGE_FAILED",
2320
- message: `Ошибка записи изображения в буфер обмена: ${g.message}`
2321
- });
2322
- }), this._cloneAndFire(e, s);
2323
- }
2324
- /**
2325
- * Клонирует объект и вызывает событие 'editor:object-copied'.
2326
- * @param canvas - экземпляр canvas
2327
- * @param object - активный объект
2328
- */
2329
- _cloneAndFire(e, t) {
2330
- t.clone(["format"]).then((s) => {
2331
- this.clipboard = s, e.fire("editor:object-copied", { object: s });
2332
- }).catch((s) => {
2333
- this.editor.errorManager.emitError({
2334
- origin: "ClipboardManager",
2335
- method: "_cloneAndFire",
2336
- code: "CLONE_FAILED",
2337
- message: "Ошибка клонирования объекта",
2338
- data: s
2339
2338
  });
2340
2339
  });
2341
2340
  }
@@ -2651,7 +2650,7 @@ class V {
2651
2650
  message: a,
2652
2651
  data: n
2653
2652
  };
2654
- this._buffer.push(y({
2653
+ this._buffer.push(p({
2655
2654
  type: "editor:error"
2656
2655
  }, o)), this.editor.canvas.fire("editor:error", o);
2657
2656
  }
@@ -2679,7 +2678,7 @@ class V {
2679
2678
  message: a,
2680
2679
  data: i
2681
2680
  };
2682
- this._buffer.push(y({
2681
+ this._buffer.push(p({
2683
2682
  type: "editor:warning"
2684
2683
  }, o)), this.editor.canvas.fire("editor:warning", o);
2685
2684
  }
@@ -2888,7 +2887,7 @@ const lt = {
2888
2887
  resetObjectFitByDoubleClick: !0
2889
2888
  };
2890
2889
  function bt(c, e = {}) {
2891
- const t = y(y({}, lt), e), s = document.getElementById(c);
2890
+ const t = p(p({}, lt), e), s = document.getElementById(c);
2892
2891
  if (!s)
2893
2892
  return Promise.reject(new Error(`Контейнер с ID "${c}" не найден.`));
2894
2893
  const n = document.createElement("canvas");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anu3ev/fabric-image-editor",
3
- "version": "0.1.58",
3
+ "version": "0.1.59",
4
4
  "description": "JavaScript image editor built on FabricJS, allowing you to create instances with an integrated montage area and providing an API to modify and manage state.",
5
5
  "module": "dist/main.js",
6
6
  "files": [