@codingfactory/mediables-vue 2.19.1 → 2.19.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PixiFrameExporter-64httBgJ.js → PixiFrameExporter-BgKJMR1H.js} +2 -2
- package/dist/{PixiFrameExporter-64httBgJ.js.map → PixiFrameExporter-BgKJMR1H.js.map} +1 -1
- package/dist/{PixiFrameExporter-DkXTPJWn.cjs → PixiFrameExporter-CZkLc9b5.cjs} +2 -2
- package/dist/{PixiFrameExporter-DkXTPJWn.cjs.map → PixiFrameExporter-CZkLc9b5.cjs.map} +1 -1
- package/dist/editor-BDmZ747c.cjs +2 -0
- package/dist/editor-BDmZ747c.cjs.map +1 -0
- package/dist/{editor-CiTXlIVO.js → editor-CcfSL2dI.js} +200 -205
- package/dist/editor-CcfSL2dI.js.map +1 -0
- package/dist/{index-Dinl1Puu.js → index-CSYvPx9Q.js} +3 -3
- package/dist/{index-Dinl1Puu.js.map → index-CSYvPx9Q.js.map} +1 -1
- package/dist/{index-2jP5K__o.cjs → index-LL2h0nsa.cjs} +3 -3
- package/dist/{index-2jP5K__o.cjs.map → index-LL2h0nsa.cjs.map} +1 -1
- package/dist/mediables-vanilla.cjs +1 -1
- package/dist/mediables-vanilla.mjs +1 -1
- package/dist/mediables-vue.cjs +1 -1
- package/dist/mediables-vue.mjs +2 -2
- package/package.json +1 -1
- package/dist/editor-CiTXlIVO.js.map +0 -1
- package/dist/editor-P9MyuiTc.cjs +0 -2
- package/dist/editor-P9MyuiTc.cjs.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
var Me = Object.defineProperty;
|
|
2
2
|
var Fe = (g, e, t) => e in g ? Me(g, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : g[e] = t;
|
|
3
|
-
var
|
|
4
|
-
import { E as
|
|
3
|
+
var ae = (g, e, t) => Fe(g, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
import { E as ne, d as Se } from "./index-Dae8SHT7.js";
|
|
5
5
|
const Re = Object.freeze(["normal", "multiply", "screen", "overlay"]), E = Object.freeze({
|
|
6
6
|
stroke: Object.freeze({ enabled: !1, color: "#000000", width: 0 }),
|
|
7
7
|
shadow: Object.freeze({ enabled: !1, color: "#000000", alpha: 0.5, blur: 0, distance: 0, angle: 45 }),
|
|
8
8
|
glow: Object.freeze({ enabled: !1, color: "#ffffff", alpha: 0.5, blur: 0 }),
|
|
9
9
|
backdrop: Object.freeze({ enabled: !1, color: "#000000", opacity: 0.5, padding: 0, radius: 0, blur: 0 })
|
|
10
10
|
});
|
|
11
|
-
class Te extends
|
|
11
|
+
class Te extends ne {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(), this.app = null, this.sprite = null, this.originalTexture = null, this.baseTexture = null, this.fitScale = 1, this.zoom = 1, this._container = null, this._lastExportDimensions = null, this._mountPromise = null, this._mountToken = 0, this._destroyed = !1, this._layerDocument = null, this._layerDisplayObjects = /* @__PURE__ */ new Map(), this._renderableLayerIds = [], this._loadedTextureUrl = null, this._layerRenderToken = 0, this._layerFilterFactory = null;
|
|
14
14
|
}
|
|
@@ -602,13 +602,13 @@ class Te extends re {
|
|
|
602
602
|
e.x = r, e.y = o, e.rotation = this._normalizeDegrees(Number((b = t == null ? void 0 : t.transform) == null ? void 0 : b.rotation) || 0) * Math.PI / 180, e.blendMode = this._textBlendMode(t), e.__textBox = s, e.__textLayout = { x: r, y: o, width: n, height: a, scale: h };
|
|
603
603
|
const p = e.__textObject || e, u = e.__textMask || null, f = e.__textEffectMask || null;
|
|
604
604
|
if (p.text = this._textContentForLayer(t), p.style = this._textStyleForLayer(t, h, n), p.x = 0, p.y = 0, p.rotation = 0, u && typeof u.clear == "function" && typeof u.rect == "function" && typeof u.fill == "function" && (u.clear(), u.rect(0, 0, n, a).fill(16777215), p.mask = u), f && typeof f.clear == "function" && typeof f.rect == "function" && typeof f.fill == "function") {
|
|
605
|
-
const
|
|
606
|
-
f.clear(), f.rect(-
|
|
605
|
+
const k = this._textEffectPadding(c, h);
|
|
606
|
+
f.clear(), f.rect(-k, -k, n + k * 2, a + k * 2).fill(16777215);
|
|
607
607
|
}
|
|
608
608
|
this._syncTextBackdrop(window.PIXI, e.__textBackdrop, c, h, n, a, f), this._syncTextEffectPrimitive(window.PIXI, e.__textShadow, t, c, "shadow", h, n, f), this._syncTextEffectPrimitive(window.PIXI, e.__textGlow, t, c, "glow", h, n, f);
|
|
609
609
|
}
|
|
610
610
|
_fitDisplayObjectToRect(e, t, i) {
|
|
611
|
-
var c, p, u, f, m, b,
|
|
611
|
+
var c, p, u, f, m, b, k, x;
|
|
612
612
|
const s = this._backgroundFillForLayer(t), r = (s == null ? void 0 : s.fit) || "cover";
|
|
613
613
|
if (e.__isTilingBackground) {
|
|
614
614
|
e.x = i.x, e.y = i.y, e.width = i.width, e.height = i.height, (p = (c = e.tilePosition) == null ? void 0 : c.set) == null || p.call(c, 0, 0), (f = (u = e.tileScale) == null ? void 0 : u.set) == null || f.call(u, 1, 1);
|
|
@@ -618,7 +618,7 @@ class Te extends re {
|
|
|
618
618
|
e.x = i.x, e.y = i.y, e.width = i.width, e.height = i.height;
|
|
619
619
|
return;
|
|
620
620
|
}
|
|
621
|
-
const o = Number(e.__sourceWidth || ((m = s == null ? void 0 : s.source) == null ? void 0 : m.originalWidth) || ((b = e.texture) == null ? void 0 : b.width) || i.width), n = Number(e.__sourceHeight || ((
|
|
621
|
+
const o = Number(e.__sourceWidth || ((m = s == null ? void 0 : s.source) == null ? void 0 : m.originalWidth) || ((b = e.texture) == null ? void 0 : b.width) || i.width), n = Number(e.__sourceHeight || ((k = s == null ? void 0 : s.source) == null ? void 0 : k.originalHeight) || ((x = e.texture) == null ? void 0 : x.height) || i.height);
|
|
622
622
|
if (!Number.isFinite(o) || !Number.isFinite(n) || o <= 0 || n <= 0) {
|
|
623
623
|
e.x = i.x, e.y = i.y, e.width = i.width, e.height = i.height;
|
|
624
624
|
return;
|
|
@@ -689,7 +689,7 @@ class Te extends re {
|
|
|
689
689
|
* @returns {boolean}
|
|
690
690
|
*/
|
|
691
691
|
rotateBy(e) {
|
|
692
|
-
var m, b,
|
|
692
|
+
var m, b, k;
|
|
693
693
|
const t = this._normalizeDegrees(e);
|
|
694
694
|
if (t === 0) return !0;
|
|
695
695
|
if (!((m = this.app) != null && m.renderer) || !this.originalTexture || !this.sprite)
|
|
@@ -697,7 +697,7 @@ class Te extends re {
|
|
|
697
697
|
const i = window.PIXI, s = Math.round(this.originalTexture.width), r = Math.round(this.originalTexture.height);
|
|
698
698
|
if (s <= 0 || r <= 0) return !1;
|
|
699
699
|
const { width: o, height: n } = this.getRotatedBounds(s, r, t), a = t * Math.PI / 180, l = new i.Container(), h = new i.Sprite(this.originalTexture);
|
|
700
|
-
(
|
|
700
|
+
(k = (b = h.anchor) == null ? void 0 : b.set) == null || k.call(b, 0.5), h.x = o / 2, h.y = n / 2, h.rotation = a, l.addChild(h);
|
|
701
701
|
const c = i.RenderTexture.create({ width: o, height: n, resolution: 1 });
|
|
702
702
|
try {
|
|
703
703
|
this.app.renderer.render({
|
|
@@ -729,8 +729,8 @@ class Te extends re {
|
|
|
729
729
|
* @returns {string|null} Data URL
|
|
730
730
|
*/
|
|
731
731
|
exportImage(e = "png", t = 0.92, i = 0, s = !0, r = 0) {
|
|
732
|
-
var
|
|
733
|
-
if (!((
|
|
732
|
+
var S;
|
|
733
|
+
if (!((S = this.app) != null && S.renderer) || !this.originalTexture || !this.sprite)
|
|
734
734
|
return null;
|
|
735
735
|
const o = window.PIXI, n = Math.round(this.originalTexture.width), a = Math.round(this.originalTexture.height);
|
|
736
736
|
if (n <= 0 || a <= 0)
|
|
@@ -753,120 +753,120 @@ class Te extends re {
|
|
|
753
753
|
const w = typeof y.getExportPadding == "function" ? Number(y.getExportPadding()) || 0 : typeof y._exportPadding == "number" ? y._exportPadding : typeof y.padding == "number" ? y.padding : 0;
|
|
754
754
|
w > 0 && (b += w);
|
|
755
755
|
}
|
|
756
|
-
const
|
|
756
|
+
const k = Math.max(Math.ceil(b), 64), x = (y) => {
|
|
757
757
|
var Q, X, L, ee;
|
|
758
|
-
const w = Math.ceil(n + 2 * y),
|
|
758
|
+
const w = Math.ceil(n + 2 * y), R = Math.ceil(a + 2 * y), M = new o.Container(), N = [], z = (_ = null) => {
|
|
759
759
|
const v = new o.Sprite(this.originalTexture);
|
|
760
760
|
v.x = y, v.y = y, v.scale.set(1, 1), v.alpha = _ ? this._layerOpacity(_) : 1, _ && this._applyLayerFilterInstances(v, _, {
|
|
761
761
|
forExport: !0,
|
|
762
762
|
previewToNativeScale: p,
|
|
763
763
|
sourceWidth: n,
|
|
764
764
|
sourceHeight: a
|
|
765
|
-
}), m.length > 0 && (v.filters = m, v.filterArea = new o.Rectangle(0, 0, n, a)),
|
|
766
|
-
},
|
|
767
|
-
var
|
|
768
|
-
const v = (
|
|
765
|
+
}), m.length > 0 && (v.filters = m, v.filterArea = new o.Rectangle(0, 0, n, a)), M.addChild(v), N.push(v);
|
|
766
|
+
}, F = (_) => {
|
|
767
|
+
var Y, P, U;
|
|
768
|
+
const v = (Y = this._layerDisplayObjects.get(_.id)) == null ? void 0 : Y.displayObject, H = this._isSubjectLayer(_), I = (v == null ? void 0 : v.texture) || (H ? this.originalTexture : null);
|
|
769
769
|
if (!I || typeof o.Sprite != "function") return !1;
|
|
770
|
-
const
|
|
771
|
-
return
|
|
770
|
+
const C = new o.Sprite(I), te = (v == null ? void 0 : v.__sourceWidth) || (H ? null : (P = _.source) == null ? void 0 : P.originalWidth) || I.width || n, ie = (v == null ? void 0 : v.__sourceHeight) || (H ? null : (U = _.source) == null ? void 0 : U.originalHeight) || I.height || a;
|
|
771
|
+
return C.__sourceWidth = Number(te), C.__sourceHeight = Number(ie), this._fitDisplayObjectToRect(C, _, { x: y, y, width: n, height: a }), C.alpha = this._layerOpacity(_), !f && H && m.length > 0 && (C.filters = m, C.filterArea = new o.Rectangle(0, 0, n, a)), this._applyLayerEffects(o, C, _), this._applyLayerFilterInstances(C, _, {
|
|
772
772
|
forExport: !0,
|
|
773
773
|
previewToNativeScale: p,
|
|
774
774
|
sourceWidth: n,
|
|
775
775
|
sourceHeight: a
|
|
776
|
-
}),
|
|
776
|
+
}), M.addChild(C), N.push(C), !0;
|
|
777
777
|
}, T = (_) => {
|
|
778
|
-
var
|
|
779
|
-
const v = this._backgroundFillForLayer(_),
|
|
780
|
-
let
|
|
781
|
-
if (
|
|
782
|
-
|
|
778
|
+
var te, ie, Y;
|
|
779
|
+
const v = this._backgroundFillForLayer(_), H = this._backgroundColorForLayer(_), I = { x: y, y, width: n, height: a };
|
|
780
|
+
let C = null;
|
|
781
|
+
if (H && typeof o.Graphics == "function")
|
|
782
|
+
C = new o.Graphics(), C.rect(y, y, n, a).fill(H);
|
|
783
783
|
else if ((v == null ? void 0 : v.kind) === "gradient" && typeof o.Sprite == "function") {
|
|
784
|
-
const
|
|
785
|
-
if (!
|
|
786
|
-
|
|
784
|
+
const P = this._createGradientTexture(o, v, n, a);
|
|
785
|
+
if (!P) return !1;
|
|
786
|
+
C = new o.Sprite(P), C.__ownsTexture = !0, C.__sourceWidth = n, C.__sourceHeight = a, this._fitDisplayObjectToRect(C, _, I);
|
|
787
787
|
} else if ((v == null ? void 0 : v.kind) === "media") {
|
|
788
|
-
const
|
|
789
|
-
if (!
|
|
790
|
-
|
|
788
|
+
const P = (te = this._layerDisplayObjects.get(_.id)) == null ? void 0 : te.displayObject, U = P == null ? void 0 : P.texture;
|
|
789
|
+
if (!U) return !1;
|
|
790
|
+
C = this._createBackgroundSprite(o, U, v.fit), C.__sourceWidth = Number(((ie = v.source) == null ? void 0 : ie.originalWidth) || P.__sourceWidth || U.width || 1), C.__sourceHeight = Number(((Y = v.source) == null ? void 0 : Y.originalHeight) || P.__sourceHeight || U.height || 1), this._fitDisplayObjectToRect(C, _, I);
|
|
791
791
|
}
|
|
792
|
-
return
|
|
792
|
+
return C ? (C.alpha = this._layerOpacity(_), this._applyLayerEffects(o, C, _), this._applyLayerFilterInstances(C, _, {
|
|
793
793
|
forExport: !0,
|
|
794
794
|
previewToNativeScale: p,
|
|
795
795
|
sourceWidth: n,
|
|
796
796
|
sourceHeight: a
|
|
797
|
-
}),
|
|
798
|
-
},
|
|
797
|
+
}), M.addChild(C), N.push(C), !0) : !1;
|
|
798
|
+
}, O = (_) => {
|
|
799
799
|
const v = this._createTextDisplayObjectForLayer(o, _);
|
|
800
|
-
return v ? (this._fitTextDisplayObjectToRect(v, _, { x: y, y, width: n, height: a }), v.alpha = this._layerOpacity(_),
|
|
801
|
-
},
|
|
802
|
-
if (
|
|
803
|
-
for (const _ of
|
|
800
|
+
return v ? (this._fitTextDisplayObjectToRect(v, _, { x: y, y, width: n, height: a }), v.alpha = this._layerOpacity(_), M.addChild(v), N.push(v), !0) : !1;
|
|
801
|
+
}, W = u, G = f;
|
|
802
|
+
if (G) {
|
|
803
|
+
for (const _ of W.layers)
|
|
804
804
|
if (!(!_ || _.visible === !1)) {
|
|
805
805
|
if (this._isTextLayer(_)) {
|
|
806
|
-
|
|
806
|
+
O(_);
|
|
807
807
|
continue;
|
|
808
808
|
}
|
|
809
809
|
if (_.type === "image") {
|
|
810
|
-
!
|
|
810
|
+
!F(_) && this._isSubjectLayer(_) && z(_);
|
|
811
811
|
continue;
|
|
812
812
|
}
|
|
813
813
|
if (this._isSubjectLayer(_)) {
|
|
814
|
-
|
|
814
|
+
F(_) || z(_);
|
|
815
815
|
continue;
|
|
816
816
|
}
|
|
817
817
|
T(_);
|
|
818
818
|
}
|
|
819
819
|
} else
|
|
820
|
-
|
|
821
|
-
!
|
|
822
|
-
const
|
|
820
|
+
z();
|
|
821
|
+
!G && ((Q = M.children) == null ? void 0 : Q.length) === 0 && z();
|
|
822
|
+
const K = o.RenderTexture.create({
|
|
823
823
|
width: w,
|
|
824
|
-
height:
|
|
824
|
+
height: R,
|
|
825
825
|
resolution: 1
|
|
826
|
-
}),
|
|
826
|
+
}), oe = ((X = M.children) == null ? void 0 : X.length) ?? 0;
|
|
827
827
|
try {
|
|
828
828
|
this.app.renderer.render({
|
|
829
|
-
container:
|
|
830
|
-
target:
|
|
829
|
+
container: M,
|
|
830
|
+
target: K,
|
|
831
831
|
clear: !0,
|
|
832
832
|
clearColor: [0, 0, 0, 0]
|
|
833
833
|
});
|
|
834
|
-
const _ = (ee = (L = this.app.renderer.extract) == null ? void 0 : L.canvas) == null ? void 0 : ee.call(L,
|
|
835
|
-
return _ ? { canvas: _, width: w, height:
|
|
834
|
+
const _ = (ee = (L = this.app.renderer.extract) == null ? void 0 : L.canvas) == null ? void 0 : ee.call(L, K);
|
|
835
|
+
return _ ? { canvas: _, width: w, height: R, margin: y, childCount: oe } : null;
|
|
836
836
|
} finally {
|
|
837
837
|
for (const _ of N)
|
|
838
838
|
_.filters = null;
|
|
839
|
-
|
|
839
|
+
M.removeChildren();
|
|
840
840
|
for (const _ of N) {
|
|
841
841
|
const v = (_ == null ? void 0 : _.__ownsTexture) === !0;
|
|
842
842
|
_.destroy({ children: !1, texture: v, textureSource: v });
|
|
843
843
|
}
|
|
844
|
-
|
|
844
|
+
M.destroy({ children: !1 }), K.destroy(!0);
|
|
845
845
|
}
|
|
846
|
-
}, B = (y, w,
|
|
847
|
-
const
|
|
848
|
-
if (!
|
|
846
|
+
}, B = (y, w, R) => {
|
|
847
|
+
const M = typeof y.getContext == "function" ? y.getContext("2d") : null;
|
|
848
|
+
if (!M) return null;
|
|
849
849
|
let N;
|
|
850
850
|
try {
|
|
851
|
-
N =
|
|
851
|
+
N = M.getImageData(0, 0, w, R).data;
|
|
852
852
|
} catch {
|
|
853
853
|
return null;
|
|
854
854
|
}
|
|
855
|
-
const
|
|
856
|
-
let
|
|
857
|
-
const
|
|
858
|
-
for (let L = 0; L <
|
|
859
|
-
const ee = L *
|
|
855
|
+
const z = 1;
|
|
856
|
+
let F = w, T = R, O = -1, W = -1;
|
|
857
|
+
const G = 4, K = w * G;
|
|
858
|
+
for (let L = 0; L < R; L++) {
|
|
859
|
+
const ee = L * K;
|
|
860
860
|
for (let _ = 0; _ < w; _++)
|
|
861
|
-
N[ee + _ *
|
|
861
|
+
N[ee + _ * G + 3] >= z && (_ < F && (F = _), _ > O && (O = _), L < T && (T = L), L > W && (W = L));
|
|
862
862
|
}
|
|
863
|
-
if (
|
|
864
|
-
const
|
|
865
|
-
return { x:
|
|
863
|
+
if (O < 0) return null;
|
|
864
|
+
const oe = O - F + 1, Q = W - T + 1, X = F === 0 || T === 0 || O === w - 1 || W === R - 1;
|
|
865
|
+
return { x: F, y: T, width: oe, height: Q, touchesEdge: X };
|
|
866
866
|
};
|
|
867
867
|
let A = null;
|
|
868
868
|
try {
|
|
869
|
-
let y = x(
|
|
869
|
+
let y = x(k);
|
|
870
870
|
if (!y)
|
|
871
871
|
return null;
|
|
872
872
|
let w = B(y.canvas, y.width, y.height);
|
|
@@ -881,27 +881,27 @@ class Te extends re {
|
|
|
881
881
|
};
|
|
882
882
|
else
|
|
883
883
|
return null;
|
|
884
|
-
if (w.touchesEdge &&
|
|
885
|
-
const
|
|
884
|
+
if (w.touchesEdge && k < n && k < a) {
|
|
885
|
+
const F = Math.max(k * 4, 256), T = x(F);
|
|
886
886
|
if (T) {
|
|
887
|
-
const
|
|
888
|
-
|
|
887
|
+
const O = B(T.canvas, T.width, T.height);
|
|
888
|
+
O && !O.touchesEdge ? (y = T, w = O) : (y = T, w = O ?? w);
|
|
889
889
|
}
|
|
890
890
|
}
|
|
891
|
-
let
|
|
891
|
+
let R = w.width, M = w.height;
|
|
892
892
|
if (i > 0) {
|
|
893
|
-
const
|
|
894
|
-
let T = i /
|
|
895
|
-
s && (T = Math.min(1, T)),
|
|
893
|
+
const F = Math.max(R, M);
|
|
894
|
+
let T = i / F;
|
|
895
|
+
s && (T = Math.min(1, T)), R = Math.max(1, Math.round(R * T)), M = Math.max(1, Math.round(M * T));
|
|
896
896
|
}
|
|
897
|
-
if (r > 0 &&
|
|
898
|
-
const
|
|
899
|
-
|
|
897
|
+
if (r > 0 && R * M > r) {
|
|
898
|
+
const F = Math.sqrt(r / (R * M));
|
|
899
|
+
R = Math.max(1, Math.floor(R * F)), M = Math.max(1, Math.floor(M * F));
|
|
900
900
|
}
|
|
901
901
|
const N = document.createElement("canvas");
|
|
902
|
-
N.width =
|
|
903
|
-
const
|
|
904
|
-
return
|
|
902
|
+
N.width = R, N.height = M;
|
|
903
|
+
const z = N.getContext("2d");
|
|
904
|
+
return z ? (z.drawImage(
|
|
905
905
|
y.canvas,
|
|
906
906
|
w.x,
|
|
907
907
|
w.y,
|
|
@@ -909,9 +909,9 @@ class Te extends re {
|
|
|
909
909
|
w.height,
|
|
910
910
|
0,
|
|
911
911
|
0,
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
), A = N.toDataURL(`image/${e}`, t), this._lastExportDimensions = { width:
|
|
912
|
+
R,
|
|
913
|
+
M
|
|
914
|
+
), A = N.toDataURL(`image/${e}`, t), this._lastExportDimensions = { width: R, height: M }, A || null) : null;
|
|
915
915
|
} catch {
|
|
916
916
|
return null;
|
|
917
917
|
}
|
|
@@ -1015,7 +1015,7 @@ class Te extends re {
|
|
|
1015
1015
|
this.sprite = null, this.originalTexture = null, this.baseTexture = null, this._container = null, this.removeAllListeners();
|
|
1016
1016
|
}
|
|
1017
1017
|
}
|
|
1018
|
-
const _e = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144"/></svg>', me = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M184 112l144 144-144 144"/></svg>', gt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M338.29 338.29L448 448M256 184v74m-37-37h74"/></svg>', _t = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M338.29 338.29L448 448M184 221h74"/></svg>', mt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M432 320v112H320M80 192V80h112M320 80h112v112M192 432H80V320"/></svg>', Ae = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z"/></svg>', Ne = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M400 320c0 88.37-55.63 144-144 144s-144-55.63-144-144c0-94.83 103.23-222.85 134.89-259.88a12 12 0 0118.23 0C296.77 97.15 400 225.17 400 320z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M344 328a72 72 0 01-72 72"/></svg>', Be = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" d="M430.11 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 11.99-36.6.1-47.7z"/><circle cx="144" cy="208" r="32"/><circle cx="152" cy="311" r="32"/><circle cx="224" cy="144" r="32"/><circle cx="256" cy="367" r="32"/><circle cx="328" cy="144" r="32"/></svg>', Ee = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M259.92 262.91L216.4 149.77a9 9 0 00-16.8 0l-43.52 113.14a9 9 0 01-5.17 5.17L37.77 311.6a9 9 0 000 16.8l113.14 43.52a9 9 0 015.17 5.17l43.52 113.14a9 9 0 0016.8 0l43.52-113.14a9 9 0 015.17-5.17l113.14-43.52a9 9 0 000-16.8l-113.14-43.52a9 9 0 01-5.17-5.17zM108 68L88 16 68 68 16 88l52 20 20 52 20-52 52-20-52-20zM426.67 117.33L400 48l-26.67 69.33L304 144l69.33 26.67L400 240l26.67-69.33L496 144l-69.33-26.67z"/></svg>', Le = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448"/></svg>', De = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M452.37 59.63h0a40.49 40.49 0 00-57.26 0L184 294.74c23.08 4.7 46.12 27.29 49.26 49.26l219.11-227.11a40.49 40.49 0 000-57.26z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M138 336c-29.88 0-54 24.5-54 54.86 0 23.95-20.67 36.57-34 44.78 15.08 8.08 32.23 12.36 50 12.36 48.49 0 88-38.89 88-88 0-30.36-24.12-54-50-54z"/></svg>', je = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M315.27 33L96 304h128l-31.51 173.23a2.36 2.36 0 002.33 2.77h0a2.36 2.36 0 001.89-.95L416 208H288l31.66-173.25a2.45 2.45 0 00-2.44-2.75h0a2.42 2.42 0 00-1.95 1z"/></svg>', be = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M144 48v272a48 48 0 0048 48h272"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M368 464V192a48 48 0 00-48-48H48"/></svg>', Oe = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M380.93 57.37A32 32 0 00358.3 48H94.22A46.21 46.21 0 0048 94.22v323.56A46.21 46.21 0 0094.22 464h323.56A46.36 46.36 0 00464 417.78V153.7a32 32 0 00-9.37-22.63zM256 416a64 64 0 1164-64 63.92 63.92 0 01-64 64zm48-224H112a16 16 0 01-16-16v-64a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-16 16z"/></svg>', de = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M368 368L144 144M368 144L144 368"/></svg>', ye = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M320 146s24.36-12-64-12a160 160 0 10160 160"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M256 58l80 80-80 80"/></svg>', ze = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M176 112l-64 64 64 64"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 176h176a112 112 0 110 224H160"/></svg>', Pe = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M336 112l64 64-64 64"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M400 176H224a112 112 0 100 224h128"/></svg>', He = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 112l20 320c.95 18.49 14.4 32 32 32h184c17.67 0 30.87-13.51 32-32l20-320"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M80 112h352"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M192 112V72h0a23.93 23.93 0 0124-24h80a23.93 23.93 0 0124 24h0v40M256 176v224M184 176l8 224M328 176l-8 224"/></svg>', Ie = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M64 192v-72a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H408a40 40 0 0140 40v40"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M479.9 226.55L463.68 392a40 40 0 01-39.93 40H88.25a40 40 0 01-39.93-40L32.1 226.55A32 32 0 0164 192h384.1a32 32 0 0131.8 34.55z"/></svg>', he = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M416 128L192 384l-96-96"/></svg>', Ue = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M48 256l208 112 208-112-208-112L48 256z"/><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M48 336l208 112 208-112M48 176L256 64l208 112"/></svg>', bt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M48 256s80-144 208-144 208 144 208 144-80 144-208 144S48 256 48 256z"/><circle cx="256" cy="256" r="64" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/></svg>', yt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M432 448L80 64M160 160c-67.2 36.8-112 96-112 96s80 144 208 144c35.8 0 68.4-11.3 96-28.1M224.4 113.8A199.6 199.6 0 01256 112c128 0 208 144 208 144a334.2 334.2 0 01-65.1 78.6"/><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M213.3 213.3A64 64 0 10298.7 298.7"/></svg>', vt = '<svg viewBox="0 0 512 512" width="20" height="20"><rect x="96" y="208" width="320" height="240" rx="32" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M160 208v-64a96 96 0 01192 0v64"/></svg>', wt = '<svg viewBox="0 0 512 512" width="20" height="20"><rect x="96" y="208" width="320" height="240" rx="32" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M160 208v-64a96 96 0 01168-63.7"/></svg>', xt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M96 352l-32 96 96-32L421.5 154.5a45.3 45.3 0 000-64h0a45.3 45.3 0 00-64 0L96 352z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M320 128l64 64"/></svg>', Ct = '<svg viewBox="0 0 512 512" width="20" height="20"><rect x="144" y="144" width="288" height="288" rx="32" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M80 368V112a32 32 0 0132-32h256"/></svg>', Ve = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M96 112V80h320v32M256 80v352M184 432h144"/></svg>', We = '<svg viewBox="0 0 512 512" width="20" height="20"><rect x="64" y="64" width="384" height="384" rx="48" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/></svg>', $e = '<svg viewBox="0 0 512 512" width="20" height="20"><circle cx="256" cy="256" r="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>', Ze = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M80 96h64l64 320h64l64-160h96"/></svg>', fe = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M256 48v48M256 416v48M403.08 108.92l-33.94 33.94M142.86 369.14l-33.94 33.94M464 256h-48M96 256H48M403.08 403.08l-33.94-33.94M142.86 142.86l-33.94-33.94"/><circle cx="256" cy="256" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32"/></svg>', ge = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M160 136c0-30.62 4.51-61.61 16-88C99.57 81.27 48 159.32 48 248c0 119.29 96.71 216 216 216 88.68 0 166.73-51.57 200-128-26.39 11.49-57.38 16-88 16-119.29 0-216-96.71-216-216z"/></svg>', qe = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M436 80H76a44.05 44.05 0 00-44 44v264a44.05 44.05 0 0044 44h360a44.05 44.05 0 0044-44V124a44.05 44.05 0 00-44-44z"/><circle cx="256" cy="256" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M220 80v56M292 80v56M220 376v56M292 376v56M80 144h56M80 224h56M80 304h56M376 144h56M376 224h56M376 304h56"/></svg>', Ge = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M344 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z"/><path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" d="M256 304c-87 0-175.3 48-191.64 138.6C62.39 453.52 68.57 464 80 464h352c11.44 0 17.62-10.48 15.65-21.4C431.3 352 343 304 256 304z"/></svg>', ue = [
|
|
1018
|
+
const _e = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144"/></svg>', me = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M184 112l144 144-144 144"/></svg>', gt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M338.29 338.29L448 448M256 184v74m-37-37h74"/></svg>', _t = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M338.29 338.29L448 448M184 221h74"/></svg>', mt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M432 320v112H320M80 192V80h112M320 80h112v112M192 432H80V320"/></svg>', Ae = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z"/></svg>', Ne = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M400 320c0 88.37-55.63 144-144 144s-144-55.63-144-144c0-94.83 103.23-222.85 134.89-259.88a12 12 0 0118.23 0C296.77 97.15 400 225.17 400 320z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M344 328a72 72 0 01-72 72"/></svg>', Be = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" d="M430.11 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 11.99-36.6.1-47.7z"/><circle cx="144" cy="208" r="32"/><circle cx="152" cy="311" r="32"/><circle cx="224" cy="144" r="32"/><circle cx="256" cy="367" r="32"/><circle cx="328" cy="144" r="32"/></svg>', Ee = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M259.92 262.91L216.4 149.77a9 9 0 00-16.8 0l-43.52 113.14a9 9 0 01-5.17 5.17L37.77 311.6a9 9 0 000 16.8l113.14 43.52a9 9 0 015.17 5.17l43.52 113.14a9 9 0 0016.8 0l43.52-113.14a9 9 0 015.17-5.17l113.14-43.52a9 9 0 000-16.8l-113.14-43.52a9 9 0 01-5.17-5.17zM108 68L88 16 68 68 16 88l52 20 20 52 20-52 52-20-52-20zM426.67 117.33L400 48l-26.67 69.33L304 144l69.33 26.67L400 240l26.67-69.33L496 144l-69.33-26.67z"/></svg>', Le = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448"/></svg>', De = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M452.37 59.63h0a40.49 40.49 0 00-57.26 0L184 294.74c23.08 4.7 46.12 27.29 49.26 49.26l219.11-227.11a40.49 40.49 0 000-57.26z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M138 336c-29.88 0-54 24.5-54 54.86 0 23.95-20.67 36.57-34 44.78 15.08 8.08 32.23 12.36 50 12.36 48.49 0 88-38.89 88-88 0-30.36-24.12-54-50-54z"/></svg>', je = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M315.27 33L96 304h128l-31.51 173.23a2.36 2.36 0 002.33 2.77h0a2.36 2.36 0 001.89-.95L416 208H288l31.66-173.25a2.45 2.45 0 00-2.44-2.75h0a2.42 2.42 0 00-1.95 1z"/></svg>', be = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M144 48v272a48 48 0 0048 48h272"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M368 464V192a48 48 0 00-48-48H48"/></svg>', Oe = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M380.93 57.37A32 32 0 00358.3 48H94.22A46.21 46.21 0 0048 94.22v323.56A46.21 46.21 0 0094.22 464h323.56A46.36 46.36 0 00464 417.78V153.7a32 32 0 00-9.37-22.63zM256 416a64 64 0 1164-64 63.92 63.92 0 01-64 64zm48-224H112a16 16 0 01-16-16v-64a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-16 16z"/></svg>', ue = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M368 368L144 144M368 144L144 368"/></svg>', ye = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M320 146s24.36-12-64-12a160 160 0 10160 160"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M256 58l80 80-80 80"/></svg>', ze = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M176 112l-64 64 64 64"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 176h176a112 112 0 110 224H160"/></svg>', Pe = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M336 112l64 64-64 64"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M400 176H224a112 112 0 100 224h128"/></svg>', He = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 112l20 320c.95 18.49 14.4 32 32 32h184c17.67 0 30.87-13.51 32-32l20-320"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M80 112h352"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M192 112V72h0a23.93 23.93 0 0124-24h80a23.93 23.93 0 0124 24h0v40M256 176v224M184 176l8 224M328 176l-8 224"/></svg>', Ie = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M64 192v-72a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H408a40 40 0 0140 40v40"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M479.9 226.55L463.68 392a40 40 0 01-39.93 40H88.25a40 40 0 01-39.93-40L32.1 226.55A32 32 0 0164 192h384.1a32 32 0 0131.8 34.55z"/></svg>', ce = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M416 128L192 384l-96-96"/></svg>', Ue = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M48 256l208 112 208-112-208-112L48 256z"/><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M48 336l208 112 208-112M48 176L256 64l208 112"/></svg>', bt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M48 256s80-144 208-144 208 144 208 144-80 144-208 144S48 256 48 256z"/><circle cx="256" cy="256" r="64" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/></svg>', yt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M432 448L80 64M160 160c-67.2 36.8-112 96-112 96s80 144 208 144c35.8 0 68.4-11.3 96-28.1M224.4 113.8A199.6 199.6 0 01256 112c128 0 208 144 208 144a334.2 334.2 0 01-65.1 78.6"/><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M213.3 213.3A64 64 0 10298.7 298.7"/></svg>', vt = '<svg viewBox="0 0 512 512" width="20" height="20"><rect x="96" y="208" width="320" height="240" rx="32" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M160 208v-64a96 96 0 01192 0v64"/></svg>', wt = '<svg viewBox="0 0 512 512" width="20" height="20"><rect x="96" y="208" width="320" height="240" rx="32" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M160 208v-64a96 96 0 01168-63.7"/></svg>', xt = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M96 352l-32 96 96-32L421.5 154.5a45.3 45.3 0 000-64h0a45.3 45.3 0 00-64 0L96 352z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M320 128l64 64"/></svg>', Ct = '<svg viewBox="0 0 512 512" width="20" height="20"><rect x="144" y="144" width="288" height="288" rx="32" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M80 368V112a32 32 0 0132-32h256"/></svg>', Ve = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M96 112V80h320v32M256 80v352M184 432h144"/></svg>', We = '<svg viewBox="0 0 512 512" width="20" height="20"><rect x="64" y="64" width="384" height="384" rx="48" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/></svg>', $e = '<svg viewBox="0 0 512 512" width="20" height="20"><circle cx="256" cy="256" r="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>', Ze = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M80 96h64l64 320h64l64-160h96"/></svg>', fe = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M256 48v48M256 416v48M403.08 108.92l-33.94 33.94M142.86 369.14l-33.94 33.94M464 256h-48M96 256H48M403.08 403.08l-33.94-33.94M142.86 142.86l-33.94-33.94"/><circle cx="256" cy="256" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32"/></svg>', ge = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M160 136c0-30.62 4.51-61.61 16-88C99.57 81.27 48 159.32 48 248c0 119.29 96.71 216 216 216 88.68 0 166.73-51.57 200-128-26.39 11.49-57.38 16-88 16-119.29 0-216-96.71-216-216z"/></svg>', qe = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M436 80H76a44.05 44.05 0 00-44 44v264a44.05 44.05 0 0044 44h360a44.05 44.05 0 0044-44V124a44.05 44.05 0 00-44-44z"/><circle cx="256" cy="256" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M220 80v56M292 80v56M220 376v56M292 376v56M80 144h56M80 224h56M80 304h56M376 144h56M376 224h56M376 304h56"/></svg>', Ge = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M344 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z"/><path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" d="M256 304c-87 0-175.3 48-191.64 138.6C62.39 453.52 68.57 464 80 464h352c11.44 0 17.62-10.48 15.65-21.4C431.3 352 343 304 256 304z"/></svg>', pe = [
|
|
1019
1019
|
{
|
|
1020
1020
|
id: "adjust",
|
|
1021
1021
|
name: "Adjust",
|
|
@@ -1080,14 +1080,14 @@ const _e = '<svg viewBox="0 0 512 512" width="20" height="20"><path fill="none"
|
|
|
1080
1080
|
icon: be
|
|
1081
1081
|
}
|
|
1082
1082
|
], Ke = Object.fromEntries(
|
|
1083
|
-
|
|
1083
|
+
pe.filter((g) => Array.isArray(g.registryCategories) && g.registryCategories.length > 0).map((g) => [g.id, g.registryCategories])
|
|
1084
1084
|
), Ye = Object.fromEntries(
|
|
1085
|
-
|
|
1085
|
+
pe.filter((g) => Array.isArray(g.registryCategories)).flatMap((g) => g.registryCategories.map((e) => [e, g.id]))
|
|
1086
1086
|
);
|
|
1087
1087
|
function Je(g) {
|
|
1088
1088
|
return Ke[g] || [g];
|
|
1089
1089
|
}
|
|
1090
|
-
class Qe extends
|
|
1090
|
+
class Qe extends ne {
|
|
1091
1091
|
constructor(e, t) {
|
|
1092
1092
|
super(), this.state = e, this.renderer = t, this.instances = {}, this._filterRegistry = null;
|
|
1093
1093
|
}
|
|
@@ -1363,13 +1363,13 @@ class Qe extends re {
|
|
|
1363
1363
|
if (!f || !f.createFilter || typeof f.createFilter != "function")
|
|
1364
1364
|
return;
|
|
1365
1365
|
const m = this.state.getFilterValues(u), b = f.defaultParams ? { ...f.defaultParams } : {};
|
|
1366
|
-
f.controls && Array.isArray(f.controls) && f.controls.forEach((
|
|
1367
|
-
const J =
|
|
1368
|
-
b[J] = m[
|
|
1366
|
+
f.controls && Array.isArray(f.controls) && f.controls.forEach((S) => {
|
|
1367
|
+
const J = S.property || S.id;
|
|
1368
|
+
b[J] = m[S.id] ?? S.default;
|
|
1369
1369
|
});
|
|
1370
|
-
const
|
|
1371
|
-
for (const [
|
|
1372
|
-
|
|
1370
|
+
const k = new Set((f.controls || []).map((S) => S.id));
|
|
1371
|
+
for (const [S, J] of Object.entries(m))
|
|
1372
|
+
k.has(S) || (b[S] = J);
|
|
1373
1373
|
const x = this.renderer.sprite, B = this.renderer.originalTexture;
|
|
1374
1374
|
b._sourceWidth = Math.round((B == null ? void 0 : B.width) || (x == null ? void 0 : x.width) || 0), b._sourceHeight = Math.round((B == null ? void 0 : B.height) || (x == null ? void 0 : x.height) || 0);
|
|
1375
1375
|
const A = f.createFilter(b);
|
|
@@ -1409,7 +1409,7 @@ class Qe extends re {
|
|
|
1409
1409
|
return this.instances[e] || null;
|
|
1410
1410
|
}
|
|
1411
1411
|
}
|
|
1412
|
-
const
|
|
1412
|
+
const V = class V extends ne {
|
|
1413
1413
|
constructor(e, t) {
|
|
1414
1414
|
super(), this.state = e, this.renderer = t, this._overlayCanvas = null, this._isDragging = !1, this._dragStart = null, this._dragMode = null, this._startRect = null, this._hoverMode = null, this._lastAutoZoomCheck = 0, this.HANDLE_SIZE = 14, this.EDGE_HIT_PAD = 10, this._onPointerDown = this._handlePointerDown.bind(this), this._onPointerMove = this._handlePointerMove.bind(this), this._onPointerUp = this._handlePointerUp.bind(this);
|
|
1415
1415
|
}
|
|
@@ -1475,15 +1475,10 @@ const U = class U extends re {
|
|
|
1475
1475
|
if (!e) return;
|
|
1476
1476
|
const t = this.renderer.sprite, i = this.renderer.app;
|
|
1477
1477
|
if (!t || !i) return;
|
|
1478
|
-
const s = this.state.get("crop.shape"), r =
|
|
1479
|
-
if (r !==
|
|
1480
|
-
const
|
|
1481
|
-
e.width =
|
|
1482
|
-
} else
|
|
1483
|
-
e.width = Math.min(e.width, o.w), e.height = Math.min(e.height, o.h);
|
|
1484
|
-
if (e.x = Math.max(o.x, Math.min(e.x, o.x + o.w - e.width)), e.y = Math.max(o.y, Math.min(e.y, o.y + o.h - e.height)), s !== "free" || this.state.get("crop.aspect") === "1:1") {
|
|
1485
|
-
const n = Math.min(e.width, e.height);
|
|
1486
|
-
e.width = n, e.height = n;
|
|
1478
|
+
const s = this.state.get("crop.shape"), r = { x: 0, y: 0, w: i.screen.width, h: i.screen.height };
|
|
1479
|
+
if (e.x = Math.max(r.x, Math.min(e.x, r.x + r.w - e.width)), e.y = Math.max(r.y, Math.min(e.y, r.y + r.h - e.height)), e.width = Math.min(e.width, r.w), e.height = Math.min(e.height, r.h), s !== "free" || this.state.get("crop.aspect") === "1:1") {
|
|
1480
|
+
const o = Math.min(e.width, e.height);
|
|
1481
|
+
e.width = o, e.height = o;
|
|
1487
1482
|
}
|
|
1488
1483
|
this.state.set("crop.rect", e);
|
|
1489
1484
|
}
|
|
@@ -1504,7 +1499,7 @@ const U = class U extends re {
|
|
|
1504
1499
|
if (!e || !s || !r || !o) return null;
|
|
1505
1500
|
const a = e.width > t, l = e.height > i;
|
|
1506
1501
|
if (!a && !l) return null;
|
|
1507
|
-
const h =
|
|
1502
|
+
const h = V.AUTO_ZOOM_PADDING;
|
|
1508
1503
|
let c = n;
|
|
1509
1504
|
if (a) {
|
|
1510
1505
|
const p = e.width / (h * s * o);
|
|
@@ -1523,11 +1518,11 @@ const U = class U extends re {
|
|
|
1523
1518
|
_checkAutoZoom() {
|
|
1524
1519
|
if (!this.state.get("autoZoomOnCropOverflow")) return;
|
|
1525
1520
|
const e = Date.now();
|
|
1526
|
-
if (e - this._lastAutoZoomCheck <
|
|
1521
|
+
if (e - this._lastAutoZoomCheck < V.AUTO_ZOOM_THROTTLE_MS) return;
|
|
1527
1522
|
this._lastAutoZoomCheck = e;
|
|
1528
1523
|
const t = this.state.get("crop.rect"), i = this.renderer.sprite, s = this.renderer.originalTexture;
|
|
1529
1524
|
if (!t || !i || !s) return;
|
|
1530
|
-
const r =
|
|
1525
|
+
const r = V.calcAutoZoom(
|
|
1531
1526
|
t,
|
|
1532
1527
|
i.width,
|
|
1533
1528
|
i.height,
|
|
@@ -1555,8 +1550,8 @@ const U = class U extends re {
|
|
|
1555
1550
|
if (!a) return;
|
|
1556
1551
|
const l = this.state.get("crop.shape");
|
|
1557
1552
|
if (n.save(), l === "circle") {
|
|
1558
|
-
const b = a.x + a.width / 2,
|
|
1559
|
-
n.beginPath(), n.arc(b,
|
|
1553
|
+
const b = a.x + a.width / 2, k = a.y + a.height / 2, x = Math.min(a.width, a.height) / 2;
|
|
1554
|
+
n.beginPath(), n.arc(b, k, x, 0, Math.PI * 2), n.clip();
|
|
1560
1555
|
} else
|
|
1561
1556
|
n.beginPath(), n.rect(a.x, a.y, a.width, a.height), n.clip();
|
|
1562
1557
|
n.clearRect(a.x, a.y, a.width, a.height), n.restore(), n.strokeStyle = "#ffffff", n.lineWidth = 2, n.setLineDash([5, 5]), l === "circle" ? (n.beginPath(), n.arc(
|
|
@@ -1581,8 +1576,8 @@ const U = class U extends re {
|
|
|
1581
1576
|
{ x: a.x + a.width, y: a.y + a.height / 2, m: "e" }
|
|
1582
1577
|
], m = [...u, ...f];
|
|
1583
1578
|
for (const b of m) {
|
|
1584
|
-
const
|
|
1585
|
-
n.beginPath(), n.rect(b.x - x / 2, b.y - x / 2, x, x), n.fillStyle =
|
|
1579
|
+
const k = this._hoverMode === b.m, x = k ? p + 4 : p;
|
|
1580
|
+
n.beginPath(), n.rect(b.x - x / 2, b.y - x / 2, x, x), n.fillStyle = k ? "#4da3ff" : "#ffffff", n.strokeStyle = "rgba(0,0,0,0.6)", n.lineWidth = 1, n.fill(), n.stroke();
|
|
1586
1581
|
}
|
|
1587
1582
|
}
|
|
1588
1583
|
/**
|
|
@@ -1728,10 +1723,10 @@ const U = class U extends re {
|
|
|
1728
1723
|
if (c <= 0 || p <= 0) return null;
|
|
1729
1724
|
const m = new r.Container(), b = new r.Sprite(i);
|
|
1730
1725
|
if (this.state.get("crop.shape") === "circle") {
|
|
1731
|
-
const
|
|
1732
|
-
u = Math.round(N -
|
|
1733
|
-
const
|
|
1734
|
-
typeof
|
|
1726
|
+
const M = Math.round(Math.max(c, p)), N = u + c / 2, z = f + p / 2;
|
|
1727
|
+
u = Math.round(N - M / 2), f = Math.round(z - M / 2), c = p = M;
|
|
1728
|
+
const F = new r.Graphics();
|
|
1729
|
+
typeof F.circle == "function" && typeof F.fill == "function" ? F.circle(c / 2, p / 2, c / 2).fill(16777215) : (F.beginFill(16777215, 1), F.drawCircle(c / 2, p / 2, c / 2), F.endFill()), b.mask = F, m.addChild(F);
|
|
1735
1730
|
}
|
|
1736
1731
|
b.x = -u, b.y = -f, m.addChild(b);
|
|
1737
1732
|
const x = r.RenderTexture.create({ width: c, height: p });
|
|
@@ -1744,13 +1739,13 @@ const U = class U extends re {
|
|
|
1744
1739
|
B && B !== this.renderer.baseTexture && B.destroy(!0), this.renderer.originalTexture = x, e.stage.removeChild(t), t.destroy();
|
|
1745
1740
|
const A = new r.Sprite(x);
|
|
1746
1741
|
e.stage.addChild(A), this.renderer.sprite = A, this.renderer.fitScale = this.renderer.getFitScaleFor(x), this.renderer.setZoom(o, { keepCenter: !1 }), this.renderer.applyViewTransform(), this.renderer.render();
|
|
1747
|
-
const
|
|
1748
|
-
x: Math.round(
|
|
1749
|
-
y: Math.round(
|
|
1742
|
+
const S = this.state.get("crop.appliedRect"), y = S && Number.isFinite(S.x) && Number.isFinite(S.y) && Number.isFinite(S.width) && Number.isFinite(S.height) ? {
|
|
1743
|
+
x: Math.round(S.x + u),
|
|
1744
|
+
y: Math.round(S.y + f),
|
|
1750
1745
|
width: c,
|
|
1751
1746
|
height: p
|
|
1752
|
-
} : { x: u, y: f, width: c, height: p }, w = this.state.get("crop.shape") || "free",
|
|
1753
|
-
return this.disable(), this.state.set("crop.appliedRect", y), this.state.set("crop.appliedShape", w), this.state.set("crop.appliedAspect",
|
|
1747
|
+
} : { x: u, y: f, width: c, height: p }, w = this.state.get("crop.shape") || "free", R = this.state.get("crop.aspect") || "free";
|
|
1748
|
+
return this.disable(), this.state.set("crop.appliedRect", y), this.state.set("crop.appliedShape", w), this.state.set("crop.appliedAspect", R), this.state.set("crop.dirty", !1), this.emit("applied", { width: c, height: p }), { texture: x, preservedZoom: o };
|
|
1754
1749
|
}
|
|
1755
1750
|
/**
|
|
1756
1751
|
* Apply a crop from saved texture-pixel coordinates (for state rehydration).
|
|
@@ -1767,8 +1762,8 @@ const U = class U extends re {
|
|
|
1767
1762
|
if (a <= 0 || l <= 0) return null;
|
|
1768
1763
|
const p = new o.Container(), u = new o.Sprite(r);
|
|
1769
1764
|
if (t === "circle") {
|
|
1770
|
-
const
|
|
1771
|
-
h = Math.round(x -
|
|
1765
|
+
const k = Math.round(Math.max(a, l)), x = h + a / 2, B = c + l / 2;
|
|
1766
|
+
h = Math.round(x - k / 2), c = Math.round(B - k / 2), a = l = k;
|
|
1772
1767
|
const A = new o.Graphics();
|
|
1773
1768
|
typeof A.circle == "function" && typeof A.fill == "function" ? A.circle(a / 2, l / 2, a / 2).fill(16777215) : (A.beginFill(16777215, 1), A.drawCircle(a / 2, l / 2, a / 2), A.endFill()), u.mask = A, p.addChild(A);
|
|
1774
1769
|
}
|
|
@@ -1810,11 +1805,11 @@ const U = class U extends re {
|
|
|
1810
1805
|
* Padding factor for auto-zoom: image will be ~91% of crop size (1/1.1).
|
|
1811
1806
|
* Higher values = more aggressive zoom-out, more padding around image.
|
|
1812
1807
|
*/
|
|
1813
|
-
|
|
1808
|
+
ae(V, "AUTO_ZOOM_PADDING", 1.1), /**
|
|
1814
1809
|
* Minimum interval (ms) between auto-zoom adjustments during drag.
|
|
1815
1810
|
*/
|
|
1816
|
-
|
|
1817
|
-
let
|
|
1811
|
+
ae(V, "AUTO_ZOOM_THROTTLE_MS", 100);
|
|
1812
|
+
let de = V;
|
|
1818
1813
|
class Xe {
|
|
1819
1814
|
/**
|
|
1820
1815
|
* Create a new RemoveBgManager
|
|
@@ -2082,7 +2077,7 @@ function ve({ id: g, label: e, min: t = 0, max: i = 1, step: s = 0.01, value: r
|
|
|
2082
2077
|
"div",
|
|
2083
2078
|
{ className: "slider-header" },
|
|
2084
2079
|
d("label", { for: g, className: "slider-label" }, e),
|
|
2085
|
-
d("span", { className: "slider-value", id: `${g}-value` },
|
|
2080
|
+
d("span", { className: "slider-value", id: `${g}-value` }, le(r))
|
|
2086
2081
|
), h = d("input", {
|
|
2087
2082
|
type: "range",
|
|
2088
2083
|
id: g,
|
|
@@ -2093,16 +2088,16 @@ function ve({ id: g, label: e, min: t = 0, max: i = 1, step: s = 0.01, value: r
|
|
|
2093
2088
|
value: String(r),
|
|
2094
2089
|
onInput: (c) => {
|
|
2095
2090
|
const p = parseFloat(c.target.value), u = a.querySelector(".slider-value");
|
|
2096
|
-
u && (u.textContent =
|
|
2091
|
+
u && (u.textContent = le(p)), o == null || o(p);
|
|
2097
2092
|
}
|
|
2098
2093
|
});
|
|
2099
2094
|
return a.appendChild(l), a.appendChild(h), a.setValue = (c) => {
|
|
2100
2095
|
h.value = String(c);
|
|
2101
2096
|
const p = a.querySelector(".slider-value");
|
|
2102
|
-
p && (p.textContent =
|
|
2097
|
+
p && (p.textContent = le(c));
|
|
2103
2098
|
}, a;
|
|
2104
2099
|
}
|
|
2105
|
-
function
|
|
2100
|
+
function le(g) {
|
|
2106
2101
|
return Number.isInteger(g) ? String(g) : g.toFixed(2);
|
|
2107
2102
|
}
|
|
2108
2103
|
function we({ id: g, label: e, checked: t = !1, onChange: i }) {
|
|
@@ -2175,7 +2170,7 @@ function ke({ id: g, label: e, options: t = [], value: i, onChange: s }) {
|
|
|
2175
2170
|
n.value = a;
|
|
2176
2171
|
}, r;
|
|
2177
2172
|
}
|
|
2178
|
-
function
|
|
2173
|
+
function D({ label: g, className: e = "", onClick: t, icon: i = null, disabled: s = !1 }) {
|
|
2179
2174
|
const r = d("button", {
|
|
2180
2175
|
type: "button",
|
|
2181
2176
|
className: `btn ${e}`.trim(),
|
|
@@ -2190,7 +2185,7 @@ function j({ label: g, className: e = "", onClick: t, icon: i = null, disabled:
|
|
|
2190
2185
|
}
|
|
2191
2186
|
return g && r.appendChild(document.createTextNode(g)), r;
|
|
2192
2187
|
}
|
|
2193
|
-
function
|
|
2188
|
+
function j({ icon: g, title: e, className: t = "", onClick: i, disabled: s = !1, testId: r = null, ariaLabel: o = null }) {
|
|
2194
2189
|
const n = {
|
|
2195
2190
|
type: "button",
|
|
2196
2191
|
className: `icon-btn ${t}`.trim(),
|
|
@@ -2205,7 +2200,7 @@ function O({ icon: g, title: e, className: t = "", onClick: i, disabled: s = !1,
|
|
|
2205
2200
|
const l = a.querySelector("svg");
|
|
2206
2201
|
return l && l.setAttribute("aria-hidden", "true"), a;
|
|
2207
2202
|
}
|
|
2208
|
-
function
|
|
2203
|
+
function re({ label: g, icon: e, active: t = !1, onClick: i }) {
|
|
2209
2204
|
const s = d("button", {
|
|
2210
2205
|
type: "button",
|
|
2211
2206
|
className: `chip ${t ? "active" : ""}`.trim(),
|
|
@@ -2231,7 +2226,7 @@ class et {
|
|
|
2231
2226
|
*/
|
|
2232
2227
|
render() {
|
|
2233
2228
|
this.element = d("div", { className: "editor-toolbar" });
|
|
2234
|
-
const e = d("div", { className: "toolbar-section toolbar-left" }), t =
|
|
2229
|
+
const e = d("div", { className: "toolbar-section toolbar-left" }), t = j({
|
|
2235
2230
|
icon: Ie,
|
|
2236
2231
|
title: "Open Image",
|
|
2237
2232
|
className: "toolbar-btn",
|
|
@@ -2241,14 +2236,14 @@ class et {
|
|
|
2241
2236
|
});
|
|
2242
2237
|
e.appendChild(t);
|
|
2243
2238
|
const i = d("div", { className: "toolbar-section toolbar-right" });
|
|
2244
|
-
this._themeBtn =
|
|
2239
|
+
this._themeBtn = j({
|
|
2245
2240
|
icon: this.state.get("isDarkMode") ? fe : ge,
|
|
2246
2241
|
title: "Toggle Theme",
|
|
2247
2242
|
className: "toolbar-btn toolbar-btn-theme",
|
|
2248
2243
|
testId: "btn-toggle-theme",
|
|
2249
2244
|
ariaLabel: "Toggle theme",
|
|
2250
2245
|
onClick: () => this.editor.toggleTheme()
|
|
2251
|
-
}), this._cropBtn =
|
|
2246
|
+
}), this._cropBtn = j({
|
|
2252
2247
|
icon: be,
|
|
2253
2248
|
title: "Crop",
|
|
2254
2249
|
className: "toolbar-btn toolbar-btn-crop",
|
|
@@ -2276,7 +2271,7 @@ class et {
|
|
|
2276
2271
|
const c = d("option", { value: h[0] }, h[1]);
|
|
2277
2272
|
h[0] === this._removeBgTier && (c.selected = !0), this._removeBgTierSelect.appendChild(c);
|
|
2278
2273
|
}
|
|
2279
|
-
this._removeBgBtn =
|
|
2274
|
+
this._removeBgBtn = j({
|
|
2280
2275
|
icon: Ge,
|
|
2281
2276
|
title: "Remove Background",
|
|
2282
2277
|
className: "toolbar-btn toolbar-btn-remove-bg",
|
|
@@ -2301,7 +2296,7 @@ class et {
|
|
|
2301
2296
|
"aria-live": "polite",
|
|
2302
2297
|
"aria-atomic": "true"
|
|
2303
2298
|
}), s.appendChild(this._removeBgTierSelect), s.appendChild(this._removeBgBtn), s.appendChild(this._removeBgStatus);
|
|
2304
|
-
const r =
|
|
2299
|
+
const r = j({
|
|
2305
2300
|
icon: ye,
|
|
2306
2301
|
title: "Reset All",
|
|
2307
2302
|
className: "toolbar-btn",
|
|
@@ -2319,8 +2314,8 @@ class et {
|
|
|
2319
2314
|
n.innerHTML = Oe;
|
|
2320
2315
|
const a = n.querySelector("svg");
|
|
2321
2316
|
a && a.setAttribute("aria-hidden", "true"), o.appendChild(n), o.appendChild(d("span", { className: "toolbar-save-label" }, "Save"));
|
|
2322
|
-
const l =
|
|
2323
|
-
icon:
|
|
2317
|
+
const l = j({
|
|
2318
|
+
icon: ue,
|
|
2324
2319
|
title: "Close",
|
|
2325
2320
|
className: "toolbar-btn",
|
|
2326
2321
|
testId: "btn-cancel-edit",
|
|
@@ -2373,7 +2368,7 @@ class et {
|
|
|
2373
2368
|
this._unsubscribers.forEach((t) => t()), this._unsubscribers = [], (e = this.element) == null || e.remove(), this.element = null;
|
|
2374
2369
|
}
|
|
2375
2370
|
}
|
|
2376
|
-
const
|
|
2371
|
+
const se = pe;
|
|
2377
2372
|
class tt {
|
|
2378
2373
|
constructor(e, t) {
|
|
2379
2374
|
this.state = e, this.editor = t, this.element = null, this._chips = /* @__PURE__ */ new Map(), this._scrollIndex = 0, this._unsubscribers = [];
|
|
@@ -2387,20 +2382,20 @@ class tt {
|
|
|
2387
2382
|
this._onSelect = e, this.element = d("div", {
|
|
2388
2383
|
className: "category-carousel-container",
|
|
2389
2384
|
"data-testid": "category-carousel"
|
|
2390
|
-
}), this._leftBtn =
|
|
2385
|
+
}), this._leftBtn = j({
|
|
2391
2386
|
icon: _e,
|
|
2392
2387
|
title: "Previous categories",
|
|
2393
2388
|
className: "carousel-nav carousel-nav-left",
|
|
2394
2389
|
onClick: () => this._scrollLeft()
|
|
2395
|
-
}), this._carousel = d("div", { className: "category-carousel" }),
|
|
2396
|
-
const s =
|
|
2390
|
+
}), this._carousel = d("div", { className: "category-carousel" }), se.forEach((i) => {
|
|
2391
|
+
const s = re({
|
|
2397
2392
|
label: i.name,
|
|
2398
2393
|
icon: i.icon,
|
|
2399
2394
|
active: this.state.get("selectedCategory") === i.id,
|
|
2400
2395
|
onClick: () => this._selectCategory(i.id)
|
|
2401
2396
|
});
|
|
2402
2397
|
s.dataset.categoryId = i.id, s.dataset.category = i.id, s.dataset.testid = `category-${i.id}`, this._chips.set(i.id, s), this._carousel.appendChild(s);
|
|
2403
|
-
}), this._rightBtn =
|
|
2398
|
+
}), this._rightBtn = j({
|
|
2404
2399
|
icon: me,
|
|
2405
2400
|
title: "Next categories",
|
|
2406
2401
|
className: "carousel-nav carousel-nav-right",
|
|
@@ -2410,7 +2405,7 @@ class tt {
|
|
|
2410
2405
|
role: "tablist",
|
|
2411
2406
|
"aria-label": "Category pages"
|
|
2412
2407
|
});
|
|
2413
|
-
const t = Math.ceil(
|
|
2408
|
+
const t = Math.ceil(se.length / 3);
|
|
2414
2409
|
for (let i = 0; i < t; i++) {
|
|
2415
2410
|
const s = d("button", {
|
|
2416
2411
|
type: "button",
|
|
@@ -2457,7 +2452,7 @@ class tt {
|
|
|
2457
2452
|
* Scroll carousel right
|
|
2458
2453
|
*/
|
|
2459
2454
|
_scrollRight() {
|
|
2460
|
-
this._scrollIndex <
|
|
2455
|
+
this._scrollIndex < se.length - 3 && (this._scrollIndex++, this._scrollCarousel());
|
|
2461
2456
|
}
|
|
2462
2457
|
/**
|
|
2463
2458
|
* Scroll to a specific page
|
|
@@ -2484,7 +2479,7 @@ class tt {
|
|
|
2484
2479
|
* Update navigation button states
|
|
2485
2480
|
*/
|
|
2486
2481
|
_updateNavButtons() {
|
|
2487
|
-
this._leftBtn && (this._leftBtn.disabled = this._scrollIndex === 0), this._rightBtn && (this._rightBtn.disabled = this._scrollIndex >=
|
|
2482
|
+
this._leftBtn && (this._leftBtn.disabled = this._scrollIndex === 0), this._rightBtn && (this._rightBtn.disabled = this._scrollIndex >= se.length - 3);
|
|
2488
2483
|
}
|
|
2489
2484
|
/**
|
|
2490
2485
|
* Update pagination dot states
|
|
@@ -2523,12 +2518,12 @@ class it {
|
|
|
2523
2518
|
* @returns {HTMLElement}
|
|
2524
2519
|
*/
|
|
2525
2520
|
render({ onToggle: e, onSelect: t }) {
|
|
2526
|
-
return this._onToggle = e, this._onSelect = t, this.element = d("div", { className: "filter-carousel-container" }), this._leftBtn =
|
|
2521
|
+
return this._onToggle = e, this._onSelect = t, this.element = d("div", { className: "filter-carousel-container" }), this._leftBtn = j({
|
|
2527
2522
|
icon: _e,
|
|
2528
2523
|
title: "Previous filters",
|
|
2529
2524
|
className: "carousel-nav carousel-nav-left",
|
|
2530
2525
|
onClick: () => this._scrollLeft()
|
|
2531
|
-
}), this._carousel = d("div", { className: "filter-carousel" }), this._rightBtn =
|
|
2526
|
+
}), this._carousel = d("div", { className: "filter-carousel" }), this._rightBtn = j({
|
|
2532
2527
|
icon: me,
|
|
2533
2528
|
title: "Next filters",
|
|
2534
2529
|
className: "carousel-nav carousel-nav-right",
|
|
@@ -2591,7 +2586,7 @@ class it {
|
|
|
2591
2586
|
this._handleToggle(e.id, c), c && (this.state.set("selectedFilter", e.id), (p = this._onSelect) == null || p.call(this, e.id));
|
|
2592
2587
|
}
|
|
2593
2588
|
});
|
|
2594
|
-
return a.innerHTML = t ?
|
|
2589
|
+
return a.innerHTML = t ? ce : "", s.appendChild(r), s.appendChild(n), s.appendChild(a), s._toggle = a, s._isActive = t, s;
|
|
2595
2590
|
}
|
|
2596
2591
|
/**
|
|
2597
2592
|
* Handle filter card click (select)
|
|
@@ -2617,7 +2612,7 @@ class it {
|
|
|
2617
2612
|
const e = this.state.get("activeFilters");
|
|
2618
2613
|
this._filterCards.forEach((t, i) => {
|
|
2619
2614
|
const s = e.has(i);
|
|
2620
|
-
t.classList.toggle("active", s), t._toggle.classList.toggle("active", s), t._toggle.innerHTML = s ?
|
|
2615
|
+
t.classList.toggle("active", s), t._toggle.classList.toggle("active", s), t._toggle.innerHTML = s ? ce : "", t._isActive = s;
|
|
2621
2616
|
});
|
|
2622
2617
|
}
|
|
2623
2618
|
/**
|
|
@@ -2719,7 +2714,7 @@ class st {
|
|
|
2719
2714
|
return;
|
|
2720
2715
|
}
|
|
2721
2716
|
const i = d("div", { className: "adjustments-header" });
|
|
2722
|
-
i.appendChild(d("span", { className: "adjustments-title" }, t.name)), i.appendChild(
|
|
2717
|
+
i.appendChild(d("span", { className: "adjustments-title" }, t.name)), i.appendChild(D({
|
|
2723
2718
|
label: "Reset",
|
|
2724
2719
|
className: "btn-text",
|
|
2725
2720
|
onClick: () => this._handleReset(e)
|
|
@@ -2804,7 +2799,7 @@ class st {
|
|
|
2804
2799
|
});
|
|
2805
2800
|
case "button":
|
|
2806
2801
|
const a = d("div", { className: "button-control" });
|
|
2807
|
-
return a.appendChild(
|
|
2802
|
+
return a.appendChild(D({
|
|
2808
2803
|
label: s,
|
|
2809
2804
|
className: "btn-secondary",
|
|
2810
2805
|
onClick: () => this._handleAction(e, t.action || t.id)
|
|
@@ -2917,22 +2912,22 @@ class rt {
|
|
|
2917
2912
|
this._onChange = t, this._onReset = i, this._onRemove = s, this._onAction = r, this._container = e, this._drawer = d("div", { className: "mobile-filter-drawer" });
|
|
2918
2913
|
const o = d("div", { className: "drawer-header" });
|
|
2919
2914
|
this._titleEl = d("span", { className: "drawer-title" }, "Filter");
|
|
2920
|
-
const n = d("div", { className: "drawer-header-actions" }), a =
|
|
2915
|
+
const n = d("div", { className: "drawer-header-actions" }), a = D({
|
|
2921
2916
|
label: "Reset",
|
|
2922
2917
|
className: "btn-text",
|
|
2923
2918
|
onClick: () => {
|
|
2924
2919
|
var c;
|
|
2925
2920
|
this._currentFilterId && ((c = this._onReset) == null || c.call(this, this._currentFilterId), this._renderControls());
|
|
2926
2921
|
}
|
|
2927
|
-
}), l =
|
|
2922
|
+
}), l = D({
|
|
2928
2923
|
label: "Remove",
|
|
2929
2924
|
className: "btn-text btn-danger",
|
|
2930
2925
|
onClick: () => {
|
|
2931
2926
|
var c;
|
|
2932
2927
|
this._currentFilterId && ((c = this._onRemove) == null || c.call(this, this._currentFilterId), this.close());
|
|
2933
2928
|
}
|
|
2934
|
-
}), h =
|
|
2935
|
-
icon:
|
|
2929
|
+
}), h = j({
|
|
2930
|
+
icon: ue,
|
|
2936
2931
|
title: "Close",
|
|
2937
2932
|
className: "btn-icon-sm",
|
|
2938
2933
|
ariaLabel: "Close drawer",
|
|
@@ -3081,7 +3076,7 @@ class rt {
|
|
|
3081
3076
|
});
|
|
3082
3077
|
case "button": {
|
|
3083
3078
|
const n = d("div", { className: "button-control" });
|
|
3084
|
-
return n.appendChild(
|
|
3079
|
+
return n.appendChild(D({
|
|
3085
3080
|
label: s,
|
|
3086
3081
|
className: "btn-secondary",
|
|
3087
3082
|
onClick: () => {
|
|
@@ -3218,7 +3213,7 @@ const ot = [
|
|
|
3218
3213
|
{ id: "180", label: "180°", angle: 180 },
|
|
3219
3214
|
{ id: "270", label: "270°", angle: 270 }
|
|
3220
3215
|
];
|
|
3221
|
-
function
|
|
3216
|
+
function $(g) {
|
|
3222
3217
|
if (!Number.isFinite(Number(g))) return 0;
|
|
3223
3218
|
const e = Number(g) % 360;
|
|
3224
3219
|
return e < 0 ? e + 360 : e;
|
|
@@ -3248,7 +3243,7 @@ class ht {
|
|
|
3248
3243
|
e.appendChild(d("label", { className: "section-label" }, "Shape"));
|
|
3249
3244
|
const t = d("div", { className: "chip-row" }), i = this.state.get("crop.shape");
|
|
3250
3245
|
ot.forEach((l) => {
|
|
3251
|
-
const h =
|
|
3246
|
+
const h = re({
|
|
3252
3247
|
label: l.name,
|
|
3253
3248
|
icon: l.icon,
|
|
3254
3249
|
active: i === l.id,
|
|
@@ -3258,24 +3253,24 @@ class ht {
|
|
|
3258
3253
|
}), e.appendChild(t), this.element.appendChild(e), this.state.get("lockCropShape") && (e.style.display = "none"), this._shapeSection = e, this._aspectSection = d("div", { className: "crop-section" }), this._aspectSection.appendChild(d("label", { className: "section-label" }, "Aspect Ratio"));
|
|
3259
3254
|
const s = d("div", { className: "chip-row aspect-row" }), r = this.state.get("crop.aspect");
|
|
3260
3255
|
at.forEach((l) => {
|
|
3261
|
-
const h =
|
|
3256
|
+
const h = re({
|
|
3262
3257
|
label: l.name,
|
|
3263
3258
|
active: r === l.id,
|
|
3264
3259
|
onClick: () => this._selectAspect(l.id)
|
|
3265
3260
|
});
|
|
3266
3261
|
h.dataset.ratio = l.id, h.dataset.testid = `crop-ratio-${l.id}`, this._aspectChips.set(l.id, h), s.appendChild(h);
|
|
3267
3262
|
}), this._aspectSection.appendChild(s), this.element.appendChild(this._aspectSection), this._updateAspectVisibility();
|
|
3268
|
-
const o = d("div", { className: "crop-actions" }), n =
|
|
3263
|
+
const o = d("div", { className: "crop-actions" }), n = D({
|
|
3269
3264
|
label: "Cancel",
|
|
3270
3265
|
className: "btn-secondary crop-cancel-btn",
|
|
3271
|
-
icon:
|
|
3266
|
+
icon: ue,
|
|
3272
3267
|
onClick: () => this.cropManager.cancel()
|
|
3273
3268
|
});
|
|
3274
3269
|
n.dataset.testid = "cancel-crop";
|
|
3275
|
-
const a =
|
|
3270
|
+
const a = D({
|
|
3276
3271
|
label: "Apply Crop",
|
|
3277
3272
|
className: "btn-primary crop-apply-btn",
|
|
3278
|
-
icon:
|
|
3273
|
+
icon: ce,
|
|
3279
3274
|
onClick: () => this._applyCropAndReturnToFilters()
|
|
3280
3275
|
});
|
|
3281
3276
|
return a.dataset.testid = "apply-crop", o.appendChild(n), o.appendChild(a), this.element.appendChild(o), this._subscribeToState(), this.element;
|
|
@@ -3283,35 +3278,35 @@ class ht {
|
|
|
3283
3278
|
_renderRotationSection() {
|
|
3284
3279
|
const e = d("div", { className: "crop-section rotation-section" });
|
|
3285
3280
|
e.appendChild(d("label", { className: "section-label" }, "Rotate"));
|
|
3286
|
-
const t = d("div", { className: "rotation-action-row" }), i =
|
|
3281
|
+
const t = d("div", { className: "rotation-action-row" }), i = D({
|
|
3287
3282
|
label: "Left 90°",
|
|
3288
3283
|
className: "btn-secondary rotation-action-btn",
|
|
3289
3284
|
icon: ze,
|
|
3290
3285
|
onClick: () => this._rotateBy(-90)
|
|
3291
3286
|
});
|
|
3292
3287
|
i.dataset.testid = "rotate-left-90";
|
|
3293
|
-
const s =
|
|
3288
|
+
const s = D({
|
|
3294
3289
|
label: "Right 90°",
|
|
3295
3290
|
className: "btn-secondary rotation-action-btn",
|
|
3296
3291
|
icon: Pe,
|
|
3297
3292
|
onClick: () => this._rotateBy(90)
|
|
3298
3293
|
});
|
|
3299
3294
|
s.dataset.testid = "rotate-right-90";
|
|
3300
|
-
const r =
|
|
3295
|
+
const r = D({
|
|
3301
3296
|
label: "Rotate 180°",
|
|
3302
3297
|
className: "btn-secondary rotation-action-btn",
|
|
3303
3298
|
onClick: () => this._rotateBy(180)
|
|
3304
3299
|
});
|
|
3305
3300
|
r.dataset.testid = "rotate-180";
|
|
3306
|
-
const o =
|
|
3301
|
+
const o = D({
|
|
3307
3302
|
label: "Rotate 270°",
|
|
3308
3303
|
className: "btn-secondary rotation-action-btn",
|
|
3309
3304
|
onClick: () => this._rotateBy(270)
|
|
3310
3305
|
});
|
|
3311
3306
|
o.dataset.testid = "rotate-270", t.appendChild(i), t.appendChild(s), t.appendChild(r), t.appendChild(o), e.appendChild(t);
|
|
3312
|
-
const n = d("div", { className: "chip-row rotation-preset-row" }), a =
|
|
3307
|
+
const n = d("div", { className: "chip-row rotation-preset-row" }), a = $(this.state.get("transform.rotation") ?? 0);
|
|
3313
3308
|
lt.forEach((u) => {
|
|
3314
|
-
const f =
|
|
3309
|
+
const f = re({
|
|
3315
3310
|
label: u.label,
|
|
3316
3311
|
active: Math.round(a) === u.angle,
|
|
3317
3312
|
onClick: () => this._setRotation(u.angle)
|
|
@@ -3355,7 +3350,7 @@ class ht {
|
|
|
3355
3350
|
this._rotationNumber
|
|
3356
3351
|
);
|
|
3357
3352
|
l.appendChild(h), l.appendChild(c);
|
|
3358
|
-
const p =
|
|
3353
|
+
const p = D({
|
|
3359
3354
|
label: "Reset rotation",
|
|
3360
3355
|
className: "btn-text rotation-reset-btn",
|
|
3361
3356
|
onClick: () => this._setRotation(0)
|
|
@@ -3389,7 +3384,7 @@ class ht {
|
|
|
3389
3384
|
}
|
|
3390
3385
|
_setRotation(e) {
|
|
3391
3386
|
var s, r;
|
|
3392
|
-
const t =
|
|
3387
|
+
const t = $(e);
|
|
3393
3388
|
if (((r = (s = this.editor) == null ? void 0 : s.setRotationAngle) == null ? void 0 : r.call(s, t)) === !1) {
|
|
3394
3389
|
this._syncRotationControls(this.state.get("transform.rotation") ?? 0);
|
|
3395
3390
|
return;
|
|
@@ -3397,15 +3392,15 @@ class ht {
|
|
|
3397
3392
|
this._syncRotationControls(t);
|
|
3398
3393
|
}
|
|
3399
3394
|
_previewAngleValue(e) {
|
|
3400
|
-
const t =
|
|
3395
|
+
const t = $(Number(e));
|
|
3401
3396
|
this._rotationValue && (this._rotationValue.textContent = this._formatAngle(t)), this._rotationNumber && (this._rotationNumber.value = this._formatPlainAngle(t)), this._refreshPresetChips(t);
|
|
3402
3397
|
}
|
|
3403
3398
|
_syncRotationControls(e) {
|
|
3404
|
-
const t =
|
|
3399
|
+
const t = $(e);
|
|
3405
3400
|
this._rotationValue && (this._rotationValue.textContent = this._formatAngle(t)), this._rotationRange && (this._rotationRange.value = String(Math.round(t))), this._rotationNumber && (this._rotationNumber.value = this._formatPlainAngle(t)), this._refreshPresetChips(t);
|
|
3406
3401
|
}
|
|
3407
3402
|
_refreshPresetChips(e) {
|
|
3408
|
-
const t = Math.round(
|
|
3403
|
+
const t = Math.round($(e)) % 360;
|
|
3409
3404
|
this._rotationPresetChips.forEach((i, s) => {
|
|
3410
3405
|
i.setActive(Number(s) === t);
|
|
3411
3406
|
});
|
|
@@ -3414,7 +3409,7 @@ class ht {
|
|
|
3414
3409
|
return `${this._formatPlainAngle(e)}°`;
|
|
3415
3410
|
}
|
|
3416
3411
|
_formatPlainAngle(e) {
|
|
3417
|
-
const t =
|
|
3412
|
+
const t = $(e);
|
|
3418
3413
|
return Number.isInteger(t) ? String(t) : t.toFixed(1);
|
|
3419
3414
|
}
|
|
3420
3415
|
/**
|
|
@@ -3474,7 +3469,7 @@ class ct {
|
|
|
3474
3469
|
});
|
|
3475
3470
|
const o = d("div", { className: "panel-header" });
|
|
3476
3471
|
o.appendChild(d("h3", { className: "panel-title" }, "Active Filters"));
|
|
3477
|
-
const n =
|
|
3472
|
+
const n = D({
|
|
3478
3473
|
label: "Clear All",
|
|
3479
3474
|
className: "btn-text btn-danger",
|
|
3480
3475
|
onClick: () => this._handleClearAll()
|
|
@@ -3540,12 +3535,12 @@ class ct {
|
|
|
3540
3535
|
onClick: (u) => {
|
|
3541
3536
|
u.target.closest(".filter-item-actions") || this._handleSelect(e);
|
|
3542
3537
|
}
|
|
3543
|
-
}), o = d("div", { className: "filter-item-header" }), n = d("span", { className: "filter-item-name" }, t.name), a = d("div", { className: "filter-item-actions" }), l =
|
|
3538
|
+
}), o = d("div", { className: "filter-item-header" }), n = d("span", { className: "filter-item-name" }, t.name), a = d("div", { className: "filter-item-actions" }), l = j({
|
|
3544
3539
|
icon: ye,
|
|
3545
3540
|
title: "Reset filter",
|
|
3546
3541
|
className: "btn-icon-sm",
|
|
3547
3542
|
onClick: () => this._handleReset(e)
|
|
3548
|
-
}), h =
|
|
3543
|
+
}), h = j({
|
|
3549
3544
|
icon: He,
|
|
3550
3545
|
title: "Remove filter",
|
|
3551
3546
|
className: "btn-icon-sm btn-danger",
|
|
@@ -3659,7 +3654,7 @@ class ct {
|
|
|
3659
3654
|
this._unsubscribers.forEach((t) => t()), this._unsubscribers = [], this._filterItems.clear(), (e = this.element) == null || e.remove(), this.element = null;
|
|
3660
3655
|
}
|
|
3661
3656
|
}
|
|
3662
|
-
const
|
|
3657
|
+
const Z = {
|
|
3663
3658
|
name: "free",
|
|
3664
3659
|
initialMode: "filters",
|
|
3665
3660
|
cropShape: "free",
|
|
@@ -3671,12 +3666,12 @@ const $ = {
|
|
|
3671
3666
|
showCropControls: !0,
|
|
3672
3667
|
maxExportWidth: void 0,
|
|
3673
3668
|
maxExportHeight: void 0
|
|
3674
|
-
},
|
|
3669
|
+
}, he = {
|
|
3675
3670
|
free: {
|
|
3676
|
-
|
|
3671
|
+
...Z
|
|
3677
3672
|
},
|
|
3678
3673
|
avatar: {
|
|
3679
|
-
|
|
3674
|
+
...Z,
|
|
3680
3675
|
name: "avatar",
|
|
3681
3676
|
initialMode: "crop",
|
|
3682
3677
|
cropShape: "circle",
|
|
@@ -3686,7 +3681,7 @@ const $ = {
|
|
|
3686
3681
|
lockAspectRatio: !0
|
|
3687
3682
|
},
|
|
3688
3683
|
banner: {
|
|
3689
|
-
|
|
3684
|
+
...Z,
|
|
3690
3685
|
name: "banner",
|
|
3691
3686
|
initialMode: "crop",
|
|
3692
3687
|
cropShape: "square",
|
|
@@ -3696,7 +3691,7 @@ const $ = {
|
|
|
3696
3691
|
lockAspectRatio: !0
|
|
3697
3692
|
},
|
|
3698
3693
|
cover: {
|
|
3699
|
-
|
|
3694
|
+
...Z,
|
|
3700
3695
|
name: "cover",
|
|
3701
3696
|
initialMode: "crop",
|
|
3702
3697
|
cropShape: "free",
|
|
@@ -3706,7 +3701,7 @@ const $ = {
|
|
|
3706
3701
|
lockAspectRatio: !0
|
|
3707
3702
|
},
|
|
3708
3703
|
product: {
|
|
3709
|
-
|
|
3704
|
+
...Z,
|
|
3710
3705
|
name: "product",
|
|
3711
3706
|
initialMode: "filters",
|
|
3712
3707
|
cropShape: "square",
|
|
@@ -3718,22 +3713,22 @@ const $ = {
|
|
|
3718
3713
|
};
|
|
3719
3714
|
function dt(g) {
|
|
3720
3715
|
if (!g)
|
|
3721
|
-
return { ...
|
|
3716
|
+
return { ...he.free };
|
|
3722
3717
|
if (typeof g == "object" && g !== null)
|
|
3723
|
-
return {
|
|
3724
|
-
const e =
|
|
3725
|
-
return e ? { ...e } : { ...
|
|
3718
|
+
return { ...Z, ...g };
|
|
3719
|
+
const e = he[g];
|
|
3720
|
+
return e ? { ...e } : { ...he.free };
|
|
3726
3721
|
}
|
|
3727
|
-
function
|
|
3722
|
+
function q(g) {
|
|
3728
3723
|
if (!Number.isFinite(Number(g))) return 0;
|
|
3729
3724
|
const e = Number(g) % 360;
|
|
3730
3725
|
return e < 0 ? e + 360 : e;
|
|
3731
3726
|
}
|
|
3732
3727
|
function ut(g, e) {
|
|
3733
|
-
const t =
|
|
3734
|
-
return (
|
|
3728
|
+
const t = q(g);
|
|
3729
|
+
return (q(e) - t + 540) % 360 - 180;
|
|
3735
3730
|
}
|
|
3736
|
-
class kt extends
|
|
3731
|
+
class kt extends ne {
|
|
3737
3732
|
/**
|
|
3738
3733
|
* Create a new VanillaImageEditor
|
|
3739
3734
|
* @param {HTMLElement} container - Container element to mount the editor
|
|
@@ -3763,7 +3758,7 @@ class kt extends re {
|
|
|
3763
3758
|
},
|
|
3764
3759
|
...s,
|
|
3765
3760
|
...t
|
|
3766
|
-
}, this._preset = i, this._state = Se(), this._state.set("theme", this._options.theme), this._state.set("crop.shape", this._options.cropShape), this._state.set("crop.aspect", this._options.initialAspectRatio), this._preset && (this._state.set("lockCropShape", !!this._preset.lockCropShape), this._state.set("lockAspectRatio", !!this._preset.lockAspectRatio), this._state.set("showFilters", this._preset.showFilters !== !1), this._state.set("showCropControls", this._preset.showCropControls !== !1), this._state.set("autoZoomOnCropOverflow", !!this._preset.autoZoomOnCropOverflow)), this._renderer = new Te(), this._filterManager = new Qe(this._state, this._renderer), this._cropManager = new
|
|
3761
|
+
}, this._preset = i, this._state = Se(), this._state.set("theme", this._options.theme), this._state.set("crop.shape", this._options.cropShape), this._state.set("crop.aspect", this._options.initialAspectRatio), this._preset && (this._state.set("lockCropShape", !!this._preset.lockCropShape), this._state.set("lockAspectRatio", !!this._preset.lockAspectRatio), this._state.set("showFilters", this._preset.showFilters !== !1), this._state.set("showCropControls", this._preset.showCropControls !== !1), this._state.set("autoZoomOnCropOverflow", !!this._preset.autoZoomOnCropOverflow)), this._renderer = new Te(), this._filterManager = new Qe(this._state, this._renderer), this._cropManager = new de(this._state, this._renderer), this._removeBgManager = null, this._backgroundRemovalAvailable = !1, ((r = this._options.backgroundRemoval) == null ? void 0 : r.enabled) !== !1 && (this._removeBgManager = new Xe({
|
|
3767
3762
|
endpoint: (o = this._options.backgroundRemoval) == null ? void 0 : o.endpoint,
|
|
3768
3763
|
optionsEndpoint: (n = this._options.backgroundRemoval) == null ? void 0 : n.optionsEndpoint,
|
|
3769
3764
|
fallbackEndpoint: (a = this._options.backgroundRemoval) == null ? void 0 : a.fallbackEndpoint
|
|
@@ -3991,7 +3986,7 @@ class kt extends re {
|
|
|
3991
3986
|
_hydrateState(e) {
|
|
3992
3987
|
var i;
|
|
3993
3988
|
if (!e || e.version !== 1) return;
|
|
3994
|
-
const t =
|
|
3989
|
+
const t = q(((i = e.transform) == null ? void 0 : i.rotation) ?? 0);
|
|
3995
3990
|
if (t !== 0 && this._renderer.rotateBy(t) && this._state.set("transform.rotation", t), e.crop) {
|
|
3996
3991
|
const s = e.crop.shape || "free", r = e.crop.aspectRatio || "free";
|
|
3997
3992
|
e.crop.rect && (this._cropManager.applyFromPixelRect(e.crop.rect, s), this._state.set("crop.appliedRect", { ...e.crop.rect }), this._state.set("crop.appliedShape", s), this._state.set("crop.appliedAspect", r)), this._state.set("crop.shape", s), this._state.set("crop.aspect", r);
|
|
@@ -4101,7 +4096,7 @@ class kt extends re {
|
|
|
4101
4096
|
shape: this._state.get("crop.appliedShape") || this._state.get("crop.shape") || "free"
|
|
4102
4097
|
},
|
|
4103
4098
|
transform: {
|
|
4104
|
-
rotation:
|
|
4099
|
+
rotation: q(this._state.get("transform.rotation") ?? 0)
|
|
4105
4100
|
},
|
|
4106
4101
|
filters: t
|
|
4107
4102
|
};
|
|
@@ -4137,7 +4132,7 @@ class kt extends re {
|
|
|
4137
4132
|
}
|
|
4138
4133
|
setRotationAngle(e) {
|
|
4139
4134
|
if (!this._state.get("hasImage")) return !1;
|
|
4140
|
-
const t =
|
|
4135
|
+
const t = q(this._state.get("transform.rotation") ?? 0), i = q(e), s = ut(t, i), r = this._state.get("mode") === "crop";
|
|
4141
4136
|
if (Math.abs(s) > 1e-3) {
|
|
4142
4137
|
if (r && this._cropManager.disable(), !this._renderer.rotateBy(s))
|
|
4143
4138
|
return r && this._cropManager.enable(), !1;
|
|
@@ -4290,23 +4285,23 @@ class kt extends re {
|
|
|
4290
4285
|
export {
|
|
4291
4286
|
Ye as A,
|
|
4292
4287
|
Oe as B,
|
|
4293
|
-
|
|
4294
|
-
|
|
4288
|
+
de as C,
|
|
4289
|
+
pe as E,
|
|
4295
4290
|
Qe as F,
|
|
4296
4291
|
Te as P,
|
|
4297
4292
|
Xe as R,
|
|
4298
4293
|
et as T,
|
|
4299
4294
|
kt as V,
|
|
4300
4295
|
me as a,
|
|
4301
|
-
|
|
4302
|
-
|
|
4296
|
+
D as b,
|
|
4297
|
+
ce as c,
|
|
4303
4298
|
Ce as d,
|
|
4304
4299
|
d as e,
|
|
4305
4300
|
ke as f,
|
|
4306
4301
|
xe as g,
|
|
4307
4302
|
we as h,
|
|
4308
4303
|
ve as i,
|
|
4309
|
-
|
|
4304
|
+
ue as j,
|
|
4310
4305
|
bt as k,
|
|
4311
4306
|
yt as l,
|
|
4312
4307
|
vt as m,
|
|
@@ -4317,11 +4312,11 @@ export {
|
|
|
4317
4312
|
Ue as r,
|
|
4318
4313
|
Le as s,
|
|
4319
4314
|
He as t,
|
|
4320
|
-
|
|
4315
|
+
j as u,
|
|
4321
4316
|
gt as v,
|
|
4322
4317
|
mt as w,
|
|
4323
4318
|
dt as x,
|
|
4324
4319
|
ht as y,
|
|
4325
4320
|
_t as z
|
|
4326
4321
|
};
|
|
4327
|
-
//# sourceMappingURL=editor-
|
|
4322
|
+
//# sourceMappingURL=editor-CcfSL2dI.js.map
|