@anu3ev/fabric-image-editor 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +965 -860
- 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,
|
|
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:
|
|
606
|
-
height:
|
|
605
|
+
width: W({ value: e * n }),
|
|
606
|
+
height: W({ value: t * n })
|
|
607
607
|
};
|
|
608
|
-
},
|
|
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:
|
|
614
|
-
y:
|
|
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
|
-
},
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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:
|
|
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:
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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:
|
|
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 <
|
|
1507
|
-
let t =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1597
|
-
return t ?
|
|
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
|
|
1605
|
-
let n =
|
|
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
|
|
1614
|
-
return
|
|
1613
|
+
function De({ baseInset: e, stroke: t, strokeWidth: n }) {
|
|
1614
|
+
return Ee({
|
|
1615
1615
|
base: e,
|
|
1616
|
-
addition:
|
|
1616
|
+
addition: we({
|
|
1617
1617
|
stroke: t,
|
|
1618
1618
|
strokeWidth: n
|
|
1619
1619
|
})
|
|
1620
1620
|
});
|
|
1621
1621
|
}
|
|
1622
|
-
function
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
1677
|
+
}, Ne = [
|
|
1678
1678
|
"tl",
|
|
1679
1679
|
"tr",
|
|
1680
1680
|
"bl",
|
|
1681
1681
|
"br"
|
|
1682
|
-
],
|
|
1682
|
+
], Pe = ({ transform: e }) => {
|
|
1683
1683
|
let { originX: t, originY: n } = e;
|
|
1684
1684
|
return (t === "center" || t === .5) && (n === "center" || n === .5);
|
|
1685
|
-
},
|
|
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
|
-
|
|
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
|
-
},
|
|
1693
|
-
let e = b.wrapWithFireEvent("scaling", b.wrapWithFixedAnchor((e, t, n, r) =>
|
|
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
|
-
},
|
|
1709
|
+
}, Le = ({ control: e }) => {
|
|
1710
1710
|
let t = new r({
|
|
1711
1711
|
...e,
|
|
1712
|
-
actionHandler:
|
|
1712
|
+
actionHandler: Ie()
|
|
1713
1713
|
});
|
|
1714
1714
|
return t.shapeFreeScaleCornerControl = !0, t;
|
|
1715
|
-
},
|
|
1715
|
+
}, Re = ({ group: e }) => {
|
|
1716
1716
|
let t = { ...e.controls };
|
|
1717
|
-
|
|
1717
|
+
Ne.forEach((n) => {
|
|
1718
1718
|
let r = e.controls[n];
|
|
1719
|
-
r && (r.shapeFreeScaleCornerControl || (t[n] =
|
|
1719
|
+
r && (r.shapeFreeScaleCornerControl || (t[n] = Le({ control: r })));
|
|
1720
1720
|
}), e.controls = t;
|
|
1721
|
-
},
|
|
1722
|
-
function
|
|
1721
|
+
}, ze = "shape-group";
|
|
1722
|
+
function Be() {
|
|
1723
1723
|
return { performLayout() {} };
|
|
1724
1724
|
}
|
|
1725
|
-
function
|
|
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
|
|
1731
|
+
var He = class e extends l {
|
|
1732
1732
|
static {
|
|
1733
|
-
this.type =
|
|
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 =
|
|
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(),
|
|
1757
|
-
let t =
|
|
1758
|
-
t &&
|
|
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:
|
|
1764
|
+
layoutManager: Be()
|
|
1765
1765
|
});
|
|
1766
|
-
return c.layoutManager =
|
|
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
|
-
},
|
|
1780
|
-
y?.setClass && y.setClass(
|
|
1781
|
-
},
|
|
1782
|
-
if (
|
|
1783
|
-
if (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 (
|
|
1786
|
+
if (K(n)) return n;
|
|
1787
1787
|
let { group: r } = n;
|
|
1788
|
-
if (r &&
|
|
1788
|
+
if (r && K(r)) return r;
|
|
1789
1789
|
}
|
|
1790
1790
|
return null;
|
|
1791
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
1814
|
-
shape:
|
|
1815
|
-
text:
|
|
1813
|
+
}, q = ({ group: e }) => ({
|
|
1814
|
+
shape: Ge({ group: e }),
|
|
1815
|
+
text: Ke({ group: e })
|
|
1816
1816
|
}), qe = ({ group: e }) => {
|
|
1817
|
-
|
|
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
|
|
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
|
|
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 {
|
|
4019
|
-
if (!(r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0)) return !1;
|
|
4020
|
-
let { lineFontDefaults:
|
|
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
|
|
4025
|
-
|
|
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
|
-
|
|
4028
|
-
|
|
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
|
|
4035
|
-
if (!
|
|
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 || (
|
|
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 =
|
|
4248
|
+
let n = o ?? t, r = n ? n[e] : void 0;
|
|
4049
4249
|
if (!r) {
|
|
4050
|
-
|
|
4250
|
+
o || (o = {}, c = !0), c ||= (o = { ...o }, !0), o[e] = { ...i }, s = !0;
|
|
4251
|
+
continue;
|
|
4252
|
+
}
|
|
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);
|
|
4257
|
+
}
|
|
4258
|
+
return {
|
|
4259
|
+
lineStyles: o,
|
|
4260
|
+
changed: s
|
|
4261
|
+
};
|
|
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
|
+
}
|
|
4051
4280
|
continue;
|
|
4052
4281
|
}
|
|
4053
|
-
let f =
|
|
4054
|
-
|
|
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);
|
|
4055
4289
|
}
|
|
4056
4290
|
return {
|
|
4057
|
-
|
|
4058
|
-
|
|
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
|
|
4059
4311
|
};
|
|
4060
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 +
|
|
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 +
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 =
|
|
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 =
|
|
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
|
-
},
|
|
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:
|
|
4404
|
+
lineFontDefaults: gn({ lineFontDefaults: i })
|
|
4153
4405
|
};
|
|
4154
|
-
},
|
|
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
|
-
},
|
|
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 =
|
|
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
|
-
},
|
|
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),
|
|
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 ?
|
|
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
|
-
},
|
|
4503
|
+
}, kn = 1, An = 1e-4;
|
|
4252
4504
|
function J({ value: e }) {
|
|
4253
4505
|
return Number(e.toFixed(4));
|
|
4254
4506
|
}
|
|
4255
|
-
function
|
|
4507
|
+
function jn({ rounding: e }) {
|
|
4256
4508
|
return B({ rounding: e }) > 0;
|
|
4257
4509
|
}
|
|
4258
|
-
function
|
|
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(
|
|
4262
|
-
height: Math.max(
|
|
4513
|
+
width: Math.max(kn, e - r),
|
|
4514
|
+
height: Math.max(kn, t - r)
|
|
4263
4515
|
};
|
|
4264
4516
|
}
|
|
4265
|
-
function
|
|
4266
|
-
let a =
|
|
4267
|
-
width: Math.max(
|
|
4268
|
-
height: Math.max(
|
|
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 =
|
|
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
|
|
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)
|
|
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
|
|
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
|
|
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 <=
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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 =
|
|
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
|
|
4401
|
-
return new d(
|
|
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
|
|
4413
|
-
return
|
|
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
|
|
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
|
|
4448
|
-
let n =
|
|
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 :
|
|
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
|
|
4475
|
-
return
|
|
4726
|
+
function Hn({ path: e, rounding: t }) {
|
|
4727
|
+
return jn({ rounding: t }) && Vn({
|
|
4476
4728
|
path: e,
|
|
4477
4729
|
rounding: B({ rounding: t })
|
|
4478
|
-
}) ||
|
|
4730
|
+
}) || Bn({ path: e });
|
|
4479
4731
|
}
|
|
4480
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
4542
|
-
case "polygon": return
|
|
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
|
|
4799
|
+
case "polyline": return Un({
|
|
4548
4800
|
points: e.points,
|
|
4549
4801
|
type: "polyline",
|
|
4550
4802
|
rounding: t
|
|
4551
4803
|
});
|
|
4552
|
-
case "path": return
|
|
4804
|
+
case "path": return Hn({
|
|
4553
4805
|
path: e.path,
|
|
4554
4806
|
rounding: t
|
|
4555
4807
|
});
|
|
4556
|
-
case "svg": return
|
|
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
|
|
4568
|
-
let a = await
|
|
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
|
|
4824
|
+
return Pn({
|
|
4573
4825
|
shape: a,
|
|
4574
4826
|
style: r
|
|
4575
|
-
}),
|
|
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
|
|
4593
|
-
function
|
|
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
|
|
4849
|
+
function Xn({ text: e }) {
|
|
4598
4850
|
return (e.text ?? "").trim().length > 0;
|
|
4599
4851
|
}
|
|
4600
|
-
function
|
|
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 +
|
|
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
|
|
4632
|
-
let s = Math.max(0, n), c = Math.max(0, r), l = Math.max(0, i - s - c), u =
|
|
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
|
|
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 (!
|
|
4900
|
+
if (!Xn({ text: e }) || i({
|
|
4649
4901
|
text: e,
|
|
4650
4902
|
frameWidth: a
|
|
4651
|
-
}) <= s +
|
|
4903
|
+
}) <= s + qn) return a;
|
|
4652
4904
|
if (i({
|
|
4653
4905
|
text: e,
|
|
4654
4906
|
frameWidth: o
|
|
4655
|
-
}) > s +
|
|
4907
|
+
}) > s + qn) return o;
|
|
4656
4908
|
let c = a, l = o;
|
|
4657
|
-
for (let t = 0; t <
|
|
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 +
|
|
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
|
|
4671
|
-
let l = Math.max(1, t), u = Math.max(1, n), d =
|
|
4672
|
-
a || (m =
|
|
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), _ =
|
|
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
|
|
4701
|
-
let a = Math.max(0, Math.max(1, n) - Math.max(1, r)), o =
|
|
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
|
|
4722
|
-
let l = Math.max(1, t), u = Math.max(1, n), d =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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,
|
|
4770
|
-
function
|
|
4771
|
-
let { frame: o, splitByGrapheme: s, textTop: c } =
|
|
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
|
|
4789
|
-
let { width: f, height: p, appliedPadding: m, appliedUserPadding: h } = s ?
|
|
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
|
-
}) :
|
|
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
|
|
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
|
-
},
|
|
4819
|
-
let l =
|
|
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:
|
|
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:
|
|
4833
|
-
resolveMinimumTextFrameWidth:
|
|
5084
|
+
measureTextboxHeightForFrame: Er,
|
|
5085
|
+
resolveMinimumTextFrameWidth: Dr
|
|
4834
5086
|
});
|
|
4835
|
-
for (let t = 0; t <
|
|
5087
|
+
for (let t = 0; t < ir; t += 1) {
|
|
4836
5088
|
let t = Math.max(f, p.requiredHeight);
|
|
4837
|
-
if (t <= f +
|
|
4838
|
-
f = t, p =
|
|
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:
|
|
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:
|
|
4852
|
-
resolveMinimumTextFrameWidth:
|
|
5103
|
+
measureTextboxHeightForFrame: Er,
|
|
5104
|
+
resolveMinimumTextFrameWidth: Dr
|
|
4853
5105
|
});
|
|
4854
5106
|
}
|
|
4855
|
-
return
|
|
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
|
-
},
|
|
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 } =
|
|
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
|
-
|
|
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
|
|
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 (!
|
|
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 =
|
|
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:
|
|
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 +
|
|
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 =
|
|
5200
|
+
e({ width: t }) || (t = xr({
|
|
4949
5201
|
minimumWidth: t,
|
|
4950
5202
|
isWidthValid: e
|
|
4951
5203
|
}));
|
|
4952
|
-
let { layoutResolution: n } = m({ width:
|
|
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 -
|
|
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) :
|
|
5221
|
+
}, _ = f ? Math.max(u, f) : xr({
|
|
4970
5222
|
minimumWidth: u,
|
|
4971
5223
|
isWidthValid: ({ width: e }) => g({ width: e })
|
|
4972
|
-
}), v = m({ width: _ }), y =
|
|
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:
|
|
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
|
|
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 (!
|
|
4990
|
-
let c = Math.max(s, Number.isFinite(i) && i > 0 ? Math.max(Y, i) : Math.max(o, s)), l =
|
|
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:
|
|
5244
|
+
padding: _r({
|
|
4993
5245
|
width: c,
|
|
4994
5246
|
padding: r,
|
|
4995
5247
|
resolvePaddingForWidth: a
|
|
4996
5248
|
})
|
|
4997
|
-
}), u = c, d =
|
|
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
|
|
5255
|
+
return Sr({
|
|
5004
5256
|
minimumWidth: s,
|
|
5005
5257
|
maximumWidth: u,
|
|
5006
5258
|
isWidthValid: ({ width: t }) => {
|
|
5007
|
-
let n =
|
|
5259
|
+
let n = Yn({
|
|
5008
5260
|
width: t,
|
|
5009
|
-
padding:
|
|
5261
|
+
padding: _r({
|
|
5010
5262
|
width: t,
|
|
5011
5263
|
padding: r,
|
|
5012
5264
|
resolvePaddingForWidth: a
|
|
5013
5265
|
})
|
|
5014
5266
|
});
|
|
5015
|
-
return n < f -
|
|
5267
|
+
return n < f - rr ? !1 : !Tr({
|
|
5016
5268
|
text: e,
|
|
5017
5269
|
frameWidth: n
|
|
5018
5270
|
}).hasWrappedLines;
|
|
5019
5271
|
}
|
|
5020
5272
|
});
|
|
5021
|
-
},
|
|
5022
|
-
if (!
|
|
5023
|
-
let r =
|
|
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:
|
|
5277
|
+
padding: _r({
|
|
5026
5278
|
width: e,
|
|
5027
5279
|
padding: t,
|
|
5028
5280
|
resolvePaddingForWidth: n
|
|
5029
5281
|
})
|
|
5030
|
-
}) >= r -
|
|
5031
|
-
return
|
|
5282
|
+
}) >= r - rr;
|
|
5283
|
+
return Sr({
|
|
5032
5284
|
minimumWidth: i,
|
|
5033
|
-
maximumWidth:
|
|
5285
|
+
maximumWidth: xr({
|
|
5034
5286
|
minimumWidth: i,
|
|
5035
5287
|
isWidthValid: a
|
|
5036
5288
|
}),
|
|
5037
5289
|
isWidthValid: a
|
|
5038
5290
|
});
|
|
5039
|
-
},
|
|
5040
|
-
let a =
|
|
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:
|
|
5044
|
-
}), o =
|
|
5295
|
+
padding: Se({ padding: i })
|
|
5296
|
+
}), o = Ar({
|
|
5045
5297
|
text: e,
|
|
5046
5298
|
frameWidth: a.width
|
|
5047
|
-
}), s =
|
|
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:
|
|
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
|
-
},
|
|
5314
|
+
}, hr = ({ text: e, width: t, height: n, padding: r, resolvePaddingForSize: i }) => {
|
|
5063
5315
|
let a = Math.max(Y, n);
|
|
5064
|
-
if (!
|
|
5316
|
+
if (!gr({ text: e })) return a;
|
|
5065
5317
|
let o = Math.max(Y, t), s = a;
|
|
5066
|
-
for (let t = 0; t <
|
|
5067
|
-
let t =
|
|
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 =
|
|
5324
|
+
}), n = Er({
|
|
5073
5325
|
text: e,
|
|
5074
|
-
frameWidth:
|
|
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 +
|
|
5331
|
+
if (c <= s + rr) return c;
|
|
5080
5332
|
s = c;
|
|
5081
5333
|
}
|
|
5082
5334
|
return s;
|
|
5083
5335
|
};
|
|
5084
|
-
function
|
|
5336
|
+
function gr({ text: e }) {
|
|
5085
5337
|
return (e.text ?? "").trim().length > 0;
|
|
5086
5338
|
}
|
|
5087
|
-
function
|
|
5088
|
-
return
|
|
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
|
|
5091
|
-
return
|
|
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
|
|
5097
|
-
return
|
|
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
|
|
5103
|
-
let c =
|
|
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:
|
|
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:
|
|
5117
|
-
resolveMinimumTextFrameWidth:
|
|
5368
|
+
measureTextboxHeightForFrame: Er,
|
|
5369
|
+
resolveMinimumTextFrameWidth: Dr
|
|
5118
5370
|
});
|
|
5119
|
-
for (let t = 0; t <
|
|
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 +
|
|
5122
|
-
u = t, d = n, f =
|
|
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:
|
|
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:
|
|
5136
|
-
resolveMinimumTextFrameWidth:
|
|
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
|
|
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 <
|
|
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
|
|
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 <
|
|
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
|
|
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
|
|
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
|
|
5185
|
-
let n =
|
|
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 =
|
|
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 =
|
|
5195
|
-
return
|
|
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
|
|
5204
|
-
let r =
|
|
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 =
|
|
5214
|
-
return
|
|
5465
|
+
let a = wr({ text: e });
|
|
5466
|
+
return Ir({
|
|
5215
5467
|
text: e,
|
|
5216
5468
|
state: r
|
|
5217
5469
|
}), a;
|
|
5218
5470
|
}
|
|
5219
|
-
function
|
|
5220
|
-
let t =
|
|
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
|
|
5228
|
-
let r =
|
|
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 =
|
|
5235
|
-
return
|
|
5486
|
+
let i = jr({ text: e });
|
|
5487
|
+
return Ir({
|
|
5236
5488
|
text: e,
|
|
5237
5489
|
state: r
|
|
5238
5490
|
}), i;
|
|
5239
5491
|
}
|
|
5240
|
-
function
|
|
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
|
|
5245
|
-
let n = Math.max(Y, t), r =
|
|
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 =
|
|
5252
|
-
return
|
|
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
|
|
5258
|
-
let t =
|
|
5259
|
-
if (t > 0) return
|
|
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
|
|
5516
|
+
return Pr({
|
|
5265
5517
|
text: e,
|
|
5266
5518
|
lineCount: Math.max(n.split("\n").length, 1)
|
|
5267
5519
|
});
|
|
5268
5520
|
}
|
|
5269
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
5576
|
+
}, Wr = ({ state: e, transform: t }) => {
|
|
5325
5577
|
if (!t || e.startTransformOriginX === null && e.startTransformOriginY === null) return !1;
|
|
5326
|
-
let n =
|
|
5578
|
+
let n = zr({ value: t.originX }), r = Br({ value: t.originY });
|
|
5327
5579
|
return n !== e.startTransformOriginX || r !== e.startTransformOriginY;
|
|
5328
|
-
},
|
|
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
|
|
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
|
|
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
|
-
|
|
5589
|
+
Nn({
|
|
5338
5590
|
shape: t,
|
|
5339
|
-
width:
|
|
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:
|
|
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
|
|
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
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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,
|
|
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 (!
|
|
5400
|
-
let i = n, { shape: a, text: o } =
|
|
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 } =
|
|
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
|
-
}),
|
|
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 (!
|
|
5461
|
-
let { canScaleHeight: i, canScaleWidth: a } =
|
|
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 } =
|
|
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 =
|
|
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
|
-
}),
|
|
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 (!
|
|
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 } =
|
|
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 } =
|
|
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 ?
|
|
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) >
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 } =
|
|
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 ??
|
|
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
|
|
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 } =
|
|
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 } =
|
|
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 =
|
|
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 =
|
|
6070
|
+
}), o = Rr({
|
|
5819
6071
|
transform: r,
|
|
5820
6072
|
key: "scaleX"
|
|
5821
|
-
}), s =
|
|
6073
|
+
}), s = Rr({
|
|
5822
6074
|
transform: r,
|
|
5823
6075
|
key: "scaleY"
|
|
5824
|
-
}), c =
|
|
6076
|
+
}), c = Rr({
|
|
5825
6077
|
transform: r,
|
|
5826
6078
|
key: "left"
|
|
5827
|
-
}), l =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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 && (
|
|
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 } =
|
|
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
|
-
},
|
|
6251
|
+
}, Qr = class {
|
|
6000
6252
|
constructor({ canvas: e }) {
|
|
6001
6253
|
this.handleMouseDown = (e) => {
|
|
6002
|
-
let { target: t, e: n, subTargets: r = [] } = e, i =
|
|
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 } =
|
|
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 ||
|
|
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
|
-
|
|
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
|
-
|
|
6281
|
+
K(r) && (this._restoreTextEditingInteractionMode({
|
|
6030
6282
|
group: r,
|
|
6031
6283
|
text: n
|
|
6032
|
-
}),
|
|
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 } =
|
|
6288
|
+
let { text: t } = q({ group: e });
|
|
6037
6289
|
if (t) {
|
|
6038
6290
|
if (e.locked || t.locked) {
|
|
6039
|
-
|
|
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 ||
|
|
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
|
-
},
|
|
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
|
|
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 } =
|
|
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
|
-
},
|
|
6571
|
+
}, ei = "#B4B7BD", ti = 0, ni = 1, ri = class {
|
|
6320
6572
|
constructor({ editor: e }) {
|
|
6321
6573
|
this._handleObjectScaling = (e) => {
|
|
6322
|
-
let t = e.target &&
|
|
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 &&
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (!
|
|
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,
|
|
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 =
|
|
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 =
|
|
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 =
|
|
6710
|
+
}), M = Ee({
|
|
6459
6711
|
base: j,
|
|
6460
6712
|
addition: k
|
|
6461
|
-
}), N =
|
|
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 }) =>
|
|
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
|
|
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 =
|
|
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 }) =>
|
|
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 =
|
|
6804
|
+
}), ae = Ee({
|
|
6553
6805
|
base: U({
|
|
6554
6806
|
width: L,
|
|
6555
6807
|
height: ne
|
|
6556
6808
|
}),
|
|
6557
6809
|
addition: V
|
|
6558
|
-
}),
|
|
6559
|
-
I && (
|
|
6560
|
-
let { shape:
|
|
6561
|
-
if (!
|
|
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 =
|
|
6583
|
-
text: ue.textCaseRaw ??
|
|
6584
|
-
textStyle: this._resolveCurrentTextStyle({ textNode:
|
|
6585
|
-
width: Math.max(1,
|
|
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:
|
|
6850
|
+
manualWidth: W,
|
|
6599
6851
|
shapeTextAutoExpandEnabled: O,
|
|
6600
6852
|
padding: ae,
|
|
6601
|
-
resolvePaddingForWidth: ({ width: e }) =>
|
|
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
|
|
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
|
-
}),
|
|
6619
|
-
if (
|
|
6620
|
-
let
|
|
6621
|
-
this._detachShapeGroupAutoLayout({ group: r }),
|
|
6622
|
-
textNode:
|
|
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(
|
|
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:
|
|
6633
|
-
manualHeight:
|
|
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:
|
|
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)),
|
|
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
|
|
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
|
-
|
|
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 } =
|
|
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
|
-
|
|
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 } =
|
|
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 (
|
|
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 } =
|
|
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
|
-
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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 && (
|
|
7131
|
+
return Math.abs(S - 1) > 1e-4 && (Dn({
|
|
6880
7132
|
textbox: i,
|
|
6881
|
-
base:
|
|
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
|
|
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 }),
|
|
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
|
-
}),
|
|
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
|
|
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
|
|
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 ?
|
|
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:
|
|
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 }) =>
|
|
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
|
-
|
|
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 (!
|
|
7182
|
-
let { shape: r, text: i } =
|
|
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
|
-
|
|
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 ??
|
|
7473
|
+
fill: n ?? t?.shapeFill ?? ei,
|
|
7222
7474
|
stroke: r ?? t?.shapeStroke ?? null,
|
|
7223
|
-
strokeWidth: i ?? t?.shapeStrokeWidth ??
|
|
7475
|
+
strokeWidth: i ?? t?.shapeStrokeWidth ?? ti,
|
|
7224
7476
|
strokeDashArray: s ?? null,
|
|
7225
|
-
opacity: o ?? t?.shapeOpacity ??
|
|
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 (
|
|
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 || !
|
|
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 &&
|
|
7512
|
+
if (e instanceof l && K(e)) return e;
|
|
7261
7513
|
if (!e) {
|
|
7262
7514
|
let e = this.editor.canvas.getActiveObject();
|
|
7263
|
-
if (
|
|
7515
|
+
if (K(e)) return e;
|
|
7264
7516
|
let t = e?.group;
|
|
7265
|
-
return t &&
|
|
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 &&
|
|
7523
|
+
if (r.id === e && K(r)) return r;
|
|
7272
7524
|
}
|
|
7273
7525
|
}
|
|
7274
7526
|
if (e instanceof o) {
|
|
7275
|
-
if (
|
|
7527
|
+
if (K(e)) return e;
|
|
7276
7528
|
let { group: t } = e;
|
|
7277
|
-
if (t &&
|
|
7529
|
+
if (t && K(t)) return t;
|
|
7278
7530
|
}
|
|
7279
7531
|
return null;
|
|
7280
7532
|
}
|
|
7281
|
-
},
|
|
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
|
-
},
|
|
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 =
|
|
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 =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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(
|
|
8244
|
+
return e ? Object.values(li).some((t) => Object.values(t).includes(e)) : !1;
|
|
7993
8245
|
}
|
|
7994
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 =
|
|
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:
|
|
8470
|
+
bottomLeft: bi({
|
|
8219
8471
|
value: this.radiusBottomLeft ?? 0,
|
|
8220
8472
|
min: 0,
|
|
8221
8473
|
max: i
|
|
8222
8474
|
}),
|
|
8223
|
-
bottomRight:
|
|
8475
|
+
bottomRight: bi({
|
|
8224
8476
|
value: this.radiusBottomRight ?? 0,
|
|
8225
8477
|
min: 0,
|
|
8226
8478
|
max: i
|
|
8227
8479
|
}),
|
|
8228
|
-
topLeft:
|
|
8480
|
+
topLeft: bi({
|
|
8229
8481
|
value: this.radiusTopLeft ?? 0,
|
|
8230
8482
|
min: 0,
|
|
8231
8483
|
max: i
|
|
8232
8484
|
}),
|
|
8233
|
-
topRight:
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
8529
|
+
}), p = bi({
|
|
8278
8530
|
value: l,
|
|
8279
8531
|
min: 0,
|
|
8280
8532
|
max: a
|
|
8281
|
-
}), m =
|
|
8533
|
+
}), m = bi({
|
|
8282
8534
|
value: u,
|
|
8283
8535
|
min: 0,
|
|
8284
8536
|
max: a
|
|
8285
|
-
}), h =
|
|
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
|
-
},
|
|
8297
|
-
y?.setClass && y.setClass(
|
|
8298
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
8320
|
-
function
|
|
8571
|
+
}, Ei = 1e-4;
|
|
8572
|
+
function Di(e) {
|
|
8321
8573
|
return !!e && e instanceof _;
|
|
8322
8574
|
}
|
|
8323
|
-
function
|
|
8324
|
-
if (!
|
|
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
|
|
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 (!
|
|
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 } =
|
|
8589
|
+
let { isCornerHandle: i, isHorizontalHandle: a, isVerticalHandle: o } = Ci({ transform: t });
|
|
8338
8590
|
if (!a && !o && !i) return;
|
|
8339
|
-
let s =
|
|
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) <=
|
|
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) >
|
|
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) >
|
|
8623
|
+
Math.abs(t - r.lastAllowedScaleY) > Ei && (M = t);
|
|
8372
8624
|
}
|
|
8373
|
-
if (Math.abs(j - r.lastAllowedScaleX) <=
|
|
8625
|
+
if (Math.abs(j - r.lastAllowedScaleX) <= Ei && Math.abs(M - r.lastAllowedScaleY) <= Ei) return;
|
|
8374
8626
|
}
|
|
8375
|
-
let { appliedWidth: N, dimensionsRounded: P } =
|
|
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
|
-
|
|
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 || !
|
|
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 } =
|
|
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 } =
|
|
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
|
-
|
|
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) =>
|
|
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 (!
|
|
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 (!
|
|
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 =
|
|
8516
|
-
return
|
|
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 =
|
|
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
|
-
},
|
|
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)
|
|
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 =
|
|
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 || (
|
|
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
|
|
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.
|
|
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 =
|
|
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
|
|
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 =
|
|
8943
|
+
let e = yi({ value: L.textCaseRaw });
|
|
8758
8944
|
e !== L.text && L.set({ text: e });
|
|
8759
8945
|
}
|
|
8760
|
-
|
|
8946
|
+
wn({ textbox: L }) && (L.dirty = !0);
|
|
8761
8947
|
let R;
|
|
8762
8948
|
re && (R = M.resolveObjectPlacement({
|
|
8763
8949
|
object: L,
|
|
@@ -8804,151 +8990,143 @@ var di = class {
|
|
|
8804
8990
|
top: te,
|
|
8805
8991
|
originX: L,
|
|
8806
8992
|
originY: ne
|
|
8807
|
-
}), z = a === void 0 ?
|
|
8993
|
+
}), z = a === void 0 ? fi({ textbox: s }) : Xt({
|
|
8808
8994
|
text: c,
|
|
8809
8995
|
range: a
|
|
8810
|
-
}), B = z ?
|
|
8996
|
+
}), B = z ? Zt({
|
|
8811
8997
|
textbox: s,
|
|
8812
8998
|
range: z
|
|
8813
|
-
}) : null, V = {}, H = {}, U = {}, ae, oe,
|
|
8999
|
+
}) : null, V = {}, H = {}, U = {}, ae, W, G, oe, se = mi({
|
|
8814
9000
|
textbox: s,
|
|
8815
9001
|
range: z
|
|
8816
|
-
}),
|
|
8817
|
-
if (h !== void 0 && (B && (H.fontFamily = h),
|
|
8818
|
-
let e =
|
|
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 = !z || se, le = !z;
|
|
9003
|
+
if (h !== void 0 && (B && (H.fontFamily = h), ce && (R.fontFamily = h, le && (U.fontFamily = h))), g !== void 0 && (B && (H.fontSize = g), ce && (R.fontSize = g, le && (U.fontSize = g))), _ !== void 0 && (ae = _ ? "bold" : "normal", z && (V.fontWeight = ae), ce && (R.fontWeight = ae, le && (U.fontWeight = ae))), v !== void 0 && (W = v ? "italic" : "normal", z && (V.fontStyle = W), ce && (R.fontStyle = W, le && (U.fontStyle = W))), y !== void 0 && (z && (V.underline = y), ce && (R.underline = y, le && (U.underline = y))), x !== void 0 && (z && (V.linethrough = x), ce && (R.linethrough = x, le && (U.linethrough = x))), S !== void 0 && (R.textAlign = S), C !== void 0 && (z && (V.fill = C), ce && (R.fill = C, le && (U.fill = C))), w !== void 0 || T !== void 0) {
|
|
9004
|
+
let e = z ? gi({
|
|
8827
9005
|
textbox: s,
|
|
8828
9006
|
range: z,
|
|
8829
9007
|
property: "strokeWidth"
|
|
8830
|
-
}) : void 0, t = z ?
|
|
9008
|
+
}) : void 0, t = z ? gi({
|
|
8831
9009
|
textbox: s,
|
|
8832
9010
|
range: z,
|
|
8833
9011
|
property: "stroke"
|
|
8834
9012
|
}) : void 0;
|
|
8835
|
-
oe =
|
|
9013
|
+
oe = vi({ width: T ?? e ?? s.strokeWidth ?? 0 }), G = _i({
|
|
8836
9014
|
strokeColor: w ?? t ?? s.stroke ?? void 0,
|
|
8837
9015
|
width: oe
|
|
8838
|
-
}), z && (V.stroke =
|
|
9016
|
+
}), z && (V.stroke = G, V.strokeWidth = oe), ce && (R.stroke = G, R.strokeWidth = oe, le && (U.stroke = G, U.strokeWidth = oe));
|
|
8839
9017
|
}
|
|
8840
9018
|
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
|
|
8842
|
-
|
|
8843
|
-
let
|
|
9019
|
+
let ue = s.textCaseRaw ?? c, de = !!s.uppercase, fe = p !== void 0, pe = fe ? p ?? "" : ue, me = b ?? de, he = me !== de;
|
|
9020
|
+
fe || he ? (R.text = me ? yi({ value: pe }) : pe, s.textCaseRaw = pe) : s.textCaseRaw === void 0 && (s.textCaseRaw = ue);
|
|
9021
|
+
let ge = Cn({ stylesList: [
|
|
8844
9022
|
R,
|
|
8845
9023
|
V,
|
|
8846
9024
|
H,
|
|
8847
9025
|
U
|
|
8848
|
-
] }),
|
|
9026
|
+
] }), _e = [
|
|
8849
9027
|
ee,
|
|
8850
9028
|
te,
|
|
8851
9029
|
L,
|
|
8852
9030
|
ne
|
|
8853
|
-
],
|
|
9031
|
+
], ve = [
|
|
8854
9032
|
k,
|
|
8855
9033
|
A,
|
|
8856
9034
|
j,
|
|
8857
9035
|
M
|
|
8858
|
-
],
|
|
8859
|
-
|
|
9036
|
+
], ye = _e.some((e) => e !== void 0), be = ve.some((e) => e !== void 0), xe = Object.prototype.hasOwnProperty.call(R, "width"), Se = be && !ye && !fe && !he && !ge && !xe, Ce = null;
|
|
9037
|
+
Se && (Ce = bn({
|
|
8860
9038
|
textbox: s,
|
|
8861
9039
|
originX: ie.originX,
|
|
8862
9040
|
originY: ie.originY
|
|
8863
|
-
})), s.uppercase =
|
|
8864
|
-
let
|
|
9041
|
+
})), s.uppercase = me, s.set(R);
|
|
9042
|
+
let we = !1;
|
|
8865
9043
|
if (z) {
|
|
8866
|
-
let e =
|
|
9044
|
+
let e = hi({
|
|
8867
9045
|
textbox: s,
|
|
8868
9046
|
styles: V,
|
|
8869
9047
|
range: z
|
|
8870
|
-
}), t = B ?
|
|
9048
|
+
}), t = B ? hi({
|
|
8871
9049
|
textbox: s,
|
|
8872
9050
|
styles: H,
|
|
8873
9051
|
range: B
|
|
8874
9052
|
}) : !1;
|
|
8875
|
-
|
|
9053
|
+
we = e || t;
|
|
8876
9054
|
} else if (Object.keys(U).length) {
|
|
8877
|
-
let e =
|
|
8878
|
-
e && (
|
|
9055
|
+
let e = pi({ textbox: s });
|
|
9056
|
+
e && (we = hi({
|
|
8879
9057
|
textbox: s,
|
|
8880
9058
|
styles: U,
|
|
8881
9059
|
range: e
|
|
8882
9060
|
}));
|
|
8883
9061
|
}
|
|
8884
|
-
let
|
|
9062
|
+
let Te = we && Cn({ stylesList: [
|
|
8885
9063
|
V,
|
|
8886
9064
|
H,
|
|
8887
9065
|
U
|
|
8888
9066
|
] });
|
|
8889
|
-
if (
|
|
8890
|
-
let e =
|
|
9067
|
+
if (we && (s.dirty = !0), B && (h !== void 0 || g !== void 0)) {
|
|
9068
|
+
let e = Qt({
|
|
8891
9069
|
textbox: s,
|
|
8892
9070
|
range: B
|
|
8893
9071
|
}), t = {};
|
|
8894
|
-
h !== void 0 && (t.fontFamily = h), g !== void 0 && (t.fontSize = g),
|
|
9072
|
+
h !== void 0 && (t.fontFamily = h), g !== void 0 && (t.fontSize = g), cn({
|
|
8895
9073
|
textbox: s,
|
|
8896
9074
|
lineIndices: e,
|
|
8897
9075
|
updates: t
|
|
8898
9076
|
});
|
|
8899
9077
|
}
|
|
8900
|
-
if (z && (C !== void 0 || w !== void 0 || T !== void 0)) {
|
|
8901
|
-
let e =
|
|
9078
|
+
if (z && (_ !== void 0 || v !== void 0 || y !== void 0 || x !== void 0 || C !== void 0 || w !== void 0 || T !== void 0)) {
|
|
9079
|
+
let e = $t({
|
|
8902
9080
|
textbox: s,
|
|
8903
9081
|
range: z
|
|
8904
9082
|
}), t = {};
|
|
8905
|
-
C !== void 0 && (t.fill = C), (w !== void 0 || T !== void 0) && (
|
|
9083
|
+
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
9084
|
textbox: s,
|
|
8907
9085
|
lineIndices: e,
|
|
8908
9086
|
updates: t
|
|
8909
9087
|
});
|
|
8910
9088
|
}
|
|
8911
|
-
|
|
9089
|
+
Te && (s.initDimensions(), s.dirty = !0), [
|
|
8912
9090
|
D,
|
|
8913
9091
|
O,
|
|
8914
|
-
...
|
|
9092
|
+
...ve,
|
|
8915
9093
|
N,
|
|
8916
9094
|
P,
|
|
8917
9095
|
F,
|
|
8918
9096
|
I
|
|
8919
9097
|
].some((e) => e !== void 0) && (s.dirty = !0);
|
|
8920
|
-
let { autoExpand:
|
|
8921
|
-
|
|
8922
|
-
let
|
|
9098
|
+
let { autoExpand: Ee } = s, De = m !== void 0, Oe = (m ?? Ee) !== !1;
|
|
9099
|
+
De ? s.autoExpand = m !== !1 : Ee === void 0 && (s.autoExpand = !0);
|
|
9100
|
+
let ke = Oe && !xe && (fe || he || ge);
|
|
8923
9101
|
this._normalizeTextboxAfterContentChange({
|
|
8924
9102
|
textbox: s,
|
|
8925
9103
|
placement: ie,
|
|
8926
|
-
shouldAutoExpand:
|
|
8927
|
-
}),
|
|
9104
|
+
shouldAutoExpand: ke
|
|
9105
|
+
}), Ce && this._restoreTextboxContentPlacement({
|
|
8928
9106
|
textbox: s,
|
|
8929
|
-
contentPlacement:
|
|
9107
|
+
contentPlacement: Ce
|
|
8930
9108
|
}), s.setCoords();
|
|
8931
|
-
let
|
|
9109
|
+
let Ae = {
|
|
8932
9110
|
withoutSave: !!r,
|
|
8933
9111
|
skipRender: !!i
|
|
8934
|
-
},
|
|
9112
|
+
}, je = !!z && Object.keys(V).length > 0, Me = {
|
|
8935
9113
|
textbox: s,
|
|
8936
9114
|
target: t,
|
|
8937
9115
|
style: n,
|
|
8938
|
-
options:
|
|
9116
|
+
options: Ae,
|
|
8939
9117
|
updates: R,
|
|
8940
9118
|
selectionRange: z ?? void 0,
|
|
8941
|
-
selectionStyles:
|
|
9119
|
+
selectionStyles: je ? V : void 0
|
|
8942
9120
|
};
|
|
8943
|
-
o && d.fire("editor:before:text-updated",
|
|
8944
|
-
let
|
|
9121
|
+
o && d.fire("editor:before:text-updated", Me), i || d.requestRenderAll();
|
|
9122
|
+
let Ne = e._getSnapshot(s);
|
|
8945
9123
|
l.resumeHistory(), r || l.saveState();
|
|
8946
|
-
let
|
|
8947
|
-
...
|
|
9124
|
+
let Pe = {
|
|
9125
|
+
...Me,
|
|
8948
9126
|
before: f,
|
|
8949
|
-
after:
|
|
9127
|
+
after: Ne
|
|
8950
9128
|
};
|
|
8951
|
-
return o && d.fire("editor:text-updated",
|
|
9129
|
+
return o && d.fire("editor:text-updated", Pe), s;
|
|
8952
9130
|
}
|
|
8953
9131
|
stylesFromArray(e, t) {
|
|
8954
9132
|
return C.stylesFromArray(e, t);
|
|
@@ -9008,7 +9186,7 @@ var di = class {
|
|
|
9008
9186
|
clampToMontage: r
|
|
9009
9187
|
}));
|
|
9010
9188
|
let a = !1;
|
|
9011
|
-
i || (a =
|
|
9189
|
+
i || (a = wn({ textbox: e }));
|
|
9012
9190
|
let o = !1;
|
|
9013
9191
|
return !i && t && (this.editor.canvasManager.applyObjectPlacement({
|
|
9014
9192
|
object: e,
|
|
@@ -9016,7 +9194,7 @@ var di = class {
|
|
|
9016
9194
|
}), o = !0), (i || a) && (e.dirty = !0), (i || a || o) && e.setCoords(), i || a;
|
|
9017
9195
|
}
|
|
9018
9196
|
_restoreTextboxContentPlacement({ textbox: e, contentPlacement: t }) {
|
|
9019
|
-
let n =
|
|
9197
|
+
let n = bn({
|
|
9020
9198
|
textbox: e,
|
|
9021
9199
|
originX: t.originX,
|
|
9022
9200
|
originY: t.originY
|
|
@@ -9034,85 +9212,12 @@ var di = class {
|
|
|
9034
9212
|
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
9213
|
}
|
|
9036
9214
|
_syncLineFontDefaultsOnTextChanged({ textbox: e }) {
|
|
9037
|
-
let
|
|
9038
|
-
|
|
9039
|
-
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
|
|
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;
|
|
9215
|
+
let t = e.text ?? "", n = hn({
|
|
9216
|
+
textbox: e,
|
|
9217
|
+
previousText: e.__lineDefaultsPrevText ?? t,
|
|
9218
|
+
currentText: t
|
|
9219
|
+
});
|
|
9220
|
+
n.lineFontDefaultsChanged && n.lineFontDefaults && (e.lineFontDefaults = n.lineFontDefaults), n.stylesChanged && (e.styles = n.styles, e.dirty = !0), e.__lineDefaultsPrevText = t;
|
|
9116
9221
|
}
|
|
9117
9222
|
_autoExpandTextboxWidth(e, { placement: t, clampToMontage: n = !0 } = {}) {
|
|
9118
9223
|
let { canvasManager: r, montageArea: i } = this.editor;
|
|
@@ -9125,16 +9230,16 @@ var di = class {
|
|
|
9125
9230
|
if (!Number.isFinite(f) || f <= 0) return !1;
|
|
9126
9231
|
let p = a.split("\n").length, m = !1;
|
|
9127
9232
|
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(
|
|
9233
|
+
let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(vn({
|
|
9129
9234
|
textbox: e,
|
|
9130
9235
|
text: a
|
|
9131
9236
|
})), 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),
|
|
9237
|
+
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
9238
|
object: e,
|
|
9134
9239
|
placement: t
|
|
9135
9240
|
});
|
|
9136
9241
|
let b = !1;
|
|
9137
|
-
return n && (b =
|
|
9242
|
+
return n && (b = xn({
|
|
9138
9243
|
textbox: e,
|
|
9139
9244
|
montageLeft: o,
|
|
9140
9245
|
montageRight: o + s
|
|
@@ -9192,7 +9297,7 @@ var di = class {
|
|
|
9192
9297
|
_getDefaultFontFamily() {
|
|
9193
9298
|
return this.fonts[0]?.family ?? "Arial";
|
|
9194
9299
|
}
|
|
9195
|
-
},
|
|
9300
|
+
}, ji = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Mi = (e) => {
|
|
9196
9301
|
if (!e || typeof e != "object") return null;
|
|
9197
9302
|
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
9303
|
color: typeof e.color == "string" ? e.color : "#000000",
|
|
@@ -9203,7 +9308,7 @@ var di = class {
|
|
|
9203
9308
|
let { x1: e, y1: t, x2: r, y2: i } = n;
|
|
9204
9309
|
if (typeof e == "number" && typeof t == "number" && typeof r == "number" && typeof i == "number") return {
|
|
9205
9310
|
type: "linear",
|
|
9206
|
-
angle:
|
|
9311
|
+
angle: ji({
|
|
9207
9312
|
x1: e,
|
|
9208
9313
|
y1: t,
|
|
9209
9314
|
x2: r,
|
|
@@ -9231,7 +9336,7 @@ var di = class {
|
|
|
9231
9336
|
};
|
|
9232
9337
|
}
|
|
9233
9338
|
return null;
|
|
9234
|
-
},
|
|
9339
|
+
}, Ni = "_templateAnchorX", Pi = "_templateAnchorY", Fi = class t {
|
|
9235
9340
|
constructor({ editor: e }) {
|
|
9236
9341
|
this.editor = e;
|
|
9237
9342
|
}
|
|
@@ -9240,7 +9345,7 @@ var di = class {
|
|
|
9240
9345
|
if (!p.length) return s.emitWarning({
|
|
9241
9346
|
origin: "TemplateManager",
|
|
9242
9347
|
method: "serializeSelection",
|
|
9243
|
-
code:
|
|
9348
|
+
code: li.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
|
|
9244
9349
|
message: "Нет объектов для сериализации шаблона"
|
|
9245
9350
|
}), null;
|
|
9246
9351
|
let m = t._getBounds(o), h = t._getMontageSize({
|
|
@@ -9269,14 +9374,14 @@ var di = class {
|
|
|
9269
9374
|
if (!l?.length) return a.emitWarning({
|
|
9270
9375
|
origin: "TemplateManager",
|
|
9271
9376
|
method: "applyTemplate",
|
|
9272
|
-
code:
|
|
9377
|
+
code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
|
|
9273
9378
|
message: "Шаблон не содержит объектов"
|
|
9274
9379
|
}), null;
|
|
9275
9380
|
let f = t._getBounds(r);
|
|
9276
9381
|
if (!f) return a.emitWarning({
|
|
9277
9382
|
origin: "TemplateManager",
|
|
9278
9383
|
method: "applyTemplate",
|
|
9279
|
-
code:
|
|
9384
|
+
code: li.TEMPLATE_MANAGER.INVALID_TARGET,
|
|
9280
9385
|
message: "Не удалось определить границы монтажной области"
|
|
9281
9386
|
}), null;
|
|
9282
9387
|
let p = t._getMontageSize({
|
|
@@ -9295,7 +9400,7 @@ var di = class {
|
|
|
9295
9400
|
if (!r.length) return a.emitWarning({
|
|
9296
9401
|
origin: "TemplateManager",
|
|
9297
9402
|
method: "applyTemplate",
|
|
9298
|
-
code:
|
|
9403
|
+
code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
|
|
9299
9404
|
message: "Не удалось создать объекты шаблона"
|
|
9300
9405
|
}), null;
|
|
9301
9406
|
let { backgroundObject: i, contentObjects: u } = t._extractBackgroundObject(r);
|
|
@@ -9333,7 +9438,7 @@ var di = class {
|
|
|
9333
9438
|
return a.emitError({
|
|
9334
9439
|
origin: "TemplateManager",
|
|
9335
9440
|
method: "applyTemplate",
|
|
9336
|
-
code:
|
|
9441
|
+
code: li.TEMPLATE_MANAGER.APPLY_FAILED,
|
|
9337
9442
|
message: "Ошибка применения шаблона",
|
|
9338
9443
|
data: {
|
|
9339
9444
|
templateId: d,
|
|
@@ -9487,8 +9592,8 @@ var di = class {
|
|
|
9487
9592
|
baseHeight: a,
|
|
9488
9593
|
scale: n,
|
|
9489
9594
|
useRelativePositions: o,
|
|
9490
|
-
anchorX: t._resolveAnchor(s,
|
|
9491
|
-
anchorY: t._resolveAnchor(s,
|
|
9595
|
+
anchorX: t._resolveAnchor(s, Ni),
|
|
9596
|
+
anchorY: t._resolveAnchor(s, Pi)
|
|
9492
9597
|
})
|
|
9493
9598
|
}), h = f * n, g = p * n, _ = e.originX ?? "center", v = e.originY ?? "center";
|
|
9494
9599
|
e.set({
|
|
@@ -9502,7 +9607,7 @@ var di = class {
|
|
|
9502
9607
|
originX: _,
|
|
9503
9608
|
originY: v
|
|
9504
9609
|
}
|
|
9505
|
-
}), delete s[
|
|
9610
|
+
}), delete s[Ni], delete s[Pi];
|
|
9506
9611
|
}
|
|
9507
9612
|
static _getPositioningBounds({ bounds: e, baseWidth: n, baseHeight: r, scale: i, useRelativePositions: a, anchorX: o, anchorY: s }) {
|
|
9508
9613
|
if (!a) return e;
|
|
@@ -9566,7 +9671,7 @@ var di = class {
|
|
|
9566
9671
|
});
|
|
9567
9672
|
if (!i || !s || !o) return;
|
|
9568
9673
|
e.setCoords();
|
|
9569
|
-
let c = e, l = t._resolveAnchor(c,
|
|
9674
|
+
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
9675
|
e.set("width", i), e.initDimensions();
|
|
9571
9676
|
let g = t._getLongestLineWidth({
|
|
9572
9677
|
textbox: e,
|
|
@@ -9595,10 +9700,10 @@ var di = class {
|
|
|
9595
9700
|
x: (p.left - o) / d,
|
|
9596
9701
|
y: (p.top - s) / f
|
|
9597
9702
|
}, h = (u.left - o) / d, g = (u.top - s) / f, _ = h + u.width / d, v = g + u.height / f;
|
|
9598
|
-
return a[
|
|
9703
|
+
return a[Ni] = t._detectAnchor({
|
|
9599
9704
|
start: h,
|
|
9600
9705
|
end: _
|
|
9601
|
-
}), a[
|
|
9706
|
+
}), a[Pi] = t._detectAnchor({
|
|
9602
9707
|
start: g,
|
|
9603
9708
|
end: v
|
|
9604
9709
|
}), a.left = m.x, a.top = m.y, a;
|
|
@@ -9623,7 +9728,7 @@ var di = class {
|
|
|
9623
9728
|
withoutSave: !0
|
|
9624
9729
|
}), !0;
|
|
9625
9730
|
if (a === "gradient") {
|
|
9626
|
-
let e =
|
|
9731
|
+
let e = Mi(r);
|
|
9627
9732
|
if (e) return n.setGradientBackground({
|
|
9628
9733
|
gradient: e,
|
|
9629
9734
|
customData: o,
|
|
@@ -9644,7 +9749,7 @@ var di = class {
|
|
|
9644
9749
|
r.emitWarning({
|
|
9645
9750
|
origin: "TemplateManager",
|
|
9646
9751
|
method: "applyTemplate",
|
|
9647
|
-
code:
|
|
9752
|
+
code: li.TEMPLATE_MANAGER.APPLY_FAILED,
|
|
9648
9753
|
message: "Не удалось применить фон из шаблона",
|
|
9649
9754
|
data: e
|
|
9650
9755
|
});
|
|
@@ -9680,29 +9785,29 @@ var di = class {
|
|
|
9680
9785
|
enlivenObjectEnlivables(e) {
|
|
9681
9786
|
return C.enlivenObjectEnlivables(e);
|
|
9682
9787
|
}
|
|
9683
|
-
},
|
|
9684
|
-
let n =
|
|
9788
|
+
}, Ii = "#3D8BF4", Li = .5, Ri = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, zi = ({ firstDistance: e, secondDistance: t }) => {
|
|
9789
|
+
let n = Ri({ distance: e }), r = Ri({ distance: t });
|
|
9685
9790
|
return {
|
|
9686
9791
|
firstDisplayDistance: n,
|
|
9687
9792
|
secondDisplayDistance: r,
|
|
9688
9793
|
displayDistanceDiff: Math.abs(n - r),
|
|
9689
9794
|
commonDisplayDistance: Math.max(n, r)
|
|
9690
9795
|
};
|
|
9691
|
-
},
|
|
9796
|
+
}, Bi = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), Vi = ({ step: e }) => {
|
|
9692
9797
|
let t = Math.abs(e).toString(), n = t.indexOf(".");
|
|
9693
9798
|
return n === -1 ? 0 : t.slice(n + 1).length;
|
|
9694
|
-
},
|
|
9799
|
+
}, Hi = ({ value: e, step: t }) => {
|
|
9695
9800
|
if (t === 0) return e;
|
|
9696
|
-
let n =
|
|
9801
|
+
let n = Vi({ step: t }), r = Math.round(e / t) * t;
|
|
9697
9802
|
return Number(r.toFixed(n));
|
|
9698
|
-
},
|
|
9803
|
+
}, Ui = ({ value: e, step: t }) => {
|
|
9699
9804
|
if (t === 0) return !0;
|
|
9700
|
-
let n =
|
|
9805
|
+
let n = Hi({
|
|
9701
9806
|
value: e,
|
|
9702
9807
|
step: t
|
|
9703
|
-
}), r = 10 ** -(
|
|
9808
|
+
}), r = 10 ** -(Vi({ step: t }) + 4);
|
|
9704
9809
|
return Math.abs(n - e) <= r;
|
|
9705
|
-
},
|
|
9810
|
+
}, Wi = ({ bounds: e, axis: t }) => {
|
|
9706
9811
|
let { left: n = 0, right: r = 0, top: i = 0, bottom: a = 0 } = e;
|
|
9707
9812
|
return t === "vertical" ? {
|
|
9708
9813
|
start: i,
|
|
@@ -9711,7 +9816,7 @@ var di = class {
|
|
|
9711
9816
|
start: n,
|
|
9712
9817
|
end: r
|
|
9713
9818
|
};
|
|
9714
|
-
},
|
|
9819
|
+
}, Gi = ({ items: e, axis: t }) => {
|
|
9715
9820
|
for (let n = 1; n < e.length; n += 1) {
|
|
9716
9821
|
let r = e[n], { bounds: i } = r, a = i[t], o = n - 1;
|
|
9717
9822
|
for (; o >= 0;) {
|
|
@@ -9721,10 +9826,10 @@ var di = class {
|
|
|
9721
9826
|
}
|
|
9722
9827
|
e[o + 1] = r;
|
|
9723
9828
|
}
|
|
9724
|
-
},
|
|
9829
|
+
}, Ki = ({ items: e, index: t, axis: n, direction: r }) => {
|
|
9725
9830
|
let i = e[t];
|
|
9726
9831
|
if (!i) return null;
|
|
9727
|
-
let { bounds: a } = i, { start: o, end: s } =
|
|
9832
|
+
let { bounds: a } = i, { start: o, end: s } = Wi({
|
|
9728
9833
|
bounds: a,
|
|
9729
9834
|
axis: n
|
|
9730
9835
|
});
|
|
@@ -9732,7 +9837,7 @@ var di = class {
|
|
|
9732
9837
|
for (let r = t - 1; r >= 0; --r) {
|
|
9733
9838
|
let t = e[r];
|
|
9734
9839
|
if (!t) continue;
|
|
9735
|
-
let { bounds: i } = t, { end: a } =
|
|
9840
|
+
let { bounds: i } = t, { end: a } = Wi({
|
|
9736
9841
|
bounds: i,
|
|
9737
9842
|
axis: n
|
|
9738
9843
|
});
|
|
@@ -9743,26 +9848,26 @@ var di = class {
|
|
|
9743
9848
|
for (let r = t + 1; r < e.length; r += 1) {
|
|
9744
9849
|
let t = e[r];
|
|
9745
9850
|
if (!t) continue;
|
|
9746
|
-
let { bounds: i } = t, { start: a } =
|
|
9851
|
+
let { bounds: i } = t, { start: a } = Wi({
|
|
9747
9852
|
bounds: i,
|
|
9748
9853
|
axis: n
|
|
9749
9854
|
});
|
|
9750
9855
|
if (a - s >= 0) return r;
|
|
9751
9856
|
}
|
|
9752
9857
|
return null;
|
|
9753
|
-
},
|
|
9858
|
+
}, qi = ({ items: e }) => {
|
|
9754
9859
|
for (let t = 0; t < e.length; t += 1) {
|
|
9755
9860
|
let { isActive: n } = e[t];
|
|
9756
9861
|
if (n) return t;
|
|
9757
9862
|
}
|
|
9758
9863
|
return -1;
|
|
9759
|
-
},
|
|
9864
|
+
}, Ji = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
|
|
9760
9865
|
let i = Math.min(t, n), a = Math.max(t, n);
|
|
9761
9866
|
return e >= i - r && e <= a + r;
|
|
9762
|
-
},
|
|
9867
|
+
}, Yi = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, Xi = ({ baseOption: e, candidateOption: t }) => {
|
|
9763
9868
|
let { delta: n, guide: { distance: r } } = e, { delta: i, guide: { distance: a } } = t;
|
|
9764
9869
|
return n === i && r === a;
|
|
9765
|
-
},
|
|
9870
|
+
}, Zi = ({ options: e }) => {
|
|
9766
9871
|
let t = e[0];
|
|
9767
9872
|
for (let n = 1; n < e.length; n += 1) {
|
|
9768
9873
|
let r = e[n];
|
|
@@ -9773,11 +9878,11 @@ var di = class {
|
|
|
9773
9878
|
r.diff === t.diff && Math.abs(r.delta) < Math.abs(t.delta) && (t = r);
|
|
9774
9879
|
}
|
|
9775
9880
|
return t;
|
|
9776
|
-
},
|
|
9881
|
+
}, Qi = ({ currentOption: e, nextOption: t }) => {
|
|
9777
9882
|
if (!e) return !0;
|
|
9778
9883
|
let { contextDistance: n, diff: r, delta: i } = e, { contextDistance: a, diff: o, delta: s } = t;
|
|
9779
9884
|
return a < n ? !0 : a > n ? !1 : o < r ? !0 : o > r ? !1 : Math.abs(s) < Math.abs(i);
|
|
9780
|
-
},
|
|
9885
|
+
}, $i = ({ options: e }) => {
|
|
9781
9886
|
let t = [], n = null, r = null;
|
|
9782
9887
|
for (let i of e) {
|
|
9783
9888
|
let { kind: e, side: a } = i;
|
|
@@ -9785,18 +9890,18 @@ var di = class {
|
|
|
9785
9890
|
t.push(i);
|
|
9786
9891
|
continue;
|
|
9787
9892
|
}
|
|
9788
|
-
a === "before" &&
|
|
9893
|
+
a === "before" && Qi({
|
|
9789
9894
|
currentOption: n,
|
|
9790
9895
|
nextOption: i
|
|
9791
|
-
}) && (n = i), a === "after" &&
|
|
9896
|
+
}) && (n = i), a === "after" && Qi({
|
|
9792
9897
|
currentOption: r,
|
|
9793
9898
|
nextOption: i
|
|
9794
9899
|
}) && (r = i);
|
|
9795
9900
|
}
|
|
9796
9901
|
return n && t.push(n), r && t.push(r), t;
|
|
9797
|
-
},
|
|
9902
|
+
}, ea = ({ options: e, side: t, baseOption: n }) => {
|
|
9798
9903
|
let r = null;
|
|
9799
|
-
for (let i of e) if (i.side === t &&
|
|
9904
|
+
for (let i of e) if (i.side === t && Xi({
|
|
9800
9905
|
baseOption: n,
|
|
9801
9906
|
candidateOption: i
|
|
9802
9907
|
})) {
|
|
@@ -9807,63 +9912,63 @@ var di = class {
|
|
|
9807
9912
|
!r || i.diff !== r.diff || Math.abs(i.delta) < Math.abs(r.delta) && (r = i);
|
|
9808
9913
|
}
|
|
9809
9914
|
return r;
|
|
9810
|
-
},
|
|
9915
|
+
}, ta = ({ option: e }) => {
|
|
9811
9916
|
let { side: t, kind: n, guide: { distance: r } } = e;
|
|
9812
9917
|
return {
|
|
9813
9918
|
side: t,
|
|
9814
9919
|
kind: n,
|
|
9815
9920
|
distance: r
|
|
9816
9921
|
};
|
|
9817
|
-
},
|
|
9922
|
+
}, na = ({ option: e, context: t }) => {
|
|
9818
9923
|
let { side: n, kind: r, distance: i } = t, { side: a, kind: o, guide: { distance: s } } = e;
|
|
9819
9924
|
return n !== a || r !== o ? !1 : Math.abs(s - i) <= 1;
|
|
9820
|
-
},
|
|
9925
|
+
}, ra = ({ options: e, context: t }) => {
|
|
9821
9926
|
if (!t) return null;
|
|
9822
|
-
for (let n of e) if (
|
|
9927
|
+
for (let n of e) if (na({
|
|
9823
9928
|
option: n,
|
|
9824
9929
|
context: t
|
|
9825
9930
|
})) return n;
|
|
9826
9931
|
return null;
|
|
9827
|
-
},
|
|
9828
|
-
let i =
|
|
9932
|
+
}, ia = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
|
|
9933
|
+
let i = ra({
|
|
9829
9934
|
options: e,
|
|
9830
9935
|
context: n
|
|
9831
9936
|
});
|
|
9832
9937
|
if (!i) return t;
|
|
9833
9938
|
let a = Math.max(0, r);
|
|
9834
9939
|
return a === 0 || Math.abs(t.delta - i.delta) >= a ? t : i;
|
|
9835
|
-
},
|
|
9940
|
+
}, aa = ({ guides: e, seenGuideKeys: t, guide: n }) => {
|
|
9836
9941
|
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
9942
|
t.has(u) || (t.add(u), e.push(n));
|
|
9838
|
-
},
|
|
9943
|
+
}, oa = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
|
|
9839
9944
|
if (!e.length) return {
|
|
9840
9945
|
delta: 0,
|
|
9841
9946
|
guides: [],
|
|
9842
9947
|
context: null
|
|
9843
9948
|
};
|
|
9844
|
-
let r =
|
|
9949
|
+
let r = $i({ options: e }), i = [];
|
|
9845
9950
|
for (let e of r) e.kind === "reference" && i.push(e);
|
|
9846
|
-
let a = i.length > 0, o = a ? i : r, s =
|
|
9951
|
+
let a = i.length > 0, o = a ? i : r, s = ia({
|
|
9847
9952
|
options: o,
|
|
9848
|
-
bestOption:
|
|
9953
|
+
bestOption: Zi({ options: o }),
|
|
9849
9954
|
previousContext: t,
|
|
9850
9955
|
switchDistance: n
|
|
9851
|
-
}), c =
|
|
9956
|
+
}), c = ea({
|
|
9852
9957
|
options: o,
|
|
9853
9958
|
side: "before",
|
|
9854
9959
|
baseOption: s
|
|
9855
|
-
}), l =
|
|
9960
|
+
}), l = ea({
|
|
9856
9961
|
options: o,
|
|
9857
9962
|
side: "after",
|
|
9858
9963
|
baseOption: s
|
|
9859
|
-
}), u =
|
|
9964
|
+
}), u = ea({
|
|
9860
9965
|
options: a ? r : o,
|
|
9861
9966
|
side: "center",
|
|
9862
9967
|
baseOption: s
|
|
9863
9968
|
}), d = [];
|
|
9864
9969
|
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
9970
|
let f = [], p = /* @__PURE__ */ new Set();
|
|
9866
|
-
for (let e of d)
|
|
9971
|
+
for (let e of d) aa({
|
|
9867
9972
|
guides: f,
|
|
9868
9973
|
seenGuideKeys: p,
|
|
9869
9974
|
guide: e.guide
|
|
@@ -9871,15 +9976,15 @@ var di = class {
|
|
|
9871
9976
|
return {
|
|
9872
9977
|
delta: s.delta,
|
|
9873
9978
|
guides: f,
|
|
9874
|
-
context:
|
|
9979
|
+
context: ta({ option: s })
|
|
9875
9980
|
};
|
|
9876
|
-
},
|
|
9877
|
-
let s = n - (e - r), c =
|
|
9981
|
+
}, sa = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
|
|
9982
|
+
let s = n - (e - r), c = Hi({
|
|
9878
9983
|
value: s,
|
|
9879
9984
|
step: o
|
|
9880
9985
|
}), l = Math.max(1, Math.ceil(a / Math.max(o, 1))), u = null;
|
|
9881
9986
|
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: _ } =
|
|
9987
|
+
let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = zi({
|
|
9883
9988
|
firstDistance: m,
|
|
9884
9989
|
secondDistance: h
|
|
9885
9990
|
});
|
|
@@ -9894,13 +9999,13 @@ var di = class {
|
|
|
9894
9999
|
});
|
|
9895
10000
|
}
|
|
9896
10001
|
return u;
|
|
9897
|
-
},
|
|
9898
|
-
let { secondDisplayDistance: n, displayDistanceDiff: r } =
|
|
10002
|
+
}, ca = ({ currentGap: e, referenceGap: t }) => {
|
|
10003
|
+
let { secondDisplayDistance: n, displayDistanceDiff: r } = zi({
|
|
9899
10004
|
firstDistance: e,
|
|
9900
10005
|
secondDistance: t
|
|
9901
10006
|
});
|
|
9902
10007
|
return r > 1 ? null : n;
|
|
9903
|
-
},
|
|
10008
|
+
}, la = ({ anchors: e, positions: t, threshold: n }) => {
|
|
9904
10009
|
let r = 0, i = n + 1, a = null;
|
|
9905
10010
|
for (let o of t) for (let t of e) {
|
|
9906
10011
|
let e = Math.abs(t - o);
|
|
@@ -9910,8 +10015,8 @@ var di = class {
|
|
|
9910
10015
|
delta: r,
|
|
9911
10016
|
guidePosition: a
|
|
9912
10017
|
};
|
|
9913
|
-
},
|
|
9914
|
-
let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l =
|
|
10018
|
+
}, ua = ({ activeBounds: e, threshold: t, anchors: n }) => {
|
|
10019
|
+
let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = la({
|
|
9915
10020
|
anchors: n.vertical,
|
|
9916
10021
|
positions: [
|
|
9917
10022
|
r,
|
|
@@ -9919,7 +10024,7 @@ var di = class {
|
|
|
9919
10024
|
i
|
|
9920
10025
|
],
|
|
9921
10026
|
threshold: t
|
|
9922
|
-
}), u =
|
|
10027
|
+
}), u = la({
|
|
9923
10028
|
anchors: n.horizontal,
|
|
9924
10029
|
positions: [
|
|
9925
10030
|
o,
|
|
@@ -9939,11 +10044,11 @@ var di = class {
|
|
|
9939
10044
|
deltaY: u.delta,
|
|
9940
10045
|
guides: d
|
|
9941
10046
|
};
|
|
9942
|
-
},
|
|
10047
|
+
}, da = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
|
|
9943
10048
|
let { centerX: o, top: s, bottom: c, left: l, right: u } = e, d = [];
|
|
9944
10049
|
for (let e of t) {
|
|
9945
10050
|
let { left: t, right: n } = e;
|
|
9946
|
-
|
|
10051
|
+
Bi({
|
|
9947
10052
|
firstStart: t,
|
|
9948
10053
|
firstEnd: n,
|
|
9949
10054
|
secondStart: l,
|
|
@@ -9963,22 +10068,22 @@ var di = class {
|
|
|
9963
10068
|
f.push({
|
|
9964
10069
|
bounds: e,
|
|
9965
10070
|
isActive: !0
|
|
9966
|
-
}),
|
|
10071
|
+
}), Gi({
|
|
9967
10072
|
items: f,
|
|
9968
10073
|
axis: "top"
|
|
9969
10074
|
});
|
|
9970
|
-
let p =
|
|
10075
|
+
let p = qi({ items: f });
|
|
9971
10076
|
if (p === -1) return {
|
|
9972
10077
|
delta: 0,
|
|
9973
10078
|
guides: [],
|
|
9974
10079
|
context: null
|
|
9975
10080
|
};
|
|
9976
|
-
let m = [], h = c - s, g =
|
|
10081
|
+
let m = [], h = c - s, g = Ki({
|
|
9977
10082
|
items: f,
|
|
9978
10083
|
index: p,
|
|
9979
10084
|
axis: "vertical",
|
|
9980
10085
|
direction: "prev"
|
|
9981
|
-
}), _ =
|
|
10086
|
+
}), _ = Ki({
|
|
9982
10087
|
items: f,
|
|
9983
10088
|
index: p,
|
|
9984
10089
|
axis: "vertical",
|
|
@@ -9987,19 +10092,19 @@ var di = class {
|
|
|
9987
10092
|
if (v && y) {
|
|
9988
10093
|
let { bounds: e } = v, { bounds: t } = y, { bottom: r } = e, { top: i } = t, a = i - r - h;
|
|
9989
10094
|
if (a >= 0) {
|
|
9990
|
-
let e =
|
|
10095
|
+
let e = Hi({
|
|
9991
10096
|
value: a / 2,
|
|
9992
10097
|
step: 1
|
|
9993
10098
|
}), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
|
|
9994
10099
|
if (Math.max(u, d) <= n) {
|
|
9995
|
-
let t =
|
|
10100
|
+
let t = sa({
|
|
9996
10101
|
activeStart: s,
|
|
9997
10102
|
activeEnd: c,
|
|
9998
10103
|
targetGap: e,
|
|
9999
10104
|
beforeEdge: r,
|
|
10000
10105
|
afterEdge: i,
|
|
10001
10106
|
threshold: n,
|
|
10002
|
-
step:
|
|
10107
|
+
step: Li
|
|
10003
10108
|
});
|
|
10004
10109
|
if (t) {
|
|
10005
10110
|
let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
|
|
@@ -10036,16 +10141,16 @@ var di = class {
|
|
|
10036
10141
|
}
|
|
10037
10142
|
for (let e of r) {
|
|
10038
10143
|
let { axis: t, start: r, end: i, distance: a } = e;
|
|
10039
|
-
if (!
|
|
10144
|
+
if (!Ui({
|
|
10040
10145
|
value: a,
|
|
10041
10146
|
step: .5
|
|
10042
|
-
}) || !
|
|
10147
|
+
}) || !Ji({
|
|
10043
10148
|
patternAxis: t,
|
|
10044
10149
|
activeRangeStart: l,
|
|
10045
10150
|
activeRangeEnd: u,
|
|
10046
10151
|
tolerance: n
|
|
10047
10152
|
})) continue;
|
|
10048
|
-
let d =
|
|
10153
|
+
let d = Yi({
|
|
10049
10154
|
patternStart: r,
|
|
10050
10155
|
patternEnd: i,
|
|
10051
10156
|
activeStart: s,
|
|
@@ -10053,12 +10158,12 @@ var di = class {
|
|
|
10053
10158
|
});
|
|
10054
10159
|
if (d) {
|
|
10055
10160
|
if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
|
|
10056
|
-
let e =
|
|
10161
|
+
let e = Hi({
|
|
10057
10162
|
value: a - b,
|
|
10058
10163
|
step: 1
|
|
10059
10164
|
}), t = s + e, { bottom: c } = S, l = t - c, u = Math.abs(l - a);
|
|
10060
10165
|
if (u > n) continue;
|
|
10061
|
-
let d =
|
|
10166
|
+
let d = ca({
|
|
10062
10167
|
currentGap: l,
|
|
10063
10168
|
referenceGap: a
|
|
10064
10169
|
});
|
|
@@ -10082,12 +10187,12 @@ var di = class {
|
|
|
10082
10187
|
});
|
|
10083
10188
|
}
|
|
10084
10189
|
if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
|
|
10085
|
-
let e =
|
|
10190
|
+
let e = Hi({
|
|
10086
10191
|
value: x - a,
|
|
10087
10192
|
step: 1
|
|
10088
10193
|
}), t = c + e, { top: s } = C, l = s - t, u = Math.abs(l - a);
|
|
10089
10194
|
if (u > n) continue;
|
|
10090
|
-
let d =
|
|
10195
|
+
let d = ca({
|
|
10091
10196
|
currentGap: l,
|
|
10092
10197
|
referenceGap: a
|
|
10093
10198
|
});
|
|
@@ -10112,16 +10217,16 @@ var di = class {
|
|
|
10112
10217
|
}
|
|
10113
10218
|
}
|
|
10114
10219
|
}
|
|
10115
|
-
return
|
|
10220
|
+
return oa({
|
|
10116
10221
|
options: m,
|
|
10117
10222
|
previousContext: i,
|
|
10118
10223
|
switchDistance: a
|
|
10119
10224
|
});
|
|
10120
|
-
},
|
|
10225
|
+
}, fa = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
|
|
10121
10226
|
let { centerY: o, left: s, right: c, top: l, bottom: u } = e, d = [];
|
|
10122
10227
|
for (let e of t) {
|
|
10123
10228
|
let { top: t, bottom: n } = e;
|
|
10124
|
-
|
|
10229
|
+
Bi({
|
|
10125
10230
|
firstStart: t,
|
|
10126
10231
|
firstEnd: n,
|
|
10127
10232
|
secondStart: l,
|
|
@@ -10141,22 +10246,22 @@ var di = class {
|
|
|
10141
10246
|
f.push({
|
|
10142
10247
|
bounds: e,
|
|
10143
10248
|
isActive: !0
|
|
10144
|
-
}),
|
|
10249
|
+
}), Gi({
|
|
10145
10250
|
items: f,
|
|
10146
10251
|
axis: "left"
|
|
10147
10252
|
});
|
|
10148
|
-
let p =
|
|
10253
|
+
let p = qi({ items: f });
|
|
10149
10254
|
if (p === -1) return {
|
|
10150
10255
|
delta: 0,
|
|
10151
10256
|
guides: [],
|
|
10152
10257
|
context: null
|
|
10153
10258
|
};
|
|
10154
|
-
let m = [], h = c - s, g =
|
|
10259
|
+
let m = [], h = c - s, g = Ki({
|
|
10155
10260
|
items: f,
|
|
10156
10261
|
index: p,
|
|
10157
10262
|
axis: "horizontal",
|
|
10158
10263
|
direction: "prev"
|
|
10159
|
-
}), _ =
|
|
10264
|
+
}), _ = Ki({
|
|
10160
10265
|
items: f,
|
|
10161
10266
|
index: p,
|
|
10162
10267
|
axis: "horizontal",
|
|
@@ -10165,19 +10270,19 @@ var di = class {
|
|
|
10165
10270
|
if (v && y) {
|
|
10166
10271
|
let { bounds: e } = v, { bounds: t } = y, { right: r } = e, { left: i } = t, a = i - r - h;
|
|
10167
10272
|
if (a >= 0) {
|
|
10168
|
-
let e =
|
|
10273
|
+
let e = Hi({
|
|
10169
10274
|
value: a / 2,
|
|
10170
10275
|
step: 1
|
|
10171
10276
|
}), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
|
|
10172
10277
|
if (Math.max(u, d) <= n) {
|
|
10173
|
-
let t =
|
|
10278
|
+
let t = sa({
|
|
10174
10279
|
activeStart: s,
|
|
10175
10280
|
activeEnd: c,
|
|
10176
10281
|
targetGap: e,
|
|
10177
10282
|
beforeEdge: r,
|
|
10178
10283
|
afterEdge: i,
|
|
10179
10284
|
threshold: n,
|
|
10180
|
-
step:
|
|
10285
|
+
step: Li
|
|
10181
10286
|
});
|
|
10182
10287
|
if (t) {
|
|
10183
10288
|
let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
|
|
@@ -10214,16 +10319,16 @@ var di = class {
|
|
|
10214
10319
|
}
|
|
10215
10320
|
for (let e of r) {
|
|
10216
10321
|
let { axis: t, start: r, end: i, distance: a } = e;
|
|
10217
|
-
if (!
|
|
10322
|
+
if (!Ui({
|
|
10218
10323
|
value: a,
|
|
10219
10324
|
step: .5
|
|
10220
|
-
}) || !
|
|
10325
|
+
}) || !Ji({
|
|
10221
10326
|
patternAxis: t,
|
|
10222
10327
|
activeRangeStart: l,
|
|
10223
10328
|
activeRangeEnd: u,
|
|
10224
10329
|
tolerance: n
|
|
10225
10330
|
})) continue;
|
|
10226
|
-
let d =
|
|
10331
|
+
let d = Yi({
|
|
10227
10332
|
patternStart: r,
|
|
10228
10333
|
patternEnd: i,
|
|
10229
10334
|
activeStart: s,
|
|
@@ -10231,12 +10336,12 @@ var di = class {
|
|
|
10231
10336
|
});
|
|
10232
10337
|
if (d) {
|
|
10233
10338
|
if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
|
|
10234
|
-
let e =
|
|
10339
|
+
let e = Hi({
|
|
10235
10340
|
value: a - b,
|
|
10236
10341
|
step: 1
|
|
10237
10342
|
}), t = s + e, { right: c } = S, l = t - c, u = Math.abs(l - a);
|
|
10238
10343
|
if (u > n) continue;
|
|
10239
|
-
let d =
|
|
10344
|
+
let d = ca({
|
|
10240
10345
|
currentGap: l,
|
|
10241
10346
|
referenceGap: a
|
|
10242
10347
|
});
|
|
@@ -10260,12 +10365,12 @@ var di = class {
|
|
|
10260
10365
|
});
|
|
10261
10366
|
}
|
|
10262
10367
|
if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
|
|
10263
|
-
let e =
|
|
10368
|
+
let e = Hi({
|
|
10264
10369
|
value: x - a,
|
|
10265
10370
|
step: 1
|
|
10266
10371
|
}), t = c + e, { left: s } = C, l = s - t, u = Math.abs(l - a);
|
|
10267
10372
|
if (u > n) continue;
|
|
10268
|
-
let d =
|
|
10373
|
+
let d = ca({
|
|
10269
10374
|
currentGap: l,
|
|
10270
10375
|
referenceGap: a
|
|
10271
10376
|
});
|
|
@@ -10290,20 +10395,20 @@ var di = class {
|
|
|
10290
10395
|
}
|
|
10291
10396
|
}
|
|
10292
10397
|
}
|
|
10293
|
-
return
|
|
10398
|
+
return oa({
|
|
10294
10399
|
options: m,
|
|
10295
10400
|
previousContext: i,
|
|
10296
10401
|
switchDistance: a
|
|
10297
10402
|
});
|
|
10298
|
-
},
|
|
10299
|
-
let { vertical: o = null, horizontal: s = null } = i ?? {}, c =
|
|
10403
|
+
}, pa = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
|
|
10404
|
+
let { vertical: o = null, horizontal: s = null } = i ?? {}, c = da({
|
|
10300
10405
|
activeBounds: e,
|
|
10301
10406
|
candidates: t,
|
|
10302
10407
|
threshold: n,
|
|
10303
10408
|
patterns: r.vertical,
|
|
10304
10409
|
previousContext: o,
|
|
10305
10410
|
switchDistance: a
|
|
10306
|
-
}), l =
|
|
10411
|
+
}), l = fa({
|
|
10307
10412
|
activeBounds: e,
|
|
10308
10413
|
candidates: t,
|
|
10309
10414
|
threshold: n,
|
|
@@ -10322,14 +10427,14 @@ var di = class {
|
|
|
10322
10427
|
horizontal: l.context
|
|
10323
10428
|
}
|
|
10324
10429
|
};
|
|
10325
|
-
},
|
|
10430
|
+
}, ma = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
|
|
10326
10431
|
let o = Math.min(a, r / 2, i / 2);
|
|
10327
10432
|
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
|
-
},
|
|
10433
|
+
}, 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
10434
|
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
10435
|
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
10436
|
let S = e.measureText(a).width + _ * 2, C = g + _ * 2, w = b - S / 2, T = x - C / 2;
|
|
10332
|
-
e.beginPath(),
|
|
10437
|
+
e.beginPath(), ma({
|
|
10333
10438
|
context: e,
|
|
10334
10439
|
x: w,
|
|
10335
10440
|
y: T,
|
|
@@ -10337,11 +10442,11 @@ var di = class {
|
|
|
10337
10442
|
height: C,
|
|
10338
10443
|
radius: v
|
|
10339
10444
|
}), e.fill(), e.fillStyle = c, e.fillText(a, b, x), e.restore();
|
|
10340
|
-
},
|
|
10341
|
-
let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u =
|
|
10445
|
+
}, ga = ({ context: e, guide: t, zoom: n }) => {
|
|
10446
|
+
let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Ri({ distance: l }).toString();
|
|
10342
10447
|
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 =
|
|
10344
|
-
|
|
10448
|
+
let d = Ii;
|
|
10449
|
+
ha({
|
|
10345
10450
|
context: e,
|
|
10346
10451
|
type: r,
|
|
10347
10452
|
axis: i,
|
|
@@ -10351,7 +10456,7 @@ var di = class {
|
|
|
10351
10456
|
zoom: n,
|
|
10352
10457
|
color: d,
|
|
10353
10458
|
lineWidth: 1
|
|
10354
|
-
}),
|
|
10459
|
+
}), ha({
|
|
10355
10460
|
context: e,
|
|
10356
10461
|
type: r,
|
|
10357
10462
|
axis: i,
|
|
@@ -10362,10 +10467,10 @@ var di = class {
|
|
|
10362
10467
|
color: d,
|
|
10363
10468
|
lineWidth: 1
|
|
10364
10469
|
});
|
|
10365
|
-
},
|
|
10470
|
+
}, _a = ({ anchors: e, bounds: t }) => {
|
|
10366
10471
|
let { left: n, right: r, centerX: i, top: a, bottom: o, centerY: s } = t;
|
|
10367
10472
|
e.vertical.push(n, i, r), e.horizontal.push(a, s, o);
|
|
10368
|
-
},
|
|
10473
|
+
}, va = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
|
|
10369
10474
|
let i = [], a = n === "top" ? "left" : "top", o = r === "bottom" ? "right" : "bottom", s = [...e].sort((e, t) => e[n] - t[n]);
|
|
10370
10475
|
for (let e = 0; e < s.length; e += 1) {
|
|
10371
10476
|
let c = s[e], l = null, u = Infinity;
|
|
@@ -10386,35 +10491,35 @@ var di = class {
|
|
|
10386
10491
|
});
|
|
10387
10492
|
}
|
|
10388
10493
|
return i;
|
|
10389
|
-
},
|
|
10390
|
-
vertical:
|
|
10494
|
+
}, ya = ({ bounds: e }) => ({
|
|
10495
|
+
vertical: va({
|
|
10391
10496
|
bounds: e,
|
|
10392
10497
|
axis: "centerX",
|
|
10393
10498
|
type: "vertical",
|
|
10394
10499
|
primaryStart: "top",
|
|
10395
10500
|
primaryEnd: "bottom"
|
|
10396
10501
|
}),
|
|
10397
|
-
horizontal:
|
|
10502
|
+
horizontal: va({
|
|
10398
10503
|
bounds: e,
|
|
10399
10504
|
axis: "centerY",
|
|
10400
10505
|
type: "horizontal",
|
|
10401
10506
|
primaryStart: "left",
|
|
10402
10507
|
primaryEnd: "right"
|
|
10403
10508
|
})
|
|
10404
|
-
}),
|
|
10509
|
+
}), ba = [
|
|
10405
10510
|
"montage-area",
|
|
10406
10511
|
"background",
|
|
10407
10512
|
"interaction-blocker"
|
|
10408
|
-
],
|
|
10513
|
+
], xa = ({ activeObject: t }) => {
|
|
10409
10514
|
let n = /* @__PURE__ */ new Set();
|
|
10410
10515
|
return t ? (n.add(t), t instanceof e && t.getObjects().forEach((e) => n.add(e)), n) : n;
|
|
10411
|
-
},
|
|
10516
|
+
}, Sa = ({ object: e, excluded: t, ignoredIds: n = ba }) => {
|
|
10412
10517
|
if (t.has(e)) return !0;
|
|
10413
10518
|
let { visible: r = !0 } = e;
|
|
10414
10519
|
if (!r) return !0;
|
|
10415
10520
|
let { id: i } = e;
|
|
10416
10521
|
return !!(i && n.includes(i));
|
|
10417
|
-
},
|
|
10522
|
+
}, Ca = class e {
|
|
10418
10523
|
constructor({ editor: e }) {
|
|
10419
10524
|
this.anchors = {
|
|
10420
10525
|
vertical: [],
|
|
@@ -10467,7 +10572,7 @@ var di = class {
|
|
|
10467
10572
|
this._clearSpacingContexts(), this._clearGuides();
|
|
10468
10573
|
return;
|
|
10469
10574
|
}
|
|
10470
|
-
let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } =
|
|
10575
|
+
let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = ua({
|
|
10471
10576
|
activeBounds: a,
|
|
10472
10577
|
threshold: c,
|
|
10473
10578
|
anchors: this.anchors
|
|
@@ -10479,7 +10584,7 @@ var di = class {
|
|
|
10479
10584
|
top: t + u
|
|
10480
10585
|
}), n.setCoords(), a = Ht({ object: n }) ?? a;
|
|
10481
10586
|
}
|
|
10482
|
-
let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p =
|
|
10587
|
+
let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = pa({
|
|
10483
10588
|
activeBounds: a,
|
|
10484
10589
|
candidates: d,
|
|
10485
10590
|
threshold: f,
|
|
@@ -10500,11 +10605,11 @@ var di = class {
|
|
|
10500
10605
|
target: n,
|
|
10501
10606
|
transform: i
|
|
10502
10607
|
});
|
|
10503
|
-
let h = Ht({ object: n }) ?? a, g =
|
|
10608
|
+
let h = Ht({ object: n }) ?? a, g = ua({
|
|
10504
10609
|
activeBounds: h,
|
|
10505
10610
|
threshold: c,
|
|
10506
10611
|
anchors: this.anchors
|
|
10507
|
-
}), _ =
|
|
10612
|
+
}), _ = pa({
|
|
10508
10613
|
activeBounds: h,
|
|
10509
10614
|
candidates: d,
|
|
10510
10615
|
threshold: c,
|
|
@@ -10735,9 +10840,9 @@ var di = class {
|
|
|
10735
10840
|
let { canvas: e, guideBounds: t } = this, n = e.getSelectionContext();
|
|
10736
10841
|
if (!n) return;
|
|
10737
10842
|
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 =
|
|
10843
|
+
n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Ii, n.setLineDash([4, 4]);
|
|
10739
10844
|
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)
|
|
10845
|
+
for (let e of this.activeSpacingGuides) ga({
|
|
10741
10846
|
context: n,
|
|
10742
10847
|
guide: e,
|
|
10743
10848
|
zoom: c
|
|
@@ -10948,14 +11053,14 @@ var di = class {
|
|
|
10948
11053
|
}, r = [];
|
|
10949
11054
|
for (let e of t) {
|
|
10950
11055
|
let t = Ht({ object: e });
|
|
10951
|
-
t && (
|
|
11056
|
+
t && (_a({
|
|
10952
11057
|
anchors: n,
|
|
10953
11058
|
bounds: t
|
|
10954
11059
|
}), r.push(t));
|
|
10955
11060
|
}
|
|
10956
11061
|
let { montageArea: i } = this.editor, a = Ht({ object: i });
|
|
10957
11062
|
if (a) {
|
|
10958
|
-
|
|
11063
|
+
_a({
|
|
10959
11064
|
anchors: n,
|
|
10960
11065
|
bounds: a
|
|
10961
11066
|
});
|
|
@@ -10967,12 +11072,12 @@ var di = class {
|
|
|
10967
11072
|
bottom: i
|
|
10968
11073
|
};
|
|
10969
11074
|
} else this.guideBounds = this._calculateViewportBounds();
|
|
10970
|
-
this.anchors = n, this.spacingPatterns =
|
|
11075
|
+
this.anchors = n, this.spacingPatterns = ya({ bounds: r }), this.cachedTargetBounds = r;
|
|
10971
11076
|
}
|
|
10972
11077
|
_collectTargets({ activeObject: e }) {
|
|
10973
|
-
let t =
|
|
11078
|
+
let t = xa({ activeObject: e }), n = [];
|
|
10974
11079
|
return this.canvas.forEachObject((e) => {
|
|
10975
|
-
|
|
11080
|
+
Sa({
|
|
10976
11081
|
object: e,
|
|
10977
11082
|
excluded: t
|
|
10978
11083
|
}) || n.push(e);
|
|
@@ -10995,7 +11100,7 @@ var di = class {
|
|
|
10995
11100
|
bottom: (r - s) / a
|
|
10996
11101
|
};
|
|
10997
11102
|
}
|
|
10998
|
-
},
|
|
11103
|
+
}, wa = "#3D8BF4", Ta = class e {
|
|
10999
11104
|
constructor({ editor: e }) {
|
|
11000
11105
|
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
11106
|
}
|
|
@@ -11088,8 +11193,8 @@ var di = class {
|
|
|
11088
11193
|
this.isTargetMontageArea = l, this.activeGuides = d, this._hideToolbar(), n.requestRenderAll();
|
|
11089
11194
|
}
|
|
11090
11195
|
static _resolveTarget({ event: e, activeObject: t }) {
|
|
11091
|
-
let { target: n } = e, r =
|
|
11092
|
-
return n && !
|
|
11196
|
+
let { target: n } = e, r = xa({ activeObject: t });
|
|
11197
|
+
return n && !Sa({
|
|
11093
11198
|
object: n,
|
|
11094
11199
|
excluded: r
|
|
11095
11200
|
}) ? n : null;
|
|
@@ -11206,18 +11311,18 @@ var di = class {
|
|
|
11206
11311
|
let { canvas: e } = this, t = e.getSelectionContext();
|
|
11207
11312
|
if (!t) return;
|
|
11208
11313
|
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 =
|
|
11314
|
+
t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = wa, t.setLineDash([]);
|
|
11210
11315
|
for (let e of this.activeGuides) {
|
|
11211
11316
|
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(),
|
|
11317
|
+
t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), ha({
|
|
11213
11318
|
context: t,
|
|
11214
11319
|
type: n,
|
|
11215
11320
|
axis: i,
|
|
11216
11321
|
start: a,
|
|
11217
11322
|
end: c,
|
|
11218
|
-
text:
|
|
11323
|
+
text: Ri({ distance: l }).toString(),
|
|
11219
11324
|
zoom: r,
|
|
11220
|
-
color:
|
|
11325
|
+
color: wa,
|
|
11221
11326
|
lineWidth: 1,
|
|
11222
11327
|
offsetAlongAxis: d,
|
|
11223
11328
|
offsetPerpendicular: 0
|
|
@@ -11235,13 +11340,13 @@ var di = class {
|
|
|
11235
11340
|
let { toolbar: e } = this.editor;
|
|
11236
11341
|
e?.showAfterTemporary?.(), this.isToolbarHidden = !1;
|
|
11237
11342
|
}
|
|
11238
|
-
},
|
|
11343
|
+
}, Ea = class e {
|
|
11239
11344
|
constructor(e, t) {
|
|
11240
11345
|
this.options = t, this.containerId = e, this.editorId = `${e}-${D()}`, this.init();
|
|
11241
11346
|
}
|
|
11242
11347
|
async init() {
|
|
11243
11348
|
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
|
|
11349
|
+
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
11350
|
editor: this,
|
|
11246
11351
|
options: this.options
|
|
11247
11352
|
}), 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 +11454,7 @@ var di = class {
|
|
|
11349
11454
|
"U+A640-A69F",
|
|
11350
11455
|
"U+FE2E-FE2F",
|
|
11351
11456
|
"U+2116"
|
|
11352
|
-
].join(", "),
|
|
11457
|
+
].join(", "), Da = {
|
|
11353
11458
|
preserveObjectStacking: !0,
|
|
11354
11459
|
controlsAboveOverlay: !0,
|
|
11355
11460
|
centeredRotation: !0,
|
|
@@ -12203,20 +12308,20 @@ var di = class {
|
|
|
12203
12308
|
};
|
|
12204
12309
|
//#endregion
|
|
12205
12310
|
//#region src/main.ts
|
|
12206
|
-
function
|
|
12311
|
+
function Oa(e, t = {}) {
|
|
12207
12312
|
let n = {
|
|
12208
|
-
...
|
|
12313
|
+
...Da,
|
|
12209
12314
|
...t
|
|
12210
12315
|
}, r = document.getElementById(e);
|
|
12211
12316
|
if (!r) return Promise.reject(/* @__PURE__ */ Error(`Контейнер с ID "${e}" не найден.`));
|
|
12212
12317
|
let i = document.createElement("canvas");
|
|
12213
12318
|
return i.id = `${e}-canvas`, r.appendChild(i), n.editorContainer = r, new Promise((t) => {
|
|
12214
12319
|
n._onReadyCallback = t;
|
|
12215
|
-
let r = new
|
|
12320
|
+
let r = new Ea(i.id, n);
|
|
12216
12321
|
window[e] = r;
|
|
12217
12322
|
});
|
|
12218
12323
|
}
|
|
12219
12324
|
//#endregion
|
|
12220
|
-
export {
|
|
12325
|
+
export { Oa as default };
|
|
12221
12326
|
|
|
12222
12327
|
//# sourceMappingURL=main.js.map
|