@primestyleai/tryon 5.10.127 → 5.10.129
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/react/index.js +777 -777
- package/dist/react/index.js.map +1 -1
- package/dist/react/styles.d.ts +1 -1
- package/dist/storefront/primestyle-tryon.js +3 -7
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { P as jg, L as kg, b as Ut, d as eg, a as Do, c as Jt, A as Kt, S as St, i as jt } from "../index-RlA_0mKn.js";
|
|
3
3
|
import { jsxs as e, jsx as A, Fragment as eA } from "react/jsx-runtime";
|
|
4
|
-
import { useState as Q, useRef as QA, useCallback as IA, useEffect as
|
|
4
|
+
import { useState as Q, useRef as QA, useCallback as IA, useEffect as xA, useMemo as xe } from "react";
|
|
5
5
|
import { createPortal as hg } from "react-dom";
|
|
6
6
|
const Rt = "primestyle-photos", to = "photos", Tt = 1;
|
|
7
7
|
let Ro = null;
|
|
@@ -4792,7 +4792,7 @@ const Fn = `
|
|
|
4792
4792
|
padding-bottom: 0.2vw; transition: border-color 0.2s;
|
|
4793
4793
|
}
|
|
4794
4794
|
.ps-bp-inline-input:focus { border-bottom-color: var(--ps-accent); }
|
|
4795
|
-
.ps-bp-inline-input::placeholder { color: var(--ps-text-muted); font-weight: 400; }
|
|
4795
|
+
.ps-bp-inline-input::placeholder { color: var(--ps-text-muted); font-weight: 400; font-style: italic; opacity: 0.55; }
|
|
4796
4796
|
.ps-bp-inline-input::-webkit-outer-spin-button,
|
|
4797
4797
|
.ps-bp-inline-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
|
|
4798
4798
|
.ps-bp-inline-input[type="number"] { -moz-appearance: textfield; }
|
|
@@ -8532,7 +8532,7 @@ function Kn({ activeLocale: o, onSelect: g }) {
|
|
|
8532
8532
|
const D = a.current.getBoundingClientRect();
|
|
8533
8533
|
w({ top: D.bottom + 4, right: window.innerWidth - D.right });
|
|
8534
8534
|
}, []);
|
|
8535
|
-
return
|
|
8535
|
+
return xA(() => {
|
|
8536
8536
|
if (!t) return;
|
|
8537
8537
|
l();
|
|
8538
8538
|
const D = (d) => {
|
|
@@ -8800,7 +8800,7 @@ function Tn({
|
|
|
8800
8800
|
setActiveProfileId: a,
|
|
8801
8801
|
t: c
|
|
8802
8802
|
}) {
|
|
8803
|
-
if (
|
|
8803
|
+
if (xA(() => {
|
|
8804
8804
|
if (!o || typeof document > "u") return;
|
|
8805
8805
|
const s = document.body.style.overflow;
|
|
8806
8806
|
return document.body.style.overflow = "hidden", () => {
|
|
@@ -9025,7 +9025,7 @@ function Vn({
|
|
|
9025
9025
|
}
|
|
9026
9026
|
function qn(o) {
|
|
9027
9027
|
const [g, t] = Q(0);
|
|
9028
|
-
return
|
|
9028
|
+
return xA(() => {
|
|
9029
9029
|
if (o == null) {
|
|
9030
9030
|
t(0);
|
|
9031
9031
|
return;
|
|
@@ -9040,7 +9040,7 @@ function qn(o) {
|
|
|
9040
9040
|
const ct = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQcAAAMwCAMAAACqTCYrAAAAUVBMVEVMaXH///////98fX11d3loamr///9ydHX///9tb2/R0tLm5ub09PT9/f2bnJvy8/P6+vr7/Pxsbm6xsrKcnZ52eHiChITAwcHCw8OYmZne39+2r8rCAAAAG3RSTlMAGw7O/vUH/gH9lWpILMJ7VTflqtzs67+IpagnFTRrAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR42uydh3rruLKsTVIkwSSKytL7P+jpACpZASBAefZZVfd+s8+sYMsa83cD3V31Y0xRGPMDQRD0z8qw8DZAEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARB0P+ADAnvAgRB/zgGAUIIgv55DIKEEASBgwAhBEHgIEgIQRA4CBBCEPTPcxAghCDoX8cgQAhBEDgIEEIQBA5CEASBgxAEQf80B0FCCILAQbwpEASBgxAEQeAgBEHQv8xBgBCCIHAQgiAIHIQgCAIHIQiCwEEIgqB/loMAIQRB4CAEQRA4CEEQBA5CEASBgxAEQeAgBEEQOAhBod9fRZGmCakjDbfiX+DfSNOiwPcd9F/jIL4hoQjfWAXRb2hXTd/X9eFw2G63e9Jut1uQdjv6v7esw6Gu66ZZrdqBkFjg2w8CB6H/B99TBMCuXTH9hH2LshpVWi3kn9VV5Y6pSEjs+9UgNMT7CIGD0P/ot1ORDA3zb78vL+hbOOhCxQXzsK5bhiHeUAgchP7XikBCIBGw9OHfbyAqDnf77aahgzJgCIGD0P/It1EyrOrNdv+MgKX95905uPpULMof3i039QoohP6Ig/jGgzxUJKuaGJjr/d8N+xR9eU6/lZfcGcmWotNJ/ifLqGtS0m9fLw8vf3eEYb5f1kOKb0joLziI7zvI/UTc1vsLx2wjxPKP2h/UKtkcm6YdZESG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", wt = "data:image/png;base64,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", lt = "data:image/png;base64,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", Zn = 768;
|
|
9041
9041
|
function Oo() {
|
|
9042
9042
|
const [o, g] = Q(!1);
|
|
9043
|
-
return
|
|
9043
|
+
return xA(() => {
|
|
9044
9044
|
if (typeof window > "u") return;
|
|
9045
9045
|
const t = () => g(window.innerWidth < Zn);
|
|
9046
9046
|
return t(), window.addEventListener("resize", t), () => window.removeEventListener("resize", t);
|
|
@@ -9184,13 +9184,13 @@ function zg({
|
|
|
9184
9184
|
const v = b.currentTarget;
|
|
9185
9185
|
M({ w: v.naturalWidth || v.offsetWidth, h: v.naturalHeight || v.offsetHeight });
|
|
9186
9186
|
}, Y = 6e3, h = 1e3, C = QA(Date.now()), [W, Z] = Q(0);
|
|
9187
|
-
|
|
9187
|
+
xA(() => {
|
|
9188
9188
|
const b = (Y - h) / Math.max(1, u.length - 1), v = setInterval(() => {
|
|
9189
9189
|
const F = Date.now() - C.current, z = Math.min(u.length - 1, Math.floor(F / b));
|
|
9190
9190
|
Z((K) => K === z ? K : z), z >= u.length - 1 && clearInterval(v);
|
|
9191
9191
|
}, 100);
|
|
9192
9192
|
return () => clearInterval(v);
|
|
9193
|
-
}, [u.length]),
|
|
9193
|
+
}, [u.length]), xA(() => {
|
|
9194
9194
|
d && t && W === 0 && Z(1);
|
|
9195
9195
|
}, [t]);
|
|
9196
9196
|
const i = u[W] ?? u[0];
|
|
@@ -9333,7 +9333,7 @@ function nr({
|
|
|
9333
9333
|
/* @__PURE__ */ A("span", { className: "ps-msr-match-label", children: h("FIT MATCH") })
|
|
9334
9334
|
] }) }),
|
|
9335
9335
|
/* @__PURE__ */ A("div", { className: "ps-msr-sections", children: a.map(({ name: i, secResult: b }) => {
|
|
9336
|
-
const v = i.replace(/\s*[—–-]\s*.*/g, ""), F = b, z = c?.[i], K = !!z, wA = F.found === !1 ? h("No fit") : K ? z.displayLabel : F.size || b.recommendedSize,
|
|
9336
|
+
const v = i.replace(/\s*[—–-]\s*.*/g, ""), F = b, z = c?.[i], K = !!z, wA = F.found === !1 ? h("No fit") : K ? z.displayLabel : F.size || b.recommendedSize, T = r?.sectionImages?.[i], zA = or(i), HA = T || zA || null;
|
|
9337
9337
|
return /* @__PURE__ */ e(
|
|
9338
9338
|
"button",
|
|
9339
9339
|
{
|
|
@@ -9341,7 +9341,7 @@ function nr({
|
|
|
9341
9341
|
className: `ps-msr-section-card${K ? " ps-overridden" : ""}`,
|
|
9342
9342
|
onClick: () => n(i),
|
|
9343
9343
|
children: [
|
|
9344
|
-
|
|
9344
|
+
HA && /* @__PURE__ */ A("img", { src: HA, alt: "", className: "ps-msr-section-icon-lg" }),
|
|
9345
9345
|
/* @__PURE__ */ A("span", { className: "ps-msr-section-name", children: v.toUpperCase() }),
|
|
9346
9346
|
/* @__PURE__ */ A("span", { className: "ps-msr-section-size", children: wA }),
|
|
9347
9347
|
/* @__PURE__ */ A(
|
|
@@ -9409,7 +9409,7 @@ function Wo({
|
|
|
9409
9409
|
t: g
|
|
9410
9410
|
}) {
|
|
9411
9411
|
const [, t] = Q(0);
|
|
9412
|
-
if (
|
|
9412
|
+
if (xA(() => {
|
|
9413
9413
|
if (o == null) return;
|
|
9414
9414
|
const d = setInterval(() => t((u) => u + 1), 200);
|
|
9415
9415
|
return () => clearInterval(d);
|
|
@@ -9495,7 +9495,7 @@ function ir({
|
|
|
9495
9495
|
t
|
|
9496
9496
|
}) {
|
|
9497
9497
|
const [r, a] = Q(0), c = Math.max(1, Math.ceil(o.length / yo));
|
|
9498
|
-
if (
|
|
9498
|
+
if (xA(() => {
|
|
9499
9499
|
if (c < 2) return;
|
|
9500
9500
|
const s = setInterval(() => a((l) => (l + 1) % c), rr);
|
|
9501
9501
|
return () => clearInterval(s);
|
|
@@ -9648,7 +9648,7 @@ function cr({
|
|
|
9648
9648
|
{ title: t("MATCHING SIZE"), desc: t("Comparing your measurements to the size guide.") },
|
|
9649
9649
|
{ title: t("FINALIZING RESULT"), desc: t("Almost done — preparing your recommendation.") }
|
|
9650
9650
|
], a = 6e3, c = 1e3, n = QA(Date.now()), [w, s] = Q(0);
|
|
9651
|
-
|
|
9651
|
+
xA(() => {
|
|
9652
9652
|
const D = (a - c) / Math.max(1, r.length - 1), d = setInterval(() => {
|
|
9653
9653
|
const u = Date.now() - n.current, m = Math.min(r.length - 1, Math.floor(u / D));
|
|
9654
9654
|
s((M) => M === m ? M : m), m >= r.length - 1 && clearInterval(d);
|
|
@@ -9728,7 +9728,7 @@ function Fo({ lines: o, fitRows: g, show: t, imgWidth: r, imgHeight: a }) {
|
|
|
9728
9728
|
const Z = Y.x1 * w, i = Y.x2 * w, b = Y.y * s, v = i - Z, F = v * 0.06, z = (Z + i) / 2, K = g.find((RA) => {
|
|
9729
9729
|
const mA = RA.area.toLowerCase().trim();
|
|
9730
9730
|
return !!(mA === L || L === "chest" && (mA.includes("bust") || mA.includes("chest")) || L === "waist" && mA.includes("waist") || L === "hips" && (mA.includes("hip") || mA === "hips"));
|
|
9731
|
-
}), wA = K ? c(K.fit) : "#2154EF",
|
|
9731
|
+
}), wA = K ? c(K.fit) : "#2154EF", T = C * 0.35, zA = `M ${Z} ${b} Q ${z} ${b + F} ${i} ${b}`, HA = v * 1.05, E = K ? K.fit === "good" ? "✓ Fit" : K.isLength ? K.fit.includes("short") || K.fit.includes("tight") ? "Short" : "Long" : K.fit.includes("tight") ? "Tight" : "Loose" : h, iA = Math.round(14 * M), O = E.length * iA * 0.62, X = w - i - 12 * M < O, nA = X ? Z - 10 * M : i + 10 * M, uA = X ? "end" : "start", rA = X ? Z : i, MA = X ? Z - 6 * M : i + 6 * M;
|
|
9732
9732
|
return /* @__PURE__ */ e("g", { children: [
|
|
9733
9733
|
/* @__PURE__ */ A(
|
|
9734
9734
|
"path",
|
|
@@ -9738,9 +9738,9 @@ function Fo({ lines: o, fitRows: g, show: t, imgWidth: r, imgHeight: a }) {
|
|
|
9738
9738
|
stroke: wA,
|
|
9739
9739
|
strokeWidth: u,
|
|
9740
9740
|
strokeLinecap: "round",
|
|
9741
|
-
strokeDasharray:
|
|
9742
|
-
strokeDashoffset:
|
|
9743
|
-
style: { animation: `ps-pose-draw 0.7s ease-out ${
|
|
9741
|
+
strokeDasharray: HA,
|
|
9742
|
+
strokeDashoffset: HA,
|
|
9743
|
+
style: { animation: `ps-pose-draw 0.7s ease-out ${T}s forwards` }
|
|
9744
9744
|
}
|
|
9745
9745
|
),
|
|
9746
9746
|
/* @__PURE__ */ A(
|
|
@@ -9751,7 +9751,7 @@ function Fo({ lines: o, fitRows: g, show: t, imgWidth: r, imgHeight: a }) {
|
|
|
9751
9751
|
r: m,
|
|
9752
9752
|
fill: wA,
|
|
9753
9753
|
opacity: "0",
|
|
9754
|
-
style: { animation: `ps-pose-fade 0.3s ease ${
|
|
9754
|
+
style: { animation: `ps-pose-fade 0.3s ease ${T + 0.5}s forwards` }
|
|
9755
9755
|
}
|
|
9756
9756
|
),
|
|
9757
9757
|
/* @__PURE__ */ A(
|
|
@@ -9762,16 +9762,16 @@ function Fo({ lines: o, fitRows: g, show: t, imgWidth: r, imgHeight: a }) {
|
|
|
9762
9762
|
r: m,
|
|
9763
9763
|
fill: wA,
|
|
9764
9764
|
opacity: "0",
|
|
9765
|
-
style: { animation: `ps-pose-fade 0.3s ease ${
|
|
9765
|
+
style: { animation: `ps-pose-fade 0.3s ease ${T + 0.5}s forwards` }
|
|
9766
9766
|
}
|
|
9767
9767
|
),
|
|
9768
|
-
/* @__PURE__ */ e("g", { opacity: "0", style: { animation: `ps-pose-fade 0.4s ease ${
|
|
9768
|
+
/* @__PURE__ */ e("g", { opacity: "0", style: { animation: `ps-pose-fade 0.4s ease ${T + 0.6}s forwards` }, children: [
|
|
9769
9769
|
/* @__PURE__ */ A(
|
|
9770
9770
|
"line",
|
|
9771
9771
|
{
|
|
9772
|
-
x1:
|
|
9772
|
+
x1: rA,
|
|
9773
9773
|
y1: b,
|
|
9774
|
-
x2:
|
|
9774
|
+
x2: MA,
|
|
9775
9775
|
y2: b,
|
|
9776
9776
|
stroke: wA,
|
|
9777
9777
|
strokeWidth: 2 * M
|
|
@@ -9780,10 +9780,10 @@ function Fo({ lines: o, fitRows: g, show: t, imgWidth: r, imgHeight: a }) {
|
|
|
9780
9780
|
/* @__PURE__ */ A(
|
|
9781
9781
|
"text",
|
|
9782
9782
|
{
|
|
9783
|
-
x:
|
|
9783
|
+
x: nA,
|
|
9784
9784
|
y: b + 1 * M,
|
|
9785
9785
|
fill: wA,
|
|
9786
|
-
fontSize:
|
|
9786
|
+
fontSize: iA,
|
|
9787
9787
|
fontWeight: "700",
|
|
9788
9788
|
fontFamily: "system-ui, -apple-system, sans-serif",
|
|
9789
9789
|
dominantBaseline: "middle",
|
|
@@ -9863,10 +9863,10 @@ function qo({
|
|
|
9863
9863
|
sectionFound: F,
|
|
9864
9864
|
allSizes: z
|
|
9865
9865
|
}) {
|
|
9866
|
-
const K = t?.recommendedSize || "", [wA,
|
|
9866
|
+
const K = t?.recommendedSize || "", [wA, T] = Q(null), zA = qn(W ?? null), HA = a.toLowerCase(), E = HA.includes("mm") ? "mm" : HA.includes("cm") ? "cm" : "in", iA = c || E, O = (x) => Ct(x, iA, E), fA = (x) => pr(x, iA, E), X = (x) => {
|
|
9867
9867
|
const q = fA(x);
|
|
9868
9868
|
return /^\d+(?:\.\d+)?(?:\s*[-–]\s*\d+(?:\.\d+)?)?$/.test(q.trim()) ? `${q} ${a}` : q;
|
|
9869
|
-
},
|
|
9869
|
+
}, nA = i ? Object.keys(i) : [], [uA, rA] = Q(null), MA = n?.secResult?.recommendedSize || "", [RA, mA] = Q(null), we = xe(() => {
|
|
9870
9870
|
if (!n) return [];
|
|
9871
9871
|
const x = n.section, q = x.headers.findIndex((UA) => /size|taglia|größe|taille/i.test(UA.trim())), XA = q >= 0 ? q : 0, S = x.headers[XA] || "Size", pA = x.rows.map((UA) => Te(UA, XA, S)).filter(Boolean);
|
|
9872
9872
|
return [...new Set(pA)];
|
|
@@ -9878,10 +9878,10 @@ function qo({
|
|
|
9878
9878
|
if (g.rows.some((S) => /^(XXS|XS|S|M|L|XL|XXL|XXXL|ONE SIZE|\d{1,2})$/i.test(Te(S, q, XA)))) return q;
|
|
9879
9879
|
}
|
|
9880
9880
|
return 0;
|
|
9881
|
-
}, [g]),
|
|
9882
|
-
const x = g.rows.map((q) => Te(q, PA,
|
|
9881
|
+
}, [g]), ge = g.headers[PA] || "Size", qA = xe(() => {
|
|
9882
|
+
const x = g.rows.map((q) => Te(q, PA, ge)).filter(Boolean);
|
|
9883
9883
|
return [...new Set(x)];
|
|
9884
|
-
}, [g, PA,
|
|
9884
|
+
}, [g, PA, ge]), fe = wA || K, vA = fe === K;
|
|
9885
9885
|
xe(() => {
|
|
9886
9886
|
if (vA) return null;
|
|
9887
9887
|
const x = t?.matchDetails ?? [], q = /tight|loose|large|small|very/i, XA = x.some((S) => q.test(S.fit || ""));
|
|
@@ -9919,44 +9919,44 @@ function qo({
|
|
|
9919
9919
|
}, [g]), Pe = IA((x, q) => {
|
|
9920
9920
|
const XA = x.toLowerCase().trim(), S = a === "cm" || a === "", pA = S ? "cm" : "in", UA = [];
|
|
9921
9921
|
for (let I = 0; I < g.headers.length; I++) {
|
|
9922
|
-
const
|
|
9923
|
-
if (
|
|
9922
|
+
const FA = (g.headers[I] || "").toLowerCase().trim();
|
|
9923
|
+
if (FA === XA) {
|
|
9924
9924
|
UA.push(I);
|
|
9925
9925
|
continue;
|
|
9926
9926
|
}
|
|
9927
|
-
const oA =
|
|
9928
|
-
(oA === XA ||
|
|
9927
|
+
const oA = FA.replace(/\s*\(.*?\)\s*/g, "").trim();
|
|
9928
|
+
(oA === XA || FA.includes(XA) || XA.includes(oA)) && UA.push(I);
|
|
9929
9929
|
}
|
|
9930
9930
|
if (UA.length === 0) return null;
|
|
9931
|
-
let
|
|
9932
|
-
|
|
9933
|
-
const Ae = g.headers[
|
|
9934
|
-
let LA = g.rows.find((I) => Te(I, PA,
|
|
9935
|
-
if (LA || (LA = g.rows.find((I) => Te(I, PA,
|
|
9936
|
-
const
|
|
9937
|
-
return
|
|
9931
|
+
let ae = UA.find((I) => $[I] === pA);
|
|
9932
|
+
ae == null && (ae = UA[0]);
|
|
9933
|
+
const Ae = g.headers[ae], pe = q.trim().toLowerCase();
|
|
9934
|
+
let LA = g.rows.find((I) => Te(I, PA, ge) === q);
|
|
9935
|
+
if (LA || (LA = g.rows.find((I) => Te(I, PA, ge).trim().toLowerCase() === pe)), LA || (LA = g.rows.find((I) => {
|
|
9936
|
+
const FA = Te(I, PA, ge).trim().toLowerCase();
|
|
9937
|
+
return FA.startsWith(pe) || pe.startsWith(FA);
|
|
9938
9938
|
})), !LA) return null;
|
|
9939
|
-
const Ce = Te(LA,
|
|
9939
|
+
const Ce = Te(LA, ae, Ae);
|
|
9940
9940
|
if (!Ce) return null;
|
|
9941
|
-
const
|
|
9941
|
+
const yA = pt(Ce), lA = $[ae];
|
|
9942
9942
|
if (lA === "in" && S) {
|
|
9943
|
-
const I = (
|
|
9944
|
-
return { range: String(I(
|
|
9943
|
+
const I = (FA) => +(FA * 2.54).toFixed(1);
|
|
9944
|
+
return { range: String(I(yA.min)) + (yA.min !== yA.max ? "–" + String(I(yA.max)) : ""), min: I(yA.min), max: I(yA.max) };
|
|
9945
9945
|
}
|
|
9946
9946
|
if (lA === "cm" && !S) {
|
|
9947
|
-
const I = (
|
|
9948
|
-
return { range: String(I(
|
|
9947
|
+
const I = (FA) => +(FA / 2.54).toFixed(1);
|
|
9948
|
+
return { range: String(I(yA.min)) + (yA.min !== yA.max ? "–" + String(I(yA.max)) : ""), min: I(yA.min), max: I(yA.max) };
|
|
9949
9949
|
}
|
|
9950
|
-
return { range: Ce, ...
|
|
9951
|
-
}, [g, PA,
|
|
9950
|
+
return { range: Ce, ...yA };
|
|
9951
|
+
}, [g, PA, ge, a, $]), ve = xe(() => {
|
|
9952
9952
|
if (v)
|
|
9953
9953
|
return (t?.matchDetails || []).map((I) => {
|
|
9954
|
-
let
|
|
9954
|
+
let FA = I.chartRange, oA = I.fit;
|
|
9955
9955
|
if (fe !== K) {
|
|
9956
9956
|
const KA = Pe(I.measurement, fe);
|
|
9957
9957
|
if (KA && (KA.min > 0 || KA.max > 0)) {
|
|
9958
9958
|
const me = (I.chartRange.match(/[a-zA-Z]+\s*$/) || [""])[0];
|
|
9959
|
-
|
|
9959
|
+
FA = KA.range + (me ? ` ${me.trim()}` : "");
|
|
9960
9960
|
const ZA = Ze(I.userValue);
|
|
9961
9961
|
if (ZA > 0) {
|
|
9962
9962
|
const Me = KA.min, de = KA.max, De = de - Me, JA = De > 0 ? De * 0.5 : Me * 0.05 || 3, Qe = Math.max((de || Me) * 5e-3, 0.25);
|
|
@@ -9974,7 +9974,7 @@ function qo({
|
|
|
9974
9974
|
return {
|
|
9975
9975
|
area: I.measurement.replace(/\s*\(.*?\)\s*$/, "").trim() || I.measurement,
|
|
9976
9976
|
rawUserValue: I.userValue,
|
|
9977
|
-
rawChartRange:
|
|
9977
|
+
rawChartRange: FA,
|
|
9978
9978
|
fit: oA,
|
|
9979
9979
|
userNum: 0,
|
|
9980
9980
|
chartLabel: "",
|
|
@@ -9984,13 +9984,13 @@ function qo({
|
|
|
9984
9984
|
const x = t?.matchDetails || [], q = n?.secResult?.matchDetails || [], XA = /* @__PURE__ */ new Set(), S = [...x, ...q].filter((lA) => {
|
|
9985
9985
|
const I = String(lA?.measurement ?? "").toLowerCase().trim();
|
|
9986
9986
|
return !I || XA.has(I) ? !1 : (XA.add(I), !0);
|
|
9987
|
-
}), pA = t?.length || "", UA = (t?.availableLengths?.length || 0) > 0,
|
|
9987
|
+
}), pA = t?.length || "", UA = (t?.availableLengths?.length || 0) > 0, ae = MA || pA, Ae = !!(n || UA), pe = S.some((lA) => lA.measurement.toLowerCase() === "height"), LA = !!n?.section?.headers?.some((lA) => /height|altezza|estatura|\(cm\)/i.test(lA));
|
|
9988
9988
|
if (n && LA && !pe) {
|
|
9989
9989
|
const lA = r.height || 0;
|
|
9990
9990
|
S.push({
|
|
9991
9991
|
measurement: "Height",
|
|
9992
9992
|
userValue: lA ? String(lA) : "",
|
|
9993
|
-
chartRange:
|
|
9993
|
+
chartRange: ae || "",
|
|
9994
9994
|
fit: "good"
|
|
9995
9995
|
});
|
|
9996
9996
|
} else if (UA && !n && !pe) {
|
|
@@ -10005,10 +10005,10 @@ function qo({
|
|
|
10005
10005
|
if (!S.length) return [];
|
|
10006
10006
|
const Ce = new Set(q.map((lA) => lA.measurement));
|
|
10007
10007
|
Ae && Ce.add("Height");
|
|
10008
|
-
const
|
|
10008
|
+
const yA = RA || ae;
|
|
10009
10009
|
return S.map((lA) => {
|
|
10010
10010
|
if (Ce.has(lA.measurement)) {
|
|
10011
|
-
const Me = r[lA.measurement.toLowerCase()] || Ze(lA.userValue), de = n?.secResult?.allSizes, De =
|
|
10011
|
+
const Me = r[lA.measurement.toLowerCase()] || Ze(lA.userValue), de = n?.secResult?.allSizes, De = yA ? de?.[yA]?.[lA.measurement] : void 0, JA = yA ? z?.[yA]?.[lA.measurement] : void 0, Qe = z?.[fe]?.[lA.measurement], SA = De ?? JA ?? Qe, P = SA?.chartRange ?? lA.chartRange, H = SA?.fit ?? lA.fit ?? "good";
|
|
10012
10012
|
return {
|
|
10013
10013
|
area: lA.measurement,
|
|
10014
10014
|
userNum: Me,
|
|
@@ -10017,7 +10017,7 @@ function qo({
|
|
|
10017
10017
|
isLength: !0
|
|
10018
10018
|
};
|
|
10019
10019
|
}
|
|
10020
|
-
const I = r[lA.measurement.toLowerCase()] || Ze(lA.userValue),
|
|
10020
|
+
const I = r[lA.measurement.toLowerCase()] || Ze(lA.userValue), FA = lA.measurement.toLowerCase(), oA = /length|inseam|sleeve|hem|rise/.test(FA), KA = z?.[fe]?.[lA.measurement], me = KA?.chartRange ?? lA.chartRange, ZA = KA?.fit ?? lA.fit ?? "good";
|
|
10021
10021
|
return {
|
|
10022
10022
|
area: lA.measurement,
|
|
10023
10023
|
userNum: I,
|
|
@@ -10028,15 +10028,15 @@ function qo({
|
|
|
10028
10028
|
});
|
|
10029
10029
|
}, [t, n, r, v, z, fe, RA]), Fe = ve.filter(
|
|
10030
10030
|
(x) => x.fit === "good" || x.fit === "a-bit-tight" || x.fit === "a-bit-loose"
|
|
10031
|
-
).length,
|
|
10031
|
+
).length, te = ve.length > 0 ? Math.round(Fe / ve.length * 100) : 0, le = !v, dA = t, _A = dA?.size || K, TA = (t?.matchDetails || []).find(
|
|
10032
10032
|
(x) => /inseam|length/i.test(x.measurement) && !/neck|arm|sleeve|back|shoulder/i.test(x.measurement)
|
|
10033
|
-
), y = TA ? (TA.chartRange || "").replace(/\s*(cm|in|inches)\s*/i, "").trim() : "", GA =
|
|
10033
|
+
), y = TA ? (TA.chartRange || "").replace(/\s*(cm|in|inches)\s*/i, "").trim() : "", GA = dA?.length || MA || y, Ee = dA?.availableSizes || [], Ge = dA?.availableLengths || [], NA = RA || GA, He = Ee.length > 0 ? Ee : qA, ne = (() => {
|
|
10034
10034
|
if (He.length <= 3) return He;
|
|
10035
10035
|
const x = He.indexOf(K);
|
|
10036
10036
|
if (x < 0) return He.slice(0, 3);
|
|
10037
10037
|
const q = Math.max(0, Math.min(He.length - 3, x - 1));
|
|
10038
10038
|
return He.slice(q, q + 3);
|
|
10039
|
-
})(), V = Ge.length > 0 ? Ge : we,
|
|
10039
|
+
})(), V = Ge.length > 0 ? Ge : we, se = (() => {
|
|
10040
10040
|
if (V.length <= 3) return V;
|
|
10041
10041
|
const x = V.indexOf(GA);
|
|
10042
10042
|
if (x < 0) return V.slice(0, 3);
|
|
@@ -10118,11 +10118,11 @@ function qo({
|
|
|
10118
10118
|
}
|
|
10119
10119
|
),
|
|
10120
10120
|
/* @__PURE__ */ e("div", { style: { display: "flex", alignItems: "center", gap: "10px", marginTop: "6px", marginBottom: "4px" }, children: [
|
|
10121
|
-
|
|
10121
|
+
nA.length > 1 && /* @__PURE__ */ e(
|
|
10122
10122
|
"select",
|
|
10123
10123
|
{
|
|
10124
10124
|
value: uA || "",
|
|
10125
|
-
onChange: (S) =>
|
|
10125
|
+
onChange: (S) => rA(S.target.value || null),
|
|
10126
10126
|
style: {
|
|
10127
10127
|
fontSize: "11px",
|
|
10128
10128
|
fontWeight: 600,
|
|
@@ -10139,7 +10139,7 @@ function qo({
|
|
|
10139
10139
|
"aria-label": s("Display size in country"),
|
|
10140
10140
|
children: [
|
|
10141
10141
|
/* @__PURE__ */ A("option", { value: "", children: s("Standard") }),
|
|
10142
|
-
|
|
10142
|
+
nA.map((S) => /* @__PURE__ */ A("option", { value: S, children: S }, S))
|
|
10143
10143
|
]
|
|
10144
10144
|
}
|
|
10145
10145
|
),
|
|
@@ -10168,10 +10168,10 @@ function qo({
|
|
|
10168
10168
|
/* @__PURE__ */ A("span", { className: "ps-msd-card-eyebrow", children: s("FIT ACCURACY") }),
|
|
10169
10169
|
/* @__PURE__ */ e("div", { className: "ps-msd-card-pct-row", children: [
|
|
10170
10170
|
/* @__PURE__ */ e("span", { className: "ps-msd-card-pct", children: [
|
|
10171
|
-
|
|
10171
|
+
te,
|
|
10172
10172
|
"%"
|
|
10173
10173
|
] }),
|
|
10174
|
-
/* @__PURE__ */ A("div", { className: "ps-msd-card-bar", children: /* @__PURE__ */ A("div", { className: "ps-msd-card-bar-fill", style: { width: `${
|
|
10174
|
+
/* @__PURE__ */ A("div", { className: "ps-msd-card-bar", children: /* @__PURE__ */ A("div", { className: "ps-msd-card-bar-fill", style: { width: `${te}%` } }) })
|
|
10175
10175
|
] }),
|
|
10176
10176
|
/* @__PURE__ */ A("p", { className: "ps-msd-card-note", children: s("Based on your measurements and the garment's tailoring chart.") })
|
|
10177
10177
|
] }),
|
|
@@ -10179,7 +10179,7 @@ function qo({
|
|
|
10179
10179
|
/* @__PURE__ */ A("span", { className: "ps-msd-blueprint-title", children: s("MEASUREMENT BLUEPRINT") }),
|
|
10180
10180
|
/* @__PURE__ */ A("div", { className: "ps-msd-blueprint-underline" }),
|
|
10181
10181
|
/* @__PURE__ */ A("div", { className: "ps-msd-rows", children: ve.map((S, pA) => {
|
|
10182
|
-
const UA = S.isLength && S.fit.includes("short") || S.fit.includes("tight"),
|
|
10182
|
+
const UA = S.isLength && S.fit.includes("short") || S.fit.includes("tight"), ae = S.fit === "good" ? "ps-good" : UA ? "ps-tight" : "ps-loose", Ae = q(S.area), pe = String(pA + 1).padStart(2, "0");
|
|
10183
10183
|
return /* @__PURE__ */ e("div", { className: "ps-msd-row", children: [
|
|
10184
10184
|
/* @__PURE__ */ e("div", { className: "ps-msd-row-num", children: [
|
|
10185
10185
|
pe,
|
|
@@ -10198,32 +10198,32 @@ function qo({
|
|
|
10198
10198
|
" ",
|
|
10199
10199
|
fe
|
|
10200
10200
|
] }),
|
|
10201
|
-
/* @__PURE__ */ A("span", { className: "ps-msd-cell-value", children: v ? S.rawChartRange || "" :
|
|
10201
|
+
/* @__PURE__ */ A("span", { className: "ps-msd-cell-value", children: v ? S.rawChartRange || "" : X(S.chartLabel) })
|
|
10202
10202
|
] })
|
|
10203
10203
|
] }),
|
|
10204
|
-
/* @__PURE__ */ e("div", { className: `ps-msd-row-badge ${
|
|
10204
|
+
/* @__PURE__ */ e("div", { className: `ps-msd-row-badge ${ae}`, children: [
|
|
10205
10205
|
S.isLength ? Ng(S.fit, s).toUpperCase() : XA(S.fit, S.isLength),
|
|
10206
10206
|
/* @__PURE__ */ A("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "11", height: "11", children: /* @__PURE__ */ A("path", { d: "M3 8l3.5 3.5L13 5" }) })
|
|
10207
10207
|
] })
|
|
10208
10208
|
] }, pA);
|
|
10209
10209
|
}) })
|
|
10210
10210
|
] }),
|
|
10211
|
-
F !== !1 &&
|
|
10211
|
+
F !== !1 && ne.length > 1 && /* @__PURE__ */ e("div", { className: "ps-msd-sizes", children: [
|
|
10212
10212
|
/* @__PURE__ */ A("span", { className: "ps-msd-sizes-label", children: s("TRY ANOTHER SIZE") }),
|
|
10213
|
-
/* @__PURE__ */ A("div", { className: "ps-msd-sizes-pills", children:
|
|
10213
|
+
/* @__PURE__ */ A("div", { className: "ps-msd-sizes-pills", children: ne.map((S) => /* @__PURE__ */ A(
|
|
10214
10214
|
"button",
|
|
10215
10215
|
{
|
|
10216
10216
|
type: "button",
|
|
10217
10217
|
className: `ps-msd-size-pill${S === fe ? " ps-active" : ""}`,
|
|
10218
|
-
onClick: () =>
|
|
10218
|
+
onClick: () => T(S === K ? null : S),
|
|
10219
10219
|
children: S
|
|
10220
10220
|
},
|
|
10221
10221
|
S
|
|
10222
10222
|
)) })
|
|
10223
10223
|
] }),
|
|
10224
|
-
F !== !1 &&
|
|
10224
|
+
F !== !1 && se.length > 0 && /* @__PURE__ */ e("div", { className: "ps-msd-sizes", children: [
|
|
10225
10225
|
/* @__PURE__ */ A("span", { className: "ps-msd-sizes-label", children: s("LENGTH ADJUSTMENT") }),
|
|
10226
|
-
/* @__PURE__ */ A("div", { className: "ps-msd-sizes-pills", children:
|
|
10226
|
+
/* @__PURE__ */ A("div", { className: "ps-msd-sizes-pills", children: se.map((S) => {
|
|
10227
10227
|
const pA = String(NA ?? "").trim() === String(S ?? "").trim(), UA = $A[String(S).trim()];
|
|
10228
10228
|
return /* @__PURE__ */ e(
|
|
10229
10229
|
"button",
|
|
@@ -10351,11 +10351,11 @@ function qo({
|
|
|
10351
10351
|
}
|
|
10352
10352
|
),
|
|
10353
10353
|
/* @__PURE__ */ e("div", { style: { display: "flex", alignItems: "center", gap: "0.5vw", marginTop: "0.35vw", marginBottom: "0.4vw" }, children: [
|
|
10354
|
-
|
|
10354
|
+
nA.length > 1 && /* @__PURE__ */ e(
|
|
10355
10355
|
"select",
|
|
10356
10356
|
{
|
|
10357
10357
|
value: uA || "",
|
|
10358
|
-
onChange: (x) =>
|
|
10358
|
+
onChange: (x) => rA(x.target.value || null),
|
|
10359
10359
|
style: {
|
|
10360
10360
|
fontSize: "0.7vw",
|
|
10361
10361
|
fontWeight: 600,
|
|
@@ -10372,7 +10372,7 @@ function qo({
|
|
|
10372
10372
|
"aria-label": s("Display size in country"),
|
|
10373
10373
|
children: [
|
|
10374
10374
|
/* @__PURE__ */ A("option", { value: "", children: s("Standard") }),
|
|
10375
|
-
|
|
10375
|
+
nA.map((x) => /* @__PURE__ */ A("option", { value: x, children: x }, x))
|
|
10376
10376
|
]
|
|
10377
10377
|
}
|
|
10378
10378
|
),
|
|
@@ -10410,7 +10410,7 @@ function qo({
|
|
|
10410
10410
|
/* @__PURE__ */ A("path", { d: "M4.5 8L7 10.5L11.5 5.5", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
10411
10411
|
] }),
|
|
10412
10412
|
/* @__PURE__ */ e("span", { style: { fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: [
|
|
10413
|
-
|
|
10413
|
+
te,
|
|
10414
10414
|
"% ",
|
|
10415
10415
|
s("Match based on your silhouette profile")
|
|
10416
10416
|
] })
|
|
@@ -10427,12 +10427,12 @@ function qo({
|
|
|
10427
10427
|
return /* @__PURE__ */ e("tr", { style: { borderBottom: q < ve.length - 1 ? "1px solid rgba(0,0,0,0.04)" : "none" }, children: [
|
|
10428
10428
|
/* @__PURE__ */ A("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", fontWeight: 500, color: "var(--ps-text-primary)" }, children: x.area }),
|
|
10429
10429
|
/* @__PURE__ */ A("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: v ? x.rawUserValue || "" : isNaN(x.userNum) || x.userNum === 0 ? "" : `${O(x.userNum)} ${a}` }),
|
|
10430
|
-
/* @__PURE__ */ A("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: v ? x.rawChartRange || "" :
|
|
10430
|
+
/* @__PURE__ */ A("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: v ? x.rawChartRange || "" : X(x.chartLabel) }),
|
|
10431
10431
|
/* @__PURE__ */ A("td", { style: { padding: "0.55vw 0.6vw", textAlign: "right" }, children: /* @__PURE__ */ A("span", { style: { fontSize: "0.6vw", fontWeight: 600, color: XA, background: S, borderRadius: "1vw", padding: "0.15vw 0.5vw", whiteSpace: "nowrap" }, children: x.isLength ? Ng(x.fit, s) : lr(x.fit, s) }) })
|
|
10432
10432
|
] }, q);
|
|
10433
10433
|
}) })
|
|
10434
10434
|
] }) }),
|
|
10435
|
-
|
|
10435
|
+
ne.length > 1 && /* @__PURE__ */ e("div", { style: { marginBottom: "0.8vw" }, children: [
|
|
10436
10436
|
/* @__PURE__ */ e("span", { style: { fontSize: "0.6vw", fontWeight: 700, color: "var(--ps-text-secondary)", textTransform: "uppercase", letterSpacing: "0.1em", display: "block", marginBottom: "0.4vw" }, children: [
|
|
10437
10437
|
s("Select"),
|
|
10438
10438
|
" ",
|
|
@@ -10440,12 +10440,12 @@ function qo({
|
|
|
10440
10440
|
" ",
|
|
10441
10441
|
s("Size")
|
|
10442
10442
|
] }),
|
|
10443
|
-
/* @__PURE__ */ A("div", { style: { display: "flex", gap: "0.3vw", flexWrap: "wrap" }, children:
|
|
10443
|
+
/* @__PURE__ */ A("div", { style: { display: "flex", gap: "0.3vw", flexWrap: "wrap" }, children: ne.map((x) => {
|
|
10444
10444
|
const q = x === fe;
|
|
10445
10445
|
return /* @__PURE__ */ A(
|
|
10446
10446
|
"button",
|
|
10447
10447
|
{
|
|
10448
|
-
onClick: () =>
|
|
10448
|
+
onClick: () => T(x === K ? null : x),
|
|
10449
10449
|
style: {
|
|
10450
10450
|
padding: "0.35vw 0.7vw",
|
|
10451
10451
|
borderRadius: "0.35vw",
|
|
@@ -10466,9 +10466,9 @@ function qo({
|
|
|
10466
10466
|
);
|
|
10467
10467
|
}) })
|
|
10468
10468
|
] }),
|
|
10469
|
-
|
|
10469
|
+
se.length > 0 && /* @__PURE__ */ e("div", { style: { marginBottom: "0.8vw", marginTop: "0.4vw" }, children: [
|
|
10470
10470
|
/* @__PURE__ */ A("span", { style: { fontSize: "0.6vw", fontWeight: 700, color: "var(--ps-text-secondary)", textTransform: "uppercase", letterSpacing: "0.1em", display: "block", marginBottom: "0.4vw" }, children: s("Length Adjustment") }),
|
|
10471
|
-
/* @__PURE__ */ A("div", { style: { display: "flex", gap: "0.3vw", flexWrap: "wrap" }, children:
|
|
10471
|
+
/* @__PURE__ */ A("div", { style: { display: "flex", gap: "0.3vw", flexWrap: "wrap" }, children: se.map((x) => {
|
|
10472
10472
|
const q = String(NA ?? "").trim() === String(x ?? "").trim(), XA = $A[String(x).trim()];
|
|
10473
10473
|
return /* @__PURE__ */ e(
|
|
10474
10474
|
"button",
|
|
@@ -10598,22 +10598,22 @@ function Cr({
|
|
|
10598
10598
|
onResetTryOn: z,
|
|
10599
10599
|
onClose: K,
|
|
10600
10600
|
userHeightCm: wA,
|
|
10601
|
-
pendingCustomSizes:
|
|
10601
|
+
pendingCustomSizes: T,
|
|
10602
10602
|
onPendingCustomSizeChange: zA,
|
|
10603
|
-
tryOnAvailable:
|
|
10603
|
+
tryOnAvailable: HA = !0,
|
|
10604
10604
|
t: E
|
|
10605
10605
|
}) {
|
|
10606
|
-
const
|
|
10606
|
+
const iA = (g?.unit || l || "").toString().toLowerCase(), O = iA === "mm" ? "mm" : iA === "cm" ? "cm" : "in", fA = E(O === "mm" ? "mm" : l === "cm" ? "cm" : "in"), [X, nA] = Q({}), uA = pt, rA = IA((P, H, N) => Te(P, H, N), []), MA = xe(() => {
|
|
10607
10607
|
if (!t?.headers || !t?.rows) return -1;
|
|
10608
10608
|
const P = t.headers.findIndex((H) => /size|taglia|größe|taille/i.test(H.trim()));
|
|
10609
10609
|
if (P >= 0) return P;
|
|
10610
10610
|
for (let H = 0; H < t.headers.length; H++) {
|
|
10611
10611
|
const N = t.headers[H];
|
|
10612
|
-
if (t.rows.some((J) => /^(XXS|XS|S|M|L|XL|XXL|XXXL|ONE SIZE|\d{1,2})$/i.test(
|
|
10612
|
+
if (t.rows.some((J) => /^(XXS|XS|S|M|L|XL|XXL|XXXL|ONE SIZE|\d{1,2})$/i.test(rA(J, H, N)))) return H;
|
|
10613
10613
|
}
|
|
10614
10614
|
return 0;
|
|
10615
|
-
}, [t,
|
|
10616
|
-
xe(() =>
|
|
10615
|
+
}, [t, rA]), RA = t?.headers?.[MA] || E("Size");
|
|
10616
|
+
xe(() => MA < 0 || !t?.rows ? [] : t.rows.map((P) => rA(P, MA, RA)).filter(Boolean), [t, MA, RA, rA]);
|
|
10617
10617
|
const mA = xe(() => {
|
|
10618
10618
|
if (!t?.headers || !t?.rows) return [];
|
|
10619
10619
|
const P = [];
|
|
@@ -10629,7 +10629,7 @@ function Cr({
|
|
|
10629
10629
|
}
|
|
10630
10630
|
let J = null;
|
|
10631
10631
|
for (const _ of t.rows) {
|
|
10632
|
-
const gA = String(
|
|
10632
|
+
const gA = String(rA(_, H, t.headers[H]) || "").trim();
|
|
10633
10633
|
if (gA) {
|
|
10634
10634
|
if (/cm\b|centimeter/i.test(gA)) {
|
|
10635
10635
|
J = "cm";
|
|
@@ -10644,42 +10644,42 @@ function Cr({
|
|
|
10644
10644
|
P.push(J);
|
|
10645
10645
|
}
|
|
10646
10646
|
return P;
|
|
10647
|
-
}, [t,
|
|
10648
|
-
if (!t?.headers || !t?.rows ||
|
|
10647
|
+
}, [t, rA]), we = IA((P, H) => {
|
|
10648
|
+
if (!t?.headers || !t?.rows || MA < 0) return null;
|
|
10649
10649
|
const N = P.toLowerCase().trim(), J = fA === "cm" || fA === "", _ = J ? "cm" : "in", gA = [];
|
|
10650
|
-
for (let
|
|
10651
|
-
const
|
|
10652
|
-
if (
|
|
10653
|
-
gA.push(
|
|
10650
|
+
for (let j = 0; j < t.headers.length; j++) {
|
|
10651
|
+
const CA = (t.headers[j] || "").toLowerCase().trim();
|
|
10652
|
+
if (CA === N) {
|
|
10653
|
+
gA.push(j);
|
|
10654
10654
|
continue;
|
|
10655
10655
|
}
|
|
10656
|
-
const
|
|
10657
|
-
(
|
|
10656
|
+
const YA = CA.replace(/\s*\(.*?\)\s*/g, "").trim();
|
|
10657
|
+
(YA === N || CA.includes(N) || N.includes(YA)) && gA.push(j);
|
|
10658
10658
|
}
|
|
10659
10659
|
if (gA.length === 0) return null;
|
|
10660
|
-
let ee = gA.find((
|
|
10660
|
+
let ee = gA.find((j) => mA[j] === _);
|
|
10661
10661
|
ee == null && (ee = gA[0]);
|
|
10662
|
-
const EA = t.headers[ee],
|
|
10663
|
-
if (!
|
|
10664
|
-
const he =
|
|
10662
|
+
const EA = t.headers[ee], Be = t.rows.find((j) => rA(j, MA, RA) === H);
|
|
10663
|
+
if (!Be) return null;
|
|
10664
|
+
const he = rA(Be, ee, EA);
|
|
10665
10665
|
if (!he) return null;
|
|
10666
|
-
const
|
|
10666
|
+
const kA = uA(he), f = mA[ee];
|
|
10667
10667
|
if (f === "in" && J) {
|
|
10668
|
-
const
|
|
10669
|
-
return { range: String(
|
|
10668
|
+
const j = (CA) => +(CA * 2.54).toFixed(1);
|
|
10669
|
+
return { range: String(j(kA.min)) + (kA.min !== kA.max ? "–" + String(j(kA.max)) : ""), min: j(kA.min), max: j(kA.max) };
|
|
10670
10670
|
}
|
|
10671
10671
|
if (f === "cm" && !J) {
|
|
10672
|
-
const
|
|
10673
|
-
return { range: String(
|
|
10672
|
+
const j = (CA) => +(CA / 2.54).toFixed(1);
|
|
10673
|
+
return { range: String(j(kA.min)) + (kA.min !== kA.max ? "–" + String(j(kA.max)) : ""), min: j(kA.min), max: j(kA.max) };
|
|
10674
10674
|
}
|
|
10675
|
-
return { range: he, ...
|
|
10676
|
-
}, [t,
|
|
10675
|
+
return { range: he, ...kA };
|
|
10676
|
+
}, [t, MA, RA, fA, rA, uA, mA]), $A = g?.recommendedSize || "";
|
|
10677
10677
|
xe(() => g?.internationalSizes || {}, [g]);
|
|
10678
|
-
const [PA,
|
|
10678
|
+
const [PA, ge] = Q("fit"), [qA, fe] = Q(null), [vA, ue] = Q(!1), [$, Pe] = Q(!1), [ve, Fe] = Q(!1), [te, le] = Q(null), [dA, _A] = Q(!1), [TA, y] = Q({ w: 800, h: 1200 }), GA = T ?? {}, Ee = IA((P) => {
|
|
10679
10679
|
const H = P.currentTarget;
|
|
10680
10680
|
H.naturalWidth && H.naturalHeight && y({ w: H.naturalWidth, h: H.naturalHeight });
|
|
10681
10681
|
}, []);
|
|
10682
|
-
|
|
10682
|
+
xA(() => {
|
|
10683
10683
|
if (!r || h) {
|
|
10684
10684
|
le(null), _A(!1);
|
|
10685
10685
|
return;
|
|
@@ -10690,15 +10690,15 @@ function Cr({
|
|
|
10690
10690
|
_A(!0);
|
|
10691
10691
|
});
|
|
10692
10692
|
}, [r, h]);
|
|
10693
|
-
const [Ge, NA] = Q(!1), [He,
|
|
10693
|
+
const [Ge, NA] = Q(!1), [He, ne] = Q(!1);
|
|
10694
10694
|
QA(null);
|
|
10695
|
-
const [V,
|
|
10696
|
-
|
|
10695
|
+
const [V, se] = Q(!1), [x, q] = Q(null), [XA, S] = Q(!1), pA = QA(null), [UA, ae] = Q(null), [Ae, pe] = Q(!1);
|
|
10696
|
+
xA(() => {
|
|
10697
10697
|
if (x) {
|
|
10698
10698
|
const P = URL.createObjectURL(x);
|
|
10699
|
-
return
|
|
10699
|
+
return ae(P), () => URL.revokeObjectURL(P);
|
|
10700
10700
|
}
|
|
10701
|
-
|
|
10701
|
+
ae(null);
|
|
10702
10702
|
}, [x]);
|
|
10703
10703
|
const LA = qA || $A;
|
|
10704
10704
|
xe(() => {
|
|
@@ -10714,33 +10714,33 @@ function Cr({
|
|
|
10714
10714
|
const ee = we(N.measurement, LA);
|
|
10715
10715
|
if (ee && ee.min > 0) {
|
|
10716
10716
|
_ = Qg(ee.range);
|
|
10717
|
-
const EA = ee.min,
|
|
10718
|
-
if (J >= EA - f && J <=
|
|
10717
|
+
const EA = ee.min, Be = ee.max, he = Be - EA, kA = he > 0 ? he * 0.5 : EA * 0.05 || 3, f = Math.max((Be || EA) * 5e-3, 0.25);
|
|
10718
|
+
if (J >= EA - f && J <= Be + f) gA = "good";
|
|
10719
10719
|
else if (J < EA) {
|
|
10720
|
-
const
|
|
10721
|
-
gA =
|
|
10720
|
+
const j = EA - J;
|
|
10721
|
+
gA = j > kA * 2 ? "too-loose" : j > kA ? "loose" : "a-bit-loose";
|
|
10722
10722
|
} else {
|
|
10723
|
-
const
|
|
10724
|
-
gA =
|
|
10723
|
+
const j = J - Be;
|
|
10724
|
+
gA = j > kA * 2 ? "too-tight" : j > kA ? "tight" : "a-bit-tight";
|
|
10725
10725
|
}
|
|
10726
10726
|
}
|
|
10727
10727
|
}
|
|
10728
10728
|
return { area: N.measurement, userNum: Ze(N.userValue), chartLabel: _, fit: gA };
|
|
10729
10729
|
});
|
|
10730
10730
|
}, [g, LA, $A, we]), xe(() => {
|
|
10731
|
-
if (!t?.headers || !t?.rows ||
|
|
10732
|
-
const P = t.rows.find((N) =>
|
|
10731
|
+
if (!t?.headers || !t?.rows || MA < 0) return null;
|
|
10732
|
+
const P = t.rows.find((N) => rA(N, MA, RA) === LA);
|
|
10733
10733
|
if (!P) return null;
|
|
10734
10734
|
const H = [];
|
|
10735
10735
|
for (let N = 0; N < t.headers.length; N++) {
|
|
10736
10736
|
const J = t.headers[N] || "";
|
|
10737
|
-
if (N ===
|
|
10738
|
-
const _ =
|
|
10737
|
+
if (N === MA) continue;
|
|
10738
|
+
const _ = rA(P, N, J);
|
|
10739
10739
|
_ && H.push({ header: J, value: _ });
|
|
10740
10740
|
}
|
|
10741
10741
|
return H;
|
|
10742
|
-
}, [t,
|
|
10743
|
-
const Ce = !!(t?.sections && Object.keys(t.sections).length > 1),
|
|
10742
|
+
}, [t, MA, RA, LA, rA]);
|
|
10743
|
+
const Ce = !!(t?.sections && Object.keys(t.sections).length > 1), yA = xe(() => {
|
|
10744
10744
|
const P = {}, H = (N) => {
|
|
10745
10745
|
if (N)
|
|
10746
10746
|
for (const J of N) {
|
|
@@ -10757,9 +10757,9 @@ function Cr({
|
|
|
10757
10757
|
const _ = N.toLowerCase();
|
|
10758
10758
|
let gA = t?.sections?.[N];
|
|
10759
10759
|
if (!gA && t?.sections) {
|
|
10760
|
-
const EA = Object.entries(t.sections).find(([
|
|
10761
|
-
const he =
|
|
10762
|
-
return
|
|
10760
|
+
const EA = Object.entries(t.sections).find(([Be]) => {
|
|
10761
|
+
const he = Be.toLowerCase(), kA = he.replace(/\s*(size|sizing)\s*/gi, "").trim();
|
|
10762
|
+
return kA ? _ === he || _.includes(kA) || kA.includes(_) : !1;
|
|
10763
10763
|
});
|
|
10764
10764
|
EA && (gA = EA[1]);
|
|
10765
10765
|
}
|
|
@@ -10767,8 +10767,8 @@ function Cr({
|
|
|
10767
10767
|
const ee = { ...P };
|
|
10768
10768
|
if (J.matchDetails)
|
|
10769
10769
|
for (const EA of J.matchDetails) {
|
|
10770
|
-
const
|
|
10771
|
-
|
|
10770
|
+
const Be = Ze(EA.userValue);
|
|
10771
|
+
Be > 0 && (ee[EA.measurement.toLowerCase()] = Be);
|
|
10772
10772
|
}
|
|
10773
10773
|
return { name: N, section: gA, secResult: J, userMeasurements: ee };
|
|
10774
10774
|
}) : !Ce || !t?.sections ? [] : Object.entries(t.sections).map(([N, J]) => {
|
|
@@ -10780,14 +10780,14 @@ function Cr({
|
|
|
10780
10780
|
}
|
|
10781
10781
|
return { name: N, section: J, secResult: _, userMeasurements: gA };
|
|
10782
10782
|
});
|
|
10783
|
-
}, [Ce, t, g, wA]), lA = xe(() =>
|
|
10783
|
+
}, [Ce, t, g, wA]), lA = xe(() => yA.filter((P) => !Ug(P.name)), [yA]), I = xe(() => yA.filter((P) => Ug(P.name)), [yA]), FA = IA((P, H) => {
|
|
10784
10784
|
if (!H) return H;
|
|
10785
10785
|
let J = cg(P, I)?.secResult?.recommendedSize?.trim() || "";
|
|
10786
|
-
if (J || (J =
|
|
10786
|
+
if (J || (J = yA.find((Be) => Be.name === P)?.secResult?.length?.trim() || ""), !J) return H;
|
|
10787
10787
|
const _ = J.toLowerCase();
|
|
10788
10788
|
if (/^\d/.test(J)) {
|
|
10789
|
-
const
|
|
10790
|
-
return `${H} / ${
|
|
10789
|
+
const Be = /pant|trouser|inseam/i.test(P) ? "Inseam" : "Length";
|
|
10790
|
+
return `${H} / ${Be} ${J}`;
|
|
10791
10791
|
}
|
|
10792
10792
|
if (/^x(tra)?[- ]?long/.test(_)) return /^\d/.test(H) ? `${H}XL` : `${H} / Extra Long`;
|
|
10793
10793
|
if (/^\d/.test(H)) {
|
|
@@ -10796,7 +10796,7 @@ function Cr({
|
|
|
10796
10796
|
}
|
|
10797
10797
|
const ee = J.replace(/\s+/g, " ").trim();
|
|
10798
10798
|
return `${H} / ${ee}`;
|
|
10799
|
-
}, [I,
|
|
10799
|
+
}, [I, yA]);
|
|
10800
10800
|
xe(() => {
|
|
10801
10801
|
const P = wA || 0;
|
|
10802
10802
|
if (!P) return "";
|
|
@@ -10808,7 +10808,7 @@ function Cr({
|
|
|
10808
10808
|
}, [wA, fA]);
|
|
10809
10809
|
const oA = !!m, KA = oA && o, me = !oA && o, ZA = !!g, de = oA ? ZA && (!!r && !h) : ZA, De = Oo(), JA = i === "face" || i === "head";
|
|
10810
10810
|
g?.found;
|
|
10811
|
-
const Qe = i === "foot" || !
|
|
10811
|
+
const Qe = i === "foot" || !HA, SA = g?.mismatchDetected ? /* @__PURE__ */ e("div", { style: {
|
|
10812
10812
|
margin: De ? "8px 0 0" : "0.4vw 0 0",
|
|
10813
10813
|
padding: De ? "10px 12px" : "0.6vw 0.85vw",
|
|
10814
10814
|
borderRadius: De ? "8px" : "0.45vw",
|
|
@@ -10916,10 +10916,10 @@ function Cr({
|
|
|
10916
10916
|
overlayNode: h ? /* @__PURE__ */ e(eA, { children: [
|
|
10917
10917
|
/* @__PURE__ */ A(Wo, { tryOnStartedAt: C ?? null, t: E }),
|
|
10918
10918
|
/* @__PURE__ */ A(Vo, { active: !0 })
|
|
10919
|
-
] }) : r &&
|
|
10919
|
+
] }) : r && dA && te ? /* @__PURE__ */ A(
|
|
10920
10920
|
Fo,
|
|
10921
10921
|
{
|
|
10922
|
-
lines:
|
|
10922
|
+
lines: te,
|
|
10923
10923
|
fitRows: (() => {
|
|
10924
10924
|
const H = [...g?.matchDetails || []];
|
|
10925
10925
|
if (g?.sections)
|
|
@@ -10992,27 +10992,27 @@ function Cr({
|
|
|
10992
10992
|
sizeGuide: t,
|
|
10993
10993
|
sectionEntries: lA.map(({ name: P, secResult: H }) => {
|
|
10994
10994
|
const N = H?.size || H.recommendedSize || "";
|
|
10995
|
-
return { name: P, secResult: { ...H, recommendedSize:
|
|
10995
|
+
return { name: P, secResult: { ...H, recommendedSize: FA(P, N) } };
|
|
10996
10996
|
}),
|
|
10997
10997
|
pendingCustomSizes: GA,
|
|
10998
10998
|
onSelectSection: (P) => F(P),
|
|
10999
10999
|
onTryOn: () => {
|
|
11000
|
-
q(u || null),
|
|
11000
|
+
q(u || null), se(!0);
|
|
11001
11001
|
},
|
|
11002
11002
|
tryOnProcessing: h,
|
|
11003
11003
|
resultImageUrl: r,
|
|
11004
11004
|
tryOnDone: !!r && !h,
|
|
11005
11005
|
onTryAgain: () => {
|
|
11006
|
-
z?.(), q(u || null),
|
|
11006
|
+
z?.(), q(u || null), se(!0);
|
|
11007
11007
|
},
|
|
11008
11008
|
onClose: K,
|
|
11009
11009
|
showLines: $,
|
|
11010
11010
|
onToggleLines: JA ? void 0 : () => Pe(!$),
|
|
11011
11011
|
onImageLoad: Ee,
|
|
11012
|
-
overlayNode: r &&
|
|
11012
|
+
overlayNode: r && dA && te ? /* @__PURE__ */ A(
|
|
11013
11013
|
Fo,
|
|
11014
11014
|
{
|
|
11015
|
-
lines:
|
|
11015
|
+
lines: te,
|
|
11016
11016
|
fitRows: (() => {
|
|
11017
11017
|
const P = [...g?.matchDetails || []];
|
|
11018
11018
|
if (g?.sections)
|
|
@@ -11039,7 +11039,7 @@ function Cr({
|
|
|
11039
11039
|
/* @__PURE__ */ A("img", { src: h && m ? m : r || a, alt: n, className: "ps-tryon-v2-bg-img", onLoad: Ee }),
|
|
11040
11040
|
h && /* @__PURE__ */ A(Wo, { tryOnStartedAt: C ?? null, t: E }),
|
|
11041
11041
|
/* @__PURE__ */ A(Vo, { active: !!h }),
|
|
11042
|
-
r && !h &&
|
|
11042
|
+
r && !h && dA && te && /* @__PURE__ */ A(Fo, { lines: te, fitRows: (() => {
|
|
11043
11043
|
const P = [...g?.matchDetails || []];
|
|
11044
11044
|
if (g?.sections)
|
|
11045
11045
|
for (const N of Object.values(g.sections))
|
|
@@ -11076,25 +11076,25 @@ function Cr({
|
|
|
11076
11076
|
SA,
|
|
11077
11077
|
/* @__PURE__ */ A("div", { className: "ps-tryon-v2-sep" }),
|
|
11078
11078
|
/* @__PURE__ */ A("div", { className: "ps-tryon-sr-cards-v2", children: lA.map(({ name: P, secResult: H }, N) => {
|
|
11079
|
-
const J = t?.sectionImages?.[P], _ = sr(P), gA = N === lA.length - 1 && lA.length % 2 !== 0, ee = H, EA = GA[P],
|
|
11080
|
-
return /* @__PURE__ */ e("button", { className: `ps-tryon-sr-card-v2${gA ? " ps-full" : ""}${
|
|
11079
|
+
const J = t?.sectionImages?.[P], _ = sr(P), gA = N === lA.length - 1 && lA.length % 2 !== 0, ee = H, EA = GA[P], Be = !!EA, he = Be ? EA.displayLabel : FA(P, ee.size || H.recommendedSize || "");
|
|
11080
|
+
return /* @__PURE__ */ e("button", { className: `ps-tryon-sr-card-v2${gA ? " ps-full" : ""}${Be ? " ps-overridden" : ""}`, onClick: () => F(P), style: { animationDelay: `${N * 0.07}s` }, children: [
|
|
11081
11081
|
/* @__PURE__ */ e("div", { className: "ps-tryon-sr-card-v2-text", children: [
|
|
11082
11082
|
/* @__PURE__ */ e("span", { className: "ps-tryon-sr-card-v2-label", children: [
|
|
11083
11083
|
_ && /* @__PURE__ */ A("img", { src: _, alt: "", className: "ps-tryon-sr-card-v2-label-icon" }),
|
|
11084
11084
|
P.replace(/\s*[—–-]\s*.*/g, "")
|
|
11085
11085
|
] }),
|
|
11086
11086
|
/* @__PURE__ */ A("span", { className: "ps-tryon-sr-card-v2-value", children: ee.found === !1 ? E("No fit") : (() => {
|
|
11087
|
-
const
|
|
11088
|
-
return
|
|
11089
|
-
/* @__PURE__ */ A("span", { children: he.slice(0,
|
|
11090
|
-
/* @__PURE__ */ A("span", { className: "ps-tryon-sr-card-v2-value-suffix", children: he.slice(
|
|
11087
|
+
const kA = he.indexOf(" / ");
|
|
11088
|
+
return kA === -1 ? he : /* @__PURE__ */ e(eA, { children: [
|
|
11089
|
+
/* @__PURE__ */ A("span", { children: he.slice(0, kA) }),
|
|
11090
|
+
/* @__PURE__ */ A("span", { className: "ps-tryon-sr-card-v2-value-suffix", children: he.slice(kA) })
|
|
11091
11091
|
] });
|
|
11092
11092
|
})() }),
|
|
11093
11093
|
/* @__PURE__ */ A(
|
|
11094
11094
|
"span",
|
|
11095
11095
|
{
|
|
11096
|
-
className: `ps-tryon-sr-card-v2-rec-pill${
|
|
11097
|
-
children: E(
|
|
11096
|
+
className: `ps-tryon-sr-card-v2-rec-pill${Be ? " is-overridden" : ""}`,
|
|
11097
|
+
children: E(Be ? "YOUR SELECTION" : "RECOMMENDED")
|
|
11098
11098
|
}
|
|
11099
11099
|
),
|
|
11100
11100
|
/* @__PURE__ */ e("span", { className: "ps-tryon-sr-card-v2-view", children: [
|
|
@@ -11141,7 +11141,7 @@ function Cr({
|
|
|
11141
11141
|
style: { marginTop: 0 },
|
|
11142
11142
|
disabled: h,
|
|
11143
11143
|
onClick: () => {
|
|
11144
|
-
q(u || null),
|
|
11144
|
+
q(u || null), se(!0);
|
|
11145
11145
|
},
|
|
11146
11146
|
children: [
|
|
11147
11147
|
/* @__PURE__ */ A(go, { size: 14 }),
|
|
@@ -11160,7 +11160,7 @@ function Cr({
|
|
|
11160
11160
|
if (g?.matchDetails)
|
|
11161
11161
|
for (const gA of g.matchDetails) N[gA.measurement.toLowerCase()] = Ze(gA.userValue);
|
|
11162
11162
|
const J = E("Your Fit"), _ = () => {
|
|
11163
|
-
r || (q(u || null),
|
|
11163
|
+
r || (q(u || null), se(!0));
|
|
11164
11164
|
};
|
|
11165
11165
|
return De ? /* @__PURE__ */ e(eA, { children: [
|
|
11166
11166
|
SA && /* @__PURE__ */ A("div", { style: { padding: "0 16px" }, children: SA }),
|
|
@@ -11193,10 +11193,10 @@ function Cr({
|
|
|
11193
11193
|
showLines: $,
|
|
11194
11194
|
onToggleLines: JA ? void 0 : () => Pe(!$),
|
|
11195
11195
|
onImageLoad: Ee,
|
|
11196
|
-
overlayNode: r &&
|
|
11196
|
+
overlayNode: r && dA && te ? /* @__PURE__ */ A(
|
|
11197
11197
|
Fo,
|
|
11198
11198
|
{
|
|
11199
|
-
lines:
|
|
11199
|
+
lines: te,
|
|
11200
11200
|
fitRows: (g?.matchDetails || []).map((gA) => ({ area: gA.measurement, userNum: parseFloat(gA.userValue) || 0, chartLabel: gA.chartRange || "", fit: gA.fit })),
|
|
11201
11201
|
show: $,
|
|
11202
11202
|
imgWidth: TA.w,
|
|
@@ -11219,7 +11219,7 @@ function Cr({
|
|
|
11219
11219
|
),
|
|
11220
11220
|
h && /* @__PURE__ */ A(Wo, { tryOnStartedAt: C ?? null, t: E }),
|
|
11221
11221
|
/* @__PURE__ */ A(Vo, { active: !!h }),
|
|
11222
|
-
r && !h &&
|
|
11222
|
+
r && !h && dA && te && /* @__PURE__ */ A(Fo, { lines: te, fitRows: (g?.matchDetails || []).map((gA) => ({ area: gA.measurement, userNum: parseFloat(gA.userValue) || 0, chartLabel: gA.chartRange || "", fit: gA.fit })), show: $, imgWidth: TA.w, imgHeight: TA.h }),
|
|
11223
11223
|
r && !h && /* @__PURE__ */ e("div", { style: { position: "absolute", bottom: "0.5vw", left: "0.5vw", zIndex: 3, display: "flex", flexDirection: "column", gap: "0.3vw" }, children: [
|
|
11224
11224
|
!JA && /* @__PURE__ */ A("button", { className: "ps-tryon-sr-glass-btn", onClick: () => Pe(!$), children: E($ ? "Hide Fit" : "Show Fit") }),
|
|
11225
11225
|
/* @__PURE__ */ A("button", { className: "ps-tryon-sr-glass-btn", onClick: d, children: E("Download") })
|
|
@@ -11449,7 +11449,7 @@ function Cr({
|
|
|
11449
11449
|
className: "ps-pm-primary-btn",
|
|
11450
11450
|
disabled: !x,
|
|
11451
11451
|
onClick: () => {
|
|
11452
|
-
x && (M(x), Y(x),
|
|
11452
|
+
x && (M(x), Y(x), se(!1));
|
|
11453
11453
|
},
|
|
11454
11454
|
children: E("START TRY-ON")
|
|
11455
11455
|
}
|
|
@@ -11468,7 +11468,7 @@ function Cr({
|
|
|
11468
11468
|
type: "button",
|
|
11469
11469
|
className: "ps-pm-secondary-btn",
|
|
11470
11470
|
onClick: () => {
|
|
11471
|
-
|
|
11471
|
+
se(!1), q(null);
|
|
11472
11472
|
},
|
|
11473
11473
|
children: E("BACK")
|
|
11474
11474
|
}
|
|
@@ -11603,13 +11603,13 @@ function Cr({
|
|
|
11603
11603
|
] })
|
|
11604
11604
|
] }),
|
|
11605
11605
|
/* @__PURE__ */ e("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", marginTop: "0.8vw", gap: "0.5vw", flexShrink: 0 }, children: [
|
|
11606
|
-
/* @__PURE__ */ e("button", { className: "ps-bp-back-btn", onClick: () =>
|
|
11606
|
+
/* @__PURE__ */ e("button", { className: "ps-bp-back-btn", onClick: () => se(!1), type: "button", children: [
|
|
11607
11607
|
/* @__PURE__ */ A("span", { className: "ps-bp-back-arrow", children: "←" }),
|
|
11608
11608
|
" ",
|
|
11609
11609
|
E("Back")
|
|
11610
11610
|
] }),
|
|
11611
11611
|
/* @__PURE__ */ e("button", { className: "ps-tryon-v2-cta", style: { marginTop: 0 }, disabled: !x, onClick: () => {
|
|
11612
|
-
x && (M(x), Y(x),
|
|
11612
|
+
x && (M(x), Y(x), se(!1));
|
|
11613
11613
|
}, children: [
|
|
11614
11614
|
/* @__PURE__ */ A(go, { size: 14 }),
|
|
11615
11615
|
" ",
|
|
@@ -11634,20 +11634,20 @@ function Cr({
|
|
|
11634
11634
|
] })
|
|
11635
11635
|
] }),
|
|
11636
11636
|
/* @__PURE__ */ A("div", { className: "ps-tryon-sr-chart-table-wrap", children: /* @__PURE__ */ e("table", { className: "ps-tryon-sr-chart-table", children: [
|
|
11637
|
-
/* @__PURE__ */ A("thead", { children: /* @__PURE__ */ A("tr", { children: H.headers.map((EA,
|
|
11638
|
-
/* @__PURE__ */ A("tbody", { children: H.rows.map((EA,
|
|
11639
|
-
const
|
|
11640
|
-
return /* @__PURE__ */ A("tr", { className:
|
|
11637
|
+
/* @__PURE__ */ A("thead", { children: /* @__PURE__ */ A("tr", { children: H.headers.map((EA, Be) => /* @__PURE__ */ A("th", { className: Be === gA ? "ps-size-col" : "", children: EA }, Be)) }) }),
|
|
11638
|
+
/* @__PURE__ */ A("tbody", { children: H.rows.map((EA, Be) => {
|
|
11639
|
+
const kA = Te(EA, gA, ee) === J;
|
|
11640
|
+
return /* @__PURE__ */ A("tr", { className: kA ? "ps-active-row" : "", children: H.headers.map((f, j) => /* @__PURE__ */ A("td", { className: j === gA ? "ps-size-col" : "", children: Te(EA, j, f) }, j)) }, Be);
|
|
11641
11641
|
}) })
|
|
11642
11642
|
] }) })
|
|
11643
11643
|
] }, P);
|
|
11644
11644
|
}) : t.headers && t.rows ? (
|
|
11645
11645
|
/* Single section fallback */
|
|
11646
11646
|
/* @__PURE__ */ A("div", { className: "ps-tryon-sr-chart-table-wrap", children: /* @__PURE__ */ e("table", { className: "ps-tryon-sr-chart-table", children: [
|
|
11647
|
-
/* @__PURE__ */ A("thead", { children: /* @__PURE__ */ A("tr", { children: t.headers.map((P, H) => /* @__PURE__ */ A("th", { className: H ===
|
|
11647
|
+
/* @__PURE__ */ A("thead", { children: /* @__PURE__ */ A("tr", { children: t.headers.map((P, H) => /* @__PURE__ */ A("th", { className: H === MA ? "ps-size-col" : "", children: P }, H)) }) }),
|
|
11648
11648
|
/* @__PURE__ */ A("tbody", { children: t.rows.map((P, H) => {
|
|
11649
|
-
const J =
|
|
11650
|
-
return /* @__PURE__ */ A("tr", { className: J ? "ps-active-row" : "", children: t.headers.map((_, gA) => /* @__PURE__ */ A("td", { className: gA ===
|
|
11649
|
+
const J = rA(P, MA, RA) === LA;
|
|
11650
|
+
return /* @__PURE__ */ A("tr", { className: J ? "ps-active-row" : "", children: t.headers.map((_, gA) => /* @__PURE__ */ A("td", { className: gA === MA ? "ps-size-col" : "", children: rA(P, gA, _) }, gA)) }, H);
|
|
11651
11651
|
}) })
|
|
11652
11652
|
] }) })
|
|
11653
11653
|
) : null })
|
|
@@ -11728,7 +11728,7 @@ function Jg({
|
|
|
11728
11728
|
t: d
|
|
11729
11729
|
}) {
|
|
11730
11730
|
const u = QA(null), m = QA(0), [M, L] = Q(!1), [Y, h] = Q(!1), [C, W] = Q(""), [Z, i] = Q(null), [b, v] = Q(null);
|
|
11731
|
-
|
|
11731
|
+
xA(() => {
|
|
11732
11732
|
t || (i(null), v(null));
|
|
11733
11733
|
}, [t]);
|
|
11734
11734
|
const F = async (O) => {
|
|
@@ -11750,8 +11750,8 @@ function Jg({
|
|
|
11750
11750
|
try {
|
|
11751
11751
|
const fA = await eg(O, o, g);
|
|
11752
11752
|
if (!fA.isAdult) {
|
|
11753
|
-
const
|
|
11754
|
-
i(
|
|
11753
|
+
const X = fA.reasoning?.trim() || d("This photo appears to be of a minor. Please upload a photo of someone 18 or older.");
|
|
11754
|
+
i(X), h(!1), W("");
|
|
11755
11755
|
return;
|
|
11756
11756
|
}
|
|
11757
11757
|
try {
|
|
@@ -11771,13 +11771,13 @@ function Jg({
|
|
|
11771
11771
|
O.preventDefault(), O.stopPropagation(), !(c || Y) && (m.current += 1, L(!0));
|
|
11772
11772
|
}, wA = (O) => {
|
|
11773
11773
|
O.preventDefault(), O.stopPropagation(), O.dataTransfer && (O.dataTransfer.dropEffect = "copy");
|
|
11774
|
-
},
|
|
11774
|
+
}, T = (O) => {
|
|
11775
11775
|
O.preventDefault(), O.stopPropagation(), m.current = Math.max(0, m.current - 1), m.current === 0 && L(!1);
|
|
11776
11776
|
}, zA = (O) => {
|
|
11777
11777
|
if (O.preventDefault(), O.stopPropagation(), m.current = 0, L(!1), c || Y) return;
|
|
11778
11778
|
const fA = O.dataTransfer?.files?.[0];
|
|
11779
11779
|
fA && F(fA);
|
|
11780
|
-
},
|
|
11780
|
+
}, HA = (O) => {
|
|
11781
11781
|
const fA = O.target.files?.[0];
|
|
11782
11782
|
fA && F(fA), u.current && (u.current.value = "");
|
|
11783
11783
|
}, E = () => {
|
|
@@ -11790,7 +11790,7 @@ function Jg({
|
|
|
11790
11790
|
onClick: t ? void 0 : z,
|
|
11791
11791
|
onDragEnter: K,
|
|
11792
11792
|
onDragOver: wA,
|
|
11793
|
-
onDragLeave:
|
|
11793
|
+
onDragLeave: T,
|
|
11794
11794
|
onDrop: zA,
|
|
11795
11795
|
children: [
|
|
11796
11796
|
/* @__PURE__ */ A(
|
|
@@ -11800,7 +11800,7 @@ function Jg({
|
|
|
11800
11800
|
type: "file",
|
|
11801
11801
|
accept: "image/jpeg,image/png,image/webp",
|
|
11802
11802
|
style: { display: "none" },
|
|
11803
|
-
onChange:
|
|
11803
|
+
onChange: HA
|
|
11804
11804
|
}
|
|
11805
11805
|
),
|
|
11806
11806
|
t && !Z && /* @__PURE__ */ e(eA, { children: [
|
|
@@ -11862,7 +11862,7 @@ function Dr({
|
|
|
11862
11862
|
t: c
|
|
11863
11863
|
}) {
|
|
11864
11864
|
const n = Oo(), [w, s] = Q(null), [l, D] = Q(null);
|
|
11865
|
-
|
|
11865
|
+
xA(() => {
|
|
11866
11866
|
if (!w) {
|
|
11867
11867
|
D(null);
|
|
11868
11868
|
return;
|
|
@@ -12081,7 +12081,7 @@ function Qr({
|
|
|
12081
12081
|
const z = u("Pair this with neutral tones for a balanced look"), K = u("Layer with a fitted base for sharper silhouette"), wA = u("Cuff once for a relaxed everyday feel");
|
|
12082
12082
|
return [z, K, wA];
|
|
12083
12083
|
})(), [Z, i] = Q(0), [b, v] = Q(0);
|
|
12084
|
-
|
|
12084
|
+
xA(() => {
|
|
12085
12085
|
const z = setInterval(() => i((wA) => (wA + 1) % C.length), 4e3), K = setInterval(() => v((wA) => (wA + 1) % W.length), 5e3);
|
|
12086
12086
|
return () => {
|
|
12087
12087
|
clearInterval(z), clearInterval(K);
|
|
@@ -12329,72 +12329,72 @@ function Zo({
|
|
|
12329
12329
|
}
|
|
12330
12330
|
function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, onEstimate: c, t: n }) {
|
|
12331
12331
|
const [w, s] = Q(null), [l, D] = Q("identity"), [d, u] = Q("name-photo"), [m, M] = Q(!1), [L, Y] = Q(null), h = QA(null);
|
|
12332
|
-
|
|
12332
|
+
xA(() => {
|
|
12333
12333
|
h.current && (h.current.scrollTop = 0);
|
|
12334
12334
|
}, [w, l]);
|
|
12335
|
-
const [C, W] = Q(""), [Z, i] = Q("male"), [b, v] = Q("cm"), [F, z] = Q(""), [K, wA] = Q(""), [
|
|
12336
|
-
|
|
12337
|
-
if (d !== "calculating" || !
|
|
12335
|
+
const [C, W] = Q(""), [Z, i] = Q("male"), [b, v] = Q("cm"), [F, z] = Q(""), [K, wA] = Q(""), [T, zA] = Q(""), [HA, E] = Q(""), [iA, O] = Q(""), [fA, X] = Q(""), [nA, uA] = Q(null), [rA, MA] = Q(!1), [RA, mA] = Q(""), [we, $A] = Q(null), [PA, ge] = Q(null), [qA, fe] = Q({ w: 800, h: 1200 }), [vA, ue] = Q(0), [$, Pe] = Q(!1), [ve, Fe] = Q(!1);
|
|
12336
|
+
xA(() => {
|
|
12337
|
+
if (d !== "calculating" || !nA) return;
|
|
12338
12338
|
let f = !1;
|
|
12339
|
-
return Bo(
|
|
12340
|
-
!f &&
|
|
12339
|
+
return Bo(nA).then((j) => {
|
|
12340
|
+
!f && j && ge(j);
|
|
12341
12341
|
}).catch(() => {
|
|
12342
12342
|
}), () => {
|
|
12343
12343
|
f = !0;
|
|
12344
12344
|
};
|
|
12345
|
-
}, [d,
|
|
12345
|
+
}, [d, nA]), xA(() => {
|
|
12346
12346
|
if (d !== "calculating" || !m) return;
|
|
12347
|
-
const f = setInterval(() => ue((
|
|
12347
|
+
const f = setInterval(() => ue((j) => j + 1), 1500);
|
|
12348
12348
|
return () => clearInterval(f);
|
|
12349
12349
|
}, [d, m]);
|
|
12350
|
-
const
|
|
12351
|
-
TA === !0 &&
|
|
12350
|
+
const te = QA(null), le = QA(null), [dA, _A] = Q(!1), [TA, y] = Q(null), GA = () => {
|
|
12351
|
+
TA === !0 && te.current?.click();
|
|
12352
12352
|
}, Ee = async (f) => {
|
|
12353
|
-
const
|
|
12354
|
-
if (
|
|
12353
|
+
const j = f.target.files?.[0];
|
|
12354
|
+
if (j) {
|
|
12355
12355
|
if (TA !== !0) {
|
|
12356
|
-
|
|
12356
|
+
X(n("Please confirm that the person in the photo is 18 or older before uploading."));
|
|
12357
12357
|
return;
|
|
12358
12358
|
}
|
|
12359
|
-
if (!
|
|
12360
|
-
|
|
12359
|
+
if (!j.type.startsWith("image/")) {
|
|
12360
|
+
X(n("Please upload an image file"));
|
|
12361
12361
|
return;
|
|
12362
12362
|
}
|
|
12363
|
-
if (
|
|
12364
|
-
|
|
12363
|
+
if (j.size > 10 * 1024 * 1024) {
|
|
12364
|
+
X(n("Image must be under 10MB"));
|
|
12365
12365
|
return;
|
|
12366
12366
|
}
|
|
12367
|
-
|
|
12367
|
+
X(""), MA(!0), mA(n("Analyzing photo…"));
|
|
12368
12368
|
try {
|
|
12369
|
-
const
|
|
12370
|
-
if (!
|
|
12371
|
-
const Le =
|
|
12369
|
+
const CA = t && r ? eg(j, t, r) : Promise.resolve({ isAdult: !0, confidence: "low" }), YA = Do(j), ce = await CA;
|
|
12370
|
+
if (!ce.isAdult) {
|
|
12371
|
+
const Le = ce.reasoning?.trim() || n("This photo appears to be of a minor. Please upload a photo of someone 18 or older.");
|
|
12372
12372
|
$A(Le);
|
|
12373
12373
|
return;
|
|
12374
12374
|
}
|
|
12375
|
-
const be = await
|
|
12375
|
+
const be = await YA;
|
|
12376
12376
|
uA(be), $A(null), a?.(be);
|
|
12377
12377
|
} catch {
|
|
12378
|
-
|
|
12378
|
+
X(n("Failed to process image"));
|
|
12379
12379
|
} finally {
|
|
12380
|
-
|
|
12380
|
+
MA(!1), mA("");
|
|
12381
12381
|
}
|
|
12382
12382
|
}
|
|
12383
12383
|
}, Ge = () => {
|
|
12384
|
-
uA(null), a?.(null),
|
|
12385
|
-
}, [NA, He] = Q(null), [
|
|
12386
|
-
|
|
12384
|
+
uA(null), a?.(null), te.current && (te.current.value = "");
|
|
12385
|
+
}, [NA, He] = Q(null), [ne, V] = Q(null), [se, x] = Q(null), [q, XA] = Q(null), [S, pA] = Q(null), [UA, ae] = Q(null), [Ae, pe] = Q("US"), [LA, Ce] = Q(null), yA = QA(null);
|
|
12386
|
+
xA(() => {
|
|
12387
12387
|
if (!LA) return;
|
|
12388
|
-
const f = (
|
|
12389
|
-
const
|
|
12390
|
-
|
|
12388
|
+
const f = (j) => {
|
|
12389
|
+
const CA = yA.current;
|
|
12390
|
+
CA && !CA.contains(j.target) && Ce(null);
|
|
12391
12391
|
};
|
|
12392
12392
|
return document.addEventListener("mousedown", f), () => document.removeEventListener("mousedown", f);
|
|
12393
12393
|
}, [LA]);
|
|
12394
|
-
const lA = ["28", "30", "32", "34", "36", "38", "40", "42", "44", "46", "48", "50", "52", "54", "56"], I = ["AA", "A", "B", "C", "D", "DD/E", "DDD/F", "G", "H", "I", "J"],
|
|
12394
|
+
const lA = ["28", "30", "32", "34", "36", "38", "40", "42", "44", "46", "48", "50", "52", "54", "56"], I = ["AA", "A", "B", "C", "D", "DD/E", "DDD/F", "G", "H", "I", "J"], FA = Z === "female", oA = FA ? jA.female : jA.male, KA = FA ? ["identity", "stomach", "seat", "hips", "bra"] : ["identity", "chest", "stomach", "seat"], me = KA.indexOf(l), ZA = KA.length, Me = me === ZA - 1, de = () => {
|
|
12395
12395
|
if (b === "in") {
|
|
12396
|
-
const f = parseInt(K, 10),
|
|
12397
|
-
!isNaN(f) && f >= 0 && !isNaN(
|
|
12396
|
+
const f = parseInt(K, 10), j = parseInt(T, 10);
|
|
12397
|
+
!isNaN(f) && f >= 0 && !isNaN(j) && j >= 0 && z(String(Math.round((f * 12 + j) * 2.54)));
|
|
12398
12398
|
}
|
|
12399
12399
|
v("cm");
|
|
12400
12400
|
}, De = () => {
|
|
@@ -12405,21 +12405,21 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12405
12405
|
v("in");
|
|
12406
12406
|
}, JA = () => {
|
|
12407
12407
|
if (!C.trim())
|
|
12408
|
-
return
|
|
12408
|
+
return X(n("Please enter a profile name")), !1;
|
|
12409
12409
|
let f;
|
|
12410
12410
|
if (b === "in") {
|
|
12411
|
-
const
|
|
12412
|
-
f = !isNaN(
|
|
12411
|
+
const CA = parseInt(K, 10), YA = parseInt(T, 10);
|
|
12412
|
+
f = !isNaN(CA) && CA > 0 && !isNaN(YA) && YA >= 0 && YA <= 11;
|
|
12413
12413
|
} else {
|
|
12414
|
-
const
|
|
12415
|
-
f = !isNaN(
|
|
12414
|
+
const CA = parseFloat(F);
|
|
12415
|
+
f = !isNaN(CA) && CA > 0;
|
|
12416
12416
|
}
|
|
12417
12417
|
if (!f)
|
|
12418
|
-
return
|
|
12419
|
-
const
|
|
12420
|
-
return !
|
|
12421
|
-
}, Qe = () => C.trim() ? (
|
|
12422
|
-
const f = b === "in" ? (parseInt(K, 10) || 0) * 12 + (parseInt(
|
|
12418
|
+
return X(n("Please enter a valid height")), !1;
|
|
12419
|
+
const j = parseFloat(HA);
|
|
12420
|
+
return !j || j <= 0 ? (X(n("Please enter a valid weight")), !1) : (X(""), !0);
|
|
12421
|
+
}, Qe = () => C.trim() ? (X(""), !0) : (X(n("Please enter a profile name")), !1), SA = () => {
|
|
12422
|
+
const f = b === "in" ? (parseInt(K, 10) || 0) * 12 + (parseInt(T, 10) || 0) : parseFloat(F), j = parseFloat(iA);
|
|
12423
12423
|
return {
|
|
12424
12424
|
name: C.trim(),
|
|
12425
12425
|
gender: Z,
|
|
@@ -12427,18 +12427,18 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12427
12427
|
heightUnit: b,
|
|
12428
12428
|
weightUnit: b === "in" ? "lbs" : "kg",
|
|
12429
12429
|
heightCm: f,
|
|
12430
|
-
weightKg: parseFloat(
|
|
12430
|
+
weightKg: parseFloat(HA),
|
|
12431
12431
|
height: f,
|
|
12432
|
-
weight: parseFloat(
|
|
12433
|
-
age:
|
|
12432
|
+
weight: parseFloat(HA),
|
|
12433
|
+
...j > 0 ? { age: j } : {},
|
|
12434
12434
|
chestProfile: NA || void 0,
|
|
12435
|
-
midsectionProfile:
|
|
12436
|
-
hipProfile:
|
|
12437
|
-
bandSize:
|
|
12438
|
-
cupSize:
|
|
12435
|
+
midsectionProfile: ne || void 0,
|
|
12436
|
+
hipProfile: FA ? q || void 0 : se || void 0,
|
|
12437
|
+
bandSize: FA && S || void 0,
|
|
12438
|
+
cupSize: FA && UA || void 0
|
|
12439
12439
|
};
|
|
12440
12440
|
}, P = () => {
|
|
12441
|
-
const f = b === "in" ? (parseInt(K, 10) || 0) * 12 + (parseInt(
|
|
12441
|
+
const f = b === "in" ? (parseInt(K, 10) || 0) * 12 + (parseInt(T, 10) || 0) : parseFloat(F), j = parseFloat(HA), CA = parseFloat(iA);
|
|
12442
12442
|
return {
|
|
12443
12443
|
name: C.trim(),
|
|
12444
12444
|
gender: Z,
|
|
@@ -12446,53 +12446,53 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12446
12446
|
heightUnit: b,
|
|
12447
12447
|
weightUnit: b === "in" ? "lbs" : "kg",
|
|
12448
12448
|
...f > 0 ? { heightCm: f, height: f } : {},
|
|
12449
|
-
...
|
|
12450
|
-
...
|
|
12451
|
-
...
|
|
12452
|
-
...
|
|
12453
|
-
...
|
|
12454
|
-
photoBase64:
|
|
12449
|
+
...j > 0 ? { weightKg: j, weight: j } : {},
|
|
12450
|
+
...CA > 0 ? { age: CA } : {},
|
|
12451
|
+
...FA && S ? { bandSize: S } : {},
|
|
12452
|
+
...FA && UA ? { cupSize: UA } : {},
|
|
12453
|
+
...FA && S && UA ? { braSizeRegion: Ae } : {},
|
|
12454
|
+
photoBase64: nA || void 0
|
|
12455
12455
|
};
|
|
12456
12456
|
}, H = () => {
|
|
12457
12457
|
if (!(l === "identity" && !JA())) {
|
|
12458
12458
|
if (l === "chest" && !NA) {
|
|
12459
|
-
|
|
12459
|
+
X(n("Please pick an option"));
|
|
12460
12460
|
return;
|
|
12461
12461
|
}
|
|
12462
|
-
if (l === "stomach" && !
|
|
12463
|
-
|
|
12462
|
+
if (l === "stomach" && !ne) {
|
|
12463
|
+
X(n("Please pick an option"));
|
|
12464
12464
|
return;
|
|
12465
12465
|
}
|
|
12466
|
-
if (l === "seat" && !
|
|
12467
|
-
|
|
12466
|
+
if (l === "seat" && !se) {
|
|
12467
|
+
X(n("Please pick an option"));
|
|
12468
12468
|
return;
|
|
12469
12469
|
}
|
|
12470
12470
|
if (l === "hips" && !q) {
|
|
12471
|
-
|
|
12471
|
+
X(n("Please pick an option"));
|
|
12472
12472
|
return;
|
|
12473
12473
|
}
|
|
12474
12474
|
if (l === "bra" && (!S || !UA)) {
|
|
12475
|
-
|
|
12475
|
+
X(n("Please pick band and cup size"));
|
|
12476
12476
|
return;
|
|
12477
12477
|
}
|
|
12478
|
-
if (
|
|
12478
|
+
if (X(""), Me) {
|
|
12479
12479
|
o(SA());
|
|
12480
12480
|
return;
|
|
12481
12481
|
}
|
|
12482
12482
|
D(KA[me + 1]);
|
|
12483
12483
|
}
|
|
12484
|
-
}, N = (f,
|
|
12485
|
-
|
|
12486
|
-
const
|
|
12484
|
+
}, N = (f, j) => {
|
|
12485
|
+
X(""), f === "chest" ? He(j) : f === "stomach" ? V(j) : f === "seat" ? x(j) : f === "hips" && XA(j);
|
|
12486
|
+
const CA = KA.indexOf(f), YA = CA === ZA - 1;
|
|
12487
12487
|
setTimeout(() => {
|
|
12488
|
-
if (
|
|
12489
|
-
const
|
|
12490
|
-
f === "chest" ?
|
|
12488
|
+
if (YA) {
|
|
12489
|
+
const ce = SA();
|
|
12490
|
+
f === "chest" ? ce.chestProfile = j : f === "stomach" ? ce.midsectionProfile = j : (f === "seat" || f === "hips") && (ce.hipProfile = j), o(ce);
|
|
12491
12491
|
} else
|
|
12492
|
-
D(KA[
|
|
12492
|
+
D(KA[CA + 1]);
|
|
12493
12493
|
}, 220);
|
|
12494
12494
|
}, J = () => {
|
|
12495
|
-
if (
|
|
12495
|
+
if (X(""), l === "identity") {
|
|
12496
12496
|
s(null);
|
|
12497
12497
|
return;
|
|
12498
12498
|
}
|
|
@@ -12500,45 +12500,45 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12500
12500
|
}, _ = w === "manual" && (l === "chest" || l === "stomach" || l === "seat" || l === "hips"), gA = async () => {
|
|
12501
12501
|
if (d === "name-photo") {
|
|
12502
12502
|
if (!Qe()) return;
|
|
12503
|
-
if (!
|
|
12504
|
-
|
|
12503
|
+
if (!nA) {
|
|
12504
|
+
X(n("Please upload a photo"));
|
|
12505
12505
|
return;
|
|
12506
12506
|
}
|
|
12507
12507
|
if (b === "in") {
|
|
12508
|
-
const
|
|
12509
|
-
if (!
|
|
12510
|
-
|
|
12508
|
+
const CA = parseFloat(K);
|
|
12509
|
+
if (!CA || CA < 3 || CA > 8) {
|
|
12510
|
+
X(n("Please enter a valid height"));
|
|
12511
12511
|
return;
|
|
12512
12512
|
}
|
|
12513
12513
|
} else {
|
|
12514
|
-
const
|
|
12515
|
-
if (!
|
|
12516
|
-
|
|
12514
|
+
const CA = parseFloat(F);
|
|
12515
|
+
if (!CA || CA < 100 || CA > 250) {
|
|
12516
|
+
X(n("Please enter a valid height"));
|
|
12517
12517
|
return;
|
|
12518
12518
|
}
|
|
12519
12519
|
}
|
|
12520
|
-
const
|
|
12521
|
-
if (!
|
|
12522
|
-
|
|
12520
|
+
const j = parseFloat(HA);
|
|
12521
|
+
if (!j || j <= 0) {
|
|
12522
|
+
X(n("Please enter a valid weight"));
|
|
12523
12523
|
return;
|
|
12524
12524
|
}
|
|
12525
|
-
if (
|
|
12526
|
-
|
|
12525
|
+
if (FA && (!S || !UA)) {
|
|
12526
|
+
X(n("Please select your bra band and cup size"));
|
|
12527
12527
|
return;
|
|
12528
12528
|
}
|
|
12529
|
-
if (
|
|
12530
|
-
const
|
|
12529
|
+
if (X(""), u("calculating"), M(!0), c && nA) {
|
|
12530
|
+
const CA = b === "in" ? (parseInt(K, 10) || 0) * 12 + (parseInt(T, 10) || 0) : parseFloat(F), YA = parseFloat(iA);
|
|
12531
12531
|
try {
|
|
12532
|
-
const
|
|
12533
|
-
photoBase64:
|
|
12534
|
-
height:
|
|
12535
|
-
weight:
|
|
12532
|
+
const ce = await c({
|
|
12533
|
+
photoBase64: nA,
|
|
12534
|
+
height: CA || 0,
|
|
12535
|
+
weight: j || 0,
|
|
12536
12536
|
heightUnit: b,
|
|
12537
12537
|
weightUnit: b === "in" ? "lbs" : "kg",
|
|
12538
12538
|
gender: Z,
|
|
12539
|
-
...
|
|
12539
|
+
...YA > 0 ? { age: YA } : {}
|
|
12540
12540
|
});
|
|
12541
|
-
|
|
12541
|
+
ce?.estimates && Y(ce.estimates);
|
|
12542
12542
|
} catch {
|
|
12543
12543
|
}
|
|
12544
12544
|
}
|
|
@@ -12552,7 +12552,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12552
12552
|
const f = P();
|
|
12553
12553
|
L && (f.measurements = L, f.measurementsUnit = "cm"), o(f);
|
|
12554
12554
|
}, ee = () => {
|
|
12555
|
-
if (
|
|
12555
|
+
if (X(""), d === "details") {
|
|
12556
12556
|
u("name-photo");
|
|
12557
12557
|
return;
|
|
12558
12558
|
}
|
|
@@ -12565,7 +12565,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12565
12565
|
if (w === "manual") return J();
|
|
12566
12566
|
if (w === "image") return ee();
|
|
12567
12567
|
g();
|
|
12568
|
-
},
|
|
12568
|
+
}, Be = (() => {
|
|
12569
12569
|
if (w == null) return n("Choose a method");
|
|
12570
12570
|
if (w === "manual") {
|
|
12571
12571
|
const f = {
|
|
@@ -12583,11 +12583,11 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12583
12583
|
if (w == null) return 0;
|
|
12584
12584
|
if (w === "manual") return Math.round((me + 1) / ZA * 100);
|
|
12585
12585
|
let f = 0;
|
|
12586
|
-
return C.trim() && (f += 50),
|
|
12586
|
+
return C.trim() && (f += 50), nA && (f += 50), f;
|
|
12587
12587
|
})();
|
|
12588
12588
|
return /* @__PURE__ */ e("div", { className: `ps-cpw-root${w === "image" && d === "name-photo" ? " ps-cpw-hide-global-back" : ""}`, children: [
|
|
12589
12589
|
!(w === "image" && d === "name-photo") && /* @__PURE__ */ e("div", { className: "ps-cpw-step-head", children: [
|
|
12590
|
-
/* @__PURE__ */ A("h2", { className: "ps-cpw-step-title", children:
|
|
12590
|
+
/* @__PURE__ */ A("h2", { className: "ps-cpw-step-title", children: Be }),
|
|
12591
12591
|
w != null && /* @__PURE__ */ A("div", { className: "ps-cpw-progress", children: /* @__PURE__ */ A("div", { className: "ps-cpw-progress-track", children: /* @__PURE__ */ A("div", { className: "ps-cpw-progress-fill", style: { width: `${he}%` } }) }) })
|
|
12592
12592
|
] }),
|
|
12593
12593
|
/* @__PURE__ */ e("div", { className: "ps-cpw-body", ref: h, children: [
|
|
@@ -12657,7 +12657,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12657
12657
|
value: C,
|
|
12658
12658
|
placeholder: n("e.g. My Measurements"),
|
|
12659
12659
|
onChange: (f) => {
|
|
12660
|
-
W(f.target.value),
|
|
12660
|
+
W(f.target.value), X("");
|
|
12661
12661
|
}
|
|
12662
12662
|
}
|
|
12663
12663
|
) })
|
|
@@ -12674,7 +12674,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12674
12674
|
value: F,
|
|
12675
12675
|
placeholder: n("e.g. 173"),
|
|
12676
12676
|
onChange: (f) => {
|
|
12677
|
-
z(f.target.value),
|
|
12677
|
+
z(f.target.value), X("");
|
|
12678
12678
|
}
|
|
12679
12679
|
}
|
|
12680
12680
|
),
|
|
@@ -12690,7 +12690,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12690
12690
|
value: K,
|
|
12691
12691
|
placeholder: "5",
|
|
12692
12692
|
onChange: (f) => {
|
|
12693
|
-
wA(f.target.value),
|
|
12693
|
+
wA(f.target.value), X("");
|
|
12694
12694
|
}
|
|
12695
12695
|
}
|
|
12696
12696
|
),
|
|
@@ -12702,10 +12702,10 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12702
12702
|
inputMode: "numeric",
|
|
12703
12703
|
className: "ps-bp-inline-input",
|
|
12704
12704
|
style: { width: "3em" },
|
|
12705
|
-
value:
|
|
12705
|
+
value: T,
|
|
12706
12706
|
placeholder: "8",
|
|
12707
12707
|
onChange: (f) => {
|
|
12708
|
-
zA(f.target.value),
|
|
12708
|
+
zA(f.target.value), X("");
|
|
12709
12709
|
}
|
|
12710
12710
|
}
|
|
12711
12711
|
),
|
|
@@ -12721,10 +12721,10 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12721
12721
|
type: "number",
|
|
12722
12722
|
inputMode: "numeric",
|
|
12723
12723
|
className: "ps-bp-inline-input",
|
|
12724
|
-
value:
|
|
12724
|
+
value: HA,
|
|
12725
12725
|
placeholder: n(b === "in" ? "e.g. 154" : "e.g. 70"),
|
|
12726
12726
|
onChange: (f) => {
|
|
12727
|
-
E(f.target.value),
|
|
12727
|
+
E(f.target.value), X("");
|
|
12728
12728
|
}
|
|
12729
12729
|
}
|
|
12730
12730
|
),
|
|
@@ -12734,7 +12734,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12734
12734
|
] }),
|
|
12735
12735
|
fA && /* @__PURE__ */ A("div", { className: "ps-cpw-error", children: fA })
|
|
12736
12736
|
] }, "manual-identity"),
|
|
12737
|
-
w === "manual" && l === "chest" && !
|
|
12737
|
+
w === "manual" && l === "chest" && !FA && /* @__PURE__ */ e(
|
|
12738
12738
|
Zo,
|
|
12739
12739
|
{
|
|
12740
12740
|
stepKey: "chest",
|
|
@@ -12754,9 +12754,9 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12754
12754
|
title: n("STOMACH PROFILE"),
|
|
12755
12755
|
subtitle: n("Describe your mid-section silhouette"),
|
|
12756
12756
|
children: [
|
|
12757
|
-
/* @__PURE__ */ A(Se, { img: oA.stomach?.flat ?? null, label: n("FLAT"), selected:
|
|
12758
|
-
/* @__PURE__ */ A(Se, { img: oA.stomach?.average ?? null, label: n("AVERAGE"), selected:
|
|
12759
|
-
/* @__PURE__ */ A(Se, { img: oA.stomach?.round ?? null, label: n("ROUND"), selected:
|
|
12757
|
+
/* @__PURE__ */ A(Se, { img: oA.stomach?.flat ?? null, label: n("FLAT"), selected: ne === "flat", onSelect: () => N("stomach", "flat") }),
|
|
12758
|
+
/* @__PURE__ */ A(Se, { img: oA.stomach?.average ?? null, label: n("AVERAGE"), selected: ne === "average", onSelect: () => N("stomach", "average") }),
|
|
12759
|
+
/* @__PURE__ */ A(Se, { img: oA.stomach?.round ?? null, label: n("ROUND"), selected: ne === "round", onSelect: () => N("stomach", "round") })
|
|
12760
12760
|
]
|
|
12761
12761
|
}
|
|
12762
12762
|
),
|
|
@@ -12767,13 +12767,13 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12767
12767
|
title: n("BACK & SEAT"),
|
|
12768
12768
|
subtitle: n("The curvature of your lower spine and seat profile"),
|
|
12769
12769
|
children: [
|
|
12770
|
-
/* @__PURE__ */ A(Se, { img: oA.seat?.narrow ?? null, label: n("STRAIGHT"), selected:
|
|
12771
|
-
/* @__PURE__ */ A(Se, { img: oA.seat?.average ?? null, label: n("CURVED"), selected:
|
|
12772
|
-
/* @__PURE__ */ A(Se, { img: oA.seat?.full ?? null, label: n("DEEP"), selected:
|
|
12770
|
+
/* @__PURE__ */ A(Se, { img: oA.seat?.narrow ?? null, label: n("STRAIGHT"), selected: se === "narrow", onSelect: () => N("seat", "narrow") }),
|
|
12771
|
+
/* @__PURE__ */ A(Se, { img: oA.seat?.average ?? null, label: n("CURVED"), selected: se === "average", onSelect: () => N("seat", "average") }),
|
|
12772
|
+
/* @__PURE__ */ A(Se, { img: oA.seat?.full ?? null, label: n("DEEP"), selected: se === "full", onSelect: () => N("seat", "full") })
|
|
12773
12773
|
]
|
|
12774
12774
|
}
|
|
12775
12775
|
),
|
|
12776
|
-
w === "manual" && l === "hips" &&
|
|
12776
|
+
w === "manual" && l === "hips" && FA && oA.hips && /* @__PURE__ */ e(
|
|
12777
12777
|
Zo,
|
|
12778
12778
|
{
|
|
12779
12779
|
stepKey: "hips",
|
|
@@ -12786,7 +12786,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12786
12786
|
]
|
|
12787
12787
|
}
|
|
12788
12788
|
),
|
|
12789
|
-
w === "manual" && l === "bra" &&
|
|
12789
|
+
w === "manual" && l === "bra" && FA && /* @__PURE__ */ e("div", { className: "ps-cpw-progressive ps-cpw-fade-in", children: [
|
|
12790
12790
|
/* @__PURE__ */ e("div", { className: "ps-cpw-section-head", children: [
|
|
12791
12791
|
/* @__PURE__ */ A("div", { className: "ps-cpw-section-title", children: n("BRA SIZE") }),
|
|
12792
12792
|
/* @__PURE__ */ A("div", { className: "ps-cpw-section-sub", children: n("Helps us refine bust measurements for tops and dresses") })
|
|
@@ -12800,7 +12800,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12800
12800
|
className: "ps-cpw-input",
|
|
12801
12801
|
value: S ?? "",
|
|
12802
12802
|
onChange: (f) => {
|
|
12803
|
-
pA(f.target.value || null),
|
|
12803
|
+
pA(f.target.value || null), X("");
|
|
12804
12804
|
},
|
|
12805
12805
|
children: [
|
|
12806
12806
|
/* @__PURE__ */ A("option", { value: "", children: n("Select") }),
|
|
@@ -12817,7 +12817,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12817
12817
|
className: "ps-cpw-input",
|
|
12818
12818
|
value: UA ?? "",
|
|
12819
12819
|
onChange: (f) => {
|
|
12820
|
-
|
|
12820
|
+
ae(f.target.value || null), X("");
|
|
12821
12821
|
},
|
|
12822
12822
|
children: [
|
|
12823
12823
|
/* @__PURE__ */ A("option", { value: "", children: n("Select") }),
|
|
@@ -12833,7 +12833,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12833
12833
|
/* @__PURE__ */ A(
|
|
12834
12834
|
"input",
|
|
12835
12835
|
{
|
|
12836
|
-
ref:
|
|
12836
|
+
ref: te,
|
|
12837
12837
|
type: "file",
|
|
12838
12838
|
accept: "image/jpeg,image/png,image/webp,image/avif",
|
|
12839
12839
|
style: { display: "none" },
|
|
@@ -12844,10 +12844,10 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12844
12844
|
"div",
|
|
12845
12845
|
{
|
|
12846
12846
|
onClick: () => {
|
|
12847
|
-
!
|
|
12847
|
+
!nA && TA === !0 && GA();
|
|
12848
12848
|
},
|
|
12849
12849
|
onMouseEnter: () => {
|
|
12850
|
-
!
|
|
12850
|
+
!nA && TA === !0 && Fe(!0);
|
|
12851
12851
|
},
|
|
12852
12852
|
onMouseLeave: () => Fe(!1),
|
|
12853
12853
|
onDragEnter: (f) => {
|
|
@@ -12860,11 +12860,11 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12860
12860
|
f.preventDefault(), f.stopPropagation();
|
|
12861
12861
|
},
|
|
12862
12862
|
onDrop: (f) => {
|
|
12863
|
-
if (f.preventDefault(), f.stopPropagation(),
|
|
12864
|
-
const
|
|
12865
|
-
if (!
|
|
12866
|
-
const
|
|
12867
|
-
|
|
12863
|
+
if (f.preventDefault(), f.stopPropagation(), nA || TA !== !0) return;
|
|
12864
|
+
const j = f.dataTransfer?.files?.[0];
|
|
12865
|
+
if (!j || !te.current) return;
|
|
12866
|
+
const CA = new DataTransfer();
|
|
12867
|
+
CA.items.add(j), te.current.files = CA.files, te.current.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
12868
12868
|
},
|
|
12869
12869
|
style: {
|
|
12870
12870
|
flex: 1,
|
|
@@ -12872,21 +12872,21 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12872
12872
|
flexDirection: "column",
|
|
12873
12873
|
alignItems: "center",
|
|
12874
12874
|
justifyContent: "center",
|
|
12875
|
-
border:
|
|
12875
|
+
border: nA ? "2px solid var(--ps-accent)" : TA === !0 && ve ? "2px dashed var(--ps-accent)" : "2px dashed var(--ps-border-color)",
|
|
12876
12876
|
borderRadius: "0.5vw",
|
|
12877
|
-
cursor:
|
|
12877
|
+
cursor: nA ? "default" : TA === !0 ? "pointer" : "default",
|
|
12878
12878
|
position: "relative",
|
|
12879
|
-
background:
|
|
12879
|
+
background: nA ? "var(--ps-bg-secondary)" : TA === !0 && ve ? "rgba(33,84,239,0.04)" : TA === null ? "rgba(0,0,0,0.025)" : "var(--ps-bg-secondary)",
|
|
12880
12880
|
transition: "border-color 0.18s, background 0.18s",
|
|
12881
12881
|
overflow: "hidden"
|
|
12882
12882
|
},
|
|
12883
12883
|
children: [
|
|
12884
|
-
|
|
12884
|
+
rA && /* @__PURE__ */ e("div", { className: "ps-bp-photo-overlay", onClick: (f) => f.stopPropagation(), children: [
|
|
12885
12885
|
/* @__PURE__ */ A("div", { className: "ps-bp-photo-overlay-spinner", "aria-hidden": "true" }),
|
|
12886
12886
|
/* @__PURE__ */ A("span", { className: "ps-bp-photo-overlay-label", children: RA || n("Analyzing photo…") })
|
|
12887
12887
|
] }),
|
|
12888
|
-
|
|
12889
|
-
/* @__PURE__ */ A("img", { src:
|
|
12888
|
+
nA ? /* @__PURE__ */ e(eA, { children: [
|
|
12889
|
+
/* @__PURE__ */ A("img", { src: nA, alt: "preview", style: { width: "100%", height: "100%", objectFit: "contain" } }),
|
|
12890
12890
|
/* @__PURE__ */ A("button", { onClick: (f) => {
|
|
12891
12891
|
f.stopPropagation(), Ge();
|
|
12892
12892
|
}, style: { position: "absolute", top: "0.5vw", right: "0.5vw", width: "1.4vw", height: "1.4vw", borderRadius: "50%", background: "rgba(0,0,0,0.6)", border: "none", color: "#fff", fontSize: "0.7vw", cursor: "pointer", display: "flex", alignItems: "center", justifyContent: "center" }, children: "×" })
|
|
@@ -12933,7 +12933,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12933
12933
|
{
|
|
12934
12934
|
type: "button",
|
|
12935
12935
|
onClick: (f) => {
|
|
12936
|
-
f.stopPropagation(), $A(null),
|
|
12936
|
+
f.stopPropagation(), $A(null), te.current?.click();
|
|
12937
12937
|
},
|
|
12938
12938
|
style: {
|
|
12939
12939
|
padding: "0.35vw 0.8vw",
|
|
@@ -12977,7 +12977,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
12977
12977
|
{
|
|
12978
12978
|
type: "button",
|
|
12979
12979
|
onClick: (f) => {
|
|
12980
|
-
f.stopPropagation(), y(!0),
|
|
12980
|
+
f.stopPropagation(), y(!0), X("");
|
|
12981
12981
|
},
|
|
12982
12982
|
style: {
|
|
12983
12983
|
padding: "0.4vw 1vw",
|
|
@@ -13154,8 +13154,8 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13154
13154
|
/* @__PURE__ */ A("div", { style: { marginTop: "auto", marginBottom: "auto" }, children: /* @__PURE__ */ e("div", { className: "ps-bp-inline-fields ps-cpw-inline-fields", children: [
|
|
13155
13155
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
13156
13156
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: n("NAME") }),
|
|
13157
|
-
/* @__PURE__ */ A("div", { className: "ps-bp-inline-input-group", children: /* @__PURE__ */ A("input", { ref: le, type: "text", className: `ps-bp-inline-input${
|
|
13158
|
-
W(f.target.value),
|
|
13157
|
+
/* @__PURE__ */ A("div", { className: "ps-bp-inline-input-group", children: /* @__PURE__ */ A("input", { ref: le, type: "text", className: `ps-bp-inline-input${dA ? " ps-cpw-shake" : ""}`, value: C, placeholder: n("e.g. My Photo Profile"), onChange: (f) => {
|
|
13158
|
+
W(f.target.value), X("");
|
|
13159
13159
|
}, onAnimationEnd: () => _A(!1) }) })
|
|
13160
13160
|
] }),
|
|
13161
13161
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
@@ -13166,7 +13166,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13166
13166
|
{
|
|
13167
13167
|
type: "button",
|
|
13168
13168
|
onClick: () => {
|
|
13169
|
-
i("male"), pA(null),
|
|
13169
|
+
i("male"), pA(null), ae(null), X("");
|
|
13170
13170
|
},
|
|
13171
13171
|
className: "ps-cpw-gender-pill",
|
|
13172
13172
|
"data-active": Z === "male" ? "true" : "false",
|
|
@@ -13178,7 +13178,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13178
13178
|
{
|
|
13179
13179
|
type: "button",
|
|
13180
13180
|
onClick: () => {
|
|
13181
|
-
i("female"),
|
|
13181
|
+
i("female"), X("");
|
|
13182
13182
|
},
|
|
13183
13183
|
className: "ps-cpw-gender-pill",
|
|
13184
13184
|
"data-active": Z === "female" ? "true" : "false",
|
|
@@ -13191,16 +13191,16 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13191
13191
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: n("HEIGHT") }),
|
|
13192
13192
|
b === "cm" ? /* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
13193
13193
|
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: F, placeholder: n("e.g. 173"), onChange: (f) => {
|
|
13194
|
-
z(f.target.value),
|
|
13194
|
+
z(f.target.value), X("");
|
|
13195
13195
|
} }),
|
|
13196
13196
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "cm" })
|
|
13197
13197
|
] }) : /* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", style: { gap: "6px" }, children: [
|
|
13198
13198
|
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value: K, placeholder: "5", onChange: (f) => {
|
|
13199
|
-
wA(f.target.value),
|
|
13199
|
+
wA(f.target.value), X("");
|
|
13200
13200
|
} }),
|
|
13201
13201
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "ft" }),
|
|
13202
|
-
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value:
|
|
13203
|
-
zA(f.target.value),
|
|
13202
|
+
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value: T, placeholder: "8", onChange: (f) => {
|
|
13203
|
+
zA(f.target.value), X("");
|
|
13204
13204
|
} }),
|
|
13205
13205
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "in" })
|
|
13206
13206
|
] })
|
|
@@ -13208,13 +13208,13 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13208
13208
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
13209
13209
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: n("WEIGHT") }),
|
|
13210
13210
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
13211
|
-
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value:
|
|
13212
|
-
E(f.target.value),
|
|
13211
|
+
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: HA, placeholder: n(b === "in" ? "e.g. 154" : "e.g. 70"), onChange: (f) => {
|
|
13212
|
+
E(f.target.value), X("");
|
|
13213
13213
|
} }),
|
|
13214
13214
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: b === "in" ? "lbs" : "kg" })
|
|
13215
13215
|
] })
|
|
13216
13216
|
] }),
|
|
13217
|
-
|
|
13217
|
+
FA && /* @__PURE__ */ e("div", { ref: yA, children: [
|
|
13218
13218
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
13219
13219
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: n("BRA REGION") }),
|
|
13220
13220
|
/* @__PURE__ */ A("div", { className: "ps-bp-inline-input-group", children: /* @__PURE__ */ A(
|
|
@@ -13225,7 +13225,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13225
13225
|
isOpen: LA === "region",
|
|
13226
13226
|
onToggle: () => Ce(LA === "region" ? null : "region"),
|
|
13227
13227
|
onSelect: (f) => {
|
|
13228
|
-
pe(f), pA(null),
|
|
13228
|
+
pe(f), pA(null), ae(null), Ce(null);
|
|
13229
13229
|
}
|
|
13230
13230
|
}
|
|
13231
13231
|
) })
|
|
@@ -13258,7 +13258,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13258
13258
|
isOpen: LA === "cup",
|
|
13259
13259
|
onToggle: () => Ce(LA === "cup" ? null : "cup"),
|
|
13260
13260
|
onSelect: (f) => {
|
|
13261
|
-
|
|
13261
|
+
ae(f), Ce(null);
|
|
13262
13262
|
}
|
|
13263
13263
|
}
|
|
13264
13264
|
) })
|
|
@@ -13362,16 +13362,16 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13362
13362
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: n("HEIGHT") }),
|
|
13363
13363
|
b === "cm" ? /* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
13364
13364
|
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: F, placeholder: n("e.g. 173"), onChange: (f) => {
|
|
13365
|
-
z(f.target.value),
|
|
13365
|
+
z(f.target.value), X("");
|
|
13366
13366
|
} }),
|
|
13367
13367
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "cm" })
|
|
13368
13368
|
] }) : /* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", style: { gap: "6px" }, children: [
|
|
13369
13369
|
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value: K, placeholder: "5", onChange: (f) => {
|
|
13370
|
-
wA(f.target.value),
|
|
13370
|
+
wA(f.target.value), X("");
|
|
13371
13371
|
} }),
|
|
13372
13372
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "ft" }),
|
|
13373
|
-
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value:
|
|
13374
|
-
zA(f.target.value),
|
|
13373
|
+
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value: T, placeholder: "8", onChange: (f) => {
|
|
13374
|
+
zA(f.target.value), X("");
|
|
13375
13375
|
} }),
|
|
13376
13376
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "in" })
|
|
13377
13377
|
] })
|
|
@@ -13379,8 +13379,8 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13379
13379
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
13380
13380
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: n("WEIGHT") }),
|
|
13381
13381
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
13382
|
-
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value:
|
|
13383
|
-
E(f.target.value),
|
|
13382
|
+
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: HA, placeholder: n(b === "in" ? "e.g. 154" : "e.g. 70"), onChange: (f) => {
|
|
13383
|
+
E(f.target.value), X("");
|
|
13384
13384
|
} }),
|
|
13385
13385
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: b === "in" ? "lbs" : "kg" })
|
|
13386
13386
|
] })
|
|
@@ -13388,8 +13388,8 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13388
13388
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
13389
13389
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: n("AGE") }),
|
|
13390
13390
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
13391
|
-
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value:
|
|
13392
|
-
O(f.target.value),
|
|
13391
|
+
/* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: iA, placeholder: n("e.g. 30"), onChange: (f) => {
|
|
13392
|
+
O(f.target.value), X("");
|
|
13393
13393
|
} }),
|
|
13394
13394
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: n("years") })
|
|
13395
13395
|
] })
|
|
@@ -13404,7 +13404,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13404
13404
|
{ title: n("ANALYZING BODY"), desc: n("Measuring shoulders, chest, waist and hips.") },
|
|
13405
13405
|
{ title: n("COMPUTING DEPTH"), desc: n("Using your height and weight to compute true circumferences.") },
|
|
13406
13406
|
{ title: n("FINALIZING"), desc: n("Almost done — preparing your body profile.") }
|
|
13407
|
-
],
|
|
13407
|
+
], j = f[vA % f.length] ?? f[0], CA = [
|
|
13408
13408
|
["leftShoulder", "rightShoulder"],
|
|
13409
13409
|
["leftShoulder", "leftElbow"],
|
|
13410
13410
|
["leftElbow", "leftWrist"],
|
|
@@ -13431,17 +13431,17 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13431
13431
|
overflow: "hidden",
|
|
13432
13432
|
minHeight: "20vw"
|
|
13433
13433
|
}, children: [
|
|
13434
|
-
|
|
13434
|
+
nA && /* @__PURE__ */ A(
|
|
13435
13435
|
"img",
|
|
13436
13436
|
{
|
|
13437
|
-
src:
|
|
13437
|
+
src: nA,
|
|
13438
13438
|
alt: "",
|
|
13439
13439
|
style: { maxWidth: "100%", maxHeight: "100%", objectFit: "contain", display: "block" },
|
|
13440
|
-
onLoad: (
|
|
13441
|
-
const
|
|
13440
|
+
onLoad: (YA) => {
|
|
13441
|
+
const ce = YA.currentTarget;
|
|
13442
13442
|
fe({
|
|
13443
|
-
w:
|
|
13444
|
-
h:
|
|
13443
|
+
w: ce.naturalWidth || ce.offsetWidth || 800,
|
|
13444
|
+
h: ce.naturalHeight || ce.offsetHeight || 1200
|
|
13445
13445
|
});
|
|
13446
13446
|
}
|
|
13447
13447
|
}
|
|
@@ -13454,8 +13454,8 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13454
13454
|
style: { position: "absolute", inset: 0, width: "100%", height: "100%", pointerEvents: "none" },
|
|
13455
13455
|
"aria-hidden": "true",
|
|
13456
13456
|
children: [
|
|
13457
|
-
|
|
13458
|
-
const Le = PA[
|
|
13457
|
+
CA.map(([YA, ce], be) => {
|
|
13458
|
+
const Le = PA[YA], $e = PA[ce];
|
|
13459
13459
|
return !Le || !$e ? null : /* @__PURE__ */ A(
|
|
13460
13460
|
"line",
|
|
13461
13461
|
{
|
|
@@ -13470,12 +13470,12 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13470
13470
|
`l-${be}`
|
|
13471
13471
|
);
|
|
13472
13472
|
}),
|
|
13473
|
-
Object.entries(PA).map(([
|
|
13474
|
-
const be =
|
|
13473
|
+
Object.entries(PA).map(([YA, ce]) => {
|
|
13474
|
+
const be = ce;
|
|
13475
13475
|
return /* @__PURE__ */ e("g", { children: [
|
|
13476
13476
|
/* @__PURE__ */ A("circle", { cx: be.x * qA.w, cy: be.y * qA.h, r: Math.max(7, qA.w / 75), fill: "rgba(100,210,255,0.25)" }),
|
|
13477
13477
|
/* @__PURE__ */ A("circle", { cx: be.x * qA.w, cy: be.y * qA.h, r: Math.max(4, qA.w / 120), fill: "rgba(100,210,255,0.95)" })
|
|
13478
|
-
] },
|
|
13478
|
+
] }, YA);
|
|
13479
13479
|
})
|
|
13480
13480
|
]
|
|
13481
13481
|
}
|
|
@@ -13484,8 +13484,8 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13484
13484
|
/* @__PURE__ */ e("div", { style: { flex: 1, display: "flex", flexDirection: "column", justifyContent: "center", gap: "1vw", paddingLeft: "0.5vw" }, children: [
|
|
13485
13485
|
/* @__PURE__ */ A("div", { className: "ps-tryon-size-loading-spinner" }),
|
|
13486
13486
|
/* @__PURE__ */ e("div", { style: { animation: "ps-cpw-age-gate-in 0.38s ease-out both" }, children: [
|
|
13487
|
-
/* @__PURE__ */ A("div", { style: { fontSize: "0.7vw", fontWeight: 700, color: "var(--ps-accent)", letterSpacing: "0.18em", textTransform: "uppercase", marginBottom: "0.4vw" }, children:
|
|
13488
|
-
/* @__PURE__ */ A("div", { style: { fontSize: "1.05vw", fontWeight: 600, color: "var(--ps-text-primary)", lineHeight: 1.35 }, children:
|
|
13487
|
+
/* @__PURE__ */ A("div", { style: { fontSize: "0.7vw", fontWeight: 700, color: "var(--ps-accent)", letterSpacing: "0.18em", textTransform: "uppercase", marginBottom: "0.4vw" }, children: j.title }),
|
|
13488
|
+
/* @__PURE__ */ A("div", { style: { fontSize: "1.05vw", fontWeight: 600, color: "var(--ps-text-primary)", lineHeight: 1.35 }, children: j.desc })
|
|
13489
13489
|
] }, vA % f.length),
|
|
13490
13490
|
/* @__PURE__ */ A("div", { style: { fontSize: "0.65vw", color: "var(--ps-text-muted)", marginTop: "0.4vw" }, children: n(PA ? "✓ Pose detected — running body analysis" : "Detecting pose landmarks…") })
|
|
13491
13491
|
] })
|
|
@@ -13498,7 +13498,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13498
13498
|
] })
|
|
13499
13499
|
] }),
|
|
13500
13500
|
/* @__PURE__ */ A("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(120px, 1fr))", gap: "0.6vw", marginTop: "0.6vw" }, children: [
|
|
13501
|
-
|
|
13501
|
+
FA ? { key: "bust", label: n("BUST") } : { key: "chest", label: n("CHEST") },
|
|
13502
13502
|
{ key: "waist", label: n("WAIST") },
|
|
13503
13503
|
{ key: "hips", label: n("HIPS") },
|
|
13504
13504
|
{ key: "shoulderWidth", label: n("SHOULDER") },
|
|
@@ -13507,18 +13507,18 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13507
13507
|
{ key: "inseam", label: n("INSEAM") },
|
|
13508
13508
|
{ key: "thighCircumference", label: n("THIGH") },
|
|
13509
13509
|
{ key: "footLengthCm", label: n("FOOT") }
|
|
13510
|
-
].map(({ key:
|
|
13511
|
-
const be = L[
|
|
13510
|
+
].map(({ key: YA, label: ce }) => {
|
|
13511
|
+
const be = L[YA] ?? (YA === "bust" ? L.chest : YA === "chest" ? L.bust : void 0);
|
|
13512
13512
|
if (!be || be === 0) return null;
|
|
13513
13513
|
const Le = b === "in" ? Math.round(be / 2.54 * 10) / 10 : be;
|
|
13514
13514
|
return /* @__PURE__ */ e("div", { style: { background: "rgba(33,84,239,0.04)", border: "1px solid rgba(33,84,239,0.12)", borderRadius: "0.4vw", padding: "0.6vw 0.8vw" }, children: [
|
|
13515
|
-
/* @__PURE__ */ A("div", { style: { fontSize: "0.6vw", fontWeight: 700, color: "var(--ps-text-secondary)", textTransform: "uppercase", letterSpacing: "0.08em", marginBottom: "0.2vw" }, children:
|
|
13515
|
+
/* @__PURE__ */ A("div", { style: { fontSize: "0.6vw", fontWeight: 700, color: "var(--ps-text-secondary)", textTransform: "uppercase", letterSpacing: "0.08em", marginBottom: "0.2vw" }, children: ce }),
|
|
13516
13516
|
/* @__PURE__ */ e("div", { style: { fontSize: "1vw", fontWeight: 600, color: "var(--ps-text-primary)" }, children: [
|
|
13517
13517
|
Le,
|
|
13518
13518
|
" ",
|
|
13519
13519
|
/* @__PURE__ */ A("span", { style: { fontSize: "0.7vw", color: "var(--ps-text-muted)", fontWeight: 400 }, children: b })
|
|
13520
13520
|
] })
|
|
13521
|
-
] },
|
|
13521
|
+
] }, YA);
|
|
13522
13522
|
}) })
|
|
13523
13523
|
] }) : /* @__PURE__ */ e("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", flex: 1, gap: "0.8vw" }, children: [
|
|
13524
13524
|
/* @__PURE__ */ A("p", { style: { color: "var(--ps-text-primary)", fontSize: "1vw", fontWeight: 600 }, children: n("Estimation could not complete") }),
|
|
@@ -13530,14 +13530,14 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13530
13530
|
/* @__PURE__ */ A("button", { type: "button", className: "ps-cpw-back-btn", onClick: EA, children: w == null ? n("Cancel") : `← ${n("Back")}` }),
|
|
13531
13531
|
w === "manual" && !_ && /* @__PURE__ */ A("button", { type: "button", className: "ps-cpw-next-btn", onClick: H, children: n(Me ? "CALCULATE MY FIT" : "Continue") }),
|
|
13532
13532
|
w === "image" && d === "name-photo" && (() => {
|
|
13533
|
-
const f = b === "in" ? parseFloat(K) > 0 || parseFloat(
|
|
13533
|
+
const f = b === "in" ? parseFloat(K) > 0 || parseFloat(T) > 0 : parseFloat(F) > 0, j = parseFloat(HA) > 0, CA = !!C.trim(), YA = !!nA, ce = rA, be = n(ce ? "Analyzing photo…" : YA ? CA ? f ? j ? "Calculate My Body Parts" : "Enter your weight" : "Enter your height" : "Add a name for this profile" : "Upload a photo"), Le = ce || !YA || !CA || !f || !j;
|
|
13534
13534
|
return /* @__PURE__ */ A(
|
|
13535
13535
|
"button",
|
|
13536
13536
|
{
|
|
13537
13537
|
type: "button",
|
|
13538
13538
|
className: "ps-cpw-next-btn",
|
|
13539
13539
|
onClick: () => {
|
|
13540
|
-
if (!
|
|
13540
|
+
if (!CA) {
|
|
13541
13541
|
_A(!0), le.current?.focus();
|
|
13542
13542
|
return;
|
|
13543
13543
|
}
|
|
@@ -13552,7 +13552,7 @@ function Jr({ onSave: o, onCancel: g, apiUrl: t, apiKey: r, onPhotoPreview: a, o
|
|
|
13552
13552
|
w === "image" && d === "details" && /* @__PURE__ */ A("button", { type: "button", className: "ps-cpw-next-btn", onClick: gA, children: n("Calculate My Body Parts") }),
|
|
13553
13553
|
w === "image" && d === "calculating" && !m && L && /* @__PURE__ */ A("button", { type: "button", className: "ps-cpw-next-btn", onClick: gA, children: n("Save Profile") }),
|
|
13554
13554
|
w === "image" && d === "calculating" && !m && !L && /* @__PURE__ */ A("button", { type: "button", className: "ps-cpw-next-btn", onClick: () => {
|
|
13555
|
-
u("details"),
|
|
13555
|
+
u("details"), X("");
|
|
13556
13556
|
}, children: n("Try Again") })
|
|
13557
13557
|
] })
|
|
13558
13558
|
] });
|
|
@@ -13595,7 +13595,7 @@ function Wr({
|
|
|
13595
13595
|
v[F.key] = z != null ? String(Math.round(z * 10) / 10) : "";
|
|
13596
13596
|
}), v;
|
|
13597
13597
|
});
|
|
13598
|
-
|
|
13598
|
+
xA(() => {
|
|
13599
13599
|
Y((v) => {
|
|
13600
13600
|
const F = { ...v };
|
|
13601
13601
|
let z = !1;
|
|
@@ -13609,8 +13609,8 @@ function Wr({
|
|
|
13609
13609
|
v !== m && (Y((F) => {
|
|
13610
13610
|
const z = {};
|
|
13611
13611
|
for (const [K, wA] of Object.entries(F)) {
|
|
13612
|
-
const
|
|
13613
|
-
!isNaN(
|
|
13612
|
+
const T = parseFloat(wA);
|
|
13613
|
+
!isNaN(T) && T > 0 ? z[K] = String(v === "in" ? Math.round(T / 2.54 * 10) / 10 : Math.round(T * 2.54 * 10) / 10) : z[K] = wA;
|
|
13614
13614
|
}
|
|
13615
13615
|
return z;
|
|
13616
13616
|
}), M(v));
|
|
@@ -13867,9 +13867,9 @@ function $r({
|
|
|
13867
13867
|
onRegisterBackInterceptor: L
|
|
13868
13868
|
}) {
|
|
13869
13869
|
const [Y, h] = Q(!1), [C, W] = Q(null), Z = C && o.find((i) => i.id === C) || null;
|
|
13870
|
-
return
|
|
13870
|
+
return xA(() => {
|
|
13871
13871
|
C && !o.find((i) => i.id === C) && W(null);
|
|
13872
|
-
}, [o, C]),
|
|
13872
|
+
}, [o, C]), xA(() => {
|
|
13873
13873
|
if (!L) return;
|
|
13874
13874
|
L(() => Y || C !== null, () => {
|
|
13875
13875
|
if (Y) {
|
|
@@ -13945,7 +13945,7 @@ function $r({
|
|
|
13945
13945
|
] }) }) });
|
|
13946
13946
|
}
|
|
13947
13947
|
function _r({ setView: o }) {
|
|
13948
|
-
return
|
|
13948
|
+
return xA(() => {
|
|
13949
13949
|
o("size-result");
|
|
13950
13950
|
}, []), null;
|
|
13951
13951
|
}
|
|
@@ -13994,14 +13994,14 @@ function oi({
|
|
|
13994
13994
|
error: v,
|
|
13995
13995
|
t: F
|
|
13996
13996
|
}) {
|
|
13997
|
-
const z = parseFloat(r) || 173, K = (parseFloat(c) || 5) * 12 + (parseFloat(w) || 8), wA = Math.floor(K / 12),
|
|
13998
|
-
const Pe = Math.max(
|
|
13997
|
+
const z = parseFloat(r) || 173, K = (parseFloat(c) || 5) * 12 + (parseFloat(w) || 8), wA = Math.floor(K / 12), T = K % 12, zA = parseFloat(l) || (g === "kg" ? 70 : 154), HA = parseFloat(d) || 30, E = g === "kg" ? 30 : 66, iA = g === "kg" ? 200 : 440, O = 120, fA = 220, X = 48, nA = 84, uA = 13, rA = 100, MA = (z - O) / (fA - O) * 100, RA = (K - X) / (nA - X) * 100, mA = (zA - E) / (iA - E) * 100, we = (HA - uA) / (rA - uA) * 100, $A = ($) => {
|
|
13998
|
+
const Pe = Math.max(X, Math.min(nA, $));
|
|
13999
13999
|
n(String(Math.floor(Pe / 12))), s(String(Pe % 12));
|
|
14000
14000
|
}, PA = () => {
|
|
14001
14001
|
o === "in" ? $A(K + 1) : a(String(Math.min(fA, z + 1)));
|
|
14002
|
-
},
|
|
14002
|
+
}, ge = () => {
|
|
14003
14003
|
o === "in" ? $A(K - 1) : a(String(Math.max(O, z - 1)));
|
|
14004
|
-
}, qA = () => D(String(Math.min(
|
|
14004
|
+
}, qA = () => D(String(Math.min(iA, zA + 1))), fe = () => D(String(Math.max(E, zA - 1))), vA = () => u(String(Math.min(rA, HA + 1))), ue = () => u(String(Math.max(uA, HA - 1)));
|
|
14005
14005
|
return /* @__PURE__ */ e("div", { className: "ps-bpm-root", children: [
|
|
14006
14006
|
/* @__PURE__ */ e("div", { className: "ps-bpm-header", children: [
|
|
14007
14007
|
/* @__PURE__ */ A("h2", { className: "ps-bpm-title", children: F("Body Measurements") }),
|
|
@@ -14040,17 +14040,17 @@ function oi({
|
|
|
14040
14040
|
/* @__PURE__ */ e("div", { className: "ps-bpm-row", children: [
|
|
14041
14041
|
/* @__PURE__ */ e("div", { className: "ps-bpm-row-top", children: [
|
|
14042
14042
|
/* @__PURE__ */ A("span", { className: "ps-bpm-label", children: F("HEIGHT") }),
|
|
14043
|
-
/* @__PURE__ */ A("span", { className: "ps-bpm-value-display", children: o === "in" ? `${wA}ft ${
|
|
14043
|
+
/* @__PURE__ */ A("span", { className: "ps-bpm-value-display", children: o === "in" ? `${wA}ft ${T}in` : `${Math.round(z)} cm` })
|
|
14044
14044
|
] }),
|
|
14045
14045
|
/* @__PURE__ */ e("div", { className: "ps-bpm-slider-row", children: [
|
|
14046
|
-
/* @__PURE__ */ A("button", { type: "button", className: "ps-bpm-step-btn", onClick:
|
|
14046
|
+
/* @__PURE__ */ A("button", { type: "button", className: "ps-bpm-step-btn", onClick: ge, "aria-label": F("Decrease"), children: /* @__PURE__ */ A(Cg, {}) }),
|
|
14047
14047
|
o === "in" ? /* @__PURE__ */ A(
|
|
14048
14048
|
"input",
|
|
14049
14049
|
{
|
|
14050
14050
|
type: "range",
|
|
14051
14051
|
className: "ps-bpm-slider",
|
|
14052
|
-
min:
|
|
14053
|
-
max:
|
|
14052
|
+
min: X,
|
|
14053
|
+
max: nA,
|
|
14054
14054
|
step: 1,
|
|
14055
14055
|
value: K,
|
|
14056
14056
|
onChange: ($) => $A(parseInt($.target.value, 10)),
|
|
@@ -14066,7 +14066,7 @@ function oi({
|
|
|
14066
14066
|
step: 1,
|
|
14067
14067
|
value: z,
|
|
14068
14068
|
onChange: ($) => a($.target.value),
|
|
14069
|
-
style: { "--ps-pct": `${
|
|
14069
|
+
style: { "--ps-pct": `${MA}%` }
|
|
14070
14070
|
}
|
|
14071
14071
|
),
|
|
14072
14072
|
/* @__PURE__ */ A("button", { type: "button", className: "ps-bpm-step-btn", onClick: PA, "aria-label": F("Increase"), children: /* @__PURE__ */ A(dg, {}) })
|
|
@@ -14089,7 +14089,7 @@ function oi({
|
|
|
14089
14089
|
type: "range",
|
|
14090
14090
|
className: "ps-bpm-slider",
|
|
14091
14091
|
min: E,
|
|
14092
|
-
max:
|
|
14092
|
+
max: iA,
|
|
14093
14093
|
step: 1,
|
|
14094
14094
|
value: zA,
|
|
14095
14095
|
onChange: ($) => D($.target.value),
|
|
@@ -14103,7 +14103,7 @@ function oi({
|
|
|
14103
14103
|
/* @__PURE__ */ e("div", { className: "ps-bpm-row-top", children: [
|
|
14104
14104
|
/* @__PURE__ */ A("span", { className: "ps-bpm-label", children: F("AGE") }),
|
|
14105
14105
|
/* @__PURE__ */ e("span", { className: "ps-bpm-value-display", children: [
|
|
14106
|
-
Math.round(
|
|
14106
|
+
Math.round(HA),
|
|
14107
14107
|
" ",
|
|
14108
14108
|
F("YEARS")
|
|
14109
14109
|
] })
|
|
@@ -14116,9 +14116,9 @@ function oi({
|
|
|
14116
14116
|
type: "range",
|
|
14117
14117
|
className: "ps-bpm-slider",
|
|
14118
14118
|
min: uA,
|
|
14119
|
-
max:
|
|
14119
|
+
max: rA,
|
|
14120
14120
|
step: 1,
|
|
14121
|
-
value:
|
|
14121
|
+
value: HA,
|
|
14122
14122
|
onChange: ($) => u($.target.value),
|
|
14123
14123
|
style: { "--ps-pct": `${we}%` }
|
|
14124
14124
|
}
|
|
@@ -14612,16 +14612,16 @@ function li({
|
|
|
14612
14612
|
}) {
|
|
14613
14613
|
const b = t ? Bi : ai, [v, F] = Q("photo");
|
|
14614
14614
|
v === "photo" || b.indexOf(v);
|
|
14615
|
-
const z = Oo(), K = st(a), wA = W?.height,
|
|
14616
|
-
|
|
14615
|
+
const z = Oo(), K = st(a), wA = W?.height, T = W?.weight, zA = W?.age, HA = W?.heightUnit === "ft" ? "in" : W?.heightUnit, E = W?.weightUnit, iA = wA != null && HA === "cm" ? String(Math.round(wA)) : wA != null && (HA === "in" || HA === "ft") ? String(Math.round(wA * 2.54)) : r.current.height || "", O = wA != null && (HA === "in" || HA === "ft") ? Math.round(wA) : wA != null && HA === "cm" ? Math.round(wA / 2.54) : null, fA = O != null ? String(Math.floor(O / 12)) : r.current.heightFeet || "", X = O != null ? String(O % 12) : r.current.heightInches || "", nA = T != null ? String(Math.round(T)) : r.current.weight || "", uA = zA != null ? String(zA) : r.current.age || "", [rA, MA] = Q(iA), [RA, mA] = Q(fA), [we, $A] = Q(X), [PA, ge] = Q(nA), [qA, fe] = Q(uA), [vA, ue] = Q(
|
|
14616
|
+
HA || (c === "ft" ? "in" : c || (K ? "in" : "cm"))
|
|
14617
14617
|
), [$, Pe] = Q(
|
|
14618
14618
|
E || w || (K ? "lbs" : "kg")
|
|
14619
|
-
), ve = vA === "in" || $ === "lbs", [Fe,
|
|
14620
|
-
|
|
14619
|
+
), ve = vA === "in" || $ === "lbs", [Fe, te] = Q(null), [le, dA] = Q(null), [_A, TA] = Q(null), [y, GA] = Q(!1), [Ee, Ge] = Q(""), [NA, He] = Q(null), ne = QA(null), [V, se] = Q(null), [x, q] = Q(!1), [XA, S] = Q(!1), [pA, UA] = Q(() => O != null ? String(Math.round(O * 2.54)) : iA), [ae, Ae] = Q(null), [pe, LA] = Q(null), [Ce, yA] = Q(null), [lA, I] = Q(null), [FA, oA] = Q(""), [KA, me] = Q(null), [ZA, Me] = Q(null), [de, De] = Q(() => ["US", "UK", "AU"].includes(a) ? a === "AU" ? "UK" : a : ["FR", "ES"].includes(a) ? "FR" : ["IT"].includes(a) ? "IT" : ["JP", "CN", "KR"].includes(a) ? "JP" : "EU"), [JA, Qe] = Q(!1), [SA, P] = Q(null), H = QA(null);
|
|
14620
|
+
xA(() => {
|
|
14621
14621
|
if (!SA) return;
|
|
14622
14622
|
const U = (hA) => {
|
|
14623
|
-
const
|
|
14624
|
-
|
|
14623
|
+
const bA = H.current;
|
|
14624
|
+
bA && !bA.contains(hA.target) && P(null);
|
|
14625
14625
|
};
|
|
14626
14626
|
return document.addEventListener("mousedown", U), () => document.removeEventListener("mousedown", U);
|
|
14627
14627
|
}, [SA]);
|
|
@@ -14640,32 +14640,32 @@ function li({
|
|
|
14640
14640
|
_(i("Image must be under 10MB"));
|
|
14641
14641
|
return;
|
|
14642
14642
|
}
|
|
14643
|
-
_(""), GA(!0), Ge(i("Analyzing photo…")),
|
|
14644
|
-
const
|
|
14645
|
-
|
|
14643
|
+
_(""), GA(!0), Ge(i("Analyzing photo…")), te(hA);
|
|
14644
|
+
const bA = URL.createObjectURL(hA);
|
|
14645
|
+
dA(bA);
|
|
14646
14646
|
try {
|
|
14647
14647
|
const Ie = d && u ? eg(hA, d, u) : Promise.resolve({ isAdult: !0, confidence: "low" }), _e = Do(hA, { maxDimension: 1024, quality: 0.85 }), Ue = await Ie;
|
|
14648
14648
|
if (!Ue.isAdult) {
|
|
14649
14649
|
const Ke = Ue.reasoning?.trim() || i("This photo appears to be of a minor. Please upload a photo of someone 18 or older.");
|
|
14650
|
-
He(Ke),
|
|
14650
|
+
He(Ke), dA(null), te(null);
|
|
14651
14651
|
return;
|
|
14652
14652
|
}
|
|
14653
14653
|
const BA = await _e;
|
|
14654
14654
|
TA(BA), He(null);
|
|
14655
14655
|
} catch {
|
|
14656
|
-
_(i("Failed to process image")),
|
|
14656
|
+
_(i("Failed to process image")), dA(null);
|
|
14657
14657
|
} finally {
|
|
14658
14658
|
GA(!1), Ge("");
|
|
14659
14659
|
}
|
|
14660
14660
|
}, [i, V]), ee = IA(() => {
|
|
14661
|
-
le && URL.revokeObjectURL(le),
|
|
14661
|
+
le && URL.revokeObjectURL(le), te(null), dA(null), TA(null), ne.current && (ne.current.value = "");
|
|
14662
14662
|
}, [le]), EA = IA(() => {
|
|
14663
14663
|
if (vA === "in") {
|
|
14664
14664
|
const hA = parseFloat(RA);
|
|
14665
14665
|
if (!hA || hA < 3 || hA > 8)
|
|
14666
14666
|
return _(i("Please enter a valid height")), !1;
|
|
14667
14667
|
} else {
|
|
14668
|
-
const hA = parseFloat(
|
|
14668
|
+
const hA = parseFloat(rA);
|
|
14669
14669
|
if (!hA || hA < 100 || hA > 250)
|
|
14670
14670
|
return _(i("Please enter a valid height (100-250 cm)")), !1;
|
|
14671
14671
|
}
|
|
@@ -14676,19 +14676,19 @@ function li({
|
|
|
14676
14676
|
} else if (!U || U < 30 || U > 300)
|
|
14677
14677
|
return _(i("Please enter a valid weight (30-300 kg)")), !1;
|
|
14678
14678
|
return _(""), !0;
|
|
14679
|
-
}, [vA, $,
|
|
14679
|
+
}, [vA, $, rA, RA, PA, i]), Be = () => {
|
|
14680
14680
|
let U;
|
|
14681
14681
|
if (vA === "in") {
|
|
14682
|
-
const hA = parseFloat(RA) || 0,
|
|
14683
|
-
U = hA * 12 +
|
|
14682
|
+
const hA = parseFloat(RA) || 0, bA = parseFloat(we) || 0;
|
|
14683
|
+
U = hA * 12 + bA;
|
|
14684
14684
|
} else
|
|
14685
|
-
U = parseFloat(
|
|
14685
|
+
U = parseFloat(rA);
|
|
14686
14686
|
return { heightVal: U, weightVal: parseFloat(PA) };
|
|
14687
|
-
}, he = t ? "female" : "male",
|
|
14687
|
+
}, he = t ? "female" : "male", kA = (U) => {
|
|
14688
14688
|
const hA = b.indexOf(U);
|
|
14689
14689
|
return hA < b.length - 1 ? b[hA + 1] : "submit";
|
|
14690
14690
|
}, f = () => {
|
|
14691
|
-
const { heightVal: U, weightVal: hA } =
|
|
14691
|
+
const { heightVal: U, weightVal: hA } = Be();
|
|
14692
14692
|
r.current.height = String(U), r.current.weight = String(hA), r.current.gender = he, qA && (r.current.age = qA), n(vA), s($), m({
|
|
14693
14693
|
height: U,
|
|
14694
14694
|
weight: hA,
|
|
@@ -14696,16 +14696,16 @@ function li({
|
|
|
14696
14696
|
weightUnit: $,
|
|
14697
14697
|
gender: he,
|
|
14698
14698
|
age: qA ? parseInt(qA, 10) : void 0,
|
|
14699
|
-
chestProfile:
|
|
14699
|
+
chestProfile: ae || void 0,
|
|
14700
14700
|
midsectionProfile: pe,
|
|
14701
14701
|
hipProfile: Ce,
|
|
14702
14702
|
bodyImage: _A || void 0,
|
|
14703
14703
|
bandSize: KA || void 0,
|
|
14704
14704
|
cupSize: ZA || void 0
|
|
14705
14705
|
});
|
|
14706
|
-
},
|
|
14706
|
+
}, j = IA(() => {
|
|
14707
14707
|
if (!_A || !Fe) return;
|
|
14708
|
-
const U = vA === "in" ? (parseFloat(RA) || 0) * 12 + (parseFloat(we) || 0) : parseFloat(
|
|
14708
|
+
const U = vA === "in" ? (parseFloat(RA) || 0) * 12 + (parseFloat(we) || 0) : parseFloat(rA) || 0, hA = parseFloat(PA) || 0, bA = parseFloat(qA) || void 0;
|
|
14709
14709
|
M({
|
|
14710
14710
|
photoFile: Fe,
|
|
14711
14711
|
photoBase64: _A,
|
|
@@ -14714,7 +14714,7 @@ function li({
|
|
|
14714
14714
|
heightUnit: vA,
|
|
14715
14715
|
weightUnit: $,
|
|
14716
14716
|
gender: he,
|
|
14717
|
-
...
|
|
14717
|
+
...bA ? { age: bA } : {},
|
|
14718
14718
|
...t && KA && ZA ? {
|
|
14719
14719
|
braSize: {
|
|
14720
14720
|
band: parseFloat(KA),
|
|
@@ -14723,23 +14723,23 @@ function li({
|
|
|
14723
14723
|
}
|
|
14724
14724
|
} : {}
|
|
14725
14725
|
});
|
|
14726
|
-
}, [_A, Fe, vA, $, RA, we,
|
|
14726
|
+
}, [_A, Fe, vA, $, RA, we, rA, PA, qA, he, t, KA, ZA, de, M]), CA = IA(() => {
|
|
14727
14727
|
if (v === "basics") {
|
|
14728
14728
|
if (!EA()) return;
|
|
14729
|
-
F(
|
|
14729
|
+
F(kA("basics"));
|
|
14730
14730
|
} else if (v === "chest") {
|
|
14731
|
-
if (!
|
|
14732
|
-
F(
|
|
14731
|
+
if (!ae) return;
|
|
14732
|
+
F(kA("chest"));
|
|
14733
14733
|
} else if (v === "midsection") {
|
|
14734
14734
|
if (!pe) return;
|
|
14735
|
-
F(
|
|
14735
|
+
F(kA("midsection"));
|
|
14736
14736
|
} else if (v === "seat") {
|
|
14737
14737
|
if (!lA) return;
|
|
14738
|
-
const U =
|
|
14738
|
+
const U = kA("seat");
|
|
14739
14739
|
U === "submit" ? f() : F(U);
|
|
14740
14740
|
} else if (v === "hips") {
|
|
14741
14741
|
if (!Ce) return;
|
|
14742
|
-
const U =
|
|
14742
|
+
const U = kA("hips");
|
|
14743
14743
|
U === "submit" ? f() : F(U);
|
|
14744
14744
|
} else if (v === "bra") {
|
|
14745
14745
|
if (!KA || !ZA) {
|
|
@@ -14764,9 +14764,9 @@ function li({
|
|
|
14764
14764
|
F("scan-details");
|
|
14765
14765
|
return;
|
|
14766
14766
|
}
|
|
14767
|
-
|
|
14767
|
+
j();
|
|
14768
14768
|
} else if (v === "scan-details") {
|
|
14769
|
-
const U = vA === "in" ? parseFloat(RA) > 0 || parseFloat(we) > 0 : parseFloat(
|
|
14769
|
+
const U = vA === "in" ? parseFloat(RA) > 0 || parseFloat(we) > 0 : parseFloat(rA) > 0, hA = parseFloat(PA) > 0;
|
|
14770
14770
|
if (!U) {
|
|
14771
14771
|
_(i("Please enter your height"));
|
|
14772
14772
|
return;
|
|
@@ -14783,12 +14783,12 @@ function li({
|
|
|
14783
14783
|
_(i("Please upload a photo"));
|
|
14784
14784
|
return;
|
|
14785
14785
|
}
|
|
14786
|
-
_(""),
|
|
14786
|
+
_(""), j();
|
|
14787
14787
|
}
|
|
14788
|
-
}, [v, b, EA,
|
|
14788
|
+
}, [v, b, EA, ae, pe, Ce, lA, KA, ZA, vA, $, rA, RA, we, PA, qA, _A, Fe, V, z, t, he, L, Y, j]), YA = (U) => {
|
|
14789
14789
|
const hA = b.indexOf(U);
|
|
14790
14790
|
return hA > 0 ? b[hA - 1] : null;
|
|
14791
|
-
},
|
|
14791
|
+
}, ce = IA(() => {
|
|
14792
14792
|
if (_(""), v === "basics")
|
|
14793
14793
|
Z();
|
|
14794
14794
|
else if (v === "photo")
|
|
@@ -14796,24 +14796,24 @@ function li({
|
|
|
14796
14796
|
else if (v === "scan-details")
|
|
14797
14797
|
F("photo");
|
|
14798
14798
|
else {
|
|
14799
|
-
const U =
|
|
14799
|
+
const U = YA(v);
|
|
14800
14800
|
U ? F(U) : Z();
|
|
14801
14801
|
}
|
|
14802
|
-
}, [v, b, Z]), be = v === "basics" || v === "scan-details" ? !0 : v === "chest" ? !!
|
|
14802
|
+
}, [v, b, Z]), be = v === "basics" || v === "scan-details" ? !0 : v === "chest" ? !!ae : v === "midsection" ? !!pe : v === "seat" ? !!lA : v === "hips" ? !!Ce : v === "bra" ? !!(KA && ZA) : v === "photo", Le = v === b[b.length - 1], $e = () => {
|
|
14803
14803
|
if (vA === "in") {
|
|
14804
14804
|
const U = (parseFloat(RA) || 0) * 12 + (parseFloat(we) || 0);
|
|
14805
|
-
U > 0 &&
|
|
14805
|
+
U > 0 && MA(String(Math.round(U * 2.54)));
|
|
14806
14806
|
}
|
|
14807
|
-
$ === "lbs" && PA &&
|
|
14807
|
+
$ === "lbs" && PA && ge(String(Math.round(parseFloat(PA) / 2.205))), ue("cm"), Pe("kg"), n("cm"), s("kg"), D?.("cm");
|
|
14808
14808
|
}, Oe = () => {
|
|
14809
14809
|
if (vA === "cm") {
|
|
14810
|
-
const U = parseFloat(
|
|
14810
|
+
const U = parseFloat(rA);
|
|
14811
14811
|
if (U > 0) {
|
|
14812
14812
|
const hA = Math.round(U / 2.54);
|
|
14813
14813
|
mA(String(Math.floor(hA / 12))), $A(String(hA % 12));
|
|
14814
14814
|
}
|
|
14815
14815
|
}
|
|
14816
|
-
$ === "kg" && PA &&
|
|
14816
|
+
$ === "kg" && PA && ge(String(Math.round(parseFloat(PA) * 2.205))), ue("in"), Pe("lbs"), n("in"), s("lbs"), D?.("in");
|
|
14817
14817
|
};
|
|
14818
14818
|
if (v === "scan-details" && z)
|
|
14819
14819
|
return /* @__PURE__ */ e("div", { className: "ps-bp-wrapper", children: [
|
|
@@ -14857,14 +14857,14 @@ function li({
|
|
|
14857
14857
|
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "10", value: we, onChange: (U) => $A(U.target.value), min: 0, max: 11 }),
|
|
14858
14858
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "in" })
|
|
14859
14859
|
] }) : /* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
14860
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "173", value:
|
|
14860
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "173", value: rA, onChange: (U) => MA(U.target.value), min: 100, max: 250 }),
|
|
14861
14861
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "cm" })
|
|
14862
14862
|
] })
|
|
14863
14863
|
] }),
|
|
14864
14864
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
14865
14865
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: i("WEIGHT") }),
|
|
14866
14866
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
14867
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: $ === "kg" ? "75" : "165", value: PA, onChange: (U) =>
|
|
14867
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: $ === "kg" ? "75" : "165", value: PA, onChange: (U) => ge(U.target.value), min: $ === "kg" ? 30 : 66, max: $ === "kg" ? 300 : 660 }),
|
|
14868
14868
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: $ })
|
|
14869
14869
|
] })
|
|
14870
14870
|
] }),
|
|
@@ -14922,7 +14922,7 @@ function li({
|
|
|
14922
14922
|
J && /* @__PURE__ */ A("p", { className: "ps-bpm-error", children: J })
|
|
14923
14923
|
] }),
|
|
14924
14924
|
/* @__PURE__ */ e("div", { className: "ps-bpm-bottom", children: [
|
|
14925
|
-
/* @__PURE__ */ A("button", { type: "button", className: "ps-bpm-next-btn", onClick:
|
|
14925
|
+
/* @__PURE__ */ A("button", { type: "button", className: "ps-bpm-next-btn", onClick: CA, children: i("Analyze My Size") }),
|
|
14926
14926
|
/* @__PURE__ */ A(
|
|
14927
14927
|
Qo,
|
|
14928
14928
|
{
|
|
@@ -14936,8 +14936,8 @@ function li({
|
|
|
14936
14936
|
] })
|
|
14937
14937
|
] });
|
|
14938
14938
|
if (v === "photo" || v === "scan-details") {
|
|
14939
|
-
const U = vA === "in" ? parseFloat(RA) > 0 || parseFloat(we) > 0 : parseFloat(
|
|
14940
|
-
y && Ie.push(i("Analyzing photo…")), !
|
|
14939
|
+
const U = vA === "in" ? parseFloat(RA) > 0 || parseFloat(we) > 0 : parseFloat(rA) > 0, hA = parseFloat(PA) > 0, bA = !!le, Ie = [];
|
|
14940
|
+
y && Ie.push(i("Analyzing photo…")), !bA && !y && Ie.push(i("Upload a photo")), U || Ie.push(i("Enter your height")), hA || Ie.push(i("Enter your weight")), t && (!KA || !ZA) && Ie.push(i("Enter your bra size"));
|
|
14941
14941
|
const _e = Ie.length > 0, Ue = _e ? Ie[0] ?? i("Analyze My Size") : i("Analyze My Size");
|
|
14942
14942
|
return z ? /* @__PURE__ */ e("div", { className: "ps-bp-wrapper", children: [
|
|
14943
14943
|
/* @__PURE__ */ e("div", { className: "ps-bp-scan-progress", children: [
|
|
@@ -14974,14 +14974,14 @@ function li({
|
|
|
14974
14974
|
photoPreview: le,
|
|
14975
14975
|
handlePhotoSelect: gA,
|
|
14976
14976
|
handleRemovePhoto: ee,
|
|
14977
|
-
onAnalyze:
|
|
14977
|
+
onAnalyze: CA,
|
|
14978
14978
|
onSwitchToManual: () => F("basics"),
|
|
14979
14979
|
error: J,
|
|
14980
14980
|
photoStepHeight: pA,
|
|
14981
14981
|
onPhotoStepHeightChange: UA,
|
|
14982
14982
|
ageConfirmed: V,
|
|
14983
14983
|
onAgeConfirmedChange: (BA) => {
|
|
14984
|
-
|
|
14984
|
+
se(BA), BA === !0 && _("");
|
|
14985
14985
|
},
|
|
14986
14986
|
primaryLabel: i("Continue"),
|
|
14987
14987
|
compactAgeGate: !0,
|
|
@@ -15055,7 +15055,7 @@ function li({
|
|
|
15055
15055
|
"div",
|
|
15056
15056
|
{
|
|
15057
15057
|
onClick: () => {
|
|
15058
|
-
!le && V === !0 &&
|
|
15058
|
+
!le && V === !0 && ne.current?.click();
|
|
15059
15059
|
},
|
|
15060
15060
|
onMouseEnter: () => {
|
|
15061
15061
|
!le && V === !0 && S(!0);
|
|
@@ -15073,9 +15073,9 @@ function li({
|
|
|
15073
15073
|
onDrop: (BA) => {
|
|
15074
15074
|
if (BA.preventDefault(), BA.stopPropagation(), le || V !== !0) return;
|
|
15075
15075
|
const Ke = BA.dataTransfer?.files?.[0];
|
|
15076
|
-
if (!Ke || !
|
|
15076
|
+
if (!Ke || !ne.current) return;
|
|
15077
15077
|
const zo = new DataTransfer();
|
|
15078
|
-
zo.items.add(Ke),
|
|
15078
|
+
zo.items.add(Ke), ne.current.files = zo.files, ne.current.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
15079
15079
|
},
|
|
15080
15080
|
style: {
|
|
15081
15081
|
flex: 1,
|
|
@@ -15148,7 +15148,7 @@ function li({
|
|
|
15148
15148
|
{
|
|
15149
15149
|
type: "button",
|
|
15150
15150
|
onClick: (BA) => {
|
|
15151
|
-
BA.stopPropagation(), He(null),
|
|
15151
|
+
BA.stopPropagation(), He(null), ne.current?.click();
|
|
15152
15152
|
},
|
|
15153
15153
|
style: {
|
|
15154
15154
|
padding: "0.35vw 0.8vw",
|
|
@@ -15193,7 +15193,7 @@ function li({
|
|
|
15193
15193
|
{
|
|
15194
15194
|
type: "button",
|
|
15195
15195
|
onClick: (BA) => {
|
|
15196
|
-
BA.stopPropagation(),
|
|
15196
|
+
BA.stopPropagation(), se(!0), _("");
|
|
15197
15197
|
},
|
|
15198
15198
|
style: {
|
|
15199
15199
|
padding: "0.4vw 1vw",
|
|
@@ -15214,7 +15214,7 @@ function li({
|
|
|
15214
15214
|
{
|
|
15215
15215
|
type: "button",
|
|
15216
15216
|
onClick: (BA) => {
|
|
15217
|
-
BA.stopPropagation(),
|
|
15217
|
+
BA.stopPropagation(), se(!1);
|
|
15218
15218
|
},
|
|
15219
15219
|
style: {
|
|
15220
15220
|
padding: "0.4vw 1vw",
|
|
@@ -15257,7 +15257,7 @@ function li({
|
|
|
15257
15257
|
{
|
|
15258
15258
|
type: "button",
|
|
15259
15259
|
onClick: (BA) => {
|
|
15260
|
-
BA.stopPropagation(),
|
|
15260
|
+
BA.stopPropagation(), se(null);
|
|
15261
15261
|
},
|
|
15262
15262
|
style: {
|
|
15263
15263
|
padding: "0.4vw 1vw",
|
|
@@ -15376,14 +15376,14 @@ function li({
|
|
|
15376
15376
|
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "10", value: we, onChange: (BA) => $A(BA.target.value), min: 0, max: 11 }),
|
|
15377
15377
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "in" })
|
|
15378
15378
|
] }) : /* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
15379
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "173", value:
|
|
15379
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "173", value: rA, onChange: (BA) => MA(BA.target.value), min: 100, max: 250 }),
|
|
15380
15380
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "cm" })
|
|
15381
15381
|
] })
|
|
15382
15382
|
] }),
|
|
15383
15383
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
15384
15384
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: i("WEIGHT") }),
|
|
15385
15385
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
15386
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: $ === "kg" ? "75" : "165", value: PA, onChange: (BA) =>
|
|
15386
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: $ === "kg" ? "75" : "165", value: PA, onChange: (BA) => ge(BA.target.value), min: $ === "kg" ? 30 : 66, max: $ === "kg" ? 300 : 660 }),
|
|
15387
15387
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: $ })
|
|
15388
15388
|
] })
|
|
15389
15389
|
] }),
|
|
@@ -15521,7 +15521,7 @@ function li({
|
|
|
15521
15521
|
] })
|
|
15522
15522
|
] })
|
|
15523
15523
|
] }),
|
|
15524
|
-
/* @__PURE__ */ A("input", { ref:
|
|
15524
|
+
/* @__PURE__ */ A("input", { ref: ne, type: "file", accept: "image/*", onChange: gA, style: { display: "none" } }),
|
|
15525
15525
|
z ? /* @__PURE__ */ e(eA, { children: [
|
|
15526
15526
|
/* @__PURE__ */ A("div", { className: "ps-bpm-spacer" }),
|
|
15527
15527
|
/* @__PURE__ */ e("div", { className: "ps-bpm-bottom", children: [
|
|
@@ -15530,7 +15530,7 @@ function li({
|
|
|
15530
15530
|
{
|
|
15531
15531
|
type: "button",
|
|
15532
15532
|
className: "ps-bpm-next-btn",
|
|
15533
|
-
onClick:
|
|
15533
|
+
onClick: CA,
|
|
15534
15534
|
disabled: !le,
|
|
15535
15535
|
children: i("Analyze My Size")
|
|
15536
15536
|
}
|
|
@@ -15561,7 +15561,7 @@ function li({
|
|
|
15561
15561
|
)
|
|
15562
15562
|
] }),
|
|
15563
15563
|
/* @__PURE__ */ e("div", { className: "ps-bp-nav", children: [
|
|
15564
|
-
/* @__PURE__ */ e("button", { className: "ps-bp-back-btn", onClick:
|
|
15564
|
+
/* @__PURE__ */ e("button", { className: "ps-bp-back-btn", onClick: ce, type: "button", children: [
|
|
15565
15565
|
/* @__PURE__ */ A("span", { className: "ps-bp-back-arrow", children: "←" }),
|
|
15566
15566
|
" ",
|
|
15567
15567
|
i("Back")
|
|
@@ -15570,7 +15570,7 @@ function li({
|
|
|
15570
15570
|
"button",
|
|
15571
15571
|
{
|
|
15572
15572
|
className: `ps-bp-next-btn${_e ? " ps-bp-btn-disabled" : ""}`,
|
|
15573
|
-
onClick:
|
|
15573
|
+
onClick: CA,
|
|
15574
15574
|
disabled: _e,
|
|
15575
15575
|
type: "button",
|
|
15576
15576
|
title: _e ? Ie.join(" · ") : void 0,
|
|
@@ -15586,7 +15586,7 @@ function li({
|
|
|
15586
15586
|
/* @__PURE__ */ A(
|
|
15587
15587
|
"input",
|
|
15588
15588
|
{
|
|
15589
|
-
ref:
|
|
15589
|
+
ref: ne,
|
|
15590
15590
|
type: "file",
|
|
15591
15591
|
accept: "image/*",
|
|
15592
15592
|
onChange: gA,
|
|
@@ -15597,16 +15597,16 @@ function li({
|
|
|
15597
15597
|
v === "basics" && (() => {
|
|
15598
15598
|
const U = () => {
|
|
15599
15599
|
if (vA === "in") {
|
|
15600
|
-
const
|
|
15601
|
-
|
|
15600
|
+
const bA = (parseFloat(RA) || 5) * 12 + (parseFloat(we) || 8);
|
|
15601
|
+
MA(String(Math.round(bA * 2.54)));
|
|
15602
15602
|
}
|
|
15603
|
-
$ === "lbs" && PA &&
|
|
15603
|
+
$ === "lbs" && PA && ge(String(Math.round(parseFloat(PA) / 2.205))), ue("cm"), Pe("kg"), n("cm"), s("kg"), D?.("cm");
|
|
15604
15604
|
}, hA = () => {
|
|
15605
15605
|
if (vA === "cm") {
|
|
15606
|
-
const
|
|
15606
|
+
const bA = parseFloat(rA) || 173, Ie = Math.round(bA / 2.54);
|
|
15607
15607
|
mA(String(Math.floor(Ie / 12))), $A(String(Ie % 12));
|
|
15608
15608
|
}
|
|
15609
|
-
$ === "kg" && PA &&
|
|
15609
|
+
$ === "kg" && PA && ge(String(Math.round(parseFloat(PA) * 2.205))), ue("in"), Pe("lbs"), n("in"), s("lbs"), D?.("in");
|
|
15610
15610
|
};
|
|
15611
15611
|
return z ? /* @__PURE__ */ A(
|
|
15612
15612
|
oi,
|
|
@@ -15614,14 +15614,14 @@ function li({
|
|
|
15614
15614
|
hUnit: vA,
|
|
15615
15615
|
wUnit: $,
|
|
15616
15616
|
isImperialMode: ve,
|
|
15617
|
-
height:
|
|
15618
|
-
setHeight:
|
|
15617
|
+
height: rA,
|
|
15618
|
+
setHeight: MA,
|
|
15619
15619
|
heightFeet: RA,
|
|
15620
15620
|
setHeightFeet: mA,
|
|
15621
15621
|
heightInches: we,
|
|
15622
15622
|
setHeightInches: $A,
|
|
15623
15623
|
weight: PA,
|
|
15624
|
-
setWeight:
|
|
15624
|
+
setWeight: ge,
|
|
15625
15625
|
age: qA,
|
|
15626
15626
|
setAge: fe,
|
|
15627
15627
|
switchToMetric: U,
|
|
@@ -15629,7 +15629,7 @@ function li({
|
|
|
15629
15629
|
onUploadPhoto: () => F("photo"),
|
|
15630
15630
|
onSwitchToScan: () => F("photo"),
|
|
15631
15631
|
hidePhotoOptions: L,
|
|
15632
|
-
onNext: L && Y ? Y :
|
|
15632
|
+
onNext: L && Y ? Y : CA,
|
|
15633
15633
|
canProceed: !0,
|
|
15634
15634
|
fastPathLabel: L ? i("Find My Best Fit") + (Xe(vA) ? ` (${Xe(vA)})` : "") : void 0,
|
|
15635
15635
|
activeProfileName: L ? h : null,
|
|
@@ -15657,26 +15657,26 @@ function li({
|
|
|
15657
15657
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
15658
15658
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: i("HEIGHT") }),
|
|
15659
15659
|
vA === "in" ? /* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
15660
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "5", value: RA, onChange: (
|
|
15660
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "5", value: RA, onChange: (bA) => mA(bA.target.value), min: 3, max: 8 }),
|
|
15661
15661
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "ft" }),
|
|
15662
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "10", value: we, onChange: (
|
|
15662
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "10", value: we, onChange: (bA) => $A(bA.target.value), min: 0, max: 11 }),
|
|
15663
15663
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "in" })
|
|
15664
15664
|
] }) : /* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
15665
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "173", value:
|
|
15665
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "173", value: rA, onChange: (bA) => MA(bA.target.value), min: 100, max: 250 }),
|
|
15666
15666
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "cm" })
|
|
15667
15667
|
] })
|
|
15668
15668
|
] }),
|
|
15669
15669
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
15670
15670
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: i("WEIGHT") }),
|
|
15671
15671
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
15672
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: $ === "kg" ? "75" : "165", value: PA, onChange: (
|
|
15672
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: $ === "kg" ? "75" : "165", value: PA, onChange: (bA) => ge(bA.target.value), min: $ === "kg" ? 30 : 66, max: $ === "kg" ? 300 : 660 }),
|
|
15673
15673
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: $ })
|
|
15674
15674
|
] })
|
|
15675
15675
|
] }),
|
|
15676
15676
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-row", children: [
|
|
15677
15677
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: i("AGE") }),
|
|
15678
15678
|
/* @__PURE__ */ e("div", { className: "ps-bp-inline-input-group", children: [
|
|
15679
|
-
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "30", value: qA, onChange: (
|
|
15679
|
+
/* @__PURE__ */ A("input", { type: "number", className: "ps-bp-inline-input", placeholder: "30", value: qA, onChange: (bA) => fe(bA.target.value), min: 13, max: 100 }),
|
|
15680
15680
|
/* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: i("years") })
|
|
15681
15681
|
] })
|
|
15682
15682
|
] })
|
|
@@ -15708,7 +15708,7 @@ function li({
|
|
|
15708
15708
|
{ value: "average", label: i("Average"), img: jA.male.chest.average },
|
|
15709
15709
|
{ value: "broad", label: i("Broad"), img: jA.male.chest.broad }
|
|
15710
15710
|
],
|
|
15711
|
-
selected:
|
|
15711
|
+
selected: ae,
|
|
15712
15712
|
onSelect: (U) => Ae(U),
|
|
15713
15713
|
t: i
|
|
15714
15714
|
},
|
|
@@ -15716,11 +15716,11 @@ function li({
|
|
|
15716
15716
|
) : /* @__PURE__ */ e("div", { className: "ps-bp-step ps-bp-step-enter ps-bp-single-q", children: [
|
|
15717
15717
|
/* @__PURE__ */ A("h2", { className: "ps-bp-title", children: i("Which best describes your chest?") }),
|
|
15718
15718
|
/* @__PURE__ */ e("div", { className: "ps-bp-shape-row ps-bp-shape-row-full", children: [
|
|
15719
|
-
/* @__PURE__ */ A(ye, { img: jA.male.chest.narrow, label: i("Narrow"), selected:
|
|
15720
|
-
/* @__PURE__ */ A(ye, { img: jA.male.chest.average, label: i("Average"), selected:
|
|
15721
|
-
/* @__PURE__ */ A(ye, { img: jA.male.chest.broad, label: i("Broad"), selected:
|
|
15719
|
+
/* @__PURE__ */ A(ye, { img: jA.male.chest.narrow, label: i("Narrow"), selected: ae === "narrow", onSelect: () => Ae("narrow"), onHover: () => oA(i("A slimmer, narrower chest build")), onLeave: () => oA("") }),
|
|
15720
|
+
/* @__PURE__ */ A(ye, { img: jA.male.chest.average, label: i("Average"), selected: ae === "average", onSelect: () => Ae("average"), onHover: () => oA(i("A moderate, proportionate chest")), onLeave: () => oA("") }),
|
|
15721
|
+
/* @__PURE__ */ A(ye, { img: jA.male.chest.broad, label: i("Broad"), selected: ae === "broad", onSelect: () => Ae("broad"), onHover: () => oA(i("A wider, more muscular chest")), onLeave: () => oA("") })
|
|
15722
15722
|
] }),
|
|
15723
|
-
/* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children:
|
|
15723
|
+
/* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children: FA || " " })
|
|
15724
15724
|
] }, "step-chest")),
|
|
15725
15725
|
v === "midsection" && (z ? /* @__PURE__ */ A(
|
|
15726
15726
|
$o,
|
|
@@ -15753,7 +15753,7 @@ function li({
|
|
|
15753
15753
|
/* @__PURE__ */ A(ye, { img: jA.male.stomach.average, label: i("Average"), selected: pe === "average", onSelect: () => LA("average"), onHover: () => oA(i("A moderate, natural midsection shape")), onLeave: () => oA("") }),
|
|
15754
15754
|
/* @__PURE__ */ A(ye, { img: jA.male.stomach.round, label: i("Full"), selected: pe === "round", onSelect: () => LA("round"), onHover: () => oA(i("A fuller, more rounded midsection")), onLeave: () => oA("") })
|
|
15755
15755
|
] }) }),
|
|
15756
|
-
/* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children:
|
|
15756
|
+
/* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children: FA || " " })
|
|
15757
15757
|
] }, "step-midsection")),
|
|
15758
15758
|
v === "seat" && (z ? /* @__PURE__ */ A(
|
|
15759
15759
|
$o,
|
|
@@ -15786,7 +15786,7 @@ function li({
|
|
|
15786
15786
|
/* @__PURE__ */ A(ye, { img: jA.male.seat.average, label: i("Average"), selected: lA === "average", onSelect: () => I("average"), onHover: () => oA(i("A moderate, natural backside shape")), onLeave: () => oA("") }),
|
|
15787
15787
|
/* @__PURE__ */ A(ye, { img: jA.male.seat.full, label: i("Full"), selected: lA === "full", onSelect: () => I("full"), onHover: () => oA(i("A fuller, more rounded backside")), onLeave: () => oA("") })
|
|
15788
15788
|
] }) }),
|
|
15789
|
-
/* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children:
|
|
15789
|
+
/* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children: FA || " " })
|
|
15790
15790
|
] }, "step-seat")),
|
|
15791
15791
|
v === "hips" && t && (z ? /* @__PURE__ */ A(
|
|
15792
15792
|
$o,
|
|
@@ -15800,18 +15800,18 @@ function li({
|
|
|
15800
15800
|
{ value: "full", label: i("Curvy"), img: jA.female.hips.full }
|
|
15801
15801
|
],
|
|
15802
15802
|
selected: Ce,
|
|
15803
|
-
onSelect: (U) =>
|
|
15803
|
+
onSelect: (U) => yA(U),
|
|
15804
15804
|
t: i
|
|
15805
15805
|
},
|
|
15806
15806
|
"step-hips-mobile"
|
|
15807
15807
|
) : /* @__PURE__ */ e("div", { className: "ps-bp-step ps-bp-step-enter ps-bp-single-q", children: [
|
|
15808
15808
|
/* @__PURE__ */ A("h2", { className: "ps-bp-title", children: i("Which best describes your hips?") }),
|
|
15809
15809
|
/* @__PURE__ */ e("div", { className: "ps-bp-shape-row ps-bp-shape-row-full", children: [
|
|
15810
|
-
/* @__PURE__ */ A(ye, { img: jA.female.hips.narrow, label: i("Narrow"), selected: Ce === "narrow", onSelect: () =>
|
|
15811
|
-
/* @__PURE__ */ A(ye, { img: jA.female.hips.average, label: i("Average"), selected: Ce === "average", onSelect: () =>
|
|
15812
|
-
/* @__PURE__ */ A(ye, { img: jA.female.hips.full, label: i("Curvy"), selected: Ce === "full", onSelect: () =>
|
|
15810
|
+
/* @__PURE__ */ A(ye, { img: jA.female.hips.narrow, label: i("Narrow"), selected: Ce === "narrow", onSelect: () => yA("narrow"), onHover: () => oA(i("Hips closer to shoulder width")), onLeave: () => oA("") }),
|
|
15811
|
+
/* @__PURE__ */ A(ye, { img: jA.female.hips.average, label: i("Average"), selected: Ce === "average", onSelect: () => yA("average"), onHover: () => oA(i("Hips proportionate to shoulders")), onLeave: () => oA("") }),
|
|
15812
|
+
/* @__PURE__ */ A(ye, { img: jA.female.hips.full, label: i("Curvy"), selected: Ce === "full", onSelect: () => yA("full"), onHover: () => oA(i("Hips wider than shoulders")), onLeave: () => oA("") })
|
|
15813
15813
|
] }),
|
|
15814
|
-
/* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children:
|
|
15814
|
+
/* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children: FA || " " })
|
|
15815
15815
|
] }, "step-hips")),
|
|
15816
15816
|
v === "bra" && t && /* @__PURE__ */ e("div", { className: "ps-bp-step ps-bp-step-enter ps-bp-bra-step", children: [
|
|
15817
15817
|
/* @__PURE__ */ A("h2", { className: "ps-bp-title", children: i("Select your bra size") }),
|
|
@@ -15887,9 +15887,9 @@ function li({
|
|
|
15887
15887
|
J && /* @__PURE__ */ A("p", { className: "ps-bp-error", children: J })
|
|
15888
15888
|
] }, "step-bra"),
|
|
15889
15889
|
!(z && v === "basics") && (() => {
|
|
15890
|
-
const U = v === "basics" && L && !!Y, hA = U ? Y :
|
|
15890
|
+
const U = v === "basics" && L && !!Y, hA = U ? Y : CA, bA = Xe(vA) ? ` (${Xe(vA)})` : "", Ie = U ? i("Find My Best Fit") + bA : Le ? i("Find My Size") + bA : i("Next");
|
|
15891
15891
|
return /* @__PURE__ */ e("div", { className: "ps-bp-nav", children: [
|
|
15892
|
-
v !== "basics" ? /* @__PURE__ */ e("button", { className: "ps-bp-back-btn", onClick:
|
|
15892
|
+
v !== "basics" ? /* @__PURE__ */ e("button", { className: "ps-bp-back-btn", onClick: ce, type: "button", children: [
|
|
15893
15893
|
/* @__PURE__ */ A("span", { className: "ps-bp-back-arrow", children: "←" }),
|
|
15894
15894
|
" ",
|
|
15895
15895
|
i("Back")
|
|
@@ -15944,26 +15944,26 @@ function Pg({
|
|
|
15944
15944
|
}), z = t ?? [
|
|
15945
15945
|
{ label: C("Centimeters"), value: "cm" },
|
|
15946
15946
|
{ label: C("Inches"), value: "in" }
|
|
15947
|
-
], [K, wA] = Q(""),
|
|
15947
|
+
], [K, wA] = Q(""), T = QA(null), [zA, HA] = Q(null), [E, iA] = Q(null), [O, fA] = Q(null), [X, nA] = Q(!1), [uA, rA] = Q(!1), [MA, RA] = Q(""), [mA, we] = Q(null), [$A, PA] = Q(null), [ge, qA] = Q(!1), fe = IA(async (y) => {
|
|
15948
15948
|
const GA = y.target.files?.[0];
|
|
15949
15949
|
if (!GA) return;
|
|
15950
15950
|
const Ee = URL.createObjectURL(GA);
|
|
15951
|
-
|
|
15951
|
+
iA(GA), HA(Ee), rA(!0), RA("Analyzing photo…");
|
|
15952
15952
|
try {
|
|
15953
15953
|
const Ge = Y && h ? eg(GA, Y, h) : Promise.resolve({ isAdult: !0, confidence: "low" }), NA = Do(GA, W ? { maxDimension: 1536, quality: 0.85 } : {}), He = await Ge;
|
|
15954
15954
|
if (!He.isAdult) {
|
|
15955
15955
|
const V = He.reasoning?.trim() || C("This photo appears to be of a minor. Please upload a photo of someone 18 or older.");
|
|
15956
|
-
we(V),
|
|
15956
|
+
we(V), iA(null), HA(null);
|
|
15957
15957
|
return;
|
|
15958
15958
|
}
|
|
15959
|
-
const
|
|
15960
|
-
fA(
|
|
15959
|
+
const ne = await NA;
|
|
15960
|
+
fA(ne), we(null);
|
|
15961
15961
|
} catch {
|
|
15962
15962
|
} finally {
|
|
15963
|
-
|
|
15963
|
+
rA(!1), RA("");
|
|
15964
15964
|
}
|
|
15965
15965
|
}, [W, Y, h, C]), vA = IA(() => {
|
|
15966
|
-
zA && URL.revokeObjectURL(zA),
|
|
15966
|
+
zA && URL.revokeObjectURL(zA), iA(null), HA(null), fA(null);
|
|
15967
15967
|
}, [zA]), ue = (y, GA) => {
|
|
15968
15968
|
F((Ee) => ({ ...Ee, [y]: GA })), wA("");
|
|
15969
15969
|
}, $ = () => {
|
|
@@ -16078,7 +16078,7 @@ function Pg({
|
|
|
16078
16078
|
)
|
|
16079
16079
|
] })
|
|
16080
16080
|
] }) });
|
|
16081
|
-
const Fe = g.some((y) => (parseFloat(v[y.key] || "") || 0) > 0),
|
|
16081
|
+
const Fe = g.some((y) => (parseFloat(v[y.key] || "") || 0) > 0), te = !!E && $A === !0 && !uA, dA = uA || !te && !Fe, _A = uA ? C("Analyzing photo…") : te ? C("Analyze") : `${C("Find My Size")}${Xe(s) ? ` (${Xe(s)})` : ""}`, TA = te ? Pe : $;
|
|
16082
16082
|
return i !== "photo" || a ? /* @__PURE__ */ e("div", { className: "ps-bp-layout", children: [
|
|
16083
16083
|
/* @__PURE__ */ A("div", { className: "ps-bp-image", style: { position: "relative" }, children: /* @__PURE__ */ A("img", { src: c, alt: n, className: "ps-bp-image-img" }) }),
|
|
16084
16084
|
/* @__PURE__ */ A("div", { className: "ps-bp-root", children: /* @__PURE__ */ e("div", { className: "ps-bp-step ps-bp-step-enter", children: [
|
|
@@ -16139,30 +16139,30 @@ function Pg({
|
|
|
16139
16139
|
"div",
|
|
16140
16140
|
{
|
|
16141
16141
|
onClick: () => {
|
|
16142
|
-
!zA && $A === !0 &&
|
|
16142
|
+
!zA && $A === !0 && T.current?.click();
|
|
16143
16143
|
},
|
|
16144
16144
|
onMouseEnter: () => {
|
|
16145
|
-
!zA && $A === !0 &&
|
|
16145
|
+
!zA && $A === !0 && nA(!0);
|
|
16146
16146
|
},
|
|
16147
|
-
onMouseLeave: () =>
|
|
16147
|
+
onMouseLeave: () => nA(!1),
|
|
16148
16148
|
style: {
|
|
16149
16149
|
flex: 1,
|
|
16150
16150
|
display: "flex",
|
|
16151
16151
|
flexDirection: "column",
|
|
16152
16152
|
alignItems: "center",
|
|
16153
16153
|
justifyContent: "center",
|
|
16154
|
-
border: zA ? "2px solid var(--ps-accent)" : $A === !0 &&
|
|
16154
|
+
border: zA ? "2px solid var(--ps-accent)" : $A === !0 && X ? "2px dashed var(--ps-accent)" : "2px dashed var(--ps-border-color)",
|
|
16155
16155
|
borderRadius: "0.5vw",
|
|
16156
16156
|
cursor: zA ? "default" : $A === !0 ? "pointer" : "default",
|
|
16157
16157
|
position: "relative",
|
|
16158
|
-
background: zA ? "var(--ps-bg-secondary)" : $A === !0 &&
|
|
16158
|
+
background: zA ? "var(--ps-bg-secondary)" : $A === !0 && X ? "rgba(33,84,239,0.04)" : $A === null ? "rgba(0,0,0,0.025)" : "var(--ps-bg-secondary)",
|
|
16159
16159
|
transition: "border-color 0.18s, background 0.18s",
|
|
16160
16160
|
overflow: "hidden"
|
|
16161
16161
|
},
|
|
16162
16162
|
children: [
|
|
16163
16163
|
uA && /* @__PURE__ */ e("div", { className: "ps-bp-photo-overlay", onClick: (y) => y.stopPropagation(), children: [
|
|
16164
16164
|
/* @__PURE__ */ A("div", { className: "ps-bp-photo-overlay-spinner", "aria-hidden": "true" }),
|
|
16165
|
-
/* @__PURE__ */ A("span", { className: "ps-bp-photo-overlay-label", children:
|
|
16165
|
+
/* @__PURE__ */ A("span", { className: "ps-bp-photo-overlay-label", children: MA || C("Analyzing photo…") })
|
|
16166
16166
|
] }),
|
|
16167
16167
|
zA ? /* @__PURE__ */ e(eA, { children: [
|
|
16168
16168
|
/* @__PURE__ */ A("img", { src: zA, alt: "preview", style: { width: "100%", height: "100%", objectFit: "contain" } }),
|
|
@@ -16208,7 +16208,7 @@ function Pg({
|
|
|
16208
16208
|
{
|
|
16209
16209
|
type: "button",
|
|
16210
16210
|
onClick: (y) => {
|
|
16211
|
-
y.stopPropagation(), we(null),
|
|
16211
|
+
y.stopPropagation(), we(null), T.current?.click();
|
|
16212
16212
|
},
|
|
16213
16213
|
style: {
|
|
16214
16214
|
padding: "0.35vw 0.8vw",
|
|
@@ -16404,8 +16404,8 @@ function Pg({
|
|
|
16404
16404
|
alignItems: "center",
|
|
16405
16405
|
gap: "0.35vw",
|
|
16406
16406
|
padding: "0.4vw 0.7vw",
|
|
16407
|
-
background:
|
|
16408
|
-
color:
|
|
16407
|
+
background: ge ? "var(--ps-accent)" : "transparent",
|
|
16408
|
+
color: ge ? "#FFFFFF" : "var(--ps-accent)",
|
|
16409
16409
|
border: "1.5px solid var(--ps-accent)",
|
|
16410
16410
|
borderRadius: "999px",
|
|
16411
16411
|
cursor: "pointer",
|
|
@@ -16427,8 +16427,8 @@ function Pg({
|
|
|
16427
16427
|
minWidth: "14px",
|
|
16428
16428
|
minHeight: "14px",
|
|
16429
16429
|
borderRadius: "50%",
|
|
16430
|
-
background:
|
|
16431
|
-
color:
|
|
16430
|
+
background: ge ? "#FFFFFF" : "var(--ps-accent)",
|
|
16431
|
+
color: ge ? "var(--ps-accent)" : "#FFFFFF",
|
|
16432
16432
|
fontSize: "0.65vw",
|
|
16433
16433
|
fontWeight: 700,
|
|
16434
16434
|
lineHeight: 1
|
|
@@ -16487,7 +16487,7 @@ function Pg({
|
|
|
16487
16487
|
] }),
|
|
16488
16488
|
/* @__PURE__ */ A("div", { style: { fontSize: "0.58vw", color: "var(--ps-text-secondary)", lineHeight: 1.55 }, children: C("Your image will be used to generate a virtual try-on preview showing how selected items may look and fit. Images are processed securely and are not stored after generation.") })
|
|
16489
16489
|
] }),
|
|
16490
|
-
|
|
16490
|
+
ge && /* @__PURE__ */ e(
|
|
16491
16491
|
"div",
|
|
16492
16492
|
{
|
|
16493
16493
|
role: "dialog",
|
|
@@ -16589,7 +16589,7 @@ function Pg({
|
|
|
16589
16589
|
)
|
|
16590
16590
|
] })
|
|
16591
16591
|
] }),
|
|
16592
|
-
/* @__PURE__ */ A("input", { ref:
|
|
16592
|
+
/* @__PURE__ */ A("input", { ref: T, type: "file", accept: "image/*", style: { display: "none" }, onChange: fe }),
|
|
16593
16593
|
K && /* @__PURE__ */ A("p", { className: "ps-bp-error", style: { padding: "0 1.5vw" }, children: K }),
|
|
16594
16594
|
/* @__PURE__ */ e("div", { className: "ps-bp-nav", children: [
|
|
16595
16595
|
/* @__PURE__ */ e("button", { className: "ps-bp-back-btn", onClick: () => b("manual"), type: "button", children: [
|
|
@@ -16600,9 +16600,9 @@ function Pg({
|
|
|
16600
16600
|
/* @__PURE__ */ e(
|
|
16601
16601
|
"button",
|
|
16602
16602
|
{
|
|
16603
|
-
className: `ps-bp-next-btn${
|
|
16603
|
+
className: `ps-bp-next-btn${dA ? " ps-bp-btn-disabled" : ""}`,
|
|
16604
16604
|
onClick: TA,
|
|
16605
|
-
disabled:
|
|
16605
|
+
disabled: dA,
|
|
16606
16606
|
type: "button",
|
|
16607
16607
|
children: [
|
|
16608
16608
|
_A,
|
|
@@ -16816,15 +16816,15 @@ function Pi({
|
|
|
16816
16816
|
sizeGuideData: F
|
|
16817
16817
|
}) {
|
|
16818
16818
|
const z = a || o, [K, wA] = Q(() => u || "");
|
|
16819
|
-
|
|
16819
|
+
xA(() => {
|
|
16820
16820
|
u !== void 0 && wA(u);
|
|
16821
16821
|
}, [u]);
|
|
16822
|
-
const
|
|
16823
|
-
|
|
16822
|
+
const T = xe(() => Jt(K || void 0), [K]), zA = w ?? T("Virtual Try-On"), [HA, E] = Q(!1);
|
|
16823
|
+
xA(() => {
|
|
16824
16824
|
E(!0);
|
|
16825
16825
|
}, []);
|
|
16826
|
-
const [
|
|
16827
|
-
|
|
16826
|
+
const [iA, O] = Q("idle"), [fA, X] = Q(null), [nA, uA] = Q(null), [rA, MA] = Q(null), [RA, mA] = Q(null), [we, $A] = Q(!1), [PA, ge] = Q(null), [qA, fe] = Q(null), [vA, ue] = Q({}), $ = QA({});
|
|
16827
|
+
xA(() => {
|
|
16828
16828
|
$.current = vA;
|
|
16829
16829
|
}, [vA]);
|
|
16830
16830
|
const Pe = QA(null), ve = QA(null), Fe = QA(null);
|
|
@@ -16834,41 +16834,41 @@ function Pi({
|
|
|
16834
16834
|
return p === null ? delete sA[B] : sA[B] = { ...p, sectionName: B }, $.current = sA, sA;
|
|
16835
16835
|
});
|
|
16836
16836
|
}, []);
|
|
16837
|
-
const [
|
|
16838
|
-
|
|
16839
|
-
|
|
16840
|
-
recommendedSize:
|
|
16837
|
+
const [te, le] = Q(null), [dA, _A] = Q(null), [TA, y] = Q(!1), [GA, Ee] = Q(!1);
|
|
16838
|
+
xA(() => {
|
|
16839
|
+
dA?.recommendedSize && (console.log("[ps-sdk:reset] new sizingResult — clearing all section overrides", {
|
|
16840
|
+
recommendedSize: dA.recommendedSize
|
|
16841
16841
|
}), ue({}));
|
|
16842
|
-
}, [
|
|
16843
|
-
const [Ge, NA] = Q(!1), [He,
|
|
16844
|
-
|
|
16845
|
-
Pe.current =
|
|
16846
|
-
}, [
|
|
16842
|
+
}, [dA?.recommendedSize]);
|
|
16843
|
+
const [Ge, NA] = Q(!1), [He, ne] = Q(!1), [V, se] = Q(null), x = QA(!1);
|
|
16844
|
+
xA(() => {
|
|
16845
|
+
Pe.current = dA;
|
|
16846
|
+
}, [dA]), xA(() => {
|
|
16847
16847
|
ve.current = V;
|
|
16848
|
-
}, [V]),
|
|
16849
|
-
Fe.current =
|
|
16850
|
-
}, [
|
|
16851
|
-
const [q, XA] = Q(!1), S = QA(!1), [pA, UA] = Q(mn),
|
|
16852
|
-
|
|
16848
|
+
}, [V]), xA(() => {
|
|
16849
|
+
Fe.current = rA;
|
|
16850
|
+
}, [rA]);
|
|
16851
|
+
const [q, XA] = Q(!1), S = QA(!1), [pA, UA] = Q(mn), ae = st(pA), [Ae, pe] = Q(ae ? "in" : "cm"), [LA, Ce] = Q(ae ? "in" : "cm"), [yA, lA] = Q(ae ? "lbs" : "kg");
|
|
16852
|
+
xA(() => {
|
|
16853
16853
|
const B = ao(r);
|
|
16854
16854
|
B === "foot" || B === "head" ? pe("cm") : B === "face" && pe("mm");
|
|
16855
16855
|
}, [r]);
|
|
16856
|
-
const I = QA({}), [
|
|
16856
|
+
const I = QA({}), [FA, oA] = Q("male"), [KA, me] = Q(0), [ZA, Me] = Q(null), [de, De] = Q(!1), [JA, Qe] = Q(() => Je("profiles", [])), [SA, P] = Q(() => Je("history", [])), [H, N] = Q(() => tt()), [J, _] = Q(() => /* @__PURE__ */ new Set()), [gA, ee] = Q(null), EA = IA((B) => {
|
|
16857
16857
|
N(B), En(B);
|
|
16858
|
-
}, []), [
|
|
16858
|
+
}, []), [Be, he] = Q(!1), [kA, f] = Q(null), [j, CA] = Q(null), YA = QA(null), ce = QA(() => !1), be = QA(() => {
|
|
16859
16859
|
}), Le = IA((B, p) => {
|
|
16860
|
-
|
|
16861
|
-
}, []), $e = QA(null), Oe = QA(null), U = QA(null), hA = QA(null),
|
|
16862
|
-
|
|
16860
|
+
ce.current = B, be.current = p;
|
|
16861
|
+
}, []), $e = QA(null), Oe = QA(null), U = QA(null), hA = QA(null), bA = QA(null), Ie = QA(!1), _e = QA(null), Ue = QA(null), [BA, Ke] = Q(null), [zo, No] = Q(null), We = QA(null), Uo = QA(null), Jo = QA(!1), fo = QA(null);
|
|
16862
|
+
xA(() => {
|
|
16863
16863
|
try {
|
|
16864
16864
|
const B = Re(), p = je(s);
|
|
16865
16865
|
Oe.current = new Kt(B, p), U.current = new St(Oe.current.getStreamUrl());
|
|
16866
16866
|
} catch {
|
|
16867
16867
|
}
|
|
16868
16868
|
return () => {
|
|
16869
|
-
hA.current?.(), U.current?.disconnect(),
|
|
16869
|
+
hA.current?.(), U.current?.disconnect(), bA.current && clearInterval(bA.current);
|
|
16870
16870
|
};
|
|
16871
|
-
}, [s]),
|
|
16871
|
+
}, [s]), xA(() => {
|
|
16872
16872
|
if (fo.current = null, t) {
|
|
16873
16873
|
fo.current = t;
|
|
16874
16874
|
return;
|
|
@@ -16886,17 +16886,17 @@ function Pi({
|
|
|
16886
16886
|
}), () => p.abort();
|
|
16887
16887
|
}, [g, t, s, r]);
|
|
16888
16888
|
const og = 22, Ko = QA(0), ho = QA(null), vo = QA(null), Eo = QA(null), Io = QA(null), uo = QA(null), gg = QA(null), tg = QA(""), no = QA(null);
|
|
16889
|
-
|
|
16890
|
-
if (
|
|
16889
|
+
xA(() => {
|
|
16890
|
+
if (iA === "processing") {
|
|
16891
16891
|
if (no.current) return;
|
|
16892
16892
|
Ko.current = 0, gg.current = Date.now(), tg.current = "";
|
|
16893
16893
|
const B = [
|
|
16894
|
-
{ at: 0, text:
|
|
16895
|
-
{ at: 15, text:
|
|
16896
|
-
{ at: 30, text:
|
|
16897
|
-
{ at: 50, text:
|
|
16898
|
-
{ at: 75, text:
|
|
16899
|
-
{ at: 90, text:
|
|
16894
|
+
{ at: 0, text: T("Preparing your image...") },
|
|
16895
|
+
{ at: 15, text: T("Analyzing body proportions...") },
|
|
16896
|
+
{ at: 30, text: T("Matching garment to your photo...") },
|
|
16897
|
+
{ at: 50, text: T("Generating virtual try-on...") },
|
|
16898
|
+
{ at: 75, text: T("Refining details...") },
|
|
16899
|
+
{ at: 90, text: T("Almost there...") }
|
|
16900
16900
|
], p = 2 * Math.PI * 38;
|
|
16901
16901
|
return no.current = setInterval(() => {
|
|
16902
16902
|
if (Ie.current) return;
|
|
@@ -16912,11 +16912,11 @@ function Pi({
|
|
|
16912
16912
|
Io.current.textContent = sA >= og ? "•••" : `~${k}s`;
|
|
16913
16913
|
}
|
|
16914
16914
|
if (Eo.current) {
|
|
16915
|
-
const k = [...B].reverse().find((
|
|
16915
|
+
const k = [...B].reverse().find((R) => AA >= R.at);
|
|
16916
16916
|
if (k && k.text !== tg.current) {
|
|
16917
|
-
const
|
|
16918
|
-
|
|
16919
|
-
|
|
16917
|
+
const R = Eo.current;
|
|
16918
|
+
R.style.opacity = "0", setTimeout(() => {
|
|
16919
|
+
R.textContent = k.text, R.style.opacity = "1";
|
|
16920
16920
|
}, 180), tg.current = k.text;
|
|
16921
16921
|
}
|
|
16922
16922
|
}
|
|
@@ -16925,30 +16925,30 @@ function Pi({
|
|
|
16925
16925
|
};
|
|
16926
16926
|
} else
|
|
16927
16927
|
no.current && (clearInterval(no.current), no.current = null), gg.current = null;
|
|
16928
|
-
}, [
|
|
16929
|
-
|
|
16930
|
-
}, [
|
|
16931
|
-
if (
|
|
16928
|
+
}, [iA, T]), xA(() => () => {
|
|
16929
|
+
nA && URL.revokeObjectURL(nA);
|
|
16930
|
+
}, [nA]), xA(() => {
|
|
16931
|
+
if (iA !== "idle") {
|
|
16932
16932
|
const B = window.scrollY, p = document.body.style.overflow, G = document.body.style.overscrollBehavior;
|
|
16933
16933
|
return document.body.style.overflow = "hidden", document.body.style.overscrollBehavior = "none", () => {
|
|
16934
16934
|
document.body.style.overflow = p, document.body.style.overscrollBehavior = G, window.scrollTo(0, B);
|
|
16935
16935
|
};
|
|
16936
16936
|
}
|
|
16937
|
-
}, [
|
|
16937
|
+
}, [iA]), xA(() => {
|
|
16938
16938
|
oo("profiles", JA);
|
|
16939
|
-
}, [JA]),
|
|
16939
|
+
}, [JA]), xA(() => {
|
|
16940
16940
|
oo("history", SA);
|
|
16941
|
-
}, [SA]),
|
|
16941
|
+
}, [SA]), xA(() => {
|
|
16942
16942
|
const B = () => Qe(Je("profiles", []));
|
|
16943
16943
|
return window.addEventListener(Go, B), () => window.removeEventListener(Go, B);
|
|
16944
|
-
}, []),
|
|
16944
|
+
}, []), xA(() => {
|
|
16945
16945
|
if (S.current) return;
|
|
16946
16946
|
if (S.current = !0, !F) {
|
|
16947
|
-
|
|
16947
|
+
se({ found: !1 });
|
|
16948
16948
|
return;
|
|
16949
16949
|
}
|
|
16950
16950
|
if (!Oe.current) {
|
|
16951
|
-
|
|
16951
|
+
se({ found: !1 });
|
|
16952
16952
|
return;
|
|
16953
16953
|
}
|
|
16954
16954
|
XA(!0);
|
|
@@ -16958,13 +16958,13 @@ function Pi({
|
|
|
16958
16958
|
headers: { "Content-Type": "application/json", Authorization: `Bearer ${p}` },
|
|
16959
16959
|
body: JSON.stringify({ product: { title: r, productId: z }, sizeGuideRaw: F })
|
|
16960
16960
|
}).then((G) => G.ok ? G.json() : null).then((G) => {
|
|
16961
|
-
|
|
16961
|
+
se(G || { found: !1 });
|
|
16962
16962
|
}).catch(() => {
|
|
16963
|
-
|
|
16963
|
+
se({ found: !1 });
|
|
16964
16964
|
}).finally(() => XA(!1));
|
|
16965
16965
|
}, [s, r, F]);
|
|
16966
16966
|
const ut = xe(() => {
|
|
16967
|
-
switch (
|
|
16967
|
+
switch (iA) {
|
|
16968
16968
|
case "welcome":
|
|
16969
16969
|
case "body-profile":
|
|
16970
16970
|
return 1;
|
|
@@ -16978,7 +16978,7 @@ function Pi({
|
|
|
16978
16978
|
default:
|
|
16979
16979
|
return 1;
|
|
16980
16980
|
}
|
|
16981
|
-
}, [
|
|
16981
|
+
}, [iA]), mo = IA(
|
|
16982
16982
|
(B, p, G) => {
|
|
16983
16983
|
let sA = H, tA = JA.find((AA) => AA.id === sA);
|
|
16984
16984
|
if (!tA) {
|
|
@@ -17009,7 +17009,7 @@ function Pi({
|
|
|
17009
17009
|
}
|
|
17010
17010
|
if (NA(!0), p?.recommendedSize && sA) {
|
|
17011
17011
|
const AA = p.sections ? Object.fromEntries(
|
|
17012
|
-
Object.entries(p.sections).map(([k,
|
|
17012
|
+
Object.entries(p.sections).map(([k, R]) => [k, R.recommendedSize])
|
|
17013
17013
|
) : void 0;
|
|
17014
17014
|
rt(sA, {
|
|
17015
17015
|
productId: z,
|
|
@@ -17027,7 +17027,7 @@ function Pi({
|
|
|
17027
17027
|
const p = B.height ?? B.heightCm ?? 0, G = B.weight ?? B.weightKg ?? 0, sA = !!B.measurements && Object.keys(B.measurements).length > 0, tA = B.photoBase64;
|
|
17028
17028
|
if (!sA && tA && p > 0 && ng.current) {
|
|
17029
17029
|
try {
|
|
17030
|
-
const k = tA.startsWith("data:") ? tA : `data:image/jpeg;base64,${tA}`,
|
|
17030
|
+
const k = tA.startsWith("data:") ? tA : `data:image/jpeg;base64,${tA}`, R = await fetch(k).then((WA) => WA.blob()), aA = new File([R], "profile-photo.jpg", { type: R.type || "image/jpeg" });
|
|
17031
17031
|
await ng.current({
|
|
17032
17032
|
photoFile: aA,
|
|
17033
17033
|
photoBase64: tA,
|
|
@@ -17047,9 +17047,9 @@ function Pi({
|
|
|
17047
17047
|
if (AA)
|
|
17048
17048
|
try {
|
|
17049
17049
|
const k = AA.startsWith("data:") ? AA : `data:image/jpeg;base64,${AA}`;
|
|
17050
|
-
fetch(k).then((
|
|
17051
|
-
const aA = new File([
|
|
17052
|
-
|
|
17050
|
+
fetch(k).then((R) => R.blob()).then((R) => {
|
|
17051
|
+
const aA = new File([R], "profile-photo.jpg", { type: R.type || "image/jpeg" });
|
|
17052
|
+
X(aA), We.current = aA, nA && URL.revokeObjectURL(nA), uA(URL.createObjectURL(aA));
|
|
17053
17053
|
}).catch(() => {
|
|
17054
17054
|
});
|
|
17055
17055
|
} catch {
|
|
@@ -17066,7 +17066,7 @@ function Pi({
|
|
|
17066
17066
|
k?.raw && _A(k.raw), NA(!0);
|
|
17067
17067
|
}).catch(() => {
|
|
17068
17068
|
}).finally(() => y(!1));
|
|
17069
|
-
}, [z, r, o, F, s,
|
|
17069
|
+
}, [z, r, o, F, s, nA]), mt = IA(async () => {
|
|
17070
17070
|
const B = JA.find((tA) => tA.id === H);
|
|
17071
17071
|
if (!B) return;
|
|
17072
17072
|
const p = B.height ?? B.heightCm ?? 0, G = B.weight ?? B.weightKg ?? 0;
|
|
@@ -17081,13 +17081,13 @@ function Pi({
|
|
|
17081
17081
|
}), Ht = IA(() => {
|
|
17082
17082
|
console.log("[ps-sdk] handleOpen fired — opening modal"), O("body-profile"), C?.();
|
|
17083
17083
|
}, [C]), ro = IA(() => {
|
|
17084
|
-
O("idle"),
|
|
17085
|
-
}, [W,
|
|
17086
|
-
if (
|
|
17087
|
-
f(null),
|
|
17084
|
+
O("idle"), X(null), f(null), CA(null), nA && URL.revokeObjectURL(nA), uA(null), MA(null), mA(null), le(null), _A(null), y(!1), Me(null), De(!1), Ee(!1), he(!1), I.current = {}, oA("male"), io.current = !1, hA.current?.(), hA.current = null, bA.current && (clearInterval(bA.current), bA.current = null), W?.();
|
|
17085
|
+
}, [W, nA]), Mt = IA(() => {
|
|
17086
|
+
if (kA) {
|
|
17087
|
+
f(null), YA.current && (O(YA.current), YA.current = null);
|
|
17088
17088
|
return;
|
|
17089
17089
|
}
|
|
17090
|
-
switch (
|
|
17090
|
+
switch (iA) {
|
|
17091
17091
|
case "body-profile":
|
|
17092
17092
|
ro();
|
|
17093
17093
|
break;
|
|
@@ -17111,85 +17111,85 @@ function Pi({
|
|
|
17111
17111
|
O("body-profile");
|
|
17112
17112
|
break;
|
|
17113
17113
|
case "profiles":
|
|
17114
|
-
if (
|
|
17114
|
+
if (ce.current()) {
|
|
17115
17115
|
be.current();
|
|
17116
17116
|
break;
|
|
17117
17117
|
}
|
|
17118
|
-
O(
|
|
17118
|
+
O(YA.current || "body-profile"), YA.current = null;
|
|
17119
17119
|
break;
|
|
17120
17120
|
default:
|
|
17121
17121
|
ro();
|
|
17122
17122
|
break;
|
|
17123
17123
|
}
|
|
17124
|
-
}, [
|
|
17124
|
+
}, [iA, kA, qA, ro]), yt = iA !== "idle" && iA !== "processing" && iA !== "result" && iA !== "welcome" && iA !== "body-profile" && iA !== "size-result", ig = IA((B) => {
|
|
17125
17125
|
if (!jt(B)) {
|
|
17126
|
-
mA(
|
|
17126
|
+
mA(T("Please upload a JPEG, PNG, or WebP image.")), O("error"), v?.({ message: "Invalid file type", code: "INVALID_FILE" });
|
|
17127
17127
|
return;
|
|
17128
17128
|
}
|
|
17129
17129
|
if (B.size > 10 * 1024 * 1024) {
|
|
17130
|
-
mA(
|
|
17130
|
+
mA(T("Image must be under 10MB.")), O("error"), v?.({ message: "File too large", code: "FILE_TOO_LARGE" });
|
|
17131
17131
|
return;
|
|
17132
17132
|
}
|
|
17133
|
-
|
|
17133
|
+
X(B), We.current = B, Uo.current = null;
|
|
17134
17134
|
const p = URL.createObjectURL(B);
|
|
17135
17135
|
uA(p), Z?.(B), Ue.current = null, _o(p).then((G) => {
|
|
17136
17136
|
Ue.current = G;
|
|
17137
17137
|
}).catch(() => {
|
|
17138
17138
|
});
|
|
17139
17139
|
}, [Z, v]), xg = IA(() => {
|
|
17140
|
-
|
|
17141
|
-
}, [
|
|
17142
|
-
|
|
17140
|
+
X(null), nA && URL.revokeObjectURL(nA), uA(null);
|
|
17141
|
+
}, [nA]), co = IA(() => {
|
|
17142
|
+
bA.current && (clearInterval(bA.current), bA.current = null), hA.current?.(), hA.current = null;
|
|
17143
17143
|
}, []), sg = IA((B) => {
|
|
17144
17144
|
if (x.current) {
|
|
17145
|
-
(B.status === "completed" || B.status === "failed") && (Ie.current = !0, co(),
|
|
17145
|
+
(B.status === "completed" || B.status === "failed") && (Ie.current = !0, co(), ne(!1), ge(null));
|
|
17146
17146
|
return;
|
|
17147
17147
|
}
|
|
17148
17148
|
if (B.status === "completed" && B.imageUrl) {
|
|
17149
|
-
if (
|
|
17150
|
-
if (Ie.current = !0, Ko.current = 100, ho.current && (ho.current.style.width = "100%"), vo.current && (vo.current.textContent = "100%"), uo.current && (uo.current.style.strokeDashoffset = "0"), Io.current && (Io.current.textContent =
|
|
17149
|
+
if (MA((p) => !p || p.startsWith("data:") || !B.imageUrl.startsWith("data:") ? B.imageUrl : p), !Ie.current) {
|
|
17150
|
+
if (Ie.current = !0, Ko.current = 100, ho.current && (ho.current.style.width = "100%"), vo.current && (vo.current.textContent = "100%"), uo.current && (uo.current.style.strokeDashoffset = "0"), Io.current && (Io.current.textContent = T("Done")), Eo.current) {
|
|
17151
17151
|
const p = Eo.current;
|
|
17152
17152
|
p.style.opacity = "0", setTimeout(() => {
|
|
17153
|
-
p.textContent =
|
|
17153
|
+
p.textContent = T("Complete!"), p.style.opacity = "1";
|
|
17154
17154
|
}, 180);
|
|
17155
17155
|
}
|
|
17156
|
-
co(),
|
|
17156
|
+
co(), ne(!1), ge(null), b?.({ jobId: B.galleryId, imageUrl: B.imageUrl });
|
|
17157
17157
|
}
|
|
17158
17158
|
} else if (B.status === "failed" && !Ie.current) {
|
|
17159
|
-
Ie.current = !0, co(),
|
|
17160
|
-
const p = B.error ||
|
|
17159
|
+
Ie.current = !0, co(), ne(!1), ge(null);
|
|
17160
|
+
const p = B.error || T("Try-on generation failed");
|
|
17161
17161
|
mA(p), O("error"), v?.({ message: p });
|
|
17162
17162
|
}
|
|
17163
|
-
}, [b, v, co]), Ao = xe(() => V?.found && V.requiredFields && V.requiredFields.length > 0 ? V.requiredFields :
|
|
17163
|
+
}, [b, v, co]), Ao = xe(() => V?.found && V.requiredFields && V.requiredFields.length > 0 ? V.requiredFields : FA === "female" ? fn : hn, [V, FA]), bo = IA(async (B) => {
|
|
17164
17164
|
if (!Oe.current) return;
|
|
17165
|
-
const p = B ||
|
|
17165
|
+
const p = B || te, G = je(s), sA = Re(), tA = ao(r);
|
|
17166
17166
|
if (tA === "face" || tA === "head") {
|
|
17167
|
-
const k = I.current,
|
|
17167
|
+
const k = I.current, R = (cA) => {
|
|
17168
17168
|
if (!cA) return;
|
|
17169
|
-
const
|
|
17170
|
-
return Number.isFinite(
|
|
17169
|
+
const ie = parseFloat(cA);
|
|
17170
|
+
return Number.isFinite(ie) && ie > 0 ? ie : void 0;
|
|
17171
17171
|
}, aA = k.sizingUnit || Ae || (tA === "head" ? "cm" : "mm"), WA = (cA) => {
|
|
17172
17172
|
if (cA != null)
|
|
17173
17173
|
return aA === "mm" ? cA : aA === "cm" ? cA * 10 : aA === "in" ? cA * 25.4 : cA;
|
|
17174
|
-
}, DA = {},
|
|
17175
|
-
bridgeWidth: WA(
|
|
17176
|
-
templeLength: WA(
|
|
17177
|
-
lensWidth: WA(
|
|
17178
|
-
lensHeight: WA(
|
|
17179
|
-
faceWidth: WA(
|
|
17180
|
-
pd: WA(
|
|
17174
|
+
}, DA = {}, oe = {
|
|
17175
|
+
bridgeWidth: WA(R(k.bridgeWidth)),
|
|
17176
|
+
templeLength: WA(R(k.templeLength) ?? R(k.armLength)),
|
|
17177
|
+
lensWidth: WA(R(k.lensWidth)),
|
|
17178
|
+
lensHeight: WA(R(k.lensHeight)),
|
|
17179
|
+
faceWidth: WA(R(k.faceWidth) ?? R(k.frameWidth)),
|
|
17180
|
+
pd: WA(R(k.pd)),
|
|
17181
17181
|
// Headwear — circumference usually typed in cm; keep as mm internally.
|
|
17182
|
-
headCircumference: WA(
|
|
17183
|
-
headWidth: WA(
|
|
17182
|
+
headCircumference: WA(R(k.headCircumference)),
|
|
17183
|
+
headWidth: WA(R(k.headWidth))
|
|
17184
17184
|
};
|
|
17185
|
-
for (const [cA,
|
|
17185
|
+
for (const [cA, ie] of Object.entries(oe)) typeof ie == "number" && (DA[cA] = ie);
|
|
17186
17186
|
const VA = {
|
|
17187
17187
|
product: { title: r, productId: a },
|
|
17188
17188
|
sizeGuide: V?.found ? V : { found: !1 },
|
|
17189
17189
|
sizingUnit: tA === "head" ? "cm" : "mm",
|
|
17190
17190
|
category: tA,
|
|
17191
17191
|
...Object.keys(DA).length > 0 && { faceMeasurementsMm: DA, irisConfidence: 1 }
|
|
17192
|
-
},
|
|
17192
|
+
}, re = new Promise((cA) => setTimeout(cA, 4500));
|
|
17193
17193
|
try {
|
|
17194
17194
|
const cA = await fetch(`${G}/api/v1/sizing/face-recommend`, {
|
|
17195
17195
|
method: "POST",
|
|
@@ -17197,14 +17197,14 @@ function Pi({
|
|
|
17197
17197
|
body: JSON.stringify(VA)
|
|
17198
17198
|
});
|
|
17199
17199
|
if (cA.ok) {
|
|
17200
|
-
const
|
|
17201
|
-
await
|
|
17200
|
+
const ie = await cA.json();
|
|
17201
|
+
await re, _A(ie), b?.(ie);
|
|
17202
17202
|
} else {
|
|
17203
|
-
const
|
|
17204
|
-
console.error("[PS-SDK] face-recommend failed:", cA.status,
|
|
17203
|
+
const ie = await cA.text().catch(() => "");
|
|
17204
|
+
console.error("[PS-SDK] face-recommend failed:", cA.status, ie), await re, mA(T("Unable to get size recommendation. Please try again.")), O("error"), NA(!0);
|
|
17205
17205
|
}
|
|
17206
17206
|
} catch (cA) {
|
|
17207
|
-
console.error("[PS-SDK] face-recommend network error:", cA), await
|
|
17207
|
+
console.error("[PS-SDK] face-recommend network error:", cA), await re, mA(T("Unable to connect to sizing service. Please try again.")), O("error"), NA(!0);
|
|
17208
17208
|
} finally {
|
|
17209
17209
|
y(!1);
|
|
17210
17210
|
}
|
|
@@ -17216,13 +17216,13 @@ function Pi({
|
|
|
17216
17216
|
product: { title: r, productId: z, description: "", variants: [] }
|
|
17217
17217
|
};
|
|
17218
17218
|
if (V?.found && (AA.sizeGuide = V, V.sections && (AA.sizeGuide = { ...V, sections: V.sections })), AA.sizingUnit = Ae, console.log("[PS-SDK] sizeGuide state:", JSON.stringify({ found: V?.found, hasHeaders: !!V?.headers, hasRows: !!V?.rows, headers: V?.headers, rowCount: V?.rows?.length, hasSections: !!V?.sections, sectionNames: V?.sections ? Object.keys(V.sections) : [] })), console.log("[PS-SDK] payload.sizeGuide:", AA.sizeGuide ? "present" : "MISSING"), console.log("[PS-SDK] payload.sizeGuide row0 type:", AA.sizeGuide && AA.sizeGuide.rows?.[0] ? Array.isArray(AA.sizeGuide.rows[0]) ? "array" : typeof AA.sizeGuide.rows[0] : "none"), console.log("[PS-SDK] payload:", JSON.stringify(AA).substring(0, 1e3)), console.log("[PS-SDK] ── submitSizing START ──"), console.log("[PS-SDK] method:", p, "| sizingUnit:", Ae, "| heightUnit:", LA), console.log("[PS-SDK] formRef.current (all keys):", JSON.stringify(I.current)), console.log("[PS-SDK] dynamicFields:", Ao.map((k) => `${k.key}(unit=${k.unit},req=${k.required})`).join(", ")), p === "exact") {
|
|
17219
|
-
const k = { gender: I.current.gender || "male", sizingUnit: Ae },
|
|
17219
|
+
const k = { gender: I.current.gender || "male", sizingUnit: Ae }, R = /* @__PURE__ */ new Set();
|
|
17220
17220
|
for (const aA of Ao)
|
|
17221
|
-
aA.unit !== "size" && !["shoeEU", "shoeUS", "shoeUK"].includes(aA.key) &&
|
|
17221
|
+
aA.unit !== "size" && !["shoeEU", "shoeUS", "shoeUK"].includes(aA.key) && R.add(aA.key);
|
|
17222
17222
|
for (const aA of ["chest", "bust", "waist", "hips", "shoulderWidth", "sleeveLength", "inseam", "neckCircumference", "footLengthCm", "height", "length", "thighCircumference", "headCircumferenceCm", "faceWidthMm", "bridgeWidthMm", "templeLengthMm"])
|
|
17223
|
-
I.current[aA] &&
|
|
17224
|
-
console.log("[PS-SDK] numericKeys:", [...
|
|
17225
|
-
for (const aA of
|
|
17223
|
+
I.current[aA] && R.add(aA);
|
|
17224
|
+
console.log("[PS-SDK] numericKeys:", [...R].join(", "));
|
|
17225
|
+
for (const aA of R) {
|
|
17226
17226
|
const WA = I.current[aA];
|
|
17227
17227
|
if (!WA) continue;
|
|
17228
17228
|
const DA = parseFloat(WA);
|
|
@@ -17230,24 +17230,24 @@ function Pi({
|
|
|
17230
17230
|
}
|
|
17231
17231
|
I.current.shoeEU && (k.shoeEU = I.current.shoeEU), I.current.shoeUS && (k.shoeUS = I.current.shoeUS), I.current.shoeUK && (k.shoeUK = I.current.shoeUK), I.current.fitPreference && (k.fitPreference = I.current.fitPreference), AA.measurements = k, console.log("[PS-SDK] FINAL measurements:", JSON.stringify(k));
|
|
17232
17232
|
} else {
|
|
17233
|
-
const k = parseFloat(I.current.height || "0"),
|
|
17234
|
-
if (!k || !
|
|
17235
|
-
console.error("[PS-SDK] submitSizing ABORT — qHeight:", k, "qWeight:",
|
|
17233
|
+
const k = parseFloat(I.current.height || "0"), R = parseFloat(I.current.weight || "0");
|
|
17234
|
+
if (!k || !R) {
|
|
17235
|
+
console.error("[PS-SDK] submitSizing ABORT — qHeight:", k, "qWeight:", R, "formRef:", JSON.stringify(I.current)), y(!1);
|
|
17236
17236
|
return;
|
|
17237
17237
|
}
|
|
17238
17238
|
const aA = {
|
|
17239
17239
|
height: k,
|
|
17240
|
-
weight:
|
|
17240
|
+
weight: R,
|
|
17241
17241
|
heightUnit: I.current.heightUnit || LA || "cm",
|
|
17242
|
-
weightUnit: I.current.weightUnit ||
|
|
17242
|
+
weightUnit: I.current.weightUnit || yA || "kg",
|
|
17243
17243
|
gender: I.current.gender || "male"
|
|
17244
17244
|
};
|
|
17245
17245
|
I.current.age && (aA.age = parseInt(I.current.age, 10)), I.current.bodyType && (aA.bodyType = I.current.bodyType), I.current.chestProfile && (aA.chestProfile = I.current.chestProfile), I.current.midsectionProfile && (aA.midsectionProfile = I.current.midsectionProfile), I.current.hipProfile && (aA.hipProfile = I.current.hipProfile), AA.quickEstimate = aA;
|
|
17246
17246
|
}
|
|
17247
17247
|
NA(!1);
|
|
17248
17248
|
try {
|
|
17249
|
-
const k = Date.now(),
|
|
17250
|
-
console.log(`[ps-sdk:T] ▶ POST /sizing/recommend (quick) payload=${Math.round(
|
|
17249
|
+
const k = Date.now(), R = JSON.stringify(AA).length;
|
|
17250
|
+
console.log(`[ps-sdk:T] ▶ POST /sizing/recommend (quick) payload=${Math.round(R / 1024)}KB bodyImage=${!!AA.bodyImage}`);
|
|
17251
17251
|
const aA = await fetch(`${G}/api/v1/sizing/recommend`, {
|
|
17252
17252
|
method: "POST",
|
|
17253
17253
|
headers: { "Content-Type": "application/json", Authorization: `Bearer ${sA}` },
|
|
@@ -17260,7 +17260,7 @@ function Pi({
|
|
|
17260
17260
|
return;
|
|
17261
17261
|
}
|
|
17262
17262
|
_A(WA), b?.(WA);
|
|
17263
|
-
const DA = AA.measurements || {},
|
|
17263
|
+
const DA = AA.measurements || {}, oe = AA.quickEstimate || {}, VA = p === "exact" ? DA : oe;
|
|
17264
17264
|
mo(
|
|
17265
17265
|
{
|
|
17266
17266
|
gender: VA.gender || "male",
|
|
@@ -17277,62 +17277,62 @@ function Pi({
|
|
|
17277
17277
|
);
|
|
17278
17278
|
} else {
|
|
17279
17279
|
const WA = await aA.text().catch(() => "");
|
|
17280
|
-
console.error("[PS-SDK] Sizing recommend failed:", aA.status, WA), mA(
|
|
17280
|
+
console.error("[PS-SDK] Sizing recommend failed:", aA.status, WA), mA(T("Unable to get size recommendation. Please try again.")), O("error"), NA(!0);
|
|
17281
17281
|
}
|
|
17282
17282
|
} catch (k) {
|
|
17283
|
-
console.error("[PS-SDK] Sizing recommend network error:", k), mA(
|
|
17283
|
+
console.error("[PS-SDK] Sizing recommend network error:", k), mA(T("Unable to connect to sizing service. Please try again.")), O("error"), NA(!0);
|
|
17284
17284
|
} finally {
|
|
17285
17285
|
y(!1);
|
|
17286
17286
|
}
|
|
17287
|
-
}, [s,
|
|
17287
|
+
}, [s, te, pA, LA, yA, Ae, V, r, Ao, mo]), Ft = IA(async (B, p, G, sA, tA, AA, k, R, aA, WA, DA) => {
|
|
17288
17288
|
if (!Oe.current) {
|
|
17289
|
-
const cA =
|
|
17289
|
+
const cA = T("SDK not configured. Please refresh and try again.");
|
|
17290
17290
|
console.warn("[ps-sdk] handleQuickEstimate BAILED — apiRef is null. API key not loaded."), mA(cA), O("error"), v?.({ message: cA, code: "SDK_NOT_CONFIGURED" });
|
|
17291
17291
|
return;
|
|
17292
17292
|
}
|
|
17293
17293
|
je(s), Re();
|
|
17294
|
-
const
|
|
17294
|
+
const oe = /* @__PURE__ */ new Set(["weight", "weightKg", "height", "heightCm"]), VA = /* @__PURE__ */ new Set();
|
|
17295
17295
|
if (V?.sections) {
|
|
17296
17296
|
for (const cA of Object.values(V.sections))
|
|
17297
17297
|
if (cA.requiredFields)
|
|
17298
|
-
for (const
|
|
17299
|
-
|
|
17298
|
+
for (const ie of cA.requiredFields)
|
|
17299
|
+
ie.required && ie.unit === "cm" && !oe.has(ie.key) && VA.add(ie.key);
|
|
17300
17300
|
}
|
|
17301
17301
|
for (const cA of Ao)
|
|
17302
|
-
cA.required && cA.unit === "cm" && !
|
|
17303
|
-
const
|
|
17304
|
-
if (console.log("[PS-SDK] Quick estimate — dynamicFields:", Ao.map((cA) => `${cA.key}(${cA.unit},req=${cA.required})`)), console.log("[PS-SDK] Quick estimate — requiredFieldKeys:",
|
|
17305
|
-
console.warn("[PS-SDK] No body measurement fields found — skipping estimation review"),
|
|
17302
|
+
cA.required && cA.unit === "cm" && !oe.has(cA.key) && VA.add(cA.key);
|
|
17303
|
+
const re = Array.from(VA);
|
|
17304
|
+
if (console.log("[PS-SDK] Quick estimate — dynamicFields:", Ao.map((cA) => `${cA.key}(${cA.unit},req=${cA.required})`)), console.log("[PS-SDK] Quick estimate — requiredFieldKeys:", re), console.log("[PS-SDK] Quick estimate — profiles:", { chestProfile: R, midsectionProfile: aA, hipProfile: WA }), re.length === 0) {
|
|
17305
|
+
console.warn("[PS-SDK] No body measurement fields found — skipping estimation review"), nA && URL.revokeObjectURL(nA), X(null), We.current = null, uA(null), Ke(null), No(null), le("quick"), y(!0), O("size-result"), bo("quick");
|
|
17306
17306
|
return;
|
|
17307
17307
|
}
|
|
17308
|
-
I.current.height = String(B), I.current.weight = String(p), I.current.heightUnit = G, I.current.weightUnit = sA, I.current.gender = tA, AA && (I.current.age = String(AA)), k && (I.current.bodyType = k),
|
|
17309
|
-
}, [s, Ao, V, bo, Ae,
|
|
17308
|
+
I.current.height = String(B), I.current.weight = String(p), I.current.heightUnit = G, I.current.weightUnit = sA, I.current.gender = tA, AA && (I.current.age = String(AA)), k && (I.current.bodyType = k), R && (I.current.chestProfile = R), aA && (I.current.midsectionProfile = aA), WA && (I.current.hipProfile = WA), _A(null), MA(null), nA && URL.revokeObjectURL(nA), X(null), We.current = null, uA(null), Ke(null), No(null), le("quick"), y(!0), O("size-result"), bo("quick");
|
|
17309
|
+
}, [s, Ao, V, bo, Ae, yA, nA]), ag = IA(async (B) => {
|
|
17310
17310
|
if (console.log("[ps-sdk] handleSnapSubmit fired", {
|
|
17311
17311
|
hasApiRef: !!Oe.current,
|
|
17312
17312
|
hasSseRef: !!U.current,
|
|
17313
17313
|
apiUrl: s
|
|
17314
17314
|
}), !Oe.current || !U.current) {
|
|
17315
|
-
const DA =
|
|
17315
|
+
const DA = T("SDK not configured. Please refresh and try again.");
|
|
17316
17316
|
console.warn("[ps-sdk] handleSnapSubmit BAILED — apiRef or sseRef is null. Check api init."), mA(DA), O("error"), v?.({ message: DA, code: "SDK_NOT_CONFIGURED" });
|
|
17317
17317
|
return;
|
|
17318
17318
|
}
|
|
17319
17319
|
const p = je(s), G = Re();
|
|
17320
|
-
console.log("[ps-sdk] handleSnapSubmit calling backend", { baseUrl: p }),
|
|
17320
|
+
console.log("[ps-sdk] handleSnapSubmit calling backend", { baseUrl: p }), X(B.photoFile), We.current = B.photoFile;
|
|
17321
17321
|
const sA = B.photoFile ? URL.createObjectURL(B.photoFile) : B.photoBase64.startsWith("data:") ? B.photoBase64 : `data:image/jpeg;base64,${B.photoBase64}`;
|
|
17322
|
-
uA(sA), Ie.current = !1, Uo.current = null, x.current = !1,
|
|
17322
|
+
uA(sA), Ie.current = !1, Uo.current = null, x.current = !1, ne(!1), ge(null), _A(null), MA(null), y(!0), NA(!1), O("size-result");
|
|
17323
17323
|
const tA = ao(r);
|
|
17324
17324
|
if (tA === "face" || tA === "head") {
|
|
17325
17325
|
No(null);
|
|
17326
|
-
const DA = new Promise((
|
|
17326
|
+
const DA = new Promise((oe) => setTimeout(oe, 4500));
|
|
17327
17327
|
try {
|
|
17328
|
-
const
|
|
17329
|
-
if (!
|
|
17328
|
+
const oe = await cn(sA);
|
|
17329
|
+
if (!oe) {
|
|
17330
17330
|
console.warn("[ps-sdk] face detection returned no result — likely a full-body photo for a face/head product"), await DA;
|
|
17331
|
-
const cA =
|
|
17331
|
+
const cA = T(tA === "head" ? "We couldn't detect your head clearly. Please upload a close-up photo that shows your full head and ears." : "We couldn't detect your face clearly. Please upload a close-up selfie that shows both eyes.");
|
|
17332
17332
|
mA(cA), O("error"), v?.({ message: cA, code: "FACE_DETECTION_FAILED" }), y(!1);
|
|
17333
17333
|
return;
|
|
17334
17334
|
}
|
|
17335
|
-
|
|
17335
|
+
oe && No(oe.landmarks);
|
|
17336
17336
|
const VA = {
|
|
17337
17337
|
product: { title: r, productId: z },
|
|
17338
17338
|
sizeGuide: V ?? { found: !1 },
|
|
@@ -17340,14 +17340,14 @@ function Pi({
|
|
|
17340
17340
|
category: tA,
|
|
17341
17341
|
bodyImage: B.photoBase64
|
|
17342
17342
|
};
|
|
17343
|
-
|
|
17344
|
-
const
|
|
17343
|
+
oe && (VA.faceMeasurementsMm = oe.measurementsMm, VA.faceLandmarks = oe.landmarks, VA.irisConfidence = oe.irisConfidence);
|
|
17344
|
+
const re = await fetch(`${p}/api/v1/sizing/face-recommend`, {
|
|
17345
17345
|
method: "POST",
|
|
17346
17346
|
headers: { "Content-Type": "application/json", Authorization: `Bearer ${G}` },
|
|
17347
17347
|
body: JSON.stringify(VA)
|
|
17348
17348
|
});
|
|
17349
|
-
if (
|
|
17350
|
-
const cA = await
|
|
17349
|
+
if (re.ok) {
|
|
17350
|
+
const cA = await re.json();
|
|
17351
17351
|
await DA, _A(cA), b?.(cA), mo(
|
|
17352
17352
|
{
|
|
17353
17353
|
gender: B.gender,
|
|
@@ -17363,18 +17363,18 @@ function Pi({
|
|
|
17363
17363
|
);
|
|
17364
17364
|
} else
|
|
17365
17365
|
await DA, NA(!0);
|
|
17366
|
-
} catch (
|
|
17367
|
-
console.error("[ps-sdk] face-recommend failed:",
|
|
17366
|
+
} catch (oe) {
|
|
17367
|
+
console.error("[ps-sdk] face-recommend failed:", oe), await DA, NA(!0);
|
|
17368
17368
|
}
|
|
17369
17369
|
y(!1);
|
|
17370
17370
|
return;
|
|
17371
17371
|
}
|
|
17372
17372
|
Ue.current = null, Ke(null), _o(sA).then((DA) => (Ue.current = DA, DA)).catch(() => null);
|
|
17373
|
-
const AA = Bo(sA).then((DA) => (Ke(DA), DA)).catch(() => null), k = 8e3,
|
|
17373
|
+
const AA = Bo(sA).then((DA) => (Ke(DA), DA)).catch(() => null), k = 8e3, R = await Promise.race([
|
|
17374
17374
|
AA,
|
|
17375
17375
|
new Promise((DA) => setTimeout(() => DA(null), k))
|
|
17376
17376
|
]);
|
|
17377
|
-
|
|
17377
|
+
R || console.log("[ps-sdk] landmarks not ready in", k, "ms — proceeding without them"), bn(R);
|
|
17378
17378
|
const aA = {
|
|
17379
17379
|
method: "photo",
|
|
17380
17380
|
locale: pA,
|
|
@@ -17384,7 +17384,7 @@ function Pi({
|
|
|
17384
17384
|
// BlazePose landmarks (normalized 0–1 coordinates). The backend uses
|
|
17385
17385
|
// these to compute exact pixel distances and feed them to Gemini as
|
|
17386
17386
|
// anchors instead of asking it to estimate visually.
|
|
17387
|
-
bodyLandmarks:
|
|
17387
|
+
bodyLandmarks: R || void 0,
|
|
17388
17388
|
measurements: {
|
|
17389
17389
|
gender: B.gender,
|
|
17390
17390
|
height: B.height,
|
|
@@ -17418,26 +17418,26 @@ function Pi({
|
|
|
17418
17418
|
};
|
|
17419
17419
|
V?.found && (aA.sizeGuide = V);
|
|
17420
17420
|
{
|
|
17421
|
-
const DA = aA.bodyLandmarks,
|
|
17422
|
-
console.log(`[ps-sdk:debug] payload → bodyLandmarks=${!!DA}(${
|
|
17421
|
+
const DA = aA.bodyLandmarks, oe = DA ? Object.keys(DA).filter((VA) => VA !== "imageWidth" && VA !== "imageHeight" && DA[VA]).length : 0;
|
|
17422
|
+
console.log(`[ps-sdk:debug] payload → bodyLandmarks=${!!DA}(${oe} joints)`);
|
|
17423
17423
|
}
|
|
17424
17424
|
const WA = new Promise((DA) => setTimeout(DA, 6e3));
|
|
17425
17425
|
try {
|
|
17426
|
-
const DA = Date.now(),
|
|
17427
|
-
console.log(`[ps-sdk:T] ▶ POST /sizing/recommend payload=${Math.round(
|
|
17426
|
+
const DA = Date.now(), oe = JSON.stringify(aA).length;
|
|
17427
|
+
console.log(`[ps-sdk:T] ▶ POST /sizing/recommend payload=${Math.round(oe / 1024)}KB bodyImage=${!!aA.bodyImage} landmarks=${!!aA.bodyLandmarks}`);
|
|
17428
17428
|
const VA = await fetch(`${p}/api/v1/sizing/recommend`, {
|
|
17429
17429
|
method: "POST",
|
|
17430
17430
|
headers: { "Content-Type": "application/json", Authorization: `Bearer ${G}` },
|
|
17431
17431
|
body: JSON.stringify(aA)
|
|
17432
17432
|
});
|
|
17433
17433
|
if (console.log(`[ps-sdk:T] ◀ /sizing/recommend status=${VA.status} roundTrip=${Date.now() - DA}ms`), VA.ok) {
|
|
17434
|
-
const
|
|
17435
|
-
if (
|
|
17434
|
+
const re = await VA.json();
|
|
17435
|
+
if (re?.found === !1 && re?.reasoning === "NO_SIZE_CHART") {
|
|
17436
17436
|
O("no-chart"), NA(!0), y(!1);
|
|
17437
17437
|
return;
|
|
17438
17438
|
}
|
|
17439
|
-
const cA = ui(
|
|
17440
|
-
|
|
17439
|
+
const cA = ui(re);
|
|
17440
|
+
re?.found === !1 || cA != null && cA < 50 ? (console.log(`[ps-sdk:gate] LOW FIT (match=${cA ?? "?"}%, found=${re?.found}) — suppressing try-on`), x.current = !0, ne(!1), ge(null), _A({ ...re, found: !1 }), b?.({ ...re, found: !1 })) : (_A(re), b?.(re), mo(
|
|
17441
17441
|
{
|
|
17442
17442
|
gender: B.gender,
|
|
17443
17443
|
height: B.height,
|
|
@@ -17447,7 +17447,7 @@ function Pi({
|
|
|
17447
17447
|
age: B.age,
|
|
17448
17448
|
bodyImage: B.photoBase64
|
|
17449
17449
|
},
|
|
17450
|
-
|
|
17450
|
+
re
|
|
17451
17451
|
));
|
|
17452
17452
|
} else
|
|
17453
17453
|
NA(!0);
|
|
@@ -17455,18 +17455,18 @@ function Pi({
|
|
|
17455
17455
|
NA(!0);
|
|
17456
17456
|
}
|
|
17457
17457
|
await WA, y(!1);
|
|
17458
|
-
}, [s, o, r, Ae,
|
|
17458
|
+
}, [s, o, r, Ae, yA, pA, V, Ao, mo]);
|
|
17459
17459
|
ng.current = ag;
|
|
17460
17460
|
const xo = IA(async (B) => {
|
|
17461
17461
|
const p = B || fA || We.current;
|
|
17462
17462
|
if (!p || !Oe.current || !U.current) {
|
|
17463
|
-
const AA = Oe.current ?
|
|
17463
|
+
const AA = Oe.current ? T("Please upload a photo first.") : T("SDK not configured. Please provide an API key.");
|
|
17464
17464
|
mA(AA), O("error"), v?.({ message: AA, code: "SDK_NOT_CONFIGURED" });
|
|
17465
17465
|
return;
|
|
17466
17466
|
}
|
|
17467
|
-
B && B !== fA && (
|
|
17468
|
-
const G = mi(ao(r)), sA = G === "apparel", tA = (B ? null :
|
|
17469
|
-
(B || !
|
|
17467
|
+
B && B !== fA && (X(B), We.current = B), Ie.current = !1, ne(!0), ge(Date.now());
|
|
17468
|
+
const G = mi(ao(r)), sA = G === "apparel", tA = (B ? null : nA) || URL.createObjectURL(p);
|
|
17469
|
+
(B || !nA) && uA(tA), sA && (!Ue.current || !BA) && (Ue.current = null, Ke(null), _o(tA).then((AA) => {
|
|
17470
17470
|
Ue.current = AA;
|
|
17471
17471
|
}).catch(() => {
|
|
17472
17472
|
}), Bo(tA).then((AA) => {
|
|
@@ -17474,9 +17474,9 @@ function Pi({
|
|
|
17474
17474
|
}).catch(() => {
|
|
17475
17475
|
}));
|
|
17476
17476
|
try {
|
|
17477
|
-
const AA = await Do(p, sA ? { maxDimension: 1024, quality: 0.85 } : {}), k = $.current,
|
|
17477
|
+
const AA = await Do(p, sA ? { maxDimension: 1024, quality: 0.85 } : {}), k = $.current, R = Object.keys(k), aA = R.length > 0, WA = aA ? (() => {
|
|
17478
17478
|
const OA = /* @__PURE__ */ new Set(), ze = [];
|
|
17479
|
-
for (const so of
|
|
17479
|
+
for (const so of R) {
|
|
17480
17480
|
const Ne = k[so]?.matchDetails || [];
|
|
17481
17481
|
for (const lo of Ne) {
|
|
17482
17482
|
const So = lo.measurement.toLowerCase().trim();
|
|
@@ -17484,21 +17484,21 @@ function Pi({
|
|
|
17484
17484
|
}
|
|
17485
17485
|
}
|
|
17486
17486
|
return ze;
|
|
17487
|
-
})() : null, DA = aA ?
|
|
17487
|
+
})() : null, DA = aA ? R.map((OA) => `${OA.replace(/\s*[—–-]\s*.*/g, "").trim()} ${k[OA].displayLabel}`).join(", ") : void 0, oe = aA ? {
|
|
17488
17488
|
selectedSize: DA ?? "",
|
|
17489
17489
|
displayLabel: DA ?? "",
|
|
17490
17490
|
matchDetails: WA ?? void 0
|
|
17491
17491
|
} : null;
|
|
17492
17492
|
console.log("[ps-sdk:tryon] reading pendingCustomSizesRef at submit", {
|
|
17493
|
-
sectionCount:
|
|
17494
|
-
sections:
|
|
17493
|
+
sectionCount: R.length,
|
|
17494
|
+
sections: R,
|
|
17495
17495
|
compositeDisplayLabel: DA,
|
|
17496
17496
|
mergedOverrideMdCount: WA?.length ?? 0,
|
|
17497
17497
|
mergedOverrideMdPreview: WA?.map((OA) => ({ area: OA.measurement, chartRange: OA.chartRange }))
|
|
17498
17498
|
});
|
|
17499
17499
|
const VA = () => {
|
|
17500
17500
|
const OA = /* @__PURE__ */ new Set(), ze = [];
|
|
17501
|
-
console.log("[ps-sdk:flatten] sizingResult keys:", Object.keys(
|
|
17501
|
+
console.log("[ps-sdk:flatten] sizingResult keys:", Object.keys(dA || {})), console.log("[ps-sdk:flatten] root matchDetails:", (dA?.matchDetails || []).map((Ne) => Ne.measurement)), console.log("[ps-sdk:flatten] sections:", dA?.sections ? Object.keys(dA.sections) : "none");
|
|
17502
17502
|
const so = (Ne, lo, So) => {
|
|
17503
17503
|
if (Ne) {
|
|
17504
17504
|
console.log(`[ps-sdk:flatten] ${lo} →`, Ne.map((jo) => jo.measurement));
|
|
@@ -17508,29 +17508,29 @@ function Pi({
|
|
|
17508
17508
|
}
|
|
17509
17509
|
}
|
|
17510
17510
|
};
|
|
17511
|
-
if (so(
|
|
17512
|
-
for (const [Ne, lo] of Object.entries(
|
|
17511
|
+
if (so(dA?.matchDetails, "root", void 0), dA?.sections)
|
|
17512
|
+
for (const [Ne, lo] of Object.entries(dA.sections))
|
|
17513
17513
|
so(lo?.matchDetails, `section:${Ne}`, Ne);
|
|
17514
17514
|
return console.log("[ps-sdk:flatten] final unique:", ze.map((Ne) => Ne.measurement)), ze;
|
|
17515
|
-
},
|
|
17515
|
+
}, re = oe?.matchDetails && oe.matchDetails.length ? oe.matchDetails : VA();
|
|
17516
17516
|
let cA;
|
|
17517
|
-
if (sA &&
|
|
17518
|
-
const OA = (
|
|
17519
|
-
cA = Dn(
|
|
17517
|
+
if (sA && re.length) {
|
|
17518
|
+
const OA = (dA?.unit || Ae || "in").toString().toLowerCase(), ze = OA === "cm" ? "cm" : OA === "mm" ? "mm" : "in";
|
|
17519
|
+
cA = Dn(re, Ue.current, ze);
|
|
17520
17520
|
}
|
|
17521
17521
|
console.log("[ps-sdk:tryon] fitInfo built", { count: cA?.length || 0, areas: cA?.map((OA) => `${OA.area}(${OA.fit})`) });
|
|
17522
|
-
let
|
|
17522
|
+
let ie = o;
|
|
17523
17523
|
if (t)
|
|
17524
|
-
|
|
17524
|
+
ie = t;
|
|
17525
17525
|
else if (fo.current)
|
|
17526
|
-
|
|
17526
|
+
ie = fo.current, console.log(`[ps-sdk:tryon] using pre-picked garment reference: ${ie}`);
|
|
17527
17527
|
else if (g && g.length > 1) {
|
|
17528
17528
|
const OA = await yn(g);
|
|
17529
|
-
OA && OA !== o && (console.log(`[ps-sdk:tryon] auto-picked garment reference (mediapipe): ${OA}`),
|
|
17529
|
+
OA && OA !== o && (console.log(`[ps-sdk:tryon] auto-picked garment reference (mediapipe): ${OA}`), ie = OA);
|
|
17530
17530
|
}
|
|
17531
17531
|
const wo = await Oe.current.submitTryOn(
|
|
17532
17532
|
AA,
|
|
17533
|
-
|
|
17533
|
+
ie,
|
|
17534
17534
|
cA,
|
|
17535
17535
|
G ?? "apparel",
|
|
17536
17536
|
{
|
|
@@ -17539,9 +17539,9 @@ function Pi({
|
|
|
17539
17539
|
productDescription: c,
|
|
17540
17540
|
productMaterial: n,
|
|
17541
17541
|
silhouetteContext: Qn(
|
|
17542
|
-
|
|
17542
|
+
dA,
|
|
17543
17543
|
V,
|
|
17544
|
-
|
|
17544
|
+
oe?.displayLabel,
|
|
17545
17545
|
(() => {
|
|
17546
17546
|
const OA = parseFloat(I.current.height || "0");
|
|
17547
17547
|
if (!OA || OA <= 0) return;
|
|
@@ -17555,7 +17555,7 @@ function Pi({
|
|
|
17555
17555
|
(() => {
|
|
17556
17556
|
const OA = parseFloat(I.current.weight || "0");
|
|
17557
17557
|
if (!OA || OA <= 0) return;
|
|
17558
|
-
const ze = I.current.weightUnit ||
|
|
17558
|
+
const ze = I.current.weightUnit || yA || "kg";
|
|
17559
17559
|
return `${OA} ${ze}`;
|
|
17560
17560
|
})()
|
|
17561
17561
|
),
|
|
@@ -17564,13 +17564,13 @@ function Pi({
|
|
|
17564
17564
|
);
|
|
17565
17565
|
wo.modelImageId && (Uo.current = wo.modelImageId), i?.(wo.jobId), hA.current = U.current.onJob(wo.jobId, sg);
|
|
17566
17566
|
let yg = 0;
|
|
17567
|
-
|
|
17567
|
+
bA.current = setInterval(async () => {
|
|
17568
17568
|
if (Ie.current) {
|
|
17569
|
-
|
|
17569
|
+
bA.current && clearInterval(bA.current), bA.current = null;
|
|
17570
17570
|
return;
|
|
17571
17571
|
}
|
|
17572
17572
|
if (yg++, yg > 60) {
|
|
17573
|
-
|
|
17573
|
+
bA.current && clearInterval(bA.current), bA.current = null;
|
|
17574
17574
|
return;
|
|
17575
17575
|
}
|
|
17576
17576
|
try {
|
|
@@ -17580,30 +17580,30 @@ function Pi({
|
|
|
17580
17580
|
}
|
|
17581
17581
|
}, 3e3);
|
|
17582
17582
|
} catch (AA) {
|
|
17583
|
-
const k = AA instanceof Error ? AA.message :
|
|
17584
|
-
mA(k), O("error"), v?.({ message: k, code:
|
|
17583
|
+
const k = AA instanceof Error ? AA.message : T("Failed to start try-on"), R = AA instanceof jg ? AA.code : void 0;
|
|
17584
|
+
mA(k), O("error"), v?.({ message: k, code: R });
|
|
17585
17585
|
}
|
|
17586
|
-
}, [fA, o, r,
|
|
17587
|
-
|
|
17588
|
-
if (!
|
|
17586
|
+
}, [fA, o, r, dA, i, v, sg]);
|
|
17587
|
+
xA(() => {
|
|
17588
|
+
if (!dA) {
|
|
17589
17589
|
Jo.current = !1;
|
|
17590
17590
|
return;
|
|
17591
17591
|
}
|
|
17592
|
-
|
|
17593
|
-
}, [
|
|
17592
|
+
dA.found !== !1 && (x.current || Jo.current || He || rA || !fA && !We.current || (Jo.current = !0, xo()));
|
|
17593
|
+
}, [dA, He, rA, fA, xo]);
|
|
17594
17594
|
const kt = IA(() => {
|
|
17595
|
-
if (
|
|
17596
|
-
if (
|
|
17595
|
+
if (rA)
|
|
17596
|
+
if (rA.startsWith("data:")) {
|
|
17597
17597
|
const B = document.createElement("a");
|
|
17598
|
-
B.href =
|
|
17598
|
+
B.href = rA, B.download = `primestyle-tryon-${Date.now()}.png`, B.click();
|
|
17599
17599
|
} else
|
|
17600
|
-
fetch(
|
|
17600
|
+
fetch(rA).then((B) => B.blob()).then((B) => {
|
|
17601
17601
|
const p = URL.createObjectURL(B), G = document.createElement("a");
|
|
17602
17602
|
G.href = p, G.download = `primestyle-tryon-${Date.now()}.png`, G.click(), setTimeout(() => URL.revokeObjectURL(p), 100);
|
|
17603
|
-
}).catch(() => window.open(
|
|
17604
|
-
}, [
|
|
17605
|
-
Ie.current = !1, co(),
|
|
17606
|
-
}, [
|
|
17603
|
+
}).catch(() => window.open(rA, "_blank"));
|
|
17604
|
+
}, [rA]), Yt = IA(() => {
|
|
17605
|
+
Ie.current = !1, co(), X(null), nA && URL.revokeObjectURL(nA), uA(null), MA(null), mA(null), le(null), _A(null), y(!1), he(!1), O("body-profile");
|
|
17606
|
+
}, [nA, co]), Gt = IA((B) => {
|
|
17607
17607
|
const p = JA.find((sA) => sA.id === B);
|
|
17608
17608
|
if (!p) return;
|
|
17609
17609
|
EA(B), Qe((sA) => sA.map((tA) => tA.id === B ? { ...tA, lastUsedAt: Date.now() } : tA));
|
|
@@ -17636,7 +17636,7 @@ function Pi({
|
|
|
17636
17636
|
country: pA,
|
|
17637
17637
|
sizingUnit: Ae,
|
|
17638
17638
|
heightUnit: LA,
|
|
17639
|
-
weightUnit:
|
|
17639
|
+
weightUnit: yA,
|
|
17640
17640
|
createdAt: Date.now()
|
|
17641
17641
|
}, tA = /* @__PURE__ */ new Set([
|
|
17642
17642
|
"chest",
|
|
@@ -17658,44 +17658,44 @@ function Pi({
|
|
|
17658
17658
|
"heightFeet",
|
|
17659
17659
|
"heightInches"
|
|
17660
17660
|
]), AA = {};
|
|
17661
|
-
for (const [k,
|
|
17662
|
-
!tA.has(k) &&
|
|
17661
|
+
for (const [k, R] of Object.entries(I.current))
|
|
17662
|
+
!tA.has(k) && R && !isNaN(Number(R)) && (AA[k] = parseFloat(R));
|
|
17663
17663
|
Object.keys(AA).length > 0 && (sA.customMeasurements = AA), Qe((k) => {
|
|
17664
|
-
const
|
|
17665
|
-
if (
|
|
17664
|
+
const R = k.findIndex((aA) => aA.id === G);
|
|
17665
|
+
if (R >= 0) {
|
|
17666
17666
|
const aA = [...k];
|
|
17667
|
-
return aA[
|
|
17667
|
+
return aA[R] = sA, aA;
|
|
17668
17668
|
}
|
|
17669
17669
|
return [...k, sA].slice(-50);
|
|
17670
17670
|
}), EA(G), he(!0);
|
|
17671
|
-
}, [H, pA, Ae, LA,
|
|
17671
|
+
}, [H, pA, Ae, LA, yA]);
|
|
17672
17672
|
const Hg = IA(async () => {
|
|
17673
17673
|
const B = `h_${Date.now()}`;
|
|
17674
17674
|
let p = !1;
|
|
17675
17675
|
const G = fA || We.current;
|
|
17676
17676
|
if (G)
|
|
17677
17677
|
try {
|
|
17678
|
-
const
|
|
17678
|
+
const R = await Do(G, { maxDimension: 768, quality: 0.7 }), aA = await (await fetch(R)).blob();
|
|
17679
17679
|
p = await Rg(B, aA);
|
|
17680
17680
|
} catch {
|
|
17681
17681
|
}
|
|
17682
|
-
const sA = $.current, tA =
|
|
17683
|
-
sectionName:
|
|
17684
|
-
selectedSize:
|
|
17685
|
-
selectedLength:
|
|
17686
|
-
displayLabel:
|
|
17687
|
-
isOverride: !!tA &&
|
|
17682
|
+
const sA = $.current, tA = dA?.recommendedSize ?? "", AA = Object.values(sA).map((R) => ({
|
|
17683
|
+
sectionName: R.sectionName,
|
|
17684
|
+
selectedSize: R.selectedSize,
|
|
17685
|
+
selectedLength: R.selectedLength,
|
|
17686
|
+
displayLabel: R.displayLabel,
|
|
17687
|
+
isOverride: !!tA && R.selectedSize !== tA
|
|
17688
17688
|
})), k = {
|
|
17689
17689
|
id: B,
|
|
17690
17690
|
productTitle: r,
|
|
17691
17691
|
productImage: o,
|
|
17692
|
-
resultImageUrl:
|
|
17693
|
-
recommendedSize:
|
|
17694
|
-
confidence:
|
|
17695
|
-
reasoning:
|
|
17696
|
-
internationalSizes:
|
|
17697
|
-
matchDetails:
|
|
17698
|
-
sizingResult:
|
|
17692
|
+
resultImageUrl: rA || void 0,
|
|
17693
|
+
recommendedSize: dA?.recommendedSize,
|
|
17694
|
+
confidence: dA?.confidence,
|
|
17695
|
+
reasoning: dA?.reasoning,
|
|
17696
|
+
internationalSizes: dA?.internationalSizes,
|
|
17697
|
+
matchDetails: dA?.matchDetails,
|
|
17698
|
+
sizingResult: dA || void 0,
|
|
17699
17699
|
sizeGuide: V ? {
|
|
17700
17700
|
found: V.found,
|
|
17701
17701
|
title: V.title,
|
|
@@ -17709,21 +17709,21 @@ function Pi({
|
|
|
17709
17709
|
selectedSizes: AA.length ? AA : void 0
|
|
17710
17710
|
};
|
|
17711
17711
|
if (H) {
|
|
17712
|
-
const
|
|
17713
|
-
|
|
17712
|
+
const R = JA.find((aA) => aA.id === H);
|
|
17713
|
+
R && (k.profileName = R.name);
|
|
17714
17714
|
}
|
|
17715
|
-
P((
|
|
17716
|
-
const aA = [k, ...
|
|
17715
|
+
P((R) => {
|
|
17716
|
+
const aA = [k, ...R].slice(0, 50), WA = new Set(aA.map((DA) => DA.id));
|
|
17717
17717
|
return Vt(WA), aA;
|
|
17718
17718
|
});
|
|
17719
|
-
}, [r, o,
|
|
17720
|
-
|
|
17721
|
-
if (
|
|
17719
|
+
}, [r, o, rA, dA, V, H, JA, fA]), io = QA(!1), Ho = QA(!1);
|
|
17720
|
+
xA(() => {
|
|
17721
|
+
if (iA === "size-result" && dA && !io.current)
|
|
17722
17722
|
io.current = !0, Ho.current = !1, Hg().catch(() => {
|
|
17723
17723
|
});
|
|
17724
|
-
else if (
|
|
17724
|
+
else if (iA === "size-result" && dA && rA && !Ho.current) {
|
|
17725
17725
|
Ho.current = !0;
|
|
17726
|
-
const B = $.current, p =
|
|
17726
|
+
const B = $.current, p = dA?.recommendedSize ?? "", G = Object.values(B).map((tA) => ({
|
|
17727
17727
|
sectionName: tA.sectionName,
|
|
17728
17728
|
selectedSize: tA.selectedSize,
|
|
17729
17729
|
selectedLength: tA.selectedLength,
|
|
@@ -17733,14 +17733,14 @@ function Pi({
|
|
|
17733
17733
|
let sA = null;
|
|
17734
17734
|
if (P((tA) => tA.length === 0 ? tA : (sA = tA[0].id, [{
|
|
17735
17735
|
...tA[0],
|
|
17736
|
-
resultImageUrl:
|
|
17736
|
+
resultImageUrl: rA,
|
|
17737
17737
|
hasResult: !0,
|
|
17738
17738
|
...G.length ? { selectedSizes: G } : {}
|
|
17739
17739
|
}, ...tA.slice(1)])), sA) {
|
|
17740
17740
|
const tA = sA;
|
|
17741
17741
|
(async () => {
|
|
17742
17742
|
try {
|
|
17743
|
-
const AA = await fetch(
|
|
17743
|
+
const AA = await fetch(rA);
|
|
17744
17744
|
if (!AA.ok) return;
|
|
17745
17745
|
const k = await AA.blob();
|
|
17746
17746
|
await Xt(tA, k);
|
|
@@ -17748,9 +17748,9 @@ function Pi({
|
|
|
17748
17748
|
}
|
|
17749
17749
|
})();
|
|
17750
17750
|
}
|
|
17751
|
-
} else
|
|
17752
|
-
})) : (
|
|
17753
|
-
}, [
|
|
17751
|
+
} else iA === "result" && rA && !io.current ? (io.current = !0, Hg().catch(() => {
|
|
17752
|
+
})) : (iA === "welcome" || iA === "body-profile") && (io.current = !1, Ho.current = !1);
|
|
17753
|
+
}, [iA, dA, rA]);
|
|
17754
17754
|
const Lt = IA((B) => {
|
|
17755
17755
|
if (io.current = !0, Ho.current = !!B.resultImageUrl, Jo.current = !0, B.sizingResult ? _A(B.sizingResult) : B.recommendedSize && _A({
|
|
17756
17756
|
recommendedSize: B.recommendedSize,
|
|
@@ -17758,14 +17758,14 @@ function Pi({
|
|
|
17758
17758
|
reasoning: B.reasoning || "",
|
|
17759
17759
|
internationalSizes: B.internationalSizes,
|
|
17760
17760
|
matchDetails: B.matchDetails
|
|
17761
|
-
}), B.sizeGuide && (
|
|
17761
|
+
}), B.sizeGuide && (se(B.sizeGuide), XA(!1)), MA(B.resultImageUrl || null), (B.hasResult || B.resultImageUrl) && Wt(B.id).then((p) => {
|
|
17762
17762
|
if (!p) return;
|
|
17763
17763
|
const G = URL.createObjectURL(p);
|
|
17764
|
-
|
|
17764
|
+
MA(G);
|
|
17765
17765
|
}), B.hasPhoto && Tg(B.id).then((p) => {
|
|
17766
17766
|
if (!p) return;
|
|
17767
17767
|
const G = new File([p], `history-photo-${B.id}.jpg`, { type: p.type || "image/jpeg" });
|
|
17768
|
-
|
|
17768
|
+
X(G), We.current = G;
|
|
17769
17769
|
}), B.selectedSizes && B.selectedSizes.length) {
|
|
17770
17770
|
const p = {};
|
|
17771
17771
|
for (const G of B.selectedSizes)
|
|
@@ -17777,7 +17777,7 @@ function Pi({
|
|
|
17777
17777
|
};
|
|
17778
17778
|
ue(p), $.current = p;
|
|
17779
17779
|
}
|
|
17780
|
-
y(!1),
|
|
17780
|
+
y(!1), ne(!1), ge(null), fe(null), f(null), O("size-result");
|
|
17781
17781
|
}, []), Ot = IA((B, p) => {
|
|
17782
17782
|
I.current[B] = p;
|
|
17783
17783
|
}, []);
|
|
@@ -17787,8 +17787,8 @@ function Pi({
|
|
|
17787
17787
|
UK: { key: "shoeUK", labelKey: "Shoe size (UK)", ph: "e.g. 9" },
|
|
17788
17788
|
AU: { key: "shoeUK", labelKey: "Shoe size (UK)", ph: "e.g. 9" }
|
|
17789
17789
|
}[pA] || { key: "shoeEU", labelKey: "Shoe size (EU)", ph: "e.g. 43" };
|
|
17790
|
-
return { key: p.key, label:
|
|
17791
|
-
}, [pA,
|
|
17790
|
+
return { key: p.key, label: T(p.labelKey), ph: p.ph };
|
|
17791
|
+
}, [pA, T]);
|
|
17792
17792
|
const zt = {
|
|
17793
17793
|
"--ps-btn-bg": m.backgroundColor,
|
|
17794
17794
|
"--ps-btn-color": m.textColor,
|
|
@@ -17841,15 +17841,15 @@ function Pi({
|
|
|
17841
17841
|
"--ps-logo-height": M.logoHeight
|
|
17842
17842
|
}, Mg = Object.fromEntries(Object.entries(zt).filter(([, B]) => B !== void 0));
|
|
17843
17843
|
function Nt() {
|
|
17844
|
-
switch (
|
|
17844
|
+
switch (iA) {
|
|
17845
17845
|
case "welcome":
|
|
17846
|
-
return /* @__PURE__ */ A("div", { className: "ps-tryon-view-enter", children: /* @__PURE__ */ A(Wn, { productImage: o, setView: O, t:
|
|
17846
|
+
return /* @__PURE__ */ A("div", { className: "ps-tryon-view-enter", children: /* @__PURE__ */ A(Wn, { productImage: o, setView: O, t: T }) }, "v-welcome");
|
|
17847
17847
|
case "body-profile": {
|
|
17848
|
-
const B = ao(r), p = { productImage: o, productTitle: r, formRef: I, sizingUnit: Ae, setSizingUnit: pe, setSizingMethod: le, setSizingLoading: y, setView: O, submitSizing: bo, onSnapSubmit: ag, onBack: ro, apiUrl: je(s), apiKey: Re(), sizeGuide: V, t:
|
|
17848
|
+
const B = ao(r), p = { productImage: o, productTitle: r, formRef: I, sizingUnit: Ae, setSizingUnit: pe, setSizingMethod: le, setSizingLoading: y, setView: O, submitSizing: bo, onSnapSubmit: ag, onBack: ro, apiUrl: je(s), apiKey: Re(), sizeGuide: V, t: T };
|
|
17849
17849
|
if (B === "foot") return /* @__PURE__ */ A("div", { className: "ps-tryon-view-enter", children: /* @__PURE__ */ A(di, { ...p }) }, "v-foot");
|
|
17850
17850
|
if (B === "head") return /* @__PURE__ */ A("div", { className: "ps-tryon-view-enter", children: /* @__PURE__ */ A(fi, { ...p }) }, "v-head");
|
|
17851
17851
|
if (B === "face") return /* @__PURE__ */ A("div", { className: "ps-tryon-view-enter", children: /* @__PURE__ */ A(Ii, { ...p }) }, "v-face");
|
|
17852
|
-
const G = !!(V?.requiredFields?.some((k) => k.key === "bust") || V?.sections && Object.values(V.sections).some((k) => k.requiredFields?.some((
|
|
17852
|
+
const G = !!(V?.requiredFields?.some((k) => k.key === "bust") || V?.sections && Object.values(V.sections).some((k) => k.requiredFields?.some((R) => R.key === "bust"))), sA = r.toLowerCase(), tA = /\b(women|woman|ladies|female|dress|skirt|blouse|bra)\b/i.test(sA);
|
|
17853
17853
|
return /* @__PURE__ */ A("div", { className: "ps-tryon-view-enter", children: /* @__PURE__ */ A(
|
|
17854
17854
|
li,
|
|
17855
17855
|
{
|
|
@@ -17860,7 +17860,7 @@ function Pi({
|
|
|
17860
17860
|
sizingCountry: pA,
|
|
17861
17861
|
heightUnit: LA,
|
|
17862
17862
|
setHeightUnit: Ce,
|
|
17863
|
-
weightUnit:
|
|
17863
|
+
weightUnit: yA,
|
|
17864
17864
|
setWeightUnit: lA,
|
|
17865
17865
|
sizingUnit: Ae,
|
|
17866
17866
|
setSizingUnit: pe,
|
|
@@ -17869,11 +17869,11 @@ function Pi({
|
|
|
17869
17869
|
hasActiveProfileWithMeasurements: (() => {
|
|
17870
17870
|
const k = JA.find((WA) => WA.id === H);
|
|
17871
17871
|
if (!k) return !1;
|
|
17872
|
-
const
|
|
17873
|
-
return
|
|
17872
|
+
const R = k.height ?? k.heightCm ?? 0, aA = k.weight ?? k.weightKg ?? 0;
|
|
17873
|
+
return R > 0 && aA > 0;
|
|
17874
17874
|
})(),
|
|
17875
17875
|
onUseActiveProfile: mt,
|
|
17876
|
-
activeProfileName: JA.find((
|
|
17876
|
+
activeProfileName: JA.find((R) => R.id === H)?.name || null,
|
|
17877
17877
|
activeProfile: JA.find((k) => k.id === H) || null,
|
|
17878
17878
|
onStartFresh: () => {
|
|
17879
17879
|
EA(null), I.current = {};
|
|
@@ -17897,7 +17897,7 @@ function Pi({
|
|
|
17897
17897
|
Ee(!0), ag(k);
|
|
17898
17898
|
},
|
|
17899
17899
|
onBack: ro,
|
|
17900
|
-
t:
|
|
17900
|
+
t: T
|
|
17901
17901
|
},
|
|
17902
17902
|
`bp-${H || "anon"}`
|
|
17903
17903
|
) }, "v-bodyprofile");
|
|
@@ -17912,7 +17912,7 @@ function Pi({
|
|
|
17912
17912
|
estimationLoading: de,
|
|
17913
17913
|
dynamicFields: Ao,
|
|
17914
17914
|
formRef: I,
|
|
17915
|
-
formGender:
|
|
17915
|
+
formGender: FA,
|
|
17916
17916
|
formKey: KA,
|
|
17917
17917
|
setFormKey: me,
|
|
17918
17918
|
sizingUnit: Ae,
|
|
@@ -17922,7 +17922,7 @@ function Pi({
|
|
|
17922
17922
|
setSizingLoading: y,
|
|
17923
17923
|
setView: O,
|
|
17924
17924
|
submitSizing: bo,
|
|
17925
|
-
t:
|
|
17925
|
+
t: T
|
|
17926
17926
|
}
|
|
17927
17927
|
) }, "v-est-review");
|
|
17928
17928
|
case "size-result":
|
|
@@ -17931,9 +17931,9 @@ function Pi({
|
|
|
17931
17931
|
{
|
|
17932
17932
|
estimationDone: Ge,
|
|
17933
17933
|
sizingLoading: TA,
|
|
17934
|
-
sizingResult:
|
|
17934
|
+
sizingResult: dA,
|
|
17935
17935
|
sizeGuide: V,
|
|
17936
|
-
resultImageUrl:
|
|
17936
|
+
resultImageUrl: rA,
|
|
17937
17937
|
productImage: o,
|
|
17938
17938
|
productImages: g,
|
|
17939
17939
|
productTitle: r,
|
|
@@ -17943,7 +17943,7 @@ function Pi({
|
|
|
17943
17943
|
setView: O,
|
|
17944
17944
|
handleDownload: kt,
|
|
17945
17945
|
selectedFile: fA,
|
|
17946
|
-
previewUrl:
|
|
17946
|
+
previewUrl: nA,
|
|
17947
17947
|
handleFileSelect: ig,
|
|
17948
17948
|
handleRemovePreview: xg,
|
|
17949
17949
|
handleTryOnSubmit: xo,
|
|
@@ -17956,7 +17956,7 @@ function Pi({
|
|
|
17956
17956
|
activeSection: qA,
|
|
17957
17957
|
setActiveSection: fe,
|
|
17958
17958
|
onResetTryOn: () => {
|
|
17959
|
-
|
|
17959
|
+
X(null), nA && URL.revokeObjectURL(nA), uA(null), MA(null);
|
|
17960
17960
|
},
|
|
17961
17961
|
onClose: ro,
|
|
17962
17962
|
userHeightCm: (() => {
|
|
@@ -17964,10 +17964,10 @@ function Pi({
|
|
|
17964
17964
|
if (!B) return;
|
|
17965
17965
|
const p = B.height ?? B.heightCm;
|
|
17966
17966
|
if (!p || p <= 0) return;
|
|
17967
|
-
const G = B.heightUnit, sA =
|
|
17967
|
+
const G = B.heightUnit, sA = dA?.unit || Ae;
|
|
17968
17968
|
return (G === "in" || G === "ft") && sA !== "in" ? Math.round(p * 2.54) : (!G || G === "cm") && sA === "in" ? Math.round(p / 2.54 * 10) / 10 : p;
|
|
17969
17969
|
})(),
|
|
17970
|
-
t:
|
|
17970
|
+
t: T
|
|
17971
17971
|
}
|
|
17972
17972
|
) }, "v-sizeresult");
|
|
17973
17973
|
case "upload":
|
|
@@ -17975,7 +17975,7 @@ function Pi({
|
|
|
17975
17975
|
dr,
|
|
17976
17976
|
{
|
|
17977
17977
|
selectedFile: fA,
|
|
17978
|
-
previewUrl:
|
|
17978
|
+
previewUrl: nA,
|
|
17979
17979
|
dragOver: we,
|
|
17980
17980
|
setDragOver: $A,
|
|
17981
17981
|
fileInputRef: $e,
|
|
@@ -17983,14 +17983,14 @@ function Pi({
|
|
|
17983
17983
|
handleRemovePreview: xg,
|
|
17984
17984
|
handleTryOnSubmit: xo,
|
|
17985
17985
|
cn: L,
|
|
17986
|
-
t:
|
|
17986
|
+
t: T
|
|
17987
17987
|
}
|
|
17988
17988
|
) }, "v-upload");
|
|
17989
17989
|
case "processing":
|
|
17990
17990
|
return /* @__PURE__ */ A("div", { className: "ps-tryon-view-enter", children: /* @__PURE__ */ A(
|
|
17991
17991
|
Qr,
|
|
17992
17992
|
{
|
|
17993
|
-
previewUrl:
|
|
17993
|
+
previewUrl: nA,
|
|
17994
17994
|
progressRef: Ko,
|
|
17995
17995
|
progressBarRef: ho,
|
|
17996
17996
|
progressTextRef: vo,
|
|
@@ -18001,10 +18001,10 @@ function Pi({
|
|
|
18001
18001
|
productMaterial: n,
|
|
18002
18002
|
productDescription: c,
|
|
18003
18003
|
onCancel: () => {
|
|
18004
|
-
O("size-result"),
|
|
18004
|
+
O("size-result"), ne(!1);
|
|
18005
18005
|
},
|
|
18006
18006
|
cn: L,
|
|
18007
|
-
t:
|
|
18007
|
+
t: T
|
|
18008
18008
|
}
|
|
18009
18009
|
) }, "v-proc");
|
|
18010
18010
|
case "result":
|
|
@@ -18028,7 +18028,7 @@ function Pi({
|
|
|
18028
18028
|
nt(B, { bandSize: p, cupSize: G }), Qe(Je("profiles", []));
|
|
18029
18029
|
},
|
|
18030
18030
|
onEditProfile: (B) => {
|
|
18031
|
-
|
|
18031
|
+
CA(B);
|
|
18032
18032
|
},
|
|
18033
18033
|
onPhotoPreview: (B) => {
|
|
18034
18034
|
if (B) {
|
|
@@ -18063,8 +18063,8 @@ function Pi({
|
|
|
18063
18063
|
lastUsedAt: Date.now()
|
|
18064
18064
|
}, G = [p, ...JA];
|
|
18065
18065
|
oo("profiles", G), Qe(G), EA(p.id);
|
|
18066
|
-
const sA = p.heightCm || p.height || 0, tA = p.weightKg || p.weight || 0, AA = p.sizingUnit === "in" ? "in" : "cm", k = p.sizingUnit === "in" ? "lbs" : "kg",
|
|
18067
|
-
!(!!p.measurements && Object.keys(p.measurements).length > 0) && (
|
|
18066
|
+
const sA = p.heightCm || p.height || 0, tA = p.weightKg || p.weight || 0, AA = p.sizingUnit === "in" ? "in" : "cm", k = p.sizingUnit === "in" ? "lbs" : "kg", R = p.photoBase64;
|
|
18067
|
+
!(!!p.measurements && Object.keys(p.measurements).length > 0) && (R || sA > 0 && tA > 0) && (_((DA) => new Set(DA).add(p.id)), (R ? Bo(R).catch(() => null) : Promise.resolve(null)).then((DA) => Lg({
|
|
18068
18068
|
apiUrl: s,
|
|
18069
18069
|
height: sA > 0 ? sA : void 0,
|
|
18070
18070
|
weight: tA > 0 ? tA : void 0,
|
|
@@ -18075,15 +18075,15 @@ function Pi({
|
|
|
18075
18075
|
chestProfile: p.chestProfile,
|
|
18076
18076
|
midsectionProfile: p.midsectionProfile,
|
|
18077
18077
|
hipProfile: p.hipProfile,
|
|
18078
|
-
bodyImage:
|
|
18078
|
+
bodyImage: R,
|
|
18079
18079
|
bodyLandmarks: DA ?? void 0
|
|
18080
18080
|
})).then((DA) => {
|
|
18081
18081
|
if (DA) {
|
|
18082
18082
|
if (Bg(p.id, DA.estimates, DA.unit), DA.userEstimates) {
|
|
18083
|
-
const
|
|
18083
|
+
const oe = Je("profiles", []), VA = oe.findIndex((re) => re.id === p.id);
|
|
18084
18084
|
if (VA >= 0) {
|
|
18085
|
-
const
|
|
18086
|
-
cA.height && !(
|
|
18085
|
+
const re = oe[VA], cA = DA.userEstimates, ie = { ...re };
|
|
18086
|
+
cA.height && !(re.height || re.heightCm) && (ie.height = cA.height, ie.heightCm = cA.height, ie.heightUnit = "cm"), cA.weight && !(re.weight || re.weightKg) && (ie.weight = cA.weight, ie.weightKg = cA.weight, ie.weightUnit = "kg"), cA.age && !re.age && (ie.age = cA.age), oe[VA] = ie, oo("profiles", oe);
|
|
18087
18087
|
}
|
|
18088
18088
|
}
|
|
18089
18089
|
Qe(Je("profiles", []));
|
|
@@ -18091,8 +18091,8 @@ function Pi({
|
|
|
18091
18091
|
}).catch(() => {
|
|
18092
18092
|
}).finally(() => {
|
|
18093
18093
|
_((DA) => {
|
|
18094
|
-
const
|
|
18095
|
-
return
|
|
18094
|
+
const oe = new Set(DA);
|
|
18095
|
+
return oe.delete(p.id), oe;
|
|
18096
18096
|
});
|
|
18097
18097
|
}));
|
|
18098
18098
|
},
|
|
@@ -18102,7 +18102,7 @@ function Pi({
|
|
|
18102
18102
|
onRequestDelete: (B) => ee(B),
|
|
18103
18103
|
onClose: () => O("body-profile"),
|
|
18104
18104
|
onRegisterBackInterceptor: Le,
|
|
18105
|
-
t:
|
|
18105
|
+
t: T
|
|
18106
18106
|
}
|
|
18107
18107
|
) }, "v-profiles");
|
|
18108
18108
|
case "error":
|
|
@@ -18112,7 +18112,7 @@ function Pi({
|
|
|
18112
18112
|
errorMessage: RA,
|
|
18113
18113
|
handleRetry: Yt,
|
|
18114
18114
|
cn: L,
|
|
18115
|
-
t:
|
|
18115
|
+
t: T
|
|
18116
18116
|
}
|
|
18117
18117
|
) }, "v-error");
|
|
18118
18118
|
case "no-chart":
|
|
@@ -18124,7 +18124,7 @@ function Pi({
|
|
|
18124
18124
|
onTryOn: () => O("photo-guide"),
|
|
18125
18125
|
onClose: W ?? (() => {
|
|
18126
18126
|
}),
|
|
18127
|
-
t:
|
|
18127
|
+
t: T
|
|
18128
18128
|
}
|
|
18129
18129
|
) }, "v-nochart");
|
|
18130
18130
|
case "photo-guide":
|
|
@@ -18138,14 +18138,14 @@ function Pi({
|
|
|
18138
18138
|
onSubmit: (B) => {
|
|
18139
18139
|
ig(B), xo(B);
|
|
18140
18140
|
},
|
|
18141
|
-
t:
|
|
18141
|
+
t: T
|
|
18142
18142
|
}
|
|
18143
18143
|
) }, "v-photoguide");
|
|
18144
18144
|
default:
|
|
18145
18145
|
return null;
|
|
18146
18146
|
}
|
|
18147
18147
|
}
|
|
18148
|
-
return /* @__PURE__ */ e("div", { className: Ye("ps-tryon-root", L.root || Y), style: { visibility:
|
|
18148
|
+
return /* @__PURE__ */ e("div", { className: Ye("ps-tryon-root", L.root || Y), style: { visibility: HA ? "visible" : "hidden", ...Mg, ...h }, suppressHydrationWarning: !0, "data-ps-tryon": !0, children: [
|
|
18149
18149
|
/* @__PURE__ */ e(
|
|
18150
18150
|
"button",
|
|
18151
18151
|
{
|
|
@@ -18160,40 +18160,40 @@ function Pi({
|
|
|
18160
18160
|
]
|
|
18161
18161
|
}
|
|
18162
18162
|
),
|
|
18163
|
-
|
|
18164
|
-
/* @__PURE__ */ A("div", { className: Ye("ps-tryon-overlay", L.overlay), style: Mg, "data-ps-tryon-portal": !0, children: /* @__PURE__ */ e("div", { className: Ye(`ps-tryon-modal${
|
|
18163
|
+
iA !== "idle" && typeof document < "u" && hg(
|
|
18164
|
+
/* @__PURE__ */ A("div", { className: Ye("ps-tryon-overlay", L.overlay), style: Mg, "data-ps-tryon-portal": !0, children: /* @__PURE__ */ e("div", { className: Ye(`ps-tryon-modal${iA === "result" && rA && dA || iA === "size-result" || iA === "estimation-review" || iA === "body-profile" || iA === "profiles" || iA === "no-chart" || iA === "photo-guide" ? " ps-tryon-modal-wide" : ""}`, L.modal), onClick: (B) => B.stopPropagation(), children: [
|
|
18165
18165
|
/* @__PURE__ */ e("div", { className: Ye("ps-tryon-header ps-tryon-header-minimal", L.header), children: [
|
|
18166
18166
|
/* @__PURE__ */ A(Kn, { activeLocale: K, onSelect: wA }),
|
|
18167
|
-
/* @__PURE__ */ A("button", { className: "ps-tryon-header-icon", title:
|
|
18168
|
-
|
|
18167
|
+
/* @__PURE__ */ A("button", { className: "ps-tryon-header-icon", title: T("Profiles"), onClick: () => {
|
|
18168
|
+
kA && f(null), iA === "profiles" ? (O(YA.current || "body-profile"), YA.current = null) : (YA.current = iA, O("profiles"));
|
|
18169
18169
|
}, children: /* @__PURE__ */ A(ug, {}) }),
|
|
18170
|
-
/* @__PURE__ */ A("button", { className: "ps-tryon-header-icon", title:
|
|
18171
|
-
|
|
18170
|
+
/* @__PURE__ */ A("button", { className: "ps-tryon-header-icon", title: T("History"), onClick: () => {
|
|
18171
|
+
iA === "profiles" && (O(YA.current || "body-profile"), YA.current = null), kA === "history" ? f(null) : (YA.current = YA.current || iA, f("history"));
|
|
18172
18172
|
}, children: /* @__PURE__ */ A(Gn, {}) }),
|
|
18173
18173
|
/* @__PURE__ */ A("button", { onClick: ro, className: Ye("ps-tryon-close", L.closeButton), children: /* @__PURE__ */ A(at, {}) })
|
|
18174
18174
|
] }),
|
|
18175
|
-
|
|
18176
|
-
/* @__PURE__ */ e("div", { ref: _e, className: Ye("ps-tryon-body", L.body), style: { position: "relative", overflow:
|
|
18175
|
+
iA !== "body-profile" && iA !== "processing" && !(iA === "size-result" && V?.sections && Object.keys(V.sections).length > 1) && /* @__PURE__ */ A(Jn, { view: iA, stepIndex: ut }),
|
|
18176
|
+
/* @__PURE__ */ e("div", { ref: _e, className: Ye("ps-tryon-body", L.body), style: { position: "relative", overflow: kA ? "hidden" : void 0 }, children: [
|
|
18177
18177
|
yt && /* @__PURE__ */ e("button", { className: "ps-tryon-back-btn", onClick: Mt, children: [
|
|
18178
18178
|
/* @__PURE__ */ e("svg", { width: "18", height: "12", viewBox: "0 0 18 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
18179
18179
|
/* @__PURE__ */ A("line", { x1: "17", y1: "6", x2: "1", y2: "6" }),
|
|
18180
18180
|
/* @__PURE__ */ A("polyline", { points: "5 1 1 6 5 11" })
|
|
18181
18181
|
] }),
|
|
18182
|
-
|
|
18182
|
+
T("Back")
|
|
18183
18183
|
] }),
|
|
18184
18184
|
Nt(),
|
|
18185
18185
|
/* @__PURE__ */ A(
|
|
18186
18186
|
Rn,
|
|
18187
18187
|
{
|
|
18188
|
-
drawer:
|
|
18188
|
+
drawer: kA,
|
|
18189
18189
|
setDrawer: f,
|
|
18190
18190
|
profiles: JA,
|
|
18191
18191
|
setProfiles: Qe,
|
|
18192
18192
|
history: SA,
|
|
18193
18193
|
setHistory: P,
|
|
18194
|
-
setProfileDetail:
|
|
18194
|
+
setProfileDetail: CA,
|
|
18195
18195
|
restoreHistory: Lt,
|
|
18196
|
-
t:
|
|
18196
|
+
t: T
|
|
18197
18197
|
}
|
|
18198
18198
|
)
|
|
18199
18199
|
] }),
|
|
@@ -18205,7 +18205,7 @@ function Pi({
|
|
|
18205
18205
|
oo("profiles", p), Qe(p), H === B && EA(null), ee(null);
|
|
18206
18206
|
},
|
|
18207
18207
|
onCancel: () => ee(null),
|
|
18208
|
-
t:
|
|
18208
|
+
t: T
|
|
18209
18209
|
}
|
|
18210
18210
|
),
|
|
18211
18211
|
Po && /* @__PURE__ */ A(
|
|
@@ -18214,7 +18214,7 @@ function Pi({
|
|
|
18214
18214
|
profile: Po,
|
|
18215
18215
|
onProceed: Pt,
|
|
18216
18216
|
onEdit: bt,
|
|
18217
|
-
t:
|
|
18217
|
+
t: T
|
|
18218
18218
|
}
|
|
18219
18219
|
)
|
|
18220
18220
|
] }) }),
|
|
@@ -18223,12 +18223,12 @@ function Pi({
|
|
|
18223
18223
|
/* @__PURE__ */ A(
|
|
18224
18224
|
Tn,
|
|
18225
18225
|
{
|
|
18226
|
-
profileDetail:
|
|
18227
|
-
setProfileDetail:
|
|
18226
|
+
profileDetail: j,
|
|
18227
|
+
setProfileDetail: CA,
|
|
18228
18228
|
setProfiles: Qe,
|
|
18229
18229
|
activeProfileId: H,
|
|
18230
18230
|
setActiveProfileId: EA,
|
|
18231
|
-
t:
|
|
18231
|
+
t: T
|
|
18232
18232
|
}
|
|
18233
18233
|
)
|
|
18234
18234
|
] });
|
|
@@ -18238,7 +18238,7 @@ function yi(o) {
|
|
|
18238
18238
|
}
|
|
18239
18239
|
function Fi(o) {
|
|
18240
18240
|
const [g, t] = Q(null), [r, a] = Q(!0), [c, n] = Q(!1), [w, s] = Q(0);
|
|
18241
|
-
return
|
|
18241
|
+
return xA(() => {
|
|
18242
18242
|
let l = !1;
|
|
18243
18243
|
return a(!0), n(!1), console.log("[ps-sdk:hook] usePrimeStyleSize start", { productId: o.productId }), it(o).then((D) => {
|
|
18244
18244
|
l || (D === null ? (console.log("[ps-sdk:hook] usePrimeStyleSize → null (no profile or recommendation failed)"), n(!0), t(null)) : (console.log("[ps-sdk:hook] usePrimeStyleSize → result", { recommendedSize: D.recommendedSize, hasRaw: !!D.raw }), t(D)));
|
|
@@ -18249,7 +18249,7 @@ function Fi(o) {
|
|
|
18249
18249
|
}), () => {
|
|
18250
18250
|
l = !0;
|
|
18251
18251
|
};
|
|
18252
|
-
}, [o.productId, o.apiUrl, o.apiKey, w]),
|
|
18252
|
+
}, [o.productId, o.apiUrl, o.apiKey, w]), xA(() => {
|
|
18253
18253
|
if (typeof window > "u") return;
|
|
18254
18254
|
const l = () => s((D) => D + 1);
|
|
18255
18255
|
return window.addEventListener(Go, l), window.addEventListener("storage", l), () => {
|