@anu3ev/fabric-image-editor 0.7.1 → 0.7.2
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 +742 -741
- package/dist/stats.html +1 -1
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -801,12 +801,12 @@ var re = {
|
|
|
801
801
|
"pointer-events": "none",
|
|
802
802
|
"white-space": "nowrap",
|
|
803
803
|
"box-shadow": "0 2px 8px rgba(0, 0, 0, 0.2)"
|
|
804
|
-
},
|
|
804
|
+
}, oe = "fabric-editor-angle-indicator", se = class e {
|
|
805
805
|
constructor({ editor: e }) {
|
|
806
806
|
this.isActive = !1, this.currentAngle = 0, this.editor = e, this.canvas = e.canvas, this.options = e.options, this._createDOM(), this._bindEvents();
|
|
807
807
|
}
|
|
808
808
|
_createDOM() {
|
|
809
|
-
this.el = document.createElement("div"), this.el.className =
|
|
809
|
+
this.el = document.createElement("div"), this.el.className = oe, Object.entries(V).forEach(([e, t]) => {
|
|
810
810
|
this.el.style.setProperty(e, t);
|
|
811
811
|
}), this.canvas.wrapperEl.appendChild(this.el);
|
|
812
812
|
}
|
|
@@ -851,44 +851,44 @@ var re = {
|
|
|
851
851
|
destroy() {
|
|
852
852
|
this.canvas && (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:cleared", this._onSelectionCleared)), this.el?.parentNode && this.el.parentNode.removeChild(this.el), this.el = null, this.editor = null, this.canvas = null, this.options = null;
|
|
853
853
|
}
|
|
854
|
-
},
|
|
854
|
+
}, ce = /* @__PURE__ */ "id.backgroundId.customData.backgroundType.format.contentType.width.height.originX.originY.locked.editable.evented.selectable.lockMovementX.lockMovementY.lockRotation.lockScalingX.lockScalingY.lockSkewingX.lockSkewingY.styles.lineFontDefaults.textCaseRaw.uppercase.autoExpand.linethrough.underline.fontStyle.fontWeight.backgroundOpacity.paddingTop.paddingRight.paddingBottom.paddingLeft.radiusTopLeft.radiusTopRight.radiusBottomRight.radiusBottomLeft.shapeComposite.shapePresetKey.shapeBaseWidth.shapeBaseHeight.shapeManualBaseWidth.shapeManualBaseHeight.shapeTextAutoExpand.shapeAlignHorizontal.shapeAlignVertical.shapePaddingTop.shapePaddingRight.shapePaddingBottom.shapePaddingLeft.shapeFill.shapeStroke.shapeStrokeWidth.shapeStrokeDashArray.shapeOpacity.shapeRounding.shapeNodeType".split(".");
|
|
855
855
|
//#endregion
|
|
856
856
|
//#region src/editor/history-manager/diff-normalization.ts
|
|
857
|
-
function
|
|
857
|
+
function le({ state: e }) {
|
|
858
858
|
return JSON.parse(JSON.stringify(e));
|
|
859
859
|
}
|
|
860
|
-
function
|
|
860
|
+
function H({ value: e }) {
|
|
861
861
|
if (Array.isArray(e)) {
|
|
862
862
|
let t = [];
|
|
863
|
-
for (let n = 0; n < e.length; n += 1) t.push(
|
|
863
|
+
for (let n = 0; n < e.length; n += 1) t.push(H({ value: e[n] }));
|
|
864
864
|
return t;
|
|
865
865
|
}
|
|
866
866
|
if (e && typeof e == "object") {
|
|
867
867
|
let t = {}, n = Object.keys(e).sort();
|
|
868
868
|
for (let r = 0; r < n.length; r += 1) {
|
|
869
869
|
let i = n[r];
|
|
870
|
-
t[i] =
|
|
870
|
+
t[i] = H({ value: e[i] });
|
|
871
871
|
}
|
|
872
872
|
return t;
|
|
873
873
|
}
|
|
874
874
|
return e;
|
|
875
875
|
}
|
|
876
|
-
function
|
|
877
|
-
let t =
|
|
876
|
+
function ue({ value: e }) {
|
|
877
|
+
let t = H({ value: e });
|
|
878
878
|
return JSON.stringify(t);
|
|
879
879
|
}
|
|
880
|
-
function
|
|
881
|
-
return
|
|
880
|
+
function de({ prevState: e, nextState: t }) {
|
|
881
|
+
return ue({ value: e }) === ue({ value: t });
|
|
882
882
|
}
|
|
883
|
-
function
|
|
883
|
+
function fe({ objects: e, id: t }) {
|
|
884
884
|
for (let n = 0; n < e.length; n += 1) {
|
|
885
885
|
let r = e[n];
|
|
886
886
|
if (r.id === t) return r;
|
|
887
887
|
}
|
|
888
888
|
return null;
|
|
889
889
|
}
|
|
890
|
-
function
|
|
891
|
-
let t =
|
|
890
|
+
function pe({ objects: e }) {
|
|
891
|
+
let t = fe({
|
|
892
892
|
objects: e,
|
|
893
893
|
id: "montage-area"
|
|
894
894
|
});
|
|
@@ -902,7 +902,7 @@ function fe({ objects: e }) {
|
|
|
902
902
|
height: r
|
|
903
903
|
};
|
|
904
904
|
}
|
|
905
|
-
function
|
|
905
|
+
function me({ objects: e }) {
|
|
906
906
|
let t = [], n = [...e];
|
|
907
907
|
for (let e = 0; e < n.length; e += 1) {
|
|
908
908
|
let r = n[e];
|
|
@@ -912,20 +912,20 @@ function pe({ objects: e }) {
|
|
|
912
912
|
}
|
|
913
913
|
return t;
|
|
914
914
|
}
|
|
915
|
-
function
|
|
916
|
-
let t =
|
|
915
|
+
function he({ objects: e }) {
|
|
916
|
+
let t = me({ objects: e });
|
|
917
917
|
for (let e = 0; e < t.length; e += 1) {
|
|
918
918
|
let n = t[e], { type: r, backgroundOpacity: i, backgroundColor: a, textBackgroundColor: o } = n, s = typeof i == "number" ? i : 0, c = typeof a == "string" ? a : "", l = typeof o == "string" ? o : "", u = r === "textbox" || r === "background-textbox", d = c.length > 0 || l.length > 0;
|
|
919
919
|
u && (s > 0 && d || (n.backgroundColor = null, n.textBackgroundColor = null));
|
|
920
920
|
}
|
|
921
921
|
}
|
|
922
|
-
function
|
|
923
|
-
let { width: n, height: r, objects: i } = e, { objects: a } = t, { width: o, height: s } =
|
|
922
|
+
function ge({ prevState: e, nextState: t }) {
|
|
923
|
+
let { width: n, height: r, objects: i } = e, { objects: a } = t, { width: o, height: s } = pe({ objects: i }), { width: c, height: l } = pe({ objects: a });
|
|
924
924
|
o !== c || s !== l || (t.width = n, t.height = r);
|
|
925
925
|
}
|
|
926
|
-
function
|
|
927
|
-
let n =
|
|
928
|
-
return
|
|
926
|
+
function _e({ prevState: e, nextState: t }) {
|
|
927
|
+
let n = le({ state: e }), r = le({ state: t });
|
|
928
|
+
return he({ objects: n.objects }), he({ objects: r.objects }), ge({
|
|
929
929
|
prevState: n,
|
|
930
930
|
nextState: r
|
|
931
931
|
}), {
|
|
@@ -935,10 +935,10 @@ function ge({ prevState: e, nextState: t }) {
|
|
|
935
935
|
}
|
|
936
936
|
//#endregion
|
|
937
937
|
//#region src/editor/history-manager/load-state.ts
|
|
938
|
-
function
|
|
938
|
+
function ve({ customData: e }) {
|
|
939
939
|
return JSON.parse(JSON.stringify(e));
|
|
940
940
|
}
|
|
941
|
-
function
|
|
941
|
+
function ye({ state: e }) {
|
|
942
942
|
let t = JSON.parse(JSON.stringify(e)), n = (t.objects ?? []).filter((e) => e.id !== "overlay-mask");
|
|
943
943
|
t.objects = n;
|
|
944
944
|
for (let e = 0; e < n.length; e += 1) {
|
|
@@ -947,7 +947,7 @@ function ve({ state: e }) {
|
|
|
947
947
|
}
|
|
948
948
|
return t;
|
|
949
949
|
}
|
|
950
|
-
function
|
|
950
|
+
function be({ state: e, canvas: t }) {
|
|
951
951
|
let { objects: n = [] } = e, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
|
|
952
952
|
for (let e = 0; e < n.length; e += 1) {
|
|
953
953
|
let { customData: t, id: a } = n[e];
|
|
@@ -962,23 +962,23 @@ function ye({ state: e, canvas: t }) {
|
|
|
962
962
|
let a = t.getObjects?.() ?? [];
|
|
963
963
|
for (let e = 0; e < a.length; e += 1) {
|
|
964
964
|
let t = a[e], { id: n } = t, o;
|
|
965
|
-
typeof n == "string" && (o = r.get(n)), o ||= i.get(e), o && (t.customData =
|
|
965
|
+
typeof n == "string" && (o = r.get(n)), o ||= i.get(e), o && (t.customData = ve({ customData: o }));
|
|
966
966
|
}
|
|
967
967
|
}
|
|
968
968
|
//#endregion
|
|
969
969
|
//#region src/editor/history-manager/snapshot-interactivity.ts
|
|
970
|
-
function
|
|
970
|
+
function xe({ object: e }) {
|
|
971
971
|
return typeof e.getObjects == "function" ? e.getObjects() : [];
|
|
972
972
|
}
|
|
973
|
-
function
|
|
973
|
+
function Se({ objects: e }) {
|
|
974
974
|
for (let t = 0; t < e.length; t += 1) if (e[t].isEditing) return !0;
|
|
975
975
|
return !1;
|
|
976
976
|
}
|
|
977
|
-
function
|
|
977
|
+
function Ce({ object: e }) {
|
|
978
978
|
let t = typeof e.type == "string" ? e.type.toLowerCase() : "";
|
|
979
979
|
return t === "textbox" || t === "background-textbox" || typeof e.isEditing == "boolean";
|
|
980
980
|
}
|
|
981
|
-
function
|
|
981
|
+
function we({ object: e, withEvented: t = !1 }) {
|
|
982
982
|
let n = {
|
|
983
983
|
object: e,
|
|
984
984
|
lockMovementX: e.lockMovementX,
|
|
@@ -987,66 +987,66 @@ function Ce({ object: e, withEvented: t = !1 }) {
|
|
|
987
987
|
};
|
|
988
988
|
return t && (n.evented = e.evented), n;
|
|
989
989
|
}
|
|
990
|
-
function we({ object: e, snapshotStates: t }) {
|
|
991
|
-
return e.shapeComposite !== !0 || !xe({ objects: be({ object: e }) }) ? !1 : (t.push(Ce({ object: e })), e.lockMovementX = !1, e.lockMovementY = !1, e.selectable = !0, !0);
|
|
992
|
-
}
|
|
993
990
|
function Te({ object: e, snapshotStates: t }) {
|
|
994
|
-
|
|
991
|
+
return e.shapeComposite !== !0 || !Se({ objects: xe({ object: e }) }) ? !1 : (t.push(we({ object: e })), e.lockMovementX = !1, e.lockMovementY = !1, e.selectable = !0, !0);
|
|
992
|
+
}
|
|
993
|
+
function Ee({ object: e, snapshotStates: t }) {
|
|
994
|
+
if (!Ce({ object: e })) return !1;
|
|
995
995
|
let n = e.group, { isEditing: r } = e, i = n?.shapeComposite === !0, a = !!n?.locked;
|
|
996
|
-
return !i || a || !r ? !1 : (t.push(
|
|
996
|
+
return !i || a || !r ? !1 : (t.push(we({
|
|
997
997
|
object: e,
|
|
998
998
|
withEvented: !0
|
|
999
999
|
})), e.lockMovementX = !1, e.lockMovementY = !1, e.selectable = !1, e.evented = !1, !0);
|
|
1000
1000
|
}
|
|
1001
|
-
function
|
|
1002
|
-
if (!
|
|
1001
|
+
function De({ object: e, snapshotStates: t }) {
|
|
1002
|
+
if (!Ce({ object: e })) return !1;
|
|
1003
1003
|
let n = !!e.lockMovementX, r = !!e.lockMovementY;
|
|
1004
|
-
return !n && !r ? !1 : (t.push(
|
|
1004
|
+
return !n && !r ? !1 : (t.push(we({ object: e })), e.lockMovementX = !1, e.lockMovementY = !1, e.selectable = !0, !0);
|
|
1005
1005
|
}
|
|
1006
|
-
function
|
|
1006
|
+
function Oe({ objects: e }) {
|
|
1007
1007
|
let t = [];
|
|
1008
1008
|
for (let n = 0; n < e.length; n += 1) {
|
|
1009
1009
|
let r = e[n];
|
|
1010
|
-
r.locked ||
|
|
1010
|
+
r.locked || Te({
|
|
1011
1011
|
object: r,
|
|
1012
1012
|
snapshotStates: t
|
|
1013
|
-
}) ||
|
|
1013
|
+
}) || Ee({
|
|
1014
1014
|
object: r,
|
|
1015
1015
|
snapshotStates: t
|
|
1016
|
-
}) ||
|
|
1016
|
+
}) || De({
|
|
1017
1017
|
object: r,
|
|
1018
1018
|
snapshotStates: t
|
|
1019
1019
|
});
|
|
1020
1020
|
}
|
|
1021
1021
|
return t;
|
|
1022
1022
|
}
|
|
1023
|
-
function
|
|
1023
|
+
function ke({ canvas: e }) {
|
|
1024
1024
|
let t = [...e.getObjects?.() ?? []], n = [];
|
|
1025
1025
|
for (let e = 0; e < t.length; e += 1) {
|
|
1026
1026
|
let r = t[e];
|
|
1027
1027
|
n.push(r);
|
|
1028
|
-
let i =
|
|
1028
|
+
let i = xe({ object: r });
|
|
1029
1029
|
for (let e = 0; e < i.length; e += 1) t.push(i[e]);
|
|
1030
1030
|
}
|
|
1031
1031
|
return n;
|
|
1032
1032
|
}
|
|
1033
|
-
function
|
|
1033
|
+
function Ae({ snapshotStates: e }) {
|
|
1034
1034
|
for (let t = 0; t < e.length; t += 1) {
|
|
1035
1035
|
let { object: n, lockMovementX: r, lockMovementY: i, selectable: a, evented: o } = e[t];
|
|
1036
1036
|
n.lockMovementX = r, n.lockMovementY = i, n.selectable = a, o !== void 0 && (n.evented = o);
|
|
1037
1037
|
}
|
|
1038
1038
|
}
|
|
1039
|
-
function
|
|
1040
|
-
let n =
|
|
1039
|
+
function je({ canvas: e, callback: t }) {
|
|
1040
|
+
let n = Oe({ objects: ke({ canvas: e }) });
|
|
1041
1041
|
try {
|
|
1042
1042
|
return t();
|
|
1043
1043
|
} finally {
|
|
1044
|
-
|
|
1044
|
+
Ae({ snapshotStates: n });
|
|
1045
1045
|
}
|
|
1046
1046
|
}
|
|
1047
1047
|
//#endregion
|
|
1048
1048
|
//#region src/editor/history-manager/index.ts
|
|
1049
|
-
var
|
|
1049
|
+
var Me = class {
|
|
1050
1050
|
constructor({ editor: e }) {
|
|
1051
1051
|
this.editor = e, this.canvas = e.canvas, this._isSavingState = !1, this._historySuspendCount = 0, this._isActionInProgress = !1, this._actionSnapshot = null, this._actionReason = null, this._pendingSaveTimeoutId = null, this._pendingSaveReason = null, this._hasDeferredSaveAfterUnblock = !1, this.baseState = null, this.patches = [], this.currentIndex = 0, this.maxHistoryLength = e.options.maxHistoryLength, this.totalChangesCount = 0, this.baseStateChangesCount = 0, this._createDiffPatcher();
|
|
1052
1052
|
}
|
|
@@ -1113,14 +1113,14 @@ var je = class {
|
|
|
1113
1113
|
return console.log("getFullState state", r), r;
|
|
1114
1114
|
}
|
|
1115
1115
|
_captureCurrentState() {
|
|
1116
|
-
return
|
|
1116
|
+
return je({
|
|
1117
1117
|
canvas: this.canvas,
|
|
1118
1118
|
callback: () => this._serializeCanvasState()
|
|
1119
1119
|
});
|
|
1120
1120
|
}
|
|
1121
1121
|
_serializeCanvasState() {
|
|
1122
1122
|
let { canvas: e } = this;
|
|
1123
|
-
return e.toDatalessObject([...
|
|
1123
|
+
return e.toDatalessObject([...ce]);
|
|
1124
1124
|
}
|
|
1125
1125
|
_handlePendingSaveTimeout() {
|
|
1126
1126
|
if (this._pendingSaveTimeoutId === null) return;
|
|
@@ -1160,15 +1160,15 @@ var je = class {
|
|
|
1160
1160
|
}
|
|
1161
1161
|
this._isSavingState = !0, console.time("saveState");
|
|
1162
1162
|
try {
|
|
1163
|
-
let e =
|
|
1163
|
+
let e = je({
|
|
1164
1164
|
canvas: this.canvas,
|
|
1165
|
-
callback: () => this.canvas.toDatalessObject([...
|
|
1165
|
+
callback: () => this.canvas.toDatalessObject([...ce])
|
|
1166
1166
|
});
|
|
1167
1167
|
if (console.timeEnd("saveState"), !this.baseState) {
|
|
1168
1168
|
this.baseState = e, this.patches = [], this.currentIndex = 0, console.log("Базовое состояние сохранено.");
|
|
1169
1169
|
return;
|
|
1170
1170
|
}
|
|
1171
|
-
let { prevState: t, nextState: n } =
|
|
1171
|
+
let { prevState: t, nextState: n } = _e({
|
|
1172
1172
|
prevState: this.getFullState(),
|
|
1173
1173
|
nextState: e
|
|
1174
1174
|
}), r = this.diffPatcher.diff(t, n);
|
|
@@ -1176,7 +1176,7 @@ var je = class {
|
|
|
1176
1176
|
console.log("Нет изменений для сохранения.");
|
|
1177
1177
|
return;
|
|
1178
1178
|
}
|
|
1179
|
-
if (
|
|
1179
|
+
if (de({
|
|
1180
1180
|
prevState: t,
|
|
1181
1181
|
nextState: n
|
|
1182
1182
|
})) {
|
|
@@ -1197,8 +1197,8 @@ var je = class {
|
|
|
1197
1197
|
console.log("loadStateFromFullState fullState", e);
|
|
1198
1198
|
let { canvas: t, canvasManager: n, interactionBlocker: r, backgroundManager: i, zoomManager: a, panConstraintManager: o } = this.editor, { width: s, height: c } = t, { width: l, height: u } = this.editor.montageArea;
|
|
1199
1199
|
r.overlayMask = null;
|
|
1200
|
-
let d =
|
|
1201
|
-
await t.loadFromJSON(d),
|
|
1200
|
+
let d = ye({ state: e });
|
|
1201
|
+
await t.loadFromJSON(d), be({
|
|
1202
1202
|
state: e,
|
|
1203
1203
|
canvas: t
|
|
1204
1204
|
});
|
|
@@ -1276,7 +1276,7 @@ var je = class {
|
|
|
1276
1276
|
}
|
|
1277
1277
|
}
|
|
1278
1278
|
}
|
|
1279
|
-
},
|
|
1279
|
+
}, Ne = .1, Pe = 4096, Fe = 4096, Ie = "application/image-editor:", Le = /* @__PURE__ */ "customData.backgroundType.format.contentType.width.height.originX.originY.locked.editable.evented.selectable.lockMovementX.lockMovementY.lockRotation.lockScalingX.lockScalingY.lockSkewingX.lockSkewingY.styles.lineFontDefaults.textCaseRaw.uppercase.autoExpand.linethrough.underline.fontStyle.fontWeight.backgroundOpacity.paddingTop.paddingRight.paddingBottom.paddingLeft.radiusTopLeft.radiusTopRight.radiusBottomRight.radiusBottomLeft.shapeComposite.shapePresetKey.shapeBaseWidth.shapeBaseHeight.shapeManualBaseWidth.shapeManualBaseHeight.shapeTextAutoExpand.shapeAlignHorizontal.shapeAlignVertical.shapePaddingTop.shapePaddingRight.shapePaddingBottom.shapePaddingLeft.shapeFill.shapeStroke.shapeStrokeWidth.shapeStrokeDashArray.shapeOpacity.shapeRounding.shapeNodeType".split("."), Re = class e {
|
|
1280
1280
|
constructor({ editor: e }) {
|
|
1281
1281
|
this.editor = e, this.options = e.options, this._createdBlobUrls = [], this.acceptContentTypes = this.editor.options.acceptContentTypes, this.acceptFormats = this.getAllowedFormatsFromContentTypes();
|
|
1282
1282
|
}
|
|
@@ -1473,7 +1473,7 @@ var je = class {
|
|
|
1473
1473
|
}
|
|
1474
1474
|
}
|
|
1475
1475
|
async resizeImageToBoundaries(e) {
|
|
1476
|
-
let { dataURL: t, sizeType: n = "max", contentType: r = "image/png", quality: i = 1, maxWidth: a =
|
|
1476
|
+
let { dataURL: t, sizeType: n = "max", contentType: r = "image/png", quality: i = 1, maxWidth: a = Pe, maxHeight: o = Fe, minWidth: s = 16, minHeight: c = 16, asBase64: l = !1, emitMessage: u = !0 } = e, { errorManager: d, workerManager: f } = this.editor, p = {
|
|
1477
1477
|
dataURL: t,
|
|
1478
1478
|
sizeType: n,
|
|
1479
1479
|
contentType: r,
|
|
@@ -1749,11 +1749,11 @@ var je = class {
|
|
|
1749
1749
|
let t = e.match(/^[^/]+\/([^+;]+)/);
|
|
1750
1750
|
return t ? t[1] : "";
|
|
1751
1751
|
}
|
|
1752
|
-
},
|
|
1753
|
-
function
|
|
1752
|
+
}, ze = (e, t, n) => Math.max(Math.min(e, n), t), Be = (e, t) => e * t;
|
|
1753
|
+
function Ve(e) {
|
|
1754
1754
|
return (e?.type === "image" || e?.format === "svg") && typeof e?.width == "number" && typeof e?.height == "number";
|
|
1755
1755
|
}
|
|
1756
|
-
var
|
|
1756
|
+
var He = class {
|
|
1757
1757
|
constructor({ editor: e }) {
|
|
1758
1758
|
this.editor = e;
|
|
1759
1759
|
}
|
|
@@ -1763,7 +1763,7 @@ var Ve = class {
|
|
|
1763
1763
|
}
|
|
1764
1764
|
getVisibleCenterPoint() {
|
|
1765
1765
|
let { canvas: e } = this.editor, t = e.getZoom(), n = e.viewportTransform, r = e.getWidth(), i = e.getHeight(), a = this.getMontageAreaSceneBounds(), o = (r / 2 - n[4]) / t, s = (i / 2 - n[5]) / t;
|
|
1766
|
-
return new p(
|
|
1766
|
+
return new p(ze(o, a.left, a.right), ze(s, a.top, a.bottom));
|
|
1767
1767
|
}
|
|
1768
1768
|
getMontageAreaSceneCenter() {
|
|
1769
1769
|
let { montageArea: e } = this.editor;
|
|
@@ -1786,19 +1786,23 @@ var Ve = class {
|
|
|
1786
1786
|
};
|
|
1787
1787
|
}
|
|
1788
1788
|
getObjectPlacement({ object: e, originX: t, originY: n }) {
|
|
1789
|
-
let r = t ?? e.originX ?? "center", i = n ?? e.originY ?? "center", a = e.getPointByOrigin(r, i);
|
|
1789
|
+
let r = t ?? e.originX ?? "center", i = n ?? e.originY ?? "center", a = e.getPointByOrigin(r, i), o = e.group ? a.transform(e.group.calcTransformMatrix()) : a;
|
|
1790
1790
|
return {
|
|
1791
|
-
left:
|
|
1792
|
-
top:
|
|
1791
|
+
left: o.x,
|
|
1792
|
+
top: o.y,
|
|
1793
1793
|
originX: r,
|
|
1794
1794
|
originY: i
|
|
1795
1795
|
};
|
|
1796
1796
|
}
|
|
1797
1797
|
resolveObjectPlacement({ object: e, left: t, top: n, originX: r, originY: i, fallbackPoint: a }) {
|
|
1798
|
-
let o = r ?? e.originX ?? "center", s = i ?? e.originY ?? "center", c =
|
|
1798
|
+
let o = r ?? e.originX ?? "center", s = i ?? e.originY ?? "center", c = this.getObjectPlacement({
|
|
1799
|
+
object: e,
|
|
1800
|
+
originX: o,
|
|
1801
|
+
originY: s
|
|
1802
|
+
});
|
|
1799
1803
|
return {
|
|
1800
|
-
left: t ?? c.
|
|
1801
|
-
top: n ?? c.
|
|
1804
|
+
left: t ?? a?.x ?? c.left,
|
|
1805
|
+
top: n ?? a?.y ?? c.top,
|
|
1802
1806
|
originX: o,
|
|
1803
1807
|
originY: s
|
|
1804
1808
|
};
|
|
@@ -1808,7 +1812,7 @@ var Ve = class {
|
|
|
1808
1812
|
e.set({
|
|
1809
1813
|
originX: i,
|
|
1810
1814
|
originY: a
|
|
1811
|
-
}), e.
|
|
1815
|
+
}), e.setXY(new p(n, r), i, a), e.setCoords();
|
|
1812
1816
|
}
|
|
1813
1817
|
centerObjectToMontageArea({ object: e }) {
|
|
1814
1818
|
let t = this.getMontageAreaSceneCenter();
|
|
@@ -1838,9 +1842,9 @@ var Ve = class {
|
|
|
1838
1842
|
}
|
|
1839
1843
|
setResolutionWidth(e, { preserveProportional: t, withoutSave: n, adaptCanvasToContainer: r } = {}) {
|
|
1840
1844
|
if (!e) return;
|
|
1841
|
-
let { canvas: i, montageArea: a, options: { canvasBackstoreWidth: o } } = this.editor, { width: s, height: c } = a, l =
|
|
1845
|
+
let { canvas: i, montageArea: a, options: { canvasBackstoreWidth: o } } = this.editor, { width: s, height: c } = a, l = ze(Number(e), 16, Pe);
|
|
1842
1846
|
if (!o || o === "auto" || r ? this.adaptCanvasToContainer() : o ? this.setCanvasBackstoreWidth(Number(o)) : this.setCanvasBackstoreWidth(l), a.set({ width: l }), this.placeMontageAreaAtCanonicalScenePosition(), t) {
|
|
1843
|
-
let e =
|
|
1847
|
+
let e = Be(c, l / s);
|
|
1844
1848
|
this.setResolutionHeight(e, {
|
|
1845
1849
|
withoutSave: n,
|
|
1846
1850
|
adaptCanvasToContainer: r
|
|
@@ -1856,9 +1860,9 @@ var Ve = class {
|
|
|
1856
1860
|
}
|
|
1857
1861
|
setResolutionHeight(e, { preserveProportional: t, withoutSave: n, adaptCanvasToContainer: r } = {}) {
|
|
1858
1862
|
if (!e) return;
|
|
1859
|
-
let { canvas: i, montageArea: a, options: { canvasBackstoreHeight: o } } = this.editor, { width: s, height: c } = a, l =
|
|
1863
|
+
let { canvas: i, montageArea: a, options: { canvasBackstoreHeight: o } } = this.editor, { width: s, height: c } = a, l = ze(Number(e), 16, Fe);
|
|
1860
1864
|
if (!o || o === "auto" || r ? this.adaptCanvasToContainer() : o ? this.setCanvasBackstoreHeight(Number(o)) : this.setCanvasBackstoreHeight(l), a.set({ height: l }), this.placeMontageAreaAtCanonicalScenePosition(), t) {
|
|
1861
|
-
let e =
|
|
1865
|
+
let e = Be(s, l / c);
|
|
1862
1866
|
this.setResolutionWidth(e, {
|
|
1863
1867
|
withoutSave: n,
|
|
1864
1868
|
adaptCanvasToContainer: r
|
|
@@ -1885,16 +1889,16 @@ var Ve = class {
|
|
|
1885
1889
|
}
|
|
1886
1890
|
setCanvasBackstoreWidth(e) {
|
|
1887
1891
|
if (!e || typeof e != "number") return;
|
|
1888
|
-
let t =
|
|
1892
|
+
let t = ze(e, 16, Pe);
|
|
1889
1893
|
this.editor.canvas.setDimensions({ width: t }, { backstoreOnly: !0 });
|
|
1890
1894
|
}
|
|
1891
1895
|
setCanvasBackstoreHeight(e) {
|
|
1892
1896
|
if (!e || typeof e != "number") return;
|
|
1893
|
-
let t =
|
|
1897
|
+
let t = ze(e, 16, Fe);
|
|
1894
1898
|
this.editor.canvas.setDimensions({ height: t }, { backstoreOnly: !0 });
|
|
1895
1899
|
}
|
|
1896
1900
|
adaptCanvasToContainer() {
|
|
1897
|
-
let { canvas: e } = this.editor, t = this.getEditorContainer(), n = t.clientWidth, r = t.clientHeight, i =
|
|
1901
|
+
let { canvas: e } = this.editor, t = this.getEditorContainer(), n = t.clientWidth, r = t.clientHeight, i = ze(n, 16, Pe), a = ze(r, 16, Fe);
|
|
1898
1902
|
e.setDimensions({
|
|
1899
1903
|
width: i,
|
|
1900
1904
|
height: a
|
|
@@ -1982,8 +1986,8 @@ var Ve = class {
|
|
|
1982
1986
|
}
|
|
1983
1987
|
scaleMontageAreaToImage({ object: e, preserveAspectRatio: t, withoutSave: n } = {}) {
|
|
1984
1988
|
let { canvas: r, montageArea: i, transformManager: a } = this.editor, o = e || r.getActiveObject();
|
|
1985
|
-
if (!
|
|
1986
|
-
let { width: s, height: c } = o, l = Math.min(s,
|
|
1989
|
+
if (!Ve(o)) return;
|
|
1990
|
+
let { width: s, height: c } = o, l = Math.min(s, Pe), u = Math.min(c, Fe);
|
|
1987
1991
|
if (t) {
|
|
1988
1992
|
let { width: e, height: t } = i, n = s / e, r = c / t, a = Math.max(n, r);
|
|
1989
1993
|
l = e * a, u = t * a;
|
|
@@ -2011,7 +2015,7 @@ var Ve = class {
|
|
|
2011
2015
|
let { canvas: e, montageArea: t, interactionBlocker: { overlayMask: n }, backgroundManager: { backgroundObject: r } } = this.editor;
|
|
2012
2016
|
return e.getObjects().filter((e) => e.id !== t.id && e.id !== n?.id && e.id !== r?.id);
|
|
2013
2017
|
}
|
|
2014
|
-
},
|
|
2018
|
+
}, Ue = class {
|
|
2015
2019
|
constructor({ editor: e }) {
|
|
2016
2020
|
this.editor = e, this.options = e.options;
|
|
2017
2021
|
}
|
|
@@ -2119,7 +2123,7 @@ var Ve = class {
|
|
|
2119
2123
|
});
|
|
2120
2124
|
}
|
|
2121
2125
|
}
|
|
2122
|
-
},
|
|
2126
|
+
}, We = class {
|
|
2123
2127
|
constructor({ editor: e }) {
|
|
2124
2128
|
this.editor = e, this.options = e.options, this.minZoom = this.options.minZoom || .1, this.maxZoom = this.options.maxZoom || 2, this.defaultZoom = this._normalizeDefaultZoom(this.options.defaultScale);
|
|
2125
2129
|
}
|
|
@@ -2173,7 +2177,7 @@ var Ve = class {
|
|
|
2173
2177
|
y: Math.abs(T) > Math.abs(d) ? d : T
|
|
2174
2178
|
};
|
|
2175
2179
|
}
|
|
2176
|
-
_applyViewportCentering(e, t = !1, n =
|
|
2180
|
+
_applyViewportCentering(e, t = !1, n = Ne) {
|
|
2177
2181
|
let { canvas: r } = this.editor, i = this._getScaledMontageDimensions(e), a = r.getWidth(), o = r.getHeight(), s = i.width > a || i.height > o, c = this._calculateFitZoom(), l = e - c;
|
|
2178
2182
|
if (!(!s || l) && !t) return !1;
|
|
2179
2183
|
let u = r.viewportTransform, d = this._calculateTargetViewportPosition(e);
|
|
@@ -2222,7 +2226,7 @@ var Ve = class {
|
|
|
2222
2226
|
pointY: u.y
|
|
2223
2227
|
});
|
|
2224
2228
|
}
|
|
2225
|
-
zoom(e =
|
|
2229
|
+
zoom(e = Ne, t = {}) {
|
|
2226
2230
|
if (!e) return;
|
|
2227
2231
|
let { minZoom: n, maxZoom: r } = this, { canvas: i } = this.editor, a = e < 0, o = i.getZoom(), s = i.getCenterPoint(), c = new p(t.pointX ?? s.x, t.pointY ?? s.y);
|
|
2228
2232
|
this.editor.montageArea.setCoords(), this.editor.canvas.requestRenderAll();
|
|
@@ -2248,41 +2252,30 @@ var Ve = class {
|
|
|
2248
2252
|
point: r
|
|
2249
2253
|
}), this.editor.panConstraintManager.updateBounds();
|
|
2250
2254
|
}
|
|
2251
|
-
},
|
|
2252
|
-
let r =
|
|
2255
|
+
}, U = ({ value: e, fallback: t = 0 }) => typeof e == "number" && Number.isFinite(e) ? e : typeof t == "number" && Number.isFinite(t) ? t : 0, Ge = ({ value: e, dimension: t, useRelativePositions: n }) => {
|
|
2256
|
+
let r = U({ value: e });
|
|
2253
2257
|
return n ? r : r / (t || 1);
|
|
2254
|
-
},
|
|
2255
|
-
x:
|
|
2258
|
+
}, Ke = ({ object: e, baseWidth: t, baseHeight: n, useRelativePositions: r }) => ({
|
|
2259
|
+
x: Ge({
|
|
2256
2260
|
value: e.left,
|
|
2257
2261
|
dimension: t,
|
|
2258
2262
|
useRelativePositions: r
|
|
2259
2263
|
}),
|
|
2260
|
-
y:
|
|
2264
|
+
y: Ge({
|
|
2261
2265
|
value: e.top,
|
|
2262
2266
|
dimension: n,
|
|
2263
2267
|
useRelativePositions: r
|
|
2264
2268
|
})
|
|
2265
|
-
}),
|
|
2269
|
+
}), qe = ({ normalizedX: e, normalizedY: t, bounds: n }) => {
|
|
2266
2270
|
let { left: r, top: i, width: a, height: o } = n;
|
|
2267
2271
|
return new p(r + e * a, i + t * o);
|
|
2268
|
-
}, qe = ({ object: e, bounds: t }) => {
|
|
2269
|
-
if (!t) return null;
|
|
2270
|
-
try {
|
|
2271
|
-
let n = e.originX ?? "center", r = e.originY ?? "center", i = e.getPointByOrigin(n, r), { left: a, top: o, width: s, height: c } = t;
|
|
2272
|
-
return {
|
|
2273
|
-
x: (i.x - a) / s,
|
|
2274
|
-
y: (i.y - o) / c
|
|
2275
|
-
};
|
|
2276
|
-
} catch {
|
|
2277
|
-
return null;
|
|
2278
|
-
}
|
|
2279
2272
|
}, Je = ({ object: e }) => {
|
|
2280
2273
|
let { left: t = 0, top: n = 0, width: r = 0, height: i = 0, scaleX: a = 1, scaleY: o = 1, strokeWidth: s = 0, strokeUniform: c = !1 } = e, l = e.type === "Textbox", u = c ? 0 : s, d = r + u, f = i + u, p = {
|
|
2281
2274
|
left: Math.round(t),
|
|
2282
2275
|
top: Math.round(n)
|
|
2283
2276
|
};
|
|
2284
2277
|
l || (d > 0 && (p.scaleX = Math.max(1, Math.round(d * a)) / d), f > 0 && (p.scaleY = Math.max(1, Math.round(f * o)) / f)), e.set(p), e.setCoords();
|
|
2285
|
-
},
|
|
2278
|
+
}, W = ({ object: e }) => {
|
|
2286
2279
|
if (!e) return null;
|
|
2287
2280
|
try {
|
|
2288
2281
|
e.setCoords();
|
|
@@ -2301,7 +2294,7 @@ var Ve = class {
|
|
|
2301
2294
|
};
|
|
2302
2295
|
//#endregion
|
|
2303
2296
|
//#region src/editor/utils/primitive-shapes.ts
|
|
2304
|
-
function
|
|
2297
|
+
function Ye({ canvas: e, object: t, left: n, top: r, centerPoint: i, flags: a }) {
|
|
2305
2298
|
let { withoutSelection: o, withoutAdding: s } = a;
|
|
2306
2299
|
if (n === void 0 && r === void 0) {
|
|
2307
2300
|
let n = i ?? e.getCenterPoint();
|
|
@@ -2309,9 +2302,9 @@ function Xe({ canvas: e, object: t, left: n, top: r, centerPoint: i, flags: a })
|
|
|
2309
2302
|
}
|
|
2310
2303
|
return Je({ object: t }), s ? t : (e.add(t), o || e.setActiveObject(t), e.renderAll(), t);
|
|
2311
2304
|
}
|
|
2312
|
-
var
|
|
2305
|
+
var Xe = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
2313
2306
|
let { id: i = `rect-${D()}`, left: a, top: o, width: s = 100, height: c = 100, fill: l = "blue", ...u } = t;
|
|
2314
|
-
return
|
|
2307
|
+
return Ye({
|
|
2315
2308
|
canvas: e,
|
|
2316
2309
|
object: new g({
|
|
2317
2310
|
id: i,
|
|
@@ -2327,7 +2320,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2327
2320
|
centerPoint: n,
|
|
2328
2321
|
flags: r
|
|
2329
2322
|
});
|
|
2330
|
-
},
|
|
2323
|
+
}, Ze = class {
|
|
2331
2324
|
constructor({ editor: e }) {
|
|
2332
2325
|
this.editor = e, this.isBlocked = !1, this.overlayMask = null;
|
|
2333
2326
|
}
|
|
@@ -2349,7 +2342,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2349
2342
|
}
|
|
2350
2343
|
_createOverlay() {
|
|
2351
2344
|
let { historyManager: e, options: { overlayMaskColor: t = "rgba(0,0,0,0.5)" } } = this.editor;
|
|
2352
|
-
e.suspendHistory(), this.overlayMask =
|
|
2345
|
+
e.suspendHistory(), this.overlayMask = Xe({
|
|
2353
2346
|
canvas: this.editor.canvas,
|
|
2354
2347
|
options: {
|
|
2355
2348
|
...this._getOverlayGeometry(),
|
|
@@ -2387,7 +2380,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2387
2380
|
e.evented = !0, e.selectable = !0;
|
|
2388
2381
|
}), e.upperCanvasEl.style.pointerEvents = "", e.lowerCanvasEl.style.pointerEvents = "", this.overlayMask.visible = !1, e.requestRenderAll(), e.fire("editor:enabled"), n.resumeHistory(), n.flushDeferredSaveAfterUnblock();
|
|
2389
2382
|
}
|
|
2390
|
-
},
|
|
2383
|
+
}, Qe = class e {
|
|
2391
2384
|
constructor({ editor: e }) {
|
|
2392
2385
|
this.editor = e, this.backgroundObject = null;
|
|
2393
2386
|
}
|
|
@@ -2579,7 +2572,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2579
2572
|
this.backgroundObject && a !== i + 1 && e.moveObjectTo(this.backgroundObject, i + 1), e.requestRenderAll(), n.resumeHistory();
|
|
2580
2573
|
}
|
|
2581
2574
|
_createColorBackground(e) {
|
|
2582
|
-
this.backgroundObject =
|
|
2575
|
+
this.backgroundObject = Xe({
|
|
2583
2576
|
canvas: this.editor.canvas,
|
|
2584
2577
|
options: {
|
|
2585
2578
|
...this._getMontageBackgroundRectOptions(),
|
|
@@ -2596,7 +2589,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2596
2589
|
}), this.refresh();
|
|
2597
2590
|
}
|
|
2598
2591
|
_createGradientBackground(t) {
|
|
2599
|
-
this.backgroundObject =
|
|
2592
|
+
this.backgroundObject = Xe({
|
|
2600
2593
|
canvas: this.editor.canvas,
|
|
2601
2594
|
options: {
|
|
2602
2595
|
...this._getMontageBackgroundRectOptions(),
|
|
@@ -2695,7 +2688,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2695
2688
|
return e.color === n.color && Math.abs(e.offset - n.offset) < 1e-4;
|
|
2696
2689
|
}) ? !1 : e.type === "linear" && t.type === "linear" ? Math.abs(e.coords.x1 - t.coords.x1) < 1e-4 && Math.abs(e.coords.y1 - t.coords.y1) < 1e-4 && Math.abs(e.coords.x2 - t.coords.x2) < 1e-4 && Math.abs(e.coords.y2 - t.coords.y2) < 1e-4 : e.type === "radial" && t.type === "radial" ? Math.abs(e.coords.x1 - t.coords.x1) < 1e-4 && Math.abs(e.coords.y1 - t.coords.y1) < 1e-4 && Math.abs(e.coords.x2 - t.coords.x2) < 1e-4 && Math.abs(e.coords.y2 - t.coords.y2) < 1e-4 && Math.abs(e.coords.r1 - t.coords.r1) < 1e-4 && Math.abs(e.coords.r2 - t.coords.r2) < 1e-4 : !1;
|
|
2697
2690
|
}
|
|
2698
|
-
},
|
|
2691
|
+
}, $e = class t {
|
|
2699
2692
|
constructor({ editor: e }) {
|
|
2700
2693
|
this.editor = e;
|
|
2701
2694
|
}
|
|
@@ -2769,32 +2762,32 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2769
2762
|
e.sendObjectBackwards(t.obj);
|
|
2770
2763
|
});
|
|
2771
2764
|
}
|
|
2772
|
-
}, G = 180,
|
|
2765
|
+
}, G = 180, et = {
|
|
2773
2766
|
top: .2,
|
|
2774
2767
|
right: .2,
|
|
2775
2768
|
bottom: .2,
|
|
2776
2769
|
left: .2
|
|
2777
|
-
},
|
|
2770
|
+
}, tt = ({ value: e }) => Number(e.toFixed(4)), nt = ({ sides: e, radius: t = 50, centerX: n = 50, centerY: r = 50, rotation: i = -Math.PI / 2 }) => {
|
|
2778
2771
|
let a = [];
|
|
2779
2772
|
for (let o = 0; o < e; o += 1) {
|
|
2780
2773
|
let s = i + o * Math.PI * 2 / e;
|
|
2781
2774
|
a.push({
|
|
2782
|
-
x:
|
|
2783
|
-
y:
|
|
2775
|
+
x: tt({ value: n + t * Math.cos(s) }),
|
|
2776
|
+
y: tt({ value: r + t * Math.sin(s) })
|
|
2784
2777
|
});
|
|
2785
2778
|
}
|
|
2786
2779
|
return a;
|
|
2787
|
-
},
|
|
2780
|
+
}, rt = ({ spikes: e, outerRadius: t = 50, innerRadius: n = 22, centerX: r = 50, centerY: i = 50, rotation: a = -Math.PI / 2 }) => {
|
|
2788
2781
|
let o = [], s = e * 2;
|
|
2789
2782
|
for (let c = 0; c < s; c += 1) {
|
|
2790
2783
|
let s = c % 2 == 0 ? t : n, l = a + c * Math.PI / e;
|
|
2791
2784
|
o.push({
|
|
2792
|
-
x:
|
|
2793
|
-
y:
|
|
2785
|
+
x: tt({ value: r + s * Math.cos(l) }),
|
|
2786
|
+
y: tt({ value: i + s * Math.sin(l) })
|
|
2794
2787
|
});
|
|
2795
2788
|
}
|
|
2796
2789
|
return o;
|
|
2797
|
-
},
|
|
2790
|
+
}, it = [
|
|
2798
2791
|
{
|
|
2799
2792
|
key: "circle",
|
|
2800
2793
|
type: "ellipse",
|
|
@@ -2860,7 +2853,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2860
2853
|
type: "polygon",
|
|
2861
2854
|
width: G,
|
|
2862
2855
|
height: G,
|
|
2863
|
-
points:
|
|
2856
|
+
points: nt({
|
|
2864
2857
|
sides: 5,
|
|
2865
2858
|
radius: 50,
|
|
2866
2859
|
rotation: -Math.PI / 2
|
|
@@ -2877,7 +2870,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2877
2870
|
type: "polygon",
|
|
2878
2871
|
width: G,
|
|
2879
2872
|
height: G,
|
|
2880
|
-
points:
|
|
2873
|
+
points: nt({
|
|
2881
2874
|
sides: 6,
|
|
2882
2875
|
radius: 50,
|
|
2883
2876
|
rotation: 0
|
|
@@ -2894,7 +2887,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2894
2887
|
type: "polygon",
|
|
2895
2888
|
width: G,
|
|
2896
2889
|
height: G,
|
|
2897
|
-
points:
|
|
2890
|
+
points: rt({
|
|
2898
2891
|
spikes: 5,
|
|
2899
2892
|
outerRadius: 50,
|
|
2900
2893
|
innerRadius: 21,
|
|
@@ -2912,7 +2905,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
2912
2905
|
type: "polygon",
|
|
2913
2906
|
width: G,
|
|
2914
2907
|
height: G,
|
|
2915
|
-
points:
|
|
2908
|
+
points: rt({
|
|
2916
2909
|
spikes: 4,
|
|
2917
2910
|
outerRadius: 50,
|
|
2918
2911
|
innerRadius: 16,
|
|
@@ -3299,7 +3292,7 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
3299
3292
|
type: "polygon",
|
|
3300
3293
|
width: G,
|
|
3301
3294
|
height: G,
|
|
3302
|
-
points:
|
|
3295
|
+
points: rt({
|
|
3303
3296
|
spikes: 14,
|
|
3304
3297
|
outerRadius: 50,
|
|
3305
3298
|
innerRadius: 40,
|
|
@@ -3390,21 +3383,21 @@ var Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
3390
3383
|
left: .2
|
|
3391
3384
|
}
|
|
3392
3385
|
}
|
|
3393
|
-
],
|
|
3394
|
-
for (let e = 0; e <
|
|
3395
|
-
let t =
|
|
3396
|
-
|
|
3386
|
+
], at = "circle", ot = "center", st = {};
|
|
3387
|
+
for (let e = 0; e < it.length; e += 1) {
|
|
3388
|
+
let t = it[e];
|
|
3389
|
+
st[t.key] = t;
|
|
3397
3390
|
}
|
|
3398
|
-
var
|
|
3391
|
+
var ct = st, lt = ({ presetKey: e }) => ct[e] ?? null, ut = ({ preset: e, rounding: t }) => (typeof t == "number" ? t : 0) <= 0 || e.type === "rect" ? e.key : e.roundedVariant ?? e.key, dt = ({ preset: e, overridePadding: t }) => {
|
|
3399
3392
|
let n = e.textPadding ?? {};
|
|
3400
3393
|
return {
|
|
3401
|
-
top: t?.top ?? n.top ??
|
|
3402
|
-
right: t?.right ?? n.right ??
|
|
3403
|
-
bottom: t?.bottom ?? n.bottom ??
|
|
3404
|
-
left: t?.left ?? n.left ??
|
|
3394
|
+
top: t?.top ?? n.top ?? et.top,
|
|
3395
|
+
right: t?.right ?? n.right ?? et.right,
|
|
3396
|
+
bottom: t?.bottom ?? n.bottom ?? et.bottom,
|
|
3397
|
+
left: t?.left ?? n.left ?? et.left
|
|
3405
3398
|
};
|
|
3406
|
-
},
|
|
3407
|
-
function
|
|
3399
|
+
}, ft = ({ preset: e }) => e.type === "rect" || e.type === "triangle" || e.type === "polygon" || e.type === "polyline" ? !0 : e.type === "ellipse" || e.type === "svg" ? !1 : pt({ path: e.path });
|
|
3400
|
+
function pt({ path: e }) {
|
|
3408
3401
|
let t = e.match(/[a-zA-Z]/g) ?? [], n = new Set([
|
|
3409
3402
|
"M",
|
|
3410
3403
|
"L",
|
|
@@ -3420,11 +3413,11 @@ function mt({ path: e }) {
|
|
|
3420
3413
|
}
|
|
3421
3414
|
//#endregion
|
|
3422
3415
|
//#region src/editor/shape-manager/shape-factory.ts
|
|
3423
|
-
var
|
|
3424
|
-
function
|
|
3425
|
-
let a =
|
|
3426
|
-
width: Math.max(
|
|
3427
|
-
height: Math.max(
|
|
3416
|
+
var mt = 1, ht = 1e-4;
|
|
3417
|
+
function gt({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
|
|
3418
|
+
let a = bt({
|
|
3419
|
+
width: Math.max(mt, t),
|
|
3420
|
+
height: Math.max(mt, n),
|
|
3428
3421
|
strokeWidth: i
|
|
3429
3422
|
});
|
|
3430
3423
|
if (e instanceof g) {
|
|
@@ -3443,7 +3436,7 @@ function _t({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
|
|
|
3443
3436
|
}), e.setCoords();
|
|
3444
3437
|
return;
|
|
3445
3438
|
}
|
|
3446
|
-
let { width: o =
|
|
3439
|
+
let { width: o = mt, height: s = mt } = e, c = Math.max(mt, o), l = Math.max(mt, s);
|
|
3447
3440
|
e.set({
|
|
3448
3441
|
scaleX: a.width / c,
|
|
3449
3442
|
scaleY: a.height / l,
|
|
@@ -3453,15 +3446,15 @@ function _t({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
|
|
|
3453
3446
|
originY: "center"
|
|
3454
3447
|
}), e.setCoords();
|
|
3455
3448
|
}
|
|
3456
|
-
async function
|
|
3457
|
-
let a = await
|
|
3449
|
+
async function _t({ preset: e, width: t, height: n, style: r, rounding: i }) {
|
|
3450
|
+
let a = await yt({
|
|
3458
3451
|
preset: e,
|
|
3459
3452
|
rounding: i
|
|
3460
3453
|
});
|
|
3461
|
-
return
|
|
3454
|
+
return vt({
|
|
3462
3455
|
shape: a,
|
|
3463
3456
|
style: r
|
|
3464
|
-
}),
|
|
3457
|
+
}), gt({
|
|
3465
3458
|
shape: a,
|
|
3466
3459
|
width: t,
|
|
3467
3460
|
height: n,
|
|
@@ -3475,11 +3468,11 @@ async function vt({ preset: e, width: t, height: n, style: r, rounding: i }) {
|
|
|
3475
3468
|
shapeNodeType: "shape"
|
|
3476
3469
|
}), a;
|
|
3477
3470
|
}
|
|
3478
|
-
function
|
|
3471
|
+
function vt({ shape: e, style: t }) {
|
|
3479
3472
|
let { fill: n, stroke: r, strokeWidth: i, strokeDashArray: a, opacity: o } = t;
|
|
3480
3473
|
if (e instanceof l) {
|
|
3481
3474
|
let n = e.getObjects();
|
|
3482
|
-
for (let e = 0; e < n.length; e += 1)
|
|
3475
|
+
for (let e = 0; e < n.length; e += 1) vt({
|
|
3483
3476
|
shape: n[e],
|
|
3484
3477
|
style: t
|
|
3485
3478
|
});
|
|
@@ -3493,7 +3486,7 @@ function yt({ shape: e, style: t }) {
|
|
|
3493
3486
|
};
|
|
3494
3487
|
n !== void 0 && (s.fill = n), r !== void 0 && (s.stroke = r), i !== void 0 && (s.strokeWidth = i), a !== void 0 && (s.strokeDashArray = a), o !== void 0 && (s.opacity = o), e.set(s), e.setCoords();
|
|
3495
3488
|
}
|
|
3496
|
-
async function
|
|
3489
|
+
async function yt({ preset: e, rounding: t }) {
|
|
3497
3490
|
return e.type === "rect" ? new g({
|
|
3498
3491
|
width: 100,
|
|
3499
3492
|
height: 100,
|
|
@@ -3508,18 +3501,18 @@ async function bt({ preset: e, rounding: t }) {
|
|
|
3508
3501
|
originY: "center",
|
|
3509
3502
|
left: 0,
|
|
3510
3503
|
top: 0
|
|
3511
|
-
}) : e.type === "triangle" ?
|
|
3504
|
+
}) : e.type === "triangle" ? xt({ rounding: t }) : e.type === "polygon" ? Ct({
|
|
3512
3505
|
points: e.points,
|
|
3513
3506
|
type: "polygon",
|
|
3514
3507
|
rounding: t
|
|
3515
|
-
}) : e.type === "polyline" ?
|
|
3508
|
+
}) : e.type === "polyline" ? Ct({
|
|
3516
3509
|
points: e.points,
|
|
3517
3510
|
type: "polyline",
|
|
3518
3511
|
rounding: t
|
|
3519
|
-
}) : e.type === "path" ?
|
|
3512
|
+
}) : e.type === "path" ? St({
|
|
3520
3513
|
path: e.path,
|
|
3521
3514
|
rounding: t
|
|
3522
|
-
}) : e.type === "svg" ?
|
|
3515
|
+
}) : e.type === "svg" ? jt({ svg: e.svg }) : new g({
|
|
3523
3516
|
width: 100,
|
|
3524
3517
|
height: 100,
|
|
3525
3518
|
originX: "center",
|
|
@@ -3528,15 +3521,15 @@ async function bt({ preset: e, rounding: t }) {
|
|
|
3528
3521
|
top: 0
|
|
3529
3522
|
});
|
|
3530
3523
|
}
|
|
3531
|
-
function
|
|
3524
|
+
function bt({ width: e, height: t, strokeWidth: n }) {
|
|
3532
3525
|
let r = Math.max(0, n ?? 0);
|
|
3533
3526
|
return {
|
|
3534
|
-
width: Math.max(
|
|
3535
|
-
height: Math.max(
|
|
3527
|
+
width: Math.max(mt, e - r),
|
|
3528
|
+
height: Math.max(mt, t - r)
|
|
3536
3529
|
};
|
|
3537
3530
|
}
|
|
3538
|
-
function
|
|
3539
|
-
return
|
|
3531
|
+
function xt({ rounding: e }) {
|
|
3532
|
+
return At({ rounding: e }) ? Et({
|
|
3540
3533
|
points: [
|
|
3541
3534
|
{
|
|
3542
3535
|
x: 50,
|
|
@@ -3562,13 +3555,13 @@ function St({ rounding: e }) {
|
|
|
3562
3555
|
top: 0
|
|
3563
3556
|
});
|
|
3564
3557
|
}
|
|
3565
|
-
function
|
|
3566
|
-
return
|
|
3558
|
+
function St({ path: e, rounding: t }) {
|
|
3559
|
+
return At({ rounding: t }) && Tt({
|
|
3567
3560
|
path: e,
|
|
3568
3561
|
rounding: Math.max(0, t ?? 0)
|
|
3569
|
-
}) ||
|
|
3562
|
+
}) || wt({ path: e });
|
|
3570
3563
|
}
|
|
3571
|
-
function
|
|
3564
|
+
function Ct({ points: e, type: t, rounding: n }) {
|
|
3572
3565
|
let r = e.length > 0 ? e : [
|
|
3573
3566
|
{
|
|
3574
3567
|
x: 0,
|
|
@@ -3583,13 +3576,13 @@ function wt({ points: e, type: t, rounding: n }) {
|
|
|
3583
3576
|
y: 100
|
|
3584
3577
|
}
|
|
3585
3578
|
];
|
|
3586
|
-
if (
|
|
3587
|
-
if (t === "polygon" && r.length >= 3) return
|
|
3579
|
+
if (At({ rounding: n })) {
|
|
3580
|
+
if (t === "polygon" && r.length >= 3) return Et({
|
|
3588
3581
|
points: r,
|
|
3589
3582
|
rounding: Math.max(0, n ?? 0),
|
|
3590
3583
|
closed: !0
|
|
3591
3584
|
});
|
|
3592
|
-
if (t === "polyline" && r.length >= 2) return
|
|
3585
|
+
if (t === "polyline" && r.length >= 2) return Et({
|
|
3593
3586
|
points: r,
|
|
3594
3587
|
rounding: Math.max(0, n ?? 0),
|
|
3595
3588
|
closed: !1
|
|
@@ -3607,7 +3600,7 @@ function wt({ points: e, type: t, rounding: n }) {
|
|
|
3607
3600
|
top: 0
|
|
3608
3601
|
});
|
|
3609
3602
|
}
|
|
3610
|
-
function
|
|
3603
|
+
function wt({ path: e }) {
|
|
3611
3604
|
return new d(e, {
|
|
3612
3605
|
originX: "center",
|
|
3613
3606
|
originY: "center",
|
|
@@ -3615,8 +3608,8 @@ function Tt({ path: e }) {
|
|
|
3615
3608
|
top: 0
|
|
3616
3609
|
});
|
|
3617
3610
|
}
|
|
3618
|
-
function
|
|
3619
|
-
let n =
|
|
3611
|
+
function Tt({ path: e, rounding: t }) {
|
|
3612
|
+
let n = wt({ path: e }).path ?? [], r = C.makePathSimpler(n), i = [], a = !1;
|
|
3620
3613
|
for (let e = 0; e < r.length; e += 1) {
|
|
3621
3614
|
let t = r[e];
|
|
3622
3615
|
if (!t) return null;
|
|
@@ -3636,14 +3629,14 @@ function Et({ path: e, rounding: t }) {
|
|
|
3636
3629
|
}
|
|
3637
3630
|
return null;
|
|
3638
3631
|
}
|
|
3639
|
-
return i.length < 2 || a && i.length < 3 ? null :
|
|
3632
|
+
return i.length < 2 || a && i.length < 3 ? null : Et({
|
|
3640
3633
|
points: i,
|
|
3641
3634
|
rounding: t,
|
|
3642
3635
|
closed: a
|
|
3643
3636
|
});
|
|
3644
3637
|
}
|
|
3645
|
-
function
|
|
3646
|
-
return new d(
|
|
3638
|
+
function Et({ points: e, rounding: t, closed: n }) {
|
|
3639
|
+
return new d(Dt({
|
|
3647
3640
|
points: e,
|
|
3648
3641
|
radius: t,
|
|
3649
3642
|
closed: n
|
|
@@ -3654,7 +3647,7 @@ function Dt({ points: e, rounding: t, closed: n }) {
|
|
|
3654
3647
|
top: 0
|
|
3655
3648
|
});
|
|
3656
3649
|
}
|
|
3657
|
-
function
|
|
3650
|
+
function Dt({ points: e, radius: t, closed: n }) {
|
|
3658
3651
|
let r = e.length;
|
|
3659
3652
|
if (r === 0) return "";
|
|
3660
3653
|
if (!n && r === 1) {
|
|
@@ -3662,14 +3655,14 @@ function Ot({ points: e, radius: t, closed: n }) {
|
|
|
3662
3655
|
return `M ${K({ value: t.x })} ${K({ value: t.y })}`;
|
|
3663
3656
|
}
|
|
3664
3657
|
let i = Math.max(0, t);
|
|
3665
|
-
if (i <= 0) return
|
|
3658
|
+
if (i <= 0) return Ot({
|
|
3666
3659
|
points: e,
|
|
3667
3660
|
closed: n
|
|
3668
3661
|
});
|
|
3669
3662
|
if (n) {
|
|
3670
3663
|
let t = [];
|
|
3671
3664
|
for (let n = 0; n < r; n += 1) {
|
|
3672
|
-
let a = n === 0 ? r - 1 : n - 1, o = n === r - 1 ? 0 : n + 1, s =
|
|
3665
|
+
let a = n === 0 ? r - 1 : n - 1, o = n === r - 1 ? 0 : n + 1, s = kt({
|
|
3673
3666
|
previous: e[a],
|
|
3674
3667
|
current: e[n],
|
|
3675
3668
|
next: e[o],
|
|
@@ -3684,13 +3677,13 @@ function Ot({ points: e, radius: t, closed: n }) {
|
|
|
3684
3677
|
}
|
|
3685
3678
|
return a += " Z", a;
|
|
3686
3679
|
}
|
|
3687
|
-
if (r === 2) return
|
|
3680
|
+
if (r === 2) return Ot({
|
|
3688
3681
|
points: e,
|
|
3689
3682
|
closed: !1
|
|
3690
3683
|
});
|
|
3691
3684
|
let a = `M ${K({ value: e[0].x })} ${K({ value: e[0].y })}`;
|
|
3692
3685
|
for (let t = 1; t < r - 1; t += 1) {
|
|
3693
|
-
let n =
|
|
3686
|
+
let n = kt({
|
|
3694
3687
|
previous: e[t - 1],
|
|
3695
3688
|
current: e[t],
|
|
3696
3689
|
next: e[t + 1],
|
|
@@ -3701,7 +3694,7 @@ function Ot({ points: e, radius: t, closed: n }) {
|
|
|
3701
3694
|
let o = e[r - 1];
|
|
3702
3695
|
return a += ` L ${K({ value: o.x })} ${K({ value: o.y })}`, a;
|
|
3703
3696
|
}
|
|
3704
|
-
function
|
|
3697
|
+
function Ot({ points: e, closed: t }) {
|
|
3705
3698
|
if (e.length === 0) return "";
|
|
3706
3699
|
let n = `M ${K({ value: e[0].x })} ${K({ value: e[0].y })}`;
|
|
3707
3700
|
for (let t = 1; t < e.length; t += 1) {
|
|
@@ -3710,7 +3703,7 @@ function kt({ points: e, closed: t }) {
|
|
|
3710
3703
|
}
|
|
3711
3704
|
return t && (n += " Z"), n;
|
|
3712
3705
|
}
|
|
3713
|
-
function
|
|
3706
|
+
function kt({ previous: e, current: t, next: n, radius: r }) {
|
|
3714
3707
|
let i = {
|
|
3715
3708
|
x: e.x - t.x,
|
|
3716
3709
|
y: e.y - t.y
|
|
@@ -3718,7 +3711,7 @@ function At({ previous: e, current: t, next: n, radius: r }) {
|
|
|
3718
3711
|
x: n.x - t.x,
|
|
3719
3712
|
y: n.y - t.y
|
|
3720
3713
|
}, o = Math.hypot(i.x, i.y), s = Math.hypot(a.x, a.y);
|
|
3721
|
-
if (o <=
|
|
3714
|
+
if (o <= ht || s <= ht) return {
|
|
3722
3715
|
start: {
|
|
3723
3716
|
x: K({ value: t.x }),
|
|
3724
3717
|
y: K({ value: t.y })
|
|
@@ -3740,13 +3733,13 @@ function At({ previous: e, current: t, next: n, radius: r }) {
|
|
|
3740
3733
|
}
|
|
3741
3734
|
};
|
|
3742
3735
|
}
|
|
3743
|
-
function
|
|
3736
|
+
function At({ rounding: e }) {
|
|
3744
3737
|
return Math.max(0, e ?? 0) > 0;
|
|
3745
3738
|
}
|
|
3746
3739
|
function K({ value: e }) {
|
|
3747
3740
|
return Number(e.toFixed(4));
|
|
3748
3741
|
}
|
|
3749
|
-
async function
|
|
3742
|
+
async function jt({ svg: e }) {
|
|
3750
3743
|
let t = await x(e), n = C.groupSVGElements(t.objects, t.options);
|
|
3751
3744
|
return n.set({
|
|
3752
3745
|
originX: "center",
|
|
@@ -3757,24 +3750,24 @@ async function Mt({ svg: e }) {
|
|
|
3757
3750
|
}
|
|
3758
3751
|
//#endregion
|
|
3759
3752
|
//#region src/editor/shape-manager/shape-layout.ts
|
|
3760
|
-
var q = 1,
|
|
3761
|
-
let c =
|
|
3753
|
+
var q = 1, Mt = .5, Nt = 12, Pt = 12, Ft = .45, It = 8, Lt = 8, Rt = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s }) => {
|
|
3754
|
+
let c = Wt({ padding: s }), l = Math.max(q, e.shapeManualBaseWidth ?? r), u = Math.max(q, e.shapeManualBaseHeight ?? i), d = Bt({
|
|
3762
3755
|
text: n,
|
|
3763
3756
|
padding: c
|
|
3764
|
-
}), f = Math.max(q, r, d), p =
|
|
3757
|
+
}), f = Math.max(q, r, d), p = Ht({
|
|
3765
3758
|
text: n,
|
|
3766
3759
|
width: f,
|
|
3767
3760
|
height: i,
|
|
3768
3761
|
padding: c
|
|
3769
3762
|
}), m = Math.max(q, p);
|
|
3770
|
-
|
|
3763
|
+
gt({
|
|
3771
3764
|
shape: t,
|
|
3772
3765
|
width: f,
|
|
3773
3766
|
height: m,
|
|
3774
3767
|
rounding: e.shapeRounding,
|
|
3775
3768
|
strokeWidth: e.shapeStrokeWidth
|
|
3776
3769
|
});
|
|
3777
|
-
let { frame: h, splitByGrapheme: g, textTop: _ } =
|
|
3770
|
+
let { frame: h, splitByGrapheme: g, textTop: _ } = Vt({
|
|
3778
3771
|
text: n,
|
|
3779
3772
|
width: f,
|
|
3780
3773
|
height: m,
|
|
@@ -3803,56 +3796,56 @@ var q = 1, Nt = .5, Pt = 12, Ft = 12, It = .45, Lt = 8, Rt = 8, zt = ({ group: e
|
|
|
3803
3796
|
scaleX: 1,
|
|
3804
3797
|
scaleY: 1
|
|
3805
3798
|
}), e.set("dirty", !0), e.setCoords();
|
|
3806
|
-
},
|
|
3799
|
+
}, zt = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, strokeWidth: i, montageAreaWidth: a }) => {
|
|
3807
3800
|
let o = Math.max(q, t), s = Math.max(q, n);
|
|
3808
|
-
if (!
|
|
3801
|
+
if (!Gt({ text: e })) return s;
|
|
3809
3802
|
let c = Number.isFinite(a) && a > 0 ? Math.max(q, a) : Math.max(o, s), l = Math.max(0, i ?? 0), u = Math.max(s, c);
|
|
3810
3803
|
if (l >= u) return Math.max(o, s);
|
|
3811
|
-
let d =
|
|
3804
|
+
let d = Wt({ padding: r }), f = u, p = Xt({
|
|
3812
3805
|
text: e,
|
|
3813
|
-
frameWidth:
|
|
3806
|
+
frameWidth: Jt({
|
|
3814
3807
|
width: f,
|
|
3815
3808
|
padding: d
|
|
3816
3809
|
})
|
|
3817
3810
|
});
|
|
3818
3811
|
if (p.hasWrappedLines) return f;
|
|
3819
|
-
let m = Math.max(q, p.longestLineWidth), h = Math.min(f, Math.max(s,
|
|
3812
|
+
let m = Math.max(q, p.longestLineWidth), h = Math.min(f, Math.max(s, Ut({
|
|
3820
3813
|
frameWidth: m,
|
|
3821
3814
|
padding: d
|
|
3822
3815
|
})));
|
|
3823
|
-
for (let t = 0; t <
|
|
3824
|
-
let t =
|
|
3816
|
+
for (let t = 0; t < It; t += 1) {
|
|
3817
|
+
let t = Jt({
|
|
3825
3818
|
width: h,
|
|
3826
3819
|
padding: d
|
|
3827
|
-
}), n =
|
|
3820
|
+
}), n = Xt({
|
|
3828
3821
|
text: e,
|
|
3829
3822
|
frameWidth: t
|
|
3830
|
-
}), r = t >= m -
|
|
3823
|
+
}), r = t >= m - Mt;
|
|
3831
3824
|
if (!n.hasWrappedLines && r) return h;
|
|
3832
|
-
if (h >= f -
|
|
3825
|
+
if (h >= f - Mt) return f;
|
|
3833
3826
|
let i = n.hasWrappedLines ? Math.max(m + 1, t + 1) : m;
|
|
3834
|
-
h = Math.min(f, Math.max(h + 1,
|
|
3827
|
+
h = Math.min(f, Math.max(h + 1, Ut({
|
|
3835
3828
|
frameWidth: i,
|
|
3836
3829
|
padding: d
|
|
3837
3830
|
})));
|
|
3838
3831
|
}
|
|
3839
3832
|
return h;
|
|
3840
|
-
},
|
|
3841
|
-
if (!
|
|
3842
|
-
let n =
|
|
3843
|
-
return
|
|
3844
|
-
frameWidth:
|
|
3833
|
+
}, Bt = ({ text: e, padding: t }) => {
|
|
3834
|
+
if (!Gt({ text: e })) return q;
|
|
3835
|
+
let n = Wt({ padding: t });
|
|
3836
|
+
return Ut({
|
|
3837
|
+
frameWidth: Qt({ text: e }),
|
|
3845
3838
|
padding: n
|
|
3846
3839
|
});
|
|
3847
|
-
},
|
|
3848
|
-
let a =
|
|
3840
|
+
}, Vt = ({ text: e, width: t, height: n, alignV: r, padding: i }) => {
|
|
3841
|
+
let a = qt({
|
|
3849
3842
|
width: Math.max(q, t),
|
|
3850
3843
|
height: Math.max(q, n),
|
|
3851
|
-
padding:
|
|
3852
|
-
}), o =
|
|
3844
|
+
padding: Wt({ padding: i })
|
|
3845
|
+
}), o = nn({
|
|
3853
3846
|
text: e,
|
|
3854
3847
|
frameWidth: a.width
|
|
3855
|
-
}), s =
|
|
3848
|
+
}), s = Zt({
|
|
3856
3849
|
text: e,
|
|
3857
3850
|
frameWidth: a.width,
|
|
3858
3851
|
splitByGrapheme: o
|
|
@@ -3860,73 +3853,73 @@ var q = 1, Nt = .5, Pt = 12, Ft = 12, It = .45, Lt = 8, Rt = 8, zt = ({ group: e
|
|
|
3860
3853
|
return {
|
|
3861
3854
|
frame: a,
|
|
3862
3855
|
splitByGrapheme: o,
|
|
3863
|
-
textTop:
|
|
3856
|
+
textTop: en({
|
|
3864
3857
|
alignV: r,
|
|
3865
3858
|
frameHeight: a.height,
|
|
3866
3859
|
frameTop: a.top,
|
|
3867
3860
|
textHeight: s
|
|
3868
3861
|
})
|
|
3869
3862
|
};
|
|
3870
|
-
},
|
|
3863
|
+
}, Ht = ({ text: e, width: t, height: n, padding: r }) => {
|
|
3871
3864
|
let i = Math.max(q, n);
|
|
3872
|
-
if (!
|
|
3873
|
-
let a = Math.max(q, t), o =
|
|
3874
|
-
for (let t = 0; t <
|
|
3875
|
-
let t =
|
|
3865
|
+
if (!Gt({ text: e })) return i;
|
|
3866
|
+
let a = Math.max(q, t), o = Wt({ padding: r }), s = i;
|
|
3867
|
+
for (let t = 0; t < Lt; t += 1) {
|
|
3868
|
+
let t = qt({
|
|
3876
3869
|
width: a,
|
|
3877
3870
|
height: s,
|
|
3878
3871
|
padding: o
|
|
3879
|
-
}), n =
|
|
3872
|
+
}), n = Zt({
|
|
3880
3873
|
text: e,
|
|
3881
3874
|
frameWidth: t.width
|
|
3882
3875
|
});
|
|
3883
|
-
if (n <= t.height +
|
|
3876
|
+
if (n <= t.height + Mt) return s;
|
|
3884
3877
|
let r = n - t.height;
|
|
3885
3878
|
s = Math.max(s + r, s * 1.05);
|
|
3886
3879
|
}
|
|
3887
3880
|
return s;
|
|
3888
3881
|
};
|
|
3889
|
-
function
|
|
3882
|
+
function Ut({ frameWidth: e, padding: t }) {
|
|
3890
3883
|
let n = Math.max(q, e), r = n;
|
|
3891
|
-
for (let e = 0; e <
|
|
3892
|
-
let e =
|
|
3884
|
+
for (let e = 0; e < It; e += 1) {
|
|
3885
|
+
let e = Jt({
|
|
3893
3886
|
width: r,
|
|
3894
3887
|
padding: t
|
|
3895
3888
|
});
|
|
3896
|
-
if (e >= n -
|
|
3889
|
+
if (e >= n - Mt) return r;
|
|
3897
3890
|
let i = n - e;
|
|
3898
3891
|
r = Math.max(r + i, r * 1.05);
|
|
3899
3892
|
}
|
|
3900
3893
|
return r;
|
|
3901
3894
|
}
|
|
3902
|
-
function
|
|
3895
|
+
function Wt({ padding: e }) {
|
|
3903
3896
|
return {
|
|
3904
|
-
top:
|
|
3905
|
-
right:
|
|
3906
|
-
bottom:
|
|
3907
|
-
left:
|
|
3897
|
+
top: Kt({ value: e.top }),
|
|
3898
|
+
right: Kt({ value: e.right }),
|
|
3899
|
+
bottom: Kt({ value: e.bottom }),
|
|
3900
|
+
left: Kt({ value: e.left })
|
|
3908
3901
|
};
|
|
3909
3902
|
}
|
|
3910
|
-
function
|
|
3903
|
+
function Gt({ text: e }) {
|
|
3911
3904
|
return (e.text ?? "").trim().length > 0;
|
|
3912
3905
|
}
|
|
3913
|
-
function
|
|
3914
|
-
return Math.min(Math.max(e, 0),
|
|
3906
|
+
function Kt({ value: e }) {
|
|
3907
|
+
return Math.min(Math.max(e, 0), Ft);
|
|
3915
3908
|
}
|
|
3916
|
-
function
|
|
3917
|
-
let r =
|
|
3909
|
+
function qt({ width: e, height: t, padding: n }) {
|
|
3910
|
+
let r = tn({
|
|
3918
3911
|
size: e,
|
|
3919
3912
|
ratio: n.left,
|
|
3920
3913
|
axis: "horizontal"
|
|
3921
|
-
}), i =
|
|
3914
|
+
}), i = tn({
|
|
3922
3915
|
size: e,
|
|
3923
3916
|
ratio: n.right,
|
|
3924
3917
|
axis: "horizontal"
|
|
3925
|
-
}), a =
|
|
3918
|
+
}), a = tn({
|
|
3926
3919
|
size: t,
|
|
3927
3920
|
ratio: n.top,
|
|
3928
3921
|
axis: "vertical"
|
|
3929
|
-
}), o =
|
|
3922
|
+
}), o = tn({
|
|
3930
3923
|
size: t,
|
|
3931
3924
|
ratio: n.bottom,
|
|
3932
3925
|
axis: "vertical"
|
|
@@ -3938,19 +3931,19 @@ function Jt({ width: e, height: t, padding: n }) {
|
|
|
3938
3931
|
height: Math.max(q, t - a - o)
|
|
3939
3932
|
};
|
|
3940
3933
|
}
|
|
3941
|
-
function
|
|
3942
|
-
let n =
|
|
3934
|
+
function Jt({ width: e, padding: t }) {
|
|
3935
|
+
let n = tn({
|
|
3943
3936
|
size: e,
|
|
3944
3937
|
ratio: t.left,
|
|
3945
3938
|
axis: "horizontal"
|
|
3946
|
-
}), r =
|
|
3939
|
+
}), r = tn({
|
|
3947
3940
|
size: e,
|
|
3948
3941
|
ratio: t.right,
|
|
3949
3942
|
axis: "horizontal"
|
|
3950
3943
|
});
|
|
3951
3944
|
return Math.max(q, e - n - r);
|
|
3952
3945
|
}
|
|
3953
|
-
function
|
|
3946
|
+
function Yt({ text: e }) {
|
|
3954
3947
|
let { height: t } = e;
|
|
3955
3948
|
if (typeof t == "number" && Number.isFinite(t)) return t;
|
|
3956
3949
|
if (typeof e.calcTextHeight == "function") {
|
|
@@ -3959,18 +3952,18 @@ function Xt({ text: e }) {
|
|
|
3959
3952
|
}
|
|
3960
3953
|
return q;
|
|
3961
3954
|
}
|
|
3962
|
-
function
|
|
3963
|
-
let n =
|
|
3955
|
+
function Xt({ text: e, frameWidth: t }) {
|
|
3956
|
+
let n = an({ text: e }), r = nn({
|
|
3964
3957
|
text: e,
|
|
3965
3958
|
frameWidth: t
|
|
3966
|
-
}), i =
|
|
3959
|
+
}), i = cn({ text: e });
|
|
3967
3960
|
e.set({
|
|
3968
3961
|
autoExpand: !1,
|
|
3969
3962
|
width: Math.max(q, t),
|
|
3970
3963
|
splitByGrapheme: r
|
|
3971
3964
|
}), e.initDimensions();
|
|
3972
|
-
let a =
|
|
3973
|
-
return
|
|
3965
|
+
let a = on({ text: e }) > n, o = Math.ceil(rn({ text: e }));
|
|
3966
|
+
return ln({
|
|
3974
3967
|
text: e,
|
|
3975
3968
|
state: i
|
|
3976
3969
|
}), {
|
|
@@ -3978,8 +3971,8 @@ function Zt({ text: e, frameWidth: t }) {
|
|
|
3978
3971
|
longestLineWidth: o
|
|
3979
3972
|
};
|
|
3980
3973
|
}
|
|
3981
|
-
function
|
|
3982
|
-
let r =
|
|
3974
|
+
function Zt({ text: e, frameWidth: t, splitByGrapheme: n }) {
|
|
3975
|
+
let r = cn({ text: e }), i = n ?? nn({
|
|
3983
3976
|
text: e,
|
|
3984
3977
|
frameWidth: t
|
|
3985
3978
|
});
|
|
@@ -3988,75 +3981,75 @@ function Qt({ text: e, frameWidth: t, splitByGrapheme: n }) {
|
|
|
3988
3981
|
width: Math.max(q, t),
|
|
3989
3982
|
splitByGrapheme: i
|
|
3990
3983
|
}), e.initDimensions();
|
|
3991
|
-
let a =
|
|
3992
|
-
return
|
|
3984
|
+
let a = Yt({ text: e });
|
|
3985
|
+
return ln({
|
|
3993
3986
|
text: e,
|
|
3994
3987
|
state: r
|
|
3995
3988
|
}), a;
|
|
3996
3989
|
}
|
|
3997
|
-
function
|
|
3998
|
-
let t =
|
|
3990
|
+
function Qt({ text: e }) {
|
|
3991
|
+
let t = $t({
|
|
3999
3992
|
text: e,
|
|
4000
3993
|
frameWidth: q,
|
|
4001
3994
|
splitByGrapheme: !0
|
|
4002
3995
|
});
|
|
4003
3996
|
return Math.max(q, t);
|
|
4004
3997
|
}
|
|
4005
|
-
function
|
|
4006
|
-
let r =
|
|
3998
|
+
function $t({ text: e, frameWidth: t, splitByGrapheme: n }) {
|
|
3999
|
+
let r = cn({ text: e });
|
|
4007
4000
|
e.set({
|
|
4008
4001
|
autoExpand: !1,
|
|
4009
4002
|
width: Math.max(q, t),
|
|
4010
4003
|
splitByGrapheme: n
|
|
4011
4004
|
}), e.initDimensions();
|
|
4012
|
-
let i =
|
|
4013
|
-
return
|
|
4005
|
+
let i = rn({ text: e });
|
|
4006
|
+
return ln({
|
|
4014
4007
|
text: e,
|
|
4015
4008
|
state: r
|
|
4016
4009
|
}), i;
|
|
4017
4010
|
}
|
|
4018
|
-
function
|
|
4011
|
+
function en({ alignV: e, frameHeight: t, frameTop: n, textHeight: r }) {
|
|
4019
4012
|
let i = Math.max(0, t - r);
|
|
4020
4013
|
return e === "top" ? n : e === "bottom" ? n + i : n + i / 2;
|
|
4021
4014
|
}
|
|
4022
|
-
function
|
|
4023
|
-
let r = n === "horizontal" ?
|
|
4015
|
+
function tn({ size: e, ratio: t, axis: n }) {
|
|
4016
|
+
let r = n === "horizontal" ? Nt : Pt, i = e * t;
|
|
4024
4017
|
return Math.max(0, Math.min(i, r));
|
|
4025
4018
|
}
|
|
4026
|
-
function
|
|
4027
|
-
let n = Math.max(q, t), r =
|
|
4019
|
+
function nn({ text: e, frameWidth: t }) {
|
|
4020
|
+
let n = Math.max(q, t), r = cn({ text: e });
|
|
4028
4021
|
e.set({
|
|
4029
4022
|
autoExpand: !1,
|
|
4030
4023
|
width: n,
|
|
4031
4024
|
splitByGrapheme: !1
|
|
4032
4025
|
}), e.initDimensions();
|
|
4033
|
-
let i =
|
|
4034
|
-
return
|
|
4026
|
+
let i = un({ text: e }) > n + Mt;
|
|
4027
|
+
return ln({
|
|
4035
4028
|
text: e,
|
|
4036
4029
|
state: r
|
|
4037
4030
|
}), i;
|
|
4038
4031
|
}
|
|
4039
|
-
function
|
|
4040
|
-
let t =
|
|
4041
|
-
if (t > 0) return
|
|
4032
|
+
function rn({ text: e }) {
|
|
4033
|
+
let t = on({ text: e });
|
|
4034
|
+
if (t > 0) return sn({
|
|
4042
4035
|
text: e,
|
|
4043
4036
|
lineCount: t
|
|
4044
4037
|
});
|
|
4045
4038
|
let n = e.text ?? "";
|
|
4046
|
-
return
|
|
4039
|
+
return sn({
|
|
4047
4040
|
text: e,
|
|
4048
4041
|
lineCount: Math.max(n.split("\n").length, 1)
|
|
4049
4042
|
});
|
|
4050
4043
|
}
|
|
4051
|
-
function
|
|
4044
|
+
function an({ text: e }) {
|
|
4052
4045
|
let t = e.text ?? "";
|
|
4053
4046
|
return Math.max(t.split("\n").length, 1);
|
|
4054
4047
|
}
|
|
4055
|
-
function
|
|
4048
|
+
function on({ text: e }) {
|
|
4056
4049
|
let t = e;
|
|
4057
4050
|
return Array.isArray(t.textLines) ? t.textLines.length : 0;
|
|
4058
4051
|
}
|
|
4059
|
-
function
|
|
4052
|
+
function sn({ text: e, lineCount: t }) {
|
|
4060
4053
|
let n = q;
|
|
4061
4054
|
for (let r = 0; r < t; r += 1) {
|
|
4062
4055
|
let t = e.getLineWidth(r);
|
|
@@ -4064,7 +4057,7 @@ function cn({ text: e, lineCount: t }) {
|
|
|
4064
4057
|
}
|
|
4065
4058
|
return n;
|
|
4066
4059
|
}
|
|
4067
|
-
function
|
|
4060
|
+
function cn({ text: e }) {
|
|
4068
4061
|
let { autoExpand: t, splitByGrapheme: n, width: r } = e;
|
|
4069
4062
|
return {
|
|
4070
4063
|
autoExpand: t,
|
|
@@ -4072,23 +4065,23 @@ function ln({ text: e }) {
|
|
|
4072
4065
|
width: typeof r == "number" ? r : void 0
|
|
4073
4066
|
};
|
|
4074
4067
|
}
|
|
4075
|
-
function
|
|
4068
|
+
function ln({ text: e, state: t }) {
|
|
4076
4069
|
let { autoExpand: n, splitByGrapheme: r, width: i } = t, a = {};
|
|
4077
4070
|
n !== void 0 && (a.autoExpand = n), r !== void 0 && (a.splitByGrapheme = r), typeof i == "number" && (a.width = i), Object.keys(a).length > 0 && (e.set(a), e.initDimensions());
|
|
4078
4071
|
}
|
|
4079
|
-
function
|
|
4072
|
+
function un({ text: e }) {
|
|
4080
4073
|
let { dynamicMinWidth: t } = e;
|
|
4081
4074
|
return typeof t == "number" && Number.isFinite(t) ? t : 0;
|
|
4082
4075
|
}
|
|
4083
4076
|
//#endregion
|
|
4084
4077
|
//#region src/editor/shape-manager/shape-runtime.ts
|
|
4085
|
-
var
|
|
4078
|
+
var dn = ({ group: e }) => {
|
|
4086
4079
|
let t = e;
|
|
4087
4080
|
typeof t.setInteractive == "function" && t.setInteractive(!0), t.set({
|
|
4088
4081
|
interactive: !0,
|
|
4089
4082
|
subTargetCheck: !0
|
|
4090
4083
|
});
|
|
4091
|
-
},
|
|
4084
|
+
}, fn = ({ text: e }) => {
|
|
4092
4085
|
e.set({
|
|
4093
4086
|
hasBorders: !1,
|
|
4094
4087
|
hasControls: !1,
|
|
@@ -4100,7 +4093,7 @@ var fn = ({ group: e }) => {
|
|
|
4100
4093
|
autoExpand: !1,
|
|
4101
4094
|
shapeNodeType: "text"
|
|
4102
4095
|
}), e.setCoords();
|
|
4103
|
-
},
|
|
4096
|
+
}, pn = ({ group: e }) => {
|
|
4104
4097
|
let { layoutManager: t } = e;
|
|
4105
4098
|
if (!t || typeof t.unsubscribeTargets != "function") return;
|
|
4106
4099
|
let n = e.getObjects();
|
|
@@ -4108,7 +4101,7 @@ var fn = ({ group: e }) => {
|
|
|
4108
4101
|
target: e,
|
|
4109
4102
|
targets: n
|
|
4110
4103
|
});
|
|
4111
|
-
},
|
|
4104
|
+
}, mn = ({ group: e }) => {
|
|
4112
4105
|
let t = e.getObjects();
|
|
4113
4106
|
for (let e = 0; e < t.length; e += 1) {
|
|
4114
4107
|
let n = t[e];
|
|
@@ -4119,23 +4112,23 @@ var fn = ({ group: e }) => {
|
|
|
4119
4112
|
if (n instanceof _) return n;
|
|
4120
4113
|
}
|
|
4121
4114
|
return null;
|
|
4122
|
-
},
|
|
4115
|
+
}, hn = [
|
|
4123
4116
|
"tl",
|
|
4124
4117
|
"tr",
|
|
4125
4118
|
"bl",
|
|
4126
4119
|
"br"
|
|
4127
|
-
],
|
|
4120
|
+
], gn = ({ transform: e }) => {
|
|
4128
4121
|
let { originX: t, originY: n } = e;
|
|
4129
4122
|
return (t === "center" || t === .5) && (n === "center" || n === .5);
|
|
4130
|
-
},
|
|
4123
|
+
}, _n = ({ transform: e, x: t, y: n }) => {
|
|
4131
4124
|
let r = e, { target: i } = r, { scaleX: a = 1, scaleY: o = 1 } = i, s = b.getLocalPoint(r, r.originX, r.originY, t, n), c = Math.sign(s.x || r.signX || 1), l = Math.sign(s.y || r.signY || 1);
|
|
4132
4125
|
r.signX === void 0 && (r.signX = c), r.signY === void 0 && (r.signY = l);
|
|
4133
4126
|
let u = i._getTransformedDimensions(), d = Math.abs(s.x * a / u.x), f = Math.abs(s.y * o / u.y);
|
|
4134
|
-
|
|
4127
|
+
gn({ transform: r }) && (d *= 2, f *= 2);
|
|
4135
4128
|
let p = !i.lockScalingX && (!i.lockScalingFlip || r.signX === c), m = !i.lockScalingY && (!i.lockScalingFlip || r.signY === l);
|
|
4136
4129
|
return p && i.set("scaleX", d), m && i.set("scaleY", f), a !== i.scaleX || o !== i.scaleY;
|
|
4137
|
-
},
|
|
4138
|
-
let e = b.wrapWithFireEvent("scaling", b.wrapWithFixedAnchor((e, t, n, r) =>
|
|
4130
|
+
}, vn = () => {
|
|
4131
|
+
let e = b.wrapWithFireEvent("scaling", b.wrapWithFixedAnchor((e, t, n, r) => _n({
|
|
4139
4132
|
transform: t,
|
|
4140
4133
|
x: n,
|
|
4141
4134
|
y: r
|
|
@@ -4151,31 +4144,31 @@ var fn = ({ group: e }) => {
|
|
|
4151
4144
|
a.uniformScaling = s;
|
|
4152
4145
|
}
|
|
4153
4146
|
};
|
|
4154
|
-
},
|
|
4147
|
+
}, yn = ({ control: e }) => {
|
|
4155
4148
|
let t = new r({
|
|
4156
4149
|
...e,
|
|
4157
|
-
actionHandler:
|
|
4150
|
+
actionHandler: vn()
|
|
4158
4151
|
});
|
|
4159
4152
|
return t.shapeFreeScaleCornerControl = !0, t;
|
|
4160
|
-
},
|
|
4153
|
+
}, bn = ({ group: e }) => {
|
|
4161
4154
|
let t = { ...e.controls };
|
|
4162
|
-
|
|
4155
|
+
hn.forEach((n) => {
|
|
4163
4156
|
let r = e.controls[n];
|
|
4164
|
-
r && (r.shapeFreeScaleCornerControl || (t[n] =
|
|
4157
|
+
r && (r.shapeFreeScaleCornerControl || (t[n] = yn({ control: r })));
|
|
4165
4158
|
}), e.controls = t;
|
|
4166
|
-
},
|
|
4167
|
-
function
|
|
4159
|
+
}, xn = "shape-group";
|
|
4160
|
+
function Sn() {
|
|
4168
4161
|
return { performLayout() {} };
|
|
4169
4162
|
}
|
|
4170
|
-
function
|
|
4163
|
+
function Cn({ layoutManager: e }) {
|
|
4171
4164
|
let t = y.getClass("layoutManager");
|
|
4172
4165
|
if (!e) return new t();
|
|
4173
4166
|
let { strategy: n, type: r } = e, i = y.getClass(r);
|
|
4174
4167
|
return n ? new i(new (y.getClass(n))()) : new i();
|
|
4175
4168
|
}
|
|
4176
|
-
var
|
|
4169
|
+
var wn = class e extends l {
|
|
4177
4170
|
static {
|
|
4178
|
-
this.type =
|
|
4171
|
+
this.type = xn;
|
|
4179
4172
|
}
|
|
4180
4173
|
constructor(e = [], t = {}) {
|
|
4181
4174
|
let { layoutManager: n, objectCaching: r, centeredScaling: i, lockScalingFlip: a, ...o } = t;
|
|
@@ -4191,17 +4184,17 @@ var Tn = class e extends l {
|
|
|
4191
4184
|
this.set({
|
|
4192
4185
|
objectCaching: !1,
|
|
4193
4186
|
shapeComposite: !0
|
|
4194
|
-
}), this.shapeTextAutoExpand === void 0 && (this.shapeTextAutoExpand = !0), this._syncRoundability(),
|
|
4195
|
-
let e =
|
|
4196
|
-
e &&
|
|
4187
|
+
}), this.shapeTextAutoExpand === void 0 && (this.shapeTextAutoExpand = !0), this._syncRoundability(), dn({ group: this }), bn({ group: this });
|
|
4188
|
+
let e = mn({ group: this });
|
|
4189
|
+
e && fn({ text: e }), pn({ group: this }), this.setCoords();
|
|
4197
4190
|
}
|
|
4198
4191
|
static async fromObject({ type: t, objects: n = [], layoutManager: r, ...i }, a) {
|
|
4199
4192
|
let [o, s] = await Promise.all([C.enlivenObjects(n, a), C.enlivenObjectEnlivables(i, a)]), c = new e(o, {
|
|
4200
4193
|
...i,
|
|
4201
4194
|
...s,
|
|
4202
|
-
layoutManager:
|
|
4195
|
+
layoutManager: Sn()
|
|
4203
4196
|
});
|
|
4204
|
-
return c.layoutManager =
|
|
4197
|
+
return c.layoutManager = Cn({ layoutManager: r }), c.layoutManager.subscribeTargets({
|
|
4205
4198
|
type: "initialization",
|
|
4206
4199
|
target: c,
|
|
4207
4200
|
targets: c.getObjects()
|
|
@@ -4211,12 +4204,12 @@ var Tn = class e extends l {
|
|
|
4211
4204
|
if (typeof this.shapeCanRound == "boolean") return;
|
|
4212
4205
|
let e = this.shapePresetKey;
|
|
4213
4206
|
if (!e) return;
|
|
4214
|
-
let t =
|
|
4215
|
-
t && (this.shapeCanRound =
|
|
4207
|
+
let t = lt({ presetKey: e });
|
|
4208
|
+
t && (this.shapeCanRound = ft({ preset: t }));
|
|
4216
4209
|
}
|
|
4217
|
-
},
|
|
4218
|
-
y?.setClass && y.setClass(
|
|
4219
|
-
}, J = (e) => e instanceof
|
|
4210
|
+
}, Tn = () => {
|
|
4211
|
+
y?.setClass && y.setClass(wn, xn);
|
|
4212
|
+
}, J = (e) => e instanceof wn || e instanceof l && e.shapeComposite === !0, En = ({ target: e, subTargets: t = [] }) => {
|
|
4220
4213
|
if (J(e)) return e;
|
|
4221
4214
|
if (e?.group && J(e.group)) return e.group;
|
|
4222
4215
|
for (let e = 0; e < t.length; e += 1) {
|
|
@@ -4226,7 +4219,7 @@ var Tn = class e extends l {
|
|
|
4226
4219
|
if (r && J(r)) return r;
|
|
4227
4220
|
}
|
|
4228
4221
|
return null;
|
|
4229
|
-
},
|
|
4222
|
+
}, Dn = ({ group: e }) => {
|
|
4230
4223
|
let t = e.getObjects();
|
|
4231
4224
|
for (let e = 0; e < t.length; e += 1) {
|
|
4232
4225
|
let n = t[e];
|
|
@@ -4237,7 +4230,7 @@ var Tn = class e extends l {
|
|
|
4237
4230
|
if (!(n instanceof _)) return n;
|
|
4238
4231
|
}
|
|
4239
4232
|
return null;
|
|
4240
|
-
},
|
|
4233
|
+
}, On = ({ group: e }) => {
|
|
4241
4234
|
let t = e.getObjects();
|
|
4242
4235
|
for (let e = 0; e < t.length; e += 1) {
|
|
4243
4236
|
let n = t[e];
|
|
@@ -4249,16 +4242,16 @@ var Tn = class e extends l {
|
|
|
4249
4242
|
}
|
|
4250
4243
|
return null;
|
|
4251
4244
|
}, Y = ({ group: e }) => ({
|
|
4252
|
-
shape:
|
|
4253
|
-
text:
|
|
4254
|
-
}),
|
|
4255
|
-
|
|
4256
|
-
},
|
|
4245
|
+
shape: Dn({ group: e }),
|
|
4246
|
+
text: On({ group: e })
|
|
4247
|
+
}), kn = ({ group: e }) => {
|
|
4248
|
+
dn({ group: e });
|
|
4249
|
+
}, An = ({ transform: e, key: t }) => {
|
|
4257
4250
|
let n = e?.original;
|
|
4258
4251
|
if (!n || typeof n != "object") return null;
|
|
4259
4252
|
let r = n[t];
|
|
4260
4253
|
return typeof r != "number" || !Number.isFinite(r) ? null : r;
|
|
4261
|
-
},
|
|
4254
|
+
}, jn = ({ value: e }) => e === "left" || e === "center" || e === "right" || typeof e == "number" && Number.isFinite(e) ? e : null, Mn = ({ value: e }) => e === "top" || e === "center" || e === "bottom" || typeof e == "number" && Number.isFinite(e) ? e : null, Nn = ({ transform: e }) => {
|
|
4262
4255
|
let t = e?.action ?? "", n = typeof e?.corner == "string" ? e.corner : "", r = n === "tl" || n === "tr" || n === "bl" || n === "br", i = t === "scaleX" || n === "ml" || n === "mr", a = t === "scaleY" || n === "mt" || n === "mb", o = i || r, s = a || r;
|
|
4263
4256
|
return {
|
|
4264
4257
|
canScaleWidth: o,
|
|
@@ -4266,37 +4259,37 @@ var Tn = class e extends l {
|
|
|
4266
4259
|
isCornerScaleAction: r,
|
|
4267
4260
|
isVerticalOnlyScale: s && !o
|
|
4268
4261
|
};
|
|
4269
|
-
},
|
|
4262
|
+
}, Pn = ({ event: e, group: t, transform: n, canvas: r }) => {
|
|
4270
4263
|
if (!e) return null;
|
|
4271
4264
|
let i = t.canvas ?? r, a = i.getScenePoint(e), o = t.getRelativeCenterPoint(), s = t.translateToGivenOrigin(o, "center", "center", n.originX, n.originY), c = t.angle ?? 0, l = (c === 0 ? a : a.rotate(-c * Math.PI / 180, o)).subtract(s), u = t.controls[n.corner], d = i.getZoom() || 1, f = (t.padding ?? 0) / d;
|
|
4272
4265
|
return l.x >= f && (l.x -= f), l.x <= -f && (l.x += f), l.y >= f && (l.y -= f), l.y <= -f && (l.y += f), l.x -= u?.offsetX ?? 0, l.y -= u?.offsetY ?? 0, l;
|
|
4273
|
-
},
|
|
4266
|
+
}, Fn = ({ group: e, originX: t, originY: n }) => {
|
|
4274
4267
|
if (t === null || n === null) return null;
|
|
4275
4268
|
let r = e, i = typeof r.getRelativeCenterPoint == "function" ? r.getRelativeCenterPoint() : e.getCenterPoint();
|
|
4276
4269
|
return typeof r.translateToOriginPoint == "function" ? r.translateToOriginPoint(i, t, n) : i;
|
|
4277
|
-
},
|
|
4270
|
+
}, In = ({ state: e, transform: t }) => {
|
|
4278
4271
|
if (!t || e.startTransformOriginX === null && e.startTransformOriginY === null) return !1;
|
|
4279
|
-
let n =
|
|
4272
|
+
let n = jn({ value: t.originX }), r = Mn({ value: t.originY });
|
|
4280
4273
|
return n !== e.startTransformOriginX || r !== e.startTransformOriginY;
|
|
4281
|
-
},
|
|
4274
|
+
}, Ln = ({ state: e, transform: t }) => !t || !e.startTransformCorner ? !1 : t.corner !== e.startTransformCorner;
|
|
4282
4275
|
//#endregion
|
|
4283
4276
|
//#region src/editor/shape-manager/scaling/shape-scaling-preview.ts
|
|
4284
|
-
function
|
|
4277
|
+
function Rn({ size: e, scale: t, strokeWidth: n, minSize: r, scaleEpsilon: i }) {
|
|
4285
4278
|
let a = Math.max(i, Math.abs(t) || 1), o = Math.max(0, n);
|
|
4286
4279
|
return o <= 0 ? Math.max(r, e / a) : Math.max(r, e / a + o - o / a);
|
|
4287
4280
|
}
|
|
4288
|
-
function
|
|
4281
|
+
function zn({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, minSize: o, scaleEpsilon: s }) {
|
|
4289
4282
|
let c = Math.max(0, e.shapeStrokeWidth ?? 0);
|
|
4290
|
-
|
|
4283
|
+
gt({
|
|
4291
4284
|
shape: t,
|
|
4292
|
-
width:
|
|
4285
|
+
width: Rn({
|
|
4293
4286
|
size: n,
|
|
4294
4287
|
scale: i,
|
|
4295
4288
|
strokeWidth: c,
|
|
4296
4289
|
minSize: o,
|
|
4297
4290
|
scaleEpsilon: s
|
|
4298
4291
|
}),
|
|
4299
|
-
height:
|
|
4292
|
+
height: Rn({
|
|
4300
4293
|
size: r,
|
|
4301
4294
|
scale: a,
|
|
4302
4295
|
strokeWidth: c,
|
|
@@ -4307,8 +4300,8 @@ function Bn({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, min
|
|
|
4307
4300
|
strokeWidth: c
|
|
4308
4301
|
});
|
|
4309
4302
|
}
|
|
4310
|
-
function
|
|
4311
|
-
let l = Math.max(c, Math.abs(o) || 1), u = Math.max(c, Math.abs(s) || 1), d = i ?? "center", { frame: f, splitByGrapheme: p, textTop: m } =
|
|
4303
|
+
function Bn({ text: e, width: t, height: n, padding: r, alignH: i, alignV: a, scaleX: o, scaleY: s, scaleEpsilon: c }) {
|
|
4304
|
+
let l = Math.max(c, Math.abs(o) || 1), u = Math.max(c, Math.abs(s) || 1), d = i ?? "center", { frame: f, splitByGrapheme: p, textTop: m } = Vt({
|
|
4312
4305
|
text: e,
|
|
4313
4306
|
width: t,
|
|
4314
4307
|
height: n,
|
|
@@ -4328,13 +4321,13 @@ function Vn({ text: e, width: t, height: n, padding: r, alignH: i, alignV: a, sc
|
|
|
4328
4321
|
scaleY: 1 / u
|
|
4329
4322
|
}), e.initDimensions(), e.setCoords();
|
|
4330
4323
|
}
|
|
4331
|
-
var
|
|
4324
|
+
var Vn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH: o, alignV: s, scaleX: c, scaleY: l, minSize: u, scaleEpsilon: d }) => {
|
|
4332
4325
|
let f = Math.max(d, Math.abs(c) || 1), p = Math.max(d, Math.abs(l) || 1);
|
|
4333
4326
|
e.set({
|
|
4334
4327
|
width: r / f,
|
|
4335
4328
|
height: i / p,
|
|
4336
4329
|
dirty: !0
|
|
4337
|
-
}),
|
|
4330
|
+
}), zn({
|
|
4338
4331
|
group: e,
|
|
4339
4332
|
shape: t,
|
|
4340
4333
|
width: r,
|
|
@@ -4343,7 +4336,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4343
4336
|
scaleY: l,
|
|
4344
4337
|
minSize: u,
|
|
4345
4338
|
scaleEpsilon: d
|
|
4346
|
-
}),
|
|
4339
|
+
}), Bn({
|
|
4347
4340
|
text: n,
|
|
4348
4341
|
width: r,
|
|
4349
4342
|
height: i,
|
|
@@ -4354,7 +4347,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4354
4347
|
scaleY: l,
|
|
4355
4348
|
scaleEpsilon: d
|
|
4356
4349
|
});
|
|
4357
|
-
}, X = 1, Z = 1e-4,
|
|
4350
|
+
}, X = 1, Z = 1e-4, Hn = .5, Un = class e {
|
|
4358
4351
|
constructor({ canvas: t }) {
|
|
4359
4352
|
this.handleObjectScaling = (t) => {
|
|
4360
4353
|
let { target: n, transform: r } = t;
|
|
@@ -4370,7 +4363,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4370
4363
|
text: o,
|
|
4371
4364
|
padding: s,
|
|
4372
4365
|
transform: r
|
|
4373
|
-
}), { isCornerScaleAction: l } =
|
|
4366
|
+
}), { isCornerScaleAction: l } = Nn({ transform: r }), u = !!(t.e && "shiftKey" in t.e && t.e.shiftKey);
|
|
4374
4367
|
c.isProportionalScaling = l && u;
|
|
4375
4368
|
let d = i.left ?? 0, f = i.top ?? 0, p = !!i.flipX, m = !!i.flipY, h = i.shapeAlignHorizontal ?? "center", g = i.shapeAlignVertical ?? "middle", _ = this._resolveScalingDecision({
|
|
4376
4369
|
group: i,
|
|
@@ -4385,7 +4378,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4385
4378
|
shouldHandleAsNoop: _.shouldHandleAsNoop,
|
|
4386
4379
|
scaleX: _.appliedScaleX,
|
|
4387
4380
|
scaleY: _.appliedScaleY
|
|
4388
|
-
}),
|
|
4381
|
+
}), Vn({
|
|
4389
4382
|
group: i,
|
|
4390
4383
|
shape: a,
|
|
4391
4384
|
text: o,
|
|
@@ -4416,7 +4409,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4416
4409
|
if (!n) return;
|
|
4417
4410
|
let { target: r } = n;
|
|
4418
4411
|
if (!J(r)) return;
|
|
4419
|
-
let { canScaleHeight: i, canScaleWidth: a } =
|
|
4412
|
+
let { canScaleHeight: i, canScaleWidth: a } = Nn({ transform: n });
|
|
4420
4413
|
if (!a && !i) return;
|
|
4421
4414
|
let o = r, s = this.scalingState.get(o);
|
|
4422
4415
|
if (!s || s.isProportionalScaling) return;
|
|
@@ -4431,7 +4424,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4431
4424
|
group: o,
|
|
4432
4425
|
axis: "x"
|
|
4433
4426
|
})) {
|
|
4434
|
-
let e =
|
|
4427
|
+
let e = Bt({
|
|
4435
4428
|
text: l,
|
|
4436
4429
|
padding: u
|
|
4437
4430
|
}), t = Math.max(X / s.startWidth, e / s.startWidth);
|
|
@@ -4465,7 +4458,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4465
4458
|
shouldHandleAsNoop: !1,
|
|
4466
4459
|
scaleX: g,
|
|
4467
4460
|
scaleY: _
|
|
4468
|
-
}),
|
|
4461
|
+
}), Vn({
|
|
4469
4462
|
group: o,
|
|
4470
4463
|
shape: c,
|
|
4471
4464
|
text: l,
|
|
@@ -4512,7 +4505,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4512
4505
|
this.scalingState.delete(r);
|
|
4513
4506
|
return;
|
|
4514
4507
|
}
|
|
4515
|
-
let p = r.shapeAlignHorizontal ?? "center", m = r.shapeAlignVertical ?? "middle", h = e._resolvePadding({ group: r }), g = t.transform ?
|
|
4508
|
+
let p = r.shapeAlignHorizontal ?? "center", m = r.shapeAlignVertical ?? "middle", h = e._resolvePadding({ group: r }), g = t.transform ? Nn({ transform: t.transform }) : null, _ = i?.canScaleWidth ?? g?.canScaleWidth ?? Math.abs(a - 1) > Z, v = i?.canScaleHeight ?? g?.canScaleHeight ?? Math.abs(o - 1) > Z, y = Bt({
|
|
4516
4509
|
text: f,
|
|
4517
4510
|
padding: h
|
|
4518
4511
|
}), b = i?.lastAllowedScaleX ?? a, x = i?.lastAllowedScaleY ?? o;
|
|
@@ -4535,7 +4528,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4535
4528
|
state: i
|
|
4536
4529
|
}) && (x = Math.max(X / c, e / c));
|
|
4537
4530
|
}
|
|
4538
|
-
let S = _ ? Math.max(X, s * b) : s, C = v ? Math.max(X, c * x) : u, w = Math.abs(S - s) >
|
|
4531
|
+
let S = _ ? Math.max(X, s * b) : s, C = v ? Math.max(X, c * x) : u, w = Math.abs(S - s) > Hn, T = Math.abs(C - c) > Hn, E = w || T, D = S, O = C;
|
|
4539
4532
|
if (!E && i) {
|
|
4540
4533
|
this._restoreShapeStateWithoutResize({
|
|
4541
4534
|
group: r,
|
|
@@ -4564,7 +4557,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4564
4557
|
});
|
|
4565
4558
|
r.shapeManualBaseWidth = k.width, r.shapeManualBaseHeight = k.height;
|
|
4566
4559
|
let A = i?.baseRounding ?? Math.max(0, r.shapeRounding ?? 0);
|
|
4567
|
-
r.shapeRounding = Math.max(0, A * Math.min(b, x)),
|
|
4560
|
+
r.shapeRounding = Math.max(0, A * Math.min(b, x)), Rt({
|
|
4568
4561
|
group: r,
|
|
4569
4562
|
shape: d,
|
|
4570
4563
|
text: f,
|
|
@@ -4586,10 +4579,10 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4586
4579
|
}, this.canvas = t, this.scalingState = /* @__PURE__ */ new WeakMap();
|
|
4587
4580
|
}
|
|
4588
4581
|
_resolveScalingDecision({ group: e, text: t, padding: n, state: r, transform: i }) {
|
|
4589
|
-
let a = e.scaleX ?? 1, o = e.scaleY ?? 1, s = Math.abs(a) || 1, c = Math.abs(o) || 1, l = a < 0 || o < 0, u =
|
|
4582
|
+
let a = e.scaleX ?? 1, o = e.scaleY ?? 1, s = Math.abs(a) || 1, c = Math.abs(o) || 1, l = a < 0 || o < 0, u = In({
|
|
4590
4583
|
state: r,
|
|
4591
4584
|
transform: i
|
|
4592
|
-
}), d =
|
|
4585
|
+
}), d = Ln({
|
|
4593
4586
|
state: r,
|
|
4594
4587
|
transform: i
|
|
4595
4588
|
});
|
|
@@ -4621,7 +4614,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4621
4614
|
};
|
|
4622
4615
|
}
|
|
4623
4616
|
_resolveScalingConstraintState({ text: e, padding: t, state: n, transform: r, scaleX: i, scaleY: a }) {
|
|
4624
|
-
let { startHeight: o, startWidth: s, cannotScaleDownAtStart: c, crossedOppositeCorner: l, isProportionalScaling: u, lastAllowedScaleX: d, lastAllowedScaleY: f, startScaleY: p } = n, m = Math.max(X, s * i), h = Math.max(X, o * a), g = i < d - Z, _ = a < f - Z, v = a < p - Z, { canScaleHeight: y, canScaleWidth: b, isVerticalOnlyScale: x } =
|
|
4617
|
+
let { startHeight: o, startWidth: s, cannotScaleDownAtStart: c, crossedOppositeCorner: l, isProportionalScaling: u, lastAllowedScaleX: d, lastAllowedScaleY: f, startScaleY: p } = n, m = Math.max(X, s * i), h = Math.max(X, o * a), g = i < d - Z, _ = a < f - Z, v = a < p - Z, { canScaleHeight: y, canScaleWidth: b, isVerticalOnlyScale: x } = Nn({ transform: r }), S = b && g ? Bt({
|
|
4625
4618
|
text: e,
|
|
4626
4619
|
padding: t
|
|
4627
4620
|
}) : null, C = y && _ ? this._resolveMinimumTextFitHeight({
|
|
@@ -4640,7 +4633,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4640
4633
|
};
|
|
4641
4634
|
}
|
|
4642
4635
|
_resolvePreviewDimensions({ text: e, padding: t, state: n, appliedScaleX: r, appliedScaleY: i, minimumHeight: a }) {
|
|
4643
|
-
let o = n.canScaleWidth ? Math.max(X, n.startWidth * r) : n.startWidth, s = n.canScaleHeight ? Math.max(X, n.startHeight * i) : n.startManualBaseHeight, c = a ??
|
|
4636
|
+
let o = n.canScaleWidth ? Math.max(X, n.startWidth * r) : n.startWidth, s = n.canScaleHeight ? Math.max(X, n.startHeight * i) : n.startManualBaseHeight, c = a ?? Ht({
|
|
4644
4637
|
text: e,
|
|
4645
4638
|
width: o,
|
|
4646
4639
|
height: s,
|
|
@@ -4673,7 +4666,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4673
4666
|
if (!r) return !1;
|
|
4674
4667
|
let { transform: i } = e;
|
|
4675
4668
|
if (!i) return !1;
|
|
4676
|
-
let { canScaleWidth: a } =
|
|
4669
|
+
let { canScaleWidth: a } = Nn({ transform: i });
|
|
4677
4670
|
if (!a || !this._hasPointerReachedScaleOrigin({
|
|
4678
4671
|
event: e,
|
|
4679
4672
|
group: t,
|
|
@@ -4686,7 +4679,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4686
4679
|
if (!r) return !1;
|
|
4687
4680
|
let { transform: i } = e;
|
|
4688
4681
|
if (!i) return !1;
|
|
4689
|
-
let { canScaleHeight: a } =
|
|
4682
|
+
let { canScaleHeight: a } = Nn({ transform: i });
|
|
4690
4683
|
if (!a || !this._hasPointerReachedScaleOrigin({
|
|
4691
4684
|
event: e,
|
|
4692
4685
|
group: t,
|
|
@@ -4700,7 +4693,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4700
4693
|
if (!r) return !1;
|
|
4701
4694
|
let i = r, a = n === "x" ? i.signX : i.signY;
|
|
4702
4695
|
if (typeof a != "number" || !Number.isFinite(a)) return !1;
|
|
4703
|
-
let o =
|
|
4696
|
+
let o = Pn({
|
|
4704
4697
|
event: e.e,
|
|
4705
4698
|
group: t,
|
|
4706
4699
|
transform: r,
|
|
@@ -4717,19 +4710,19 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4717
4710
|
let a = this._resolveScalingStartDimensions({
|
|
4718
4711
|
group: e,
|
|
4719
4712
|
transform: r
|
|
4720
|
-
}), o =
|
|
4713
|
+
}), o = An({
|
|
4721
4714
|
transform: r,
|
|
4722
4715
|
key: "scaleX"
|
|
4723
|
-
}), s =
|
|
4716
|
+
}), s = An({
|
|
4724
4717
|
transform: r,
|
|
4725
4718
|
key: "scaleY"
|
|
4726
|
-
}), c =
|
|
4719
|
+
}), c = An({
|
|
4727
4720
|
transform: r,
|
|
4728
4721
|
key: "left"
|
|
4729
|
-
}), l =
|
|
4722
|
+
}), l = An({
|
|
4730
4723
|
transform: r,
|
|
4731
4724
|
key: "top"
|
|
4732
|
-
}), u = Math.abs(o ?? e.scaleX ?? 1) || 1, d = Math.abs(s ?? e.scaleY ?? 1) || 1, f = c ?? e.left ?? 0, p = l ?? e.top ?? 0, m =
|
|
4725
|
+
}), u = Math.abs(o ?? e.scaleX ?? 1) || 1, d = Math.abs(s ?? e.scaleY ?? 1) || 1, f = c ?? e.left ?? 0, p = l ?? e.top ?? 0, m = jn({ value: r?.original?.originX ?? r?.originX }), h = Mn({ value: r?.original?.originY ?? r?.originY }), g = typeof r?.corner == "string" ? r.corner : null, _ = Fn({
|
|
4733
4726
|
group: e,
|
|
4734
4727
|
originX: m,
|
|
4735
4728
|
originY: h
|
|
@@ -4772,7 +4765,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4772
4765
|
return i;
|
|
4773
4766
|
}
|
|
4774
4767
|
_resolveMinimumTextFitHeight({ text: e, width: t, padding: n }) {
|
|
4775
|
-
return
|
|
4768
|
+
return Ht({
|
|
4776
4769
|
text: e,
|
|
4777
4770
|
width: t,
|
|
4778
4771
|
height: X,
|
|
@@ -4796,7 +4789,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4796
4789
|
e.setPositionByOrigin(new p(n, r), i, a), e.setCoords();
|
|
4797
4790
|
}
|
|
4798
4791
|
_restoreShapeStateWithoutResize({ group: e, shape: t, text: n, state: r, startWidth: i, startHeight: a, alignH: o, alignV: s, padding: c }) {
|
|
4799
|
-
|
|
4792
|
+
Rt({
|
|
4800
4793
|
group: e,
|
|
4801
4794
|
shape: t,
|
|
4802
4795
|
text: n,
|
|
@@ -4819,7 +4812,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4819
4812
|
}
|
|
4820
4813
|
_restoreGroupTransformOnly({ group: e, shape: t, text: n, state: r }) {
|
|
4821
4814
|
let i = Math.max(X, e.shapeBaseWidth ?? e.width ?? r.startWidth), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? r.startHeight);
|
|
4822
|
-
t && (
|
|
4815
|
+
t && (gt({
|
|
4823
4816
|
shape: t,
|
|
4824
4817
|
width: i,
|
|
4825
4818
|
height: a,
|
|
@@ -4843,7 +4836,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4843
4836
|
});
|
|
4844
4837
|
}
|
|
4845
4838
|
_resolveScalingStartDimensions({ group: e, transform: t }) {
|
|
4846
|
-
let { canScaleWidth: n, canScaleHeight: r } =
|
|
4839
|
+
let { canScaleWidth: n, canScaleHeight: r } = Nn({ transform: t }), i = Math.max(X, e.shapeBaseWidth ?? e.width ?? e.shapeManualBaseWidth ?? X), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? e.shapeManualBaseHeight ?? X);
|
|
4847
4840
|
return {
|
|
4848
4841
|
startWidth: i,
|
|
4849
4842
|
startHeight: a,
|
|
@@ -4862,10 +4855,10 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4862
4855
|
height: s
|
|
4863
4856
|
};
|
|
4864
4857
|
}
|
|
4865
|
-
},
|
|
4858
|
+
}, Wn = class {
|
|
4866
4859
|
constructor({ canvas: e }) {
|
|
4867
4860
|
this.handleMouseDown = (e) => {
|
|
4868
|
-
let { target: t, e: n, subTargets: r = [] } = e, i =
|
|
4861
|
+
let { target: t, e: n, subTargets: r = [] } = e, i = En({
|
|
4869
4862
|
target: t,
|
|
4870
4863
|
subTargets: r
|
|
4871
4864
|
});
|
|
@@ -4875,7 +4868,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4875
4868
|
let o = this.canvas.getActiveObject(), s = o === i;
|
|
4876
4869
|
if (!(o === a && a.isEditing)) {
|
|
4877
4870
|
if (!s) {
|
|
4878
|
-
a.isEditing ||
|
|
4871
|
+
a.isEditing || fn({ text: a });
|
|
4879
4872
|
return;
|
|
4880
4873
|
}
|
|
4881
4874
|
n instanceof MouseEvent && (n.detail < 2 || this.enterTextEditing({ group: i }));
|
|
@@ -4895,7 +4888,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4895
4888
|
J(r) && (this._restoreTextEditingInteractionMode({
|
|
4896
4889
|
group: r,
|
|
4897
4890
|
text: n
|
|
4898
|
-
}),
|
|
4891
|
+
}), fn({ text: n }), this.canvas.getActiveObject() === n && this.canvas.setActiveObject(r), this.canvas.requestRenderAll());
|
|
4899
4892
|
}, this.canvas = e, this.editingInteractionState = /* @__PURE__ */ new WeakMap();
|
|
4900
4893
|
}
|
|
4901
4894
|
enterTextEditing({ group: e }) {
|
|
@@ -4946,7 +4939,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4946
4939
|
lockMovementY: n.textLockMovementY
|
|
4947
4940
|
}), this.editingInteractionState.delete(e), e.setCoords(), t.setCoords());
|
|
4948
4941
|
}
|
|
4949
|
-
},
|
|
4942
|
+
}, Gn = "#B0B5BF", Kn = 0, qn = 1, Jn = class {
|
|
4950
4943
|
constructor({ editor: e }) {
|
|
4951
4944
|
this._handleObjectScaling = (e) => {
|
|
4952
4945
|
this.scalingController.handleObjectScaling(e);
|
|
@@ -4983,18 +4976,18 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
4983
4976
|
textNode: r,
|
|
4984
4977
|
textStyle: n
|
|
4985
4978
|
});
|
|
4986
|
-
}, this.editor = e,
|
|
4979
|
+
}, this.editor = e, Tn(), this.scalingController = new Un({ canvas: e.canvas }), this.editingController = new Wn({ canvas: e.canvas }), this.editingPlacements = /* @__PURE__ */ new WeakMap(), this.internalTextUpdates = /* @__PURE__ */ new WeakSet(), this._bindEvents();
|
|
4987
4980
|
}
|
|
4988
|
-
async add({ presetKey: e =
|
|
4989
|
-
let n =
|
|
4981
|
+
async add({ presetKey: e = at, options: t = {} } = {}) {
|
|
4982
|
+
let n = lt({ presetKey: e });
|
|
4990
4983
|
if (!n) return null;
|
|
4991
|
-
let { width: r, height: i, shapeTextAutoExpand: a, left: o, top: s, originX: c, originY: l, text: u, textStyle: d, alignH: f, alignV: p, textPadding: m, rounding: h, withoutAdding: g, withoutSelection: _, withoutSave: v, id: y } = t, b =
|
|
4984
|
+
let { width: r, height: i, shapeTextAutoExpand: a, left: o, top: s, originX: c, originY: l, text: u, textStyle: d, alignH: f, alignV: p, textPadding: m, rounding: h, withoutAdding: g, withoutSelection: _, withoutSave: v, id: y } = t, b = lt({ presetKey: ut({
|
|
4992
4985
|
preset: n,
|
|
4993
4986
|
rounding: h
|
|
4994
4987
|
}) }) ?? n, x = Math.max(1, r ?? b.width), S = Math.max(1, i ?? b.height), C = a !== !1, w = this._resolveHorizontalAlign({
|
|
4995
4988
|
explicitAlign: f,
|
|
4996
4989
|
textStyle: d
|
|
4997
|
-
}), T = p ?? "middle", E =
|
|
4990
|
+
}), T = p ?? "middle", E = dt({
|
|
4998
4991
|
preset: b,
|
|
4999
4992
|
overridePadding: m
|
|
5000
4993
|
}), O = this._resolveShapeStyle({
|
|
@@ -5013,7 +5006,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5013
5006
|
shapeTextAutoExpandEnabled: C,
|
|
5014
5007
|
padding: E,
|
|
5015
5008
|
strokeWidth: O.strokeWidth
|
|
5016
|
-
}), j = await
|
|
5009
|
+
}), j = await _t({
|
|
5017
5010
|
preset: b,
|
|
5018
5011
|
width: A,
|
|
5019
5012
|
height: S,
|
|
@@ -5022,7 +5015,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5022
5015
|
}), M = this._createShapeGroup({
|
|
5023
5016
|
id: y ?? `shape-${D()}`,
|
|
5024
5017
|
presetKey: b.key,
|
|
5025
|
-
presetCanRound:
|
|
5018
|
+
presetCanRound: ft({ preset: b }),
|
|
5026
5019
|
shape: j,
|
|
5027
5020
|
text: k,
|
|
5028
5021
|
width: A,
|
|
@@ -5063,7 +5056,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5063
5056
|
async update({ target: e, presetKey: t, options: n = {} } = {}) {
|
|
5064
5057
|
let r = this._resolveShapeGroup({ target: e });
|
|
5065
5058
|
if (!r) return null;
|
|
5066
|
-
let i =
|
|
5059
|
+
let i = lt({ presetKey: t ?? r.shapePresetKey ?? "circle" });
|
|
5067
5060
|
if (!i) return null;
|
|
5068
5061
|
let { left: a, top: o, originX: s, originY: c, width: l, height: u, shapeTextAutoExpand: d, text: f, textStyle: p, alignH: m, alignV: h, textPadding: g, rounding: _, withoutSelection: v, withoutSave: y } = n, b = this.editor.canvasManager.resolveObjectPlacement({
|
|
5069
5062
|
object: r,
|
|
@@ -5071,10 +5064,10 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5071
5064
|
top: o,
|
|
5072
5065
|
originX: s,
|
|
5073
5066
|
originY: c
|
|
5074
|
-
}), x = this._resolveCurrentDimensions({ group: r }), S = Math.max(1, u ?? x.height), C = this._isShapeTextAutoExpandEnabled({ group: r }), w = d === void 0 ? C : d !== !1, T = _ ?? r.shapeRounding ?? 0, E =
|
|
5067
|
+
}), x = this._resolveCurrentDimensions({ group: r }), S = Math.max(1, u ?? x.height), C = this._isShapeTextAutoExpandEnabled({ group: r }), w = d === void 0 ? C : d !== !1, T = _ ?? r.shapeRounding ?? 0, E = lt({ presetKey: ut({
|
|
5075
5068
|
preset: i,
|
|
5076
5069
|
rounding: T
|
|
5077
|
-
}) }) ?? i, D = m ?? r.shapeAlignHorizontal ?? "center", O = h ?? r.shapeAlignVertical ?? "middle", k = this._resolveGroupPadding({ group: r }), A =
|
|
5070
|
+
}) }) ?? i, D = m ?? r.shapeAlignHorizontal ?? "center", O = h ?? r.shapeAlignVertical ?? "middle", k = this._resolveGroupPadding({ group: r }), A = dt({
|
|
5078
5071
|
preset: E,
|
|
5079
5072
|
overridePadding: g ?? k
|
|
5080
5073
|
}), j = this._resolveShapeStyle({
|
|
@@ -5116,7 +5109,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5116
5109
|
shapeTextAutoExpandEnabled: w,
|
|
5117
5110
|
padding: A,
|
|
5118
5111
|
strokeWidth: j.strokeWidth
|
|
5119
|
-
}), te = await
|
|
5112
|
+
}), te = await _t({
|
|
5120
5113
|
preset: E,
|
|
5121
5114
|
width: L,
|
|
5122
5115
|
height: S,
|
|
@@ -5133,7 +5126,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5133
5126
|
}), r.remove(P), r.insertAt(ne, te), this._applyShapeGroupMetadata({
|
|
5134
5127
|
group: r,
|
|
5135
5128
|
presetKey: E.key,
|
|
5136
|
-
presetCanRound:
|
|
5129
|
+
presetCanRound: ft({ preset: E }),
|
|
5137
5130
|
width: L,
|
|
5138
5131
|
height: S,
|
|
5139
5132
|
manualWidth: M,
|
|
@@ -5182,7 +5175,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5182
5175
|
if (!i) return null;
|
|
5183
5176
|
this._beginMutation();
|
|
5184
5177
|
try {
|
|
5185
|
-
|
|
5178
|
+
vt({
|
|
5186
5179
|
shape: i,
|
|
5187
5180
|
style: { fill: t }
|
|
5188
5181
|
}), r.shapeFill = t, r.setCoords(), this.editor.canvas.requestRenderAll();
|
|
@@ -5198,7 +5191,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5198
5191
|
if (!o) return null;
|
|
5199
5192
|
this._beginMutation();
|
|
5200
5193
|
try {
|
|
5201
|
-
|
|
5194
|
+
vt({
|
|
5202
5195
|
shape: o,
|
|
5203
5196
|
style: {
|
|
5204
5197
|
stroke: t,
|
|
@@ -5222,7 +5215,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5222
5215
|
if (!i) return null;
|
|
5223
5216
|
this._beginMutation();
|
|
5224
5217
|
try {
|
|
5225
|
-
|
|
5218
|
+
vt({
|
|
5226
5219
|
shape: i,
|
|
5227
5220
|
style: { opacity: t }
|
|
5228
5221
|
}), a && (a.set({ opacity: t }), a.setCoords()), r.shapeOpacity = t, r.setCoords(), this.editor.canvas.requestRenderAll();
|
|
@@ -5315,7 +5308,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5315
5308
|
e.on("object:scaling", this._handleObjectScaling), e.on("object:modified", this._handleObjectModified), e.on("mouse:move", this._handleMouseMove), e.on("mouse:down", this._handleMouseDown), e.on("text:editing:entered", this._handleTextEditingEntered), e.on("text:editing:exited", this._handleTextEditingExited), e.on("text:changed", this._handleTextChanged), e.on("editor:before:text-updated", this._handleBeforeTextUpdated);
|
|
5316
5309
|
}
|
|
5317
5310
|
_createShapeGroup({ id: e, presetKey: t, presetCanRound: n, shape: r, text: i, width: a, height: o, manualWidth: s, manualHeight: c, shapeTextAutoExpand: l, alignH: u, alignV: d, padding: f, style: p, rounding: m }) {
|
|
5318
|
-
let h = new
|
|
5311
|
+
let h = new wn([r, i], {
|
|
5319
5312
|
id: e,
|
|
5320
5313
|
originX: "center",
|
|
5321
5314
|
originY: "center",
|
|
@@ -5339,7 +5332,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5339
5332
|
padding: f,
|
|
5340
5333
|
style: p,
|
|
5341
5334
|
rounding: m
|
|
5342
|
-
}), h.rehydrateRuntimeState(),
|
|
5335
|
+
}), h.rehydrateRuntimeState(), kn({ group: h }), fn({ text: i }), Rt({
|
|
5343
5336
|
group: h,
|
|
5344
5337
|
shape: r,
|
|
5345
5338
|
text: i,
|
|
@@ -5395,7 +5388,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5395
5388
|
return s.set({
|
|
5396
5389
|
shapeNodeType: "text",
|
|
5397
5390
|
splitByGrapheme: !1
|
|
5398
|
-
}),
|
|
5391
|
+
}), fn({ text: s }), s;
|
|
5399
5392
|
}
|
|
5400
5393
|
_applyTextUpdates({ textNode: e, text: t, textStyle: n, align: r }) {
|
|
5401
5394
|
let i = {};
|
|
@@ -5485,7 +5478,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5485
5478
|
}
|
|
5486
5479
|
_resolveAutoExpandShapeWidth({ text: e, currentWidth: t, minimumWidth: n, padding: r, strokeWidth: i }) {
|
|
5487
5480
|
let a = this._resolveMontageAreaWidth();
|
|
5488
|
-
return a ?
|
|
5481
|
+
return a ? zt({
|
|
5489
5482
|
text: e,
|
|
5490
5483
|
currentWidth: t,
|
|
5491
5484
|
minimumWidth: n,
|
|
@@ -5518,7 +5511,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5518
5511
|
strokeWidth: e.shapeStrokeWidth
|
|
5519
5512
|
}) : Math.max(1, i);
|
|
5520
5513
|
let f = Math.max(1, a ?? c.height), p = r ?? this.editor.canvasManager.getObjectPlacement({ object: e });
|
|
5521
|
-
|
|
5514
|
+
Rt({
|
|
5522
5515
|
group: e,
|
|
5523
5516
|
shape: t,
|
|
5524
5517
|
text: n,
|
|
@@ -5555,21 +5548,21 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5555
5548
|
return this.editingPlacements.get(e) || this.editor.canvasManager.getObjectPlacement({ object: e });
|
|
5556
5549
|
}
|
|
5557
5550
|
_detachShapeGroupAutoLayout({ group: e }) {
|
|
5558
|
-
|
|
5551
|
+
pn({ group: e });
|
|
5559
5552
|
}
|
|
5560
5553
|
_resolveHorizontalAlign({ explicitAlign: e, textStyle: t }) {
|
|
5561
5554
|
if (e) return e;
|
|
5562
5555
|
let n = t?.align;
|
|
5563
|
-
return n === "left" || n === "center" || n === "right" ? n :
|
|
5556
|
+
return n === "left" || n === "center" || n === "right" ? n : ot;
|
|
5564
5557
|
}
|
|
5565
5558
|
_resolveShapeStyle({ options: e, fallback: t }) {
|
|
5566
5559
|
let { fill: n, stroke: r, strokeWidth: i, strokeDashArray: a, opacity: o } = e, s = a === void 0 ? t?.shapeStrokeDashArray : a;
|
|
5567
5560
|
return {
|
|
5568
|
-
fill: n ?? t?.shapeFill ??
|
|
5561
|
+
fill: n ?? t?.shapeFill ?? Gn,
|
|
5569
5562
|
stroke: r ?? t?.shapeStroke ?? null,
|
|
5570
|
-
strokeWidth: i ?? t?.shapeStrokeWidth ??
|
|
5563
|
+
strokeWidth: i ?? t?.shapeStrokeWidth ?? Kn,
|
|
5571
5564
|
strokeDashArray: s ?? null,
|
|
5572
|
-
opacity: o ?? t?.shapeOpacity ??
|
|
5565
|
+
opacity: o ?? t?.shapeOpacity ?? qn
|
|
5573
5566
|
};
|
|
5574
5567
|
}
|
|
5575
5568
|
_beginMutation() {
|
|
@@ -5605,7 +5598,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5605
5598
|
}
|
|
5606
5599
|
return null;
|
|
5607
5600
|
}
|
|
5608
|
-
},
|
|
5601
|
+
}, Yn = class {
|
|
5609
5602
|
constructor({ editor: e }) {
|
|
5610
5603
|
this.editor = e, this.clipboard = null;
|
|
5611
5604
|
}
|
|
@@ -5624,7 +5617,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5624
5617
|
async _cloneToInternalClipboard(e) {
|
|
5625
5618
|
let { canvas: t, errorManager: n } = this.editor;
|
|
5626
5619
|
try {
|
|
5627
|
-
let n = await e.clone(
|
|
5620
|
+
let n = await e.clone(Le);
|
|
5628
5621
|
this.clipboard = n, t.fire("editor:object-copied", { object: n });
|
|
5629
5622
|
} catch (e) {
|
|
5630
5623
|
n.emitError({
|
|
@@ -5645,7 +5638,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5645
5638
|
message: "navigator.clipboard не поддерживается в этом браузере или отсутствует HTTPS-соединение."
|
|
5646
5639
|
}), !1;
|
|
5647
5640
|
try {
|
|
5648
|
-
let t = e.toObject(
|
|
5641
|
+
let t = e.toObject(Le), n = JSON.stringify(t);
|
|
5649
5642
|
return e.type === "image" ? this._copyImageToClipboard(e, n) : this._copyTextToClipboard(n);
|
|
5650
5643
|
} catch (e) {
|
|
5651
5644
|
return t.emitError({
|
|
@@ -5675,7 +5668,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5675
5668
|
}
|
|
5676
5669
|
async _copyTextToClipboard(e) {
|
|
5677
5670
|
try {
|
|
5678
|
-
let t = `${
|
|
5671
|
+
let t = `${Ie}${e}`;
|
|
5679
5672
|
return await navigator.clipboard.writeText(t), console.info("Text copied to clipboard successfully"), !0;
|
|
5680
5673
|
} catch (e) {
|
|
5681
5674
|
let { errorManager: t } = this.editor;
|
|
@@ -5748,7 +5741,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5748
5741
|
let { canvas: n } = this.editor, r = t || n.getActiveObject();
|
|
5749
5742
|
if (!r || r.locked) return !1;
|
|
5750
5743
|
try {
|
|
5751
|
-
let t = await r.clone(
|
|
5744
|
+
let t = await r.clone(Le);
|
|
5752
5745
|
return t instanceof e && t.forEachObject((e) => {
|
|
5753
5746
|
e.set({
|
|
5754
5747
|
id: `${e.type}-${D()}`,
|
|
@@ -5822,7 +5815,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5822
5815
|
let { canvas: t } = this.editor;
|
|
5823
5816
|
if (!this.clipboard) return !1;
|
|
5824
5817
|
try {
|
|
5825
|
-
let n = await this.clipboard.clone(
|
|
5818
|
+
let n = await this.clipboard.clone(Le);
|
|
5826
5819
|
return t.discardActiveObject(), n instanceof e && n.forEachObject((e) => {
|
|
5827
5820
|
e.set({
|
|
5828
5821
|
id: `${e.type}-${D()}`,
|
|
@@ -5849,7 +5842,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5849
5842
|
}), !1;
|
|
5850
5843
|
}
|
|
5851
5844
|
}
|
|
5852
|
-
},
|
|
5845
|
+
}, Xn = class t {
|
|
5853
5846
|
constructor({ editor: e }) {
|
|
5854
5847
|
this.editor = e;
|
|
5855
5848
|
}
|
|
@@ -5899,7 +5892,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5899
5892
|
static _isGroupOrSelection(t) {
|
|
5900
5893
|
return t instanceof e || t instanceof l;
|
|
5901
5894
|
}
|
|
5902
|
-
},
|
|
5895
|
+
}, Zn = class {
|
|
5903
5896
|
constructor({ editor: e }) {
|
|
5904
5897
|
this.editor = e;
|
|
5905
5898
|
}
|
|
@@ -5965,7 +5958,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
5965
5958
|
i.resumeHistory(), n || i.saveState();
|
|
5966
5959
|
}
|
|
5967
5960
|
}
|
|
5968
|
-
},
|
|
5961
|
+
}, Qn = class t {
|
|
5969
5962
|
constructor({ editor: e }) {
|
|
5970
5963
|
this.lastSelection = [], this.isCtrlSelectionBoxActive = !1, this.isSelectionMergeInProgress = !1, this.editor = e, this.selectionKey = this._resolveSelectionKey(), this.handleTextEditingEnteredBound = this._handleTextEditingEntered.bind(this), this.handleTextEditingExitedBound = this._handleTextEditingExited.bind(this), this.handleLockedSelectionBound = this._filterLockedSelection.bind(this), this.handleSelectionMergeBound = this._handleSelectionMerge.bind(this), this.handleSelectionChangeBound = this._handleSelectionChange.bind(this), this.handleSelectionClearedBound = this._handleSelectionCleared.bind(this), this.handleSelectionBoxStartBound = this._handleSelectionBoxStart.bind(this), this.handleSelectionBoxEndBound = this._handleSelectionBoxEnd.bind(this), this._applySelectionKey({ selectionKey: this.selectionKey }), this._bindEvents();
|
|
5971
5964
|
}
|
|
@@ -6159,7 +6152,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6159
6152
|
let { options: e } = this.editor, { selectionKey: t } = e;
|
|
6160
6153
|
return t === void 0 ? ["ctrlKey", "metaKey"] : t;
|
|
6161
6154
|
}
|
|
6162
|
-
},
|
|
6155
|
+
}, $n = class e {
|
|
6163
6156
|
constructor({ editor: e }) {
|
|
6164
6157
|
this.editor = e;
|
|
6165
6158
|
}
|
|
@@ -6197,7 +6190,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6197
6190
|
};
|
|
6198
6191
|
return i.fire("editor:objects-deleted", c), c;
|
|
6199
6192
|
}
|
|
6200
|
-
},
|
|
6193
|
+
}, er = {
|
|
6201
6194
|
IMAGE_MANAGER: {
|
|
6202
6195
|
INVALID_CONTENT_TYPE: "INVALID_CONTENT_TYPE",
|
|
6203
6196
|
INVALID_SOURCE_TYPE: "INVALID_SOURCE_TYPE",
|
|
@@ -6235,7 +6228,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6235
6228
|
INVALID_TARGET: "TEMPLATE_INVALID_TARGET",
|
|
6236
6229
|
APPLY_FAILED: "TEMPLATE_APPLY_FAILED"
|
|
6237
6230
|
}
|
|
6238
|
-
},
|
|
6231
|
+
}, tr = class e {
|
|
6239
6232
|
constructor({ editor: e }) {
|
|
6240
6233
|
this._buffer = [], this.editor = e;
|
|
6241
6234
|
}
|
|
@@ -6293,9 +6286,9 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6293
6286
|
}), this.editor.canvas.fire("editor:warning", s);
|
|
6294
6287
|
}
|
|
6295
6288
|
static isValidErrorCode(e) {
|
|
6296
|
-
return e ? Object.values(
|
|
6289
|
+
return e ? Object.values(er).some((t) => Object.values(t).includes(e)) : !1;
|
|
6297
6290
|
}
|
|
6298
|
-
},
|
|
6291
|
+
}, nr = class {
|
|
6299
6292
|
constructor({ editor: e }) {
|
|
6300
6293
|
this.currentBounds = null, this.editor = e;
|
|
6301
6294
|
}
|
|
@@ -6344,32 +6337,32 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6344
6337
|
updateBounds() {
|
|
6345
6338
|
this.currentBounds = this.calculatePanBounds();
|
|
6346
6339
|
}
|
|
6347
|
-
},
|
|
6340
|
+
}, rr = ({ textbox: e }) => {
|
|
6348
6341
|
if (!e.isEditing) return null;
|
|
6349
6342
|
let t = e.selectionStart ?? 0, n = e.selectionEnd ?? t;
|
|
6350
6343
|
return t === n ? null : {
|
|
6351
6344
|
start: Math.min(t, n),
|
|
6352
6345
|
end: Math.max(t, n)
|
|
6353
6346
|
};
|
|
6354
|
-
},
|
|
6347
|
+
}, ir = ({ textbox: e }) => {
|
|
6355
6348
|
let t = e.text?.length ?? 0;
|
|
6356
6349
|
return t <= 0 ? null : {
|
|
6357
6350
|
start: 0,
|
|
6358
6351
|
end: t
|
|
6359
6352
|
};
|
|
6360
|
-
},
|
|
6353
|
+
}, ar = ({ textbox: e, range: t }) => {
|
|
6361
6354
|
if (!t) return !1;
|
|
6362
6355
|
let n = e.text?.length ?? 0;
|
|
6363
6356
|
return n <= 0 ? !1 : t.start <= 0 && t.end >= n;
|
|
6364
|
-
},
|
|
6357
|
+
}, or = ({ textbox: e, styles: t, range: n }) => {
|
|
6365
6358
|
if (!t || !Object.keys(t).length) return !1;
|
|
6366
6359
|
let { start: r, end: i } = n;
|
|
6367
6360
|
return i <= r ? !1 : (e.setSelectionStyles(t, r, i), !0);
|
|
6368
|
-
},
|
|
6361
|
+
}, sr = ({ textbox: e, range: t, property: n }) => {
|
|
6369
6362
|
if (!t) return;
|
|
6370
6363
|
let r = e.getSelectionStyles(t.start, t.end, !0);
|
|
6371
6364
|
if (r.length) return r[0]?.[n];
|
|
6372
|
-
},
|
|
6365
|
+
}, cr = ({ strokeColor: e, width: t }) => t <= 0 ? null : e ?? "#000000", lr = ({ width: e = 0 }) => e ? Math.max(0, e) : 0, ur = ({ value: e }) => typeof e == "string" ? e.toLocaleUpperCase() : "", dr = ({ value: e, min: t, max: n }) => Math.min(Math.max(e, t), n), fr = class e extends _ {
|
|
6373
6366
|
static {
|
|
6374
6367
|
this.type = "background-textbox";
|
|
6375
6368
|
}
|
|
@@ -6494,7 +6487,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6494
6487
|
this._removeShadow(e);
|
|
6495
6488
|
}
|
|
6496
6489
|
_getDecorationColorAt(e, t) {
|
|
6497
|
-
let n = this.getValueOfPropertyAt(e, t, "strokeWidth"), r =
|
|
6490
|
+
let n = this.getValueOfPropertyAt(e, t, "strokeWidth"), r = lr({ width: typeof n == "number" && Number.isFinite(n) ? n : 0 }), i = this.getValueOfPropertyAt(e, t, "stroke"), a = i == null ? null : cr({
|
|
6498
6491
|
strokeColor: i,
|
|
6499
6492
|
width: r
|
|
6500
6493
|
});
|
|
@@ -6510,22 +6503,22 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6510
6503
|
_getCornerRadii({ width: e, height: t }) {
|
|
6511
6504
|
let n = e / 2, r = t / 2, i = Math.min(n, r);
|
|
6512
6505
|
return {
|
|
6513
|
-
bottomLeft:
|
|
6506
|
+
bottomLeft: dr({
|
|
6514
6507
|
value: this.radiusBottomLeft ?? 0,
|
|
6515
6508
|
min: 0,
|
|
6516
6509
|
max: i
|
|
6517
6510
|
}),
|
|
6518
|
-
bottomRight:
|
|
6511
|
+
bottomRight: dr({
|
|
6519
6512
|
value: this.radiusBottomRight ?? 0,
|
|
6520
6513
|
min: 0,
|
|
6521
6514
|
max: i
|
|
6522
6515
|
}),
|
|
6523
|
-
topLeft:
|
|
6516
|
+
topLeft: dr({
|
|
6524
6517
|
value: this.radiusTopLeft ?? 0,
|
|
6525
6518
|
min: 0,
|
|
6526
6519
|
max: i
|
|
6527
6520
|
}),
|
|
6528
|
-
topRight:
|
|
6521
|
+
topRight: dr({
|
|
6529
6522
|
value: this.radiusTopRight ?? 0,
|
|
6530
6523
|
min: 0,
|
|
6531
6524
|
max: i
|
|
@@ -6543,7 +6536,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6543
6536
|
_getEffectiveBackgroundFill() {
|
|
6544
6537
|
let e = this.backgroundColor;
|
|
6545
6538
|
if (!e) return null;
|
|
6546
|
-
let t =
|
|
6539
|
+
let t = dr({
|
|
6547
6540
|
value: this.backgroundOpacity ?? 1,
|
|
6548
6541
|
min: 0,
|
|
6549
6542
|
max: 1
|
|
@@ -6551,7 +6544,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6551
6544
|
try {
|
|
6552
6545
|
r = new n(e);
|
|
6553
6546
|
} catch (t) {
|
|
6554
|
-
return
|
|
6547
|
+
return tr.emitError({
|
|
6555
6548
|
origin: "BackgroundTextbox",
|
|
6556
6549
|
method: "_getEffectiveBackgroundFill",
|
|
6557
6550
|
code: "INVALID_COLOR_VALUE",
|
|
@@ -6565,19 +6558,19 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6565
6558
|
return r.setAlpha(t), r.toRgba();
|
|
6566
6559
|
}
|
|
6567
6560
|
static _renderRoundedRect({ ctx: e, height: t, left: n, radii: r, top: i, width: a }) {
|
|
6568
|
-
let o = n + a, s = i + t, { topLeft: c, topRight: l, bottomRight: u, bottomLeft: d } = r, f =
|
|
6561
|
+
let o = n + a, s = i + t, { topLeft: c, topRight: l, bottomRight: u, bottomLeft: d } = r, f = dr({
|
|
6569
6562
|
value: c,
|
|
6570
6563
|
min: 0,
|
|
6571
6564
|
max: a
|
|
6572
|
-
}), p =
|
|
6565
|
+
}), p = dr({
|
|
6573
6566
|
value: l,
|
|
6574
6567
|
min: 0,
|
|
6575
6568
|
max: a
|
|
6576
|
-
}), m =
|
|
6569
|
+
}), m = dr({
|
|
6577
6570
|
value: u,
|
|
6578
6571
|
min: 0,
|
|
6579
6572
|
max: a
|
|
6580
|
-
}), h =
|
|
6573
|
+
}), h = dr({
|
|
6581
6574
|
value: d,
|
|
6582
6575
|
min: 0,
|
|
6583
6576
|
max: a
|
|
@@ -6588,9 +6581,9 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6588
6581
|
let { width: e = 0, height: t = 0 } = this, n = Math.round(e), r = Math.round(t);
|
|
6589
6582
|
n !== e && (this.width = Math.max(0, n)), r !== t && (this.height = Math.max(0, r));
|
|
6590
6583
|
}
|
|
6591
|
-
},
|
|
6592
|
-
y?.setClass && y.setClass(
|
|
6593
|
-
},
|
|
6584
|
+
}, pr = () => {
|
|
6585
|
+
y?.setClass && y.setClass(fr, "background-textbox");
|
|
6586
|
+
}, mr = .01, hr = ({ textbox: e, lineIndices: t, updates: n }) => {
|
|
6594
6587
|
if (!t.length) return !1;
|
|
6595
6588
|
let { fontFamily: r, fontSize: i, fill: a, stroke: o } = n;
|
|
6596
6589
|
if (!(r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0)) return !1;
|
|
@@ -6602,7 +6595,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6602
6595
|
r !== void 0 && d?.fontFamily !== r && (f.fontFamily = r, p = !0), i !== void 0 && d?.fontSize !== i && (f.fontSize = i, p = !0), a !== void 0 && d?.fill !== a && (f.fill = a, p = !0), o !== void 0 && (o === null && d?.stroke !== void 0 && (delete f.stroke, p = !0), o !== null && d?.stroke !== o && (f.stroke = o, p = !0)), p && (u ||= (c = { ...c }, !0), c[n] = f, l = !0);
|
|
6603
6596
|
}
|
|
6604
6597
|
return l && (e.lineFontDefaults = c), l;
|
|
6605
|
-
},
|
|
6598
|
+
}, gr = ({ lineText: e, lineStyles: t, lineDefaults: n }) => {
|
|
6606
6599
|
let r = e.length;
|
|
6607
6600
|
if (r === 0) return {
|
|
6608
6601
|
lineStyles: t,
|
|
@@ -6634,7 +6627,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6634
6627
|
lineStyles: l,
|
|
6635
6628
|
changed: u
|
|
6636
6629
|
};
|
|
6637
|
-
},
|
|
6630
|
+
}, _r = ({ lineFontDefaults: e }) => {
|
|
6638
6631
|
if (!e) return;
|
|
6639
6632
|
let t = {};
|
|
6640
6633
|
for (let n in e) {
|
|
@@ -6645,7 +6638,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6645
6638
|
i && (t[r] = { ...i });
|
|
6646
6639
|
}
|
|
6647
6640
|
return t;
|
|
6648
|
-
},
|
|
6641
|
+
}, vr = ({ lineFontDefaults: e, scale: t }) => {
|
|
6649
6642
|
if (!e || !Number.isFinite(t) || Math.abs(t - 1) < .01) return;
|
|
6650
6643
|
let n = {}, r = !1, i = !1;
|
|
6651
6644
|
for (let a in e) {
|
|
@@ -6658,7 +6651,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6658
6651
|
typeof s.fontSize == "number" && (c.fontSize = Math.max(1, s.fontSize * t), i = !0), n[o] = c, r = !0;
|
|
6659
6652
|
}
|
|
6660
6653
|
if (!(!r || !i)) return n;
|
|
6661
|
-
},
|
|
6654
|
+
}, yr = ({ textbox: e }) => {
|
|
6662
6655
|
let t = e.text ?? "";
|
|
6663
6656
|
if (!t.length) return [];
|
|
6664
6657
|
let n = t.split("\n"), r = [], i = 0;
|
|
@@ -6670,7 +6663,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6670
6663
|
});
|
|
6671
6664
|
}
|
|
6672
6665
|
return r;
|
|
6673
|
-
},
|
|
6666
|
+
}, br = ({ range: e, text: t }) => {
|
|
6674
6667
|
if (!e) return null;
|
|
6675
6668
|
let n = t.length;
|
|
6676
6669
|
if (n <= 0) return null;
|
|
@@ -6679,8 +6672,8 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6679
6672
|
start: l,
|
|
6680
6673
|
end: u
|
|
6681
6674
|
};
|
|
6682
|
-
},
|
|
6683
|
-
let n =
|
|
6675
|
+
}, xr = ({ textbox: e, range: t }) => {
|
|
6676
|
+
let n = yr({ textbox: e });
|
|
6684
6677
|
if (!n.length) return t;
|
|
6685
6678
|
let { start: r } = t, { end: i } = t;
|
|
6686
6679
|
for (let e = 0; e < n.length; e += 1) {
|
|
@@ -6693,7 +6686,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6693
6686
|
start: r,
|
|
6694
6687
|
end: i
|
|
6695
6688
|
};
|
|
6696
|
-
},
|
|
6689
|
+
}, Sr = ({ textbox: e, range: t }) => {
|
|
6697
6690
|
let n = e.text ?? "";
|
|
6698
6691
|
if (!n.length) return [];
|
|
6699
6692
|
let { start: r, end: i } = t, a = n.split("\n"), o = [], s = 0;
|
|
@@ -6702,7 +6695,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6702
6695
|
i > n && r < c && o.push(e), s = c + 1;
|
|
6703
6696
|
}
|
|
6704
6697
|
return o;
|
|
6705
|
-
},
|
|
6698
|
+
}, Cr = ({ textbox: e, range: t }) => {
|
|
6706
6699
|
let n = e.text ?? "";
|
|
6707
6700
|
if (!n.length) return [];
|
|
6708
6701
|
let { start: r, end: i } = t, a = n.split("\n"), o = [], s = 0;
|
|
@@ -6711,33 +6704,33 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6711
6704
|
r <= n && i >= c && o.push(e), s = c + 1;
|
|
6712
6705
|
}
|
|
6713
6706
|
return o;
|
|
6714
|
-
},
|
|
6707
|
+
}, wr = ({ previous: e, next: t }) => {
|
|
6715
6708
|
let n = Math.min(e.length, t.length);
|
|
6716
6709
|
for (let r = 0; r < n; r += 1) if (e[r] !== t[r]) return r;
|
|
6717
6710
|
return n;
|
|
6718
|
-
},
|
|
6711
|
+
}, Tr = ({ text: e, charIndex: t }) => {
|
|
6719
6712
|
let n = Math.max(0, Math.min(t, e.length)), r = 0;
|
|
6720
6713
|
for (let t = 0; t < n; t += 1) e[t] === "\n" && (r += 1);
|
|
6721
6714
|
return r;
|
|
6722
|
-
},
|
|
6715
|
+
}, Er = ({ text: e, lineIndex: t }) => {
|
|
6723
6716
|
if (t <= 0) return 0;
|
|
6724
6717
|
let n = 0;
|
|
6725
6718
|
for (let r = 0; r < e.length; r += 1) if (e[r] === "\n" && (n += 1, n === t)) return r + 1;
|
|
6726
6719
|
return e.length;
|
|
6727
|
-
},
|
|
6720
|
+
}, Dr = ({ textbox: e, text: t }) => {
|
|
6728
6721
|
let { textLines: n } = e, r = Array.isArray(n) && n.length > 0 ? n.length : Math.max(t.split("\n").length, 1), i = 0;
|
|
6729
6722
|
for (let t = 0; t < r; t += 1) {
|
|
6730
6723
|
let n = e.getLineWidth(t);
|
|
6731
6724
|
n > i && (i = n);
|
|
6732
6725
|
}
|
|
6733
6726
|
return i;
|
|
6734
|
-
},
|
|
6727
|
+
}, Or = ({ textbox: e, montageLeft: t, montageRight: n }) => {
|
|
6735
6728
|
e.setCoords();
|
|
6736
6729
|
let r = e.getBoundingRect(!1, !0), i = r.left ?? 0, a = i + (r.width ?? 0), o = n - t;
|
|
6737
6730
|
if (o > 0 && (r.width ?? 0) >= o - .01) return !1;
|
|
6738
6731
|
let s = 0;
|
|
6739
6732
|
return i < t ? s = t - i : a > n && (s = n - a), Math.abs(s) <= .01 ? !1 : (e.set({ left: (e.left ?? 0) + s }), !0);
|
|
6740
|
-
},
|
|
6733
|
+
}, kr = ({ rawValue: e, calculatedValue: t }) => typeof e == "number" ? e : typeof t == "number" ? t : 0, Ar = ({ stylesList: e }) => {
|
|
6741
6734
|
let t = e.length;
|
|
6742
6735
|
if (!t) return !1;
|
|
6743
6736
|
for (let n = 0; n < t; n += 1) {
|
|
@@ -6747,16 +6740,16 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6747
6740
|
if (r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0 || s !== void 0 || c !== void 0) return !0;
|
|
6748
6741
|
}
|
|
6749
6742
|
return !1;
|
|
6750
|
-
},
|
|
6751
|
-
let { width: t, height: n, calcTextWidth: r, calcTextHeight: i } = e, a = typeof r == "function" ? r.call(e) : void 0, o = typeof i == "function" ? i.call(e) : void 0, s =
|
|
6743
|
+
}, jr = ({ textbox: e }) => {
|
|
6744
|
+
let { width: t, height: n, calcTextWidth: r, calcTextHeight: i } = e, a = typeof r == "function" ? r.call(e) : void 0, o = typeof i == "function" ? i.call(e) : void 0, s = kr({
|
|
6752
6745
|
rawValue: t,
|
|
6753
6746
|
calculatedValue: a
|
|
6754
|
-
}), c =
|
|
6747
|
+
}), c = kr({
|
|
6755
6748
|
rawValue: n,
|
|
6756
6749
|
calculatedValue: o
|
|
6757
6750
|
}), l = Number.isFinite(s) ? Math.round(s) : null, u = Number.isFinite(c) ? Math.round(c) : null, d = {};
|
|
6758
6751
|
return l !== null && l !== s && (d.width = Math.max(0, l)), u !== null && u !== c && (d.height = Math.max(0, u)), Object.keys(d).length ? (e.set(d), !0) : !1;
|
|
6759
|
-
},
|
|
6752
|
+
}, Mr = class t {
|
|
6760
6753
|
constructor({ editor: n }) {
|
|
6761
6754
|
this._handleTextEditingEntered = (e) => {
|
|
6762
6755
|
this.isTextEditingActive = !0;
|
|
@@ -6769,7 +6762,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6769
6762
|
if (!t._isTextbox(n) || this.lineDefaultsSyncing.has(n)) return;
|
|
6770
6763
|
let r = t._isShapeOwnedTextbox(n), { text: i = "", uppercase: a, autoExpand: o } = n, s = !!a, c = o !== !1, l = i.toLocaleLowerCase(), u = r ? null : this.editingPlacementState?.get(n) ?? this.editor.canvasManager.getObjectPlacement({ object: n });
|
|
6771
6764
|
if (s) {
|
|
6772
|
-
let e =
|
|
6765
|
+
let e = ur({ value: l });
|
|
6773
6766
|
e !== i && n.set({ text: e }), n.textCaseRaw = l;
|
|
6774
6767
|
} else n.textCaseRaw = i;
|
|
6775
6768
|
if (!r && o === void 0 && (n.autoExpand = !0), r) {
|
|
@@ -6787,7 +6780,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6787
6780
|
let r = t._isShapeOwnedTextbox(n);
|
|
6788
6781
|
this.editingPlacementState?.delete(n);
|
|
6789
6782
|
let i = n.text ?? "";
|
|
6790
|
-
n.uppercase ? n.textCaseRaw = n.textCaseRaw ?? i.toLocaleLowerCase() : n.textCaseRaw = i, r || (
|
|
6783
|
+
n.uppercase ? n.textCaseRaw = n.textCaseRaw ?? i.toLocaleLowerCase() : n.textCaseRaw = i, r || (jr({ textbox: n }) && (n.setCoords(), n.dirty = !0, this.canvas.requestRenderAll()), n.locked || n.set({
|
|
6791
6784
|
lockMovementX: !1,
|
|
6792
6785
|
lockMovementY: !1
|
|
6793
6786
|
}));
|
|
@@ -6850,7 +6843,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6850
6843
|
}), Object.keys(e).length && (ne = e);
|
|
6851
6844
|
}
|
|
6852
6845
|
let R;
|
|
6853
|
-
y && (R =
|
|
6846
|
+
y && (R = vr({
|
|
6854
6847
|
lineFontDefaults: f,
|
|
6855
6848
|
scale: x
|
|
6856
6849
|
}));
|
|
@@ -6858,7 +6851,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6858
6851
|
object: r,
|
|
6859
6852
|
originX: i.originX ?? r.originX,
|
|
6860
6853
|
originY: i.originY ?? r.originY
|
|
6861
|
-
}), z = P ?? p, ie = C !== z, B = Math.abs(w - (N ?? c)) >
|
|
6854
|
+
}), z = P ?? p, ie = C !== z, B = Math.abs(w - (N ?? c)) > mr, ae = Math.abs(I.top - T) > .01 || Math.abs(I.right - E) > .01 || Math.abs(I.bottom - D) > .01 || Math.abs(I.left - O) > .01, V = Math.abs(L.topLeft - k) > .01 || Math.abs(L.topRight - A) > .01 || Math.abs(L.bottomRight - j) > .01 || Math.abs(L.bottomLeft - M) > .01;
|
|
6862
6855
|
if (!ie && !B && !ae && !V) {
|
|
6863
6856
|
r.set({
|
|
6864
6857
|
scaleX: 1,
|
|
@@ -6880,20 +6873,20 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6880
6873
|
scaleX: 1,
|
|
6881
6874
|
scaleY: 1
|
|
6882
6875
|
});
|
|
6883
|
-
let
|
|
6876
|
+
let oe = !1;
|
|
6884
6877
|
if (y && r.autoExpand !== !1) {
|
|
6885
6878
|
let e = this._getTextboxUnwrappedWidth({ textbox: r });
|
|
6886
|
-
e !== null && Math.abs((r.width ?? 0) - e) > .01 && (r.set({ width: e }), r.initDimensions(),
|
|
6879
|
+
e !== null && Math.abs((r.width ?? 0) - e) > .01 && (r.set({ width: e }), r.initDimensions(), oe = !0);
|
|
6887
6880
|
} else r.initDimensions();
|
|
6888
|
-
let
|
|
6889
|
-
(
|
|
6881
|
+
let se = jr({ textbox: r });
|
|
6882
|
+
(se || oe) && (r.dirty = !0), a.applyObjectPlacement({
|
|
6890
6883
|
object: r,
|
|
6891
6884
|
placement: re
|
|
6892
6885
|
});
|
|
6893
|
-
let
|
|
6886
|
+
let ce = r.width ?? C, le = ce !== z;
|
|
6894
6887
|
i.scaleX = 1, i.scaleY = 1;
|
|
6895
|
-
let { original:
|
|
6896
|
-
|
|
6888
|
+
let { original: H } = i;
|
|
6889
|
+
H && (H.scaleX = 1, H.scaleY = 1, H.width = ce, H.height = r.height, H.left = r.left, H.top = r.top), r.setCoords(), this.canvas.requestRenderAll(), o.baseWidth = ce, o.baseFontSize = r.fontSize ?? w, o.baseStyles = JSON.parse(JSON.stringify(r.styles ?? {})), o.baseLineFontDefaults = _r({ lineFontDefaults: r.lineFontDefaults }), o.basePadding = {
|
|
6897
6890
|
top: I.top,
|
|
6898
6891
|
right: I.right,
|
|
6899
6892
|
bottom: I.bottom,
|
|
@@ -6903,7 +6896,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6903
6896
|
topRight: L.topRight,
|
|
6904
6897
|
bottomRight: L.bottomRight,
|
|
6905
6898
|
bottomLeft: L.bottomLeft
|
|
6906
|
-
}, o.hasWidthChange =
|
|
6899
|
+
}, o.hasWidthChange = le || B || ae || V || oe || se;
|
|
6907
6900
|
}, this._handleObjectModified = (n) => {
|
|
6908
6901
|
let { target: r } = n;
|
|
6909
6902
|
if (r instanceof e) {
|
|
@@ -6929,7 +6922,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6929
6922
|
typeof e.fontSize == "number" && (e.fontSize = Math.max(1, e.fontSize * a));
|
|
6930
6923
|
});
|
|
6931
6924
|
}));
|
|
6932
|
-
let v =
|
|
6925
|
+
let v = vr({
|
|
6933
6926
|
lineFontDefaults: e.lineFontDefaults,
|
|
6934
6927
|
scale: a
|
|
6935
6928
|
}), y = {
|
|
@@ -6941,7 +6934,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6941
6934
|
...g,
|
|
6942
6935
|
styles: _
|
|
6943
6936
|
};
|
|
6944
|
-
v && (y.lineFontDefaults = v), e.set(y),
|
|
6937
|
+
v && (y.lineFontDefaults = v), e.set(y), jr({ textbox: e });
|
|
6945
6938
|
}
|
|
6946
6939
|
e.setCoords();
|
|
6947
6940
|
});
|
|
@@ -6971,12 +6964,12 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
6971
6964
|
scaleX: 1,
|
|
6972
6965
|
scaleY: 1
|
|
6973
6966
|
}), r.setCoords();
|
|
6974
|
-
}, this.editor = n, this.canvas = n.canvas, this.fonts = n.options.fonts ?? [], this.scalingState = /* @__PURE__ */ new WeakMap(), this.editingPlacementState = /* @__PURE__ */ new WeakMap(), this.lineDefaultsSyncing = /* @__PURE__ */ new WeakSet(), this.isTextEditingActive = !1, this._bindEvents(),
|
|
6967
|
+
}, this.editor = n, this.canvas = n.canvas, this.fonts = n.options.fonts ?? [], this.scalingState = /* @__PURE__ */ new WeakMap(), this.editingPlacementState = /* @__PURE__ */ new WeakMap(), this.lineDefaultsSyncing = /* @__PURE__ */ new WeakSet(), this.isTextEditingActive = !1, this._bindEvents(), pr();
|
|
6975
6968
|
}
|
|
6976
6969
|
addText({ id: e = `text-${D()}`, text: n = "Новый текст", autoExpand: r = !0, fontFamily: i, fontSize: a = 48, bold: o = !1, italic: s = !1, underline: c = !1, uppercase: l = !1, strikethrough: u = !1, align: d = "left", color: f = "#000000", strokeColor: p, strokeWidth: m = 0, opacity: h = 1, backgroundColor: g, backgroundOpacity: _ = 1, paddingTop: v = 0, paddingRight: y = 0, paddingBottom: b = 0, paddingLeft: x = 0, radiusTopLeft: S = 0, radiusTopRight: C = 0, radiusBottomRight: w = 0, radiusBottomLeft: T = 0, ...E } = {}, { withoutSelection: O = !1, withoutSave: k = !1, withoutAdding: A = !1 } = {}) {
|
|
6977
6970
|
let { canvasManager: j, historyManager: M } = this.editor, { canvas: N } = this;
|
|
6978
6971
|
M.suspendHistory();
|
|
6979
|
-
let P = i ?? this._getDefaultFontFamily(), F =
|
|
6972
|
+
let P = i ?? this._getDefaultFontFamily(), F = lr({ width: m }), ee = cr({
|
|
6980
6973
|
strokeColor: p,
|
|
6981
6974
|
width: F
|
|
6982
6975
|
}), I = {
|
|
@@ -7005,14 +6998,14 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7005
6998
|
radiusBottomRight: w,
|
|
7006
6999
|
radiusBottomLeft: T,
|
|
7007
7000
|
...E
|
|
7008
|
-
}, L = new
|
|
7001
|
+
}, L = new fr(n, I), te = r !== !1;
|
|
7009
7002
|
L.autoExpand = te;
|
|
7010
7003
|
let ne = E.left !== void 0 || E.top !== void 0;
|
|
7011
7004
|
if (L.textCaseRaw = L.text ?? "", l) {
|
|
7012
|
-
let e =
|
|
7005
|
+
let e = ur({ value: L.textCaseRaw });
|
|
7013
7006
|
e !== L.text && L.set({ text: e });
|
|
7014
7007
|
}
|
|
7015
|
-
|
|
7008
|
+
jr({ textbox: L }) && (L.dirty = !0);
|
|
7016
7009
|
let R;
|
|
7017
7010
|
ne && (R = j.resolveObjectPlacement({
|
|
7018
7011
|
object: L,
|
|
@@ -7059,124 +7052,124 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7059
7052
|
top: I,
|
|
7060
7053
|
originX: L,
|
|
7061
7054
|
originY: te
|
|
7062
|
-
}), z = a === void 0 ?
|
|
7055
|
+
}), z = a === void 0 ? rr({ textbox: o }) : br({
|
|
7063
7056
|
text: s,
|
|
7064
7057
|
range: a
|
|
7065
|
-
}), ie = z ?
|
|
7058
|
+
}), ie = z ? xr({
|
|
7066
7059
|
textbox: o,
|
|
7067
7060
|
range: z
|
|
7068
|
-
}) : null, B = {}, ae = {}, V = {},
|
|
7061
|
+
}) : null, B = {}, ae = {}, V = {}, oe, se, ce = ar({
|
|
7069
7062
|
textbox: o,
|
|
7070
7063
|
range: z
|
|
7071
|
-
}),
|
|
7072
|
-
if (m !== void 0 && (ie && (ae.fontFamily = m),
|
|
7064
|
+
}), le = !z || ce, H = !z;
|
|
7065
|
+
if (m !== void 0 && (ie && (ae.fontFamily = m), le && (R.fontFamily = m, H && (V.fontFamily = m))), h !== void 0 && (ie && (ae.fontSize = h), le && (R.fontSize = h, H && (V.fontSize = h))), g !== void 0) {
|
|
7073
7066
|
let e = g ? "bold" : "normal";
|
|
7074
|
-
z && (B.fontWeight = e),
|
|
7067
|
+
z && (B.fontWeight = e), le && (R.fontWeight = e, H && (V.fontWeight = e));
|
|
7075
7068
|
}
|
|
7076
7069
|
if (_ !== void 0) {
|
|
7077
7070
|
let e = _ ? "italic" : "normal";
|
|
7078
|
-
z && (B.fontStyle = e),
|
|
7071
|
+
z && (B.fontStyle = e), le && (R.fontStyle = e, H && (V.fontStyle = e));
|
|
7079
7072
|
}
|
|
7080
|
-
if (v !== void 0 && (z && (B.underline = v),
|
|
7081
|
-
let e = z ?
|
|
7073
|
+
if (v !== void 0 && (z && (B.underline = v), le && (R.underline = v, H && (V.underline = v))), b !== void 0 && (z && (B.linethrough = b), le && (R.linethrough = b, H && (V.linethrough = b))), x !== void 0 && (R.textAlign = x), S !== void 0 && (z && (B.fill = S), le && (R.fill = S, H && (V.fill = S))), C !== void 0 || w !== void 0) {
|
|
7074
|
+
let e = z ? sr({
|
|
7082
7075
|
textbox: o,
|
|
7083
7076
|
range: z,
|
|
7084
7077
|
property: "strokeWidth"
|
|
7085
|
-
}) : void 0, t = z ?
|
|
7078
|
+
}) : void 0, t = z ? sr({
|
|
7086
7079
|
textbox: o,
|
|
7087
7080
|
range: z,
|
|
7088
7081
|
property: "stroke"
|
|
7089
7082
|
}) : void 0;
|
|
7090
|
-
|
|
7083
|
+
se = lr({ width: w ?? e ?? o.strokeWidth ?? 0 }), oe = cr({
|
|
7091
7084
|
strokeColor: C ?? t ?? o.stroke ?? void 0,
|
|
7092
|
-
width:
|
|
7093
|
-
}), z && (B.stroke =
|
|
7085
|
+
width: se
|
|
7086
|
+
}), z && (B.stroke = oe, B.strokeWidth = se), le && (R.stroke = oe, R.strokeWidth = se, H && (V.stroke = oe, V.strokeWidth = se));
|
|
7094
7087
|
}
|
|
7095
7088
|
T !== void 0 && (R.opacity = T), E !== void 0 && (R.backgroundColor = E), D !== void 0 && (R.backgroundOpacity = D), O !== void 0 && (R.paddingTop = O), k !== void 0 && (R.paddingRight = k), A !== void 0 && (R.paddingBottom = A), j !== void 0 && (R.paddingLeft = j), M !== void 0 && (R.radiusTopLeft = M), N !== void 0 && (R.radiusTopRight = N), P !== void 0 && (R.radiusBottomRight = P), F !== void 0 && (R.radiusBottomLeft = F);
|
|
7096
|
-
let
|
|
7097
|
-
|
|
7098
|
-
let
|
|
7089
|
+
let ue = o.textCaseRaw ?? s, de = !!o.uppercase, fe = f !== void 0, pe = fe ? f ?? "" : ue, me = y ?? de, he = me !== de;
|
|
7090
|
+
fe || he ? (R.text = me ? ur({ value: pe }) : pe, o.textCaseRaw = pe) : o.textCaseRaw === void 0 && (o.textCaseRaw = ue), o.uppercase = me, o.set(R);
|
|
7091
|
+
let ge = !1;
|
|
7099
7092
|
if (z) {
|
|
7100
|
-
let e =
|
|
7093
|
+
let e = or({
|
|
7101
7094
|
textbox: o,
|
|
7102
7095
|
styles: B,
|
|
7103
7096
|
range: z
|
|
7104
|
-
}), t = ie ?
|
|
7097
|
+
}), t = ie ? or({
|
|
7105
7098
|
textbox: o,
|
|
7106
7099
|
styles: ae,
|
|
7107
7100
|
range: ie
|
|
7108
7101
|
}) : !1;
|
|
7109
|
-
|
|
7102
|
+
ge = e || t;
|
|
7110
7103
|
} else if (Object.keys(V).length) {
|
|
7111
|
-
let e =
|
|
7112
|
-
e && (
|
|
7104
|
+
let e = ir({ textbox: o });
|
|
7105
|
+
e && (ge = or({
|
|
7113
7106
|
textbox: o,
|
|
7114
7107
|
styles: V,
|
|
7115
7108
|
range: e
|
|
7116
7109
|
}));
|
|
7117
7110
|
}
|
|
7118
|
-
let
|
|
7111
|
+
let _e = ge && Ar({ stylesList: [
|
|
7119
7112
|
B,
|
|
7120
7113
|
ae,
|
|
7121
7114
|
V
|
|
7122
7115
|
] });
|
|
7123
|
-
if (
|
|
7124
|
-
let e =
|
|
7116
|
+
if (ge && (o.dirty = !0), ie && (m !== void 0 || h !== void 0)) {
|
|
7117
|
+
let e = Sr({
|
|
7125
7118
|
textbox: o,
|
|
7126
7119
|
range: ie
|
|
7127
7120
|
}), t = {};
|
|
7128
|
-
m !== void 0 && (t.fontFamily = m), h !== void 0 && (t.fontSize = h),
|
|
7121
|
+
m !== void 0 && (t.fontFamily = m), h !== void 0 && (t.fontSize = h), hr({
|
|
7129
7122
|
textbox: o,
|
|
7130
7123
|
lineIndices: e,
|
|
7131
7124
|
updates: t
|
|
7132
7125
|
});
|
|
7133
7126
|
}
|
|
7134
7127
|
if (z && (S !== void 0 || C !== void 0 || w !== void 0)) {
|
|
7135
|
-
let e =
|
|
7128
|
+
let e = Cr({
|
|
7136
7129
|
textbox: o,
|
|
7137
7130
|
range: z
|
|
7138
7131
|
}), t = {};
|
|
7139
|
-
S !== void 0 && (t.fill = S), (C !== void 0 || w !== void 0) && (
|
|
7132
|
+
S !== void 0 && (t.fill = S), (C !== void 0 || w !== void 0) && (oe === null && (t.stroke = null), oe != null && (t.stroke = oe)), hr({
|
|
7140
7133
|
textbox: o,
|
|
7141
7134
|
lineIndices: e,
|
|
7142
7135
|
updates: t
|
|
7143
7136
|
});
|
|
7144
7137
|
}
|
|
7145
|
-
|
|
7146
|
-
let
|
|
7138
|
+
_e && (o.initDimensions(), o.dirty = !0), (E !== void 0 || D !== void 0 || O !== void 0 || k !== void 0 || A !== void 0 || j !== void 0 || M !== void 0 || N !== void 0 || P !== void 0 || F !== void 0) && (o.dirty = !0);
|
|
7139
|
+
let ve = Ar({ stylesList: [
|
|
7147
7140
|
R,
|
|
7148
7141
|
B,
|
|
7149
7142
|
ae,
|
|
7150
7143
|
V
|
|
7151
|
-
] }), { autoExpand:
|
|
7152
|
-
|
|
7153
|
-
let
|
|
7144
|
+
] }), { autoExpand: ye } = o, be = p !== void 0, xe = Object.prototype.hasOwnProperty.call(R, "width"), Se = (p ?? ye) !== !1;
|
|
7145
|
+
be ? o.autoExpand = p !== !1 : ye === void 0 && (o.autoExpand = !0);
|
|
7146
|
+
let Ce = Se && !xe && (fe || he || ve);
|
|
7154
7147
|
this._normalizeTextboxAfterContentChange({
|
|
7155
7148
|
textbox: o,
|
|
7156
7149
|
placement: re,
|
|
7157
|
-
shouldAutoExpand:
|
|
7150
|
+
shouldAutoExpand: Ce
|
|
7158
7151
|
}), o.setCoords();
|
|
7159
|
-
let
|
|
7152
|
+
let we = {
|
|
7160
7153
|
withoutSave: !!r,
|
|
7161
7154
|
skipRender: !!i
|
|
7162
|
-
},
|
|
7155
|
+
}, Te = !!z && Object.keys(B).length > 0, Ee = {
|
|
7163
7156
|
textbox: o,
|
|
7164
7157
|
target: e,
|
|
7165
7158
|
style: n,
|
|
7166
|
-
options:
|
|
7159
|
+
options: we,
|
|
7167
7160
|
updates: R,
|
|
7168
7161
|
selectionRange: z ?? void 0,
|
|
7169
|
-
selectionStyles:
|
|
7162
|
+
selectionStyles: Te ? B : void 0
|
|
7170
7163
|
};
|
|
7171
|
-
u.fire("editor:before:text-updated",
|
|
7172
|
-
let
|
|
7164
|
+
u.fire("editor:before:text-updated", Ee), i || u.requestRenderAll();
|
|
7165
|
+
let De = t._getSnapshot(o);
|
|
7173
7166
|
c.resumeHistory(), r || c.saveState();
|
|
7174
|
-
let
|
|
7175
|
-
...
|
|
7167
|
+
let Oe = {
|
|
7168
|
+
...Ee,
|
|
7176
7169
|
before: d,
|
|
7177
|
-
after:
|
|
7170
|
+
after: De
|
|
7178
7171
|
};
|
|
7179
|
-
return u.fire("editor:text-updated",
|
|
7172
|
+
return u.fire("editor:text-updated", Oe), o;
|
|
7180
7173
|
}
|
|
7181
7174
|
stylesFromArray(e, t) {
|
|
7182
7175
|
return C.stylesFromArray(e, t);
|
|
@@ -7215,7 +7208,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7215
7208
|
clampToMontage: r
|
|
7216
7209
|
}));
|
|
7217
7210
|
let a = !1;
|
|
7218
|
-
i || (a =
|
|
7211
|
+
i || (a = jr({ textbox: e }));
|
|
7219
7212
|
let o = !1;
|
|
7220
7213
|
return !i && t && (this.editor.canvasManager.applyObjectPlacement({
|
|
7221
7214
|
object: e,
|
|
@@ -7228,7 +7221,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7228
7221
|
e.initDimensions();
|
|
7229
7222
|
let n = e, { _textLines: r, _unwrappedTextLines: i, __lineWidths: a, __charBounds: o } = n;
|
|
7230
7223
|
if (!Array.isArray(i) || i.length === 0) {
|
|
7231
|
-
let n = Math.ceil(
|
|
7224
|
+
let n = Math.ceil(Dr({
|
|
7232
7225
|
textbox: e,
|
|
7233
7226
|
text: t
|
|
7234
7227
|
}));
|
|
@@ -7249,15 +7242,15 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7249
7242
|
_syncLineFontDefaultsOnTextChanged({ textbox: e }) {
|
|
7250
7243
|
let { text: t = "", lineFontDefaults: n, styles: r, fontFamily: i, fontSize: a, fill: o, stroke: s, selectionStart: c, isEditing: l } = e, u = t, d = e.__lineDefaultsPrevText ?? u, f = d.split("\n"), p = u.split("\n"), m = f.length, h = p.length - m, g = n, _ = !1, v = !1, y = typeof o == "string" ? o : void 0, b = typeof s == "string" ? s : void 0;
|
|
7251
7244
|
if (h !== 0 && n && Object.keys(n).length) {
|
|
7252
|
-
let e =
|
|
7245
|
+
let e = wr({
|
|
7253
7246
|
previous: d,
|
|
7254
7247
|
next: u
|
|
7255
|
-
}), t =
|
|
7248
|
+
}), t = Tr({
|
|
7256
7249
|
text: d,
|
|
7257
7250
|
charIndex: e
|
|
7258
7251
|
});
|
|
7259
7252
|
if (h > 0) {
|
|
7260
|
-
let r =
|
|
7253
|
+
let r = Er({
|
|
7261
7254
|
text: d,
|
|
7262
7255
|
lineIndex: t
|
|
7263
7256
|
}), i = t + 1;
|
|
@@ -7298,7 +7291,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7298
7291
|
let t = p[e] ?? "", n = g ? g[e] : void 0;
|
|
7299
7292
|
if (n && (T = n), t.length !== 0) {
|
|
7300
7293
|
if (n) {
|
|
7301
|
-
let r =
|
|
7294
|
+
let r = gr({
|
|
7302
7295
|
lineText: t,
|
|
7303
7296
|
lineStyles: S ? S[e] : void 0,
|
|
7304
7297
|
lineDefaults: n
|
|
@@ -7338,16 +7331,16 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7338
7331
|
if (!Number.isFinite(f) || f <= 0) return !1;
|
|
7339
7332
|
let p = a.split("\n").length, m = !1;
|
|
7340
7333
|
Math.abs((e.width ?? 0) - f) > .01 && (e.set({ width: f }), m = !0), e.initDimensions();
|
|
7341
|
-
let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(
|
|
7334
|
+
let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(Dr({
|
|
7342
7335
|
textbox: e,
|
|
7343
7336
|
text: a
|
|
7344
7337
|
})), v = Math.min(e.minWidth ?? 1, f), y = Math.min(f, Math.max(_, v));
|
|
7345
|
-
g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0),
|
|
7338
|
+
g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0), jr({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
|
|
7346
7339
|
object: e,
|
|
7347
7340
|
placement: t
|
|
7348
7341
|
});
|
|
7349
7342
|
let b = !1;
|
|
7350
|
-
return n && (b =
|
|
7343
|
+
return n && (b = Or({
|
|
7351
7344
|
textbox: e,
|
|
7352
7345
|
montageLeft: o,
|
|
7353
7346
|
montageRight: o + s
|
|
@@ -7376,7 +7369,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7376
7369
|
bottomLeft: p
|
|
7377
7370
|
},
|
|
7378
7371
|
baseStyles: JSON.parse(JSON.stringify(i)),
|
|
7379
|
-
baseLineFontDefaults:
|
|
7372
|
+
baseLineFontDefaults: _r({ lineFontDefaults: a }),
|
|
7380
7373
|
hasWidthChange: !1
|
|
7381
7374
|
}, this.scalingState.set(e, t);
|
|
7382
7375
|
}
|
|
@@ -7431,7 +7424,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7431
7424
|
_getDefaultFontFamily() {
|
|
7432
7425
|
return this.fonts[0]?.family ?? "Arial";
|
|
7433
7426
|
}
|
|
7434
|
-
},
|
|
7427
|
+
}, Nr = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Pr = (e) => {
|
|
7435
7428
|
if (!e || typeof e != "object") return null;
|
|
7436
7429
|
let { type: t, coords: n, colorStops: r } = e, i = Array.isArray(r) ? r : [], a = i[0], o = i[i.length - 1], s = typeof a?.color == "string" ? a.color : void 0, c = typeof o?.color == "string" ? o.color : s, l = typeof a?.offset == "number" ? a.offset * 100 : void 0, u = typeof o?.offset == "number" ? o.offset * 100 : void 0, d = i.map((e) => ({
|
|
7437
7430
|
color: typeof e.color == "string" ? e.color : "#000000",
|
|
@@ -7442,7 +7435,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7442
7435
|
let { x1: e, y1: t, x2: r, y2: i } = n;
|
|
7443
7436
|
if (typeof e == "number" && typeof t == "number" && typeof r == "number" && typeof i == "number") return {
|
|
7444
7437
|
type: "linear",
|
|
7445
|
-
angle:
|
|
7438
|
+
angle: Nr({
|
|
7446
7439
|
x1: e,
|
|
7447
7440
|
y1: t,
|
|
7448
7441
|
x2: r,
|
|
@@ -7470,7 +7463,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7470
7463
|
};
|
|
7471
7464
|
}
|
|
7472
7465
|
return null;
|
|
7473
|
-
},
|
|
7466
|
+
}, Fr = "_templateAnchorX", Ir = "_templateAnchorY", Lr = class t {
|
|
7474
7467
|
constructor({ editor: e }) {
|
|
7475
7468
|
this.editor = e;
|
|
7476
7469
|
}
|
|
@@ -7479,13 +7472,13 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7479
7472
|
if (!p.length) return s.emitWarning({
|
|
7480
7473
|
origin: "TemplateManager",
|
|
7481
7474
|
method: "serializeSelection",
|
|
7482
|
-
code:
|
|
7475
|
+
code: er.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
|
|
7483
7476
|
message: "Нет объектов для сериализации шаблона"
|
|
7484
7477
|
}), null;
|
|
7485
7478
|
let m = t._getBounds(o), h = t._getMontageSize({
|
|
7486
7479
|
montageArea: o,
|
|
7487
7480
|
bounds: m
|
|
7488
|
-
}), g = h.width, _ = h.height, v = p.map((e) =>
|
|
7481
|
+
}), g = h.width, _ = h.height, v = p.map((e) => this._serializeObject({
|
|
7489
7482
|
object: e,
|
|
7490
7483
|
bounds: m,
|
|
7491
7484
|
baseWidth: g,
|
|
@@ -7508,14 +7501,14 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7508
7501
|
if (!s?.length) return a.emitWarning({
|
|
7509
7502
|
origin: "TemplateManager",
|
|
7510
7503
|
method: "applyTemplate",
|
|
7511
|
-
code:
|
|
7504
|
+
code: er.TEMPLATE_MANAGER.INVALID_TEMPLATE,
|
|
7512
7505
|
message: "Шаблон не содержит объектов"
|
|
7513
7506
|
}), null;
|
|
7514
7507
|
let u = t._getBounds(r);
|
|
7515
7508
|
if (!u) return a.emitWarning({
|
|
7516
7509
|
origin: "TemplateManager",
|
|
7517
7510
|
method: "applyTemplate",
|
|
7518
|
-
code:
|
|
7511
|
+
code: er.TEMPLATE_MANAGER.INVALID_TARGET,
|
|
7519
7512
|
message: "Не удалось определить границы монтажной области"
|
|
7520
7513
|
}), null;
|
|
7521
7514
|
let d = t._getMontageSize({
|
|
@@ -7534,7 +7527,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7534
7527
|
if (!r.length) return a.emitWarning({
|
|
7535
7528
|
origin: "TemplateManager",
|
|
7536
7529
|
method: "applyTemplate",
|
|
7537
|
-
code:
|
|
7530
|
+
code: er.TEMPLATE_MANAGER.INVALID_TEMPLATE,
|
|
7538
7531
|
message: "Не удалось создать объекты шаблона"
|
|
7539
7532
|
}), null;
|
|
7540
7533
|
let { backgroundObject: i, contentObjects: c } = t._extractBackgroundObject(r);
|
|
@@ -7546,7 +7539,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7546
7539
|
let l = c.map((e) => (this._adaptTextboxWidth({
|
|
7547
7540
|
object: e,
|
|
7548
7541
|
baseWidth: f.baseWidth
|
|
7549
|
-
}),
|
|
7542
|
+
}), this._transformObject({
|
|
7550
7543
|
object: e,
|
|
7551
7544
|
scale: p,
|
|
7552
7545
|
bounds: u,
|
|
@@ -7569,7 +7562,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7569
7562
|
return a.emitError({
|
|
7570
7563
|
origin: "TemplateManager",
|
|
7571
7564
|
method: "applyTemplate",
|
|
7572
|
-
code:
|
|
7565
|
+
code: er.TEMPLATE_MANAGER.APPLY_FAILED,
|
|
7573
7566
|
message: "Ошибка применения шаблона",
|
|
7574
7567
|
data: {
|
|
7575
7568
|
templateId: l,
|
|
@@ -7621,22 +7614,22 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7621
7614
|
naturalHeight: 0,
|
|
7622
7615
|
width: 0,
|
|
7623
7616
|
height: 0
|
|
7624
|
-
}, m =
|
|
7617
|
+
}, m = U({
|
|
7625
7618
|
value: u || f || c.width,
|
|
7626
7619
|
fallback: 0
|
|
7627
|
-
}), h =
|
|
7620
|
+
}), h = U({
|
|
7628
7621
|
value: d || p || c.height,
|
|
7629
7622
|
fallback: 0
|
|
7630
|
-
}), g =
|
|
7623
|
+
}), g = U({
|
|
7631
7624
|
value: r,
|
|
7632
7625
|
fallback: m
|
|
7633
|
-
}), _ =
|
|
7626
|
+
}), _ = U({
|
|
7634
7627
|
value: i,
|
|
7635
7628
|
fallback: h
|
|
7636
|
-
}), v =
|
|
7629
|
+
}), v = U({
|
|
7637
7630
|
value: a,
|
|
7638
7631
|
fallback: c.scaleX || 1
|
|
7639
|
-
}), y =
|
|
7632
|
+
}), y = U({
|
|
7640
7633
|
value: o,
|
|
7641
7634
|
fallback: c.scaleY || 1
|
|
7642
7635
|
}), b = g * v, x = _ * y, S = m > 0, C = h > 0, w = b > 0, T = x > 0, E = t._resolveImageFit({ customData: s }), D = {};
|
|
@@ -7702,19 +7695,19 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7702
7695
|
return null;
|
|
7703
7696
|
}
|
|
7704
7697
|
}
|
|
7705
|
-
|
|
7706
|
-
let s = e, { x: c, y: l } =
|
|
7698
|
+
_transformObject({ object: e, scale: n, bounds: r, baseWidth: i, baseHeight: a, useRelativePositions: o }) {
|
|
7699
|
+
let s = e, { x: c, y: l } = Ke({
|
|
7707
7700
|
object: e,
|
|
7708
7701
|
baseWidth: i,
|
|
7709
7702
|
baseHeight: a,
|
|
7710
7703
|
useRelativePositions: o
|
|
7711
|
-
}), { scaleX: u, scaleY: d } = e, f =
|
|
7704
|
+
}), { scaleX: u, scaleY: d } = e, f = U({
|
|
7712
7705
|
value: u,
|
|
7713
7706
|
fallback: 1
|
|
7714
|
-
}), p =
|
|
7707
|
+
}), p = U({
|
|
7715
7708
|
value: d,
|
|
7716
7709
|
fallback: 1
|
|
7717
|
-
}), m =
|
|
7710
|
+
}), m = qe({
|
|
7718
7711
|
normalizedX: c,
|
|
7719
7712
|
normalizedY: l,
|
|
7720
7713
|
bounds: t._getPositioningBounds({
|
|
@@ -7723,14 +7716,22 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7723
7716
|
baseHeight: a,
|
|
7724
7717
|
scale: n,
|
|
7725
7718
|
useRelativePositions: o,
|
|
7726
|
-
anchorX: t._resolveAnchor(s,
|
|
7727
|
-
anchorY: t._resolveAnchor(s,
|
|
7719
|
+
anchorX: t._resolveAnchor(s, Fr),
|
|
7720
|
+
anchorY: t._resolveAnchor(s, Ir)
|
|
7728
7721
|
})
|
|
7729
7722
|
}), h = f * n, g = p * n, _ = e.originX ?? "center", v = e.originY ?? "center";
|
|
7730
7723
|
e.set({
|
|
7731
7724
|
scaleX: h,
|
|
7732
7725
|
scaleY: g
|
|
7733
|
-
}),
|
|
7726
|
+
}), this.editor.canvasManager.applyObjectPlacement({
|
|
7727
|
+
object: e,
|
|
7728
|
+
placement: {
|
|
7729
|
+
left: m.x,
|
|
7730
|
+
top: m.y,
|
|
7731
|
+
originX: _,
|
|
7732
|
+
originY: v
|
|
7733
|
+
}
|
|
7734
|
+
}), delete s[Fr], delete s[Ir];
|
|
7734
7735
|
}
|
|
7735
7736
|
static _getPositioningBounds({ bounds: e, baseWidth: n, baseHeight: r, scale: i, useRelativePositions: a, anchorX: o, anchorY: s }) {
|
|
7736
7737
|
if (!a) return e;
|
|
@@ -7782,19 +7783,19 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7782
7783
|
if (!(e instanceof _)) return;
|
|
7783
7784
|
let r = typeof e.text == "string" ? e.text : "";
|
|
7784
7785
|
if (!r) return;
|
|
7785
|
-
let i =
|
|
7786
|
+
let i = U({
|
|
7786
7787
|
value: this.editor?.montageArea?.width,
|
|
7787
7788
|
fallback: 0
|
|
7788
|
-
}), { width: a = 0 } = e, o =
|
|
7789
|
+
}), { width: a = 0 } = e, o = U({
|
|
7789
7790
|
value: n,
|
|
7790
7791
|
fallback: 0
|
|
7791
|
-
}), s =
|
|
7792
|
+
}), s = U({
|
|
7792
7793
|
value: a,
|
|
7793
7794
|
fallback: 0
|
|
7794
7795
|
});
|
|
7795
7796
|
if (!i || !s || !o) return;
|
|
7796
7797
|
e.setCoords();
|
|
7797
|
-
let c = e, l = t._resolveAnchor(c,
|
|
7798
|
+
let c = e, l = t._resolveAnchor(c, Fr), u = typeof c.left == "number" ? c.left : null, d = e.originX ?? "center", f = e.originY ?? "center", p = e.getPointByOrigin(d, f), m = e.getBoundingRect(!1, !0), h = m.left + m.width;
|
|
7798
7799
|
e.set("width", i), e.initDimensions();
|
|
7799
7800
|
let g = t._getLongestLineWidth({
|
|
7800
7801
|
textbox: e,
|
|
@@ -7812,30 +7813,24 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7812
7813
|
}
|
|
7813
7814
|
return i;
|
|
7814
7815
|
}
|
|
7815
|
-
|
|
7816
|
-
let a = e.toDatalessObject([...
|
|
7816
|
+
_serializeObject({ object: e, bounds: n, baseWidth: r, baseHeight: i }) {
|
|
7817
|
+
let a = e.toDatalessObject([...ce]);
|
|
7817
7818
|
if (t._isSvgObject(e)) {
|
|
7818
7819
|
let n = t._extractSvgMarkup(e);
|
|
7819
7820
|
n && (a.svgMarkup = n, delete a.objects, delete a.path);
|
|
7820
7821
|
}
|
|
7821
7822
|
if (!n) return a;
|
|
7822
|
-
let { left: o, top: s, width: c, height: l } = n, u = e.getBoundingRect(!1, !0), d = r || c || 1, f = i || l || 1, p =
|
|
7823
|
-
|
|
7824
|
-
|
|
7825
|
-
})
|
|
7826
|
-
|
|
7827
|
-
return {
|
|
7828
|
-
x: (r.x - o) / d,
|
|
7829
|
-
y: (r.y - s) / f
|
|
7830
|
-
};
|
|
7831
|
-
})(), m = (u.left - o) / d, h = (u.top - s) / f, g = m + u.width / d, _ = h + u.height / f;
|
|
7832
|
-
return a[Ir] = t._detectAnchor({
|
|
7833
|
-
start: m,
|
|
7834
|
-
end: g
|
|
7835
|
-
}), a[Lr] = t._detectAnchor({
|
|
7823
|
+
let { left: o, top: s, width: c, height: l } = n, u = e.getBoundingRect(!1, !0), d = r || c || 1, f = i || l || 1, p = this.editor.canvasManager.getObjectPlacement({ object: e }), m = {
|
|
7824
|
+
x: (p.left - o) / d,
|
|
7825
|
+
y: (p.top - s) / f
|
|
7826
|
+
}, h = (u.left - o) / d, g = (u.top - s) / f, _ = h + u.width / d, v = g + u.height / f;
|
|
7827
|
+
return a[Fr] = t._detectAnchor({
|
|
7836
7828
|
start: h,
|
|
7837
7829
|
end: _
|
|
7838
|
-
}), a
|
|
7830
|
+
}), a[Ir] = t._detectAnchor({
|
|
7831
|
+
start: g,
|
|
7832
|
+
end: v
|
|
7833
|
+
}), a.left = m.x, a.top = m.y, a;
|
|
7839
7834
|
}
|
|
7840
7835
|
static _extractBackgroundObject(e) {
|
|
7841
7836
|
let t = e.findIndex((e) => e.id === "background");
|
|
@@ -7857,7 +7852,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7857
7852
|
withoutSave: !0
|
|
7858
7853
|
}), !0;
|
|
7859
7854
|
if (a === "gradient") {
|
|
7860
|
-
let e =
|
|
7855
|
+
let e = Pr(r);
|
|
7861
7856
|
if (e) return n.setGradientBackground({
|
|
7862
7857
|
gradient: e,
|
|
7863
7858
|
customData: o,
|
|
@@ -7878,7 +7873,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7878
7873
|
r.emitWarning({
|
|
7879
7874
|
origin: "TemplateManager",
|
|
7880
7875
|
method: "applyTemplate",
|
|
7881
|
-
code:
|
|
7876
|
+
code: er.TEMPLATE_MANAGER.APPLY_FAILED,
|
|
7882
7877
|
message: "Не удалось применить фон из шаблона",
|
|
7883
7878
|
data: e
|
|
7884
7879
|
});
|
|
@@ -7914,29 +7909,29 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7914
7909
|
enlivenObjectEnlivables(e) {
|
|
7915
7910
|
return C.enlivenObjectEnlivables(e);
|
|
7916
7911
|
}
|
|
7917
|
-
},
|
|
7918
|
-
let n =
|
|
7912
|
+
}, Rr = "#3D8BF4", zr = .5, Br = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, Vr = ({ firstDistance: e, secondDistance: t }) => {
|
|
7913
|
+
let n = Br({ distance: e }), r = Br({ distance: t });
|
|
7919
7914
|
return {
|
|
7920
7915
|
firstDisplayDistance: n,
|
|
7921
7916
|
secondDisplayDistance: r,
|
|
7922
7917
|
displayDistanceDiff: Math.abs(n - r),
|
|
7923
7918
|
commonDisplayDistance: Math.max(n, r)
|
|
7924
7919
|
};
|
|
7925
|
-
},
|
|
7920
|
+
}, Hr = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), Ur = ({ step: e }) => {
|
|
7926
7921
|
let t = Math.abs(e).toString(), n = t.indexOf(".");
|
|
7927
7922
|
return n === -1 ? 0 : t.slice(n + 1).length;
|
|
7928
|
-
},
|
|
7923
|
+
}, Wr = ({ value: e, step: t }) => {
|
|
7929
7924
|
if (t === 0) return e;
|
|
7930
|
-
let n =
|
|
7925
|
+
let n = Ur({ step: t }), r = Math.round(e / t) * t;
|
|
7931
7926
|
return Number(r.toFixed(n));
|
|
7932
|
-
},
|
|
7927
|
+
}, Gr = ({ value: e, step: t }) => {
|
|
7933
7928
|
if (t === 0) return !0;
|
|
7934
|
-
let n =
|
|
7929
|
+
let n = Wr({
|
|
7935
7930
|
value: e,
|
|
7936
7931
|
step: t
|
|
7937
|
-
}), r = 10 ** -(
|
|
7932
|
+
}), r = 10 ** -(Ur({ step: t }) + 4);
|
|
7938
7933
|
return Math.abs(n - e) <= r;
|
|
7939
|
-
},
|
|
7934
|
+
}, Kr = ({ bounds: e, axis: t }) => {
|
|
7940
7935
|
let { left: n = 0, right: r = 0, top: i = 0, bottom: a = 0 } = e;
|
|
7941
7936
|
return t === "vertical" ? {
|
|
7942
7937
|
start: i,
|
|
@@ -7945,7 +7940,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7945
7940
|
start: n,
|
|
7946
7941
|
end: r
|
|
7947
7942
|
};
|
|
7948
|
-
},
|
|
7943
|
+
}, qr = ({ items: e, axis: t }) => {
|
|
7949
7944
|
for (let n = 1; n < e.length; n += 1) {
|
|
7950
7945
|
let r = e[n], { bounds: i } = r, a = i[t], o = n - 1;
|
|
7951
7946
|
for (; o >= 0;) {
|
|
@@ -7955,10 +7950,10 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7955
7950
|
}
|
|
7956
7951
|
e[o + 1] = r;
|
|
7957
7952
|
}
|
|
7958
|
-
},
|
|
7953
|
+
}, Jr = ({ items: e, index: t, axis: n, direction: r }) => {
|
|
7959
7954
|
let i = e[t];
|
|
7960
7955
|
if (!i) return null;
|
|
7961
|
-
let { bounds: a } = i, { start: o, end: s } =
|
|
7956
|
+
let { bounds: a } = i, { start: o, end: s } = Kr({
|
|
7962
7957
|
bounds: a,
|
|
7963
7958
|
axis: n
|
|
7964
7959
|
});
|
|
@@ -7966,7 +7961,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7966
7961
|
for (let r = t - 1; r >= 0; --r) {
|
|
7967
7962
|
let t = e[r];
|
|
7968
7963
|
if (!t) continue;
|
|
7969
|
-
let { bounds: i } = t, { end: a } =
|
|
7964
|
+
let { bounds: i } = t, { end: a } = Kr({
|
|
7970
7965
|
bounds: i,
|
|
7971
7966
|
axis: n
|
|
7972
7967
|
});
|
|
@@ -7977,26 +7972,26 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
7977
7972
|
for (let r = t + 1; r < e.length; r += 1) {
|
|
7978
7973
|
let t = e[r];
|
|
7979
7974
|
if (!t) continue;
|
|
7980
|
-
let { bounds: i } = t, { start: a } =
|
|
7975
|
+
let { bounds: i } = t, { start: a } = Kr({
|
|
7981
7976
|
bounds: i,
|
|
7982
7977
|
axis: n
|
|
7983
7978
|
});
|
|
7984
7979
|
if (a - s >= 0) return r;
|
|
7985
7980
|
}
|
|
7986
7981
|
return null;
|
|
7987
|
-
},
|
|
7982
|
+
}, Yr = ({ items: e }) => {
|
|
7988
7983
|
for (let t = 0; t < e.length; t += 1) {
|
|
7989
7984
|
let { isActive: n } = e[t];
|
|
7990
7985
|
if (n) return t;
|
|
7991
7986
|
}
|
|
7992
7987
|
return -1;
|
|
7993
|
-
},
|
|
7988
|
+
}, Xr = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
|
|
7994
7989
|
let i = Math.min(t, n), a = Math.max(t, n);
|
|
7995
7990
|
return e >= i - r && e <= a + r;
|
|
7996
|
-
},
|
|
7991
|
+
}, Zr = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, Qr = ({ baseOption: e, candidateOption: t }) => {
|
|
7997
7992
|
let { delta: n, guide: { distance: r } } = e, { delta: i, guide: { distance: a } } = t;
|
|
7998
7993
|
return n === i && r === a;
|
|
7999
|
-
},
|
|
7994
|
+
}, $r = ({ options: e }) => {
|
|
8000
7995
|
let t = e[0];
|
|
8001
7996
|
for (let n = 1; n < e.length; n += 1) {
|
|
8002
7997
|
let r = e[n];
|
|
@@ -8007,11 +8002,11 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8007
8002
|
r.diff === t.diff && Math.abs(r.delta) < Math.abs(t.delta) && (t = r);
|
|
8008
8003
|
}
|
|
8009
8004
|
return t;
|
|
8010
|
-
},
|
|
8005
|
+
}, ei = ({ currentOption: e, nextOption: t }) => {
|
|
8011
8006
|
if (!e) return !0;
|
|
8012
8007
|
let { contextDistance: n, diff: r, delta: i } = e, { contextDistance: a, diff: o, delta: s } = t;
|
|
8013
8008
|
return a < n ? !0 : a > n ? !1 : o < r ? !0 : o > r ? !1 : Math.abs(s) < Math.abs(i);
|
|
8014
|
-
},
|
|
8009
|
+
}, ti = ({ options: e }) => {
|
|
8015
8010
|
let t = [], n = null, r = null;
|
|
8016
8011
|
for (let i of e) {
|
|
8017
8012
|
let { kind: e, side: a } = i;
|
|
@@ -8019,18 +8014,18 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8019
8014
|
t.push(i);
|
|
8020
8015
|
continue;
|
|
8021
8016
|
}
|
|
8022
|
-
a === "before" &&
|
|
8017
|
+
a === "before" && ei({
|
|
8023
8018
|
currentOption: n,
|
|
8024
8019
|
nextOption: i
|
|
8025
|
-
}) && (n = i), a === "after" &&
|
|
8020
|
+
}) && (n = i), a === "after" && ei({
|
|
8026
8021
|
currentOption: r,
|
|
8027
8022
|
nextOption: i
|
|
8028
8023
|
}) && (r = i);
|
|
8029
8024
|
}
|
|
8030
8025
|
return n && t.push(n), r && t.push(r), t;
|
|
8031
|
-
},
|
|
8026
|
+
}, ni = ({ options: e, side: t, baseOption: n }) => {
|
|
8032
8027
|
let r = null;
|
|
8033
|
-
for (let i of e) if (i.side === t &&
|
|
8028
|
+
for (let i of e) if (i.side === t && Qr({
|
|
8034
8029
|
baseOption: n,
|
|
8035
8030
|
candidateOption: i
|
|
8036
8031
|
})) {
|
|
@@ -8041,63 +8036,63 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8041
8036
|
!r || i.diff !== r.diff || Math.abs(i.delta) < Math.abs(r.delta) && (r = i);
|
|
8042
8037
|
}
|
|
8043
8038
|
return r;
|
|
8044
|
-
},
|
|
8039
|
+
}, ri = ({ option: e }) => {
|
|
8045
8040
|
let { side: t, kind: n, guide: { distance: r } } = e;
|
|
8046
8041
|
return {
|
|
8047
8042
|
side: t,
|
|
8048
8043
|
kind: n,
|
|
8049
8044
|
distance: r
|
|
8050
8045
|
};
|
|
8051
|
-
},
|
|
8046
|
+
}, ii = ({ option: e, context: t }) => {
|
|
8052
8047
|
let { side: n, kind: r, distance: i } = t, { side: a, kind: o, guide: { distance: s } } = e;
|
|
8053
8048
|
return n !== a || r !== o ? !1 : Math.abs(s - i) <= 1;
|
|
8054
|
-
},
|
|
8049
|
+
}, ai = ({ options: e, context: t }) => {
|
|
8055
8050
|
if (!t) return null;
|
|
8056
|
-
for (let n of e) if (
|
|
8051
|
+
for (let n of e) if (ii({
|
|
8057
8052
|
option: n,
|
|
8058
8053
|
context: t
|
|
8059
8054
|
})) return n;
|
|
8060
8055
|
return null;
|
|
8061
|
-
},
|
|
8062
|
-
let i =
|
|
8056
|
+
}, oi = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
|
|
8057
|
+
let i = ai({
|
|
8063
8058
|
options: e,
|
|
8064
8059
|
context: n
|
|
8065
8060
|
});
|
|
8066
8061
|
if (!i) return t;
|
|
8067
8062
|
let a = Math.max(0, r);
|
|
8068
8063
|
return a === 0 || Math.abs(t.delta - i.delta) >= a ? t : i;
|
|
8069
|
-
},
|
|
8064
|
+
}, si = ({ guides: e, seenGuideKeys: t, guide: n }) => {
|
|
8070
8065
|
let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = n, u = `${r}:${i}:${a}:${o}:${s}:${c}:${l}`;
|
|
8071
8066
|
t.has(u) || (t.add(u), e.push(n));
|
|
8072
|
-
},
|
|
8067
|
+
}, ci = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
|
|
8073
8068
|
if (!e.length) return {
|
|
8074
8069
|
delta: 0,
|
|
8075
8070
|
guides: [],
|
|
8076
8071
|
context: null
|
|
8077
8072
|
};
|
|
8078
|
-
let r =
|
|
8073
|
+
let r = ti({ options: e }), i = [];
|
|
8079
8074
|
for (let e of r) e.kind === "reference" && i.push(e);
|
|
8080
|
-
let a = i.length > 0, o = a ? i : r, s =
|
|
8075
|
+
let a = i.length > 0, o = a ? i : r, s = oi({
|
|
8081
8076
|
options: o,
|
|
8082
|
-
bestOption:
|
|
8077
|
+
bestOption: $r({ options: o }),
|
|
8083
8078
|
previousContext: t,
|
|
8084
8079
|
switchDistance: n
|
|
8085
|
-
}), c =
|
|
8080
|
+
}), c = ni({
|
|
8086
8081
|
options: o,
|
|
8087
8082
|
side: "before",
|
|
8088
8083
|
baseOption: s
|
|
8089
|
-
}), l =
|
|
8084
|
+
}), l = ni({
|
|
8090
8085
|
options: o,
|
|
8091
8086
|
side: "after",
|
|
8092
8087
|
baseOption: s
|
|
8093
|
-
}), u =
|
|
8088
|
+
}), u = ni({
|
|
8094
8089
|
options: a ? r : o,
|
|
8095
8090
|
side: "center",
|
|
8096
8091
|
baseOption: s
|
|
8097
8092
|
}), d = [];
|
|
8098
8093
|
c && l ? d.push(c, l) : (d.push(s), s.side === "before" && l && d.push(l), s.side === "after" && c && d.push(c), s.side === "center" && (c && !l && d.push(c), l && !c && d.push(l)), a && s.side === "before" && !l && u && d.push(u), a && s.side === "after" && !c && u && d.push(u)), !d.length && u && d.push(u);
|
|
8099
8094
|
let f = [], p = /* @__PURE__ */ new Set();
|
|
8100
|
-
for (let e of d)
|
|
8095
|
+
for (let e of d) si({
|
|
8101
8096
|
guides: f,
|
|
8102
8097
|
seenGuideKeys: p,
|
|
8103
8098
|
guide: e.guide
|
|
@@ -8105,15 +8100,15 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8105
8100
|
return {
|
|
8106
8101
|
delta: s.delta,
|
|
8107
8102
|
guides: f,
|
|
8108
|
-
context:
|
|
8103
|
+
context: ri({ option: s })
|
|
8109
8104
|
};
|
|
8110
|
-
},
|
|
8111
|
-
let s = n - (e - r), c =
|
|
8105
|
+
}, li = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
|
|
8106
|
+
let s = n - (e - r), c = Wr({
|
|
8112
8107
|
value: s,
|
|
8113
8108
|
step: o
|
|
8114
8109
|
}), l = Math.max(1, Math.ceil(a / Math.max(o, 1))), u = null;
|
|
8115
8110
|
for (let d = -l; d <= l; d += 1) {
|
|
8116
|
-
let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } =
|
|
8111
|
+
let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = Vr({
|
|
8117
8112
|
firstDistance: m,
|
|
8118
8113
|
secondDistance: h
|
|
8119
8114
|
});
|
|
@@ -8128,13 +8123,13 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8128
8123
|
});
|
|
8129
8124
|
}
|
|
8130
8125
|
return u;
|
|
8131
|
-
},
|
|
8132
|
-
let { secondDisplayDistance: n, displayDistanceDiff: r } =
|
|
8126
|
+
}, ui = ({ currentGap: e, referenceGap: t }) => {
|
|
8127
|
+
let { secondDisplayDistance: n, displayDistanceDiff: r } = Vr({
|
|
8133
8128
|
firstDistance: e,
|
|
8134
8129
|
secondDistance: t
|
|
8135
8130
|
});
|
|
8136
8131
|
return r > 1 ? null : n;
|
|
8137
|
-
},
|
|
8132
|
+
}, di = ({ anchors: e, positions: t, threshold: n }) => {
|
|
8138
8133
|
let r = 0, i = n + 1, a = null;
|
|
8139
8134
|
for (let o of t) for (let t of e) {
|
|
8140
8135
|
let e = Math.abs(t - o);
|
|
@@ -8144,8 +8139,8 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8144
8139
|
delta: r,
|
|
8145
8140
|
guidePosition: a
|
|
8146
8141
|
};
|
|
8147
|
-
},
|
|
8148
|
-
let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l =
|
|
8142
|
+
}, fi = ({ activeBounds: e, threshold: t, anchors: n }) => {
|
|
8143
|
+
let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = di({
|
|
8149
8144
|
anchors: n.vertical,
|
|
8150
8145
|
positions: [
|
|
8151
8146
|
r,
|
|
@@ -8153,7 +8148,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8153
8148
|
i
|
|
8154
8149
|
],
|
|
8155
8150
|
threshold: t
|
|
8156
|
-
}), u =
|
|
8151
|
+
}), u = di({
|
|
8157
8152
|
anchors: n.horizontal,
|
|
8158
8153
|
positions: [
|
|
8159
8154
|
o,
|
|
@@ -8173,11 +8168,11 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8173
8168
|
deltaY: u.delta,
|
|
8174
8169
|
guides: d
|
|
8175
8170
|
};
|
|
8176
|
-
},
|
|
8171
|
+
}, pi = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
|
|
8177
8172
|
let { centerX: o, top: s, bottom: c, left: l, right: u } = e, d = [];
|
|
8178
8173
|
for (let e of t) {
|
|
8179
8174
|
let { left: t, right: n } = e;
|
|
8180
|
-
|
|
8175
|
+
Hr({
|
|
8181
8176
|
firstStart: t,
|
|
8182
8177
|
firstEnd: n,
|
|
8183
8178
|
secondStart: l,
|
|
@@ -8197,22 +8192,22 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8197
8192
|
f.push({
|
|
8198
8193
|
bounds: e,
|
|
8199
8194
|
isActive: !0
|
|
8200
|
-
}),
|
|
8195
|
+
}), qr({
|
|
8201
8196
|
items: f,
|
|
8202
8197
|
axis: "top"
|
|
8203
8198
|
});
|
|
8204
|
-
let p =
|
|
8199
|
+
let p = Yr({ items: f });
|
|
8205
8200
|
if (p === -1) return {
|
|
8206
8201
|
delta: 0,
|
|
8207
8202
|
guides: [],
|
|
8208
8203
|
context: null
|
|
8209
8204
|
};
|
|
8210
|
-
let m = [], h = c - s, g =
|
|
8205
|
+
let m = [], h = c - s, g = Jr({
|
|
8211
8206
|
items: f,
|
|
8212
8207
|
index: p,
|
|
8213
8208
|
axis: "vertical",
|
|
8214
8209
|
direction: "prev"
|
|
8215
|
-
}), _ =
|
|
8210
|
+
}), _ = Jr({
|
|
8216
8211
|
items: f,
|
|
8217
8212
|
index: p,
|
|
8218
8213
|
axis: "vertical",
|
|
@@ -8221,19 +8216,19 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8221
8216
|
if (v && y) {
|
|
8222
8217
|
let { bounds: e } = v, { bounds: t } = y, { bottom: r } = e, { top: i } = t, a = i - r - h;
|
|
8223
8218
|
if (a >= 0) {
|
|
8224
|
-
let e =
|
|
8219
|
+
let e = Wr({
|
|
8225
8220
|
value: a / 2,
|
|
8226
8221
|
step: 1
|
|
8227
8222
|
}), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
|
|
8228
8223
|
if (Math.max(u, d) <= n) {
|
|
8229
|
-
let t =
|
|
8224
|
+
let t = li({
|
|
8230
8225
|
activeStart: s,
|
|
8231
8226
|
activeEnd: c,
|
|
8232
8227
|
targetGap: e,
|
|
8233
8228
|
beforeEdge: r,
|
|
8234
8229
|
afterEdge: i,
|
|
8235
8230
|
threshold: n,
|
|
8236
|
-
step:
|
|
8231
|
+
step: zr
|
|
8237
8232
|
});
|
|
8238
8233
|
if (t) {
|
|
8239
8234
|
let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
|
|
@@ -8270,16 +8265,16 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8270
8265
|
}
|
|
8271
8266
|
for (let e of r) {
|
|
8272
8267
|
let { axis: t, start: r, end: i, distance: a } = e;
|
|
8273
|
-
if (!
|
|
8268
|
+
if (!Gr({
|
|
8274
8269
|
value: a,
|
|
8275
8270
|
step: .5
|
|
8276
|
-
}) || !
|
|
8271
|
+
}) || !Xr({
|
|
8277
8272
|
patternAxis: t,
|
|
8278
8273
|
activeRangeStart: l,
|
|
8279
8274
|
activeRangeEnd: u,
|
|
8280
8275
|
tolerance: n
|
|
8281
8276
|
})) continue;
|
|
8282
|
-
let d =
|
|
8277
|
+
let d = Zr({
|
|
8283
8278
|
patternStart: r,
|
|
8284
8279
|
patternEnd: i,
|
|
8285
8280
|
activeStart: s,
|
|
@@ -8287,12 +8282,12 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8287
8282
|
});
|
|
8288
8283
|
if (d) {
|
|
8289
8284
|
if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
|
|
8290
|
-
let e =
|
|
8285
|
+
let e = Wr({
|
|
8291
8286
|
value: a - b,
|
|
8292
8287
|
step: 1
|
|
8293
8288
|
}), t = s + e, { bottom: c } = S, l = t - c, u = Math.abs(l - a);
|
|
8294
8289
|
if (u > n) continue;
|
|
8295
|
-
let d =
|
|
8290
|
+
let d = ui({
|
|
8296
8291
|
currentGap: l,
|
|
8297
8292
|
referenceGap: a
|
|
8298
8293
|
});
|
|
@@ -8316,12 +8311,12 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8316
8311
|
});
|
|
8317
8312
|
}
|
|
8318
8313
|
if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
|
|
8319
|
-
let e =
|
|
8314
|
+
let e = Wr({
|
|
8320
8315
|
value: x - a,
|
|
8321
8316
|
step: 1
|
|
8322
8317
|
}), t = c + e, { top: s } = C, l = s - t, u = Math.abs(l - a);
|
|
8323
8318
|
if (u > n) continue;
|
|
8324
|
-
let d =
|
|
8319
|
+
let d = ui({
|
|
8325
8320
|
currentGap: l,
|
|
8326
8321
|
referenceGap: a
|
|
8327
8322
|
});
|
|
@@ -8346,16 +8341,16 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8346
8341
|
}
|
|
8347
8342
|
}
|
|
8348
8343
|
}
|
|
8349
|
-
return
|
|
8344
|
+
return ci({
|
|
8350
8345
|
options: m,
|
|
8351
8346
|
previousContext: i,
|
|
8352
8347
|
switchDistance: a
|
|
8353
8348
|
});
|
|
8354
|
-
},
|
|
8349
|
+
}, mi = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
|
|
8355
8350
|
let { centerY: o, left: s, right: c, top: l, bottom: u } = e, d = [];
|
|
8356
8351
|
for (let e of t) {
|
|
8357
8352
|
let { top: t, bottom: n } = e;
|
|
8358
|
-
|
|
8353
|
+
Hr({
|
|
8359
8354
|
firstStart: t,
|
|
8360
8355
|
firstEnd: n,
|
|
8361
8356
|
secondStart: l,
|
|
@@ -8375,22 +8370,22 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8375
8370
|
f.push({
|
|
8376
8371
|
bounds: e,
|
|
8377
8372
|
isActive: !0
|
|
8378
|
-
}),
|
|
8373
|
+
}), qr({
|
|
8379
8374
|
items: f,
|
|
8380
8375
|
axis: "left"
|
|
8381
8376
|
});
|
|
8382
|
-
let p =
|
|
8377
|
+
let p = Yr({ items: f });
|
|
8383
8378
|
if (p === -1) return {
|
|
8384
8379
|
delta: 0,
|
|
8385
8380
|
guides: [],
|
|
8386
8381
|
context: null
|
|
8387
8382
|
};
|
|
8388
|
-
let m = [], h = c - s, g =
|
|
8383
|
+
let m = [], h = c - s, g = Jr({
|
|
8389
8384
|
items: f,
|
|
8390
8385
|
index: p,
|
|
8391
8386
|
axis: "horizontal",
|
|
8392
8387
|
direction: "prev"
|
|
8393
|
-
}), _ =
|
|
8388
|
+
}), _ = Jr({
|
|
8394
8389
|
items: f,
|
|
8395
8390
|
index: p,
|
|
8396
8391
|
axis: "horizontal",
|
|
@@ -8399,19 +8394,19 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8399
8394
|
if (v && y) {
|
|
8400
8395
|
let { bounds: e } = v, { bounds: t } = y, { right: r } = e, { left: i } = t, a = i - r - h;
|
|
8401
8396
|
if (a >= 0) {
|
|
8402
|
-
let e =
|
|
8397
|
+
let e = Wr({
|
|
8403
8398
|
value: a / 2,
|
|
8404
8399
|
step: 1
|
|
8405
8400
|
}), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
|
|
8406
8401
|
if (Math.max(u, d) <= n) {
|
|
8407
|
-
let t =
|
|
8402
|
+
let t = li({
|
|
8408
8403
|
activeStart: s,
|
|
8409
8404
|
activeEnd: c,
|
|
8410
8405
|
targetGap: e,
|
|
8411
8406
|
beforeEdge: r,
|
|
8412
8407
|
afterEdge: i,
|
|
8413
8408
|
threshold: n,
|
|
8414
|
-
step:
|
|
8409
|
+
step: zr
|
|
8415
8410
|
});
|
|
8416
8411
|
if (t) {
|
|
8417
8412
|
let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
|
|
@@ -8448,16 +8443,16 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8448
8443
|
}
|
|
8449
8444
|
for (let e of r) {
|
|
8450
8445
|
let { axis: t, start: r, end: i, distance: a } = e;
|
|
8451
|
-
if (!
|
|
8446
|
+
if (!Gr({
|
|
8452
8447
|
value: a,
|
|
8453
8448
|
step: .5
|
|
8454
|
-
}) || !
|
|
8449
|
+
}) || !Xr({
|
|
8455
8450
|
patternAxis: t,
|
|
8456
8451
|
activeRangeStart: l,
|
|
8457
8452
|
activeRangeEnd: u,
|
|
8458
8453
|
tolerance: n
|
|
8459
8454
|
})) continue;
|
|
8460
|
-
let d =
|
|
8455
|
+
let d = Zr({
|
|
8461
8456
|
patternStart: r,
|
|
8462
8457
|
patternEnd: i,
|
|
8463
8458
|
activeStart: s,
|
|
@@ -8465,12 +8460,12 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8465
8460
|
});
|
|
8466
8461
|
if (d) {
|
|
8467
8462
|
if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
|
|
8468
|
-
let e =
|
|
8463
|
+
let e = Wr({
|
|
8469
8464
|
value: a - b,
|
|
8470
8465
|
step: 1
|
|
8471
8466
|
}), t = s + e, { right: c } = S, l = t - c, u = Math.abs(l - a);
|
|
8472
8467
|
if (u > n) continue;
|
|
8473
|
-
let d =
|
|
8468
|
+
let d = ui({
|
|
8474
8469
|
currentGap: l,
|
|
8475
8470
|
referenceGap: a
|
|
8476
8471
|
});
|
|
@@ -8494,12 +8489,12 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8494
8489
|
});
|
|
8495
8490
|
}
|
|
8496
8491
|
if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
|
|
8497
|
-
let e =
|
|
8492
|
+
let e = Wr({
|
|
8498
8493
|
value: x - a,
|
|
8499
8494
|
step: 1
|
|
8500
8495
|
}), t = c + e, { left: s } = C, l = s - t, u = Math.abs(l - a);
|
|
8501
8496
|
if (u > n) continue;
|
|
8502
|
-
let d =
|
|
8497
|
+
let d = ui({
|
|
8503
8498
|
currentGap: l,
|
|
8504
8499
|
referenceGap: a
|
|
8505
8500
|
});
|
|
@@ -8524,20 +8519,20 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8524
8519
|
}
|
|
8525
8520
|
}
|
|
8526
8521
|
}
|
|
8527
|
-
return
|
|
8522
|
+
return ci({
|
|
8528
8523
|
options: m,
|
|
8529
8524
|
previousContext: i,
|
|
8530
8525
|
switchDistance: a
|
|
8531
8526
|
});
|
|
8532
|
-
},
|
|
8533
|
-
let { vertical: o = null, horizontal: s = null } = i ?? {}, c =
|
|
8527
|
+
}, hi = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
|
|
8528
|
+
let { vertical: o = null, horizontal: s = null } = i ?? {}, c = pi({
|
|
8534
8529
|
activeBounds: e,
|
|
8535
8530
|
candidates: t,
|
|
8536
8531
|
threshold: n,
|
|
8537
8532
|
patterns: r.vertical,
|
|
8538
8533
|
previousContext: o,
|
|
8539
8534
|
switchDistance: a
|
|
8540
|
-
}), l =
|
|
8535
|
+
}), l = mi({
|
|
8541
8536
|
activeBounds: e,
|
|
8542
8537
|
candidates: t,
|
|
8543
8538
|
threshold: n,
|
|
@@ -8556,14 +8551,14 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8556
8551
|
horizontal: l.context
|
|
8557
8552
|
}
|
|
8558
8553
|
};
|
|
8559
|
-
},
|
|
8554
|
+
}, gi = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
|
|
8560
8555
|
let o = Math.min(a, r / 2, i / 2);
|
|
8561
8556
|
e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.quadraticCurveTo(t + r, n, t + r, n + o), e.lineTo(t + r, n + i - o), e.quadraticCurveTo(t + r, n + i, t + r - o, n + i), e.lineTo(t + o, n + i), e.quadraticCurveTo(t, n + i, t, n + i - o), e.lineTo(t, n + o), e.quadraticCurveTo(t, n, t + o, n), e.closePath();
|
|
8562
|
-
},
|
|
8557
|
+
}, _i = ({ context: e, type: t, axis: n, start: r, end: i, text: a, zoom: o, color: s, textColor: c = "#ffffff", fontFamily: l = "sans-serif", lineWidth: u = 1, padding: d = 4, radius: f = 4, offsetAlongAxis: p = 0, offsetPerpendicular: m = 0 }) => {
|
|
8563
8558
|
let h = o || 1, g = 12 / h, _ = d / h, v = f / h, y = (r + i) / 2 + p, b = t === "vertical" ? n + m : y, x = t === "vertical" ? y : n + m;
|
|
8564
8559
|
e.save(), e.setLineDash([]), e.fillStyle = s, e.strokeStyle = s, e.lineWidth = u / h, e.font = `${g}px ${l}`, e.textAlign = "center", e.textBaseline = "middle";
|
|
8565
8560
|
let S = e.measureText(a).width + _ * 2, C = g + _ * 2, w = b - S / 2, T = x - C / 2;
|
|
8566
|
-
e.beginPath(),
|
|
8561
|
+
e.beginPath(), gi({
|
|
8567
8562
|
context: e,
|
|
8568
8563
|
x: w,
|
|
8569
8564
|
y: T,
|
|
@@ -8571,11 +8566,11 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8571
8566
|
height: C,
|
|
8572
8567
|
radius: v
|
|
8573
8568
|
}), e.fill(), e.fillStyle = c, e.fillText(a, b, x), e.restore();
|
|
8574
|
-
},
|
|
8575
|
-
let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u =
|
|
8569
|
+
}, vi = ({ context: e, guide: t, zoom: n }) => {
|
|
8570
|
+
let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Br({ distance: l }).toString();
|
|
8576
8571
|
e.beginPath(), r === "vertical" ? (e.moveTo(i, a), e.lineTo(i, o), e.moveTo(i, s), e.lineTo(i, c)) : (e.moveTo(a, i), e.lineTo(o, i), e.moveTo(s, i), e.lineTo(c, i)), e.stroke();
|
|
8577
|
-
let d =
|
|
8578
|
-
|
|
8572
|
+
let d = Rr;
|
|
8573
|
+
_i({
|
|
8579
8574
|
context: e,
|
|
8580
8575
|
type: r,
|
|
8581
8576
|
axis: i,
|
|
@@ -8585,7 +8580,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8585
8580
|
zoom: n,
|
|
8586
8581
|
color: d,
|
|
8587
8582
|
lineWidth: 1
|
|
8588
|
-
}),
|
|
8583
|
+
}), _i({
|
|
8589
8584
|
context: e,
|
|
8590
8585
|
type: r,
|
|
8591
8586
|
axis: i,
|
|
@@ -8596,10 +8591,10 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8596
8591
|
color: d,
|
|
8597
8592
|
lineWidth: 1
|
|
8598
8593
|
});
|
|
8599
|
-
},
|
|
8594
|
+
}, yi = ({ anchors: e, bounds: t }) => {
|
|
8600
8595
|
let { left: n, right: r, centerX: i, top: a, bottom: o, centerY: s } = t;
|
|
8601
8596
|
e.vertical.push(n, i, r), e.horizontal.push(a, s, o);
|
|
8602
|
-
},
|
|
8597
|
+
}, bi = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
|
|
8603
8598
|
let i = [], a = n === "top" ? "left" : "top", o = r === "bottom" ? "right" : "bottom", s = [...e].sort((e, t) => e[n] - t[n]);
|
|
8604
8599
|
for (let e = 0; e < s.length; e += 1) {
|
|
8605
8600
|
let c = s[e], l = null, u = Infinity;
|
|
@@ -8620,35 +8615,35 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8620
8615
|
});
|
|
8621
8616
|
}
|
|
8622
8617
|
return i;
|
|
8623
|
-
},
|
|
8624
|
-
vertical:
|
|
8618
|
+
}, xi = ({ bounds: e }) => ({
|
|
8619
|
+
vertical: bi({
|
|
8625
8620
|
bounds: e,
|
|
8626
8621
|
axis: "centerX",
|
|
8627
8622
|
type: "vertical",
|
|
8628
8623
|
primaryStart: "top",
|
|
8629
8624
|
primaryEnd: "bottom"
|
|
8630
8625
|
}),
|
|
8631
|
-
horizontal:
|
|
8626
|
+
horizontal: bi({
|
|
8632
8627
|
bounds: e,
|
|
8633
8628
|
axis: "centerY",
|
|
8634
8629
|
type: "horizontal",
|
|
8635
8630
|
primaryStart: "left",
|
|
8636
8631
|
primaryEnd: "right"
|
|
8637
8632
|
})
|
|
8638
|
-
}),
|
|
8633
|
+
}), Si = [
|
|
8639
8634
|
"montage-area",
|
|
8640
8635
|
"background",
|
|
8641
8636
|
"interaction-blocker"
|
|
8642
|
-
],
|
|
8637
|
+
], Ci = ({ activeObject: t }) => {
|
|
8643
8638
|
let n = /* @__PURE__ */ new Set();
|
|
8644
8639
|
return t ? (n.add(t), t instanceof e && t.getObjects().forEach((e) => n.add(e)), n) : n;
|
|
8645
|
-
},
|
|
8640
|
+
}, wi = ({ object: e, excluded: t, ignoredIds: n = Si }) => {
|
|
8646
8641
|
if (t.has(e)) return !0;
|
|
8647
8642
|
let { visible: r = !0 } = e;
|
|
8648
8643
|
if (!r) return !0;
|
|
8649
8644
|
let { id: i } = e;
|
|
8650
8645
|
return !!(i && n.includes(i));
|
|
8651
|
-
},
|
|
8646
|
+
}, Ti = class e {
|
|
8652
8647
|
constructor({ editor: e }) {
|
|
8653
8648
|
this.anchors = {
|
|
8654
8649
|
vertical: [],
|
|
@@ -8696,12 +8691,12 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8696
8691
|
target: n,
|
|
8697
8692
|
transform: i
|
|
8698
8693
|
}), !this.anchors.vertical.length && !this.anchors.horizontal.length && this._cacheAnchors({ activeObject: n });
|
|
8699
|
-
let a =
|
|
8694
|
+
let a = W({ object: n });
|
|
8700
8695
|
if (!a) {
|
|
8701
8696
|
this._clearSpacingContexts(), this._clearGuides();
|
|
8702
8697
|
return;
|
|
8703
8698
|
}
|
|
8704
|
-
let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } =
|
|
8699
|
+
let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = fi({
|
|
8705
8700
|
activeBounds: a,
|
|
8706
8701
|
threshold: c,
|
|
8707
8702
|
anchors: this.anchors
|
|
@@ -8711,9 +8706,9 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8711
8706
|
n.set({
|
|
8712
8707
|
left: e + l,
|
|
8713
8708
|
top: t + u
|
|
8714
|
-
}), n.setCoords(), a =
|
|
8709
|
+
}), n.setCoords(), a = W({ object: n }) ?? a;
|
|
8715
8710
|
}
|
|
8716
|
-
let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p =
|
|
8711
|
+
let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = hi({
|
|
8717
8712
|
activeBounds: a,
|
|
8718
8713
|
candidates: d,
|
|
8719
8714
|
threshold: f,
|
|
@@ -8728,17 +8723,17 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8728
8723
|
n.set({
|
|
8729
8724
|
left: e + p.deltaX,
|
|
8730
8725
|
top: t + p.deltaY
|
|
8731
|
-
}), n.setCoords(), a =
|
|
8726
|
+
}), n.setCoords(), a = W({ object: n }) ?? a;
|
|
8732
8727
|
}
|
|
8733
8728
|
m || e._applyMovementStep({
|
|
8734
8729
|
target: n,
|
|
8735
8730
|
transform: i
|
|
8736
8731
|
});
|
|
8737
|
-
let h =
|
|
8732
|
+
let h = W({ object: n }) ?? a, g = fi({
|
|
8738
8733
|
activeBounds: h,
|
|
8739
8734
|
threshold: c,
|
|
8740
8735
|
anchors: this.anchors
|
|
8741
|
-
}), _ =
|
|
8736
|
+
}), _ = hi({
|
|
8742
8737
|
activeBounds: h,
|
|
8743
8738
|
candidates: d,
|
|
8744
8739
|
threshold: c,
|
|
@@ -8778,53 +8773,53 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8778
8773
|
}
|
|
8779
8774
|
let { anchors: l } = this, { vertical: u, horizontal: d } = l;
|
|
8780
8775
|
!u.length && !d.length && this._cacheAnchors({ activeObject: n });
|
|
8781
|
-
let f =
|
|
8776
|
+
let f = W({ object: n });
|
|
8782
8777
|
if (!f) {
|
|
8783
8778
|
this._clearGuides();
|
|
8784
8779
|
return;
|
|
8785
8780
|
}
|
|
8786
|
-
let { canvas:
|
|
8781
|
+
let { canvas: p } = this, m = 5 / (p.getZoom() || 1), { originX: h, originY: g } = i, { originX: _ = "left", originY: v = "top", scaleX: y = 1, scaleY: b = 1 } = n, x = h ?? _, S = g ?? v, C = e._collectVerticalSnapCandidates({
|
|
8787
8782
|
bounds: f,
|
|
8788
|
-
originX:
|
|
8783
|
+
originX: x,
|
|
8789
8784
|
shouldSnapX: o
|
|
8790
|
-
}),
|
|
8785
|
+
}), w = e._collectHorizontalSnapCandidates({
|
|
8791
8786
|
bounds: f,
|
|
8792
|
-
originY:
|
|
8787
|
+
originY: S,
|
|
8793
8788
|
shouldSnapY: s
|
|
8794
|
-
}),
|
|
8789
|
+
}), T = e._findAxisSnapCandidate({
|
|
8795
8790
|
anchors: u,
|
|
8796
|
-
candidates:
|
|
8797
|
-
threshold:
|
|
8798
|
-
}),
|
|
8791
|
+
candidates: C,
|
|
8792
|
+
threshold: m
|
|
8793
|
+
}), E = e._findAxisSnapCandidate({
|
|
8799
8794
|
anchors: d,
|
|
8800
|
-
candidates:
|
|
8801
|
-
threshold:
|
|
8802
|
-
}), { guidePosition:
|
|
8803
|
-
if (!
|
|
8795
|
+
candidates: w,
|
|
8796
|
+
threshold: m
|
|
8797
|
+
}), { guidePosition: D } = T, { guidePosition: O } = E, k = D !== null, A = O !== null;
|
|
8798
|
+
if (!k && !A) {
|
|
8804
8799
|
this._clearGuides();
|
|
8805
8800
|
return;
|
|
8806
8801
|
}
|
|
8807
|
-
let
|
|
8802
|
+
let j = [], M = null, N = null;
|
|
8808
8803
|
if (c) {
|
|
8809
8804
|
let t = e._resolveUniformScale({
|
|
8810
8805
|
bounds: f,
|
|
8811
|
-
originX:
|
|
8812
|
-
originY:
|
|
8813
|
-
verticalSnap:
|
|
8814
|
-
horizontalSnap:
|
|
8806
|
+
originX: x,
|
|
8807
|
+
originY: S,
|
|
8808
|
+
verticalSnap: T,
|
|
8809
|
+
horizontalSnap: E
|
|
8815
8810
|
});
|
|
8816
8811
|
if (t) {
|
|
8817
8812
|
let { scaleFactor: e, guide: n } = t;
|
|
8818
|
-
|
|
8813
|
+
M = y * e, N = b * e, j.push(n);
|
|
8819
8814
|
}
|
|
8820
8815
|
}
|
|
8821
8816
|
if (!c) {
|
|
8822
|
-
let { angle: t = 0 } = n, { width: r, height: i } = e._resolveBaseDimensions({ target: n }), a = Math.abs(
|
|
8823
|
-
if (
|
|
8817
|
+
let { angle: t = 0 } = n, { width: r, height: i } = e._resolveBaseDimensions({ target: n }), a = Math.abs(y) || 1, o = Math.abs(b) || 1;
|
|
8818
|
+
if (k) {
|
|
8824
8819
|
let n = e._resolveDesiredWidth({
|
|
8825
8820
|
bounds: f,
|
|
8826
|
-
originX:
|
|
8827
|
-
snap:
|
|
8821
|
+
originX: x,
|
|
8822
|
+
snap: T
|
|
8828
8823
|
});
|
|
8829
8824
|
if (n !== null) {
|
|
8830
8825
|
let a = e._resolveScaleForWidth({
|
|
@@ -8834,17 +8829,17 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8834
8829
|
scaleY: o,
|
|
8835
8830
|
angle: t
|
|
8836
8831
|
});
|
|
8837
|
-
a !== null && (
|
|
8832
|
+
a !== null && (M = a * (y < 0 ? -1 : 1), D !== null && j.push({
|
|
8838
8833
|
type: "vertical",
|
|
8839
|
-
position:
|
|
8834
|
+
position: D
|
|
8840
8835
|
}));
|
|
8841
8836
|
}
|
|
8842
8837
|
}
|
|
8843
|
-
if (
|
|
8838
|
+
if (A) {
|
|
8844
8839
|
let n = e._resolveDesiredHeight({
|
|
8845
8840
|
bounds: f,
|
|
8846
|
-
originY:
|
|
8847
|
-
snap:
|
|
8841
|
+
originY: S,
|
|
8842
|
+
snap: E
|
|
8848
8843
|
});
|
|
8849
8844
|
if (n !== null) {
|
|
8850
8845
|
let o = e._resolveScaleForHeight({
|
|
@@ -8854,31 +8849,34 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8854
8849
|
scaleX: a,
|
|
8855
8850
|
angle: t
|
|
8856
8851
|
});
|
|
8857
|
-
o !== null && (
|
|
8852
|
+
o !== null && (N = o * (b < 0 ? -1 : 1), O !== null && j.push({
|
|
8858
8853
|
type: "horizontal",
|
|
8859
|
-
position:
|
|
8854
|
+
position: O
|
|
8860
8855
|
}));
|
|
8861
8856
|
}
|
|
8862
8857
|
}
|
|
8863
8858
|
}
|
|
8864
|
-
let
|
|
8865
|
-
if (!
|
|
8859
|
+
let P = M !== null || N !== null;
|
|
8860
|
+
if (!P && !j.length) {
|
|
8866
8861
|
this._clearGuides();
|
|
8867
8862
|
return;
|
|
8868
8863
|
}
|
|
8869
|
-
if (
|
|
8864
|
+
if (P) {
|
|
8870
8865
|
let e = this.editor.canvasManager.getObjectPlacement({
|
|
8871
8866
|
object: n,
|
|
8872
|
-
originX:
|
|
8873
|
-
originY:
|
|
8867
|
+
originX: x,
|
|
8868
|
+
originY: S
|
|
8874
8869
|
}), t = {};
|
|
8875
|
-
|
|
8870
|
+
M !== null && (t.scaleX = M, i.scaleX = M), N !== null && (t.scaleY = N, i.scaleY = N), Object.keys(t).length && (n.set(t), this.editor.canvasManager.applyObjectPlacement({
|
|
8871
|
+
object: n,
|
|
8872
|
+
placement: e
|
|
8873
|
+
}));
|
|
8876
8874
|
}
|
|
8877
8875
|
a && e._applyScalingStep({
|
|
8878
8876
|
target: n,
|
|
8879
8877
|
transform: i
|
|
8880
8878
|
}), this._applyGuides({
|
|
8881
|
-
guides:
|
|
8879
|
+
guides: j,
|
|
8882
8880
|
spacingGuides: []
|
|
8883
8881
|
});
|
|
8884
8882
|
}
|
|
@@ -8899,54 +8897,57 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8899
8897
|
}
|
|
8900
8898
|
let { anchors: a } = this, { vertical: o, horizontal: s } = a;
|
|
8901
8899
|
!o.length && !s.length && this._cacheAnchors({ activeObject: t });
|
|
8902
|
-
let c =
|
|
8900
|
+
let c = W({ object: t });
|
|
8903
8901
|
if (!c) {
|
|
8904
8902
|
this._clearGuides();
|
|
8905
8903
|
return;
|
|
8906
8904
|
}
|
|
8907
|
-
let { canvas: l } = this, u = 5 / (l.getZoom() || 1), { originX: d, originY: f } = n, { originX:
|
|
8905
|
+
let { canvas: l } = this, u = 5 / (l.getZoom() || 1), { originX: d, originY: f } = n, { originX: p = "left", originY: m = "top" } = t, h = d ?? p, g = f ?? m, v = e._collectVerticalSnapCandidates({
|
|
8908
8906
|
bounds: c,
|
|
8909
|
-
originX:
|
|
8907
|
+
originX: h,
|
|
8910
8908
|
shouldSnapX: !0
|
|
8911
|
-
}),
|
|
8909
|
+
}), y = e._findAxisSnapCandidate({
|
|
8912
8910
|
anchors: o,
|
|
8913
|
-
candidates:
|
|
8911
|
+
candidates: v,
|
|
8914
8912
|
threshold: u
|
|
8915
|
-
}), { guidePosition:
|
|
8916
|
-
if (
|
|
8913
|
+
}), { guidePosition: b } = y;
|
|
8914
|
+
if (b === null) {
|
|
8917
8915
|
this._clearGuides();
|
|
8918
8916
|
return;
|
|
8919
8917
|
}
|
|
8920
|
-
let
|
|
8918
|
+
let x = e._resolveDesiredWidth({
|
|
8921
8919
|
bounds: c,
|
|
8922
|
-
originX:
|
|
8923
|
-
snap:
|
|
8920
|
+
originX: h,
|
|
8921
|
+
snap: y
|
|
8924
8922
|
});
|
|
8925
|
-
if (
|
|
8923
|
+
if (x === null) {
|
|
8926
8924
|
this._clearGuides();
|
|
8927
8925
|
return;
|
|
8928
8926
|
}
|
|
8929
|
-
let
|
|
8927
|
+
let S = e._resolveTextWidthForBounds({
|
|
8930
8928
|
target: t,
|
|
8931
|
-
boundsWidth:
|
|
8929
|
+
boundsWidth: x
|
|
8932
8930
|
});
|
|
8933
|
-
if (
|
|
8931
|
+
if (S === null) {
|
|
8934
8932
|
this._clearGuides();
|
|
8935
8933
|
return;
|
|
8936
8934
|
}
|
|
8937
|
-
let { width:
|
|
8938
|
-
if (
|
|
8935
|
+
let { width: C = 0 } = t;
|
|
8936
|
+
if (S !== C) {
|
|
8939
8937
|
let e = this.editor.canvasManager.getObjectPlacement({
|
|
8940
8938
|
object: t,
|
|
8941
|
-
originX:
|
|
8942
|
-
originY:
|
|
8939
|
+
originX: h,
|
|
8940
|
+
originY: g
|
|
8941
|
+
});
|
|
8942
|
+
t.set({ width: S }), this.editor.canvasManager.applyObjectPlacement({
|
|
8943
|
+
object: t,
|
|
8944
|
+
placement: e
|
|
8943
8945
|
});
|
|
8944
|
-
t.set({ width: C }), t.setPositionByOrigin(new p(e.left, e.top), g, v), t.setCoords();
|
|
8945
8946
|
}
|
|
8946
8947
|
this._applyGuides({
|
|
8947
8948
|
guides: [{
|
|
8948
8949
|
type: "vertical",
|
|
8949
|
-
position:
|
|
8950
|
+
position: b
|
|
8950
8951
|
}],
|
|
8951
8952
|
spacingGuides: []
|
|
8952
8953
|
});
|
|
@@ -8963,9 +8964,9 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
8963
8964
|
let { canvas: e, guideBounds: t } = this, n = e.getSelectionContext();
|
|
8964
8965
|
if (!n) return;
|
|
8965
8966
|
let { left: r, right: i, top: a, bottom: o } = t ?? this._calculateViewportBounds(), { viewportTransform: s } = e, c = e.getZoom() || 1;
|
|
8966
|
-
n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle =
|
|
8967
|
+
n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Rr, n.setLineDash([4, 4]);
|
|
8967
8968
|
for (let e of this.activeGuides) n.beginPath(), e.type === "vertical" ? (n.moveTo(e.position, a), n.lineTo(e.position, o)) : (n.moveTo(r, e.position), n.lineTo(i, e.position)), n.stroke();
|
|
8968
|
-
for (let e of this.activeSpacingGuides)
|
|
8969
|
+
for (let e of this.activeSpacingGuides) vi({
|
|
8969
8970
|
context: n,
|
|
8970
8971
|
guide: e,
|
|
8971
8972
|
zoom: c
|
|
@@ -9174,15 +9175,15 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9174
9175
|
horizontal: []
|
|
9175
9176
|
}, r = [];
|
|
9176
9177
|
for (let e of t) {
|
|
9177
|
-
let t =
|
|
9178
|
-
t && (
|
|
9178
|
+
let t = W({ object: e });
|
|
9179
|
+
t && (yi({
|
|
9179
9180
|
anchors: n,
|
|
9180
9181
|
bounds: t
|
|
9181
9182
|
}), r.push(t));
|
|
9182
9183
|
}
|
|
9183
|
-
let { montageArea: i } = this.editor, a =
|
|
9184
|
+
let { montageArea: i } = this.editor, a = W({ object: i });
|
|
9184
9185
|
if (a) {
|
|
9185
|
-
|
|
9186
|
+
yi({
|
|
9186
9187
|
anchors: n,
|
|
9187
9188
|
bounds: a
|
|
9188
9189
|
});
|
|
@@ -9194,12 +9195,12 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9194
9195
|
bottom: i
|
|
9195
9196
|
};
|
|
9196
9197
|
} else this.guideBounds = this._calculateViewportBounds();
|
|
9197
|
-
this.anchors = n, this.spacingPatterns =
|
|
9198
|
+
this.anchors = n, this.spacingPatterns = xi({ bounds: r }), this.cachedTargetBounds = r;
|
|
9198
9199
|
}
|
|
9199
9200
|
_collectTargets({ activeObject: e }) {
|
|
9200
|
-
let t =
|
|
9201
|
+
let t = Ci({ activeObject: e }), n = [];
|
|
9201
9202
|
return this.canvas.forEachObject((e) => {
|
|
9202
|
-
|
|
9203
|
+
wi({
|
|
9203
9204
|
object: e,
|
|
9204
9205
|
excluded: t
|
|
9205
9206
|
}) || n.push(e);
|
|
@@ -9208,7 +9209,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9208
9209
|
_resolveCurrentTargetBounds({ activeObject: e }) {
|
|
9209
9210
|
let t = this._collectTargets({ activeObject: e }), n = [];
|
|
9210
9211
|
for (let e of t) {
|
|
9211
|
-
let t =
|
|
9212
|
+
let t = W({ object: e });
|
|
9212
9213
|
t && n.push(t);
|
|
9213
9214
|
}
|
|
9214
9215
|
return n;
|
|
@@ -9222,7 +9223,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9222
9223
|
bottom: (r - s) / a
|
|
9223
9224
|
};
|
|
9224
9225
|
}
|
|
9225
|
-
},
|
|
9226
|
+
}, Ei = "#3D8BF4", Di = class e {
|
|
9226
9227
|
constructor({ editor: e }) {
|
|
9227
9228
|
this.activeGuides = [], this.isAltPressed = !1, this.pendingEvent = null, this.frameRequest = null, this.isToolbarHidden = !1, this.isTargetMontageArea = !1, this.lastMouseEvent = null, this.editor = e, this.canvas = e.canvas, this._onMouseMove = this._handleMouseMove.bind(this), this._onBeforeRender = this._handleBeforeRender.bind(this), this._onAfterRender = this._handleAfterRender.bind(this), this._onSelectionCleared = this._handleSelectionCleared.bind(this), this._onKeyDown = this._handleKeyDown.bind(this), this._onKeyUp = this._handleKeyUp.bind(this), this._onWindowBlur = this._handleWindowBlur.bind(this), this._bindEvents();
|
|
9228
9229
|
}
|
|
@@ -9286,7 +9287,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9286
9287
|
this._clearGuides();
|
|
9287
9288
|
return;
|
|
9288
9289
|
}
|
|
9289
|
-
let a =
|
|
9290
|
+
let a = W({ object: i });
|
|
9290
9291
|
if (!a) {
|
|
9291
9292
|
this._clearGuides();
|
|
9292
9293
|
return;
|
|
@@ -9294,7 +9295,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9294
9295
|
let o = e._resolveTarget({
|
|
9295
9296
|
event: t,
|
|
9296
9297
|
activeObject: i
|
|
9297
|
-
}), { montageArea: s } = r, c = o ?? s, l = c === s, u =
|
|
9298
|
+
}), { montageArea: s } = r, c = o ?? s, l = c === s, u = W({ object: c });
|
|
9298
9299
|
if (!u) {
|
|
9299
9300
|
this._clearGuides();
|
|
9300
9301
|
return;
|
|
@@ -9315,8 +9316,8 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9315
9316
|
this.isTargetMontageArea = l, this.activeGuides = d, this._hideToolbar(), n.requestRenderAll();
|
|
9316
9317
|
}
|
|
9317
9318
|
static _resolveTarget({ event: e, activeObject: t }) {
|
|
9318
|
-
let { target: n } = e, r =
|
|
9319
|
-
return n && !
|
|
9319
|
+
let { target: n } = e, r = Ci({ activeObject: t });
|
|
9320
|
+
return n && !wi({
|
|
9320
9321
|
object: n,
|
|
9321
9322
|
excluded: r
|
|
9322
9323
|
}) ? n : null;
|
|
@@ -9433,18 +9434,18 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9433
9434
|
let { canvas: e } = this, t = e.getSelectionContext();
|
|
9434
9435
|
if (!t) return;
|
|
9435
9436
|
let { viewportTransform: n } = e, r = e.getZoom() || 1, i = this.activeGuides.some((e) => e.type === "vertical"), a = this.activeGuides.some((e) => e.type === "horizontal"), o = i && a && !this.isTargetMontageArea, s = o ? 12 / r : 0;
|
|
9436
|
-
t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle =
|
|
9437
|
+
t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = Ei, t.setLineDash([]);
|
|
9437
9438
|
for (let e of this.activeGuides) {
|
|
9438
9439
|
let { type: n, axis: i, start: a, end: c, distance: l } = e, u = Math.abs(c - a), d = o ? (a <= c ? -1 : 1) * (u / 2 + s) : 0;
|
|
9439
|
-
t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(),
|
|
9440
|
+
t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), _i({
|
|
9440
9441
|
context: t,
|
|
9441
9442
|
type: n,
|
|
9442
9443
|
axis: i,
|
|
9443
9444
|
start: a,
|
|
9444
9445
|
end: c,
|
|
9445
|
-
text:
|
|
9446
|
+
text: Br({ distance: l }).toString(),
|
|
9446
9447
|
zoom: r,
|
|
9447
|
-
color:
|
|
9448
|
+
color: Ei,
|
|
9448
9449
|
lineWidth: 1,
|
|
9449
9450
|
offsetAlongAxis: d,
|
|
9450
9451
|
offsetPerpendicular: 0
|
|
@@ -9462,13 +9463,13 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9462
9463
|
let { toolbar: e } = this.editor;
|
|
9463
9464
|
e?.showAfterTemporary?.(), this.isToolbarHidden = !1;
|
|
9464
9465
|
}
|
|
9465
|
-
},
|
|
9466
|
+
}, Oi = class e {
|
|
9466
9467
|
constructor(e, t) {
|
|
9467
9468
|
this.options = t, this.containerId = e, this.editorId = `${e}-${D()}`, this.init();
|
|
9468
9469
|
}
|
|
9469
9470
|
async init() {
|
|
9470
9471
|
let { editorContainerWidth: e, editorContainerHeight: n, canvasWrapperWidth: r, canvasWrapperHeight: i, canvasCSSWidth: a, canvasCSSHeight: o, initialImage: s, initialState: c, scaleType: l, showRotationAngle: u, _onReadyCallback: d } = this.options;
|
|
9471
|
-
if (z.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new
|
|
9472
|
+
if (z.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new tr({ editor: this }), this.historyManager = new Me({ editor: this }), this.toolbar = new ae({ editor: this }), this.transformManager = new Ue({ editor: this }), this.zoomManager = new We({ editor: this }), this.canvasManager = new He({ editor: this }), this.imageManager = new Re({ editor: this }), this.layerManager = new $e({ editor: this }), this.shapeManager = new Jn({ editor: this }), this.interactionBlocker = new Ze({ editor: this }), this.backgroundManager = new Qe({ editor: this }), this.clipboardManager = new Yn({ editor: this }), this.objectLockManager = new Xn({ editor: this }), this.groupingManager = new Zn({ editor: this }), this.selectionManager = new Qn({ editor: this }), this.deletionManager = new $n({ editor: this }), this.panConstraintManager = new nr({ editor: this }), this.snappingManager = new Ti({ editor: this }), this.measurementManager = new Di({ editor: this }), this.fontManager = new ie(this.options.fonts ?? []), this.textManager = new Mr({ editor: this }), this.templateManager = new Lr({ editor: this }), u && (this.angleIndicator = new se({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
|
|
9472
9473
|
editor: this,
|
|
9473
9474
|
options: this.options
|
|
9474
9475
|
}), this.canvasManager.setEditorContainerWidth(e), this.canvasManager.setEditorContainerHeight(n), this.canvasManager.setCanvasWrapperWidth(r), this.canvasManager.setCanvasWrapperHeight(i), this.canvasManager.setCanvasCSSWidth(a), this.canvasManager.setCanvasCSSHeight(o), this.canvasManager.updateCanvas(), this.zoomManager.calculateAndApplyDefaultZoom(), await this.fontManager.loadFonts(), c) {
|
|
@@ -9509,7 +9510,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9509
9510
|
}
|
|
9510
9511
|
_createMontageArea() {
|
|
9511
9512
|
let { montageAreaWidth: t, montageAreaHeight: n } = this.options, r = new p(t / 2, n / 2);
|
|
9512
|
-
this.montageArea =
|
|
9513
|
+
this.montageArea = Xe({
|
|
9513
9514
|
canvas: this.canvas,
|
|
9514
9515
|
centerPoint: r,
|
|
9515
9516
|
options: {
|
|
@@ -9533,7 +9534,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9533
9534
|
}
|
|
9534
9535
|
_createClippingArea() {
|
|
9535
9536
|
let { montageAreaWidth: e, montageAreaHeight: t } = this.options, n = new p(e / 2, t / 2);
|
|
9536
|
-
this.canvas.clipPath =
|
|
9537
|
+
this.canvas.clipPath = Xe({
|
|
9537
9538
|
canvas: this.canvas,
|
|
9538
9539
|
centerPoint: n,
|
|
9539
9540
|
options: {
|
|
@@ -9576,7 +9577,7 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
9576
9577
|
"U+A640-A69F",
|
|
9577
9578
|
"U+FE2E-FE2F",
|
|
9578
9579
|
"U+2116"
|
|
9579
|
-
].join(", "),
|
|
9580
|
+
].join(", "), ki = {
|
|
9580
9581
|
preserveObjectStacking: !0,
|
|
9581
9582
|
controlsAboveOverlay: !0,
|
|
9582
9583
|
centeredRotation: !0,
|
|
@@ -10430,20 +10431,20 @@ var Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH
|
|
|
10430
10431
|
};
|
|
10431
10432
|
//#endregion
|
|
10432
10433
|
//#region src/main.ts
|
|
10433
|
-
function
|
|
10434
|
+
function Ai(e, t = {}) {
|
|
10434
10435
|
let n = {
|
|
10435
|
-
...
|
|
10436
|
+
...ki,
|
|
10436
10437
|
...t
|
|
10437
10438
|
}, r = document.getElementById(e);
|
|
10438
10439
|
if (!r) return Promise.reject(/* @__PURE__ */ Error(`Контейнер с ID "${e}" не найден.`));
|
|
10439
10440
|
let i = document.createElement("canvas");
|
|
10440
10441
|
return i.id = `${e}-canvas`, r.appendChild(i), n.editorContainer = r, new Promise((t) => {
|
|
10441
10442
|
n._onReadyCallback = t;
|
|
10442
|
-
let r = new
|
|
10443
|
+
let r = new Oi(i.id, n);
|
|
10443
10444
|
window[e] = r;
|
|
10444
10445
|
});
|
|
10445
10446
|
}
|
|
10446
10447
|
//#endregion
|
|
10447
|
-
export {
|
|
10448
|
+
export { Ai as default };
|
|
10448
10449
|
|
|
10449
10450
|
//# sourceMappingURL=main.js.map
|