@faststore/core 2.2.53 → 2.2.55
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +54 -60
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/eslint/.cache_1gneedd +1 -1
- package/.next/cache/next-server.js.nft.json +1 -1
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/react-loadable-manifest.json +3 -3
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/390.js +409 -404
- package/.next/server/chunks/520.js +491 -0
- package/.next/server/chunks/732.js +1 -1
- package/.next/server/chunks/74.js +2274 -636
- package/.next/server/chunks/796.js +495 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.js +14 -0
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.js +14 -0
- package/.next/server/pages/500.js.nft.json +1 -1
- package/.next/server/pages/[...slug].js +12 -12
- package/.next/server/pages/[...slug].js.nft.json +1 -1
- package/.next/server/pages/[slug]/p.js +17 -61
- package/.next/server/pages/[slug]/p.js.nft.json +1 -1
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/account.js +14 -0
- package/.next/server/pages/account.js.nft.json +1 -1
- package/.next/server/pages/api/graphql.js.nft.json +1 -1
- package/.next/server/pages/checkout.js +14 -0
- package/.next/server/pages/checkout.js.nft.json +1 -1
- package/.next/server/pages/en-US/404.html +2 -2
- package/.next/server/pages/en-US/500.html +2 -2
- package/.next/server/pages/en-US/account.html +2 -2
- package/.next/server/pages/en-US/checkout.html +2 -2
- package/.next/server/pages/en-US/login.html +2 -2
- package/.next/server/pages/en-US/s.html +2 -2
- package/.next/server/pages/en-US.html +2 -2
- package/.next/server/pages/index.js +7 -7
- package/.next/server/pages/index.js.nft.json +1 -1
- package/.next/server/pages/login.js +14 -0
- package/.next/server/pages/login.js.nft.json +1 -1
- package/.next/server/pages/s.js +8 -1
- package/.next/server/pages/s.js.nft.json +1 -1
- package/.next/server/pages-manifest.json +3 -3
- package/.next/static/chunks/158-df35a8644ae9d281.js +1 -0
- package/.next/static/chunks/251.98f500dd8ba008ae.js +1 -0
- package/.next/static/chunks/497-37c1e4e1d862b354.js +1 -0
- package/.next/static/chunks/585.4e673e43d8daf336.js +1 -0
- package/.next/static/chunks/800.ea75aa39e939d9af.js +1 -0
- package/.next/static/chunks/897-b07932d813bb7dac.js +1 -0
- package/.next/static/chunks/pages/{404-7710903c2a59fa6e.js → 404-0bacd82dcf801c94.js} +1 -1
- package/.next/static/chunks/pages/{500-88a231e61179db83.js → 500-4dceb834e001d990.js} +1 -1
- package/.next/static/chunks/pages/[...slug]-b82b56ce1651ea4f.js +1 -0
- package/.next/static/chunks/pages/[slug]/p-39599bd4d6faeeb6.js +1 -0
- package/.next/static/chunks/pages/{account-f163e14670372c05.js → account-57c0c1f70eed76a6.js} +1 -1
- package/.next/static/chunks/pages/{checkout-cf498a32e110bde8.js → checkout-e5db8918e7c9c75e.js} +1 -1
- package/.next/static/chunks/pages/index-84457d91d9060925.js +1 -0
- package/.next/static/chunks/pages/{login-707636c85f23cac6.js → login-39000c786b4f6222.js} +1 -1
- package/.next/static/chunks/pages/s-e195109f5acced7c.js +1 -0
- package/.next/static/chunks/webpack-ec84ae4e89cebb1f.js +1 -0
- package/.next/static/css/0cb5d7afb952bb02.css +1 -0
- package/.next/static/css/{4e42cc999ad62b57.css → 0dc997f9da3027b7.css} +1 -1
- package/.next/static/css/{d7bbfbd552f407e9.css → cbccabebb36f7f92.css} +1 -1
- package/.next/static/css/{d456bfc64bc489a2.css → cf062feb79245123.css} +1 -1
- package/.next/static/xNdv8Ze2mVN5lf__-4QVM/_buildManifest.js +1 -0
- package/.next/trace +81 -81
- package/.turbo/turbo-build.log +18 -18
- package/.turbo/turbo-test.log +9 -9
- package/package.json +2 -2
- package/src/components/sections/CrossSellingShelf/DefaultComponents.ts +9 -0
- package/src/components/sections/CrossSellingShelf/OverriddenDefaultCrossSellingShelf.ts +5 -0
- package/src/components/sections/ProductShelf/DefaultComponents.ts +9 -0
- package/src/components/sections/ProductShelf/OverriddenDefaultProductShelf.ts +12 -0
- package/src/components/templates/LandingPage/LandingPage.tsx +1 -1
- package/src/components/templates/ProductListingPage/ProductListing.tsx +1 -1
- package/src/components/ui/ProductShelf/ProductShelf.tsx +11 -12
- package/src/pages/[slug]/p.tsx +1 -1
- package/src/pages/index.tsx +1 -1
- package/src/sdk/overrides/sections.tsx +12 -4
- package/src/typings/overrides.ts +15 -1
- package/.next/server/chunks/117.js +0 -430
- package/.next/server/chunks/184.js +0 -61
- package/.next/server/chunks/53.js +0 -61
- package/.next/server/chunks/773.js +0 -550
- package/.next/server/chunks/854.js +0 -72
- package/.next/server/chunks/890.js +0 -1205
- package/.next/static/McclVBfxjOJEmRRYVXL7T/_buildManifest.js +0 -1
- package/.next/static/chunks/158-042441a60c3b4b56.js +0 -1
- package/.next/static/chunks/223-cb77217cce52d45c.js +0 -1
- package/.next/static/chunks/251.1c79f06f2a2814b1.js +0 -1
- package/.next/static/chunks/290-383e1d36f83c367d.js +0 -1
- package/.next/static/chunks/497-f3f10b00c609f0c2.js +0 -1
- package/.next/static/chunks/585.2d70151d75fdf960.js +0 -1
- package/.next/static/chunks/800.f63caad837409c7e.js +0 -1
- package/.next/static/chunks/pages/[...slug]-9b20bb8274fe7854.js +0 -1
- package/.next/static/chunks/pages/[slug]/p-0ef7dd71888c199e.js +0 -1
- package/.next/static/chunks/pages/index-1cfe3afbd6564f45.js +0 -1
- package/.next/static/chunks/pages/s-0bfcfd0d40841dcf.js +0 -1
- package/.next/static/chunks/webpack-ba86ae9a63f61805.js +0 -1
- package/.next/static/css/14c11109f82a6f9a.css +0 -1
- package/.next/static/css/e337ce16f77f08a7.css +0 -1
- package/src/components/sections/ProductShelf/Overrides.tsx +0 -20
- /package/.next/static/{McclVBfxjOJEmRRYVXL7T → xNdv8Ze2mVN5lf__-4QVM}/_ssgManifest.js +0 -0
|
@@ -151,6 +151,29 @@ const Loader = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Loader
|
|
|
151
151
|
|
|
152
152
|
/***/ }),
|
|
153
153
|
|
|
154
|
+
/***/ 9767:
|
|
155
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
156
|
+
|
|
157
|
+
"use strict";
|
|
158
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
159
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
160
|
+
/* harmony export */ });
|
|
161
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
162
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
163
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5450);
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
const Price = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Price({ value, as: Component = 'span', variant = 'selling', testId = 'fs-price', formatter = (price) => price, SRText, ...otherProps }, ref) {
|
|
167
|
+
const formattedPrice = formatter(value, variant);
|
|
168
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Component, { ref: ref, "data-fs-price": true, "data-fs-price-variant": variant, "data-testid": testId, ...otherProps },
|
|
169
|
+
SRText && react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { text: SRText }),
|
|
170
|
+
formattedPrice));
|
|
171
|
+
});
|
|
172
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Price);
|
|
173
|
+
//# sourceMappingURL=Price.js.map
|
|
174
|
+
|
|
175
|
+
/***/ }),
|
|
176
|
+
|
|
154
177
|
/***/ 5450:
|
|
155
178
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
156
179
|
|
|
@@ -170,6 +193,28 @@ function SROnly({ text, as }) {
|
|
|
170
193
|
|
|
171
194
|
/***/ }),
|
|
172
195
|
|
|
196
|
+
/***/ 792:
|
|
197
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
198
|
+
|
|
199
|
+
"use strict";
|
|
200
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
201
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
202
|
+
/* harmony export */ });
|
|
203
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
204
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
205
|
+
|
|
206
|
+
const Skeleton = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Skeleton({ testId = 'fs-skeleton', loading = true, shimmer = true, children, size, border, borderRadius, ...otherProps }, ref) {
|
|
207
|
+
const styles = {
|
|
208
|
+
width: size.width,
|
|
209
|
+
height: size.height,
|
|
210
|
+
};
|
|
211
|
+
return loading ? (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { ref: ref, "data-fs-skeleton": true, "data-testid": testId, "data-fs-skeleton-border": border ? border : null, style: borderRadius ? { ...styles, borderRadius: borderRadius } : styles, ...otherProps }, shimmer && react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-skeleton-shimmer": true }))) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children));
|
|
212
|
+
});
|
|
213
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Skeleton);
|
|
214
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
215
|
+
|
|
216
|
+
/***/ }),
|
|
217
|
+
|
|
173
218
|
/***/ 3666:
|
|
174
219
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
175
220
|
|
|
@@ -412,6 +457,54 @@ const Alert = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Alert({
|
|
|
412
457
|
|
|
413
458
|
/***/ }),
|
|
414
459
|
|
|
460
|
+
/***/ 2946:
|
|
461
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
462
|
+
|
|
463
|
+
"use strict";
|
|
464
|
+
|
|
465
|
+
// EXPORTS
|
|
466
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
467
|
+
"Z": () => (/* binding */ DiscountBadge_DiscountBadge)
|
|
468
|
+
});
|
|
469
|
+
|
|
470
|
+
// EXTERNAL MODULE: external "react"
|
|
471
|
+
var external_react_ = __webpack_require__(6689);
|
|
472
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
473
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Badge/Badge.js
|
|
474
|
+
var Badge = __webpack_require__(276);
|
|
475
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/DiscountBadge/useDiscountPercent.js
|
|
476
|
+
|
|
477
|
+
const useDiscountPercent = (listPrice, spotPrice) => {
|
|
478
|
+
return (0,external_react_.useMemo)(() => {
|
|
479
|
+
const diff = listPrice - spotPrice;
|
|
480
|
+
const discount = (diff * 100) / listPrice;
|
|
481
|
+
return Math.round(discount);
|
|
482
|
+
}, [spotPrice, listPrice]);
|
|
483
|
+
};
|
|
484
|
+
//# sourceMappingURL=useDiscountPercent.js.map
|
|
485
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/DiscountBadge/DiscountBadge.js
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
const DiscountBadge = ({ listPrice, spotPrice, thresholdLow = 15, thresholdHigh = 40, size, testId = 'fs-discount-badge', }) => {
|
|
490
|
+
const discountPercent = useDiscountPercent(listPrice, spotPrice);
|
|
491
|
+
if (discountPercent === 0) {
|
|
492
|
+
return external_react_default().createElement((external_react_default()).Fragment, null);
|
|
493
|
+
}
|
|
494
|
+
const discountVariant = discountPercent <= thresholdLow
|
|
495
|
+
? 'low'
|
|
496
|
+
: discountPercent <= thresholdHigh
|
|
497
|
+
? 'medium'
|
|
498
|
+
: 'high';
|
|
499
|
+
return (external_react_default().createElement(Badge/* default */.Z, { "data-fs-discount-badge": true, "data-fs-discount-badge-variant": discountVariant, size: size, "data-testid": testId },
|
|
500
|
+
discountPercent,
|
|
501
|
+
"% off"));
|
|
502
|
+
};
|
|
503
|
+
/* harmony default export */ const DiscountBadge_DiscountBadge = (DiscountBadge);
|
|
504
|
+
//# sourceMappingURL=DiscountBadge.js.map
|
|
505
|
+
|
|
506
|
+
/***/ }),
|
|
507
|
+
|
|
415
508
|
/***/ 7041:
|
|
416
509
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
417
510
|
|
|
@@ -631,6 +724,48 @@ const Modal = ({ children, testId = 'fs-modal', isOpen = true, onDismiss, overla
|
|
|
631
724
|
|
|
632
725
|
/***/ }),
|
|
633
726
|
|
|
727
|
+
/***/ 3024:
|
|
728
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
729
|
+
|
|
730
|
+
"use strict";
|
|
731
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
732
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
733
|
+
/* harmony export */ });
|
|
734
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
735
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
736
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2614);
|
|
737
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7041);
|
|
738
|
+
/* harmony import */ var _atoms_List__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4564);
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
|
|
742
|
+
const Rating = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Rating({ children, testId = 'fs-rating', length = 5, value = 0, icon, onChange, ...otherProps }, ref) {
|
|
743
|
+
const [hover, setHover] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0);
|
|
744
|
+
const outlineProps = { 'data-fs-rating-icon-outline': true };
|
|
745
|
+
const ratingIcon = react__WEBPACK_IMPORTED_MODULE_0___default().isValidElement(icon) ? icon : react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { name: "Star" });
|
|
746
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_atoms_List__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { ref: ref, "data-fs-rating": true, "data-fs-rating-actionable": typeof onChange === 'function', "data-testid": testId, ...otherProps }, Array.from({ length }).map((_, index) => {
|
|
747
|
+
const tempIndex = index + 1;
|
|
748
|
+
const fillCheck = () => {
|
|
749
|
+
if (tempIndex <= (hover || value)) {
|
|
750
|
+
return 'full';
|
|
751
|
+
}
|
|
752
|
+
if (tempIndex - value > 0 && tempIndex - value < 1) {
|
|
753
|
+
return 'partial';
|
|
754
|
+
}
|
|
755
|
+
return 'empty';
|
|
756
|
+
};
|
|
757
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", { key: `rating-${index}`, "data-fs-rating-item": fillCheck(), "data-testid": `${testId}-item` }, onChange ? (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { "data-fs-rating-button": true, icon: ratingIcon, size: "small", "aria-label": "rate", onClick: () => {
|
|
758
|
+
onChange(tempIndex);
|
|
759
|
+
}, onMouseEnter: () => setHover(tempIndex), onMouseLeave: () => setHover(value) })) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,
|
|
760
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-rating-icon-wrapper": true }, ratingIcon),
|
|
761
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().isValidElement(icon) ? (react__WEBPACK_IMPORTED_MODULE_0___default().cloneElement(icon, outlineProps)) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { name: "Star", "data-fs-rating-icon-outline": true }))))));
|
|
762
|
+
})));
|
|
763
|
+
});
|
|
764
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Rating);
|
|
765
|
+
//# sourceMappingURL=Rating.js.map
|
|
766
|
+
|
|
767
|
+
/***/ }),
|
|
768
|
+
|
|
634
769
|
/***/ 6396:
|
|
635
770
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
636
771
|
|
|
@@ -688,6 +823,24 @@ function SearchProvider({ onSearchSelection, children, term, terms, products, is
|
|
|
688
823
|
|
|
689
824
|
/***/ }),
|
|
690
825
|
|
|
826
|
+
/***/ 6737:
|
|
827
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
828
|
+
|
|
829
|
+
"use strict";
|
|
830
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
831
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
832
|
+
/* harmony export */ });
|
|
833
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
834
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
835
|
+
|
|
836
|
+
const ProductShelf = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ProductShelf({ testId = 'fs-product-shelf', children, ...otherProps }, ref) {
|
|
837
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { ref: ref, "data-fs-product-shelf": true, "data-fs-content": "product-shelf", "data-testid": testId, ...otherProps }, children));
|
|
838
|
+
});
|
|
839
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelf);
|
|
840
|
+
//# sourceMappingURL=ProductShelf.js.map
|
|
841
|
+
|
|
842
|
+
/***/ }),
|
|
843
|
+
|
|
691
844
|
/***/ 7683:
|
|
692
845
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
693
846
|
|
|
@@ -855,14 +1008,14 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
855
1008
|
/* harmony import */ var src_server_cms__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(9497);
|
|
856
1009
|
/* harmony import */ var src_components_common_Toast__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(3746);
|
|
857
1010
|
/* harmony import */ var _RenderSections__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2224);
|
|
858
|
-
/* harmony import */ var src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
1011
|
+
/* harmony import */ var src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1605);
|
|
859
1012
|
/* harmony import */ var src_components_sections_Footer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11);
|
|
860
1013
|
/* harmony import */ var src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6696);
|
|
861
1014
|
/* harmony import */ var src_components_sections_RegionBar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3830);
|
|
862
1015
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
|
|
863
1016
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
|
|
864
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__]);
|
|
865
|
-
([src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
1017
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__, src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__]);
|
|
1018
|
+
([src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__, src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
866
1019
|
const _excluded = ["children"];
|
|
867
1020
|
|
|
868
1021
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
@@ -887,7 +1040,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
887
1040
|
|
|
888
1041
|
|
|
889
1042
|
const RegionModal = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(779), __webpack_require__.e(988)]).then(__webpack_require__.bind(__webpack_require__, 5988)));
|
|
890
|
-
const CartSidebar = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(
|
|
1043
|
+
const CartSidebar = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(693), __webpack_require__.e(585)]).then(__webpack_require__.bind(__webpack_require__, 6585)));
|
|
891
1044
|
const GLOBAL_SECTIONS_CONTENT_TYPE = 'globalSections';
|
|
892
1045
|
|
|
893
1046
|
/* A list of components that can be used in the CMS. */
|
|
@@ -1609,6 +1762,187 @@ function NavbarSlider({
|
|
|
1609
1762
|
|
|
1610
1763
|
/***/ }),
|
|
1611
1764
|
|
|
1765
|
+
/***/ 8553:
|
|
1766
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1767
|
+
|
|
1768
|
+
"use strict";
|
|
1769
|
+
|
|
1770
|
+
// EXPORTS
|
|
1771
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
1772
|
+
"Z": () => (/* binding */ product_ProductCard_ProductCard)
|
|
1773
|
+
});
|
|
1774
|
+
|
|
1775
|
+
// UNUSED EXPORTS: fragment
|
|
1776
|
+
|
|
1777
|
+
// EXTERNAL MODULE: external "react"
|
|
1778
|
+
var external_react_ = __webpack_require__(6689);
|
|
1779
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
1780
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/ProductCard/ProductCard.js
|
|
1781
|
+
|
|
1782
|
+
const ProductCard = (0,external_react_.forwardRef)(function ProductCard({ testId = 'fs-product-card', variant = 'default', bordered = false, outOfStock, children, ...otherProps }, ref) {
|
|
1783
|
+
return (external_react_default().createElement("article", { ref: ref, "data-fs-product-card": outOfStock ? 'out-of-stock' : '', "data-fs-product-card-variant": variant, "data-fs-product-card-bordered": bordered, "data-testid": testId, ...otherProps }, children));
|
|
1784
|
+
});
|
|
1785
|
+
/* harmony default export */ const ProductCard_ProductCard = (ProductCard);
|
|
1786
|
+
//# sourceMappingURL=ProductCard.js.map
|
|
1787
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/ProductCard/ProductCardImage.js
|
|
1788
|
+
|
|
1789
|
+
const ProductCardImage = (0,external_react_.forwardRef)(function ProductCardImage({ testId = 'fs-product-card-image', aspectRatio = 1, children, ...otherProps }, ref) {
|
|
1790
|
+
return (external_react_default().createElement("div", { ref: ref, "data-fs-product-card-image": true, "data-testid": testId, style: {
|
|
1791
|
+
'--fs-product-card-image-aspect-ratio': aspectRatio
|
|
1792
|
+
}, ...otherProps }, children));
|
|
1793
|
+
});
|
|
1794
|
+
/* harmony default export */ const ProductCard_ProductCardImage = (ProductCardImage);
|
|
1795
|
+
//# sourceMappingURL=ProductCardImage.js.map
|
|
1796
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Link/Link.js
|
|
1797
|
+
var Link = __webpack_require__(727);
|
|
1798
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Price/Price.js
|
|
1799
|
+
var Price = __webpack_require__(9767);
|
|
1800
|
+
// EXTERNAL MODULE: ../components/dist/esm/molecules/Rating/Rating.js
|
|
1801
|
+
var Rating = __webpack_require__(3024);
|
|
1802
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
1803
|
+
var Icon = __webpack_require__(2614);
|
|
1804
|
+
// EXTERNAL MODULE: ../components/dist/esm/molecules/DiscountBadge/DiscountBadge.js + 1 modules
|
|
1805
|
+
var DiscountBadge = __webpack_require__(2946);
|
|
1806
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Badge/Badge.js
|
|
1807
|
+
var Badge = __webpack_require__(276);
|
|
1808
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Button/Button.js
|
|
1809
|
+
var Button = __webpack_require__(3339);
|
|
1810
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/ProductCard/ProductCardContent.js
|
|
1811
|
+
|
|
1812
|
+
|
|
1813
|
+
const ProductCardContent = (0,external_react_.forwardRef)(function CardContent({ testId = 'fs-product-card-content', title, linkProps, price, outOfStock, outOfStockLabel = 'Out of stock', ratingValue, showDiscountBadge, buttonLabel = 'Add', onButtonClick, children, ...otherProps }, ref) {
|
|
1814
|
+
const listPrice = price?.listPrice ?? 0;
|
|
1815
|
+
const sellingPrice = price?.value ?? 0;
|
|
1816
|
+
return (external_react_default().createElement("section", { ref: ref, "data-fs-product-card-content": true, "data-fs-product-card-badge": showDiscountBadge, "data-testid": testId, ...otherProps },
|
|
1817
|
+
external_react_default().createElement("div", { "data-fs-product-card-heading": true },
|
|
1818
|
+
external_react_default().createElement("h3", { "data-fs-product-card-title": true },
|
|
1819
|
+
external_react_default().createElement(Link/* default */.Z, { ...linkProps, title: title },
|
|
1820
|
+
external_react_default().createElement("span", null, title))),
|
|
1821
|
+
!outOfStock && (external_react_default().createElement("div", { "data-fs-product-card-prices": true }, sellingPrice !== listPrice
|
|
1822
|
+
? (external_react_default().createElement((external_react_default()).Fragment, null,
|
|
1823
|
+
external_react_default().createElement(Price/* default */.Z, { value: listPrice, formatter: price?.formatter, testId: "list-price", "data-value": listPrice, variant: "listing", SRText: "Original price:" }),
|
|
1824
|
+
external_react_default().createElement(Price/* default */.Z, { value: sellingPrice, formatter: price?.formatter, testId: "price", "data-value": sellingPrice, variant: "spot", SRText: "Sale Price:" })))
|
|
1825
|
+
: (external_react_default().createElement(Price/* default */.Z, { value: sellingPrice, formatter: price?.formatter, testId: "price", "data-value": sellingPrice, variant: "spot", SRText: "Sale Price:" })))),
|
|
1826
|
+
ratingValue && (external_react_default().createElement(Rating/* default */.Z, { value: ratingValue, icon: external_react_default().createElement(Icon/* default */.Z, { name: "Star" }) }))),
|
|
1827
|
+
showDiscountBadge && !outOfStock && (external_react_default().createElement(DiscountBadge/* default */.Z, { listPrice: price?.listPrice ? price.listPrice : 0, spotPrice: price?.value ? price.value : 0 })),
|
|
1828
|
+
outOfStock && external_react_default().createElement(Badge/* default */.Z, null, outOfStockLabel),
|
|
1829
|
+
onButtonClick && !outOfStock && (external_react_default().createElement("div", { "data-fs-product-card-actions": true },
|
|
1830
|
+
external_react_default().createElement(Button/* default */.Z, { variant: "primary", icon: external_react_default().createElement(Icon/* default */.Z, { name: "ShoppingCart" }), iconPosition: "left", size: "small", onClick: onButtonClick }, buttonLabel)))));
|
|
1831
|
+
});
|
|
1832
|
+
/* harmony default export */ const ProductCard_ProductCardContent = (ProductCardContent);
|
|
1833
|
+
//# sourceMappingURL=ProductCardContent.js.map
|
|
1834
|
+
// EXTERNAL MODULE: ./node_modules/next/link.js
|
|
1835
|
+
var next_link = __webpack_require__(1664);
|
|
1836
|
+
var link_default = /*#__PURE__*/__webpack_require__.n(next_link);
|
|
1837
|
+
// EXTERNAL MODULE: ./src/components/ui/Image/Image.tsx + 1 modules
|
|
1838
|
+
var Image = __webpack_require__(5731);
|
|
1839
|
+
// EXTERNAL MODULE: ./src/sdk/product/useFormattedPrice.ts
|
|
1840
|
+
var useFormattedPrice = __webpack_require__(5346);
|
|
1841
|
+
// EXTERNAL MODULE: ./src/sdk/product/useProductLink.ts
|
|
1842
|
+
var useProductLink = __webpack_require__(9854);
|
|
1843
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
1844
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
1845
|
+
;// CONCATENATED MODULE: ./src/components/product/ProductCard/ProductCard.tsx
|
|
1846
|
+
const _excluded = ["product", "index", "bordered", "variant", "aspectRatio", "imgProps", "ratingValue", "buttonLabel", "onButtonClick", "showDiscountBadge"];
|
|
1847
|
+
|
|
1848
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
1849
|
+
|
|
1850
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
1851
|
+
|
|
1852
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1853
|
+
|
|
1854
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
1855
|
+
|
|
1856
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
|
|
1861
|
+
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
|
|
1866
|
+
|
|
1867
|
+
function ProductCard_ProductCard_ProductCard(_ref) {
|
|
1868
|
+
let {
|
|
1869
|
+
product,
|
|
1870
|
+
index,
|
|
1871
|
+
bordered = true,
|
|
1872
|
+
variant = 'default',
|
|
1873
|
+
aspectRatio = 1,
|
|
1874
|
+
imgProps,
|
|
1875
|
+
ratingValue,
|
|
1876
|
+
buttonLabel = 'Add',
|
|
1877
|
+
onButtonClick,
|
|
1878
|
+
showDiscountBadge = true
|
|
1879
|
+
} = _ref,
|
|
1880
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
1881
|
+
|
|
1882
|
+
const {
|
|
1883
|
+
sku,
|
|
1884
|
+
isVariantOf: {
|
|
1885
|
+
name
|
|
1886
|
+
},
|
|
1887
|
+
image: [img],
|
|
1888
|
+
offers: {
|
|
1889
|
+
lowPrice: spotPrice,
|
|
1890
|
+
offers: [{
|
|
1891
|
+
listPrice,
|
|
1892
|
+
availability
|
|
1893
|
+
}]
|
|
1894
|
+
}
|
|
1895
|
+
} = product;
|
|
1896
|
+
|
|
1897
|
+
const linkProps = _objectSpread(_objectSpread({}, (0,useProductLink/* useProductLink */.w)({
|
|
1898
|
+
product,
|
|
1899
|
+
selectedOffer: 0,
|
|
1900
|
+
index
|
|
1901
|
+
})), {}, {
|
|
1902
|
+
as: (link_default()),
|
|
1903
|
+
passHref: true,
|
|
1904
|
+
legacyBehavior: false,
|
|
1905
|
+
prefetch: false
|
|
1906
|
+
});
|
|
1907
|
+
|
|
1908
|
+
const outOfStock = (0,external_react_.useMemo)(() => availability !== 'https://schema.org/InStock', [availability]);
|
|
1909
|
+
return /*#__PURE__*/(0,jsx_runtime_.jsxs)(ProductCard_ProductCard, _objectSpread(_objectSpread({
|
|
1910
|
+
outOfStock: outOfStock,
|
|
1911
|
+
bordered: bordered,
|
|
1912
|
+
variant: variant,
|
|
1913
|
+
"data-fs-product-card-sku": sku
|
|
1914
|
+
}, otherProps), {}, {
|
|
1915
|
+
children: [/*#__PURE__*/jsx_runtime_.jsx(ProductCard_ProductCardImage, {
|
|
1916
|
+
aspectRatio: aspectRatio,
|
|
1917
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(Image/* default */.Z, {
|
|
1918
|
+
src: img.url,
|
|
1919
|
+
alt: img.alternateName,
|
|
1920
|
+
sizes: `${imgProps?.sizes ?? '(max-width: 768px) 40vw, 30vw'}`,
|
|
1921
|
+
width: imgProps?.width ?? 360,
|
|
1922
|
+
height: Math.round((Number(imgProps?.height) || 360) / aspectRatio),
|
|
1923
|
+
loading: imgProps?.loading
|
|
1924
|
+
})
|
|
1925
|
+
}), /*#__PURE__*/jsx_runtime_.jsx(ProductCard_ProductCardContent, {
|
|
1926
|
+
title: name,
|
|
1927
|
+
price: {
|
|
1928
|
+
value: spotPrice,
|
|
1929
|
+
listPrice: listPrice,
|
|
1930
|
+
formatter: useFormattedPrice/* useFormattedPrice */.P
|
|
1931
|
+
},
|
|
1932
|
+
ratingValue: ratingValue,
|
|
1933
|
+
outOfStock: outOfStock,
|
|
1934
|
+
onButtonClick: onButtonClick,
|
|
1935
|
+
linkProps: linkProps,
|
|
1936
|
+
showDiscountBadge: showDiscountBadge
|
|
1937
|
+
})]
|
|
1938
|
+
}));
|
|
1939
|
+
}
|
|
1940
|
+
|
|
1941
|
+
const fragment = "unknown";
|
|
1942
|
+
/* harmony default export */ const product_ProductCard_ProductCard = (/*#__PURE__*/(0,external_react_.memo)(ProductCard_ProductCard_ProductCard));
|
|
1943
|
+
|
|
1944
|
+
/***/ }),
|
|
1945
|
+
|
|
1612
1946
|
/***/ 9471:
|
|
1613
1947
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1614
1948
|
|
|
@@ -1654,7 +1988,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
1654
1988
|
|
|
1655
1989
|
|
|
1656
1990
|
|
|
1657
|
-
const SearchDropdown = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.lazy)(() =>
|
|
1991
|
+
const SearchDropdown = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.lazy)(() => __webpack_require__.e(/* import() */ 312).then(__webpack_require__.bind(__webpack_require__, 4312)));
|
|
1658
1992
|
const MAX_SUGGESTIONS = 5;
|
|
1659
1993
|
|
|
1660
1994
|
const sendAnalytics = async term => {
|
|
@@ -1751,95 +2085,429 @@ __webpack_async_result__();
|
|
|
1751
2085
|
|
|
1752
2086
|
/***/ }),
|
|
1753
2087
|
|
|
1754
|
-
/***/
|
|
2088
|
+
/***/ 6893:
|
|
1755
2089
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1756
2090
|
|
|
1757
2091
|
"use strict";
|
|
1758
2092
|
|
|
1759
2093
|
// EXPORTS
|
|
1760
2094
|
__webpack_require__.d(__webpack_exports__, {
|
|
1761
|
-
"
|
|
2095
|
+
"Z": () => (/* binding */ sections_Alert_Alert)
|
|
1762
2096
|
});
|
|
1763
2097
|
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
2098
|
+
// EXTERNAL MODULE: external "react"
|
|
2099
|
+
var external_react_ = __webpack_require__(6689);
|
|
2100
|
+
// EXTERNAL MODULE: ./src/sdk/tests/mark.tsx
|
|
2101
|
+
var mark = __webpack_require__(2541);
|
|
2102
|
+
// EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
|
|
2103
|
+
var Section = __webpack_require__(3271);
|
|
2104
|
+
// EXTERNAL MODULE: ./src/components/common/Alert/section.module.scss
|
|
2105
|
+
var section_module = __webpack_require__(7651);
|
|
2106
|
+
var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
|
|
2107
|
+
// EXTERNAL MODULE: ./src/sdk/overrides/OverrideContext.tsx
|
|
2108
|
+
var OverrideContext = __webpack_require__(5522);
|
|
2109
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
2110
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
2111
|
+
;// CONCATENATED MODULE: ./src/components/common/Alert/Alert.tsx
|
|
2112
|
+
const _excluded = ["content", "children"];
|
|
1770
2113
|
|
|
1771
|
-
|
|
1772
|
-
var getOverriddenSection = __webpack_require__(170);
|
|
1773
|
-
;// CONCATENATED MODULE: ./src/components/sections/Alert/OverriddenDefaultAlert.ts
|
|
2114
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
1774
2115
|
|
|
2116
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
1775
2117
|
|
|
2118
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1776
2119
|
|
|
1777
|
-
|
|
1778
|
-
* This component exists to support overrides 1.0
|
|
1779
|
-
*
|
|
1780
|
-
* This allows users to override the default Alert section present in the Headless CMS
|
|
1781
|
-
*/
|
|
1782
|
-
const OverriddenDefaultAlert = (0,getOverriddenSection/* getOverriddenSection */.v)(override);
|
|
2120
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
1783
2121
|
|
|
1784
|
-
|
|
2122
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
1785
2123
|
|
|
1786
|
-
/***/ 11:
|
|
1787
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1788
2124
|
|
|
1789
|
-
"use strict";
|
|
1790
2125
|
|
|
1791
|
-
// EXPORTS
|
|
1792
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
1793
|
-
"Z": () => (/* binding */ sections_Footer_Footer)
|
|
1794
|
-
});
|
|
1795
2126
|
|
|
1796
|
-
// EXTERNAL MODULE: external "react"
|
|
1797
|
-
var external_react_ = __webpack_require__(6689);
|
|
1798
|
-
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
1799
|
-
// EXTERNAL MODULE: ../components/dist/esm/atoms/List/List.js
|
|
1800
|
-
var List = __webpack_require__(4564);
|
|
1801
|
-
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
1802
|
-
var Icon = __webpack_require__(2614);
|
|
1803
|
-
// EXTERNAL MODULE: ../components/dist/esm/atoms/SROnly/SROnly.js
|
|
1804
|
-
var SROnly = __webpack_require__(5450);
|
|
1805
|
-
;// CONCATENATED MODULE: ../components/dist/esm/organisms/PaymentMethods/PaymentMethods.js
|
|
1806
2127
|
|
|
1807
2128
|
|
|
1808
|
-
const PaymentMethods = (0,external_react_.forwardRef)(function PaymentMethods({ testId = 'fs-payment-methods', title, 'aria-label': ariaLabel = 'Payment Methods', flagList, ...otherProps }, ref) {
|
|
1809
|
-
return (external_react_default().createElement("div", { ref: ref, "data-fs-payment-methods": true, "data-testid": testId, ...otherProps },
|
|
1810
|
-
!!title && external_react_default().createElement("div", { "data-fs-payment-methods-title": true }, title),
|
|
1811
|
-
external_react_default().createElement(List/* default */.Z, { "data-fs-payment-methods-flags": true, "aria-label": title ? undefined : ariaLabel }, flagList.map(({ alt: text, icon: { icon } }, index) => (external_react_default().createElement("li", { "data-fs-payment-methods-flag": true, key: `fs-payment-method-${index}-${text}` },
|
|
1812
|
-
external_react_default().createElement(Icon/* default */.Z, { width: 32, height: 22.5, name: icon }),
|
|
1813
|
-
text && external_react_default().createElement(SROnly/* default */.Z, { text: text })))))));
|
|
1814
|
-
});
|
|
1815
|
-
/* harmony default export */ const PaymentMethods_PaymentMethods = (PaymentMethods);
|
|
1816
|
-
//# sourceMappingURL=PaymentMethods.js.map
|
|
1817
|
-
// EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
|
|
1818
|
-
var Section = __webpack_require__(3271);
|
|
1819
|
-
// EXTERNAL MODULE: ./src/sdk/tests/mark.tsx
|
|
1820
|
-
var mark = __webpack_require__(2541);
|
|
1821
|
-
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
1822
|
-
var jsx_runtime_ = __webpack_require__(997);
|
|
1823
|
-
;// CONCATENATED MODULE: ./src/components/common/Footer/Footer.tsx
|
|
1824
2129
|
|
|
1825
2130
|
|
|
1826
|
-
function
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
2131
|
+
function Alert(_ref) {
|
|
2132
|
+
let {
|
|
2133
|
+
content,
|
|
2134
|
+
children
|
|
2135
|
+
} = _ref,
|
|
2136
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
2137
|
+
|
|
2138
|
+
const {
|
|
2139
|
+
Alert: AlertWrapper
|
|
2140
|
+
} = (0,OverrideContext/* useOverrideComponents */.r3)();
|
|
2141
|
+
const {
|
|
2142
|
+
0: displayAlert,
|
|
2143
|
+
1: setDisplayAlert
|
|
2144
|
+
} = (0,external_react_.useState)(true);
|
|
2145
|
+
const onAlertClose = (0,external_react_.useCallback)(() => setDisplayAlert(false), [setDisplayAlert]);
|
|
2146
|
+
|
|
2147
|
+
if (displayAlert === false) {
|
|
2148
|
+
return null;
|
|
2149
|
+
}
|
|
2150
|
+
|
|
2151
|
+
return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
|
|
2152
|
+
className: `${(section_module_default()).section} section-alert`,
|
|
2153
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(AlertWrapper.Component, _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
2154
|
+
// Dynamic props, shouldn't be overridable
|
|
2155
|
+
// This decision can be reviewed later if needed
|
|
2156
|
+
onClose: onAlertClose,
|
|
2157
|
+
children: content ?? children
|
|
2158
|
+
}))
|
|
1840
2159
|
});
|
|
1841
2160
|
}
|
|
1842
|
-
|
|
2161
|
+
|
|
2162
|
+
Alert.displayName = 'Alert';
|
|
2163
|
+
/* harmony default export */ const Alert_Alert = ((0,mark/* mark */.B)(Alert));
|
|
2164
|
+
;// CONCATENATED MODULE: ./src/components/sections/Alert/Alert.tsx
|
|
2165
|
+
function Alert_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2166
|
+
|
|
2167
|
+
function Alert_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Alert_ownKeys(Object(source), !0).forEach(function (key) { Alert_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Alert_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2168
|
+
|
|
2169
|
+
function Alert_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2170
|
+
|
|
2171
|
+
|
|
2172
|
+
|
|
2173
|
+
|
|
2174
|
+
|
|
2175
|
+
// TODO: Change actionPath and actionLabel with Link
|
|
2176
|
+
function Alert_Alert_Alert({
|
|
2177
|
+
icon,
|
|
2178
|
+
content,
|
|
2179
|
+
link: {
|
|
2180
|
+
text,
|
|
2181
|
+
to
|
|
2182
|
+
},
|
|
2183
|
+
dismissible
|
|
2184
|
+
}) {
|
|
2185
|
+
const {
|
|
2186
|
+
Alert: AlertWrapper,
|
|
2187
|
+
Icon
|
|
2188
|
+
} = (0,OverrideContext/* useOverrideComponents */.r3)();
|
|
2189
|
+
return /*#__PURE__*/jsx_runtime_.jsx(Alert_Alert, Alert_objectSpread(Alert_objectSpread({
|
|
2190
|
+
icon: /*#__PURE__*/jsx_runtime_.jsx(Icon.Component, Alert_objectSpread(Alert_objectSpread({}, Icon.props), {}, {
|
|
2191
|
+
name: icon ?? Icon.props.name
|
|
2192
|
+
}))
|
|
2193
|
+
}, AlertWrapper.props), {}, {
|
|
2194
|
+
link: Alert_objectSpread(Alert_objectSpread({}, AlertWrapper.props.link ?? {}), {}, {
|
|
2195
|
+
children: text ?? AlertWrapper.props.link?.children,
|
|
2196
|
+
href: to ?? AlertWrapper.props.link?.href,
|
|
2197
|
+
target: AlertWrapper.props.link?.target ?? '_self'
|
|
2198
|
+
}),
|
|
2199
|
+
dismissible: dismissible ?? AlertWrapper.props.dismissible,
|
|
2200
|
+
children: content
|
|
2201
|
+
}));
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
/* harmony default export */ const sections_Alert_Alert = (Alert_Alert_Alert);
|
|
2205
|
+
|
|
2206
|
+
/***/ }),
|
|
2207
|
+
|
|
2208
|
+
/***/ 6948:
|
|
2209
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2210
|
+
|
|
2211
|
+
"use strict";
|
|
2212
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2213
|
+
/* harmony export */ "p": () => (/* binding */ AlertDefaultComponents)
|
|
2214
|
+
/* harmony export */ });
|
|
2215
|
+
/* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8138);
|
|
2216
|
+
/* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2614);
|
|
2217
|
+
|
|
2218
|
+
const AlertDefaultComponents = {
|
|
2219
|
+
Alert: _faststore_ui__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z,
|
|
2220
|
+
Icon: _faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z
|
|
2221
|
+
};
|
|
2222
|
+
|
|
2223
|
+
/***/ }),
|
|
2224
|
+
|
|
2225
|
+
/***/ 1605:
|
|
2226
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
2227
|
+
|
|
2228
|
+
"use strict";
|
|
2229
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
2230
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2231
|
+
/* harmony export */ "N": () => (/* binding */ OverriddenDefaultAlert)
|
|
2232
|
+
/* harmony export */ });
|
|
2233
|
+
/* harmony import */ var src_customizations_src_components_overrides_Alert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2463);
|
|
2234
|
+
/* harmony import */ var src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8788);
|
|
2235
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__]);
|
|
2236
|
+
src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
2237
|
+
|
|
2238
|
+
|
|
2239
|
+
|
|
2240
|
+
/**
|
|
2241
|
+
* This component exists to support overrides 1.0
|
|
2242
|
+
*
|
|
2243
|
+
* This allows users to override the default Alert section present in the Headless CMS
|
|
2244
|
+
*/
|
|
2245
|
+
const OverriddenDefaultAlert = (0,src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__/* .getOverriddenSection */ .v)(src_customizations_src_components_overrides_Alert__WEBPACK_IMPORTED_MODULE_1__/* .override */ .K);
|
|
2246
|
+
__webpack_async_result__();
|
|
2247
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
2248
|
+
|
|
2249
|
+
/***/ }),
|
|
2250
|
+
|
|
2251
|
+
/***/ 9315:
|
|
2252
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2253
|
+
|
|
2254
|
+
"use strict";
|
|
2255
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2256
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2257
|
+
/* harmony export */ });
|
|
2258
|
+
/* harmony import */ var src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5522);
|
|
2259
|
+
/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3271);
|
|
2260
|
+
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7283);
|
|
2261
|
+
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
|
|
2262
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
2263
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
2264
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2265
|
+
|
|
2266
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2267
|
+
|
|
2268
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2269
|
+
|
|
2270
|
+
|
|
2271
|
+
|
|
2272
|
+
|
|
2273
|
+
|
|
2274
|
+
|
|
2275
|
+
// TODO: Change actionPath and actionLabel with Link
|
|
2276
|
+
function BannerText({
|
|
2277
|
+
title,
|
|
2278
|
+
caption,
|
|
2279
|
+
link: {
|
|
2280
|
+
url: linkUrl,
|
|
2281
|
+
text: linkText,
|
|
2282
|
+
linkTargetBlank
|
|
2283
|
+
},
|
|
2284
|
+
variant,
|
|
2285
|
+
colorVariant
|
|
2286
|
+
}) {
|
|
2287
|
+
const {
|
|
2288
|
+
BannerText: BannerTextWrapper,
|
|
2289
|
+
BannerTextContent
|
|
2290
|
+
} = (0,src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__/* .useOverrideComponents */ .r3)();
|
|
2291
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Section__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
|
|
2292
|
+
className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-banner layout__section`,
|
|
2293
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
|
2294
|
+
className: "layout__content",
|
|
2295
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(BannerTextWrapper.Component, _objectSpread(_objectSpread({}, BannerTextWrapper.props), {}, {
|
|
2296
|
+
variant: variant ?? BannerTextWrapper.props.variant ?? 'primary',
|
|
2297
|
+
colorVariant: colorVariant ?? BannerTextWrapper.props.colorVariant ?? 'main',
|
|
2298
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(BannerTextContent.Component, _objectSpread(_objectSpread({}, BannerTextContent.props), {}, {
|
|
2299
|
+
title: title,
|
|
2300
|
+
caption: caption,
|
|
2301
|
+
link: linkUrl ?? BannerTextContent.props.link,
|
|
2302
|
+
linkText: linkText ?? BannerTextContent.props.linkText,
|
|
2303
|
+
linkTargetBlank: linkTargetBlank ?? BannerTextContent.props.linkTargetBlank
|
|
2304
|
+
}))
|
|
2305
|
+
}))
|
|
2306
|
+
})
|
|
2307
|
+
});
|
|
2308
|
+
}
|
|
2309
|
+
|
|
2310
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BannerText);
|
|
2311
|
+
|
|
2312
|
+
/***/ }),
|
|
2313
|
+
|
|
2314
|
+
/***/ 719:
|
|
2315
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2316
|
+
|
|
2317
|
+
"use strict";
|
|
2318
|
+
|
|
2319
|
+
// EXPORTS
|
|
2320
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
2321
|
+
"b": () => (/* binding */ BannerTextDefaultComponents)
|
|
2322
|
+
});
|
|
2323
|
+
|
|
2324
|
+
// EXTERNAL MODULE: external "react"
|
|
2325
|
+
var external_react_ = __webpack_require__(6689);
|
|
2326
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
2327
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/BannerText/BannerText.js
|
|
2328
|
+
|
|
2329
|
+
const BannerTextContext = (0,external_react_.createContext)(undefined);
|
|
2330
|
+
const BannerText = (0,external_react_.forwardRef)(function BannerText({ children, testId = 'fs-banner-text', variant = 'primary', colorVariant = 'main', ...otherProps }, ref) {
|
|
2331
|
+
const context = { variant, colorVariant };
|
|
2332
|
+
return (external_react_default().createElement(BannerTextContext.Provider, { value: context },
|
|
2333
|
+
external_react_default().createElement("article", { ref: ref, "data-fs-banner-text": true, "data-fs-banner-text-variant": variant, "data-fs-banner-text-color-variant": colorVariant, "data-testid": testId, ...otherProps }, children)));
|
|
2334
|
+
});
|
|
2335
|
+
function useBannerText() {
|
|
2336
|
+
const context = (0,external_react_.useContext)(BannerTextContext);
|
|
2337
|
+
if (context === undefined) {
|
|
2338
|
+
throw new Error('Do not use BannerText components outside the BannerText context.');
|
|
2339
|
+
}
|
|
2340
|
+
return context;
|
|
2341
|
+
}
|
|
2342
|
+
/* harmony default export */ const BannerText_BannerText = (BannerText);
|
|
2343
|
+
//# sourceMappingURL=BannerText.js.map
|
|
2344
|
+
// EXTERNAL MODULE: ../components/dist/esm/molecules/LinkButton/LinkButton.js
|
|
2345
|
+
var LinkButton = __webpack_require__(3922);
|
|
2346
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/BannerText/BannerTextContent.js
|
|
2347
|
+
|
|
2348
|
+
|
|
2349
|
+
|
|
2350
|
+
const BannerTextContent = (0,external_react_.forwardRef)(function BannerTextContent({ testId = 'fs-banner-text-content', title, caption, link, linkText, linkTargetBlank, ...otherProps }, ref) {
|
|
2351
|
+
const { variant, colorVariant } = useBannerText();
|
|
2352
|
+
return (external_react_default().createElement("header", { ref: ref, "data-fs-banner-text-content": true, "data-fs-content": "banner-text", "data-testid": testId, ...otherProps },
|
|
2353
|
+
external_react_default().createElement("div", { "data-fs-banner-text-heading": true, "data-fs-banner-text-color-variant": colorVariant },
|
|
2354
|
+
external_react_default().createElement("h2", null, title),
|
|
2355
|
+
variant === 'secondary' && caption && external_react_default().createElement("p", null, caption)),
|
|
2356
|
+
external_react_default().createElement(LinkButton/* default */.Z, { "data-fs-banner-text-link": true, href: link, variant: variant, inverse: colorVariant === 'main', "aria-label": linkText, target: linkTargetBlank ? '_blank' : undefined }, linkText)));
|
|
2357
|
+
});
|
|
2358
|
+
/* harmony default export */ const BannerText_BannerTextContent = (BannerTextContent);
|
|
2359
|
+
//# sourceMappingURL=BannerTextContent.js.map
|
|
2360
|
+
;// CONCATENATED MODULE: ./src/components/sections/BannerText/DefaultComponents.ts
|
|
2361
|
+
|
|
2362
|
+
const BannerTextDefaultComponents = {
|
|
2363
|
+
BannerText: BannerText_BannerText,
|
|
2364
|
+
BannerTextContent: BannerText_BannerTextContent
|
|
2365
|
+
};
|
|
2366
|
+
|
|
2367
|
+
/***/ }),
|
|
2368
|
+
|
|
2369
|
+
/***/ 994:
|
|
2370
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
2371
|
+
|
|
2372
|
+
"use strict";
|
|
2373
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
2374
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2375
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2376
|
+
/* harmony export */ });
|
|
2377
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
2378
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2379
|
+
/* harmony import */ var src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7691);
|
|
2380
|
+
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9785);
|
|
2381
|
+
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__);
|
|
2382
|
+
/* harmony import */ var src_sdk_overrides_PageProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5953);
|
|
2383
|
+
/* harmony import */ var _ProductShelf_section_module_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6627);
|
|
2384
|
+
/* harmony import */ var _ProductShelf_section_module_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ProductShelf_section_module_scss__WEBPACK_IMPORTED_MODULE_5__);
|
|
2385
|
+
/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3271);
|
|
2386
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(997);
|
|
2387
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
|
|
2388
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_6__]);
|
|
2389
|
+
src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_6__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
2390
|
+
|
|
2391
|
+
|
|
2392
|
+
|
|
2393
|
+
|
|
2394
|
+
|
|
2395
|
+
|
|
2396
|
+
|
|
2397
|
+
|
|
2398
|
+
const CrossSellingShelf = ({
|
|
2399
|
+
numberOfItems,
|
|
2400
|
+
itemsPerPage,
|
|
2401
|
+
title,
|
|
2402
|
+
kind
|
|
2403
|
+
}) => {
|
|
2404
|
+
const {
|
|
2405
|
+
ref,
|
|
2406
|
+
inView
|
|
2407
|
+
} = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__.useInView)();
|
|
2408
|
+
const context = (0,src_sdk_overrides_PageProvider__WEBPACK_IMPORTED_MODULE_3__/* .usePDP */ .al)();
|
|
2409
|
+
const productGroupID = context?.data?.product?.isVariantOf?.productGroupID;
|
|
2410
|
+
const selectedFacets = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => [{
|
|
2411
|
+
key: kind,
|
|
2412
|
+
value: productGroupID
|
|
2413
|
+
}], [kind, productGroupID]);
|
|
2414
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(_Section__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
|
|
2415
|
+
className: `${(_ProductShelf_section_module_scss__WEBPACK_IMPORTED_MODULE_5___default().section)} section-product-shelf layout__section`,
|
|
2416
|
+
ref: ref,
|
|
2417
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
|
|
2418
|
+
inView: inView,
|
|
2419
|
+
numberOfItems: numberOfItems,
|
|
2420
|
+
itemsPerPage: itemsPerPage,
|
|
2421
|
+
title: title,
|
|
2422
|
+
selectedFacets: selectedFacets
|
|
2423
|
+
})
|
|
2424
|
+
});
|
|
2425
|
+
};
|
|
2426
|
+
|
|
2427
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CrossSellingShelf);
|
|
2428
|
+
__webpack_async_result__();
|
|
2429
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
2430
|
+
|
|
2431
|
+
/***/ }),
|
|
2432
|
+
|
|
2433
|
+
/***/ 8435:
|
|
2434
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2435
|
+
|
|
2436
|
+
"use strict";
|
|
2437
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2438
|
+
/* harmony export */ "q": () => (/* binding */ CrossSellingShelfDefaultComponents)
|
|
2439
|
+
/* harmony export */ });
|
|
2440
|
+
/* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6737);
|
|
2441
|
+
/* harmony import */ var src_components_product_ProductCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8553);
|
|
2442
|
+
/* harmony import */ var src_components_ui_Carousel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8619);
|
|
2443
|
+
|
|
2444
|
+
|
|
2445
|
+
|
|
2446
|
+
const CrossSellingShelfDefaultComponents = {
|
|
2447
|
+
ProductShelf: _faststore_ui__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z,
|
|
2448
|
+
__experimentalCarousel: src_components_ui_Carousel__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z,
|
|
2449
|
+
__experimentalProductCard: src_components_product_ProductCard__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z
|
|
2450
|
+
};
|
|
2451
|
+
|
|
2452
|
+
/***/ }),
|
|
2453
|
+
|
|
2454
|
+
/***/ 11:
|
|
2455
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2456
|
+
|
|
2457
|
+
"use strict";
|
|
2458
|
+
|
|
2459
|
+
// EXPORTS
|
|
2460
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
2461
|
+
"Z": () => (/* binding */ sections_Footer_Footer)
|
|
2462
|
+
});
|
|
2463
|
+
|
|
2464
|
+
// EXTERNAL MODULE: external "react"
|
|
2465
|
+
var external_react_ = __webpack_require__(6689);
|
|
2466
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
2467
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/List/List.js
|
|
2468
|
+
var List = __webpack_require__(4564);
|
|
2469
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
2470
|
+
var Icon = __webpack_require__(2614);
|
|
2471
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/SROnly/SROnly.js
|
|
2472
|
+
var SROnly = __webpack_require__(5450);
|
|
2473
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/PaymentMethods/PaymentMethods.js
|
|
2474
|
+
|
|
2475
|
+
|
|
2476
|
+
const PaymentMethods = (0,external_react_.forwardRef)(function PaymentMethods({ testId = 'fs-payment-methods', title, 'aria-label': ariaLabel = 'Payment Methods', flagList, ...otherProps }, ref) {
|
|
2477
|
+
return (external_react_default().createElement("div", { ref: ref, "data-fs-payment-methods": true, "data-testid": testId, ...otherProps },
|
|
2478
|
+
!!title && external_react_default().createElement("div", { "data-fs-payment-methods-title": true }, title),
|
|
2479
|
+
external_react_default().createElement(List/* default */.Z, { "data-fs-payment-methods-flags": true, "aria-label": title ? undefined : ariaLabel }, flagList.map(({ alt: text, icon: { icon } }, index) => (external_react_default().createElement("li", { "data-fs-payment-methods-flag": true, key: `fs-payment-method-${index}-${text}` },
|
|
2480
|
+
external_react_default().createElement(Icon/* default */.Z, { width: 32, height: 22.5, name: icon }),
|
|
2481
|
+
text && external_react_default().createElement(SROnly/* default */.Z, { text: text })))))));
|
|
2482
|
+
});
|
|
2483
|
+
/* harmony default export */ const PaymentMethods_PaymentMethods = (PaymentMethods);
|
|
2484
|
+
//# sourceMappingURL=PaymentMethods.js.map
|
|
2485
|
+
// EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
|
|
2486
|
+
var Section = __webpack_require__(3271);
|
|
2487
|
+
// EXTERNAL MODULE: ./src/sdk/tests/mark.tsx
|
|
2488
|
+
var mark = __webpack_require__(2541);
|
|
2489
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
2490
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
2491
|
+
;// CONCATENATED MODULE: ./src/components/common/Footer/Footer.tsx
|
|
2492
|
+
|
|
2493
|
+
|
|
2494
|
+
function FooterInfo({
|
|
2495
|
+
children
|
|
2496
|
+
}) {
|
|
2497
|
+
return /*#__PURE__*/jsx_runtime_.jsx("div", {
|
|
2498
|
+
"data-fs-footer-info": true,
|
|
2499
|
+
children: children
|
|
2500
|
+
});
|
|
2501
|
+
}
|
|
2502
|
+
function FooterNavigation({
|
|
2503
|
+
children
|
|
2504
|
+
}) {
|
|
2505
|
+
return /*#__PURE__*/jsx_runtime_.jsx("div", {
|
|
2506
|
+
"data-fs-footer-navigation": true,
|
|
2507
|
+
children: children
|
|
2508
|
+
});
|
|
2509
|
+
}
|
|
2510
|
+
function Footer({
|
|
1843
2511
|
children
|
|
1844
2512
|
}) {
|
|
1845
2513
|
return /*#__PURE__*/jsx_runtime_.jsx("footer", {
|
|
@@ -2060,7 +2728,145 @@ const Footer_Footer_Footer = ({
|
|
|
2060
2728
|
});
|
|
2061
2729
|
};
|
|
2062
2730
|
|
|
2063
|
-
/* harmony default export */ const sections_Footer_Footer = (Footer_Footer_Footer);
|
|
2731
|
+
/* harmony default export */ const sections_Footer_Footer = (Footer_Footer_Footer);
|
|
2732
|
+
|
|
2733
|
+
/***/ }),
|
|
2734
|
+
|
|
2735
|
+
/***/ 9569:
|
|
2736
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2737
|
+
|
|
2738
|
+
"use strict";
|
|
2739
|
+
|
|
2740
|
+
// EXPORTS
|
|
2741
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
2742
|
+
"O": () => (/* binding */ HeroDefaultComponents)
|
|
2743
|
+
});
|
|
2744
|
+
|
|
2745
|
+
// EXTERNAL MODULE: external "react"
|
|
2746
|
+
var external_react_ = __webpack_require__(6689);
|
|
2747
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
2748
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/Hero.js
|
|
2749
|
+
|
|
2750
|
+
const HeroContext = (0,external_react_.createContext)(undefined);
|
|
2751
|
+
const Hero = (0,external_react_.forwardRef)(function Hero({ children, testId = 'fs-hero', variant = 'primary', colorVariant = 'main', ...otherProps }, ref) {
|
|
2752
|
+
const context = { variant, colorVariant };
|
|
2753
|
+
return (external_react_default().createElement(HeroContext.Provider, { value: context },
|
|
2754
|
+
external_react_default().createElement("article", { ref: ref, "data-fs-hero": true, "data-fs-hero-variant": variant, "data-fs-hero-color-variant": colorVariant, "data-testid": testId, ...otherProps }, children)));
|
|
2755
|
+
});
|
|
2756
|
+
function useHero() {
|
|
2757
|
+
const context = (0,external_react_.useContext)(HeroContext);
|
|
2758
|
+
if (context === undefined) {
|
|
2759
|
+
throw new Error('Do not use Hero components outside the Hero context.');
|
|
2760
|
+
}
|
|
2761
|
+
return context;
|
|
2762
|
+
}
|
|
2763
|
+
/* harmony default export */ const Hero_Hero = (Hero);
|
|
2764
|
+
//# sourceMappingURL=Hero.js.map
|
|
2765
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/HeroImage.js
|
|
2766
|
+
|
|
2767
|
+
const HeroImage = (0,external_react_.forwardRef)(function HeroImage({ children, testId = 'fs-hero-image', ...otherProps }, ref) {
|
|
2768
|
+
return (external_react_default().createElement("div", { ref: ref, "data-fs-hero-image": true, "data-testid": testId, ...otherProps }, children));
|
|
2769
|
+
});
|
|
2770
|
+
/* harmony default export */ const Hero_HeroImage = (HeroImage);
|
|
2771
|
+
//# sourceMappingURL=HeroImage.js.map
|
|
2772
|
+
// EXTERNAL MODULE: ../components/dist/esm/molecules/LinkButton/LinkButton.js
|
|
2773
|
+
var LinkButton = __webpack_require__(3922);
|
|
2774
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
2775
|
+
var Icon = __webpack_require__(2614);
|
|
2776
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/HeroHeader.js
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
const HeroHeader = (0,external_react_.forwardRef)(function HeroHeader({ icon, link, title, linkText, linkTargetBlank, subtitle, children, testId = 'fs-hero-heading', ...otherProps }, ref) {
|
|
2781
|
+
const { variant, colorVariant } = useHero();
|
|
2782
|
+
return (external_react_default().createElement("header", { ref: ref, "data-fs-hero-heading": true, "data-testid": testId, ...otherProps },
|
|
2783
|
+
external_react_default().createElement("div", { "data-fs-hero-wrapper": true, "data-fs-content": "hero" },
|
|
2784
|
+
external_react_default().createElement("div", { "data-fs-hero-info": true },
|
|
2785
|
+
external_react_default().createElement("h1", { "data-fs-hero-title": true }, title),
|
|
2786
|
+
external_react_default().createElement("p", { "data-fs-hero-subtitle": true }, subtitle),
|
|
2787
|
+
!!link && (external_react_default().createElement(LinkButton/* default */.Z, { href: link, inverse: colorVariant === 'main', icon: external_react_default().createElement(Icon/* default */.Z, { name: "ArrowRight" }), iconPosition: "right", target: linkTargetBlank ? '_blank' : undefined }, linkText))),
|
|
2788
|
+
!!icon && variant === 'secondary' && (external_react_default().createElement("span", { "data-fs-hero-icon": true }, icon)))));
|
|
2789
|
+
});
|
|
2790
|
+
/* harmony default export */ const Hero_HeroHeader = (HeroHeader);
|
|
2791
|
+
//# sourceMappingURL=HeroHeader.js.map
|
|
2792
|
+
;// CONCATENATED MODULE: ./src/components/sections/Hero/DefaultComponents.ts
|
|
2793
|
+
|
|
2794
|
+
const HeroDefaultComponents = {
|
|
2795
|
+
Hero: Hero_Hero,
|
|
2796
|
+
HeroImage: Hero_HeroImage,
|
|
2797
|
+
HeroHeader: Hero_HeroHeader
|
|
2798
|
+
};
|
|
2799
|
+
|
|
2800
|
+
/***/ }),
|
|
2801
|
+
|
|
2802
|
+
/***/ 2849:
|
|
2803
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2804
|
+
|
|
2805
|
+
"use strict";
|
|
2806
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2807
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2808
|
+
/* harmony export */ });
|
|
2809
|
+
/* harmony import */ var src_components_ui_Image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5731);
|
|
2810
|
+
/* harmony import */ var src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5522);
|
|
2811
|
+
/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3271);
|
|
2812
|
+
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6717);
|
|
2813
|
+
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
|
|
2814
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
2815
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
2816
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2817
|
+
|
|
2818
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2819
|
+
|
|
2820
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2821
|
+
|
|
2822
|
+
|
|
2823
|
+
|
|
2824
|
+
|
|
2825
|
+
|
|
2826
|
+
|
|
2827
|
+
|
|
2828
|
+
|
|
2829
|
+
const Hero = ({
|
|
2830
|
+
link,
|
|
2831
|
+
title,
|
|
2832
|
+
subtitle,
|
|
2833
|
+
image,
|
|
2834
|
+
variant,
|
|
2835
|
+
colorVariant,
|
|
2836
|
+
icon
|
|
2837
|
+
}) => {
|
|
2838
|
+
const {
|
|
2839
|
+
Hero: HeroWrapper,
|
|
2840
|
+
HeroImage,
|
|
2841
|
+
HeroHeader
|
|
2842
|
+
} = (0,src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__/* .useOverrideComponents */ .r3)();
|
|
2843
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Section__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
|
|
2844
|
+
className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-hero`,
|
|
2845
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(HeroWrapper.Component, _objectSpread(_objectSpread({}, HeroWrapper.props), {}, {
|
|
2846
|
+
variant: variant ?? HeroWrapper.props.variant ?? 'primary',
|
|
2847
|
+
colorVariant: colorVariant ?? HeroWrapper.props.colorVariant ?? 'main',
|
|
2848
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(HeroImage.Component, _objectSpread(_objectSpread({}, HeroImage.props), {}, {
|
|
2849
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(src_components_ui_Image__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
|
|
2850
|
+
loading: "eager",
|
|
2851
|
+
src: image.src,
|
|
2852
|
+
alt: image.alt,
|
|
2853
|
+
width: 360,
|
|
2854
|
+
height: 240,
|
|
2855
|
+
sizes: "(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw"
|
|
2856
|
+
})
|
|
2857
|
+
})), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(HeroHeader.Component, _objectSpread({
|
|
2858
|
+
title: title,
|
|
2859
|
+
subtitle: subtitle,
|
|
2860
|
+
link: link?.url,
|
|
2861
|
+
linkText: link?.text,
|
|
2862
|
+
linkTargetBlank: link?.linkTargetBlank,
|
|
2863
|
+
icon: icon
|
|
2864
|
+
}, HeroHeader.props))]
|
|
2865
|
+
}))
|
|
2866
|
+
});
|
|
2867
|
+
};
|
|
2868
|
+
|
|
2869
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Hero);
|
|
2064
2870
|
|
|
2065
2871
|
/***/ }),
|
|
2066
2872
|
|
|
@@ -2274,6 +3080,78 @@ const {
|
|
|
2274
3080
|
}, override);
|
|
2275
3081
|
|
|
2276
3082
|
|
|
3083
|
+
/***/ }),
|
|
3084
|
+
|
|
3085
|
+
/***/ 2432:
|
|
3086
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3087
|
+
|
|
3088
|
+
"use strict";
|
|
3089
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3090
|
+
/* harmony export */ "B": () => (/* binding */ ProductShelfDefaultComponents)
|
|
3091
|
+
/* harmony export */ });
|
|
3092
|
+
/* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6737);
|
|
3093
|
+
/* harmony import */ var src_components_product_ProductCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8553);
|
|
3094
|
+
/* harmony import */ var src_components_ui_Carousel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8619);
|
|
3095
|
+
|
|
3096
|
+
|
|
3097
|
+
|
|
3098
|
+
const ProductShelfDefaultComponents = {
|
|
3099
|
+
ProductShelf: _faststore_ui__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z,
|
|
3100
|
+
__experimentalCarousel: src_components_ui_Carousel__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z,
|
|
3101
|
+
__experimentalProductCard: src_components_product_ProductCard__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z
|
|
3102
|
+
};
|
|
3103
|
+
|
|
3104
|
+
/***/ }),
|
|
3105
|
+
|
|
3106
|
+
/***/ 8569:
|
|
3107
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
3108
|
+
|
|
3109
|
+
"use strict";
|
|
3110
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
3111
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3112
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
3113
|
+
/* harmony export */ });
|
|
3114
|
+
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9785);
|
|
3115
|
+
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__);
|
|
3116
|
+
/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3271);
|
|
3117
|
+
/* harmony import */ var src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7691);
|
|
3118
|
+
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6627);
|
|
3119
|
+
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
|
|
3120
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
|
|
3121
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
|
|
3122
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__]);
|
|
3123
|
+
src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
3124
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3125
|
+
|
|
3126
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3127
|
+
|
|
3128
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
|
|
3132
|
+
|
|
3133
|
+
|
|
3134
|
+
|
|
3135
|
+
|
|
3136
|
+
function ProductShelfSection(_ref) {
|
|
3137
|
+
let otherProps = Object.assign({}, _ref);
|
|
3138
|
+
const {
|
|
3139
|
+
ref,
|
|
3140
|
+
inView
|
|
3141
|
+
} = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__.useInView)();
|
|
3142
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(_Section__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
|
|
3143
|
+
className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-product-shelf layout__section`,
|
|
3144
|
+
ref: ref,
|
|
3145
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, _objectSpread({
|
|
3146
|
+
inView: inView
|
|
3147
|
+
}, otherProps))
|
|
3148
|
+
});
|
|
3149
|
+
}
|
|
3150
|
+
|
|
3151
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelfSection);
|
|
3152
|
+
__webpack_async_result__();
|
|
3153
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
3154
|
+
|
|
2277
3155
|
/***/ }),
|
|
2278
3156
|
|
|
2279
3157
|
/***/ 3830:
|
|
@@ -2478,6 +3356,149 @@ const Section = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(f
|
|
|
2478
3356
|
|
|
2479
3357
|
/***/ }),
|
|
2480
3358
|
|
|
3359
|
+
/***/ 6531:
|
|
3360
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3361
|
+
|
|
3362
|
+
"use strict";
|
|
3363
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3364
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
3365
|
+
/* harmony export */ });
|
|
3366
|
+
/* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(792);
|
|
3367
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
3368
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
3369
|
+
|
|
3370
|
+
|
|
3371
|
+
|
|
3372
|
+
|
|
3373
|
+
function ProductCardSkeleton({
|
|
3374
|
+
bordered,
|
|
3375
|
+
sectioned,
|
|
3376
|
+
displayButton,
|
|
3377
|
+
aspectRatio = 1,
|
|
3378
|
+
variant = 'default'
|
|
3379
|
+
}) {
|
|
3380
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
3381
|
+
"data-fs-product-card-skeleton": true,
|
|
3382
|
+
"data-fs-product-card-skeleton-variant": variant,
|
|
3383
|
+
"data-fs-product-card-skeleton-bordered": bordered,
|
|
3384
|
+
"data-fs-product-card-skeleton-sectioned": sectioned,
|
|
3385
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
|
3386
|
+
"data-fs-product-card-skeleton-image": true,
|
|
3387
|
+
style: {
|
|
3388
|
+
'--fs-product-card-skeleton-image-aspect-ratio': aspectRatio
|
|
3389
|
+
},
|
|
3390
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
3391
|
+
size: {
|
|
3392
|
+
width: '100%',
|
|
3393
|
+
height: '100%'
|
|
3394
|
+
}
|
|
3395
|
+
})
|
|
3396
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
3397
|
+
"data-fs-product-card-skeleton-content": true,
|
|
3398
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
3399
|
+
"data-fs-product-card-skeleton-text": true,
|
|
3400
|
+
size: {
|
|
3401
|
+
width: '90%',
|
|
3402
|
+
height: '1.5rem'
|
|
3403
|
+
}
|
|
3404
|
+
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
3405
|
+
"data-fs-product-card-skeleton-text": true,
|
|
3406
|
+
size: {
|
|
3407
|
+
width: '70%',
|
|
3408
|
+
height: '1.5rem'
|
|
3409
|
+
}
|
|
3410
|
+
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
3411
|
+
"data-fs-product-card-skeleton-badge": true,
|
|
3412
|
+
size: {
|
|
3413
|
+
width: '6rem',
|
|
3414
|
+
height: '2rem'
|
|
3415
|
+
},
|
|
3416
|
+
border: "pill"
|
|
3417
|
+
}), displayButton && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
3418
|
+
"data-fs-product-card-skeleton-button": true,
|
|
3419
|
+
size: {
|
|
3420
|
+
width: '6rem',
|
|
3421
|
+
height: '2rem'
|
|
3422
|
+
},
|
|
3423
|
+
style: {
|
|
3424
|
+
columnGap: '.75rem'
|
|
3425
|
+
}
|
|
3426
|
+
})]
|
|
3427
|
+
})]
|
|
3428
|
+
});
|
|
3429
|
+
}
|
|
3430
|
+
|
|
3431
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductCardSkeleton);
|
|
3432
|
+
|
|
3433
|
+
/***/ }),
|
|
3434
|
+
|
|
3435
|
+
/***/ 6523:
|
|
3436
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3437
|
+
|
|
3438
|
+
"use strict";
|
|
3439
|
+
|
|
3440
|
+
// EXPORTS
|
|
3441
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
3442
|
+
"Z": () => (/* binding */ ProductShelfSkeleton_ProductShelfSkeleton)
|
|
3443
|
+
});
|
|
3444
|
+
|
|
3445
|
+
// EXTERNAL MODULE: ../components/dist/esm/organisms/ProductShelf/ProductShelf.js
|
|
3446
|
+
var ProductShelf = __webpack_require__(6737);
|
|
3447
|
+
// EXTERNAL MODULE: external "react"
|
|
3448
|
+
var external_react_ = __webpack_require__(6689);
|
|
3449
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
3450
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/ProductShelf/ProductShelfItems.js
|
|
3451
|
+
|
|
3452
|
+
const ProductShelfItems = (0,external_react_.forwardRef)(function ProductShelfItems({ testId = 'fs-product-shelf-items', children, ...otherProps }, ref) {
|
|
3453
|
+
return (external_react_default().createElement("ul", { role: "list", ref: ref, "data-fs-product-shelf-items": true, "data-fs-content": "product-shelf", "data-testid": testId, ...otherProps }, children));
|
|
3454
|
+
});
|
|
3455
|
+
/* harmony default export */ const ProductShelf_ProductShelfItems = (ProductShelfItems);
|
|
3456
|
+
//# sourceMappingURL=ProductShelfItems.js.map
|
|
3457
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/ProductShelf/ProductShelfItem.js
|
|
3458
|
+
|
|
3459
|
+
const ProductShelfItem = (0,external_react_.forwardRef)(function ProductShelfItem({ testId = 'fs-product-shelf-item', children, ...otherProps }, ref) {
|
|
3460
|
+
return (external_react_default().createElement("li", { role: "listitem", ref: ref, "data-fs-product-shelf-item": true, "data-testid": testId, ...otherProps }, children));
|
|
3461
|
+
});
|
|
3462
|
+
/* harmony default export */ const ProductShelf_ProductShelfItem = (ProductShelfItem);
|
|
3463
|
+
//# sourceMappingURL=ProductShelfItem.js.map
|
|
3464
|
+
// EXTERNAL MODULE: ./src/components/skeletons/ProductCardSkeleton/ProductCardSkeleton.tsx
|
|
3465
|
+
var ProductCardSkeleton = __webpack_require__(6531);
|
|
3466
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
3467
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
3468
|
+
;// CONCATENATED MODULE: ./src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx
|
|
3469
|
+
|
|
3470
|
+
|
|
3471
|
+
|
|
3472
|
+
|
|
3473
|
+
|
|
3474
|
+
function ProductShelfSkeleton({
|
|
3475
|
+
children,
|
|
3476
|
+
aspectRatio,
|
|
3477
|
+
itemsPerPage,
|
|
3478
|
+
loading = true
|
|
3479
|
+
}) {
|
|
3480
|
+
return loading ? /*#__PURE__*/jsx_runtime_.jsx(ProductShelf/* default */.Z, {
|
|
3481
|
+
"data-fs-product-shelf-skeleton": true,
|
|
3482
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(ProductShelf_ProductShelfItems, {
|
|
3483
|
+
children: Array.from({
|
|
3484
|
+
length: itemsPerPage
|
|
3485
|
+
}, (_, index) => /*#__PURE__*/jsx_runtime_.jsx(ProductShelf_ProductShelfItem, {
|
|
3486
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(ProductCardSkeleton/* default */.Z, {
|
|
3487
|
+
aspectRatio: aspectRatio,
|
|
3488
|
+
sectioned: true,
|
|
3489
|
+
bordered: true
|
|
3490
|
+
})
|
|
3491
|
+
}, String(index)))
|
|
3492
|
+
})
|
|
3493
|
+
}) : /*#__PURE__*/jsx_runtime_.jsx(jsx_runtime_.Fragment, {
|
|
3494
|
+
children: children
|
|
3495
|
+
});
|
|
3496
|
+
}
|
|
3497
|
+
|
|
3498
|
+
/* harmony default export */ const ProductShelfSkeleton_ProductShelfSkeleton = (ProductShelfSkeleton);
|
|
3499
|
+
|
|
3500
|
+
/***/ }),
|
|
3501
|
+
|
|
2481
3502
|
/***/ 2016:
|
|
2482
3503
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2483
3504
|
|
|
@@ -2494,35 +3515,442 @@ const Section = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(f
|
|
|
2494
3515
|
|
|
2495
3516
|
|
|
2496
3517
|
|
|
2497
|
-
const ButtonSignIn = ({
|
|
2498
|
-
label,
|
|
2499
|
-
myAccountLabel,
|
|
2500
|
-
icon: {
|
|
2501
|
-
alt,
|
|
2502
|
-
icon
|
|
2503
|
-
}
|
|
2504
|
-
}) => {
|
|
2505
|
-
const {
|
|
2506
|
-
person
|
|
2507
|
-
} = (0,src_sdk_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
|
|
2508
|
-
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
|
|
2509
|
-
"data-fs-button-signin-link": true,
|
|
2510
|
-
href: person?.id ? `/account` : `/login`,
|
|
2511
|
-
className: "text__title-mini",
|
|
2512
|
-
"aria-label": alt,
|
|
2513
|
-
variant: "tertiary",
|
|
2514
|
-
icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
|
|
2515
|
-
name: icon,
|
|
2516
|
-
width: 18,
|
|
2517
|
-
height: 18,
|
|
2518
|
-
weight: "bold"
|
|
2519
|
-
}),
|
|
2520
|
-
iconPosition: "left",
|
|
2521
|
-
children: person?.id ? myAccountLabel : label
|
|
3518
|
+
const ButtonSignIn = ({
|
|
3519
|
+
label,
|
|
3520
|
+
myAccountLabel,
|
|
3521
|
+
icon: {
|
|
3522
|
+
alt,
|
|
3523
|
+
icon
|
|
3524
|
+
}
|
|
3525
|
+
}) => {
|
|
3526
|
+
const {
|
|
3527
|
+
person
|
|
3528
|
+
} = (0,src_sdk_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
|
|
3529
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
|
|
3530
|
+
"data-fs-button-signin-link": true,
|
|
3531
|
+
href: person?.id ? `/account` : `/login`,
|
|
3532
|
+
className: "text__title-mini",
|
|
3533
|
+
"aria-label": alt,
|
|
3534
|
+
variant: "tertiary",
|
|
3535
|
+
icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
|
|
3536
|
+
name: icon,
|
|
3537
|
+
width: 18,
|
|
3538
|
+
height: 18,
|
|
3539
|
+
weight: "bold"
|
|
3540
|
+
}),
|
|
3541
|
+
iconPosition: "left",
|
|
3542
|
+
children: person?.id ? myAccountLabel : label
|
|
3543
|
+
});
|
|
3544
|
+
};
|
|
3545
|
+
|
|
3546
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ButtonSignIn);
|
|
3547
|
+
|
|
3548
|
+
/***/ }),
|
|
3549
|
+
|
|
3550
|
+
/***/ 8619:
|
|
3551
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3552
|
+
|
|
3553
|
+
"use strict";
|
|
3554
|
+
|
|
3555
|
+
// EXPORTS
|
|
3556
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
3557
|
+
"Z": () => (/* binding */ ui_Carousel_Carousel)
|
|
3558
|
+
});
|
|
3559
|
+
|
|
3560
|
+
// EXTERNAL MODULE: external "react"
|
|
3561
|
+
var external_react_ = __webpack_require__(6689);
|
|
3562
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
3563
|
+
// EXTERNAL MODULE: ../components/dist/esm/molecules/IconButton/IconButton.js
|
|
3564
|
+
var IconButton = __webpack_require__(7041);
|
|
3565
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
3566
|
+
var Icon = __webpack_require__(2614);
|
|
3567
|
+
// EXTERNAL MODULE: external "react-swipeable"
|
|
3568
|
+
var external_react_swipeable_ = __webpack_require__(3789);
|
|
3569
|
+
;// CONCATENATED MODULE: ../components/dist/esm/hooks/useSlider.js
|
|
3570
|
+
|
|
3571
|
+
|
|
3572
|
+
const nextPage = (current, total) => (current + 1) % total;
|
|
3573
|
+
const previousPage = (current, total) => (total - ((total - current + 1) % total)) % total;
|
|
3574
|
+
function reducer(state, action) {
|
|
3575
|
+
switch (action.type) {
|
|
3576
|
+
case 'NEXT_PAGE': {
|
|
3577
|
+
// If `state.infinite` is true, we need to take into account an extra
|
|
3578
|
+
// page in the calculation. This extra page is a clone of the first page.
|
|
3579
|
+
const adjustedTotalPages = state.infinite
|
|
3580
|
+
? state.totalPages + 1
|
|
3581
|
+
: state.totalPages;
|
|
3582
|
+
const nextPageIndex = nextPage(state.currentPage, adjustedTotalPages);
|
|
3583
|
+
const nextItemIndex = (nextPageIndex % adjustedTotalPages) * state.itemsPerPage;
|
|
3584
|
+
return {
|
|
3585
|
+
...state,
|
|
3586
|
+
sliding: true,
|
|
3587
|
+
slideDirection: 'next',
|
|
3588
|
+
currentItem: nextItemIndex,
|
|
3589
|
+
currentPage: nextPageIndex,
|
|
3590
|
+
};
|
|
3591
|
+
}
|
|
3592
|
+
case 'PREVIOUS_PAGE': {
|
|
3593
|
+
// If `state.infinite` is true, we need to take into account an extra
|
|
3594
|
+
// page in the calculation. This extra page is a clone of the first page.
|
|
3595
|
+
const adjustedTotalPages = state.infinite
|
|
3596
|
+
? state.totalPages + 1
|
|
3597
|
+
: state.totalPages;
|
|
3598
|
+
// If `state.infinite` is true and we're currently on page 0, we need to
|
|
3599
|
+
// let the slider go to page -1. This -1 page is a clone of the last page.
|
|
3600
|
+
const shouldGoToClone = state.infinite && state.currentPage === 0;
|
|
3601
|
+
const previousPageIndex = shouldGoToClone
|
|
3602
|
+
? -1
|
|
3603
|
+
: previousPage(state.currentPage, state.totalPages);
|
|
3604
|
+
return {
|
|
3605
|
+
...state,
|
|
3606
|
+
sliding: true,
|
|
3607
|
+
slideDirection: 'previous',
|
|
3608
|
+
currentItem: (previousPageIndex % adjustedTotalPages) * state.itemsPerPage,
|
|
3609
|
+
currentPage: previousPageIndex,
|
|
3610
|
+
};
|
|
3611
|
+
}
|
|
3612
|
+
case 'GO_TO_PAGE': {
|
|
3613
|
+
if (action.payload.pageIndex === state.currentPage) {
|
|
3614
|
+
return state;
|
|
3615
|
+
}
|
|
3616
|
+
return {
|
|
3617
|
+
...state,
|
|
3618
|
+
sliding: action.payload.shouldSlide,
|
|
3619
|
+
slideDirection: action.payload.pageIndex > state.currentPage ? 'next' : 'previous',
|
|
3620
|
+
currentItem: (action.payload.pageIndex % state.totalPages) * state.itemsPerPage,
|
|
3621
|
+
currentPage: action.payload.pageIndex,
|
|
3622
|
+
};
|
|
3623
|
+
}
|
|
3624
|
+
case 'STOP_SLIDE':
|
|
3625
|
+
return { ...state, sliding: false };
|
|
3626
|
+
default:
|
|
3627
|
+
return state;
|
|
3628
|
+
}
|
|
3629
|
+
}
|
|
3630
|
+
const defaultSliderState = (totalItems, itemsPerPage, infinite) => ({
|
|
3631
|
+
currentItem: 0,
|
|
3632
|
+
currentPage: 0,
|
|
3633
|
+
sliding: false,
|
|
3634
|
+
slideDirection: 'next',
|
|
3635
|
+
totalItems,
|
|
3636
|
+
itemsPerPage,
|
|
3637
|
+
totalPages: Math.ceil(totalItems / itemsPerPage),
|
|
3638
|
+
infinite,
|
|
3639
|
+
});
|
|
3640
|
+
const slide = (page, dispatch) => {
|
|
3641
|
+
if (page === 'next') {
|
|
3642
|
+
dispatch({ type: 'NEXT_PAGE' });
|
|
3643
|
+
}
|
|
3644
|
+
if (page === 'previous') {
|
|
3645
|
+
dispatch({ type: 'PREVIOUS_PAGE' });
|
|
3646
|
+
}
|
|
3647
|
+
if (typeof page === 'number') {
|
|
3648
|
+
dispatch({
|
|
3649
|
+
type: 'GO_TO_PAGE',
|
|
3650
|
+
payload: {
|
|
3651
|
+
pageIndex: page,
|
|
3652
|
+
shouldSlide: true,
|
|
3653
|
+
},
|
|
3654
|
+
});
|
|
3655
|
+
}
|
|
3656
|
+
};
|
|
3657
|
+
const useSlider = ({ totalItems, itemsPerPage = 1, infiniteMode = false, shouldSlideOnSwipe = true, ...swipeableConfigOverrides }) => {
|
|
3658
|
+
const [sliderState, sliderDispatch] = (0,external_react_.useReducer)(reducer, undefined, () => defaultSliderState(totalItems, itemsPerPage, infiniteMode));
|
|
3659
|
+
const handlers = (0,external_react_swipeable_.useSwipeable)({
|
|
3660
|
+
onSwipedRight: () => shouldSlideOnSwipe && slide('previous', sliderDispatch),
|
|
3661
|
+
onSwipedLeft: () => shouldSlideOnSwipe && slide('next', sliderDispatch),
|
|
3662
|
+
trackMouse: true,
|
|
3663
|
+
...swipeableConfigOverrides,
|
|
3664
|
+
});
|
|
3665
|
+
return {
|
|
3666
|
+
handlers,
|
|
3667
|
+
slide,
|
|
3668
|
+
sliderState,
|
|
3669
|
+
sliderDispatch,
|
|
3670
|
+
};
|
|
3671
|
+
};
|
|
3672
|
+
//# sourceMappingURL=useSlider.js.map
|
|
3673
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Button/Button.js
|
|
3674
|
+
var Button = __webpack_require__(3339);
|
|
3675
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Carousel/CarouselBullets.js
|
|
3676
|
+
|
|
3677
|
+
|
|
3678
|
+
const defaultAriaLabel = (id, idx, isActive) => isActive ? `Current page from ${id}` : `Go to page ${idx + 1} from ${id}`;
|
|
3679
|
+
const CarouselBullets = (0,external_react_.forwardRef)(function Bullets({ id, totalQuantity, activeBullet, onClick, testId = 'fs-carousel-bullets', ariaLabelGenerator = defaultAriaLabel, ariaControlsGenerator, ...otherProps }, ref) {
|
|
3680
|
+
const bulletIndexes = (0,external_react_.useMemo)(() => Array(totalQuantity).fill(0), [totalQuantity]);
|
|
3681
|
+
return (external_react_default().createElement("div", { ref: ref, "data-fs-carousel-bullets": true, "data-testid": testId, role: "tablist", ...otherProps }, bulletIndexes.map((_, idx) => {
|
|
3682
|
+
const isActive = activeBullet === idx;
|
|
3683
|
+
return (external_react_default().createElement(Button/* default */.Z, { key: `${id}-${idx}`, role: "tab", tabIndex: -1, "data-fs-carousel-bullet": true, testId: `${testId}-bullet`, onClick: (e) => onClick(e, idx), "aria-label": ariaLabelGenerator(id, idx, isActive), "aria-controls": ariaControlsGenerator?.(idx), "aria-selected": isActive, variant: "tertiary" }));
|
|
3684
|
+
})));
|
|
3685
|
+
});
|
|
3686
|
+
/* harmony default export */ const Carousel_CarouselBullets = (CarouselBullets);
|
|
3687
|
+
//# sourceMappingURL=CarouselBullets.js.map
|
|
3688
|
+
;// CONCATENATED MODULE: ../components/dist/esm/hooks/useSlideVisibility.js
|
|
3689
|
+
|
|
3690
|
+
function isSlideVisible({ itemsPerPage, currentSlide, slideIdx, totalItems, }) {
|
|
3691
|
+
const isClonedSlide = currentSlide < 0 || currentSlide >= totalItems;
|
|
3692
|
+
const isVisible = slideIdx >= currentSlide && slideIdx < currentSlide + itemsPerPage;
|
|
3693
|
+
return isClonedSlide || isVisible;
|
|
3694
|
+
}
|
|
3695
|
+
const useSlideVisibility = ({ currentSlide, itemsPerPage, totalItems, }) => {
|
|
3696
|
+
/** Keeps track of slides that have been visualized before.
|
|
3697
|
+
* We want to keep rendering them because the issue is mostly rendering
|
|
3698
|
+
* slides that might never be viewed; On the other hand, hiding slides
|
|
3699
|
+
* that were visible causes visual glitches */
|
|
3700
|
+
const visitedSlides = (0,external_react_.useRef)(new Set());
|
|
3701
|
+
(0,external_react_.useEffect)(() => {
|
|
3702
|
+
for (let i = 0; i < itemsPerPage; i++) {
|
|
3703
|
+
visitedSlides.current.add(currentSlide + i);
|
|
3704
|
+
}
|
|
3705
|
+
}, [currentSlide, itemsPerPage]);
|
|
3706
|
+
const isItemVisible = (index) => isSlideVisible({
|
|
3707
|
+
slideIdx: index,
|
|
3708
|
+
currentSlide,
|
|
3709
|
+
itemsPerPage,
|
|
3710
|
+
totalItems,
|
|
3711
|
+
});
|
|
3712
|
+
const shouldRenderItem = (index) => {
|
|
3713
|
+
return visitedSlides.current.has(index) || isItemVisible(index);
|
|
3714
|
+
};
|
|
3715
|
+
return { shouldRenderItem, isItemVisible };
|
|
3716
|
+
};
|
|
3717
|
+
//# sourceMappingURL=useSlideVisibility.js.map
|
|
3718
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Carousel/CarouselItem.js
|
|
3719
|
+
|
|
3720
|
+
|
|
3721
|
+
function CarouselItem({ id, index, state, children, totalItems, infiniteMode, isScrollCarousel, marginRightValue, }) {
|
|
3722
|
+
const { isItemVisible, shouldRenderItem } = useSlideVisibility({
|
|
3723
|
+
totalItems,
|
|
3724
|
+
currentSlide: state.currentItem,
|
|
3725
|
+
itemsPerPage: state.itemsPerPage,
|
|
3726
|
+
});
|
|
3727
|
+
const defaultStyle = { width: '100%' };
|
|
3728
|
+
const scrollCarouselStyle = {
|
|
3729
|
+
width: `calc((100% - ${marginRightValue} * ${state.itemsPerPage - 1}) / ${state.itemsPerPage})`,
|
|
3730
|
+
};
|
|
3731
|
+
const style = isScrollCarousel && state.itemsPerPage > 1
|
|
3732
|
+
? { ...scrollCarouselStyle }
|
|
3733
|
+
: { ...defaultStyle };
|
|
3734
|
+
const shouldDisplayItem = isScrollCarousel || shouldRenderItem(index - Number(infiniteMode));
|
|
3735
|
+
return (external_react_default().createElement("li", { style: style, id: `${id}-carousel-item-${index}`, "data-fs-carousel-item": true, "data-fs-carousel-item-visible": isItemVisible(index - Number(infiniteMode)) || undefined }, shouldDisplayItem ? children : null));
|
|
3736
|
+
}
|
|
3737
|
+
/* harmony default export */ const Carousel_CarouselItem = (CarouselItem);
|
|
3738
|
+
//# sourceMappingURL=CarouselItem.js.map
|
|
3739
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Carousel/Carousel.js
|
|
3740
|
+
|
|
3741
|
+
|
|
3742
|
+
|
|
3743
|
+
|
|
3744
|
+
|
|
3745
|
+
const createTransformValues = (infinite, totalItems) => {
|
|
3746
|
+
const transformMap = {};
|
|
3747
|
+
const slideWidth = 100 / totalItems;
|
|
3748
|
+
for (let idx = 0; idx < totalItems; ++idx) {
|
|
3749
|
+
const currIdx = infinite ? idx - 1 : idx;
|
|
3750
|
+
const transformValue = -(slideWidth * idx);
|
|
3751
|
+
transformMap[currIdx] = transformValue;
|
|
3752
|
+
}
|
|
3753
|
+
return transformMap;
|
|
3754
|
+
};
|
|
3755
|
+
function Carousel({ children, className, 'aria-label': ariaLabel, infiniteMode = false, controls = 'complete', testId = 'fs-carousel', transition = {
|
|
3756
|
+
duration: 400,
|
|
3757
|
+
property: 'transform',
|
|
3758
|
+
}, id = 'fs-carousel', variant = 'scroll', itemsPerPage = 1, navigationIcons = undefined, ...swipeableConfigOverrides }) {
|
|
3759
|
+
if (itemsPerPage < 1) {
|
|
3760
|
+
throw new Error('itemsPerPage must be greater than or equal to 1');
|
|
3761
|
+
}
|
|
3762
|
+
const carouselTrackRef = (0,external_react_.useRef)(null);
|
|
3763
|
+
const isSlideCarousel = variant === 'slide';
|
|
3764
|
+
const isScrollCarousel = variant === 'scroll';
|
|
3765
|
+
const childrenArray = external_react_default().Children.toArray(children);
|
|
3766
|
+
const childrenCount = childrenArray.length;
|
|
3767
|
+
const numberOfSlides = infiniteMode ? childrenCount + 2 : childrenCount;
|
|
3768
|
+
const slidingTransition = `${transition.property} ${transition.duration}ms ${transition.timing ?? ''} ${transition.delay ?? ''}`;
|
|
3769
|
+
const { handlers, slide, sliderState, sliderDispatch } = useSlider({
|
|
3770
|
+
itemsPerPage,
|
|
3771
|
+
infiniteMode,
|
|
3772
|
+
totalItems: childrenCount,
|
|
3773
|
+
shouldSlideOnSwipe: isSlideCarousel,
|
|
3774
|
+
...swipeableConfigOverrides,
|
|
3775
|
+
});
|
|
3776
|
+
const pagesCount = Math.ceil(childrenCount / sliderState.itemsPerPage);
|
|
3777
|
+
const [marginRight, setMarginRight] = (0,external_react_.useState)('16px');
|
|
3778
|
+
const [carouselItemsWidth, setCarouselItemsWidth] = (0,external_react_.useState)(0);
|
|
3779
|
+
(0,external_react_.useEffect)(() => {
|
|
3780
|
+
const item = carouselTrackRef.current?.firstElementChild;
|
|
3781
|
+
if (item) {
|
|
3782
|
+
setMarginRight(getComputedStyle(item).getPropertyValue('margin-right'));
|
|
3783
|
+
setCarouselItemsWidth(Number(item.clientWidth) + parseInt(marginRight, 10) + 1);
|
|
3784
|
+
}
|
|
3785
|
+
}, [carouselItemsWidth]);
|
|
3786
|
+
const showNavigationArrows = pagesCount !== 1 &&
|
|
3787
|
+
(controls === 'complete' || controls === 'navigationArrows');
|
|
3788
|
+
const showPaginationBullets = pagesCount !== 1 &&
|
|
3789
|
+
(controls === 'complete' || controls === 'paginationBullets');
|
|
3790
|
+
const transformValues = (0,external_react_.useMemo)(() => createTransformValues(infiniteMode, numberOfSlides), [numberOfSlides, infiniteMode]);
|
|
3791
|
+
const postRenderedSlides = infiniteMode && children ? childrenArray.slice(0, 1) : [];
|
|
3792
|
+
const preRenderedSlides = infiniteMode && children ? childrenArray.slice(childrenCount - 1) : [];
|
|
3793
|
+
const slides = preRenderedSlides.concat(children ?? [], postRenderedSlides);
|
|
3794
|
+
const slideCarouselTrackStyle = (0,external_react_.useMemo)(() => ({
|
|
3795
|
+
width: `${numberOfSlides * 100}%`,
|
|
3796
|
+
transition: sliderState.sliding ? slidingTransition : undefined,
|
|
3797
|
+
transform: `translate3d(${transformValues[sliderState.currentPage]}%, 0, 0)`,
|
|
3798
|
+
}), [
|
|
3799
|
+
numberOfSlides,
|
|
3800
|
+
transformValues,
|
|
3801
|
+
slidingTransition,
|
|
3802
|
+
sliderState.sliding,
|
|
3803
|
+
sliderState.currentPage,
|
|
3804
|
+
]);
|
|
3805
|
+
const scrollCarouselTrackStyle = (0,external_react_.useMemo)(() => ({
|
|
3806
|
+
width: '100%',
|
|
3807
|
+
overflowX: 'scroll',
|
|
3808
|
+
whiteSpace: 'nowrap',
|
|
3809
|
+
}), []);
|
|
3810
|
+
const carouselTrackStyle = (isSlideCarousel && slideCarouselTrackStyle) ||
|
|
3811
|
+
(isScrollCarousel && scrollCarouselTrackStyle);
|
|
3812
|
+
const slidePrevious = () => {
|
|
3813
|
+
if (sliderState.sliding ||
|
|
3814
|
+
(!infiniteMode && sliderState.currentPage === 0)) {
|
|
3815
|
+
return;
|
|
3816
|
+
}
|
|
3817
|
+
slide('previous', sliderDispatch);
|
|
3818
|
+
};
|
|
3819
|
+
const slideNext = () => {
|
|
3820
|
+
if (sliderState.sliding ||
|
|
3821
|
+
(!infiniteMode && sliderState.currentPage === childrenCount - 1)) {
|
|
3822
|
+
return;
|
|
3823
|
+
}
|
|
3824
|
+
slide('next', sliderDispatch);
|
|
3825
|
+
};
|
|
3826
|
+
const onScrollTrack = (event) => {
|
|
3827
|
+
if (isSlideCarousel || itemsPerPage > 1) {
|
|
3828
|
+
return;
|
|
3829
|
+
}
|
|
3830
|
+
const itemWidth = Number(event.currentTarget.firstElementChild?.scrollWidth);
|
|
3831
|
+
const scrollOffset = event.currentTarget?.scrollLeft;
|
|
3832
|
+
const formatter = scrollOffset > itemWidth / 2 ? Math.round : Math.floor;
|
|
3833
|
+
const page = formatter(scrollOffset / itemWidth);
|
|
3834
|
+
slide(page, sliderDispatch);
|
|
3835
|
+
};
|
|
3836
|
+
const onTransitionTrackEnd = () => {
|
|
3837
|
+
sliderDispatch({
|
|
3838
|
+
type: 'STOP_SLIDE',
|
|
3839
|
+
});
|
|
3840
|
+
if (infiniteMode && sliderState.currentItem >= childrenCount) {
|
|
3841
|
+
sliderDispatch({
|
|
3842
|
+
type: 'GO_TO_PAGE',
|
|
3843
|
+
payload: {
|
|
3844
|
+
pageIndex: 0,
|
|
3845
|
+
shouldSlide: false,
|
|
3846
|
+
},
|
|
3847
|
+
});
|
|
3848
|
+
}
|
|
3849
|
+
if (infiniteMode && sliderState.currentItem < 0) {
|
|
3850
|
+
sliderDispatch({
|
|
3851
|
+
type: 'GO_TO_PAGE',
|
|
3852
|
+
payload: {
|
|
3853
|
+
pageIndex: sliderState.totalPages - 1,
|
|
3854
|
+
shouldSlide: false,
|
|
3855
|
+
},
|
|
3856
|
+
});
|
|
3857
|
+
}
|
|
3858
|
+
};
|
|
3859
|
+
const onScrollPagination = async (index, slideDirection) => {
|
|
3860
|
+
if (slideDirection === 'previous' && sliderState.currentPage === 0) {
|
|
3861
|
+
return;
|
|
3862
|
+
}
|
|
3863
|
+
if (slideDirection === 'next' &&
|
|
3864
|
+
sliderState.currentPage === sliderState.totalPages - 1) {
|
|
3865
|
+
return;
|
|
3866
|
+
}
|
|
3867
|
+
let scrollOffset = index * carouselItemsWidth * itemsPerPage;
|
|
3868
|
+
carouselTrackRef.current?.scrollTo({
|
|
3869
|
+
left: scrollOffset,
|
|
3870
|
+
behavior: 'smooth',
|
|
3871
|
+
});
|
|
3872
|
+
slide(index, sliderDispatch);
|
|
3873
|
+
};
|
|
3874
|
+
// accessible behavior for tablist
|
|
3875
|
+
const handleBulletsKeyDown = (event) => {
|
|
3876
|
+
switch (event.key) {
|
|
3877
|
+
case 'ArrowLeft': {
|
|
3878
|
+
isSlideCarousel && slidePrevious();
|
|
3879
|
+
isScrollCarousel &&
|
|
3880
|
+
onScrollPagination(sliderState.currentPage - 1, 'previous');
|
|
3881
|
+
break;
|
|
3882
|
+
}
|
|
3883
|
+
case 'ArrowRight': {
|
|
3884
|
+
isSlideCarousel && slideNext();
|
|
3885
|
+
isScrollCarousel &&
|
|
3886
|
+
onScrollPagination(sliderState.currentPage + 1, 'next');
|
|
3887
|
+
break;
|
|
3888
|
+
}
|
|
3889
|
+
case 'Home': {
|
|
3890
|
+
slide(0, sliderDispatch);
|
|
3891
|
+
break;
|
|
3892
|
+
}
|
|
3893
|
+
case 'End': {
|
|
3894
|
+
slide(childrenCount - 1, sliderDispatch);
|
|
3895
|
+
break;
|
|
3896
|
+
}
|
|
3897
|
+
default:
|
|
3898
|
+
}
|
|
3899
|
+
};
|
|
3900
|
+
return (external_react_default().createElement("section", { id: id, "data-fs-carousel": true, "data-fs-carousel-variant": variant, className: className, "data-testid": testId, "aria-label": ariaLabel },
|
|
3901
|
+
external_react_default().createElement("div", { "data-fs-carousel-track-container": true, style: {
|
|
3902
|
+
width: '100%',
|
|
3903
|
+
overflow: 'hidden',
|
|
3904
|
+
display: isScrollCarousel ? 'block' : undefined,
|
|
3905
|
+
}, ...handlers },
|
|
3906
|
+
external_react_default().createElement("ul", { "aria-live": "polite", ref: carouselTrackRef, style: carouselTrackStyle, "data-fs-carousel-track": true, onScroll: onScrollTrack, onTransitionEnd: onTransitionTrackEnd }, slides.map((currentSlide, idx) => (external_react_default().createElement(Carousel_CarouselItem, { id: id, index: idx, key: String(idx), state: sliderState, totalItems: childrenCount, infiniteMode: infiniteMode, isScrollCarousel: isScrollCarousel, marginRightValue: marginRight }, currentSlide))))),
|
|
3907
|
+
showNavigationArrows && (external_react_default().createElement("div", { "data-fs-carousel-controls": true },
|
|
3908
|
+
external_react_default().createElement(IconButton/* default */.Z, { "data-fs-carousel-control": "left", "aria-controls": id, disabled: !infiniteMode && sliderState.currentPage === 0, "aria-label": "previous", icon: navigationIcons?.left ?? (external_react_default().createElement(Icon/* default */.Z, { name: "ArrowLeft", width: 20, height: 20, weight: "bold" })), onClick: () => {
|
|
3909
|
+
isSlideCarousel && slidePrevious();
|
|
3910
|
+
isScrollCarousel &&
|
|
3911
|
+
onScrollPagination(sliderState.currentPage - 1, 'previous');
|
|
3912
|
+
} }),
|
|
3913
|
+
external_react_default().createElement(IconButton/* default */.Z, { "data-fs-carousel-control": "right", "aria-controls": id, disabled: !infiniteMode &&
|
|
3914
|
+
sliderState.currentPage === sliderState.totalPages - 1, "aria-label": "next", icon: navigationIcons?.right ?? (external_react_default().createElement(Icon/* default */.Z, { name: "ArrowRight", width: 20, height: 20, weight: "bold" })), onClick: () => {
|
|
3915
|
+
isSlideCarousel && slideNext();
|
|
3916
|
+
isScrollCarousel &&
|
|
3917
|
+
onScrollPagination(sliderState.currentPage + 1, 'next');
|
|
3918
|
+
} }))),
|
|
3919
|
+
showPaginationBullets && (external_react_default().createElement(Carousel_CarouselBullets, { id: id, tabIndex: 0, activeBullet: sliderState.currentPage, totalQuantity: pagesCount, onKeyDown: handleBulletsKeyDown, onClick: async (_, idx) => {
|
|
3920
|
+
isSlideCarousel &&
|
|
3921
|
+
!sliderState.sliding &&
|
|
3922
|
+
slide(idx, sliderDispatch);
|
|
3923
|
+
isScrollCarousel && onScrollPagination(idx);
|
|
3924
|
+
}, onFocus: (event) => event.currentTarget.focus(), ariaControlsGenerator: (idx) => `${id}-carousel-item-${idx}` }))));
|
|
3925
|
+
}
|
|
3926
|
+
/* harmony default export */ const Carousel_Carousel = (Carousel);
|
|
3927
|
+
//# sourceMappingURL=Carousel.js.map
|
|
3928
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
3929
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
3930
|
+
;// CONCATENATED MODULE: ./src/components/ui/Carousel/Carousel.tsx
|
|
3931
|
+
|
|
3932
|
+
|
|
3933
|
+
|
|
3934
|
+
function Carousel_Carousel_Carousel({
|
|
3935
|
+
id,
|
|
3936
|
+
testId,
|
|
3937
|
+
children,
|
|
3938
|
+
itemsPerPage,
|
|
3939
|
+
variant = 'scroll',
|
|
3940
|
+
infiniteMode = false
|
|
3941
|
+
}) {
|
|
3942
|
+
const isMobile = window.innerWidth <= 768;
|
|
3943
|
+
return /*#__PURE__*/jsx_runtime_.jsx(Carousel_Carousel, {
|
|
3944
|
+
id: id,
|
|
3945
|
+
testId: testId,
|
|
3946
|
+
variant: variant,
|
|
3947
|
+
infiniteMode: infiniteMode,
|
|
3948
|
+
itemsPerPage: isMobile ? 1.6 : itemsPerPage,
|
|
3949
|
+
children: children
|
|
2522
3950
|
});
|
|
2523
|
-
}
|
|
3951
|
+
}
|
|
2524
3952
|
|
|
2525
|
-
/* harmony default export */ const
|
|
3953
|
+
/* harmony default export */ const ui_Carousel_Carousel = (Carousel_Carousel_Carousel);
|
|
2526
3954
|
|
|
2527
3955
|
/***/ }),
|
|
2528
3956
|
|
|
@@ -2785,120 +4213,39 @@ function Logo({
|
|
|
2785
4213
|
|
|
2786
4214
|
/***/ }),
|
|
2787
4215
|
|
|
2788
|
-
/***/
|
|
2789
|
-
/***/ ((
|
|
4216
|
+
/***/ 7691:
|
|
4217
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
2790
4218
|
|
|
2791
4219
|
"use strict";
|
|
4220
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
2792
4221
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2793
4222
|
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2794
4223
|
/* harmony export */ });
|
|
2795
|
-
|
|
2796
|
-
/* harmony
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
4224
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
4225
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
4226
|
+
/* harmony import */ var src_components_skeletons_ProductShelfSkeleton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6523);
|
|
4227
|
+
/* harmony import */ var src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5184);
|
|
4228
|
+
/* harmony import */ var src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5522);
|
|
4229
|
+
/* harmony import */ var src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4867);
|
|
4230
|
+
/* harmony import */ var src_utils_utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3952);
|
|
4231
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
|
|
4232
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
|
|
4233
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_4__]);
|
|
4234
|
+
src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
4235
|
+
const _excluded = ["title", "inView", "productCardConfiguration", "numberOfItems", "itemsPerPage"];
|
|
2802
4236
|
|
|
2803
|
-
|
|
4237
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2804
4238
|
|
|
2805
|
-
|
|
2806
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
2807
|
-
"i8": () => (/* binding */ cartStore),
|
|
2808
|
-
"jD": () => (/* binding */ useCart)
|
|
2809
|
-
});
|
|
4239
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2810
4240
|
|
|
2811
|
-
|
|
4241
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2812
4242
|
|
|
2813
|
-
|
|
2814
|
-
var error = __webpack_require__(2254);
|
|
2815
|
-
// EXTERNAL MODULE: ../sdk/dist/store/composed.js + 4 modules
|
|
2816
|
-
var composed = __webpack_require__(8283);
|
|
2817
|
-
;// CONCATENATED MODULE: ../sdk/dist/cart/index.js
|
|
4243
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
2818
4244
|
|
|
4245
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
2819
4246
|
|
|
2820
|
-
const createCartStore = (defaultCart, onValidate, namespace = "fs::cart") => {
|
|
2821
|
-
const store = (0,composed/* createStore */.M)(defaultCart, namespace, onValidate);
|
|
2822
|
-
const addItem = (item) => {
|
|
2823
|
-
if (!item.id) {
|
|
2824
|
-
throw new error/* SDKError */.q("You must provide an `id` for items");
|
|
2825
|
-
}
|
|
2826
|
-
if (item.quantity < 0) {
|
|
2827
|
-
throw new error/* SDKError */.q("Item quantity needs to be higher than zero");
|
|
2828
|
-
}
|
|
2829
|
-
const cart = store.read();
|
|
2830
|
-
const currentItem = getItem(item.id);
|
|
2831
|
-
const newItem = currentItem
|
|
2832
|
-
? {
|
|
2833
|
-
...item,
|
|
2834
|
-
quantity: currentItem.quantity + item.quantity,
|
|
2835
|
-
}
|
|
2836
|
-
: item;
|
|
2837
|
-
store.set({
|
|
2838
|
-
...cart,
|
|
2839
|
-
items: currentItem
|
|
2840
|
-
? cart.items.map((item) => item === currentItem ? newItem : item)
|
|
2841
|
-
: [...cart.items, newItem],
|
|
2842
|
-
});
|
|
2843
|
-
};
|
|
2844
|
-
const updateItemQuantity = (id, quantity) => {
|
|
2845
|
-
const cart = store.read();
|
|
2846
|
-
const currentItem = getItem(id);
|
|
2847
|
-
if (!currentItem) {
|
|
2848
|
-
throw new error/* SDKError */.q(`Item with id not found: ${id}`);
|
|
2849
|
-
}
|
|
2850
|
-
const newItem = {
|
|
2851
|
-
...currentItem,
|
|
2852
|
-
quantity,
|
|
2853
|
-
};
|
|
2854
|
-
store.set({
|
|
2855
|
-
...cart,
|
|
2856
|
-
items: cart.items
|
|
2857
|
-
.map((item) => item === currentItem ? newItem : item) // update item quantity
|
|
2858
|
-
.filter((item) => item.quantity > 0), // remove items if quantity is <= 0
|
|
2859
|
-
});
|
|
2860
|
-
};
|
|
2861
|
-
const removeItem = (id) => {
|
|
2862
|
-
const cart = store.read();
|
|
2863
|
-
const removed = getItem(id);
|
|
2864
|
-
store.set({
|
|
2865
|
-
...cart,
|
|
2866
|
-
items: cart.items.filter((item) => item !== removed),
|
|
2867
|
-
});
|
|
2868
|
-
};
|
|
2869
|
-
const emptyCart = () => store.set({ ...store.read(), items: [] });
|
|
2870
|
-
const getItem = (id) => store.read().items.find((item) => item.id === id);
|
|
2871
|
-
const inCart = (id) => Boolean(getItem(id));
|
|
2872
|
-
const isEmpty = () => store.read().items.length === 0;
|
|
2873
|
-
return {
|
|
2874
|
-
...store,
|
|
2875
|
-
getItem,
|
|
2876
|
-
addItem,
|
|
2877
|
-
updateItemQuantity,
|
|
2878
|
-
removeItem,
|
|
2879
|
-
emptyCart,
|
|
2880
|
-
inCart,
|
|
2881
|
-
isEmpty,
|
|
2882
|
-
};
|
|
2883
|
-
};
|
|
2884
|
-
//# sourceMappingURL=index.js.map
|
|
2885
|
-
// EXTERNAL MODULE: external "react"
|
|
2886
|
-
var external_react_ = __webpack_require__(6689);
|
|
2887
|
-
// EXTERNAL MODULE: ./faststore.config.js
|
|
2888
|
-
var faststore_config = __webpack_require__(7183);
|
|
2889
|
-
var faststore_config_default = /*#__PURE__*/__webpack_require__.n(faststore_config);
|
|
2890
|
-
// EXTERNAL MODULE: ./src/sdk/graphql/request.ts
|
|
2891
|
-
var request = __webpack_require__(180);
|
|
2892
|
-
// EXTERNAL MODULE: ./src/sdk/session/index.ts + 1 modules
|
|
2893
|
-
var session = __webpack_require__(7295);
|
|
2894
|
-
// EXTERNAL MODULE: ./src/sdk/useStore.ts
|
|
2895
|
-
var useStore = __webpack_require__(3818);
|
|
2896
|
-
;// CONCATENATED MODULE: ./src/sdk/cart/index.ts
|
|
2897
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2898
4247
|
|
|
2899
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
2900
4248
|
|
|
2901
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2902
4249
|
|
|
2903
4250
|
|
|
2904
4251
|
|
|
@@ -2906,546 +4253,565 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
2906
4253
|
|
|
2907
4254
|
|
|
2908
4255
|
|
|
2909
|
-
const ValidateCartMutation = "ValidateCartMutation";
|
|
2910
4256
|
|
|
2911
|
-
const isGift = item => item.price === 0;
|
|
2912
4257
|
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
4258
|
+
function ProductShelf(_ref) {
|
|
4259
|
+
let {
|
|
4260
|
+
title,
|
|
4261
|
+
inView,
|
|
4262
|
+
productCardConfiguration: {
|
|
4263
|
+
bordered,
|
|
4264
|
+
showDiscountBadge
|
|
4265
|
+
} = {},
|
|
4266
|
+
numberOfItems,
|
|
4267
|
+
itemsPerPage = 5
|
|
4268
|
+
} = _ref,
|
|
4269
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
2916
4270
|
|
|
2917
|
-
const validateCart = async cart => {
|
|
2918
4271
|
const {
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
image: itemOffered.image,
|
|
2940
|
-
name: itemOffered.name,
|
|
2941
|
-
additionalProperty: itemOffered.additionalProperty
|
|
2942
|
-
}
|
|
2943
|
-
}))
|
|
2944
|
-
}
|
|
2945
|
-
}
|
|
4272
|
+
ProductShelf: ProductShelfWrapper,
|
|
4273
|
+
__experimentalCarousel: Carousel,
|
|
4274
|
+
__experimentalProductCard: ProductCard
|
|
4275
|
+
} = (0,src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_2__/* .useOverrideComponents */ .r3)();
|
|
4276
|
+
const titleId = (0,src_utils_utilities__WEBPACK_IMPORTED_MODULE_3__/* .textToKebabCase */ .B)(title);
|
|
4277
|
+
const id = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();
|
|
4278
|
+
const viewedOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
|
|
4279
|
+
const data = (0,src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_4__/* .useProductsQuery */ .k)(_objectSpread({
|
|
4280
|
+
first: numberOfItems
|
|
4281
|
+
}, otherProps));
|
|
4282
|
+
const products = data?.search?.products;
|
|
4283
|
+
const productEdges = products?.edges ?? [];
|
|
4284
|
+
const aspectRatio = 1;
|
|
4285
|
+
const {
|
|
4286
|
+
sendViewItemListEvent
|
|
4287
|
+
} = (0,src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_5__/* .useViewItemListEvent */ .m)({
|
|
4288
|
+
products: productEdges,
|
|
4289
|
+
title,
|
|
4290
|
+
page: 0,
|
|
4291
|
+
pageSize: 0
|
|
2946
4292
|
});
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
}
|
|
2952
|
-
|
|
2953
|
-
};
|
|
2954
|
-
};
|
|
2955
|
-
|
|
2956
|
-
const [validationStore, onValidate] = (0,useStore/* createValidationStore */.d)(validateCart);
|
|
2957
|
-
const defaultCartStore = createCartStore((faststore_config_default()).cart, onValidate);
|
|
2958
|
-
const cartStore = _objectSpread(_objectSpread({}, defaultCartStore), {}, {
|
|
2959
|
-
addItem: item => {
|
|
2960
|
-
const cartItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
2961
|
-
id: getItemId(item)
|
|
2962
|
-
});
|
|
4293
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
4294
|
+
if (inView && !viewedOnce.current && productEdges.length) {
|
|
4295
|
+
sendViewItemListEvent();
|
|
4296
|
+
viewedOnce.current = true;
|
|
4297
|
+
}
|
|
4298
|
+
}, [inView, productEdges.length, sendViewItemListEvent]);
|
|
2963
4299
|
|
|
2964
|
-
|
|
4300
|
+
if (products?.edges.length === 0) {
|
|
4301
|
+
return null;
|
|
2965
4302
|
}
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
4303
|
+
|
|
4304
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
|
|
4305
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx("h2", {
|
|
4306
|
+
className: "text__title-section layout__content",
|
|
4307
|
+
children: title
|
|
4308
|
+
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_skeletons_ProductShelfSkeleton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
|
|
4309
|
+
aspectRatio: aspectRatio,
|
|
4310
|
+
loading: products === undefined,
|
|
4311
|
+
itemsPerPage: itemsPerPage,
|
|
4312
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(ProductShelfWrapper.Component, _objectSpread(_objectSpread({}, ProductShelfWrapper.props), {}, {
|
|
4313
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(Carousel.Component, _objectSpread(_objectSpread({
|
|
4314
|
+
id: titleId || id,
|
|
4315
|
+
itemsPerPage: itemsPerPage
|
|
4316
|
+
}, Carousel.props), {}, {
|
|
4317
|
+
children: productEdges.map((product, idx) => /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ProductCard.Component, _objectSpread(_objectSpread({
|
|
4318
|
+
aspectRatio: aspectRatio,
|
|
4319
|
+
imgProps: {
|
|
4320
|
+
width: 216,
|
|
4321
|
+
height: 216,
|
|
4322
|
+
sizes: '(max-width: 768px) 42vw, 30vw'
|
|
4323
|
+
}
|
|
4324
|
+
}, ProductCard.props), {}, {
|
|
4325
|
+
bordered: bordered ?? ProductCard.props.bordered,
|
|
4326
|
+
showDiscountBadge: showDiscountBadge ?? ProductCard.props.showDiscountBadge // Dynamic props shouldn't be overridable
|
|
4327
|
+
// This decision can be reviewed later if needed
|
|
4328
|
+
,
|
|
4329
|
+
key: `${product.node.id}`,
|
|
4330
|
+
product: product.node,
|
|
4331
|
+
index: idx + 1
|
|
4332
|
+
})))
|
|
4333
|
+
}))
|
|
4334
|
+
}))
|
|
4335
|
+
})]
|
|
4336
|
+
});
|
|
4337
|
+
}
|
|
4338
|
+
|
|
4339
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelf);
|
|
4340
|
+
__webpack_async_result__();
|
|
4341
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
2981
4342
|
|
|
2982
4343
|
/***/ }),
|
|
2983
4344
|
|
|
2984
|
-
/***/
|
|
4345
|
+
/***/ 8459:
|
|
2985
4346
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2986
4347
|
|
|
2987
4348
|
"use strict";
|
|
2988
4349
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2989
|
-
/* harmony export */ "
|
|
4350
|
+
/* harmony export */ "K": () => (/* binding */ ITEMS_PER_SECTION),
|
|
4351
|
+
/* harmony export */ "g": () => (/* binding */ ITEMS_PER_PAGE)
|
|
2990
4352
|
/* harmony export */ });
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
super(`Missing content on the CMS for content type ${options.contentType}. Add content before proceeding. Context: ${JSON.stringify(options, null, 2)}`);
|
|
2994
|
-
}
|
|
2995
|
-
|
|
2996
|
-
}
|
|
4353
|
+
const ITEMS_PER_PAGE = 12;
|
|
4354
|
+
const ITEMS_PER_SECTION = 5;
|
|
2997
4355
|
|
|
2998
4356
|
/***/ }),
|
|
2999
4357
|
|
|
3000
|
-
/***/
|
|
4358
|
+
/***/ 3276:
|
|
3001
4359
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3002
4360
|
|
|
3003
4361
|
"use strict";
|
|
3004
4362
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3005
|
-
/* harmony export */ "
|
|
4363
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
3006
4364
|
/* harmony export */ });
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3011
|
-
|
|
3012
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
const request = async (operationName, variables, options) => {
|
|
3016
|
-
const {
|
|
3017
|
-
data,
|
|
3018
|
-
errors
|
|
3019
|
-
} = await (0,_faststore_graphql_utils__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('/api/graphql', _objectSpread(_objectSpread({}, options), {}, {
|
|
3020
|
-
variables,
|
|
3021
|
-
operationName
|
|
3022
|
-
}));
|
|
3023
|
-
|
|
3024
|
-
if (errors?.length) {
|
|
3025
|
-
throw errors[0];
|
|
3026
|
-
}
|
|
3027
|
-
|
|
3028
|
-
return data;
|
|
3029
|
-
};
|
|
4365
|
+
// eslint-disable-next-line import/no-anonymous-default-export
|
|
4366
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({});
|
|
3030
4367
|
|
|
3031
4368
|
/***/ }),
|
|
3032
4369
|
|
|
3033
|
-
/***/
|
|
3034
|
-
/***/ ((
|
|
4370
|
+
/***/ 2463:
|
|
4371
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3035
4372
|
|
|
3036
4373
|
"use strict";
|
|
3037
|
-
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
3038
4374
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3039
|
-
/* harmony export */ "
|
|
3040
|
-
/* harmony export */ "aM": () => (/* binding */ useQuery),
|
|
3041
|
-
/* harmony export */ "km": () => (/* binding */ getKey)
|
|
4375
|
+
/* harmony export */ "K": () => (/* binding */ override)
|
|
3042
4376
|
/* harmony export */ });
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3048
|
-
|
|
3049
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3050
|
-
|
|
3051
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
const getKey = (operationName, variables) => `${operationName}::${JSON.stringify(variables)}`;
|
|
3056
|
-
const DEFAULT_OPTIONS = {
|
|
3057
|
-
errorRetryCount: 3,
|
|
3058
|
-
refreshWhenHidden: false,
|
|
3059
|
-
refreshWhenOffline: false,
|
|
3060
|
-
revalidateOnFocus: false,
|
|
3061
|
-
revalidateOnReconnect: false,
|
|
3062
|
-
shouldRetryOnError: true
|
|
4377
|
+
// This is an example of how it can be used on the starter.
|
|
4378
|
+
const SECTION = 'Alert';
|
|
4379
|
+
const override = {
|
|
4380
|
+
section: SECTION
|
|
3063
4381
|
};
|
|
3064
|
-
|
|
3065
|
-
fetcher: () => {
|
|
3066
|
-
return new Promise(resolve => {
|
|
3067
|
-
setTimeout(async () => {
|
|
3068
|
-
resolve(await (0,_request__WEBPACK_IMPORTED_MODULE_1__/* .request */ .W)(operationName, variables, options));
|
|
3069
|
-
});
|
|
3070
|
-
});
|
|
3071
|
-
}
|
|
3072
|
-
}, DEFAULT_OPTIONS), options));
|
|
3073
|
-
__webpack_async_result__();
|
|
3074
|
-
} catch(e) { __webpack_async_result__(e); } });
|
|
4382
|
+
|
|
3075
4383
|
|
|
3076
4384
|
/***/ }),
|
|
3077
4385
|
|
|
3078
|
-
/***/
|
|
4386
|
+
/***/ 5184:
|
|
3079
4387
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3080
4388
|
|
|
3081
4389
|
"use strict";
|
|
3082
4390
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3083
|
-
/* harmony export */ "
|
|
3084
|
-
/* harmony export */ "WB": () => (/* binding */ useOverrideClassName),
|
|
3085
|
-
/* harmony export */ "r3": () => (/* binding */ useOverrideComponents)
|
|
4391
|
+
/* harmony export */ "m": () => (/* binding */ useViewItemListEvent)
|
|
3086
4392
|
/* harmony export */ });
|
|
3087
|
-
/*
|
|
4393
|
+
/* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1072);
|
|
3088
4394
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
3089
4395
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
4396
|
+
/* harmony import */ var src_sdk_session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7295);
|
|
3090
4397
|
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
const
|
|
3094
|
-
|
|
3095
|
-
|
|
4398
|
+
|
|
4399
|
+
|
|
4400
|
+
const useViewItemListEvent = ({
|
|
4401
|
+
products,
|
|
4402
|
+
title,
|
|
4403
|
+
page,
|
|
4404
|
+
pageSize
|
|
4405
|
+
}) => {
|
|
4406
|
+
const {
|
|
4407
|
+
currency: {
|
|
4408
|
+
code
|
|
4409
|
+
}
|
|
4410
|
+
} = (0,src_sdk_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
|
|
4411
|
+
const sendViewItemListEvent = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
|
|
4412
|
+
(0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .sendAnalyticsEvent */ ._)({
|
|
4413
|
+
name: 'view_item_list',
|
|
4414
|
+
params: {
|
|
4415
|
+
item_list_name: title,
|
|
4416
|
+
item_list_id: title,
|
|
4417
|
+
items: products.map(({
|
|
4418
|
+
node: product
|
|
4419
|
+
}, index) => ({
|
|
4420
|
+
item_id: product.isVariantOf.productGroupID,
|
|
4421
|
+
item_name: product.isVariantOf.name,
|
|
4422
|
+
item_brand: product.brand.name,
|
|
4423
|
+
item_variant: product.sku,
|
|
4424
|
+
price: product.offers.offers[0].price,
|
|
4425
|
+
index: page * pageSize + index + 1,
|
|
4426
|
+
discount: product.offers.offers[0].listPrice - product.offers.offers[0].price,
|
|
4427
|
+
currency: code,
|
|
4428
|
+
item_variant_name: product.name,
|
|
4429
|
+
product_reference_id: product.gtin
|
|
4430
|
+
}))
|
|
4431
|
+
}
|
|
4432
|
+
});
|
|
4433
|
+
}, [code, products, title, page, pageSize]);
|
|
4434
|
+
return {
|
|
4435
|
+
sendViewItemListEvent
|
|
4436
|
+
};
|
|
4437
|
+
};
|
|
3096
4438
|
|
|
3097
4439
|
/***/ }),
|
|
3098
4440
|
|
|
3099
|
-
/***/
|
|
4441
|
+
/***/ 6073:
|
|
3100
4442
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3101
4443
|
|
|
3102
4444
|
"use strict";
|
|
3103
4445
|
|
|
3104
4446
|
// EXPORTS
|
|
3105
4447
|
__webpack_require__.d(__webpack_exports__, {
|
|
3106
|
-
"
|
|
4448
|
+
"i8": () => (/* binding */ cartStore),
|
|
4449
|
+
"jD": () => (/* binding */ useCart)
|
|
3107
4450
|
});
|
|
3108
4451
|
|
|
3109
|
-
//
|
|
3110
|
-
|
|
4452
|
+
// UNUSED EXPORTS: ValidateCartMutation
|
|
4453
|
+
|
|
4454
|
+
// EXTERNAL MODULE: ../sdk/dist/utils/error.js
|
|
4455
|
+
var error = __webpack_require__(2254);
|
|
4456
|
+
// EXTERNAL MODULE: ../sdk/dist/store/composed.js + 4 modules
|
|
4457
|
+
var composed = __webpack_require__(8283);
|
|
4458
|
+
;// CONCATENATED MODULE: ../sdk/dist/cart/index.js
|
|
4459
|
+
|
|
4460
|
+
|
|
4461
|
+
const createCartStore = (defaultCart, onValidate, namespace = "fs::cart") => {
|
|
4462
|
+
const store = (0,composed/* createStore */.M)(defaultCart, namespace, onValidate);
|
|
4463
|
+
const addItem = (item) => {
|
|
4464
|
+
if (!item.id) {
|
|
4465
|
+
throw new error/* SDKError */.q("You must provide an `id` for items");
|
|
4466
|
+
}
|
|
4467
|
+
if (item.quantity < 0) {
|
|
4468
|
+
throw new error/* SDKError */.q("Item quantity needs to be higher than zero");
|
|
4469
|
+
}
|
|
4470
|
+
const cart = store.read();
|
|
4471
|
+
const currentItem = getItem(item.id);
|
|
4472
|
+
const newItem = currentItem
|
|
4473
|
+
? {
|
|
4474
|
+
...item,
|
|
4475
|
+
quantity: currentItem.quantity + item.quantity,
|
|
4476
|
+
}
|
|
4477
|
+
: item;
|
|
4478
|
+
store.set({
|
|
4479
|
+
...cart,
|
|
4480
|
+
items: currentItem
|
|
4481
|
+
? cart.items.map((item) => item === currentItem ? newItem : item)
|
|
4482
|
+
: [...cart.items, newItem],
|
|
4483
|
+
});
|
|
4484
|
+
};
|
|
4485
|
+
const updateItemQuantity = (id, quantity) => {
|
|
4486
|
+
const cart = store.read();
|
|
4487
|
+
const currentItem = getItem(id);
|
|
4488
|
+
if (!currentItem) {
|
|
4489
|
+
throw new error/* SDKError */.q(`Item with id not found: ${id}`);
|
|
4490
|
+
}
|
|
4491
|
+
const newItem = {
|
|
4492
|
+
...currentItem,
|
|
4493
|
+
quantity,
|
|
4494
|
+
};
|
|
4495
|
+
store.set({
|
|
4496
|
+
...cart,
|
|
4497
|
+
items: cart.items
|
|
4498
|
+
.map((item) => item === currentItem ? newItem : item) // update item quantity
|
|
4499
|
+
.filter((item) => item.quantity > 0), // remove items if quantity is <= 0
|
|
4500
|
+
});
|
|
4501
|
+
};
|
|
4502
|
+
const removeItem = (id) => {
|
|
4503
|
+
const cart = store.read();
|
|
4504
|
+
const removed = getItem(id);
|
|
4505
|
+
store.set({
|
|
4506
|
+
...cart,
|
|
4507
|
+
items: cart.items.filter((item) => item !== removed),
|
|
4508
|
+
});
|
|
4509
|
+
};
|
|
4510
|
+
const emptyCart = () => store.set({ ...store.read(), items: [] });
|
|
4511
|
+
const getItem = (id) => store.read().items.find((item) => item.id === id);
|
|
4512
|
+
const inCart = (id) => Boolean(getItem(id));
|
|
4513
|
+
const isEmpty = () => store.read().items.length === 0;
|
|
4514
|
+
return {
|
|
4515
|
+
...store,
|
|
4516
|
+
getItem,
|
|
4517
|
+
addItem,
|
|
4518
|
+
updateItemQuantity,
|
|
4519
|
+
removeItem,
|
|
4520
|
+
emptyCart,
|
|
4521
|
+
inCart,
|
|
4522
|
+
isEmpty,
|
|
4523
|
+
};
|
|
4524
|
+
};
|
|
4525
|
+
//# sourceMappingURL=index.js.map
|
|
3111
4526
|
// EXTERNAL MODULE: external "react"
|
|
3112
4527
|
var external_react_ = __webpack_require__(6689);
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
var
|
|
3116
|
-
// EXTERNAL MODULE: ./src/
|
|
3117
|
-
var
|
|
3118
|
-
// EXTERNAL MODULE: ./src/
|
|
3119
|
-
var
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
;// CONCATENATED MODULE: ./src/components/common/Alert/Alert.tsx
|
|
3124
|
-
const _excluded = ["content", "children"];
|
|
3125
|
-
|
|
4528
|
+
// EXTERNAL MODULE: ./faststore.config.js
|
|
4529
|
+
var faststore_config = __webpack_require__(7183);
|
|
4530
|
+
var faststore_config_default = /*#__PURE__*/__webpack_require__.n(faststore_config);
|
|
4531
|
+
// EXTERNAL MODULE: ./src/sdk/graphql/request.ts
|
|
4532
|
+
var request = __webpack_require__(180);
|
|
4533
|
+
// EXTERNAL MODULE: ./src/sdk/session/index.ts + 1 modules
|
|
4534
|
+
var session = __webpack_require__(7295);
|
|
4535
|
+
// EXTERNAL MODULE: ./src/sdk/useStore.ts
|
|
4536
|
+
var useStore = __webpack_require__(3818);
|
|
4537
|
+
;// CONCATENATED MODULE: ./src/sdk/cart/index.ts
|
|
3126
4538
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3127
4539
|
|
|
3128
4540
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3129
4541
|
|
|
3130
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3131
|
-
|
|
3132
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3133
|
-
|
|
3134
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
function Alert(_ref) {
|
|
3144
|
-
let {
|
|
3145
|
-
content,
|
|
3146
|
-
children
|
|
3147
|
-
} = _ref,
|
|
3148
|
-
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
3149
|
-
|
|
3150
|
-
const {
|
|
3151
|
-
Alert: AlertWrapper
|
|
3152
|
-
} = (0,OverrideContext/* useOverrideComponents */.r3)();
|
|
3153
|
-
const {
|
|
3154
|
-
0: displayAlert,
|
|
3155
|
-
1: setDisplayAlert
|
|
3156
|
-
} = (0,external_react_.useState)(true);
|
|
3157
|
-
const onAlertClose = (0,external_react_.useCallback)(() => setDisplayAlert(false), [setDisplayAlert]);
|
|
3158
|
-
|
|
3159
|
-
if (displayAlert === false) {
|
|
3160
|
-
return null;
|
|
3161
|
-
}
|
|
3162
|
-
|
|
3163
|
-
return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
|
|
3164
|
-
className: `${(section_module_default()).section} section-alert`,
|
|
3165
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(AlertWrapper.Component, _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
3166
|
-
// Dynamic props, shouldn't be overridable
|
|
3167
|
-
// This decision can be reviewed later if needed
|
|
3168
|
-
onClose: onAlertClose,
|
|
3169
|
-
children: content ?? children
|
|
3170
|
-
}))
|
|
3171
|
-
});
|
|
3172
|
-
}
|
|
4542
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3173
4543
|
|
|
3174
|
-
Alert.displayName = 'Alert';
|
|
3175
|
-
/* harmony default export */ const Alert_Alert = ((0,mark/* mark */.B)(Alert));
|
|
3176
|
-
;// CONCATENATED MODULE: ./src/components/sections/Alert/Alert.tsx
|
|
3177
|
-
function Alert_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3178
4544
|
|
|
3179
|
-
function Alert_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Alert_ownKeys(Object(source), !0).forEach(function (key) { Alert_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Alert_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3180
4545
|
|
|
3181
|
-
function Alert_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3182
4546
|
|
|
3183
4547
|
|
|
3184
4548
|
|
|
3185
4549
|
|
|
4550
|
+
const ValidateCartMutation = "ValidateCartMutation";
|
|
3186
4551
|
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
},
|
|
3195
|
-
dismissible
|
|
3196
|
-
}) {
|
|
4552
|
+
const isGift = item => item.price === 0;
|
|
4553
|
+
|
|
4554
|
+
const getItemId = item => [item.itemOffered.sku, item.seller.identifier, item.itemOffered.additionalProperty?.map(({
|
|
4555
|
+
propertyID
|
|
4556
|
+
}) => propertyID).join('-')].filter(Boolean).join('::');
|
|
4557
|
+
|
|
4558
|
+
const validateCart = async cart => {
|
|
3197
4559
|
const {
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
4560
|
+
validateCart: validated = null
|
|
4561
|
+
} = await (0,request/* request */.W)(ValidateCartMutation, {
|
|
4562
|
+
session: session/* sessionStore.read */.Qf.read(),
|
|
4563
|
+
cart: {
|
|
4564
|
+
order: {
|
|
4565
|
+
orderNumber: cart.id,
|
|
4566
|
+
shouldSplitItem: cart.shouldSplitItem,
|
|
4567
|
+
acceptedOffer: cart.items.map(({
|
|
4568
|
+
price,
|
|
4569
|
+
listPrice,
|
|
4570
|
+
seller,
|
|
4571
|
+
quantity,
|
|
4572
|
+
itemOffered
|
|
4573
|
+
}) => ({
|
|
4574
|
+
price,
|
|
4575
|
+
listPrice,
|
|
4576
|
+
seller,
|
|
4577
|
+
quantity,
|
|
4578
|
+
itemOffered: {
|
|
4579
|
+
sku: itemOffered.sku,
|
|
4580
|
+
image: itemOffered.image,
|
|
4581
|
+
name: itemOffered.name,
|
|
4582
|
+
additionalProperty: itemOffered.additionalProperty
|
|
4583
|
+
}
|
|
4584
|
+
}))
|
|
4585
|
+
}
|
|
4586
|
+
}
|
|
4587
|
+
});
|
|
4588
|
+
return validated && {
|
|
4589
|
+
id: validated.order.orderNumber,
|
|
4590
|
+
items: validated.order.acceptedOffer.map(item => _objectSpread(_objectSpread({}, item), {}, {
|
|
4591
|
+
id: getItemId(item)
|
|
4592
|
+
})),
|
|
4593
|
+
messages: validated.messages
|
|
4594
|
+
};
|
|
4595
|
+
};
|
|
3215
4596
|
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
function Hero_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4597
|
+
const [validationStore, onValidate] = (0,useStore/* createValidationStore */.d)(validateCart);
|
|
4598
|
+
const defaultCartStore = createCartStore((faststore_config_default()).cart, onValidate);
|
|
4599
|
+
const cartStore = _objectSpread(_objectSpread({}, defaultCartStore), {}, {
|
|
4600
|
+
addItem: item => {
|
|
4601
|
+
const cartItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
4602
|
+
id: getItemId(item)
|
|
4603
|
+
});
|
|
3224
4604
|
|
|
3225
|
-
|
|
4605
|
+
defaultCartStore.addItem(cartItem);
|
|
4606
|
+
}
|
|
4607
|
+
});
|
|
4608
|
+
const useCart = () => {
|
|
4609
|
+
const cart = (0,useStore/* useStore */.o)(cartStore);
|
|
4610
|
+
const isValidating = (0,useStore/* useStore */.o)(validationStore);
|
|
4611
|
+
return (0,external_react_.useMemo)(() => _objectSpread(_objectSpread({}, cart), {}, {
|
|
4612
|
+
isValidating,
|
|
4613
|
+
messages: cart.messages,
|
|
4614
|
+
gifts: cart.items.filter(item => isGift(item)),
|
|
4615
|
+
items: cart.items.filter(item => !isGift(item)),
|
|
4616
|
+
totalUniqueItems: cart.items.length,
|
|
4617
|
+
totalItems: cart.items.reduce((acc, curr) => acc + (isGift(curr) ? 0 : curr.quantity), 0),
|
|
4618
|
+
total: cart.items.reduce((acc, curr) => acc + curr.price * curr.quantity, 0),
|
|
4619
|
+
subTotal: cart.items.reduce((acc, curr) => acc + curr.listPrice * curr.quantity, 0)
|
|
4620
|
+
}), [cart, isValidating]);
|
|
4621
|
+
};
|
|
3226
4622
|
|
|
3227
|
-
|
|
4623
|
+
/***/ }),
|
|
3228
4624
|
|
|
4625
|
+
/***/ 3025:
|
|
4626
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3229
4627
|
|
|
4628
|
+
"use strict";
|
|
4629
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4630
|
+
/* harmony export */ "Z": () => (/* binding */ MissingContentError)
|
|
4631
|
+
/* harmony export */ });
|
|
4632
|
+
class MissingContentError extends Error {
|
|
4633
|
+
constructor(options) {
|
|
4634
|
+
super(`Missing content on the CMS for content type ${options.contentType}. Add content before proceeding. Context: ${JSON.stringify(options, null, 2)}`);
|
|
4635
|
+
}
|
|
3230
4636
|
|
|
4637
|
+
}
|
|
3231
4638
|
|
|
4639
|
+
/***/ }),
|
|
3232
4640
|
|
|
4641
|
+
/***/ 180:
|
|
4642
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3233
4643
|
|
|
4644
|
+
"use strict";
|
|
4645
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4646
|
+
/* harmony export */ "W": () => (/* binding */ request)
|
|
4647
|
+
/* harmony export */ });
|
|
4648
|
+
/* harmony import */ var _faststore_graphql_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5307);
|
|
4649
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3234
4650
|
|
|
4651
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3235
4652
|
|
|
3236
|
-
|
|
3237
|
-
link,
|
|
3238
|
-
title,
|
|
3239
|
-
subtitle,
|
|
3240
|
-
image,
|
|
3241
|
-
variant,
|
|
3242
|
-
colorVariant,
|
|
3243
|
-
icon
|
|
3244
|
-
}) => {
|
|
3245
|
-
const {
|
|
3246
|
-
Hero: HeroWrapper,
|
|
3247
|
-
HeroImage,
|
|
3248
|
-
HeroHeader
|
|
3249
|
-
} = (0,OverrideContext/* useOverrideComponents */.r3)();
|
|
3250
|
-
return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
|
|
3251
|
-
className: `${(Hero_section_module_default()).section} section-hero`,
|
|
3252
|
-
children: /*#__PURE__*/(0,jsx_runtime_.jsxs)(HeroWrapper.Component, Hero_objectSpread(Hero_objectSpread({}, HeroWrapper.props), {}, {
|
|
3253
|
-
variant: variant ?? HeroWrapper.props.variant ?? 'primary',
|
|
3254
|
-
colorVariant: colorVariant ?? HeroWrapper.props.colorVariant ?? 'main',
|
|
3255
|
-
children: [/*#__PURE__*/jsx_runtime_.jsx(HeroImage.Component, Hero_objectSpread(Hero_objectSpread({}, HeroImage.props), {}, {
|
|
3256
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(Image/* default */.Z, {
|
|
3257
|
-
loading: "eager",
|
|
3258
|
-
src: image.src,
|
|
3259
|
-
alt: image.alt,
|
|
3260
|
-
width: 360,
|
|
3261
|
-
height: 240,
|
|
3262
|
-
sizes: "(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw"
|
|
3263
|
-
})
|
|
3264
|
-
})), /*#__PURE__*/jsx_runtime_.jsx(HeroHeader.Component, Hero_objectSpread({
|
|
3265
|
-
title: title,
|
|
3266
|
-
subtitle: subtitle,
|
|
3267
|
-
link: link?.url,
|
|
3268
|
-
linkText: link?.text,
|
|
3269
|
-
linkTargetBlank: link?.linkTargetBlank,
|
|
3270
|
-
icon: icon
|
|
3271
|
-
}, HeroHeader.props))]
|
|
3272
|
-
}))
|
|
3273
|
-
});
|
|
3274
|
-
};
|
|
4653
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3275
4654
|
|
|
3276
|
-
/* harmony default export */ const Hero_Hero = (Hero);
|
|
3277
|
-
// EXTERNAL MODULE: ./src/components/sections/BannerText/section.module.scss
|
|
3278
|
-
var BannerText_section_module = __webpack_require__(7283);
|
|
3279
|
-
var BannerText_section_module_default = /*#__PURE__*/__webpack_require__.n(BannerText_section_module);
|
|
3280
|
-
;// CONCATENATED MODULE: ./src/components/sections/BannerText/BannerText.tsx
|
|
3281
|
-
function BannerText_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3282
4655
|
|
|
3283
|
-
|
|
4656
|
+
const request = async (operationName, variables, options) => {
|
|
4657
|
+
const {
|
|
4658
|
+
data,
|
|
4659
|
+
errors
|
|
4660
|
+
} = await (0,_faststore_graphql_utils__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('/api/graphql', _objectSpread(_objectSpread({}, options), {}, {
|
|
4661
|
+
variables,
|
|
4662
|
+
operationName
|
|
4663
|
+
}));
|
|
4664
|
+
|
|
4665
|
+
if (errors?.length) {
|
|
4666
|
+
throw errors[0];
|
|
4667
|
+
}
|
|
3284
4668
|
|
|
3285
|
-
|
|
4669
|
+
return data;
|
|
4670
|
+
};
|
|
3286
4671
|
|
|
4672
|
+
/***/ }),
|
|
3287
4673
|
|
|
4674
|
+
/***/ 7732:
|
|
4675
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
3288
4676
|
|
|
4677
|
+
"use strict";
|
|
4678
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
4679
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4680
|
+
/* harmony export */ "WN": () => (/* binding */ DEFAULT_OPTIONS),
|
|
4681
|
+
/* harmony export */ "aM": () => (/* binding */ useQuery),
|
|
4682
|
+
/* harmony export */ "km": () => (/* binding */ getKey)
|
|
4683
|
+
/* harmony export */ });
|
|
4684
|
+
/* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5941);
|
|
4685
|
+
/* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(180);
|
|
4686
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_0__]);
|
|
4687
|
+
swr__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
4688
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3289
4689
|
|
|
4690
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3290
4691
|
|
|
4692
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3291
4693
|
|
|
3292
|
-
// TODO: Change actionPath and actionLabel with Link
|
|
3293
|
-
function BannerText({
|
|
3294
|
-
title,
|
|
3295
|
-
caption,
|
|
3296
|
-
link: {
|
|
3297
|
-
url: linkUrl,
|
|
3298
|
-
text: linkText,
|
|
3299
|
-
linkTargetBlank
|
|
3300
|
-
},
|
|
3301
|
-
variant,
|
|
3302
|
-
colorVariant
|
|
3303
|
-
}) {
|
|
3304
|
-
const {
|
|
3305
|
-
BannerText: BannerTextWrapper,
|
|
3306
|
-
BannerTextContent
|
|
3307
|
-
} = (0,OverrideContext/* useOverrideComponents */.r3)();
|
|
3308
|
-
return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
|
|
3309
|
-
className: `${(BannerText_section_module_default()).section} section-banner layout__section`,
|
|
3310
|
-
children: /*#__PURE__*/jsx_runtime_.jsx("div", {
|
|
3311
|
-
className: "layout__content",
|
|
3312
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(BannerTextWrapper.Component, BannerText_objectSpread(BannerText_objectSpread({}, BannerTextWrapper.props), {}, {
|
|
3313
|
-
variant: variant ?? BannerTextWrapper.props.variant ?? 'primary',
|
|
3314
|
-
colorVariant: colorVariant ?? BannerTextWrapper.props.colorVariant ?? 'main',
|
|
3315
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(BannerTextContent.Component, BannerText_objectSpread(BannerText_objectSpread({}, BannerTextContent.props), {}, {
|
|
3316
|
-
title: title,
|
|
3317
|
-
caption: caption,
|
|
3318
|
-
link: linkUrl ?? BannerTextContent.props.link,
|
|
3319
|
-
linkText: linkText ?? BannerTextContent.props.linkText,
|
|
3320
|
-
linkTargetBlank: linkTargetBlank ?? BannerTextContent.props.linkTargetBlank
|
|
3321
|
-
}))
|
|
3322
|
-
}))
|
|
3323
|
-
})
|
|
3324
|
-
});
|
|
3325
|
-
}
|
|
3326
4694
|
|
|
3327
|
-
/* harmony default export */ const BannerText_BannerText = (BannerText);
|
|
3328
|
-
// EXTERNAL MODULE: ../components/dist/esm/molecules/Alert/Alert.js
|
|
3329
|
-
var molecules_Alert_Alert = __webpack_require__(8138);
|
|
3330
|
-
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
3331
|
-
var Icon = __webpack_require__(2614);
|
|
3332
|
-
;// CONCATENATED MODULE: ./src/components/sections/Alert/DefaultComponents.ts
|
|
3333
4695
|
|
|
3334
|
-
const
|
|
3335
|
-
|
|
3336
|
-
|
|
4696
|
+
const getKey = (operationName, variables) => `${operationName}::${JSON.stringify(variables)}`;
|
|
4697
|
+
const DEFAULT_OPTIONS = {
|
|
4698
|
+
errorRetryCount: 3,
|
|
4699
|
+
refreshWhenHidden: false,
|
|
4700
|
+
refreshWhenOffline: false,
|
|
4701
|
+
revalidateOnFocus: false,
|
|
4702
|
+
revalidateOnReconnect: false,
|
|
4703
|
+
shouldRetryOnError: true
|
|
3337
4704
|
};
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
}
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
throw new Error('Do not use Hero components outside the Hero context.');
|
|
3350
|
-
}
|
|
3351
|
-
return context;
|
|
3352
|
-
}
|
|
3353
|
-
/* harmony default export */ const organisms_Hero_Hero = (Hero_Hero_Hero);
|
|
3354
|
-
//# sourceMappingURL=Hero.js.map
|
|
3355
|
-
;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/HeroImage.js
|
|
4705
|
+
const useQuery = (operationName, variables, options) => (0,swr__WEBPACK_IMPORTED_MODULE_0__["default"])(() => options?.doNotRun ? null : getKey(operationName, variables), _objectSpread(_objectSpread({
|
|
4706
|
+
fetcher: () => {
|
|
4707
|
+
return new Promise(resolve => {
|
|
4708
|
+
setTimeout(async () => {
|
|
4709
|
+
resolve(await (0,_request__WEBPACK_IMPORTED_MODULE_1__/* .request */ .W)(operationName, variables, options));
|
|
4710
|
+
});
|
|
4711
|
+
});
|
|
4712
|
+
}
|
|
4713
|
+
}, DEFAULT_OPTIONS), options));
|
|
4714
|
+
__webpack_async_result__();
|
|
4715
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
3356
4716
|
|
|
3357
|
-
|
|
3358
|
-
return (external_react_default().createElement("div", { ref: ref, "data-fs-hero-image": true, "data-testid": testId, ...otherProps }, children));
|
|
3359
|
-
});
|
|
3360
|
-
/* harmony default export */ const Hero_HeroImage = (HeroImage);
|
|
3361
|
-
//# sourceMappingURL=HeroImage.js.map
|
|
3362
|
-
// EXTERNAL MODULE: ../components/dist/esm/molecules/LinkButton/LinkButton.js
|
|
3363
|
-
var LinkButton = __webpack_require__(3922);
|
|
3364
|
-
;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/HeroHeader.js
|
|
4717
|
+
/***/ }),
|
|
3365
4718
|
|
|
4719
|
+
/***/ 5522:
|
|
4720
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3366
4721
|
|
|
4722
|
+
"use strict";
|
|
4723
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4724
|
+
/* harmony export */ "Ju": () => (/* binding */ OverrideProvider),
|
|
4725
|
+
/* harmony export */ "WB": () => (/* binding */ useOverrideClassName),
|
|
4726
|
+
/* harmony export */ "r3": () => (/* binding */ useOverrideComponents)
|
|
4727
|
+
/* harmony export */ });
|
|
4728
|
+
/* unused harmony export useOverrideContext */
|
|
4729
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
4730
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
3367
4731
|
|
|
3368
|
-
const
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
external_react_default().createElement("h1", { "data-fs-hero-title": true }, title),
|
|
3374
|
-
external_react_default().createElement("p", { "data-fs-hero-subtitle": true }, subtitle),
|
|
3375
|
-
!!link && (external_react_default().createElement(LinkButton/* default */.Z, { href: link, inverse: colorVariant === 'main', icon: external_react_default().createElement(Icon/* default */.Z, { name: "ArrowRight" }), iconPosition: "right", target: linkTargetBlank ? '_blank' : undefined }, linkText))),
|
|
3376
|
-
!!icon && variant === 'secondary' && (external_react_default().createElement("span", { "data-fs-hero-icon": true }, icon)))));
|
|
3377
|
-
});
|
|
3378
|
-
/* harmony default export */ const Hero_HeroHeader = (HeroHeader);
|
|
3379
|
-
//# sourceMappingURL=HeroHeader.js.map
|
|
3380
|
-
;// CONCATENATED MODULE: ./src/components/sections/Hero/DefaultComponents.ts
|
|
4732
|
+
const OverrideContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
|
|
4733
|
+
const OverrideProvider = OverrideContext.Provider;
|
|
4734
|
+
const useOverrideContext = () => useContext(OverrideContext);
|
|
4735
|
+
const useOverrideComponents = () => (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(OverrideContext).components;
|
|
4736
|
+
const useOverrideClassName = () => (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(OverrideContext)?.className;
|
|
3381
4737
|
|
|
3382
|
-
|
|
3383
|
-
Hero: organisms_Hero_Hero,
|
|
3384
|
-
HeroImage: Hero_HeroImage,
|
|
3385
|
-
HeroHeader: Hero_HeroHeader
|
|
3386
|
-
};
|
|
3387
|
-
;// CONCATENATED MODULE: ../components/dist/esm/organisms/BannerText/BannerText.js
|
|
4738
|
+
/***/ }),
|
|
3388
4739
|
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
const context = { variant, colorVariant };
|
|
3392
|
-
return (external_react_default().createElement(BannerTextContext.Provider, { value: context },
|
|
3393
|
-
external_react_default().createElement("article", { ref: ref, "data-fs-banner-text": true, "data-fs-banner-text-variant": variant, "data-fs-banner-text-color-variant": colorVariant, "data-testid": testId, ...otherProps }, children)));
|
|
3394
|
-
});
|
|
3395
|
-
function useBannerText() {
|
|
3396
|
-
const context = (0,external_react_.useContext)(BannerTextContext);
|
|
3397
|
-
if (context === undefined) {
|
|
3398
|
-
throw new Error('Do not use BannerText components outside the BannerText context.');
|
|
3399
|
-
}
|
|
3400
|
-
return context;
|
|
3401
|
-
}
|
|
3402
|
-
/* harmony default export */ const organisms_BannerText_BannerText = (BannerText_BannerText_BannerText);
|
|
3403
|
-
//# sourceMappingURL=BannerText.js.map
|
|
3404
|
-
;// CONCATENATED MODULE: ../components/dist/esm/organisms/BannerText/BannerTextContent.js
|
|
4740
|
+
/***/ 5953:
|
|
4741
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3405
4742
|
|
|
4743
|
+
"use strict";
|
|
4744
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4745
|
+
/* harmony export */ "En": () => (/* binding */ isSearchPage),
|
|
4746
|
+
/* harmony export */ "OJ": () => (/* binding */ isPLP),
|
|
4747
|
+
/* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
4748
|
+
/* harmony export */ "al": () => (/* binding */ usePDP),
|
|
4749
|
+
/* harmony export */ "qt": () => (/* binding */ usePage),
|
|
4750
|
+
/* harmony export */ "tS": () => (/* binding */ isPDP)
|
|
4751
|
+
/* harmony export */ });
|
|
4752
|
+
/* unused harmony exports usePLP, useSearchPage */
|
|
4753
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
4754
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
4755
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
|
|
4756
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
|
|
3406
4757
|
|
|
3407
4758
|
|
|
3408
|
-
const
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
external_react_default().createElement("h2", null, title),
|
|
3413
|
-
variant === 'secondary' && caption && external_react_default().createElement("p", null, caption)),
|
|
3414
|
-
external_react_default().createElement(LinkButton/* default */.Z, { "data-fs-banner-text-link": true, href: link, variant: variant, inverse: colorVariant === 'main', "aria-label": linkText, target: linkTargetBlank ? '_blank' : undefined }, linkText)));
|
|
3415
|
-
});
|
|
3416
|
-
/* harmony default export */ const BannerText_BannerTextContent = (BannerTextContent);
|
|
3417
|
-
//# sourceMappingURL=BannerTextContent.js.map
|
|
3418
|
-
;// CONCATENATED MODULE: ./src/components/sections/BannerText/DefaultComponents.ts
|
|
4759
|
+
const isPDP = x => x?.data?.product?.sku != undefined && x?.data?.product?.sku != null;
|
|
4760
|
+
const isPLP = x => x?.data?.collection?.seo != undefined && x?.data?.collection?.seo != null && x?.data?.collection?.sku == undefined;
|
|
4761
|
+
const isSearchPage = x => x === undefined || x?.data?.title != undefined || x?.data?.searchTerm != undefined;
|
|
4762
|
+
const PageContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
|
|
3419
4763
|
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
}
|
|
3424
|
-
|
|
4764
|
+
function PageProvider({
|
|
4765
|
+
context,
|
|
4766
|
+
children
|
|
4767
|
+
}) {
|
|
4768
|
+
const value = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
|
|
4769
|
+
context
|
|
4770
|
+
}), [context]);
|
|
4771
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(PageContext.Provider, {
|
|
4772
|
+
value: value,
|
|
4773
|
+
children: children
|
|
4774
|
+
});
|
|
4775
|
+
}
|
|
3425
4776
|
|
|
4777
|
+
function usePage() {
|
|
4778
|
+
const {
|
|
4779
|
+
context
|
|
4780
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(PageContext);
|
|
3426
4781
|
|
|
4782
|
+
if (context == null) {
|
|
4783
|
+
throw new Error('Missing Overrides context on React tree');
|
|
4784
|
+
}
|
|
3427
4785
|
|
|
4786
|
+
return context;
|
|
4787
|
+
}
|
|
4788
|
+
const usePDP = () => usePage();
|
|
4789
|
+
const usePLP = () => usePage();
|
|
4790
|
+
const useSearchPage = () => usePage();
|
|
4791
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PageProvider);
|
|
3428
4792
|
|
|
4793
|
+
/***/ }),
|
|
3429
4794
|
|
|
4795
|
+
/***/ 8788:
|
|
4796
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
3430
4797
|
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
};
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
function getOverriddenSection_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4798
|
+
"use strict";
|
|
4799
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
4800
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4801
|
+
/* harmony export */ "v": () => (/* binding */ getOverriddenSection)
|
|
4802
|
+
/* harmony export */ });
|
|
4803
|
+
/* harmony import */ var _OverrideContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5522);
|
|
4804
|
+
/* harmony import */ var _sections__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4027);
|
|
4805
|
+
/* harmony import */ var _overrides__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7506);
|
|
4806
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
4807
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
4808
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_sections__WEBPACK_IMPORTED_MODULE_2__]);
|
|
4809
|
+
_sections__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
4810
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3445
4811
|
|
|
3446
|
-
function
|
|
4812
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3447
4813
|
|
|
3448
|
-
function
|
|
4814
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3449
4815
|
|
|
3450
4816
|
|
|
3451
4817
|
|
|
@@ -3468,9 +4834,9 @@ function createOverriddenSection({
|
|
|
3468
4834
|
return function OverriddenSection(props) {
|
|
3469
4835
|
/** This type wizardry is here because the props won't behave correctly if nothing is done */
|
|
3470
4836
|
const SectionComponent = Section;
|
|
3471
|
-
return /*#__PURE__*/
|
|
4837
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_OverrideContext__WEBPACK_IMPORTED_MODULE_1__/* .OverrideProvider */ .Ju, {
|
|
3472
4838
|
value: overrideContextValue,
|
|
3473
|
-
children: /*#__PURE__*/
|
|
4839
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(SectionComponent, _objectSpread({}, props))
|
|
3474
4840
|
});
|
|
3475
4841
|
};
|
|
3476
4842
|
}
|
|
@@ -3485,19 +4851,21 @@ function createOverriddenSection({
|
|
|
3485
4851
|
|
|
3486
4852
|
|
|
3487
4853
|
function getOverriddenSection(override) {
|
|
3488
|
-
const defaultComponents = DefaultComponents[override.section];
|
|
4854
|
+
const defaultComponents = _sections__WEBPACK_IMPORTED_MODULE_2__/* .DefaultComponents */ .O[override.section];
|
|
3489
4855
|
|
|
3490
4856
|
if (!defaultComponents) {
|
|
3491
4857
|
throw new Error(`Section ${override.section} does not exist. Please provide a valid section name to override.`);
|
|
3492
4858
|
}
|
|
3493
4859
|
|
|
3494
|
-
const sectionOverrides = (0,
|
|
4860
|
+
const sectionOverrides = (0,_overrides__WEBPACK_IMPORTED_MODULE_3__/* .getSectionOverrides */ .f)(defaultComponents, override);
|
|
3495
4861
|
return createOverriddenSection({
|
|
3496
|
-
Section: Sections[override.section],
|
|
4862
|
+
Section: _sections__WEBPACK_IMPORTED_MODULE_2__/* .Sections */ .b[override.section],
|
|
3497
4863
|
sectionOverrides: sectionOverrides,
|
|
3498
4864
|
className: override.className
|
|
3499
4865
|
});
|
|
3500
4866
|
}
|
|
4867
|
+
__webpack_async_result__();
|
|
4868
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
3501
4869
|
|
|
3502
4870
|
/***/ }),
|
|
3503
4871
|
|
|
@@ -3542,6 +4910,244 @@ function getSectionOverrides(defaultComponents, override) {
|
|
|
3542
4910
|
|
|
3543
4911
|
/***/ }),
|
|
3544
4912
|
|
|
4913
|
+
/***/ 4027:
|
|
4914
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
4915
|
+
|
|
4916
|
+
"use strict";
|
|
4917
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
4918
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4919
|
+
/* harmony export */ "O": () => (/* binding */ DefaultComponents),
|
|
4920
|
+
/* harmony export */ "b": () => (/* binding */ Sections)
|
|
4921
|
+
/* harmony export */ });
|
|
4922
|
+
/* harmony import */ var _components_sections_Alert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6893);
|
|
4923
|
+
/* harmony import */ var _components_sections_BannerText__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9315);
|
|
4924
|
+
/* harmony import */ var _components_sections_Hero__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2849);
|
|
4925
|
+
/* harmony import */ var _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8569);
|
|
4926
|
+
/* harmony import */ var _components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(994);
|
|
4927
|
+
/* harmony import */ var _components_sections_Alert_DefaultComponents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6948);
|
|
4928
|
+
/* harmony import */ var _components_sections_BannerText_DefaultComponents__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(719);
|
|
4929
|
+
/* harmony import */ var src_components_sections_CrossSellingShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8435);
|
|
4930
|
+
/* harmony import */ var _components_sections_Hero_DefaultComponents__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9569);
|
|
4931
|
+
/* harmony import */ var _components_sections_ProductShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2432);
|
|
4932
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_2__, _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_4__]);
|
|
4933
|
+
([_components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_2__, _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_4__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
4934
|
+
|
|
4935
|
+
|
|
4936
|
+
|
|
4937
|
+
|
|
4938
|
+
|
|
4939
|
+
|
|
4940
|
+
|
|
4941
|
+
|
|
4942
|
+
|
|
4943
|
+
|
|
4944
|
+
const Sections = {
|
|
4945
|
+
Alert: _components_sections_Alert__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z,
|
|
4946
|
+
BannerText: _components_sections_BannerText__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z,
|
|
4947
|
+
CrossSellingShelf: _components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z,
|
|
4948
|
+
Hero: _components_sections_Hero__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z,
|
|
4949
|
+
ProductShelf: _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z
|
|
4950
|
+
};
|
|
4951
|
+
const DefaultComponents = {
|
|
4952
|
+
Alert: _components_sections_Alert_DefaultComponents__WEBPACK_IMPORTED_MODULE_5__/* .AlertDefaultComponents */ .p,
|
|
4953
|
+
BannerText: _components_sections_BannerText_DefaultComponents__WEBPACK_IMPORTED_MODULE_6__/* .BannerTextDefaultComponents */ .b,
|
|
4954
|
+
Hero: _components_sections_Hero_DefaultComponents__WEBPACK_IMPORTED_MODULE_7__/* .HeroDefaultComponents */ .O,
|
|
4955
|
+
ProductShelf: _components_sections_ProductShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_8__/* .ProductShelfDefaultComponents */ .B,
|
|
4956
|
+
CrossSellingShelf: src_components_sections_CrossSellingShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_9__/* .CrossSellingShelfDefaultComponents */ .q
|
|
4957
|
+
};
|
|
4958
|
+
__webpack_async_result__();
|
|
4959
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
4960
|
+
|
|
4961
|
+
/***/ }),
|
|
4962
|
+
|
|
4963
|
+
/***/ 5346:
|
|
4964
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4965
|
+
|
|
4966
|
+
"use strict";
|
|
4967
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4968
|
+
/* harmony export */ "P": () => (/* binding */ useFormattedPrice)
|
|
4969
|
+
/* harmony export */ });
|
|
4970
|
+
/* unused harmony export usePriceFormatter */
|
|
4971
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
4972
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
4973
|
+
/* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7295);
|
|
4974
|
+
|
|
4975
|
+
|
|
4976
|
+
const usePriceFormatter = ({
|
|
4977
|
+
decimals
|
|
4978
|
+
} = {}) => {
|
|
4979
|
+
const {
|
|
4980
|
+
currency,
|
|
4981
|
+
locale
|
|
4982
|
+
} = (0,_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
|
|
4983
|
+
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(price => Intl.NumberFormat(locale, {
|
|
4984
|
+
style: 'currency',
|
|
4985
|
+
currency: currency.code,
|
|
4986
|
+
minimumFractionDigits: decimals ? 2 : 0
|
|
4987
|
+
}).format(price), [currency.code, locale, decimals]);
|
|
4988
|
+
};
|
|
4989
|
+
const useFormattedPrice = price => {
|
|
4990
|
+
const formatter = usePriceFormatter();
|
|
4991
|
+
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => formatter(price), [formatter, price]);
|
|
4992
|
+
};
|
|
4993
|
+
|
|
4994
|
+
/***/ }),
|
|
4995
|
+
|
|
4996
|
+
/***/ 2523:
|
|
4997
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4998
|
+
|
|
4999
|
+
"use strict";
|
|
5000
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5001
|
+
/* harmony export */ "y": () => (/* binding */ useLocalizedVariables)
|
|
5002
|
+
/* harmony export */ });
|
|
5003
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
5004
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
5005
|
+
/* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7295);
|
|
5006
|
+
/* harmony import */ var src_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8459);
|
|
5007
|
+
|
|
5008
|
+
|
|
5009
|
+
|
|
5010
|
+
|
|
5011
|
+
const toArray = x => Array.isArray(x) ? x : x ? [x] : [];
|
|
5012
|
+
|
|
5013
|
+
const useLocalizedVariables = ({
|
|
5014
|
+
first,
|
|
5015
|
+
after,
|
|
5016
|
+
sort,
|
|
5017
|
+
term,
|
|
5018
|
+
selectedFacets
|
|
5019
|
+
}) => {
|
|
5020
|
+
const {
|
|
5021
|
+
channel,
|
|
5022
|
+
locale
|
|
5023
|
+
} = (0,_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
|
|
5024
|
+
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
|
|
5025
|
+
const facets = toArray(selectedFacets);
|
|
5026
|
+
return {
|
|
5027
|
+
first: first ?? src_constants__WEBPACK_IMPORTED_MODULE_2__/* .ITEMS_PER_SECTION */ .K,
|
|
5028
|
+
after: after ?? '0',
|
|
5029
|
+
sort: sort ?? 'score_desc',
|
|
5030
|
+
term: term ?? '',
|
|
5031
|
+
selectedFacets: [...facets, {
|
|
5032
|
+
key: 'channel',
|
|
5033
|
+
value: channel ?? ''
|
|
5034
|
+
}, {
|
|
5035
|
+
key: 'locale',
|
|
5036
|
+
value: locale
|
|
5037
|
+
}]
|
|
5038
|
+
};
|
|
5039
|
+
}, [selectedFacets, first, after, sort, term, channel, locale]);
|
|
5040
|
+
};
|
|
5041
|
+
|
|
5042
|
+
/***/ }),
|
|
5043
|
+
|
|
5044
|
+
/***/ 9854:
|
|
5045
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5046
|
+
|
|
5047
|
+
"use strict";
|
|
5048
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5049
|
+
/* harmony export */ "w": () => (/* binding */ useProductLink)
|
|
5050
|
+
/* harmony export */ });
|
|
5051
|
+
/* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1072);
|
|
5052
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
5053
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
5054
|
+
/* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7295);
|
|
5055
|
+
|
|
5056
|
+
|
|
5057
|
+
|
|
5058
|
+
const useProductLink = ({
|
|
5059
|
+
index,
|
|
5060
|
+
product,
|
|
5061
|
+
selectedOffer
|
|
5062
|
+
}) => {
|
|
5063
|
+
const {
|
|
5064
|
+
slug
|
|
5065
|
+
} = product;
|
|
5066
|
+
const {
|
|
5067
|
+
currency: {
|
|
5068
|
+
code
|
|
5069
|
+
}
|
|
5070
|
+
} = (0,_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
|
|
5071
|
+
const onClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
|
|
5072
|
+
(0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .sendAnalyticsEvent */ ._)({
|
|
5073
|
+
name: 'select_item',
|
|
5074
|
+
params: {
|
|
5075
|
+
items: [{
|
|
5076
|
+
item_id: product.isVariantOf.productGroupID,
|
|
5077
|
+
item_name: product.isVariantOf.name,
|
|
5078
|
+
item_brand: product.brand.name,
|
|
5079
|
+
item_variant: product.sku,
|
|
5080
|
+
index,
|
|
5081
|
+
price: product.offers.offers[selectedOffer].price,
|
|
5082
|
+
discount: product.offers.offers[selectedOffer].listPrice - product.offers.offers[selectedOffer].price,
|
|
5083
|
+
currency: code,
|
|
5084
|
+
item_variant_name: product.name,
|
|
5085
|
+
product_reference_id: product.gtin
|
|
5086
|
+
}]
|
|
5087
|
+
}
|
|
5088
|
+
});
|
|
5089
|
+
(0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .sendAnalyticsEvent */ ._)({
|
|
5090
|
+
name: 'search_select_item',
|
|
5091
|
+
params: {
|
|
5092
|
+
url: window.location.href,
|
|
5093
|
+
items: [{
|
|
5094
|
+
item_id: product.isVariantOf.productGroupID,
|
|
5095
|
+
item_variant: product.sku,
|
|
5096
|
+
index
|
|
5097
|
+
}]
|
|
5098
|
+
}
|
|
5099
|
+
});
|
|
5100
|
+
}, [code, product, index, selectedOffer]);
|
|
5101
|
+
return {
|
|
5102
|
+
href: `/${slug}/p`,
|
|
5103
|
+
onClick,
|
|
5104
|
+
'data-testid': 'product-link'
|
|
5105
|
+
};
|
|
5106
|
+
};
|
|
5107
|
+
|
|
5108
|
+
/***/ }),
|
|
5109
|
+
|
|
5110
|
+
/***/ 4867:
|
|
5111
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
5112
|
+
|
|
5113
|
+
"use strict";
|
|
5114
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
5115
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5116
|
+
/* harmony export */ "k": () => (/* binding */ useProductsQuery)
|
|
5117
|
+
/* harmony export */ });
|
|
5118
|
+
/* unused harmony export query */
|
|
5119
|
+
/* harmony import */ var _graphql_useQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7732);
|
|
5120
|
+
/* harmony import */ var _useLocalizedVariables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2523);
|
|
5121
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_graphql_useQuery__WEBPACK_IMPORTED_MODULE_1__]);
|
|
5122
|
+
_graphql_useQuery__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
5123
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5124
|
+
|
|
5125
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5126
|
+
|
|
5127
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5128
|
+
|
|
5129
|
+
|
|
5130
|
+
|
|
5131
|
+
const query = "ClientManyProductsQuery";
|
|
5132
|
+
/**
|
|
5133
|
+
* Use this hook for fetching a list of products, like shelves and tiles
|
|
5134
|
+
*/
|
|
5135
|
+
|
|
5136
|
+
const useProductsQuery = (variables, options) => {
|
|
5137
|
+
const localizedVariables = (0,_useLocalizedVariables__WEBPACK_IMPORTED_MODULE_0__/* .useLocalizedVariables */ .y)(variables);
|
|
5138
|
+
const {
|
|
5139
|
+
data
|
|
5140
|
+
} = (0,_graphql_useQuery__WEBPACK_IMPORTED_MODULE_1__/* .useQuery */ .aM)(query, localizedVariables, _objectSpread({
|
|
5141
|
+
fallbackData: null,
|
|
5142
|
+
suspense: true
|
|
5143
|
+
}, options));
|
|
5144
|
+
return data;
|
|
5145
|
+
};
|
|
5146
|
+
__webpack_async_result__();
|
|
5147
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
5148
|
+
|
|
5149
|
+
/***/ }),
|
|
5150
|
+
|
|
3545
5151
|
/***/ 5882:
|
|
3546
5152
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3547
5153
|
|
|
@@ -3897,6 +5503,26 @@ const getPage = async options => {
|
|
|
3897
5503
|
|
|
3898
5504
|
/***/ }),
|
|
3899
5505
|
|
|
5506
|
+
/***/ 3952:
|
|
5507
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5508
|
+
|
|
5509
|
+
"use strict";
|
|
5510
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5511
|
+
/* harmony export */ "B": () => (/* binding */ textToKebabCase)
|
|
5512
|
+
/* harmony export */ });
|
|
5513
|
+
//Input "Example Text!". Output: example-text
|
|
5514
|
+
function textToKebabCase(text) {
|
|
5515
|
+
// Replace spaces and special characters with hyphens
|
|
5516
|
+
let kebabCase = text.replace(/[^\w\s]/gi, '-'); // Remove whitespace
|
|
5517
|
+
|
|
5518
|
+
kebabCase = kebabCase.replace(/\s+/g, '-'); // Convert to lowercase
|
|
5519
|
+
|
|
5520
|
+
kebabCase = kebabCase.toLowerCase();
|
|
5521
|
+
return kebabCase ?? '';
|
|
5522
|
+
}
|
|
5523
|
+
|
|
5524
|
+
/***/ }),
|
|
5525
|
+
|
|
3900
5526
|
/***/ 7651:
|
|
3901
5527
|
/***/ ((module) => {
|
|
3902
5528
|
|
|
@@ -3972,6 +5598,18 @@ module.exports = {
|
|
|
3972
5598
|
};
|
|
3973
5599
|
|
|
3974
5600
|
|
|
5601
|
+
/***/ }),
|
|
5602
|
+
|
|
5603
|
+
/***/ 6627:
|
|
5604
|
+
/***/ ((module) => {
|
|
5605
|
+
|
|
5606
|
+
// Exports
|
|
5607
|
+
module.exports = {
|
|
5608
|
+
"section": "section_section__C1DoH",
|
|
5609
|
+
"loading": "section_loading__k5bCF"
|
|
5610
|
+
};
|
|
5611
|
+
|
|
5612
|
+
|
|
3975
5613
|
/***/ }),
|
|
3976
5614
|
|
|
3977
5615
|
/***/ 3472:
|