@sonic-equipment/ui 0.0.71 → 0.0.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +34 -113
- package/dist/index.js +419 -326
- package/dist/src/background-overlay/background-overlay.d.ts +7 -0
- package/dist/src/buttons/add-to-cart-button/add-to-cart-button.stories.d.ts +1 -1
- package/dist/src/buttons/button/button.stories.d.ts +1 -1
- package/dist/src/buttons/favorite/favorite-button.stories.d.ts +1 -1
- package/dist/src/buttons/icon-button/icon-button.stories.d.ts +1 -1
- package/dist/src/buttons/link/link.stories.d.ts +1 -1
- package/dist/src/cards/product-card/connected-product-cart.d.ts +1 -1
- package/dist/src/carousel/product-carousel/product-carousel.d.ts +2 -1
- package/dist/src/carousel/product-carousel/product-carousel.stories.d.ts +19 -0
- package/dist/src/collapsables/show-all/show-all.stories.d.ts +1 -1
- package/dist/src/filters/active-filters/active-filters.stories.d.ts +2 -2
- package/dist/src/filters/multi-select/multi-select.stories.d.ts +1 -1
- package/dist/src/filters/pagination/pagination.stories.d.ts +1 -1
- package/dist/src/forms/checkbox/checkbox.stories.d.ts +1 -1
- package/dist/src/forms/color-checkbox/color-checkbox.stories.d.ts +1 -1
- package/dist/src/forms/select/select.stories.d.ts +1 -1
- package/dist/src/index.d.ts +20 -22
- package/dist/src/pages/error-page/error-page.d.ts +4 -0
- package/dist/src/pages/layouts/product-details-page-layout.d.ts +9 -0
- package/dist/src/pages/loading-page/loading-page.d.ts +1 -0
- package/dist/src/promos/promo-cards/promo-cards.d.ts +8 -4
- package/dist/src/promos/promo-cards/promo-cards.stories.d.ts +1 -3
- package/dist/src/shared/api/bff/hooks/use-fetch-product-details-page-data.d.ts +7 -0
- package/dist/src/shared/api/bff/hooks/use-fetch-product-details-page-data.stories.d.ts +20 -0
- package/dist/src/shared/api/bff/hooks/use-fetch-product-listing-page-data.stories.d.ts +0 -1
- package/dist/src/shared/api/bff/model/bff.model.d.ts +99 -9
- package/dist/src/shared/api/storefront/hooks/authentication/use-session.d.ts +4 -0
- package/dist/src/shared/api/{shop → storefront}/hooks/authentication/use-sign-in.d.ts +1 -1
- package/dist/src/shared/api/{shop → storefront}/hooks/cart/cart.stories.d.ts +1 -1
- package/dist/src/shared/api/{shop → storefront}/hooks/cart/use-add-product-to-current-cart.d.ts +1 -1
- package/dist/src/shared/api/{shop → storefront}/hooks/wishlist/use-fetch-all-wishlists-items.d.ts +1 -1
- package/dist/src/shared/api/{shop → storefront}/hooks/wishlist/use-fetch-wishlists.d.ts +1 -1
- package/dist/src/shared/api/{shop → storefront}/services/authentication-service.d.ts +1 -1
- package/dist/src/shared/api/{shop → storefront}/services/cart-service.d.ts +1 -1
- package/dist/src/shared/api/{shop → storefront}/services/wishlist-service.d.ts +1 -1
- package/dist/src/shared/providers/cart-provider.d.ts +1 -1
- package/dist/src/shared/providers/favorite-provider.d.ts +1 -1
- package/dist/src/shared/routing/route-button.d.ts +1 -1
- package/dist/styles.css +284 -188
- package/package.json +2 -2
- package/dist/src/overlay-background/overlay-background.d.ts +0 -7
- package/dist/src/shared/api/shop/hooks/authentication/use-session.d.ts +0 -2
- /package/dist/src/shared/api/{shop → storefront}/hooks/authentication/authentication.stories.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/authentication/use-is-authenticated.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/authentication/use-sign-out.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/cart/use-delete-cart-line-by-id.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/cart/use-fetch-current-cart-lines.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/cart/use-update-cart-line-by-id.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/translation/translations.stories.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/translation/use-fetch-translations.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/wishlist/use-add-wishlist-item-to-current-wishlist.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/wishlist/use-add-wishlist-item-to-wishlist.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/wishlist/use-create-wishlist.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/wishlist/use-delete-wishlist-item-from-wishlist.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/hooks/wishlist/wishlist.stories.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/model/shop.model.d.ts +0 -0
- /package/dist/src/shared/api/{shop → storefront}/services/translation-service.d.ts +0 -0
package/dist/index.js
CHANGED
|
@@ -388,65 +388,6 @@ function useFeatureFlags() {
|
|
|
388
388
|
return { pdpV2, plpV2, searchV2 };
|
|
389
389
|
}
|
|
390
390
|
|
|
391
|
-
var TIME;
|
|
392
|
-
(function (TIME) {
|
|
393
|
-
TIME[TIME["SECOND"] = 1000] = "SECOND";
|
|
394
|
-
TIME[TIME["MINUTE"] = 60000] = "MINUTE";
|
|
395
|
-
TIME[TIME["HOUR"] = 3600000] = "HOUR";
|
|
396
|
-
TIME[TIME["DAY"] = 86400000] = "DAY";
|
|
397
|
-
})(TIME || (TIME = {}));
|
|
398
|
-
|
|
399
|
-
function useFetchProductListingPageData({ languageCode, pageUrl, }) {
|
|
400
|
-
return useQuery({
|
|
401
|
-
gcTime: 1 * TIME.DAY,
|
|
402
|
-
queryFn: async () => {
|
|
403
|
-
return request({
|
|
404
|
-
headers: { 'Current-Language-Id': languageCode },
|
|
405
|
-
url: `${config.BFF_API_URL}/plp/?pageUrl=${pageUrl}`,
|
|
406
|
-
});
|
|
407
|
-
},
|
|
408
|
-
queryKey: ['product-listing-page-data', pageUrl, languageCode],
|
|
409
|
-
select: ({ body }) => {
|
|
410
|
-
return {
|
|
411
|
-
breadCrumb: body.breadCrumb.map(breadCrumb => ({
|
|
412
|
-
href: breadCrumb.url,
|
|
413
|
-
label: breadCrumb.text,
|
|
414
|
-
})),
|
|
415
|
-
category: body.categories
|
|
416
|
-
? {
|
|
417
|
-
href: body.categories.path,
|
|
418
|
-
image: {
|
|
419
|
-
1: body.categories.smallImagePath,
|
|
420
|
-
2: body.categories.smallImagePath,
|
|
421
|
-
3: body.categories.smallImagePath,
|
|
422
|
-
altText: body.categories.imageAltText,
|
|
423
|
-
},
|
|
424
|
-
title: body.categories.shortDescription,
|
|
425
|
-
}
|
|
426
|
-
: undefined,
|
|
427
|
-
categoryPages: body.categoryPages,
|
|
428
|
-
hierarchicalCategories: body.hierarchicalCategories,
|
|
429
|
-
promoCards: body.promoCards
|
|
430
|
-
? {
|
|
431
|
-
top: body.promoCards.top || undefined,
|
|
432
|
-
}
|
|
433
|
-
: undefined,
|
|
434
|
-
subcategories: body.categories?.subCategories?.map(subcategory => ({
|
|
435
|
-
href: subcategory.path,
|
|
436
|
-
image: {
|
|
437
|
-
1: subcategory.smallImagePath,
|
|
438
|
-
2: subcategory.smallImagePath,
|
|
439
|
-
3: subcategory.smallImagePath,
|
|
440
|
-
altText: subcategory.imageAltText,
|
|
441
|
-
},
|
|
442
|
-
title: subcategory.shortDescription,
|
|
443
|
-
})),
|
|
444
|
-
};
|
|
445
|
-
},
|
|
446
|
-
staleTime: 1 * TIME.DAY,
|
|
447
|
-
});
|
|
448
|
-
}
|
|
449
|
-
|
|
450
391
|
var CurrencyPositioningType;
|
|
451
392
|
(function (CurrencyPositioningType) {
|
|
452
393
|
CurrencyPositioningType["Left"] = "Left";
|
|
@@ -657,8 +598,9 @@ async function getWishListItemsByWishListId({ wishListId, }) {
|
|
|
657
598
|
return body;
|
|
658
599
|
}
|
|
659
600
|
|
|
660
|
-
function useSession() {
|
|
601
|
+
function useSession({ enabled = true } = {}) {
|
|
661
602
|
return useQuery({
|
|
603
|
+
enabled,
|
|
662
604
|
queryFn: async () => {
|
|
663
605
|
return await getSession();
|
|
664
606
|
},
|
|
@@ -785,6 +727,14 @@ function useUpdateCartLineById() {
|
|
|
785
727
|
});
|
|
786
728
|
}
|
|
787
729
|
|
|
730
|
+
var TIME;
|
|
731
|
+
(function (TIME) {
|
|
732
|
+
TIME[TIME["SECOND"] = 1000] = "SECOND";
|
|
733
|
+
TIME[TIME["MINUTE"] = 60000] = "MINUTE";
|
|
734
|
+
TIME[TIME["HOUR"] = 3600000] = "HOUR";
|
|
735
|
+
TIME[TIME["DAY"] = 86400000] = "DAY";
|
|
736
|
+
})(TIME || (TIME = {}));
|
|
737
|
+
|
|
788
738
|
function useFetchTranslations(languagCode) {
|
|
789
739
|
return useQuery({
|
|
790
740
|
gcTime: 1 * TIME.DAY,
|
|
@@ -1189,7 +1139,7 @@ function useNavigate() {
|
|
|
1189
1139
|
};
|
|
1190
1140
|
}
|
|
1191
1141
|
|
|
1192
|
-
var styles$
|
|
1142
|
+
var styles$T = {"link":"link-module-xLqBn","primary":"link-module-bGD6u","secondary":"link-module-v31wH","has-underline":"link-module-UuCEp"};
|
|
1193
1143
|
|
|
1194
1144
|
function Link({ children, className, color = 'primary', hasUnderline, onClick: _onClick, ...props }) {
|
|
1195
1145
|
function onClick(e) {
|
|
@@ -1198,7 +1148,7 @@ function Link({ children, className, color = 'primary', hasUnderline, onClick: _
|
|
|
1198
1148
|
return;
|
|
1199
1149
|
e.preventDefault();
|
|
1200
1150
|
}
|
|
1201
|
-
return (jsx(Link$1, { className: clsx({ [styles$
|
|
1151
|
+
return (jsx(Link$1, { className: clsx({ [styles$T['has-underline']]: hasUnderline }, styles$T['link'], styles$T[color], className),
|
|
1202
1152
|
// Workaround for adobe/react-spectrum #963
|
|
1203
1153
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1204
1154
|
// @ts-ignore
|
|
@@ -1214,6 +1164,9 @@ function RouteLink({ children, onClick: _onClick, ...props }) {
|
|
|
1214
1164
|
e.preventDefault();
|
|
1215
1165
|
if (props.isDisabled)
|
|
1216
1166
|
return;
|
|
1167
|
+
if (e.ctrlKey || e.metaKey || e.shiftKey) {
|
|
1168
|
+
return window.open(props.href, '_blank');
|
|
1169
|
+
}
|
|
1217
1170
|
navigate(props.href, props.route);
|
|
1218
1171
|
}
|
|
1219
1172
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -1249,9 +1202,10 @@ function Button({ _pseudo = 'none', children, className, color = 'primary', cond
|
|
|
1249
1202
|
onClick: onClick, onPress: onPress, type: type, children: [jsx(Fragment, { children: showIconOnLeft && jsx("span", { className: buttonStyles.icon, children: icon }) }), children, withArrow && (jsx(GlyphsArrowBoldCapsRightIcon, { className: buttonStyles['right-arrow-icon'] })), showIconOnRight && jsx("span", { className: buttonStyles.icon, children: icon })] }));
|
|
1250
1203
|
}
|
|
1251
1204
|
|
|
1252
|
-
function RouteButton({ children, ...props }) {
|
|
1205
|
+
function RouteButton({ children, onClick, ...props }) {
|
|
1253
1206
|
const navigate = useNavigate();
|
|
1254
1207
|
return (jsx(Button, { onClick: e => {
|
|
1208
|
+
onClick?.(e);
|
|
1255
1209
|
if (!props.href)
|
|
1256
1210
|
return;
|
|
1257
1211
|
e.preventDefault();
|
|
@@ -1293,22 +1247,24 @@ function SolidHomeIcon(props) {
|
|
|
1293
1247
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "24", viewBox: "0 0 24 24", width: "24", children: jsx("path", { d: "M15.039782,22 C14.6690193,22 14.3684378,21.6994185 14.3684378,21.3286559 L14.3684378,15.6029043 L9.34495251,15.6029043 L9.34495251,21.3286559 C9.34495251,21.6994185 9.04437101,22 8.67345678,22 L3.67134415,22 C3.3005815,22 3,21.6994185 3,21.3286559 L3,9.79560307 C3,9.60127857 3.08412644,9.41665514 3.23055192,9.28917706 L11.4158271,2.16495603 C11.6686612,1.94501466 12.0447291,1.94501466 12.2975632,2.16495603 L20.4828384,9.28917706 C20.6292639,9.41665514 20.7133903,9.60127857 20.7133903,9.79560307 L20.7133903,21.3286559 C20.7133903,21.6994185 20.4128088,22 20.0418946,22 L15.039782,22 Z", fillRule: "evenodd" }) }));
|
|
1294
1248
|
}
|
|
1295
1249
|
|
|
1296
|
-
var styles$
|
|
1250
|
+
var styles$S = {"breadcrumbs":"breadcrumb-module-CQGse","breadcrumb":"breadcrumb-module-hxhDY","link":"breadcrumb-module-fp2Q6","icon":"breadcrumb-module-uIn3w","previous-icon":"breadcrumb-module-K-wMJ"};
|
|
1297
1251
|
|
|
1298
1252
|
function BreadcrumbShort({ links }) {
|
|
1299
1253
|
const homeLink = links[0];
|
|
1300
1254
|
const previousLink = links[links.length - 2];
|
|
1301
|
-
|
|
1255
|
+
const isHomeLink = previousLink === undefined || previousLink === homeLink;
|
|
1256
|
+
const href = previousLink?.href || homeLink?.href;
|
|
1257
|
+
return (jsx(Breadcrumbs, { className: styles$S.breadcrumbs, children: jsx(Breadcrumb$1, { className: styles$S.breadcrumb, children: jsxs(RouteLink, { className: styles$S.link, href: href, isDisabled: false, children: [jsx(GlyphsChevronsSlimLeftIcon, { className: styles$S.icon }), isHomeLink ? (jsx(SolidHomeIcon, { className: styles$S.icon })) : (jsx("span", { children: previousLink.label }))] }) }) }));
|
|
1302
1258
|
}
|
|
1303
1259
|
function BreadcrumbLongItem({ index, isDisabled, link, }) {
|
|
1304
|
-
return (jsx(Breadcrumb$1, { className: styles$
|
|
1260
|
+
return (jsx(Breadcrumb$1, { className: styles$S.breadcrumb, children: jsxs(RouteLink, { className: styles$S.link, color: "secondary", href: link.href, isDisabled: isDisabled, children: [jsx(GlyphsChevronsSlimLeftIcon, { className: clsx(styles$S['previous-icon'], styles$S.icon) }), link.label] }) }, index));
|
|
1305
1261
|
}
|
|
1306
1262
|
function BreadcrumbLong({ links }) {
|
|
1307
1263
|
const linksWithoutFirst = links.slice(1);
|
|
1308
1264
|
const homeLink = links[0];
|
|
1309
1265
|
if (!homeLink)
|
|
1310
1266
|
return null;
|
|
1311
|
-
return (jsxs(Breadcrumbs, { className: styles$
|
|
1267
|
+
return (jsxs(Breadcrumbs, { className: styles$S.breadcrumbs, children: [jsx(Breadcrumb$1, { className: styles$S.breadcrumb, children: jsx(RouteLink, { className: styles$S.link, href: homeLink.href, children: jsx(SolidHomeIcon, { className: clsx(styles$S['home-icon'], styles$S.icon) }) }) }), linksWithoutFirst.map((link, index) => (jsx(BreadcrumbLongItem, { index: index, isDisabled: linksWithoutFirst.length - 1 === index, link: link }, index)))] }));
|
|
1312
1268
|
}
|
|
1313
1269
|
function Breadcrumb({ links }) {
|
|
1314
1270
|
const { lg } = useBreakpoint();
|
|
@@ -1317,10 +1273,10 @@ function Breadcrumb({ links }) {
|
|
|
1317
1273
|
return lg ? BreadcrumbLong({ links }) : BreadcrumbShort({ links });
|
|
1318
1274
|
}
|
|
1319
1275
|
|
|
1320
|
-
var styles$
|
|
1276
|
+
var styles$R = {"icon-button":"icon-button-module-4PDK-","md":"icon-button-module-k3s9J","lg":"icon-button-module-agk6Y","primary":"icon-button-module-fTeP4","secondary":"icon-button-module-dM0eo"};
|
|
1321
1277
|
|
|
1322
1278
|
function IconButton({ children, className, color = 'primary', isDisabled, onPress, size = 'md', type = 'button', }) {
|
|
1323
|
-
return (jsx(Button$1, { className: clsx(styles$
|
|
1279
|
+
return (jsx(Button$1, { className: clsx(styles$R['icon-button'], styles$R[size], styles$R[color], className), isDisabled: isDisabled,
|
|
1324
1280
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1325
1281
|
// @ts-expect-error
|
|
1326
1282
|
onClick: e => e.preventDefault(), onPress: onPress, type: type, children: children }));
|
|
@@ -1334,21 +1290,21 @@ function StrokeFavoriteIcon(props) {
|
|
|
1334
1290
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "24", viewBox: "0 0 24 24", width: "24", children: jsx("path", { d: "M7.33319295,3.33090958 C5.12714802,3.33090958 3.33232058,5.12348359 3.33232058,7.32679321 C3.33232058,8.18447047 3.64878056,9.03643889 4.29989998,9.93107334 L11.9997744,20.2227497 L19.7053643,9.92401241 C20.351069,9.03643889 20.6673786,8.1846207 20.6673786,7.32679321 C20.6673786,5.12348359 18.8727016,3.33090958 16.6666566,3.33090958 C14.8537801,3.33090958 13.1222748,4.56251549 12.6388611,6.19569283 C12.5552338,6.47843037 12.2951771,6.67253074 11.9999248,6.67253074 C11.7046724,6.67253074 11.4447662,6.47843037 11.3609885,6.19569283 C10.8775748,4.56251549 9.14606944,3.33090958 7.33319295,3.33090958 M11.9997744,22 L11.9997744,22 C11.7898038,22 11.5918659,21.9008466 11.4662746,21.7327364 L3.22718487,10.720545 C2.41106707,9.59905954 2,8.45954615 2,7.32679321 C2,4.3895979 4.39240135,2 7.33319295,2 C9.22488362,2 11.0018124,2.98206975 11.9999248,4.46786903 C12.9978868,2.98206975 14.774966,2 16.6666566,2 C19.6072978,2 22,4.3895979 22,7.32679321 C22,8.45969638 21.5887825,9.59920978 20.777929,10.7136343 L12.5334246,21.7327364 C12.4076829,21.9008466 12.2098954,22 11.9997744,22", fillRule: "evenodd" }) }));
|
|
1335
1291
|
}
|
|
1336
1292
|
|
|
1337
|
-
var styles$
|
|
1293
|
+
var styles$Q = {"favorite-button":"favorite-button-module-tXSS3","is-favorite":"favorite-button-module-l557q","favorite-on":"favorite-button-module-6Tsmy","favorite-off":"favorite-button-module-LQauU"};
|
|
1338
1294
|
|
|
1339
1295
|
function FavoriteButton({ isDisabled, isFavorite, onPress, }) {
|
|
1340
|
-
return (jsx(IconButton, { className: clsx(styles$
|
|
1341
|
-
[styles$
|
|
1296
|
+
return (jsx(IconButton, { className: clsx(styles$Q['favorite-button'], {
|
|
1297
|
+
[styles$Q['is-favorite']]: isFavorite,
|
|
1342
1298
|
}), color: "secondary", isDisabled: isDisabled, onPress: onPress, children: isFavorite ? jsx(SolidFavoriteIcon, {}) : jsx(StrokeFavoriteIcon, {}) }));
|
|
1343
1299
|
}
|
|
1344
1300
|
|
|
1345
|
-
var styles$
|
|
1301
|
+
var styles$P = {"field-error":"field-error-module-FXnIg"};
|
|
1346
1302
|
|
|
1347
1303
|
function FieldError({ children }) {
|
|
1348
|
-
return (jsx(FieldError$1, { className: styles$
|
|
1304
|
+
return (jsx(FieldError$1, { className: styles$P['field-error'], children: children }));
|
|
1349
1305
|
}
|
|
1350
1306
|
|
|
1351
|
-
var styles$
|
|
1307
|
+
var styles$O = {"input-container":"input-module-2woJR","shadow-input":"input-module-pNKEt","lg":"input-module-Dx2qC","md":"input-module-sH6e7","focus":"input-module-hEEuy","growing-input":"input-module-6HwY4"};
|
|
1352
1308
|
|
|
1353
1309
|
/**
|
|
1354
1310
|
* This component is used to create an input that grows as the user types.
|
|
@@ -1364,20 +1320,20 @@ const Input = forwardRef(({ _pseudo = 'none', autoGrow, size = 'lg', ...inputPro
|
|
|
1364
1320
|
? onChange?.(event)
|
|
1365
1321
|
: setUncontrolledValue(event.target.value);
|
|
1366
1322
|
const { pressProps } = usePress({});
|
|
1367
|
-
return (jsx("div", { className: clsx(styles$
|
|
1323
|
+
return (jsx("div", { className: clsx(styles$O['input-container'], styles$O[size], styles$O[_pseudo]), children: jsxs("div", { className: clsx({ [styles$O['growing-input']]: autoGrow }), children: [jsx(Input$1, { size: autoGrow ? 1 : undefined, ...props, ...pressProps, ref: ref, onChange: handleChange, onClick: e => {
|
|
1368
1324
|
e.preventDefault();
|
|
1369
1325
|
e.stopPropagation();
|
|
1370
1326
|
e.target.focus();
|
|
1371
|
-
} }), autoGrow && jsx("span", { className: styles$
|
|
1327
|
+
} }), autoGrow && jsx("span", { className: styles$O['shadow-input'], children: value })] }) }));
|
|
1372
1328
|
});
|
|
1373
1329
|
Input.displayName = 'Input';
|
|
1374
1330
|
|
|
1375
|
-
var styles$
|
|
1331
|
+
var styles$N = {"label":"label-module-LGfJt","required":"label-module-oTWaS"};
|
|
1376
1332
|
|
|
1377
1333
|
function Label({ children, isRequired }) {
|
|
1378
1334
|
if (!children)
|
|
1379
1335
|
return null;
|
|
1380
|
-
return (jsxs(Label$1, { className: styles$
|
|
1336
|
+
return (jsxs(Label$1, { className: styles$N.label, children: [children, isRequired && jsx("span", { className: styles$N.required, children: "*" })] }));
|
|
1381
1337
|
}
|
|
1382
1338
|
|
|
1383
1339
|
function StrokeCollapseIcon(props) {
|
|
@@ -1392,7 +1348,7 @@ function StrokeTrashIcon(props) {
|
|
|
1392
1348
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "24", viewBox: "0 0 24 24", width: "24", children: jsx("path", { d: "M7.77273912,6.04398453 L9.07201126,6.04398453 L9.07201126,4.11757519 C9.07201126,3.84748949 9.15880324,3.63104347 9.33238719,3.46823712 C9.50597114,3.30543077 9.73570292,3.22402759 10.0215825,3.22402759 L13.3263825,3.22402759 C13.6186194,3.22402759 13.850313,3.30543077 14.0214633,3.46823712 C14.1926136,3.63104347 14.2781888,3.84748949 14.2781888,4.11757519 L14.2781888,6.04398453 L15.5846129,6.04398453 L15.5846129,4.04352264 C15.5846129,3.40769382 15.3900697,2.90814951 15.0009834,2.5448897 C14.6118971,2.1816299 14.0799703,2 13.405203,2 L9.942762,2 C9.26869007,2 8.73850162,2.1816299 8.35219662,2.5448897 C7.96589162,2.90814951 7.77273912,3.40769382 7.77273912,4.04352264 L7.77273912,6.04398453 Z M3.60955531,6.6940676 L19.7561406,6.6940676 C19.9248076,6.6940676 20.0683931,6.6332263 20.186897,6.51154371 C20.305401,6.38986111 20.3646529,6.242352 20.3646529,6.06901638 C20.3646529,5.9003494 20.3052023,5.75537328 20.186301,5.63408801 C20.0673997,5.51280275 19.9240129,5.45216011 19.7561406,5.45216011 L3.60955531,5.45216011 C3.44734496,5.45216011 3.30519982,5.51300141 3.18311989,5.63468401 C3.06103996,5.75636661 3,5.90114406 3,6.06901638 C3,6.24314666 3.06103996,6.39085444 3.18311989,6.5121397 C3.30519982,6.63342497 3.44734496,6.6940676 3.60955531,6.6940676 Z M7.56920636,22 L15.8049825,22 C16.4210441,22 16.9252074,21.8108208 17.3174724,21.4324624 C17.7097373,21.0541041 17.9209684,20.5545101 17.9511655,19.9336805 L18.6066126,6.5283806 L17.2870766,6.5283806 L16.6578534,19.8059883 C16.6444435,20.0808419 16.5455825,20.3084381 16.3612707,20.4887766 C16.1769588,20.6691152 15.9469787,20.7592845 15.6713303,20.7592845 L7.68497866,20.7592845 C7.41479362,20.7592845 7.18757,20.6677246 7.00330778,20.4846047 C6.81904556,20.3014848 6.72015983,20.0752793 6.70665057,19.8059883 L6.05358753,6.5295726 L4.76996029,6.5295726 L5.41587138,19.9420245 C5.4468632,20.562854 5.65806942,21.0610573 6.04949005,21.4366344 C6.44091068,21.8122115 6.94748278,22 7.56920636,22 Z M9.00213069,19.1375783 C9.15957307,19.1375783 9.2862223,19.0920591 9.38207839,19.0010206 C9.47793448,18.9099822 9.5230812,18.7917017 9.51751857,18.6461793 L9.2314403,8.86811345 C9.22587767,8.72338566 9.17618647,8.60729053 9.0823667,8.51982806 C8.98854694,8.43236558 8.86649184,8.38863435 8.71620142,8.38863435 C8.55945437,8.38863435 8.43436962,8.43395491 8.34094719,8.52459603 C8.24752475,8.61523714 8.20081354,8.73371626 8.20081354,8.88003338 L8.48555081,18.6485633 C8.49121278,18.7988537 8.54055631,18.9179288 8.63358142,19.0057886 C8.72660652,19.0936484 8.84945628,19.1375783 9.00213069,19.1375783 Z M11.6876904,19.1375783 C11.8451328,19.1375783 11.9717821,19.0922578 12.0676381,19.0016166 C12.1634942,18.9109755 12.2114223,18.7924964 12.2114223,18.6461793 L12.2114223,8.88003338 C12.2114223,8.73451092 12.1634942,8.61623047 12.0676381,8.52519202 C11.9717821,8.43415357 11.8451328,8.38863435 11.6876904,8.38863435 C11.5310427,8.38863435 11.4032015,8.43415357 11.3041668,8.52519202 C11.205132,8.61623047 11.1556147,8.73451092 11.1556147,8.88003338 L11.1556147,18.6461793 C11.1556147,18.7924964 11.205132,18.9109755 11.3041668,19.0016166 C11.4032015,19.0922578 11.5310427,19.1375783 11.6876904,19.1375783 Z M14.3635653,19.1387703 C14.516339,19.1387703 14.6392384,19.0948404 14.7322635,19.0069806 C14.8252886,18.9191208 14.8745825,18.802827 14.8801451,18.6580992 L15.1662234,8.88122537 C15.1662234,8.73490825 15.1194873,8.6166278 15.0260152,8.52638402 C14.9325431,8.43614023 14.8070859,8.39101833 14.6496435,8.39101833 C14.4993531,8.39101833 14.3772732,8.4345509 14.2834037,8.52161604 C14.1895343,8.60868118 14.1398183,8.7277563 14.1342556,8.87884138 L13.8483264,18.6485633 C13.8483264,18.7932911 13.8948389,18.9111742 13.987864,19.0022126 C14.0808891,19.0932511 14.2061229,19.1387703 14.3635653,19.1387703 Z" }) }));
|
|
1393
1349
|
}
|
|
1394
1350
|
|
|
1395
|
-
var styles$
|
|
1351
|
+
var styles$M = {"field":"number-field-module-gmnog","button-input-container":"number-field-module-8Lvgh","zoom-in-text":"number-field-module-OlEoa"};
|
|
1396
1352
|
|
|
1397
1353
|
/**
|
|
1398
1354
|
* This component is used to create a number field.
|
|
@@ -1400,7 +1356,7 @@ var styles$K = {"field":"number-field-module-gmnog","button-input-container":"nu
|
|
|
1400
1356
|
*/
|
|
1401
1357
|
function NumberField({ autoFocus, autoGrow, defaultValue, formatOptions = { style: 'decimal', useGrouping: false }, isDisabled, isInvalid, isReadOnly, isRequired, label, maxLength, maxValue, minValue, name, onChange, onInput, onKeyUp, placeholder, showLabel = false, size = 'lg', value, withButtons, }) {
|
|
1402
1358
|
const inputRef = useRef(null);
|
|
1403
|
-
return (jsxs(NumberField$1, { "aria-label": label, autoFocus: autoFocus, className: clsx(styles$
|
|
1359
|
+
return (jsxs(NumberField$1, { "aria-label": label, autoFocus: autoFocus, className: clsx(styles$M.field, styles$M[size]), defaultValue: defaultValue, formatOptions: formatOptions, isDisabled: isDisabled, isInvalid: isInvalid, isReadOnly: isReadOnly, isRequired: isRequired, maxValue: maxValue, minValue: minValue, name: name, onChange: onChange, onInput: onInput, value: value, children: [showLabel && jsx(Label, { isRequired: isRequired, children: label }), jsxs("div", { className: styles$M['button-input-container'], children: [withButtons && (jsx(Button$1, { isDisabled: isDisabled,
|
|
1404
1360
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1405
1361
|
// @ts-expect-error
|
|
1406
1362
|
onClick: e => e.preventDefault(), onPressStart: e => e.target.focus(), slot: "decrement", children: (value || 0) <= 1 ? jsx(StrokeTrashIcon, {}) : jsx(StrokeCollapseIcon, {}) })), jsx(Input, { ref: inputRef, autoGrow: autoGrow, maxLength: maxLength, onFocus: e => (e.target.selectionStart = e.target.value.length || 0), onKeyUp: e => onKeyUp?.(e), placeholder: placeholder, size: size }), withButtons && (jsx(Button$1, { isDisabled: isDisabled,
|
|
@@ -1413,7 +1369,7 @@ function SolidCartIcon(props) {
|
|
|
1413
1369
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "24", viewBox: "0 0 24 24", width: "24", children: jsx("path", { d: "M7.89619008,16.6656848 C9.33405626,16.6656848 10.4996925,17.831321 10.4996925,19.2690253 C10.4996925,20.7068915 9.33405626,21.8725278 7.89619008,21.8725278 C6.45832389,21.8725278 5.29268766,20.7068915 5.29268766,19.2690253 C5.29268766,17.831321 6.45832389,16.6656848 7.89619008,16.6656848 Z M16.8207199,16.6656848 C18.2585861,16.6656848 19.4242223,17.831321 19.4242223,19.2690253 C19.4242223,20.7068915 18.2585861,21.8725278 16.8207199,21.8725278 C15.3828537,21.8725278 14.2172175,20.7068915 14.2172175,19.2690253 C14.2172175,17.831321 15.3828537,16.6656848 16.8207199,16.6656848 Z M7.89619008,18.0995047 C7.25122196,18.0995047 6.72650762,18.6242191 6.72650762,19.2690253 C6.72650762,19.9139935 7.25122196,20.4387078 7.89619008,20.4387078 C8.54115819,20.4387078 9.06587253,19.9139935 9.06587253,19.2690253 C9.06587253,18.6242191 8.54115819,18.0995047 7.89619008,18.0995047 Z M16.8207199,18.0995047 C16.1757518,18.0995047 15.6510375,18.6242191 15.6510375,19.2690253 C15.6510375,19.9139935 16.1757518,20.4387078 16.8207199,20.4387078 C17.465688,20.4387078 17.9904024,19.9139935 17.9904024,19.2690253 C17.9904024,18.6242191 17.465688,18.0995047 16.8207199,18.0995047 Z M4.58909785,3 C4.6054446,3 4.6206584,3.00372253 4.63668145,3.00485547 C4.65869291,3.00631211 4.68038067,3.0079306 4.70174473,3.01132943 C4.72958275,3.0158612 4.75628783,3.02233516 4.78299291,3.02994206 C4.8001489,3.03479753 4.81698119,3.03949115 4.83365164,3.04564141 C4.8622989,3.05616159 4.88948953,3.06862396 4.91619461,3.08254297 L4.956495,3.10439258 C4.98287638,3.12025378 5.00763927,3.13789532 5.03175477,3.15699349 L5.06736154,3.18645 C5.08921115,3.20603373 5.10911857,3.22707409 5.1283786,3.2492474 C5.13986987,3.26251902 5.1511993,3.27562878 5.16171948,3.28970964 C5.17806623,3.31155925 5.19230894,3.33421811 5.2060661,3.35768621 C5.21626258,3.37500405 5.22597352,3.39216004 5.23455152,3.41028712 C5.24555725,3.43326967 5.25462079,3.45706147 5.26319878,3.48150066 C5.27032014,3.50205548 5.27711779,3.52244845 5.28245881,3.54381251 C5.28860907,3.56825171 5.29249345,3.59317645 5.29605412,3.61858673 C5.29799631,3.63299129 5.30252808,3.64642476 5.30382287,3.66115301 L5.510504,6.30738355 L21.2869744,6.30772748 C21.3139222,6.30835464 21.3370666,6.31256272 21.3603729,6.3151523 C21.3861069,6.31790373 21.4120027,6.31936037 21.4369275,6.32486324 C21.4591008,6.32923316 21.4726961,6.33603082 21.4875862,6.34056259 C21.5163953,6.34914058 21.5452044,6.35723303 21.5722332,6.36920985 C21.5918169,6.37778785 21.6092966,6.38911728 21.6275855,6.39931376 C21.6497588,6.41145243 21.6722559,6.42278186 21.6928107,6.43718642 C21.711747,6.45029618 21.7280937,6.46583368 21.7455734,6.48072379 C21.763215,6.49577574 21.7815039,6.51001845 21.7976888,6.52668889 C21.8132263,6.54287379 21.8261742,6.56067718 21.8400932,6.57815686 C21.8551452,6.59676949 21.8706827,6.61473473 21.8836306,6.634804 C21.8954456,6.65293108 21.9043473,6.67251481 21.9145437,6.69161299 C21.9258732,6.71330075 21.9381737,6.73434111 21.9473991,6.75716182 C21.9559771,6.77868773 21.9614799,6.80134658 21.9679539,6.82368174 C21.9744279,6.8456932 21.9820348,6.86705726 21.9864047,6.89003981 C21.9915839,6.91658304 21.9925549,6.94393552 21.994659,6.97128799 C21.9959538,6.98909138 22,7.00608552 22,7.0242126 C21.9988671,7.05496391 21.994659,7.07794646 21.9922312,7.10109086 C21.9894798,7.1269867 21.9880232,7.15320623 21.9825203,7.17813097 L20.5915903,13.2322533 L20.587706,13.2487619 C20.5797754,13.2835594 20.5681222,13.3164147 20.555498,13.3486227 C20.5524229,13.3567151 20.5499951,13.3651313 20.5465963,13.3730619 C20.5299259,13.4117438 20.5096948,13.4483216 20.4870359,13.4827955 C20.4797527,13.4938012 20.4710129,13.5031884 20.4632441,13.5137086 C20.445117,13.5381478 20.4265044,13.5619396 20.4056259,13.5836274 C20.3944583,13.5952805 20.3823196,13.605477 20.3705046,13.6163208 C20.3505972,13.6344479 20.3302043,13.6517658 20.3083546,13.6674651 C20.2941119,13.6778235 20.2795455,13.6872107 20.2646554,13.6964361 C20.2424821,13.7101932 20.2198233,13.7223319 20.1963552,13.7334995 L20.148286,13.7550254 C20.1214191,13.7655456 20.0935811,13.7734762 20.0654194,13.7807594 C20.0513385,13.7843201 20.037905,13.7888518 20.0235005,13.7916033 C19.9798012,13.8000194 19.9351309,13.8053604 19.8898132,13.8053604 L6.09623539,13.8051986 L6.20774933,15.2317353 L19.411064,15.2317353 C19.8069466,15.2317353 20.1278931,15.5528437 20.1278931,15.9487262 C20.1278931,16.3446088 19.8069466,16.6657172 19.411064,16.6657172 L5.54384488,16.6657172 C5.49593759,16.6657172 5.44932509,16.660538 5.40384553,16.6514744 C5.38863173,16.6483993 5.37471272,16.6425728 5.35998446,16.6386884 C5.33052795,16.6307578 5.30090959,16.6231509 5.27290972,16.6116596 C5.25543003,16.6043764 5.23940699,16.5945036 5.22257469,16.5859256 C5.19910659,16.5741106 5.17547665,16.5627812 5.15362704,16.5485385 C5.13711844,16.5376946 5.12255203,16.5249086 5.10701453,16.5127699 C5.08694526,16.4972324 5.06687599,16.4821804 5.04874891,16.4647007 C5.03434435,16.4509436 5.02204383,16.4357298 5.00893406,16.4208397 C4.99226362,16.4019033 4.97575503,16.3834526 4.96118862,16.3628977 C4.94937364,16.3463891 4.93966271,16.3285858 4.92930437,16.3111061 C4.91668015,16.2899039 4.90437963,16.2688635 4.8940213,16.2462046 C4.88511961,16.2267828 4.87832195,16.2065516 4.87103875,16.1861587 C4.86310815,16.163338 4.8553394,16.1406791 4.84967468,16.1168873 C4.84433367,16.0950377 4.84109669,16.0728644 4.83785971,16.0502055 L4.82992911,16.0045641 L3.92600265,4.43381996 L2.7169909,4.43381996 C2.32110834,4.43381996 2,4.11287347 2,3.7169909 C2,3.32094649 2.32110834,3 2.7169909,3 Z", fillRule: "evenodd" }) }));
|
|
1414
1370
|
}
|
|
1415
1371
|
|
|
1416
|
-
var styles$
|
|
1372
|
+
var styles$L = {"manual-input-container":"add-to-cart-button-module-AWFvQ","left-button-spacer":"add-to-cart-button-module-SS7WM"};
|
|
1417
1373
|
|
|
1418
1374
|
function AddToCartButton({ initialState = 'initial', isDisabled = false, onChange, quantity, }) {
|
|
1419
1375
|
const [currentState, setState] = useState(initialState);
|
|
@@ -1501,7 +1457,7 @@ function ManualInputState({ isDisabled, onCancel, onConfirm, quantity, }) {
|
|
|
1501
1457
|
e.key === 'Enter' && onConfirm(ensureNumber(updatedQuantity));
|
|
1502
1458
|
e.key === 'Escape' && onCancel();
|
|
1503
1459
|
};
|
|
1504
|
-
return (jsxs("div", { className: styles$
|
|
1460
|
+
return (jsxs("div", { className: styles$L['manual-input-container'], children: [jsx("div", { className: styles$L['left-button-spacer'] }), jsx(NumberField, { autoFocus: true, autoGrow: true, defaultValue: quantity ? ensureNumber(quantity) : undefined, formatOptions: {
|
|
1505
1461
|
maximumFractionDigits: 0,
|
|
1506
1462
|
style: 'decimal',
|
|
1507
1463
|
useGrouping: false,
|
|
@@ -1551,12 +1507,12 @@ const ConnectedAddToCartButton = ({ onAddToCart, productId }) => {
|
|
|
1551
1507
|
return (jsx(AddToCartButton, { isDisabled: isPendingDeleteCartLine || isLoadingCartLines || isPendingAddToCart, onChange: handleChange, quantity: quantity }));
|
|
1552
1508
|
};
|
|
1553
1509
|
|
|
1554
|
-
var styles$
|
|
1510
|
+
var styles$K = {"tag":"tag-module-B7r15","body":"tag-module-4cfCf","shape":"tag-module-c7CRb"};
|
|
1555
1511
|
|
|
1556
1512
|
function Tag({ children }) {
|
|
1557
1513
|
if (!children)
|
|
1558
1514
|
return null;
|
|
1559
|
-
return (jsxs("div", { className: styles$
|
|
1515
|
+
return (jsxs("div", { className: styles$K.tag, children: [jsx("div", { className: styles$K.body, children: children }), jsx("svg", { className: styles$K.shape, height: "16", viewBox: "0 0 9 16", width: "9", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M1.92461763,0 L0,0 L0,16 L1.92461763,16 L6.4117887,16 L8.87489381,7.57121588 C9.23711515,6.3325062 8.79482383,4.99454094 7.78060408,4.2560794 L1.92461763,0 Z", fill: "currentColor" }) })] }));
|
|
1560
1516
|
}
|
|
1561
1517
|
|
|
1562
1518
|
const IntlContext = createContext({
|
|
@@ -1592,7 +1548,7 @@ function useFormattedMessage() {
|
|
|
1592
1548
|
|
|
1593
1549
|
const FormattedMessage = ({ fallbackValue, id, optional, replacementValues, }) => useFormattedMessage()(id, { fallbackValue, optional, replacementValues });
|
|
1594
1550
|
|
|
1595
|
-
var styles$
|
|
1551
|
+
var styles$J = {"product-price":"product-price-module-oIU1K","original-price":"product-price-module-til0s","is-hidden":"product-price-module-V1NCf","current-price-wrapper":"product-price-module-FfVhl","current-price":"product-price-module-pvy2w","wholes":"product-price-module-GCw07","dot":"product-price-module-N56iV","decimals":"product-price-module-eWOOF","vat":"product-price-module-96DoG"};
|
|
1596
1552
|
|
|
1597
1553
|
const formatPrice = (price) => new Intl.NumberFormat('en-US', {
|
|
1598
1554
|
maximumFractionDigits: 2,
|
|
@@ -1605,22 +1561,22 @@ function ProductPrice({ className, isVatIncluded, originalPrice, price, }) {
|
|
|
1605
1561
|
const priceWithCurrency = formatPrice(price);
|
|
1606
1562
|
const [wholes, decimals] = priceWithCurrency.split('.');
|
|
1607
1563
|
const showOriginalPrice = priceWithCurrency !== originalPriceWithCurrency;
|
|
1608
|
-
return (jsxs("div", { className: clsx(className, styles$
|
|
1609
|
-
[styles$
|
|
1610
|
-
}), children: originalPriceWithCurrency }), jsxs("div", { className: styles$
|
|
1564
|
+
return (jsxs("div", { className: clsx(className, styles$J['product-price']), children: [jsx("span", { className: clsx(styles$J['original-price'], {
|
|
1565
|
+
[styles$J['is-hidden']]: !showOriginalPrice,
|
|
1566
|
+
}), children: originalPriceWithCurrency }), jsxs("div", { className: styles$J['current-price-wrapper'], children: [jsxs("div", { className: styles$J['current-price'], children: [jsx("span", { className: styles$J.wholes, children: wholes }), jsx("span", { className: styles$J.dot, children: "." }), jsx("span", { className: styles$J.decimals, children: decimals })] }), jsx("span", { className: styles$J.vat, children: isVatIncluded ? (jsx(FormattedMessage, { id: "Incl. VAT" })) : (jsx(FormattedMessage, { id: "Excl. VAT" })) })] })] }));
|
|
1611
1567
|
}
|
|
1612
1568
|
|
|
1613
|
-
var styles$
|
|
1569
|
+
var styles$I = {"product-sku":"product-sku-module-ITb8x"};
|
|
1614
1570
|
|
|
1615
1571
|
function ProductSku({ sku }) {
|
|
1616
|
-
return (jsx("p", { className: styles$
|
|
1572
|
+
return (jsx("p", { className: styles$I['product-sku'], "data-test-selector": "productNumber", children: sku }));
|
|
1617
1573
|
}
|
|
1618
1574
|
|
|
1619
1575
|
function isResponsiveImage(image) {
|
|
1620
1576
|
return Boolean(image.lg);
|
|
1621
1577
|
}
|
|
1622
1578
|
|
|
1623
|
-
var styles$
|
|
1579
|
+
var styles$H = {"image":"image-module-lg7Kj","contain":"image-module-KFEgG","cover":"image-module-tVKFe","has-error":"image-module-LM93B","picture":"image-module-pNYjR"};
|
|
1624
1580
|
|
|
1625
1581
|
function Image({ className, fallbackSrc = 'https://res.cloudinary.com/dkz9eknwh/image/upload/v1716545808/images/product-card/fallback_p6ngjz.svg', fit = 'cover', height, image, loading = 'eager', title, width, }) {
|
|
1626
1582
|
const [hasError, setHasError] = useState(false);
|
|
@@ -1647,22 +1603,22 @@ function ImageComponent({ className, fallbackSrc, fit = 'cover', hasError, image
|
|
|
1647
1603
|
const srcSet = !hasError
|
|
1648
1604
|
? `${image[1]} 1x, ${image[2]} 2x, ${image[3]} 3x`
|
|
1649
1605
|
: undefined;
|
|
1650
|
-
return (jsx("img", { alt: image.altText, className: clsx(styles$
|
|
1651
|
-
[styles$
|
|
1606
|
+
return (jsx("img", { alt: image.altText, className: clsx(styles$H.image, className, styles$H[fit], {
|
|
1607
|
+
[styles$H['has-error']]: hasError,
|
|
1652
1608
|
}), src: !hasError ? image[3] : fallbackSrc, srcSet: srcSet, ...rest }));
|
|
1653
1609
|
}
|
|
1654
1610
|
function PictureComponent({ className, fallbackSrc, fit = 'cover', hasError, image, ...rest }) {
|
|
1655
1611
|
if (!isResponsiveImage(image))
|
|
1656
1612
|
return null;
|
|
1657
|
-
return (jsxs("picture", { className: clsx(styles$
|
|
1658
|
-
[styles$
|
|
1613
|
+
return (jsxs("picture", { className: clsx(styles$H.picture, className), children: [jsx("source", { media: "(max-width: 768px)", srcSet: `${image.sm[1]} 1x, ${image.sm[2]} 2x, ${image.sm[3]} 3x` }), jsx("source", { media: "(max-width: 1439px)", srcSet: `${image.md[1]} 1x, ${image.md[2]} 2x, ${image.md[3]} 3x` }), jsx("source", { media: "(min-width: 1440px)", srcSet: `${image.lg[1]} 1x, ${image.lg[2]} 2x, ${image.lg[3]} 3x` }), jsx("img", { className: clsx(styles$H[fit], {
|
|
1614
|
+
[styles$H['has-error']]: hasError,
|
|
1659
1615
|
}), src: !hasError ? image.lg[3] : fallbackSrc, ...rest })] }));
|
|
1660
1616
|
}
|
|
1661
1617
|
|
|
1662
|
-
var styles$
|
|
1618
|
+
var styles$G = {"product-card":"product-card-module-pLaiB","favorite-button":"product-card-module-tvEdz","content":"product-card-module-e0kMu","top":"product-card-module-Q0VvF","tag":"product-card-module-HkWBE","title":"product-card-module-CStNi","bottom":"product-card-module-kD2tU","image":"product-card-module-p-zoi","price":"product-card-module-irW0D","add-to-cart-button":"product-card-module-SnCvX"};
|
|
1663
1619
|
|
|
1664
1620
|
function ProductCard({ addToCartButton: AddToCartButton, areaSelected, favoriteButton: FavoriteButton, href, id, image, onClick, onMouseDown, onMouseMove, onPress, price, role, sku, tags, title, }) {
|
|
1665
|
-
return (jsxs(RouteLink, { "aria-selected": areaSelected, className: styles$
|
|
1621
|
+
return (jsxs(RouteLink, { "aria-selected": areaSelected, className: styles$G['product-card'], "data-product-id": sku, href: href, id: id, onClick: onClick, onMouseDown: onMouseDown, onMouseMove: onMouseMove, onPress: onPress, role: role, children: [jsx("div", { className: styles$G.image, children: jsx(Image, { ...image }) }), jsx("div", { className: styles$G['favorite-button'], children: FavoriteButton && FavoriteButton }), jsxs("div", { className: styles$G.content, children: [jsxs("div", { className: styles$G.top, children: [jsx("div", { className: styles$G.tag, children: tags?.map(tag => (jsx(Tag, { children: jsx(FormattedMessage, { optional: true, fallbackValue: tag, id: `tag.${tag.toLowerCase()}` }) }, tag))) }), jsx("h2", { className: styles$G.title, children: title }), jsx(ProductSku, { sku: sku })] }), jsxs("div", { className: styles$G.bottom, children: [jsx("div", { className: styles$G.price, children: jsx(ProductPrice, { isVatIncluded: price.isVatIncluded, originalPrice: price.originalPrice, price: price.price }) }), jsx("div", { className: styles$G['add-to-cart-button'], children: AddToCartButton })] })] })] }));
|
|
1666
1622
|
}
|
|
1667
1623
|
|
|
1668
1624
|
/**
|
|
@@ -4571,7 +4527,7 @@ function onTouchStart(event) {
|
|
|
4571
4527
|
data.isTouched = false;
|
|
4572
4528
|
}
|
|
4573
4529
|
}
|
|
4574
|
-
if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {
|
|
4530
|
+
if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {
|
|
4575
4531
|
document.activeElement.blur();
|
|
4576
4532
|
}
|
|
4577
4533
|
const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
|
|
@@ -4650,6 +4606,9 @@ function onTouchMove(event) {
|
|
|
4650
4606
|
return;
|
|
4651
4607
|
}
|
|
4652
4608
|
}
|
|
4609
|
+
if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {
|
|
4610
|
+
document.activeElement.blur();
|
|
4611
|
+
}
|
|
4653
4612
|
if (document.activeElement) {
|
|
4654
4613
|
if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {
|
|
4655
4614
|
data.isMoved = true;
|
|
@@ -6585,7 +6544,7 @@ const updateOnVirtualData = swiper => {
|
|
|
6585
6544
|
};
|
|
6586
6545
|
|
|
6587
6546
|
/**
|
|
6588
|
-
* Swiper React 11.1.
|
|
6547
|
+
* Swiper React 11.1.14
|
|
6589
6548
|
* Most modern mobile touch slider and framework with hardware accelerated transitions
|
|
6590
6549
|
* https://swiperjs.com
|
|
6591
6550
|
*
|
|
@@ -6593,7 +6552,7 @@ const updateOnVirtualData = swiper => {
|
|
|
6593
6552
|
*
|
|
6594
6553
|
* Released under the MIT License
|
|
6595
6554
|
*
|
|
6596
|
-
* Released on: September
|
|
6555
|
+
* Released on: September 12, 2024
|
|
6597
6556
|
*/
|
|
6598
6557
|
|
|
6599
6558
|
|
|
@@ -6974,7 +6933,7 @@ function GlyphsArrowBoldCapsLeftIcon(props) {
|
|
|
6974
6933
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "11", viewBox: "0 0 11 11", width: "11", children: jsx("path", { d: "M2.31124163,11 C2.06716529,11 1.91839241,10.7730596 2.04771379,10.5980857 L6.08820761,5.13116556 C6.42092595,4.68081431 6.37243043,4.10595375 5.96732409,3.70073526 L2.70240329,0.432177991 C2.53178078,0.261409485 2.67540212,0 2.93972934,0 L5.48361239,0 C5.57518542,0 5.6619622,0.0340936243 5.72102726,0.0931942463 L8.14882304,2.52367916 C9.1607451,3.53657521 9.28198389,4.9729381 8.45036569,6.09787751 L4.91836426,10.876542 C4.86160851,10.9533653 4.7620417,11 4.65492523,11 L2.31124163,11 Z", fillRule: "evenodd", transform: "matrix(-1 0 0 1 11 0)" }) }));
|
|
6975
6934
|
}
|
|
6976
6935
|
|
|
6977
|
-
var styles$
|
|
6936
|
+
var styles$F = {"carousel":"carousel-module-ealh-","swiper":"carousel-module-IftbN","is-ready":"carousel-module-RCpfc","has-overflow":"carousel-module-tPg7k","slide":"carousel-module-bUMlb","navigation-button":"carousel-module-kcqEE","is-locked":"carousel-module-uCrOA","navigation-button-next":"carousel-module-T7bTr","is-dragging":"carousel-module-34OWD","navigation-button-prev":"carousel-module-984Rr","navigation-buttons":"carousel-module-k7Z4S","navigation-button-wrapper":"carousel-module-Hi-0z","top":"carousel-module-nL-O8","center":"carousel-module-5SGYn"};
|
|
6978
6937
|
|
|
6979
6938
|
function CarouselNavigationButton({ direction, isDisabled = false, }) {
|
|
6980
6939
|
const swiper = useSwiper();
|
|
@@ -6986,48 +6945,47 @@ function CarouselNavigationButton({ direction, isDisabled = false, }) {
|
|
|
6986
6945
|
swiper.slidePrev();
|
|
6987
6946
|
}
|
|
6988
6947
|
}
|
|
6989
|
-
return (jsx(Button$1, { className: clsx(styles$
|
|
6990
|
-
[styles$
|
|
6948
|
+
return (jsx(Button$1, { className: clsx(styles$F['navigation-button'], {
|
|
6949
|
+
[styles$F['is-locked']]: swiper.isLocked,
|
|
6991
6950
|
}), isDisabled: isDisabled, onPress: handleNavigation, children: direction === 'previous' ? (jsx(GlyphsArrowBoldCapsLeftIcon, {})) : (jsx(GlyphsArrowBoldCapsRightIcon, {})) }));
|
|
6992
6951
|
}
|
|
6993
6952
|
|
|
6994
|
-
function Carousel({ breakpoints, className, hasNavigation = true, hasOverflow = true, navigationButtonsPosition = 'top', slideClasses, slides, slidesPerView = 'auto', spaceBetween
|
|
6953
|
+
function Carousel({ breakpoints, className, hasNavigation = true, hasOverflow = true, navigationButtonsPosition = 'top', slideClasses, slides, slidesPerView = 'auto', spaceBetween, }) {
|
|
6995
6954
|
const [isEnd, setIsEnd] = useState(false);
|
|
6996
6955
|
const [isBeginning, setIsBeginning] = useState(true);
|
|
6997
|
-
const [isLocked, setIsLocked] = useState(
|
|
6956
|
+
const [isLocked, setIsLocked] = useState(undefined);
|
|
6998
6957
|
const [isDragging, setIsDragging] = useState(false);
|
|
6958
|
+
const [isReady, setIsReady] = useState(false);
|
|
6999
6959
|
function handleSlideChange(swiper) {
|
|
7000
6960
|
setIsEnd(swiper.isEnd);
|
|
7001
6961
|
setIsLocked(swiper.isLocked);
|
|
7002
|
-
setIsBeginning(swiper.
|
|
6962
|
+
setIsBeginning(swiper.isBeginning);
|
|
7003
6963
|
}
|
|
7004
|
-
const showNavigation = hasNavigation && !isLocked;
|
|
7005
6964
|
if (slides.length === 0)
|
|
7006
6965
|
return null;
|
|
7007
|
-
return (jsx("div", { className: clsx(styles$
|
|
7008
|
-
[styles$
|
|
7009
|
-
[styles$
|
|
6966
|
+
return (jsx("div", { className: clsx(styles$F.carousel, className), children: jsxs(Swiper, { breakpoints: breakpoints, className: clsx(styles$F.swiper, {
|
|
6967
|
+
[styles$F['is-dragging']]: isDragging,
|
|
6968
|
+
[styles$F['has-overflow']]: hasOverflow,
|
|
6969
|
+
[styles$F['is-ready']]: isReady,
|
|
7010
6970
|
}), freeMode: {
|
|
7011
6971
|
enabled: true,
|
|
7012
6972
|
sticky: true,
|
|
7013
|
-
}, modules: [freeMode],
|
|
6973
|
+
}, modules: [freeMode], onReachBeginning: () => setIsBeginning(true), onReachEnd: () => setIsEnd(true), onResize: swiper => setIsLocked(swiper.isLocked), onSlideChange: swiper => handleSlideChange(swiper), onSliderMove: () => setIsDragging(true), onSlidesUpdated: () => {
|
|
6974
|
+
if (!isReady)
|
|
6975
|
+
setIsReady(true);
|
|
6976
|
+
}, onSwiper: swiper => handleSlideChange(swiper), onTouchEnd: () => setIsDragging(false), onUpdate: swiper => handleSlideChange(swiper), slidesPerView: slidesPerView, spaceBetween: spaceBetween, children: [slides.map((slide, index) => (jsx(SwiperSlide, { className: clsx(styles$F.slide, slideClasses), children: slide }, index))), hasNavigation && isLocked === false && (jsxs("div", { className: clsx(styles$F['navigation-buttons'], styles$F[navigationButtonsPosition]), children: [jsx("div", { className: clsx(styles$F['navigation-button-wrapper'], styles$F['navigation-button-prev']), children: jsx(CarouselNavigationButton, { direction: "previous", isDisabled: isBeginning }) }), jsx("div", { className: clsx(styles$F['navigation-button-wrapper'], styles$F['navigation-button-next']), children: jsx(CarouselNavigationButton, { direction: "next", isDisabled: isEnd }) })] }))] }) }));
|
|
7014
6977
|
}
|
|
7015
6978
|
|
|
6979
|
+
var styles$E = {"slide":"category-carousel-module-muLq-"};
|
|
6980
|
+
|
|
7016
6981
|
function CategoryCarousel({ categoryCards }) {
|
|
7017
|
-
return
|
|
7018
|
-
1024: {
|
|
7019
|
-
spaceBetween: 12,
|
|
7020
|
-
},
|
|
7021
|
-
1440: {
|
|
7022
|
-
spaceBetween: 16,
|
|
7023
|
-
},
|
|
7024
|
-
}, slides: categoryCards, spaceBetween: 8 }));
|
|
6982
|
+
return jsx(Carousel, { slideClasses: styles$E.slide, slides: categoryCards });
|
|
7025
6983
|
}
|
|
7026
6984
|
|
|
7027
|
-
var styles$
|
|
6985
|
+
var styles$D = {"accordion":"accordion-module-9WvAH","white":"accordion-module-CaVdG","accordion-item":"accordion-module-lf9d-","lg":"accordion-module-0qnae","with-seperators":"accordion-module-yOLrW","border-top":"accordion-module-J1-Eb","border-bottom":"accordion-module-4LI1K","indented":"accordion-module-6CcEH","button":"accordion-module--Rwpb","icon":"accordion-module-Y50uq","focus":"accordion-module-M4BZs","panel":"accordion-module-KZjMo","content":"accordion-module-ejMH3","is-open":"accordion-module-W0F1z"};
|
|
7028
6986
|
|
|
7029
6987
|
function Accordion({ borderPosition = 'bottom', children, color = 'black', hasLineSeparator = true, indented, size = 'md', }) {
|
|
7030
|
-
return (jsx("div", { className: clsx({ [styles$
|
|
6988
|
+
return (jsx("div", { className: clsx({ [styles$D.indented]: indented }, styles$D.accordion, styles$D[color], styles$D[size], styles$D[`border-${borderPosition}`], hasLineSeparator && styles$D['with-seperators']), children: children &&
|
|
7031
6989
|
Children.map(children, child => {
|
|
7032
6990
|
return cloneElement(child, { size });
|
|
7033
6991
|
}) }));
|
|
@@ -7037,7 +6995,7 @@ function GlyphsChevronsSlimDownIcon(props) {
|
|
|
7037
6995
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "12", viewBox: "0 0 12 12", width: "12", children: jsx("path", { d: "M6,9 L1,4.06645029 C1.08169007,3.87890406 1.19817561,3.69487412 1.34945663,3.51436046 C1.50073764,3.3338468 1.68216803,3.16239331 1.89374779,3 L5.98800959,7.08347812 L9.9960307,3 C10.2121071,3.16649238 10.4031847,3.33794587 10.5692635,3.51436046 C10.7353424,3.69077505 10.8789212,3.87480499 11,4.06645029 L6,9 Z", fillRule: "evenodd" }) }));
|
|
7038
6996
|
}
|
|
7039
6997
|
|
|
7040
|
-
var styles$
|
|
6998
|
+
var styles$C = {"show-all":"show-all-module-BDp21","panel":"show-all-module-bEdda","content":"show-all-module-RF--F","has-transparency":"show-all-module-30y7l","button":"show-all-module-58e7Q","icon":"show-all-module-fqncI","is-open":"show-all-module-hQeGI"};
|
|
7041
6999
|
|
|
7042
7000
|
const ShowAll = ({ children, hasTransparency = true, initialHeight = 0, isOpen, onToggle, }) => {
|
|
7043
7001
|
const showAllRef = useRef(null);
|
|
@@ -7046,14 +7004,14 @@ const ShowAll = ({ children, hasTransparency = true, initialHeight = 0, isOpen,
|
|
|
7046
7004
|
return;
|
|
7047
7005
|
showAllRef.current.style.setProperty('--initital-height', `${initialHeight}px`);
|
|
7048
7006
|
}, [initialHeight]);
|
|
7049
|
-
return (jsxs("div", { ref: showAllRef, className: clsx(styles$
|
|
7050
|
-
[styles$
|
|
7051
|
-
}), children: [jsx("div", { className: styles$
|
|
7052
|
-
[styles$
|
|
7053
|
-
}), children: children }) }), jsxs(RouteLink, { className: styles$
|
|
7007
|
+
return (jsxs("div", { ref: showAllRef, className: clsx(styles$C['show-all'], {
|
|
7008
|
+
[styles$C['is-open']]: isOpen,
|
|
7009
|
+
}), children: [jsx("div", { className: styles$C.panel, children: jsx("div", { className: clsx(styles$C.content, {
|
|
7010
|
+
[styles$C['has-transparency']]: hasTransparency,
|
|
7011
|
+
}), children: children }) }), jsxs(RouteLink, { className: styles$C.button, color: "secondary", onPress: () => onToggle(!isOpen), children: [jsx(GlyphsChevronsSlimDownIcon, { className: styles$C.icon }), isOpen ? (jsx(FormattedMessage, { id: "Show less" })) : (jsx(FormattedMessage, { id: "Show all" }))] })] }));
|
|
7054
7012
|
};
|
|
7055
7013
|
|
|
7056
|
-
var styles$
|
|
7014
|
+
var styles$B = {"multi-select":"multi-select-module-DC7Ix","filter-items":"multi-select-module-cwVFb","hidden":"multi-select-module-o7yHU","filter-item":"multi-select-module-OW-NK"};
|
|
7057
7015
|
|
|
7058
7016
|
function MultiSelect({ amountShown = 3, onChange, options, render, }) {
|
|
7059
7017
|
const shownOptions = options.slice(0, amountShown);
|
|
@@ -7064,28 +7022,28 @@ function MultiSelect({ amountShown = 3, onChange, options, render, }) {
|
|
|
7064
7022
|
options.filter(option => option.isSelected).length === 0) {
|
|
7065
7023
|
return null;
|
|
7066
7024
|
}
|
|
7067
|
-
return (jsxs("div", { className: styles$
|
|
7025
|
+
return (jsxs("div", { className: styles$B['multi-select'], children: [jsx("div", { className: styles$B['filter-items'], children: shownOptions
|
|
7068
7026
|
.concat(isOpen ? [] : hiddenSelectedOptions)
|
|
7069
|
-
.map(option => (jsxs("div", { className: styles$
|
|
7027
|
+
.map(option => (jsxs("div", { className: styles$B['filter-item'], children: [render({ onChange: () => onChange(option), option }), jsxs("span", { children: ["(", option.amount, ")"] })] }, option.value))) }), hiddenOptions.length > 0 && (jsx(ShowAll, { hasTransparency: false, isOpen: isOpen, onToggle: toggle, children: jsx("div", { className: clsx(styles$B['filter-items'], styles$B['hidden']), children: hiddenOptions.map(option => (jsxs("div", { className: styles$B['filter-item'], children: [render({ onChange: () => onChange(option), option }), jsxs("span", { children: ["(", option.amount, ")"] })] }, option.value))) }) }))] }));
|
|
7070
7028
|
}
|
|
7071
7029
|
|
|
7072
|
-
var styles$
|
|
7030
|
+
var styles$A = {"checkbox":"checkbox-module-YNVdd","box":"checkbox-module-UKoyf","checkmark":"checkbox-module-pHIwh","focus":"checkbox-module-v23jy","active":"checkbox-module-7UG-b","color-checkbox":"checkbox-module-nEhvW"};
|
|
7073
7031
|
|
|
7074
7032
|
function Checkbox({ _pseudo = 'none', children, className, isDisabled, isSelected, onChange, value, }) {
|
|
7075
|
-
return (jsxs(Checkbox$1, { className: clsx(className, styles$
|
|
7033
|
+
return (jsxs(Checkbox$1, { className: clsx(className, styles$A.checkbox, styles$A[_pseudo]), isDisabled: isDisabled, isSelected: isSelected, onChange: onChange, value: value, children: [jsx("div", { className: styles$A.box, children: jsx("svg", { "aria-hidden": "true", className: styles$A.checkmark, viewBox: "0 0 18 18", children: jsx("polyline", { points: "1 9 7 14 15 4" }) }) }), children] }));
|
|
7076
7034
|
}
|
|
7077
7035
|
|
|
7078
7036
|
function ColorCheckbox({ _pseudo = 'none', children, className, color, isDisabled, isSelected, onChange, value, }) {
|
|
7079
|
-
return (jsxs(Checkbox$1, { className: clsx(className, styles$
|
|
7037
|
+
return (jsxs(Checkbox$1, { className: clsx(className, styles$A.checkbox, styles$A['color-checkbox'], styles$A[_pseudo]), isDisabled: isDisabled, isSelected: isSelected, onChange: onChange, style: {
|
|
7080
7038
|
'--selected-color': color,
|
|
7081
|
-
}, value: value, children: [jsx("div", { className: styles$
|
|
7039
|
+
}, value: value, children: [jsx("div", { className: styles$A.box }), children] }));
|
|
7082
7040
|
}
|
|
7083
7041
|
|
|
7084
7042
|
function StrokeCheckmarkIcon(props) {
|
|
7085
7043
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "24", viewBox: "0 0 24 24", width: "24", children: jsx("path", { d: "M10.8641425,17 C10.6636971,17 10.4855234,16.9548533 10.3296214,16.8645598 C10.1737194,16.7742664 10.0252413,16.6388262 9.88418708,16.4582393 L6.27839644,12.2189616 C6.09279881,11.9857035 6,11.744921 6,11.496614 C6,11.2332581 6.08723088,11.0094056 6.26169265,10.8250564 C6.43615442,10.6407073 6.65330364,10.5485327 6.91314031,10.5485327 C7.06904232,10.5485327 7.21195249,10.5823928 7.34187082,10.6501129 C7.47178916,10.717833 7.59985152,10.8382242 7.72605791,11.0112867 L10.8195991,14.7200903 L16.2405345,6.53047404 C16.4558278,6.17682468 16.7230883,6 17.0423163,6 C17.2873051,6 17.5081663,6.08088789 17.7048998,6.24266366 C17.9016333,6.40443943 18,6.61700527 18,6.88036117 C18,7.00075245 17.9721604,7.12302483 17.9164811,7.24717833 C17.8608018,7.37133183 17.7958426,7.48984199 17.7216036,7.6027088 L11.7884187,16.4469526 C11.5582777,16.8156509 11.2501856,17 10.8641425,17 Z", fillRule: "evenodd" }) }));
|
|
7086
7044
|
}
|
|
7087
7045
|
|
|
7088
|
-
var styles$
|
|
7046
|
+
var styles$z = {"select":"select-module-ui-Wc","sm":"select-module-44a1l","md":"select-module-QUm-8","solid":"select-module-IRd4F","button":"select-module-aMQIQ","chevron":"select-module-00uRU","focus":"select-module-XMc0P","popover":"select-module-z8cWq","listbox":"select-module-S21ba","header":"select-module-4Bm2j","item":"select-module-LgEJO","check":"select-module-lQFw3"};
|
|
7089
7047
|
|
|
7090
7048
|
function Select({ isDisabled = false, label, onChange, options, placeholder, selectedOption, showLabel = true, size = 'md', variant = 'outline', }) {
|
|
7091
7049
|
const selectRef = useRef(null);
|
|
@@ -7102,12 +7060,12 @@ function Select({ isDisabled = false, label, onChange, options, placeholder, sel
|
|
|
7102
7060
|
window.addEventListener('resize', updateWidth);
|
|
7103
7061
|
return () => window.removeEventListener('resize', updateWidth);
|
|
7104
7062
|
}, []);
|
|
7105
|
-
return (jsxs(Select$1, { ref: selectRef, "aria-label": label, className: clsx(styles$
|
|
7063
|
+
return (jsxs(Select$1, { ref: selectRef, "aria-label": label, className: clsx(styles$z.select, styles$z[size], styles$z[variant]), isDisabled: isDisabled, onSelectionChange: selected => onChange(selected), placeholder: placeholder || label, selectedKey: String(selectedOption), children: [showLabel && jsx(Label, { children: label }), jsxs(Button$1, { className: styles$z.button, children: [jsx(SelectValue, {}), jsx(GlyphsChevronsSlimDownIcon, { "aria-hidden": "true", className: styles$z.chevron })] }), jsx(Popover, { ref: ref =>
|
|
7106
7064
|
// Workaround for react/react-aria #1513
|
|
7107
|
-
ref?.addEventListener('touchend', e => e.preventDefault()), className: clsx(styles$
|
|
7065
|
+
ref?.addEventListener('touchend', e => e.preventDefault()), className: clsx(styles$z.popover, styles$z[variant]), placement: "bottom left", triggerRef: selectRef, children: jsx(ListBox, { className: styles$z.listbox, children: jsxs(Section, { children: [jsx(Header, { className: styles$z.header, children: placeholder || label }), Object.entries(options).map(([key, value]) => (jsxs(ListBoxItem, { "aria-label": value, className: styles$z.item, id: key, textValue: value, children: [selectedOption === key && (jsx("span", { slot: "description", children: jsx(StrokeCheckmarkIcon, { className: styles$z.check }) })), jsx("span", { slot: "label", children: value })] }, key)))] }) }) })] }));
|
|
7108
7066
|
}
|
|
7109
7067
|
|
|
7110
|
-
var styles$
|
|
7068
|
+
var styles$y = {"input-container":"textarea-module-C6Xr1","lg":"textarea-module-vksG-","md":"textarea-module-6JrQJ"};
|
|
7111
7069
|
|
|
7112
7070
|
/**
|
|
7113
7071
|
* This component is used to create a textarea that can grow as the user types.
|
|
@@ -7142,7 +7100,7 @@ const TextArea = forwardRef(({ autoGrow, size, ...textAreaProps }, _ref) => {
|
|
|
7142
7100
|
}
|
|
7143
7101
|
updateHeight();
|
|
7144
7102
|
}, [ref, autoGrow, updateHeight, size]);
|
|
7145
|
-
return (jsx("div", { className: styles$
|
|
7103
|
+
return (jsx("div", { className: styles$y['input-container'], children: jsx(TextArea$1, { ...textAreaProps, ref: node => {
|
|
7146
7104
|
ref.current =
|
|
7147
7105
|
node;
|
|
7148
7106
|
textAreaRef.current = node;
|
|
@@ -7153,7 +7111,7 @@ const TextArea = forwardRef(({ autoGrow, size, ...textAreaProps }, _ref) => {
|
|
|
7153
7111
|
});
|
|
7154
7112
|
TextArea.displayName = 'TextArea';
|
|
7155
7113
|
|
|
7156
|
-
var styles$
|
|
7114
|
+
var styles$x = {"field":"text-field-module-JeaK0"};
|
|
7157
7115
|
|
|
7158
7116
|
/**
|
|
7159
7117
|
* This component is used to create a text field.
|
|
@@ -7161,7 +7119,7 @@ var styles$w = {"field":"text-field-module-JeaK0"};
|
|
|
7161
7119
|
* This field can also grow when a user types in text.
|
|
7162
7120
|
*/
|
|
7163
7121
|
function TextField({ autoFocus, autoGrow, defaultValue, isDisabled, isInvalid, isMultiline, isReadOnly, isRequired, label, maxLength, name, onChange, onInput, onKeyUp, placeholder, rows, showLabel = false, size = 'lg', value, }) {
|
|
7164
|
-
return (jsxs(TextField$1, { "aria-label": label, autoFocus: autoFocus, className: clsx(styles$
|
|
7122
|
+
return (jsxs(TextField$1, { "aria-label": label, autoFocus: autoFocus, className: clsx(styles$x.field, styles$x[size]), defaultValue: defaultValue, isDisabled: isDisabled, isInvalid: isInvalid, isReadOnly: isReadOnly, isRequired: isRequired, maxLength: maxLength, name: name, onChange: value => {
|
|
7165
7123
|
onChange?.(value);
|
|
7166
7124
|
}, onInput: onInput, onKeyUp: e => onKeyUp?.(e), value: value, children: [showLabel && jsx(Label, { isRequired: isRequired, children: label }), isMultiline ? (jsx(TextArea, { autoGrow: autoGrow, placeholder: placeholder, rows: rows, size: size })) : (jsx(Input, { autoGrow: autoGrow, placeholder: placeholder, size: size })), jsx(FieldError, {})] }));
|
|
7167
7125
|
}
|
|
@@ -7171,31 +7129,31 @@ function IntlProvider({ children, formatMessage, languageCode: _languageCode, })
|
|
|
7171
7129
|
return (jsx(IntlContext.Provider, { value: { formatMessage, languageCode, updateLanguageCode }, children: children }));
|
|
7172
7130
|
}
|
|
7173
7131
|
|
|
7174
|
-
var styles$
|
|
7132
|
+
var styles$w = {"progress-circle":"progress-circle-module-4nweP","spin":"progress-circle-module-kCf7K"};
|
|
7175
7133
|
|
|
7176
7134
|
function ProgressCircle({ className }) {
|
|
7177
|
-
return (jsxs("svg", { className: clsx(styles$
|
|
7135
|
+
return (jsxs("svg", { className: clsx(styles$w['progress-circle'], className), viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", children: [jsx("title", { children: "Spinner" }), jsxs("defs", { children: [jsx("pattern", { height: "100%", id: "pattern-1", patternUnits: "objectBoundingBox", width: "100%", children: jsx("use", { xlinkHref: "#image-2" }) }), jsx("image", { height: "24", id: "image-2", width: "24", xlinkHref: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAAB7UlEQVRIDZ2VSaoCQQyG01rOoBtBr+YZXXsFL+BGEHcqDuCE89SPL480hdpiGYil3an/S1KDUavViq/Xq1wul8RPp5Ocz2dhPB6PiR8OB42RAHO5XE7D4zgW/PF4CM/u97tks1n1TCYjURSpB2hraALglw8BQGXOuQQSKk68y+fzL9lRBQAqAUIlVkUoxBUKBZ3sC1irbrdbUoX/PgTyAqDXmFVBBVRCFfYuGMBk67UvRCUA2FFAfgKUSiWhFTgQA9ESjLVgC7NWwEPNFYtFFUEICJnigAxCFbvd7jcAFVi/gbDoCALmOzCMAzebzUILEFculxVgOwcIDqRSqaiTBDadToMhziYDwBgNRmW0rdFoSLPZ1PeDwUDHbz+iTqejyv5VYHuekbVggavVqkLq9fq32hqnLTJxdgmijPQeYSqs1Woa3G63g8QJ1haZKMJkjDgLjLi/Nbvd7m8ARCxry9x2jyn2ej2ZTCb28+tRK/Azpy3vrN/vy2azeffq4zM9aLTFP1jPM4bDoWbPH06o6WXn9/lZgDMxGo1kuVwG/5uhlfkkTsB4PJb5fC7b7VYPH89C7P9GS5nBLYr4er2W/X6vhy4lNPXxR8BisdDWkD13Ee0KtVQAgqvVSncO2XNlc3WEWirAxLmmgf0K+ANZ6DTlvO5jwwAAAABJRU5ErkJggg==" })] }), jsx("g", { fill: "none", fillRule: "evenodd", id: "Page-1", stroke: "none", strokeWidth: "1", children: jsx("path", { d: "M12,0 C18.627417,0 24,5.372583 24,12 C24,14.7277828 23.0855773,17.3196292 21.4324752,19.4188392 C19.1717866,22.2895997 15.7255176,24 12,24 C11.2636203,24 10.6666667,23.4030463 10.6666667,22.6666667 C10.6666667,21.930287 11.2636203,21.3333333 12,21.3333333 C14.8994206,21.3333333 17.5771113,20.0043823 19.3374325,17.7690188 C20.6234737,16.1359252 21.3333333,14.1238938 21.3333333,12 C21.3333333,6.84534234 17.1546577,2.66666667 12,2.66666667 C6.84534234,2.66666667 2.66666667,6.84534234 2.66666667,12 C2.66666667,14.4546154 3.61656005,16.756214 5.28844833,18.485859 C5.80023235,19.015323 5.78589988,19.8594213 5.25643588,20.3712053 C4.72697187,20.8829893 3.88287357,20.8686569 3.37108955,20.3391928 C1.22326178,18.1171666 0,15.1531945 0,12 C0,5.372583 5.372583,0 12,0 Z", fill: "url(#pattern-1)", fillRule: "nonzero", id: "Spinner" }) })] }));
|
|
7178
7136
|
}
|
|
7179
7137
|
|
|
7180
|
-
var styles$
|
|
7138
|
+
var styles$v = {"product-grid":"product-overview-grid-module-bzys-","loading-panel":"product-overview-grid-module-XikkF","fade-in":"product-overview-grid-module-A6CS7","progress-circle":"product-overview-grid-module-DWnnI","fade-in-spinner":"product-overview-grid-module-r-wvY","grid-item":"product-overview-grid-module-MlUVA"};
|
|
7181
7139
|
|
|
7182
7140
|
function ProductOverviewGrid({ children, isLoading, }) {
|
|
7183
|
-
return (jsxs("div", { className: styles$
|
|
7141
|
+
return (jsxs("div", { className: styles$v['product-grid'], children: [Children.map(children, (child, index) => (jsx("div", { className: styles$v['grid-item'], children: child }, index))), isLoading && (jsx("div", { className: styles$v['loading-panel'], children: jsx(ProgressCircle, { className: styles$v['progress-circle'] }) }))] }));
|
|
7184
7142
|
}
|
|
7185
7143
|
|
|
7186
|
-
var styles$
|
|
7144
|
+
var styles$u = {"loading-overlay":"loading-overlay-module-L67Gy"};
|
|
7187
7145
|
|
|
7188
7146
|
function LoadingOverlay() {
|
|
7189
|
-
return (jsx("div", { className: styles$
|
|
7147
|
+
return (jsx("div", { className: styles$u['loading-overlay'], children: jsx(ProgressCircle, {}) }));
|
|
7190
7148
|
}
|
|
7191
7149
|
|
|
7192
|
-
var styles$
|
|
7150
|
+
var styles$t = {"page-container":"page-container-module-PYmbC","inner-page-container":"page-container-module-uD8GF"};
|
|
7193
7151
|
|
|
7194
7152
|
function PageContainer({ children, className, }) {
|
|
7195
|
-
return (jsx("div", { className: styles$
|
|
7153
|
+
return (jsx("div", { className: styles$t['page-container'], children: jsx("div", { className: clsx(styles$t['inner-page-container'], className), children: children }) }));
|
|
7196
7154
|
}
|
|
7197
7155
|
|
|
7198
|
-
var styles$
|
|
7156
|
+
var styles$s = {"heading":"heading-module-pMC65","uppercase":"heading-module-6spgX","italic":"heading-module-XXMDM","bold":"heading-module-xvrxo","xxl":"heading-module-Kn3ZN","xl":"heading-module--hZs-","l":"heading-module-WrJRY","m":"heading-module-hTexc","s":"heading-module-7W29m","xs":"heading-module-SgaLB","xxs":"heading-module-33en7"};
|
|
7199
7157
|
|
|
7200
7158
|
const sizeToTag = {
|
|
7201
7159
|
l: 'h3',
|
|
@@ -7208,29 +7166,190 @@ const sizeToTag = {
|
|
|
7208
7166
|
};
|
|
7209
7167
|
function Heading({ bold = true, children, className, italic, size = 'xxl', tag, uppercase, }) {
|
|
7210
7168
|
return createElement$1(tag || sizeToTag[size], {
|
|
7211
|
-
className: clsx(className, styles$
|
|
7212
|
-
[styles$
|
|
7213
|
-
[styles$
|
|
7214
|
-
[styles$
|
|
7169
|
+
className: clsx(className, styles$s.heading, styles$s[size], {
|
|
7170
|
+
[styles$s.uppercase]: uppercase,
|
|
7171
|
+
[styles$s.italic]: italic,
|
|
7172
|
+
[styles$s.bold]: bold,
|
|
7215
7173
|
}),
|
|
7216
7174
|
}, children);
|
|
7217
7175
|
}
|
|
7218
7176
|
|
|
7219
|
-
var styles$
|
|
7177
|
+
var styles$r = {"page":"page-module-XtZ9Y","breadcrumb":"page-module-ohh9z","title":"page-module-TEmve"};
|
|
7220
7178
|
|
|
7221
7179
|
function PageTitle({ children }) {
|
|
7222
7180
|
const { lg, xxl } = useBreakpoint();
|
|
7223
|
-
return (jsx(Heading, { italic: true, uppercase: true, className: styles$
|
|
7181
|
+
return (jsx(Heading, { italic: true, uppercase: true, className: styles$r.title, size: xxl ? 'xl' : lg ? 'm' : 's', tag: "h1", children: children }));
|
|
7224
7182
|
}
|
|
7225
7183
|
function Page({ breadCrumb, children, className, title }) {
|
|
7226
|
-
return (jsxs(PageContainer, { className: clsx(styles$
|
|
7184
|
+
return (jsxs(PageContainer, { className: clsx(styles$r.page, className), children: [jsx("div", { className: styles$r.breadcrumb, children: jsx(Breadcrumb, { links: breadCrumb }) }), title && jsx(PageTitle, { children: title }), children] }));
|
|
7227
7185
|
}
|
|
7228
7186
|
|
|
7229
|
-
function
|
|
7230
|
-
return (
|
|
7187
|
+
function StrokeCloseboxIcon(props) {
|
|
7188
|
+
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, height: "24", viewBox: "0 0 24 24", width: "24", children: jsx("path", { d: "M8,8 L16,16 M16,8 L8,16", fill: "currentColor", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.4" }) }));
|
|
7189
|
+
}
|
|
7190
|
+
|
|
7191
|
+
var styles$q = {"modal-overlay":"modal-module-rVFJc","modal-fade":"modal-module-63Uyl","modal":"modal-module-6vlFt","modal-zoom":"modal-module-aPJ7X"};
|
|
7192
|
+
|
|
7193
|
+
function Modal({ children, className, isDismissable, isKeyboardDismissDisabled, isOpen, onOpenChange, }) {
|
|
7194
|
+
return (jsx(ModalOverlay, { className: clsx(styles$q['modal-overlay'], className), isDismissable: isDismissable, isKeyboardDismissDisabled: isKeyboardDismissDisabled, isOpen: isOpen, onOpenChange: onOpenChange, children: jsx(Modal$1, { className: styles$q.modal, children: children }) }));
|
|
7195
|
+
}
|
|
7196
|
+
|
|
7197
|
+
var styles$p = {"header":"dialog-module-ZnsAe","heading":"dialog-module-SwpuZ","close":"dialog-module-Y7Tqg","content":"dialog-module-Koqia","footer":"dialog-module-y7Axm"};
|
|
7198
|
+
|
|
7199
|
+
function Footer({ close }) {
|
|
7200
|
+
return (jsx(Button, { onPress: close, size: "md", children: "Close" }));
|
|
7201
|
+
}
|
|
7202
|
+
function Dialog({ allowClose = true, children, className, footer = Footer, hideTitle, isDismissable, isKeyboardDismissDisabled, isOpen, onOpenChange, onSubmit, title, validationErrors, }) {
|
|
7203
|
+
return (jsx(Modal, { className: clsx(styles$p['modal-overlay'], className), isDismissable: isDismissable, isKeyboardDismissDisabled: isKeyboardDismissDisabled, isOpen: isOpen, onOpenChange: onOpenChange, children: jsx(Dialog$1, { "aria-label": title, children: ({ close }) => (jsxs(Form, { onSubmit: onSubmit || (e => e.preventDefault), validationErrors: validationErrors, children: [jsxs("header", { className: styles$p.header, children: [!hideTitle && (jsx(Heading, { className: styles$p.heading, size: "xs", children: title })), jsx("div", { className: styles$p.close, children: jsx(IconButton, { color: "secondary", isDisabled: !allowClose, onPress: close, children: jsx(StrokeCloseboxIcon, {}) }) })] }), jsx("div", { className: styles$p.content, children: children instanceof Function ? children({ close }) : children }), jsx("footer", { className: styles$p.footer, children: footer instanceof Function ? footer({ close }) : footer })] })) }) }));
|
|
7204
|
+
}
|
|
7205
|
+
|
|
7206
|
+
function SignInDialog({ isOpen, onOpenChange }) {
|
|
7207
|
+
const t = useFormattedMessage();
|
|
7208
|
+
const { signInUrl } = useFavorite();
|
|
7209
|
+
return (jsxs(Dialog, { isDismissable: true, isOpen: isOpen, onOpenChange: onOpenChange, title: t('Please Sign In'), children: [t('You must '), jsx(RouteLink, { color: "secondary", href: `${signInUrl}?returnUrl=${encodeURIComponent(window.location.pathname + window.location.search)}`, onPress: () => onOpenChange(false), children: t('sign in') }), t(' to your account to manage your lists.')] }));
|
|
7210
|
+
}
|
|
7211
|
+
|
|
7212
|
+
function ConnectedFavoriteButton({ onFavorite: _onFavorite, productId, }) {
|
|
7213
|
+
const { refetch } = useSession();
|
|
7214
|
+
const isAuthenticated = useIsAuthenticated();
|
|
7215
|
+
const { isFavorite, isFetching, wishList, wishListItem } = useFavoriteProduct(productId);
|
|
7216
|
+
const [showSignInDialog, setShowSignInDialog] = useState(false);
|
|
7217
|
+
const { error, mutate: addWishListItemToCurrentWishList } = useAddWishListItemToCurrentWishList();
|
|
7218
|
+
const { mutate: deleteWishListItemFromWishList } = useDeleteWishListItemFromWishList();
|
|
7219
|
+
function onFavorite() {
|
|
7220
|
+
if (!isAuthenticated) {
|
|
7221
|
+
return setShowSignInDialog(true);
|
|
7222
|
+
}
|
|
7223
|
+
if (wishList && wishListItem) {
|
|
7224
|
+
deleteWishListItemFromWishList({
|
|
7225
|
+
wishListId: wishList.id,
|
|
7226
|
+
wishListItemId: wishListItem.id,
|
|
7227
|
+
});
|
|
7228
|
+
}
|
|
7229
|
+
else {
|
|
7230
|
+
addWishListItemToCurrentWishList({ productId });
|
|
7231
|
+
_onFavorite?.();
|
|
7232
|
+
}
|
|
7233
|
+
}
|
|
7234
|
+
useEffect(() => {
|
|
7235
|
+
if (error instanceof ForbiddenRequestError ||
|
|
7236
|
+
error instanceof UnauthorizedRequestError) {
|
|
7237
|
+
refetch();
|
|
7238
|
+
return setShowSignInDialog(true);
|
|
7239
|
+
}
|
|
7240
|
+
}, [error, refetch]);
|
|
7241
|
+
if (isFetching)
|
|
7242
|
+
return null;
|
|
7243
|
+
return (jsxs(Fragment, { children: [jsx(FavoriteButton, { isDisabled: isFetching, isFavorite: isFavorite, onPress: onFavorite }), jsx(SignInDialog, { isOpen: showSignInDialog, onOpenChange: setShowSignInDialog })] }));
|
|
7244
|
+
}
|
|
7245
|
+
|
|
7246
|
+
function ConnectedProductCard({ onAddToCart, onFavorite, productId, ...props }) {
|
|
7247
|
+
return (jsx(ProductCard, { ...props, addToCartButton: jsx(ConnectedAddToCartButton, { onAddToCart: onAddToCart, productId: productId }), favoriteButton: jsx(ConnectedFavoriteButton, { onFavorite: onFavorite, productId: productId }) }));
|
|
7248
|
+
}
|
|
7249
|
+
|
|
7250
|
+
var styles$o = {"slide":"product-carousel-module-XVTB1"};
|
|
7251
|
+
|
|
7252
|
+
function ProductCarousel({ hasOverflow = false, productCards, }) {
|
|
7253
|
+
return (jsx(Carousel, { hasOverflow: hasOverflow, navigationButtonsPosition: "center", slideClasses: styles$o.slide, slides: productCards, spaceBetween: 16 }));
|
|
7254
|
+
}
|
|
7255
|
+
|
|
7256
|
+
function useLanguageCode() {
|
|
7257
|
+
const { languageCode } = useContext(IntlContext);
|
|
7258
|
+
return languageCode;
|
|
7259
|
+
}
|
|
7260
|
+
|
|
7261
|
+
function ErrorPage({ error }) {
|
|
7262
|
+
useEffect(() => {
|
|
7263
|
+
setTimeout(() => {
|
|
7264
|
+
if (!isRequestError(error))
|
|
7265
|
+
throw error;
|
|
7266
|
+
}, 0);
|
|
7267
|
+
}, [error]);
|
|
7268
|
+
return (jsx(Page, { breadCrumb: [
|
|
7231
7269
|
{ href: '/', label: 'Home' },
|
|
7232
|
-
{ href: '/', label: '
|
|
7233
|
-
], title: "
|
|
7270
|
+
{ href: '/', label: 'Error' },
|
|
7271
|
+
], title: "Something went wrong", children: environment !== 'production' && (jsxs(Fragment, { children: [jsx(Heading, { size: "l", children: isRequestError(error) ? (jsxs(Fragment, { children: [error.status, " - ", error.statusText || 'Unknown error'] })) : (jsx(Fragment, { children: error.message })) }), isRequestError(error) && (jsxs(Fragment, { children: [jsx(Heading, { size: "xs", children: "Error details" }), jsx(Heading, { size: "xxs", children: "Body" }), jsx("pre", { children: JSON.stringify(error.body, null, 2) }), jsx(Heading, { size: "xxs", children: "Options" }), jsx("pre", { children: JSON.stringify(error.options, null, 2) })] }))] })) }));
|
|
7272
|
+
}
|
|
7273
|
+
|
|
7274
|
+
var styles$n = {"product-details-page-layout":"product-details-page-layout-module-IQFIn","top":"product-details-page-layout-module--7oUp","image-gallery":"product-details-page-layout-module-Efavu","product-information":"product-details-page-layout-module-Y2490"};
|
|
7275
|
+
|
|
7276
|
+
function ProductDetailsPageLayout({ imageGallery, included, productInformation, recentlyViewed, usp, }) {
|
|
7277
|
+
return (jsxs("div", { className: styles$n['product-details-page-layout'], children: [jsxs("section", { className: styles$n.top, children: [jsx("div", { className: styles$n['image-gallery'], children: imageGallery }), jsx("div", { className: styles$n['product-information'], children: productInformation })] }), jsx("section", { className: styles$n.usp, children: usp }), jsx("section", { className: styles$n.include, children: included }), jsx("section", { className: styles$n['recently-viewed'], children: recentlyViewed })] }));
|
|
7278
|
+
}
|
|
7279
|
+
|
|
7280
|
+
var styles$m = {"blank-page-spacer":"blank-page-spacer-module-lXxle","loading-overlay":"blank-page-spacer-module-hbxDP"};
|
|
7281
|
+
|
|
7282
|
+
function BlankPageSpacer({ children }) {
|
|
7283
|
+
return jsx("div", { className: styles$m['blank-page-spacer'], children: children });
|
|
7284
|
+
}
|
|
7285
|
+
|
|
7286
|
+
function LoadingPage() {
|
|
7287
|
+
return (jsx(BlankPageSpacer, { children: jsx(LoadingOverlay, {}) }));
|
|
7288
|
+
}
|
|
7289
|
+
|
|
7290
|
+
function useFetchProductDetailsPageData({ languageCode, pageUrl, }) {
|
|
7291
|
+
return useQuery({
|
|
7292
|
+
gcTime: 1 * TIME.DAY,
|
|
7293
|
+
queryFn: async () => {
|
|
7294
|
+
const { body } = await request({
|
|
7295
|
+
headers: { 'Current-Language-Id': languageCode },
|
|
7296
|
+
// url: `${config.BFF_API_URL}/pdp/?pageUrl=${pageUrl}`,
|
|
7297
|
+
// url: `/data/product-details/bff-response.json`,
|
|
7298
|
+
url: `${config.SHOP_API_URL}/pdp/?pageUrl=${pageUrl}`,
|
|
7299
|
+
});
|
|
7300
|
+
return body;
|
|
7301
|
+
},
|
|
7302
|
+
queryKey: ['product-details-page-data', pageUrl, languageCode],
|
|
7303
|
+
staleTime: 1 * TIME.DAY,
|
|
7304
|
+
});
|
|
7305
|
+
}
|
|
7306
|
+
|
|
7307
|
+
function ProductDetailsPage({ pageUrl }) {
|
|
7308
|
+
const languageCode = useLanguageCode();
|
|
7309
|
+
const { data, error, isError, isFetching } = useFetchProductDetailsPageData({
|
|
7310
|
+
languageCode,
|
|
7311
|
+
pageUrl,
|
|
7312
|
+
});
|
|
7313
|
+
if (isError)
|
|
7314
|
+
return jsx(ErrorPage, { error: error });
|
|
7315
|
+
if (!data || isFetching)
|
|
7316
|
+
return jsx(LoadingPage, {});
|
|
7317
|
+
const { breadCrumb, included, product, recentlyViewed } = data;
|
|
7318
|
+
return (jsx(Page, { breadCrumb: breadCrumb, children: jsx(ProductDetailsPageLayout, { imageGallery: jsx("div", { style: {
|
|
7319
|
+
display: 'grid',
|
|
7320
|
+
gap: '1rem',
|
|
7321
|
+
gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))',
|
|
7322
|
+
padding: '1rem',
|
|
7323
|
+
}, children: product.images.map((image, index) => (jsx(Image, { fit: "contain", height: 200, image: image, title: image.altText, width: 200 }, index))) }), included: jsxs("div", { style: {
|
|
7324
|
+
alignItems: 'center',
|
|
7325
|
+
display: 'flex',
|
|
7326
|
+
flexDirection: 'column',
|
|
7327
|
+
padding: '0 1rem 1rem',
|
|
7328
|
+
}, children: [jsx("h1", { style: { marginTop: '0' }, children: "Includes" }), included && (jsx(ProductCarousel, { hasOverflow: true, productCards: included.map(product => (jsx(ConnectedProductCard, { href: product.href, image: {
|
|
7329
|
+
fit: 'contain',
|
|
7330
|
+
image: product.image,
|
|
7331
|
+
title: product.image.altText,
|
|
7332
|
+
}, price: product.price, productId: product.productId, sku: product.sku, tags: product.tags, title: product.title }, product.storefrontId))) }))] }), productInformation: jsxs("div", { style: {
|
|
7333
|
+
padding: '1rem',
|
|
7334
|
+
}, children: [jsx("h1", { children: product.productTitle }), jsx(ProductSku, { sku: product.productNumber }), jsx(ProductPrice, { isVatIncluded: false, originalPrice: product.unitListPrice, price: product.unitListPrice }), product.canAddToCart && (jsx(ConnectedAddToCartButton, { productId: product.storefrontId })), product.canAddToWishlist && (jsx(ConnectedFavoriteButton, { productId: product.storefrontId })), jsx("h2", { children: "Product Features" }), jsx("div", { dangerouslySetInnerHTML: {
|
|
7335
|
+
__html: product.content.htmlContent,
|
|
7336
|
+
} }), jsx("h2", { children: "Specifications" }), jsx("div", { style: {
|
|
7337
|
+
display: 'flex',
|
|
7338
|
+
flexDirection: 'column',
|
|
7339
|
+
}, children: product.attributeTypes.map(attribute => attribute.attributeValues.map(attributeValue => (jsxs("div", { style: { display: 'flex' }, children: [jsx("b", { children: attribute.label }), ":", jsx("span", { children: attributeValue.value })] }, `${attribute.id}-${attributeValue.id}`)))) }), jsx("h2", { children: "Features" }), jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: product.specifications.map(specification => (jsxs("div", { style: { display: 'flex' }, children: [jsx("b", { children: specification.nameDisplay }), ":", jsx("span", { children: specification.value })] }, specification.id))) }), jsx("h2", { children: "Downloads" }), jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: product.documents.map(document => (jsx("a", { href: `${config.SHOP_API_URL}/${document.filePath}`, rel: "noreferrer", target: "_blank", children: document.name }, document.id))) })] }), recentlyViewed: jsxs("div", { style: {
|
|
7340
|
+
padding: '0 1rem 1rem',
|
|
7341
|
+
}, children: [jsx("h1", { style: { marginTop: '0' }, children: "Recently Viewed" }), recentlyViewed && (jsx(ProductCarousel, { hasOverflow: true, productCards: recentlyViewed.map(product => (jsx(ConnectedProductCard, { href: product.href, image: {
|
|
7342
|
+
fit: 'contain',
|
|
7343
|
+
image: product.image,
|
|
7344
|
+
title: product.image.altText,
|
|
7345
|
+
}, price: product.price, productId: product.productId, sku: product.sku, tags: product.tags, title: product.title }, product.storefrontId))) }))] }), usp: jsx("div", { style: {
|
|
7346
|
+
backgroundColor: '#bcbcbc',
|
|
7347
|
+
display: 'grid',
|
|
7348
|
+
fontWeight: 'bold',
|
|
7349
|
+
height: '509px',
|
|
7350
|
+
padding: '1rem',
|
|
7351
|
+
placeItems: 'center',
|
|
7352
|
+
}, children: "Usp" }) }) }));
|
|
7234
7353
|
}
|
|
7235
7354
|
|
|
7236
7355
|
const useSidebar = () => {
|
|
@@ -7276,12 +7395,12 @@ function GlyphsChevronsBoldDownIcon(props) {
|
|
|
7276
7395
|
function AccordionItem({ _pseudo = 'none', children, className, id, initialIsOpen = false, isDisabled = false, size, title, }) {
|
|
7277
7396
|
const { isOpen, toggle } = useDisclosure(initialIsOpen);
|
|
7278
7397
|
const panelId = `panel-${id}`;
|
|
7279
|
-
return (jsxs("div", { className: clsx(className, styles$
|
|
7280
|
-
[styles$
|
|
7281
|
-
}), children: [jsx("h3", { children: jsxs("button", { "aria-controls": panelId, "aria-expanded": isOpen, className: clsx(styles$
|
|
7398
|
+
return (jsxs("div", { className: clsx(className, styles$D['accordion-item'], {
|
|
7399
|
+
[styles$D['is-open']]: isOpen,
|
|
7400
|
+
}), children: [jsx("h3", { children: jsxs("button", { "aria-controls": panelId, "aria-expanded": isOpen, className: clsx(styles$D.button, styles$D[_pseudo]), disabled: isDisabled, id: id, onClick: toggle, type: "button", children: [title, jsx("span", { className: styles$D.icon, children: size === 'lg' ? (jsx(GlyphsChevronsBoldDownIcon, {})) : (jsx(GlyphsChevronsSlimDownIcon, {})) })] }) }), jsx("div", { "aria-labelledby": id, className: styles$D.panel, id: panelId, role: "region", children: jsx("div", { className: styles$D.content, children: children }) })] }));
|
|
7282
7401
|
}
|
|
7283
7402
|
|
|
7284
|
-
var styles$
|
|
7403
|
+
var styles$l = {"filter-section":"filter-section-module-q1Ob8","default":"filter-section-module-JkP09","title":"filter-section-module-hWVv-","with-action":"filter-section-module-9qc6L","header":"filter-section-module-zi2ZE","content":"filter-section-module-15-YW","sm":"filter-section-module-crU-3","md":"filter-section-module-vHRQu","border-top":"filter-section-module-dGcTY"};
|
|
7285
7404
|
|
|
7286
7405
|
function FilterSection({ ...props }) {
|
|
7287
7406
|
const variant = props.variant;
|
|
@@ -7299,16 +7418,16 @@ function FilterSection({ ...props }) {
|
|
|
7299
7418
|
/* eslint-enable @typescript-eslint/no-unnecessary-condition */
|
|
7300
7419
|
}
|
|
7301
7420
|
function CollapsibleFilterSection({ children, gap = 'md', initialIsOpen = true, title, variant, }) {
|
|
7302
|
-
return (jsx("section", { className: clsx(styles$
|
|
7421
|
+
return (jsx("section", { className: clsx(styles$l['filter-section'], styles$l[variant], styles$l[gap]), children: jsx(Accordion, { borderPosition: "top", children: jsx(AccordionItem, { id: title, initialIsOpen: initialIsOpen, title: jsx("span", { className: styles$l['accordion-title'], children: jsx(FormattedMessage, { optional: true, fallbackValue: title, id: `facet.${title.toLowerCase()}` }) }), children: children }) }) }));
|
|
7303
7422
|
}
|
|
7304
7423
|
function WithActionFilterSection({ button, children, gap = 'md', title, variant, }) {
|
|
7305
|
-
return (jsxs("section", { className: clsx(styles$
|
|
7424
|
+
return (jsxs("section", { className: clsx(styles$l['filter-section'], styles$l[variant], styles$l[gap]), children: [jsxs("div", { className: styles$l.header, children: [jsx("h3", { className: styles$l.title, children: title }), jsx("div", { children: button })] }), jsx("div", { className: styles$l.content, children: children })] }));
|
|
7306
7425
|
}
|
|
7307
7426
|
function DefaultFilterSection({ children, gap = 'md', title, variant, }) {
|
|
7308
|
-
return (jsxs("section", { className: clsx(styles$
|
|
7427
|
+
return (jsxs("section", { className: clsx(styles$l['filter-section'], styles$l[variant], styles$l[gap]), children: [jsx("h3", { className: styles$l.title, children: title }), jsx("div", { className: styles$l.content, children: children })] }));
|
|
7309
7428
|
}
|
|
7310
7429
|
|
|
7311
|
-
var styles$
|
|
7430
|
+
var styles$k = {"filter-panel":"algolia-filter-panel-module-GfhOO","scroll-container":"algolia-filter-panel-module-4ubB1","category":"algolia-filter-panel-module-LKet3","is-active":"algolia-filter-panel-module-yf8kI","value":"algolia-filter-panel-module-gQzED","count":"algolia-filter-panel-module-uAHPx","button":"algolia-filter-panel-module-ABOYv"};
|
|
7312
7431
|
|
|
7313
7432
|
function AlgoliaActiveCategories() {
|
|
7314
7433
|
const { items: categories } = useHierarchicalMenu({
|
|
@@ -7330,23 +7449,19 @@ function Categories({ categories, path: _path, }) {
|
|
|
7330
7449
|
const categorySlug = category.label.toLowerCase().replace(/ /g, '-');
|
|
7331
7450
|
const path = `${_path}/${categorySlug}`;
|
|
7332
7451
|
const isActive = !category.data || !category.data.some(c => c.isRefined);
|
|
7333
|
-
return (jsxs(Fragment, { children: [jsxs(RouteLink, { hasUnderline: true, className: clsx(styles$
|
|
7334
|
-
[styles$
|
|
7452
|
+
return (jsxs(Fragment, { children: [jsxs(RouteLink, { hasUnderline: true, className: clsx(styles$k.category, {
|
|
7453
|
+
[styles$k['is-active']]: isActive,
|
|
7335
7454
|
}), href: path, isDisabled: isActive, children: [jsx(StrokeCategoriesIcon, { height: 24, width: 24 }), jsx("span", { children: category.label })] }), category.data && (jsx(Categories, { categories: category.data, path: path }))] }, category.value));
|
|
7336
7455
|
});
|
|
7337
7456
|
}
|
|
7338
7457
|
|
|
7339
|
-
|
|
7340
|
-
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, height: "24", viewBox: "0 0 24 24", width: "24", children: jsx("path", { d: "M8,8 L16,16 M16,8 L8,16", fill: "currentColor", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.4" }) }));
|
|
7341
|
-
}
|
|
7342
|
-
|
|
7343
|
-
var styles$n = {"active-filter-item":"active-filters-module-Rrmhy","category":"active-filters-module-u9TTE","active-filter-value":"active-filters-module-CIuPU"};
|
|
7458
|
+
var styles$j = {"active-filter-item":"active-filters-module-Rrmhy","category":"active-filters-module-u9TTE","active-filter-value":"active-filters-module-CIuPU"};
|
|
7344
7459
|
|
|
7345
7460
|
const ActiveFilters = ({ onClearAllFilters, onClearFilter, selectedFilterCategories, }) => {
|
|
7346
7461
|
const t = useFormattedMessage();
|
|
7347
7462
|
if (selectedFilterCategories.length === 0)
|
|
7348
7463
|
return null;
|
|
7349
|
-
return (jsx(FilterSection, { button: jsx(RouteLink, { onPress: onClearAllFilters, children: jsx(FormattedMessage, { id: "Clear filters" }) }), title: t('Chosen filters'), variant: "with-action", children: selectedFilterCategories.map((category, index) => (jsx("section", { className: styles$
|
|
7464
|
+
return (jsx(FilterSection, { button: jsx(RouteLink, { onPress: onClearAllFilters, children: jsx(FormattedMessage, { id: "Clear filters" }) }), title: t('Chosen filters'), variant: "with-action", children: selectedFilterCategories.map((category, index) => (jsx("section", { className: styles$j.category, children: category.filters.map(filter => (jsxs("div", { className: styles$j['active-filter-item'], children: [jsxs("span", { children: [jsxs("span", { children: [jsx(FormattedMessage, { id: `facet.${category.label.toLowerCase()}` }), jsx("span", { children: ": " })] }), jsx("span", { className: styles$j['active-filter-value'], children: filter.label })] }), jsx(IconButton, { color: "secondary", onPress: () => onClearFilter(category.label, filter), children: jsx(StrokeCloseboxIcon, {}) })] }, `${category.label}-${filter.value}`))) }, `${category.label}-${index}`))) }));
|
|
7350
7465
|
};
|
|
7351
7466
|
|
|
7352
7467
|
function AlgoliaActiveFilters() {
|
|
@@ -7387,9 +7502,9 @@ function AlgoliaCategoriesFilters() {
|
|
|
7387
7502
|
const t = useFormattedMessage();
|
|
7388
7503
|
if (categories.length <= 0)
|
|
7389
7504
|
return null;
|
|
7390
|
-
return (jsx(FilterSection, { title: t('facet.categories'), variant: "default", children: categories.map(({ count, isRefined, value }) => (jsxs(Link, { className: clsx(styles$
|
|
7391
|
-
[styles$
|
|
7392
|
-
}), isDisabled: isRefined, onClick: () => refine(value), children: [jsx("span", { className: styles$
|
|
7505
|
+
return (jsx(FilterSection, { title: t('facet.categories'), variant: "default", children: categories.map(({ count, isRefined, value }) => (jsxs(Link, { className: clsx(styles$k.category, {
|
|
7506
|
+
[styles$k['is-active']]: isRefined,
|
|
7507
|
+
}), isDisabled: isRefined, onClick: () => refine(value), children: [jsx("span", { className: styles$k.value, children: value }), ' ', jsxs("span", { className: styles$k.count, children: ["(", count, ")"] })] }, value))) }));
|
|
7393
7508
|
}
|
|
7394
7509
|
|
|
7395
7510
|
function AlgoliaDummyRefinementListConsumer() {
|
|
@@ -7441,7 +7556,7 @@ const MULTISELECT_ATTRIBUTE_IGNORE_LIST = [
|
|
|
7441
7556
|
];
|
|
7442
7557
|
function PanelCloseButton() {
|
|
7443
7558
|
const { close } = useSidebarActions();
|
|
7444
|
-
return (jsx("div", { className: styles$
|
|
7559
|
+
return (jsx("div", { className: styles$k.button, children: jsxs(Button, { withArrow: true, onPress: close, size: "md", children: [jsx(FormattedMessage, { id: "Show" }), " ", jsx(AlgoliaResultsCount, {})] }) }));
|
|
7445
7560
|
}
|
|
7446
7561
|
function AlgoliaFilterPanel({ showActiveCategories = false, showCategoriesFilters = false, }) {
|
|
7447
7562
|
/*
|
|
@@ -7456,7 +7571,7 @@ function AlgoliaFilterPanel({ showActiveCategories = false, showCategoriesFilter
|
|
|
7456
7571
|
facets: ['*'],
|
|
7457
7572
|
maxValuesPerFacet: 100,
|
|
7458
7573
|
});
|
|
7459
|
-
return (jsx("div", { className: styles$
|
|
7574
|
+
return (jsx("div", { className: styles$k['filter-panel'], children: jsxs("div", { className: styles$k['scroll-container'], children: [showActiveCategories && jsx(AlgoliaActiveCategories, {}), showCategoriesFilters && jsx(AlgoliaCategoriesFilters, {}), jsx(AlgoliaActiveFilters, {}), attributesToRender.length === 0 ? (jsx(AlgoliaDummyRefinementListConsumer, {})) : (jsx("section", { children: attributesToRender
|
|
7460
7575
|
.filter(attribute => !MULTISELECT_ATTRIBUTE_IGNORE_LIST.includes(attribute))
|
|
7461
7576
|
.map((attribute, index) => {
|
|
7462
7577
|
return (jsx(AlgoliaMultiSelectFilterSection, { attribute: attribute }, `attribute-${index}`));
|
|
@@ -7467,10 +7582,10 @@ function GlyphsChevronsSlimRightIcon(props) {
|
|
|
7467
7582
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "12", viewBox: "0 0 12 12", width: "12", children: jsx("path", { d: "M9,6 L4.06645029,1 C3.87890406,1.08169007 3.69487412,1.19817561 3.51436046,1.34945663 C3.3338468,1.50073764 3.16239331,1.68216803 3,1.89374779 L7.08347812,5.98800959 L3,9.9960307 C3.16649238,10.2121071 3.33794587,10.4031847 3.51436046,10.5692635 C3.69077505,10.7353424 3.87480499,10.8789212 4.06645029,11 L9,6 Z", fillRule: "evenodd" }) }));
|
|
7468
7583
|
}
|
|
7469
7584
|
|
|
7470
|
-
var styles$
|
|
7585
|
+
var styles$i = {"pagination":"pagination-module-k4OgY","page-number-container":"pagination-module-oq89A"};
|
|
7471
7586
|
|
|
7472
7587
|
function Pagination({ currentPage, onChange, totalPages, }) {
|
|
7473
|
-
return (jsxs("div", { className: styles$
|
|
7588
|
+
return (jsxs("div", { className: styles$i.pagination, children: [jsx(IconButton, { isDisabled: currentPage === 1, onPress: () => onChange(currentPage - 1), children: jsx(GlyphsChevronsSlimLeftIcon, {}) }), jsxs("div", { className: styles$i['page-number-container'], children: [jsx(NumberField, { autoGrow: true, label: "current-page", maxValue: totalPages, minValue: 1, onChange: onChange, value: currentPage }), jsx(FormattedMessage, { id: "of" }), jsx("div", { children: totalPages })] }), jsx(IconButton, { isDisabled: currentPage >= totalPages, onPress: () => onChange(currentPage + 1), children: jsx(GlyphsChevronsSlimRightIcon, {}) })] }));
|
|
7474
7589
|
}
|
|
7475
7590
|
|
|
7476
7591
|
function AlgoliaPagination({ onChange }) {
|
|
@@ -7806,11 +7921,6 @@ const createSonicSearchClient = ({ apiKey, appId, host, }) => {
|
|
|
7806
7921
|
return searchClient;
|
|
7807
7922
|
};
|
|
7808
7923
|
|
|
7809
|
-
function useLanguageCode() {
|
|
7810
|
-
const { languageCode } = useContext(IntlContext);
|
|
7811
|
-
return languageCode;
|
|
7812
|
-
}
|
|
7813
|
-
|
|
7814
7924
|
function AlgoliaSortBy() {
|
|
7815
7925
|
const languageCode = useLanguageCode();
|
|
7816
7926
|
const algoliaIndex = getAlgoliaIndex(environment, languageCode);
|
|
@@ -7830,12 +7940,12 @@ function AlgoliaSortBy() {
|
|
|
7830
7940
|
return (jsx(Select, { label: t('Sort by'), onChange: value => refine(String(value)), options: options, selectedOption: currentRefinement, showLabel: false, size: "sm" }));
|
|
7831
7941
|
}
|
|
7832
7942
|
|
|
7833
|
-
var styles$
|
|
7943
|
+
var styles$h = {"category-card":"category-card-module-4NUjH","title":"category-card-module-LEhh3","arrow":"category-card-module-hL4-A","is-selected":"category-card-module-vJ7vB","image-container":"category-card-module-oNTrK"};
|
|
7834
7944
|
|
|
7835
7945
|
function CategoryCard({ href, image, isSelected = false, onClick, title, withArrow = false, }) {
|
|
7836
7946
|
return (jsxs(RouteLink, { className: clsx({
|
|
7837
|
-
[styles$
|
|
7838
|
-
}, styles$
|
|
7947
|
+
[styles$h['is-selected']]: isSelected,
|
|
7948
|
+
}, styles$h['category-card']), href: href, onClick: onClick, children: [jsx("div", { className: styles$h['image-container'], children: jsx(Image, { ...image, fit: "contain" }) }), jsxs("p", { className: styles$h.title, children: [jsx("span", { children: title }), withArrow && jsx(GlyphsArrowBoldCapsRightIcon, { className: styles$h.arrow })] })] }));
|
|
7839
7949
|
}
|
|
7840
7950
|
|
|
7841
7951
|
const ProductListingPageContext = createContext({
|
|
@@ -7864,26 +7974,71 @@ function ConnectedCategoryCarousel() {
|
|
|
7864
7974
|
}, title: category.title }, index))) }));
|
|
7865
7975
|
}
|
|
7866
7976
|
|
|
7867
|
-
var styles$
|
|
7868
|
-
|
|
7869
|
-
function BlankPageSpacer({ children }) {
|
|
7870
|
-
return jsx("div", { className: styles$k['blank-page-spacer'], children: children });
|
|
7871
|
-
}
|
|
7872
|
-
|
|
7873
|
-
var styles$j = {"promo-card":"promo-card-module-e2oii","sm":"promo-card-module-1-jT0","lg":"promo-card-module-zIYDh"};
|
|
7977
|
+
var styles$g = {"promo-card":"promo-card-module-e2oii","sm":"promo-card-module-1-jT0","lg":"promo-card-module-zIYDh"};
|
|
7874
7978
|
|
|
7875
7979
|
function PromoCard({ href, image, variant }) {
|
|
7876
|
-
return (jsx(RouteLink, { className: clsx(styles$
|
|
7980
|
+
return (jsx(RouteLink, { className: clsx(styles$g['promo-card'], styles$g[variant]), href: href, children: jsx(Image, { fit: "cover", image: image, title: image.altText }) }));
|
|
7877
7981
|
}
|
|
7878
7982
|
|
|
7879
|
-
var styles$
|
|
7983
|
+
var styles$f = {"promos":"promo-cards-module-Dy4p3"};
|
|
7880
7984
|
|
|
7881
|
-
function PromoCards({ promoCardsData = []
|
|
7985
|
+
function PromoCards({ promoCardsData = [] }) {
|
|
7882
7986
|
const { lg } = useBreakpoint();
|
|
7883
7987
|
const promoCards = promoCardsData.map((promoCard, index) => (jsx(PromoCard, { href: promoCard.href, image: promoCard.image, variant: index % 2 === 0 ? 'lg' : 'sm' }, `promo-card-${index}`)));
|
|
7884
7988
|
if (promoCardsData.length === 0)
|
|
7885
7989
|
return null;
|
|
7886
|
-
return (jsx("div", { className: styles$
|
|
7990
|
+
return (jsx("div", { className: styles$f.promos, children: lg ? (jsx(Fragment, { children: promoCards })) : (jsx(Carousel, { hasNavigation: false, hasOverflow: false, slides: promoCards, spaceBetween: 16 })) }));
|
|
7991
|
+
}
|
|
7992
|
+
|
|
7993
|
+
function useFetchProductListingPageData({ languageCode, pageUrl, }) {
|
|
7994
|
+
return useQuery({
|
|
7995
|
+
gcTime: 1 * TIME.DAY,
|
|
7996
|
+
queryFn: async () => {
|
|
7997
|
+
return request({
|
|
7998
|
+
headers: { 'Current-Language-Id': languageCode },
|
|
7999
|
+
url: `${config.BFF_API_URL}/plp/?pageUrl=${pageUrl}`,
|
|
8000
|
+
});
|
|
8001
|
+
},
|
|
8002
|
+
queryKey: ['product-listing-page-data', pageUrl, languageCode],
|
|
8003
|
+
select: ({ body }) => {
|
|
8004
|
+
return {
|
|
8005
|
+
breadCrumb: body.breadCrumb.map(breadCrumb => ({
|
|
8006
|
+
href: breadCrumb.url,
|
|
8007
|
+
label: breadCrumb.text,
|
|
8008
|
+
})),
|
|
8009
|
+
category: body.categories
|
|
8010
|
+
? {
|
|
8011
|
+
href: body.categories.path,
|
|
8012
|
+
image: {
|
|
8013
|
+
1: body.categories.smallImagePath,
|
|
8014
|
+
2: body.categories.smallImagePath,
|
|
8015
|
+
3: body.categories.smallImagePath,
|
|
8016
|
+
altText: body.categories.imageAltText,
|
|
8017
|
+
},
|
|
8018
|
+
title: body.categories.shortDescription,
|
|
8019
|
+
}
|
|
8020
|
+
: undefined,
|
|
8021
|
+
categoryPages: body.categoryPages,
|
|
8022
|
+
hierarchicalCategories: body.hierarchicalCategories,
|
|
8023
|
+
promoCards: body.promoCards
|
|
8024
|
+
? {
|
|
8025
|
+
top: body.promoCards.top || undefined,
|
|
8026
|
+
}
|
|
8027
|
+
: undefined,
|
|
8028
|
+
subcategories: body.categories?.subCategories?.map(subcategory => ({
|
|
8029
|
+
href: subcategory.path,
|
|
8030
|
+
image: {
|
|
8031
|
+
1: subcategory.smallImagePath,
|
|
8032
|
+
2: subcategory.smallImagePath,
|
|
8033
|
+
3: subcategory.smallImagePath,
|
|
8034
|
+
altText: subcategory.imageAltText,
|
|
8035
|
+
},
|
|
8036
|
+
title: subcategory.shortDescription,
|
|
8037
|
+
})),
|
|
8038
|
+
};
|
|
8039
|
+
},
|
|
8040
|
+
staleTime: 1 * TIME.DAY,
|
|
8041
|
+
});
|
|
7887
8042
|
}
|
|
7888
8043
|
|
|
7889
8044
|
const scrollToTop = (scrollOptions) => {
|
|
@@ -7893,17 +8048,17 @@ const scrollToTop = (scrollOptions) => {
|
|
|
7893
8048
|
});
|
|
7894
8049
|
};
|
|
7895
8050
|
|
|
7896
|
-
var styles$
|
|
8051
|
+
var styles$e = {"sidebar":"sidebar-module-fSa9Q","is-docked":"sidebar-module-AIq0M","transition":"sidebar-module-LEZgg","is-open":"sidebar-module-lV7wp","is-closed":"sidebar-module-dGDrr","close":"sidebar-module-2puGC","is-not-docked":"sidebar-module-Scw7D"};
|
|
7897
8052
|
|
|
7898
8053
|
function InnerSidebar({ children }) {
|
|
7899
8054
|
const { isDocked, isOpen, toggle, transition } = useSidebar();
|
|
7900
|
-
return (jsxs("aside", { className: clsx(styles$
|
|
7901
|
-
[styles$
|
|
7902
|
-
[styles$
|
|
7903
|
-
[styles$
|
|
7904
|
-
[styles$
|
|
7905
|
-
[styles$
|
|
7906
|
-
}), children: [jsx("div", { className: styles$
|
|
8055
|
+
return (jsxs("aside", { className: clsx(styles$e.sidebar, {
|
|
8056
|
+
[styles$e['transition']]: transition,
|
|
8057
|
+
[styles$e['is-open']]: isOpen,
|
|
8058
|
+
[styles$e['is-closed']]: !isOpen,
|
|
8059
|
+
[styles$e['is-docked']]: isDocked,
|
|
8060
|
+
[styles$e['is-not-docked']]: !isDocked,
|
|
8061
|
+
}), children: [jsx("div", { className: styles$e.close, children: jsx(IconButton, { color: "secondary", onPress: toggle, children: jsx(StrokeCloseboxIcon, {}) }) }), children] }));
|
|
7907
8062
|
}
|
|
7908
8063
|
function Sidebar({ children }) {
|
|
7909
8064
|
return jsx(InnerSidebar, { children: children });
|
|
@@ -7918,11 +8073,11 @@ const ToggleSidebarButton = () => {
|
|
|
7918
8073
|
return (jsx(Button, { color: "secondary", icon: jsx(StrokeFilterIcon, {}), onPress: toggle, size: "sm", variant: "outline", children: isOpen ? (jsx(FormattedMessage, { id: "Hide filters" })) : (jsx(FormattedMessage, { id: "Show filters" })) }));
|
|
7919
8074
|
};
|
|
7920
8075
|
|
|
7921
|
-
var styles$
|
|
8076
|
+
var styles$d = {"no-results":"no-results-module-T1cti","title":"no-results-module-mZ8TQ","body":"no-results-module-FQGhC","buttons":"no-results-module-QGZsD"};
|
|
7922
8077
|
|
|
7923
8078
|
function NoResults$1({ content, title }) {
|
|
7924
8079
|
const { lg } = useBreakpoint();
|
|
7925
|
-
return (jsxs("div", { className: styles$
|
|
8080
|
+
return (jsxs("div", { className: styles$d['no-results'], children: [jsx(Heading, { bold: false, className: styles$d.title, size: lg ? 's' : 'xs', tag: "h2", children: title }), jsx("p", { className: styles$d.body, children: content }), jsx("div", { className: styles$d.buttons, children: jsx(RouteButton, { withArrow: true, href: `${config.SHOP_API_URL}`, size: "md", children: jsx(FormattedMessage, { id: "Continue shopping" }) }) })] }));
|
|
7926
8081
|
}
|
|
7927
8082
|
|
|
7928
8083
|
function getCookies() {
|
|
@@ -8134,57 +8289,6 @@ function useAlgoliaInsights() {
|
|
|
8134
8289
|
sendEvents: Parameters<ReturnType<typeof makeSendEvents>>;
|
|
8135
8290
|
*/
|
|
8136
8291
|
|
|
8137
|
-
var styles$f = {"modal-overlay":"modal-module-rVFJc","modal-fade":"modal-module-63Uyl","modal":"modal-module-6vlFt","modal-zoom":"modal-module-aPJ7X"};
|
|
8138
|
-
|
|
8139
|
-
function Modal({ children, className, isDismissable, isKeyboardDismissDisabled, isOpen, onOpenChange, }) {
|
|
8140
|
-
return (jsx(ModalOverlay, { className: clsx(styles$f['modal-overlay'], className), isDismissable: isDismissable, isKeyboardDismissDisabled: isKeyboardDismissDisabled, isOpen: isOpen, onOpenChange: onOpenChange, children: jsx(Modal$1, { className: styles$f.modal, children: children }) }));
|
|
8141
|
-
}
|
|
8142
|
-
|
|
8143
|
-
var styles$e = {"header":"dialog-module-ZnsAe","heading":"dialog-module-SwpuZ","close":"dialog-module-Y7Tqg","content":"dialog-module-Koqia","footer":"dialog-module-y7Axm"};
|
|
8144
|
-
|
|
8145
|
-
function Footer({ close }) {
|
|
8146
|
-
return (jsx(Button, { onPress: close, size: "md", children: "Close" }));
|
|
8147
|
-
}
|
|
8148
|
-
function Dialog({ allowClose = true, children, className, footer = Footer, hideTitle, isDismissable, isKeyboardDismissDisabled, isOpen, onOpenChange, onSubmit, title, validationErrors, }) {
|
|
8149
|
-
return (jsx(Modal, { className: clsx(styles$e['modal-overlay'], className), isDismissable: isDismissable, isKeyboardDismissDisabled: isKeyboardDismissDisabled, isOpen: isOpen, onOpenChange: onOpenChange, children: jsx(Dialog$1, { "aria-label": title, children: ({ close }) => (jsxs(Form, { onSubmit: onSubmit || (e => e.preventDefault), validationErrors: validationErrors, children: [jsxs("header", { className: styles$e.header, children: [!hideTitle && (jsx(Heading, { className: styles$e.heading, size: "xs", children: title })), jsx("div", { className: styles$e.close, children: jsx(IconButton, { color: "secondary", isDisabled: !allowClose, onPress: close, children: jsx(StrokeCloseboxIcon, {}) }) })] }), jsx("div", { className: styles$e.content, children: children instanceof Function ? children({ close }) : children }), jsx("footer", { className: styles$e.footer, children: footer instanceof Function ? footer({ close }) : footer })] })) }) }));
|
|
8150
|
-
}
|
|
8151
|
-
|
|
8152
|
-
function SignInDialog({ isOpen, onOpenChange }) {
|
|
8153
|
-
const t = useFormattedMessage();
|
|
8154
|
-
const { signInUrl } = useFavorite();
|
|
8155
|
-
return (jsxs(Dialog, { isDismissable: true, isOpen: isOpen, onOpenChange: onOpenChange, title: t('Please Sign In'), children: [t('You must '), jsx(RouteLink, { color: "secondary", href: `${signInUrl}?returnUrl=${encodeURIComponent(window.location.pathname + window.location.search)}`, onPress: () => onOpenChange(false), children: t('sign in') }), t(' to your account to manage your lists.')] }));
|
|
8156
|
-
}
|
|
8157
|
-
|
|
8158
|
-
function ConnectedFavoriteButton({ onFavorite: _onFavorite, productId, }) {
|
|
8159
|
-
const { isFavorite, isFetching, wishList, wishListItem } = useFavoriteProduct(productId);
|
|
8160
|
-
const isAuthenticated = useIsAuthenticated();
|
|
8161
|
-
const [showSignInDialog, setShowSignInDialog] = useState(false);
|
|
8162
|
-
const { mutate: addWishListItemToCurrentWishList } = useAddWishListItemToCurrentWishList();
|
|
8163
|
-
const { mutate: deleteWishListItemFromWishList } = useDeleteWishListItemFromWishList();
|
|
8164
|
-
function onFavorite() {
|
|
8165
|
-
if (!isAuthenticated) {
|
|
8166
|
-
return setShowSignInDialog(true);
|
|
8167
|
-
}
|
|
8168
|
-
if (wishList && wishListItem) {
|
|
8169
|
-
deleteWishListItemFromWishList({
|
|
8170
|
-
wishListId: wishList.id,
|
|
8171
|
-
wishListItemId: wishListItem.id,
|
|
8172
|
-
});
|
|
8173
|
-
}
|
|
8174
|
-
else {
|
|
8175
|
-
addWishListItemToCurrentWishList({ productId });
|
|
8176
|
-
_onFavorite?.();
|
|
8177
|
-
}
|
|
8178
|
-
}
|
|
8179
|
-
if (isFetching)
|
|
8180
|
-
return null;
|
|
8181
|
-
return (jsxs(Fragment, { children: [jsx(FavoriteButton, { isDisabled: isFetching, isFavorite: isFavorite, onPress: onFavorite }), jsx(SignInDialog, { isOpen: showSignInDialog, onOpenChange: setShowSignInDialog })] }));
|
|
8182
|
-
}
|
|
8183
|
-
|
|
8184
|
-
function ConnectedProductCard({ onAddToCart, onFavorite, productId, ...props }) {
|
|
8185
|
-
return (jsx(ProductCard, { ...props, addToCartButton: jsx(ConnectedAddToCartButton, { onAddToCart: onAddToCart, productId: productId }), favoriteButton: jsx(ConnectedFavoriteButton, { onFavorite: onFavorite, productId: productId }) }));
|
|
8186
|
-
}
|
|
8187
|
-
|
|
8188
8292
|
function ProductListingProductOverview() {
|
|
8189
8293
|
const { isLoading, products } = useAlgoliaProductHits();
|
|
8190
8294
|
const { sendAddToCartFromProductListPageEvent, sendAddToWishListFromProductListPageEvent, sendProductClickFromProductListPageEvent, } = useAlgoliaInsights();
|
|
@@ -8207,7 +8311,7 @@ function ProductListingProductOverview() {
|
|
|
8207
8311
|
}, productId: product.storefrontId, sku: product.id, tags: product.labels, title: product.name }, product.storefrontId))) }));
|
|
8208
8312
|
}
|
|
8209
8313
|
|
|
8210
|
-
var styles$
|
|
8314
|
+
var styles$c = {"product-listing":"product-listing-page-module-dmIHF","header":"product-listing-page-module-Oz76Z","promos":"product-listing-page-module-iY1yj","action-bar":"product-listing-page-module-XxGrr","sidebar-toggle":"product-listing-page-module-F7bxy","sort":"product-listing-page-module-aQzHr","count":"product-listing-page-module-zx79v","categories":"product-listing-page-module-R4aOl","product-grid-container":"product-listing-page-module-ICkKg","product-grid":"product-listing-page-module-LHE7z","pagination":"product-listing-page-module-xsRaj"};
|
|
8211
8315
|
|
|
8212
8316
|
function ProductListingPage({ pageUrl, searchClient: _searchClient, }) {
|
|
8213
8317
|
const languageCode = useLanguageCode();
|
|
@@ -8221,25 +8325,20 @@ function ProductListingPage({ pageUrl, searchClient: _searchClient, }) {
|
|
|
8221
8325
|
appId: config.ALGOLIA_APP_ID,
|
|
8222
8326
|
host: config.ALGOLIA_HOST,
|
|
8223
8327
|
}), [_searchClient]);
|
|
8224
|
-
if (isError)
|
|
8225
|
-
|
|
8226
|
-
|
|
8227
|
-
|
|
8228
|
-
return (jsxs("h1", { children: [error.status, " - ", error.statusText] }));
|
|
8229
|
-
}
|
|
8230
|
-
if (!data || isFetching) {
|
|
8231
|
-
return (jsx(BlankPageSpacer, { children: jsx(LoadingOverlay, {}) }));
|
|
8232
|
-
}
|
|
8328
|
+
if (isError)
|
|
8329
|
+
return jsx(ErrorPage, { error: error });
|
|
8330
|
+
if (!data || isFetching)
|
|
8331
|
+
return jsx(LoadingPage, {});
|
|
8233
8332
|
const category = data.breadCrumb.slice(1).map(breadCrumb => breadCrumb.label);
|
|
8234
|
-
return (jsx(ProductListingPageProvider, { data: data, error: error, isError: isError, isLoading: isFetching, children: jsx(AlgoliaProvider, { categoryPages: data.categoryPages, hierarchicalCategories: data.hierarchicalCategories, languageCode: languageCode, offlineSearchClient: offlineSearchClient, searchClient: searchClient, children: jsx(Page, { breadCrumb: data.breadCrumb, className: styles$
|
|
8333
|
+
return (jsx(ProductListingPageProvider, { data: data, error: error, isError: isError, isLoading: isFetching, children: jsx(AlgoliaProvider, { categoryPages: data.categoryPages, hierarchicalCategories: data.hierarchicalCategories, languageCode: languageCode, offlineSearchClient: offlineSearchClient, searchClient: searchClient, children: jsx(Page, { breadCrumb: data.breadCrumb, className: styles$c['product-listing'], title: category.slice().pop(), children: jsx(ProductListingPageContent, { promoCards: data.promoCards?.top }) }) }) }));
|
|
8235
8334
|
}
|
|
8236
8335
|
function ProductListingPageContent({ promoCards, }) {
|
|
8237
8336
|
const { isLoading, products } = useAlgoliaProductHits();
|
|
8238
8337
|
const hasProducts = products.length > 0;
|
|
8239
8338
|
const t = useFormattedMessage();
|
|
8240
|
-
return (jsxs(Fragment, { children: [isLoading !== false && !hasProducts &&
|
|
8339
|
+
return (jsxs(Fragment, { children: [isLoading !== false && !hasProducts && jsx(LoadingPage, {}), isLoading === false && !hasProducts && (jsx(NoResults$1, { content: jsxs("p", { children: [jsx(FormattedMessage, { id: "You could try exploring our products by category" }), ' ', jsx("br", {}), jsx(FormattedMessage, { id: "Try 'Search' and try to find the product you're looking for" })] }), title: t('Sorry, there are no products found') })), jsxs("div", { style: {
|
|
8241
8340
|
display: !hasProducts ? 'none' : undefined,
|
|
8242
|
-
}, children: [promoCards?.length && (jsx("section", { className: styles$
|
|
8341
|
+
}, children: [promoCards?.length && (jsx("section", { className: styles$c.promos, children: jsx(PromoCards, { promoCardsData: promoCards }) })), jsx("section", { className: styles$c.categories, children: jsx(ConnectedCategoryCarousel, {}) }), jsxs("section", { className: styles$c['action-bar'], children: [jsx("div", { className: styles$c['sidebar-toggle'], children: jsx(ToggleSidebarButton, {}) }), jsx("span", { className: styles$c.count, children: jsx(AlgoliaResultsCount, {}) }), jsx("div", { className: styles$c.sort, children: jsx(AlgoliaSortBy, {}) })] }), jsx("section", { children: jsxs("div", { className: styles$c['product-grid-container'], children: [jsx(Sidebar, { children: jsx(AlgoliaFilterPanel, { showActiveCategories: true }) }), jsxs("div", { className: styles$c['product-grid'], children: [jsx(ProductListingProductOverview, {}), jsx("div", { className: styles$c.pagination, children: jsx(AlgoliaPagination, { onChange: () => {
|
|
8243
8342
|
setTimeout(() => {
|
|
8244
8343
|
scrollToTop();
|
|
8245
8344
|
}, 100);
|
|
@@ -8268,7 +8367,7 @@ function SearchResultProductOverview() {
|
|
|
8268
8367
|
}, productId: product.storefrontId, sku: product.id, tags: product.labels, title: product.name }, product.storefrontId))) }));
|
|
8269
8368
|
}
|
|
8270
8369
|
|
|
8271
|
-
var styles$
|
|
8370
|
+
var styles$b = {"search-results":"search-results-page-module-M7SIu","header":"search-results-page-module-DpNT-","action-bar":"search-results-page-module-RJoMk","sidebar-toggle":"search-results-page-module-SzLQb","sort":"search-results-page-module-cgonp","count":"search-results-page-module-hunZp","categories":"search-results-page-module-n2lSj","product-grid-container":"search-results-page-module-TK-iE","product-grid":"search-results-page-module-HWUnk","pagination":"search-results-page-module-SZYiA"};
|
|
8272
8371
|
|
|
8273
8372
|
function SearchResultsPage({ location, searchClient, }) {
|
|
8274
8373
|
const languageCode = useLanguageCode();
|
|
@@ -8277,7 +8376,7 @@ function SearchResultsPage({ location, searchClient, }) {
|
|
|
8277
8376
|
const keyword = Array.isArray(keywords) ? keywords.join(' ') : keywords;
|
|
8278
8377
|
if (!keyword)
|
|
8279
8378
|
return jsx("h1", { children: "No search results...." });
|
|
8280
|
-
return (jsx(AlgoliaProvider, { languageCode: languageCode, query: keyword, searchClient: searchClient, children: jsx(Page, { breadCrumb: [], className: styles$
|
|
8379
|
+
return (jsx(AlgoliaProvider, { languageCode: languageCode, query: keyword, searchClient: searchClient, children: jsx(Page, { breadCrumb: [], className: styles$b['search-results'], title: t("'{0}' in all products", {
|
|
8281
8380
|
replacementValues: { 0: keyword },
|
|
8282
8381
|
}), children: jsx(SearchResultsPageContent, { keyword: keyword }) }) }));
|
|
8283
8382
|
}
|
|
@@ -8285,20 +8384,20 @@ function SearchResultsPageContent({ keyword }) {
|
|
|
8285
8384
|
const { isLoading, products } = useAlgoliaProductHits();
|
|
8286
8385
|
const hasProducts = products.length > 0;
|
|
8287
8386
|
const t = useFormattedMessage();
|
|
8288
|
-
return (jsxs(Fragment, { children: [isLoading !== false && !hasProducts && jsx(
|
|
8387
|
+
return (jsxs(Fragment, { children: [isLoading !== false && !hasProducts && jsx(LoadingPage, {}), isLoading === false && !hasProducts && (jsx(NoResults$1, { content: jsxs("p", { children: [jsx(FormattedMessage, { id: "You could try checking the spelling of your search query" }), jsx("br", {}), jsx(FormattedMessage, { id: "Try another search" }), jsx("br", {}), jsx(FormattedMessage, { id: "Are you looking for information about our service? Please visit our customer support page" })] }), title: t("Unfortnately, We found no articles for your search '{0}'", {
|
|
8289
8388
|
replacementValues: { 0: keyword },
|
|
8290
8389
|
}) })), jsxs("div", { style: {
|
|
8291
8390
|
display: !hasProducts ? 'none' : undefined,
|
|
8292
|
-
}, children: [jsxs("section", { className: styles$
|
|
8391
|
+
}, children: [jsxs("section", { className: styles$b['action-bar'], children: [jsx("div", { className: styles$b['sidebar-toggle'], children: jsx(ToggleSidebarButton, {}) }), jsx("span", { className: styles$b.count, children: jsx(AlgoliaResultsCount, {}) }), jsx("div", { className: styles$b.sort, children: jsx(AlgoliaSortBy, {}) })] }), jsx("section", { children: jsxs("div", { className: styles$b['product-grid-container'], children: [jsx(Sidebar, { children: jsx(AlgoliaFilterPanel, { showCategoriesFilters: true }) }), jsxs("div", { className: styles$b['product-grid'], children: [jsx(SearchResultProductOverview, {}), jsx("div", { className: styles$b.pagination, children: jsx(AlgoliaPagination, { onChange: () => {
|
|
8293
8392
|
setTimeout(() => {
|
|
8294
8393
|
scrollToTop();
|
|
8295
8394
|
}, 100);
|
|
8296
8395
|
} }) })] })] }) })] })] }));
|
|
8297
8396
|
}
|
|
8298
8397
|
|
|
8299
|
-
var styles$
|
|
8398
|
+
var styles$a = {"background-overlay":"background-overlay-module-mGiNQ","open":"background-overlay-module-5Uxcl","close":"background-overlay-module-GRInQ"};
|
|
8300
8399
|
|
|
8301
|
-
function
|
|
8400
|
+
function BackgroundOverlay({ className, isOpen, onClick, }) {
|
|
8302
8401
|
const [, setRender] = useState(isOpen);
|
|
8303
8402
|
const nodeRef = useRef(null);
|
|
8304
8403
|
useEffect(() => {
|
|
@@ -8317,13 +8416,13 @@ function OverlayBackground({ className, isOpen, onClick, }) {
|
|
|
8317
8416
|
}, [isOpen]);
|
|
8318
8417
|
if (typeof window === 'undefined')
|
|
8319
8418
|
return null;
|
|
8320
|
-
return ReactDOM.createPortal(jsx("div", { ref: nodeRef, className: clsx(styles$
|
|
8321
|
-
[styles$
|
|
8322
|
-
[styles$
|
|
8419
|
+
return ReactDOM.createPortal(jsx("div", { ref: nodeRef, className: clsx(styles$a['background-overlay'], {
|
|
8420
|
+
[styles$a['open']]: isOpen,
|
|
8421
|
+
[styles$a['close']]: !isOpen,
|
|
8323
8422
|
}, className), onClick: onClick }), document.body);
|
|
8324
8423
|
}
|
|
8325
8424
|
|
|
8326
|
-
var styles$
|
|
8425
|
+
var styles$9 = {"sidebar-container":"sidebar-provider-module-rjeCL","transition":"sidebar-provider-module-C0cKR"};
|
|
8327
8426
|
|
|
8328
8427
|
function SidebarDetectBreakpoint() {
|
|
8329
8428
|
const xxl = useIsBreakpoint('xxl');
|
|
@@ -8353,11 +8452,11 @@ function SidebarDetectBreakpoint() {
|
|
|
8353
8452
|
function SidebarProvider({ children }) {
|
|
8354
8453
|
const state = useSidebar();
|
|
8355
8454
|
const { close, isDocked, isOpen, transition } = state;
|
|
8356
|
-
return (jsxs("div", { className: clsx(styles$
|
|
8357
|
-
[styles$
|
|
8358
|
-
[styles$
|
|
8359
|
-
[styles$
|
|
8360
|
-
}), children: [jsx(SidebarDetectBreakpoint, {}), children, isDocked && isOpen && (jsx(
|
|
8455
|
+
return (jsxs("div", { className: clsx(styles$9['sidebar-container'], {
|
|
8456
|
+
[styles$9['transition']]: transition,
|
|
8457
|
+
[styles$9['docked']]: isDocked,
|
|
8458
|
+
[styles$9['open']]: isOpen,
|
|
8459
|
+
}), children: [jsx(SidebarDetectBreakpoint, {}), children, isDocked && isOpen && (jsx(BackgroundOverlay, { isOpen: isOpen, onClick: close }))] }));
|
|
8361
8460
|
}
|
|
8362
8461
|
|
|
8363
8462
|
const categoriesPlugin = ({ productsIndexName, searchClient, }) => {
|
|
@@ -8694,12 +8793,12 @@ function useAlgoliaSearch() {
|
|
|
8694
8793
|
};
|
|
8695
8794
|
}
|
|
8696
8795
|
|
|
8697
|
-
var styles$
|
|
8796
|
+
var styles$8 = {"global-search-background-overlay-position":"global-search-module-T0bEf","search-wrapper":"global-search-module-d2g2F","search-root":"global-search-module-Sx8Lx","search-container":"global-search-module--orCF","input":"global-search-module-vXnL6","entering":"global-search-module-MYwlp","entered":"global-search-module-Jmt3c","exiting":"global-search-module-gQQfY","exited":"global-search-module-AABcw"};
|
|
8698
8797
|
|
|
8699
8798
|
const GlobalSearchDisclosureContext = createContext(null);
|
|
8700
8799
|
function GlobalSearchProvider({ children, searchClient, }) {
|
|
8701
8800
|
const { close, isOpen, open, toggle } = useDisclosure(false);
|
|
8702
|
-
return (jsx(AlgoliaSearchProvider, { searchClient: searchClient, children: jsxs(GlobalSearchDisclosureContext.Provider, { value: { close, isOpen, open, toggle }, children: [children, jsx(
|
|
8801
|
+
return (jsx(AlgoliaSearchProvider, { searchClient: searchClient, children: jsxs(GlobalSearchDisclosureContext.Provider, { value: { close, isOpen, open, toggle }, children: [children, jsx(BackgroundOverlay, { className: styles$8['global-search-background-overlay-position'], isOpen: isOpen, onClick: toggle })] }) }));
|
|
8703
8802
|
}
|
|
8704
8803
|
|
|
8705
8804
|
const useGlobalSearchDisclosure = () => {
|
|
@@ -8718,7 +8817,7 @@ function StrokeSearchIcon(props) {
|
|
|
8718
8817
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, fill: "currentColor", height: "24", viewBox: "0 0 24 24", width: "24", children: jsx("path", { d: "M10.1044994,16.5738466 C6.53724234,16.5738466 3.63503896,13.6716658 3.63503896,10.1044364 C3.63503896,6.53739167 6.53724234,3.63521084 10.1044994,3.63521084 C13.6717564,3.63521084 16.5737752,6.53739167 16.5737752,10.1044364 C16.5737752,13.6716658 13.6717564,16.5738466 10.1044994,16.5738466 M21.7583512,20.6019769 L16.3655653,15.2505791 C17.5171805,13.8510793 18.2089988,12.0586047 18.2089988,10.1044364 C18.2089988,5.62851052 14.5804601,2 10.1044994,2 C5.62853871,2 2,5.62851052 2,10.1044364 C2,14.5805469 5.62853871,18.2090574 10.1044994,18.2090574 C12.0372712,18.2090574 13.8113014,17.5312728 15.2041671,16.4020009 L20.6065514,21.7628123 C20.7660314,21.9208144 20.9742413,22 21.1824513,22 C21.3925071,22 21.6029321,21.9191531 21.7627812,21.7581977 C22.0808183,21.4377636 22.0787879,20.9200114 21.7583512,20.6019769", fillRule: "evenodd" }) }));
|
|
8719
8818
|
}
|
|
8720
8819
|
|
|
8721
|
-
var styles$
|
|
8820
|
+
var styles$7 = {"form":"search-input-module-xCCzd","input-container":"search-input-module-okP8k","icon":"search-input-module-GZbhK","label":"search-input-module-vKCm4","reset-btn":"search-input-module-lYseZ","input":"search-input-module-bELFK"};
|
|
8722
8821
|
|
|
8723
8822
|
function SearchInput({ autocomplete, formRef, inputRef, onCancel, onSubmit, placeholder, }) {
|
|
8724
8823
|
const formProps = autocomplete?.getFormProps({
|
|
@@ -8734,10 +8833,10 @@ function SearchInput({ autocomplete, formRef, inputRef, onCancel, onSubmit, plac
|
|
|
8734
8833
|
formProps?.onSubmit(e);
|
|
8735
8834
|
onSubmit?.();
|
|
8736
8835
|
}
|
|
8737
|
-
return (jsx("form", { ref: formRef, className: styles$
|
|
8836
|
+
return (jsx("form", { ref: formRef, className: styles$7.form, ...formProps, onSubmit: handleSubmit, children: jsxs("div", { className: styles$7['input-container'], children: [jsx("label", { className: styles$7.label, ...labelProps, children: jsx(StrokeSearchIcon, { className: clsx(styles$7['icon-search'], styles$7.icon) }) }), jsx("input", { ref: inputRef, onKeyUp: e => {
|
|
8738
8837
|
if (e.key === 'Escape')
|
|
8739
8838
|
onCancel?.();
|
|
8740
|
-
}, ...inputProps, className: styles$
|
|
8839
|
+
}, ...inputProps, className: styles$7.input, placeholder: placeholder }), inputProps?.value && (jsx(IconButton, { className: styles$7['reset-btn'], color: "secondary", onPress: () => formRef.current?.reset(), type: "reset", children: jsx(SolidCloseIcon, {}) }))] }) }));
|
|
8741
8840
|
}
|
|
8742
8841
|
|
|
8743
8842
|
function ConnectedSearchInput() {
|
|
@@ -8751,26 +8850,26 @@ function ConnectedSearchInput() {
|
|
|
8751
8850
|
}, placeholder: t('What are you searching for?') }));
|
|
8752
8851
|
}
|
|
8753
8852
|
|
|
8754
|
-
var styles$
|
|
8853
|
+
var styles$6 = {"categories-grid":"categories-grid-module-C751R","category":"categories-grid-module-7OZS1"};
|
|
8755
8854
|
|
|
8756
8855
|
function CategoriesGrid({ categories, onItemClick, }) {
|
|
8757
|
-
return (jsx("div", { className: styles$
|
|
8856
|
+
return (jsx("div", { className: styles$6['categories-grid'], children: categories.map(category => (jsx("div", { className: styles$6['category'], children: jsx(CategoryCard, { withArrow: true, href: category.href, image: {
|
|
8758
8857
|
fit: 'contain',
|
|
8759
8858
|
image: category.image,
|
|
8760
8859
|
title: category.title,
|
|
8761
8860
|
}, onClick: onItemClick, title: category.title }, category.title) }, category.title))) }));
|
|
8762
8861
|
}
|
|
8763
8862
|
|
|
8764
|
-
var styles$
|
|
8863
|
+
var styles$5 = {"search-section":"search-section-module-qaTiw","header":"search-section-module-E--U2","title":"search-section-module-AHlDR","content":"search-section-module-VZlvZ"};
|
|
8765
8864
|
|
|
8766
8865
|
function SearchSection({ button, children, className, title, }) {
|
|
8767
|
-
return (jsxs("div", { className: clsx(styles$
|
|
8866
|
+
return (jsxs("div", { className: clsx(styles$5['search-section'], className), children: [jsxs("div", { className: styles$5.header, children: [title && jsx("h2", { className: styles$5.title, children: title }), button && button] }), jsx("div", { className: styles$5.content, children: children })] }));
|
|
8768
8867
|
}
|
|
8769
8868
|
|
|
8770
|
-
var styles$
|
|
8869
|
+
var styles$4 = {"section-container":"search-content-module-ZMwlB","content":"search-content-module-KIok6","left":"search-content-module-YRLIf","right":"search-content-module-qK5sg","button-container":"search-content-module-w-ORq","show-all-button":"search-content-module-bO1Q0","product-results":"search-content-module-bcFCH","no-results-text":"search-content-module-H-FX2","query":"search-content-module-LbQnK","suggestions":"search-content-module-mhiBZ","list":"search-content-module-coPAt"};
|
|
8771
8870
|
|
|
8772
8871
|
function SectionContainer({ buttons, leftContent, rightContent, }) {
|
|
8773
|
-
return (jsx("div", { className: styles$
|
|
8872
|
+
return (jsx("div", { className: styles$4['section-container'], children: jsxs("div", { className: styles$4['content'], children: [jsx("div", { className: styles$4['left'], children: leftContent }), jsxs("div", { className: styles$4['right'], children: [rightContent, jsx("div", { className: styles$4['button-container'], children: buttons })] })] }) }));
|
|
8774
8873
|
}
|
|
8775
8874
|
|
|
8776
8875
|
function NoResults() {
|
|
@@ -8779,7 +8878,7 @@ function NoResults() {
|
|
|
8779
8878
|
function NotFound() {
|
|
8780
8879
|
const { state } = useAlgoliaSearch();
|
|
8781
8880
|
const t = useFormattedMessage();
|
|
8782
|
-
return (jsx(SearchSection, { title: t('Sorry, we could not find matches for'), children: jsx("div", { className: styles$
|
|
8881
|
+
return (jsx(SearchSection, { title: t('Sorry, we could not find matches for'), children: jsx("div", { className: styles$4['no-results-text'], children: jsxs("div", { className: styles$4.section, children: [jsxs("p", { className: styles$4.query, children: ["'", state.query, "'"] }), jsxs("div", { className: styles$4.suggestions, children: [jsx("p", { children: jsx(FormattedMessage, { id: "You could try" }) }), jsxs("ul", { className: styles$4.list, children: [jsx("li", { children: jsx(FormattedMessage, { id: "Searching again using more general terms" }) }), jsx("li", { children: jsx(FormattedMessage, { id: "Double check your spelling" }) }), jsx("li", { children: jsx(FormattedMessage, { id: "Use fewer keywords" }) }), jsx("li", { children: jsx(FormattedMessage, { id: "Exploring our products by category" }) })] })] })] }) }) }));
|
|
8783
8882
|
}
|
|
8784
8883
|
function PopularCategoriesSection() {
|
|
8785
8884
|
const { popularCategories: collection } = useAlgoliaSearch();
|
|
@@ -8788,7 +8887,7 @@ function PopularCategoriesSection() {
|
|
|
8788
8887
|
if (!collection)
|
|
8789
8888
|
return null;
|
|
8790
8889
|
const { items } = collection;
|
|
8791
|
-
return (jsx(SearchSection, { title: t('Explore by categories'), children: jsx("div", { className: styles$
|
|
8890
|
+
return (jsx(SearchSection, { title: t('Explore by categories'), children: jsx("div", { className: styles$4['categories-grid-container'], children: jsx(CategoriesGrid, { categories: items, onItemClick: close }) }) }));
|
|
8792
8891
|
}
|
|
8793
8892
|
|
|
8794
8893
|
function Highlight({ attribute, hit, tagName = 'mark', }) {
|
|
@@ -8800,19 +8899,19 @@ function Highlight({ attribute, hit, tagName = 'mark', }) {
|
|
|
8800
8899
|
}));
|
|
8801
8900
|
}
|
|
8802
8901
|
|
|
8803
|
-
var styles$
|
|
8902
|
+
var styles$3 = {"search-list":"search-list-module-vRuMO"};
|
|
8804
8903
|
|
|
8805
8904
|
function SearchList({ ariaLabelledby, children, className, id, }) {
|
|
8806
|
-
return (jsx("ul", { "aria-labelledby": ariaLabelledby, className: clsx(styles$
|
|
8905
|
+
return (jsx("ul", { "aria-labelledby": ariaLabelledby, className: clsx(styles$3['search-list'], className), id: id, children: children }));
|
|
8807
8906
|
}
|
|
8808
8907
|
|
|
8809
|
-
var styles$
|
|
8908
|
+
var styles$2 = {"search-list-item":"search-list-item-module-WXp77","content":"search-list-item-module-CPrhz","text":"search-list-item-module--5uqN"};
|
|
8810
8909
|
|
|
8811
8910
|
function SearchListItem({ icon, isRemovable = false, onClick, onRemove, text, }) {
|
|
8812
|
-
return (jsxs("li", { className: styles$
|
|
8911
|
+
return (jsxs("li", { className: styles$2['search-list-item'], onClick: onClick, role: "option", children: [jsxs("div", { className: styles$2.content, children: [icon && icon, text && jsx("span", { className: styles$2.text, children: text })] }), isRemovable && (jsx(IconButton, { color: "secondary", onPress: onRemove, children: jsx(StrokeCloseboxIcon, {}) }))] }));
|
|
8813
8912
|
}
|
|
8814
8913
|
|
|
8815
|
-
var styles$
|
|
8914
|
+
var styles$1 = {"quick-access-section":"no-search-module-87NKV","quick-access-carousel":"no-search-module-beCXI","quick-access-card":"no-search-module-dtT5J"};
|
|
8816
8915
|
|
|
8817
8916
|
function NoSearch() {
|
|
8818
8917
|
return (jsx(SectionContainer, { leftContent: jsxs("div", { children: [jsx(RecentSearchesSection, {}), jsx(PopularSearchesSection, {})] }), rightContent: jsx(QuickAccessSection, {}) }));
|
|
@@ -8849,13 +8948,7 @@ function QuickAccessSection() {
|
|
|
8849
8948
|
if (!collection)
|
|
8850
8949
|
return;
|
|
8851
8950
|
const { items } = collection;
|
|
8852
|
-
return (jsx(SearchSection, { title: t('Quick access'), children: jsx("div", { className: styles$
|
|
8853
|
-
}
|
|
8854
|
-
|
|
8855
|
-
var styles$1 = {"slide":"product-carousel-module-XVTB1"};
|
|
8856
|
-
|
|
8857
|
-
function ProductCarousel({ productCards }) {
|
|
8858
|
-
return (jsx(Carousel, { hasOverflow: false, navigationButtonsPosition: "center", slideClasses: styles$1.slide, slides: productCards, spaceBetween: 16 }));
|
|
8951
|
+
return (jsx(SearchSection, { title: t('Quick access'), children: jsx("div", { className: styles$1['quick-access-section'], children: jsx(Carousel, { className: styles$1['quick-access-carousel'], hasNavigation: false, hasOverflow: false, navigationButtonsPosition: "center", slides: items.map((item, index) => (jsx(RouteLink, { className: styles$1['quick-access-card'], href: item.action.url, onClick: close, children: jsx(Image, { height: 343, image: item.image, title: item.image.altText, width: 192 }) }, index))), spaceBetween: 16 }) }) }));
|
|
8859
8952
|
}
|
|
8860
8953
|
|
|
8861
8954
|
function StrokeRecentIcon(props) {
|
|
@@ -8865,12 +8958,12 @@ function StrokeRecentIcon(props) {
|
|
|
8865
8958
|
function WithResults() {
|
|
8866
8959
|
const { state } = useAlgoliaSearch();
|
|
8867
8960
|
const { close } = useGlobalSearchDisclosure();
|
|
8868
|
-
return (jsx("div", { children: jsx(SectionContainer, { buttons: jsxs(RouteButton, { className: clsx(styles$
|
|
8961
|
+
return (jsx("div", { children: jsx(SectionContainer, { buttons: jsxs(RouteButton, { className: clsx(styles$4['show-all-button'], buttonStyles.button, buttonStyles.secondary, buttonStyles.outline, buttonStyles.md), href: `/search?keyword=${state.query}`, onClick: close, children: [jsx(FormattedMessage, { id: "See all results" }), jsx(GlyphsArrowBoldCapsRightIcon, { className: buttonStyles['right-arrow-icon'] })] }), leftContent: jsx(SuggestionsSection, {}), rightContent: jsx(ProductResultsSection, {}) }) }));
|
|
8869
8962
|
}
|
|
8870
8963
|
function SuggestionsSection() {
|
|
8871
8964
|
const { autocomplete, categories, querySuggestions, recentSearches } = useAlgoliaSearch();
|
|
8872
8965
|
const t = useFormattedMessage();
|
|
8873
|
-
return (jsxs(SearchSection, { className: styles$
|
|
8966
|
+
return (jsxs(SearchSection, { className: styles$4['product-results-section'], title: t('Suggestions'), children: [recentSearches && (jsx(SearchList, { ...autocomplete.getListProps({
|
|
8874
8967
|
source: recentSearches.source,
|
|
8875
8968
|
}), children: recentSearches.items.slice(0, 3).map(item => (jsx(SearchListItem, { ...autocomplete.getItemProps({
|
|
8876
8969
|
item,
|
|
@@ -8900,7 +8993,7 @@ function ProductResultsSection() {
|
|
|
8900
8993
|
if (!collection)
|
|
8901
8994
|
return null;
|
|
8902
8995
|
const { items, source } = collection;
|
|
8903
|
-
return (jsx(SearchSection, { className: styles$
|
|
8996
|
+
return (jsx(SearchSection, { className: styles$4['product-results-section'], title: t('Products'), children: jsx("div", { className: styles$4['product-results'], ...autocomplete.getListProps({ source }), children: jsx(ProductCarousel, { productCards: items.map((product, index) => (createElement$1(ConnectedProductCard, { ...autocomplete.getItemProps({
|
|
8904
8997
|
item: product.hit,
|
|
8905
8998
|
source: source,
|
|
8906
8999
|
}), key: product.storefrontId, href: product.storefrontSlug, image: {
|
|
@@ -8911,14 +9004,14 @@ function ProductResultsSection() {
|
|
|
8911
9004
|
sendAddToCartFromSearchEvent({
|
|
8912
9005
|
objectId: product.objectId,
|
|
8913
9006
|
queryId: product.queryId,
|
|
8914
|
-
}), onFavorite: () => {
|
|
9007
|
+
}), onClick: () => close(), onFavorite: () => {
|
|
8915
9008
|
product.queryId &&
|
|
8916
9009
|
sendAddToWishListFromSearchEvent({
|
|
8917
9010
|
objectId: product.objectId,
|
|
8918
9011
|
position: product.position || index + 1,
|
|
8919
9012
|
queryId: product.queryId,
|
|
8920
9013
|
});
|
|
8921
|
-
},
|
|
9014
|
+
}, price: {
|
|
8922
9015
|
isVatIncluded: product.isVatIncluded,
|
|
8923
9016
|
originalPrice: product.originalPrice,
|
|
8924
9017
|
price: product.price,
|
|
@@ -8952,7 +9045,7 @@ function SearchRoot() {
|
|
|
8952
9045
|
inputRef.current.blur();
|
|
8953
9046
|
}
|
|
8954
9047
|
}, [inputRef, isOpen]);
|
|
8955
|
-
return (jsx("div", { className: styles$
|
|
9048
|
+
return (jsx("div", { className: styles$8['search-root'], children: jsx(Transition, { in: isOpen, nodeRef: inputRef, timeout: 300, children: transitionState => (jsxs("div", { className: clsx(styles$8['search-container'], styles$8[transitionState]), ...autocomplete.getRootProps({}), children: [jsx("div", { className: styles$8.input, children: jsx(ConnectedSearchInput, {}) }), jsx("div", { className: styles$8.panel, children: jsx(SearchResultPanel, {}) })] })) }) }));
|
|
8956
9049
|
}
|
|
8957
9050
|
/**
|
|
8958
9051
|
* Global search using algolia autocomplete with a custom renderer
|
|
@@ -8965,7 +9058,7 @@ function SearchRoot() {
|
|
|
8965
9058
|
function GlobalSearch() {
|
|
8966
9059
|
const panelRef = useRef(null);
|
|
8967
9060
|
const { isOpen } = useGlobalSearchDisclosure();
|
|
8968
|
-
return (jsx(TransitionGroup, { children: jsx(Transition, { in: isOpen, nodeRef: panelRef, timeout: 300, children: state => (jsx("div", { ref: panelRef, className: state, children: jsx("div", { className: styles$
|
|
9061
|
+
return (jsx(TransitionGroup, { children: jsx(Transition, { in: isOpen, nodeRef: panelRef, timeout: 300, children: state => (jsx("div", { ref: panelRef, className: state, children: jsx("div", { className: styles$8['search-wrapper'], children: jsx(SearchRoot, {}) }) })) }) }));
|
|
8969
9062
|
}
|
|
8970
9063
|
|
|
8971
9064
|
const queryClient = new QueryClient({
|
|
@@ -8982,4 +9075,4 @@ function ReactQueryContainer({ children }) {
|
|
|
8982
9075
|
return (jsx(QueryClientProvider, { client: queryClient, children: children }));
|
|
8983
9076
|
}
|
|
8984
9077
|
|
|
8985
|
-
export { Accordion, AddToCartButton, AlgoliaActiveCategories, AlgoliaCategoriesFilters, AlgoliaFilterPanel, AlgoliaInsightsProvider, AlgoliaInsightsProviderContext, AlgoliaMultiSelectFilterSection, AlgoliaPagination, AlgoliaProvider, AlgoliaResultsCount, AlgoliaSortBy, AvailabilityMessageType, BadRequestError, BadgeImagePlacementValues, BadgeStyleValues, BadgeTypeValues, Breadcrumb, Button, CartProvider, CategoryCarousel, Checkbox, ColorCheckbox, ConnectedAddToCartButton, CurrencyPositioningType, FavoriteButton, FavoriteProvider, FilterSection, ForbiddenRequestError, FormattedMessage, GlobalSearch, GlobalSearchDisclosureContext, GlobalSearchProvider, GlobalStateProvider, GlobalStateProviderContext, IconButton, Image, InternalServerErrorRequest, IntlProvider, Link, LoadingOverlay, MultiSelect, NotFoundRequestError, NumberField, Page, PageContainer, ProductCard, ProductDetailsPage, ProductListingPage, ProductOverviewGrid, ProductPrice, ProductSku, ProgressCircle, ReactQueryContainer, RequestError, RouteButton, RouteLink, RouteProvider, SearchResultsPage, SearchRoot, Select, ShowAll, Sidebar, SidebarDetectBreakpoint, SidebarProvider, TextField, TimeoutRequestError, UnauthorizedRequestError, UnprocessableContentRequestError, VariantDisplayTypeValues, WishListNameAlreadyExistsError, addProductToCurrentCart, addWishListItemToWishList, config, configPerEnvironment, createSession, createSonicSearchClient, createWishList, deleteCartLineById, deleteWishList, deleteWishListItemFromWishList, environment, environments, fetchCurrentCartLines, fetchTranslations, getSession, getWishList, getWishListItemsByWishListId, getWishLists, isRequestError, request, signIn, signOut, transformAlgoliaProductHitToProductHit, updateCartLineById, useAddProductToCurrentCart, useAddWishListItemToCurrentWishList, useAddWishListItemToWishList, useAlgolia, useAlgoliaInsights, useAlgoliaSearch, useBreakpoint, useCartEvents, useCreateWishList, useDebouncedCallback, useDeleteCartLineById, useDeleteWishListItemFromWishList, useDisclosure, useFavorite, useFavoriteProduct, useFeatureFlags, useFetchAllWishListsItems, useFetchCurrentCartLines,
|
|
9078
|
+
export { Accordion, AddToCartButton, AlgoliaActiveCategories, AlgoliaCategoriesFilters, AlgoliaFilterPanel, AlgoliaInsightsProvider, AlgoliaInsightsProviderContext, AlgoliaMultiSelectFilterSection, AlgoliaPagination, AlgoliaProvider, AlgoliaResultsCount, AlgoliaSortBy, AvailabilityMessageType, BadRequestError, BadgeImagePlacementValues, BadgeStyleValues, BadgeTypeValues, Breadcrumb, Button, CartProvider, CategoryCarousel, Checkbox, ColorCheckbox, ConnectedAddToCartButton, CurrencyPositioningType, FavoriteButton, FavoriteProvider, FilterSection, ForbiddenRequestError, FormattedMessage, GlobalSearch, GlobalSearchDisclosureContext, GlobalSearchProvider, GlobalStateProvider, GlobalStateProviderContext, IconButton, Image, InternalServerErrorRequest, IntlProvider, Link, LoadingOverlay, MultiSelect, NotFoundRequestError, NumberField, Page, PageContainer, ProductCard, ProductDetailsPage, ProductListingPage, ProductOverviewGrid, ProductPrice, ProductSku, ProgressCircle, ReactQueryContainer, RequestError, RouteButton, RouteLink, RouteProvider, SearchResultsPage, SearchRoot, Select, ShowAll, Sidebar, SidebarDetectBreakpoint, SidebarProvider, TextField, TimeoutRequestError, UnauthorizedRequestError, UnprocessableContentRequestError, VariantDisplayTypeValues, WishListNameAlreadyExistsError, addProductToCurrentCart, addWishListItemToWishList, config, configPerEnvironment, createSession, createSonicSearchClient, createWishList, deleteCartLineById, deleteWishList, deleteWishListItemFromWishList, environment, environments, fetchCurrentCartLines, fetchTranslations, getSession, getWishList, getWishListItemsByWishListId, getWishLists, isRequestError, request, signIn, signOut, transformAlgoliaProductHitToProductHit, updateCartLineById, useAddProductToCurrentCart, useAddWishListItemToCurrentWishList, useAddWishListItemToWishList, useAlgolia, useAlgoliaInsights, useAlgoliaSearch, useBreakpoint, useCartEvents, useCreateWishList, useDebouncedCallback, useDeleteCartLineById, useDeleteWishListItemFromWishList, useDisclosure, useFavorite, useFavoriteProduct, useFeatureFlags, useFetchAllWishListsItems, useFetchCurrentCartLines, useFetchTranslations, useFetchWishLists, useFormattedMessage, useGlobalSearchDisclosure, useGlobalState, useIsAuthenticated, useIsBreakpoint, useNavigate, useScrollLock, useSession, useSignIn, useSignOut, useUpdateCartLineById, userToken };
|