@loczer/storefront-sdk 0.199.0 → 0.200.0
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/components/BookingBikeQuickAddCard/index.d.ts.map +1 -1
- package/dist/components/BookingBikeQuickAddCard/index.js +54 -61
- package/dist/components/BookingBikeVariantDialog/index.d.ts.map +1 -1
- package/dist/components/BookingBikeVariantDialog/index.js +128 -121
- package/dist/components/StorefrontCancellationPolicyNotice/index.d.ts.map +1 -1
- package/dist/components/StorefrontCancellationPolicyNotice/index.js +3 -6
- package/dist/components/StorefrontInsuranceNotice/index.d.ts.map +1 -1
- package/dist/components/StorefrontInsuranceNotice/index.js +3 -6
- package/dist/lib/productVariants.d.ts +1 -0
- package/dist/lib/productVariants.d.ts.map +1 -1
- package/dist/lib/productVariants.js +27 -15
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/BookingBikeQuickAddCard/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/BookingBikeQuickAddCard/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAgCrD,KAAK,4BAA4B,GAAG;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,WAAW,EACX,uBAAuB,EACvB,cAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,MAAM,GACP,EAAE,4BAA4B,2CAwN9B"}
|
|
@@ -1,33 +1,26 @@
|
|
|
1
|
-
import { getStorefrontProductVariantDisplay as e } from "../../lib/productVariants.js";
|
|
2
|
-
import { Button as
|
|
3
|
-
import { Input as
|
|
4
|
-
import { BikeProductCard as
|
|
5
|
-
import { useEffect as
|
|
6
|
-
import { jsx as
|
|
7
|
-
import { useTranslation as
|
|
8
|
-
import { cn as
|
|
9
|
-
import { Plus as
|
|
10
|
-
import { AnimatePresence as
|
|
1
|
+
import { getStorefrontProductVariantDisplay as e, getStorefrontProductVariantHeightRange as t } from "../../lib/productVariants.js";
|
|
2
|
+
import { Button as n } from "../../ui/button.js";
|
|
3
|
+
import { Input as r } from "../../ui/input.js";
|
|
4
|
+
import { BikeProductCard as i } from "../BikeProductCard/index.js";
|
|
5
|
+
import { useEffect as a, useRef as o, useState as s } from "react";
|
|
6
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
7
|
+
import { useTranslation as u } from "react-i18next";
|
|
8
|
+
import { cn as d } from "@rpcbase/ui";
|
|
9
|
+
import { Plus as f } from "lucide-react";
|
|
10
|
+
import { AnimatePresence as p, motion as m } from "framer-motion";
|
|
11
11
|
//#region src/components/BookingBikeQuickAddCard/index.tsx
|
|
12
|
-
var
|
|
12
|
+
var h = () => typeof window < "u" && window.matchMedia("(hover: hover) and (pointer: fine)").matches, g = (e) => {
|
|
13
13
|
let t = Number.parseInt(e, 10);
|
|
14
14
|
return !Number.isFinite(t) || t < 1 ? 1 : t;
|
|
15
|
-
}, g = (e) => {
|
|
16
|
-
let t = e.replace(/\D/g, "");
|
|
17
|
-
return t ? String(h(t)) : "";
|
|
18
15
|
}, _ = (e) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (!(!Number.isFinite(t) || t <= 0)) return Math.round(t);
|
|
22
|
-
}, v = (e) => (e / 100).toFixed(2), y = (e, t) => e.attributes.find((e) => e.key.trim().toLowerCase() === t)?.value, b = (e) => {
|
|
23
|
-
let t = _(y(e, "min_height_cm")), n = _(y(e, "max_height_cm")), r = t ? v(t) : null, i = n ? v(n) : null;
|
|
24
|
-
return r && i ? `${r} - ${i} m` : r ? `min ${r} m` : i ? `max ${i} m` : null;
|
|
16
|
+
let t = e.replace(/\D/g, "");
|
|
17
|
+
return t ? String(g(t)) : "";
|
|
25
18
|
};
|
|
26
|
-
function
|
|
27
|
-
let { t: k } =
|
|
19
|
+
function v({ bike: v, detailsPath: y, productDetailsLinkState: b, actionDisabled: x = !1, fallbackLanguage: S, dimOnColumnCount: C, onAction: w, onQuickAdd: T, onHoverStart: E, onHoverEnd: D, testId: O }) {
|
|
20
|
+
let { t: k } = u(), A = o(null), [j, M] = s(!1), [N, P] = s({}), F = v.productVariants ?? [], I = !x && F.length > 0, L = () => !I || !h() ? !1 : (M(!0), !0), R = () => {
|
|
28
21
|
M(!1), P({});
|
|
29
22
|
};
|
|
30
|
-
|
|
23
|
+
a(() => {
|
|
31
24
|
if (!j) return;
|
|
32
25
|
let e = (e) => {
|
|
33
26
|
if (e.pointerType !== "mouse") return;
|
|
@@ -61,34 +54,34 @@ function x({ bike: _, detailsPath: v, productDetailsLinkState: y, actionDisabled
|
|
|
61
54
|
U(e, "");
|
|
62
55
|
return;
|
|
63
56
|
}
|
|
64
|
-
U(e,
|
|
57
|
+
U(e, _(n));
|
|
65
58
|
}, G = (e) => {
|
|
66
|
-
U(e, String(
|
|
59
|
+
U(e, String(g(H(e))));
|
|
67
60
|
}, K = (e) => {
|
|
68
|
-
let t =
|
|
61
|
+
let t = g(H(e));
|
|
69
62
|
U(e, String(t)), T(e, t);
|
|
70
63
|
};
|
|
71
|
-
return /* @__PURE__ */
|
|
64
|
+
return /* @__PURE__ */ l("div", {
|
|
72
65
|
ref: A,
|
|
73
66
|
"data-testid": O,
|
|
74
67
|
onPointerEnter: z,
|
|
75
68
|
onPointerLeave: B,
|
|
76
69
|
onFocusCapture: L,
|
|
77
70
|
onBlurCapture: V,
|
|
78
|
-
className:
|
|
79
|
-
children: [/* @__PURE__ */
|
|
80
|
-
bike:
|
|
81
|
-
detailsPath:
|
|
82
|
-
productDetailsLinkState:
|
|
71
|
+
className: d("relative h-full overflow-visible transition-opacity duration-200", C === 1 && "opacity-20 md:opacity-100", C === 2 && "md:opacity-20", j && I && "z-30"),
|
|
72
|
+
children: [/* @__PURE__ */ c(i, {
|
|
73
|
+
bike: v,
|
|
74
|
+
detailsPath: y,
|
|
75
|
+
productDetailsLinkState: b,
|
|
83
76
|
actionLabelKey: "add_to_cart",
|
|
84
77
|
onAction: w,
|
|
85
78
|
actionDisabled: x,
|
|
86
79
|
fallbackLanguage: S,
|
|
87
80
|
variant: "booking",
|
|
88
|
-
className:
|
|
89
|
-
}), /* @__PURE__ */
|
|
81
|
+
className: d("transition-[border-color,box-shadow,border-radius] duration-200 hover:border-primary/20 hover:shadow-md", j && I && "!rounded-b-none border-primary/20 !border-b-white shadow-lg")
|
|
82
|
+
}), /* @__PURE__ */ c(p, {
|
|
90
83
|
initial: !1,
|
|
91
|
-
children: j && I ? /* @__PURE__ */
|
|
84
|
+
children: j && I ? /* @__PURE__ */ c(m.div, {
|
|
92
85
|
initial: {
|
|
93
86
|
opacity: 0,
|
|
94
87
|
y: -8,
|
|
@@ -114,61 +107,61 @@ function x({ bike: _, detailsPath: v, productDetailsLinkState: y, actionDisabled
|
|
|
114
107
|
]
|
|
115
108
|
},
|
|
116
109
|
className: "absolute left-0 right-0 top-full z-30 origin-top rounded-b-lg border border-t-0 border-primary/20 bg-white px-3 py-2 shadow-xl",
|
|
117
|
-
"data-testid": `storefront-booking-bike-quick-selector-${
|
|
110
|
+
"data-testid": `storefront-booking-bike-quick-selector-${v.id}`.toLowerCase(),
|
|
118
111
|
onClick: (e) => e.stopPropagation(),
|
|
119
112
|
onKeyDown: (e) => e.stopPropagation(),
|
|
120
|
-
children: /* @__PURE__ */
|
|
121
|
-
let { label:
|
|
122
|
-
return /* @__PURE__ */
|
|
113
|
+
children: /* @__PURE__ */ c("div", { children: F.map((i) => {
|
|
114
|
+
let { label: a } = e(i), o = t(i), s = `storefront-booking-bike-quick-quantity-${v.id}-${i.id}`.toLowerCase();
|
|
115
|
+
return /* @__PURE__ */ l("div", {
|
|
123
116
|
className: "flex items-center justify-between gap-3 border-b border-slate-100 py-1.5 last:border-b-0",
|
|
124
117
|
children: [
|
|
125
|
-
/* @__PURE__ */
|
|
118
|
+
/* @__PURE__ */ l("div", {
|
|
126
119
|
className: "flex min-w-0 flex-1 items-baseline gap-2",
|
|
127
|
-
children: [/* @__PURE__ */
|
|
120
|
+
children: [/* @__PURE__ */ c("span", {
|
|
128
121
|
className: "min-w-0 truncate text-sm font-semibold text-slate-950",
|
|
129
|
-
title:
|
|
130
|
-
children: i
|
|
131
|
-
}), a ? /* @__PURE__ */ s("span", {
|
|
132
|
-
className: "truncate text-xs text-slate-500",
|
|
122
|
+
title: a,
|
|
133
123
|
children: a
|
|
124
|
+
}), o ? /* @__PURE__ */ c("span", {
|
|
125
|
+
className: "truncate text-xs text-slate-500",
|
|
126
|
+
children: o
|
|
134
127
|
}) : null]
|
|
135
128
|
}),
|
|
136
|
-
/* @__PURE__ */
|
|
129
|
+
/* @__PURE__ */ c("label", {
|
|
137
130
|
className: "sr-only",
|
|
138
|
-
htmlFor:
|
|
139
|
-
children: /* @__PURE__ */
|
|
131
|
+
htmlFor: s,
|
|
132
|
+
children: /* @__PURE__ */ c("span", { children: k("quantity_label") })
|
|
140
133
|
}),
|
|
141
|
-
/* @__PURE__ */
|
|
134
|
+
/* @__PURE__ */ l("div", {
|
|
142
135
|
className: "flex shrink-0 items-center",
|
|
143
|
-
children: [/* @__PURE__ */
|
|
144
|
-
id:
|
|
136
|
+
children: [/* @__PURE__ */ c(r, {
|
|
137
|
+
id: s,
|
|
145
138
|
type: "text",
|
|
146
139
|
inputMode: "numeric",
|
|
147
140
|
pattern: "[0-9]*",
|
|
148
|
-
value: H(
|
|
149
|
-
onChange: (e) => W(
|
|
150
|
-
onBlur: () => G(
|
|
141
|
+
value: H(i.id),
|
|
142
|
+
onChange: (e) => W(i.id, e),
|
|
143
|
+
onBlur: () => G(i.id),
|
|
151
144
|
className: "h-8 w-9 rounded-r-none border-r-0 px-1 text-center text-sm focus-visible:z-10",
|
|
152
145
|
"aria-label": k("quantity_label"),
|
|
153
|
-
"data-testid":
|
|
154
|
-
}), /* @__PURE__ */
|
|
146
|
+
"data-testid": s
|
|
147
|
+
}), /* @__PURE__ */ l(n, {
|
|
155
148
|
type: "button",
|
|
156
149
|
size: "sm",
|
|
157
150
|
className: "h-8 gap-1 rounded-l-none px-2 text-xs",
|
|
158
|
-
onClick: () => K(
|
|
159
|
-
"data-testid": `storefront-booking-bike-quick-add-${
|
|
160
|
-
children: [/* @__PURE__ */
|
|
151
|
+
onClick: () => K(i.id),
|
|
152
|
+
"data-testid": `storefront-booking-bike-quick-add-${v.id}-${i.id}`.toLowerCase(),
|
|
153
|
+
children: [/* @__PURE__ */ c("span", { children: k("add_short") }), /* @__PURE__ */ c(f, {
|
|
161
154
|
className: "h-3.5 w-3.5",
|
|
162
155
|
"aria-hidden": "true"
|
|
163
156
|
})]
|
|
164
157
|
})]
|
|
165
158
|
})
|
|
166
159
|
]
|
|
167
|
-
},
|
|
160
|
+
}, i.id);
|
|
168
161
|
}) })
|
|
169
162
|
}, "quick-selector") : null
|
|
170
163
|
})]
|
|
171
164
|
});
|
|
172
165
|
}
|
|
173
166
|
//#endregion
|
|
174
|
-
export {
|
|
167
|
+
export { v as BookingBikeQuickAddCard };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/BookingBikeVariantDialog/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/BookingBikeVariantDialog/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAiB3D,KAAK,iCAAiC,GAAG,iBAAiB,GAAG;IAC3D,kBAAkB,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc,CAAA;CAChE,CAAA;AAWD,KAAK,6BAA6B,GAAG;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,iCAAiC,GAAG,IAAI,CAAA;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,2BAA2B,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAClE,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IACvD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5D,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,2BAA2B,EAC3B,sBAAsB,EACtB,WAAmB,EACnB,YAAY,GACb,EAAE,6BAA6B,kDAiO/B"}
|
|
@@ -1,194 +1,201 @@
|
|
|
1
|
-
import { getProductVariantAttributeValue as e, getStorefrontProductVariantDisplay as t } from "../../lib/productVariants.js";
|
|
2
|
-
import { getLocalizedValue as
|
|
3
|
-
import { getAvailabilityVariant as
|
|
4
|
-
import { Badge as
|
|
5
|
-
import { Button as
|
|
6
|
-
import { RESPONSIVE_DIALOG_MOBILE_MEDIA_QUERY as
|
|
7
|
-
import { Input as
|
|
8
|
-
import { useStorefrontWorkspaceLanguage as
|
|
9
|
-
import { ProductWarningNotice as
|
|
10
|
-
import { ProductPriceBadge as
|
|
11
|
-
import { resolveProductImageContainerStyle as
|
|
12
|
-
import { useEffect as
|
|
13
|
-
import { jsx as
|
|
14
|
-
import { useMediaQuery as
|
|
15
|
-
import { useTranslation as
|
|
16
|
-
import { cn as
|
|
17
|
-
import { Bike as
|
|
1
|
+
import { getProductVariantAttributeValue as e, getStorefrontProductVariantDisplay as t, getStorefrontProductVariantHeightRange as n } from "../../lib/productVariants.js";
|
|
2
|
+
import { getLocalizedValue as r } from "../../localization.js";
|
|
3
|
+
import { getAvailabilityVariant as i } from "../../lib/utils.js";
|
|
4
|
+
import { Badge as a } from "../../ui/badge.js";
|
|
5
|
+
import { Button as o } from "../../ui/button.js";
|
|
6
|
+
import { RESPONSIVE_DIALOG_MOBILE_MEDIA_QUERY as s, ResponsiveDialog as c, ResponsiveDialogContent as l, ResponsiveDialogDescription as u, ResponsiveDialogFooter as d, ResponsiveDialogHeader as f, ResponsiveDialogTitle as p } from "../../chunks/pkg/ui/dist/ResponsiveDialog-BVwhTZQo.js";
|
|
7
|
+
import { Input as m } from "../../ui/input.js";
|
|
8
|
+
import { useStorefrontWorkspaceLanguage as h } from "../../StorefrontContext.js";
|
|
9
|
+
import { ProductWarningNotice as g } from "../ProductWarningNotice/index.js";
|
|
10
|
+
import { ProductPriceBadge as _ } from "../ProductPriceBadge/index.js";
|
|
11
|
+
import { resolveProductImageContainerStyle as v } from "../../lib/productImageStyles.js";
|
|
12
|
+
import { useEffect as y, useState as b } from "react";
|
|
13
|
+
import { jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
14
|
+
import { useMediaQuery as C } from "@rpcbase/client";
|
|
15
|
+
import { useTranslation as w } from "react-i18next";
|
|
16
|
+
import { cn as T } from "@rpcbase/ui";
|
|
17
|
+
import { Bike as E, CheckCircle2 as D, Package as O, Plus as k } from "lucide-react";
|
|
18
18
|
//#region src/components/BookingBikeVariantDialog/index.tsx
|
|
19
|
-
var
|
|
19
|
+
var A = (e) => {
|
|
20
20
|
let t = Number.parseInt(e, 10);
|
|
21
21
|
return !Number.isFinite(t) || t < 1 ? 1 : t;
|
|
22
22
|
};
|
|
23
|
-
function
|
|
24
|
-
let { t:
|
|
25
|
-
if (
|
|
26
|
-
!
|
|
27
|
-
}, [
|
|
28
|
-
let
|
|
29
|
-
|
|
23
|
+
function j({ open: m, product: j, onOpenChange: N, getVariantAvailabilityLabel: P, isVariantOutOfCapacity: F, addDisabled: I = !1, onAddVariant: L }) {
|
|
24
|
+
let { t: R, i18n: z } = w(), B = C(s), V = h(), [H, U] = b({});
|
|
25
|
+
if (y(() => {
|
|
26
|
+
!j || !m || U((j.productVariants ?? []).reduce((e, t) => (e[t.id] = "1", e), {}));
|
|
27
|
+
}, [m, j]), !j) return null;
|
|
28
|
+
let W = (e, t) => {
|
|
29
|
+
U((n) => ({
|
|
30
30
|
...n,
|
|
31
31
|
[e]: t
|
|
32
32
|
}));
|
|
33
|
-
},
|
|
34
|
-
return /* @__PURE__ */
|
|
35
|
-
open:
|
|
36
|
-
onOpenChange:
|
|
37
|
-
children: /* @__PURE__ */
|
|
33
|
+
}, G = r(j.name, z.language, V), K = r(j.description, z.language, V), q = r(j.warning, z.language, V), J = typeof j.images?.[0] == "string" ? j.images[0].trim() : "", Y = v(j.primaryImageStyle), X = i(j.availabilityStatus), Z = j.features?.slice(0, 4) ?? [], Q = j.productVariants ?? [], $ = Q.some((t) => !!e(t, "size")) ? R("product_size_label") : R("product_variant_label");
|
|
34
|
+
return /* @__PURE__ */ x(c, {
|
|
35
|
+
open: m,
|
|
36
|
+
onOpenChange: N,
|
|
37
|
+
children: /* @__PURE__ */ x(l, {
|
|
38
38
|
"data-testid": "storefront-booking-bike-dialog-content",
|
|
39
39
|
className: "overflow-hidden border-slate-200 bg-white p-0",
|
|
40
40
|
desktopClassName: "max-w-4xl gap-0",
|
|
41
41
|
mobileClassName: "max-h-[95dvh] gap-0",
|
|
42
|
-
children: /* @__PURE__ */
|
|
42
|
+
children: /* @__PURE__ */ S("div", {
|
|
43
43
|
"data-testid": "storefront-booking-bike-dialog",
|
|
44
44
|
className: "flex max-h-[92dvh] flex-col",
|
|
45
45
|
children: [
|
|
46
|
-
/* @__PURE__ */
|
|
46
|
+
/* @__PURE__ */ S(f, {
|
|
47
47
|
className: "border-b border-slate-200 px-5 py-4 text-left sm:px-6",
|
|
48
|
-
children: [/* @__PURE__ */
|
|
48
|
+
children: [/* @__PURE__ */ x(p, {
|
|
49
49
|
className: "text-left text-lg font-semibold text-slate-950",
|
|
50
|
-
children: /* @__PURE__ */
|
|
51
|
-
}), /* @__PURE__ */
|
|
50
|
+
children: /* @__PURE__ */ x("span", { children: G })
|
|
51
|
+
}), /* @__PURE__ */ x(u, {
|
|
52
52
|
className: "line-clamp-2 text-left text-sm text-slate-600",
|
|
53
|
-
children: /* @__PURE__ */
|
|
53
|
+
children: /* @__PURE__ */ x("span", { children: K })
|
|
54
54
|
})]
|
|
55
55
|
}),
|
|
56
|
-
/* @__PURE__ */
|
|
56
|
+
/* @__PURE__ */ x("div", {
|
|
57
57
|
className: "overflow-y-auto",
|
|
58
|
-
children: /* @__PURE__ */
|
|
58
|
+
children: /* @__PURE__ */ S("div", {
|
|
59
59
|
className: "grid gap-5 px-5 py-5 sm:grid-cols-[minmax(0,0.92fr)_minmax(0,1.08fr)] sm:px-6",
|
|
60
|
-
children: [/* @__PURE__ */
|
|
60
|
+
children: [/* @__PURE__ */ S("div", {
|
|
61
61
|
className: "grid gap-4",
|
|
62
62
|
children: [
|
|
63
|
-
/* @__PURE__ */
|
|
64
|
-
className:
|
|
65
|
-
style:
|
|
66
|
-
children:
|
|
67
|
-
src:
|
|
68
|
-
alt:
|
|
63
|
+
/* @__PURE__ */ x("div", {
|
|
64
|
+
className: T("relative aspect-[1618/1000] overflow-hidden rounded-2xl", Y.className),
|
|
65
|
+
style: Y.style,
|
|
66
|
+
children: J ? /* @__PURE__ */ x("img", {
|
|
67
|
+
src: J,
|
|
68
|
+
alt: G,
|
|
69
69
|
className: "absolute inset-0 h-full w-full object-contain p-2",
|
|
70
70
|
loading: "lazy"
|
|
71
|
-
}) : /* @__PURE__ */
|
|
71
|
+
}) : /* @__PURE__ */ x("div", {
|
|
72
72
|
className: "absolute inset-0 flex items-center justify-center text-slate-400",
|
|
73
|
-
children:
|
|
73
|
+
children: j.kind === "accessory" ? /* @__PURE__ */ x(O, {
|
|
74
74
|
className: "h-12 w-12",
|
|
75
75
|
"aria-hidden": "true"
|
|
76
|
-
}) : /* @__PURE__ */
|
|
76
|
+
}) : /* @__PURE__ */ x(E, {
|
|
77
77
|
className: "h-12 w-12",
|
|
78
78
|
"aria-hidden": "true"
|
|
79
79
|
})
|
|
80
80
|
})
|
|
81
81
|
}),
|
|
82
|
-
|
|
82
|
+
B ? null : /* @__PURE__ */ S("div", {
|
|
83
83
|
className: "flex flex-wrap items-center gap-2",
|
|
84
|
-
children: [/* @__PURE__ */
|
|
85
|
-
variant:
|
|
86
|
-
children: /* @__PURE__ */
|
|
87
|
-
}), /* @__PURE__ */
|
|
88
|
-
prices:
|
|
89
|
-
openOnHover:
|
|
84
|
+
children: [/* @__PURE__ */ x(a, {
|
|
85
|
+
variant: X.variant,
|
|
86
|
+
children: /* @__PURE__ */ x("span", { children: R(X.labelKey) })
|
|
87
|
+
}), /* @__PURE__ */ x(_, {
|
|
88
|
+
prices: j.prices,
|
|
89
|
+
openOnHover: j.kind !== "accessory"
|
|
90
90
|
})]
|
|
91
91
|
}),
|
|
92
|
-
!
|
|
92
|
+
!B && Z.length > 0 ? /* @__PURE__ */ S("div", {
|
|
93
93
|
className: "grid gap-2",
|
|
94
|
-
children: [/* @__PURE__ */
|
|
94
|
+
children: [/* @__PURE__ */ x("p", {
|
|
95
95
|
className: "text-sm font-semibold text-slate-950",
|
|
96
|
-
children: /* @__PURE__ */
|
|
97
|
-
}), /* @__PURE__ */
|
|
96
|
+
children: /* @__PURE__ */ x("span", { children: R("product_features_title") })
|
|
97
|
+
}), /* @__PURE__ */ x("ul", {
|
|
98
98
|
className: "grid gap-1.5 text-sm text-slate-700",
|
|
99
|
-
children:
|
|
99
|
+
children: Z.map((e, t) => /* @__PURE__ */ S("li", {
|
|
100
100
|
className: "inline-flex items-start gap-2",
|
|
101
|
-
children: [/* @__PURE__ */
|
|
101
|
+
children: [/* @__PURE__ */ x(D, {
|
|
102
102
|
className: "mt-0.5 h-4 w-4 text-success",
|
|
103
103
|
"aria-hidden": "true"
|
|
104
|
-
}), /* @__PURE__ */
|
|
105
|
-
}, `${
|
|
104
|
+
}), /* @__PURE__ */ x("span", { children: r(e, z.language, V) })]
|
|
105
|
+
}, `${j.id}-${t}`))
|
|
106
106
|
})]
|
|
107
107
|
}) : null,
|
|
108
|
-
|
|
108
|
+
B ? null : /* @__PURE__ */ x(g, { warning: q })
|
|
109
109
|
]
|
|
110
|
-
}), /* @__PURE__ */
|
|
110
|
+
}), /* @__PURE__ */ S("div", {
|
|
111
111
|
className: "grid content-start gap-3",
|
|
112
112
|
children: [
|
|
113
|
-
|
|
113
|
+
B ? /* @__PURE__ */ S("div", {
|
|
114
114
|
className: "flex flex-wrap items-center gap-2",
|
|
115
|
-
children: [/* @__PURE__ */
|
|
116
|
-
variant:
|
|
117
|
-
children: /* @__PURE__ */
|
|
118
|
-
}), /* @__PURE__ */
|
|
119
|
-
prices:
|
|
120
|
-
openOnHover:
|
|
115
|
+
children: [/* @__PURE__ */ x(a, {
|
|
116
|
+
variant: X.variant,
|
|
117
|
+
children: /* @__PURE__ */ x("span", { children: R(X.labelKey) })
|
|
118
|
+
}), /* @__PURE__ */ x(_, {
|
|
119
|
+
prices: j.prices,
|
|
120
|
+
openOnHover: j.kind !== "accessory"
|
|
121
121
|
})]
|
|
122
122
|
}) : null,
|
|
123
|
-
|
|
123
|
+
B && Z.length > 0 ? /* @__PURE__ */ S("details", {
|
|
124
124
|
className: "group rounded-2xl border border-slate-200 bg-slate-50",
|
|
125
|
-
children: [/* @__PURE__ */
|
|
125
|
+
children: [/* @__PURE__ */ S("summary", {
|
|
126
126
|
className: "flex cursor-pointer list-none items-center justify-between gap-3 px-3 py-2.5 text-sm font-semibold text-slate-950 [&::-webkit-details-marker]:hidden",
|
|
127
|
-
children: [/* @__PURE__ */
|
|
127
|
+
children: [/* @__PURE__ */ x("span", { children: R("product_features_title") }), /* @__PURE__ */ x(k, {
|
|
128
128
|
className: "h-4 w-4 shrink-0 transition-transform group-open:rotate-45",
|
|
129
129
|
"aria-hidden": "true"
|
|
130
130
|
})]
|
|
131
|
-
}), /* @__PURE__ */
|
|
131
|
+
}), /* @__PURE__ */ x("div", {
|
|
132
132
|
className: "border-t border-slate-200 px-3 py-3",
|
|
133
|
-
children: /* @__PURE__ */
|
|
133
|
+
children: /* @__PURE__ */ x("ul", {
|
|
134
134
|
className: "grid gap-1.5 text-sm text-slate-700",
|
|
135
|
-
children:
|
|
135
|
+
children: Z.map((e, t) => /* @__PURE__ */ S("li", {
|
|
136
136
|
className: "inline-flex items-start gap-2",
|
|
137
|
-
children: [/* @__PURE__ */
|
|
137
|
+
children: [/* @__PURE__ */ x(D, {
|
|
138
138
|
className: "mt-0.5 h-4 w-4 text-success",
|
|
139
139
|
"aria-hidden": "true"
|
|
140
|
-
}), /* @__PURE__ */
|
|
141
|
-
}, `${
|
|
140
|
+
}), /* @__PURE__ */ x("span", { children: r(e, z.language, V) })]
|
|
141
|
+
}, `${j.id}-mobile-${t}`))
|
|
142
142
|
})
|
|
143
143
|
})]
|
|
144
144
|
}) : null,
|
|
145
|
-
|
|
146
|
-
/* @__PURE__ */
|
|
145
|
+
B ? /* @__PURE__ */ x(g, { warning: q }) : null,
|
|
146
|
+
/* @__PURE__ */ x("p", {
|
|
147
147
|
className: "text-2xs font-medium uppercase tracking-[0.18em] text-slate-500",
|
|
148
|
-
children: /* @__PURE__ */
|
|
148
|
+
children: /* @__PURE__ */ x("span", { children: $ })
|
|
149
149
|
}),
|
|
150
|
-
/* @__PURE__ */
|
|
150
|
+
/* @__PURE__ */ x("div", {
|
|
151
151
|
className: "grid gap-2",
|
|
152
|
-
children:
|
|
153
|
-
let
|
|
154
|
-
return /* @__PURE__ */
|
|
155
|
-
"data-testid":
|
|
156
|
-
className:
|
|
157
|
-
children: [/* @__PURE__ */
|
|
152
|
+
children: Q.map((e) => {
|
|
153
|
+
let r = `storefront-booking-bike-dialog-variant-option-${j.id}-${e.id}`.toLowerCase(), { label: i, description: s } = t(e), c = n(e), l = H[e.id] ?? "1", u = F?.(e.id) === !0, d = P?.(e.id) ?? null;
|
|
154
|
+
return /* @__PURE__ */ S("div", {
|
|
155
|
+
"data-testid": r,
|
|
156
|
+
className: T("flex flex-col gap-3 rounded-2xl border p-3 sm:flex-row sm:items-center sm:justify-between", "border-slate-200 bg-slate-50"),
|
|
157
|
+
children: [/* @__PURE__ */ S("div", {
|
|
158
158
|
className: "flex min-w-0 flex-1 flex-col gap-0.5",
|
|
159
159
|
children: [
|
|
160
|
-
/* @__PURE__ */
|
|
161
|
-
className: "
|
|
162
|
-
children:
|
|
160
|
+
/* @__PURE__ */ S("div", {
|
|
161
|
+
className: "flex min-w-0 items-baseline gap-2",
|
|
162
|
+
children: [/* @__PURE__ */ x("span", {
|
|
163
|
+
className: "min-w-0 truncate text-sm font-medium text-slate-950",
|
|
164
|
+
title: i,
|
|
165
|
+
children: i
|
|
166
|
+
}), c ? /* @__PURE__ */ x("span", {
|
|
167
|
+
className: "truncate text-xs text-slate-500",
|
|
168
|
+
children: c
|
|
169
|
+
}) : null]
|
|
163
170
|
}),
|
|
164
|
-
|
|
171
|
+
s ? /* @__PURE__ */ x("span", {
|
|
165
172
|
className: "text-xs text-slate-600",
|
|
166
|
-
children:
|
|
173
|
+
children: s
|
|
167
174
|
}) : null,
|
|
168
|
-
|
|
175
|
+
d ? /* @__PURE__ */ x("span", {
|
|
169
176
|
className: "pt-1",
|
|
170
|
-
children: /* @__PURE__ */
|
|
171
|
-
variant:
|
|
172
|
-
children: /* @__PURE__ */
|
|
177
|
+
children: /* @__PURE__ */ x(a, {
|
|
178
|
+
variant: u ? "destructive" : "outline",
|
|
179
|
+
children: /* @__PURE__ */ x("span", { children: d })
|
|
173
180
|
})
|
|
174
181
|
}) : null
|
|
175
182
|
]
|
|
176
|
-
}), /* @__PURE__ */
|
|
183
|
+
}), /* @__PURE__ */ S("div", {
|
|
177
184
|
className: "flex flex-wrap items-center gap-2 sm:justify-end",
|
|
178
|
-
children: [/* @__PURE__ */
|
|
179
|
-
quantity:
|
|
180
|
-
ariaLabel:
|
|
181
|
-
onQuantityChange: (t) =>
|
|
182
|
-
testIdPrefix: `storefront-booking-bike-dialog-variant-quantity-${
|
|
183
|
-
}), /* @__PURE__ */
|
|
185
|
+
children: [/* @__PURE__ */ x(M, {
|
|
186
|
+
quantity: l,
|
|
187
|
+
ariaLabel: R("quantity_label"),
|
|
188
|
+
onQuantityChange: (t) => W(e.id, t),
|
|
189
|
+
testIdPrefix: `storefront-booking-bike-dialog-variant-quantity-${j.id}-${e.id}`.toLowerCase()
|
|
190
|
+
}), /* @__PURE__ */ S(o, {
|
|
184
191
|
type: "button",
|
|
185
192
|
className: "gap-1.5 rounded-xl",
|
|
186
|
-
"data-testid": `storefront-booking-bike-dialog-variant-add-${
|
|
187
|
-
disabled:
|
|
193
|
+
"data-testid": `storefront-booking-bike-dialog-variant-add-${j.id}-${e.id}`.toLowerCase(),
|
|
194
|
+
disabled: I,
|
|
188
195
|
onClick: () => {
|
|
189
|
-
|
|
196
|
+
L(e.id, A(l));
|
|
190
197
|
},
|
|
191
|
-
children: [/* @__PURE__ */
|
|
198
|
+
children: [/* @__PURE__ */ x("span", { children: R("add_short") }), /* @__PURE__ */ x(k, {
|
|
192
199
|
className: "h-4 w-4",
|
|
193
200
|
"aria-hidden": "true"
|
|
194
201
|
})]
|
|
@@ -201,14 +208,14 @@ function A({ open: p, product: A, onOpenChange: M, getVariantAvailabilityLabel:
|
|
|
201
208
|
})]
|
|
202
209
|
})
|
|
203
210
|
}),
|
|
204
|
-
/* @__PURE__ */
|
|
211
|
+
/* @__PURE__ */ x(d, {
|
|
205
212
|
className: "border-t border-slate-200 px-5 py-4 sm:px-6",
|
|
206
|
-
children: /* @__PURE__ */
|
|
213
|
+
children: /* @__PURE__ */ x(o, {
|
|
207
214
|
type: "button",
|
|
208
215
|
variant: "outline",
|
|
209
216
|
className: "h-11 w-full rounded-xl sm:w-auto",
|
|
210
|
-
onClick: () =>
|
|
211
|
-
children: /* @__PURE__ */
|
|
217
|
+
onClick: () => N(!1),
|
|
218
|
+
children: /* @__PURE__ */ x("span", { children: R("close_modal") })
|
|
212
219
|
})
|
|
213
220
|
})
|
|
214
221
|
]
|
|
@@ -216,19 +223,19 @@ function A({ open: p, product: A, onOpenChange: M, getVariantAvailabilityLabel:
|
|
|
216
223
|
})
|
|
217
224
|
});
|
|
218
225
|
}
|
|
219
|
-
function
|
|
220
|
-
return /* @__PURE__ */
|
|
226
|
+
function M({ ariaLabel: e, onQuantityChange: t, quantity: n, testIdPrefix: r }) {
|
|
227
|
+
return /* @__PURE__ */ x("div", {
|
|
221
228
|
className: "flex items-center",
|
|
222
|
-
children: /* @__PURE__ */
|
|
229
|
+
children: /* @__PURE__ */ x(m, {
|
|
223
230
|
type: "text",
|
|
224
231
|
inputMode: "numeric",
|
|
225
232
|
pattern: "[0-9]*",
|
|
226
233
|
value: n,
|
|
227
234
|
onChange: (e) => {
|
|
228
235
|
let n = e.target.value.replace(/\D/g, "");
|
|
229
|
-
t(n ? String(
|
|
236
|
+
t(n ? String(A(n)) : "");
|
|
230
237
|
},
|
|
231
|
-
onBlur: () => t(String(
|
|
238
|
+
onBlur: () => t(String(A(n))),
|
|
232
239
|
className: "h-9 w-16 text-center",
|
|
233
240
|
"aria-label": e,
|
|
234
241
|
"data-testid": `${r}-value`
|
|
@@ -236,4 +243,4 @@ function j({ ariaLabel: e, onQuantityChange: t, quantity: n, testIdPrefix: r })
|
|
|
236
243
|
});
|
|
237
244
|
}
|
|
238
245
|
//#endregion
|
|
239
|
-
export {
|
|
246
|
+
export { j as BookingBikeVariantDialog };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontCancellationPolicyNotice/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAOtE,KAAK,kBAAkB,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,CAAA;AACxF,KAAK,sBAAsB,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE,KAAK,uCAAuC,GAAG;IAC7C,MAAM,EAAE,kBAAkB,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAOD,eAAO,MAAM,6CAA6C,GACxD,QAAQ,kBAAkB,KACzB,sBAAsB,GAAG,IAG3B,CAAA;AAaD,wBAAgB,kCAAkC,CAAC,EACjD,MAAM,EACN,SAAS,GACV,EAAE,uCAAuC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontCancellationPolicyNotice/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAOtE,KAAK,kBAAkB,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,CAAA;AACxF,KAAK,sBAAsB,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE,KAAK,uCAAuC,GAAG;IAC7C,MAAM,EAAE,kBAAkB,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAOD,eAAO,MAAM,6CAA6C,GACxD,QAAQ,kBAAkB,KACzB,sBAAsB,GAAG,IAG3B,CAAA;AAaD,wBAAgB,kCAAkC,CAAC,EACjD,MAAM,EACN,SAAS,GACV,EAAE,uCAAuC,kDA4GzC"}
|
|
@@ -71,12 +71,9 @@ function y({ policy: m, className: y }) {
|
|
|
71
71
|
className: "border-b border-slate-200 px-5 py-4 text-left sm:px-6",
|
|
72
72
|
children: /* @__PURE__ */ c("div", {
|
|
73
73
|
className: "flex items-start gap-3",
|
|
74
|
-
children: [/* @__PURE__ */ s(
|
|
75
|
-
className: "mt-0.5
|
|
76
|
-
|
|
77
|
-
className: "h-4 w-4",
|
|
78
|
-
"aria-hidden": "true"
|
|
79
|
-
})
|
|
74
|
+
children: [/* @__PURE__ */ s(p, {
|
|
75
|
+
className: "mt-0.5 h-5 w-5 shrink-0 text-success",
|
|
76
|
+
"aria-hidden": "true"
|
|
80
77
|
}), /* @__PURE__ */ c("span", {
|
|
81
78
|
className: "min-w-0 space-y-1",
|
|
82
79
|
children: [/* @__PURE__ */ s(o, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontInsuranceNotice/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOrD,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAWD,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,8BAA8B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontInsuranceNotice/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOrD,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAWD,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,8BAA8B,2CA+KhC"}
|
|
@@ -77,12 +77,9 @@ function v({ bikes: v, currency: y, className: b }) {
|
|
|
77
77
|
className: "border-b border-slate-200 px-5 py-4 text-left sm:px-6",
|
|
78
78
|
children: /* @__PURE__ */ l("div", {
|
|
79
79
|
className: "flex items-start gap-3",
|
|
80
|
-
children: [/* @__PURE__ */ c(
|
|
81
|
-
className: "mt-0.5
|
|
82
|
-
|
|
83
|
-
className: "h-4 w-4",
|
|
84
|
-
"aria-hidden": "true"
|
|
85
|
-
})
|
|
80
|
+
children: [/* @__PURE__ */ c(m, {
|
|
81
|
+
className: "mt-0.5 h-5 w-5 shrink-0 text-success",
|
|
82
|
+
"aria-hidden": "true"
|
|
86
83
|
}), /* @__PURE__ */ l("span", {
|
|
87
84
|
className: "min-w-0 space-y-1",
|
|
88
85
|
children: [/* @__PURE__ */ c(s, {
|
|
@@ -4,6 +4,7 @@ type ProductVariantLike = {
|
|
|
4
4
|
attributes?: unknown;
|
|
5
5
|
};
|
|
6
6
|
export declare function getProductVariantAttributeValue(variant: ProductVariantLike, key: string): string | undefined;
|
|
7
|
+
export declare function getStorefrontProductVariantHeightRange(variant: ProductVariantLike): string | null;
|
|
7
8
|
export declare function getProductVariantDisplay(variant: ProductVariantLike): {
|
|
8
9
|
label: string;
|
|
9
10
|
description?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"productVariants.d.ts","sourceRoot":"","sources":["../../src/lib/productVariants.ts"],"names":[],"mappings":"AAKA,KAAK,kBAAkB,GAAG;IACxB,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;
|
|
1
|
+
{"version":3,"file":"productVariants.d.ts","sourceRoot":"","sources":["../../src/lib/productVariants.ts"],"names":[],"mappings":"AAKA,KAAK,kBAAkB,GAAG;IACxB,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AA2BD,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW5G;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAmBjG;AAiDD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB7G;AAED,eAAO,MAAM,kCAAkC,iCAA2B,CAAA"}
|
|
@@ -6,15 +6,27 @@ function r(t) {
|
|
|
6
6
|
function i(e) {
|
|
7
7
|
return Array.isArray(e.attributes) ? e.attributes : [];
|
|
8
8
|
}
|
|
9
|
-
function a(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
function a(e) {
|
|
10
|
+
if (!e) return;
|
|
11
|
+
let t = Number(e.trim().replace(",", "."));
|
|
12
|
+
if (!(!Number.isFinite(t) || t <= 0)) return Math.round(t);
|
|
13
|
+
}
|
|
14
|
+
function o(e) {
|
|
15
|
+
return (e / 100).toFixed(2);
|
|
16
|
+
}
|
|
17
|
+
function s(t, n) {
|
|
18
|
+
let a = r(n);
|
|
19
|
+
if (a) for (let n of i(t)) {
|
|
20
|
+
if (r(n?.key) !== a) continue;
|
|
13
21
|
let t = e(n?.value);
|
|
14
22
|
if (t) return t;
|
|
15
23
|
}
|
|
16
24
|
}
|
|
17
|
-
function
|
|
25
|
+
function c(e) {
|
|
26
|
+
let t = a(s(e, "min_height_cm")), n = a(s(e, "max_height_cm")), r = t ? o(t) : null, i = n ? o(n) : null;
|
|
27
|
+
return r && i ? `${r} - ${i} m` : r ? `min ${r} m` : i ? `max ${i} m` : null;
|
|
28
|
+
}
|
|
29
|
+
function l(a) {
|
|
18
30
|
let o = [], s = [];
|
|
19
31
|
for (let c of i(a)) {
|
|
20
32
|
let i = e(c.value);
|
|
@@ -30,28 +42,28 @@ function o(a) {
|
|
|
30
42
|
}
|
|
31
43
|
return [...o, ...s];
|
|
32
44
|
}
|
|
33
|
-
function
|
|
45
|
+
function u(e) {
|
|
34
46
|
return e.trim().replace(/\s+/g, " ").toLowerCase();
|
|
35
47
|
}
|
|
36
|
-
function
|
|
48
|
+
function d(e, t) {
|
|
37
49
|
if (!e || t.length === 0) return !1;
|
|
38
50
|
let n = e.split(/\s+\/\s+/).map((e) => {
|
|
39
51
|
let t = e.indexOf(":");
|
|
40
|
-
return
|
|
41
|
-
}).filter((e) => e.length > 0).sort(), r = t.map(
|
|
52
|
+
return u(t >= 0 ? e.slice(t + 1) : e);
|
|
53
|
+
}).filter((e) => e.length > 0).sort(), r = t.map(u).sort();
|
|
42
54
|
return n.length === r.length && n.every((e, t) => e === r[t]);
|
|
43
55
|
}
|
|
44
|
-
function
|
|
45
|
-
let n = e(t.id), r = e(t.computedName), i =
|
|
56
|
+
function f(t) {
|
|
57
|
+
let n = e(t.id), r = e(t.computedName), i = l(t), a = [
|
|
46
58
|
i.join(" · "),
|
|
47
59
|
r,
|
|
48
60
|
n
|
|
49
|
-
].find((e) => e.length > 0) ?? n,
|
|
61
|
+
].find((e) => e.length > 0) ?? n, o = r.length > 0 && r !== a && !d(r, i) ? r : "";
|
|
50
62
|
return {
|
|
51
63
|
label: a || n,
|
|
52
|
-
description:
|
|
64
|
+
description: o || void 0
|
|
53
65
|
};
|
|
54
66
|
}
|
|
55
|
-
var
|
|
67
|
+
var p = f;
|
|
56
68
|
//#endregion
|
|
57
|
-
export {
|
|
69
|
+
export { s as getProductVariantAttributeValue, f as getProductVariantDisplay, p as getStorefrontProductVariantDisplay, c as getStorefrontProductVariantHeightRange };
|