@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
|
@@ -2,420 +2,388 @@ exports.id = 390;
|
|
|
2
2
|
exports.ids = [390];
|
|
3
3
|
exports.modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 2390:
|
|
6
6
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
"use strict";
|
|
9
9
|
|
|
10
10
|
// EXPORTS
|
|
11
11
|
__webpack_require__.d(__webpack_exports__, {
|
|
12
|
-
"
|
|
12
|
+
"Z": () => (/* binding */ sections_Breadcrumb_Breadcrumb)
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
// EXTERNAL MODULE: external "react"
|
|
16
|
+
var external_react_ = __webpack_require__(6689);
|
|
17
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
18
|
+
// EXTERNAL MODULE: ./src/components/ui/Link/Link.tsx
|
|
19
|
+
var Link = __webpack_require__(7058);
|
|
20
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
21
|
+
var Icon = __webpack_require__(2614);
|
|
22
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Link/Link.js
|
|
23
|
+
var Link_Link = __webpack_require__(727);
|
|
24
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Dropdown/contexts/DropdownContext.js
|
|
25
|
+
|
|
26
|
+
const defaultState = {
|
|
27
|
+
isOpen: false,
|
|
28
|
+
dropdownButtonRef: null,
|
|
29
|
+
selectedDropdownItemIndexRef: null,
|
|
30
|
+
dropdownItemsRef: null,
|
|
31
|
+
id: 'fs-dropdown',
|
|
20
32
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
;// CONCATENATED MODULE:
|
|
25
|
-
|
|
33
|
+
const DropdownContext = (0,external_react_.createContext)(defaultState);
|
|
34
|
+
/* harmony default export */ const contexts_DropdownContext = (DropdownContext);
|
|
35
|
+
//# sourceMappingURL=DropdownContext.js.map
|
|
36
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Dropdown/Dropdown.js
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
const Dropdown = ({ children, isOpen: isOpenDefault = false, onDismiss, id = 'fs-dropdown', }) => {
|
|
40
|
+
const [isOpen, setIsOpen] = (0,external_react_.useState)(isOpenDefault);
|
|
41
|
+
const dropdownItemsRef = (0,external_react_.useRef)([]);
|
|
42
|
+
const selectedDropdownItemIndexRef = (0,external_react_.useRef)(0);
|
|
43
|
+
const dropdownButtonRef = (0,external_react_.useRef)(null);
|
|
44
|
+
const close = (0,external_react_.useCallback)(() => {
|
|
45
|
+
setIsOpen(false);
|
|
46
|
+
onDismiss?.();
|
|
47
|
+
}, [onDismiss]);
|
|
48
|
+
const open = () => {
|
|
49
|
+
setIsOpen(true);
|
|
50
|
+
};
|
|
51
|
+
const toggle = (0,external_react_.useCallback)(() => {
|
|
52
|
+
setIsOpen((old) => {
|
|
53
|
+
if (old) {
|
|
54
|
+
onDismiss?.();
|
|
55
|
+
dropdownButtonRef.current?.focus();
|
|
56
|
+
}
|
|
57
|
+
return !old;
|
|
58
|
+
});
|
|
59
|
+
}, [onDismiss]);
|
|
60
|
+
(0,external_react_.useEffect)(() => {
|
|
61
|
+
setIsOpen(isOpenDefault);
|
|
62
|
+
}, [isOpenDefault]);
|
|
63
|
+
(0,external_react_.useEffect)(() => {
|
|
64
|
+
isOpen && dropdownItemsRef?.current[0]?.focus();
|
|
65
|
+
}, [isOpen]);
|
|
66
|
+
(0,external_react_.useEffect)(() => {
|
|
67
|
+
let firstClick = true;
|
|
68
|
+
const event = (e) => {
|
|
69
|
+
const someItemWasClicked = dropdownItemsRef?.current.some((item) => e.target === item);
|
|
70
|
+
if (firstClick) {
|
|
71
|
+
firstClick = false;
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
!someItemWasClicked && close();
|
|
75
|
+
};
|
|
76
|
+
if (isOpen) {
|
|
77
|
+
document.addEventListener('click', event);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
document.removeEventListener('click', event);
|
|
81
|
+
}
|
|
82
|
+
return () => {
|
|
83
|
+
document.removeEventListener('click', event);
|
|
84
|
+
};
|
|
85
|
+
}, [close, isOpen]);
|
|
86
|
+
const value = (0,external_react_.useMemo)(() => {
|
|
87
|
+
return {
|
|
88
|
+
isOpen,
|
|
89
|
+
close,
|
|
90
|
+
open,
|
|
91
|
+
toggle,
|
|
92
|
+
dropdownButtonRef,
|
|
93
|
+
onDismiss,
|
|
94
|
+
selectedDropdownItemIndexRef,
|
|
95
|
+
dropdownItemsRef,
|
|
96
|
+
id,
|
|
97
|
+
};
|
|
98
|
+
}, [close, id, isOpen, onDismiss, toggle]);
|
|
99
|
+
return (external_react_default().createElement(contexts_DropdownContext.Provider, { value: value }, children));
|
|
100
|
+
};
|
|
101
|
+
/* harmony default export */ const Dropdown_Dropdown = (Dropdown);
|
|
102
|
+
//# sourceMappingURL=Dropdown.js.map
|
|
103
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Button/Button.js
|
|
104
|
+
var Button = __webpack_require__(3339);
|
|
105
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Dropdown/hooks/useDropdown.js
|
|
26
106
|
|
|
27
107
|
|
|
28
108
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* This allows users to override the default Hero section present in the Headless CMS
|
|
109
|
+
* Hook to use the Dropdown context.
|
|
110
|
+
* @returns Dropdown context.
|
|
32
111
|
*/
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
43
|
-
/* harmony export */ });
|
|
44
|
-
/* harmony import */ var src_components_ui_Incentives_Incentives__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2411);
|
|
45
|
-
/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3271);
|
|
46
|
-
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7952);
|
|
47
|
-
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_2__);
|
|
48
|
-
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
49
|
-
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
function Incentives({
|
|
56
|
-
incentives
|
|
57
|
-
}) {
|
|
58
|
-
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Section__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
59
|
-
className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_2___default().section)} section-incentives layout__section`,
|
|
60
|
-
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(src_components_ui_Incentives_Incentives__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
|
|
61
|
-
incentives: incentives,
|
|
62
|
-
colored: true
|
|
63
|
-
})
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Incentives);
|
|
68
|
-
|
|
69
|
-
/***/ }),
|
|
70
|
-
|
|
71
|
-
/***/ 8569:
|
|
72
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
73
|
-
|
|
74
|
-
"use strict";
|
|
75
|
-
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
76
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
77
|
-
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
78
|
-
/* harmony export */ });
|
|
79
|
-
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9785);
|
|
80
|
-
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__);
|
|
81
|
-
/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3271);
|
|
82
|
-
/* harmony import */ var src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7691);
|
|
83
|
-
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6627);
|
|
84
|
-
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
|
|
85
|
-
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
|
|
86
|
-
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
|
|
87
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__]);
|
|
88
|
-
src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
89
|
-
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; }
|
|
90
|
-
|
|
91
|
-
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; }
|
|
92
|
-
|
|
93
|
-
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; }
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
function ProductShelfSection(_ref) {
|
|
102
|
-
let otherProps = Object.assign({}, _ref);
|
|
103
|
-
const {
|
|
104
|
-
ref,
|
|
105
|
-
inView
|
|
106
|
-
} = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__.useInView)();
|
|
107
|
-
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(_Section__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
|
|
108
|
-
className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-product-shelf layout__section`,
|
|
109
|
-
ref: ref,
|
|
110
|
-
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, _objectSpread({
|
|
111
|
-
inView: inView
|
|
112
|
-
}, otherProps))
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelfSection);
|
|
117
|
-
__webpack_async_result__();
|
|
118
|
-
} catch(e) { __webpack_async_result__(e); } });
|
|
119
|
-
|
|
120
|
-
/***/ }),
|
|
121
|
-
|
|
122
|
-
/***/ 2834:
|
|
123
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
124
|
-
|
|
125
|
-
"use strict";
|
|
126
|
-
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
127
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
128
|
-
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
129
|
-
/* harmony export */ });
|
|
130
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
131
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
132
|
-
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9785);
|
|
133
|
-
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__);
|
|
134
|
-
/* harmony import */ var src_components_product_ProductCard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(8553);
|
|
135
|
-
/* harmony import */ var src_components_skeletons_ProductTilesSkeleton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8860);
|
|
136
|
-
/* harmony import */ var src_components_ui_Tiles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6971);
|
|
137
|
-
/* harmony import */ var src_components_ui_Tiles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7901);
|
|
138
|
-
/* harmony import */ var src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5184);
|
|
139
|
-
/* harmony import */ var src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4867);
|
|
140
|
-
/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3271);
|
|
141
|
-
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2366);
|
|
142
|
-
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_6__);
|
|
143
|
-
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(997);
|
|
144
|
-
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
|
|
145
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_3__]);
|
|
146
|
-
src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
147
|
-
const _excluded = ["title"];
|
|
148
|
-
|
|
149
|
-
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; }
|
|
150
|
-
|
|
151
|
-
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; }
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
112
|
+
const useDropdown = () => {
|
|
113
|
+
const context = (0,external_react_.useContext)(contexts_DropdownContext);
|
|
114
|
+
if (context === undefined) {
|
|
115
|
+
throw new Error('Do not use useDropdown hook outside the Dropdown context.');
|
|
116
|
+
}
|
|
117
|
+
return context;
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=useDropdown.js.map
|
|
120
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Dropdown/DropdownButton.js
|
|
161
121
|
|
|
162
122
|
|
|
163
123
|
|
|
164
|
-
const
|
|
165
|
-
const
|
|
124
|
+
const DropdownButton = (0,external_react_.forwardRef)(function DropdownButton({ testId = 'fs-dropdown-button', 'aria-label': ariaLabel, children, ...otherProps }, ref) {
|
|
125
|
+
const { toggle, dropdownButtonRef, isOpen, id } = useDropdown();
|
|
126
|
+
(0,external_react_.useImperativeHandle)(ref, () => dropdownButtonRef.current, [
|
|
127
|
+
dropdownButtonRef,
|
|
128
|
+
]);
|
|
129
|
+
return (external_react_default().createElement(Button/* default */.Z, { "data-fs-dropdown-button": true, onClick: toggle, "data-testid": testId, ref: dropdownButtonRef, "aria-label": ariaLabel, "aria-expanded": isOpen, "aria-haspopup": "menu", "aria-controls": id, variant: "tertiary", ...otherProps }, children));
|
|
130
|
+
});
|
|
131
|
+
/* harmony default export */ const Dropdown_DropdownButton = (DropdownButton);
|
|
132
|
+
//# sourceMappingURL=DropdownButton.js.map
|
|
133
|
+
// EXTERNAL MODULE: external "react-dom"
|
|
134
|
+
var external_react_dom_ = __webpack_require__(6405);
|
|
135
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Dropdown/hooks/useDropdownPosition.js
|
|
166
136
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
137
|
+
/**
|
|
138
|
+
* Hook used to find the DropdownMenu position in relation to DropdownButton
|
|
139
|
+
* @returns Style with positions.
|
|
140
|
+
*/
|
|
141
|
+
const useDropdownPosition = () => {
|
|
142
|
+
const { dropdownButtonRef } = useDropdown();
|
|
143
|
+
// Necessary to use this component in SSR
|
|
144
|
+
const isBrowser = typeof window !== 'undefined';
|
|
145
|
+
const buttonRect = dropdownButtonRef?.current?.getBoundingClientRect();
|
|
146
|
+
const topLevel = buttonRect?.top ?? 0;
|
|
147
|
+
const topOffset = buttonRect?.height ?? 0;
|
|
148
|
+
const leftLevel = buttonRect?.left ?? 0;
|
|
149
|
+
// The scroll properties fix the position of DropdownMenu when the scroll is activated.
|
|
150
|
+
const scrollTop = isBrowser ? document?.documentElement?.scrollTop : 0;
|
|
151
|
+
const scrollLeft = isBrowser ? document?.documentElement?.scrollLeft : 0;
|
|
152
|
+
const topPosition = topLevel + topOffset + scrollTop;
|
|
153
|
+
const leftPosition = leftLevel + scrollLeft;
|
|
154
|
+
return {
|
|
155
|
+
position: 'absolute',
|
|
156
|
+
top: topPosition,
|
|
157
|
+
left: leftPosition,
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=useDropdownPosition.js.map
|
|
161
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Dropdown/DropdownMenu.js
|
|
170
162
|
|
|
171
|
-
if (expandsFirstTile || expandsFirstTwoTile) {
|
|
172
|
-
return 5 / 3;
|
|
173
|
-
}
|
|
174
163
|
|
|
175
|
-
return 3 / 4;
|
|
176
|
-
};
|
|
177
164
|
|
|
178
|
-
const getSizes = (products, idx) => {
|
|
179
|
-
const expandsFirstTile = products === NUMBER_ITEMS_TO_EXPAND_FIRST && idx === 0;
|
|
180
|
-
const expandsFirstTwoTile = products === NUMBER_ITEMS_TO_EXPAND_FIRST_TWO && (idx === 0 || idx === 1);
|
|
181
165
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
166
|
+
/*
|
|
167
|
+
* This component is based on @reach/dialog.
|
|
168
|
+
* https://github.com/reach/reach-ui/blob/main/packages/dialog/src/index.tsx
|
|
169
|
+
* https://reach.tech/dialog
|
|
170
|
+
*/
|
|
171
|
+
const DropdownMenu = ({ children, testId = 'fs-dropdown-menu', size = 'regular', style, ...otherProps }) => {
|
|
172
|
+
const { isOpen, close, dropdownItemsRef, selectedDropdownItemIndexRef, dropdownButtonRef, id } = useDropdown();
|
|
173
|
+
const dropdownPosition = useDropdownPosition();
|
|
174
|
+
const childrenLength = external_react_default().Children.toArray(children).length;
|
|
175
|
+
const handleDownPress = () => {
|
|
176
|
+
if (selectedDropdownItemIndexRef.current < childrenLength - 1) {
|
|
177
|
+
selectedDropdownItemIndexRef.current++;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
selectedDropdownItemIndexRef.current = 0;
|
|
181
|
+
}
|
|
182
|
+
dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
|
|
186
183
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
184
|
+
const handleUpPress = () => {
|
|
185
|
+
if (selectedDropdownItemIndexRef.current > 0) {
|
|
186
|
+
selectedDropdownItemIndexRef.current--;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
selectedDropdownItemIndexRef.current = childrenLength - 1;
|
|
190
|
+
}
|
|
191
|
+
dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
|
|
192
|
+
};
|
|
193
|
+
const handleHomePress = () => {
|
|
194
|
+
selectedDropdownItemIndexRef.current = 0;
|
|
195
|
+
dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
|
|
196
|
+
};
|
|
197
|
+
const handleEndPress = () => {
|
|
198
|
+
selectedDropdownItemIndexRef.current = childrenLength - 1;
|
|
199
|
+
dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
|
|
200
|
+
};
|
|
201
|
+
const handleEscapePress = () => {
|
|
202
|
+
close?.();
|
|
203
|
+
dropdownButtonRef?.current?.focus();
|
|
204
|
+
};
|
|
205
|
+
const handleBackdropKeyDown = (event) => {
|
|
206
|
+
if (event.defaultPrevented || event.key === 'Enter') {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
event.preventDefault();
|
|
210
|
+
event.key === 'Escape' && handleEscapePress();
|
|
211
|
+
event.key === 'ArrowDown' && handleDownPress();
|
|
212
|
+
event.key === 'ArrowUp' && handleUpPress();
|
|
213
|
+
event.key === 'Home' && handleHomePress();
|
|
214
|
+
event.key === 'End' && handleEndPress();
|
|
215
|
+
event.stopPropagation();
|
|
216
|
+
};
|
|
217
|
+
const clearChildrenReferences = () => {
|
|
218
|
+
dropdownItemsRef.current = [];
|
|
219
|
+
return null;
|
|
220
|
+
};
|
|
221
|
+
return isOpen
|
|
222
|
+
? (0,external_react_dom_.createPortal)(external_react_default().createElement("div", { role: "presentation", "data-fs-dropdown-overlay": true, onKeyDown: handleBackdropKeyDown, "data-testid": `${testId}-overlay` },
|
|
223
|
+
external_react_default().createElement("div", { role: "menu", "aria-orientation": "vertical", "data-fs-dropdown-menu": true, "data-fs-dropdown-menu-size": size, "data-testid": testId, style: { ...dropdownPosition, ...style }, id: id, ...otherProps }, children)), document.body)
|
|
224
|
+
: clearChildrenReferences();
|
|
193
225
|
};
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
226
|
+
/* harmony default export */ const Dropdown_DropdownMenu = (DropdownMenu);
|
|
227
|
+
//# sourceMappingURL=DropdownMenu.js.map
|
|
228
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Dropdown/DropdownItem.js
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
const DropdownItem = (0,external_react_.forwardRef)(function Button({ children, icon, onClick, testId = 'fs-dropdown-item', ...otherProps }, ref) {
|
|
232
|
+
const { dropdownItemsRef, selectedDropdownItemIndexRef, close } = useDropdown();
|
|
233
|
+
const [dropdownItemIndex, setDropdownItemIndex] = (0,external_react_.useState)(0);
|
|
234
|
+
const dropdownItemRef = (0,external_react_.useRef)();
|
|
235
|
+
const addToRefs = (el) => {
|
|
236
|
+
if (el && !dropdownItemsRef?.current.includes(el)) {
|
|
237
|
+
dropdownItemsRef?.current.push(el);
|
|
238
|
+
setDropdownItemIndex(dropdownItemsRef?.current.findIndex((element) => element === el) ?? 0);
|
|
239
|
+
}
|
|
240
|
+
dropdownItemRef.current = el;
|
|
241
|
+
};
|
|
242
|
+
const onFocusItem = () => {
|
|
243
|
+
selectedDropdownItemIndexRef.current = dropdownItemIndex;
|
|
244
|
+
dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
|
|
245
|
+
};
|
|
246
|
+
const handleOnClickItem = (event) => {
|
|
247
|
+
onClick?.(event);
|
|
248
|
+
close?.();
|
|
249
|
+
};
|
|
250
|
+
(0,external_react_.useImperativeHandle)(ref, () => dropdownItemRef.current, []);
|
|
251
|
+
return (external_react_default().createElement("button", { "data-fs-dropdown-item": true, "data-testid": testId, ref: addToRefs, onFocus: onFocusItem, onMouseEnter: onFocusItem, onClick: handleOnClickItem, role: "menuitem", tabIndex: -1, "data-index": dropdownItemIndex, ...otherProps },
|
|
252
|
+
!!icon && icon,
|
|
253
|
+
children));
|
|
254
|
+
});
|
|
255
|
+
/* harmony default export */ const Dropdown_DropdownItem = (DropdownItem);
|
|
256
|
+
//# sourceMappingURL=DropdownItem.js.map
|
|
257
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/List/List.js
|
|
258
|
+
var List = __webpack_require__(4564);
|
|
259
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Breadcrumb/Divider.js
|
|
260
|
+
|
|
261
|
+
const Divider = ({ divider, testId }) => {
|
|
262
|
+
const props = {
|
|
263
|
+
'data-fs-breadcrumb-divider': true,
|
|
264
|
+
'aria-hidden': true,
|
|
265
|
+
'data-testid': `${testId}-divider`,
|
|
266
|
+
};
|
|
267
|
+
if (external_react_default().isValidElement(divider)) {
|
|
268
|
+
return external_react_default().cloneElement(divider, props);
|
|
221
269
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
if (products?.edges.length === 0) {
|
|
225
|
-
return null;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(_Section__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
|
|
229
|
-
className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_6___default().section)} section-product-tiles layout__section`,
|
|
230
|
-
ref: ref,
|
|
231
|
-
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx("h2", {
|
|
232
|
-
className: "text__title-section layout__content",
|
|
233
|
-
children: title
|
|
234
|
-
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_skeletons_ProductTilesSkeleton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
|
|
235
|
-
loading: !products,
|
|
236
|
-
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_Tiles__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
|
|
237
|
-
children: productEdges.map((product, idx) => /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_Tiles__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
|
|
238
|
-
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_product_ProductCard__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
|
|
239
|
-
"data-testid": "tile-card",
|
|
240
|
-
product: product.node,
|
|
241
|
-
index: idx + 1,
|
|
242
|
-
variant: "wide",
|
|
243
|
-
aspectRatio: getRatio(productEdges.length, idx),
|
|
244
|
-
imgProps: getSizes(productEdges.length, idx)
|
|
245
|
-
})
|
|
246
|
-
}, product.node.id))
|
|
247
|
-
})
|
|
248
|
-
})]
|
|
249
|
-
});
|
|
270
|
+
return external_react_default().createElement("span", { ...props }, divider ?? '/');
|
|
250
271
|
};
|
|
272
|
+
/* harmony default export */ const Breadcrumb_Divider = (Divider);
|
|
273
|
+
//# sourceMappingURL=Divider.js.map
|
|
274
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Breadcrumb/ListItem.js
|
|
251
275
|
|
|
252
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductTiles);
|
|
253
|
-
__webpack_async_result__();
|
|
254
|
-
} catch(e) { __webpack_async_result__(e); } });
|
|
255
276
|
|
|
256
|
-
|
|
277
|
+
const ListItem = ({ children, isLastItem, divider, testId }) => {
|
|
278
|
+
const props = {
|
|
279
|
+
'data-testid': `${testId}-item`,
|
|
280
|
+
'data-fs-breadcrumb-item': isLastItem ? 'current' : true,
|
|
281
|
+
'aria-current': isLastItem ? 'page' : undefined,
|
|
282
|
+
};
|
|
283
|
+
if (!external_react_default().isValidElement(children)) {
|
|
284
|
+
return (external_react_default().createElement("li", { "data-fs-breadcrumb-list-item": true },
|
|
285
|
+
external_react_default().createElement("span", { ...props },
|
|
286
|
+
children,
|
|
287
|
+
isLastItem ? null : external_react_default().createElement(Breadcrumb_Divider, { divider: divider, testId: testId }))));
|
|
288
|
+
}
|
|
289
|
+
return (external_react_default().createElement("li", { "data-fs-breadcrumb-list-item": true },
|
|
290
|
+
external_react_default().cloneElement(children, props),
|
|
291
|
+
isLastItem ? null : external_react_default().createElement(Breadcrumb_Divider, { divider: divider, testId: testId })));
|
|
292
|
+
};
|
|
293
|
+
/* harmony default export */ const Breadcrumb_ListItem = (ListItem);
|
|
294
|
+
//# sourceMappingURL=ListItem.js.map
|
|
295
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Breadcrumb/BreadcrumbPure.js
|
|
257
296
|
|
|
258
|
-
/***/ 8860:
|
|
259
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
260
297
|
|
|
261
|
-
"use strict";
|
|
262
298
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
299
|
+
const BreadcrumbPure = (0,external_react_.forwardRef)(function BreadcrumbPure({ children, divider: rawDivider = '', testId = 'fs-breadcrumb', ...otherProps }, ref) {
|
|
300
|
+
return (external_react_default().createElement("nav", { "aria-label": "Breadcrumb", role: "navigation", ref: ref, "data-fs-breadcrumb": true, "data-testid": testId, ...otherProps },
|
|
301
|
+
external_react_default().createElement(List/* default */.Z, { as: "ol", "data-fs-breadcrumb-list": true, "data-fs-content": "breadcrumb" }, external_react_default().Children.toArray(children).map((child, index, childrenArray) => {
|
|
302
|
+
const isLastItem = index === childrenArray.length - 1;
|
|
303
|
+
return (external_react_default().createElement(Breadcrumb_ListItem, { isLastItem: isLastItem, divider: rawDivider, key: `breadcrumb-${index}`, testId: testId }, child));
|
|
304
|
+
}))));
|
|
266
305
|
});
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
// EXTERNAL MODULE: ../ui/dist/esm/components/organisms/Tiles/Tile.js
|
|
271
|
-
var Tile = __webpack_require__(7901);
|
|
272
|
-
// EXTERNAL MODULE: ../components/dist/esm/atoms/Skeleton/Skeleton.js
|
|
273
|
-
var Skeleton = __webpack_require__(792);
|
|
274
|
-
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
275
|
-
var jsx_runtime_ = __webpack_require__(997);
|
|
276
|
-
;// CONCATENATED MODULE: ./src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/ProductTileSkeleton.tsx
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
function ProductTileSkeleton({
|
|
282
|
-
index,
|
|
283
|
-
aspectRatio = 1
|
|
284
|
-
}) {
|
|
285
|
-
return /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
|
|
286
|
-
"data-fs-product-tile-skeleton": true,
|
|
287
|
-
"data-fs-product-tile-skeleton-index": index,
|
|
288
|
-
children: [/*#__PURE__*/jsx_runtime_.jsx("div", {
|
|
289
|
-
"data-fs-product-tile-skeleton-image": true,
|
|
290
|
-
"data-fs-product-tile-skeleton-index": index,
|
|
291
|
-
style: {
|
|
292
|
-
'--fs-product-tile-skeleton-image-aspect-ratio': aspectRatio
|
|
293
|
-
},
|
|
294
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
|
|
295
|
-
size: {
|
|
296
|
-
width: 'auto',
|
|
297
|
-
height: '100%'
|
|
298
|
-
},
|
|
299
|
-
loading: true
|
|
300
|
-
})
|
|
301
|
-
}), /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
|
|
302
|
-
"data-fs-product-tile-skeleton-content": true,
|
|
303
|
-
"data-fs-product-tile-skeleton-index": index,
|
|
304
|
-
children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
|
|
305
|
-
"data-fs-product-tile-skeleton-heading": true,
|
|
306
|
-
children: [/*#__PURE__*/jsx_runtime_.jsx("div", {
|
|
307
|
-
"data-fs-product-tile-skeleton-text": true,
|
|
308
|
-
"data-fs-product-tile-skeleton-index": index,
|
|
309
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
|
|
310
|
-
size: {
|
|
311
|
-
width: '70%',
|
|
312
|
-
height: '1.5rem'
|
|
313
|
-
}
|
|
314
|
-
})
|
|
315
|
-
}), /*#__PURE__*/jsx_runtime_.jsx("div", {
|
|
316
|
-
"data-fs-product-tile-skeleton-price": true,
|
|
317
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
|
|
318
|
-
size: {
|
|
319
|
-
width: '60%',
|
|
320
|
-
height: '1.5rem'
|
|
321
|
-
}
|
|
322
|
-
})
|
|
323
|
-
})]
|
|
324
|
-
}), /*#__PURE__*/jsx_runtime_.jsx("div", {
|
|
325
|
-
"data-fs-product-tile-skeleton-badge": true,
|
|
326
|
-
"data-fs-product-tile-skeleton-index": index,
|
|
327
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
|
|
328
|
-
size: {
|
|
329
|
-
width: '6rem',
|
|
330
|
-
height: '2rem'
|
|
331
|
-
},
|
|
332
|
-
border: "pill"
|
|
333
|
-
})
|
|
334
|
-
})]
|
|
335
|
-
})]
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
/* harmony default export */ const ProductTileSkeleton_ProductTileSkeleton = (ProductTileSkeleton);
|
|
340
|
-
;// CONCATENATED MODULE: ./src/components/skeletons/ProductTilesSkeleton/ProductTilesSkeleton.tsx
|
|
341
|
-
|
|
342
|
-
// TODO: // Replace it when items number become dynamically defined
|
|
306
|
+
/* harmony default export */ const Breadcrumb_BreadcrumbPure = (BreadcrumbPure);
|
|
307
|
+
//# sourceMappingURL=BreadcrumbPure.js.map
|
|
308
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Breadcrumb/BreadcrumbBase.js
|
|
343
309
|
|
|
344
310
|
|
|
345
311
|
|
|
346
|
-
const DEFAULT_ITEMS_NUMBER = 3;
|
|
347
|
-
const DEFAULT_ITEMS_NUMBER_TWO = 2;
|
|
348
312
|
|
|
349
|
-
const getRatio = (products, idx) => {
|
|
350
|
-
const expandsFirstTile = products === DEFAULT_ITEMS_NUMBER && idx === 0;
|
|
351
|
-
const expandsFirstTwoTile = products === DEFAULT_ITEMS_NUMBER_TWO && (idx === 0 || idx === 1);
|
|
352
313
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
314
|
+
const BreadcrumbBase = (0,external_react_.forwardRef)(function BreadcrumbBase({ children, divider: rawDivider = '', testId = 'fs-breadcrumb', breadcrumbList, isDesktop = false, renderLink, homeLink, dropdownButtonIcon = external_react_default().createElement(Icon/* default */.Z, { name: "DotsThree" }), collapsedItemsIcon = (external_react_default().createElement(Icon/* default */.Z, { "data-fs-dropdown-item-icon": true, name: "ArrowElbowDownRight" })), ...otherProps }, ref) {
|
|
315
|
+
const firstItem = isDesktop ? breadcrumbList[0] : null;
|
|
316
|
+
const mediumItems = isDesktop
|
|
317
|
+
? breadcrumbList.slice(1, -2)
|
|
318
|
+
: breadcrumbList.slice(0, -2);
|
|
319
|
+
const lastItems = breadcrumbList.slice(-2);
|
|
320
|
+
const collapseBreadcrumb = breadcrumbList.length > 4;
|
|
321
|
+
const breadcrumbLink = (0,external_react_.useCallback)((renderLinkProps) => {
|
|
322
|
+
const breadcrumbItem = renderLink?.(renderLinkProps);
|
|
323
|
+
const itemProps = renderLinkProps.collapsed
|
|
324
|
+
? {
|
|
325
|
+
'data-fs-breadcrumb-dropdown-link': true,
|
|
326
|
+
}
|
|
327
|
+
: {
|
|
328
|
+
'data-fs-breadcrumb-link': true,
|
|
329
|
+
};
|
|
330
|
+
return breadcrumbItem ? ((0,external_react_.cloneElement)(breadcrumbItem, {
|
|
331
|
+
...itemProps,
|
|
332
|
+
key: renderLinkProps.itemProps.position,
|
|
333
|
+
})) : (external_react_default().createElement(Link_Link/* default */.Z, { ...itemProps, href: renderLinkProps.itemProps.item, key: renderLinkProps.itemProps.position }, renderLinkProps.itemProps.name));
|
|
334
|
+
}, [renderLink]);
|
|
335
|
+
return (external_react_default().createElement(Breadcrumb_BreadcrumbPure, { ref: ref, "data-fs-breadcrumb-is-desktop": isDesktop, ...otherProps },
|
|
336
|
+
homeLink,
|
|
337
|
+
!collapseBreadcrumb &&
|
|
338
|
+
breadcrumbList.map((item, index) => {
|
|
339
|
+
return breadcrumbList.length === index + 1 ? (external_react_default().createElement("span", { key: String(item.position) }, item.name)) : (breadcrumbLink({ itemProps: item, collapsed: false }));
|
|
340
|
+
}),
|
|
341
|
+
collapseBreadcrumb &&
|
|
342
|
+
firstItem &&
|
|
343
|
+
breadcrumbLink({ itemProps: firstItem, collapsed: false }),
|
|
344
|
+
collapseBreadcrumb && (external_react_default().createElement(Dropdown_Dropdown, null,
|
|
345
|
+
external_react_default().createElement(Dropdown_DropdownButton, { "aria-label": "View More", "data-fs-breadcrumb-dropdown-button": true, size: "small" }, dropdownButtonIcon),
|
|
346
|
+
external_react_default().createElement(Dropdown_DropdownMenu, { "data-fs-breadcrumb-dropdown-menu": true }, mediumItems.map((item) => (external_react_default().createElement(Dropdown_DropdownItem, { "data-fs-breadcrumb-dropdown-item": true, key: String(item.position), icon: collapsedItemsIcon }, breadcrumbLink({ itemProps: item, collapsed: true }))))))),
|
|
347
|
+
collapseBreadcrumb &&
|
|
348
|
+
lastItems.map((item, index) => {
|
|
349
|
+
return lastItems.length === index + 1 ? (external_react_default().createElement("span", { key: String(item.position) }, item.name)) : (breadcrumbLink({ itemProps: item, collapsed: false }));
|
|
350
|
+
})));
|
|
351
|
+
});
|
|
352
|
+
/* harmony default export */ const Breadcrumb_BreadcrumbBase = (BreadcrumbBase);
|
|
353
|
+
//# sourceMappingURL=BreadcrumbBase.js.map
|
|
354
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Breadcrumb/Breadcrumb.js
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
const Breadcrumb = ({ breadcrumbList, ...otherProps }) => (external_react_default().createElement((external_react_default()).Fragment, null,
|
|
358
|
+
external_react_default().createElement(Breadcrumb_BreadcrumbBase, { breadcrumbList: breadcrumbList, ...otherProps }),
|
|
359
|
+
external_react_default().createElement(Breadcrumb_BreadcrumbBase, { breadcrumbList: breadcrumbList, isDesktop: true, ...otherProps })));
|
|
360
|
+
/* harmony default export */ const Breadcrumb_Breadcrumb = (Breadcrumb);
|
|
361
|
+
//# sourceMappingURL=Breadcrumb.js.map
|
|
362
|
+
// EXTERNAL MODULE: ./src/sdk/overrides/overrides.ts
|
|
363
|
+
var overrides = __webpack_require__(7506);
|
|
364
|
+
;// CONCATENATED MODULE: ./src/customizations/src/components/overrides/Breadcrumb.tsx
|
|
365
|
+
// This is an example of how it can be used on the starter.
|
|
366
|
+
const SECTION = 'Breadcrumb';
|
|
367
|
+
const override = {
|
|
368
|
+
section: SECTION
|
|
358
369
|
};
|
|
359
370
|
|
|
360
|
-
|
|
361
|
-
children,
|
|
362
|
-
loading = true
|
|
363
|
-
}) {
|
|
364
|
-
return loading ? /*#__PURE__*/jsx_runtime_.jsx(Tiles/* default */.Z, {
|
|
365
|
-
children: Array.from({
|
|
366
|
-
length: DEFAULT_ITEMS_NUMBER
|
|
367
|
-
}, (_, index) => /*#__PURE__*/jsx_runtime_.jsx(Tile/* default */.Z, {
|
|
368
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(ProductTileSkeleton_ProductTileSkeleton, {
|
|
369
|
-
index: index + 1,
|
|
370
|
-
aspectRatio: getRatio(DEFAULT_ITEMS_NUMBER, index)
|
|
371
|
-
})
|
|
372
|
-
}, String(index)))
|
|
373
|
-
}) : /*#__PURE__*/jsx_runtime_.jsx(jsx_runtime_.Fragment, {
|
|
374
|
-
children: children
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
/* harmony default export */ const ProductTilesSkeleton_ProductTilesSkeleton = (ProductTilesSkeleton);
|
|
371
|
+
;// CONCATENATED MODULE: ./src/components/sections/Breadcrumb/Overrides.tsx
|
|
379
372
|
|
|
380
|
-
/***/ }),
|
|
381
|
-
|
|
382
|
-
/***/ 6971:
|
|
383
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
384
373
|
|
|
385
|
-
"use strict";
|
|
386
374
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
})
|
|
375
|
+
const {
|
|
376
|
+
Breadcrumb: Overrides_Breadcrumb,
|
|
377
|
+
Icon: Overrides_Icon
|
|
378
|
+
} = (0,overrides/* getSectionOverrides */.f)({
|
|
379
|
+
Breadcrumb: Breadcrumb_Breadcrumb,
|
|
380
|
+
Icon: Icon/* default */.Z
|
|
381
|
+
}, override);
|
|
391
382
|
|
|
392
|
-
// EXTERNAL MODULE: external "react"
|
|
393
|
-
var external_react_ = __webpack_require__(6689);
|
|
394
|
-
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
395
|
-
;// CONCATENATED MODULE: ../ui/dist/esm/components/organisms/Tiles/Tiles.js
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
const MIN_CHILDREN = 2;
|
|
399
|
-
const MAX_CHILDREN = 4;
|
|
400
|
-
const NUMBER_ITEMS_TO_EXPAND_FIRST_TWO = 2;
|
|
401
|
-
const NUMBER_ITEMS_TO_EXPAND_FIRST = 3;
|
|
402
|
-
const Tiles = (0,external_react_.forwardRef)(function Tiles({ testId = 'store-tiles', children, ...otherProps }, ref) {
|
|
403
|
-
const childrenCount = external_react_.Children.count(children);
|
|
404
|
-
if (false) {}
|
|
405
|
-
if (false) {}
|
|
406
|
-
const expandedClass = childrenCount === NUMBER_ITEMS_TO_EXPAND_FIRST
|
|
407
|
-
? 'expanded-first'
|
|
408
|
-
: childrenCount === NUMBER_ITEMS_TO_EXPAND_FIRST_TWO
|
|
409
|
-
? 'expanded-first-two'
|
|
410
|
-
: '';
|
|
411
|
-
return (external_react_default().createElement("ul", { ref: ref, role: "list", "data-fs-tiles": true, "data-fs-tiles-variant": expandedClass, "data-fs-content": "tiles", "data-testid": testId, ...otherProps }, children));
|
|
412
|
-
});
|
|
413
|
-
/* harmony default export */ const Tiles_Tiles = (Tiles);
|
|
414
|
-
//# sourceMappingURL=Tiles.js.map
|
|
415
383
|
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
416
384
|
var jsx_runtime_ = __webpack_require__(997);
|
|
417
|
-
;// CONCATENATED MODULE: ./src/components/ui/
|
|
418
|
-
const _excluded = ["
|
|
385
|
+
;// CONCATENATED MODULE: ./src/components/ui/Breadcrumb/Breadcrumb.tsx
|
|
386
|
+
const _excluded = ["icon", "alt"];
|
|
419
387
|
|
|
420
388
|
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; }
|
|
421
389
|
|
|
@@ -430,60 +398,97 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
430
398
|
|
|
431
399
|
|
|
432
400
|
|
|
433
|
-
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
const Breadcrumb_Breadcrumb_Breadcrumb = _ref => {
|
|
434
404
|
let {
|
|
435
|
-
|
|
405
|
+
icon = Overrides_Icon.props.name ?? 'Home',
|
|
406
|
+
alt = 'Go to homepage'
|
|
436
407
|
} = _ref,
|
|
437
408
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
438
409
|
|
|
439
|
-
return /*#__PURE__*/jsx_runtime_.jsx(
|
|
440
|
-
|
|
441
|
-
|
|
410
|
+
return /*#__PURE__*/jsx_runtime_.jsx(Overrides_Breadcrumb.Component, _objectSpread(_objectSpread({
|
|
411
|
+
homeLink: /*#__PURE__*/jsx_runtime_.jsx(Link/* default */.Z, {
|
|
412
|
+
"data-fs-breadcrumb-link": true,
|
|
413
|
+
"data-fs-breadcrumb-link-home": true,
|
|
414
|
+
"aria-label": alt,
|
|
415
|
+
href: "/",
|
|
416
|
+
prefetch: false,
|
|
417
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(Overrides_Icon.Component, _objectSpread(_objectSpread({
|
|
418
|
+
width: 18,
|
|
419
|
+
height: 18,
|
|
420
|
+
weight: "bold"
|
|
421
|
+
}, Overrides_Icon.props), {}, {
|
|
422
|
+
name: icon
|
|
423
|
+
}))
|
|
424
|
+
}),
|
|
425
|
+
renderLink: ({
|
|
426
|
+
itemProps: {
|
|
427
|
+
item: link,
|
|
428
|
+
name
|
|
429
|
+
}
|
|
430
|
+
}) => /*#__PURE__*/jsx_runtime_.jsx(Link/* default */.Z, {
|
|
431
|
+
"data-fs-breadcrumb-link": true,
|
|
432
|
+
href: link,
|
|
433
|
+
prefetch: false,
|
|
434
|
+
children: name
|
|
435
|
+
})
|
|
436
|
+
}, Overrides_Breadcrumb.props), otherProps));
|
|
442
437
|
};
|
|
443
438
|
|
|
444
|
-
/* harmony default export */ const
|
|
439
|
+
/* harmony default export */ const ui_Breadcrumb_Breadcrumb = (/*#__PURE__*/(0,external_react_.memo)(Breadcrumb_Breadcrumb_Breadcrumb));
|
|
440
|
+
// EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
|
|
441
|
+
var Section = __webpack_require__(3271);
|
|
442
|
+
// EXTERNAL MODULE: ./src/components/sections/Breadcrumb/section.module.scss
|
|
443
|
+
var section_module = __webpack_require__(5000);
|
|
444
|
+
var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
|
|
445
|
+
// EXTERNAL MODULE: ./src/sdk/overrides/PageProvider.tsx
|
|
446
|
+
var PageProvider = __webpack_require__(5953);
|
|
447
|
+
;// CONCATENATED MODULE: ./src/components/sections/Breadcrumb/Breadcrumb.tsx
|
|
448
|
+
function Breadcrumb_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; }
|
|
449
|
+
|
|
450
|
+
function Breadcrumb_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Breadcrumb_ownKeys(Object(source), !0).forEach(function (key) { Breadcrumb_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Breadcrumb_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
451
|
+
|
|
452
|
+
function Breadcrumb_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; }
|
|
453
|
+
|
|
454
|
+
|
|
445
455
|
|
|
446
|
-
/***/ }),
|
|
447
456
|
|
|
448
|
-
/***/ 7952:
|
|
449
|
-
/***/ ((module) => {
|
|
450
457
|
|
|
451
|
-
// Exports
|
|
452
|
-
module.exports = {
|
|
453
|
-
"section": "section_section__rUfAR"
|
|
454
|
-
};
|
|
455
458
|
|
|
456
459
|
|
|
460
|
+
|
|
461
|
+
function BreadcrumbSection(_ref) {
|
|
462
|
+
let otherProps = Object.assign({}, _ref);
|
|
463
|
+
const context = (0,PageProvider/* usePage */.qt)();
|
|
464
|
+
const title = (0,PageProvider/* isPLP */.OJ)(context) ? context?.data?.collection?.seo?.title : 'All Products';
|
|
465
|
+
const fallback = [{
|
|
466
|
+
item: '/',
|
|
467
|
+
name: title,
|
|
468
|
+
position: 1
|
|
469
|
+
}];
|
|
470
|
+
const breadcrumbList = (0,PageProvider/* isPDP */.tS)(context) ? context?.data?.product?.breadcrumbList?.itemListElement : (0,PageProvider/* isPLP */.OJ)(context) ? context?.data?.collection?.breadcrumbList?.itemListElement : fallback;
|
|
471
|
+
return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
|
|
472
|
+
className: `${(section_module_default()).section} section-breadcrumb`,
|
|
473
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(ui_Breadcrumb_Breadcrumb, Breadcrumb_objectSpread({
|
|
474
|
+
breadcrumbList: breadcrumbList
|
|
475
|
+
}, otherProps))
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
/* harmony default export */ const sections_Breadcrumb_Breadcrumb = (/*#__PURE__*/(0,external_react_.memo)(BreadcrumbSection));
|
|
480
|
+
|
|
457
481
|
/***/ }),
|
|
458
482
|
|
|
459
|
-
/***/
|
|
483
|
+
/***/ 5000:
|
|
460
484
|
/***/ ((module) => {
|
|
461
485
|
|
|
462
486
|
// Exports
|
|
463
487
|
module.exports = {
|
|
464
|
-
"section": "
|
|
465
|
-
"loading": "section_loading__GpWrl"
|
|
488
|
+
"section": "section_section__hRV9B"
|
|
466
489
|
};
|
|
467
490
|
|
|
468
491
|
|
|
469
|
-
/***/ }),
|
|
470
|
-
|
|
471
|
-
/***/ 7901:
|
|
472
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
473
|
-
|
|
474
|
-
"use strict";
|
|
475
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
476
|
-
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
477
|
-
/* harmony export */ });
|
|
478
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
479
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
480
|
-
|
|
481
|
-
const Tile = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Tile({ testId = 'store-tile', children, ...otherProps }, ref) {
|
|
482
|
-
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", { ref: ref, role: "listitem", "data-fs-tile": true, "data-testid": testId, ...otherProps }, children));
|
|
483
|
-
});
|
|
484
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Tile);
|
|
485
|
-
//# sourceMappingURL=Tile.js.map
|
|
486
|
-
|
|
487
492
|
/***/ })
|
|
488
493
|
|
|
489
494
|
};
|