@faststore/core 2.2.51 → 2.2.53
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 +48 -49
- 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/routes-manifest.json +1 -1
- package/.next/server/chunks/350.js +1 -1
- package/.next/server/chunks/390.js +393 -453
- package/.next/server/chunks/74.js +432 -187
- package/.next/server/chunks/773.js +550 -0
- package/.next/server/chunks/{979.js → 890.js} +13 -113
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/[...slug].js +7 -7
- package/.next/server/pages/[...slug].js.nft.json +1 -1
- package/.next/server/pages/[slug]/p.js +5 -5
- package/.next/server/pages/[slug]/p.js.nft.json +1 -1
- package/.next/server/pages/api/graphql.js +1 -1
- package/.next/server/pages/api/graphql.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 +5 -5
- package/.next/server/pages/index.js.nft.json +1 -1
- package/.next/server/pages/s.js +1 -1
- package/.next/server/pages/s.js.nft.json +1 -1
- package/.next/static/McclVBfxjOJEmRRYVXL7T/_buildManifest.js +1 -0
- package/.next/static/chunks/158-042441a60c3b4b56.js +1 -0
- package/.next/static/chunks/290-383e1d36f83c367d.js +1 -0
- package/.next/static/chunks/pages/{404-2240f0b22db2d370.js → 404-7710903c2a59fa6e.js} +1 -1
- package/.next/static/chunks/pages/{500-c0580e3299329874.js → 500-88a231e61179db83.js} +1 -1
- package/.next/static/chunks/pages/[...slug]-9b20bb8274fe7854.js +1 -0
- package/.next/static/chunks/pages/[slug]/{p-e1df08570f34a0d8.js → p-0ef7dd71888c199e.js} +1 -1
- package/.next/static/chunks/pages/{account-b35bcbef719765f3.js → account-f163e14670372c05.js} +1 -1
- package/.next/static/chunks/pages/{checkout-55bd56ade4408cbe.js → checkout-cf498a32e110bde8.js} +1 -1
- package/.next/static/chunks/pages/index-1cfe3afbd6564f45.js +1 -0
- package/.next/static/chunks/pages/{login-3f94bff1503b4fdc.js → login-707636c85f23cac6.js} +1 -1
- package/.next/static/chunks/pages/{s-8575d9c5780684d0.js → s-0bfcfd0d40841dcf.js} +1 -1
- package/.next/static/chunks/webpack-ba86ae9a63f61805.js +1 -0
- package/.next/static/css/14c11109f82a6f9a.css +1 -0
- package/.next/static/css/4e42cc999ad62b57.css +1 -0
- package/.next/static/css/d456bfc64bc489a2.css +1 -0
- package/.next/static/css/e337ce16f77f08a7.css +1 -0
- package/.next/trace +81 -80
- package/.turbo/turbo-build.log +12 -11
- package/.turbo/turbo-test.log +9 -9
- package/package.json +9 -9
- package/src/components/sections/BannerNewsletter/BannerNewsletter.tsx +2 -1
- package/src/components/sections/BannerText/BannerText.tsx +16 -16
- package/src/components/sections/BannerText/DefaultComponents.ts +9 -0
- package/src/components/sections/BannerText/OverriddenDefaultBannerText.ts +12 -0
- package/src/components/sections/Hero/DefaultComponents.ts +11 -0
- package/src/components/sections/Hero/Hero.tsx +12 -9
- package/src/components/sections/Hero/OverriddenDefaultHero.ts +12 -0
- package/src/components/templates/LandingPage/LandingPage.tsx +2 -2
- package/src/components/templates/ProductListingPage/ProductListing.tsx +1 -1
- package/src/pages/[slug]/p.tsx +1 -1
- package/src/pages/index.tsx +2 -2
- package/src/sdk/overrides/getOverriddenSection.tsx +5 -3
- package/src/sdk/overrides/sections.tsx +8 -0
- package/src/typings/overrides.ts +1 -1
- package/.next/server/chunks/398.js +0 -611
- package/.next/static/EcMI9hKhWC_hpCOHJZCZc/_buildManifest.js +0 -1
- package/.next/static/chunks/469-1925f9bd1c82e92b.js +0 -1
- package/.next/static/chunks/783-fbcb7a3216c40744.js +0 -1
- package/.next/static/chunks/pages/[...slug]-92810abb37fa7bda.js +0 -1
- package/.next/static/chunks/pages/index-2506749e45c335bf.js +0 -1
- package/.next/static/chunks/webpack-86d49ac4b093b8cf.js +0 -1
- package/.next/static/css/29868543c76bc6fd.css +0 -1
- package/.next/static/css/527e334fa69cf40a.css +0 -1
- package/.next/static/css/a2eefb25a4608343.css +0 -1
- package/.next/static/css/dfbdb0f27fd64782.css +0 -1
- package/src/components/sections/BannerText/Overrides.tsx +0 -18
- package/src/components/sections/Hero/Overrides.tsx +0 -20
- /package/.next/static/{EcMI9hKhWC_hpCOHJZCZc → McclVBfxjOJEmRRYVXL7T}/_ssgManifest.js +0 -0
|
@@ -2,394 +2,149 @@ exports.id = 390;
|
|
|
2
2
|
exports.ids = [390];
|
|
3
3
|
exports.modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 7587:
|
|
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
|
+
"V": () => (/* binding */ OverriddenDefaultHero)
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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',
|
|
32
|
-
};
|
|
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));
|
|
15
|
+
;// CONCATENATED MODULE: ./src/customizations/src/components/overrides/Hero.tsx
|
|
16
|
+
// This is an example of how it can be used on the starter.
|
|
17
|
+
const SECTION = 'Hero';
|
|
18
|
+
const override = {
|
|
19
|
+
section: SECTION
|
|
100
20
|
};
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
21
|
+
|
|
22
|
+
// EXTERNAL MODULE: ./src/sdk/overrides/getOverriddenSection.tsx + 13 modules
|
|
23
|
+
var getOverriddenSection = __webpack_require__(170);
|
|
24
|
+
;// CONCATENATED MODULE: ./src/components/sections/Hero/OverriddenDefaultHero.ts
|
|
25
|
+
|
|
106
26
|
|
|
107
27
|
|
|
108
28
|
/**
|
|
109
|
-
*
|
|
110
|
-
*
|
|
29
|
+
* This component exists to support overrides 1.0
|
|
30
|
+
*
|
|
31
|
+
* This allows users to override the default Hero section present in the Headless CMS
|
|
111
32
|
*/
|
|
112
|
-
const
|
|
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
|
|
121
|
-
|
|
33
|
+
const OverriddenDefaultHero = (0,getOverriddenSection/* getOverriddenSection */.v)(override);
|
|
122
34
|
|
|
35
|
+
/***/ }),
|
|
123
36
|
|
|
124
|
-
|
|
125
|
-
|
|
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
|
|
37
|
+
/***/ 5247:
|
|
38
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
136
39
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
|
40
|
+
"use strict";
|
|
41
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
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__);
|
|
162
50
|
|
|
163
51
|
|
|
164
52
|
|
|
165
53
|
|
|
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();
|
|
183
|
-
};
|
|
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();
|
|
225
|
-
};
|
|
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);
|
|
269
|
-
}
|
|
270
|
-
return external_react_default().createElement("span", { ...props }, divider ?? '/');
|
|
271
|
-
};
|
|
272
|
-
/* harmony default export */ const Breadcrumb_Divider = (Divider);
|
|
273
|
-
//# sourceMappingURL=Divider.js.map
|
|
274
|
-
;// CONCATENATED MODULE: ../components/dist/esm/molecules/Breadcrumb/ListItem.js
|
|
275
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
|
+
}
|
|
276
66
|
|
|
277
|
-
|
|
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
|
|
67
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Incentives);
|
|
296
68
|
|
|
69
|
+
/***/ }),
|
|
297
70
|
|
|
71
|
+
/***/ 8569:
|
|
72
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
298
73
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
/* harmony
|
|
307
|
-
|
|
308
|
-
|
|
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; }
|
|
309
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; }
|
|
310
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; }
|
|
311
94
|
|
|
312
95
|
|
|
313
96
|
|
|
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
|
|
369
|
-
};
|
|
370
97
|
|
|
371
|
-
;// CONCATENATED MODULE: ./src/components/sections/Breadcrumb/Overrides.tsx
|
|
372
98
|
|
|
373
99
|
|
|
374
100
|
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
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
|
+
}
|
|
382
115
|
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
const _excluded = ["icon", "alt"];
|
|
116
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelfSection);
|
|
117
|
+
__webpack_async_result__();
|
|
118
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
387
119
|
|
|
388
|
-
|
|
120
|
+
/***/ }),
|
|
389
121
|
|
|
390
|
-
|
|
122
|
+
/***/ 2834:
|
|
123
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
391
124
|
|
|
392
|
-
|
|
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"];
|
|
393
148
|
|
|
394
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; }
|
|
395
150
|
|
|
@@ -400,150 +155,335 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
400
155
|
|
|
401
156
|
|
|
402
157
|
|
|
403
|
-
const Breadcrumb_Breadcrumb_Breadcrumb = _ref => {
|
|
404
|
-
let {
|
|
405
|
-
icon = Overrides_Icon.props.name ?? 'Home',
|
|
406
|
-
alt = 'Go to homepage'
|
|
407
|
-
} = _ref,
|
|
408
|
-
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
409
158
|
|
|
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));
|
|
437
|
-
};
|
|
438
159
|
|
|
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
160
|
|
|
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
161
|
|
|
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
162
|
|
|
454
163
|
|
|
164
|
+
const NUMBER_ITEMS_TO_EXPAND_FIRST = 3;
|
|
165
|
+
const NUMBER_ITEMS_TO_EXPAND_FIRST_TWO = 2;
|
|
455
166
|
|
|
167
|
+
const getRatio = (products, idx) => {
|
|
168
|
+
const expandsFirstTile = products === NUMBER_ITEMS_TO_EXPAND_FIRST && idx === 0;
|
|
169
|
+
const expandsFirstTwoTile = products === NUMBER_ITEMS_TO_EXPAND_FIRST_TWO && (idx === 0 || idx === 1);
|
|
456
170
|
|
|
171
|
+
if (expandsFirstTile || expandsFirstTwoTile) {
|
|
172
|
+
return 5 / 3;
|
|
173
|
+
}
|
|
457
174
|
|
|
175
|
+
return 3 / 4;
|
|
176
|
+
};
|
|
458
177
|
|
|
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);
|
|
459
181
|
|
|
182
|
+
if (expandsFirstTile || expandsFirstTwoTile) {
|
|
183
|
+
return {
|
|
184
|
+
width: 594,
|
|
185
|
+
height: 364
|
|
186
|
+
};
|
|
187
|
+
}
|
|
460
188
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
189
|
+
return {
|
|
190
|
+
width: 284,
|
|
191
|
+
height: 364
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
const ProductTiles = _ref => {
|
|
196
|
+
let {
|
|
197
|
+
title
|
|
198
|
+
} = _ref,
|
|
199
|
+
variables = _objectWithoutProperties(_ref, _excluded);
|
|
200
|
+
|
|
201
|
+
const viewedOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
|
|
202
|
+
const {
|
|
203
|
+
ref,
|
|
204
|
+
inView
|
|
205
|
+
} = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__.useInView)();
|
|
206
|
+
const data = (0,src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_3__/* .useProductsQuery */ .k)(variables);
|
|
207
|
+
const products = data?.search?.products;
|
|
208
|
+
const productEdges = products?.edges ?? [];
|
|
209
|
+
const {
|
|
210
|
+
sendViewItemListEvent
|
|
211
|
+
} = (0,src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_4__/* .useViewItemListEvent */ .m)({
|
|
212
|
+
products: productEdges,
|
|
213
|
+
title,
|
|
214
|
+
page: 0,
|
|
215
|
+
pageSize: 0
|
|
476
216
|
});
|
|
477
|
-
|
|
217
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
218
|
+
if (inView && !viewedOnce.current && productEdges.length) {
|
|
219
|
+
sendViewItemListEvent();
|
|
220
|
+
viewedOnce.current = true;
|
|
221
|
+
}
|
|
222
|
+
}, [inView, productEdges.length, sendViewItemListEvent]);
|
|
478
223
|
|
|
479
|
-
|
|
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
|
+
});
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductTiles);
|
|
253
|
+
__webpack_async_result__();
|
|
254
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
480
255
|
|
|
481
256
|
/***/ }),
|
|
482
257
|
|
|
483
|
-
/***/
|
|
258
|
+
/***/ 8860:
|
|
484
259
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
485
260
|
|
|
486
261
|
"use strict";
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
262
|
+
|
|
263
|
+
// EXPORTS
|
|
264
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
265
|
+
"Z": () => (/* binding */ ProductTilesSkeleton_ProductTilesSkeleton)
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
// EXTERNAL MODULE: ./src/components/ui/Tiles/Tiles.tsx + 1 modules
|
|
269
|
+
var Tiles = __webpack_require__(6971);
|
|
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
|
|
500
277
|
|
|
501
278
|
|
|
502
|
-
const isPDP = x => x?.data?.product?.sku != undefined && x?.data?.product?.sku != null;
|
|
503
|
-
const isPLP = x => x?.data?.collection?.seo != undefined && x?.data?.collection?.seo != null && x?.data?.collection?.sku == undefined;
|
|
504
|
-
const isSearchPage = x => x === undefined || x?.data?.title != undefined || x?.data?.searchTerm != undefined;
|
|
505
|
-
const PageContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
|
|
506
279
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
280
|
+
|
|
281
|
+
function ProductTileSkeleton({
|
|
282
|
+
index,
|
|
283
|
+
aspectRatio = 1
|
|
510
284
|
}) {
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
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
|
+
})]
|
|
517
336
|
});
|
|
518
337
|
}
|
|
519
338
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
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
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
const DEFAULT_ITEMS_NUMBER = 3;
|
|
347
|
+
const DEFAULT_ITEMS_NUMBER_TWO = 2;
|
|
524
348
|
|
|
525
|
-
|
|
526
|
-
|
|
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
|
+
|
|
353
|
+
if (expandsFirstTile || expandsFirstTwoTile) {
|
|
354
|
+
return 5 / 3;
|
|
527
355
|
}
|
|
528
356
|
|
|
529
|
-
return
|
|
357
|
+
return 3 / 4;
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
function ProductTilesSkeleton({
|
|
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
|
+
});
|
|
530
376
|
}
|
|
531
|
-
|
|
532
|
-
const
|
|
533
|
-
const useSearchPage = () => usePage();
|
|
534
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PageProvider);
|
|
377
|
+
|
|
378
|
+
/* harmony default export */ const ProductTilesSkeleton_ProductTilesSkeleton = (ProductTilesSkeleton);
|
|
535
379
|
|
|
536
380
|
/***/ }),
|
|
537
381
|
|
|
538
|
-
/***/
|
|
382
|
+
/***/ 6971:
|
|
383
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
384
|
+
|
|
385
|
+
"use strict";
|
|
386
|
+
|
|
387
|
+
// EXPORTS
|
|
388
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
389
|
+
"Z": () => (/* binding */ ui_Tiles_Tiles)
|
|
390
|
+
});
|
|
391
|
+
|
|
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
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
416
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
417
|
+
;// CONCATENATED MODULE: ./src/components/ui/Tiles/Tiles.tsx
|
|
418
|
+
const _excluded = ["children"];
|
|
419
|
+
|
|
420
|
+
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
|
+
|
|
422
|
+
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; }
|
|
423
|
+
|
|
424
|
+
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; }
|
|
425
|
+
|
|
426
|
+
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; }
|
|
427
|
+
|
|
428
|
+
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; }
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
const Tiles_Tiles_Tiles = _ref => {
|
|
434
|
+
let {
|
|
435
|
+
children
|
|
436
|
+
} = _ref,
|
|
437
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
438
|
+
|
|
439
|
+
return /*#__PURE__*/jsx_runtime_.jsx(Tiles_Tiles, _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
440
|
+
children: children
|
|
441
|
+
}));
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
/* harmony default export */ const ui_Tiles_Tiles = (Tiles_Tiles_Tiles);
|
|
445
|
+
|
|
446
|
+
/***/ }),
|
|
447
|
+
|
|
448
|
+
/***/ 7952:
|
|
449
|
+
/***/ ((module) => {
|
|
450
|
+
|
|
451
|
+
// Exports
|
|
452
|
+
module.exports = {
|
|
453
|
+
"section": "section_section__rUfAR"
|
|
454
|
+
};
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
/***/ }),
|
|
458
|
+
|
|
459
|
+
/***/ 2366:
|
|
539
460
|
/***/ ((module) => {
|
|
540
461
|
|
|
541
462
|
// Exports
|
|
542
463
|
module.exports = {
|
|
543
|
-
"section": "
|
|
464
|
+
"section": "section_section__hGuvG",
|
|
465
|
+
"loading": "section_loading__GpWrl"
|
|
544
466
|
};
|
|
545
467
|
|
|
546
468
|
|
|
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
|
+
|
|
547
487
|
/***/ })
|
|
548
488
|
|
|
549
489
|
};
|