@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 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
- }, H = "fabric-editor-angle-indicator", oe = class e {
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 = H, Object.entries(V).forEach(([e, t]) => {
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
- }, se = /* @__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(".");
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 ce({ state: e }) {
857
+ function le({ state: e }) {
858
858
  return JSON.parse(JSON.stringify(e));
859
859
  }
860
- function U({ value: e }) {
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(U({ value: e[n] }));
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] = U({ value: e[i] });
870
+ t[i] = H({ value: e[i] });
871
871
  }
872
872
  return t;
873
873
  }
874
874
  return e;
875
875
  }
876
- function le({ value: e }) {
877
- let t = U({ value: e });
876
+ function ue({ value: e }) {
877
+ let t = H({ value: e });
878
878
  return JSON.stringify(t);
879
879
  }
880
- function ue({ prevState: e, nextState: t }) {
881
- return le({ value: e }) === le({ value: t });
880
+ function de({ prevState: e, nextState: t }) {
881
+ return ue({ value: e }) === ue({ value: t });
882
882
  }
883
- function de({ objects: e, id: t }) {
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 fe({ objects: e }) {
891
- let t = de({
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 pe({ objects: e }) {
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 me({ objects: e }) {
916
- let t = pe({ objects: e });
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 he({ prevState: e, nextState: t }) {
923
- let { width: n, height: r, objects: i } = e, { objects: a } = t, { width: o, height: s } = fe({ objects: i }), { width: c, height: l } = fe({ objects: a });
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 ge({ prevState: e, nextState: t }) {
927
- let n = ce({ state: e }), r = ce({ state: t });
928
- return me({ objects: n.objects }), me({ objects: r.objects }), he({
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 _e({ customData: e }) {
938
+ function ve({ customData: e }) {
939
939
  return JSON.parse(JSON.stringify(e));
940
940
  }
941
- function ve({ state: e }) {
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 ye({ state: e, canvas: t }) {
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 = _e({ customData: o }));
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 be({ object: e }) {
970
+ function xe({ object: e }) {
971
971
  return typeof e.getObjects == "function" ? e.getObjects() : [];
972
972
  }
973
- function xe({ objects: e }) {
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 Se({ object: e }) {
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 Ce({ object: e, withEvented: t = !1 }) {
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
- if (!Se({ object: e })) return !1;
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(Ce({
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 Ee({ object: e, snapshotStates: t }) {
1002
- if (!Se({ object: e })) return !1;
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(Ce({ object: e })), e.lockMovementX = !1, e.lockMovementY = !1, e.selectable = !0, !0);
1004
+ return !n && !r ? !1 : (t.push(we({ object: e })), e.lockMovementX = !1, e.lockMovementY = !1, e.selectable = !0, !0);
1005
1005
  }
1006
- function De({ objects: e }) {
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 || we({
1010
+ r.locked || Te({
1011
1011
  object: r,
1012
1012
  snapshotStates: t
1013
- }) || Te({
1013
+ }) || Ee({
1014
1014
  object: r,
1015
1015
  snapshotStates: t
1016
- }) || Ee({
1016
+ }) || De({
1017
1017
  object: r,
1018
1018
  snapshotStates: t
1019
1019
  });
1020
1020
  }
1021
1021
  return t;
1022
1022
  }
1023
- function Oe({ canvas: e }) {
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 = be({ object: r });
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 ke({ snapshotStates: e }) {
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 Ae({ canvas: e, callback: t }) {
1040
- let n = De({ objects: Oe({ canvas: e }) });
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
- ke({ snapshotStates: n });
1044
+ Ae({ snapshotStates: n });
1045
1045
  }
1046
1046
  }
1047
1047
  //#endregion
1048
1048
  //#region src/editor/history-manager/index.ts
1049
- var je = class {
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 Ae({
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([...se]);
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 = Ae({
1163
+ let e = je({
1164
1164
  canvas: this.canvas,
1165
- callback: () => this.canvas.toDatalessObject([...se])
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 } = ge({
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 (ue({
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 = ve({ state: e });
1201
- await t.loadFromJSON(d), ye({
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
- }, Me = .1, Ne = 4096, Pe = 4096, Fe = "application/image-editor:", Ie = /* @__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("."), Le = class e {
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 = Ne, maxHeight: o = Pe, minWidth: s = 16, minHeight: c = 16, asBase64: l = !1, emitMessage: u = !0 } = e, { errorManager: d, workerManager: f } = this.editor, p = {
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
- }, Re = (e, t, n) => Math.max(Math.min(e, n), t), ze = (e, t) => e * t;
1753
- function Be(e) {
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 Ve = class {
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(Re(o, a.left, a.right), Re(s, a.top, a.bottom));
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: a.x,
1792
- top: a.y,
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 = a ?? e.getPointByOrigin(o, s);
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.x,
1801
- top: n ?? c.y,
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.setPositionByOrigin(new p(n, r), i, a), e.setCoords();
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 = Re(Number(e), 16, Ne);
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 = ze(c, l / s);
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 = Re(Number(e), 16, Pe);
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 = ze(s, l / c);
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 = Re(e, 16, Ne);
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 = Re(e, 16, Pe);
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 = Re(n, 16, Ne), a = Re(r, 16, Pe);
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 (!Be(o)) return;
1986
- let { width: s, height: c } = o, l = Math.min(s, Ne), u = Math.min(c, Pe);
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
- }, He = class {
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
- }, Ue = class {
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 = Me) {
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 = Me, t = {}) {
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
- }, W = ({ value: e, fallback: t = 0 }) => typeof e == "number" && Number.isFinite(e) ? e : typeof t == "number" && Number.isFinite(t) ? t : 0, We = ({ value: e, dimension: t, useRelativePositions: n }) => {
2252
- let r = W({ value: e });
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
- }, Ge = ({ object: e, baseWidth: t, baseHeight: n, useRelativePositions: r }) => ({
2255
- x: We({
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: We({
2264
+ y: Ge({
2261
2265
  value: e.top,
2262
2266
  dimension: n,
2263
2267
  useRelativePositions: r
2264
2268
  })
2265
- }), Ke = ({ normalizedX: e, normalizedY: t, bounds: n }) => {
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
- }, Ye = ({ object: e }) => {
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 Xe({ canvas: e, object: t, left: n, top: r, centerPoint: i, flags: a }) {
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 Ze = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
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 Xe({
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
- }, Qe = class {
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 = Ze({
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
- }, $e = class e {
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 = Ze({
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 = Ze({
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
- }, et = class t {
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, tt = {
2765
+ }, G = 180, et = {
2773
2766
  top: .2,
2774
2767
  right: .2,
2775
2768
  bottom: .2,
2776
2769
  left: .2
2777
- }, nt = ({ value: e }) => Number(e.toFixed(4)), rt = ({ sides: e, radius: t = 50, centerX: n = 50, centerY: r = 50, rotation: i = -Math.PI / 2 }) => {
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: nt({ value: n + t * Math.cos(s) }),
2783
- y: nt({ value: r + t * Math.sin(s) })
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
- }, it = ({ spikes: e, outerRadius: t = 50, innerRadius: n = 22, centerX: r = 50, centerY: i = 50, rotation: a = -Math.PI / 2 }) => {
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: nt({ value: r + s * Math.cos(l) }),
2793
- y: nt({ value: i + s * Math.sin(l) })
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
- }, at = [
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: rt({
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: rt({
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: it({
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: it({
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: it({
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
- ], ot = "circle", st = "center", ct = {};
3394
- for (let e = 0; e < at.length; e += 1) {
3395
- let t = at[e];
3396
- ct[t.key] = t;
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 lt = ct, ut = ({ presetKey: e }) => lt[e] ?? null, dt = ({ preset: e, rounding: t }) => (typeof t == "number" ? t : 0) <= 0 || e.type === "rect" ? e.key : e.roundedVariant ?? e.key, ft = ({ preset: e, overridePadding: t }) => {
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 ?? tt.top,
3402
- right: t?.right ?? n.right ?? tt.right,
3403
- bottom: t?.bottom ?? n.bottom ?? tt.bottom,
3404
- left: t?.left ?? n.left ?? tt.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
- }, pt = ({ preset: e }) => e.type === "rect" || e.type === "triangle" || e.type === "polygon" || e.type === "polyline" ? !0 : e.type === "ellipse" || e.type === "svg" ? !1 : mt({ path: e.path });
3407
- function mt({ path: e }) {
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 ht = 1, gt = 1e-4;
3424
- function _t({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
3425
- let a = xt({
3426
- width: Math.max(ht, t),
3427
- height: Math.max(ht, n),
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 = ht, height: s = ht } = e, c = Math.max(ht, o), l = Math.max(ht, s);
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 vt({ preset: e, width: t, height: n, style: r, rounding: i }) {
3457
- let a = await bt({
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 yt({
3454
+ return vt({
3462
3455
  shape: a,
3463
3456
  style: r
3464
- }), _t({
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 yt({ shape: e, style: t }) {
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) yt({
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 bt({ preset: e, rounding: t }) {
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" ? St({ rounding: t }) : e.type === "polygon" ? wt({
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" ? wt({
3508
+ }) : e.type === "polyline" ? Ct({
3516
3509
  points: e.points,
3517
3510
  type: "polyline",
3518
3511
  rounding: t
3519
- }) : e.type === "path" ? Ct({
3512
+ }) : e.type === "path" ? St({
3520
3513
  path: e.path,
3521
3514
  rounding: t
3522
- }) : e.type === "svg" ? Mt({ svg: e.svg }) : new g({
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 xt({ width: e, height: t, strokeWidth: n }) {
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(ht, e - r),
3535
- height: Math.max(ht, t - r)
3527
+ width: Math.max(mt, e - r),
3528
+ height: Math.max(mt, t - r)
3536
3529
  };
3537
3530
  }
3538
- function St({ rounding: e }) {
3539
- return jt({ rounding: e }) ? Dt({
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 Ct({ path: e, rounding: t }) {
3566
- return jt({ rounding: t }) && Et({
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
- }) || Tt({ path: e });
3562
+ }) || wt({ path: e });
3570
3563
  }
3571
- function wt({ points: e, type: t, rounding: n }) {
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 (jt({ rounding: n })) {
3587
- if (t === "polygon" && r.length >= 3) return Dt({
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 Dt({
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 Tt({ path: e }) {
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 Et({ path: e, rounding: t }) {
3619
- let n = Tt({ path: e }).path ?? [], r = C.makePathSimpler(n), i = [], a = !1;
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 : Dt({
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 Dt({ points: e, rounding: t, closed: n }) {
3646
- return new d(Ot({
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 Ot({ points: e, radius: t, closed: n }) {
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 kt({
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 = At({
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 kt({
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 = At({
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 kt({ points: e, closed: t }) {
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 At({ previous: e, current: t, next: n, radius: r }) {
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 <= gt || s <= gt) return {
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 jt({ rounding: e }) {
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 Mt({ svg: e }) {
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, Nt = .5, Pt = 12, Ft = 12, It = .45, Lt = 8, Rt = 8, zt = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s }) => {
3761
- let c = Gt({ padding: s }), l = Math.max(q, e.shapeManualBaseWidth ?? r), u = Math.max(q, e.shapeManualBaseHeight ?? i), d = Vt({
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 = Ut({
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
- _t({
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: _ } = Ht({
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
- }, Bt = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, strokeWidth: i, montageAreaWidth: a }) => {
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 (!Kt({ text: e })) return s;
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 = Gt({ padding: r }), f = u, p = Zt({
3804
+ let d = Wt({ padding: r }), f = u, p = Xt({
3812
3805
  text: e,
3813
- frameWidth: Yt({
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, Wt({
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 < Lt; t += 1) {
3824
- let t = Yt({
3816
+ for (let t = 0; t < It; t += 1) {
3817
+ let t = Jt({
3825
3818
  width: h,
3826
3819
  padding: d
3827
- }), n = Zt({
3820
+ }), n = Xt({
3828
3821
  text: e,
3829
3822
  frameWidth: t
3830
- }), r = t >= m - Nt;
3823
+ }), r = t >= m - Mt;
3831
3824
  if (!n.hasWrappedLines && r) return h;
3832
- if (h >= f - Nt) return 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, Wt({
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
- }, Vt = ({ text: e, padding: t }) => {
3841
- if (!Kt({ text: e })) return q;
3842
- let n = Gt({ padding: t });
3843
- return Wt({
3844
- frameWidth: $t({ text: e }),
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
- }, Ht = ({ text: e, width: t, height: n, alignV: r, padding: i }) => {
3848
- let a = Jt({
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: Gt({ padding: i })
3852
- }), o = rn({
3844
+ padding: Wt({ padding: i })
3845
+ }), o = nn({
3853
3846
  text: e,
3854
3847
  frameWidth: a.width
3855
- }), s = Qt({
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: tn({
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
- }, Ut = ({ text: e, width: t, height: n, padding: r }) => {
3863
+ }, Ht = ({ text: e, width: t, height: n, padding: r }) => {
3871
3864
  let i = Math.max(q, n);
3872
- if (!Kt({ text: e })) return i;
3873
- let a = Math.max(q, t), o = Gt({ padding: r }), s = i;
3874
- for (let t = 0; t < Rt; t += 1) {
3875
- let t = Jt({
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 = Qt({
3872
+ }), n = Zt({
3880
3873
  text: e,
3881
3874
  frameWidth: t.width
3882
3875
  });
3883
- if (n <= t.height + Nt) return s;
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 Wt({ frameWidth: e, padding: t }) {
3882
+ function Ut({ frameWidth: e, padding: t }) {
3890
3883
  let n = Math.max(q, e), r = n;
3891
- for (let e = 0; e < Lt; e += 1) {
3892
- let e = Yt({
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 - Nt) return r;
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 Gt({ padding: e }) {
3895
+ function Wt({ padding: e }) {
3903
3896
  return {
3904
- top: qt({ value: e.top }),
3905
- right: qt({ value: e.right }),
3906
- bottom: qt({ value: e.bottom }),
3907
- left: qt({ value: e.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 Kt({ text: e }) {
3903
+ function Gt({ text: e }) {
3911
3904
  return (e.text ?? "").trim().length > 0;
3912
3905
  }
3913
- function qt({ value: e }) {
3914
- return Math.min(Math.max(e, 0), It);
3906
+ function Kt({ value: e }) {
3907
+ return Math.min(Math.max(e, 0), Ft);
3915
3908
  }
3916
- function Jt({ width: e, height: t, padding: n }) {
3917
- let r = nn({
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 = nn({
3914
+ }), i = tn({
3922
3915
  size: e,
3923
3916
  ratio: n.right,
3924
3917
  axis: "horizontal"
3925
- }), a = nn({
3918
+ }), a = tn({
3926
3919
  size: t,
3927
3920
  ratio: n.top,
3928
3921
  axis: "vertical"
3929
- }), o = nn({
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 Yt({ width: e, padding: t }) {
3942
- let n = nn({
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 = nn({
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 Xt({ text: e }) {
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 Zt({ text: e, frameWidth: t }) {
3963
- let n = on({ text: e }), r = rn({
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 = ln({ text: e });
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 = sn({ text: e }) > n, o = Math.ceil(an({ text: e }));
3973
- return un({
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 Qt({ text: e, frameWidth: t, splitByGrapheme: n }) {
3982
- let r = ln({ text: e }), i = n ?? rn({
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 = Xt({ text: e });
3992
- return un({
3984
+ let a = Yt({ text: e });
3985
+ return ln({
3993
3986
  text: e,
3994
3987
  state: r
3995
3988
  }), a;
3996
3989
  }
3997
- function $t({ text: e }) {
3998
- let t = en({
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 en({ text: e, frameWidth: t, splitByGrapheme: n }) {
4006
- let r = ln({ text: e });
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 = an({ text: e });
4013
- return un({
4005
+ let i = rn({ text: e });
4006
+ return ln({
4014
4007
  text: e,
4015
4008
  state: r
4016
4009
  }), i;
4017
4010
  }
4018
- function tn({ alignV: e, frameHeight: t, frameTop: n, textHeight: r }) {
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 nn({ size: e, ratio: t, axis: n }) {
4023
- let r = n === "horizontal" ? Pt : Ft, i = e * t;
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 rn({ text: e, frameWidth: t }) {
4027
- let n = Math.max(q, t), r = ln({ text: e });
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 = dn({ text: e }) > n + Nt;
4034
- return un({
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 an({ text: e }) {
4040
- let t = sn({ text: e });
4041
- if (t > 0) return cn({
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 cn({
4039
+ return sn({
4047
4040
  text: e,
4048
4041
  lineCount: Math.max(n.split("\n").length, 1)
4049
4042
  });
4050
4043
  }
4051
- function on({ text: e }) {
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 sn({ text: e }) {
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 cn({ text: e, lineCount: t }) {
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 ln({ text: e }) {
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 un({ text: e, state: t }) {
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 dn({ text: e }) {
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 fn = ({ group: e }) => {
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
- }, pn = ({ text: e }) => {
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
- }, mn = ({ group: e }) => {
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
- }, hn = ({ group: e }) => {
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
- }, gn = [
4115
+ }, hn = [
4123
4116
  "tl",
4124
4117
  "tr",
4125
4118
  "bl",
4126
4119
  "br"
4127
- ], _n = ({ transform: e }) => {
4120
+ ], gn = ({ transform: e }) => {
4128
4121
  let { originX: t, originY: n } = e;
4129
4122
  return (t === "center" || t === .5) && (n === "center" || n === .5);
4130
- }, vn = ({ transform: e, x: t, y: n }) => {
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
- _n({ transform: r }) && (d *= 2, f *= 2);
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
- }, yn = () => {
4138
- let e = b.wrapWithFireEvent("scaling", b.wrapWithFixedAnchor((e, t, n, r) => vn({
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
- }, bn = ({ control: e }) => {
4147
+ }, yn = ({ control: e }) => {
4155
4148
  let t = new r({
4156
4149
  ...e,
4157
- actionHandler: yn()
4150
+ actionHandler: vn()
4158
4151
  });
4159
4152
  return t.shapeFreeScaleCornerControl = !0, t;
4160
- }, xn = ({ group: e }) => {
4153
+ }, bn = ({ group: e }) => {
4161
4154
  let t = { ...e.controls };
4162
- gn.forEach((n) => {
4155
+ hn.forEach((n) => {
4163
4156
  let r = e.controls[n];
4164
- r && (r.shapeFreeScaleCornerControl || (t[n] = bn({ control: r })));
4157
+ r && (r.shapeFreeScaleCornerControl || (t[n] = yn({ control: r })));
4165
4158
  }), e.controls = t;
4166
- }, Sn = "shape-group";
4167
- function Cn() {
4159
+ }, xn = "shape-group";
4160
+ function Sn() {
4168
4161
  return { performLayout() {} };
4169
4162
  }
4170
- function wn({ layoutManager: e }) {
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 Tn = class e extends l {
4169
+ var wn = class e extends l {
4177
4170
  static {
4178
- this.type = Sn;
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(), fn({ group: this }), xn({ group: this });
4195
- let e = hn({ group: this });
4196
- e && pn({ text: e }), mn({ group: this }), this.setCoords();
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: Cn()
4195
+ layoutManager: Sn()
4203
4196
  });
4204
- return c.layoutManager = wn({ layoutManager: r }), c.layoutManager.subscribeTargets({
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 = ut({ presetKey: e });
4215
- t && (this.shapeCanRound = pt({ preset: t }));
4207
+ let t = lt({ presetKey: e });
4208
+ t && (this.shapeCanRound = ft({ preset: t }));
4216
4209
  }
4217
- }, En = () => {
4218
- y?.setClass && y.setClass(Tn, Sn);
4219
- }, J = (e) => e instanceof Tn || e instanceof l && e.shapeComposite === !0, Dn = ({ target: e, subTargets: t = [] }) => {
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
- }, On = ({ group: e }) => {
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
- }, kn = ({ group: e }) => {
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: On({ group: e }),
4253
- text: kn({ group: e })
4254
- }), An = ({ group: e }) => {
4255
- fn({ group: e });
4256
- }, jn = ({ transform: e, key: t }) => {
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
- }, Mn = ({ value: e }) => e === "left" || e === "center" || e === "right" || typeof e == "number" && Number.isFinite(e) ? e : null, Nn = ({ value: e }) => e === "top" || e === "center" || e === "bottom" || typeof e == "number" && Number.isFinite(e) ? e : null, Pn = ({ transform: e }) => {
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
- }, Fn = ({ event: e, group: t, transform: n, canvas: r }) => {
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
- }, In = ({ group: e, originX: t, originY: n }) => {
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
- }, Ln = ({ state: e, transform: t }) => {
4270
+ }, In = ({ state: e, transform: t }) => {
4278
4271
  if (!t || e.startTransformOriginX === null && e.startTransformOriginY === null) return !1;
4279
- let n = Mn({ value: t.originX }), r = Nn({ value: t.originY });
4272
+ let n = jn({ value: t.originX }), r = Mn({ value: t.originY });
4280
4273
  return n !== e.startTransformOriginX || r !== e.startTransformOriginY;
4281
- }, Rn = ({ state: e, transform: t }) => !t || !e.startTransformCorner ? !1 : t.corner !== e.startTransformCorner;
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 zn({ size: e, scale: t, strokeWidth: n, minSize: r, scaleEpsilon: i }) {
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 Bn({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, minSize: o, scaleEpsilon: s }) {
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
- _t({
4283
+ gt({
4291
4284
  shape: t,
4292
- width: zn({
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: zn({
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 Vn({ text: e, width: t, height: n, padding: r, alignH: i, alignV: a, scaleX: o, scaleY: s, scaleEpsilon: c }) {
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 } = Ht({
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 Hn = ({ group: e, shape: t, text: n, width: r, height: i, padding: a, alignH: o, alignV: s, scaleX: c, scaleY: l, minSize: u, scaleEpsilon: d }) => {
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
- }), Bn({
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
- }), Vn({
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, Un = .5, Wn = class e {
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 } = Pn({ transform: r }), u = !!(t.e && "shiftKey" in t.e && t.e.shiftKey);
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
- }), Hn({
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 } = Pn({ transform: n });
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 = Vt({
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
- }), Hn({
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 ? Pn({ transform: t.transform }) : null, _ = i?.canScaleWidth ?? g?.canScaleWidth ?? Math.abs(a - 1) > Z, v = i?.canScaleHeight ?? g?.canScaleHeight ?? Math.abs(o - 1) > Z, y = Vt({
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) > Un, T = Math.abs(C - c) > Un, E = w || T, D = S, O = C;
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)), zt({
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 = Ln({
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 = Rn({
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 } = Pn({ transform: r }), S = b && g ? Vt({
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 ?? Ut({
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 } = Pn({ transform: i });
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 } = Pn({ transform: i });
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 = Fn({
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 = jn({
4713
+ }), o = An({
4721
4714
  transform: r,
4722
4715
  key: "scaleX"
4723
- }), s = jn({
4716
+ }), s = An({
4724
4717
  transform: r,
4725
4718
  key: "scaleY"
4726
- }), c = jn({
4719
+ }), c = An({
4727
4720
  transform: r,
4728
4721
  key: "left"
4729
- }), l = jn({
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 = Mn({ value: r?.original?.originX ?? r?.originX }), h = Nn({ value: r?.original?.originY ?? r?.originY }), g = typeof r?.corner == "string" ? r.corner : null, _ = In({
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 Ut({
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
- zt({
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 && (_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 } = Pn({ transform: t }), i = Math.max(X, e.shapeBaseWidth ?? e.width ?? e.shapeManualBaseWidth ?? X), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? e.shapeManualBaseHeight ?? X);
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
- }, Gn = class {
4858
+ }, Wn = class {
4866
4859
  constructor({ canvas: e }) {
4867
4860
  this.handleMouseDown = (e) => {
4868
- let { target: t, e: n, subTargets: r = [] } = e, i = Dn({
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 || pn({ text: a });
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
- }), pn({ text: n }), this.canvas.getActiveObject() === n && this.canvas.setActiveObject(r), this.canvas.requestRenderAll());
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
- }, Kn = "#B0B5BF", qn = 0, Jn = 1, Yn = class {
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, En(), this.scalingController = new Wn({ canvas: e.canvas }), this.editingController = new Gn({ canvas: e.canvas }), this.editingPlacements = /* @__PURE__ */ new WeakMap(), this.internalTextUpdates = /* @__PURE__ */ new WeakSet(), this._bindEvents();
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 = ot, options: t = {} } = {}) {
4989
- let n = ut({ presetKey: e });
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 = ut({ presetKey: dt({
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 = ft({
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 vt({
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: pt({ preset: b }),
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 = ut({ presetKey: t ?? r.shapePresetKey ?? "circle" });
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 = ut({ presetKey: dt({
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 = ft({
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 vt({
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: pt({ preset: E }),
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
- yt({
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
- yt({
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
- yt({
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 Tn([r, i], {
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(), An({ group: h }), pn({ text: i }), zt({
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
- }), pn({ text: s }), s;
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 ? Bt({
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
- zt({
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
- mn({ group: e });
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 : st;
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 ?? Kn,
5561
+ fill: n ?? t?.shapeFill ?? Gn,
5569
5562
  stroke: r ?? t?.shapeStroke ?? null,
5570
- strokeWidth: i ?? t?.shapeStrokeWidth ?? qn,
5563
+ strokeWidth: i ?? t?.shapeStrokeWidth ?? Kn,
5571
5564
  strokeDashArray: s ?? null,
5572
- opacity: o ?? t?.shapeOpacity ?? Jn
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
- }, Xn = class {
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(Ie);
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(Ie), n = JSON.stringify(t);
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 = `${Fe}${e}`;
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(Ie);
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(Ie);
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
- }, Zn = class t {
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
- }, Qn = class {
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
- }, $n = class t {
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
- }, er = class e {
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
- }, tr = {
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
- }, nr = class e {
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(tr).some((t) => Object.values(t).includes(e)) : !1;
6289
+ return e ? Object.values(er).some((t) => Object.values(t).includes(e)) : !1;
6297
6290
  }
6298
- }, rr = class {
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
- }, ir = ({ textbox: e }) => {
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
- }, ar = ({ textbox: e }) => {
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
- }, or = ({ textbox: e, range: t }) => {
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
- }, sr = ({ textbox: e, styles: t, range: n }) => {
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
- }, cr = ({ textbox: e, range: t, property: n }) => {
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
- }, lr = ({ strokeColor: e, width: t }) => t <= 0 ? null : e ?? "#000000", ur = ({ width: e = 0 }) => e ? Math.max(0, e) : 0, dr = ({ value: e }) => typeof e == "string" ? e.toLocaleUpperCase() : "", fr = ({ value: e, min: t, max: n }) => Math.min(Math.max(e, t), n), pr = class e extends _ {
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 = ur({ width: typeof n == "number" && Number.isFinite(n) ? n : 0 }), i = this.getValueOfPropertyAt(e, t, "stroke"), a = i == null ? null : lr({
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: fr({
6506
+ bottomLeft: dr({
6514
6507
  value: this.radiusBottomLeft ?? 0,
6515
6508
  min: 0,
6516
6509
  max: i
6517
6510
  }),
6518
- bottomRight: fr({
6511
+ bottomRight: dr({
6519
6512
  value: this.radiusBottomRight ?? 0,
6520
6513
  min: 0,
6521
6514
  max: i
6522
6515
  }),
6523
- topLeft: fr({
6516
+ topLeft: dr({
6524
6517
  value: this.radiusTopLeft ?? 0,
6525
6518
  min: 0,
6526
6519
  max: i
6527
6520
  }),
6528
- topRight: fr({
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 = fr({
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 nr.emitError({
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 = fr({
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 = fr({
6565
+ }), p = dr({
6573
6566
  value: l,
6574
6567
  min: 0,
6575
6568
  max: a
6576
- }), m = fr({
6569
+ }), m = dr({
6577
6570
  value: u,
6578
6571
  min: 0,
6579
6572
  max: a
6580
- }), h = fr({
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
- }, mr = () => {
6592
- y?.setClass && y.setClass(pr, "background-textbox");
6593
- }, hr = .01, gr = ({ textbox: e, lineIndices: t, updates: n }) => {
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
- }, _r = ({ lineText: e, lineStyles: t, lineDefaults: n }) => {
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
- }, vr = ({ lineFontDefaults: e }) => {
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
- }, yr = ({ lineFontDefaults: e, scale: t }) => {
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
- }, br = ({ textbox: e }) => {
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
- }, xr = ({ range: e, text: t }) => {
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
- }, Sr = ({ textbox: e, range: t }) => {
6683
- let n = br({ textbox: e });
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
- }, Cr = ({ textbox: e, range: t }) => {
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
- }, wr = ({ textbox: e, range: t }) => {
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
- }, Tr = ({ previous: e, next: t }) => {
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
- }, Er = ({ text: e, charIndex: t }) => {
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
- }, Dr = ({ text: e, lineIndex: t }) => {
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
- }, Or = ({ textbox: e, text: t }) => {
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
- }, kr = ({ textbox: e, montageLeft: t, montageRight: n }) => {
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
- }, Ar = ({ rawValue: e, calculatedValue: t }) => typeof e == "number" ? e : typeof t == "number" ? t : 0, jr = ({ stylesList: e }) => {
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
- }, Mr = ({ textbox: e }) => {
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 = Ar({
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 = Ar({
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
- }, Nr = class t {
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 = dr({ value: l });
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 || (Mr({ textbox: n }) && (n.setCoords(), n.dirty = !0, this.canvas.requestRenderAll()), n.locked || n.set({
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 = yr({
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)) > hr, 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;
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 H = !1;
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(), H = !0);
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 oe = Mr({ textbox: r });
6889
- (oe || H) && (r.dirty = !0), a.applyObjectPlacement({
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 se = r.width ?? C, ce = se !== z;
6886
+ let ce = r.width ?? C, le = ce !== z;
6894
6887
  i.scaleX = 1, i.scaleY = 1;
6895
- let { original: U } = i;
6896
- U && (U.scaleX = 1, U.scaleY = 1, U.width = se, U.height = r.height, U.left = r.left, U.top = r.top), r.setCoords(), this.canvas.requestRenderAll(), o.baseWidth = se, o.baseFontSize = r.fontSize ?? w, o.baseStyles = JSON.parse(JSON.stringify(r.styles ?? {})), o.baseLineFontDefaults = vr({ lineFontDefaults: r.lineFontDefaults }), o.basePadding = {
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 = ce || B || ae || V || H || oe;
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 = yr({
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), Mr({ textbox: e });
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(), mr();
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 = ur({ width: m }), ee = lr({
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 pr(n, I), te = r !== !1;
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 = dr({ value: L.textCaseRaw });
7005
+ let e = ur({ value: L.textCaseRaw });
7013
7006
  e !== L.text && L.set({ text: e });
7014
7007
  }
7015
- Mr({ textbox: L }) && (L.dirty = !0);
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 ? ir({ textbox: o }) : xr({
7055
+ }), z = a === void 0 ? rr({ textbox: o }) : br({
7063
7056
  text: s,
7064
7057
  range: a
7065
- }), ie = z ? Sr({
7058
+ }), ie = z ? xr({
7066
7059
  textbox: o,
7067
7060
  range: z
7068
- }) : null, B = {}, ae = {}, V = {}, H, oe, se = or({
7061
+ }) : null, B = {}, ae = {}, V = {}, oe, se, ce = ar({
7069
7062
  textbox: o,
7070
7063
  range: z
7071
- }), ce = !z || se, U = !z;
7072
- if (m !== void 0 && (ie && (ae.fontFamily = m), ce && (R.fontFamily = m, U && (V.fontFamily = m))), h !== void 0 && (ie && (ae.fontSize = h), ce && (R.fontSize = h, U && (V.fontSize = h))), g !== void 0) {
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), ce && (R.fontWeight = e, U && (V.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), ce && (R.fontStyle = e, U && (V.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), ce && (R.underline = v, U && (V.underline = v))), b !== void 0 && (z && (B.linethrough = b), ce && (R.linethrough = b, U && (V.linethrough = b))), x !== void 0 && (R.textAlign = x), S !== void 0 && (z && (B.fill = S), ce && (R.fill = S, U && (V.fill = S))), C !== void 0 || w !== void 0) {
7081
- let e = z ? cr({
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 ? cr({
7078
+ }) : void 0, t = z ? sr({
7086
7079
  textbox: o,
7087
7080
  range: z,
7088
7081
  property: "stroke"
7089
7082
  }) : void 0;
7090
- oe = ur({ width: w ?? e ?? o.strokeWidth ?? 0 }), H = lr({
7083
+ se = lr({ width: w ?? e ?? o.strokeWidth ?? 0 }), oe = cr({
7091
7084
  strokeColor: C ?? t ?? o.stroke ?? void 0,
7092
- width: oe
7093
- }), z && (B.stroke = H, B.strokeWidth = oe), ce && (R.stroke = H, R.strokeWidth = oe, U && (V.stroke = H, V.strokeWidth = oe));
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 le = o.textCaseRaw ?? s, ue = !!o.uppercase, de = f !== void 0, fe = de ? f ?? "" : le, pe = y ?? ue, me = pe !== ue;
7097
- de || me ? (R.text = pe ? dr({ value: fe }) : fe, o.textCaseRaw = fe) : o.textCaseRaw === void 0 && (o.textCaseRaw = le), o.uppercase = pe, o.set(R);
7098
- let he = !1;
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 = sr({
7093
+ let e = or({
7101
7094
  textbox: o,
7102
7095
  styles: B,
7103
7096
  range: z
7104
- }), t = ie ? sr({
7097
+ }), t = ie ? or({
7105
7098
  textbox: o,
7106
7099
  styles: ae,
7107
7100
  range: ie
7108
7101
  }) : !1;
7109
- he = e || t;
7102
+ ge = e || t;
7110
7103
  } else if (Object.keys(V).length) {
7111
- let e = ar({ textbox: o });
7112
- e && (he = sr({
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 ge = he && jr({ stylesList: [
7111
+ let _e = ge && Ar({ stylesList: [
7119
7112
  B,
7120
7113
  ae,
7121
7114
  V
7122
7115
  ] });
7123
- if (he && (o.dirty = !0), ie && (m !== void 0 || h !== void 0)) {
7124
- let e = Cr({
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), gr({
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 = wr({
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) && (H === null && (t.stroke = null), H != null && (t.stroke = H)), gr({
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
- ge && (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);
7146
- let _e = jr({ stylesList: [
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: ve } = o, ye = p !== void 0, be = Object.prototype.hasOwnProperty.call(R, "width"), xe = (p ?? ve) !== !1;
7152
- ye ? o.autoExpand = p !== !1 : ve === void 0 && (o.autoExpand = !0);
7153
- let Se = xe && !be && (de || me || _e);
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: Se
7150
+ shouldAutoExpand: Ce
7158
7151
  }), o.setCoords();
7159
- let Ce = {
7152
+ let we = {
7160
7153
  withoutSave: !!r,
7161
7154
  skipRender: !!i
7162
- }, we = !!z && Object.keys(B).length > 0, Te = {
7155
+ }, Te = !!z && Object.keys(B).length > 0, Ee = {
7163
7156
  textbox: o,
7164
7157
  target: e,
7165
7158
  style: n,
7166
- options: Ce,
7159
+ options: we,
7167
7160
  updates: R,
7168
7161
  selectionRange: z ?? void 0,
7169
- selectionStyles: we ? B : void 0
7162
+ selectionStyles: Te ? B : void 0
7170
7163
  };
7171
- u.fire("editor:before:text-updated", Te), i || u.requestRenderAll();
7172
- let Ee = t._getSnapshot(o);
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 De = {
7175
- ...Te,
7167
+ let Oe = {
7168
+ ...Ee,
7176
7169
  before: d,
7177
- after: Ee
7170
+ after: De
7178
7171
  };
7179
- return u.fire("editor:text-updated", De), o;
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 = Mr({ textbox: e }));
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(Or({
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 = Tr({
7245
+ let e = wr({
7253
7246
  previous: d,
7254
7247
  next: u
7255
- }), t = Er({
7248
+ }), t = Tr({
7256
7249
  text: d,
7257
7250
  charIndex: e
7258
7251
  });
7259
7252
  if (h > 0) {
7260
- let r = Dr({
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 = _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(Or({
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), Mr({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
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 = kr({
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: vr({ lineFontDefaults: a }),
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
- }, Pr = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Fr = (e) => {
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: Pr({
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
- }, Ir = "_templateAnchorX", Lr = "_templateAnchorY", Rr = class t {
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: tr.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
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) => t._serializeObject({
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: tr.TEMPLATE_MANAGER.INVALID_TEMPLATE,
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: tr.TEMPLATE_MANAGER.INVALID_TARGET,
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: tr.TEMPLATE_MANAGER.INVALID_TEMPLATE,
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
- }), t._transformObject({
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: tr.TEMPLATE_MANAGER.APPLY_FAILED,
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 = W({
7617
+ }, m = U({
7625
7618
  value: u || f || c.width,
7626
7619
  fallback: 0
7627
- }), h = W({
7620
+ }), h = U({
7628
7621
  value: d || p || c.height,
7629
7622
  fallback: 0
7630
- }), g = W({
7623
+ }), g = U({
7631
7624
  value: r,
7632
7625
  fallback: m
7633
- }), _ = W({
7626
+ }), _ = U({
7634
7627
  value: i,
7635
7628
  fallback: h
7636
- }), v = W({
7629
+ }), v = U({
7637
7630
  value: a,
7638
7631
  fallback: c.scaleX || 1
7639
- }), y = W({
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
- static _transformObject({ object: e, scale: n, bounds: r, baseWidth: i, baseHeight: a, useRelativePositions: o }) {
7706
- let s = e, { x: c, y: l } = Ge({
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 = W({
7704
+ }), { scaleX: u, scaleY: d } = e, f = U({
7712
7705
  value: u,
7713
7706
  fallback: 1
7714
- }), p = W({
7707
+ }), p = U({
7715
7708
  value: d,
7716
7709
  fallback: 1
7717
- }), m = Ke({
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, Ir),
7727
- anchorY: t._resolveAnchor(s, Lr)
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
- }), e.setPositionByOrigin(m, _, v), e.setCoords(), delete s[Ir], delete s[Lr];
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 = W({
7786
+ let i = U({
7786
7787
  value: this.editor?.montageArea?.width,
7787
7788
  fallback: 0
7788
- }), { width: a = 0 } = e, o = W({
7789
+ }), { width: a = 0 } = e, o = U({
7789
7790
  value: n,
7790
7791
  fallback: 0
7791
- }), s = W({
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, Ir), 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
+ 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
- static _serializeObject({ object: e, bounds: n, baseWidth: r, baseHeight: i }) {
7816
- let a = e.toDatalessObject([...se]);
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 = qe({
7823
- object: e,
7824
- bounds: n
7825
- }) ?? (() => {
7826
- let t = e.originX ?? "center", n = e.originY ?? "center", r = e.getPointByOrigin(t, n);
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.left = p.x, a.top = p.y, 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 = Fr(r);
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: tr.TEMPLATE_MANAGER.APPLY_FAILED,
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
- }, zr = "#3D8BF4", Br = .5, Vr = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, Hr = ({ firstDistance: e, secondDistance: t }) => {
7918
- let n = Vr({ distance: e }), r = Vr({ distance: t });
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
- }, Ur = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), Wr = ({ step: e }) => {
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
- }, Gr = ({ value: e, step: t }) => {
7923
+ }, Wr = ({ value: e, step: t }) => {
7929
7924
  if (t === 0) return e;
7930
- let n = Wr({ step: t }), r = Math.round(e / t) * t;
7925
+ let n = Ur({ step: t }), r = Math.round(e / t) * t;
7931
7926
  return Number(r.toFixed(n));
7932
- }, Kr = ({ value: e, step: t }) => {
7927
+ }, Gr = ({ value: e, step: t }) => {
7933
7928
  if (t === 0) return !0;
7934
- let n = Gr({
7929
+ let n = Wr({
7935
7930
  value: e,
7936
7931
  step: t
7937
- }), r = 10 ** -(Wr({ step: t }) + 4);
7932
+ }), r = 10 ** -(Ur({ step: t }) + 4);
7938
7933
  return Math.abs(n - e) <= r;
7939
- }, qr = ({ bounds: e, axis: t }) => {
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
- }, Jr = ({ items: e, axis: t }) => {
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
- }, Yr = ({ items: e, index: t, axis: n, direction: r }) => {
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 } = qr({
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 } = qr({
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 } = qr({
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
- }, Xr = ({ items: e }) => {
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
- }, Zr = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
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
- }, Qr = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, $r = ({ baseOption: e, candidateOption: t }) => {
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
- }, ei = ({ options: e }) => {
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
- }, ti = ({ currentOption: e, nextOption: t }) => {
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
- }, ni = ({ options: e }) => {
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" && ti({
8017
+ a === "before" && ei({
8023
8018
  currentOption: n,
8024
8019
  nextOption: i
8025
- }) && (n = i), a === "after" && ti({
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
- }, ri = ({ options: e, side: t, baseOption: n }) => {
8026
+ }, ni = ({ options: e, side: t, baseOption: n }) => {
8032
8027
  let r = null;
8033
- for (let i of e) if (i.side === t && $r({
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
- }, ii = ({ option: e }) => {
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
- }, ai = ({ option: e, context: t }) => {
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
- }, oi = ({ options: e, context: t }) => {
8049
+ }, ai = ({ options: e, context: t }) => {
8055
8050
  if (!t) return null;
8056
- for (let n of e) if (ai({
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
- }, si = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
8062
- let i = oi({
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
- }, ci = ({ guides: e, seenGuideKeys: t, guide: n }) => {
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
- }, li = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
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 = ni({ options: e }), i = [];
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 = si({
8075
+ let a = i.length > 0, o = a ? i : r, s = oi({
8081
8076
  options: o,
8082
- bestOption: ei({ options: o }),
8077
+ bestOption: $r({ options: o }),
8083
8078
  previousContext: t,
8084
8079
  switchDistance: n
8085
- }), c = ri({
8080
+ }), c = ni({
8086
8081
  options: o,
8087
8082
  side: "before",
8088
8083
  baseOption: s
8089
- }), l = ri({
8084
+ }), l = ni({
8090
8085
  options: o,
8091
8086
  side: "after",
8092
8087
  baseOption: s
8093
- }), u = ri({
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) ci({
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: ii({ option: s })
8103
+ context: ri({ option: s })
8109
8104
  };
8110
- }, ui = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
8111
- let s = n - (e - r), c = Gr({
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: _ } = Hr({
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
- }, di = ({ currentGap: e, referenceGap: t }) => {
8132
- let { secondDisplayDistance: n, displayDistanceDiff: r } = Hr({
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
- }, fi = ({ anchors: e, positions: t, threshold: n }) => {
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
- }, pi = ({ activeBounds: e, threshold: t, anchors: n }) => {
8148
- let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = fi({
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 = fi({
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
- }, mi = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
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
- Ur({
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
- }), Jr({
8195
+ }), qr({
8201
8196
  items: f,
8202
8197
  axis: "top"
8203
8198
  });
8204
- let p = Xr({ items: f });
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 = Yr({
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
- }), _ = Yr({
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 = Gr({
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 = ui({
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: Br
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 (!Kr({
8268
+ if (!Gr({
8274
8269
  value: a,
8275
8270
  step: .5
8276
- }) || !Zr({
8271
+ }) || !Xr({
8277
8272
  patternAxis: t,
8278
8273
  activeRangeStart: l,
8279
8274
  activeRangeEnd: u,
8280
8275
  tolerance: n
8281
8276
  })) continue;
8282
- let d = Qr({
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 = Gr({
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 = di({
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 = Gr({
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 = di({
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 li({
8344
+ return ci({
8350
8345
  options: m,
8351
8346
  previousContext: i,
8352
8347
  switchDistance: a
8353
8348
  });
8354
- }, hi = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
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
- Ur({
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
- }), Jr({
8373
+ }), qr({
8379
8374
  items: f,
8380
8375
  axis: "left"
8381
8376
  });
8382
- let p = Xr({ items: f });
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 = Yr({
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
- }), _ = Yr({
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 = Gr({
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 = ui({
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: Br
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 (!Kr({
8446
+ if (!Gr({
8452
8447
  value: a,
8453
8448
  step: .5
8454
- }) || !Zr({
8449
+ }) || !Xr({
8455
8450
  patternAxis: t,
8456
8451
  activeRangeStart: l,
8457
8452
  activeRangeEnd: u,
8458
8453
  tolerance: n
8459
8454
  })) continue;
8460
- let d = Qr({
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 = Gr({
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 = di({
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 = Gr({
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 = di({
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 li({
8522
+ return ci({
8528
8523
  options: m,
8529
8524
  previousContext: i,
8530
8525
  switchDistance: a
8531
8526
  });
8532
- }, gi = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
8533
- let { vertical: o = null, horizontal: s = null } = i ?? {}, c = mi({
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 = hi({
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
- }, _i = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
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
- }, vi = ({ 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 }) => {
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(), _i({
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
- }, yi = ({ context: e, guide: t, zoom: n }) => {
8575
- let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Vr({ distance: l }).toString();
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 = zr;
8578
- vi({
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
- }), vi({
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
- }, bi = ({ anchors: e, bounds: t }) => {
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
- }, xi = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
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
- }, Si = ({ bounds: e }) => ({
8624
- vertical: xi({
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: xi({
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
- }), Ci = [
8633
+ }), Si = [
8639
8634
  "montage-area",
8640
8635
  "background",
8641
8636
  "interaction-blocker"
8642
- ], wi = ({ activeObject: t }) => {
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
- }, Ti = ({ object: e, excluded: t, ignoredIds: n = Ci }) => {
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
- }, Ei = class e {
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 = Ye({ object: n });
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 } = pi({
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 = Ye({ object: n }) ?? 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 = gi({
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 = Ye({ object: n }) ?? 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 = Ye({ object: n }) ?? a, g = pi({
8732
+ let h = W({ object: n }) ?? a, g = fi({
8738
8733
  activeBounds: h,
8739
8734
  threshold: c,
8740
8735
  anchors: this.anchors
8741
- }), _ = gi({
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 = Ye({ object: n });
8776
+ let f = W({ object: n });
8782
8777
  if (!f) {
8783
8778
  this._clearGuides();
8784
8779
  return;
8785
8780
  }
8786
- let { canvas: m } = this, h = 5 / (m.getZoom() || 1), { originX: g, originY: _ } = i, { originX: v = "left", originY: y = "top", scaleX: b = 1, scaleY: x = 1 } = n, S = g ?? v, C = _ ?? y, w = e._collectVerticalSnapCandidates({
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: S,
8783
+ originX: x,
8789
8784
  shouldSnapX: o
8790
- }), T = e._collectHorizontalSnapCandidates({
8785
+ }), w = e._collectHorizontalSnapCandidates({
8791
8786
  bounds: f,
8792
- originY: C,
8787
+ originY: S,
8793
8788
  shouldSnapY: s
8794
- }), E = e._findAxisSnapCandidate({
8789
+ }), T = e._findAxisSnapCandidate({
8795
8790
  anchors: u,
8796
- candidates: w,
8797
- threshold: h
8798
- }), D = e._findAxisSnapCandidate({
8791
+ candidates: C,
8792
+ threshold: m
8793
+ }), E = e._findAxisSnapCandidate({
8799
8794
  anchors: d,
8800
- candidates: T,
8801
- threshold: h
8802
- }), { guidePosition: O } = E, { guidePosition: k } = D, A = O !== null, j = k !== null;
8803
- if (!A && !j) {
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 M = [], N = null, P = null;
8802
+ let j = [], M = null, N = null;
8808
8803
  if (c) {
8809
8804
  let t = e._resolveUniformScale({
8810
8805
  bounds: f,
8811
- originX: S,
8812
- originY: C,
8813
- verticalSnap: E,
8814
- horizontalSnap: D
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
- N = b * e, P = x * e, M.push(n);
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(b) || 1, o = Math.abs(x) || 1;
8823
- if (A) {
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: S,
8827
- snap: E
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 && (N = a * (b < 0 ? -1 : 1), O !== null && M.push({
8832
+ a !== null && (M = a * (y < 0 ? -1 : 1), D !== null && j.push({
8838
8833
  type: "vertical",
8839
- position: O
8834
+ position: D
8840
8835
  }));
8841
8836
  }
8842
8837
  }
8843
- if (j) {
8838
+ if (A) {
8844
8839
  let n = e._resolveDesiredHeight({
8845
8840
  bounds: f,
8846
- originY: C,
8847
- snap: D
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 && (P = o * (x < 0 ? -1 : 1), k !== null && M.push({
8852
+ o !== null && (N = o * (b < 0 ? -1 : 1), O !== null && j.push({
8858
8853
  type: "horizontal",
8859
- position: k
8854
+ position: O
8860
8855
  }));
8861
8856
  }
8862
8857
  }
8863
8858
  }
8864
- let F = N !== null || P !== null;
8865
- if (!F && !M.length) {
8859
+ let P = M !== null || N !== null;
8860
+ if (!P && !j.length) {
8866
8861
  this._clearGuides();
8867
8862
  return;
8868
8863
  }
8869
- if (F) {
8864
+ if (P) {
8870
8865
  let e = this.editor.canvasManager.getObjectPlacement({
8871
8866
  object: n,
8872
- originX: S,
8873
- originY: C
8867
+ originX: x,
8868
+ originY: S
8874
8869
  }), t = {};
8875
- N !== null && (t.scaleX = N, i.scaleX = N), P !== null && (t.scaleY = P, i.scaleY = P), Object.keys(t).length && (n.set(t), n.setPositionByOrigin(new p(e.left, e.top), S, C), n.setCoords());
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: M,
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 = Ye({ object: t });
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: m = "left", originY: h = "top" } = t, g = d ?? m, v = f ?? h, y = e._collectVerticalSnapCandidates({
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: g,
8907
+ originX: h,
8910
8908
  shouldSnapX: !0
8911
- }), b = e._findAxisSnapCandidate({
8909
+ }), y = e._findAxisSnapCandidate({
8912
8910
  anchors: o,
8913
- candidates: y,
8911
+ candidates: v,
8914
8912
  threshold: u
8915
- }), { guidePosition: x } = b;
8916
- if (x === null) {
8913
+ }), { guidePosition: b } = y;
8914
+ if (b === null) {
8917
8915
  this._clearGuides();
8918
8916
  return;
8919
8917
  }
8920
- let S = e._resolveDesiredWidth({
8918
+ let x = e._resolveDesiredWidth({
8921
8919
  bounds: c,
8922
- originX: g,
8923
- snap: b
8920
+ originX: h,
8921
+ snap: y
8924
8922
  });
8925
- if (S === null) {
8923
+ if (x === null) {
8926
8924
  this._clearGuides();
8927
8925
  return;
8928
8926
  }
8929
- let C = e._resolveTextWidthForBounds({
8927
+ let S = e._resolveTextWidthForBounds({
8930
8928
  target: t,
8931
- boundsWidth: S
8929
+ boundsWidth: x
8932
8930
  });
8933
- if (C === null) {
8931
+ if (S === null) {
8934
8932
  this._clearGuides();
8935
8933
  return;
8936
8934
  }
8937
- let { width: w = 0 } = t;
8938
- if (C !== w) {
8935
+ let { width: C = 0 } = t;
8936
+ if (S !== C) {
8939
8937
  let e = this.editor.canvasManager.getObjectPlacement({
8940
8938
  object: t,
8941
- originX: g,
8942
- originY: v
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: x
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 = zr, n.setLineDash([4, 4]);
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) yi({
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 = Ye({ object: e });
9178
- t && (bi({
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 = Ye({ object: i });
9184
+ let { montageArea: i } = this.editor, a = W({ object: i });
9184
9185
  if (a) {
9185
- bi({
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 = Si({ bounds: r }), this.cachedTargetBounds = r;
9198
+ this.anchors = n, this.spacingPatterns = xi({ bounds: r }), this.cachedTargetBounds = r;
9198
9199
  }
9199
9200
  _collectTargets({ activeObject: e }) {
9200
- let t = wi({ activeObject: e }), n = [];
9201
+ let t = Ci({ activeObject: e }), n = [];
9201
9202
  return this.canvas.forEachObject((e) => {
9202
- Ti({
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 = Ye({ object: e });
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
- }, Di = "#3D8BF4", Oi = class e {
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 = Ye({ object: i });
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 = Ye({ object: c });
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 = wi({ activeObject: t });
9319
- return n && !Ti({
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 = Di, t.setLineDash([]);
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(), vi({
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: Vr({ distance: l }).toString(),
9446
+ text: Br({ distance: l }).toString(),
9446
9447
  zoom: r,
9447
- color: Di,
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
- }, ki = class e {
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 nr({ editor: this }), this.historyManager = new je({ editor: this }), this.toolbar = new ae({ editor: this }), this.transformManager = new He({ editor: this }), this.zoomManager = new Ue({ editor: this }), this.canvasManager = new Ve({ editor: this }), this.imageManager = new Le({ editor: this }), this.layerManager = new et({ editor: this }), this.shapeManager = new Yn({ editor: this }), this.interactionBlocker = new Qe({ editor: this }), this.backgroundManager = new $e({ editor: this }), this.clipboardManager = new Xn({ editor: this }), this.objectLockManager = new Zn({ editor: this }), this.groupingManager = new Qn({ editor: this }), this.selectionManager = new $n({ editor: this }), this.deletionManager = new er({ editor: this }), this.panConstraintManager = new rr({ editor: this }), this.snappingManager = new Ei({ editor: this }), this.measurementManager = new Oi({ editor: this }), this.fontManager = new ie(this.options.fonts ?? []), this.textManager = new Nr({ editor: this }), this.templateManager = new Rr({ editor: this }), u && (this.angleIndicator = new oe({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
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 = Ze({
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 = Ze({
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(", "), Ai = {
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 ji(e, t = {}) {
10434
+ function Ai(e, t = {}) {
10434
10435
  let n = {
10435
- ...Ai,
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 ki(i.id, n);
10443
+ let r = new Oi(i.id, n);
10443
10444
  window[e] = r;
10444
10445
  });
10445
10446
  }
10446
10447
  //#endregion
10447
- export { ji as default };
10448
+ export { Ai as default };
10448
10449
 
10449
10450
  //# sourceMappingURL=main.js.map