exodeui 6.3.37 → 6.3.38
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/index.js +2 -2
- package/dist/index.mjs +200 -199
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -250,7 +250,7 @@ function As(g, t, i) {
|
|
|
250
250
|
const P = L % d.length || 0, _ = Math.floor(L / d.length) || 0;
|
|
251
251
|
_ >= u.length && u.push(100);
|
|
252
252
|
const E = d[P], A = u[_];
|
|
253
|
-
let W = r.left + M + d.slice(0, P).reduce((tt,
|
|
253
|
+
let W = r.left + M + d.slice(0, P).reduce((tt, O) => tt + O + n, 0), z = r.top + I + u.slice(0, _).reduce((tt, O) => tt + O + a, 0);
|
|
254
254
|
const Y = i(T.id), G = T.geometry;
|
|
255
255
|
let N = (Y == null ? void 0 : Y.width) ?? G.width ?? 100, J = (Y == null ? void 0 : Y.height) ?? G.height ?? 100;
|
|
256
256
|
if (G.type === "Ellipse" || G.type === "Polygon" || G.type === "Star") {
|
|
@@ -427,7 +427,7 @@ class xs {
|
|
|
427
427
|
}
|
|
428
428
|
}
|
|
429
429
|
}
|
|
430
|
-
const gs = (g) => g, Ls = (g) => g > 0 ? 1 : 0,
|
|
430
|
+
const gs = (g) => g, Ls = (g) => g > 0 ? 1 : 0, Os = (g) => g < 1 ? 0 : 1, os = (g) => g * g, as = (g) => g * (2 - g), rs = (g) => g < 0.5 ? 2 * g * g : -1 + (4 - 2 * g) * g, Rs = (g) => g * g * g, Fs = (g) => --g * g * g + 1, $s = (g) => g < 0.5 ? 4 * g * g * g : (g - 1) * (2 * g - 2) * (2 * g - 2) + 1, Bs = (g) => g * g * g * g, Ws = (g) => 1 - --g * g * g * g, Ys = (g) => g < 0.5 ? 8 * g * g * g * g : 1 - 8 * --g * g * g * g, Xs = (g) => g * g * g * g * g, Ds = (g) => 1 + --g * g * g * g * g, Gs = (g) => g < 0.5 ? 16 * g * g * g * g * g : 1 + 16 * --g * g * g * g * g, zs = (g) => 1 - Math.cos(g * Math.PI / 2), Vs = (g) => Math.sin(g * Math.PI / 2), Ns = (g) => -(Math.cos(Math.PI * g) - 1) / 2, Hs = (g) => g === 0 ? 0 : Math.pow(2, 10 * (g - 1)), Us = (g) => g === 1 ? 1 : 1 - Math.pow(2, -10 * g), qs = (g) => g === 0 ? 0 : g === 1 ? 1 : g < 0.5 ? Math.pow(2, 20 * g - 10) / 2 : (2 - Math.pow(2, -20 * g + 10)) / 2, Ks = (g) => 1 - Math.sqrt(1 - g * g), Js = (g) => Math.sqrt(1 - --g * g), Qs = (g) => g < 0.5 ? (1 - Math.sqrt(1 - 4 * g * g)) / 2 : (Math.sqrt(1 - (-2 * g + 2) * (-2 * g + 2)) + 1) / 2, je = 1.70158, qe = je * 1.525, ms = je + 1, Zs = (g) => ms * g * g * g - je * g * g, js = (g) => 1 + ms * Math.pow(g - 1, 3) + je * Math.pow(g - 1, 2), ti = (g) => g < 0.5 ? Math.pow(2 * g, 2) * ((qe + 1) * 2 * g - qe) / 2 : (Math.pow(2 * g - 2, 2) * ((qe + 1) * (g * 2 - 2) + qe) + 2) / 2, ys = 2 * Math.PI / 3, ls = 2 * Math.PI / 4.5, ei = (g) => g === 0 ? 0 : g === 1 ? 1 : -Math.pow(2, 10 * g - 10) * Math.sin((g * 10 - 10.75) * ys), si = (g) => g === 0 ? 0 : g === 1 ? 1 : Math.pow(2, -10 * g) * Math.sin((g * 10 - 0.75) * ys) + 1, ii = (g) => g === 0 ? 0 : g === 1 ? 1 : g < 0.5 ? -(Math.pow(2, 20 * g - 10) * Math.sin((20 * g - 11.125) * ls)) / 2 : Math.pow(2, -20 * g + 10) * Math.sin((20 * g - 11.125) * ls) / 2 + 1, Ze = (g) => g < 1 / 2.75 ? 7.5625 * g * g : g < 2 / 2.75 ? 7.5625 * (g -= 1.5 / 2.75) * g + 0.75 : g < 2.5 / 2.75 ? 7.5625 * (g -= 2.25 / 2.75) * g + 0.9375 : 7.5625 * (g -= 2.625 / 2.75) * g + 0.984375, ni = (g) => 1 - Ze(1 - g), oi = Ze, ai = (g) => g < 0.5 ? (1 - Ze(1 - 2 * g)) / 2 : (1 + Ze(2 * g - 1)) / 2, es = /* @__PURE__ */ new Map(), ze = (g, t, i, o) => {
|
|
431
431
|
const e = `${g},${t},${i},${o}`;
|
|
432
432
|
if (es.has(e)) return es.get(e);
|
|
433
433
|
const s = (h) => (1 - 3 * i + 3 * g) * h * h * h + (3 * i - 6 * g) * h * h + 3 * g * h, n = (h) => (1 - 3 * o + 3 * t) * h * h * h + (3 * o - 6 * t) * h * h + 3 * t * h, a = (h) => 3 * (1 - 3 * i + 3 * g) * h * h + 2 * (3 * i - 6 * g) * h + 3 * g, r = (h) => {
|
|
@@ -460,7 +460,7 @@ const gs = (g) => g, Ls = (g) => g > 0 ? 1 : 0, Rs = (g) => g < 1 ? 0 : 1, os =
|
|
|
460
460
|
EaseOutQuad: as,
|
|
461
461
|
EaseInOutQuad: rs,
|
|
462
462
|
// Cubic
|
|
463
|
-
EaseInCubic:
|
|
463
|
+
EaseInCubic: Rs,
|
|
464
464
|
EaseOutCubic: Fs,
|
|
465
465
|
EaseInOutCubic: $s,
|
|
466
466
|
// Quartic
|
|
@@ -501,7 +501,7 @@ const gs = (g) => g, Ls = (g) => g > 0 ? 1 : 0, Rs = (g) => g < 1 ? 0 : 1, os =
|
|
|
501
501
|
EaseInOut: rs,
|
|
502
502
|
// Discrete
|
|
503
503
|
StepStart: Ls,
|
|
504
|
-
StepEnd:
|
|
504
|
+
StepEnd: Os
|
|
505
505
|
}, ri = (g) => {
|
|
506
506
|
const t = g.trim(), i = t.toLowerCase();
|
|
507
507
|
if (Ke[t]) return Ke[t];
|
|
@@ -598,12 +598,12 @@ const gs = (g) => g, Ls = (g) => g > 0 ? 1 : 0, Rs = (g) => g < 1 ? 0 : 1, os =
|
|
|
598
598
|
const x = i[m[0].boneId] || [1, 0, 0, 1, 0, 0], F = x[0] * x[3] - x[1] * x[2];
|
|
599
599
|
let j = 0, X = 0;
|
|
600
600
|
if (F !== 0) {
|
|
601
|
-
const tt = (x[2] * x[5] - x[3] * x[4]) / F,
|
|
601
|
+
const tt = (x[2] * x[5] - x[3] * x[4]) / F, O = (x[1] * x[4] - x[0] * x[5]) / F, R = Math.atan2(-x[1], x[3]);
|
|
602
602
|
if (!N)
|
|
603
|
-
j = tt, X =
|
|
603
|
+
j = tt, X = O;
|
|
604
604
|
else {
|
|
605
605
|
const ot = -x[2] / F, yt = x[0] / F, bt = Math.hypot(ot, yt), gt = I.length * bt;
|
|
606
|
-
j = tt - gt * Math.sin(
|
|
606
|
+
j = tt - gt * Math.sin(R), X = O + gt * Math.cos(R);
|
|
607
607
|
}
|
|
608
608
|
const D = Math.hypot(v - j, b - X), q = Math.hypot(l - Y, p - G);
|
|
609
609
|
if (q > 0 && D > 0) {
|
|
@@ -2590,8 +2590,8 @@ class ci {
|
|
|
2590
2590
|
let X = L;
|
|
2591
2591
|
if (T) {
|
|
2592
2592
|
const tt = `_internal_${F}_${l.id}`;
|
|
2593
|
-
let
|
|
2594
|
-
|
|
2593
|
+
let O = _[tt];
|
|
2594
|
+
O === void 0 && (O = _[F] ?? j), X = O + P * J, _[tt] = X, l.step && l.step > 0 && (X = Math.round(X / l.step) * l.step);
|
|
2595
2595
|
} else
|
|
2596
2596
|
X = j + L;
|
|
2597
2597
|
_[F] = X;
|
|
@@ -2956,14 +2956,14 @@ class ci {
|
|
|
2956
2956
|
this.warn("No state for object:", i.id);
|
|
2957
2957
|
return;
|
|
2958
2958
|
}
|
|
2959
|
-
this.frameCount % 60, t.roundRect || (t.roundRect = (X, tt,
|
|
2959
|
+
this.frameCount % 60, t.roundRect || (t.roundRect = (X, tt, O, R, D) => (this.drawRoundRect(t, X, tt, O, R, D), t));
|
|
2960
2960
|
const s = e.geometry ? this.deepMerge(i.geometry, e.geometry) : i.geometry;
|
|
2961
2961
|
let n = e.style ? this.deepMerge(i.style, e.style) : i.style, a = (s == null ? void 0 : s.width) || ((u = i.geometry) == null ? void 0 : u.width) || i.width || 0, r = (s == null ? void 0 : s.height) || ((v = i.geometry) == null ? void 0 : v.height) || i.height || 0;
|
|
2962
2962
|
if ((a === 0 || r === 0) && (s != null && s.points) && Array.isArray(s.points) && s.points.length > 0) {
|
|
2963
|
-
let X = 1 / 0, tt = -1 / 0,
|
|
2963
|
+
let X = 1 / 0, tt = -1 / 0, O = 1 / 0, R = -1 / 0;
|
|
2964
2964
|
s.points.forEach((D) => {
|
|
2965
|
-
X = Math.min(X, D.x), tt = Math.max(tt, D.x),
|
|
2966
|
-
}), a === 0 && (a = tt - X), r === 0 && (r =
|
|
2965
|
+
X = Math.min(X, D.x), tt = Math.max(tt, D.x), O = Math.min(O, D.y), R = Math.max(R, D.y);
|
|
2966
|
+
}), a === 0 && (a = tt - X), r === 0 && (r = R - O);
|
|
2967
2967
|
}
|
|
2968
2968
|
const f = (X) => {
|
|
2969
2969
|
if (X)
|
|
@@ -2978,7 +2978,7 @@ class ci {
|
|
|
2978
2978
|
i.weights,
|
|
2979
2979
|
i.bindMatrices,
|
|
2980
2980
|
X,
|
|
2981
|
-
(
|
|
2981
|
+
(O) => this.getGlobalTransform(O)
|
|
2982
2982
|
);
|
|
2983
2983
|
l = { ...l, points: tt };
|
|
2984
2984
|
}
|
|
@@ -2987,23 +2987,23 @@ class ci {
|
|
|
2987
2987
|
return;
|
|
2988
2988
|
const p = i.repeaterConfig, c = p && p.isEnabled && p.count > 1, d = c ? p.count : 1;
|
|
2989
2989
|
for (let X = 0; X < d; X++) {
|
|
2990
|
-
let tt = e.x !== void 0 ? e.x : ((b = e.transform) == null ? void 0 : b.x) ?? 0,
|
|
2990
|
+
let tt = e.x !== void 0 ? e.x : ((b = e.transform) == null ? void 0 : b.x) ?? 0, O = e.y !== void 0 ? e.y : ((m = e.transform) == null ? void 0 : m.y) ?? 0, R = e.rotation !== void 0 ? e.rotation : ((y = e.transform) == null ? void 0 : y.rotation) ?? 0, D = e.scale_x !== void 0 ? e.scale_x : ((S = e.transform) == null ? void 0 : S.scale_x) ?? 1, q = e.scale_y !== void 0 ? e.scale_y : ((C = e.transform) == null ? void 0 : C.scale_y) ?? 1;
|
|
2991
2991
|
if (c && X > 0) {
|
|
2992
2992
|
if (p.type === "Linear") {
|
|
2993
2993
|
const ft = p.offsetX || 0, pt = p.offsetY || 0, at = p.rotation || 0, B = p.scale !== void 0 ? p.scale : 1;
|
|
2994
|
-
tt += X * ft,
|
|
2994
|
+
tt += X * ft, O += X * pt, R += X * at, D *= Math.pow(B, X), q *= Math.pow(B, X);
|
|
2995
2995
|
} else if (p.type === "Grid") {
|
|
2996
2996
|
const ft = p.cols || Math.ceil(Math.sqrt(p.count)), pt = p.gapX || 0, at = p.gapY || 0, B = Math.floor(X / ft), nt = X % ft, Z = a + pt, Pt = r + at;
|
|
2997
|
-
tt += nt * Z,
|
|
2997
|
+
tt += nt * Z, O += B * Pt;
|
|
2998
2998
|
} else if (p.type === "Radial") {
|
|
2999
2999
|
const ft = p.radius || 100, pt = p.startAngle || 0, B = (p.endAngle || 360) - pt, nt = p.count > 1 ? B / (B === 360 ? p.count : p.count - 1) : 0, Z = pt + X * nt, Pt = Z * Math.PI / 180;
|
|
3000
|
-
tt = e.x + ft * Math.cos(Pt),
|
|
3000
|
+
tt = e.x + ft * Math.cos(Pt), O = e.y + ft * Math.sin(Pt), R += Z;
|
|
3001
3001
|
}
|
|
3002
3002
|
}
|
|
3003
3003
|
const ot = i.type === "Group" || i.type === "Frame" || i.type === "Component", yt = a > 0 && r > 0;
|
|
3004
3004
|
if (!ot && yt) {
|
|
3005
3005
|
const ft = (((w = n.shadow) == null ? void 0 : w.isEnabled) !== !1 ? (((M = n.shadow) == null ? void 0 : M.blur) || 0) + 10 : 0) + (((I = n.blur) == null ? void 0 : I.isEnabled) !== !1 && ((k = n.blur) == null ? void 0 : k.radius) || 0) + 20;
|
|
3006
|
-
if (!this.isObjectInView(t, tt,
|
|
3006
|
+
if (!this.isObjectInView(t, tt, O, a, r, ft))
|
|
3007
3007
|
continue;
|
|
3008
3008
|
}
|
|
3009
3009
|
this.debug_objectsRendered++, t.save();
|
|
@@ -3014,7 +3014,7 @@ class ci {
|
|
|
3014
3014
|
It || (It = n.effect || ((P = i.style) == null ? void 0 : P.effect) || Et.find((ft) => ft.isEnabled !== !1));
|
|
3015
3015
|
const St = It, Xt = (St == null ? void 0 : St.isEnabled) !== !1, le = St == null ? void 0 : St.type, he = (St == null ? void 0 : St.radius) ?? 10;
|
|
3016
3016
|
Xt && le === "LayerBlur" ? bt.push(`blur(${he}px)`) : Xt && le === "BackgroundBlur" && (n === i.style && (n = { ...n }), n.fill = { type: "None" });
|
|
3017
|
-
const et = ((_ = s == null ? void 0 : s.type) == null ? void 0 : _.toLowerCase().includes("image")) || ((E = i.type) == null ? void 0 : E.toLowerCase().includes("image")), mt = n.adjustments && Object.keys(n.adjustments).length > 0 ? n.adjustments : null,
|
|
3017
|
+
const et = ((_ = s == null ? void 0 : s.type) == null ? void 0 : _.toLowerCase().includes("image")) || ((E = i.type) == null ? void 0 : E.toLowerCase().includes("image")), mt = n.adjustments && Object.keys(n.adjustments).length > 0 ? n.adjustments : null, Ot = s != null && s.adjustments && Object.keys(s.adjustments).length > 0 ? s.adjustments : null, _t = et ? Ot || mt : mt || Ot, dt = et && !_t ? {
|
|
3018
3018
|
exposure: 0,
|
|
3019
3019
|
contrast: 0,
|
|
3020
3020
|
saturation: 100,
|
|
@@ -3119,7 +3119,7 @@ class ci {
|
|
|
3119
3119
|
"screen"
|
|
3120
3120
|
].includes(ft) && (t.globalCompositeOperation = ft);
|
|
3121
3121
|
}
|
|
3122
|
-
const
|
|
3122
|
+
const Rt = t, Vt = e.masks || (i.maskedBy ? [{
|
|
3123
3123
|
maskId: i.maskedBy,
|
|
3124
3124
|
inverted: i.maskInverted === !0,
|
|
3125
3125
|
type: i.maskType || "alpha",
|
|
@@ -3131,9 +3131,9 @@ class ci {
|
|
|
3131
3131
|
const me = Vt.filter((ft) => ft.isVisible !== !1 && o.has(ft.maskId));
|
|
3132
3132
|
if (me.length > 0) {
|
|
3133
3133
|
const ft = me[0], pt = o.get(ft.maskId), at = this.objectStates.get(pt.id);
|
|
3134
|
-
at && at.visible !== !1 && (ie = !0, (!this.maskBuffer || this.maskBuffer.width !== this.canvasWidth || this.maskBuffer.height !== this.canvasHeight) && (this.maskBuffer = document.createElement("canvas"), this.maskBuffer.width = this.canvasWidth, this.maskBuffer.height = this.canvasHeight, this.maskCtx = this.maskBuffer.getContext("2d", { willReadFrequently: !0 }), this.maskCtx && (this.maskCtx.imageSmoothingEnabled = !0, this.maskCtx.imageSmoothingQuality = "high")), this.maskCtx.setTransform(1, 0, 0, 1, 0, 0), this.maskCtx.globalCompositeOperation = "source-over", this.maskCtx.globalAlpha = 1, this.maskCtx.filter = "none", this.maskCtx.clearRect(0, 0, this.maskBuffer.width, this.maskBuffer.height), this.rootTransform && this.maskCtx.setTransform(this.rootTransform), i.parentId && this.applyAbsoluteTransform(this.maskCtx, i.parentId, o), this.maskCtx.save(), this.maskCtx.globalAlpha = 1, t = this.maskCtx, t.filter =
|
|
3134
|
+
at && at.visible !== !1 && (ie = !0, (!this.maskBuffer || this.maskBuffer.width !== this.canvasWidth || this.maskBuffer.height !== this.canvasHeight) && (this.maskBuffer = document.createElement("canvas"), this.maskBuffer.width = this.canvasWidth, this.maskBuffer.height = this.canvasHeight, this.maskCtx = this.maskBuffer.getContext("2d", { willReadFrequently: !0 }), this.maskCtx && (this.maskCtx.imageSmoothingEnabled = !0, this.maskCtx.imageSmoothingQuality = "high")), this.maskCtx.setTransform(1, 0, 0, 1, 0, 0), this.maskCtx.globalCompositeOperation = "source-over", this.maskCtx.globalAlpha = 1, this.maskCtx.filter = "none", this.maskCtx.clearRect(0, 0, this.maskBuffer.width, this.maskBuffer.height), this.rootTransform && this.maskCtx.setTransform(this.rootTransform), i.parentId && this.applyAbsoluteTransform(this.maskCtx, i.parentId, o), this.maskCtx.save(), this.maskCtx.globalAlpha = 1, t = this.maskCtx, t.filter = Rt.filter);
|
|
3135
3135
|
}
|
|
3136
|
-
t.translate(Math.round(tt), Math.round(
|
|
3136
|
+
t.translate(Math.round(tt), Math.round(O)), t.rotate(R * Math.PI / 180);
|
|
3137
3137
|
const ye = e.skew_x || 0, Ut = e.skew_y || 0;
|
|
3138
3138
|
if (ye !== 0 || Ut !== 0) {
|
|
3139
3139
|
const ft = Math.tan(ye * Math.PI / 180), pt = Math.tan(Ut * Math.PI / 180);
|
|
@@ -3162,7 +3162,8 @@ class ci {
|
|
|
3162
3162
|
}
|
|
3163
3163
|
const Pt = t.getTransform(), xt = Math.sqrt(Pt.a * Pt.a + Pt.b * Pt.b) || 1;
|
|
3164
3164
|
t.shadowColor = Z, t.shadowBlur = nt * xt, t.shadowOffsetX = (se.offsetX || 0) * xt, t.shadowOffsetY = (se.offsetY || 0) * xt;
|
|
3165
|
-
}
|
|
3165
|
+
} else
|
|
3166
|
+
t.shadowColor = "transparent", t.shadowBlur = 0, t.shadowOffsetX = 0, t.shadowOffsetY = 0;
|
|
3166
3167
|
const jt = i.liquidFill || ((N = i.style) == null ? void 0 : N.liquidFill);
|
|
3167
3168
|
if (jt && jt.enabled) {
|
|
3168
3169
|
t.save();
|
|
@@ -3298,9 +3299,9 @@ class ci {
|
|
|
3298
3299
|
$.match(/\bstroke-linecap\s*=\s*["']/i) ? $ = $.replace(/\bstroke-linecap\s*=\s*["'][^"']*["']/gi, `stroke-linecap="${Ie}"`) : $ = $.replace(/<(path|circle|rect|ellipse|polygon|polyline)/gi, `<$1 stroke-linecap="${Ie}"`), $ = $.replace(/stroke-linecap\s*:\s*[^;"')]+/gi, `stroke-linecap:${Ie}`);
|
|
3299
3300
|
const Le = B.lineJoin || "round";
|
|
3300
3301
|
$.match(/\bstroke-linejoin\s*=\s*["']/i) ? $ = $.replace(/\bstroke-linejoin\s*=\s*["'][^"']*["']/gi, `stroke-linejoin="${Le}"`) : $ = $.replace(/<(path|circle|rect|ellipse|polygon|polyline)/gi, `<$1 stroke-linejoin="${Le}"`), $ = $.replace(/stroke-linejoin\s*:\s*[^;"')]+/gi, `stroke-linejoin:${Le}`);
|
|
3301
|
-
const
|
|
3302
|
+
const Oe = B.trimStart ?? 0, Re = B.trimEnd ?? 1, Fe = B.trimOffset ?? 0, $e = B.dashOffset ?? 0, Ye = Oe !== 0 || Re !== 1 || Fe !== 0 || $e !== 0;
|
|
3302
3303
|
if (Ye) {
|
|
3303
|
-
const zt = Math.max(0, Math.min(1,
|
|
3304
|
+
const zt = Math.max(0, Math.min(1, Oe)), oe = Math.max(0, Math.min(1, Re));
|
|
3304
3305
|
this.frameCount % 600 === 0 && this.debugLog(`SVG Trim - Object: ${i.name || i.id}, Start: ${zt}, End: ${oe}`);
|
|
3305
3306
|
const we = (vt + Yt) * 2, Be = (Fe % 1 + 1) % 1, We = ($e % 1 + 1) % 1;
|
|
3306
3307
|
let de = "", ce = 0;
|
|
@@ -3318,7 +3319,7 @@ class ci {
|
|
|
3318
3319
|
if (!/\bstroke\s*=\s*["']/i.test(ft) && !new RegExp("(?<![a-z-])stroke\\s*:", "i").test(ft)) {
|
|
3319
3320
|
let zt = "", oe = "";
|
|
3320
3321
|
if (Ye) {
|
|
3321
|
-
const de = s.width || a || 100, ce = s.height || r || 100, fe = (de + ce) * 2, ke = Math.max(0, Math.min(1,
|
|
3322
|
+
const de = s.width || a || 100, ce = s.height || r || 100, fe = (de + ce) * 2, ke = Math.max(0, Math.min(1, Oe)), Xe = Math.max(0, Math.min(1, Re)), Ve = (Fe % 1 + 1) % 1, Ne = ($e % 1 + 1) % 1;
|
|
3322
3323
|
if (ke >= Xe)
|
|
3323
3324
|
zt = ` stroke-dasharray="0 ${fe}"`, oe = ' stroke-dashoffset="0"';
|
|
3324
3325
|
else {
|
|
@@ -3480,9 +3481,9 @@ class ci {
|
|
|
3480
3481
|
this.applyPath(this.maskCtx, nt.geometry, ut, ct, Ct), this.maskCtx.fillStyle = "#ffffff", this.maskCtx.fill();
|
|
3481
3482
|
this.maskCtx.restore();
|
|
3482
3483
|
}
|
|
3483
|
-
}),
|
|
3484
|
+
}), Rt.save(), Rt.setTransform(1, 0, 0, 1, 0, 0);
|
|
3484
3485
|
const at = i.maskBlendMode || i.blendMode;
|
|
3485
|
-
at && at !== "Normal" && (
|
|
3486
|
+
at && at !== "Normal" && (Rt.globalCompositeOperation = at.toLowerCase()), Rt.drawImage(this.maskBuffer, 0, 0), Rt.restore(), Rt.restore();
|
|
3486
3487
|
} else
|
|
3487
3488
|
t.restore();
|
|
3488
3489
|
}
|
|
@@ -3497,8 +3498,8 @@ class ci {
|
|
|
3497
3498
|
if (o.svgPath) {
|
|
3498
3499
|
const et = o.svgPath;
|
|
3499
3500
|
t.save();
|
|
3500
|
-
const mt = ((yt = e == null ? void 0 : e.fill) == null ? void 0 : yt.color) || "#000000",
|
|
3501
|
-
t.fillStyle = mt, t.globalAlpha *=
|
|
3501
|
+
const mt = ((yt = e == null ? void 0 : e.fill) == null ? void 0 : yt.color) || "#000000", Ot = ((bt = e == null ? void 0 : e.fill) == null ? void 0 : bt.opacity) !== void 0 ? (gt = e == null ? void 0 : e.fill) == null ? void 0 : gt.opacity : 1;
|
|
3502
|
+
t.fillStyle = mt, t.globalAlpha *= Ot;
|
|
3502
3503
|
const _t = new Path2D(et);
|
|
3503
3504
|
t.fill(_t), t.restore();
|
|
3504
3505
|
return;
|
|
@@ -3558,39 +3559,39 @@ class ci {
|
|
|
3558
3559
|
let j = G.height, X = n, tt = a;
|
|
3559
3560
|
if (X === 0 || tt === 0 || X >= 1e5) {
|
|
3560
3561
|
let et = 0, mt = 0;
|
|
3561
|
-
const
|
|
3562
|
+
const Ot = G.fullText || c;
|
|
3562
3563
|
(N || []).forEach((_t) => {
|
|
3563
3564
|
const dt = _t.text || "", Ft = t.measureText(dt).width + (dt.length > 0 ? (dt.length - 1) * T : 0);
|
|
3564
|
-
Ft > et && (et = Ft), mt += dt.length, mt <
|
|
3565
|
-
` ||
|
|
3565
|
+
Ft > et && (et = Ft), mt += dt.length, mt < Ot.length && (Ot[mt] === `
|
|
3566
|
+
` || Ot[mt] === "\r") && (mt++, Ot[mt - 1] === "\r" && Ot[mt] === `
|
|
3566
3567
|
` && mt++);
|
|
3567
3568
|
}), (X === 0 || X >= 1e5) && (X = et), tt === 0 && (tt = j || 0);
|
|
3568
3569
|
}
|
|
3569
|
-
let
|
|
3570
|
-
a > 0 && a > j && (I === "top" ?
|
|
3571
|
-
let
|
|
3570
|
+
let O = -j / 2;
|
|
3571
|
+
a > 0 && a > j && (I === "top" ? O = -a / 2 : I === "middle" || I === "center" ? O = -j / 2 : I === "bottom" && (O = a / 2 - j)), O += F;
|
|
3572
|
+
let R = null, D = 0;
|
|
3572
3573
|
if (o.pathId && this.artboard) {
|
|
3573
3574
|
const et = this.artboard.objects.find((mt) => mt.id === o.pathId);
|
|
3574
3575
|
if (et && et.type === "Shape" && ((Xt = et.geometry) == null ? void 0 : Xt.type) === "Path") {
|
|
3575
|
-
const mt = this.objectStates.get(et.id),
|
|
3576
|
-
|
|
3576
|
+
const mt = this.objectStates.get(et.id), Ot = mt != null && mt.geometry ? this.deepMerge(et.geometry, mt.geometry) : et.geometry, _t = (mt == null ? void 0 : mt.scale_x) !== void 0 ? (et.width || 0) * mt.scale_x : et.width || 0, dt = (mt == null ? void 0 : mt.scale_y) !== void 0 ? (et.height || 0) * mt.scale_y : et.height || 0;
|
|
3577
|
+
R = { geo: Ot, obj: et, w: _t, h: dt }, D = this.getPerimeter(Ot, _t, dt);
|
|
3577
3578
|
}
|
|
3578
3579
|
}
|
|
3579
3580
|
const q = (et, mt) => {
|
|
3580
3581
|
var _t, dt;
|
|
3581
3582
|
if (T === 0 && (!o.enableSegments || !((_t = o.segments) != null && _t.length))) return t.measureText(et).width;
|
|
3582
|
-
let
|
|
3583
|
+
let Ot = 0;
|
|
3583
3584
|
for (let Ft = 0; Ft < et.length; Ft++) {
|
|
3584
3585
|
const Dt = mt + Ft;
|
|
3585
3586
|
let $t = 0;
|
|
3586
3587
|
if (o.enableSegments === !0 && ((dt = o.segments) == null ? void 0 : dt.length) > 0) {
|
|
3587
|
-
let
|
|
3588
|
+
let Rt = 0, Vt = null;
|
|
3588
3589
|
for (const ie of o.segments) {
|
|
3589
|
-
if (Dt <
|
|
3590
|
+
if (Dt < Rt + (ie.text || "").length) {
|
|
3590
3591
|
Vt = ie;
|
|
3591
3592
|
break;
|
|
3592
3593
|
}
|
|
3593
|
-
|
|
3594
|
+
Rt += (ie.text || "").length;
|
|
3594
3595
|
}
|
|
3595
3596
|
if (Vt) {
|
|
3596
3597
|
t.save();
|
|
@@ -3601,16 +3602,16 @@ class ci {
|
|
|
3601
3602
|
$t = t.measureText(et[Ft]).width;
|
|
3602
3603
|
} else
|
|
3603
3604
|
$t = t.measureText(et[Ft]).width;
|
|
3604
|
-
|
|
3605
|
+
Ot += $t + T;
|
|
3605
3606
|
}
|
|
3606
|
-
return
|
|
3607
|
-
}, ot = (et, mt,
|
|
3607
|
+
return Ot - (et.length > 0 ? T : 0);
|
|
3608
|
+
}, ot = (et, mt, Ot, _t, dt) => {
|
|
3608
3609
|
var me, ye;
|
|
3609
3610
|
const Dt = (dt === 0 || c[dt - 1] === `
|
|
3610
3611
|
` || c[dt - 1] === "\r") && o.paragraphIndent ? o.paragraphIndent : 0, $t = (!r || f) && (i.behaviors || []).some(
|
|
3611
3612
|
(Ut) => Ut.enabled && (Ut.type.toString().includes("Text") || ["Typewriter", "Scramble", "Wave", "Bounce", "GlitchText", "Reveal3D", "RevealSlide", "RevealBlur"].includes(Ut.type))
|
|
3612
|
-
),
|
|
3613
|
-
if (
|
|
3613
|
+
), Rt = !o.pathId && !$t && (o.enableSegments !== !0 || !o.segments || o.segments.length === 0), Vt = o.baselineShift || 0, ie = Ot + Vt;
|
|
3614
|
+
if (Rt)
|
|
3614
3615
|
t.font = M, _t ? t.strokeText(et, mt + Dt, ie) : t.fillText(et, mt + Dt, ie);
|
|
3615
3616
|
else {
|
|
3616
3617
|
const Ut = q(et, dt);
|
|
@@ -3631,7 +3632,7 @@ class ci {
|
|
|
3631
3632
|
}
|
|
3632
3633
|
}
|
|
3633
3634
|
let se = o.pathOffset || 0;
|
|
3634
|
-
o.pathId && D > 0 &&
|
|
3635
|
+
o.pathId && D > 0 && R && (k === "center" ? se += D / 2 - Ut / 2 : k === "right" && (se += D - Ut));
|
|
3635
3636
|
let jt = Se;
|
|
3636
3637
|
const ft = r && !f ? [] : ((me = i.behaviors) == null ? void 0 : me.filter(
|
|
3637
3638
|
(pt) => [
|
|
@@ -3683,7 +3684,7 @@ class ci {
|
|
|
3683
3684
|
V < 1 && (Z -= Math.abs(Math.sin(V * Math.PI)) * (ct.height || 50) * Ct);
|
|
3684
3685
|
} else if (ut.type === U.TextTrail) {
|
|
3685
3686
|
const V = this.pointerHistory[Math.max(0, this.pointerHistory.length - 1 - B * (ct.delay || 5))];
|
|
3686
|
-
V && (nt += (V.x - (s.x + jt)) * Ct * 0.2, Z += (V.y - (s.y +
|
|
3687
|
+
V && (nt += (V.x - (s.x + jt)) * Ct * 0.2, Z += (V.y - (s.y + Ot + Z)) * Ct * 0.2);
|
|
3687
3688
|
} else if (ut.type === U.Reveal3D) {
|
|
3688
3689
|
const V = Math.max(0, Math.min(1, this.currentTime * (ct.speed || 1) - B * (ct.stagger || 0.1)));
|
|
3689
3690
|
Pt *= V, xt *= V, At = V;
|
|
@@ -3735,7 +3736,7 @@ class ci {
|
|
|
3735
3736
|
} else if (ut.type === U.TextMagnet) {
|
|
3736
3737
|
const V = this.pointerHistory[this.pointerHistory.length - 1];
|
|
3737
3738
|
if (V) {
|
|
3738
|
-
const st = V.x - (s.x + jt), it = V.y - (s.y +
|
|
3739
|
+
const st = V.x - (s.x + jt), it = V.y - (s.y + Ot);
|
|
3739
3740
|
kt = Math.atan2(it, st);
|
|
3740
3741
|
}
|
|
3741
3742
|
} else if (ut.type === U.TextPerspective) {
|
|
@@ -3790,11 +3791,11 @@ class ci {
|
|
|
3790
3791
|
const te = t.globalAlpha;
|
|
3791
3792
|
t.globalAlpha *= At, t.save();
|
|
3792
3793
|
const Jt = t.measureText(Mt).width;
|
|
3793
|
-
if (
|
|
3794
|
-
const ut = jt - Se + Jt / 2, Ct = (se + ut) / D, rt = this.getPointOnPath(
|
|
3794
|
+
if (R && D > 0) {
|
|
3795
|
+
const ut = jt - Se + Jt / 2, Ct = (se + ut) / D, rt = this.getPointOnPath(R.geo, R.w, R.h, Math.abs(Ct % 1)), V = rt.angle, st = Ot + Z + (o.pathOffsetY || 0), it = o.pathSide === "right" ? -1 : 1, vt = Math.cos(V + Math.PI / 2) * st * it, Yt = Math.sin(V + Math.PI / 2) * st * it;
|
|
3795
3796
|
t.translate(rt.x + vt + nt, rt.y + Yt), t.rotate(V + kt + (it === -1 ? Math.PI : 0));
|
|
3796
3797
|
} else
|
|
3797
|
-
t.translate(jt + nt + Jt / 2,
|
|
3798
|
+
t.translate(jt + nt + Jt / 2, Ot + Z), kt !== 0 && t.rotate(kt);
|
|
3798
3799
|
if (t.scale(Pt, xt), $ && !r && !f) {
|
|
3799
3800
|
const ut = this.createCanvasFill(t, $, X, tt);
|
|
3800
3801
|
t.fillStyle = ut || $.color || "#000000";
|
|
@@ -3812,17 +3813,17 @@ class ci {
|
|
|
3812
3813
|
}
|
|
3813
3814
|
};
|
|
3814
3815
|
if (r) {
|
|
3815
|
-
let et = 0, mt =
|
|
3816
|
-
(N || []).forEach((
|
|
3817
|
-
const _t =
|
|
3816
|
+
let et = 0, mt = O;
|
|
3817
|
+
(N || []).forEach((Ot) => {
|
|
3818
|
+
const _t = Ot.text || "", dt = c.indexOf(_t, et);
|
|
3818
3819
|
dt !== -1 && (et = dt);
|
|
3819
3820
|
let Ft = -X / 2;
|
|
3820
3821
|
k === "center" ? Ft = 0 : k === "right" && (Ft = X / 2), ot(_t, Ft, mt, !1, et), et += _t.length, mt += A;
|
|
3821
3822
|
});
|
|
3822
3823
|
} else if (f) {
|
|
3823
|
-
let et = 0, mt =
|
|
3824
|
-
(N || []).forEach((
|
|
3825
|
-
const _t =
|
|
3824
|
+
let et = 0, mt = O;
|
|
3825
|
+
(N || []).forEach((Ot) => {
|
|
3826
|
+
const _t = Ot.text || "";
|
|
3826
3827
|
let dt = -X / 2;
|
|
3827
3828
|
k === "center" ? dt = 0 : k === "right" && (dt = X / 2), ot(_t, dt, mt, !1, et), et += _t.length, et < c.length && (c[et] === `
|
|
3828
3829
|
` || c[et] === "\r") && (et++, c[et - 1] === "\r" && c[et] === `
|
|
@@ -3830,18 +3831,18 @@ class ci {
|
|
|
3830
3831
|
});
|
|
3831
3832
|
} else {
|
|
3832
3833
|
if (e.fill) {
|
|
3833
|
-
const mt = t.globalAlpha,
|
|
3834
|
-
t.fillStyle =
|
|
3834
|
+
const mt = t.globalAlpha, Ot = this.createCanvasFill(t, e.fill, X, tt);
|
|
3835
|
+
t.fillStyle = Ot || e.fill.color || "#000000", t.globalAlpha = mt * this.normalizeOpacity(e.fill.opacity ?? 100);
|
|
3835
3836
|
const _t = G.fullText || (o.enableSegments ? (o.segments || []).map((Dt) => {
|
|
3836
3837
|
let $t = Dt.text || "";
|
|
3837
|
-
const
|
|
3838
|
-
return
|
|
3838
|
+
const Rt = Dt.textCase || o.textCase || "none";
|
|
3839
|
+
return Rt === "uppercase" ? $t.toUpperCase() : Rt === "lowercase" ? $t.toLowerCase() : Rt === "capitalize" ? $t.replace(/\b\w/g, (Vt) => Vt.toUpperCase()) : $t;
|
|
3839
3840
|
}).join("") : c);
|
|
3840
|
-
let dt = 0, Ft =
|
|
3841
|
+
let dt = 0, Ft = O;
|
|
3841
3842
|
(N || []).forEach((Dt) => {
|
|
3842
3843
|
const $t = Dt.text || "";
|
|
3843
|
-
let
|
|
3844
|
-
k === "center" ?
|
|
3844
|
+
let Rt = -X / 2;
|
|
3845
|
+
k === "center" ? Rt = 0 : k === "right" && (Rt = X / 2), ot($t, Rt, Ft, !1, dt), dt += $t.length, Ft += A, dt < _t.length && (_t[dt] === `
|
|
3845
3846
|
` || _t[dt] === "\r") && (_ > 0 && (Ft += _), dt++, _t[dt - 1] === "\r" && _t[dt] === `
|
|
3846
3847
|
` && dt++);
|
|
3847
3848
|
}), t.globalAlpha = mt;
|
|
@@ -3849,25 +3850,25 @@ class ci {
|
|
|
3849
3850
|
const et = o.paragraphRule;
|
|
3850
3851
|
if (et && (((le = et.top) == null ? void 0 : le.width) > 0 || ((he = et.bottom) == null ? void 0 : he.width) > 0)) {
|
|
3851
3852
|
let mt = 0;
|
|
3852
|
-
(N || []).forEach((
|
|
3853
|
+
(N || []).forEach((Ot, _t) => {
|
|
3853
3854
|
var Dt, $t;
|
|
3854
3855
|
const Ft = mt === 0 || mt < c.length && (c[mt] === `
|
|
3855
3856
|
` || c[mt] === "\r");
|
|
3856
3857
|
if (Ft && _t > 0 && mt++, Ft) {
|
|
3857
3858
|
if (((Dt = et.top) == null ? void 0 : Dt.width) > 0) {
|
|
3858
|
-
const
|
|
3859
|
+
const Rt = O + _t * A - et.top.offset;
|
|
3859
3860
|
t.strokeStyle = et.top.color || "#000000", t.lineWidth = et.top.width, t.beginPath();
|
|
3860
3861
|
const Vt = -n / 2 + A * 0.2;
|
|
3861
|
-
t.moveTo(Vt,
|
|
3862
|
+
t.moveTo(Vt, Rt), t.lineTo(n / 2 - A * 0.2, Rt), t.stroke();
|
|
3862
3863
|
}
|
|
3863
3864
|
if ((($t = et.bottom) == null ? void 0 : $t.width) > 0) {
|
|
3864
|
-
const
|
|
3865
|
+
const Rt = O + (_t + 1) * A - et.bottom.offset;
|
|
3865
3866
|
t.strokeStyle = et.bottom.color || "#000000", t.lineWidth = et.bottom.width, t.beginPath();
|
|
3866
3867
|
const Vt = -n / 2 + A * 0.2;
|
|
3867
|
-
t.moveTo(Vt,
|
|
3868
|
+
t.moveTo(Vt, Rt), t.lineTo(n / 2 - A * 0.2, Rt), t.stroke();
|
|
3868
3869
|
}
|
|
3869
3870
|
}
|
|
3870
|
-
mt += (
|
|
3871
|
+
mt += (Ot.text || "").length;
|
|
3871
3872
|
});
|
|
3872
3873
|
}
|
|
3873
3874
|
if (e.stroke && e.stroke.width > 0) {
|
|
@@ -3875,12 +3876,12 @@ class ci {
|
|
|
3875
3876
|
e.fill && e.fill.type !== "None" && e.fill.isEnabled !== !1 && e.fill.opacity !== 0 && e.fill.color !== "transparent" && e.fill.color !== "rgba(0,0,0,0)" && (t.shadowColor = "transparent", t.shadowBlur = 0, t.shadowOffsetX = 0, t.shadowOffsetY = 0), t.strokeStyle = e.stroke.color;
|
|
3876
3877
|
let _t = 1;
|
|
3877
3878
|
if (this.rootTransform) {
|
|
3878
|
-
const Dt = t.getTransform(), $t = Math.sqrt(Dt.a * Dt.a + Dt.b * Dt.b) || 1,
|
|
3879
|
+
const Dt = t.getTransform(), $t = Math.sqrt(Dt.a * Dt.a + Dt.b * Dt.b) || 1, Rt = this.rootTransform, Vt = Math.sqrt(Rt.a * Rt.a + Rt.b * Rt.b) || 1;
|
|
3879
3880
|
_t = $t / Vt;
|
|
3880
3881
|
} else
|
|
3881
3882
|
_t = (Math.abs(h) + Math.abs(l)) / 2 || 1;
|
|
3882
3883
|
t.lineWidth = (e.stroke.width || 1) / (_t || 1), t.globalAlpha = mt * this.normalizeOpacity(e.stroke.opacity ?? 100);
|
|
3883
|
-
let dt = 0, Ft =
|
|
3884
|
+
let dt = 0, Ft = O;
|
|
3884
3885
|
(N || []).forEach((Dt) => {
|
|
3885
3886
|
let $t = -X / 2;
|
|
3886
3887
|
k === "center" ? $t = 0 : k === "right" && ($t = X / 2), ot(Dt.text, $t, Ft, !0, dt), dt += (Dt.text || "").length, Ft += A, dt < c.length && (c[dt] === `
|
|
@@ -4343,8 +4344,8 @@ class ci {
|
|
|
4343
4344
|
}
|
|
4344
4345
|
}
|
|
4345
4346
|
renderInputBox(t, i) {
|
|
4346
|
-
var
|
|
4347
|
-
const o = this.objectStates.get(i.id), e = (o == null ? void 0 : o.options) || i.options || {}, s = ((
|
|
4347
|
+
var O, R;
|
|
4348
|
+
const o = this.objectStates.get(i.id), e = (o == null ? void 0 : o.options) || i.options || {}, s = ((O = i.geometry) == null ? void 0 : O.width) || 250, n = ((R = i.geometry) == null ? void 0 : R.height) || 45, a = this.focusedId === i.id, r = this.lastHoveredObjectId === i.id, f = e.previewState || "default", h = f !== "default" ? f : a ? "focused" : r ? "hovered" : "default", l = e.label || { visible: !0, text: "Label" }, p = e.helperText || { visible: !1, text: "Helper text" }, c = e.leftIcon || { visible: !1 }, d = e.rightIcon || { visible: !1 }, u = e.multiline === !0, v = e.corner_radius ?? 8, b = e.corners || { tl: v, tr: v, bl: v, br: v }, m = [b.tl, b.tr, b.br, b.bl];
|
|
4348
4349
|
let y = e.backgroundColor || "rgba(31, 41, 55, 1)", S = e.borderColor || "rgba(55, 65, 81, 1)", C = e.borderWidth ?? 1.5, w = e.color || "#ffffff", M = e.placeholderColor || "rgba(156, 163, 175, 1)", I = e.fontSize || 14;
|
|
4349
4350
|
const k = `${h}Style`, T = e[k];
|
|
4350
4351
|
T ? (T.backgroundColor !== void 0 && (y = T.backgroundColor), T.borderColor !== void 0 && (S = T.borderColor), T.borderWidth !== void 0 && (C = T.borderWidth), T.color !== void 0 && (w = T.color), T.placeholderColor !== void 0 && (M = T.placeholderColor), T.fontSize !== void 0 && (I = T.fontSize)) : h === "focused" ? (S = e.focusBorderColor || "rgba(59, 130, 246, 1)", C = Math.max(C, 2)) : h === "hovered" || h === "hover" ? (S = e.hoverBorderColor || S, y = e.hoverBackgroundColor || y) : h === "disabled" ? (y = e.disabledBackgroundColor || "rgba(31, 41, 55, 0.6)", S = e.disabledBorderColor || "rgba(55, 65, 81, 0.4)") : h === "error" && (S = "rgba(239, 68, 68, 1)", C = Math.max(C, 2)), t.beginPath(), this.drawRoundRect(t, -s / 2, -n / 2, s, n, m);
|
|
@@ -4407,12 +4408,12 @@ class ci {
|
|
|
4407
4408
|
}
|
|
4408
4409
|
}
|
|
4409
4410
|
renderSlider(t, i) {
|
|
4410
|
-
const o = this.objectStates.get(i.id), e = (o == null ? void 0 : o.geometry) || i.geometry, s = (o == null ? void 0 : o.options) || i.options || {}, n = e.width || 200, a = s.value ?? 50, r = s.min ?? 0, h = (s.max ?? 100) - r, l = h === 0 ? 0 : (a - r) / h, p = s.trackHeight || 4, c = s.trackRoundedness ?? 2, d = s.trackShape ?? "Rectangle", u = s.trackPath || "", v = s.accentColor || "#3b82f6", b = s.inactiveColor || "#374151", m = s.thumbShape || "Ellipse", y = s.thumbWidth ?? 16, S = s.thumbHeight ?? 16, C = s.thumbRoundedness ?? 0, w = s.thumbColor || "#ffffff", M = s.thumbPath || "", I = s.thumbIcon || "", k = s.showValueTooltip ?? !1, T = s.tooltipBgColor || "#333333", L = s.tooltipColor || "#ffffff", P = s.tooltipOffsetX ?? 0, _ = s.tooltipOffsetY ?? -25, E = (X, tt,
|
|
4411
|
+
const o = this.objectStates.get(i.id), e = (o == null ? void 0 : o.geometry) || i.geometry, s = (o == null ? void 0 : o.options) || i.options || {}, n = e.width || 200, a = s.value ?? 50, r = s.min ?? 0, h = (s.max ?? 100) - r, l = h === 0 ? 0 : (a - r) / h, p = s.trackHeight || 4, c = s.trackRoundedness ?? 2, d = s.trackShape ?? "Rectangle", u = s.trackPath || "", v = s.accentColor || "#3b82f6", b = s.inactiveColor || "#374151", m = s.thumbShape || "Ellipse", y = s.thumbWidth ?? 16, S = s.thumbHeight ?? 16, C = s.thumbRoundedness ?? 0, w = s.thumbColor || "#ffffff", M = s.thumbPath || "", I = s.thumbIcon || "", k = s.showValueTooltip ?? !1, T = s.tooltipBgColor || "#333333", L = s.tooltipColor || "#ffffff", P = s.tooltipOffsetX ?? 0, _ = s.tooltipOffsetY ?? -25, E = (X, tt, O, R, D, q, ot) => {
|
|
4411
4412
|
if ((X === "Custom" || X === "Icon") && ot)
|
|
4412
4413
|
try {
|
|
4413
4414
|
const yt = new Path2D(ot);
|
|
4414
|
-
if (t.save(), t.translate(tt,
|
|
4415
|
-
const bt = Math.min(
|
|
4415
|
+
if (t.save(), t.translate(tt, O), X === "Icon") {
|
|
4416
|
+
const bt = Math.min(R, D) / 24;
|
|
4416
4417
|
t.scale(bt, bt), t.translate(-12, -12);
|
|
4417
4418
|
}
|
|
4418
4419
|
t.fill(yt), t.restore();
|
|
@@ -4421,28 +4422,28 @@ class ci {
|
|
|
4421
4422
|
console.error("Error drawing slider shape in engine:", yt);
|
|
4422
4423
|
}
|
|
4423
4424
|
if (t.beginPath(), X === "Ellipse")
|
|
4424
|
-
t.ellipse(tt,
|
|
4425
|
+
t.ellipse(tt, O, R / 2, D / 2, 0, 0, Math.PI * 2);
|
|
4425
4426
|
else if (X === "Rectangle")
|
|
4426
|
-
this.drawRoundRect(t, tt -
|
|
4427
|
+
this.drawRoundRect(t, tt - R / 2, O - D / 2, R, D, q);
|
|
4427
4428
|
else if (X === "Triangle")
|
|
4428
|
-
t.moveTo(tt,
|
|
4429
|
+
t.moveTo(tt, O - D / 2), t.lineTo(tt + R / 2, O + D / 2), t.lineTo(tt - R / 2, O + D / 2), t.closePath();
|
|
4429
4430
|
else if (X === "Diamond")
|
|
4430
|
-
t.moveTo(tt,
|
|
4431
|
+
t.moveTo(tt, O - D / 2), t.lineTo(tt + R / 2, O), t.lineTo(tt, O + D / 2), t.lineTo(tt - R / 2, O), t.closePath();
|
|
4431
4432
|
else if (X === "Polygon") {
|
|
4432
|
-
const yt = i.geometry.sides || 3, bt = i.geometry.radius || Math.min(
|
|
4433
|
+
const yt = i.geometry.sides || 3, bt = i.geometry.radius || Math.min(R, D) / 2;
|
|
4433
4434
|
for (let gt = 0; gt < yt; gt++) {
|
|
4434
|
-
const Et = gt * 2 * Math.PI / yt - Math.PI / 2, It = tt + bt * Math.cos(Et), St =
|
|
4435
|
+
const Et = gt * 2 * Math.PI / yt - Math.PI / 2, It = tt + bt * Math.cos(Et), St = O + bt * Math.sin(Et);
|
|
4435
4436
|
gt === 0 ? t.moveTo(It, St) : t.lineTo(It, St);
|
|
4436
4437
|
}
|
|
4437
4438
|
t.closePath();
|
|
4438
4439
|
} else if (X === "Star") {
|
|
4439
|
-
const bt = Math.min(
|
|
4440
|
+
const bt = Math.min(R, D) / 2, gt = bt / 2;
|
|
4440
4441
|
for (let Et = 0; Et < 10; Et++) {
|
|
4441
4442
|
const It = Et % 2 === 0 ? bt : gt, St = Et * Math.PI / 5 - Math.PI / 2;
|
|
4442
|
-
t.lineTo(tt + It * Math.cos(St),
|
|
4443
|
+
t.lineTo(tt + It * Math.cos(St), O + It * Math.sin(St));
|
|
4443
4444
|
}
|
|
4444
4445
|
t.closePath();
|
|
4445
|
-
} else X === "Line" && (t.moveTo(tt -
|
|
4446
|
+
} else X === "Line" && (t.moveTo(tt - R / 2, O), t.lineTo(tt + R / 2, O));
|
|
4446
4447
|
t.fill();
|
|
4447
4448
|
}, A = this.createCanvasFill(t, b, n, p);
|
|
4448
4449
|
A && (t.fillStyle = A, t.strokeStyle = A), d === "Line" ? (t.lineWidth = p, t.beginPath(), t.moveTo(-n / 2, 0), t.lineTo(n / 2, 0), t.stroke()) : E(d, 0, 0, n, p, c, u);
|
|
@@ -4459,20 +4460,20 @@ class ci {
|
|
|
4459
4460
|
t.save(), t.translate(z + P, _);
|
|
4460
4461
|
const X = Math.round(a).toString();
|
|
4461
4462
|
t.font = "10px Inter, sans-serif";
|
|
4462
|
-
const tt = t.measureText(X),
|
|
4463
|
+
const tt = t.measureText(X), O = 6, R = 4, D = tt.width + O * 2, q = 14 + R;
|
|
4463
4464
|
t.beginPath(), this.drawRoundRect(t, -D / 2, -q / 2, D, q, 4), t.fillStyle = T, t.fill(), t.fillStyle = L, t.textAlign = "center", t.textBaseline = "middle", t.fillText(X, 0, 0), t.restore();
|
|
4464
4465
|
}
|
|
4465
4466
|
const x = s.label || {}, F = s.helperText || {}, j = s.fontFamily || "Inter";
|
|
4466
4467
|
if (x.visible !== !1) {
|
|
4467
|
-
const X = x.text || "Label", tt = x.fontSize || 12,
|
|
4468
|
-
t.font = `600 ${tt}px "${j}", sans-serif`, t.fillStyle =
|
|
4469
|
-
const D = -(n / 2), q = -(p / 2) -
|
|
4468
|
+
const X = x.text || "Label", tt = x.fontSize || 12, O = x.color || "rgba(156, 163, 175, 1)", R = x.offset ?? 8;
|
|
4469
|
+
t.font = `600 ${tt}px "${j}", sans-serif`, t.fillStyle = O, t.textAlign = "left", t.textBaseline = "bottom";
|
|
4470
|
+
const D = -(n / 2), q = -(p / 2) - R;
|
|
4470
4471
|
t.fillText(X, D, q);
|
|
4471
4472
|
}
|
|
4472
4473
|
if (F.visible === !0) {
|
|
4473
|
-
const X = F.text || "Helper text", tt = F.fontSize || 11,
|
|
4474
|
-
t.font = `400 ${tt}px "${j}", sans-serif`, t.fillStyle =
|
|
4475
|
-
const D = -(n / 2), q = p / 2 +
|
|
4474
|
+
const X = F.text || "Helper text", tt = F.fontSize || 11, O = F.color || "rgba(156, 163, 175, 1)", R = F.offset ?? 6;
|
|
4475
|
+
t.font = `400 ${tt}px "${j}", sans-serif`, t.fillStyle = O, t.textAlign = "left", t.textBaseline = "top";
|
|
4476
|
+
const D = -(n / 2), q = p / 2 + R;
|
|
4476
4477
|
t.fillText(X, D, q);
|
|
4477
4478
|
}
|
|
4478
4479
|
}
|
|
@@ -4518,15 +4519,15 @@ class ci {
|
|
|
4518
4519
|
const F = e.listBorderWidth ?? 1;
|
|
4519
4520
|
F > 0 && (t.shadowColor = "transparent", t.strokeStyle = this.createCanvasFill(t, typeof e.listBorderColor == "string" ? { type: "Solid", color: e.listBorderColor } : e.listBorderColor || { type: "Solid", color: d }, s, Y) || "#e5e7eb", t.lineWidth = F, t.stroke()), t.restore();
|
|
4520
4521
|
const j = e.itemFontSize || M, X = e.itemFontFamily || k;
|
|
4521
|
-
t.font = `${I} ${j}px ${X}`, A.forEach((tt,
|
|
4522
|
-
const
|
|
4522
|
+
t.font = `${I} ${j}px ${X}`, A.forEach((tt, O) => {
|
|
4523
|
+
const R = E + z + O * W;
|
|
4523
4524
|
if (tt === e.selectedOption)
|
|
4524
|
-
t.fillStyle = this.createCanvasFill(t, typeof e.itemSelectedBackgroundColor == "string" ? { type: "Solid", color: e.itemSelectedBackgroundColor } : e.itemSelectedBackgroundColor || { type: "Solid", color: "#f3f4f6" }, s, W) || "#f3f4f6", t.fillRect(a + F,
|
|
4525
|
+
t.fillStyle = this.createCanvasFill(t, typeof e.itemSelectedBackgroundColor == "string" ? { type: "Solid", color: e.itemSelectedBackgroundColor } : e.itemSelectedBackgroundColor || { type: "Solid", color: "#f3f4f6" }, s, W) || "#f3f4f6", t.fillRect(a + F, R, s - F * 2, W), t.fillStyle = e.itemSelectedColor || e.accentColor || u || "#374151";
|
|
4525
4526
|
else if (t.fillStyle = e.listTextColor || u || "#333333", this.activeDropdownId === i.id && this._lastPointerPos) {
|
|
4526
4527
|
const q = this._lastPointerPos.y - (E + z), ot = Math.floor(q / W);
|
|
4527
|
-
|
|
4528
|
+
O === ot && (t.fillStyle = this.createCanvasFill(t, typeof e.itemHoverBackgroundColor == "string" ? { type: "Solid", color: e.itemHoverBackgroundColor } : e.itemHoverBackgroundColor || { type: "Solid", color: "#f9fafb" }, s, W) || "#f9fafb", t.fillRect(a + F, R, s - F * 2, W), t.fillStyle = e.itemHoverColor || u);
|
|
4528
4529
|
}
|
|
4529
|
-
t.fillText(tt, a + m,
|
|
4530
|
+
t.fillText(tt, a + m, R + W / 2);
|
|
4530
4531
|
});
|
|
4531
4532
|
}
|
|
4532
4533
|
t.globalAlpha = v;
|
|
@@ -4559,7 +4560,7 @@ class ci {
|
|
|
4559
4560
|
t.font = `${l.fontWeight || 600} ${d}px "${u}", sans-serif`, t.fillStyle = c, t.textAlign = "center", t.textBaseline = "middle", t.fillText(l.text || "Toggle", 0, 0), t.restore();
|
|
4560
4561
|
}
|
|
4561
4562
|
renderToggle(t, i) {
|
|
4562
|
-
var G, N, J, x, F, j, X, tt,
|
|
4563
|
+
var G, N, J, x, F, j, X, tt, O, R, D, q;
|
|
4563
4564
|
const o = this.objectStates.get(i.id), e = (o == null ? void 0 : o.options) || i.options || {}, s = ((G = i.geometry) == null ? void 0 : G.width) || 52, n = ((N = i.geometry) == null ? void 0 : N.height) || 30, a = -s / 2, r = -n / 2, f = e.checked ?? !1, h = e.cornerRadius ?? e.corner_radius ?? n / 2, l = e.toggleStyle || {}, p = l.backgroundColor || e.activeColor || "#10b981", c = l.borderColor || e.borderColor || "transparent", d = l.borderWidth ?? e.borderWidth ?? 0, u = l.knobColor || e.knobColor || "#ffffff", v = f ? p : e.inactiveColor || "#374151", b = f ? c : e.borderColor || "transparent", m = f ? d : e.borderWidth ?? 0, y = f ? u : e.knobColor || "#ffffff";
|
|
4564
4565
|
e.disabled && (t.globalAlpha *= 0.5), t.beginPath(), this.drawRoundRect(t, a, r, s, n, h);
|
|
4565
4566
|
const S = this.createCanvasFill(t, v, s, n);
|
|
@@ -4578,7 +4579,7 @@ class ci {
|
|
|
4578
4579
|
const ot = e.leftLabel;
|
|
4579
4580
|
t.font = `${ot.fontWeight || 400} ${ot.fontSize || 12}px "${ot.fontFamily || "Inter"}", sans-serif`, t.fillStyle = W, t.textBaseline = "middle", t.textAlign = "right", t.fillText(A, a - (ot.gap || 8), 0), _ = !0;
|
|
4580
4581
|
}
|
|
4581
|
-
const z = (f ? (tt = l.rightLabel) == null ? void 0 : tt.text : null) || ((
|
|
4582
|
+
const z = (f ? (tt = l.rightLabel) == null ? void 0 : tt.text : null) || ((O = e.rightLabel) == null ? void 0 : O.text) || "", Y = (f ? (R = l.rightLabel) == null ? void 0 : R.color : null) || ((D = e.rightLabel) == null ? void 0 : D.color) || "#f3f4f6";
|
|
4582
4583
|
if ((q = e.rightLabel) != null && q.enabled && z) {
|
|
4583
4584
|
const ot = e.rightLabel;
|
|
4584
4585
|
t.font = `${ot.fontWeight || 400} ${ot.fontSize || 12}px "${ot.fontFamily || "Inter"}", sans-serif`, t.fillStyle = Y, t.textBaseline = "middle", t.textAlign = "left", t.fillText(z, a + s + (ot.gap || 8), 0), E = !0;
|
|
@@ -5205,28 +5206,28 @@ class ci {
|
|
|
5205
5206
|
const J = e.listLayout || "linear", x = J === "circular" ? d : h === "vertical" ? s : d, F = J === "circular" || h === "vertical" ? c : n;
|
|
5206
5207
|
let j = 0, X = 0, tt = 0;
|
|
5207
5208
|
if (J === "circular") {
|
|
5208
|
-
const St = l.length || 1, Xt = Math.PI * 2 / St, le = e.circularStartAngle || 0, he = e.circularRadius || 100, et = u * 0.01 + le * Math.PI / 180, mt = N * Xt + et,
|
|
5209
|
-
j =
|
|
5209
|
+
const St = l.length || 1, Xt = Math.PI * 2 / St, le = e.circularStartAngle || 0, he = e.circularRadius || 100, et = u * 0.01 + le * Math.PI / 180, mt = N * Xt + et, Ot = a + s / 2, _t = r + n / 2;
|
|
5210
|
+
j = Ot + Math.cos(mt) * he - x / 2, X = _t + Math.sin(mt) * he - F / 2, tt = mt + (e.itemRotation || 0) * Math.PI / 180;
|
|
5210
5211
|
} else
|
|
5211
5212
|
j = h === "vertical" ? a : _, X = h === "vertical" ? _ : r, tt = (e.itemRotation || 0) * Math.PI / 180;
|
|
5212
|
-
const
|
|
5213
|
-
if (t.save(), tt !== 0 && (t.translate(j + x / 2, X + F / 2), t.rotate(tt), t.translate(-(j + x / 2), -(X + F / 2))),
|
|
5213
|
+
const O = C === N, R = w === N, D = R && e.activeItemShape ? e.activeItemShape : e.itemShape || "rectangle", q = R && e.activeItemShape ? e.activeItemPath : e.itemPath || "", ot = e.itemCornerRadius || 0;
|
|
5214
|
+
if (t.save(), tt !== 0 && (t.translate(j + x / 2, X + F / 2), t.rotate(tt), t.translate(-(j + x / 2), -(X + F / 2))), R) {
|
|
5214
5215
|
const St = this.createCanvasFill(t, m, x, F);
|
|
5215
5216
|
t.fillStyle = St || m;
|
|
5216
5217
|
const Xt = t.globalAlpha;
|
|
5217
5218
|
t.globalAlpha = Xt * 0.8, t.beginPath(), this.drawCustomShape(t, D, q, j, X, x, F, ot) || (t.rect(j, X, x, F), t.fill()), t.globalAlpha = Xt;
|
|
5218
|
-
} else if (
|
|
5219
|
+
} else if (O)
|
|
5219
5220
|
t.fillStyle = b ? "rgba(255, 255, 255, 0.1)" : "rgba(0, 0, 0, 0.05)", t.beginPath(), this.drawCustomShape(t, D, q, j, X, x, F, ot) || (t.rect(j, X, x, F), t.fill());
|
|
5220
5221
|
else if (S !== "transparent") {
|
|
5221
5222
|
const St = this.createCanvasFill(t, S, x, F);
|
|
5222
5223
|
t.fillStyle = St || S, t.beginPath(), this.drawCustomShape(t, D, q, j, X, x, F, ot) || (t.rect(j, X, x, F), t.fill());
|
|
5223
5224
|
}
|
|
5224
|
-
if (
|
|
5225
|
+
if (R || O) {
|
|
5225
5226
|
const St = this.createCanvasFill(t, m, h === "vertical" ? 3 : x, h === "vertical" ? F : 3);
|
|
5226
5227
|
t.fillStyle = St || m, h === "vertical" ? t.fillRect(j, X, 3, F) : t.fillRect(j, X + F - 3, x, 3);
|
|
5227
5228
|
}
|
|
5228
|
-
const yt =
|
|
5229
|
-
t.fillStyle = yt, t.font =
|
|
5229
|
+
const yt = R ? "#ffffff" : b ? "rgba(255, 255, 255, 0.9)" : y;
|
|
5230
|
+
t.fillStyle = yt, t.font = R || O ? "600 14px Inter, sans-serif" : "400 14px Inter, sans-serif";
|
|
5230
5231
|
const bt = typeof G == "string" ? G : (G == null ? void 0 : G.label) || `Item ${N + 1}`, gt = j + (h === "vertical" ? 16 : x / 2), Et = X + F / 2;
|
|
5231
5232
|
h === "horizontal" || J === "circular" ? t.textAlign = "center" : t.textAlign = "left";
|
|
5232
5233
|
const It = J === "circular" ? j + x / 2 : gt;
|
|
@@ -5236,18 +5237,18 @@ class ci {
|
|
|
5236
5237
|
if (G > N || J === "circular" && l.length > 0) {
|
|
5237
5238
|
const F = e.scrollbarColor || "rgba(255,255,255,0.3)", j = e.scrollbarWidth || 4;
|
|
5238
5239
|
if (x) {
|
|
5239
|
-
const X = Math.min(s, n) / 2 - j / 2 - 2, tt = a + s / 2,
|
|
5240
|
+
const X = Math.min(s, n) / 2 - j / 2 - 2, tt = a + s / 2, O = r + n / 2;
|
|
5240
5241
|
if (t.strokeStyle = F, t.lineWidth = j, t.lineCap = "round", t.beginPath(), J === "circular") {
|
|
5241
|
-
const
|
|
5242
|
-
t.arc(tt,
|
|
5242
|
+
const R = Math.PI / 4, D = -(u * 0.01) - Math.PI / 2;
|
|
5243
|
+
t.arc(tt, O, X, D, D + R);
|
|
5243
5244
|
} else {
|
|
5244
|
-
const
|
|
5245
|
-
t.arc(tt,
|
|
5245
|
+
const R = Math.PI / 2, D = N / G, q = R * D, ot = -u / G * R, bt = -Math.PI / 4 + ot;
|
|
5246
|
+
t.arc(tt, O, X, bt, bt + q);
|
|
5246
5247
|
}
|
|
5247
5248
|
t.stroke();
|
|
5248
5249
|
} else {
|
|
5249
|
-
const X = N / G, tt = N * X,
|
|
5250
|
-
t.fillStyle = F, h === "vertical" ? t.fillRect(a + s - j - 2, r +
|
|
5250
|
+
const X = N / G, tt = N * X, O = -u / G * N;
|
|
5251
|
+
t.fillStyle = F, h === "vertical" ? t.fillRect(a + s - j - 2, r + O, j, tt) : t.fillRect(a + O, r + n - j - 2, tt, j);
|
|
5251
5252
|
}
|
|
5252
5253
|
}
|
|
5253
5254
|
}
|
|
@@ -5295,12 +5296,12 @@ class ci {
|
|
|
5295
5296
|
const N = L === "circular" ? p : f === "vertical" ? a : p, J = L === "circular" || f === "vertical" ? l : r;
|
|
5296
5297
|
let x = 0, F = 0, j = 0;
|
|
5297
5298
|
if (L === "circular") {
|
|
5298
|
-
const X = G * _ + W, tt = M + a / 2,
|
|
5299
|
-
x = tt + Math.cos(X) * A - N / 2, F =
|
|
5299
|
+
const X = G * _ + W, tt = M + a / 2, O = I + r / 2;
|
|
5300
|
+
x = tt + Math.cos(X) * A - N / 2, F = O + Math.sin(X) * A - J / 2, j = X + (e.itemRotation || 0) * Math.PI / 180;
|
|
5300
5301
|
} else
|
|
5301
5302
|
x = f === "vertical" ? M : T, F = f === "vertical" ? T : I, j = (e.itemRotation || 0) * Math.PI / 180;
|
|
5302
5303
|
if (j !== 0) {
|
|
5303
|
-
const X = x + N / 2, tt = F + J / 2,
|
|
5304
|
+
const X = x + N / 2, tt = F + J / 2, O = C - X, R = w - tt, D = -j, q = O * Math.cos(D) - R * Math.sin(D) + X, ot = O * Math.sin(D) + R * Math.cos(D) + tt;
|
|
5304
5305
|
if (q >= x && q <= x + N && ot >= F && ot <= F + J)
|
|
5305
5306
|
return G;
|
|
5306
5307
|
} else if (C >= x && C <= x + N && w >= F && w <= F + J)
|
|
@@ -5323,7 +5324,7 @@ class ci {
|
|
|
5323
5324
|
if (!e.behaviors || e.behaviors.length === 0) return;
|
|
5324
5325
|
const s = this.objectStates.get(e.id);
|
|
5325
5326
|
s && e.behaviors.forEach((n) => {
|
|
5326
|
-
var p, c, d, u, v, b, m, y, S, C, w, M, I, k, T, L, P, _, E, A, W, z, Y, G, N, J, x, F, j, X, tt,
|
|
5327
|
+
var p, c, d, u, v, b, m, y, S, C, w, M, I, k, T, L, P, _, E, A, W, z, Y, G, N, J, x, F, j, X, tt, O, R, D, q, ot, yt, bt, gt, Et, It, St, Xt, le, he, et, mt, Ot, _t, dt, Ft, Dt, $t, Rt, Vt, ie, me, ye, Ut, Se, Pe, Ee, Ce, Ae, xe, se, jt, ft, pt, at, B, nt, Z, Pt, xt, kt, At, Mt, $, Wt, Kt, te, Jt, ut, ct, Ct, rt, V, st, it, vt, Yt, Qt, ne, Gt, Ht, Nt, Ie, Le, Oe, Re, Fe, $e, Ye, zt, oe, we, Be, We, de, ce, fe, ke, Xe, Ve, Ne, De, He;
|
|
5327
5328
|
if (!n.enabled) return;
|
|
5328
5329
|
const a = n.startTime || 0, r = n.endTime || 1 / 0;
|
|
5329
5330
|
if (this.currentTime < a || this.currentTime > r) return;
|
|
@@ -5391,7 +5392,7 @@ class ci {
|
|
|
5391
5392
|
} else if (n.type === U.Fold) {
|
|
5392
5393
|
if (l < 300) {
|
|
5393
5394
|
const H = 1 - l / 300, Q = (f > 0 ? -1 : 1) * H * 10, K = 1 - H * 0.1, ht = h / 300 * H * 20, Tt = -(f / 300) * H * 20, Lt = Math.min(1, 10 * t);
|
|
5394
|
-
s.skew_x = this.lerp(s.skew_x ?? ((tt = e.transform) == null ? void 0 : tt.skew_x) ?? 0, Q, Lt), s.scale_y = this.lerp(s.scale_y ?? ((
|
|
5395
|
+
s.skew_x = this.lerp(s.skew_x ?? ((tt = e.transform) == null ? void 0 : tt.skew_x) ?? 0, Q, Lt), s.scale_y = this.lerp(s.scale_y ?? ((O = e.transform) == null ? void 0 : O.scale_y) ?? 1, (((R = e.transform) == null ? void 0 : R.scale_y) ?? 1) * K, Lt), s.rotate_x = this.lerp(s.rotate_x ?? ((D = e.transform) == null ? void 0 : D.rotate_x) ?? 0, ht, Lt), s.rotate_y = this.lerp(s.rotate_y ?? ((q = e.transform) == null ? void 0 : q.rotate_y) ?? 0, Tt, Lt), s.style = s.style || { ...e.style }, s.style.artEffect = { enabled: !0, type: "fold_overlay", intensity: ((ot = n.settings) == null ? void 0 : ot.opacity) ?? 0.5 };
|
|
5395
5396
|
}
|
|
5396
5397
|
} else if (n.type === U.Crumple) {
|
|
5397
5398
|
if (l < 300) {
|
|
@@ -5400,13 +5401,13 @@ class ci {
|
|
|
5400
5401
|
}
|
|
5401
5402
|
} else if (n.type === U.Squash) {
|
|
5402
5403
|
const H = ((le = n.settings) == null ? void 0 : le.strength) || 0.8;
|
|
5403
|
-
l < (e.width || 100) && this.isMouseDown ? (s.scale_y = this.lerp(s.scale_y ?? 1, (((he = e.transform) == null ? void 0 : he.scale_y) ?? 1) * H, 0.3), s.scale_x = this.lerp(s.scale_x ?? 1, (((et = e.transform) == null ? void 0 : et.scale_x) ?? 1) * (1 + (1 - H) * 0.4), 0.3)) : (s.scale_y = this.lerp(s.scale_y ?? 1, ((mt = e.transform) == null ? void 0 : mt.scale_y) ?? 1, 0.2), s.scale_x = this.lerp(s.scale_x ?? 1, ((
|
|
5404
|
+
l < (e.width || 100) && this.isMouseDown ? (s.scale_y = this.lerp(s.scale_y ?? 1, (((he = e.transform) == null ? void 0 : he.scale_y) ?? 1) * H, 0.3), s.scale_x = this.lerp(s.scale_x ?? 1, (((et = e.transform) == null ? void 0 : et.scale_x) ?? 1) * (1 + (1 - H) * 0.4), 0.3)) : (s.scale_y = this.lerp(s.scale_y ?? 1, ((mt = e.transform) == null ? void 0 : mt.scale_y) ?? 1, 0.2), s.scale_x = this.lerp(s.scale_x ?? 1, ((Ot = e.transform) == null ? void 0 : Ot.scale_x) ?? 1, 0.2));
|
|
5404
5405
|
} else if (n.type === U.TextCounter) {
|
|
5405
5406
|
const H = ((_t = n.settings) == null ? void 0 : _t.duration) || 2, Q = ((dt = n.settings) == null ? void 0 : dt.from) || 0, K = ((Ft = n.settings) == null ? void 0 : Ft.to) || 100;
|
|
5406
5407
|
n._runtimeStart === void 0 && (n._runtimeStart = this.currentTime);
|
|
5407
5408
|
const ht = this.currentTime - n._runtimeStart, Tt = Math.min(1, ht / H), Lt = Math.floor(Q + (K - Q) * Tt);
|
|
5408
5409
|
if (((Dt = e.geometry) == null ? void 0 : Dt.type) === "Text") {
|
|
5409
|
-
const Bt = (($t = n.settings) == null ? void 0 : $t.prefix) || "", ee = ((
|
|
5410
|
+
const Bt = (($t = n.settings) == null ? void 0 : $t.prefix) || "", ee = ((Rt = n.settings) == null ? void 0 : Rt.suffix) || "";
|
|
5410
5411
|
s.geometry || (s.geometry = { ...e.geometry }), s.geometry.text = `${Bt}${Lt}${ee}`;
|
|
5411
5412
|
}
|
|
5412
5413
|
} else if (n.type === U.Spotlight) {
|
|
@@ -5479,9 +5480,9 @@ class ci {
|
|
|
5479
5480
|
const K = Math.pow(1 - l / H, 2);
|
|
5480
5481
|
s.scale_x = this.lerp(s.scale_x ?? 1, (((Nt = e.transform) == null ? void 0 : Nt.scale_x) ?? 1) * (1 + K * Q), 0.2), s.scale_y = this.lerp(s.scale_y ?? 1, (((Ie = e.transform) == null ? void 0 : Ie.scale_y) ?? 1) * (1 + K * Q), 0.2);
|
|
5481
5482
|
} else
|
|
5482
|
-
s.scale_x = this.lerp(s.scale_x ?? 1, ((Le = e.transform) == null ? void 0 : Le.scale_x) ?? 1, 0.1), s.scale_y = this.lerp(s.scale_y ?? 1, ((
|
|
5483
|
+
s.scale_x = this.lerp(s.scale_x ?? 1, ((Le = e.transform) == null ? void 0 : Le.scale_x) ?? 1, 0.1), s.scale_y = this.lerp(s.scale_y ?? 1, ((Oe = e.transform) == null ? void 0 : Oe.scale_y) ?? 1, 0.1);
|
|
5483
5484
|
} else if (n.type === U.LayoutAnimation) {
|
|
5484
|
-
const H = ((
|
|
5485
|
+
const H = ((Re = n.settings) == null ? void 0 : Re.watchProperties) || ["x", "y", "scale_x", "scale_y", "opacity", "rotation"], Q = ((Fe = n.settings) == null ? void 0 : Fe.duration) || 0.3;
|
|
5485
5486
|
this._layoutAnimCache.has(e.id) || this._layoutAnimCache.set(e.id, /* @__PURE__ */ new Map());
|
|
5486
5487
|
const K = this._layoutAnimCache.get(e.id);
|
|
5487
5488
|
for (const ht of H) {
|
|
@@ -5811,30 +5812,30 @@ const yi = Ss(({
|
|
|
5811
5812
|
}), []), ve(() => {
|
|
5812
5813
|
E.current.setLayout(e, s);
|
|
5813
5814
|
}, [e, s]), ve(() => {
|
|
5814
|
-
const
|
|
5815
|
-
a &&
|
|
5815
|
+
const O = E.current;
|
|
5816
|
+
a && O.setTriggerCallback(a), r && O.setInputUpdateCallback((R, D) => r({ [R]: D })), f && O.setComponentChangeCallback((R) => f(R)), h && O.setToggleCallback(h), l && O.setInputChangeCallback(l), p && O.setInputFocusCallback(p), c && O.setInputBlurCallback(c), d && O.setOnLogCallback((R) => d(R, "info")), u && O.setLogicUpdateCallback(u), v && O.setButtonClickCallback(v), b && O.setGraphPointClickCallback((R) => b(R.objectId, R)), L && O.setNavigationCallback(L);
|
|
5816
5817
|
}, [a, r, f, h, l, p, c, d, u, v, b, L]), ve(() => {
|
|
5817
5818
|
(async () => {
|
|
5818
|
-
let
|
|
5819
|
+
let R = g;
|
|
5819
5820
|
if (t && !g)
|
|
5820
5821
|
try {
|
|
5821
|
-
t.startsWith("{") ?
|
|
5822
|
+
t.startsWith("{") ? R = JSON.parse(t) : R = await (await fetch(t)).json();
|
|
5822
5823
|
} catch (D) {
|
|
5823
5824
|
console.error("[ExodeUI] Failed to load src:", D);
|
|
5824
5825
|
}
|
|
5825
|
-
if (
|
|
5826
|
-
const D = E.current, q =
|
|
5827
|
-
(z.current !== q || Y.current !== y || G.current !==
|
|
5826
|
+
if (R) {
|
|
5827
|
+
const D = E.current, q = R.id || R.name || "default";
|
|
5828
|
+
(z.current !== q || Y.current !== y || G.current !== R) && (D.load(R), z.current = q, Y.current = y, G.current = R, N(R), W.current = 0, D.advance(0)), n && n(D);
|
|
5828
5829
|
}
|
|
5829
5830
|
})();
|
|
5830
5831
|
}, [g, t, y]), ve(() => {
|
|
5831
|
-
const
|
|
5832
|
+
const O = (R) => {
|
|
5832
5833
|
if (!E.current || !J.current) return;
|
|
5833
5834
|
const D = E.current, q = _.current;
|
|
5834
5835
|
if (!q) return;
|
|
5835
5836
|
const ot = q.getContext("2d");
|
|
5836
5837
|
if (!ot) return;
|
|
5837
|
-
const yt =
|
|
5838
|
+
const yt = R / 1e3;
|
|
5838
5839
|
W.current === 0 && (W.current = yt);
|
|
5839
5840
|
let bt = yt - W.current;
|
|
5840
5841
|
bt > 0.1 && (bt = 0.1), W.current = yt;
|
|
@@ -5845,55 +5846,55 @@ const yi = Ss(({
|
|
|
5845
5846
|
} catch (Xt) {
|
|
5846
5847
|
console.error("[ExodeUICanvas] Error in animation loop:", Xt), d && d(`[Error] Animation loop crashed: ${Xt}`, "error");
|
|
5847
5848
|
}
|
|
5848
|
-
A.current = requestAnimationFrame(
|
|
5849
|
+
A.current = requestAnimationFrame(O);
|
|
5849
5850
|
};
|
|
5850
|
-
return A.current = requestAnimationFrame(
|
|
5851
|
+
return A.current = requestAnimationFrame(O), () => {
|
|
5851
5852
|
A.current && cancelAnimationFrame(A.current);
|
|
5852
5853
|
};
|
|
5853
5854
|
}, [o, m]), ve(() => {
|
|
5854
|
-
const
|
|
5855
|
-
S !== void 0 &&
|
|
5855
|
+
const O = E.current;
|
|
5856
|
+
S !== void 0 && O.updateInput("scrollY", S), C !== void 0 && O.updateInput("scrollX", C), w !== void 0 && O.updateInput("mouseX", w), M !== void 0 && O.updateInput("mouseY", M), I !== void 0 && O.updateInput("isMouseDown", I), k && Object.entries(k).forEach(([R, D]) => O.updateInput(R, D));
|
|
5856
5857
|
}, [S, C, w, M, I, k]);
|
|
5857
|
-
const x = (
|
|
5858
|
+
const x = (O, R) => {
|
|
5858
5859
|
if (!T || !_.current) return;
|
|
5859
|
-
|
|
5860
|
-
const D = _.current, q = D.getBoundingClientRect(), ot =
|
|
5861
|
-
(
|
|
5860
|
+
O.stopPropagation(), "nativeEvent" in O && O.nativeEvent && typeof O.nativeEvent.stopImmediatePropagation == "function" ? O.nativeEvent.stopImmediatePropagation() : typeof O.stopImmediatePropagation == "function" && O.stopImmediatePropagation();
|
|
5861
|
+
const D = _.current, q = D.getBoundingClientRect(), ot = O.clientX - q.left, yt = O.clientY - q.top, bt = window.devicePixelRatio || 1;
|
|
5862
|
+
(R === "click" || R === "down" || R === "up") && d && d(`[Canvas] Pointer ${R} at rect(${Math.round(ot)},${Math.round(yt)}) mapped to buffer(${Math.round(ot * bt)},${Math.round(yt * bt)})`, "info"), E.current.handlePointerInput(R, ot * bt, yt * bt, D.width, D.height);
|
|
5862
5863
|
};
|
|
5863
5864
|
ve(() => {
|
|
5864
5865
|
if (!T) return;
|
|
5865
|
-
const
|
|
5866
|
+
const O = (D) => {
|
|
5866
5867
|
var q, ot, yt;
|
|
5867
5868
|
((q = document.activeElement) == null ? void 0 : q.tagName) === "INPUT" || ((ot = document.activeElement) == null ? void 0 : ot.tagName) === "TEXTAREA" || (yt = E.current) == null || yt.handleKeyDown(D);
|
|
5868
|
-
},
|
|
5869
|
+
}, R = (D) => {
|
|
5869
5870
|
var q, ot, yt;
|
|
5870
5871
|
((q = document.activeElement) == null ? void 0 : q.tagName) === "INPUT" || ((ot = document.activeElement) == null ? void 0 : ot.tagName) === "TEXTAREA" || (yt = E.current) == null || yt.handleKeyUp(D);
|
|
5871
5872
|
};
|
|
5872
|
-
return window.addEventListener("keydown",
|
|
5873
|
-
window.removeEventListener("keydown",
|
|
5873
|
+
return window.addEventListener("keydown", O), window.addEventListener("keyup", R), () => {
|
|
5874
|
+
window.removeEventListener("keydown", O), window.removeEventListener("keyup", R);
|
|
5874
5875
|
};
|
|
5875
5876
|
}, [T]);
|
|
5876
5877
|
const [F, j] = Qe([]);
|
|
5877
5878
|
ve(() => {
|
|
5878
5879
|
if (g && g.objects) {
|
|
5879
|
-
const
|
|
5880
|
+
const O = g.objects.filter((R) => {
|
|
5880
5881
|
var D, q;
|
|
5881
|
-
return
|
|
5882
|
+
return R.type === "Joystick" && ((D = R.inputBinding) == null ? void 0 : D.type) === "keyboard" && ((q = R.inputBinding.keyboardConfig) == null ? void 0 : q.showVirtualKeyboard);
|
|
5882
5883
|
});
|
|
5883
|
-
j(
|
|
5884
|
+
j(O);
|
|
5884
5885
|
}
|
|
5885
5886
|
}, [g]);
|
|
5886
5887
|
const [, X] = Qe(0);
|
|
5887
5888
|
ve(() => {
|
|
5888
5889
|
if (F.length === 0) return;
|
|
5889
|
-
let
|
|
5890
|
-
const
|
|
5891
|
-
X((D) => D + 1),
|
|
5890
|
+
let O;
|
|
5891
|
+
const R = () => {
|
|
5892
|
+
X((D) => D + 1), O = requestAnimationFrame(R);
|
|
5892
5893
|
};
|
|
5893
|
-
return
|
|
5894
|
+
return O = requestAnimationFrame(R), () => cancelAnimationFrame(O);
|
|
5894
5895
|
}, [F.length]);
|
|
5895
|
-
const tt = () => F.map((
|
|
5896
|
-
const
|
|
5896
|
+
const tt = () => F.map((O) => {
|
|
5897
|
+
const R = O.inputBinding.keyboardConfig, D = (gt) => {
|
|
5897
5898
|
var It;
|
|
5898
5899
|
const Et = { key: gt, code: gt, preventDefault: () => {
|
|
5899
5900
|
} };
|
|
@@ -5935,90 +5936,90 @@ const yi = Ss(({
|
|
|
5935
5936
|
/* @__PURE__ */ ge(
|
|
5936
5937
|
"div",
|
|
5937
5938
|
{
|
|
5938
|
-
style: bt(yt(
|
|
5939
|
-
onMouseDown: () => D(
|
|
5940
|
-
onMouseUp: () => q(
|
|
5941
|
-
onMouseLeave: () => q(
|
|
5939
|
+
style: bt(yt(R.upKey)),
|
|
5940
|
+
onMouseDown: () => D(R.upKey),
|
|
5941
|
+
onMouseUp: () => q(R.upKey),
|
|
5942
|
+
onMouseLeave: () => q(R.upKey),
|
|
5942
5943
|
onTouchStart: (gt) => {
|
|
5943
|
-
gt.preventDefault(), D(
|
|
5944
|
+
gt.preventDefault(), D(R.upKey);
|
|
5944
5945
|
},
|
|
5945
5946
|
onTouchEnd: (gt) => {
|
|
5946
|
-
gt.preventDefault(), q(
|
|
5947
|
+
gt.preventDefault(), q(R.upKey);
|
|
5947
5948
|
},
|
|
5948
|
-
children:
|
|
5949
|
+
children: R.upKey.toUpperCase()
|
|
5949
5950
|
}
|
|
5950
5951
|
),
|
|
5951
5952
|
/* @__PURE__ */ Je("div", { style: { display: "flex", gap: "8px" }, children: [
|
|
5952
5953
|
/* @__PURE__ */ ge(
|
|
5953
5954
|
"div",
|
|
5954
5955
|
{
|
|
5955
|
-
style: bt(yt(
|
|
5956
|
-
onMouseDown: () => D(
|
|
5957
|
-
onMouseUp: () => q(
|
|
5958
|
-
onMouseLeave: () => q(
|
|
5956
|
+
style: bt(yt(R.leftKey)),
|
|
5957
|
+
onMouseDown: () => D(R.leftKey),
|
|
5958
|
+
onMouseUp: () => q(R.leftKey),
|
|
5959
|
+
onMouseLeave: () => q(R.leftKey),
|
|
5959
5960
|
onTouchStart: (gt) => {
|
|
5960
|
-
gt.preventDefault(), D(
|
|
5961
|
+
gt.preventDefault(), D(R.leftKey);
|
|
5961
5962
|
},
|
|
5962
5963
|
onTouchEnd: (gt) => {
|
|
5963
|
-
gt.preventDefault(), q(
|
|
5964
|
+
gt.preventDefault(), q(R.leftKey);
|
|
5964
5965
|
},
|
|
5965
|
-
children:
|
|
5966
|
+
children: R.leftKey.toUpperCase()
|
|
5966
5967
|
}
|
|
5967
5968
|
),
|
|
5968
5969
|
/* @__PURE__ */ ge(
|
|
5969
5970
|
"div",
|
|
5970
5971
|
{
|
|
5971
|
-
style: bt(yt(
|
|
5972
|
-
onMouseDown: () => D(
|
|
5973
|
-
onMouseUp: () => q(
|
|
5974
|
-
onMouseLeave: () => q(
|
|
5972
|
+
style: bt(yt(R.downKey)),
|
|
5973
|
+
onMouseDown: () => D(R.downKey),
|
|
5974
|
+
onMouseUp: () => q(R.downKey),
|
|
5975
|
+
onMouseLeave: () => q(R.downKey),
|
|
5975
5976
|
onTouchStart: (gt) => {
|
|
5976
|
-
gt.preventDefault(), D(
|
|
5977
|
+
gt.preventDefault(), D(R.downKey);
|
|
5977
5978
|
},
|
|
5978
5979
|
onTouchEnd: (gt) => {
|
|
5979
|
-
gt.preventDefault(), q(
|
|
5980
|
+
gt.preventDefault(), q(R.downKey);
|
|
5980
5981
|
},
|
|
5981
|
-
children:
|
|
5982
|
+
children: R.downKey.toUpperCase()
|
|
5982
5983
|
}
|
|
5983
5984
|
),
|
|
5984
5985
|
/* @__PURE__ */ ge(
|
|
5985
5986
|
"div",
|
|
5986
5987
|
{
|
|
5987
|
-
style: bt(yt(
|
|
5988
|
-
onMouseDown: () => D(
|
|
5989
|
-
onMouseUp: () => q(
|
|
5990
|
-
onMouseLeave: () => q(
|
|
5988
|
+
style: bt(yt(R.rightKey)),
|
|
5989
|
+
onMouseDown: () => D(R.rightKey),
|
|
5990
|
+
onMouseUp: () => q(R.rightKey),
|
|
5991
|
+
onMouseLeave: () => q(R.rightKey),
|
|
5991
5992
|
onTouchStart: (gt) => {
|
|
5992
|
-
gt.preventDefault(), D(
|
|
5993
|
+
gt.preventDefault(), D(R.rightKey);
|
|
5993
5994
|
},
|
|
5994
5995
|
onTouchEnd: (gt) => {
|
|
5995
|
-
gt.preventDefault(), q(
|
|
5996
|
+
gt.preventDefault(), q(R.rightKey);
|
|
5996
5997
|
},
|
|
5997
|
-
children:
|
|
5998
|
+
children: R.rightKey.toUpperCase()
|
|
5998
5999
|
}
|
|
5999
6000
|
)
|
|
6000
6001
|
] })
|
|
6001
|
-
] },
|
|
6002
|
+
] }, O.id);
|
|
6002
6003
|
});
|
|
6003
6004
|
return /* @__PURE__ */ Je("div", { style: { position: "relative", width: "100%", height: "100%" }, children: [
|
|
6004
6005
|
/* @__PURE__ */ ge(
|
|
6005
6006
|
"canvas",
|
|
6006
6007
|
{
|
|
6007
6008
|
ref: _,
|
|
6008
|
-
onPointerDown: (
|
|
6009
|
-
var
|
|
6010
|
-
x(
|
|
6009
|
+
onPointerDown: (O) => {
|
|
6010
|
+
var R;
|
|
6011
|
+
x(O, "down"), (R = _.current) == null || R.focus();
|
|
6011
6012
|
},
|
|
6012
|
-
onPointerMove: (
|
|
6013
|
-
onPointerUp: (
|
|
6014
|
-
onPointerCancel: (
|
|
6015
|
-
onClick: (
|
|
6016
|
-
onWheel: (
|
|
6017
|
-
E.current.handleWheel(
|
|
6013
|
+
onPointerMove: (O) => x(O, "move"),
|
|
6014
|
+
onPointerUp: (O) => x(O, "up"),
|
|
6015
|
+
onPointerCancel: (O) => x(O, "up"),
|
|
6016
|
+
onClick: (O) => x(O, "click"),
|
|
6017
|
+
onWheel: (O) => {
|
|
6018
|
+
E.current.handleWheel(O.deltaX, O.deltaY);
|
|
6018
6019
|
},
|
|
6019
|
-
onKeyDown: (
|
|
6020
|
-
onKeyUp: (
|
|
6021
|
-
onContextMenu: (
|
|
6020
|
+
onKeyDown: (O) => E.current.handleKeyDown(O.nativeEvent),
|
|
6021
|
+
onKeyUp: (O) => E.current.handleKeyUp(O.nativeEvent),
|
|
6022
|
+
onContextMenu: (O) => O.preventDefault(),
|
|
6022
6023
|
tabIndex: 0,
|
|
6023
6024
|
style: {
|
|
6024
6025
|
...i,
|
|
@@ -6138,7 +6139,7 @@ const vi = ({ artboard: g, config: t }) => {
|
|
|
6138
6139
|
]
|
|
6139
6140
|
}
|
|
6140
6141
|
);
|
|
6141
|
-
}, fi = "6.3.
|
|
6142
|
+
}, fi = "6.3.37", hi = {
|
|
6142
6143
|
version: fi
|
|
6143
6144
|
}, Si = hi.version;
|
|
6144
6145
|
export {
|