@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.
- package/dist/main.js +74 -75
- 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,
|
|
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
|
|
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 =
|
|
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
|
-
}),
|
|
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(
|
|
597
|
-
style:
|
|
598
|
-
btnStyle:
|
|
599
|
-
icons:
|
|
600
|
-
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((
|
|
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((
|
|
1059
|
+
const A = f.getObjects().filter((y) => y.format).every((y) => y.format === "svg");
|
|
1058
1060
|
if (h === "svg" && A) {
|
|
1059
|
-
const
|
|
1061
|
+
const y = f.toSVG();
|
|
1060
1062
|
f.dispose();
|
|
1061
1063
|
const C = {
|
|
1062
|
-
image: D._exportSVGStringAsFile(
|
|
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((
|
|
1075
|
+
const b = yield new Promise((y, k) => {
|
|
1074
1076
|
f.getElement().toBlob((C) => {
|
|
1075
|
-
C ?
|
|
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
|
|
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",
|
|
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
|
|
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",
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
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: "
|
|
2305
|
-
|
|
2306
|
-
|
|
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(
|
|
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(
|
|
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 =
|
|
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.
|
|
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": [
|