@anu3ev/fabric-image-editor 0.8.2 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +968 -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;
|
|
4051
4251
|
continue;
|
|
4052
4252
|
}
|
|
4053
|
-
|
|
4054
|
-
|
|
4253
|
+
a.some((e) => r[e] === void 0) && (o || (o = {}, c = !0), c ||= (o = { ...o }, !0), o[e] = {
|
|
4254
|
+
...i,
|
|
4255
|
+
...r
|
|
4256
|
+
}, s = !0);
|
|
4055
4257
|
}
|
|
4056
4258
|
return {
|
|
4057
|
-
lineStyles:
|
|
4058
|
-
changed:
|
|
4259
|
+
lineStyles: o,
|
|
4260
|
+
changed: s
|
|
4059
4261
|
};
|
|
4060
|
-
},
|
|
4262
|
+
}, mn = ({ deletedLineDefaultsCleanup: e, globalLineDefaults: t, lineFontDefaults: n, lines: r, styles: i }) => {
|
|
4263
|
+
let a = n, o = !1, s = !1, c = i, l = !1, u = !1, d, f = un({
|
|
4264
|
+
styles: c ?? {},
|
|
4265
|
+
lineCount: r.length,
|
|
4266
|
+
cleanup: e
|
|
4267
|
+
});
|
|
4268
|
+
f.changed && (c = f.styles, l = !0, u = !0);
|
|
4269
|
+
for (let e = 0; e < r.length; e += 1) {
|
|
4270
|
+
let n = r[e] ?? "", i = a ? a[e] : void 0;
|
|
4271
|
+
if (i && (d = i), n.length !== 0) {
|
|
4272
|
+
if (i) {
|
|
4273
|
+
let t = pn({
|
|
4274
|
+
lineText: n,
|
|
4275
|
+
lineStyles: c ? c[e] : void 0,
|
|
4276
|
+
lineDefaults: i
|
|
4277
|
+
});
|
|
4278
|
+
t.changed && (c || (c = {}, u = !0), u ||= (c = { ...c }, !0), t.lineStyles && (c[e] = t.lineStyles), !t.lineStyles && c[e] && delete c[e], l = !0);
|
|
4279
|
+
}
|
|
4280
|
+
continue;
|
|
4281
|
+
}
|
|
4282
|
+
let f = fn({
|
|
4283
|
+
sourceDefaults: i ?? d,
|
|
4284
|
+
globalLineDefaults: t
|
|
4285
|
+
});
|
|
4286
|
+
!i && Object.keys(f).length && (a || (a = {}, s = !0), s ||= (a = { ...a }, !0), a[e] = f, o = !0, d = f), i && (d = i);
|
|
4287
|
+
let p = sn({ lineDefaults: f }), m = Object.keys(p).length > 0;
|
|
4288
|
+
(m || c && c[e]) && (c || (c = {}, u = !0), u ||= (c = { ...c }, !0), m && (c[e] = { 0: p }), !m && c[e] && delete c[e], l = !0);
|
|
4289
|
+
}
|
|
4290
|
+
return {
|
|
4291
|
+
lineFontDefaults: a,
|
|
4292
|
+
lineFontDefaultsChanged: o,
|
|
4293
|
+
styles: c ?? {},
|
|
4294
|
+
stylesChanged: l
|
|
4295
|
+
};
|
|
4296
|
+
}, hn = ({ currentText: e, previousText: t, textbox: n }) => {
|
|
4297
|
+
let r = on({
|
|
4298
|
+
lineFontDefaults: n.lineFontDefaults,
|
|
4299
|
+
previousText: t,
|
|
4300
|
+
currentText: e
|
|
4301
|
+
}), i = mn({
|
|
4302
|
+
lines: e.split("\n"),
|
|
4303
|
+
styles: n.styles,
|
|
4304
|
+
lineFontDefaults: r.lineFontDefaults,
|
|
4305
|
+
deletedLineDefaultsCleanup: r.deletedLineDefaultsCleanup,
|
|
4306
|
+
globalLineDefaults: dn({ textbox: n })
|
|
4307
|
+
});
|
|
4308
|
+
return {
|
|
4309
|
+
...i,
|
|
4310
|
+
lineFontDefaultsChanged: r.changed || i.lineFontDefaultsChanged
|
|
4311
|
+
};
|
|
4312
|
+
}, gn = ({ lineFontDefaults: e }) => {
|
|
4061
4313
|
if (!e) return;
|
|
4062
4314
|
let t = {};
|
|
4063
4315
|
for (let n in e) {
|
|
@@ -4068,7 +4320,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
|
|
|
4068
4320
|
i && (t[r] = { ...i });
|
|
4069
4321
|
}
|
|
4070
4322
|
return t;
|
|
4071
|
-
},
|
|
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,146 @@ 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
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
|
|
8822
|
-
let e = v ? "italic" : "normal";
|
|
8823
|
-
z && (V.fontStyle = e), se && (R.fontStyle = e, G && (U.fontStyle = e));
|
|
8824
|
-
}
|
|
8825
|
-
if (y !== void 0 && (z && (V.underline = y), se && (R.underline = y, G && (U.underline = y))), x !== void 0 && (z && (V.linethrough = x), se && (R.linethrough = x, G && (U.linethrough = x))), S !== void 0 && (R.textAlign = S), C !== void 0 && (z && (V.fill = C), se && (R.fill = C, G && (U.fill = C))), w !== void 0 || T !== void 0) {
|
|
8826
|
-
let e = z ? Qr({
|
|
9002
|
+
}), ce = mi({
|
|
9003
|
+
textbox: s,
|
|
9004
|
+
range: B
|
|
9005
|
+
}), le = !z || se, ue = le || ce, de = !z;
|
|
9006
|
+
if (h !== void 0 && (B && (H.fontFamily = h), ue && (R.fontFamily = h, de && (U.fontFamily = h))), g !== void 0 && (B && (H.fontSize = g), ue && (R.fontSize = g, de && (U.fontSize = g))), _ !== void 0 && (ae = _ ? "bold" : "normal", z && (V.fontWeight = ae), le && (R.fontWeight = ae, de && (U.fontWeight = ae))), v !== void 0 && (W = v ? "italic" : "normal", z && (V.fontStyle = W), le && (R.fontStyle = W, de && (U.fontStyle = W))), y !== void 0 && (z && (V.underline = y), le && (R.underline = y, de && (U.underline = y))), x !== void 0 && (z && (V.linethrough = x), le && (R.linethrough = x, de && (U.linethrough = x))), S !== void 0 && (R.textAlign = S), C !== void 0 && (z && (V.fill = C), le && (R.fill = C, de && (U.fill = C))), w !== void 0 || T !== void 0) {
|
|
9007
|
+
let e = z ? gi({
|
|
8827
9008
|
textbox: s,
|
|
8828
9009
|
range: z,
|
|
8829
9010
|
property: "strokeWidth"
|
|
8830
|
-
}) : void 0, t = z ?
|
|
9011
|
+
}) : void 0, t = z ? gi({
|
|
8831
9012
|
textbox: s,
|
|
8832
9013
|
range: z,
|
|
8833
9014
|
property: "stroke"
|
|
8834
9015
|
}) : void 0;
|
|
8835
|
-
oe =
|
|
9016
|
+
oe = vi({ width: T ?? e ?? s.strokeWidth ?? 0 }), G = _i({
|
|
8836
9017
|
strokeColor: w ?? t ?? s.stroke ?? void 0,
|
|
8837
9018
|
width: oe
|
|
8838
|
-
}), z && (V.stroke =
|
|
9019
|
+
}), z && (V.stroke = G, V.strokeWidth = oe), le && (R.stroke = G, R.strokeWidth = oe, de && (U.stroke = G, U.strokeWidth = oe));
|
|
8839
9020
|
}
|
|
8840
9021
|
E !== void 0 && (R.opacity = E), D !== void 0 && (R.backgroundColor = D), O !== void 0 && (R.backgroundOpacity = O), k !== void 0 && (R.paddingTop = k), A !== void 0 && (R.paddingRight = A), j !== void 0 && (R.paddingBottom = j), M !== void 0 && (R.paddingLeft = M), N !== void 0 && (R.radiusTopLeft = N), P !== void 0 && (R.radiusTopRight = P), F !== void 0 && (R.radiusBottomRight = F), I !== void 0 && (R.radiusBottomLeft = I);
|
|
8841
|
-
let
|
|
8842
|
-
|
|
8843
|
-
let
|
|
9022
|
+
let fe = s.textCaseRaw ?? c, pe = !!s.uppercase, me = p !== void 0, he = me ? p ?? "" : fe, ge = b ?? pe, _e = ge !== pe;
|
|
9023
|
+
me || _e ? (R.text = ge ? yi({ value: he }) : he, s.textCaseRaw = he) : s.textCaseRaw === void 0 && (s.textCaseRaw = fe);
|
|
9024
|
+
let ve = Cn({ stylesList: [
|
|
8844
9025
|
R,
|
|
8845
9026
|
V,
|
|
8846
9027
|
H,
|
|
8847
9028
|
U
|
|
8848
|
-
] }),
|
|
9029
|
+
] }), ye = [
|
|
8849
9030
|
ee,
|
|
8850
9031
|
te,
|
|
8851
9032
|
L,
|
|
8852
9033
|
ne
|
|
8853
|
-
],
|
|
9034
|
+
], be = [
|
|
8854
9035
|
k,
|
|
8855
9036
|
A,
|
|
8856
9037
|
j,
|
|
8857
9038
|
M
|
|
8858
|
-
],
|
|
8859
|
-
|
|
9039
|
+
], xe = ye.some((e) => e !== void 0), Se = be.some((e) => e !== void 0), Ce = Object.prototype.hasOwnProperty.call(R, "width"), we = Se && !xe && !me && !_e && !ve && !Ce, Te = null;
|
|
9040
|
+
we && (Te = bn({
|
|
8860
9041
|
textbox: s,
|
|
8861
9042
|
originX: ie.originX,
|
|
8862
9043
|
originY: ie.originY
|
|
8863
|
-
})), s.uppercase =
|
|
8864
|
-
let
|
|
9044
|
+
})), s.uppercase = ge, s.set(R);
|
|
9045
|
+
let Ee = !1;
|
|
8865
9046
|
if (z) {
|
|
8866
|
-
let e =
|
|
9047
|
+
let e = hi({
|
|
8867
9048
|
textbox: s,
|
|
8868
9049
|
styles: V,
|
|
8869
9050
|
range: z
|
|
8870
|
-
}), t = B ?
|
|
9051
|
+
}), t = B ? hi({
|
|
8871
9052
|
textbox: s,
|
|
8872
9053
|
styles: H,
|
|
8873
9054
|
range: B
|
|
8874
9055
|
}) : !1;
|
|
8875
|
-
|
|
9056
|
+
Ee = e || t;
|
|
8876
9057
|
} else if (Object.keys(U).length) {
|
|
8877
|
-
let e =
|
|
8878
|
-
e && (
|
|
9058
|
+
let e = pi({ textbox: s });
|
|
9059
|
+
e && (Ee = hi({
|
|
8879
9060
|
textbox: s,
|
|
8880
9061
|
styles: U,
|
|
8881
9062
|
range: e
|
|
8882
9063
|
}));
|
|
8883
9064
|
}
|
|
8884
|
-
let
|
|
9065
|
+
let De = Ee && Cn({ stylesList: [
|
|
8885
9066
|
V,
|
|
8886
9067
|
H,
|
|
8887
9068
|
U
|
|
8888
9069
|
] });
|
|
8889
|
-
if (
|
|
8890
|
-
let e =
|
|
9070
|
+
if (Ee && (s.dirty = !0), B && (h !== void 0 || g !== void 0)) {
|
|
9071
|
+
let e = Qt({
|
|
8891
9072
|
textbox: s,
|
|
8892
9073
|
range: B
|
|
8893
9074
|
}), t = {};
|
|
8894
|
-
h !== void 0 && (t.fontFamily = h), g !== void 0 && (t.fontSize = g),
|
|
9075
|
+
h !== void 0 && (t.fontFamily = h), g !== void 0 && (t.fontSize = g), cn({
|
|
8895
9076
|
textbox: s,
|
|
8896
9077
|
lineIndices: e,
|
|
8897
9078
|
updates: t
|
|
8898
9079
|
});
|
|
8899
9080
|
}
|
|
8900
|
-
if (z && (C !== void 0 || w !== void 0 || T !== void 0)) {
|
|
8901
|
-
let e =
|
|
9081
|
+
if (z && (_ !== void 0 || v !== void 0 || y !== void 0 || x !== void 0 || C !== void 0 || w !== void 0 || T !== void 0)) {
|
|
9082
|
+
let e = $t({
|
|
8902
9083
|
textbox: s,
|
|
8903
9084
|
range: z
|
|
8904
9085
|
}), t = {};
|
|
8905
|
-
C !== void 0 && (t.fill = C), (w !== void 0 || T !== void 0) && (
|
|
9086
|
+
ae !== void 0 && (t.fontWeight = ae), W !== void 0 && (t.fontStyle = W), y !== void 0 && (t.underline = y), x !== void 0 && (t.linethrough = x), C !== void 0 && (t.fill = C), (w !== void 0 || T !== void 0) && (G === null && (t.stroke = null), G != null && (t.stroke = G), oe !== void 0 && (t.strokeWidth = oe)), cn({
|
|
8906
9087
|
textbox: s,
|
|
8907
9088
|
lineIndices: e,
|
|
8908
9089
|
updates: t
|
|
8909
9090
|
});
|
|
8910
9091
|
}
|
|
8911
|
-
|
|
9092
|
+
De && (s.initDimensions(), s.dirty = !0), [
|
|
8912
9093
|
D,
|
|
8913
9094
|
O,
|
|
8914
|
-
...
|
|
9095
|
+
...be,
|
|
8915
9096
|
N,
|
|
8916
9097
|
P,
|
|
8917
9098
|
F,
|
|
8918
9099
|
I
|
|
8919
9100
|
].some((e) => e !== void 0) && (s.dirty = !0);
|
|
8920
|
-
let { autoExpand:
|
|
8921
|
-
|
|
8922
|
-
let
|
|
9101
|
+
let { autoExpand: Oe } = s, ke = m !== void 0, Ae = (m ?? Oe) !== !1;
|
|
9102
|
+
ke ? s.autoExpand = m !== !1 : Oe === void 0 && (s.autoExpand = !0);
|
|
9103
|
+
let je = Ae && !Ce && (me || _e || ve);
|
|
8923
9104
|
this._normalizeTextboxAfterContentChange({
|
|
8924
9105
|
textbox: s,
|
|
8925
9106
|
placement: ie,
|
|
8926
|
-
shouldAutoExpand:
|
|
8927
|
-
}),
|
|
9107
|
+
shouldAutoExpand: je
|
|
9108
|
+
}), Te && this._restoreTextboxContentPlacement({
|
|
8928
9109
|
textbox: s,
|
|
8929
|
-
contentPlacement:
|
|
9110
|
+
contentPlacement: Te
|
|
8930
9111
|
}), s.setCoords();
|
|
8931
|
-
let
|
|
9112
|
+
let Me = {
|
|
8932
9113
|
withoutSave: !!r,
|
|
8933
9114
|
skipRender: !!i
|
|
8934
|
-
},
|
|
9115
|
+
}, Ne = !!z && Object.keys(V).length > 0, Pe = {
|
|
8935
9116
|
textbox: s,
|
|
8936
9117
|
target: t,
|
|
8937
9118
|
style: n,
|
|
8938
|
-
options:
|
|
9119
|
+
options: Me,
|
|
8939
9120
|
updates: R,
|
|
8940
9121
|
selectionRange: z ?? void 0,
|
|
8941
|
-
selectionStyles:
|
|
9122
|
+
selectionStyles: Ne ? V : void 0
|
|
8942
9123
|
};
|
|
8943
|
-
o && d.fire("editor:before:text-updated",
|
|
8944
|
-
let
|
|
9124
|
+
o && d.fire("editor:before:text-updated", Pe), i || d.requestRenderAll();
|
|
9125
|
+
let Fe = e._getSnapshot(s);
|
|
8945
9126
|
l.resumeHistory(), r || l.saveState();
|
|
8946
|
-
let
|
|
8947
|
-
...
|
|
9127
|
+
let Ie = {
|
|
9128
|
+
...Pe,
|
|
8948
9129
|
before: f,
|
|
8949
|
-
after:
|
|
9130
|
+
after: Fe
|
|
8950
9131
|
};
|
|
8951
|
-
return o && d.fire("editor:text-updated",
|
|
9132
|
+
return o && d.fire("editor:text-updated", Ie), s;
|
|
8952
9133
|
}
|
|
8953
9134
|
stylesFromArray(e, t) {
|
|
8954
9135
|
return C.stylesFromArray(e, t);
|
|
@@ -9008,7 +9189,7 @@ var di = class {
|
|
|
9008
9189
|
clampToMontage: r
|
|
9009
9190
|
}));
|
|
9010
9191
|
let a = !1;
|
|
9011
|
-
i || (a =
|
|
9192
|
+
i || (a = wn({ textbox: e }));
|
|
9012
9193
|
let o = !1;
|
|
9013
9194
|
return !i && t && (this.editor.canvasManager.applyObjectPlacement({
|
|
9014
9195
|
object: e,
|
|
@@ -9016,7 +9197,7 @@ var di = class {
|
|
|
9016
9197
|
}), o = !0), (i || a) && (e.dirty = !0), (i || a || o) && e.setCoords(), i || a;
|
|
9017
9198
|
}
|
|
9018
9199
|
_restoreTextboxContentPlacement({ textbox: e, contentPlacement: t }) {
|
|
9019
|
-
let n =
|
|
9200
|
+
let n = bn({
|
|
9020
9201
|
textbox: e,
|
|
9021
9202
|
originX: t.originX,
|
|
9022
9203
|
originY: t.originY
|
|
@@ -9034,85 +9215,12 @@ var di = class {
|
|
|
9034
9215
|
e.on("object:scaling", this.scalingController.handleObjectScaling), e.on("object:resizing", this._handleObjectResizing), e.on("object:modified", this.scalingController.handleObjectModified), e.on("mouse:move", this.scalingController.handleMouseMove), e.on("text:editing:entered", this._handleTextEditingEntered), e.on("text:editing:exited", this._handleTextEditingExited), e.on("text:changed", this._handleTextChanged);
|
|
9035
9216
|
}
|
|
9036
9217
|
_syncLineFontDefaultsOnTextChanged({ textbox: e }) {
|
|
9037
|
-
let
|
|
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;
|
|
9218
|
+
let t = e.text ?? "", n = hn({
|
|
9219
|
+
textbox: e,
|
|
9220
|
+
previousText: e.__lineDefaultsPrevText ?? t,
|
|
9221
|
+
currentText: t
|
|
9222
|
+
});
|
|
9223
|
+
n.lineFontDefaultsChanged && n.lineFontDefaults && (e.lineFontDefaults = n.lineFontDefaults), n.stylesChanged && (e.styles = n.styles, e.dirty = !0), e.__lineDefaultsPrevText = t;
|
|
9116
9224
|
}
|
|
9117
9225
|
_autoExpandTextboxWidth(e, { placement: t, clampToMontage: n = !0 } = {}) {
|
|
9118
9226
|
let { canvasManager: r, montageArea: i } = this.editor;
|
|
@@ -9125,16 +9233,16 @@ var di = class {
|
|
|
9125
9233
|
if (!Number.isFinite(f) || f <= 0) return !1;
|
|
9126
9234
|
let p = a.split("\n").length, m = !1;
|
|
9127
9235
|
Math.abs((e.width ?? 0) - f) > .01 && (e.set({ width: f }), m = !0), e.initDimensions();
|
|
9128
|
-
let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(
|
|
9236
|
+
let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(vn({
|
|
9129
9237
|
textbox: e,
|
|
9130
9238
|
text: a
|
|
9131
9239
|
})), v = Math.min(e.minWidth ?? 1, f), y = Math.min(f, Math.max(_, v));
|
|
9132
|
-
g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0),
|
|
9240
|
+
g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0), wn({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
|
|
9133
9241
|
object: e,
|
|
9134
9242
|
placement: t
|
|
9135
9243
|
});
|
|
9136
9244
|
let b = !1;
|
|
9137
|
-
return n && (b =
|
|
9245
|
+
return n && (b = xn({
|
|
9138
9246
|
textbox: e,
|
|
9139
9247
|
montageLeft: o,
|
|
9140
9248
|
montageRight: o + s
|
|
@@ -9192,7 +9300,7 @@ var di = class {
|
|
|
9192
9300
|
_getDefaultFontFamily() {
|
|
9193
9301
|
return this.fonts[0]?.family ?? "Arial";
|
|
9194
9302
|
}
|
|
9195
|
-
},
|
|
9303
|
+
}, ji = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Mi = (e) => {
|
|
9196
9304
|
if (!e || typeof e != "object") return null;
|
|
9197
9305
|
let { type: t, coords: n, colorStops: r } = e, i = Array.isArray(r) ? r : [], a = i[0], o = i[i.length - 1], s = typeof a?.color == "string" ? a.color : void 0, c = typeof o?.color == "string" ? o.color : s, l = typeof a?.offset == "number" ? a.offset * 100 : void 0, u = typeof o?.offset == "number" ? o.offset * 100 : void 0, d = i.map((e) => ({
|
|
9198
9306
|
color: typeof e.color == "string" ? e.color : "#000000",
|
|
@@ -9203,7 +9311,7 @@ var di = class {
|
|
|
9203
9311
|
let { x1: e, y1: t, x2: r, y2: i } = n;
|
|
9204
9312
|
if (typeof e == "number" && typeof t == "number" && typeof r == "number" && typeof i == "number") return {
|
|
9205
9313
|
type: "linear",
|
|
9206
|
-
angle:
|
|
9314
|
+
angle: ji({
|
|
9207
9315
|
x1: e,
|
|
9208
9316
|
y1: t,
|
|
9209
9317
|
x2: r,
|
|
@@ -9231,7 +9339,7 @@ var di = class {
|
|
|
9231
9339
|
};
|
|
9232
9340
|
}
|
|
9233
9341
|
return null;
|
|
9234
|
-
},
|
|
9342
|
+
}, Ni = "_templateAnchorX", Pi = "_templateAnchorY", Fi = class t {
|
|
9235
9343
|
constructor({ editor: e }) {
|
|
9236
9344
|
this.editor = e;
|
|
9237
9345
|
}
|
|
@@ -9240,7 +9348,7 @@ var di = class {
|
|
|
9240
9348
|
if (!p.length) return s.emitWarning({
|
|
9241
9349
|
origin: "TemplateManager",
|
|
9242
9350
|
method: "serializeSelection",
|
|
9243
|
-
code:
|
|
9351
|
+
code: li.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
|
|
9244
9352
|
message: "Нет объектов для сериализации шаблона"
|
|
9245
9353
|
}), null;
|
|
9246
9354
|
let m = t._getBounds(o), h = t._getMontageSize({
|
|
@@ -9269,14 +9377,14 @@ var di = class {
|
|
|
9269
9377
|
if (!l?.length) return a.emitWarning({
|
|
9270
9378
|
origin: "TemplateManager",
|
|
9271
9379
|
method: "applyTemplate",
|
|
9272
|
-
code:
|
|
9380
|
+
code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
|
|
9273
9381
|
message: "Шаблон не содержит объектов"
|
|
9274
9382
|
}), null;
|
|
9275
9383
|
let f = t._getBounds(r);
|
|
9276
9384
|
if (!f) return a.emitWarning({
|
|
9277
9385
|
origin: "TemplateManager",
|
|
9278
9386
|
method: "applyTemplate",
|
|
9279
|
-
code:
|
|
9387
|
+
code: li.TEMPLATE_MANAGER.INVALID_TARGET,
|
|
9280
9388
|
message: "Не удалось определить границы монтажной области"
|
|
9281
9389
|
}), null;
|
|
9282
9390
|
let p = t._getMontageSize({
|
|
@@ -9295,7 +9403,7 @@ var di = class {
|
|
|
9295
9403
|
if (!r.length) return a.emitWarning({
|
|
9296
9404
|
origin: "TemplateManager",
|
|
9297
9405
|
method: "applyTemplate",
|
|
9298
|
-
code:
|
|
9406
|
+
code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
|
|
9299
9407
|
message: "Не удалось создать объекты шаблона"
|
|
9300
9408
|
}), null;
|
|
9301
9409
|
let { backgroundObject: i, contentObjects: u } = t._extractBackgroundObject(r);
|
|
@@ -9333,7 +9441,7 @@ var di = class {
|
|
|
9333
9441
|
return a.emitError({
|
|
9334
9442
|
origin: "TemplateManager",
|
|
9335
9443
|
method: "applyTemplate",
|
|
9336
|
-
code:
|
|
9444
|
+
code: li.TEMPLATE_MANAGER.APPLY_FAILED,
|
|
9337
9445
|
message: "Ошибка применения шаблона",
|
|
9338
9446
|
data: {
|
|
9339
9447
|
templateId: d,
|
|
@@ -9487,8 +9595,8 @@ var di = class {
|
|
|
9487
9595
|
baseHeight: a,
|
|
9488
9596
|
scale: n,
|
|
9489
9597
|
useRelativePositions: o,
|
|
9490
|
-
anchorX: t._resolveAnchor(s,
|
|
9491
|
-
anchorY: t._resolveAnchor(s,
|
|
9598
|
+
anchorX: t._resolveAnchor(s, Ni),
|
|
9599
|
+
anchorY: t._resolveAnchor(s, Pi)
|
|
9492
9600
|
})
|
|
9493
9601
|
}), h = f * n, g = p * n, _ = e.originX ?? "center", v = e.originY ?? "center";
|
|
9494
9602
|
e.set({
|
|
@@ -9502,7 +9610,7 @@ var di = class {
|
|
|
9502
9610
|
originX: _,
|
|
9503
9611
|
originY: v
|
|
9504
9612
|
}
|
|
9505
|
-
}), delete s[
|
|
9613
|
+
}), delete s[Ni], delete s[Pi];
|
|
9506
9614
|
}
|
|
9507
9615
|
static _getPositioningBounds({ bounds: e, baseWidth: n, baseHeight: r, scale: i, useRelativePositions: a, anchorX: o, anchorY: s }) {
|
|
9508
9616
|
if (!a) return e;
|
|
@@ -9566,7 +9674,7 @@ var di = class {
|
|
|
9566
9674
|
});
|
|
9567
9675
|
if (!i || !s || !o) return;
|
|
9568
9676
|
e.setCoords();
|
|
9569
|
-
let c = e, l = t._resolveAnchor(c,
|
|
9677
|
+
let c = e, l = t._resolveAnchor(c, Ni), u = typeof c.left == "number" ? c.left : null, d = e.originX ?? "center", f = e.originY ?? "center", p = e.getPointByOrigin(d, f), m = e.getBoundingRect(!1, !0), h = m.left + m.width;
|
|
9570
9678
|
e.set("width", i), e.initDimensions();
|
|
9571
9679
|
let g = t._getLongestLineWidth({
|
|
9572
9680
|
textbox: e,
|
|
@@ -9595,10 +9703,10 @@ var di = class {
|
|
|
9595
9703
|
x: (p.left - o) / d,
|
|
9596
9704
|
y: (p.top - s) / f
|
|
9597
9705
|
}, h = (u.left - o) / d, g = (u.top - s) / f, _ = h + u.width / d, v = g + u.height / f;
|
|
9598
|
-
return a[
|
|
9706
|
+
return a[Ni] = t._detectAnchor({
|
|
9599
9707
|
start: h,
|
|
9600
9708
|
end: _
|
|
9601
|
-
}), a[
|
|
9709
|
+
}), a[Pi] = t._detectAnchor({
|
|
9602
9710
|
start: g,
|
|
9603
9711
|
end: v
|
|
9604
9712
|
}), a.left = m.x, a.top = m.y, a;
|
|
@@ -9623,7 +9731,7 @@ var di = class {
|
|
|
9623
9731
|
withoutSave: !0
|
|
9624
9732
|
}), !0;
|
|
9625
9733
|
if (a === "gradient") {
|
|
9626
|
-
let e =
|
|
9734
|
+
let e = Mi(r);
|
|
9627
9735
|
if (e) return n.setGradientBackground({
|
|
9628
9736
|
gradient: e,
|
|
9629
9737
|
customData: o,
|
|
@@ -9644,7 +9752,7 @@ var di = class {
|
|
|
9644
9752
|
r.emitWarning({
|
|
9645
9753
|
origin: "TemplateManager",
|
|
9646
9754
|
method: "applyTemplate",
|
|
9647
|
-
code:
|
|
9755
|
+
code: li.TEMPLATE_MANAGER.APPLY_FAILED,
|
|
9648
9756
|
message: "Не удалось применить фон из шаблона",
|
|
9649
9757
|
data: e
|
|
9650
9758
|
});
|
|
@@ -9680,29 +9788,29 @@ var di = class {
|
|
|
9680
9788
|
enlivenObjectEnlivables(e) {
|
|
9681
9789
|
return C.enlivenObjectEnlivables(e);
|
|
9682
9790
|
}
|
|
9683
|
-
},
|
|
9684
|
-
let n =
|
|
9791
|
+
}, Ii = "#3D8BF4", Li = .5, Ri = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, zi = ({ firstDistance: e, secondDistance: t }) => {
|
|
9792
|
+
let n = Ri({ distance: e }), r = Ri({ distance: t });
|
|
9685
9793
|
return {
|
|
9686
9794
|
firstDisplayDistance: n,
|
|
9687
9795
|
secondDisplayDistance: r,
|
|
9688
9796
|
displayDistanceDiff: Math.abs(n - r),
|
|
9689
9797
|
commonDisplayDistance: Math.max(n, r)
|
|
9690
9798
|
};
|
|
9691
|
-
},
|
|
9799
|
+
}, Bi = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), Vi = ({ step: e }) => {
|
|
9692
9800
|
let t = Math.abs(e).toString(), n = t.indexOf(".");
|
|
9693
9801
|
return n === -1 ? 0 : t.slice(n + 1).length;
|
|
9694
|
-
},
|
|
9802
|
+
}, Hi = ({ value: e, step: t }) => {
|
|
9695
9803
|
if (t === 0) return e;
|
|
9696
|
-
let n =
|
|
9804
|
+
let n = Vi({ step: t }), r = Math.round(e / t) * t;
|
|
9697
9805
|
return Number(r.toFixed(n));
|
|
9698
|
-
},
|
|
9806
|
+
}, Ui = ({ value: e, step: t }) => {
|
|
9699
9807
|
if (t === 0) return !0;
|
|
9700
|
-
let n =
|
|
9808
|
+
let n = Hi({
|
|
9701
9809
|
value: e,
|
|
9702
9810
|
step: t
|
|
9703
|
-
}), r = 10 ** -(
|
|
9811
|
+
}), r = 10 ** -(Vi({ step: t }) + 4);
|
|
9704
9812
|
return Math.abs(n - e) <= r;
|
|
9705
|
-
},
|
|
9813
|
+
}, Wi = ({ bounds: e, axis: t }) => {
|
|
9706
9814
|
let { left: n = 0, right: r = 0, top: i = 0, bottom: a = 0 } = e;
|
|
9707
9815
|
return t === "vertical" ? {
|
|
9708
9816
|
start: i,
|
|
@@ -9711,7 +9819,7 @@ var di = class {
|
|
|
9711
9819
|
start: n,
|
|
9712
9820
|
end: r
|
|
9713
9821
|
};
|
|
9714
|
-
},
|
|
9822
|
+
}, Gi = ({ items: e, axis: t }) => {
|
|
9715
9823
|
for (let n = 1; n < e.length; n += 1) {
|
|
9716
9824
|
let r = e[n], { bounds: i } = r, a = i[t], o = n - 1;
|
|
9717
9825
|
for (; o >= 0;) {
|
|
@@ -9721,10 +9829,10 @@ var di = class {
|
|
|
9721
9829
|
}
|
|
9722
9830
|
e[o + 1] = r;
|
|
9723
9831
|
}
|
|
9724
|
-
},
|
|
9832
|
+
}, Ki = ({ items: e, index: t, axis: n, direction: r }) => {
|
|
9725
9833
|
let i = e[t];
|
|
9726
9834
|
if (!i) return null;
|
|
9727
|
-
let { bounds: a } = i, { start: o, end: s } =
|
|
9835
|
+
let { bounds: a } = i, { start: o, end: s } = Wi({
|
|
9728
9836
|
bounds: a,
|
|
9729
9837
|
axis: n
|
|
9730
9838
|
});
|
|
@@ -9732,7 +9840,7 @@ var di = class {
|
|
|
9732
9840
|
for (let r = t - 1; r >= 0; --r) {
|
|
9733
9841
|
let t = e[r];
|
|
9734
9842
|
if (!t) continue;
|
|
9735
|
-
let { bounds: i } = t, { end: a } =
|
|
9843
|
+
let { bounds: i } = t, { end: a } = Wi({
|
|
9736
9844
|
bounds: i,
|
|
9737
9845
|
axis: n
|
|
9738
9846
|
});
|
|
@@ -9743,26 +9851,26 @@ var di = class {
|
|
|
9743
9851
|
for (let r = t + 1; r < e.length; r += 1) {
|
|
9744
9852
|
let t = e[r];
|
|
9745
9853
|
if (!t) continue;
|
|
9746
|
-
let { bounds: i } = t, { start: a } =
|
|
9854
|
+
let { bounds: i } = t, { start: a } = Wi({
|
|
9747
9855
|
bounds: i,
|
|
9748
9856
|
axis: n
|
|
9749
9857
|
});
|
|
9750
9858
|
if (a - s >= 0) return r;
|
|
9751
9859
|
}
|
|
9752
9860
|
return null;
|
|
9753
|
-
},
|
|
9861
|
+
}, qi = ({ items: e }) => {
|
|
9754
9862
|
for (let t = 0; t < e.length; t += 1) {
|
|
9755
9863
|
let { isActive: n } = e[t];
|
|
9756
9864
|
if (n) return t;
|
|
9757
9865
|
}
|
|
9758
9866
|
return -1;
|
|
9759
|
-
},
|
|
9867
|
+
}, Ji = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
|
|
9760
9868
|
let i = Math.min(t, n), a = Math.max(t, n);
|
|
9761
9869
|
return e >= i - r && e <= a + r;
|
|
9762
|
-
},
|
|
9870
|
+
}, Yi = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, Xi = ({ baseOption: e, candidateOption: t }) => {
|
|
9763
9871
|
let { delta: n, guide: { distance: r } } = e, { delta: i, guide: { distance: a } } = t;
|
|
9764
9872
|
return n === i && r === a;
|
|
9765
|
-
},
|
|
9873
|
+
}, Zi = ({ options: e }) => {
|
|
9766
9874
|
let t = e[0];
|
|
9767
9875
|
for (let n = 1; n < e.length; n += 1) {
|
|
9768
9876
|
let r = e[n];
|
|
@@ -9773,11 +9881,11 @@ var di = class {
|
|
|
9773
9881
|
r.diff === t.diff && Math.abs(r.delta) < Math.abs(t.delta) && (t = r);
|
|
9774
9882
|
}
|
|
9775
9883
|
return t;
|
|
9776
|
-
},
|
|
9884
|
+
}, Qi = ({ currentOption: e, nextOption: t }) => {
|
|
9777
9885
|
if (!e) return !0;
|
|
9778
9886
|
let { contextDistance: n, diff: r, delta: i } = e, { contextDistance: a, diff: o, delta: s } = t;
|
|
9779
9887
|
return a < n ? !0 : a > n ? !1 : o < r ? !0 : o > r ? !1 : Math.abs(s) < Math.abs(i);
|
|
9780
|
-
},
|
|
9888
|
+
}, $i = ({ options: e }) => {
|
|
9781
9889
|
let t = [], n = null, r = null;
|
|
9782
9890
|
for (let i of e) {
|
|
9783
9891
|
let { kind: e, side: a } = i;
|
|
@@ -9785,18 +9893,18 @@ var di = class {
|
|
|
9785
9893
|
t.push(i);
|
|
9786
9894
|
continue;
|
|
9787
9895
|
}
|
|
9788
|
-
a === "before" &&
|
|
9896
|
+
a === "before" && Qi({
|
|
9789
9897
|
currentOption: n,
|
|
9790
9898
|
nextOption: i
|
|
9791
|
-
}) && (n = i), a === "after" &&
|
|
9899
|
+
}) && (n = i), a === "after" && Qi({
|
|
9792
9900
|
currentOption: r,
|
|
9793
9901
|
nextOption: i
|
|
9794
9902
|
}) && (r = i);
|
|
9795
9903
|
}
|
|
9796
9904
|
return n && t.push(n), r && t.push(r), t;
|
|
9797
|
-
},
|
|
9905
|
+
}, ea = ({ options: e, side: t, baseOption: n }) => {
|
|
9798
9906
|
let r = null;
|
|
9799
|
-
for (let i of e) if (i.side === t &&
|
|
9907
|
+
for (let i of e) if (i.side === t && Xi({
|
|
9800
9908
|
baseOption: n,
|
|
9801
9909
|
candidateOption: i
|
|
9802
9910
|
})) {
|
|
@@ -9807,63 +9915,63 @@ var di = class {
|
|
|
9807
9915
|
!r || i.diff !== r.diff || Math.abs(i.delta) < Math.abs(r.delta) && (r = i);
|
|
9808
9916
|
}
|
|
9809
9917
|
return r;
|
|
9810
|
-
},
|
|
9918
|
+
}, ta = ({ option: e }) => {
|
|
9811
9919
|
let { side: t, kind: n, guide: { distance: r } } = e;
|
|
9812
9920
|
return {
|
|
9813
9921
|
side: t,
|
|
9814
9922
|
kind: n,
|
|
9815
9923
|
distance: r
|
|
9816
9924
|
};
|
|
9817
|
-
},
|
|
9925
|
+
}, na = ({ option: e, context: t }) => {
|
|
9818
9926
|
let { side: n, kind: r, distance: i } = t, { side: a, kind: o, guide: { distance: s } } = e;
|
|
9819
9927
|
return n !== a || r !== o ? !1 : Math.abs(s - i) <= 1;
|
|
9820
|
-
},
|
|
9928
|
+
}, ra = ({ options: e, context: t }) => {
|
|
9821
9929
|
if (!t) return null;
|
|
9822
|
-
for (let n of e) if (
|
|
9930
|
+
for (let n of e) if (na({
|
|
9823
9931
|
option: n,
|
|
9824
9932
|
context: t
|
|
9825
9933
|
})) return n;
|
|
9826
9934
|
return null;
|
|
9827
|
-
},
|
|
9828
|
-
let i =
|
|
9935
|
+
}, ia = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
|
|
9936
|
+
let i = ra({
|
|
9829
9937
|
options: e,
|
|
9830
9938
|
context: n
|
|
9831
9939
|
});
|
|
9832
9940
|
if (!i) return t;
|
|
9833
9941
|
let a = Math.max(0, r);
|
|
9834
9942
|
return a === 0 || Math.abs(t.delta - i.delta) >= a ? t : i;
|
|
9835
|
-
},
|
|
9943
|
+
}, aa = ({ guides: e, seenGuideKeys: t, guide: n }) => {
|
|
9836
9944
|
let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = n, u = `${r}:${i}:${a}:${o}:${s}:${c}:${l}`;
|
|
9837
9945
|
t.has(u) || (t.add(u), e.push(n));
|
|
9838
|
-
},
|
|
9946
|
+
}, oa = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
|
|
9839
9947
|
if (!e.length) return {
|
|
9840
9948
|
delta: 0,
|
|
9841
9949
|
guides: [],
|
|
9842
9950
|
context: null
|
|
9843
9951
|
};
|
|
9844
|
-
let r =
|
|
9952
|
+
let r = $i({ options: e }), i = [];
|
|
9845
9953
|
for (let e of r) e.kind === "reference" && i.push(e);
|
|
9846
|
-
let a = i.length > 0, o = a ? i : r, s =
|
|
9954
|
+
let a = i.length > 0, o = a ? i : r, s = ia({
|
|
9847
9955
|
options: o,
|
|
9848
|
-
bestOption:
|
|
9956
|
+
bestOption: Zi({ options: o }),
|
|
9849
9957
|
previousContext: t,
|
|
9850
9958
|
switchDistance: n
|
|
9851
|
-
}), c =
|
|
9959
|
+
}), c = ea({
|
|
9852
9960
|
options: o,
|
|
9853
9961
|
side: "before",
|
|
9854
9962
|
baseOption: s
|
|
9855
|
-
}), l =
|
|
9963
|
+
}), l = ea({
|
|
9856
9964
|
options: o,
|
|
9857
9965
|
side: "after",
|
|
9858
9966
|
baseOption: s
|
|
9859
|
-
}), u =
|
|
9967
|
+
}), u = ea({
|
|
9860
9968
|
options: a ? r : o,
|
|
9861
9969
|
side: "center",
|
|
9862
9970
|
baseOption: s
|
|
9863
9971
|
}), d = [];
|
|
9864
9972
|
c && l ? d.push(c, l) : (d.push(s), s.side === "before" && l && d.push(l), s.side === "after" && c && d.push(c), s.side === "center" && (c && !l && d.push(c), l && !c && d.push(l)), a && s.side === "before" && !l && u && d.push(u), a && s.side === "after" && !c && u && d.push(u)), !d.length && u && d.push(u);
|
|
9865
9973
|
let f = [], p = /* @__PURE__ */ new Set();
|
|
9866
|
-
for (let e of d)
|
|
9974
|
+
for (let e of d) aa({
|
|
9867
9975
|
guides: f,
|
|
9868
9976
|
seenGuideKeys: p,
|
|
9869
9977
|
guide: e.guide
|
|
@@ -9871,15 +9979,15 @@ var di = class {
|
|
|
9871
9979
|
return {
|
|
9872
9980
|
delta: s.delta,
|
|
9873
9981
|
guides: f,
|
|
9874
|
-
context:
|
|
9982
|
+
context: ta({ option: s })
|
|
9875
9983
|
};
|
|
9876
|
-
},
|
|
9877
|
-
let s = n - (e - r), c =
|
|
9984
|
+
}, sa = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
|
|
9985
|
+
let s = n - (e - r), c = Hi({
|
|
9878
9986
|
value: s,
|
|
9879
9987
|
step: o
|
|
9880
9988
|
}), l = Math.max(1, Math.ceil(a / Math.max(o, 1))), u = null;
|
|
9881
9989
|
for (let d = -l; d <= l; d += 1) {
|
|
9882
|
-
let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } =
|
|
9990
|
+
let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = zi({
|
|
9883
9991
|
firstDistance: m,
|
|
9884
9992
|
secondDistance: h
|
|
9885
9993
|
});
|
|
@@ -9894,13 +10002,13 @@ var di = class {
|
|
|
9894
10002
|
});
|
|
9895
10003
|
}
|
|
9896
10004
|
return u;
|
|
9897
|
-
},
|
|
9898
|
-
let { secondDisplayDistance: n, displayDistanceDiff: r } =
|
|
10005
|
+
}, ca = ({ currentGap: e, referenceGap: t }) => {
|
|
10006
|
+
let { secondDisplayDistance: n, displayDistanceDiff: r } = zi({
|
|
9899
10007
|
firstDistance: e,
|
|
9900
10008
|
secondDistance: t
|
|
9901
10009
|
});
|
|
9902
10010
|
return r > 1 ? null : n;
|
|
9903
|
-
},
|
|
10011
|
+
}, la = ({ anchors: e, positions: t, threshold: n }) => {
|
|
9904
10012
|
let r = 0, i = n + 1, a = null;
|
|
9905
10013
|
for (let o of t) for (let t of e) {
|
|
9906
10014
|
let e = Math.abs(t - o);
|
|
@@ -9910,8 +10018,8 @@ var di = class {
|
|
|
9910
10018
|
delta: r,
|
|
9911
10019
|
guidePosition: a
|
|
9912
10020
|
};
|
|
9913
|
-
},
|
|
9914
|
-
let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l =
|
|
10021
|
+
}, ua = ({ activeBounds: e, threshold: t, anchors: n }) => {
|
|
10022
|
+
let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = la({
|
|
9915
10023
|
anchors: n.vertical,
|
|
9916
10024
|
positions: [
|
|
9917
10025
|
r,
|
|
@@ -9919,7 +10027,7 @@ var di = class {
|
|
|
9919
10027
|
i
|
|
9920
10028
|
],
|
|
9921
10029
|
threshold: t
|
|
9922
|
-
}), u =
|
|
10030
|
+
}), u = la({
|
|
9923
10031
|
anchors: n.horizontal,
|
|
9924
10032
|
positions: [
|
|
9925
10033
|
o,
|
|
@@ -9939,11 +10047,11 @@ var di = class {
|
|
|
9939
10047
|
deltaY: u.delta,
|
|
9940
10048
|
guides: d
|
|
9941
10049
|
};
|
|
9942
|
-
},
|
|
10050
|
+
}, da = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
|
|
9943
10051
|
let { centerX: o, top: s, bottom: c, left: l, right: u } = e, d = [];
|
|
9944
10052
|
for (let e of t) {
|
|
9945
10053
|
let { left: t, right: n } = e;
|
|
9946
|
-
|
|
10054
|
+
Bi({
|
|
9947
10055
|
firstStart: t,
|
|
9948
10056
|
firstEnd: n,
|
|
9949
10057
|
secondStart: l,
|
|
@@ -9963,22 +10071,22 @@ var di = class {
|
|
|
9963
10071
|
f.push({
|
|
9964
10072
|
bounds: e,
|
|
9965
10073
|
isActive: !0
|
|
9966
|
-
}),
|
|
10074
|
+
}), Gi({
|
|
9967
10075
|
items: f,
|
|
9968
10076
|
axis: "top"
|
|
9969
10077
|
});
|
|
9970
|
-
let p =
|
|
10078
|
+
let p = qi({ items: f });
|
|
9971
10079
|
if (p === -1) return {
|
|
9972
10080
|
delta: 0,
|
|
9973
10081
|
guides: [],
|
|
9974
10082
|
context: null
|
|
9975
10083
|
};
|
|
9976
|
-
let m = [], h = c - s, g =
|
|
10084
|
+
let m = [], h = c - s, g = Ki({
|
|
9977
10085
|
items: f,
|
|
9978
10086
|
index: p,
|
|
9979
10087
|
axis: "vertical",
|
|
9980
10088
|
direction: "prev"
|
|
9981
|
-
}), _ =
|
|
10089
|
+
}), _ = Ki({
|
|
9982
10090
|
items: f,
|
|
9983
10091
|
index: p,
|
|
9984
10092
|
axis: "vertical",
|
|
@@ -9987,19 +10095,19 @@ var di = class {
|
|
|
9987
10095
|
if (v && y) {
|
|
9988
10096
|
let { bounds: e } = v, { bounds: t } = y, { bottom: r } = e, { top: i } = t, a = i - r - h;
|
|
9989
10097
|
if (a >= 0) {
|
|
9990
|
-
let e =
|
|
10098
|
+
let e = Hi({
|
|
9991
10099
|
value: a / 2,
|
|
9992
10100
|
step: 1
|
|
9993
10101
|
}), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
|
|
9994
10102
|
if (Math.max(u, d) <= n) {
|
|
9995
|
-
let t =
|
|
10103
|
+
let t = sa({
|
|
9996
10104
|
activeStart: s,
|
|
9997
10105
|
activeEnd: c,
|
|
9998
10106
|
targetGap: e,
|
|
9999
10107
|
beforeEdge: r,
|
|
10000
10108
|
afterEdge: i,
|
|
10001
10109
|
threshold: n,
|
|
10002
|
-
step:
|
|
10110
|
+
step: Li
|
|
10003
10111
|
});
|
|
10004
10112
|
if (t) {
|
|
10005
10113
|
let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
|
|
@@ -10036,16 +10144,16 @@ var di = class {
|
|
|
10036
10144
|
}
|
|
10037
10145
|
for (let e of r) {
|
|
10038
10146
|
let { axis: t, start: r, end: i, distance: a } = e;
|
|
10039
|
-
if (!
|
|
10147
|
+
if (!Ui({
|
|
10040
10148
|
value: a,
|
|
10041
10149
|
step: .5
|
|
10042
|
-
}) || !
|
|
10150
|
+
}) || !Ji({
|
|
10043
10151
|
patternAxis: t,
|
|
10044
10152
|
activeRangeStart: l,
|
|
10045
10153
|
activeRangeEnd: u,
|
|
10046
10154
|
tolerance: n
|
|
10047
10155
|
})) continue;
|
|
10048
|
-
let d =
|
|
10156
|
+
let d = Yi({
|
|
10049
10157
|
patternStart: r,
|
|
10050
10158
|
patternEnd: i,
|
|
10051
10159
|
activeStart: s,
|
|
@@ -10053,12 +10161,12 @@ var di = class {
|
|
|
10053
10161
|
});
|
|
10054
10162
|
if (d) {
|
|
10055
10163
|
if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
|
|
10056
|
-
let e =
|
|
10164
|
+
let e = Hi({
|
|
10057
10165
|
value: a - b,
|
|
10058
10166
|
step: 1
|
|
10059
10167
|
}), t = s + e, { bottom: c } = S, l = t - c, u = Math.abs(l - a);
|
|
10060
10168
|
if (u > n) continue;
|
|
10061
|
-
let d =
|
|
10169
|
+
let d = ca({
|
|
10062
10170
|
currentGap: l,
|
|
10063
10171
|
referenceGap: a
|
|
10064
10172
|
});
|
|
@@ -10082,12 +10190,12 @@ var di = class {
|
|
|
10082
10190
|
});
|
|
10083
10191
|
}
|
|
10084
10192
|
if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
|
|
10085
|
-
let e =
|
|
10193
|
+
let e = Hi({
|
|
10086
10194
|
value: x - a,
|
|
10087
10195
|
step: 1
|
|
10088
10196
|
}), t = c + e, { top: s } = C, l = s - t, u = Math.abs(l - a);
|
|
10089
10197
|
if (u > n) continue;
|
|
10090
|
-
let d =
|
|
10198
|
+
let d = ca({
|
|
10091
10199
|
currentGap: l,
|
|
10092
10200
|
referenceGap: a
|
|
10093
10201
|
});
|
|
@@ -10112,16 +10220,16 @@ var di = class {
|
|
|
10112
10220
|
}
|
|
10113
10221
|
}
|
|
10114
10222
|
}
|
|
10115
|
-
return
|
|
10223
|
+
return oa({
|
|
10116
10224
|
options: m,
|
|
10117
10225
|
previousContext: i,
|
|
10118
10226
|
switchDistance: a
|
|
10119
10227
|
});
|
|
10120
|
-
},
|
|
10228
|
+
}, fa = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
|
|
10121
10229
|
let { centerY: o, left: s, right: c, top: l, bottom: u } = e, d = [];
|
|
10122
10230
|
for (let e of t) {
|
|
10123
10231
|
let { top: t, bottom: n } = e;
|
|
10124
|
-
|
|
10232
|
+
Bi({
|
|
10125
10233
|
firstStart: t,
|
|
10126
10234
|
firstEnd: n,
|
|
10127
10235
|
secondStart: l,
|
|
@@ -10141,22 +10249,22 @@ var di = class {
|
|
|
10141
10249
|
f.push({
|
|
10142
10250
|
bounds: e,
|
|
10143
10251
|
isActive: !0
|
|
10144
|
-
}),
|
|
10252
|
+
}), Gi({
|
|
10145
10253
|
items: f,
|
|
10146
10254
|
axis: "left"
|
|
10147
10255
|
});
|
|
10148
|
-
let p =
|
|
10256
|
+
let p = qi({ items: f });
|
|
10149
10257
|
if (p === -1) return {
|
|
10150
10258
|
delta: 0,
|
|
10151
10259
|
guides: [],
|
|
10152
10260
|
context: null
|
|
10153
10261
|
};
|
|
10154
|
-
let m = [], h = c - s, g =
|
|
10262
|
+
let m = [], h = c - s, g = Ki({
|
|
10155
10263
|
items: f,
|
|
10156
10264
|
index: p,
|
|
10157
10265
|
axis: "horizontal",
|
|
10158
10266
|
direction: "prev"
|
|
10159
|
-
}), _ =
|
|
10267
|
+
}), _ = Ki({
|
|
10160
10268
|
items: f,
|
|
10161
10269
|
index: p,
|
|
10162
10270
|
axis: "horizontal",
|
|
@@ -10165,19 +10273,19 @@ var di = class {
|
|
|
10165
10273
|
if (v && y) {
|
|
10166
10274
|
let { bounds: e } = v, { bounds: t } = y, { right: r } = e, { left: i } = t, a = i - r - h;
|
|
10167
10275
|
if (a >= 0) {
|
|
10168
|
-
let e =
|
|
10276
|
+
let e = Hi({
|
|
10169
10277
|
value: a / 2,
|
|
10170
10278
|
step: 1
|
|
10171
10279
|
}), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
|
|
10172
10280
|
if (Math.max(u, d) <= n) {
|
|
10173
|
-
let t =
|
|
10281
|
+
let t = sa({
|
|
10174
10282
|
activeStart: s,
|
|
10175
10283
|
activeEnd: c,
|
|
10176
10284
|
targetGap: e,
|
|
10177
10285
|
beforeEdge: r,
|
|
10178
10286
|
afterEdge: i,
|
|
10179
10287
|
threshold: n,
|
|
10180
|
-
step:
|
|
10288
|
+
step: Li
|
|
10181
10289
|
});
|
|
10182
10290
|
if (t) {
|
|
10183
10291
|
let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
|
|
@@ -10214,16 +10322,16 @@ var di = class {
|
|
|
10214
10322
|
}
|
|
10215
10323
|
for (let e of r) {
|
|
10216
10324
|
let { axis: t, start: r, end: i, distance: a } = e;
|
|
10217
|
-
if (!
|
|
10325
|
+
if (!Ui({
|
|
10218
10326
|
value: a,
|
|
10219
10327
|
step: .5
|
|
10220
|
-
}) || !
|
|
10328
|
+
}) || !Ji({
|
|
10221
10329
|
patternAxis: t,
|
|
10222
10330
|
activeRangeStart: l,
|
|
10223
10331
|
activeRangeEnd: u,
|
|
10224
10332
|
tolerance: n
|
|
10225
10333
|
})) continue;
|
|
10226
|
-
let d =
|
|
10334
|
+
let d = Yi({
|
|
10227
10335
|
patternStart: r,
|
|
10228
10336
|
patternEnd: i,
|
|
10229
10337
|
activeStart: s,
|
|
@@ -10231,12 +10339,12 @@ var di = class {
|
|
|
10231
10339
|
});
|
|
10232
10340
|
if (d) {
|
|
10233
10341
|
if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
|
|
10234
|
-
let e =
|
|
10342
|
+
let e = Hi({
|
|
10235
10343
|
value: a - b,
|
|
10236
10344
|
step: 1
|
|
10237
10345
|
}), t = s + e, { right: c } = S, l = t - c, u = Math.abs(l - a);
|
|
10238
10346
|
if (u > n) continue;
|
|
10239
|
-
let d =
|
|
10347
|
+
let d = ca({
|
|
10240
10348
|
currentGap: l,
|
|
10241
10349
|
referenceGap: a
|
|
10242
10350
|
});
|
|
@@ -10260,12 +10368,12 @@ var di = class {
|
|
|
10260
10368
|
});
|
|
10261
10369
|
}
|
|
10262
10370
|
if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
|
|
10263
|
-
let e =
|
|
10371
|
+
let e = Hi({
|
|
10264
10372
|
value: x - a,
|
|
10265
10373
|
step: 1
|
|
10266
10374
|
}), t = c + e, { left: s } = C, l = s - t, u = Math.abs(l - a);
|
|
10267
10375
|
if (u > n) continue;
|
|
10268
|
-
let d =
|
|
10376
|
+
let d = ca({
|
|
10269
10377
|
currentGap: l,
|
|
10270
10378
|
referenceGap: a
|
|
10271
10379
|
});
|
|
@@ -10290,20 +10398,20 @@ var di = class {
|
|
|
10290
10398
|
}
|
|
10291
10399
|
}
|
|
10292
10400
|
}
|
|
10293
|
-
return
|
|
10401
|
+
return oa({
|
|
10294
10402
|
options: m,
|
|
10295
10403
|
previousContext: i,
|
|
10296
10404
|
switchDistance: a
|
|
10297
10405
|
});
|
|
10298
|
-
},
|
|
10299
|
-
let { vertical: o = null, horizontal: s = null } = i ?? {}, c =
|
|
10406
|
+
}, pa = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
|
|
10407
|
+
let { vertical: o = null, horizontal: s = null } = i ?? {}, c = da({
|
|
10300
10408
|
activeBounds: e,
|
|
10301
10409
|
candidates: t,
|
|
10302
10410
|
threshold: n,
|
|
10303
10411
|
patterns: r.vertical,
|
|
10304
10412
|
previousContext: o,
|
|
10305
10413
|
switchDistance: a
|
|
10306
|
-
}), l =
|
|
10414
|
+
}), l = fa({
|
|
10307
10415
|
activeBounds: e,
|
|
10308
10416
|
candidates: t,
|
|
10309
10417
|
threshold: n,
|
|
@@ -10322,14 +10430,14 @@ var di = class {
|
|
|
10322
10430
|
horizontal: l.context
|
|
10323
10431
|
}
|
|
10324
10432
|
};
|
|
10325
|
-
},
|
|
10433
|
+
}, ma = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
|
|
10326
10434
|
let o = Math.min(a, r / 2, i / 2);
|
|
10327
10435
|
e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.quadraticCurveTo(t + r, n, t + r, n + o), e.lineTo(t + r, n + i - o), e.quadraticCurveTo(t + r, n + i, t + r - o, n + i), e.lineTo(t + o, n + i), e.quadraticCurveTo(t, n + i, t, n + i - o), e.lineTo(t, n + o), e.quadraticCurveTo(t, n, t + o, n), e.closePath();
|
|
10328
|
-
},
|
|
10436
|
+
}, ha = ({ context: e, type: t, axis: n, start: r, end: i, text: a, zoom: o, color: s, textColor: c = "#ffffff", fontFamily: l = "sans-serif", lineWidth: u = 1, padding: d = 4, radius: f = 4, offsetAlongAxis: p = 0, offsetPerpendicular: m = 0 }) => {
|
|
10329
10437
|
let h = o || 1, g = 12 / h, _ = d / h, v = f / h, y = (r + i) / 2 + p, b = t === "vertical" ? n + m : y, x = t === "vertical" ? y : n + m;
|
|
10330
10438
|
e.save(), e.setLineDash([]), e.fillStyle = s, e.strokeStyle = s, e.lineWidth = u / h, e.font = `${g}px ${l}`, e.textAlign = "center", e.textBaseline = "middle";
|
|
10331
10439
|
let S = e.measureText(a).width + _ * 2, C = g + _ * 2, w = b - S / 2, T = x - C / 2;
|
|
10332
|
-
e.beginPath(),
|
|
10440
|
+
e.beginPath(), ma({
|
|
10333
10441
|
context: e,
|
|
10334
10442
|
x: w,
|
|
10335
10443
|
y: T,
|
|
@@ -10337,11 +10445,11 @@ var di = class {
|
|
|
10337
10445
|
height: C,
|
|
10338
10446
|
radius: v
|
|
10339
10447
|
}), e.fill(), e.fillStyle = c, e.fillText(a, b, x), e.restore();
|
|
10340
|
-
},
|
|
10341
|
-
let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u =
|
|
10448
|
+
}, ga = ({ context: e, guide: t, zoom: n }) => {
|
|
10449
|
+
let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Ri({ distance: l }).toString();
|
|
10342
10450
|
e.beginPath(), r === "vertical" ? (e.moveTo(i, a), e.lineTo(i, o), e.moveTo(i, s), e.lineTo(i, c)) : (e.moveTo(a, i), e.lineTo(o, i), e.moveTo(s, i), e.lineTo(c, i)), e.stroke();
|
|
10343
|
-
let d =
|
|
10344
|
-
|
|
10451
|
+
let d = Ii;
|
|
10452
|
+
ha({
|
|
10345
10453
|
context: e,
|
|
10346
10454
|
type: r,
|
|
10347
10455
|
axis: i,
|
|
@@ -10351,7 +10459,7 @@ var di = class {
|
|
|
10351
10459
|
zoom: n,
|
|
10352
10460
|
color: d,
|
|
10353
10461
|
lineWidth: 1
|
|
10354
|
-
}),
|
|
10462
|
+
}), ha({
|
|
10355
10463
|
context: e,
|
|
10356
10464
|
type: r,
|
|
10357
10465
|
axis: i,
|
|
@@ -10362,10 +10470,10 @@ var di = class {
|
|
|
10362
10470
|
color: d,
|
|
10363
10471
|
lineWidth: 1
|
|
10364
10472
|
});
|
|
10365
|
-
},
|
|
10473
|
+
}, _a = ({ anchors: e, bounds: t }) => {
|
|
10366
10474
|
let { left: n, right: r, centerX: i, top: a, bottom: o, centerY: s } = t;
|
|
10367
10475
|
e.vertical.push(n, i, r), e.horizontal.push(a, s, o);
|
|
10368
|
-
},
|
|
10476
|
+
}, va = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
|
|
10369
10477
|
let i = [], a = n === "top" ? "left" : "top", o = r === "bottom" ? "right" : "bottom", s = [...e].sort((e, t) => e[n] - t[n]);
|
|
10370
10478
|
for (let e = 0; e < s.length; e += 1) {
|
|
10371
10479
|
let c = s[e], l = null, u = Infinity;
|
|
@@ -10386,35 +10494,35 @@ var di = class {
|
|
|
10386
10494
|
});
|
|
10387
10495
|
}
|
|
10388
10496
|
return i;
|
|
10389
|
-
},
|
|
10390
|
-
vertical:
|
|
10497
|
+
}, ya = ({ bounds: e }) => ({
|
|
10498
|
+
vertical: va({
|
|
10391
10499
|
bounds: e,
|
|
10392
10500
|
axis: "centerX",
|
|
10393
10501
|
type: "vertical",
|
|
10394
10502
|
primaryStart: "top",
|
|
10395
10503
|
primaryEnd: "bottom"
|
|
10396
10504
|
}),
|
|
10397
|
-
horizontal:
|
|
10505
|
+
horizontal: va({
|
|
10398
10506
|
bounds: e,
|
|
10399
10507
|
axis: "centerY",
|
|
10400
10508
|
type: "horizontal",
|
|
10401
10509
|
primaryStart: "left",
|
|
10402
10510
|
primaryEnd: "right"
|
|
10403
10511
|
})
|
|
10404
|
-
}),
|
|
10512
|
+
}), ba = [
|
|
10405
10513
|
"montage-area",
|
|
10406
10514
|
"background",
|
|
10407
10515
|
"interaction-blocker"
|
|
10408
|
-
],
|
|
10516
|
+
], xa = ({ activeObject: t }) => {
|
|
10409
10517
|
let n = /* @__PURE__ */ new Set();
|
|
10410
10518
|
return t ? (n.add(t), t instanceof e && t.getObjects().forEach((e) => n.add(e)), n) : n;
|
|
10411
|
-
},
|
|
10519
|
+
}, Sa = ({ object: e, excluded: t, ignoredIds: n = ba }) => {
|
|
10412
10520
|
if (t.has(e)) return !0;
|
|
10413
10521
|
let { visible: r = !0 } = e;
|
|
10414
10522
|
if (!r) return !0;
|
|
10415
10523
|
let { id: i } = e;
|
|
10416
10524
|
return !!(i && n.includes(i));
|
|
10417
|
-
},
|
|
10525
|
+
}, Ca = class e {
|
|
10418
10526
|
constructor({ editor: e }) {
|
|
10419
10527
|
this.anchors = {
|
|
10420
10528
|
vertical: [],
|
|
@@ -10467,7 +10575,7 @@ var di = class {
|
|
|
10467
10575
|
this._clearSpacingContexts(), this._clearGuides();
|
|
10468
10576
|
return;
|
|
10469
10577
|
}
|
|
10470
|
-
let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } =
|
|
10578
|
+
let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = ua({
|
|
10471
10579
|
activeBounds: a,
|
|
10472
10580
|
threshold: c,
|
|
10473
10581
|
anchors: this.anchors
|
|
@@ -10479,7 +10587,7 @@ var di = class {
|
|
|
10479
10587
|
top: t + u
|
|
10480
10588
|
}), n.setCoords(), a = Ht({ object: n }) ?? a;
|
|
10481
10589
|
}
|
|
10482
|
-
let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p =
|
|
10590
|
+
let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = pa({
|
|
10483
10591
|
activeBounds: a,
|
|
10484
10592
|
candidates: d,
|
|
10485
10593
|
threshold: f,
|
|
@@ -10500,11 +10608,11 @@ var di = class {
|
|
|
10500
10608
|
target: n,
|
|
10501
10609
|
transform: i
|
|
10502
10610
|
});
|
|
10503
|
-
let h = Ht({ object: n }) ?? a, g =
|
|
10611
|
+
let h = Ht({ object: n }) ?? a, g = ua({
|
|
10504
10612
|
activeBounds: h,
|
|
10505
10613
|
threshold: c,
|
|
10506
10614
|
anchors: this.anchors
|
|
10507
|
-
}), _ =
|
|
10615
|
+
}), _ = pa({
|
|
10508
10616
|
activeBounds: h,
|
|
10509
10617
|
candidates: d,
|
|
10510
10618
|
threshold: c,
|
|
@@ -10735,9 +10843,9 @@ var di = class {
|
|
|
10735
10843
|
let { canvas: e, guideBounds: t } = this, n = e.getSelectionContext();
|
|
10736
10844
|
if (!n) return;
|
|
10737
10845
|
let { left: r, right: i, top: a, bottom: o } = t ?? this._calculateViewportBounds(), { viewportTransform: s } = e, c = e.getZoom() || 1;
|
|
10738
|
-
n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle =
|
|
10846
|
+
n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Ii, n.setLineDash([4, 4]);
|
|
10739
10847
|
for (let e of this.activeGuides) n.beginPath(), e.type === "vertical" ? (n.moveTo(e.position, a), n.lineTo(e.position, o)) : (n.moveTo(r, e.position), n.lineTo(i, e.position)), n.stroke();
|
|
10740
|
-
for (let e of this.activeSpacingGuides)
|
|
10848
|
+
for (let e of this.activeSpacingGuides) ga({
|
|
10741
10849
|
context: n,
|
|
10742
10850
|
guide: e,
|
|
10743
10851
|
zoom: c
|
|
@@ -10948,14 +11056,14 @@ var di = class {
|
|
|
10948
11056
|
}, r = [];
|
|
10949
11057
|
for (let e of t) {
|
|
10950
11058
|
let t = Ht({ object: e });
|
|
10951
|
-
t && (
|
|
11059
|
+
t && (_a({
|
|
10952
11060
|
anchors: n,
|
|
10953
11061
|
bounds: t
|
|
10954
11062
|
}), r.push(t));
|
|
10955
11063
|
}
|
|
10956
11064
|
let { montageArea: i } = this.editor, a = Ht({ object: i });
|
|
10957
11065
|
if (a) {
|
|
10958
|
-
|
|
11066
|
+
_a({
|
|
10959
11067
|
anchors: n,
|
|
10960
11068
|
bounds: a
|
|
10961
11069
|
});
|
|
@@ -10967,12 +11075,12 @@ var di = class {
|
|
|
10967
11075
|
bottom: i
|
|
10968
11076
|
};
|
|
10969
11077
|
} else this.guideBounds = this._calculateViewportBounds();
|
|
10970
|
-
this.anchors = n, this.spacingPatterns =
|
|
11078
|
+
this.anchors = n, this.spacingPatterns = ya({ bounds: r }), this.cachedTargetBounds = r;
|
|
10971
11079
|
}
|
|
10972
11080
|
_collectTargets({ activeObject: e }) {
|
|
10973
|
-
let t =
|
|
11081
|
+
let t = xa({ activeObject: e }), n = [];
|
|
10974
11082
|
return this.canvas.forEachObject((e) => {
|
|
10975
|
-
|
|
11083
|
+
Sa({
|
|
10976
11084
|
object: e,
|
|
10977
11085
|
excluded: t
|
|
10978
11086
|
}) || n.push(e);
|
|
@@ -10995,7 +11103,7 @@ var di = class {
|
|
|
10995
11103
|
bottom: (r - s) / a
|
|
10996
11104
|
};
|
|
10997
11105
|
}
|
|
10998
|
-
},
|
|
11106
|
+
}, wa = "#3D8BF4", Ta = class e {
|
|
10999
11107
|
constructor({ editor: e }) {
|
|
11000
11108
|
this.activeGuides = [], this.isAltPressed = !1, this.pendingEvent = null, this.frameRequest = null, this.isToolbarHidden = !1, this.isTargetMontageArea = !1, this.lastMouseEvent = null, this.editor = e, this.canvas = e.canvas, this._onMouseMove = this._handleMouseMove.bind(this), this._onBeforeRender = this._handleBeforeRender.bind(this), this._onAfterRender = this._handleAfterRender.bind(this), this._onSelectionCleared = this._handleSelectionCleared.bind(this), this._onKeyDown = this._handleKeyDown.bind(this), this._onKeyUp = this._handleKeyUp.bind(this), this._onWindowBlur = this._handleWindowBlur.bind(this), this._bindEvents();
|
|
11001
11109
|
}
|
|
@@ -11088,8 +11196,8 @@ var di = class {
|
|
|
11088
11196
|
this.isTargetMontageArea = l, this.activeGuides = d, this._hideToolbar(), n.requestRenderAll();
|
|
11089
11197
|
}
|
|
11090
11198
|
static _resolveTarget({ event: e, activeObject: t }) {
|
|
11091
|
-
let { target: n } = e, r =
|
|
11092
|
-
return n && !
|
|
11199
|
+
let { target: n } = e, r = xa({ activeObject: t });
|
|
11200
|
+
return n && !Sa({
|
|
11093
11201
|
object: n,
|
|
11094
11202
|
excluded: r
|
|
11095
11203
|
}) ? n : null;
|
|
@@ -11206,18 +11314,18 @@ var di = class {
|
|
|
11206
11314
|
let { canvas: e } = this, t = e.getSelectionContext();
|
|
11207
11315
|
if (!t) return;
|
|
11208
11316
|
let { viewportTransform: n } = e, r = e.getZoom() || 1, i = this.activeGuides.some((e) => e.type === "vertical"), a = this.activeGuides.some((e) => e.type === "horizontal"), o = i && a && !this.isTargetMontageArea, s = o ? 12 / r : 0;
|
|
11209
|
-
t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle =
|
|
11317
|
+
t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = wa, t.setLineDash([]);
|
|
11210
11318
|
for (let e of this.activeGuides) {
|
|
11211
11319
|
let { type: n, axis: i, start: a, end: c, distance: l } = e, u = Math.abs(c - a), d = o ? (a <= c ? -1 : 1) * (u / 2 + s) : 0;
|
|
11212
|
-
t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(),
|
|
11320
|
+
t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), ha({
|
|
11213
11321
|
context: t,
|
|
11214
11322
|
type: n,
|
|
11215
11323
|
axis: i,
|
|
11216
11324
|
start: a,
|
|
11217
11325
|
end: c,
|
|
11218
|
-
text:
|
|
11326
|
+
text: Ri({ distance: l }).toString(),
|
|
11219
11327
|
zoom: r,
|
|
11220
|
-
color:
|
|
11328
|
+
color: wa,
|
|
11221
11329
|
lineWidth: 1,
|
|
11222
11330
|
offsetAlongAxis: d,
|
|
11223
11331
|
offsetPerpendicular: 0
|
|
@@ -11235,13 +11343,13 @@ var di = class {
|
|
|
11235
11343
|
let { toolbar: e } = this.editor;
|
|
11236
11344
|
e?.showAfterTemporary?.(), this.isToolbarHidden = !1;
|
|
11237
11345
|
}
|
|
11238
|
-
},
|
|
11346
|
+
}, Ea = class e {
|
|
11239
11347
|
constructor(e, t) {
|
|
11240
11348
|
this.options = t, this.containerId = e, this.editorId = `${e}-${D()}`, this.init();
|
|
11241
11349
|
}
|
|
11242
11350
|
async init() {
|
|
11243
11351
|
let { editorContainerWidth: e, editorContainerHeight: n, canvasWrapperWidth: r, canvasWrapperHeight: i, canvasCSSWidth: a, canvasCSSHeight: o, initialImage: s, initialState: c, scaleType: l, showRotationAngle: u, _onReadyCallback: d } = this.options;
|
|
11244
|
-
if (ie.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new
|
|
11352
|
+
if (ie.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new ui({ editor: this }), this.historyManager = new wt({ editor: this }), this.toolbar = new Ye({ editor: this }), this.transformManager = new Ft({ editor: this }), this.zoomManager = new It({ editor: this }), this.canvasManager = new Pt({ editor: this }), this.imageManager = new At({ editor: this }), this.layerManager = new qt({ editor: this }), this.shapeManager = new ri({ editor: this }), this.interactionBlocker = new Gt({ editor: this }), this.backgroundManager = new Kt({ editor: this }), this.clipboardManager = new ii({ editor: this }), this.objectLockManager = new ai({ editor: this }), this.groupingManager = new oi({ editor: this }), this.selectionManager = new si({ editor: this }), this.deletionManager = new ci({ editor: this }), this.panConstraintManager = new di({ editor: this }), this.snappingManager = new Ca({ editor: this }), this.measurementManager = new Ta({ editor: this }), this.fontManager = new z(this.options.fonts ?? []), this.textManager = new Ai({ editor: this }), this.templateManager = new Fi({ editor: this }), u && (this.angleIndicator = new Qe({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
|
|
11245
11353
|
editor: this,
|
|
11246
11354
|
options: this.options
|
|
11247
11355
|
}), this.canvasManager.setEditorContainerWidth(e), this.canvasManager.setEditorContainerHeight(n), this.canvasManager.setCanvasWrapperWidth(r), this.canvasManager.setCanvasWrapperHeight(i), this.canvasManager.setCanvasCSSWidth(a), this.canvasManager.setCanvasCSSHeight(o), this.canvasManager.updateCanvas(), this.zoomManager.calculateAndApplyDefaultZoom(), await this.fontManager.loadFonts(), c) {
|
|
@@ -11349,7 +11457,7 @@ var di = class {
|
|
|
11349
11457
|
"U+A640-A69F",
|
|
11350
11458
|
"U+FE2E-FE2F",
|
|
11351
11459
|
"U+2116"
|
|
11352
|
-
].join(", "),
|
|
11460
|
+
].join(", "), Da = {
|
|
11353
11461
|
preserveObjectStacking: !0,
|
|
11354
11462
|
controlsAboveOverlay: !0,
|
|
11355
11463
|
centeredRotation: !0,
|
|
@@ -12203,20 +12311,20 @@ var di = class {
|
|
|
12203
12311
|
};
|
|
12204
12312
|
//#endregion
|
|
12205
12313
|
//#region src/main.ts
|
|
12206
|
-
function
|
|
12314
|
+
function Oa(e, t = {}) {
|
|
12207
12315
|
let n = {
|
|
12208
|
-
...
|
|
12316
|
+
...Da,
|
|
12209
12317
|
...t
|
|
12210
12318
|
}, r = document.getElementById(e);
|
|
12211
12319
|
if (!r) return Promise.reject(/* @__PURE__ */ Error(`Контейнер с ID "${e}" не найден.`));
|
|
12212
12320
|
let i = document.createElement("canvas");
|
|
12213
12321
|
return i.id = `${e}-canvas`, r.appendChild(i), n.editorContainer = r, new Promise((t) => {
|
|
12214
12322
|
n._onReadyCallback = t;
|
|
12215
|
-
let r = new
|
|
12323
|
+
let r = new Ea(i.id, n);
|
|
12216
12324
|
window[e] = r;
|
|
12217
12325
|
});
|
|
12218
12326
|
}
|
|
12219
12327
|
//#endregion
|
|
12220
|
-
export {
|
|
12328
|
+
export { Oa as default };
|
|
12221
12329
|
|
|
12222
12330
|
//# sourceMappingURL=main.js.map
|