@anu3ev/fabric-image-editor 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/main.js +968 -860
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -599,23 +599,23 @@ var H = 180, U = {
599
599
  right: 0,
600
600
  bottom: 0,
601
601
  left: 0
602
- }, ae = .45, oe = ({ value: e }) => Number(e.toFixed(4)), W = ({ width: e, height: t }) => {
602
+ }, ae = .45, W = ({ value: e }) => Number(e.toFixed(4)), G = ({ width: e, height: t }) => {
603
603
  let n = H / Math.max(e, t);
604
604
  return {
605
- width: oe({ value: e * n }),
606
- height: oe({ value: t * n })
605
+ width: W({ value: e * n }),
606
+ height: W({ value: t * n })
607
607
  };
608
- }, se = ({ spikes: e, outerRadius: t = 50, innerRadius: n = 22, centerX: r = 50, centerY: i = 50, rotation: a = -Math.PI / 2 }) => {
608
+ }, oe = ({ spikes: e, outerRadius: t = 50, innerRadius: n = 22, centerX: r = 50, centerY: i = 50, rotation: a = -Math.PI / 2 }) => {
609
609
  let o = [], s = e * 2;
610
610
  for (let c = 0; c < s; c += 1) {
611
611
  let s = c % 2 == 0 ? t : n, l = a + c * Math.PI / e;
612
612
  o.push({
613
- x: oe({ value: r + s * Math.cos(l) }),
614
- y: oe({ value: i + s * Math.sin(l) })
613
+ x: W({ value: r + s * Math.cos(l) }),
614
+ y: W({ value: i + s * Math.sin(l) })
615
615
  });
616
616
  }
617
617
  return o;
618
- }, G = [
618
+ }, se = [
619
619
  {
620
620
  key: "circle",
621
621
  type: "ellipse",
@@ -631,7 +631,7 @@ var H = 180, U = {
631
631
  {
632
632
  key: "pie",
633
633
  type: "path",
634
- ...W({
634
+ ...G({
635
635
  width: 34,
636
636
  height: 34
637
637
  }),
@@ -640,7 +640,7 @@ var H = 180, U = {
640
640
  {
641
641
  key: "triangle",
642
642
  type: "triangle",
643
- ...W({
643
+ ...G({
644
644
  width: 38,
645
645
  height: 31
646
646
  }),
@@ -690,7 +690,7 @@ var H = 180, U = {
690
690
  {
691
691
  key: "pentagon",
692
692
  type: "polygon",
693
- ...W({
693
+ ...G({
694
694
  width: 36,
695
695
  height: 33
696
696
  }),
@@ -726,7 +726,7 @@ var H = 180, U = {
726
726
  {
727
727
  key: "hexagon",
728
728
  type: "polygon",
729
- ...W({
729
+ ...G({
730
730
  width: 32,
731
731
  height: 36
732
732
  }),
@@ -764,7 +764,7 @@ var H = 180, U = {
764
764
  {
765
765
  key: "star",
766
766
  type: "polygon",
767
- ...W({
767
+ ...G({
768
768
  width: 38,
769
769
  height: 36
770
770
  }),
@@ -822,7 +822,7 @@ var H = 180, U = {
822
822
  type: "polygon",
823
823
  width: H,
824
824
  height: H,
825
- points: se({
825
+ points: oe({
826
826
  spikes: 16,
827
827
  outerRadius: 50,
828
828
  innerRadius: 45,
@@ -840,7 +840,7 @@ var H = 180, U = {
840
840
  type: "polygon",
841
841
  width: H,
842
842
  height: H,
843
- points: se({
843
+ points: oe({
844
844
  spikes: 4,
845
845
  outerRadius: 50,
846
846
  innerRadius: 19.1,
@@ -856,7 +856,7 @@ var H = 180, U = {
856
856
  {
857
857
  key: "heart",
858
858
  type: "path",
859
- ...W({
859
+ ...G({
860
860
  width: 36,
861
861
  height: 34
862
862
  }),
@@ -958,7 +958,7 @@ var H = 180, U = {
958
958
  {
959
959
  key: "arrow-right",
960
960
  type: "polygon",
961
- ...W({
961
+ ...G({
962
962
  width: 36,
963
963
  height: 28
964
964
  }),
@@ -1001,7 +1001,7 @@ var H = 180, U = {
1001
1001
  {
1002
1002
  key: "arrow-left",
1003
1003
  type: "polygon",
1004
- ...W({
1004
+ ...G({
1005
1005
  width: 36,
1006
1006
  height: 28
1007
1007
  }),
@@ -1044,7 +1044,7 @@ var H = 180, U = {
1044
1044
  {
1045
1045
  key: "arrow-up",
1046
1046
  type: "polygon",
1047
- ...W({
1047
+ ...G({
1048
1048
  width: 28,
1049
1049
  height: 36
1050
1050
  }),
@@ -1128,7 +1128,7 @@ var H = 180, U = {
1128
1128
  {
1129
1129
  key: "arrow-down",
1130
1130
  type: "polygon",
1131
- ...W({
1131
+ ...G({
1132
1132
  width: 28,
1133
1133
  height: 36
1134
1134
  }),
@@ -1171,7 +1171,7 @@ var H = 180, U = {
1171
1171
  {
1172
1172
  key: "arrow-up-down",
1173
1173
  type: "polygon",
1174
- ...W({
1174
+ ...G({
1175
1175
  width: 20,
1176
1176
  height: 38
1177
1177
  }),
@@ -1227,7 +1227,7 @@ var H = 180, U = {
1227
1227
  {
1228
1228
  key: "arrow-left-right",
1229
1229
  type: "polygon",
1230
- ...W({
1230
+ ...G({
1231
1231
  width: 38,
1232
1232
  height: 20
1233
1233
  }),
@@ -1283,7 +1283,7 @@ var H = 180, U = {
1283
1283
  {
1284
1284
  key: "banner",
1285
1285
  type: "polygon",
1286
- ...W({
1286
+ ...G({
1287
1287
  width: 36,
1288
1288
  height: 24
1289
1289
  }),
@@ -1314,7 +1314,7 @@ var H = 180, U = {
1314
1314
  {
1315
1315
  key: "drop",
1316
1316
  type: "path",
1317
- ...W({
1317
+ ...G({
1318
1318
  width: 26,
1319
1319
  height: 36
1320
1320
  }),
@@ -1391,7 +1391,7 @@ var H = 180, U = {
1391
1391
  {
1392
1392
  key: "ribbon",
1393
1393
  type: "polygon",
1394
- ...W({
1394
+ ...G({
1395
1395
  width: 24,
1396
1396
  height: 34
1397
1397
  }),
@@ -1424,7 +1424,7 @@ var H = 180, U = {
1424
1424
  type: "polygon",
1425
1425
  width: H,
1426
1426
  height: H,
1427
- points: se({
1427
+ points: oe({
1428
1428
  spikes: 14,
1429
1429
  outerRadius: 50,
1430
1430
  innerRadius: 40,
@@ -1503,8 +1503,8 @@ var H = 180, U = {
1503
1503
  }
1504
1504
  }
1505
1505
  ], ce = "circle", le = "center", ue = "middle", de = {};
1506
- for (let e = 0; e < G.length; e += 1) {
1507
- let t = G[e];
1506
+ for (let e = 0; e < se.length; e += 1) {
1507
+ let t = se[e];
1508
1508
  de[t.key] = t;
1509
1509
  }
1510
1510
  var fe = de, pe = ({ presetKey: e }) => fe[e] ?? null, me = ({ preset: e, rounding: t }) => B({ rounding: t }) <= 0 || e.type === "rect" ? e.key : e.roundedVariant ?? e.key;
@@ -1559,7 +1559,7 @@ function be({ value: e }) {
1559
1559
  function xe({ stroke: e, strokeWidth: t }) {
1560
1560
  return e == null ? !1 : Math.max(0, t ?? 0) > 0;
1561
1561
  }
1562
- function K({ padding: e }) {
1562
+ function Se({ padding: e }) {
1563
1563
  return {
1564
1564
  top: ye({ value: e?.top }),
1565
1565
  right: ye({ value: e?.right }),
@@ -1567,7 +1567,7 @@ function K({ padding: e }) {
1567
1567
  left: ye({ value: e?.left })
1568
1568
  };
1569
1569
  }
1570
- function Se({ padding: e }) {
1570
+ function Ce({ padding: e }) {
1571
1571
  return {
1572
1572
  top: be({ value: e?.top }),
1573
1573
  right: be({ value: e?.right }),
@@ -1575,7 +1575,7 @@ function Se({ padding: e }) {
1575
1575
  left: be({ value: e?.left })
1576
1576
  };
1577
1577
  }
1578
- function Ce({ stroke: e, strokeWidth: t }) {
1578
+ function we({ stroke: e, strokeWidth: t }) {
1579
1579
  if (!xe({
1580
1580
  stroke: e,
1581
1581
  strokeWidth: t
@@ -1593,16 +1593,16 @@ function Ce({ stroke: e, strokeWidth: t }) {
1593
1593
  left: n
1594
1594
  };
1595
1595
  }
1596
- function we({ base: e, override: t }) {
1597
- return t ? Se({ padding: {
1596
+ function Te({ base: e, override: t }) {
1597
+ return t ? Ce({ padding: {
1598
1598
  top: t.top ?? e.top,
1599
1599
  right: t.right ?? e.right,
1600
1600
  bottom: t.bottom ?? e.bottom,
1601
1601
  left: t.left ?? e.left
1602
1602
  } }) : e;
1603
1603
  }
1604
- function Te({ base: e, addition: t }) {
1605
- let n = K({ padding: e }), r = K({ padding: t });
1604
+ function Ee({ base: e, addition: t }) {
1605
+ let n = Se({ padding: e }), r = Se({ padding: t });
1606
1606
  return {
1607
1607
  top: n.top + r.top,
1608
1608
  right: n.right + r.right,
@@ -1610,16 +1610,16 @@ function Te({ base: e, addition: t }) {
1610
1610
  left: n.left + r.left
1611
1611
  };
1612
1612
  }
1613
- function Ee({ baseInset: e, stroke: t, strokeWidth: n }) {
1614
- return Te({
1613
+ function De({ baseInset: e, stroke: t, strokeWidth: n }) {
1614
+ return Ee({
1615
1615
  base: e,
1616
- addition: Ce({
1616
+ addition: we({
1617
1617
  stroke: t,
1618
1618
  strokeWidth: n
1619
1619
  })
1620
1620
  });
1621
1621
  }
1622
- function De({ padding: e }) {
1622
+ function Oe({ padding: e }) {
1623
1623
  if (!e) return {};
1624
1624
  let t = {}, n = Object.keys(e);
1625
1625
  for (let r = 0; r < n.length; r += 1) {
@@ -1630,7 +1630,7 @@ function De({ padding: e }) {
1630
1630
  }
1631
1631
  //#endregion
1632
1632
  //#region src/editor/shape-manager/shape-runtime.ts
1633
- var Oe = ({ group: e }) => {
1633
+ var ke = ({ group: e }) => {
1634
1634
  let t = !!e.locked, n = e;
1635
1635
  typeof n.setInteractive == "function" && n.setInteractive(!0), n.set({
1636
1636
  evented: !0,
@@ -1642,7 +1642,7 @@ var Oe = ({ group: e }) => {
1642
1642
  subTargetCheck: !0,
1643
1643
  hoverCursor: void 0
1644
1644
  });
1645
- }, ke = ({ text: e }) => {
1645
+ }, Ae = ({ text: e }) => {
1646
1646
  let t = !!(e.locked || e.group?.locked);
1647
1647
  e.set({
1648
1648
  hasBorders: !1,
@@ -1655,7 +1655,7 @@ var Oe = ({ group: e }) => {
1655
1655
  autoExpand: !1,
1656
1656
  shapeNodeType: "text"
1657
1657
  }), e.setCoords();
1658
- }, Ae = ({ group: e }) => {
1658
+ }, je = ({ group: e }) => {
1659
1659
  let { layoutManager: t } = e;
1660
1660
  if (!t || typeof t.unsubscribeTargets != "function") return;
1661
1661
  let n = e.getObjects();
@@ -1663,7 +1663,7 @@ var Oe = ({ group: e }) => {
1663
1663
  target: e,
1664
1664
  targets: n
1665
1665
  });
1666
- }, je = ({ group: e }) => {
1666
+ }, Me = ({ group: e }) => {
1667
1667
  let t = e.getObjects();
1668
1668
  for (let e = 0; e < t.length; e += 1) {
1669
1669
  let n = t[e];
@@ -1674,23 +1674,23 @@ var Oe = ({ group: e }) => {
1674
1674
  if (n instanceof _) return n;
1675
1675
  }
1676
1676
  return null;
1677
- }, Me = [
1677
+ }, Ne = [
1678
1678
  "tl",
1679
1679
  "tr",
1680
1680
  "bl",
1681
1681
  "br"
1682
- ], Ne = ({ transform: e }) => {
1682
+ ], Pe = ({ transform: e }) => {
1683
1683
  let { originX: t, originY: n } = e;
1684
1684
  return (t === "center" || t === .5) && (n === "center" || n === .5);
1685
- }, Pe = ({ transform: e, x: t, y: n }) => {
1685
+ }, Fe = ({ transform: e, x: t, y: n }) => {
1686
1686
  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);
1687
1687
  r.signX === void 0 && (r.signX = c), r.signY === void 0 && (r.signY = l);
1688
1688
  let u = i._getTransformedDimensions(), d = Math.abs(s.x * a / u.x), f = Math.abs(s.y * o / u.y);
1689
- Ne({ transform: r }) && (d *= 2, f *= 2);
1689
+ Pe({ transform: r }) && (d *= 2, f *= 2);
1690
1690
  let p = !i.lockScalingX && (!i.lockScalingFlip || r.signX === c), m = !i.lockScalingY && (!i.lockScalingFlip || r.signY === l);
1691
1691
  return p && i.set("scaleX", d), m && i.set("scaleY", f), a !== i.scaleX || o !== i.scaleY;
1692
- }, Fe = () => {
1693
- let e = b.wrapWithFireEvent("scaling", b.wrapWithFixedAnchor((e, t, n, r) => Pe({
1692
+ }, Ie = () => {
1693
+ let e = b.wrapWithFireEvent("scaling", b.wrapWithFixedAnchor((e, t, n, r) => Fe({
1694
1694
  transform: t,
1695
1695
  x: n,
1696
1696
  y: r
@@ -1706,31 +1706,31 @@ var Oe = ({ group: e }) => {
1706
1706
  a.uniformScaling = s;
1707
1707
  }
1708
1708
  };
1709
- }, Ie = ({ control: e }) => {
1709
+ }, Le = ({ control: e }) => {
1710
1710
  let t = new r({
1711
1711
  ...e,
1712
- actionHandler: Fe()
1712
+ actionHandler: Ie()
1713
1713
  });
1714
1714
  return t.shapeFreeScaleCornerControl = !0, t;
1715
- }, Le = ({ group: e }) => {
1715
+ }, Re = ({ group: e }) => {
1716
1716
  let t = { ...e.controls };
1717
- Me.forEach((n) => {
1717
+ Ne.forEach((n) => {
1718
1718
  let r = e.controls[n];
1719
- r && (r.shapeFreeScaleCornerControl || (t[n] = Ie({ control: r })));
1719
+ r && (r.shapeFreeScaleCornerControl || (t[n] = Le({ control: r })));
1720
1720
  }), e.controls = t;
1721
- }, Re = "shape-group";
1722
- function ze() {
1721
+ }, ze = "shape-group";
1722
+ function Be() {
1723
1723
  return { performLayout() {} };
1724
1724
  }
1725
- function Be({ layoutManager: e }) {
1725
+ function Ve({ layoutManager: e }) {
1726
1726
  let t = y.getClass("layoutManager");
1727
1727
  if (!e) return new t();
1728
1728
  let { strategy: n, type: r } = e, i = y.getClass(r);
1729
1729
  return n ? new i(new (y.getClass(n))()) : new i();
1730
1730
  }
1731
- var Ve = class e extends l {
1731
+ var He = class e extends l {
1732
1732
  static {
1733
- this.type = Re;
1733
+ this.type = ze;
1734
1734
  }
1735
1735
  constructor(e = [], t = {}) {
1736
1736
  let { layoutManager: n, objectCaching: r, centeredScaling: i, lockScalingFlip: a, ...o } = t;
@@ -1747,23 +1747,23 @@ var Ve = class e extends l {
1747
1747
  objectCaching: !1,
1748
1748
  shapeComposite: !0
1749
1749
  }), this.shapeTextAutoExpand === void 0 && (this.shapeTextAutoExpand = !0), this.shapeAlignHorizontal === void 0 && (this.shapeAlignHorizontal = le), this.shapeAlignVertical === void 0 && (this.shapeAlignVertical = ue);
1750
- let e = Se({ padding: {
1750
+ let e = Ce({ padding: {
1751
1751
  top: this.shapePaddingTop,
1752
1752
  right: this.shapePaddingRight,
1753
1753
  bottom: this.shapePaddingBottom,
1754
1754
  left: this.shapePaddingLeft
1755
1755
  } });
1756
- this.shapePaddingTop = e.top, this.shapePaddingRight = e.right, this.shapePaddingBottom = e.bottom, this.shapePaddingLeft = e.left, this._syncRoundability(), Oe({ group: this }), Le({ group: this });
1757
- let t = je({ group: this });
1758
- t && ke({ text: t }), Ae({ group: this }), this.setCoords();
1756
+ this.shapePaddingTop = e.top, this.shapePaddingRight = e.right, this.shapePaddingBottom = e.bottom, this.shapePaddingLeft = e.left, this._syncRoundability(), ke({ group: this }), Re({ group: this });
1757
+ let t = Me({ group: this });
1758
+ t && Ae({ text: t }), je({ group: this }), this.setCoords();
1759
1759
  }
1760
1760
  static async fromObject({ type: t, objects: n = [], layoutManager: r, ...i }, a) {
1761
1761
  let [o, s] = await Promise.all([C.enlivenObjects(n, a), C.enlivenObjectEnlivables(i, a)]), c = new e(o, {
1762
1762
  ...i,
1763
1763
  ...s,
1764
- layoutManager: ze()
1764
+ layoutManager: Be()
1765
1765
  });
1766
- return c.layoutManager = Be({ layoutManager: r }), c.layoutManager.subscribeTargets({
1766
+ return c.layoutManager = Ve({ layoutManager: r }), c.layoutManager.subscribeTargets({
1767
1767
  type: "initialization",
1768
1768
  target: c,
1769
1769
  targets: c.getObjects()
@@ -1776,19 +1776,19 @@ var Ve = class e extends l {
1776
1776
  let t = pe({ presetKey: e });
1777
1777
  t && (this.shapeCanRound = ve({ preset: t }));
1778
1778
  }
1779
- }, He = () => {
1780
- y?.setClass && y.setClass(Ve, Re);
1781
- }, q = (e) => e instanceof Ve || e instanceof l && e.shapeComposite === !0, Ue = ({ target: e, subTargets: t = [] }) => {
1782
- if (q(e)) return e;
1783
- if (e?.group && q(e.group)) return e.group;
1779
+ }, Ue = () => {
1780
+ y?.setClass && y.setClass(He, ze);
1781
+ }, K = (e) => e instanceof He || e instanceof l && e.shapeComposite === !0, We = ({ target: e, subTargets: t = [] }) => {
1782
+ if (K(e)) return e;
1783
+ if (e?.group && K(e.group)) return e.group;
1784
1784
  for (let e = 0; e < t.length; e += 1) {
1785
1785
  let n = t[e];
1786
- if (q(n)) return n;
1786
+ if (K(n)) return n;
1787
1787
  let { group: r } = n;
1788
- if (r && q(r)) return r;
1788
+ if (r && K(r)) return r;
1789
1789
  }
1790
1790
  return null;
1791
- }, We = ({ group: e }) => {
1791
+ }, Ge = ({ group: e }) => {
1792
1792
  let t = e.getObjects();
1793
1793
  for (let e = 0; e < t.length; e += 1) {
1794
1794
  let n = t[e];
@@ -1799,7 +1799,7 @@ var Ve = class e extends l {
1799
1799
  if (!(n instanceof _)) return n;
1800
1800
  }
1801
1801
  return null;
1802
- }, Ge = ({ group: e }) => {
1802
+ }, Ke = ({ group: e }) => {
1803
1803
  let t = e.getObjects();
1804
1804
  for (let e = 0; e < t.length; e += 1) {
1805
1805
  let n = t[e];
@@ -1810,11 +1810,11 @@ var Ve = class e extends l {
1810
1810
  if (n instanceof _) return n;
1811
1811
  }
1812
1812
  return null;
1813
- }, Ke = ({ group: e }) => ({
1814
- shape: We({ group: e }),
1815
- text: Ge({ group: e })
1813
+ }, q = ({ group: e }) => ({
1814
+ shape: Ge({ group: e }),
1815
+ text: Ke({ group: e })
1816
1816
  }), qe = ({ group: e }) => {
1817
- Oe({ group: e });
1817
+ ke({ group: e });
1818
1818
  }, Je = {
1819
1819
  style: {
1820
1820
  position: "absolute",
@@ -2017,7 +2017,7 @@ var Ve = class e extends l {
2017
2017
  }
2018
2018
  _resolveCurrentTarget() {
2019
2019
  let e = this.canvas.getActiveObject();
2020
- return Ue({ target: e }) ?? e ?? null;
2020
+ return We({ target: e }) ?? e ?? null;
2021
2021
  }
2022
2022
  destroy() {
2023
2023
  this.el.removeEventListener("mouseover", this._onBtnOver), this.el.removeEventListener("mouseout", this._onBtnOut), this.canvas.off("mouse:down", this._onMouseDown), this.canvas.off("object:moving", this._onObjectMoving), this.canvas.off("object:scaling", this._onObjectScaling), this.canvas.off("object:rotating", this._onObjectRotating), this.canvas.off("mouse:up", this._onMouseUp), this.canvas.off("object:modified", this._onObjectModified), this.canvas.off("selection:created", this._onSelectionChange), this.canvas.off("selection:updated", this._onSelectionChange), this.canvas.off("after:render", this._onSelectionChange), this.canvas.off("selection:cleared", this._onSelectionClear), this.el.remove();
@@ -4013,51 +4013,303 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4013
4013
  e.sendObjectBackwards(t.obj);
4014
4014
  });
4015
4015
  }
4016
- }, Jt = .01, Yt = ({ textbox: e, lineIndices: t, updates: n }) => {
4016
+ }, Jt = .01, Yt = ({ textbox: e }) => {
4017
+ let t = e.text ?? "";
4018
+ if (!t.length) return [];
4019
+ let n = t.split("\n"), r = [], i = 0;
4020
+ for (let e = 0; e < n.length; e += 1) {
4021
+ let t = n[e] ?? "", a = i, o = i + t.length;
4022
+ i = o + 1, r.push({
4023
+ start: a,
4024
+ end: o
4025
+ });
4026
+ }
4027
+ return r;
4028
+ }, Xt = ({ range: e, text: t }) => {
4029
+ if (!e) return null;
4030
+ let n = t.length;
4031
+ if (n <= 0) return null;
4032
+ let { start: r, end: i } = e, a = Number.isFinite(r) ? r : 0, o = Number.isFinite(i) ? i : a, s = Math.max(0, Math.min(a, n)), c = Math.max(0, Math.min(o, n)), l = Math.min(s, c), u = Math.max(s, c);
4033
+ return l === u ? null : {
4034
+ start: l,
4035
+ end: u
4036
+ };
4037
+ }, Zt = ({ textbox: e, range: t }) => {
4038
+ let n = Yt({ textbox: e });
4039
+ if (!n.length) return t;
4040
+ let { start: r } = t, { end: i } = t;
4041
+ for (let e = 0; e < n.length; e += 1) {
4042
+ let a = n[e];
4043
+ if (!a) continue;
4044
+ let { start: o, end: s } = a;
4045
+ t.end > o && t.start < s && (r = Math.min(r, o), i = Math.max(i, s));
4046
+ }
4047
+ return {
4048
+ start: r,
4049
+ end: i
4050
+ };
4051
+ }, Qt = ({ textbox: e, range: t }) => {
4052
+ let n = e.text ?? "";
4053
+ if (!n.length) return [];
4054
+ let { start: r, end: i } = t, a = n.split("\n"), o = [], s = 0;
4055
+ for (let e = 0; e < a.length; e += 1) {
4056
+ let t = a[e] ?? "", n = s, c = s + t.length;
4057
+ i > n && r < c && o.push(e), s = c + 1;
4058
+ }
4059
+ return o;
4060
+ }, $t = ({ textbox: e, range: t }) => {
4061
+ let n = e.text ?? "";
4062
+ if (!n.length) return [];
4063
+ let { start: r, end: i } = t, a = n.split("\n"), o = [], s = 0;
4064
+ for (let e = 0; e < a.length; e += 1) {
4065
+ let t = a[e] ?? "", n = s, c = s + t.length;
4066
+ r <= n && i >= c && o.push(e), s = c + 1;
4067
+ }
4068
+ return o;
4069
+ }, en = ({ previous: e, next: t }) => {
4070
+ let n = Math.min(e.length, t.length);
4071
+ for (let r = 0; r < n; r += 1) if (e[r] !== t[r]) return r;
4072
+ return n;
4073
+ }, tn = ({ text: e, charIndex: t }) => {
4074
+ let n = Math.max(0, Math.min(t, e.length)), r = 0;
4075
+ for (let t = 0; t < n; t += 1) e[t] === "\n" && (r += 1);
4076
+ return r;
4077
+ }, nn = ({ text: e, lineIndex: t }) => {
4078
+ if (t <= 0) return 0;
4079
+ let n = 0;
4080
+ for (let r = 0; r < e.length; r += 1) if (e[r] === "\n" && (n += 1, n === t)) return r + 1;
4081
+ return e.length;
4082
+ }, rn = ({ deltaLines: e, diffIndex: t, lineFontDefaults: n, lineIndexOld: r, previousText: i }) => {
4083
+ let a = nn({
4084
+ text: i,
4085
+ lineIndex: r
4086
+ }), o = r + 1;
4087
+ t === a && (o = r);
4088
+ let s = {};
4089
+ for (let t in n) {
4090
+ if (!Object.prototype.hasOwnProperty.call(n, t)) continue;
4091
+ let r = Number(t);
4092
+ if (!Number.isFinite(r)) continue;
4093
+ let i = n[r];
4094
+ if (!i) continue;
4095
+ let a = r >= o ? r + e : r;
4096
+ s[a] = { ...i };
4097
+ }
4098
+ return {
4099
+ lineFontDefaults: s,
4100
+ changed: !0
4101
+ };
4102
+ }, an = ({ deltaLines: e, diffIndex: t, lineFontDefaults: n, lineIndexOld: r, previousLines: i, previousText: a }) => {
4103
+ let o = Math.abs(e), s = r;
4104
+ a[t] === "\n" && (i[r] ?? "").length > 0 && (s = r + 1);
4105
+ let c = s + o - 1, l = {}, u = [];
4106
+ for (let e = s; e <= c; e += 1) {
4107
+ let t = n[e];
4108
+ t && u.push(t);
4109
+ }
4110
+ for (let t in n) {
4111
+ if (!Object.prototype.hasOwnProperty.call(n, t)) continue;
4112
+ let r = Number(t);
4113
+ if (!Number.isFinite(r)) continue;
4114
+ let i = n[r];
4115
+ i && (r < s && (l[r] = { ...i }), r > c && (l[r + e] = { ...i }));
4116
+ }
4117
+ return {
4118
+ lineFontDefaults: l,
4119
+ changed: !0,
4120
+ deletedLineDefaultsCleanup: {
4121
+ lineIndex: s,
4122
+ lineDefaults: u
4123
+ }
4124
+ };
4125
+ }, on = ({ lineFontDefaults: e, previousText: t, currentText: n }) => {
4126
+ if (!e || !Object.keys(e).length) return {
4127
+ lineFontDefaults: e,
4128
+ changed: !1
4129
+ };
4130
+ let r = t.split("\n"), i = n.split("\n").length - r.length;
4131
+ if (i === 0) return {
4132
+ lineFontDefaults: e,
4133
+ changed: !1
4134
+ };
4135
+ let a = en({
4136
+ previous: t,
4137
+ next: n
4138
+ }), o = tn({
4139
+ text: t,
4140
+ charIndex: a
4141
+ });
4142
+ return i > 0 ? rn({
4143
+ deltaLines: i,
4144
+ diffIndex: a,
4145
+ lineFontDefaults: e,
4146
+ lineIndexOld: o,
4147
+ previousText: t
4148
+ }) : an({
4149
+ deltaLines: i,
4150
+ diffIndex: a,
4151
+ lineFontDefaults: e,
4152
+ lineIndexOld: o,
4153
+ previousLines: r,
4154
+ previousText: t
4155
+ });
4156
+ }, sn = ({ lineDefaults: e }) => {
4157
+ let t = {};
4158
+ return e.fontFamily !== void 0 && (t.fontFamily = e.fontFamily), e.fontSize !== void 0 && (t.fontSize = e.fontSize), e.fontWeight !== void 0 && (t.fontWeight = e.fontWeight), e.fontStyle !== void 0 && (t.fontStyle = e.fontStyle), e.underline !== void 0 && (t.underline = e.underline), e.linethrough !== void 0 && (t.linethrough = e.linethrough), e.fill !== void 0 && (t.fill = e.fill), e.stroke !== void 0 && (t.stroke = e.stroke), e.strokeWidth !== void 0 && (t.strokeWidth = e.strokeWidth), t;
4159
+ }, cn = ({ textbox: e, lineIndices: t, updates: n }) => {
4017
4160
  if (!t.length) return !1;
4018
- let { fontFamily: r, fontSize: i, fill: a, stroke: o } = n;
4019
- if (!(r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0)) return !1;
4020
- let { lineFontDefaults: s } = e, c = s ?? {}, l = !1, u = !1;
4161
+ let { fill: r, fontFamily: i, fontSize: a, fontStyle: o, fontWeight: s, linethrough: c, stroke: l, strokeWidth: u, underline: d } = n;
4162
+ if (!(r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0 || s !== void 0 || c !== void 0 || l !== void 0 || u !== void 0 || d !== void 0)) return !1;
4163
+ let { lineFontDefaults: f } = e, p = f ?? {}, m = !1, h = !1;
4021
4164
  for (let e = 0; e < t.length; e += 1) {
4022
4165
  let n = t[e];
4023
4166
  if (!Number.isFinite(n)) continue;
4024
- let d = u ? c[n] : s?.[n], f = d ? { ...d } : {}, p = !1;
4025
- 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);
4167
+ let g = h ? p[n] : f?.[n], _ = g ? { ...g } : {}, v = !1;
4168
+ i !== void 0 && g?.fontFamily !== i && (_.fontFamily = i, v = !0), a !== void 0 && g?.fontSize !== a && (_.fontSize = a, v = !0), s !== void 0 && g?.fontWeight !== s && (_.fontWeight = s, v = !0), o !== void 0 && g?.fontStyle !== o && (_.fontStyle = o, v = !0), d !== void 0 && g?.underline !== d && (_.underline = d, v = !0), c !== void 0 && g?.linethrough !== c && (_.linethrough = c, v = !0), r !== void 0 && g?.fill !== r && (_.fill = r, v = !0), l !== void 0 && (l === null && g?.stroke !== void 0 && (delete _.stroke, v = !0), l !== null && g?.stroke !== l && (_.stroke = l, v = !0)), u !== void 0 && g?.strokeWidth !== u && (_.strokeWidth = u, v = !0), v && (h ||= (p = { ...p }, !0), p[n] = _, m = !0);
4169
+ }
4170
+ return m && (e.lineFontDefaults = p), m;
4171
+ }, ln = ({ lineStyles: e, lineDefaults: t }) => {
4172
+ if (!e) return {
4173
+ lineStyles: e,
4174
+ changed: !1
4175
+ };
4176
+ let n = sn({ lineDefaults: t }), r = Object.keys(n);
4177
+ if (!r.length) return {
4178
+ lineStyles: e,
4179
+ changed: !1
4180
+ };
4181
+ let i = e, a = !1, o = !1;
4182
+ for (let t in e) {
4183
+ if (!Object.prototype.hasOwnProperty.call(e, t)) continue;
4184
+ let s = e[t];
4185
+ if (!s) continue;
4186
+ let c = s, l = !1;
4187
+ for (let e = 0; e < r.length; e += 1) {
4188
+ let t = r[e];
4189
+ t && s[t] === n[t] && (l ||= (c = { ...s }, !0), delete c[t]);
4190
+ }
4191
+ l && (a ||= (i = { ...e }, !0), Object.keys(c).length ? i[t] = c : delete i[t], o = !0);
4192
+ }
4193
+ return o ? {
4194
+ lineStyles: Object.keys(i).length > 0 ? i : void 0,
4195
+ changed: !0
4196
+ } : {
4197
+ lineStyles: e,
4198
+ changed: !1
4199
+ };
4200
+ }, un = ({ cleanup: e, lineCount: t, styles: n }) => {
4201
+ if (!e || e.lineIndex >= t) return {
4202
+ styles: n,
4203
+ changed: !1
4204
+ };
4205
+ let r = n[e.lineIndex], i = !1;
4206
+ for (let t = 0; t < e.lineDefaults.length; t += 1) {
4207
+ let n = e.lineDefaults[t];
4208
+ if (!n) continue;
4209
+ let a = ln({
4210
+ lineStyles: r,
4211
+ lineDefaults: n
4212
+ });
4213
+ a.changed && (r = a.lineStyles, i = !0);
4026
4214
  }
4027
- return l && (e.lineFontDefaults = c), l;
4028
- }, Xt = ({ lineText: e, lineStyles: t, lineDefaults: n }) => {
4215
+ if (!i) return {
4216
+ styles: n,
4217
+ changed: !1
4218
+ };
4219
+ let a = { ...n };
4220
+ return r ? a[e.lineIndex] = r : delete a[e.lineIndex], {
4221
+ styles: a,
4222
+ changed: !0
4223
+ };
4224
+ }, dn = ({ textbox: e }) => {
4225
+ let { fontFamily: t, fontSize: n, fontStyle: r, fontWeight: i, fill: a, stroke: o, strokeWidth: s, linethrough: c, underline: l } = e, u = {}, d = typeof a == "string" ? a : void 0, f = typeof o == "string" ? o : void 0;
4226
+ return t !== void 0 && (u.fontFamily = t), n !== void 0 && (u.fontSize = n), i !== void 0 && (u.fontWeight = i), r !== void 0 && (u.fontStyle = r), l !== void 0 && (u.underline = l), c !== void 0 && (u.linethrough = c), d !== void 0 && (u.fill = d), f !== void 0 && (u.stroke = f), s !== void 0 && (u.strokeWidth = s), u;
4227
+ }, fn = ({ sourceDefaults: e, globalLineDefaults: t }) => {
4228
+ let n = {};
4229
+ return e?.fontFamily === void 0 ? t.fontFamily !== void 0 && (n.fontFamily = t.fontFamily) : n.fontFamily = e.fontFamily, e?.fontSize === void 0 ? t.fontSize !== void 0 && (n.fontSize = t.fontSize) : n.fontSize = e.fontSize, e?.fontWeight === void 0 ? t.fontWeight !== void 0 && (n.fontWeight = t.fontWeight) : n.fontWeight = e.fontWeight, e?.fontStyle === void 0 ? t.fontStyle !== void 0 && (n.fontStyle = t.fontStyle) : n.fontStyle = e.fontStyle, e?.underline === void 0 ? t.underline !== void 0 && (n.underline = t.underline) : n.underline = e.underline, e?.linethrough === void 0 ? t.linethrough !== void 0 && (n.linethrough = t.linethrough) : n.linethrough = e.linethrough, e?.fill === void 0 ? t.fill !== void 0 && (n.fill = t.fill) : n.fill = e.fill, e?.stroke === void 0 ? t.stroke !== void 0 && (n.stroke = t.stroke) : n.stroke = e.stroke, e?.strokeWidth === void 0 ? n.stroke !== void 0 && t.strokeWidth !== void 0 && (n.strokeWidth = t.strokeWidth) : n.strokeWidth = e.strokeWidth, n;
4230
+ }, pn = ({ lineText: e, lineStyles: t, lineDefaults: n }) => {
4029
4231
  let r = e.length;
4030
4232
  if (r === 0) return {
4031
4233
  lineStyles: t,
4032
4234
  changed: !1
4033
4235
  };
4034
- let { fontFamily: i, fontSize: a, fill: o, stroke: s } = n;
4035
- if (!(i !== void 0 || a !== void 0 || o !== void 0 || s !== void 0)) return {
4236
+ let i = sn({ lineDefaults: n }), a = Object.keys(i);
4237
+ if (!a.length) return {
4036
4238
  lineStyles: t,
4037
4239
  changed: !1
4038
4240
  };
4039
- let c = {};
4040
- i !== void 0 && (c.fontFamily = i), a !== void 0 && (c.fontSize = a), o !== void 0 && (c.fill = o), s !== void 0 && (c.stroke = s);
4041
- let l = t, u = !1, d = !1;
4241
+ let o = t, s = !1, c = !1;
4042
4242
  if (t) for (let e in t) {
4043
4243
  if (!Object.prototype.hasOwnProperty.call(t, e)) continue;
4044
4244
  let n = Number(e);
4045
- Number.isInteger(n) && n >= 0 && n < r || (d ||= (l = { ...t }, !0), l && Object.prototype.hasOwnProperty.call(l, e) && delete l[e], u = !0);
4245
+ Number.isInteger(n) && n >= 0 && n < r || (c ||= (o = { ...t }, !0), o && Object.prototype.hasOwnProperty.call(o, e) && delete o[e], s = !0);
4046
4246
  }
4047
4247
  for (let e = 0; e < r; e += 1) {
4048
- let n = l ?? t, r = n ? n[e] : void 0;
4248
+ let n = o ?? t, r = n ? n[e] : void 0;
4049
4249
  if (!r) {
4050
- l || (l = {}, d = !0), d ||= (l = { ...l }, !0), l[e] = { ...c }, u = !0;
4250
+ o || (o = {}, c = !0), c ||= (o = { ...o }, !0), o[e] = { ...i }, s = !0;
4051
4251
  continue;
4052
4252
  }
4053
- let f = null;
4054
- i !== void 0 && r.fontFamily === void 0 && (f = { ...r }, f.fontFamily = i), a !== void 0 && r.fontSize === void 0 && (f ||= { ...r }, f.fontSize = a), o !== void 0 && r.fill === void 0 && (f ||= { ...r }, f.fill = o), s !== void 0 && r.stroke === void 0 && (f ||= { ...r }, f.stroke = s), f && (l || (l = {}, d = !0), d ||= (l = { ...l }, !0), l[e] = f, u = !0);
4253
+ a.some((e) => r[e] === void 0) && (o || (o = {}, c = !0), c ||= (o = { ...o }, !0), o[e] = {
4254
+ ...i,
4255
+ ...r
4256
+ }, s = !0);
4055
4257
  }
4056
4258
  return {
4057
- lineStyles: l,
4058
- changed: u
4259
+ lineStyles: o,
4260
+ changed: s
4059
4261
  };
4060
- }, Zt = ({ lineFontDefaults: e }) => {
4262
+ }, mn = ({ deletedLineDefaultsCleanup: e, globalLineDefaults: t, lineFontDefaults: n, lines: r, styles: i }) => {
4263
+ let a = n, o = !1, s = !1, c = i, l = !1, u = !1, d, f = un({
4264
+ styles: c ?? {},
4265
+ lineCount: r.length,
4266
+ cleanup: e
4267
+ });
4268
+ f.changed && (c = f.styles, l = !0, u = !0);
4269
+ for (let e = 0; e < r.length; e += 1) {
4270
+ let n = r[e] ?? "", i = a ? a[e] : void 0;
4271
+ if (i && (d = i), n.length !== 0) {
4272
+ if (i) {
4273
+ let t = pn({
4274
+ lineText: n,
4275
+ lineStyles: c ? c[e] : void 0,
4276
+ lineDefaults: i
4277
+ });
4278
+ t.changed && (c || (c = {}, u = !0), u ||= (c = { ...c }, !0), t.lineStyles && (c[e] = t.lineStyles), !t.lineStyles && c[e] && delete c[e], l = !0);
4279
+ }
4280
+ continue;
4281
+ }
4282
+ let f = fn({
4283
+ sourceDefaults: i ?? d,
4284
+ globalLineDefaults: t
4285
+ });
4286
+ !i && Object.keys(f).length && (a || (a = {}, s = !0), s ||= (a = { ...a }, !0), a[e] = f, o = !0, d = f), i && (d = i);
4287
+ let p = sn({ lineDefaults: f }), m = Object.keys(p).length > 0;
4288
+ (m || c && c[e]) && (c || (c = {}, u = !0), u ||= (c = { ...c }, !0), m && (c[e] = { 0: p }), !m && c[e] && delete c[e], l = !0);
4289
+ }
4290
+ return {
4291
+ lineFontDefaults: a,
4292
+ lineFontDefaultsChanged: o,
4293
+ styles: c ?? {},
4294
+ stylesChanged: l
4295
+ };
4296
+ }, hn = ({ currentText: e, previousText: t, textbox: n }) => {
4297
+ let r = on({
4298
+ lineFontDefaults: n.lineFontDefaults,
4299
+ previousText: t,
4300
+ currentText: e
4301
+ }), i = mn({
4302
+ lines: e.split("\n"),
4303
+ styles: n.styles,
4304
+ lineFontDefaults: r.lineFontDefaults,
4305
+ deletedLineDefaultsCleanup: r.deletedLineDefaultsCleanup,
4306
+ globalLineDefaults: dn({ textbox: n })
4307
+ });
4308
+ return {
4309
+ ...i,
4310
+ lineFontDefaultsChanged: r.changed || i.lineFontDefaultsChanged
4311
+ };
4312
+ }, gn = ({ lineFontDefaults: e }) => {
4061
4313
  if (!e) return;
4062
4314
  let t = {};
4063
4315
  for (let n in e) {
@@ -4068,7 +4320,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4068
4320
  i && (t[r] = { ...i });
4069
4321
  }
4070
4322
  return t;
4071
- }, Qt = ({ lineFontDefaults: e, scale: t }) => {
4323
+ }, _n = ({ lineFontDefaults: e, scale: t }) => {
4072
4324
  if (!e || !Number.isFinite(t) || Math.abs(t - 1) < .01) return;
4073
4325
  let n = {}, r = !1, i = !1;
4074
4326
  for (let a in e) {
@@ -4085,18 +4337,18 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4085
4337
  n[o] = c, r = !0;
4086
4338
  }
4087
4339
  if (!(!r || !i)) return n;
4088
- }, $t = ({ textbox: e, text: t }) => {
4340
+ }, vn = ({ textbox: e, text: t }) => {
4089
4341
  let { textLines: n } = e, r = Array.isArray(n) && n.length > 0 ? n.length : Math.max(t.split("\n").length, 1), i = 0;
4090
4342
  for (let t = 0; t < r; t += 1) {
4091
4343
  let n = e.getLineWidth(t);
4092
4344
  n > i && (i = n);
4093
4345
  }
4094
4346
  return i;
4095
- }, en = ({ origin: e, size: t }) => e === "left" || e === "top" || e === "start" || e === 0 ? 0 : e === "right" || e === "bottom" || e === "end" || e === 1 ? t : t / 2, tn = ({ textbox: e, originX: t = e.originX ?? "center", originY: n = e.originY ?? "center" }) => {
4096
- let r = e.width ?? e.calcTextWidth() ?? 0, i = e.height ?? e.calcTextHeight() ?? 0, a = e.paddingTop ?? 0, o = e.paddingRight ?? 0, s = e.paddingBottom ?? 0, c = e.paddingLeft ?? 0, l = -r / 2 + (c - o) / 2, u = -i / 2 + (a - s) / 2, d = new p(l + en({
4347
+ }, yn = ({ origin: e, size: t }) => e === "left" || e === "top" || e === "start" || e === 0 ? 0 : e === "right" || e === "bottom" || e === "end" || e === 1 ? t : t / 2, bn = ({ textbox: e, originX: t = e.originX ?? "center", originY: n = e.originY ?? "center" }) => {
4348
+ let r = e.width ?? e.calcTextWidth() ?? 0, i = e.height ?? e.calcTextHeight() ?? 0, a = e.paddingTop ?? 0, o = e.paddingRight ?? 0, s = e.paddingBottom ?? 0, c = e.paddingLeft ?? 0, l = -r / 2 + (c - o) / 2, u = -i / 2 + (a - s) / 2, d = new p(l + yn({
4097
4349
  origin: t,
4098
4350
  size: r
4099
- }), u + en({
4351
+ }), u + yn({
4100
4352
  origin: n,
4101
4353
  size: i
4102
4354
  })), f = e.getPointByOrigin("center", "center"), m = e, h = typeof m.calcTransformMatrix == "function" ? m.calcTransformMatrix() : null, g = Array.isArray(h) ? new p(d.x * h[0] + d.y * h[2] + f.x, d.x * h[1] + d.y * h[3] + f.y) : new p(f.x + d.x, f.y + d.y);
@@ -4106,13 +4358,13 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4106
4358
  originX: t,
4107
4359
  originY: n
4108
4360
  };
4109
- }, nn = ({ textbox: e, montageLeft: t, montageRight: n }) => {
4361
+ }, xn = ({ textbox: e, montageLeft: t, montageRight: n }) => {
4110
4362
  e.setCoords();
4111
4363
  let r = e.getBoundingRect(!1, !0), i = r.left ?? 0, a = i + (r.width ?? 0), o = n - t;
4112
4364
  if (o > 0 && (r.width ?? 0) >= o - .01) return !1;
4113
4365
  let s = 0;
4114
4366
  return i < t ? s = t - i : a > n && (s = n - a), Math.abs(s) <= .01 ? !1 : (e.set({ left: (e.left ?? 0) + s }), !0);
4115
- }, rn = ({ rawValue: e, calculatedValue: t }) => typeof e == "number" ? e : typeof t == "number" ? t : 0, an = ({ stylesList: e }) => {
4367
+ }, Sn = ({ rawValue: e, calculatedValue: t }) => typeof e == "number" ? e : typeof t == "number" ? t : 0, Cn = ({ stylesList: e }) => {
4116
4368
  let t = e.length;
4117
4369
  if (!t) return !1;
4118
4370
  for (let n = 0; n < t; n += 1) {
@@ -4122,16 +4374,16 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4122
4374
  if (r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0 || s !== void 0 || c !== void 0) return !0;
4123
4375
  }
4124
4376
  return !1;
4125
- }, on = ({ textbox: e }) => {
4126
- 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 = rn({
4377
+ }, wn = ({ textbox: e }) => {
4378
+ 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 = Sn({
4127
4379
  rawValue: t,
4128
4380
  calculatedValue: a
4129
- }), c = rn({
4381
+ }), c = Sn({
4130
4382
  rawValue: n,
4131
4383
  calculatedValue: o
4132
4384
  }), l = Number.isFinite(s) ? Math.round(s) : null, u = Number.isFinite(c) ? Math.round(c) : null, d = {};
4133
4385
  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;
4134
- }, sn = ({ textbox: e }) => {
4386
+ }, Tn = ({ textbox: e }) => {
4135
4387
  let t = e.width ?? e.calcTextWidth(), n = e.fontSize ?? 16, { styles: r = {} } = e, { lineFontDefaults: i } = e, { paddingTop: a = 0, paddingRight: o = 0, paddingBottom: s = 0, paddingLeft: c = 0 } = e, { radiusTopLeft: l = 0, radiusTopRight: u = 0, radiusBottomRight: d = 0, radiusBottomLeft: f = 0 } = e;
4136
4388
  return {
4137
4389
  width: t,
@@ -4149,9 +4401,9 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4149
4401
  bottomLeft: f
4150
4402
  },
4151
4403
  styles: JSON.parse(JSON.stringify(r)),
4152
- lineFontDefaults: Zt({ lineFontDefaults: i })
4404
+ lineFontDefaults: gn({ lineFontDefaults: i })
4153
4405
  };
4154
- }, cn = ({ base: e }) => {
4406
+ }, En = ({ base: e }) => {
4155
4407
  let t = 1 / Math.max(1, e.width), n = [e.fontSize];
4156
4408
  Object.values(e.styles).forEach((e) => {
4157
4409
  Object.values(e).forEach((e) => {
@@ -4168,7 +4420,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4168
4420
  fontScale: r,
4169
4421
  proportionalScale: Math.max(t, r)
4170
4422
  };
4171
- }, ln = ({ textbox: e, base: t, scale: n, shouldScaleFontSize: r = !0, shouldScalePadding: i = !0, shouldScaleRadii: a = !0 }) => {
4423
+ }, Dn = ({ textbox: e, base: t, scale: n, shouldScaleFontSize: r = !0, shouldScalePadding: i = !0, shouldScaleRadii: a = !0 }) => {
4172
4424
  let { fontSize: o, padding: s, radii: c, styles: l, lineFontDefaults: u } = t, d = Math.max(Math.min(8, o), o * n), f = Object.keys(l).length > 0, p;
4173
4425
  if (r && f) {
4174
4426
  let e = {};
@@ -4187,7 +4439,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4187
4439
  }), Object.keys(e).length && (p = e);
4188
4440
  }
4189
4441
  let m;
4190
- r && (m = Qt({
4442
+ r && (m = _n({
4191
4443
  lineFontDefaults: u,
4192
4444
  scale: n
4193
4445
  }));
@@ -4213,9 +4465,9 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4213
4465
  radiusBottomRight: g.bottomRight,
4214
4466
  radiusBottomLeft: g.bottomLeft
4215
4467
  });
4216
- }, un = ({ textbox: e, canvasManager: t, base: n, widthScale: r, heightScale: i, placement: a, anchorPlacement: o, shouldScaleFontSize: s, shouldScalePadding: c, shouldScaleRadii: l, shouldDisableAutoExpandOnHorizontalChange: u = !1, shouldRoundDimensions: d = !0 }) => {
4468
+ }, On = ({ textbox: e, canvasManager: t, base: n, widthScale: r, heightScale: i, placement: a, anchorPlacement: o, shouldScaleFontSize: s, shouldScalePadding: c, shouldScaleRadii: l, shouldDisableAutoExpandOnHorizontalChange: u = !1, shouldRoundDimensions: d = !0 }) => {
4217
4469
  let { width: f } = n, m = Math.max(1, f * r), h = d ? Math.max(1, Math.round(m)) : m, g = e.width ?? f, _ = Math.abs(h - g) > Jt;
4218
- u && _ && (e.autoExpand = !1), ln({
4470
+ u && _ && (e.autoExpand = !1), Dn({
4219
4471
  textbox: e,
4220
4472
  base: n,
4221
4473
  scale: i,
@@ -4234,7 +4486,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4234
4486
  } finally {
4235
4487
  e.shouldRoundDimensionsOnInit = v;
4236
4488
  }
4237
- let y = d ? on({ textbox: e }) : !1;
4489
+ let y = d ? wn({ textbox: e }) : !1;
4238
4490
  return y && (e.dirty = !0), o ? (e.set({
4239
4491
  originX: a.originX,
4240
4492
  originY: a.originY
@@ -4248,24 +4500,24 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4248
4500
  appliedWidth: e.width ?? h,
4249
4501
  dimensionsRounded: y
4250
4502
  });
4251
- }, dn = 1, fn = 1e-4;
4503
+ }, kn = 1, An = 1e-4;
4252
4504
  function J({ value: e }) {
4253
4505
  return Number(e.toFixed(4));
4254
4506
  }
4255
- function pn({ rounding: e }) {
4507
+ function jn({ rounding: e }) {
4256
4508
  return B({ rounding: e }) > 0;
4257
4509
  }
4258
- function mn({ width: e, height: t, strokeWidth: n }) {
4510
+ function Mn({ width: e, height: t, strokeWidth: n }) {
4259
4511
  let r = Math.max(0, n ?? 0);
4260
4512
  return {
4261
- width: Math.max(dn, e - r),
4262
- height: Math.max(dn, t - r)
4513
+ width: Math.max(kn, e - r),
4514
+ height: Math.max(kn, t - r)
4263
4515
  };
4264
4516
  }
4265
- function hn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4266
- let a = mn({
4267
- width: Math.max(dn, t),
4268
- height: Math.max(dn, n),
4517
+ function Nn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4518
+ let a = Mn({
4519
+ width: Math.max(kn, t),
4520
+ height: Math.max(kn, n),
4269
4521
  strokeWidth: i
4270
4522
  });
4271
4523
  if (e instanceof g) {
@@ -4284,7 +4536,7 @@ function hn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4284
4536
  }), e.setCoords();
4285
4537
  return;
4286
4538
  }
4287
- let { width: o = dn, height: s = dn } = e, c = Math.max(dn, o), l = Math.max(dn, s);
4539
+ let { width: o = kn, height: s = kn } = e, c = Math.max(kn, o), l = Math.max(kn, s);
4288
4540
  e.set({
4289
4541
  scaleX: a.width / c,
4290
4542
  scaleY: a.height / l,
@@ -4294,11 +4546,11 @@ function hn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4294
4546
  originY: "center"
4295
4547
  }), e.setCoords();
4296
4548
  }
4297
- function gn({ shape: e, style: t }) {
4549
+ function Pn({ shape: e, style: t }) {
4298
4550
  let { fill: n, stroke: r, strokeWidth: i, strokeDashArray: a, opacity: o } = t;
4299
4551
  if (e instanceof l) {
4300
4552
  let n = e.getObjects();
4301
- for (let e = 0; e < n.length; e += 1) gn({
4553
+ for (let e = 0; e < n.length; e += 1) Pn({
4302
4554
  shape: n[e],
4303
4555
  style: t
4304
4556
  });
@@ -4312,7 +4564,7 @@ function gn({ shape: e, style: t }) {
4312
4564
  };
4313
4565
  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();
4314
4566
  }
4315
- function _n({ points: e, closed: t }) {
4567
+ function Fn({ points: e, closed: t }) {
4316
4568
  if (e.length === 0) return "";
4317
4569
  let n = `M ${J({ value: e[0].x })} ${J({ value: e[0].y })}`;
4318
4570
  for (let t = 1; t < e.length; t += 1) {
@@ -4321,7 +4573,7 @@ function _n({ points: e, closed: t }) {
4321
4573
  }
4322
4574
  return t && (n += " Z"), n;
4323
4575
  }
4324
- function vn({ previous: e, current: t, next: n, roundingRatio: r }) {
4576
+ function In({ previous: e, current: t, next: n, roundingRatio: r }) {
4325
4577
  let i = {
4326
4578
  x: e.x - t.x,
4327
4579
  y: e.y - t.y
@@ -4329,7 +4581,7 @@ function vn({ previous: e, current: t, next: n, roundingRatio: r }) {
4329
4581
  x: n.x - t.x,
4330
4582
  y: n.y - t.y
4331
4583
  }, o = Math.hypot(i.x, i.y), s = Math.hypot(a.x, a.y);
4332
- if (o <= fn || s <= fn) return {
4584
+ if (o <= An || s <= An) return {
4333
4585
  start: {
4334
4586
  x: J({ value: t.x }),
4335
4587
  y: J({ value: t.y })
@@ -4351,14 +4603,14 @@ function vn({ previous: e, current: t, next: n, roundingRatio: r }) {
4351
4603
  }
4352
4604
  };
4353
4605
  }
4354
- function yn({ points: e, roundingRatio: t, closed: n }) {
4606
+ function Ln({ points: e, roundingRatio: t, closed: n }) {
4355
4607
  let r = e.length;
4356
4608
  if (r === 0) return "";
4357
4609
  if (!n && r === 1) {
4358
4610
  let t = e[0];
4359
4611
  return `M ${J({ value: t.x })} ${J({ value: t.y })}`;
4360
4612
  }
4361
- if (t <= 0) return _n({
4613
+ if (t <= 0) return Fn({
4362
4614
  points: e,
4363
4615
  closed: n
4364
4616
  });
@@ -4366,7 +4618,7 @@ function yn({ points: e, roundingRatio: t, closed: n }) {
4366
4618
  let n = [];
4367
4619
  for (let i = 0; i < r; i += 1) {
4368
4620
  let a = i === 0 ? r - 1 : i - 1, o = i === r - 1 ? 0 : i + 1;
4369
- n.push(vn({
4621
+ n.push(In({
4370
4622
  previous: e[a],
4371
4623
  current: e[i],
4372
4624
  next: e[o],
@@ -4380,13 +4632,13 @@ function yn({ points: e, roundingRatio: t, closed: n }) {
4380
4632
  }
4381
4633
  return a += " Z", a;
4382
4634
  }
4383
- if (r === 2) return _n({
4635
+ if (r === 2) return Fn({
4384
4636
  points: e,
4385
4637
  closed: !1
4386
4638
  });
4387
4639
  let i = `M ${J({ value: e[0].x })} ${J({ value: e[0].y })}`;
4388
4640
  for (let n = 1; n < r - 1; n += 1) {
4389
- let r = vn({
4641
+ let r = In({
4390
4642
  previous: e[n - 1],
4391
4643
  current: e[n],
4392
4644
  next: e[n + 1],
@@ -4397,8 +4649,8 @@ function yn({ points: e, roundingRatio: t, closed: n }) {
4397
4649
  let a = e[r - 1];
4398
4650
  return i += ` L ${J({ value: a.x })} ${J({ value: a.y })}`, i;
4399
4651
  }
4400
- function bn({ points: e, rounding: t, closed: n }) {
4401
- return new d(yn({
4652
+ function Rn({ points: e, rounding: t, closed: n }) {
4653
+ return new d(Ln({
4402
4654
  points: e,
4403
4655
  roundingRatio: V({ rounding: t }),
4404
4656
  closed: n
@@ -4409,8 +4661,8 @@ function bn({ points: e, rounding: t, closed: n }) {
4409
4661
  top: 0
4410
4662
  });
4411
4663
  }
4412
- function xn({ rounding: e }) {
4413
- return pn({ rounding: e }) ? bn({
4664
+ function zn({ rounding: e }) {
4665
+ return jn({ rounding: e }) ? Rn({
4414
4666
  points: [
4415
4667
  {
4416
4668
  x: 50,
@@ -4436,7 +4688,7 @@ function xn({ rounding: e }) {
4436
4688
  top: 0
4437
4689
  });
4438
4690
  }
4439
- function Sn({ path: e }) {
4691
+ function Bn({ path: e }) {
4440
4692
  return new d(e, {
4441
4693
  originX: "center",
4442
4694
  originY: "center",
@@ -4444,8 +4696,8 @@ function Sn({ path: e }) {
4444
4696
  top: 0
4445
4697
  });
4446
4698
  }
4447
- function Cn({ path: e, rounding: t }) {
4448
- let n = Sn({ path: e }).path ?? [], r = C.makePathSimpler(n), i = [], a = !1;
4699
+ function Vn({ path: e, rounding: t }) {
4700
+ let n = Bn({ path: e }).path ?? [], r = C.makePathSimpler(n), i = [], a = !1;
4449
4701
  for (let e = 0; e < r.length; e += 1) {
4450
4702
  let t = r[e];
4451
4703
  if (!t) return null;
@@ -4465,19 +4717,19 @@ function Cn({ path: e, rounding: t }) {
4465
4717
  }
4466
4718
  return null;
4467
4719
  }
4468
- return i.length < 2 || a && i.length < 3 ? null : bn({
4720
+ return i.length < 2 || a && i.length < 3 ? null : Rn({
4469
4721
  points: i,
4470
4722
  rounding: t,
4471
4723
  closed: a
4472
4724
  });
4473
4725
  }
4474
- function wn({ path: e, rounding: t }) {
4475
- return pn({ rounding: t }) && Cn({
4726
+ function Hn({ path: e, rounding: t }) {
4727
+ return jn({ rounding: t }) && Vn({
4476
4728
  path: e,
4477
4729
  rounding: B({ rounding: t })
4478
- }) || Sn({ path: e });
4730
+ }) || Bn({ path: e });
4479
4731
  }
4480
- function Tn({ points: e, type: t, rounding: n }) {
4732
+ function Un({ points: e, type: t, rounding: n }) {
4481
4733
  let r = e.length > 0 ? e : [
4482
4734
  {
4483
4735
  x: 0,
@@ -4493,12 +4745,12 @@ function Tn({ points: e, type: t, rounding: n }) {
4493
4745
  }
4494
4746
  ], i = B({ rounding: n });
4495
4747
  if (i > 0) {
4496
- if (t === "polygon" && r.length >= 3) return bn({
4748
+ if (t === "polygon" && r.length >= 3) return Rn({
4497
4749
  points: r,
4498
4750
  rounding: i,
4499
4751
  closed: !0
4500
4752
  });
4501
- if (t === "polyline" && r.length >= 2) return bn({
4753
+ if (t === "polyline" && r.length >= 2) return Rn({
4502
4754
  points: r,
4503
4755
  rounding: i,
4504
4756
  closed: !1
@@ -4511,7 +4763,7 @@ function Tn({ points: e, type: t, rounding: n }) {
4511
4763
  top: 0
4512
4764
  });
4513
4765
  }
4514
- async function En({ svg: e }) {
4766
+ async function Wn({ svg: e }) {
4515
4767
  let t = await x(e), n = C.groupSVGElements(t.objects, t.options);
4516
4768
  return n.set({
4517
4769
  originX: "center",
@@ -4520,7 +4772,7 @@ async function En({ svg: e }) {
4520
4772
  top: 0
4521
4773
  }), n.setCoords(), n;
4522
4774
  }
4523
- async function Dn({ preset: e, rounding: t }) {
4775
+ async function Gn({ preset: e, rounding: t }) {
4524
4776
  switch (e.type) {
4525
4777
  case "rect": return new g({
4526
4778
  width: 100,
@@ -4538,22 +4790,22 @@ async function Dn({ preset: e, rounding: t }) {
4538
4790
  left: 0,
4539
4791
  top: 0
4540
4792
  });
4541
- case "triangle": return xn({ rounding: t });
4542
- case "polygon": return Tn({
4793
+ case "triangle": return zn({ rounding: t });
4794
+ case "polygon": return Un({
4543
4795
  points: e.points,
4544
4796
  type: "polygon",
4545
4797
  rounding: t
4546
4798
  });
4547
- case "polyline": return Tn({
4799
+ case "polyline": return Un({
4548
4800
  points: e.points,
4549
4801
  type: "polyline",
4550
4802
  rounding: t
4551
4803
  });
4552
- case "path": return wn({
4804
+ case "path": return Hn({
4553
4805
  path: e.path,
4554
4806
  rounding: t
4555
4807
  });
4556
- case "svg": return En({ svg: e.svg });
4808
+ case "svg": return Wn({ svg: e.svg });
4557
4809
  default: return new g({
4558
4810
  width: 100,
4559
4811
  height: 100,
@@ -4564,15 +4816,15 @@ async function Dn({ preset: e, rounding: t }) {
4564
4816
  });
4565
4817
  }
4566
4818
  }
4567
- async function On({ preset: e, width: t, height: n, style: r, rounding: i }) {
4568
- let a = await Dn({
4819
+ async function Kn({ preset: e, width: t, height: n, style: r, rounding: i }) {
4820
+ let a = await Gn({
4569
4821
  preset: e,
4570
4822
  rounding: i
4571
4823
  });
4572
- return gn({
4824
+ return Pn({
4573
4825
  shape: a,
4574
4826
  style: r
4575
- }), hn({
4827
+ }), Nn({
4576
4828
  shape: a,
4577
4829
  width: t,
4578
4830
  height: n,
@@ -4589,17 +4841,17 @@ async function On({ preset: e, width: t, height: n, style: r, rounding: i }) {
4589
4841
  }
4590
4842
  //#endregion
4591
4843
  //#region src/editor/shape-manager/layout/shape-layout-padding.ts
4592
- var kn = .5, An = 12;
4593
- function jn({ width: e, padding: t }) {
4844
+ var qn = .5, Jn = 12;
4845
+ function Yn({ width: e, padding: t }) {
4594
4846
  let n = Math.max(0, t.left), r = Math.max(0, t.right);
4595
4847
  return Math.max(1, e - n - r);
4596
4848
  }
4597
- function Mn({ text: e }) {
4849
+ function Xn({ text: e }) {
4598
4850
  return (e.text ?? "").trim().length > 0;
4599
4851
  }
4600
- function Nn({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged: i }) {
4852
+ function Zn({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged: i }) {
4601
4853
  let a = Math.max(0, e), o = Math.max(0, t), s = Math.max(0, n);
4602
- if (a + o <= s + kn) return {
4854
+ if (a + o <= s + qn) return {
4603
4855
  start: a,
4604
4856
  end: o
4605
4857
  };
@@ -4628,8 +4880,8 @@ function Nn({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged:
4628
4880
  end: o * l
4629
4881
  };
4630
4882
  }
4631
- function Pn({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i, startChanged: a, endChanged: o }) {
4632
- let s = Math.max(0, n), c = Math.max(0, r), l = Math.max(0, i - s - c), u = Nn({
4883
+ function Qn({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i, startChanged: a, endChanged: o }) {
4884
+ let s = Math.max(0, n), c = Math.max(0, r), l = Math.max(0, i - s - c), u = Zn({
4633
4885
  start: Math.max(0, e),
4634
4886
  end: Math.max(0, t),
4635
4887
  maxTotalPadding: l,
@@ -4643,23 +4895,23 @@ function Pn({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i,
4643
4895
  appliedUserPaddingEnd: f
4644
4896
  };
4645
4897
  }
4646
- function Fn({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measureTextboxHeightForFrame: i }) {
4898
+ function $n({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measureTextboxHeightForFrame: i }) {
4647
4899
  let a = Math.max(1, t), o = Math.max(a, n), s = Math.max(1, r);
4648
- if (!Mn({ text: e }) || i({
4900
+ if (!Xn({ text: e }) || i({
4649
4901
  text: e,
4650
4902
  frameWidth: a
4651
- }) <= s + kn) return a;
4903
+ }) <= s + qn) return a;
4652
4904
  if (i({
4653
4905
  text: e,
4654
4906
  frameWidth: o
4655
- }) > s + kn) return o;
4907
+ }) > s + qn) return o;
4656
4908
  let c = a, l = o;
4657
- for (let t = 0; t < An; t += 1) {
4909
+ for (let t = 0; t < Jn; t += 1) {
4658
4910
  let t = (c + l) / 2;
4659
4911
  if (i({
4660
4912
  text: e,
4661
4913
  frameWidth: t
4662
- }) <= s + kn) {
4914
+ }) <= s + qn) {
4663
4915
  l = t;
4664
4916
  continue;
4665
4917
  }
@@ -4667,16 +4919,16 @@ function Fn({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measu
4667
4919
  }
4668
4920
  return l;
4669
4921
  }
4670
- function In({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4671
- let l = Math.max(1, t), u = Math.max(1, n), d = Mn({ text: e }) ? c({ text: e }) : 1, f = i.top + i.bottom, p = Math.max(1, u - f), m = d;
4672
- a || (m = Fn({
4922
+ function er({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4923
+ let l = Math.max(1, t), u = Math.max(1, n), d = Xn({ text: e }) ? c({ text: e }) : 1, f = i.top + i.bottom, p = Math.max(1, u - f), m = d;
4924
+ a || (m = $n({
4673
4925
  text: e,
4674
4926
  minFrameWidth: d,
4675
4927
  maxFrameWidth: l,
4676
4928
  frameHeight: p,
4677
4929
  measureTextboxHeightForFrame: s
4678
4930
  }));
4679
- let h = m + i.left + i.right, g = Math.max(0, l - m), _ = Pn({
4931
+ let h = m + i.left + i.right, g = Math.max(0, l - m), _ = Qn({
4680
4932
  start: r.left,
4681
4933
  end: r.right,
4682
4934
  insetStart: i.left,
@@ -4697,8 +4949,8 @@ function In({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4697
4949
  requiredWidth: h
4698
4950
  };
4699
4951
  }
4700
- function Ln({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, changedPadding: i }) {
4701
- let a = Math.max(0, Math.max(1, n) - Math.max(1, r)), o = Pn({
4952
+ function tr({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, changedPadding: i }) {
4953
+ let a = Math.max(0, Math.max(1, n) - Math.max(1, r)), o = Qn({
4702
4954
  start: e.top,
4703
4955
  end: e.bottom,
4704
4956
  insetStart: t.top,
@@ -4718,8 +4970,8 @@ function Ln({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, c
4718
4970
  }
4719
4971
  };
4720
4972
  }
4721
- function Rn({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4722
- let l = Math.max(1, t), u = Math.max(1, n), d = K({ padding: r }), f = K({ padding: i }), p = In({
4973
+ function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4974
+ let l = Math.max(1, t), u = Math.max(1, n), d = Se({ padding: r }), f = Se({ padding: i }), p = er({
4723
4975
  text: e,
4724
4976
  width: l,
4725
4977
  height: u,
@@ -4729,7 +4981,7 @@ function Rn({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4729
4981
  changedPadding: o,
4730
4982
  measureTextboxHeightForFrame: s,
4731
4983
  resolveMinimumTextFrameWidth: c
4732
- }), m = jn({
4984
+ }), m = Yn({
4733
4985
  width: l,
4734
4986
  padding: {
4735
4987
  top: 0,
@@ -4737,10 +4989,10 @@ function Rn({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4737
4989
  bottom: 0,
4738
4990
  left: p.appliedPadding.left
4739
4991
  }
4740
- }), h = Mn({ text: e }) ? s({
4992
+ }), h = Xn({ text: e }) ? s({
4741
4993
  text: e,
4742
4994
  frameWidth: m
4743
- }) : 1, g = f.top + f.bottom, _ = a ? Math.max(u, h + g) : u, v = Ln({
4995
+ }) : 1, g = f.top + f.bottom, _ = a ? Math.max(u, h + g) : u, v = tr({
4744
4996
  padding: d,
4745
4997
  internalShapeTextInset: f,
4746
4998
  height: _,
@@ -4766,9 +5018,9 @@ function Rn({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4766
5018
  }
4767
5019
  //#endregion
4768
5020
  //#region src/editor/shape-manager/layout/shape-layout.ts
4769
- var Y = 1, zn = .5, Bn = 8, Vn = 20, Hn = 16;
4770
- function Un({ text: e, alignV: t, width: n, height: r, appliedPadding: i, appliedUserPadding: a }) {
4771
- let { frame: o, splitByGrapheme: s, textTop: c } = Xn({
5021
+ var Y = 1, rr = .5, ir = 8, ar = 20, or = 16;
5022
+ function sr({ text: e, alignV: t, width: n, height: r, appliedPadding: i, appliedUserPadding: a }) {
5023
+ let { frame: o, splitByGrapheme: s, textTop: c } = mr({
4772
5024
  text: e,
4773
5025
  width: n,
4774
5026
  height: r,
@@ -4785,8 +5037,8 @@ function Un({ text: e, alignV: t, width: n, height: r, appliedPadding: i, applie
4785
5037
  textTop: c
4786
5038
  };
4787
5039
  }
4788
- var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, preserveAspectRatio: s, shapeTextAutoExpandEnabled: c, montageAreaWidth: l, expandShapeHeightToFitText: u = !0, changedPadding: d }) => {
4789
- let { width: f, height: p, appliedPadding: m, appliedUserPadding: h } = s ? qn({
5040
+ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, preserveAspectRatio: s, shapeTextAutoExpandEnabled: c, montageAreaWidth: l, expandShapeHeightToFitText: u = !0, changedPadding: d }) => {
5041
+ let { width: f, height: p, appliedPadding: m, appliedUserPadding: h } = s ? dr({
4790
5042
  text: e,
4791
5043
  width: t,
4792
5044
  height: n,
@@ -4797,7 +5049,7 @@ var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
4797
5049
  montageAreaWidth: l,
4798
5050
  expandShapeHeightToFitText: u,
4799
5051
  changedPadding: d
4800
- }) : nr({
5052
+ }) : br({
4801
5053
  text: e,
4802
5054
  width: t,
4803
5055
  height: n,
@@ -4807,7 +5059,7 @@ var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
4807
5059
  expandShapeHeightToFitText: u,
4808
5060
  changedPadding: d
4809
5061
  });
4810
- return Un({
5062
+ return sr({
4811
5063
  text: e,
4812
5064
  alignV: r,
4813
5065
  width: f,
@@ -4815,13 +5067,13 @@ var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
4815
5067
  appliedPadding: m,
4816
5068
  appliedUserPadding: h
4817
5069
  });
4818
- }, Gn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, expandShapeHeightToFitText: s = !0, changedPadding: c }) => {
4819
- let l = Se({ padding: i }), u = K({ padding: a }), d = Math.max(Y, t), f = Math.max(Y, n), p = Rn({
5070
+ }, lr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, expandShapeHeightToFitText: s = !0, changedPadding: c }) => {
5071
+ let l = Ce({ padding: i }), u = Se({ padding: a }), d = Math.max(Y, t), f = Math.max(Y, n), p = nr({
4820
5072
  text: e,
4821
5073
  width: d,
4822
5074
  height: f,
4823
5075
  padding: l,
4824
- internalShapeTextInset: tr({
5076
+ internalShapeTextInset: yr({
4825
5077
  width: d,
4826
5078
  height: f,
4827
5079
  internalShapeTextInset: u,
@@ -4829,18 +5081,18 @@ var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
4829
5081
  }),
4830
5082
  expandShapeHeightToFitText: s,
4831
5083
  changedPadding: c,
4832
- measureTextboxHeightForFrame: cr,
4833
- resolveMinimumTextFrameWidth: lr
5084
+ measureTextboxHeightForFrame: Er,
5085
+ resolveMinimumTextFrameWidth: Dr
4834
5086
  });
4835
- for (let t = 0; t < Bn; t += 1) {
5087
+ for (let t = 0; t < ir; t += 1) {
4836
5088
  let t = Math.max(f, p.requiredHeight);
4837
- if (t <= f + zn) break;
4838
- f = t, p = Rn({
5089
+ if (t <= f + rr) break;
5090
+ f = t, p = nr({
4839
5091
  text: e,
4840
5092
  width: d,
4841
5093
  height: f,
4842
5094
  padding: l,
4843
- internalShapeTextInset: tr({
5095
+ internalShapeTextInset: yr({
4844
5096
  width: d,
4845
5097
  height: f,
4846
5098
  internalShapeTextInset: u,
@@ -4848,11 +5100,11 @@ var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
4848
5100
  }),
4849
5101
  expandShapeHeightToFitText: s,
4850
5102
  changedPadding: c,
4851
- measureTextboxHeightForFrame: cr,
4852
- resolveMinimumTextFrameWidth: lr
5103
+ measureTextboxHeightForFrame: Er,
5104
+ resolveMinimumTextFrameWidth: Dr
4853
5105
  });
4854
5106
  }
4855
- return Un({
5107
+ return sr({
4856
5108
  text: e,
4857
5109
  alignV: r,
4858
5110
  width: d,
@@ -4860,8 +5112,8 @@ var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
4860
5112
  appliedPadding: p.appliedPadding,
4861
5113
  appliedUserPadding: p.appliedUserPadding
4862
5114
  });
4863
- }, Kn = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s, internalShapeTextInset: c, resolveInternalShapeTextInset: l, preserveAspectRatio: u, shapeTextAutoExpandEnabled: d, montageAreaWidth: f, expandShapeHeightToFitText: p = !0, changedPadding: m }) => {
4864
- let h = Math.max(Y, e.shapeManualBaseWidth ?? r), g = Math.max(Y, e.shapeManualBaseHeight ?? i), { width: _, height: v, appliedUserPadding: y, frame: b, splitByGrapheme: x, textTop: S } = Wn({
5115
+ }, ur = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s, internalShapeTextInset: c, resolveInternalShapeTextInset: l, preserveAspectRatio: u, shapeTextAutoExpandEnabled: d, montageAreaWidth: f, expandShapeHeightToFitText: p = !0, changedPadding: m }) => {
5116
+ let h = Math.max(Y, e.shapeManualBaseWidth ?? r), g = Math.max(Y, e.shapeManualBaseHeight ?? i), { width: _, height: v, appliedUserPadding: y, frame: b, splitByGrapheme: x, textTop: S } = cr({
4865
5117
  text: n,
4866
5118
  width: r,
4867
5119
  height: i,
@@ -4875,7 +5127,7 @@ var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
4875
5127
  expandShapeHeightToFitText: p,
4876
5128
  changedPadding: m
4877
5129
  });
4878
- hn({
5130
+ Nn({
4879
5131
  shape: t,
4880
5132
  width: _,
4881
5133
  height: v,
@@ -4904,9 +5156,9 @@ var Wn = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
4904
5156
  scaleY: 1
4905
5157
  }), e.set("dirty", !0), e.setCoords();
4906
5158
  };
4907
- function qn({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, resolveInternalShapeTextInset: a, shapeTextAutoExpandEnabled: o = !0, montageAreaWidth: s, expandShapeHeightToFitText: c = !0, changedPadding: l }) {
5159
+ function dr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, resolveInternalShapeTextInset: a, shapeTextAutoExpandEnabled: o = !0, montageAreaWidth: s, expandShapeHeightToFitText: c = !0, changedPadding: l }) {
4908
5160
  let u = Math.max(Y, t), d = Math.max(Y, n), f = Number.isFinite(s) && (s ?? 0) > 0 ? Math.max(Y, s ?? Y) : null;
4909
- if (!Qn({ text: e })) return nr({
5161
+ if (!gr({ text: e })) return br({
4910
5162
  text: e,
4911
5163
  width: u,
4912
5164
  height: d,
@@ -4917,7 +5169,7 @@ function qn({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4917
5169
  changedPadding: l
4918
5170
  });
4919
5171
  let p = d / u, m = ({ width: t }) => {
4920
- let n = Math.max(Y, t * p), o = nr({
5172
+ let n = Math.max(Y, t * p), o = br({
4921
5173
  text: e,
4922
5174
  width: t,
4923
5175
  height: n,
@@ -4929,13 +5181,13 @@ function qn({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4929
5181
  });
4930
5182
  return {
4931
5183
  candidateHeight: n,
4932
- frameWidth: jn({
5184
+ frameWidth: Yn({
4933
5185
  width: t,
4934
5186
  padding: o.appliedPadding
4935
5187
  }),
4936
5188
  layoutResolution: o
4937
5189
  };
4938
- }, h = ({ candidateWidth: e, candidateHeight: t, layoutResolution: n }) => !(n.width > e + zn || n.height > t + zn);
5190
+ }, h = ({ candidateWidth: e, candidateHeight: t, layoutResolution: n }) => !(n.width > e + rr || n.height > t + rr);
4939
5191
  if (!o) {
4940
5192
  let e = ({ width: e }) => {
4941
5193
  let { candidateHeight: t, layoutResolution: n } = m({ width: e });
@@ -4945,11 +5197,11 @@ function qn({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4945
5197
  layoutResolution: n
4946
5198
  });
4947
5199
  }, t = f ? Math.max(u, f) : u;
4948
- e({ width: t }) || (t = rr({
5200
+ e({ width: t }) || (t = xr({
4949
5201
  minimumWidth: t,
4950
5202
  isWidthValid: e
4951
5203
  }));
4952
- let { layoutResolution: n } = m({ width: ir({
5204
+ let { layoutResolution: n } = m({ width: Sr({
4953
5205
  minimumWidth: u,
4954
5206
  maximumWidth: t,
4955
5207
  isWidthValid: e
@@ -4962,19 +5214,19 @@ function qn({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4962
5214
  candidateWidth: t,
4963
5215
  candidateHeight: r,
4964
5216
  layoutResolution: a
4965
- }) || n !== void 0 && i < n - zn ? !1 : !sr({
5217
+ }) || n !== void 0 && i < n - rr ? !1 : !Tr({
4966
5218
  text: e,
4967
5219
  frameWidth: i
4968
5220
  }).hasWrappedLines;
4969
- }, _ = f ? Math.max(u, f) : rr({
5221
+ }, _ = f ? Math.max(u, f) : xr({
4970
5222
  minimumWidth: u,
4971
5223
  isWidthValid: ({ width: e }) => g({ width: e })
4972
- }), v = m({ width: _ }), y = sr({
5224
+ }), v = m({ width: _ }), y = Tr({
4973
5225
  text: e,
4974
5226
  frameWidth: v.frameWidth
4975
5227
  });
4976
5228
  if (y.hasWrappedLines) return v.layoutResolution;
4977
- let b = Math.max(Y, y.longestLineWidth), { layoutResolution: x } = m({ width: ir({
5229
+ let b = Math.max(Y, y.longestLineWidth), { layoutResolution: x } = m({ width: Sr({
4978
5230
  minimumWidth: u,
4979
5231
  maximumWidth: _,
4980
5232
  isWidthValid: ({ width: e }) => g({
@@ -4984,67 +5236,67 @@ function qn({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4984
5236
  }) });
4985
5237
  return x;
4986
5238
  }
4987
- var Jn = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, montageAreaWidth: i, resolvePaddingForWidth: a }) => {
5239
+ var fr = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, montageAreaWidth: i, resolvePaddingForWidth: a }) => {
4988
5240
  let o = Math.max(Y, t), s = Math.max(Y, n);
4989
- if (!Qn({ text: e })) return s;
4990
- let c = Math.max(s, Number.isFinite(i) && i > 0 ? Math.max(Y, i) : Math.max(o, s)), l = jn({
5241
+ if (!gr({ text: e })) return s;
5242
+ let c = Math.max(s, Number.isFinite(i) && i > 0 ? Math.max(Y, i) : Math.max(o, s)), l = Yn({
4991
5243
  width: c,
4992
- padding: $n({
5244
+ padding: _r({
4993
5245
  width: c,
4994
5246
  padding: r,
4995
5247
  resolvePaddingForWidth: a
4996
5248
  })
4997
- }), u = c, d = sr({
5249
+ }), u = c, d = Tr({
4998
5250
  text: e,
4999
5251
  frameWidth: l
5000
5252
  });
5001
5253
  if (d.hasWrappedLines) return u;
5002
5254
  let f = Math.max(Y, d.longestLineWidth);
5003
- return ir({
5255
+ return Sr({
5004
5256
  minimumWidth: s,
5005
5257
  maximumWidth: u,
5006
5258
  isWidthValid: ({ width: t }) => {
5007
- let n = jn({
5259
+ let n = Yn({
5008
5260
  width: t,
5009
- padding: $n({
5261
+ padding: _r({
5010
5262
  width: t,
5011
5263
  padding: r,
5012
5264
  resolvePaddingForWidth: a
5013
5265
  })
5014
5266
  });
5015
- return n < f - zn ? !1 : !sr({
5267
+ return n < f - rr ? !1 : !Tr({
5016
5268
  text: e,
5017
5269
  frameWidth: n
5018
5270
  }).hasWrappedLines;
5019
5271
  }
5020
5272
  });
5021
- }, Yn = ({ text: e, padding: t, resolvePaddingForWidth: n }) => {
5022
- if (!Qn({ text: e })) return Y;
5023
- let r = lr({ text: e }), i = Math.max(Y, r), a = ({ width: e }) => jn({
5273
+ }, pr = ({ text: e, padding: t, resolvePaddingForWidth: n }) => {
5274
+ if (!gr({ text: e })) return Y;
5275
+ let r = Dr({ text: e }), i = Math.max(Y, r), a = ({ width: e }) => Yn({
5024
5276
  width: e,
5025
- padding: $n({
5277
+ padding: _r({
5026
5278
  width: e,
5027
5279
  padding: t,
5028
5280
  resolvePaddingForWidth: n
5029
5281
  })
5030
- }) >= r - zn;
5031
- return ir({
5282
+ }) >= r - rr;
5283
+ return Sr({
5032
5284
  minimumWidth: i,
5033
- maximumWidth: rr({
5285
+ maximumWidth: xr({
5034
5286
  minimumWidth: i,
5035
5287
  isWidthValid: a
5036
5288
  }),
5037
5289
  isWidthValid: a
5038
5290
  });
5039
- }, Xn = ({ text: e, width: t, height: n, alignV: r, padding: i }) => {
5040
- let a = ar({
5291
+ }, mr = ({ text: e, width: t, height: n, alignV: r, padding: i }) => {
5292
+ let a = Cr({
5041
5293
  width: Math.max(Y, t),
5042
5294
  height: Math.max(Y, n),
5043
- padding: K({ padding: i })
5044
- }), o = fr({
5295
+ padding: Se({ padding: i })
5296
+ }), o = Ar({
5045
5297
  text: e,
5046
5298
  frameWidth: a.width
5047
- }), s = cr({
5299
+ }), s = Er({
5048
5300
  text: e,
5049
5301
  frameWidth: a.width,
5050
5302
  splitByGrapheme: o
@@ -5052,60 +5304,60 @@ var Jn = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, montageAreaWi
5052
5304
  return {
5053
5305
  frame: a,
5054
5306
  splitByGrapheme: o,
5055
- textTop: dr({
5307
+ textTop: kr({
5056
5308
  alignV: r,
5057
5309
  frameHeight: a.height,
5058
5310
  frameTop: a.top,
5059
5311
  textHeight: s
5060
5312
  })
5061
5313
  };
5062
- }, Zn = ({ text: e, width: t, height: n, padding: r, resolvePaddingForSize: i }) => {
5314
+ }, hr = ({ text: e, width: t, height: n, padding: r, resolvePaddingForSize: i }) => {
5063
5315
  let a = Math.max(Y, n);
5064
- if (!Qn({ text: e })) return a;
5316
+ if (!gr({ text: e })) return a;
5065
5317
  let o = Math.max(Y, t), s = a;
5066
- for (let t = 0; t < Bn; t += 1) {
5067
- let t = er({
5318
+ for (let t = 0; t < ir; t += 1) {
5319
+ let t = vr({
5068
5320
  width: o,
5069
5321
  height: s,
5070
5322
  padding: r,
5071
5323
  resolvePaddingForSize: i
5072
- }), n = cr({
5324
+ }), n = Er({
5073
5325
  text: e,
5074
- frameWidth: jn({
5326
+ frameWidth: Yn({
5075
5327
  width: o,
5076
5328
  padding: t
5077
5329
  })
5078
5330
  }), c = Math.max(a, n + t.top + t.bottom);
5079
- if (c <= s + zn) return c;
5331
+ if (c <= s + rr) return c;
5080
5332
  s = c;
5081
5333
  }
5082
5334
  return s;
5083
5335
  };
5084
- function Qn({ text: e }) {
5336
+ function gr({ text: e }) {
5085
5337
  return (e.text ?? "").trim().length > 0;
5086
5338
  }
5087
- function $n({ width: e, padding: t, resolvePaddingForWidth: n }) {
5088
- return K(n ? { padding: n({ width: Math.max(Y, e) }) } : { padding: t });
5339
+ function _r({ width: e, padding: t, resolvePaddingForWidth: n }) {
5340
+ return Se(n ? { padding: n({ width: Math.max(Y, e) }) } : { padding: t });
5089
5341
  }
5090
- function er({ width: e, height: t, padding: n, resolvePaddingForSize: r }) {
5091
- return K(r ? { padding: r({
5342
+ function vr({ width: e, height: t, padding: n, resolvePaddingForSize: r }) {
5343
+ return Se(r ? { padding: r({
5092
5344
  width: Math.max(Y, e),
5093
5345
  height: Math.max(Y, t)
5094
5346
  }) } : { padding: n });
5095
5347
  }
5096
- function tr({ width: e, height: t, internalShapeTextInset: n, resolveInternalShapeTextInset: r }) {
5097
- return K(r ? { padding: r({
5348
+ function yr({ width: e, height: t, internalShapeTextInset: n, resolveInternalShapeTextInset: r }) {
5349
+ return Se(r ? { padding: r({
5098
5350
  width: Math.max(Y, e),
5099
5351
  height: Math.max(Y, t)
5100
5352
  }) } : { padding: n });
5101
5353
  }
5102
- function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, resolveInternalShapeTextInset: a, expandShapeHeightToFitText: o = !0, changedPadding: s }) {
5103
- let c = Se({ padding: r }), l = K({ padding: i }), u = Math.max(Y, t), d = Math.max(Y, n), f = Rn({
5354
+ function br({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, resolveInternalShapeTextInset: a, expandShapeHeightToFitText: o = !0, changedPadding: s }) {
5355
+ let c = Ce({ padding: r }), l = Se({ padding: i }), u = Math.max(Y, t), d = Math.max(Y, n), f = nr({
5104
5356
  text: e,
5105
5357
  width: u,
5106
5358
  height: d,
5107
5359
  padding: c,
5108
- internalShapeTextInset: tr({
5360
+ internalShapeTextInset: yr({
5109
5361
  width: u,
5110
5362
  height: d,
5111
5363
  internalShapeTextInset: l,
@@ -5113,18 +5365,18 @@ function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5113
5365
  }),
5114
5366
  expandShapeHeightToFitText: o,
5115
5367
  changedPadding: s,
5116
- measureTextboxHeightForFrame: cr,
5117
- resolveMinimumTextFrameWidth: lr
5368
+ measureTextboxHeightForFrame: Er,
5369
+ resolveMinimumTextFrameWidth: Dr
5118
5370
  });
5119
- for (let t = 0; t < Bn; t += 1) {
5371
+ for (let t = 0; t < ir; t += 1) {
5120
5372
  let t = Math.max(u, f.requiredWidth), n = Math.max(d, f.requiredHeight);
5121
- if (t <= u + zn && n <= d + zn) break;
5122
- u = t, d = n, f = Rn({
5373
+ if (t <= u + rr && n <= d + rr) break;
5374
+ u = t, d = n, f = nr({
5123
5375
  text: e,
5124
5376
  width: u,
5125
5377
  height: d,
5126
5378
  padding: c,
5127
- internalShapeTextInset: tr({
5379
+ internalShapeTextInset: yr({
5128
5380
  width: u,
5129
5381
  height: d,
5130
5382
  internalShapeTextInset: l,
@@ -5132,8 +5384,8 @@ function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5132
5384
  }),
5133
5385
  expandShapeHeightToFitText: o,
5134
5386
  changedPadding: s,
5135
- measureTextboxHeightForFrame: cr,
5136
- resolveMinimumTextFrameWidth: lr
5387
+ measureTextboxHeightForFrame: Er,
5388
+ resolveMinimumTextFrameWidth: Dr
5137
5389
  });
5138
5390
  }
5139
5391
  return {
@@ -5143,17 +5395,17 @@ function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5143
5395
  appliedUserPadding: f.appliedUserPadding
5144
5396
  };
5145
5397
  }
5146
- function rr({ minimumWidth: e, isWidthValid: t }) {
5398
+ function xr({ minimumWidth: e, isWidthValid: t }) {
5147
5399
  let n = Math.max(Y, e);
5148
5400
  if (t({ width: n })) return n;
5149
- for (let e = 0; e < Hn; e += 1) if (n = Math.max(n + 1, n * 2), t({ width: n })) return n;
5401
+ for (let e = 0; e < or; e += 1) if (n = Math.max(n + 1, n * 2), t({ width: n })) return n;
5150
5402
  return n;
5151
5403
  }
5152
- function ir({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5404
+ function Sr({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5153
5405
  let r = Math.max(Y, e), i = Math.max(r, t);
5154
5406
  if (n({ width: r })) return r;
5155
5407
  if (!n({ width: i })) return i;
5156
- for (let e = 0; e < Vn && !(i - r <= zn); e += 1) {
5408
+ for (let e = 0; e < ar && !(i - r <= rr); e += 1) {
5157
5409
  let e = r + (i - r) / 2;
5158
5410
  if (n({ width: e })) {
5159
5411
  i = e;
@@ -5163,7 +5415,7 @@ function ir({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5163
5415
  }
5164
5416
  return i;
5165
5417
  }
5166
- function ar({ width: e, height: t, padding: n }) {
5418
+ function Cr({ width: e, height: t, padding: n }) {
5167
5419
  let r = Math.max(0, n.left), i = Math.max(0, n.right), a = Math.max(0, n.top), o = Math.max(0, n.bottom);
5168
5420
  return {
5169
5421
  left: -e / 2 + r,
@@ -5172,7 +5424,7 @@ function ar({ width: e, height: t, padding: n }) {
5172
5424
  height: Math.max(Y, t - a - o)
5173
5425
  };
5174
5426
  }
5175
- function or({ text: e }) {
5427
+ function wr({ text: e }) {
5176
5428
  let { height: t } = e;
5177
5429
  if (typeof t == "number" && Number.isFinite(t)) return t;
5178
5430
  if (typeof e.calcTextHeight == "function") {
@@ -5181,18 +5433,18 @@ function or({ text: e }) {
5181
5433
  }
5182
5434
  return Y;
5183
5435
  }
5184
- function sr({ text: e, frameWidth: t }) {
5185
- let n = mr({ text: e }), r = fr({
5436
+ function Tr({ text: e, frameWidth: t }) {
5437
+ let n = Mr({ text: e }), r = Ar({
5186
5438
  text: e,
5187
5439
  frameWidth: t
5188
- }), i = _r({ text: e });
5440
+ }), i = Fr({ text: e });
5189
5441
  e.set({
5190
5442
  autoExpand: !1,
5191
5443
  width: Math.max(Y, t),
5192
5444
  splitByGrapheme: r
5193
5445
  }), e.initDimensions();
5194
- let a = hr({ text: e }) > n, o = Math.ceil(pr({ text: e }));
5195
- return vr({
5446
+ let a = Nr({ text: e }) > n, o = Math.ceil(jr({ text: e }));
5447
+ return Ir({
5196
5448
  text: e,
5197
5449
  state: i
5198
5450
  }), {
@@ -5200,8 +5452,8 @@ function sr({ text: e, frameWidth: t }) {
5200
5452
  longestLineWidth: o
5201
5453
  };
5202
5454
  }
5203
- function cr({ text: e, frameWidth: t, splitByGrapheme: n }) {
5204
- let r = _r({ text: e }), i = n ?? fr({
5455
+ function Er({ text: e, frameWidth: t, splitByGrapheme: n }) {
5456
+ let r = Fr({ text: e }), i = n ?? Ar({
5205
5457
  text: e,
5206
5458
  frameWidth: t
5207
5459
  });
@@ -5210,71 +5462,71 @@ function cr({ text: e, frameWidth: t, splitByGrapheme: n }) {
5210
5462
  width: Math.max(Y, t),
5211
5463
  splitByGrapheme: i
5212
5464
  }), e.initDimensions();
5213
- let a = or({ text: e });
5214
- return vr({
5465
+ let a = wr({ text: e });
5466
+ return Ir({
5215
5467
  text: e,
5216
5468
  state: r
5217
5469
  }), a;
5218
5470
  }
5219
- function lr({ text: e }) {
5220
- let t = ur({
5471
+ function Dr({ text: e }) {
5472
+ let t = Or({
5221
5473
  text: e,
5222
5474
  frameWidth: Y,
5223
5475
  splitByGrapheme: !0
5224
5476
  });
5225
5477
  return Math.max(Y, t);
5226
5478
  }
5227
- function ur({ text: e, frameWidth: t, splitByGrapheme: n }) {
5228
- let r = _r({ text: e });
5479
+ function Or({ text: e, frameWidth: t, splitByGrapheme: n }) {
5480
+ let r = Fr({ text: e });
5229
5481
  e.set({
5230
5482
  autoExpand: !1,
5231
5483
  width: Math.max(Y, t),
5232
5484
  splitByGrapheme: n
5233
5485
  }), e.initDimensions();
5234
- let i = pr({ text: e });
5235
- return vr({
5486
+ let i = jr({ text: e });
5487
+ return Ir({
5236
5488
  text: e,
5237
5489
  state: r
5238
5490
  }), i;
5239
5491
  }
5240
- function dr({ alignV: e, frameHeight: t, frameTop: n, textHeight: r }) {
5492
+ function kr({ alignV: e, frameHeight: t, frameTop: n, textHeight: r }) {
5241
5493
  let i = Math.max(0, t - r);
5242
5494
  return e === "top" ? n : e === "bottom" ? n + i : n + i / 2;
5243
5495
  }
5244
- function fr({ text: e, frameWidth: t }) {
5245
- let n = Math.max(Y, t), r = _r({ text: e });
5496
+ function Ar({ text: e, frameWidth: t }) {
5497
+ let n = Math.max(Y, t), r = Fr({ text: e });
5246
5498
  e.set({
5247
5499
  autoExpand: !1,
5248
5500
  width: n,
5249
5501
  splitByGrapheme: !1
5250
5502
  }), e.initDimensions();
5251
- let i = yr({ text: e }) > n + zn;
5252
- return vr({
5503
+ let i = Lr({ text: e }) > n + rr;
5504
+ return Ir({
5253
5505
  text: e,
5254
5506
  state: r
5255
5507
  }), i;
5256
5508
  }
5257
- function pr({ text: e }) {
5258
- let t = hr({ text: e });
5259
- if (t > 0) return gr({
5509
+ function jr({ text: e }) {
5510
+ let t = Nr({ text: e });
5511
+ if (t > 0) return Pr({
5260
5512
  text: e,
5261
5513
  lineCount: t
5262
5514
  });
5263
5515
  let n = e.text ?? "";
5264
- return gr({
5516
+ return Pr({
5265
5517
  text: e,
5266
5518
  lineCount: Math.max(n.split("\n").length, 1)
5267
5519
  });
5268
5520
  }
5269
- function mr({ text: e }) {
5521
+ function Mr({ text: e }) {
5270
5522
  let t = e.text ?? "";
5271
5523
  return Math.max(t.split("\n").length, 1);
5272
5524
  }
5273
- function hr({ text: e }) {
5525
+ function Nr({ text: e }) {
5274
5526
  let t = e;
5275
5527
  return Array.isArray(t.textLines) ? t.textLines.length : 0;
5276
5528
  }
5277
- function gr({ text: e, lineCount: t }) {
5529
+ function Pr({ text: e, lineCount: t }) {
5278
5530
  let n = Y;
5279
5531
  for (let r = 0; r < t; r += 1) {
5280
5532
  let t = e.getLineWidth(r);
@@ -5282,7 +5534,7 @@ function gr({ text: e, lineCount: t }) {
5282
5534
  }
5283
5535
  return n;
5284
5536
  }
5285
- function _r({ text: e }) {
5537
+ function Fr({ text: e }) {
5286
5538
  let { autoExpand: t, splitByGrapheme: n, width: r } = e;
5287
5539
  return {
5288
5540
  autoExpand: t,
@@ -5290,22 +5542,22 @@ function _r({ text: e }) {
5290
5542
  width: typeof r == "number" ? r : void 0
5291
5543
  };
5292
5544
  }
5293
- function vr({ text: e, state: t }) {
5545
+ function Ir({ text: e, state: t }) {
5294
5546
  let { autoExpand: n, splitByGrapheme: r, width: i } = t, a = {};
5295
5547
  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());
5296
5548
  }
5297
- function yr({ text: e }) {
5549
+ function Lr({ text: e }) {
5298
5550
  let { dynamicMinWidth: t } = e;
5299
5551
  return typeof t == "number" && Number.isFinite(t) ? t : 0;
5300
5552
  }
5301
5553
  //#endregion
5302
5554
  //#region src/editor/shape-manager/scaling/shape-scaling-transform.ts
5303
- var br = ({ transform: e, key: t }) => {
5555
+ var Rr = ({ transform: e, key: t }) => {
5304
5556
  let n = e?.original;
5305
5557
  if (!n || typeof n != "object") return null;
5306
5558
  let r = n[t];
5307
5559
  return typeof r != "number" || !Number.isFinite(r) ? null : r;
5308
- }, xr = ({ value: e }) => e === "left" || e === "center" || e === "right" || typeof e == "number" && Number.isFinite(e) ? e : null, Sr = ({ value: e }) => e === "top" || e === "center" || e === "bottom" || typeof e == "number" && Number.isFinite(e) ? e : null, Cr = ({ transform: e }) => {
5560
+ }, zr = ({ value: e }) => e === "left" || e === "center" || e === "right" || typeof e == "number" && Number.isFinite(e) ? e : null, Br = ({ value: e }) => e === "top" || e === "center" || e === "bottom" || typeof e == "number" && Number.isFinite(e) ? e : null, Vr = ({ transform: e }) => {
5309
5561
  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;
5310
5562
  return {
5311
5563
  canScaleWidth: o,
@@ -5313,37 +5565,37 @@ var br = ({ transform: e, key: t }) => {
5313
5565
  isCornerScaleAction: r,
5314
5566
  isVerticalOnlyScale: s && !o
5315
5567
  };
5316
- }, wr = ({ event: e, group: t, transform: n, canvas: r }) => {
5568
+ }, Hr = ({ event: e, group: t, transform: n, canvas: r }) => {
5317
5569
  if (!e) return null;
5318
5570
  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;
5319
5571
  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;
5320
- }, Tr = ({ group: e, originX: t, originY: n }) => {
5572
+ }, Ur = ({ group: e, originX: t, originY: n }) => {
5321
5573
  if (t === null || n === null) return null;
5322
5574
  let r = e, i = typeof r.getRelativeCenterPoint == "function" ? r.getRelativeCenterPoint() : e.getCenterPoint();
5323
5575
  return typeof r.translateToOriginPoint == "function" ? r.translateToOriginPoint(i, t, n) : i;
5324
- }, Er = ({ state: e, transform: t }) => {
5576
+ }, Wr = ({ state: e, transform: t }) => {
5325
5577
  if (!t || e.startTransformOriginX === null && e.startTransformOriginY === null) return !1;
5326
- let n = xr({ value: t.originX }), r = Sr({ value: t.originY });
5578
+ let n = zr({ value: t.originX }), r = Br({ value: t.originY });
5327
5579
  return n !== e.startTransformOriginX || r !== e.startTransformOriginY;
5328
- }, Dr = ({ state: e, transform: t }) => !t || !e.startTransformCorner ? !1 : t.corner !== e.startTransformCorner;
5580
+ }, Gr = ({ state: e, transform: t }) => !t || !e.startTransformCorner ? !1 : t.corner !== e.startTransformCorner;
5329
5581
  //#endregion
5330
5582
  //#region src/editor/shape-manager/scaling/shape-scaling-preview.ts
5331
- function Or({ size: e, scale: t, strokeWidth: n, minSize: r, scaleEpsilon: i }) {
5583
+ function Kr({ size: e, scale: t, strokeWidth: n, minSize: r, scaleEpsilon: i }) {
5332
5584
  let a = Math.max(i, Math.abs(t) || 1), o = Math.max(0, n);
5333
5585
  return o <= 0 ? Math.max(r, e / a) : Math.max(r, e / a + o - o / a);
5334
5586
  }
5335
- function kr({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, minSize: o, scaleEpsilon: s }) {
5587
+ function qr({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, minSize: o, scaleEpsilon: s }) {
5336
5588
  let c = Math.max(0, e.shapeStrokeWidth ?? 0);
5337
- hn({
5589
+ Nn({
5338
5590
  shape: t,
5339
- width: Or({
5591
+ width: Kr({
5340
5592
  size: n,
5341
5593
  scale: i,
5342
5594
  strokeWidth: c,
5343
5595
  minSize: o,
5344
5596
  scaleEpsilon: s
5345
5597
  }),
5346
- height: Or({
5598
+ height: Kr({
5347
5599
  size: r,
5348
5600
  scale: a,
5349
5601
  strokeWidth: c,
@@ -5354,7 +5606,7 @@ function kr({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, min
5354
5606
  strokeWidth: c
5355
5607
  });
5356
5608
  }
5357
- function Ar({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon: a }) {
5609
+ function Jr({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon: a }) {
5358
5610
  let o = Math.max(a, Math.abs(r) || 1), s = Math.max(a, Math.abs(i) || 1), c = n ?? "center";
5359
5611
  e.set({
5360
5612
  autoExpand: !1,
@@ -5369,13 +5621,13 @@ function Ar({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon:
5369
5621
  scaleY: 1 / s
5370
5622
  }), e.initDimensions(), e.setCoords();
5371
5623
  }
5372
- var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY: o, minSize: s, scaleEpsilon: c }) => {
5624
+ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY: o, minSize: s, scaleEpsilon: c }) => {
5373
5625
  let l = Math.max(c, Math.abs(a) || 1), u = Math.max(c, Math.abs(o) || 1);
5374
5626
  e.set({
5375
5627
  width: r.width / l,
5376
5628
  height: r.height / u,
5377
5629
  dirty: !0
5378
- }), kr({
5630
+ }), qr({
5379
5631
  group: e,
5380
5632
  shape: t,
5381
5633
  width: r.width,
@@ -5384,7 +5636,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5384
5636
  scaleY: o,
5385
5637
  minSize: s,
5386
5638
  scaleEpsilon: c
5387
- }), Ar({
5639
+ }), Jr({
5388
5640
  text: n,
5389
5641
  layout: r,
5390
5642
  alignH: i,
@@ -5392,12 +5644,12 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5392
5644
  scaleY: o,
5393
5645
  scaleEpsilon: c
5394
5646
  });
5395
- }, X = 1, Z = 1e-4, Mr = .5, Nr = class e {
5647
+ }, X = 1, Z = 1e-4, Xr = .5, Zr = class e {
5396
5648
  constructor({ canvas: t }) {
5397
5649
  this.handleObjectScaling = (t) => {
5398
5650
  let { target: n, transform: r } = t;
5399
- if (!q(n)) return;
5400
- let i = n, { shape: a, text: o } = Ke({ group: i });
5651
+ if (!K(n)) return;
5652
+ let i = n, { shape: a, text: o } = q({ group: i });
5401
5653
  if (!a || !o) return;
5402
5654
  i.set({
5403
5655
  lockScalingFlip: !0,
@@ -5408,7 +5660,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5408
5660
  text: o,
5409
5661
  constraintPadding: s,
5410
5662
  transform: r
5411
- }), { isCornerScaleAction: l } = Cr({ transform: r }), u = !!(t.e && "shiftKey" in t.e && t.e.shiftKey);
5663
+ }), { isCornerScaleAction: l } = Vr({ transform: r }), u = !!(t.e && "shiftKey" in t.e && t.e.shiftKey);
5412
5664
  c.isProportionalScaling = l && u;
5413
5665
  let d = i.left ?? 0, f = i.top ?? 0, p = !!i.flipX, m = !!i.flipY, h = i.shapeAlignHorizontal ?? "center", g = this._resolveScalingDecision({
5414
5666
  group: i,
@@ -5430,7 +5682,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5430
5682
  shouldHandleAsNoop: g.shouldHandleAsNoop,
5431
5683
  scaleX: g.appliedScaleX,
5432
5684
  scaleY: g.appliedScaleY
5433
- }), jr({
5685
+ }), Yr({
5434
5686
  group: i,
5435
5687
  shape: a,
5436
5688
  text: o,
@@ -5457,12 +5709,12 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5457
5709
  let n = this.canvas._currentTransform;
5458
5710
  if (!n) return;
5459
5711
  let { target: r } = n;
5460
- if (!q(r)) return;
5461
- let { canScaleHeight: i, canScaleWidth: a } = Cr({ transform: n });
5712
+ if (!K(r)) return;
5713
+ let { canScaleHeight: i, canScaleWidth: a } = Vr({ transform: n });
5462
5714
  if (!a && !i) return;
5463
5715
  let o = r, s = this.scalingState.get(o);
5464
5716
  if (!s || s.isProportionalScaling) return;
5465
- let { shape: c, text: l } = Ke({ group: o });
5717
+ let { shape: c, text: l } = q({ group: o });
5466
5718
  if (!c || !l) return;
5467
5719
  let u = e._resolveScalingConstraintPadding({ group: o }), d = o.shapeAlignHorizontal ?? "center", f = Math.abs(o.scaleX ?? s.lastAllowedScaleX ?? 1) || 1, p = Math.abs(o.scaleY ?? s.lastAllowedScaleY ?? 1) || 1, m = {
5468
5720
  ...t,
@@ -5473,7 +5725,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5473
5725
  group: o,
5474
5726
  axis: "x"
5475
5727
  })) {
5476
- let t = Yn({
5728
+ let t = pr({
5477
5729
  text: l,
5478
5730
  padding: u,
5479
5731
  resolvePaddingForWidth: ({ width: t }) => e._resolveScalingConstraintPadding({
@@ -5521,7 +5773,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5521
5773
  shouldHandleAsNoop: !1,
5522
5774
  scaleX: h,
5523
5775
  scaleY: g
5524
- }), jr({
5776
+ }), Yr({
5525
5777
  group: o,
5526
5778
  shape: c,
5527
5779
  text: l,
@@ -5546,12 +5798,12 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5546
5798
  }), this.canvas.requestRenderAll();
5547
5799
  }, this.handleObjectModified = (t) => {
5548
5800
  let { target: n } = t;
5549
- if (!q(n)) return;
5801
+ if (!K(n)) return;
5550
5802
  let r = n, i = this.scalingState.get(r), a = Math.abs(r.scaleX ?? 1) || 1, o = Math.abs(r.scaleY ?? 1) || 1;
5551
5803
  if (!(Math.abs(a - 1) > Z || Math.abs(o - 1) > Z) && !i) return;
5552
5804
  let s = i?.startWidth ?? Math.max(X, r.shapeBaseWidth ?? r.width ?? r.shapeManualBaseWidth ?? X), c = i?.startHeight ?? Math.max(X, r.shapeBaseHeight ?? r.height ?? r.shapeManualBaseHeight ?? X), l = i?.startManualBaseWidth ?? Math.max(X, r.shapeManualBaseWidth ?? s), u = i?.startManualBaseHeight ?? Math.max(X, r.shapeManualBaseHeight ?? c);
5553
5805
  if (i?.blockedScaleAttempt && i) {
5554
- let { shape: e, text: t } = Ke({ group: r });
5806
+ let { shape: e, text: t } = q({ group: r });
5555
5807
  this._restoreGroupTransformOnly({
5556
5808
  group: r,
5557
5809
  shape: e,
@@ -5560,12 +5812,12 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5560
5812
  }), r.shapeScalingNoopTransform = !1, this.scalingState.delete(r), this.canvas.requestRenderAll();
5561
5813
  return;
5562
5814
  }
5563
- let { shape: d, text: f } = Ke({ group: r });
5815
+ let { shape: d, text: f } = q({ group: r });
5564
5816
  if (!d || !f) {
5565
5817
  this.scalingState.delete(r);
5566
5818
  return;
5567
5819
  }
5568
- let p = r.shapeAlignHorizontal ?? "center", m = r.shapeAlignVertical ?? "middle", h = e._resolveScalingConstraintPadding({ group: r }), g = t.transform ? Cr({ transform: t.transform }) : null, _ = i?.canScaleWidth ?? g?.canScaleWidth ?? Math.abs(a - 1) > Z, v = i?.canScaleHeight ?? g?.canScaleHeight ?? Math.abs(o - 1) > Z, y = i?.lastAllowedScaleX ?? a, b = i?.lastAllowedScaleY ?? o, x = Yn({
5820
+ let p = r.shapeAlignHorizontal ?? "center", m = r.shapeAlignVertical ?? "middle", h = e._resolveScalingConstraintPadding({ group: r }), g = t.transform ? Vr({ transform: t.transform }) : null, _ = i?.canScaleWidth ?? g?.canScaleWidth ?? Math.abs(a - 1) > Z, v = i?.canScaleHeight ?? g?.canScaleHeight ?? Math.abs(o - 1) > Z, y = i?.lastAllowedScaleX ?? a, b = i?.lastAllowedScaleY ?? o, x = pr({
5569
5821
  text: f,
5570
5822
  padding: h,
5571
5823
  resolvePaddingForWidth: ({ width: t }) => e._resolveScalingConstraintPadding({
@@ -5594,7 +5846,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5594
5846
  state: i
5595
5847
  }) && (b = Math.max(X / c, e / c));
5596
5848
  }
5597
- let S = _ ? Math.max(X, s * y) : s, C = v ? Math.max(X, c * b) : u, w = Math.abs(S - s) > Mr, T = Math.abs(C - c) > Mr, E = w || T, D = S, O = C;
5849
+ let S = _ ? Math.max(X, s * y) : s, C = v ? Math.max(X, c * b) : u, w = Math.abs(S - s) > Xr, T = Math.abs(C - c) > Xr, E = w || T, D = S, O = C;
5598
5850
  if (!E && i) {
5599
5851
  this._restoreShapeStateWithoutResize({
5600
5852
  group: r,
@@ -5627,7 +5879,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5627
5879
  width: D,
5628
5880
  height: O
5629
5881
  });
5630
- Kn({
5882
+ ur({
5631
5883
  group: r,
5632
5884
  shape: d,
5633
5885
  text: f,
@@ -5656,10 +5908,10 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5656
5908
  }, this.canvas = t, this.scalingState = /* @__PURE__ */ new WeakMap();
5657
5909
  }
5658
5910
  _resolveScalingDecision({ group: e, text: t, constraintPadding: n, state: r, transform: i }) {
5659
- 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 = Er({
5911
+ 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 = Wr({
5660
5912
  state: r,
5661
5913
  transform: i
5662
- }), d = Dr({
5914
+ }), d = Gr({
5663
5915
  state: r,
5664
5916
  transform: i
5665
5917
  });
@@ -5693,7 +5945,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5693
5945
  };
5694
5946
  }
5695
5947
  _resolveScalingConstraintState({ group: t, text: n, constraintPadding: r, state: i, transform: a, scaleX: o, scaleY: s }) {
5696
- let { startHeight: c, startWidth: l, cannotScaleDownAtStart: u, crossedOppositeCorner: d, isProportionalScaling: f, lastAllowedScaleX: p, lastAllowedScaleY: m, startScaleY: h } = i, g = Math.max(X, l * o), _ = Math.max(X, c * s), v = o < p - Z, y = s < m - Z, b = s < h - Z, { canScaleHeight: x, canScaleWidth: S, isVerticalOnlyScale: C } = Cr({ transform: a }), w = S && v ? Yn({
5948
+ let { startHeight: c, startWidth: l, cannotScaleDownAtStart: u, crossedOppositeCorner: d, isProportionalScaling: f, lastAllowedScaleX: p, lastAllowedScaleY: m, startScaleY: h } = i, g = Math.max(X, l * o), _ = Math.max(X, c * s), v = o < p - Z, y = s < m - Z, b = s < h - Z, { canScaleHeight: x, canScaleWidth: S, isVerticalOnlyScale: C } = Vr({ transform: a }), w = S && v ? pr({
5697
5949
  text: n,
5698
5950
  padding: r,
5699
5951
  resolvePaddingForWidth: ({ width: n }) => e._resolveScalingConstraintPadding({
@@ -5718,7 +5970,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5718
5970
  };
5719
5971
  }
5720
5972
  _resolvePreviewDimensions({ group: t, text: n, constraintPadding: r, state: i, appliedScaleX: a, appliedScaleY: o, minimumHeight: s }) {
5721
- let c = i.canScaleWidth ? Math.max(X, i.startWidth * a) : i.startWidth, l = i.canScaleHeight ? Math.max(X, i.startHeight * o) : i.startManualBaseHeight, u = s ?? Zn({
5973
+ let c = i.canScaleWidth ? Math.max(X, i.startWidth * a) : i.startWidth, l = i.canScaleHeight ? Math.max(X, i.startHeight * o) : i.startManualBaseHeight, u = s ?? hr({
5722
5974
  text: n,
5723
5975
  width: c,
5724
5976
  height: l,
@@ -5736,7 +5988,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5736
5988
  }
5737
5989
  _resolvePreviewLayout({ group: t, text: n, state: r, appliedScaleX: i, appliedScaleY: a, minimumHeight: o }) {
5738
5990
  let s = r.canScaleWidth ? Math.max(X, r.startWidth * i) : r.startWidth, c = r.canScaleHeight ? Math.max(X, r.startHeight * a) : r.startManualBaseHeight;
5739
- return Gn({
5991
+ return lr({
5740
5992
  text: n,
5741
5993
  width: s,
5742
5994
  height: o == null ? c : Math.max(c, o),
@@ -5771,7 +6023,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5771
6023
  if (!r) return !1;
5772
6024
  let { transform: i } = e;
5773
6025
  if (!i) return !1;
5774
- let { canScaleWidth: a } = Cr({ transform: i });
6026
+ let { canScaleWidth: a } = Vr({ transform: i });
5775
6027
  if (!a || !this._hasPointerReachedScaleOrigin({
5776
6028
  event: e,
5777
6029
  group: t,
@@ -5784,7 +6036,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5784
6036
  if (!r) return !1;
5785
6037
  let { transform: i } = e;
5786
6038
  if (!i) return !1;
5787
- let { canScaleHeight: a } = Cr({ transform: i });
6039
+ let { canScaleHeight: a } = Vr({ transform: i });
5788
6040
  if (!a || !this._hasPointerReachedScaleOrigin({
5789
6041
  event: e,
5790
6042
  group: t,
@@ -5798,7 +6050,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5798
6050
  if (!r) return !1;
5799
6051
  let i = r, a = n === "x" ? i.signX : i.signY;
5800
6052
  if (typeof a != "number" || !Number.isFinite(a)) return !1;
5801
- let o = wr({
6053
+ let o = Hr({
5802
6054
  event: e.e,
5803
6055
  group: t,
5804
6056
  transform: r,
@@ -5815,19 +6067,19 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5815
6067
  let a = this._resolveScalingStartDimensions({
5816
6068
  group: e,
5817
6069
  transform: r
5818
- }), o = br({
6070
+ }), o = Rr({
5819
6071
  transform: r,
5820
6072
  key: "scaleX"
5821
- }), s = br({
6073
+ }), s = Rr({
5822
6074
  transform: r,
5823
6075
  key: "scaleY"
5824
- }), c = br({
6076
+ }), c = Rr({
5825
6077
  transform: r,
5826
6078
  key: "left"
5827
- }), l = br({
6079
+ }), l = Rr({
5828
6080
  transform: r,
5829
6081
  key: "top"
5830
- }), 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 = xr({ value: r?.original?.originX ?? r?.originX }), h = Sr({ value: r?.original?.originY ?? r?.originY }), g = typeof r?.corner == "string" ? r.corner : null, _ = Tr({
6082
+ }), 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 = zr({ value: r?.original?.originX ?? r?.originX }), h = Br({ value: r?.original?.originY ?? r?.originY }), g = typeof r?.corner == "string" ? r.corner : null, _ = Ur({
5831
6083
  group: e,
5832
6084
  originX: m,
5833
6085
  originY: h
@@ -5870,7 +6122,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5870
6122
  return i;
5871
6123
  }
5872
6124
  _resolveMinimumTextFitHeight({ group: t, text: n, width: r, padding: i }) {
5873
- return Zn({
6125
+ return hr({
5874
6126
  text: n,
5875
6127
  width: r,
5876
6128
  height: X,
@@ -5883,7 +6135,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5883
6135
  });
5884
6136
  }
5885
6137
  static _resolveUserPadding({ group: e }) {
5886
- return Se({ padding: {
6138
+ return Ce({ padding: {
5887
6139
  top: e.shapePaddingTop,
5888
6140
  right: e.shapePaddingRight,
5889
6141
  bottom: e.shapePaddingBottom,
@@ -5892,7 +6144,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5892
6144
  }
5893
6145
  static _resolveInternalShapeTextInset({ group: e, width: t, height: n }) {
5894
6146
  let r = e.shapePresetKey ?? "", i = r ? pe({ presetKey: r }) : null;
5895
- return Ee({
6147
+ return De({
5896
6148
  baseInset: i ? ge({
5897
6149
  preset: i,
5898
6150
  width: t,
@@ -5924,7 +6176,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5924
6176
  width: u,
5925
6177
  height: d
5926
6178
  });
5927
- Kn({
6179
+ ur({
5928
6180
  group: t,
5929
6181
  shape: n,
5930
6182
  text: r,
@@ -5953,7 +6205,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5953
6205
  }
5954
6206
  _restoreGroupTransformOnly({ group: e, shape: t, text: n, state: r }) {
5955
6207
  let i = Math.max(X, e.shapeBaseWidth ?? e.width ?? r.startWidth), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? r.startHeight);
5956
- t && (hn({
6208
+ t && (Nn({
5957
6209
  shape: t,
5958
6210
  width: i,
5959
6211
  height: a,
@@ -5977,7 +6229,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5977
6229
  });
5978
6230
  }
5979
6231
  _resolveScalingStartDimensions({ group: e, transform: t }) {
5980
- let { canScaleWidth: n, canScaleHeight: r } = Cr({ transform: t }), i = Math.max(X, e.shapeBaseWidth ?? e.width ?? e.shapeManualBaseWidth ?? X), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? e.shapeManualBaseHeight ?? X);
6232
+ let { canScaleWidth: n, canScaleHeight: r } = Vr({ transform: t }), i = Math.max(X, e.shapeBaseWidth ?? e.width ?? e.shapeManualBaseWidth ?? X), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? e.shapeManualBaseHeight ?? X);
5981
6233
  return {
5982
6234
  startWidth: i,
5983
6235
  startHeight: a,
@@ -5996,20 +6248,20 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5996
6248
  height: s
5997
6249
  };
5998
6250
  }
5999
- }, Pr = class {
6251
+ }, Qr = class {
6000
6252
  constructor({ canvas: e }) {
6001
6253
  this.handleMouseDown = (e) => {
6002
- let { target: t, e: n, subTargets: r = [] } = e, i = Ue({
6254
+ let { target: t, e: n, subTargets: r = [] } = e, i = We({
6003
6255
  target: t,
6004
6256
  subTargets: r
6005
6257
  });
6006
6258
  if (!i) return;
6007
- let { text: a } = Ke({ group: i });
6259
+ let { text: a } = q({ group: i });
6008
6260
  if (!a) return;
6009
6261
  let o = this.canvas.getActiveObject(), s = o === i;
6010
6262
  if (!(o === a && a.isEditing)) {
6011
6263
  if (!s) {
6012
- a.isEditing || ke({ text: a });
6264
+ a.isEditing || Ae({ text: a });
6013
6265
  return;
6014
6266
  }
6015
6267
  n instanceof MouseEvent && (n.detail < 2 || this.enterTextEditing({ group: i }));
@@ -6018,7 +6270,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6018
6270
  let { target: t } = e;
6019
6271
  if (!(t instanceof _)) return;
6020
6272
  let n = t, { group: r } = n;
6021
- q(r) && (this._enterTextEditingInteractionMode({
6273
+ K(r) && (this._enterTextEditingInteractionMode({
6022
6274
  group: r,
6023
6275
  text: n
6024
6276
  }), this.canvas.requestRenderAll());
@@ -6026,17 +6278,17 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6026
6278
  let { target: t } = e;
6027
6279
  if (!(t instanceof _)) return;
6028
6280
  let n = t, { group: r } = n;
6029
- q(r) && (this._restoreTextEditingInteractionMode({
6281
+ K(r) && (this._restoreTextEditingInteractionMode({
6030
6282
  group: r,
6031
6283
  text: n
6032
- }), ke({ text: n }), this.canvas.getActiveObject() === n && this.canvas.setActiveObject(r), this.canvas.requestRenderAll());
6284
+ }), Ae({ text: n }), this.canvas.getActiveObject() === n && this.canvas.setActiveObject(r), this.canvas.requestRenderAll());
6033
6285
  }, this.canvas = e, this.editingInteractionState = /* @__PURE__ */ new WeakMap(), this.editingTargetResolverState = void 0;
6034
6286
  }
6035
6287
  enterTextEditing({ group: e }) {
6036
- let { text: t } = Ke({ group: e });
6288
+ let { text: t } = q({ group: e });
6037
6289
  if (t) {
6038
6290
  if (e.locked || t.locked) {
6039
- ke({ text: t }), this.canvas.requestRenderAll();
6291
+ Ae({ text: t }), this.canvas.requestRenderAll();
6040
6292
  return;
6041
6293
  }
6042
6294
  this._enterTextEditingInteractionMode({
@@ -6096,7 +6348,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6096
6348
  let r = this.canvas, i = r.findTarget.bind(r);
6097
6349
  r.findTarget = (n) => {
6098
6350
  let r = i(n);
6099
- if (this.canvas.getActiveObject() !== t || !t.isEditing || r.target === t || Ue({
6351
+ if (this.canvas.getActiveObject() !== t || !t.isEditing || r.target === t || We({
6100
6352
  target: r.target,
6101
6353
  subTargets: r.subTargets
6102
6354
  }) !== e) return r;
@@ -6120,7 +6372,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6120
6372
  let t = this.canvas;
6121
6373
  t.findTarget = e.findTarget, this.editingTargetResolverState = void 0;
6122
6374
  }
6123
- }, Fr = class e {
6375
+ }, $r = class e {
6124
6376
  constructor({ canvas: e }) {
6125
6377
  this.canvas = e, this.textEditingSnapshots = /* @__PURE__ */ new WeakMap(), this.pendingTextUpdates = /* @__PURE__ */ new WeakMap(), this.resizeStartSnapshots = /* @__PURE__ */ new Map(), this.pendingResizeUpdates = /* @__PURE__ */ new WeakMap();
6126
6378
  }
@@ -6185,7 +6437,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6185
6437
  if (!t) return null;
6186
6438
  this.pendingTextUpdates.delete(e);
6187
6439
  let n = this.fireUpdated({ lifecycle: t }), { group: r } = e;
6188
- return q(r) && this.textEditingSnapshots.has(r) && this.textEditingSnapshots.set(r, n), n;
6440
+ return K(r) && this.textEditingSnapshots.has(r) && this.textEditingSnapshots.set(r, n), n;
6189
6441
  }
6190
6442
  captureResizeStart({ group: t }) {
6191
6443
  this.resizeStartSnapshots.has(t) || this.resizeStartSnapshots.set(t, e.getSnapshot({ group: t }));
@@ -6217,7 +6469,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6217
6469
  }));
6218
6470
  }
6219
6471
  static getSnapshot({ group: t }) {
6220
- let { id: n, shapePresetKey: r, shapeBaseWidth: i, shapeBaseHeight: a, shapeManualBaseWidth: o, shapeManualBaseHeight: s, shapeTextAutoExpand: c, shapeAlignHorizontal: l, shapeAlignVertical: u, shapePaddingTop: d, shapePaddingRight: f, shapePaddingBottom: p, shapePaddingLeft: m, shapeFill: h, shapeStroke: g, shapeStrokeWidth: _, shapeStrokeDashArray: v, shapeOpacity: y, shapeRounding: b, left: x, top: S, originX: C, originY: w, angle: T, flipX: E, flipY: D, scaleX: O, scaleY: k } = t, { text: A } = Ke({ group: t });
6472
+ let { id: n, shapePresetKey: r, shapeBaseWidth: i, shapeBaseHeight: a, shapeManualBaseWidth: o, shapeManualBaseHeight: s, shapeTextAutoExpand: c, shapeAlignHorizontal: l, shapeAlignVertical: u, shapePaddingTop: d, shapePaddingRight: f, shapePaddingBottom: p, shapePaddingLeft: m, shapeFill: h, shapeStroke: g, shapeStrokeWidth: _, shapeStrokeDashArray: v, shapeOpacity: y, shapeRounding: b, left: x, top: S, originX: C, originY: w, angle: T, flipX: E, flipY: D, scaleX: O, scaleY: k } = t, { text: A } = q({ group: t });
6221
6473
  return {
6222
6474
  id: n,
6223
6475
  presetKey: r,
@@ -6316,14 +6568,14 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6316
6568
  }
6317
6569
  }), I;
6318
6570
  }
6319
- }, Ir = "#B4B7BD", Lr = 0, Rr = 1, zr = class {
6571
+ }, ei = "#B4B7BD", ti = 0, ni = 1, ri = class {
6320
6572
  constructor({ editor: e }) {
6321
6573
  this._handleObjectScaling = (e) => {
6322
- let t = e.target && q(e.target) ? e.target : null;
6574
+ let t = e.target && K(e.target) ? e.target : null;
6323
6575
  t && this.lifecycleController.beginResize({ group: t }), this.scalingController.handleObjectScaling(e);
6324
6576
  }, this._handleObjectModified = (e) => {
6325
6577
  this.scalingController.handleObjectModified(e);
6326
- let t = e.target && q(e.target) ? e.target : null;
6578
+ let t = e.target && K(e.target) ? e.target : null;
6327
6579
  t && this.lifecycleController.finishResize({ group: t });
6328
6580
  }, this._handleMouseMove = (e) => {
6329
6581
  this.scalingController.handleCanvasMouseMove(e);
@@ -6340,7 +6592,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6340
6592
  let t = null, { target: n } = e;
6341
6593
  if (n instanceof _) {
6342
6594
  let e = n, { group: r } = e;
6343
- q(r) && (this.editingPlacements.delete(r), t = {
6595
+ K(r) && (this.editingPlacements.delete(r), t = {
6344
6596
  group: r,
6345
6597
  textNode: e
6346
6598
  });
@@ -6350,19 +6602,19 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6350
6602
  let { target: t } = e;
6351
6603
  if (t instanceof _) {
6352
6604
  let { group: e } = t;
6353
- q(e) && (this._detachShapeGroupAutoLayout({ group: e }), this.lifecycleController.beginTextEditing({ group: e }), this.editingPlacements.set(e, this.editor.canvasManager.getObjectPlacement({ object: e })));
6605
+ K(e) && (this._detachShapeGroupAutoLayout({ group: e }), this.lifecycleController.beginTextEditing({ group: e }), this.editingPlacements.set(e, this.editor.canvasManager.getObjectPlacement({ object: e })));
6354
6606
  }
6355
6607
  this.editingController.handleTextEditingEntered(e);
6356
6608
  }, this._handleTextChanged = (e) => {
6357
6609
  let { target: t } = e;
6358
6610
  if (!(t instanceof _)) return;
6359
6611
  let n = t, { group: r } = n;
6360
- q(r) && this._syncShapeTextLayoutAfterTextMutation({ textNode: n }) && this.editor.canvas.requestRenderAll();
6612
+ K(r) && this._syncShapeTextLayoutAfterTextMutation({ textNode: n }) && this.editor.canvas.requestRenderAll();
6361
6613
  }, this._handleBeforeTextUpdated = (e) => {
6362
6614
  let { textbox: t, style: n } = e;
6363
6615
  if (!(t instanceof _)) return;
6364
6616
  let r = t, { group: i } = r;
6365
- if (!q(i) || this.internalTextUpdates.has(r)) return;
6617
+ if (!K(i) || this.internalTextUpdates.has(r)) return;
6366
6618
  let a = this.lifecycleController.beginTextUpdate({
6367
6619
  group: i,
6368
6620
  textNode: r,
@@ -6381,7 +6633,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6381
6633
  if (!(t instanceof _)) return;
6382
6634
  let n = t;
6383
6635
  this.lifecycleController.finishTextUpdate({ textNode: n });
6384
- }, this.editor = e, He(), this.scalingController = new Nr({ canvas: e.canvas }), this.editingController = new Pr({ canvas: e.canvas }), this.editingPlacements = /* @__PURE__ */ new WeakMap(), this.lifecycleController = new Fr({ canvas: e.canvas }), this.internalTextUpdates = /* @__PURE__ */ new WeakSet(), this._bindEvents();
6636
+ }, this.editor = e, Ue(), this.scalingController = new Zr({ canvas: e.canvas }), this.editingController = new Qr({ canvas: e.canvas }), this.editingPlacements = /* @__PURE__ */ new WeakMap(), this.lifecycleController = new $r({ canvas: e.canvas }), this.internalTextUpdates = /* @__PURE__ */ new WeakSet(), this._bindEvents();
6385
6637
  }
6386
6638
  async add({ presetKey: e = ce, options: t = {} } = {}) {
6387
6639
  let n = pe({ presetKey: e });
@@ -6439,7 +6691,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6439
6691
  }), E = l ?? "middle", O = this._resolveShapeStyle({
6440
6692
  options: t,
6441
6693
  fallback: null
6442
- }), k = Se({ padding: u }), A = ({ width: e, height: t }) => Ee({
6694
+ }), k = Ce({ padding: u }), A = ({ width: e, height: t }) => De({
6443
6695
  baseInset: ge({
6444
6696
  preset: m,
6445
6697
  width: e,
@@ -6447,7 +6699,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6447
6699
  }),
6448
6700
  stroke: O.stroke,
6449
6701
  strokeWidth: O.strokeWidth
6450
- }), j = Ee({
6702
+ }), j = De({
6451
6703
  baseInset: ge({
6452
6704
  preset: m,
6453
6705
  width: b,
@@ -6455,10 +6707,10 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6455
6707
  }),
6456
6708
  stroke: O.stroke,
6457
6709
  strokeWidth: O.strokeWidth
6458
- }), M = Te({
6710
+ }), M = Ee({
6459
6711
  base: j,
6460
6712
  addition: k
6461
- }), N = De({ padding: u }), P = this._createTextNode({
6713
+ }), N = Oe({ padding: u }), P = this._createTextNode({
6462
6714
  text: o,
6463
6715
  textStyle: s,
6464
6716
  width: b,
@@ -6471,7 +6723,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6471
6723
  manualWidth: b,
6472
6724
  shapeTextAutoExpandEnabled: w,
6473
6725
  padding: M,
6474
- resolvePaddingForWidth: ({ width: e }) => Te({
6726
+ resolvePaddingForWidth: ({ width: e }) => Ee({
6475
6727
  base: A({
6476
6728
  width: e,
6477
6729
  height: x
@@ -6479,7 +6731,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6479
6731
  addition: k
6480
6732
  })
6481
6733
  }));
6482
- let I = await On({
6734
+ let I = await Kn({
6483
6735
  preset: m,
6484
6736
  width: F,
6485
6737
  height: x,
@@ -6535,13 +6787,13 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6535
6787
  }) : {
6536
6788
  width: Math.max(1, d ?? w.width),
6537
6789
  height: Math.max(1, f ?? w.height)
6538
- }, re = _ ?? r.shapeAlignHorizontal ?? "center", R = v ?? r.shapeAlignVertical ?? "middle", ie = this._resolveGroupUserPadding({ group: r }), z = De({ padding: y }), V = we({
6790
+ }, re = _ ?? r.shapeAlignHorizontal ?? "center", R = v ?? r.shapeAlignVertical ?? "middle", ie = this._resolveGroupUserPadding({ group: r }), z = Oe({ padding: y }), V = Te({
6539
6791
  base: ie,
6540
6792
  override: y
6541
6793
  }), H = this._resolveShapeStyle({
6542
6794
  options: n,
6543
6795
  fallback: r
6544
- }), U = ({ width: e, height: t }) => Ee({
6796
+ }), U = ({ width: e, height: t }) => De({
6545
6797
  baseInset: ge({
6546
6798
  preset: A,
6547
6799
  width: e,
@@ -6549,16 +6801,16 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6549
6801
  }),
6550
6802
  stroke: H.stroke,
6551
6803
  strokeWidth: H.strokeWidth
6552
- }), ae = Te({
6804
+ }), ae = Ee({
6553
6805
  base: U({
6554
6806
  width: L,
6555
6807
  height: ne
6556
6808
  }),
6557
6809
  addition: V
6558
- }), oe = T.width, W = T.height;
6559
- I && (oe = L, W = ne), !I && d !== void 0 && (oe = Math.max(1, d)), !I && f !== void 0 && (W = Math.max(1, f)), !I && d === void 0 && D && !O && (oe = w.width);
6560
- let { shape: se, text: G } = Ke({ group: r });
6561
- if (!se || !G) return null;
6810
+ }), W = T.width, G = T.height;
6811
+ I && (W = L, G = ne), !I && d !== void 0 && (W = Math.max(1, d)), !I && f !== void 0 && (G = Math.max(1, f)), !I && d === void 0 && D && !O && (W = w.width);
6812
+ let { shape: oe, text: se } = q({ group: r });
6813
+ if (!oe || !se) return null;
6562
6814
  let ce = this.lifecycleController.createContext({
6563
6815
  group: r,
6564
6816
  source: "update",
@@ -6579,10 +6831,10 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6579
6831
  top: 0,
6580
6832
  originX: "left",
6581
6833
  originY: "top"
6582
- }, ue = G, de = this._createTextNode({
6583
- text: ue.textCaseRaw ?? G.text ?? "",
6584
- textStyle: this._resolveCurrentTextStyle({ textNode: G }),
6585
- width: Math.max(1, G.width ?? w.width),
6834
+ }, ue = se, de = this._createTextNode({
6835
+ text: ue.textCaseRaw ?? se.text ?? "",
6836
+ textStyle: this._resolveCurrentTextStyle({ textNode: se }),
6837
+ width: Math.max(1, se.width ?? w.width),
6586
6838
  align: re
6587
6839
  });
6588
6840
  de.set(le), this._applyTextUpdates({
@@ -6595,10 +6847,10 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6595
6847
  fe ? (_e = w.width, ye = w.height) : ee || (_e = this._resolveShapeLayoutWidth({
6596
6848
  text: de,
6597
6849
  currentWidth: L,
6598
- manualWidth: oe,
6850
+ manualWidth: W,
6599
6851
  shapeTextAutoExpandEnabled: O,
6600
6852
  padding: ae,
6601
- resolvePaddingForWidth: ({ width: e }) => Te({
6853
+ resolvePaddingForWidth: ({ width: e }) => Ee({
6602
6854
  base: U({
6603
6855
  width: e,
6604
6856
  height: ne
@@ -6609,28 +6861,28 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6609
6861
  let be = U({
6610
6862
  width: _e,
6611
6863
  height: ye
6612
- }), xe = await On({
6864
+ }), xe = await Kn({
6613
6865
  preset: A,
6614
6866
  width: _e,
6615
6867
  height: ye,
6616
6868
  style: H,
6617
6869
  rounding: M
6618
- }), K = r.getObjects().indexOf(se);
6619
- if (K < 0) return null;
6620
- let Se = () => {
6621
- this._detachShapeGroupAutoLayout({ group: r }), G.set(le), this._applyTextUpdates({
6622
- textNode: G,
6870
+ }), Se = r.getObjects().indexOf(oe);
6871
+ if (Se < 0) return null;
6872
+ let Ce = () => {
6873
+ this._detachShapeGroupAutoLayout({ group: r }), se.set(le), this._applyTextUpdates({
6874
+ textNode: se,
6623
6875
  text: h,
6624
6876
  textStyle: g,
6625
6877
  align: re
6626
- }), r.remove(se), r.insertAt(K, xe), this._applyShapeGroupMetadata({
6878
+ }), r.remove(oe), r.insertAt(Se, xe), this._applyShapeGroupMetadata({
6627
6879
  group: r,
6628
6880
  presetKey: A.key,
6629
6881
  presetCanRound: j,
6630
6882
  width: _e,
6631
6883
  height: ye,
6632
- manualWidth: oe,
6633
- manualHeight: W,
6884
+ manualWidth: W,
6885
+ manualHeight: G,
6634
6886
  replaceBoxWidth: te?.width,
6635
6887
  replaceBoxHeight: te?.height,
6636
6888
  shapeTextAutoExpand: O,
@@ -6642,7 +6894,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6642
6894
  }), this._applyCurrentLayout({
6643
6895
  group: r,
6644
6896
  shape: xe,
6645
- text: G,
6897
+ text: se,
6646
6898
  placement: C,
6647
6899
  width: _e,
6648
6900
  height: ye,
@@ -6654,12 +6906,12 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6654
6906
  minimumReplaceBox: te ?? void 0,
6655
6907
  expandShapeHeightToFitText: !he,
6656
6908
  changedPadding: z
6657
- }), ee && (r.shapeManualBaseWidth = Math.max(1, r.shapeBaseWidth ?? _e), r.shapeManualBaseHeight = Math.max(1, r.shapeBaseHeight ?? ye)), G.isEditing && this.editingPlacements.set(r, C);
6909
+ }), ee && (r.shapeManualBaseWidth = Math.max(1, r.shapeBaseWidth ?? _e), r.shapeManualBaseHeight = Math.max(1, r.shapeBaseHeight ?? ye)), se.isEditing && this.editingPlacements.set(r, C);
6658
6910
  };
6659
- if (!this._isOnCanvas({ object: r })) return Se(), this.lifecycleController.fireBefore({ lifecycle: ce }), this.lifecycleController.fireUpdated({ lifecycle: ce }), r;
6911
+ if (!this._isOnCanvas({ object: r })) return Ce(), this.lifecycleController.fireBefore({ lifecycle: ce }), this.lifecycleController.fireUpdated({ lifecycle: ce }), r;
6660
6912
  this._beginMutation();
6661
6913
  try {
6662
- Se(), !G.isEditing && !x && this.editor.canvas.setActiveObject(r), this.lifecycleController.fireBefore({ lifecycle: ce }), this.editor.canvas.requestRenderAll();
6914
+ Ce(), !se.isEditing && !x && this.editor.canvas.setActiveObject(r), this.lifecycleController.fireBefore({ lifecycle: ce }), this.editor.canvas.requestRenderAll();
6663
6915
  } finally {
6664
6916
  this._endMutation({ withoutSave: S });
6665
6917
  }
@@ -6699,7 +6951,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6699
6951
  setFill({ target: e, fill: t, withoutSave: n }) {
6700
6952
  let r = this._resolveShapeGroup({ target: e });
6701
6953
  if (!r) return null;
6702
- let { shape: i } = Ke({ group: r });
6954
+ let { shape: i } = q({ group: r });
6703
6955
  if (!i) return null;
6704
6956
  let a = this.lifecycleController.createContext({
6705
6957
  group: r,
@@ -6709,7 +6961,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6709
6961
  });
6710
6962
  this._beginMutation();
6711
6963
  try {
6712
- gn({
6964
+ Pn({
6713
6965
  shape: i,
6714
6966
  style: { fill: t }
6715
6967
  }), r.shapeFill = t, r.setCoords(), this.lifecycleController.fireBefore({ lifecycle: a }), this.editor.canvas.requestRenderAll();
@@ -6721,7 +6973,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6721
6973
  setStroke({ target: e, stroke: t, strokeWidth: n, dash: r, withoutSave: i }) {
6722
6974
  let a = this._resolveShapeGroup({ target: e });
6723
6975
  if (!a) return null;
6724
- let { shape: o, text: s } = Ke({ group: a });
6976
+ let { shape: o, text: s } = q({ group: a });
6725
6977
  if (!o) return null;
6726
6978
  let c = this.lifecycleController.createContext({
6727
6979
  group: a,
@@ -6731,7 +6983,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6731
6983
  });
6732
6984
  this._beginMutation();
6733
6985
  try {
6734
- if (gn({
6986
+ if (Pn({
6735
6987
  shape: o,
6736
6988
  style: {
6737
6989
  stroke: t,
@@ -6757,7 +7009,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6757
7009
  setOpacity({ target: e, opacity: t, applyToText: n = !0, withoutSave: r }) {
6758
7010
  let i = this._resolveShapeGroup({ target: e });
6759
7011
  if (!i) return null;
6760
- let { shape: a, text: o } = Ke({ group: i });
7012
+ let { shape: a, text: o } = q({ group: i });
6761
7013
  if (!a) return null;
6762
7014
  let s = this.lifecycleController.createContext({
6763
7015
  group: i,
@@ -6767,7 +7019,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6767
7019
  });
6768
7020
  this._beginMutation();
6769
7021
  try {
6770
- gn({
7022
+ Pn({
6771
7023
  shape: a,
6772
7024
  style: { opacity: t }
6773
7025
  }), n && o && (o.set({ opacity: t }), o.setCoords()), i.shapeOpacity = t, i.setCoords(), this.lifecycleController.fireBefore({ lifecycle: s }), this.editor.canvas.requestRenderAll();
@@ -6779,13 +7031,13 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6779
7031
  getTextNode({ target: e } = {}) {
6780
7032
  let t = this._resolveShapeGroup({ target: e });
6781
7033
  if (!t) return null;
6782
- let { text: n } = Ke({ group: t });
7034
+ let { text: n } = q({ group: t });
6783
7035
  return n || null;
6784
7036
  }
6785
7037
  updateTextStyle({ target: e, style: t = {}, withoutSave: n } = {}) {
6786
7038
  let r = this._resolveShapeGroup({ target: e });
6787
7039
  if (!r) return null;
6788
- let { shape: i, text: a } = Ke({ group: r });
7040
+ let { shape: i, text: a } = q({ group: r });
6789
7041
  if (!i || !a) return null;
6790
7042
  if (!(Object.keys(t).length > 0)) return r;
6791
7043
  let o = this._resolveManualDimensions({ group: r }), s = this.editor.canvasManager.getObjectPlacement({ object: r }), c = this._resolveShapeTextHorizontalAlign({
@@ -6819,7 +7071,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6819
7071
  setTextAlign({ target: e, horizontal: t, vertical: n, withoutSave: r }) {
6820
7072
  let i = this._resolveShapeGroup({ target: e });
6821
7073
  if (!i) return null;
6822
- let { shape: a, text: o } = Ke({ group: i });
7074
+ let { shape: a, text: o } = q({ group: i });
6823
7075
  if (!a || !o) return null;
6824
7076
  let s = this._resolveCurrentDimensions({ group: i }), c = t ?? i.shapeAlignHorizontal ?? "center", l = n ?? i.shapeAlignVertical ?? "middle", u = this.lifecycleController.createContext({
6825
7077
  group: i,
@@ -6864,7 +7116,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6864
7116
  commitRehydratedShapeLayout({ target: e, textScale: t = 1 }) {
6865
7117
  let n = this._resolveShapeGroup({ target: e });
6866
7118
  if (!n) return !1;
6867
- let { shape: r, text: i } = Ke({ group: n });
7119
+ let { shape: r, text: i } = q({ group: n });
6868
7120
  if (!r || !i) return !1;
6869
7121
  let a = this.editor.canvasManager.getObjectPlacement({ object: n }), { shapeAlignHorizontal: o = le, shapeAlignVertical: s = ue, shapeBaseWidth: c, shapeBaseHeight: l, shapeManualBaseWidth: u, shapeManualBaseHeight: d, shapeReplaceBoxWidth: f, shapeReplaceBoxHeight: p, shapePaddingTop: m = 0, shapePaddingRight: h = 0, shapePaddingBottom: g = 0, shapePaddingLeft: _ = 0, width: v, height: y } = n, b = Math.abs(n.scaleX ?? 1) || 1, x = Math.abs(n.scaleY ?? 1) || 1, S = Number.isFinite(t) && t > 0 ? t : 1, C = Math.max(1, c ?? v ?? 1), w = Math.max(1, l ?? y ?? 1), T = {
6870
7122
  width: Math.max(1, C * b),
@@ -6876,9 +7128,9 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6876
7128
  width: Math.max(1, (f ?? C) * b),
6877
7129
  height: Math.max(1, (p ?? w) * x)
6878
7130
  };
6879
- return Math.abs(S - 1) > 1e-4 && (ln({
7131
+ return Math.abs(S - 1) > 1e-4 && (Dn({
6880
7132
  textbox: i,
6881
- base: sn({ textbox: i }),
7133
+ base: Tn({ textbox: i }),
6882
7134
  scale: S
6883
7135
  }), n.shapePaddingTop = Math.max(0, m * S), n.shapePaddingRight = Math.max(0, h * S), n.shapePaddingBottom = Math.max(0, g * S), n.shapePaddingLeft = Math.max(0, _ * S)), this._detachShapeGroupAutoLayout({ group: n }), n.shapeManualBaseWidth = E.width, n.shapeManualBaseHeight = E.height, this._applyCurrentLayout({
6884
7136
  group: n,
@@ -6901,7 +7153,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6901
7153
  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("mouse:up", this._handleMouseUp), 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), e.on("editor:text-updated", this._handleTextUpdated);
6902
7154
  }
6903
7155
  _createShapeGroup({ id: e, presetKey: t, presetCanRound: n, shape: r, text: i, width: a, height: o, manualWidth: s, manualHeight: c, replaceBoxWidth: l, replaceBoxHeight: u, preserveAspectRatio: d, shapeTextAutoExpand: f, alignH: p, alignV: m, padding: h, internalShapeTextInset: g, resolveInternalShapeTextInset: _, changedPadding: v, style: y, rounding: b }) {
6904
- let x = new Ve([r, i], {
7156
+ let x = new He([r, i], {
6905
7157
  originX: "center",
6906
7158
  originY: "center",
6907
7159
  left: 0,
@@ -6924,7 +7176,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6924
7176
  padding: h,
6925
7177
  style: y,
6926
7178
  rounding: b
6927
- }), x.rehydrateRuntimeState(), qe({ group: x }), ke({ text: i }), Kn({
7179
+ }), x.rehydrateRuntimeState(), qe({ group: x }), Ae({ text: i }), ur({
6928
7180
  group: x,
6929
7181
  shape: r,
6930
7182
  text: i,
@@ -6989,7 +7241,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6989
7241
  return s.set({
6990
7242
  shapeNodeType: "text",
6991
7243
  splitByGrapheme: !1
6992
- }), ke({ text: s }), s;
7244
+ }), Ae({ text: s }), s;
6993
7245
  }
6994
7246
  _applyTextUpdates({ textNode: e, text: t, textStyle: n, align: r }) {
6995
7247
  let i = {};
@@ -7069,7 +7321,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7069
7321
  };
7070
7322
  }
7071
7323
  _resolveGroupUserPadding({ group: e }) {
7072
- return Se({ padding: {
7324
+ return Ce({ padding: {
7073
7325
  top: e.shapePaddingTop,
7074
7326
  right: e.shapePaddingRight,
7075
7327
  bottom: e.shapePaddingBottom,
@@ -7078,7 +7330,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7078
7330
  }
7079
7331
  _resolveGroupInternalShapeTextInset({ group: e, width: t, height: n }) {
7080
7332
  let r = pe({ presetKey: e.shapePresetKey ?? "circle" });
7081
- return Ee({
7333
+ return De({
7082
7334
  baseInset: r ? ge({
7083
7335
  preset: r,
7084
7336
  width: t,
@@ -7099,7 +7351,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7099
7351
  }
7100
7352
  _resolveAutoExpandShapeWidth({ text: e, currentWidth: t, minimumWidth: n, padding: r, resolvePaddingForWidth: i }) {
7101
7353
  let a = this._resolveMontageAreaWidth();
7102
- return a ? Jn({
7354
+ return a ? fr({
7103
7355
  text: e,
7104
7356
  currentWidth: t,
7105
7357
  minimumWidth: n,
@@ -7135,14 +7387,14 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7135
7387
  currentWidth: m.width,
7136
7388
  manualWidth: h.width,
7137
7389
  shapeTextAutoExpandEnabled: _,
7138
- padding: Te({
7390
+ padding: Ee({
7139
7391
  base: v({
7140
7392
  width: y,
7141
7393
  height: e
7142
7394
  }),
7143
7395
  addition: g
7144
7396
  }),
7145
- resolvePaddingForWidth: ({ width: t }) => Te({
7397
+ resolvePaddingForWidth: ({ width: t }) => Ee({
7146
7398
  base: v({
7147
7399
  width: t,
7148
7400
  height: e
@@ -7155,7 +7407,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7155
7407
  width: y,
7156
7408
  height: b
7157
7409
  }), S = r ?? this.editor.canvasManager.getObjectPlacement({ object: e }), C = u ? this._resolveMontageAreaWidth() : void 0;
7158
- Kn({
7410
+ ur({
7159
7411
  group: e,
7160
7412
  shape: t,
7161
7413
  text: n,
@@ -7178,8 +7430,8 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7178
7430
  }
7179
7431
  _syncShapeTextLayoutAfterTextMutation({ textNode: e, textStyle: t }) {
7180
7432
  let { group: n } = e;
7181
- if (!q(n)) return !1;
7182
- let { shape: r, text: i } = Ke({ group: n });
7433
+ if (!K(n)) return !1;
7434
+ let { shape: r, text: i } = q({ group: n });
7183
7435
  if (!r || !i) return !1;
7184
7436
  this._detachShapeGroupAutoLayout({ group: n });
7185
7437
  let a = this._resolveEditingPlacement({ group: n }), o = this._resolveManualDimensions({ group: n }), s = this._resolveShapeTextHorizontalAlign({
@@ -7199,7 +7451,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7199
7451
  return this.editingPlacements.get(e) || this.editor.canvasManager.getObjectPlacement({ object: e });
7200
7452
  }
7201
7453
  _detachShapeGroupAutoLayout({ group: e }) {
7202
- Ae({ group: e });
7454
+ je({ group: e });
7203
7455
  }
7204
7456
  _resolveHorizontalAlign({ explicitAlign: e, textStyle: t }) {
7205
7457
  if (e) return e;
@@ -7218,11 +7470,11 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7218
7470
  _resolveShapeStyle({ options: e, fallback: t }) {
7219
7471
  let { fill: n, stroke: r, strokeWidth: i, strokeDashArray: a, opacity: o } = e, s = a === void 0 ? t?.shapeStrokeDashArray : a;
7220
7472
  return {
7221
- fill: n ?? t?.shapeFill ?? Ir,
7473
+ fill: n ?? t?.shapeFill ?? ei,
7222
7474
  stroke: r ?? t?.shapeStroke ?? null,
7223
- strokeWidth: i ?? t?.shapeStrokeWidth ?? Lr,
7475
+ strokeWidth: i ?? t?.shapeStrokeWidth ?? ti,
7224
7476
  strokeDashArray: s ?? null,
7225
- opacity: o ?? t?.shapeOpacity ?? Rr
7477
+ opacity: o ?? t?.shapeOpacity ?? ni
7226
7478
  };
7227
7479
  }
7228
7480
  _collectShapeGroupsFromTarget({ target: t, subTargets: n = [] }) {
@@ -7234,12 +7486,12 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7234
7486
  });
7235
7487
  return;
7236
7488
  }
7237
- if (q(t)) {
7489
+ if (K(t)) {
7238
7490
  r.includes(t) || r.push(t);
7239
7491
  return;
7240
7492
  }
7241
7493
  let { group: n } = t;
7242
- !n || !q(n) || r.includes(n) || r.push(n);
7494
+ !n || !K(n) || r.includes(n) || r.push(n);
7243
7495
  };
7244
7496
  return i(t), n.forEach((e) => {
7245
7497
  i(e);
@@ -7257,28 +7509,28 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7257
7509
  return !1;
7258
7510
  }
7259
7511
  _resolveShapeGroup({ target: e }) {
7260
- if (e instanceof l && q(e)) return e;
7512
+ if (e instanceof l && K(e)) return e;
7261
7513
  if (!e) {
7262
7514
  let e = this.editor.canvas.getActiveObject();
7263
- if (q(e)) return e;
7515
+ if (K(e)) return e;
7264
7516
  let t = e?.group;
7265
- return t && q(t) ? t : null;
7517
+ return t && K(t) ? t : null;
7266
7518
  }
7267
7519
  if (typeof e == "string") {
7268
7520
  let t = this.editor.canvas.getObjects();
7269
7521
  for (let n = 0; n < t.length; n += 1) {
7270
7522
  let r = t[n];
7271
- if (r.id === e && q(r)) return r;
7523
+ if (r.id === e && K(r)) return r;
7272
7524
  }
7273
7525
  }
7274
7526
  if (e instanceof o) {
7275
- if (q(e)) return e;
7527
+ if (K(e)) return e;
7276
7528
  let { group: t } = e;
7277
- if (t && q(t)) return t;
7529
+ if (t && K(t)) return t;
7278
7530
  }
7279
7531
  return null;
7280
7532
  }
7281
- }, Br = class {
7533
+ }, ii = class {
7282
7534
  constructor({ editor: e }) {
7283
7535
  this.editor = e, this.clipboard = null;
7284
7536
  }
@@ -7528,12 +7780,12 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7528
7780
  }), !1;
7529
7781
  }
7530
7782
  }
7531
- }, Vr = class t {
7783
+ }, ai = class t {
7532
7784
  constructor({ editor: e }) {
7533
7785
  this.editor = e;
7534
7786
  }
7535
7787
  lockObject({ object: e, skipInnerObjects: n, withoutSave: r } = {}) {
7536
- let { canvas: i, historyManager: a } = this.editor, o = e || i.getActiveObject(), s = Ue({ target: o }) ?? o;
7788
+ let { canvas: i, historyManager: a } = this.editor, o = e || i.getActiveObject(), s = We({ target: o }) ?? o;
7537
7789
  if (!s || s.locked) return;
7538
7790
  let c = {
7539
7791
  lockMovementX: !0,
@@ -7555,7 +7807,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7555
7807
  });
7556
7808
  }
7557
7809
  unlockObject({ object: e, withoutSave: n } = {}) {
7558
- let { canvas: r, historyManager: i } = this.editor, a = e || r.getActiveObject(), o = Ue({ target: a }) ?? a;
7810
+ let { canvas: r, historyManager: i } = this.editor, a = e || r.getActiveObject(), o = We({ target: a }) ?? a;
7559
7811
  if (!o) return;
7560
7812
  let s = {
7561
7813
  lockMovementX: !1,
@@ -7593,7 +7845,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7593
7845
  !(n instanceof _) || !n.isEditing || n.exitEditing();
7594
7846
  }
7595
7847
  }
7596
- }, Hr = class {
7848
+ }, oi = class {
7597
7849
  constructor({ editor: e }) {
7598
7850
  this.editor = e;
7599
7851
  }
@@ -7659,7 +7911,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7659
7911
  i.resumeHistory(), n || i.saveState();
7660
7912
  }
7661
7913
  }
7662
- }, Ur = class t {
7914
+ }, si = class t {
7663
7915
  constructor({ editor: e }) {
7664
7916
  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();
7665
7917
  }
@@ -7853,7 +8105,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7853
8105
  let { options: e } = this.editor, { selectionKey: t } = e;
7854
8106
  return t === void 0 ? ["ctrlKey", "metaKey"] : t;
7855
8107
  }
7856
- }, Wr = class e {
8108
+ }, ci = class e {
7857
8109
  constructor({ editor: e }) {
7858
8110
  this.editor = e;
7859
8111
  }
@@ -7893,7 +8145,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7893
8145
  };
7894
8146
  return i.fire("editor:objects-deleted", l), l;
7895
8147
  }
7896
- }, Gr = {
8148
+ }, li = {
7897
8149
  IMAGE_MANAGER: {
7898
8150
  INVALID_CONTENT_TYPE: "INVALID_CONTENT_TYPE",
7899
8151
  INVALID_SOURCE_TYPE: "INVALID_SOURCE_TYPE",
@@ -7931,7 +8183,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7931
8183
  INVALID_TARGET: "TEMPLATE_INVALID_TARGET",
7932
8184
  APPLY_FAILED: "TEMPLATE_APPLY_FAILED"
7933
8185
  }
7934
- }, Kr = class e {
8186
+ }, ui = class e {
7935
8187
  constructor({ editor: e }) {
7936
8188
  this._buffer = [], this.editor = e;
7937
8189
  }
@@ -7989,9 +8241,9 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7989
8241
  }), this.editor.canvas.fire("editor:warning", s);
7990
8242
  }
7991
8243
  static isValidErrorCode(e) {
7992
- return e ? Object.values(Gr).some((t) => Object.values(t).includes(e)) : !1;
8244
+ return e ? Object.values(li).some((t) => Object.values(t).includes(e)) : !1;
7993
8245
  }
7994
- }, qr = class {
8246
+ }, di = class {
7995
8247
  constructor({ editor: e }) {
7996
8248
  this.currentBounds = null, this.editor = e;
7997
8249
  }
@@ -8040,32 +8292,32 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8040
8292
  updateBounds() {
8041
8293
  this.currentBounds = this.calculatePanBounds();
8042
8294
  }
8043
- }, Jr = ({ textbox: e }) => {
8295
+ }, fi = ({ textbox: e }) => {
8044
8296
  if (!e.isEditing) return null;
8045
8297
  let t = e.selectionStart ?? 0, n = e.selectionEnd ?? t;
8046
8298
  return t === n ? null : {
8047
8299
  start: Math.min(t, n),
8048
8300
  end: Math.max(t, n)
8049
8301
  };
8050
- }, Yr = ({ textbox: e }) => {
8302
+ }, pi = ({ textbox: e }) => {
8051
8303
  let t = e.text?.length ?? 0;
8052
8304
  return t <= 0 ? null : {
8053
8305
  start: 0,
8054
8306
  end: t
8055
8307
  };
8056
- }, Xr = ({ textbox: e, range: t }) => {
8308
+ }, mi = ({ textbox: e, range: t }) => {
8057
8309
  if (!t) return !1;
8058
8310
  let n = e.text?.length ?? 0;
8059
8311
  return n <= 0 ? !1 : t.start <= 0 && t.end >= n;
8060
- }, Zr = ({ textbox: e, styles: t, range: n }) => {
8312
+ }, hi = ({ textbox: e, styles: t, range: n }) => {
8061
8313
  if (!t || !Object.keys(t).length) return !1;
8062
8314
  let { start: r, end: i } = n;
8063
8315
  return i <= r ? !1 : (e.setSelectionStyles(t, r, i), !0);
8064
- }, Qr = ({ textbox: e, range: t, property: n }) => {
8316
+ }, gi = ({ textbox: e, range: t, property: n }) => {
8065
8317
  if (!t) return;
8066
8318
  let r = e.getSelectionStyles(t.start, t.end, !0);
8067
8319
  if (r.length) return r[0]?.[n];
8068
- }, $r = ({ strokeColor: e, width: t }) => t <= 0 ? null : e ?? "#000000", ei = ({ width: e = 0 }) => e ? Math.max(0, e) : 0, ti = ({ value: e }) => typeof e == "string" ? e.toLocaleUpperCase() : "", ni = ({ value: e, min: t, max: n }) => Math.min(Math.max(e, t), n), ri = class e extends _ {
8320
+ }, _i = ({ strokeColor: e, width: t }) => t <= 0 ? null : e ?? "#000000", vi = ({ width: e = 0 }) => e ? Math.max(0, e) : 0, yi = ({ value: e }) => typeof e == "string" ? e.toLocaleUpperCase() : "", bi = ({ value: e, min: t, max: n }) => Math.min(Math.max(e, t), n), xi = class e extends _ {
8069
8321
  static {
8070
8322
  this.type = "background-textbox";
8071
8323
  }
@@ -8199,7 +8451,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8199
8451
  this._removeShadow(e);
8200
8452
  }
8201
8453
  _getDecorationColorAt(e, t) {
8202
- let n = this.getValueOfPropertyAt(e, t, "strokeWidth"), r = ei({ width: typeof n == "number" && Number.isFinite(n) ? n : 0 }), i = this.getValueOfPropertyAt(e, t, "stroke"), a = i == null ? null : $r({
8454
+ let n = this.getValueOfPropertyAt(e, t, "strokeWidth"), r = vi({ width: typeof n == "number" && Number.isFinite(n) ? n : 0 }), i = this.getValueOfPropertyAt(e, t, "stroke"), a = i == null ? null : _i({
8203
8455
  strokeColor: i,
8204
8456
  width: r
8205
8457
  });
@@ -8215,22 +8467,22 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8215
8467
  _getCornerRadii({ width: e, height: t }) {
8216
8468
  let n = e / 2, r = t / 2, i = Math.min(n, r);
8217
8469
  return {
8218
- bottomLeft: ni({
8470
+ bottomLeft: bi({
8219
8471
  value: this.radiusBottomLeft ?? 0,
8220
8472
  min: 0,
8221
8473
  max: i
8222
8474
  }),
8223
- bottomRight: ni({
8475
+ bottomRight: bi({
8224
8476
  value: this.radiusBottomRight ?? 0,
8225
8477
  min: 0,
8226
8478
  max: i
8227
8479
  }),
8228
- topLeft: ni({
8480
+ topLeft: bi({
8229
8481
  value: this.radiusTopLeft ?? 0,
8230
8482
  min: 0,
8231
8483
  max: i
8232
8484
  }),
8233
- topRight: ni({
8485
+ topRight: bi({
8234
8486
  value: this.radiusTopRight ?? 0,
8235
8487
  min: 0,
8236
8488
  max: i
@@ -8248,7 +8500,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8248
8500
  _getEffectiveBackgroundFill() {
8249
8501
  let e = this.backgroundColor;
8250
8502
  if (!e) return null;
8251
- let t = ni({
8503
+ let t = bi({
8252
8504
  value: this.backgroundOpacity ?? 1,
8253
8505
  min: 0,
8254
8506
  max: 1
@@ -8256,7 +8508,7 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8256
8508
  try {
8257
8509
  r = new n(e);
8258
8510
  } catch (t) {
8259
- return Kr.emitError({
8511
+ return ui.emitError({
8260
8512
  origin: "BackgroundTextbox",
8261
8513
  method: "_getEffectiveBackgroundFill",
8262
8514
  code: "INVALID_COLOR_VALUE",
@@ -8270,19 +8522,19 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8270
8522
  return r.setAlpha(t), r.toRgba();
8271
8523
  }
8272
8524
  static _renderRoundedRect({ ctx: e, height: t, left: n, radii: r, top: i, width: a }) {
8273
- let o = n + a, s = i + t, { topLeft: c, topRight: l, bottomRight: u, bottomLeft: d } = r, f = ni({
8525
+ let o = n + a, s = i + t, { topLeft: c, topRight: l, bottomRight: u, bottomLeft: d } = r, f = bi({
8274
8526
  value: c,
8275
8527
  min: 0,
8276
8528
  max: a
8277
- }), p = ni({
8529
+ }), p = bi({
8278
8530
  value: l,
8279
8531
  min: 0,
8280
8532
  max: a
8281
- }), m = ni({
8533
+ }), m = bi({
8282
8534
  value: u,
8283
8535
  min: 0,
8284
8536
  max: a
8285
- }), h = ni({
8537
+ }), h = bi({
8286
8538
  value: d,
8287
8539
  min: 0,
8288
8540
  max: a
@@ -8293,20 +8545,20 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8293
8545
  let { width: e = 0, height: t = 0 } = this, n = Math.round(e), r = Math.round(t);
8294
8546
  n !== e && (this.width = Math.max(0, n)), r !== t && (this.height = Math.max(0, r));
8295
8547
  }
8296
- }, ii = () => {
8297
- y?.setClass && y.setClass(ri, "background-textbox");
8298
- }, ai = ({ transform: e }) => {
8548
+ }, Si = () => {
8549
+ y?.setClass && y.setClass(xi, "background-textbox");
8550
+ }, Ci = ({ transform: e }) => {
8299
8551
  let { corner: t = "", action: n = "" } = e;
8300
8552
  return {
8301
8553
  isCornerHandle: t === "tl" || t === "tr" || t === "bl" || t === "br" || n === "scale",
8302
8554
  isHorizontalHandle: t === "ml" || t === "mr" || n === "scaleX",
8303
8555
  isVerticalHandle: t === "mt" || t === "mb" || n === "scaleY"
8304
8556
  };
8305
- }, oi = ({ textbox: e, transform: t, appliedWidth: n }) => {
8557
+ }, wi = ({ textbox: e, transform: t, appliedWidth: n }) => {
8306
8558
  t.scaleX = 1, t.scaleY = 1;
8307
8559
  let { original: r } = t;
8308
8560
  r && (r.scaleX = 1, r.scaleY = 1, r.width = n, r.height = e.height, r.left = e.left, r.top = e.top);
8309
- }, si = ({ textbox: e, transform: t, scenePoint: n }) => {
8561
+ }, Ti = ({ textbox: e, transform: t, scenePoint: n }) => {
8310
8562
  let { x: r, y: i } = e._getTransformedDimensions();
8311
8563
  if (r <= 0 || i <= 0) return null;
8312
8564
  let a = b.getLocalPoint(t, t.originX, t.originY, n.x, n.y), o = t, s = typeof o.signX == "number" && a.x * o.signX <= 0, c = typeof o.signY == "number" && a.y * o.signY <= 0, l = Math.abs(a.x / r), u = Math.abs(a.y / i);
@@ -8316,27 +8568,27 @@ var jr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8316
8568
  stepScaleX: l,
8317
8569
  stepScaleY: u
8318
8570
  };
8319
- }, ci = 1e-4;
8320
- function li(e) {
8571
+ }, Ei = 1e-4;
8572
+ function Di(e) {
8321
8573
  return !!e && e instanceof _;
8322
8574
  }
8323
- function ui(e) {
8324
- if (!li(e)) return !1;
8575
+ function Oi(e) {
8576
+ if (!Di(e)) return !1;
8325
8577
  let t = e.group;
8326
8578
  return e.shapeNodeType === "text" && t?.shapeComposite === !0;
8327
8579
  }
8328
- var di = class {
8580
+ var ki = class {
8329
8581
  constructor({ canvas: t, canvasManager: n, persistScaledTextbox: r }) {
8330
8582
  this.handleMouseMove = (e) => {
8331
8583
  let t = this.canvas._currentTransform;
8332
8584
  if (!t) return;
8333
8585
  let { target: n } = t;
8334
- if (!li(n) || ui(n)) return;
8586
+ if (!Di(n) || Oi(n)) return;
8335
8587
  let r = this.scalingState.get(n);
8336
8588
  if (!r || !e.e) return;
8337
- let { isCornerHandle: i, isHorizontalHandle: a, isVerticalHandle: o } = ai({ transform: t });
8589
+ let { isCornerHandle: i, isHorizontalHandle: a, isVerticalHandle: o } = Ci({ transform: t });
8338
8590
  if (!a && !o && !i) return;
8339
- let s = si({
8591
+ let s = Ti({
8340
8592
  textbox: n,
8341
8593
  transform: t,
8342
8594
  scenePoint: this.canvas.getScenePoint(e.e)
@@ -8359,20 +8611,20 @@ var di = class {
8359
8611
  }, j = r.lastAllowedScaleX, M = r.lastAllowedScaleY;
8360
8612
  if (i) {
8361
8613
  let e = Math.max(r.minimumProportionalScale, r.lastAllowedScaleX * Math.sqrt(u * d)), t = c || l ? r.minimumProportionalScale : e;
8362
- if (Math.abs(t - r.lastAllowedScaleX) <= ci) return;
8614
+ if (Math.abs(t - r.lastAllowedScaleX) <= Ei) return;
8363
8615
  j = t, M = t;
8364
8616
  } else {
8365
8617
  if (a) {
8366
8618
  let e = r.lastAllowedScaleX * u, t = c ? r.minimumWidthScale : Math.max(r.minimumWidthScale, e);
8367
- Math.abs(t - r.lastAllowedScaleX) > ci && (j = t);
8619
+ Math.abs(t - r.lastAllowedScaleX) > Ei && (j = t);
8368
8620
  }
8369
8621
  if (o) {
8370
8622
  let e = r.lastAllowedScaleY * d, t = l ? r.minimumFontScale : Math.max(r.minimumFontScale, e);
8371
- Math.abs(t - r.lastAllowedScaleY) > ci && (M = t);
8623
+ Math.abs(t - r.lastAllowedScaleY) > Ei && (M = t);
8372
8624
  }
8373
- if (Math.abs(j - r.lastAllowedScaleX) <= ci && Math.abs(M - r.lastAllowedScaleY) <= ci) return;
8625
+ if (Math.abs(j - r.lastAllowedScaleX) <= Ei && Math.abs(M - r.lastAllowedScaleY) <= Ei) return;
8374
8626
  }
8375
- let { appliedWidth: N, dimensionsRounded: P } = un({
8627
+ let { appliedWidth: N, dimensionsRounded: P } = On({
8376
8628
  textbox: n,
8377
8629
  canvasManager: this.canvasManager,
8378
8630
  base: r.startBase,
@@ -8386,7 +8638,7 @@ var di = class {
8386
8638
  shouldDisableAutoExpandOnHorizontalChange: a,
8387
8639
  shouldRoundDimensions: !i
8388
8640
  });
8389
- oi({
8641
+ wi({
8390
8642
  textbox: n,
8391
8643
  transform: t,
8392
8644
  appliedWidth: N
@@ -8407,12 +8659,12 @@ var di = class {
8407
8659
  }), this.canvas.requestRenderAll();
8408
8660
  }, this.handleObjectScaling = (t) => {
8409
8661
  let { target: n, transform: r } = t;
8410
- if (n instanceof e || !li(n) || ui(n) || !r) return;
8662
+ if (n instanceof e || !Di(n) || Oi(n) || !r) return;
8411
8663
  n.isScaling = !0;
8412
8664
  let i = this._ensureScalingState({
8413
8665
  textbox: n,
8414
8666
  transform: r
8415
- }), { startBase: a } = i, { width: o, fontSize: s } = a, { isCornerHandle: c, isHorizontalHandle: l, isVerticalHandle: u } = ai({ transform: r }), d = r.corner ?? "", f = c || u;
8667
+ }), { startBase: a } = i, { width: o, fontSize: s } = a, { isCornerHandle: c, isHorizontalHandle: l, isVerticalHandle: u } = Ci({ transform: r }), d = r.corner ?? "", f = c || u;
8416
8668
  if (!l && !u && !c) return;
8417
8669
  let p = n.scaleX ?? r.scaleX ?? 1, m = n.scaleY ?? r.scaleY ?? 1, h = Math.abs(p) || 1, g = Math.abs(m) || 1, _ = r.originX ?? n.originX ?? "center", v = r.originY ?? n.originY ?? "center", y = this.canvasManager.getObjectPlacement({
8418
8670
  object: n,
@@ -8427,7 +8679,7 @@ var di = class {
8427
8679
  N = e, P = e;
8428
8680
  }
8429
8681
  } else l && (N = Math.max(i.minimumWidthScale, i.lastAllowedScaleX * h)), u && (P = Math.max(i.minimumFontScale, i.lastAllowedScaleY * g));
8430
- let { appliedWidth: ee, dimensionsRounded: te } = un({
8682
+ let { appliedWidth: ee, dimensionsRounded: te } = On({
8431
8683
  textbox: n,
8432
8684
  canvasManager: this.canvasManager,
8433
8685
  base: a,
@@ -8441,7 +8693,7 @@ var di = class {
8441
8693
  shouldDisableAutoExpandOnHorizontalChange: l,
8442
8694
  shouldRoundDimensions: !c
8443
8695
  });
8444
- oi({
8696
+ wi({
8445
8697
  textbox: n,
8446
8698
  transform: r,
8447
8699
  appliedWidth: ee
@@ -8474,7 +8726,7 @@ var di = class {
8474
8726
  let { target: n } = t;
8475
8727
  if (n instanceof e) {
8476
8728
  let t = n.getObjects();
8477
- if (!t.some((e) => li(e))) return;
8729
+ if (!t.some((e) => Di(e))) return;
8478
8730
  let { scaleX: r = 1, scaleY: i = 1 } = n;
8479
8731
  if (Math.abs(r - 1) < .01 && Math.abs(i - 1) < .01) return;
8480
8732
  this.canvas.discardActiveObject(), t.forEach((e) => {
@@ -8484,7 +8736,7 @@ var di = class {
8484
8736
  this.canvas.setActiveObject(a), this.canvas.requestRenderAll();
8485
8737
  return;
8486
8738
  }
8487
- if (!li(n) || ui(n)) return;
8739
+ if (!Di(n) || Oi(n)) return;
8488
8740
  n.isScaling = !1;
8489
8741
  let r = this.scalingState.get(n);
8490
8742
  if (this.scalingState.delete(n), !r?.hasScalingChange) return;
@@ -8509,11 +8761,11 @@ var di = class {
8509
8761
  }, this.canvas = t, this.canvasManager = n, this.persistScaledTextbox = r, this.scalingState = /* @__PURE__ */ new WeakMap();
8510
8762
  }
8511
8763
  commitStandaloneTextScale({ target: e, shouldDisableAutoExpandOnHorizontalChange: t = !1 }) {
8512
- if (!li(e) || ui(e)) return !1;
8764
+ if (!Di(e) || Oi(e)) return !1;
8513
8765
  let n = Math.abs(e.scaleX ?? 1) || 1, r = Math.abs(e.scaleY ?? 1) || 1;
8514
8766
  if (!(Math.abs(n - 1) > .01 || Math.abs(r - 1) > .01)) return !1;
8515
- let i = sn({ textbox: e }), a = this.canvasManager.getObjectPlacement({ object: e });
8516
- return un({
8767
+ let i = Tn({ textbox: e }), a = this.canvasManager.getObjectPlacement({ object: e });
8768
+ return On({
8517
8769
  textbox: e,
8518
8770
  canvasManager: this.canvasManager,
8519
8771
  base: i,
@@ -8529,7 +8781,7 @@ var di = class {
8529
8781
  _ensureScalingState({ textbox: e, transform: t }) {
8530
8782
  let n = this.scalingState.get(e);
8531
8783
  if (!n) {
8532
- let r = sn({ textbox: e }), i = this.canvasManager.getObjectPlacement({ object: e }), a = cn({ base: r }), o = t.original?.originX ?? t.originX ?? e.originX ?? "center", s = t.original?.originY ?? t.originY ?? e.originY ?? "center";
8784
+ let r = Tn({ textbox: e }), i = this.canvasManager.getObjectPlacement({ object: e }), a = En({ base: r }), o = t.original?.originX ?? t.originX ?? e.originX ?? "center", s = t.original?.originY ?? t.originY ?? e.originY ?? "center";
8533
8785
  n = {
8534
8786
  startBase: r,
8535
8787
  startObjectPlacement: i,
@@ -8583,86 +8835,20 @@ var di = class {
8583
8835
  originY: a
8584
8836
  });
8585
8837
  }
8586
- }, fi = ({ textbox: e }) => {
8587
- let t = e.text ?? "";
8588
- if (!t.length) return [];
8589
- let n = t.split("\n"), r = [], i = 0;
8590
- for (let e = 0; e < n.length; e += 1) {
8591
- let t = n[e] ?? "", a = i, o = i + t.length;
8592
- i = o + 1, r.push({
8593
- start: a,
8594
- end: o
8595
- });
8596
- }
8597
- return r;
8598
- }, pi = ({ range: e, text: t }) => {
8599
- if (!e) return null;
8600
- let n = t.length;
8601
- if (n <= 0) return null;
8602
- let { start: r, end: i } = e, a = Number.isFinite(r) ? r : 0, o = Number.isFinite(i) ? i : a, s = Math.max(0, Math.min(a, n)), c = Math.max(0, Math.min(o, n)), l = Math.min(s, c), u = Math.max(s, c);
8603
- return l === u ? null : {
8604
- start: l,
8605
- end: u
8606
- };
8607
- }, mi = ({ textbox: e, range: t }) => {
8608
- let n = fi({ textbox: e });
8609
- if (!n.length) return t;
8610
- let { start: r } = t, { end: i } = t;
8611
- for (let e = 0; e < n.length; e += 1) {
8612
- let a = n[e];
8613
- if (!a) continue;
8614
- let { start: o, end: s } = a;
8615
- t.end > o && t.start < s && (r = Math.min(r, o), i = Math.max(i, s));
8616
- }
8617
- return {
8618
- start: r,
8619
- end: i
8620
- };
8621
- }, hi = ({ textbox: e, range: t }) => {
8622
- let n = e.text ?? "";
8623
- if (!n.length) return [];
8624
- let { start: r, end: i } = t, a = n.split("\n"), o = [], s = 0;
8625
- for (let e = 0; e < a.length; e += 1) {
8626
- let t = a[e] ?? "", n = s, c = s + t.length;
8627
- i > n && r < c && o.push(e), s = c + 1;
8628
- }
8629
- return o;
8630
- }, gi = ({ textbox: e, range: t }) => {
8631
- let n = e.text ?? "";
8632
- if (!n.length) return [];
8633
- let { start: r, end: i } = t, a = n.split("\n"), o = [], s = 0;
8634
- for (let e = 0; e < a.length; e += 1) {
8635
- let t = a[e] ?? "", n = s, c = s + t.length;
8636
- r <= n && i >= c && o.push(e), s = c + 1;
8637
- }
8638
- return o;
8639
- }, _i = ({ previous: e, next: t }) => {
8640
- let n = Math.min(e.length, t.length);
8641
- for (let r = 0; r < n; r += 1) if (e[r] !== t[r]) return r;
8642
- return n;
8643
- }, vi = ({ text: e, charIndex: t }) => {
8644
- let n = Math.max(0, Math.min(t, e.length)), r = 0;
8645
- for (let t = 0; t < n; t += 1) e[t] === "\n" && (r += 1);
8646
- return r;
8647
- }, yi = ({ text: e, lineIndex: t }) => {
8648
- if (t <= 0) return 0;
8649
- let n = 0;
8650
- for (let r = 0; r < e.length; r += 1) if (e[r] === "\n" && (n += 1, n === t)) return r + 1;
8651
- return e.length;
8652
- }, bi = class e {
8838
+ }, Ai = class e {
8653
8839
  constructor({ editor: t }) {
8654
8840
  this._handleTextEditingEntered = (t) => {
8655
8841
  this.isTextEditingActive = !0;
8656
8842
  let { target: n } = t;
8657
8843
  if (!e._isTextbox(n)) return;
8658
8844
  let { canvasManager: r, historyManager: i } = this.editor;
8659
- i.beginAction({ reason: "text-edit" }), !e._isShapeOwnedTextbox(n) && this._ensureEditingPlacementState().set(n, r.getObjectPlacement({ object: n }));
8845
+ i.beginAction({ reason: "text-edit" }), n.__lineDefaultsPrevText = n.text ?? "", !e._isShapeOwnedTextbox(n) && this._ensureEditingPlacementState().set(n, r.getObjectPlacement({ object: n }));
8660
8846
  }, this._handleTextChanged = (t) => {
8661
8847
  let { target: n } = t;
8662
- if (!e._isTextbox(n) || this.lineDefaultsSyncing.has(n)) return;
8848
+ if (!e._isTextbox(n)) return;
8663
8849
  let r = e._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 });
8664
8850
  if (s) {
8665
- let e = ti({ value: l });
8851
+ let e = yi({ value: l });
8666
8852
  e !== i && n.set({ text: e }), n.textCaseRaw = l;
8667
8853
  } else n.textCaseRaw = i;
8668
8854
  if (!r && o === void 0 && (n.autoExpand = !0), r) {
@@ -8678,9 +8864,9 @@ var di = class {
8678
8864
  let { target: n } = t;
8679
8865
  if (!e._isTextbox(n)) return;
8680
8866
  let r = e._isShapeOwnedTextbox(n);
8681
- this.editingPlacementState?.delete(n);
8867
+ this.editingPlacementState?.delete(n), delete n.__lineDefaultsPrevText;
8682
8868
  let i = n.text ?? "";
8683
- n.uppercase ? n.textCaseRaw = n.textCaseRaw ?? i.toLocaleLowerCase() : n.textCaseRaw = i, r || (on({ textbox: n }) && (n.setCoords(), n.dirty = !0, this.canvas.requestRenderAll()), n.locked || n.set({
8869
+ n.uppercase ? n.textCaseRaw = n.textCaseRaw ?? i.toLocaleLowerCase() : n.textCaseRaw = i, r || (wn({ textbox: n }) && (n.setCoords(), n.dirty = !0, this.canvas.requestRenderAll()), n.locked || n.set({
8684
8870
  lockMovementX: !1,
8685
8871
  lockMovementY: !1
8686
8872
  }));
@@ -8707,7 +8893,7 @@ var di = class {
8707
8893
  transform: r,
8708
8894
  event: i ?? null
8709
8895
  });
8710
- }, this.editor = t, this.canvas = t.canvas, this.fonts = t.options.fonts ?? [], this.scalingController = new di({
8896
+ }, this.editor = t, this.canvas = t.canvas, this.fonts = t.options.fonts ?? [], this.scalingController = new ki({
8711
8897
  canvas: t.canvas,
8712
8898
  canvasManager: t.canvasManager,
8713
8899
  persistScaledTextbox: ({ target: e, style: t }) => {
@@ -8716,12 +8902,12 @@ var di = class {
8716
8902
  style: t
8717
8903
  });
8718
8904
  }
8719
- }), this.editingPlacementState = /* @__PURE__ */ new WeakMap(), this.lineDefaultsSyncing = /* @__PURE__ */ new WeakSet(), this.isTextEditingActive = !1, this._bindEvents(), ii();
8905
+ }), this.editingPlacementState = /* @__PURE__ */ new WeakMap(), this.isTextEditingActive = !1, this._bindEvents(), Si();
8720
8906
  }
8721
8907
  addText({ id: t = `background-textbox-${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, emitLifecycleEvents: j = !0 } = {}) {
8722
8908
  let { canvasManager: M, historyManager: N } = this.editor, { canvas: P } = this;
8723
8909
  N.suspendHistory();
8724
- let F = i ?? this._getDefaultFontFamily(), I = ei({ width: m }), ee = $r({
8910
+ let F = i ?? this._getDefaultFontFamily(), I = vi({ width: m }), ee = _i({
8725
8911
  strokeColor: p,
8726
8912
  width: I
8727
8913
  }), te = {
@@ -8750,14 +8936,14 @@ var di = class {
8750
8936
  radiusBottomRight: w,
8751
8937
  radiusBottomLeft: T,
8752
8938
  ...E
8753
- }, L = new ri(n, te), ne = r !== !1;
8939
+ }, L = new xi(n, te), ne = r !== !1;
8754
8940
  L.autoExpand = ne;
8755
8941
  let re = E.left !== void 0 || E.top !== void 0;
8756
8942
  if (L.textCaseRaw = L.text ?? "", l) {
8757
- let e = ti({ value: L.textCaseRaw });
8943
+ let e = yi({ value: L.textCaseRaw });
8758
8944
  e !== L.text && L.set({ text: e });
8759
8945
  }
8760
- on({ textbox: L }) && (L.dirty = !0);
8946
+ wn({ textbox: L }) && (L.dirty = !0);
8761
8947
  let R;
8762
8948
  re && (R = M.resolveObjectPlacement({
8763
8949
  object: L,
@@ -8804,151 +8990,146 @@ var di = class {
8804
8990
  top: te,
8805
8991
  originX: L,
8806
8992
  originY: ne
8807
- }), z = a === void 0 ? Jr({ textbox: s }) : pi({
8993
+ }), z = a === void 0 ? fi({ textbox: s }) : Xt({
8808
8994
  text: c,
8809
8995
  range: a
8810
- }), B = z ? mi({
8996
+ }), B = z ? Zt({
8811
8997
  textbox: s,
8812
8998
  range: z
8813
- }) : null, V = {}, H = {}, U = {}, ae, oe, W = Xr({
8999
+ }) : null, V = {}, H = {}, U = {}, ae, W, G, oe, se = mi({
8814
9000
  textbox: s,
8815
9001
  range: z
8816
- }), se = !z || W, G = !z;
8817
- if (h !== void 0 && (B && (H.fontFamily = h), se && (R.fontFamily = h, G && (U.fontFamily = h))), g !== void 0 && (B && (H.fontSize = g), se && (R.fontSize = g, G && (U.fontSize = g))), _ !== void 0) {
8818
- let e = _ ? "bold" : "normal";
8819
- z && (V.fontWeight = e), se && (R.fontWeight = e, G && (U.fontWeight = e));
8820
- }
8821
- if (v !== void 0) {
8822
- let e = v ? "italic" : "normal";
8823
- z && (V.fontStyle = e), se && (R.fontStyle = e, G && (U.fontStyle = e));
8824
- }
8825
- if (y !== void 0 && (z && (V.underline = y), se && (R.underline = y, G && (U.underline = y))), x !== void 0 && (z && (V.linethrough = x), se && (R.linethrough = x, G && (U.linethrough = x))), S !== void 0 && (R.textAlign = S), C !== void 0 && (z && (V.fill = C), se && (R.fill = C, G && (U.fill = C))), w !== void 0 || T !== void 0) {
8826
- let e = z ? Qr({
9002
+ }), ce = mi({
9003
+ textbox: s,
9004
+ range: B
9005
+ }), le = !z || se, ue = le || ce, de = !z;
9006
+ if (h !== void 0 && (B && (H.fontFamily = h), ue && (R.fontFamily = h, de && (U.fontFamily = h))), g !== void 0 && (B && (H.fontSize = g), ue && (R.fontSize = g, de && (U.fontSize = g))), _ !== void 0 && (ae = _ ? "bold" : "normal", z && (V.fontWeight = ae), le && (R.fontWeight = ae, de && (U.fontWeight = ae))), v !== void 0 && (W = v ? "italic" : "normal", z && (V.fontStyle = W), le && (R.fontStyle = W, de && (U.fontStyle = W))), y !== void 0 && (z && (V.underline = y), le && (R.underline = y, de && (U.underline = y))), x !== void 0 && (z && (V.linethrough = x), le && (R.linethrough = x, de && (U.linethrough = x))), S !== void 0 && (R.textAlign = S), C !== void 0 && (z && (V.fill = C), le && (R.fill = C, de && (U.fill = C))), w !== void 0 || T !== void 0) {
9007
+ let e = z ? gi({
8827
9008
  textbox: s,
8828
9009
  range: z,
8829
9010
  property: "strokeWidth"
8830
- }) : void 0, t = z ? Qr({
9011
+ }) : void 0, t = z ? gi({
8831
9012
  textbox: s,
8832
9013
  range: z,
8833
9014
  property: "stroke"
8834
9015
  }) : void 0;
8835
- oe = ei({ width: T ?? e ?? s.strokeWidth ?? 0 }), ae = $r({
9016
+ oe = vi({ width: T ?? e ?? s.strokeWidth ?? 0 }), G = _i({
8836
9017
  strokeColor: w ?? t ?? s.stroke ?? void 0,
8837
9018
  width: oe
8838
- }), z && (V.stroke = ae, V.strokeWidth = oe), se && (R.stroke = ae, R.strokeWidth = oe, G && (U.stroke = ae, U.strokeWidth = oe));
9019
+ }), z && (V.stroke = G, V.strokeWidth = oe), le && (R.stroke = G, R.strokeWidth = oe, de && (U.stroke = G, U.strokeWidth = oe));
8839
9020
  }
8840
9021
  E !== void 0 && (R.opacity = E), D !== void 0 && (R.backgroundColor = D), O !== void 0 && (R.backgroundOpacity = O), k !== void 0 && (R.paddingTop = k), A !== void 0 && (R.paddingRight = A), j !== void 0 && (R.paddingBottom = j), M !== void 0 && (R.paddingLeft = M), N !== void 0 && (R.radiusTopLeft = N), P !== void 0 && (R.radiusTopRight = P), F !== void 0 && (R.radiusBottomRight = F), I !== void 0 && (R.radiusBottomLeft = I);
8841
- let ce = s.textCaseRaw ?? c, le = !!s.uppercase, ue = p !== void 0, de = ue ? p ?? "" : ce, fe = b ?? le, pe = fe !== le;
8842
- ue || pe ? (R.text = fe ? ti({ value: de }) : de, s.textCaseRaw = de) : s.textCaseRaw === void 0 && (s.textCaseRaw = ce);
8843
- let me = an({ stylesList: [
9022
+ let fe = s.textCaseRaw ?? c, pe = !!s.uppercase, me = p !== void 0, he = me ? p ?? "" : fe, ge = b ?? pe, _e = ge !== pe;
9023
+ me || _e ? (R.text = ge ? yi({ value: he }) : he, s.textCaseRaw = he) : s.textCaseRaw === void 0 && (s.textCaseRaw = fe);
9024
+ let ve = Cn({ stylesList: [
8844
9025
  R,
8845
9026
  V,
8846
9027
  H,
8847
9028
  U
8848
- ] }), he = [
9029
+ ] }), ye = [
8849
9030
  ee,
8850
9031
  te,
8851
9032
  L,
8852
9033
  ne
8853
- ], ge = [
9034
+ ], be = [
8854
9035
  k,
8855
9036
  A,
8856
9037
  j,
8857
9038
  M
8858
- ], _e = he.some((e) => e !== void 0), ve = ge.some((e) => e !== void 0), ye = Object.prototype.hasOwnProperty.call(R, "width"), be = ve && !_e && !ue && !pe && !me && !ye, xe = null;
8859
- be && (xe = tn({
9039
+ ], xe = ye.some((e) => e !== void 0), Se = be.some((e) => e !== void 0), Ce = Object.prototype.hasOwnProperty.call(R, "width"), we = Se && !xe && !me && !_e && !ve && !Ce, Te = null;
9040
+ we && (Te = bn({
8860
9041
  textbox: s,
8861
9042
  originX: ie.originX,
8862
9043
  originY: ie.originY
8863
- })), s.uppercase = fe, s.set(R);
8864
- let K = !1;
9044
+ })), s.uppercase = ge, s.set(R);
9045
+ let Ee = !1;
8865
9046
  if (z) {
8866
- let e = Zr({
9047
+ let e = hi({
8867
9048
  textbox: s,
8868
9049
  styles: V,
8869
9050
  range: z
8870
- }), t = B ? Zr({
9051
+ }), t = B ? hi({
8871
9052
  textbox: s,
8872
9053
  styles: H,
8873
9054
  range: B
8874
9055
  }) : !1;
8875
- K = e || t;
9056
+ Ee = e || t;
8876
9057
  } else if (Object.keys(U).length) {
8877
- let e = Yr({ textbox: s });
8878
- e && (K = Zr({
9058
+ let e = pi({ textbox: s });
9059
+ e && (Ee = hi({
8879
9060
  textbox: s,
8880
9061
  styles: U,
8881
9062
  range: e
8882
9063
  }));
8883
9064
  }
8884
- let Se = K && an({ stylesList: [
9065
+ let De = Ee && Cn({ stylesList: [
8885
9066
  V,
8886
9067
  H,
8887
9068
  U
8888
9069
  ] });
8889
- if (K && (s.dirty = !0), B && (h !== void 0 || g !== void 0)) {
8890
- let e = hi({
9070
+ if (Ee && (s.dirty = !0), B && (h !== void 0 || g !== void 0)) {
9071
+ let e = Qt({
8891
9072
  textbox: s,
8892
9073
  range: B
8893
9074
  }), t = {};
8894
- h !== void 0 && (t.fontFamily = h), g !== void 0 && (t.fontSize = g), Yt({
9075
+ h !== void 0 && (t.fontFamily = h), g !== void 0 && (t.fontSize = g), cn({
8895
9076
  textbox: s,
8896
9077
  lineIndices: e,
8897
9078
  updates: t
8898
9079
  });
8899
9080
  }
8900
- if (z && (C !== void 0 || w !== void 0 || T !== void 0)) {
8901
- let e = gi({
9081
+ if (z && (_ !== void 0 || v !== void 0 || y !== void 0 || x !== void 0 || C !== void 0 || w !== void 0 || T !== void 0)) {
9082
+ let e = $t({
8902
9083
  textbox: s,
8903
9084
  range: z
8904
9085
  }), t = {};
8905
- C !== void 0 && (t.fill = C), (w !== void 0 || T !== void 0) && (ae === null && (t.stroke = null), ae != null && (t.stroke = ae)), Yt({
9086
+ ae !== void 0 && (t.fontWeight = ae), W !== void 0 && (t.fontStyle = W), y !== void 0 && (t.underline = y), x !== void 0 && (t.linethrough = x), C !== void 0 && (t.fill = C), (w !== void 0 || T !== void 0) && (G === null && (t.stroke = null), G != null && (t.stroke = G), oe !== void 0 && (t.strokeWidth = oe)), cn({
8906
9087
  textbox: s,
8907
9088
  lineIndices: e,
8908
9089
  updates: t
8909
9090
  });
8910
9091
  }
8911
- Se && (s.initDimensions(), s.dirty = !0), [
9092
+ De && (s.initDimensions(), s.dirty = !0), [
8912
9093
  D,
8913
9094
  O,
8914
- ...ge,
9095
+ ...be,
8915
9096
  N,
8916
9097
  P,
8917
9098
  F,
8918
9099
  I
8919
9100
  ].some((e) => e !== void 0) && (s.dirty = !0);
8920
- let { autoExpand: Ce } = s, we = m !== void 0, Te = (m ?? Ce) !== !1;
8921
- we ? s.autoExpand = m !== !1 : Ce === void 0 && (s.autoExpand = !0);
8922
- let Ee = Te && !ye && (ue || pe || me);
9101
+ let { autoExpand: Oe } = s, ke = m !== void 0, Ae = (m ?? Oe) !== !1;
9102
+ ke ? s.autoExpand = m !== !1 : Oe === void 0 && (s.autoExpand = !0);
9103
+ let je = Ae && !Ce && (me || _e || ve);
8923
9104
  this._normalizeTextboxAfterContentChange({
8924
9105
  textbox: s,
8925
9106
  placement: ie,
8926
- shouldAutoExpand: Ee
8927
- }), xe && this._restoreTextboxContentPlacement({
9107
+ shouldAutoExpand: je
9108
+ }), Te && this._restoreTextboxContentPlacement({
8928
9109
  textbox: s,
8929
- contentPlacement: xe
9110
+ contentPlacement: Te
8930
9111
  }), s.setCoords();
8931
- let De = {
9112
+ let Me = {
8932
9113
  withoutSave: !!r,
8933
9114
  skipRender: !!i
8934
- }, Oe = !!z && Object.keys(V).length > 0, ke = {
9115
+ }, Ne = !!z && Object.keys(V).length > 0, Pe = {
8935
9116
  textbox: s,
8936
9117
  target: t,
8937
9118
  style: n,
8938
- options: De,
9119
+ options: Me,
8939
9120
  updates: R,
8940
9121
  selectionRange: z ?? void 0,
8941
- selectionStyles: Oe ? V : void 0
9122
+ selectionStyles: Ne ? V : void 0
8942
9123
  };
8943
- o && d.fire("editor:before:text-updated", ke), i || d.requestRenderAll();
8944
- let Ae = e._getSnapshot(s);
9124
+ o && d.fire("editor:before:text-updated", Pe), i || d.requestRenderAll();
9125
+ let Fe = e._getSnapshot(s);
8945
9126
  l.resumeHistory(), r || l.saveState();
8946
- let je = {
8947
- ...ke,
9127
+ let Ie = {
9128
+ ...Pe,
8948
9129
  before: f,
8949
- after: Ae
9130
+ after: Fe
8950
9131
  };
8951
- return o && d.fire("editor:text-updated", je), s;
9132
+ return o && d.fire("editor:text-updated", Ie), s;
8952
9133
  }
8953
9134
  stylesFromArray(e, t) {
8954
9135
  return C.stylesFromArray(e, t);
@@ -9008,7 +9189,7 @@ var di = class {
9008
9189
  clampToMontage: r
9009
9190
  }));
9010
9191
  let a = !1;
9011
- i || (a = on({ textbox: e }));
9192
+ i || (a = wn({ textbox: e }));
9012
9193
  let o = !1;
9013
9194
  return !i && t && (this.editor.canvasManager.applyObjectPlacement({
9014
9195
  object: e,
@@ -9016,7 +9197,7 @@ var di = class {
9016
9197
  }), o = !0), (i || a) && (e.dirty = !0), (i || a || o) && e.setCoords(), i || a;
9017
9198
  }
9018
9199
  _restoreTextboxContentPlacement({ textbox: e, contentPlacement: t }) {
9019
- let n = tn({
9200
+ let n = bn({
9020
9201
  textbox: e,
9021
9202
  originX: t.originX,
9022
9203
  originY: t.originY
@@ -9034,85 +9215,12 @@ var di = class {
9034
9215
  e.on("object:scaling", this.scalingController.handleObjectScaling), e.on("object:resizing", this._handleObjectResizing), e.on("object:modified", this.scalingController.handleObjectModified), e.on("mouse:move", this.scalingController.handleMouseMove), e.on("text:editing:entered", this._handleTextEditingEntered), e.on("text:editing:exited", this._handleTextEditingExited), e.on("text:changed", this._handleTextChanged);
9035
9216
  }
9036
9217
  _syncLineFontDefaultsOnTextChanged({ textbox: e }) {
9037
- 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;
9038
- if (h !== 0 && n && Object.keys(n).length) {
9039
- let e = _i({
9040
- previous: d,
9041
- next: u
9042
- }), t = vi({
9043
- text: d,
9044
- charIndex: e
9045
- });
9046
- if (h > 0) {
9047
- let r = yi({
9048
- text: d,
9049
- lineIndex: t
9050
- }), i = t + 1;
9051
- e === r && (i = t);
9052
- let a = {};
9053
- for (let e in n) {
9054
- if (!Object.prototype.hasOwnProperty.call(n, e)) continue;
9055
- let t = Number(e);
9056
- if (!Number.isFinite(t)) continue;
9057
- let r = n[t];
9058
- if (!r) continue;
9059
- let o = t >= i ? t + h : t;
9060
- a[o] = { ...r };
9061
- }
9062
- g = a, _ = !0, v = !0;
9063
- }
9064
- if (h < 0) {
9065
- let r = Math.abs(h), i = t;
9066
- d[e] === "\n" && (f[t] ?? "").length > 0 && (i = t + 1);
9067
- let a = i + r - 1, o = {};
9068
- for (let e in n) {
9069
- if (!Object.prototype.hasOwnProperty.call(n, e)) continue;
9070
- let t = Number(e);
9071
- if (!Number.isFinite(t)) continue;
9072
- let r = n[t];
9073
- r && (t < i && (o[t] = { ...r }), t > a && (o[t + h] = { ...r }));
9074
- }
9075
- g = o, _ = !0, v = !0;
9076
- }
9077
- }
9078
- let x = null;
9079
- if (l && typeof c == "number") {
9080
- let { lineIndex: t } = e.get2DCursorLocation(c);
9081
- Number.isFinite(t) && (x = t);
9082
- }
9083
- let S = r, C = !1, w = !1, T, E = null;
9084
- for (let e = 0; e < p.length; e += 1) {
9085
- let t = p[e] ?? "", n = g ? g[e] : void 0;
9086
- if (n && (T = n), t.length !== 0) {
9087
- if (n) {
9088
- let r = Xt({
9089
- lineText: t,
9090
- lineStyles: S ? S[e] : void 0,
9091
- lineDefaults: n
9092
- });
9093
- r.changed && (S || (S = {}, w = !0), w ||= (S = { ...S }, !0), r.lineStyles && (S[e] = r.lineStyles), !r.lineStyles && S[e] && delete S[e], C = !0);
9094
- }
9095
- continue;
9096
- }
9097
- let r = n ?? T, o = {};
9098
- r?.fontFamily === void 0 ? i !== void 0 && (o.fontFamily = i) : o.fontFamily = r.fontFamily, r?.fontSize === void 0 ? a !== void 0 && (o.fontSize = a) : o.fontSize = r.fontSize, r?.fill === void 0 ? y !== void 0 && (o.fill = y) : o.fill = r.fill, r?.stroke === void 0 ? b !== void 0 && (o.stroke = b) : o.stroke = r.stroke, !n && Object.keys(o).length && (g || (g = {}, v = !0), v ||= (g = { ...g }, !0), g[e] = o, _ = !0, T = o), n && (T = n), x !== null && x === e && (E = o);
9099
- let s = {};
9100
- o.fontFamily !== void 0 && (s.fontFamily = o.fontFamily), o.fontSize !== void 0 && (s.fontSize = o.fontSize), o.fill !== void 0 && (s.fill = o.fill), o.stroke !== void 0 && (s.stroke = o.stroke);
9101
- let c = Object.keys(s).length > 0;
9102
- (c || S && S[e]) && (S || (S = {}, w = !0), w ||= (S = { ...S }, !0), c && (S[e] = { 0: s }), !c && S[e] && delete S[e], C = !0);
9103
- }
9104
- if (_ && g && (e.lineFontDefaults = g), C && (e.styles = S, e.dirty = !0), E && typeof c == "number") {
9105
- let t = {};
9106
- if (E.fontFamily !== void 0 && (t.fontFamily = E.fontFamily), E.fontSize !== void 0 && (t.fontSize = E.fontSize), E.fill !== void 0 && (t.fill = E.fill), E.stroke !== void 0 && (t.stroke = E.stroke), Object.keys(t).length) {
9107
- this.lineDefaultsSyncing.add(e);
9108
- try {
9109
- e.setSelectionStyles(t, c, c);
9110
- } finally {
9111
- this.lineDefaultsSyncing.delete(e);
9112
- }
9113
- }
9114
- }
9115
- e.__lineDefaultsPrevText = u;
9218
+ let t = e.text ?? "", n = hn({
9219
+ textbox: e,
9220
+ previousText: e.__lineDefaultsPrevText ?? t,
9221
+ currentText: t
9222
+ });
9223
+ n.lineFontDefaultsChanged && n.lineFontDefaults && (e.lineFontDefaults = n.lineFontDefaults), n.stylesChanged && (e.styles = n.styles, e.dirty = !0), e.__lineDefaultsPrevText = t;
9116
9224
  }
9117
9225
  _autoExpandTextboxWidth(e, { placement: t, clampToMontage: n = !0 } = {}) {
9118
9226
  let { canvasManager: r, montageArea: i } = this.editor;
@@ -9125,16 +9233,16 @@ var di = class {
9125
9233
  if (!Number.isFinite(f) || f <= 0) return !1;
9126
9234
  let p = a.split("\n").length, m = !1;
9127
9235
  Math.abs((e.width ?? 0) - f) > .01 && (e.set({ width: f }), m = !0), e.initDimensions();
9128
- let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil($t({
9236
+ let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(vn({
9129
9237
  textbox: e,
9130
9238
  text: a
9131
9239
  })), v = Math.min(e.minWidth ?? 1, f), y = Math.min(f, Math.max(_, v));
9132
- g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0), on({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
9240
+ g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0), wn({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
9133
9241
  object: e,
9134
9242
  placement: t
9135
9243
  });
9136
9244
  let b = !1;
9137
- return n && (b = nn({
9245
+ return n && (b = xn({
9138
9246
  textbox: e,
9139
9247
  montageLeft: o,
9140
9248
  montageRight: o + s
@@ -9192,7 +9300,7 @@ var di = class {
9192
9300
  _getDefaultFontFamily() {
9193
9301
  return this.fonts[0]?.family ?? "Arial";
9194
9302
  }
9195
- }, xi = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Si = (e) => {
9303
+ }, ji = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Mi = (e) => {
9196
9304
  if (!e || typeof e != "object") return null;
9197
9305
  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) => ({
9198
9306
  color: typeof e.color == "string" ? e.color : "#000000",
@@ -9203,7 +9311,7 @@ var di = class {
9203
9311
  let { x1: e, y1: t, x2: r, y2: i } = n;
9204
9312
  if (typeof e == "number" && typeof t == "number" && typeof r == "number" && typeof i == "number") return {
9205
9313
  type: "linear",
9206
- angle: xi({
9314
+ angle: ji({
9207
9315
  x1: e,
9208
9316
  y1: t,
9209
9317
  x2: r,
@@ -9231,7 +9339,7 @@ var di = class {
9231
9339
  };
9232
9340
  }
9233
9341
  return null;
9234
- }, Ci = "_templateAnchorX", wi = "_templateAnchorY", Ti = class t {
9342
+ }, Ni = "_templateAnchorX", Pi = "_templateAnchorY", Fi = class t {
9235
9343
  constructor({ editor: e }) {
9236
9344
  this.editor = e;
9237
9345
  }
@@ -9240,7 +9348,7 @@ var di = class {
9240
9348
  if (!p.length) return s.emitWarning({
9241
9349
  origin: "TemplateManager",
9242
9350
  method: "serializeSelection",
9243
- code: Gr.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
9351
+ code: li.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
9244
9352
  message: "Нет объектов для сериализации шаблона"
9245
9353
  }), null;
9246
9354
  let m = t._getBounds(o), h = t._getMontageSize({
@@ -9269,14 +9377,14 @@ var di = class {
9269
9377
  if (!l?.length) return a.emitWarning({
9270
9378
  origin: "TemplateManager",
9271
9379
  method: "applyTemplate",
9272
- code: Gr.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9380
+ code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9273
9381
  message: "Шаблон не содержит объектов"
9274
9382
  }), null;
9275
9383
  let f = t._getBounds(r);
9276
9384
  if (!f) return a.emitWarning({
9277
9385
  origin: "TemplateManager",
9278
9386
  method: "applyTemplate",
9279
- code: Gr.TEMPLATE_MANAGER.INVALID_TARGET,
9387
+ code: li.TEMPLATE_MANAGER.INVALID_TARGET,
9280
9388
  message: "Не удалось определить границы монтажной области"
9281
9389
  }), null;
9282
9390
  let p = t._getMontageSize({
@@ -9295,7 +9403,7 @@ var di = class {
9295
9403
  if (!r.length) return a.emitWarning({
9296
9404
  origin: "TemplateManager",
9297
9405
  method: "applyTemplate",
9298
- code: Gr.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9406
+ code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9299
9407
  message: "Не удалось создать объекты шаблона"
9300
9408
  }), null;
9301
9409
  let { backgroundObject: i, contentObjects: u } = t._extractBackgroundObject(r);
@@ -9333,7 +9441,7 @@ var di = class {
9333
9441
  return a.emitError({
9334
9442
  origin: "TemplateManager",
9335
9443
  method: "applyTemplate",
9336
- code: Gr.TEMPLATE_MANAGER.APPLY_FAILED,
9444
+ code: li.TEMPLATE_MANAGER.APPLY_FAILED,
9337
9445
  message: "Ошибка применения шаблона",
9338
9446
  data: {
9339
9447
  templateId: d,
@@ -9487,8 +9595,8 @@ var di = class {
9487
9595
  baseHeight: a,
9488
9596
  scale: n,
9489
9597
  useRelativePositions: o,
9490
- anchorX: t._resolveAnchor(s, Ci),
9491
- anchorY: t._resolveAnchor(s, wi)
9598
+ anchorX: t._resolveAnchor(s, Ni),
9599
+ anchorY: t._resolveAnchor(s, Pi)
9492
9600
  })
9493
9601
  }), h = f * n, g = p * n, _ = e.originX ?? "center", v = e.originY ?? "center";
9494
9602
  e.set({
@@ -9502,7 +9610,7 @@ var di = class {
9502
9610
  originX: _,
9503
9611
  originY: v
9504
9612
  }
9505
- }), delete s[Ci], delete s[wi];
9613
+ }), delete s[Ni], delete s[Pi];
9506
9614
  }
9507
9615
  static _getPositioningBounds({ bounds: e, baseWidth: n, baseHeight: r, scale: i, useRelativePositions: a, anchorX: o, anchorY: s }) {
9508
9616
  if (!a) return e;
@@ -9566,7 +9674,7 @@ var di = class {
9566
9674
  });
9567
9675
  if (!i || !s || !o) return;
9568
9676
  e.setCoords();
9569
- let c = e, l = t._resolveAnchor(c, Ci), 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;
9677
+ let c = e, l = t._resolveAnchor(c, Ni), 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;
9570
9678
  e.set("width", i), e.initDimensions();
9571
9679
  let g = t._getLongestLineWidth({
9572
9680
  textbox: e,
@@ -9595,10 +9703,10 @@ var di = class {
9595
9703
  x: (p.left - o) / d,
9596
9704
  y: (p.top - s) / f
9597
9705
  }, h = (u.left - o) / d, g = (u.top - s) / f, _ = h + u.width / d, v = g + u.height / f;
9598
- return a[Ci] = t._detectAnchor({
9706
+ return a[Ni] = t._detectAnchor({
9599
9707
  start: h,
9600
9708
  end: _
9601
- }), a[wi] = t._detectAnchor({
9709
+ }), a[Pi] = t._detectAnchor({
9602
9710
  start: g,
9603
9711
  end: v
9604
9712
  }), a.left = m.x, a.top = m.y, a;
@@ -9623,7 +9731,7 @@ var di = class {
9623
9731
  withoutSave: !0
9624
9732
  }), !0;
9625
9733
  if (a === "gradient") {
9626
- let e = Si(r);
9734
+ let e = Mi(r);
9627
9735
  if (e) return n.setGradientBackground({
9628
9736
  gradient: e,
9629
9737
  customData: o,
@@ -9644,7 +9752,7 @@ var di = class {
9644
9752
  r.emitWarning({
9645
9753
  origin: "TemplateManager",
9646
9754
  method: "applyTemplate",
9647
- code: Gr.TEMPLATE_MANAGER.APPLY_FAILED,
9755
+ code: li.TEMPLATE_MANAGER.APPLY_FAILED,
9648
9756
  message: "Не удалось применить фон из шаблона",
9649
9757
  data: e
9650
9758
  });
@@ -9680,29 +9788,29 @@ var di = class {
9680
9788
  enlivenObjectEnlivables(e) {
9681
9789
  return C.enlivenObjectEnlivables(e);
9682
9790
  }
9683
- }, Ei = "#3D8BF4", Di = .5, Oi = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, ki = ({ firstDistance: e, secondDistance: t }) => {
9684
- let n = Oi({ distance: e }), r = Oi({ distance: t });
9791
+ }, Ii = "#3D8BF4", Li = .5, Ri = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, zi = ({ firstDistance: e, secondDistance: t }) => {
9792
+ let n = Ri({ distance: e }), r = Ri({ distance: t });
9685
9793
  return {
9686
9794
  firstDisplayDistance: n,
9687
9795
  secondDisplayDistance: r,
9688
9796
  displayDistanceDiff: Math.abs(n - r),
9689
9797
  commonDisplayDistance: Math.max(n, r)
9690
9798
  };
9691
- }, Ai = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), ji = ({ step: e }) => {
9799
+ }, Bi = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), Vi = ({ step: e }) => {
9692
9800
  let t = Math.abs(e).toString(), n = t.indexOf(".");
9693
9801
  return n === -1 ? 0 : t.slice(n + 1).length;
9694
- }, Mi = ({ value: e, step: t }) => {
9802
+ }, Hi = ({ value: e, step: t }) => {
9695
9803
  if (t === 0) return e;
9696
- let n = ji({ step: t }), r = Math.round(e / t) * t;
9804
+ let n = Vi({ step: t }), r = Math.round(e / t) * t;
9697
9805
  return Number(r.toFixed(n));
9698
- }, Ni = ({ value: e, step: t }) => {
9806
+ }, Ui = ({ value: e, step: t }) => {
9699
9807
  if (t === 0) return !0;
9700
- let n = Mi({
9808
+ let n = Hi({
9701
9809
  value: e,
9702
9810
  step: t
9703
- }), r = 10 ** -(ji({ step: t }) + 4);
9811
+ }), r = 10 ** -(Vi({ step: t }) + 4);
9704
9812
  return Math.abs(n - e) <= r;
9705
- }, Pi = ({ bounds: e, axis: t }) => {
9813
+ }, Wi = ({ bounds: e, axis: t }) => {
9706
9814
  let { left: n = 0, right: r = 0, top: i = 0, bottom: a = 0 } = e;
9707
9815
  return t === "vertical" ? {
9708
9816
  start: i,
@@ -9711,7 +9819,7 @@ var di = class {
9711
9819
  start: n,
9712
9820
  end: r
9713
9821
  };
9714
- }, Fi = ({ items: e, axis: t }) => {
9822
+ }, Gi = ({ items: e, axis: t }) => {
9715
9823
  for (let n = 1; n < e.length; n += 1) {
9716
9824
  let r = e[n], { bounds: i } = r, a = i[t], o = n - 1;
9717
9825
  for (; o >= 0;) {
@@ -9721,10 +9829,10 @@ var di = class {
9721
9829
  }
9722
9830
  e[o + 1] = r;
9723
9831
  }
9724
- }, Ii = ({ items: e, index: t, axis: n, direction: r }) => {
9832
+ }, Ki = ({ items: e, index: t, axis: n, direction: r }) => {
9725
9833
  let i = e[t];
9726
9834
  if (!i) return null;
9727
- let { bounds: a } = i, { start: o, end: s } = Pi({
9835
+ let { bounds: a } = i, { start: o, end: s } = Wi({
9728
9836
  bounds: a,
9729
9837
  axis: n
9730
9838
  });
@@ -9732,7 +9840,7 @@ var di = class {
9732
9840
  for (let r = t - 1; r >= 0; --r) {
9733
9841
  let t = e[r];
9734
9842
  if (!t) continue;
9735
- let { bounds: i } = t, { end: a } = Pi({
9843
+ let { bounds: i } = t, { end: a } = Wi({
9736
9844
  bounds: i,
9737
9845
  axis: n
9738
9846
  });
@@ -9743,26 +9851,26 @@ var di = class {
9743
9851
  for (let r = t + 1; r < e.length; r += 1) {
9744
9852
  let t = e[r];
9745
9853
  if (!t) continue;
9746
- let { bounds: i } = t, { start: a } = Pi({
9854
+ let { bounds: i } = t, { start: a } = Wi({
9747
9855
  bounds: i,
9748
9856
  axis: n
9749
9857
  });
9750
9858
  if (a - s >= 0) return r;
9751
9859
  }
9752
9860
  return null;
9753
- }, Li = ({ items: e }) => {
9861
+ }, qi = ({ items: e }) => {
9754
9862
  for (let t = 0; t < e.length; t += 1) {
9755
9863
  let { isActive: n } = e[t];
9756
9864
  if (n) return t;
9757
9865
  }
9758
9866
  return -1;
9759
- }, Ri = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
9867
+ }, Ji = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
9760
9868
  let i = Math.min(t, n), a = Math.max(t, n);
9761
9869
  return e >= i - r && e <= a + r;
9762
- }, zi = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, Bi = ({ baseOption: e, candidateOption: t }) => {
9870
+ }, Yi = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, Xi = ({ baseOption: e, candidateOption: t }) => {
9763
9871
  let { delta: n, guide: { distance: r } } = e, { delta: i, guide: { distance: a } } = t;
9764
9872
  return n === i && r === a;
9765
- }, Vi = ({ options: e }) => {
9873
+ }, Zi = ({ options: e }) => {
9766
9874
  let t = e[0];
9767
9875
  for (let n = 1; n < e.length; n += 1) {
9768
9876
  let r = e[n];
@@ -9773,11 +9881,11 @@ var di = class {
9773
9881
  r.diff === t.diff && Math.abs(r.delta) < Math.abs(t.delta) && (t = r);
9774
9882
  }
9775
9883
  return t;
9776
- }, Hi = ({ currentOption: e, nextOption: t }) => {
9884
+ }, Qi = ({ currentOption: e, nextOption: t }) => {
9777
9885
  if (!e) return !0;
9778
9886
  let { contextDistance: n, diff: r, delta: i } = e, { contextDistance: a, diff: o, delta: s } = t;
9779
9887
  return a < n ? !0 : a > n ? !1 : o < r ? !0 : o > r ? !1 : Math.abs(s) < Math.abs(i);
9780
- }, Ui = ({ options: e }) => {
9888
+ }, $i = ({ options: e }) => {
9781
9889
  let t = [], n = null, r = null;
9782
9890
  for (let i of e) {
9783
9891
  let { kind: e, side: a } = i;
@@ -9785,18 +9893,18 @@ var di = class {
9785
9893
  t.push(i);
9786
9894
  continue;
9787
9895
  }
9788
- a === "before" && Hi({
9896
+ a === "before" && Qi({
9789
9897
  currentOption: n,
9790
9898
  nextOption: i
9791
- }) && (n = i), a === "after" && Hi({
9899
+ }) && (n = i), a === "after" && Qi({
9792
9900
  currentOption: r,
9793
9901
  nextOption: i
9794
9902
  }) && (r = i);
9795
9903
  }
9796
9904
  return n && t.push(n), r && t.push(r), t;
9797
- }, Wi = ({ options: e, side: t, baseOption: n }) => {
9905
+ }, ea = ({ options: e, side: t, baseOption: n }) => {
9798
9906
  let r = null;
9799
- for (let i of e) if (i.side === t && Bi({
9907
+ for (let i of e) if (i.side === t && Xi({
9800
9908
  baseOption: n,
9801
9909
  candidateOption: i
9802
9910
  })) {
@@ -9807,63 +9915,63 @@ var di = class {
9807
9915
  !r || i.diff !== r.diff || Math.abs(i.delta) < Math.abs(r.delta) && (r = i);
9808
9916
  }
9809
9917
  return r;
9810
- }, Gi = ({ option: e }) => {
9918
+ }, ta = ({ option: e }) => {
9811
9919
  let { side: t, kind: n, guide: { distance: r } } = e;
9812
9920
  return {
9813
9921
  side: t,
9814
9922
  kind: n,
9815
9923
  distance: r
9816
9924
  };
9817
- }, Ki = ({ option: e, context: t }) => {
9925
+ }, na = ({ option: e, context: t }) => {
9818
9926
  let { side: n, kind: r, distance: i } = t, { side: a, kind: o, guide: { distance: s } } = e;
9819
9927
  return n !== a || r !== o ? !1 : Math.abs(s - i) <= 1;
9820
- }, qi = ({ options: e, context: t }) => {
9928
+ }, ra = ({ options: e, context: t }) => {
9821
9929
  if (!t) return null;
9822
- for (let n of e) if (Ki({
9930
+ for (let n of e) if (na({
9823
9931
  option: n,
9824
9932
  context: t
9825
9933
  })) return n;
9826
9934
  return null;
9827
- }, Ji = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
9828
- let i = qi({
9935
+ }, ia = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
9936
+ let i = ra({
9829
9937
  options: e,
9830
9938
  context: n
9831
9939
  });
9832
9940
  if (!i) return t;
9833
9941
  let a = Math.max(0, r);
9834
9942
  return a === 0 || Math.abs(t.delta - i.delta) >= a ? t : i;
9835
- }, Yi = ({ guides: e, seenGuideKeys: t, guide: n }) => {
9943
+ }, aa = ({ guides: e, seenGuideKeys: t, guide: n }) => {
9836
9944
  let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = n, u = `${r}:${i}:${a}:${o}:${s}:${c}:${l}`;
9837
9945
  t.has(u) || (t.add(u), e.push(n));
9838
- }, Xi = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
9946
+ }, oa = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
9839
9947
  if (!e.length) return {
9840
9948
  delta: 0,
9841
9949
  guides: [],
9842
9950
  context: null
9843
9951
  };
9844
- let r = Ui({ options: e }), i = [];
9952
+ let r = $i({ options: e }), i = [];
9845
9953
  for (let e of r) e.kind === "reference" && i.push(e);
9846
- let a = i.length > 0, o = a ? i : r, s = Ji({
9954
+ let a = i.length > 0, o = a ? i : r, s = ia({
9847
9955
  options: o,
9848
- bestOption: Vi({ options: o }),
9956
+ bestOption: Zi({ options: o }),
9849
9957
  previousContext: t,
9850
9958
  switchDistance: n
9851
- }), c = Wi({
9959
+ }), c = ea({
9852
9960
  options: o,
9853
9961
  side: "before",
9854
9962
  baseOption: s
9855
- }), l = Wi({
9963
+ }), l = ea({
9856
9964
  options: o,
9857
9965
  side: "after",
9858
9966
  baseOption: s
9859
- }), u = Wi({
9967
+ }), u = ea({
9860
9968
  options: a ? r : o,
9861
9969
  side: "center",
9862
9970
  baseOption: s
9863
9971
  }), d = [];
9864
9972
  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);
9865
9973
  let f = [], p = /* @__PURE__ */ new Set();
9866
- for (let e of d) Yi({
9974
+ for (let e of d) aa({
9867
9975
  guides: f,
9868
9976
  seenGuideKeys: p,
9869
9977
  guide: e.guide
@@ -9871,15 +9979,15 @@ var di = class {
9871
9979
  return {
9872
9980
  delta: s.delta,
9873
9981
  guides: f,
9874
- context: Gi({ option: s })
9982
+ context: ta({ option: s })
9875
9983
  };
9876
- }, Zi = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
9877
- let s = n - (e - r), c = Mi({
9984
+ }, sa = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
9985
+ let s = n - (e - r), c = Hi({
9878
9986
  value: s,
9879
9987
  step: o
9880
9988
  }), l = Math.max(1, Math.ceil(a / Math.max(o, 1))), u = null;
9881
9989
  for (let d = -l; d <= l; d += 1) {
9882
- let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = ki({
9990
+ let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = zi({
9883
9991
  firstDistance: m,
9884
9992
  secondDistance: h
9885
9993
  });
@@ -9894,13 +10002,13 @@ var di = class {
9894
10002
  });
9895
10003
  }
9896
10004
  return u;
9897
- }, Qi = ({ currentGap: e, referenceGap: t }) => {
9898
- let { secondDisplayDistance: n, displayDistanceDiff: r } = ki({
10005
+ }, ca = ({ currentGap: e, referenceGap: t }) => {
10006
+ let { secondDisplayDistance: n, displayDistanceDiff: r } = zi({
9899
10007
  firstDistance: e,
9900
10008
  secondDistance: t
9901
10009
  });
9902
10010
  return r > 1 ? null : n;
9903
- }, $i = ({ anchors: e, positions: t, threshold: n }) => {
10011
+ }, la = ({ anchors: e, positions: t, threshold: n }) => {
9904
10012
  let r = 0, i = n + 1, a = null;
9905
10013
  for (let o of t) for (let t of e) {
9906
10014
  let e = Math.abs(t - o);
@@ -9910,8 +10018,8 @@ var di = class {
9910
10018
  delta: r,
9911
10019
  guidePosition: a
9912
10020
  };
9913
- }, ea = ({ activeBounds: e, threshold: t, anchors: n }) => {
9914
- let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = $i({
10021
+ }, ua = ({ activeBounds: e, threshold: t, anchors: n }) => {
10022
+ let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = la({
9915
10023
  anchors: n.vertical,
9916
10024
  positions: [
9917
10025
  r,
@@ -9919,7 +10027,7 @@ var di = class {
9919
10027
  i
9920
10028
  ],
9921
10029
  threshold: t
9922
- }), u = $i({
10030
+ }), u = la({
9923
10031
  anchors: n.horizontal,
9924
10032
  positions: [
9925
10033
  o,
@@ -9939,11 +10047,11 @@ var di = class {
9939
10047
  deltaY: u.delta,
9940
10048
  guides: d
9941
10049
  };
9942
- }, ta = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
10050
+ }, da = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
9943
10051
  let { centerX: o, top: s, bottom: c, left: l, right: u } = e, d = [];
9944
10052
  for (let e of t) {
9945
10053
  let { left: t, right: n } = e;
9946
- Ai({
10054
+ Bi({
9947
10055
  firstStart: t,
9948
10056
  firstEnd: n,
9949
10057
  secondStart: l,
@@ -9963,22 +10071,22 @@ var di = class {
9963
10071
  f.push({
9964
10072
  bounds: e,
9965
10073
  isActive: !0
9966
- }), Fi({
10074
+ }), Gi({
9967
10075
  items: f,
9968
10076
  axis: "top"
9969
10077
  });
9970
- let p = Li({ items: f });
10078
+ let p = qi({ items: f });
9971
10079
  if (p === -1) return {
9972
10080
  delta: 0,
9973
10081
  guides: [],
9974
10082
  context: null
9975
10083
  };
9976
- let m = [], h = c - s, g = Ii({
10084
+ let m = [], h = c - s, g = Ki({
9977
10085
  items: f,
9978
10086
  index: p,
9979
10087
  axis: "vertical",
9980
10088
  direction: "prev"
9981
- }), _ = Ii({
10089
+ }), _ = Ki({
9982
10090
  items: f,
9983
10091
  index: p,
9984
10092
  axis: "vertical",
@@ -9987,19 +10095,19 @@ var di = class {
9987
10095
  if (v && y) {
9988
10096
  let { bounds: e } = v, { bounds: t } = y, { bottom: r } = e, { top: i } = t, a = i - r - h;
9989
10097
  if (a >= 0) {
9990
- let e = Mi({
10098
+ let e = Hi({
9991
10099
  value: a / 2,
9992
10100
  step: 1
9993
10101
  }), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
9994
10102
  if (Math.max(u, d) <= n) {
9995
- let t = Zi({
10103
+ let t = sa({
9996
10104
  activeStart: s,
9997
10105
  activeEnd: c,
9998
10106
  targetGap: e,
9999
10107
  beforeEdge: r,
10000
10108
  afterEdge: i,
10001
10109
  threshold: n,
10002
- step: Di
10110
+ step: Li
10003
10111
  });
10004
10112
  if (t) {
10005
10113
  let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
@@ -10036,16 +10144,16 @@ var di = class {
10036
10144
  }
10037
10145
  for (let e of r) {
10038
10146
  let { axis: t, start: r, end: i, distance: a } = e;
10039
- if (!Ni({
10147
+ if (!Ui({
10040
10148
  value: a,
10041
10149
  step: .5
10042
- }) || !Ri({
10150
+ }) || !Ji({
10043
10151
  patternAxis: t,
10044
10152
  activeRangeStart: l,
10045
10153
  activeRangeEnd: u,
10046
10154
  tolerance: n
10047
10155
  })) continue;
10048
- let d = zi({
10156
+ let d = Yi({
10049
10157
  patternStart: r,
10050
10158
  patternEnd: i,
10051
10159
  activeStart: s,
@@ -10053,12 +10161,12 @@ var di = class {
10053
10161
  });
10054
10162
  if (d) {
10055
10163
  if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
10056
- let e = Mi({
10164
+ let e = Hi({
10057
10165
  value: a - b,
10058
10166
  step: 1
10059
10167
  }), t = s + e, { bottom: c } = S, l = t - c, u = Math.abs(l - a);
10060
10168
  if (u > n) continue;
10061
- let d = Qi({
10169
+ let d = ca({
10062
10170
  currentGap: l,
10063
10171
  referenceGap: a
10064
10172
  });
@@ -10082,12 +10190,12 @@ var di = class {
10082
10190
  });
10083
10191
  }
10084
10192
  if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
10085
- let e = Mi({
10193
+ let e = Hi({
10086
10194
  value: x - a,
10087
10195
  step: 1
10088
10196
  }), t = c + e, { top: s } = C, l = s - t, u = Math.abs(l - a);
10089
10197
  if (u > n) continue;
10090
- let d = Qi({
10198
+ let d = ca({
10091
10199
  currentGap: l,
10092
10200
  referenceGap: a
10093
10201
  });
@@ -10112,16 +10220,16 @@ var di = class {
10112
10220
  }
10113
10221
  }
10114
10222
  }
10115
- return Xi({
10223
+ return oa({
10116
10224
  options: m,
10117
10225
  previousContext: i,
10118
10226
  switchDistance: a
10119
10227
  });
10120
- }, na = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
10228
+ }, fa = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
10121
10229
  let { centerY: o, left: s, right: c, top: l, bottom: u } = e, d = [];
10122
10230
  for (let e of t) {
10123
10231
  let { top: t, bottom: n } = e;
10124
- Ai({
10232
+ Bi({
10125
10233
  firstStart: t,
10126
10234
  firstEnd: n,
10127
10235
  secondStart: l,
@@ -10141,22 +10249,22 @@ var di = class {
10141
10249
  f.push({
10142
10250
  bounds: e,
10143
10251
  isActive: !0
10144
- }), Fi({
10252
+ }), Gi({
10145
10253
  items: f,
10146
10254
  axis: "left"
10147
10255
  });
10148
- let p = Li({ items: f });
10256
+ let p = qi({ items: f });
10149
10257
  if (p === -1) return {
10150
10258
  delta: 0,
10151
10259
  guides: [],
10152
10260
  context: null
10153
10261
  };
10154
- let m = [], h = c - s, g = Ii({
10262
+ let m = [], h = c - s, g = Ki({
10155
10263
  items: f,
10156
10264
  index: p,
10157
10265
  axis: "horizontal",
10158
10266
  direction: "prev"
10159
- }), _ = Ii({
10267
+ }), _ = Ki({
10160
10268
  items: f,
10161
10269
  index: p,
10162
10270
  axis: "horizontal",
@@ -10165,19 +10273,19 @@ var di = class {
10165
10273
  if (v && y) {
10166
10274
  let { bounds: e } = v, { bounds: t } = y, { right: r } = e, { left: i } = t, a = i - r - h;
10167
10275
  if (a >= 0) {
10168
- let e = Mi({
10276
+ let e = Hi({
10169
10277
  value: a / 2,
10170
10278
  step: 1
10171
10279
  }), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
10172
10280
  if (Math.max(u, d) <= n) {
10173
- let t = Zi({
10281
+ let t = sa({
10174
10282
  activeStart: s,
10175
10283
  activeEnd: c,
10176
10284
  targetGap: e,
10177
10285
  beforeEdge: r,
10178
10286
  afterEdge: i,
10179
10287
  threshold: n,
10180
- step: Di
10288
+ step: Li
10181
10289
  });
10182
10290
  if (t) {
10183
10291
  let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
@@ -10214,16 +10322,16 @@ var di = class {
10214
10322
  }
10215
10323
  for (let e of r) {
10216
10324
  let { axis: t, start: r, end: i, distance: a } = e;
10217
- if (!Ni({
10325
+ if (!Ui({
10218
10326
  value: a,
10219
10327
  step: .5
10220
- }) || !Ri({
10328
+ }) || !Ji({
10221
10329
  patternAxis: t,
10222
10330
  activeRangeStart: l,
10223
10331
  activeRangeEnd: u,
10224
10332
  tolerance: n
10225
10333
  })) continue;
10226
- let d = zi({
10334
+ let d = Yi({
10227
10335
  patternStart: r,
10228
10336
  patternEnd: i,
10229
10337
  activeStart: s,
@@ -10231,12 +10339,12 @@ var di = class {
10231
10339
  });
10232
10340
  if (d) {
10233
10341
  if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
10234
- let e = Mi({
10342
+ let e = Hi({
10235
10343
  value: a - b,
10236
10344
  step: 1
10237
10345
  }), t = s + e, { right: c } = S, l = t - c, u = Math.abs(l - a);
10238
10346
  if (u > n) continue;
10239
- let d = Qi({
10347
+ let d = ca({
10240
10348
  currentGap: l,
10241
10349
  referenceGap: a
10242
10350
  });
@@ -10260,12 +10368,12 @@ var di = class {
10260
10368
  });
10261
10369
  }
10262
10370
  if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
10263
- let e = Mi({
10371
+ let e = Hi({
10264
10372
  value: x - a,
10265
10373
  step: 1
10266
10374
  }), t = c + e, { left: s } = C, l = s - t, u = Math.abs(l - a);
10267
10375
  if (u > n) continue;
10268
- let d = Qi({
10376
+ let d = ca({
10269
10377
  currentGap: l,
10270
10378
  referenceGap: a
10271
10379
  });
@@ -10290,20 +10398,20 @@ var di = class {
10290
10398
  }
10291
10399
  }
10292
10400
  }
10293
- return Xi({
10401
+ return oa({
10294
10402
  options: m,
10295
10403
  previousContext: i,
10296
10404
  switchDistance: a
10297
10405
  });
10298
- }, ra = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
10299
- let { vertical: o = null, horizontal: s = null } = i ?? {}, c = ta({
10406
+ }, pa = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
10407
+ let { vertical: o = null, horizontal: s = null } = i ?? {}, c = da({
10300
10408
  activeBounds: e,
10301
10409
  candidates: t,
10302
10410
  threshold: n,
10303
10411
  patterns: r.vertical,
10304
10412
  previousContext: o,
10305
10413
  switchDistance: a
10306
- }), l = na({
10414
+ }), l = fa({
10307
10415
  activeBounds: e,
10308
10416
  candidates: t,
10309
10417
  threshold: n,
@@ -10322,14 +10430,14 @@ var di = class {
10322
10430
  horizontal: l.context
10323
10431
  }
10324
10432
  };
10325
- }, ia = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
10433
+ }, ma = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
10326
10434
  let o = Math.min(a, r / 2, i / 2);
10327
10435
  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();
10328
- }, aa = ({ 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 }) => {
10436
+ }, ha = ({ 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 }) => {
10329
10437
  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;
10330
10438
  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";
10331
10439
  let S = e.measureText(a).width + _ * 2, C = g + _ * 2, w = b - S / 2, T = x - C / 2;
10332
- e.beginPath(), ia({
10440
+ e.beginPath(), ma({
10333
10441
  context: e,
10334
10442
  x: w,
10335
10443
  y: T,
@@ -10337,11 +10445,11 @@ var di = class {
10337
10445
  height: C,
10338
10446
  radius: v
10339
10447
  }), e.fill(), e.fillStyle = c, e.fillText(a, b, x), e.restore();
10340
- }, oa = ({ context: e, guide: t, zoom: n }) => {
10341
- let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Oi({ distance: l }).toString();
10448
+ }, ga = ({ context: e, guide: t, zoom: n }) => {
10449
+ let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Ri({ distance: l }).toString();
10342
10450
  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();
10343
- let d = Ei;
10344
- aa({
10451
+ let d = Ii;
10452
+ ha({
10345
10453
  context: e,
10346
10454
  type: r,
10347
10455
  axis: i,
@@ -10351,7 +10459,7 @@ var di = class {
10351
10459
  zoom: n,
10352
10460
  color: d,
10353
10461
  lineWidth: 1
10354
- }), aa({
10462
+ }), ha({
10355
10463
  context: e,
10356
10464
  type: r,
10357
10465
  axis: i,
@@ -10362,10 +10470,10 @@ var di = class {
10362
10470
  color: d,
10363
10471
  lineWidth: 1
10364
10472
  });
10365
- }, sa = ({ anchors: e, bounds: t }) => {
10473
+ }, _a = ({ anchors: e, bounds: t }) => {
10366
10474
  let { left: n, right: r, centerX: i, top: a, bottom: o, centerY: s } = t;
10367
10475
  e.vertical.push(n, i, r), e.horizontal.push(a, s, o);
10368
- }, ca = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
10476
+ }, va = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
10369
10477
  let i = [], a = n === "top" ? "left" : "top", o = r === "bottom" ? "right" : "bottom", s = [...e].sort((e, t) => e[n] - t[n]);
10370
10478
  for (let e = 0; e < s.length; e += 1) {
10371
10479
  let c = s[e], l = null, u = Infinity;
@@ -10386,35 +10494,35 @@ var di = class {
10386
10494
  });
10387
10495
  }
10388
10496
  return i;
10389
- }, la = ({ bounds: e }) => ({
10390
- vertical: ca({
10497
+ }, ya = ({ bounds: e }) => ({
10498
+ vertical: va({
10391
10499
  bounds: e,
10392
10500
  axis: "centerX",
10393
10501
  type: "vertical",
10394
10502
  primaryStart: "top",
10395
10503
  primaryEnd: "bottom"
10396
10504
  }),
10397
- horizontal: ca({
10505
+ horizontal: va({
10398
10506
  bounds: e,
10399
10507
  axis: "centerY",
10400
10508
  type: "horizontal",
10401
10509
  primaryStart: "left",
10402
10510
  primaryEnd: "right"
10403
10511
  })
10404
- }), ua = [
10512
+ }), ba = [
10405
10513
  "montage-area",
10406
10514
  "background",
10407
10515
  "interaction-blocker"
10408
- ], da = ({ activeObject: t }) => {
10516
+ ], xa = ({ activeObject: t }) => {
10409
10517
  let n = /* @__PURE__ */ new Set();
10410
10518
  return t ? (n.add(t), t instanceof e && t.getObjects().forEach((e) => n.add(e)), n) : n;
10411
- }, fa = ({ object: e, excluded: t, ignoredIds: n = ua }) => {
10519
+ }, Sa = ({ object: e, excluded: t, ignoredIds: n = ba }) => {
10412
10520
  if (t.has(e)) return !0;
10413
10521
  let { visible: r = !0 } = e;
10414
10522
  if (!r) return !0;
10415
10523
  let { id: i } = e;
10416
10524
  return !!(i && n.includes(i));
10417
- }, pa = class e {
10525
+ }, Ca = class e {
10418
10526
  constructor({ editor: e }) {
10419
10527
  this.anchors = {
10420
10528
  vertical: [],
@@ -10467,7 +10575,7 @@ var di = class {
10467
10575
  this._clearSpacingContexts(), this._clearGuides();
10468
10576
  return;
10469
10577
  }
10470
- let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = ea({
10578
+ let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = ua({
10471
10579
  activeBounds: a,
10472
10580
  threshold: c,
10473
10581
  anchors: this.anchors
@@ -10479,7 +10587,7 @@ var di = class {
10479
10587
  top: t + u
10480
10588
  }), n.setCoords(), a = Ht({ object: n }) ?? a;
10481
10589
  }
10482
- let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = ra({
10590
+ let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = pa({
10483
10591
  activeBounds: a,
10484
10592
  candidates: d,
10485
10593
  threshold: f,
@@ -10500,11 +10608,11 @@ var di = class {
10500
10608
  target: n,
10501
10609
  transform: i
10502
10610
  });
10503
- let h = Ht({ object: n }) ?? a, g = ea({
10611
+ let h = Ht({ object: n }) ?? a, g = ua({
10504
10612
  activeBounds: h,
10505
10613
  threshold: c,
10506
10614
  anchors: this.anchors
10507
- }), _ = ra({
10615
+ }), _ = pa({
10508
10616
  activeBounds: h,
10509
10617
  candidates: d,
10510
10618
  threshold: c,
@@ -10735,9 +10843,9 @@ var di = class {
10735
10843
  let { canvas: e, guideBounds: t } = this, n = e.getSelectionContext();
10736
10844
  if (!n) return;
10737
10845
  let { left: r, right: i, top: a, bottom: o } = t ?? this._calculateViewportBounds(), { viewportTransform: s } = e, c = e.getZoom() || 1;
10738
- n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Ei, n.setLineDash([4, 4]);
10846
+ n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Ii, n.setLineDash([4, 4]);
10739
10847
  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();
10740
- for (let e of this.activeSpacingGuides) oa({
10848
+ for (let e of this.activeSpacingGuides) ga({
10741
10849
  context: n,
10742
10850
  guide: e,
10743
10851
  zoom: c
@@ -10948,14 +11056,14 @@ var di = class {
10948
11056
  }, r = [];
10949
11057
  for (let e of t) {
10950
11058
  let t = Ht({ object: e });
10951
- t && (sa({
11059
+ t && (_a({
10952
11060
  anchors: n,
10953
11061
  bounds: t
10954
11062
  }), r.push(t));
10955
11063
  }
10956
11064
  let { montageArea: i } = this.editor, a = Ht({ object: i });
10957
11065
  if (a) {
10958
- sa({
11066
+ _a({
10959
11067
  anchors: n,
10960
11068
  bounds: a
10961
11069
  });
@@ -10967,12 +11075,12 @@ var di = class {
10967
11075
  bottom: i
10968
11076
  };
10969
11077
  } else this.guideBounds = this._calculateViewportBounds();
10970
- this.anchors = n, this.spacingPatterns = la({ bounds: r }), this.cachedTargetBounds = r;
11078
+ this.anchors = n, this.spacingPatterns = ya({ bounds: r }), this.cachedTargetBounds = r;
10971
11079
  }
10972
11080
  _collectTargets({ activeObject: e }) {
10973
- let t = da({ activeObject: e }), n = [];
11081
+ let t = xa({ activeObject: e }), n = [];
10974
11082
  return this.canvas.forEachObject((e) => {
10975
- fa({
11083
+ Sa({
10976
11084
  object: e,
10977
11085
  excluded: t
10978
11086
  }) || n.push(e);
@@ -10995,7 +11103,7 @@ var di = class {
10995
11103
  bottom: (r - s) / a
10996
11104
  };
10997
11105
  }
10998
- }, ma = "#3D8BF4", ha = class e {
11106
+ }, wa = "#3D8BF4", Ta = class e {
10999
11107
  constructor({ editor: e }) {
11000
11108
  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();
11001
11109
  }
@@ -11088,8 +11196,8 @@ var di = class {
11088
11196
  this.isTargetMontageArea = l, this.activeGuides = d, this._hideToolbar(), n.requestRenderAll();
11089
11197
  }
11090
11198
  static _resolveTarget({ event: e, activeObject: t }) {
11091
- let { target: n } = e, r = da({ activeObject: t });
11092
- return n && !fa({
11199
+ let { target: n } = e, r = xa({ activeObject: t });
11200
+ return n && !Sa({
11093
11201
  object: n,
11094
11202
  excluded: r
11095
11203
  }) ? n : null;
@@ -11206,18 +11314,18 @@ var di = class {
11206
11314
  let { canvas: e } = this, t = e.getSelectionContext();
11207
11315
  if (!t) return;
11208
11316
  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;
11209
- t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = ma, t.setLineDash([]);
11317
+ t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = wa, t.setLineDash([]);
11210
11318
  for (let e of this.activeGuides) {
11211
11319
  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;
11212
- t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), aa({
11320
+ t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), ha({
11213
11321
  context: t,
11214
11322
  type: n,
11215
11323
  axis: i,
11216
11324
  start: a,
11217
11325
  end: c,
11218
- text: Oi({ distance: l }).toString(),
11326
+ text: Ri({ distance: l }).toString(),
11219
11327
  zoom: r,
11220
- color: ma,
11328
+ color: wa,
11221
11329
  lineWidth: 1,
11222
11330
  offsetAlongAxis: d,
11223
11331
  offsetPerpendicular: 0
@@ -11235,13 +11343,13 @@ var di = class {
11235
11343
  let { toolbar: e } = this.editor;
11236
11344
  e?.showAfterTemporary?.(), this.isToolbarHidden = !1;
11237
11345
  }
11238
- }, ga = class e {
11346
+ }, Ea = class e {
11239
11347
  constructor(e, t) {
11240
11348
  this.options = t, this.containerId = e, this.editorId = `${e}-${D()}`, this.init();
11241
11349
  }
11242
11350
  async init() {
11243
11351
  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;
11244
- if (ie.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new Kr({ editor: this }), this.historyManager = new wt({ editor: this }), this.toolbar = new Ye({ editor: this }), this.transformManager = new Ft({ editor: this }), this.zoomManager = new It({ editor: this }), this.canvasManager = new Pt({ editor: this }), this.imageManager = new At({ editor: this }), this.layerManager = new qt({ editor: this }), this.shapeManager = new zr({ editor: this }), this.interactionBlocker = new Gt({ editor: this }), this.backgroundManager = new Kt({ editor: this }), this.clipboardManager = new Br({ editor: this }), this.objectLockManager = new Vr({ editor: this }), this.groupingManager = new Hr({ editor: this }), this.selectionManager = new Ur({ editor: this }), this.deletionManager = new Wr({ editor: this }), this.panConstraintManager = new qr({ editor: this }), this.snappingManager = new pa({ editor: this }), this.measurementManager = new ha({ editor: this }), this.fontManager = new z(this.options.fonts ?? []), this.textManager = new bi({ editor: this }), this.templateManager = new Ti({ editor: this }), u && (this.angleIndicator = new Qe({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
11352
+ if (ie.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new ui({ editor: this }), this.historyManager = new wt({ editor: this }), this.toolbar = new Ye({ editor: this }), this.transformManager = new Ft({ editor: this }), this.zoomManager = new It({ editor: this }), this.canvasManager = new Pt({ editor: this }), this.imageManager = new At({ editor: this }), this.layerManager = new qt({ editor: this }), this.shapeManager = new ri({ editor: this }), this.interactionBlocker = new Gt({ editor: this }), this.backgroundManager = new Kt({ editor: this }), this.clipboardManager = new ii({ editor: this }), this.objectLockManager = new ai({ editor: this }), this.groupingManager = new oi({ editor: this }), this.selectionManager = new si({ editor: this }), this.deletionManager = new ci({ editor: this }), this.panConstraintManager = new di({ editor: this }), this.snappingManager = new Ca({ editor: this }), this.measurementManager = new Ta({ editor: this }), this.fontManager = new z(this.options.fonts ?? []), this.textManager = new Ai({ editor: this }), this.templateManager = new Fi({ editor: this }), u && (this.angleIndicator = new Qe({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
11245
11353
  editor: this,
11246
11354
  options: this.options
11247
11355
  }), 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) {
@@ -11349,7 +11457,7 @@ var di = class {
11349
11457
  "U+A640-A69F",
11350
11458
  "U+FE2E-FE2F",
11351
11459
  "U+2116"
11352
- ].join(", "), _a = {
11460
+ ].join(", "), Da = {
11353
11461
  preserveObjectStacking: !0,
11354
11462
  controlsAboveOverlay: !0,
11355
11463
  centeredRotation: !0,
@@ -12203,20 +12311,20 @@ var di = class {
12203
12311
  };
12204
12312
  //#endregion
12205
12313
  //#region src/main.ts
12206
- function va(e, t = {}) {
12314
+ function Oa(e, t = {}) {
12207
12315
  let n = {
12208
- ..._a,
12316
+ ...Da,
12209
12317
  ...t
12210
12318
  }, r = document.getElementById(e);
12211
12319
  if (!r) return Promise.reject(/* @__PURE__ */ Error(`Контейнер с ID "${e}" не найден.`));
12212
12320
  let i = document.createElement("canvas");
12213
12321
  return i.id = `${e}-canvas`, r.appendChild(i), n.editorContainer = r, new Promise((t) => {
12214
12322
  n._onReadyCallback = t;
12215
- let r = new ga(i.id, n);
12323
+ let r = new Ea(i.id, n);
12216
12324
  window[e] = r;
12217
12325
  });
12218
12326
  }
12219
12327
  //#endregion
12220
- export { va as default };
12328
+ export { Oa as default };
12221
12329
 
12222
12330
  //# sourceMappingURL=main.js.map