@faststore/core 2.1.31 → 2.1.35
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 +67 -67
- 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/186.js +16 -39
- package/.next/server/chunks/253.js +22 -48
- package/.next/server/chunks/289.js +4 -7
- package/.next/server/chunks/350.js +1 -1
- package/.next/server/chunks/721.js +22 -51
- package/.next/server/chunks/74.js +154 -215
- package/.next/server/chunks/81.js +88 -172
- package/.next/server/chunks/907.js +54 -100
- 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.nft.json +1 -1
- package/.next/server/pages/500.js.nft.json +1 -1
- package/.next/server/pages/[...slug].js.nft.json +1 -1
- package/.next/server/pages/[slug]/p.js +82 -135
- 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.nft.json +1 -1
- package/.next/server/pages/api/graphql.js +1 -1
- 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.nft.json +1 -1
- package/.next/server/pages/login.js.nft.json +1 -1
- package/.next/server/pages/s.js.nft.json +1 -1
- package/.next/server/pages-manifest.json +2 -2
- package/.next/static/chunks/209-d1d2eeaeefbc68f7.js +1 -0
- package/.next/static/chunks/548-6b23e7ad82cd22b9.js +1 -0
- package/.next/static/chunks/{64.7ea3677ac3a10e00.js → 64.2f385ef39cd5877d.js} +1 -1
- package/.next/static/chunks/706-1020d118bb59b204.js +1 -0
- package/.next/static/chunks/{738-67a288ca3569cdbb.js → 738-a5ff304828f20cbf.js} +1 -1
- package/.next/static/chunks/791-681afeb766a9098f.js +1 -0
- package/.next/static/chunks/pages/404-14d27e3706f3d2c3.js +1 -0
- package/.next/static/chunks/pages/500-250ccf5c9626e451.js +1 -0
- package/.next/static/chunks/pages/[...slug]-bcfaf0c5d60b57a0.js +1 -0
- package/.next/static/chunks/pages/[slug]/p-c1f2b05344981f12.js +1 -0
- package/.next/static/chunks/pages/index-bdbfb082027ed2b7.js +1 -0
- package/.next/static/chunks/pages/login-b1bdf30c951bb60d.js +1 -0
- package/.next/static/chunks/webpack-73cade94715ad9e1.js +1 -0
- package/.next/static/css/208b7dd52a0981bd.css +1 -0
- package/.next/static/css/41ef280537acec50.css +1 -0
- package/.next/static/css/4ad5a6bd11a9f8d8.css +1 -0
- package/.next/static/css/5330ae3076254840.css +1 -0
- package/.next/static/css/5972921daee792bb.css +1 -0
- package/.next/static/css/6e1a7434f061d0ef.css +1 -0
- package/.next/static/css/82a475e147f4b2ee.css +1 -0
- package/.next/static/css/af5ef0767b748cb3.css +1 -0
- package/.next/static/css/cb7d1fcea42fab9c.css +1 -0
- package/.next/static/css/d67fbe2a613293c1.css +1 -0
- package/.next/static/uXS-aZT8ClbPcIudKFF0d/_buildManifest.js +1 -0
- package/.next/trace +80 -80
- package/.turbo/turbo-build.log +10 -19
- package/package.json +8 -8
- package/src/components/common/Alert/Alert.tsx +5 -8
- package/src/components/navigation/Navbar/Navbar.tsx +22 -22
- package/src/components/navigation/NavbarLinks/NavbarLinks.tsx +8 -7
- package/src/components/navigation/NavbarSlider/NavbarSlider.tsx +15 -14
- package/src/components/product/ProductGrid/ProductGrid.tsx +5 -10
- package/src/components/region/RegionBar/RegionBar.tsx +27 -13
- package/src/components/search/Filter/Filter.tsx +6 -11
- package/src/components/sections/Alert/Alert.tsx +17 -13
- package/src/components/sections/Alert/Overrides.tsx +13 -25
- package/src/components/sections/BannerText/BannerText.tsx +24 -20
- package/src/components/sections/BannerText/Overrides.tsx +11 -23
- package/src/components/sections/Breadcrumb/Overrides.tsx +13 -25
- package/src/components/sections/EmptyState/EmptyState.tsx +6 -8
- package/src/components/sections/EmptyState/Overrides.tsx +12 -24
- package/src/components/sections/Hero/Hero.tsx +15 -12
- package/src/components/sections/Hero/Overrides.tsx +12 -24
- package/src/components/sections/Navbar/Overrides.tsx +43 -31
- package/src/components/sections/Newsletter/Overrides.tsx +28 -26
- package/src/components/sections/ProductDetails/Overrides.tsx +51 -38
- package/src/components/sections/ProductDetails/ProductDetails.tsx +22 -30
- package/src/components/sections/ProductGallery/Overrides.tsx +44 -35
- package/src/components/sections/ProductShelf/Overrides.tsx +14 -28
- package/src/components/sections/RegionBar/Overrides.tsx +12 -24
- package/src/components/ui/Breadcrumb/Breadcrumb.tsx +9 -7
- package/src/components/ui/ImageGallery/ImageGallery.tsx +13 -19
- package/src/components/ui/Newsletter/Newsletter.tsx +23 -24
- package/src/components/ui/ProductDetails/ProductDetailsSettings.tsx +21 -17
- package/src/components/ui/ProductGallery/ProductGallery.tsx +31 -38
- package/src/components/ui/ProductShelf/ProductShelf.tsx +11 -16
- package/src/components/ui/ShippingSimulation/ShippingSimulation.tsx +2 -3
- package/src/components/ui/SkuSelector/Selectors.tsx +8 -7
- package/src/customizations/components/overrides/Alert.tsx +3 -7
- package/src/customizations/components/overrides/BannerText.tsx +3 -7
- package/src/customizations/components/overrides/Breadcrumb.tsx +3 -7
- package/src/customizations/components/overrides/EmptyState.tsx +3 -6
- package/src/customizations/components/overrides/Hero.tsx +3 -8
- package/src/customizations/components/overrides/Navbar.tsx +3 -16
- package/src/customizations/components/overrides/Newsletter.tsx +3 -11
- package/src/customizations/components/overrides/ProductDetails.tsx +3 -18
- package/src/customizations/components/overrides/ProductGallery.tsx +3 -16
- package/src/customizations/components/overrides/ProductShelf.tsx +3 -8
- package/src/customizations/components/overrides/RegionBar.tsx +3 -8
- package/src/typings/overrideDefinitionUtils.ts +40 -0
- package/src/typings/overrides.ts +267 -0
- package/src/utils/overrides.ts +53 -0
- package/.next/static/chunks/209-9a50f2317fccb202.js +0 -1
- package/.next/static/chunks/548-ab84e9e8b49413ab.js +0 -1
- package/.next/static/chunks/706-5aea41dd07970d2d.js +0 -1
- package/.next/static/chunks/791-63b1ccf9964b6517.js +0 -1
- package/.next/static/chunks/pages/404-d5f20744ecd83121.js +0 -1
- package/.next/static/chunks/pages/500-3911549ab88d0378.js +0 -1
- package/.next/static/chunks/pages/[...slug]-2232ce78cb672654.js +0 -1
- package/.next/static/chunks/pages/[slug]/p-16595182cbda6bb9.js +0 -1
- package/.next/static/chunks/pages/index-7c2ec2e4b6081dbc.js +0 -1
- package/.next/static/chunks/pages/login-4cc4b8e52608f076.js +0 -1
- package/.next/static/chunks/webpack-a86bbea19dfdfd35.js +0 -1
- package/.next/static/css/08e3fc80f9bad95d.css +0 -1
- package/.next/static/css/1b23beb5af203ffb.css +0 -1
- package/.next/static/css/4b19e1e142e038b0.css +0 -1
- package/.next/static/css/584640ffee46aa49.css +0 -1
- package/.next/static/css/7486a2a5fcda5283.css +0 -1
- package/.next/static/css/7d822a137c54a781.css +0 -1
- package/.next/static/css/a49f71ae6bb528e0.css +0 -1
- package/.next/static/css/d1ad1d89f8d5c7a1.css +0 -1
- package/.next/static/css/e02cdad8fc000339.css +0 -1
- package/.next/static/css/f9d59f597a4d8f82.css +0 -1
- package/.next/static/xYGxa3PwWTjNHEfOkCiX-/_buildManifest.js +0 -1
- package/src/typings/overrides.d.ts +0 -97
- /package/.next/static/{xYGxa3PwWTjNHEfOkCiX- → uXS-aZT8ClbPcIudKFF0d}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import type { PropsWithChildren } from 'react'
|
|
2
|
+
import type {
|
|
3
|
+
AlertProps,
|
|
4
|
+
BannerTextContentProps,
|
|
5
|
+
BannerTextProps,
|
|
6
|
+
BreadcrumbProps,
|
|
7
|
+
ButtonProps,
|
|
8
|
+
DiscountBadgeProps,
|
|
9
|
+
EmptyStateProps,
|
|
10
|
+
HeroHeaderProps,
|
|
11
|
+
HeroImageProps,
|
|
12
|
+
HeroProps,
|
|
13
|
+
IconButtonProps,
|
|
14
|
+
IconProps,
|
|
15
|
+
ImageGalleryProps,
|
|
16
|
+
ImageZoomProps,
|
|
17
|
+
InputFieldProps,
|
|
18
|
+
LinkButtonProps,
|
|
19
|
+
NavbarButtonsProps,
|
|
20
|
+
NavbarHeaderProps,
|
|
21
|
+
NavbarLinksListProps,
|
|
22
|
+
NavbarLinksProps,
|
|
23
|
+
NavbarProps,
|
|
24
|
+
NavbarRowProps,
|
|
25
|
+
NavbarSliderContentProps,
|
|
26
|
+
NavbarSliderFooterProps,
|
|
27
|
+
NavbarSliderHeaderProps,
|
|
28
|
+
NavbarSliderProps,
|
|
29
|
+
PriceProps,
|
|
30
|
+
ProductShelfProps,
|
|
31
|
+
ProductTitleProps,
|
|
32
|
+
QuantitySelectorProps,
|
|
33
|
+
RegionBarProps,
|
|
34
|
+
ShippingSimulationProps,
|
|
35
|
+
SkeletonProps,
|
|
36
|
+
SkuSelectorProps,
|
|
37
|
+
} from '@faststore/ui'
|
|
38
|
+
|
|
39
|
+
import type {
|
|
40
|
+
ComponentOverrideDefinition,
|
|
41
|
+
SectionOverrideDefinition,
|
|
42
|
+
} from './overrideDefinitionUtils'
|
|
43
|
+
|
|
44
|
+
export type SectionOverride =
|
|
45
|
+
| AlertOverrideDefinition
|
|
46
|
+
| BannerTextOverrideDefinition
|
|
47
|
+
| BreadcrumbOverrideDefinition
|
|
48
|
+
| EmptyStateOverrideDefinition
|
|
49
|
+
| HeroOverrideDefinition
|
|
50
|
+
| NavbarOverrideDefinition
|
|
51
|
+
| NewsletterOverrideDefinition
|
|
52
|
+
| ProductDetailsOverrideDefinition
|
|
53
|
+
| ProductGalleryOverrideDefinition
|
|
54
|
+
| ProductShelfOverrideDefinition
|
|
55
|
+
| RegionBarOverrideDefinition
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Originally, these types were defined in their respective Overrides file
|
|
59
|
+
* For some reason, typescript wouldn't interpret SectionOverride correctly when
|
|
60
|
+
* defining it by importing each of the SectionOverrideDefinitions and would set it as 'any'
|
|
61
|
+
*
|
|
62
|
+
* For some reason, defining them in the same file as SectionOverride seems to fix the issue.
|
|
63
|
+
* Consider that before moving them elsewhere and test it on the starter as well.
|
|
64
|
+
*/
|
|
65
|
+
export type AlertOverrideDefinition = SectionOverrideDefinition<
|
|
66
|
+
'Alert',
|
|
67
|
+
{
|
|
68
|
+
Alert: ComponentOverrideDefinition<AlertProps, Omit<AlertProps, 'onClose'>>
|
|
69
|
+
Icon: ComponentOverrideDefinition<IconProps, IconProps>
|
|
70
|
+
}
|
|
71
|
+
>
|
|
72
|
+
|
|
73
|
+
export type BannerTextOverrideDefinition = SectionOverrideDefinition<
|
|
74
|
+
'BannerText',
|
|
75
|
+
{
|
|
76
|
+
BannerText: ComponentOverrideDefinition<BannerTextProps, BannerTextProps>
|
|
77
|
+
BannerTextContent: ComponentOverrideDefinition<
|
|
78
|
+
BannerTextContentProps,
|
|
79
|
+
BannerTextContentProps
|
|
80
|
+
>
|
|
81
|
+
}
|
|
82
|
+
>
|
|
83
|
+
|
|
84
|
+
export type BreadcrumbOverrideDefinition = SectionOverrideDefinition<
|
|
85
|
+
'Breadcrumb',
|
|
86
|
+
{
|
|
87
|
+
Breadcrumb: ComponentOverrideDefinition<BreadcrumbProps, BreadcrumbProps>
|
|
88
|
+
Icon: ComponentOverrideDefinition<IconProps, IconProps>
|
|
89
|
+
}
|
|
90
|
+
>
|
|
91
|
+
|
|
92
|
+
export type EmptyStateOverrideDefinition = SectionOverrideDefinition<
|
|
93
|
+
'EmptyState',
|
|
94
|
+
{
|
|
95
|
+
EmptyState: ComponentOverrideDefinition<
|
|
96
|
+
PropsWithChildren<EmptyStateProps>,
|
|
97
|
+
EmptyStateProps
|
|
98
|
+
>
|
|
99
|
+
}
|
|
100
|
+
>
|
|
101
|
+
|
|
102
|
+
export type HeroOverrideDefinition = SectionOverrideDefinition<
|
|
103
|
+
'Hero',
|
|
104
|
+
{
|
|
105
|
+
Hero: ComponentOverrideDefinition<HeroProps, HeroProps>
|
|
106
|
+
HeroImage: ComponentOverrideDefinition<HeroImageProps, HeroImageProps>
|
|
107
|
+
HeroHeader: ComponentOverrideDefinition<HeroHeaderProps, HeroHeaderProps>
|
|
108
|
+
}
|
|
109
|
+
>
|
|
110
|
+
|
|
111
|
+
export type NavbarOverrideDefinition = SectionOverrideDefinition<
|
|
112
|
+
'Navbar',
|
|
113
|
+
{
|
|
114
|
+
Navbar: ComponentOverrideDefinition<NavbarProps, NavbarProps>
|
|
115
|
+
NavbarLinks: ComponentOverrideDefinition<NavbarLinksProps, NavbarLinksProps>
|
|
116
|
+
NavbarLinksList: ComponentOverrideDefinition<
|
|
117
|
+
NavbarLinksListProps,
|
|
118
|
+
NavbarLinksListProps
|
|
119
|
+
>
|
|
120
|
+
NavbarSlider: ComponentOverrideDefinition<
|
|
121
|
+
NavbarSliderProps,
|
|
122
|
+
NavbarSliderProps
|
|
123
|
+
>
|
|
124
|
+
NavbarSliderHeader: ComponentOverrideDefinition<
|
|
125
|
+
NavbarSliderHeaderProps,
|
|
126
|
+
NavbarSliderHeaderProps
|
|
127
|
+
>
|
|
128
|
+
NavbarSliderContent: ComponentOverrideDefinition<
|
|
129
|
+
NavbarSliderContentProps,
|
|
130
|
+
NavbarSliderContentProps
|
|
131
|
+
>
|
|
132
|
+
NavbarSliderFooter: ComponentOverrideDefinition<
|
|
133
|
+
NavbarSliderFooterProps,
|
|
134
|
+
NavbarSliderFooterProps
|
|
135
|
+
>
|
|
136
|
+
NavbarHeader: ComponentOverrideDefinition<
|
|
137
|
+
NavbarHeaderProps,
|
|
138
|
+
NavbarHeaderProps
|
|
139
|
+
>
|
|
140
|
+
NavbarRow: ComponentOverrideDefinition<NavbarRowProps, NavbarRowProps>
|
|
141
|
+
NavbarButtons: ComponentOverrideDefinition<
|
|
142
|
+
NavbarButtonsProps,
|
|
143
|
+
NavbarButtonsProps
|
|
144
|
+
>
|
|
145
|
+
IconButton: ComponentOverrideDefinition<
|
|
146
|
+
IconButtonProps,
|
|
147
|
+
Omit<IconButtonProps, 'onClick'>
|
|
148
|
+
>
|
|
149
|
+
}
|
|
150
|
+
>
|
|
151
|
+
|
|
152
|
+
export type NewsletterOverrideDefinition = SectionOverrideDefinition<
|
|
153
|
+
'Newsletter',
|
|
154
|
+
{
|
|
155
|
+
ToastIconSuccess: ComponentOverrideDefinition<IconProps, IconProps>
|
|
156
|
+
ToastIconError: ComponentOverrideDefinition<IconProps, IconProps>
|
|
157
|
+
HeaderIcon: ComponentOverrideDefinition<IconProps, IconProps>
|
|
158
|
+
InputFieldName: ComponentOverrideDefinition<
|
|
159
|
+
InputFieldProps,
|
|
160
|
+
Omit<InputFieldProps, 'inputRef'>
|
|
161
|
+
>
|
|
162
|
+
InputFieldEmail: ComponentOverrideDefinition<
|
|
163
|
+
InputFieldProps,
|
|
164
|
+
Omit<InputFieldProps, 'inputRef'>
|
|
165
|
+
>
|
|
166
|
+
Button: ComponentOverrideDefinition<ButtonProps, ButtonProps>
|
|
167
|
+
}
|
|
168
|
+
>
|
|
169
|
+
|
|
170
|
+
export type ProductDetailsOverrideDefinition = SectionOverrideDefinition<
|
|
171
|
+
'ProductDetails',
|
|
172
|
+
{
|
|
173
|
+
ProductTitle: ComponentOverrideDefinition<
|
|
174
|
+
ProductTitleProps,
|
|
175
|
+
ProductTitleProps
|
|
176
|
+
>
|
|
177
|
+
DiscountBadge: ComponentOverrideDefinition<
|
|
178
|
+
DiscountBadgeProps,
|
|
179
|
+
Omit<DiscountBadgeProps, 'listPrice' | 'spotPrice'>
|
|
180
|
+
>
|
|
181
|
+
BuyButton: ComponentOverrideDefinition<ButtonProps, ButtonProps>
|
|
182
|
+
Icon: ComponentOverrideDefinition<IconProps, IconProps>
|
|
183
|
+
Price: ComponentOverrideDefinition<
|
|
184
|
+
PriceProps,
|
|
185
|
+
Omit<PriceProps, 'value' | 'data-value'>
|
|
186
|
+
>
|
|
187
|
+
QuantitySelector: ComponentOverrideDefinition<
|
|
188
|
+
QuantitySelectorProps,
|
|
189
|
+
Omit<QuantitySelectorProps, 'onChange'>
|
|
190
|
+
>
|
|
191
|
+
SkuSelector: ComponentOverrideDefinition<SkuSelectorProps, SkuSelectorProps>
|
|
192
|
+
ShippingSimulation: ComponentOverrideDefinition<
|
|
193
|
+
ShippingSimulationProps,
|
|
194
|
+
ShippingSimulationProps
|
|
195
|
+
>
|
|
196
|
+
ImageGallery: ComponentOverrideDefinition<
|
|
197
|
+
ImageGalleryProps,
|
|
198
|
+
ImageGalleryProps
|
|
199
|
+
>
|
|
200
|
+
ImageZoom: ComponentOverrideDefinition<ImageZoomProps, ImageZoomProps>
|
|
201
|
+
__experimentalImageGalleryImage: ComponentOverrideDefinition<any, any>
|
|
202
|
+
__experimentalImageGallery: ComponentOverrideDefinition<any, any>
|
|
203
|
+
__experimentalShippingSimulation: ComponentOverrideDefinition<any, any>
|
|
204
|
+
}
|
|
205
|
+
>
|
|
206
|
+
|
|
207
|
+
export type ProductGalleryOverrideDefinition = SectionOverrideDefinition<
|
|
208
|
+
'ProductGallery',
|
|
209
|
+
{
|
|
210
|
+
MobileFilterButton: ComponentOverrideDefinition<
|
|
211
|
+
ButtonProps,
|
|
212
|
+
Omit<ButtonProps, 'onClick'>
|
|
213
|
+
>
|
|
214
|
+
FilterIcon: ComponentOverrideDefinition<IconProps, IconProps>
|
|
215
|
+
PrevIcon: ComponentOverrideDefinition<IconProps, IconProps>
|
|
216
|
+
ResultsCountSkeleton: ComponentOverrideDefinition<
|
|
217
|
+
SkeletonProps,
|
|
218
|
+
Omit<SkeletonProps, 'loading'>
|
|
219
|
+
>
|
|
220
|
+
SortSkeleton: ComponentOverrideDefinition<
|
|
221
|
+
SkeletonProps,
|
|
222
|
+
Omit<SkeletonProps, 'loading'>
|
|
223
|
+
>
|
|
224
|
+
FilterButtonSkeleton: ComponentOverrideDefinition<
|
|
225
|
+
SkeletonProps,
|
|
226
|
+
Omit<SkeletonProps, 'loading'>
|
|
227
|
+
>
|
|
228
|
+
LinkButtonPrev: ComponentOverrideDefinition<
|
|
229
|
+
LinkButtonProps,
|
|
230
|
+
Omit<LinkButtonProps, 'onClick' | 'href'>
|
|
231
|
+
>
|
|
232
|
+
LinkButtonNext: ComponentOverrideDefinition<
|
|
233
|
+
LinkButtonProps,
|
|
234
|
+
Omit<LinkButtonProps, 'onClick' | 'href'>
|
|
235
|
+
>
|
|
236
|
+
__experimentalFilterDesktop: ComponentOverrideDefinition<any, any>
|
|
237
|
+
__experimentalFilterSlider: ComponentOverrideDefinition<any, any>
|
|
238
|
+
__experimentalProductCard: ComponentOverrideDefinition<any, any>
|
|
239
|
+
}
|
|
240
|
+
>
|
|
241
|
+
|
|
242
|
+
export type ProductShelfOverrideDefinition = SectionOverrideDefinition<
|
|
243
|
+
'ProductShelf',
|
|
244
|
+
{
|
|
245
|
+
ProductShelf: ComponentOverrideDefinition<
|
|
246
|
+
ProductShelfProps,
|
|
247
|
+
ProductShelfProps
|
|
248
|
+
>
|
|
249
|
+
__experimentalCarousel: ComponentOverrideDefinition<any, any>
|
|
250
|
+
__experimentalProductCard: ComponentOverrideDefinition<
|
|
251
|
+
any,
|
|
252
|
+
Omit<any, 'key' | 'product' | 'index'>
|
|
253
|
+
>
|
|
254
|
+
}
|
|
255
|
+
>
|
|
256
|
+
|
|
257
|
+
export type RegionBarOverrideDefinition = SectionOverrideDefinition<
|
|
258
|
+
'RegionBar',
|
|
259
|
+
{
|
|
260
|
+
RegionBar: ComponentOverrideDefinition<
|
|
261
|
+
RegionBarProps,
|
|
262
|
+
Omit<RegionBarProps, 'onButtonClick' | 'postalCode'>
|
|
263
|
+
>
|
|
264
|
+
LocationIcon: ComponentOverrideDefinition<IconProps, IconProps>
|
|
265
|
+
ButtonIcon: ComponentOverrideDefinition<IconProps, IconProps>
|
|
266
|
+
}
|
|
267
|
+
>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
DefaultSectionComponentsDefinitions,
|
|
3
|
+
ComponentOverrideDefinition,
|
|
4
|
+
Merge,
|
|
5
|
+
} from 'src/typings/overrideDefinitionUtils'
|
|
6
|
+
|
|
7
|
+
import type { SectionOverride } from 'src/typings/overrides'
|
|
8
|
+
|
|
9
|
+
export type GetSectionOverridesReturn<SO extends SectionOverride> = {
|
|
10
|
+
[Key in keyof SO['components']]: Merge<SO['components'][Key]>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function getSectionOverrides<SO extends SectionOverride>(
|
|
14
|
+
defaultComponents: DefaultSectionComponentsDefinitions<SO>,
|
|
15
|
+
override: SO
|
|
16
|
+
): GetSectionOverridesReturn<SO> {
|
|
17
|
+
const overriddenComponents = {} as GetSectionOverridesReturn<SO>
|
|
18
|
+
|
|
19
|
+
Object.entries(defaultComponents).forEach(([key, value]) => {
|
|
20
|
+
const componentOverride:
|
|
21
|
+
| ComponentOverrideDefinition<unknown, unknown>
|
|
22
|
+
| undefined = override.components?.[key]
|
|
23
|
+
|
|
24
|
+
if (!componentOverride) {
|
|
25
|
+
overriddenComponents[key] = {
|
|
26
|
+
Component: value,
|
|
27
|
+
props: {},
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (componentOverride.Component && componentOverride.props) {
|
|
34
|
+
console.warn(
|
|
35
|
+
`Mixed use of Component and props overrides detected. Defaulting to Component override: component ${key} in the ${override.section} section.`
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (componentOverride.Component) {
|
|
40
|
+
overriddenComponents[key] = {
|
|
41
|
+
Component: componentOverride.Component,
|
|
42
|
+
props: {},
|
|
43
|
+
}
|
|
44
|
+
} else {
|
|
45
|
+
overriddenComponents[key] = {
|
|
46
|
+
Component: value,
|
|
47
|
+
props: componentOverride.props ?? {},
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
return overriddenComponents
|
|
53
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[209],{7216:function(e,t,r){"use strict";var n=r(2784);const a=(0,n.forwardRef)((function({testId:e="fs-label",children:t,...r},a){return n.createElement("label",{ref:a,"data-fs-label":!0,"data-testid":e,...r},t)}));t.Z=a},7549:function(e,t,r){"use strict";var n=r(2784),a=r(2691);const i=(0,n.forwardRef)((function({value:e,as:t="span",variant:r="selling",testId:i="fs-price",formatter:o=(e=>e),SRText:c,...s},l){const d=o(e,r);return n.createElement(t,{ref:l,"data-fs-price":!0,"data-fs-price-variant":r,"data-testid":i,...s},c&&n.createElement(a.Z,{text:c}),d)}));t.Z=i},2928:function(e,t,r){"use strict";var n=r(2784);const a=(0,n.forwardRef)((function({testId:e="fs-skeleton",loading:t=!0,shimmer:r=!0,children:a,size:i,border:o,borderRadius:c,...s},l){const d={width:i.width,height:i.height};return t?n.createElement("div",{ref:l,"data-fs-skeleton":!0,"data-testid":e,"data-fs-skeleton-border":o||null,style:c?{...d,borderRadius:c}:d,...s},r&&n.createElement("div",{"data-fs-skeleton-shimmer":!0})):n.createElement(n.Fragment,null,a)}));t.Z=a},9875:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(2784),a=r(44);var i=({listPrice:e,spotPrice:t,thresholdLow:r=15,thresholdHigh:i=40,size:o,testId:c="fs-discount-badge"})=>{const s=((e,t)=>(0,n.useMemo)((()=>{const r=100*(e-t)/e;return Math.round(r)}),[t,e]))(e,t);if(0===s)return n.createElement(n.Fragment,null);const l=s<=r?"low":s<=i?"medium":"high";return n.createElement(a.Z,{"data-fs-discount-badge":!0,"data-fs-discount-badge-variant":l,size:o,"data-testid":c},s,"% off")}},8287:function(e,t,r){"use strict";var n=r(2784),a=r(875),i=r(7216),o=r(2765),c=r(5045),s=r(7578);t.Z=({id:e,label:t,type:r="text",error:l,displayClearButton:d,actionable:u,buttonActionText:f="Apply",onSubmit:p,onClear:m,placeholder:b=" ",inputRef:v,disabled:g,value:h,testId:y="fs-input-field",...O})=>{const P=!g&&l&&""!==l,w=u&&!g&&""!==h;return n.createElement("div",{"data-fs-input-field":!0,"data-fs-input-field-actionable":u,"data-fs-input-field-error":l&&""!==l,"data-testid":y},n.createElement(a.Z,{id:e,type:r,value:h,ref:v,disabled:g,placeholder:b,...O}),n.createElement(i.Z,{htmlFor:e},t),w&&(d||l?n.createElement(o.Z,{size:"small","aria-label":"Clear Field",icon:n.createElement(c.Z,{name:"XCircle"}),onClick:()=>{m?.(),v?.current?.focus()}}):n.createElement(s.Z,{variant:"tertiary",size:"small",onClick:p},f)),P&&n.createElement("span",{"data-fs-input-field-error-message":!0},l))}},783:function(e,t,r){"use strict";var n=r(2784),a=r(5045),i=r(2765),o=r(1329);const c=(0,n.forwardRef)((function({children:e,testId:t="fs-rating",length:r=5,value:c=0,icon:s,onChange:l,...d},u){const[f,p]=(0,n.useState)(0),m={"data-fs-rating-icon-outline":!0},b=n.isValidElement(s)?s:n.createElement(a.Z,{name:"Star"});return n.createElement(o.Z,{ref:u,"data-fs-rating":!0,"data-fs-rating-actionable":"function"===typeof l,"data-testid":t,...d},Array.from({length:r}).map(((e,r)=>{const o=r+1;return n.createElement("li",{key:`rating-${r}`,"data-fs-rating-item":o<=(f||c)?"full":o-c>0&&o-c<1?"partial":"empty","data-testid":`${t}-item`},l?n.createElement(i.Z,{"data-fs-rating-button":!0,icon:b,size:"small","aria-label":"rate",onClick:()=>{l(o)},onMouseEnter:()=>p(o),onMouseLeave:()=>p(c)}):n.createElement(n.Fragment,null,n.createElement("div",{"data-fs-rating-icon-wrapper":!0},b),n.isValidElement(s)?n.cloneElement(s,m):n.createElement(a.Z,{name:"Star","data-fs-rating-icon-outline":!0})))})))}));t.Z=c},3432:function(e,t,r){"use strict";r.d(t,{Z:function(){return k}});var n=r(9499),a=r(4730),i=r(2784);var o=(0,i.forwardRef)((function({testId:e="fs-product-card",variant:t="default",bordered:r=!1,outOfStock:n,children:a,...o},c){return i.createElement("article",{ref:c,"data-fs-product-card":n?"out-of-stock":"","data-fs-product-card-variant":t,"data-fs-product-card-bordered":r,"data-testid":e,...o},a)}));var c=(0,i.forwardRef)((function({testId:e="fs-product-card-image",aspectRatio:t=1,children:r,...n},a){return i.createElement("div",{ref:a,"data-fs-product-card-image":!0,"data-testid":e,style:{"--fs-product-card-image-aspect-ratio":t},...n},r)})),s=r(7865),l=r(7549),d=r(783),u=r(5045),f=r(9875),p=r(44),m=r(7578);var b=(0,i.forwardRef)((function({testId:e="fs-product-card-content",title:t,linkProps:r,price:n,outOfStock:a,outOfStockLabel:o="Out of stock",ratingValue:c,showDiscountBadge:b,buttonLabel:v="Add",onButtonClick:g,children:h,...y},O){return i.createElement("section",{ref:O,"data-fs-product-card-content":!0,"data-fs-product-card-badge":b,"data-testid":e,...y},i.createElement("div",{"data-fs-product-card-heading":!0},i.createElement("h3",{"data-fs-product-card-title":!0},i.createElement(s.Z,{...r,title:t},i.createElement("span",null,t))),i.createElement("div",{"data-fs-product-card-prices":!0},i.createElement(l.Z,{value:n?.listPrice?n.listPrice:0,formatter:n?.formatter,testId:"list-price","data-value":n?.listPrice,variant:"listing",SRText:"Original price:"}),i.createElement(l.Z,{value:n?.value?n.value:0,formatter:n?.formatter,testId:"price","data-value":n?.value,variant:"spot",SRText:"Sale Price:"})),c&&i.createElement(d.Z,{value:c,icon:i.createElement(u.Z,{name:"Star"})})),b&&!a&&i.createElement(f.Z,{listPrice:n?.listPrice?n.listPrice:0,spotPrice:n?.value?n.value:0}),a&&i.createElement(p.Z,null,o),g&&!a&&i.createElement("div",{"data-fs-product-card-actions":!0},i.createElement(m.Z,{variant:"primary",icon:i.createElement(u.Z,{name:"ShoppingCart"}),iconPosition:"left",size:"small",onClick:g},v)))})),v=r(1664),g=r.n(v),h=r(9266),y=r(5346),O=r(9854),P=r(2322),w=["product","index","bordered","variant","aspectRatio","imgProps","ratingValue","buttonLabel","onButtonClick","showDiscountBadge"];function j(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?j(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function E(e){var t,r,{product:n,index:s,bordered:l=!0,variant:d="default",aspectRatio:u=1,imgProps:f,ratingValue:p,buttonLabel:m="Add",onButtonClick:v,showDiscountBadge:j=!0}=e,E=(0,a.Z)(e,w),{sku:k,isVariantOf:{name:I},image:[S],offers:{lowPrice:_,offers:[{listPrice:Z,availability:C}]}}=n,D=x(x({},(0,O.w)({product:n,selectedOffer:0,index:s})),{},{as:g(),passHref:!0,legacyBehavior:!1,prefetch:!1}),R=(0,i.useMemo)((()=>"https://schema.org/InStock"!==C),[C]);return(0,P.jsxs)(o,x(x({outOfStock:R,bordered:l,variant:d,"data-fs-product-card-sku":k},E),{},{children:[(0,P.jsx)(c,{aspectRatio:u,children:(0,P.jsx)(h.E,{src:S.url,alt:S.alternateName,sizes:"".concat(null!==(t=null===f||void 0===f?void 0:f.sizes)&&void 0!==t?t:"(max-width: 768px) 40vw, 30vw"),width:null!==(r=null===f||void 0===f?void 0:f.width)&&void 0!==r?r:360,height:Math.round((Number(null===f||void 0===f?void 0:f.height)||360)/u),loading:null===f||void 0===f?void 0:f.loading})}),(0,P.jsx)(b,{title:I,price:{value:_,listPrice:Z,formatter:y.P},ratingValue:p,outOfStock:R,onButtonClick:v,linkProps:D,showDiscountBadge:j})]}))}var k=(0,i.memo)(E)},3405:function(e,t,r){"use strict";r.d(t,{Z:function(){return w}});var n=r(9499),a=r(2784);const i=(0,a.createContext)(void 0);var o=(0,a.forwardRef)((function({children:e,testId:t="fs-banner-text",variant:r="primary",colorVariant:n="main",...o},c){const s={variant:r,colorVariant:n};return a.createElement(i.Provider,{value:s},a.createElement("article",{ref:c,"data-fs-banner-text":!0,"data-fs-banner-text-variant":r,"data-fs-banner-text-color-variant":n,"data-testid":t,...o},e))})),c=r(7703);var s=(0,a.forwardRef)((function({testId:e="fs-banner-text-content",title:t,caption:r,link:n,linkText:o,...s},l){const{variant:d,colorVariant:u}=function(){const e=(0,a.useContext)(i);if(void 0===e)throw new Error("Do not use BannerText components outside the BannerText context.");return e}();return a.createElement("header",{ref:l,"data-fs-banner-text-content":!0,"data-fs-content":"banner-text","data-testid":e,...s},a.createElement("div",{"data-fs-banner-text-heading":!0,"data-fs-banner-text-color-variant":u},a.createElement("h2",null,t),"secondary"===d&&r&&a.createElement("p",null,r)),a.createElement(c.Z,{"data-fs-banner-text-link":!0,href:n,variant:d,inverse:"main"===u,"aria-label":o},o))})),l={name:"BannerText",components:{BannerText:{props:{}},BannerTextContent:{props:{}}}};function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var u={},f={};Object.entries(l.components).forEach((e=>{var[t,r]=e;r.Component&&(u[t]=r.Component)})),Object.entries(l.components).forEach((e=>{var[t,r]=e;r.props&&(f[t]=r.props)}));var p=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({BannerText:o,BannerTextContent:s},u),m=r(7067),b=r(23),v=r.n(b),g=r(2322);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var{BannerText:O,BannerTextContent:P}=p;var w=function(e){var t,r,{title:n,caption:a,link:{url:i=f.BannerTextContent.link,text:o=f.BannerTextContent.linkText},variant:c=(null!==(t=f.BannerText.variant)&&void 0!==t?t:"primary"),colorVariant:s=(null!==(r=f.BannerText.colorVariant)&&void 0!==r?r:"main")}=e;return(0,g.jsx)(m.Z,{className:"".concat(v().section," section-banner layout__section"),children:(0,g.jsx)(O,y(y({},f.BannerText),{},{variant:c,colorVariant:s,children:(0,g.jsx)(P,y(y({},f.BannerTextContent),{},{title:n,caption:a,link:i,linkText:o}))}))})}},5168:function(e,t,r){"use strict";r.d(t,{Z:function(){return V}});var n=r(9499),a=r(4730),i=r(2784),o=r(1503),c=r(4262),s=r(395),l=r(29),d=r(9857),u=r(180),f=r(7732),p=(e,t,r)=>{var n=(0,d.ZP)((0,f.km)(e,t),(()=>null),f.WN),a=function(){var t=(0,l.Z)((function*(t){var a=yield(0,u.W)(e,t,r);n.mutate(a,!1)}));return function(e){return t.apply(this,arguments)}}();return[a,n]},m=r(5045),b=r(8287),v=r(7578),g={name:"Newsletter",components:{ToastIconSuccess:{props:{}},ToastIconError:{props:{}},HeaderIcon:{props:{}},InputFieldName:{props:{}},InputFieldEmail:{props:{}},Button:{props:{}}}};function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var y={},O={};Object.entries(g.components).forEach((e=>{var[t,r]=e;r.Component&&(y[t]=r.Component)})),Object.entries(g.components).forEach((e=>{var[t,r]=e;r.props&&(O[t]=r.props)}));var P=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({ToastIconSuccess:m.Z,ToastIconError:m.Z,HeaderIcon:m.Z,InputFieldName:b.Z,InputFieldEmail:b.Z,Button:v.Z},y),w=r(2322);function j(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?j(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var{ToastIconSuccess:E,ToastIconError:k,HeaderIcon:I,InputFieldEmail:S,InputFieldName:_,Button:Z}=P,C=e=>{if(!e)return"";var t=JSON.parse(e);return(0,c.E)((0,o.convertFromRaw)(t),{entityStyleFn:e=>{if("link"===e.get("type").toLowerCase())return{element:"a",attributes:{"data-fs-link":"true","data-fs-link-variant":"inline","data-fs-link-inverse":"true","data-fs-link-size":"regular","data-testid":"fs-link",href:e.getData().url}}}})},D=(0,i.forwardRef)((function(e,t){var r,{icon:n,title:a,description:o,privacyPolicy:c,emailInputLabel:l,displayNameInput:d,nameInputLabel:u,subscribeButtonLabel:f,subscribeButtonLoadingLabel:m,card:b,toastSubscribe:v,toastSubscribeError:g}=e,{subscribeUser:h,loading:y,data:P}=(()=>{var[e,{data:t,error:r,isValidating:n}]=p("SubscribeToNewsletter",{data:{name:"",email:""}});return{subscribeUser:e,data:t,error:r,loading:n}})(),j=(0,i.useRef)(null),D=(0,i.useRef)(null),{pushToast:R}=((0,i.useMemo)((()=>y?m:f),[y,f,m]),(0,s.l)());return(0,w.jsx)("div",{"data-fs-newsletter":b?"card":"",children:(0,w.jsxs)("form",{ref:t,"data-fs-newsletter-form":!0,"data-fs-content":"newsletter",onSubmit:e=>{var t,r,n,a,i,o,c;(e.preventDefault(),h({data:{name:null!==(t=null===(r=j.current)||void 0===r?void 0:r.value)&&void 0!==t?t:"",email:null!==(n=null===(a=D.current)||void 0===a?void 0:a.value)&&void 0!==n?n:""}}),null!==P&&void 0!==P&&null!==(i=P.subscribeToNewsletter)&&void 0!==i&&i.id)?R(x(x({},v),{},{status:"INFO",icon:(0,w.jsx)(E,x(x({width:30,height:30},O.ToastIconSuccess),{},{name:null!==(o=v.icon)&&void 0!==o?o:O.ToastIconSuccess.name}))})):R(x(x({},g),{},{status:"ERROR",icon:(0,w.jsx)(k,x(x({width:30,height:30},O.ToastIconError),{},{name:null!==(c=v.icon)&&void 0!==c?c:O.ToastIconError.name}))}));e.currentTarget.reset()},children:[(0,w.jsxs)("header",{"data-fs-newsletter-header":!0,children:[(0,w.jsxs)("h3",{children:[(0,w.jsx)(I,x(x({width:32,height:32},O.HeaderIcon),{},{name:null!==(r=null===n||void 0===n?void 0:n.icon)&&void 0!==r?r:O.HeaderIcon.name})),a]}),o&&(0,w.jsxs)("span",{children:[" ",o]})]}),(0,w.jsx)("div",{"data-fs-newsletter-controls":!0,children:(0,w.jsxs)(w.Fragment,{children:[d?(0,w.jsx)(_,x(x({id:"newsletter-name",required:!0},O.InputFieldName),{},{label:null!==u&&void 0!==u?u:O.InputFieldName.label,inputRef:j})):null,(0,w.jsx)(S,x(x({id:"newsletter-email",type:"email",required:!0},O.InputFieldEmail),{},{label:null!==l&&void 0!==l?l:O.InputFieldEmail.label,inputRef:D})),(0,w.jsx)("span",{"data-fs-newsletter-addendum":!0,dangerouslySetInnerHTML:{__html:C(c)}}),(0,w.jsx)(Z,x(x({variant:"secondary",inverse:!0,type:"submit"},O.Button),{},{children:y?m:f}))]})})]})})})),R=r(7067),T=r(1778),B=r.n(T),N=["icon","title","description","privacyPolicy","emailInputLabel","displayNameInput","nameInputLabel","subscribeButtonLabel","card","toastSubscribe","toastSubscribeError"];function L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function F(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?L(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var V=function(e){var{icon:t,title:r,description:n,privacyPolicy:i,emailInputLabel:o,displayNameInput:c,nameInputLabel:s,subscribeButtonLabel:l,card:d,toastSubscribe:u,toastSubscribeError:f}=e,p=(0,a.Z)(e,N);return(0,w.jsx)(R.Z,{className:"".concat(B().section," section-newsletter"),children:(0,w.jsx)(D,F({icon:t,title:r,description:n,privacyPolicy:i,emailInputLabel:o,displayNameInput:c,nameInputLabel:s,subscribeButtonLabel:l,toastSubscribe:u,toastSubscribeError:f,card:d},p))})}},3288:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(2928),a=r(2322);var i=function(e){var{bordered:t,sectioned:r,displayButton:i,aspectRatio:o=1,variant:c="default"}=e;return(0,a.jsxs)("div",{"data-fs-product-card-skeleton":!0,"data-fs-product-card-skeleton-variant":c,"data-fs-product-card-skeleton-bordered":t,"data-fs-product-card-skeleton-sectioned":r,children:[(0,a.jsx)("div",{"data-fs-product-card-skeleton-image":!0,style:{"--fs-product-card-skeleton-image-aspect-ratio":o},children:(0,a.jsx)(n.Z,{size:{width:"100%",height:"100%"}})}),(0,a.jsxs)("div",{"data-fs-product-card-skeleton-content":!0,children:[(0,a.jsx)(n.Z,{"data-fs-product-card-skeleton-text":!0,size:{width:"90%",height:"1.5rem"}}),(0,a.jsx)(n.Z,{"data-fs-product-card-skeleton-text":!0,size:{width:"70%",height:"1.5rem"}}),(0,a.jsx)(n.Z,{"data-fs-product-card-skeleton-badge":!0,size:{width:"6rem",height:"2rem"},border:"pill"}),i&&(0,a.jsx)(n.Z,{"data-fs-product-card-skeleton-button":!0,size:{width:"6rem",height:"2rem"},style:{columnGap:".75rem"}})]})]})}},8704:function(e,t,r){"use strict";r.d(t,{Z:function(){return V}});var n=r(9499),a=r(4730),i=r(2784);var o=(0,i.forwardRef)((function({testId:e="fs-product-shelf",children:t,...r},n){return i.createElement("div",{ref:n,"data-fs-product-shelf":!0,"data-fs-content":"product-shelf","data-testid":e,...r},t)}));var c=(0,i.forwardRef)((function({testId:e="fs-product-shelf-items",children:t,...r},n){return i.createElement("ul",{role:"list",ref:n,"data-fs-product-shelf-items":!0,"data-fs-content":"product-shelf","data-testid":e,...r},t)}));var s=(0,i.forwardRef)((function({testId:e="fs-product-shelf-item",children:t,...r},n){return i.createElement("li",{role:"listitem",ref:n,"data-fs-product-shelf-item":!0,"data-testid":e,...r},t)})),l=r(8459),d=r(3288),u=r(2322);var f=function(e){var{children:t,aspectRatio:r,loading:n=!0}=e;return n?(0,u.jsx)(o,{"data-fs-product-shelf-skeleton":!0,children:(0,u.jsx)(c,{children:Array.from({length:l.K},((e,t)=>(0,u.jsx)(s,{children:(0,u.jsx)(d.Z,{aspectRatio:r,sectioned:!0,bordered:!0})},String(t))))})}):(0,u.jsx)(u.Fragment,{children:t})},p=r(5184),m=r(737);var b=r(3432),v=r(2765),g=r(5045),h=r(5724);function y(e,t){switch(t.type){case"NEXT_PAGE":{const t=e.infinite?e.totalPages+1:e.totalPages,r=(e.currentPage+1)%t,n=r%t*e.itemsPerPage;return{...e,sliding:!0,slideDirection:"next",currentItem:n,currentPage:r}}case"PREVIOUS_PAGE":{const t=e.infinite?e.totalPages+1:e.totalPages,r=e.infinite&&0===e.currentPage?-1:((e,t)=>(t-(t-e+1)%t)%t)(e.currentPage,e.totalPages);return{...e,sliding:!0,slideDirection:"previous",currentItem:r%t*e.itemsPerPage,currentPage:r}}case"GO_TO_PAGE":return t.payload.pageIndex===e.currentPage?e:{...e,sliding:t.payload.shouldSlide,slideDirection:t.payload.pageIndex>e.currentPage?"next":"previous",currentItem:t.payload.pageIndex%e.totalPages*e.itemsPerPage,currentPage:t.payload.pageIndex};case"STOP_SLIDE":return{...e,sliding:!1};default:return e}}const O=(e,t)=>{"next"===e&&t({type:"NEXT_PAGE"}),"previous"===e&&t({type:"PREVIOUS_PAGE"}),"number"===typeof e&&t({type:"GO_TO_PAGE",payload:{pageIndex:e,shouldSlide:!0}})},P=({totalItems:e,itemsPerPage:t=1,infiniteMode:r=!1,shouldSlideOnSwipe:n=!0,...a})=>{const[o,c]=(0,i.useReducer)(y,void 0,(()=>((e,t,r)=>({currentItem:0,currentPage:0,sliding:!1,slideDirection:"next",totalItems:e,itemsPerPage:t,totalPages:Math.ceil(e/t),infinite:r}))(e,t,r)));return{handlers:(0,h.QS)({onSwipedRight:()=>n&&O("previous",c),onSwipedLeft:()=>n&&O("next",c),trackMouse:!0,...a}),slide:O,sliderState:o,sliderDispatch:c}};var w=r(7578);const j=(e,t,r)=>r?`Current page from ${e}`:`Go to page ${t+1} from ${e}`;var x=(0,i.forwardRef)((function({id:e,totalQuantity:t,activeBullet:r,onClick:n,testId:a="fs-carousel-bullets",ariaLabelGenerator:o=j,ariaControlsGenerator:c,...s},l){const d=(0,i.useMemo)((()=>Array(t).fill(0)),[t]);return i.createElement("div",{ref:l,"data-fs-carousel-bullets":!0,"data-testid":a,role:"tablist",...s},d.map(((t,s)=>{const l=r===s;return i.createElement(w.Z,{key:`${e}-${s}`,role:"tab",tabIndex:-1,"data-fs-carousel-bullet":!0,testId:`${a}-bullet`,onClick:e=>n(e,s),"aria-label":o(e,s,l),"aria-controls":c?.(s),"aria-selected":l,variant:"tertiary"})})))}));var E=function({id:e,index:t,state:r,children:n,totalItems:a,infiniteMode:o,isScrollCarousel:c}){const{isItemVisible:s,shouldRenderItem:l}=(({currentSlide:e,itemsPerPage:t,totalItems:r})=>{const n=(0,i.useRef)(new Set);(0,i.useEffect)((()=>{for(let r=0;r<t;r++)n.current.add(e+r)}),[e,t]);const a=n=>function({itemsPerPage:e,currentSlide:t,slideIdx:r,totalItems:n}){return t<0||t>=n||r>=t&&r<t+e}({slideIdx:n,currentSlide:e,itemsPerPage:t,totalItems:r});return{shouldRenderItem:e=>n.current.has(e)||a(e),isItemVisible:a}})({totalItems:a,currentSlide:r.currentItem,itemsPerPage:r.itemsPerPage}),d=!c&&{width:"100%"}||c&&{maxWidth:"60%",display:"inline-block"},u=c||l(t-Number(o));return i.createElement("li",{style:d,id:`${e}-carousel-item-${t}`,"data-fs-carousel-item":!0,"data-fs-carousel-item-visible":s(t-Number(o))||void 0},u?n:null)};var k=function({children:e,className:t,"aria-label":r,infiniteMode:n=!0,controls:a="complete",testId:o="fs-carousel",transition:c={duration:400,property:"transform"},id:s="fs-carousel",variant:l="slide",itemsPerPage:d=1,navigationIcons:u,...f}){const p=(0,i.useRef)(null),m="slide"===l,b="scroll"===l,h=i.Children.toArray(e),y=h.length,O=n?y+2:y,w=`${c.property} ${c.duration}ms ${c.timing??""} ${c.delay??""}`,{handlers:j,slide:k,sliderState:I,sliderDispatch:S}=P({itemsPerPage:d,infiniteMode:n,totalItems:y,shouldSlideOnSwipe:m,...f}),_=Math.ceil(y/I.itemsPerPage),Z=1!==_&&("complete"===a||"navigationArrows"===a),C=1!==_&&("complete"===a||"paginationBullets"===a),D=(0,i.useMemo)((()=>((e,t)=>{const r={},n=100/t;for(let a=0;a<t;++a){const t=-n*a;r[e?a-1:a]=t}return r})(n,O)),[O,n]),R=n&&e?h.slice(0,1):[],T=(n&&e?h.slice(y-1):[]).concat(e??[],R),B=(0,i.useMemo)((()=>({display:"flex",width:100*O+"%",transition:I.sliding?w:void 0,transform:`translate3d(${D[I.currentPage]}%, 0, 0)`})),[O,D,w,I.sliding,I.currentPage]),N=(0,i.useMemo)((()=>({width:"100%",display:"block",overflowX:"scroll",whiteSpace:"nowrap"})),[]),L=m&&B||b&&N,F=()=>{I.sliding||!n&&0===I.currentPage||k("previous",S)},V=()=>{I.sliding||!n&&I.currentPage===y-1||k("next",S)},M=async(e,t)=>{if("previous"===t&&0===I.currentPage)return;if("next"===t&&I.currentPage===I.totalPages-1)return;let r;const n=Number(p.current?.firstElementChild?.clientWidth);r=d>1?e*n*d:e*n-.125*n,p.current?.scrollTo({left:r,behavior:"smooth"}),k(e,S)};return i.createElement("section",{id:s,"data-fs-carousel":!0,className:t,"data-testid":o,"aria-label":r},i.createElement("div",{"data-fs-carousel-track-container":!0,style:{width:"100%",overflow:"hidden",display:b?"block":void 0},...j},i.createElement("ul",{"aria-live":"polite",ref:p,style:L,"data-fs-carousel-track":!0,onScroll:e=>{if(m||d>1)return;const t=Number(e.currentTarget.firstElementChild?.scrollWidth),r=e.currentTarget?.scrollLeft,n=(r>t/2?Math.round:Math.floor)(r/t);k(n,S)},onTransitionEnd:()=>{S({type:"STOP_SLIDE"}),n&&I.currentItem>=y&&S({type:"GO_TO_PAGE",payload:{pageIndex:0,shouldSlide:!1}}),n&&I.currentItem<0&&S({type:"GO_TO_PAGE",payload:{pageIndex:I.totalPages-1,shouldSlide:!1}})}},T.map(((e,t)=>i.createElement(E,{id:s,index:t,key:String(t),state:I,totalItems:y,infiniteMode:n,isScrollCarousel:b},e))))),Z&&i.createElement("div",{"data-fs-carousel-controls":!0},i.createElement(v.Z,{"data-fs-carousel-control":"left","aria-controls":s,"aria-label":"previous",icon:u?.left??i.createElement(g.Z,{name:"ArrowLeft",width:20,height:20,weight:"bold"}),onClick:()=>{m&&F(),b&&M(I.currentPage-1,"previous")}}),i.createElement(v.Z,{"data-fs-carousel-control":"right","aria-controls":s,"aria-label":"next",icon:u?.right??i.createElement(g.Z,{name:"ArrowRight",width:20,height:20,weight:"bold"}),onClick:()=>{m&&V(),b&&M(I.currentPage+1,"next")}})),C&&i.createElement(x,{id:s,tabIndex:0,activeBullet:I.currentPage,totalQuantity:_,onKeyDown:e=>{switch(e.key){case"ArrowLeft":m&&F(),b&&M(I.currentPage-1,"previous");break;case"ArrowRight":m&&V(),b&&M(I.currentPage+1,"next");break;case"Home":k(0,S);break;case"End":k(y-1,S)}},onClick:async(e,t)=>{m&&!I.sliding&&k(t,S),b&&M(t)},onFocus:e=>e.currentTarget.focus(),ariaControlsGenerator:e=>`${s}-carousel-item-${e}`}))};var I=function(e){var{id:t,testId:r,children:n,itemsPerPage:a=5}=e,i=window.innerWidth<=768;return(0,u.jsx)(k,{id:t,testId:r,variant:"scroll",infiniteMode:!1,itemsPerPage:i?1:a,children:n})},S={name:"ProductShelf",components:{ProductShelf:{props:{}},__experimentalCarousel:{props:{}},__experimentalProductCard:{props:{}}}};function _(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var Z={},C={};Object.entries(S.components).forEach((e=>{var[t,r]=e;r.Component&&(Z[t]=r.Component)})),Object.entries(S.components).forEach((e=>{var[t,r]=e;r.props&&(C[t]=r.props)}));var D=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({ProductShelf:o,__experimentalCarousel:I,__experimentalProductCard:b.Z},Z),R=["title","inView","productCardConfiguration"];function T(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?T(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):T(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var{ProductShelf:N,__experimentalCarousel:L,__experimentalProductCard:F}=D;var V=function(e){var t,{title:r,inView:n,productCardConfiguration:{bordered:o=C.__experimentalProductCard.bordered,showDiscountBadge:c=C.__experimentalProductCard.showDiscountBadge}={}}=e,s=(0,a.Z)(e,R),l=function(e){var t,r=e.replace(/[^\w\s]/gi,"-");return null!==(t=r=(r=r.replace(/\s+/g,"-")).toLowerCase())&&void 0!==t?t:""}(r),d=(0,i.useId)(),b=(0,i.useRef)(!1),v=(0,m.kN)(s),g=null!==(t=null===v||void 0===v?void 0:v.edges)&&void 0!==t?t:[],{sendViewItemListEvent:h}=(0,p.m)({products:g,title:r,page:0,pageSize:0});return(0,i.useEffect)((()=>{n&&!b.current&&g.length&&(h(),b.current=!0)}),[n,g.length,h]),0===(null===v||void 0===v?void 0:v.edges.length)?null:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("h2",{className:"text__title-section layout__content",children:r}),(0,u.jsx)(f,{aspectRatio:1,loading:void 0===v,children:(0,u.jsx)(N,B(B({},C.ProductShelfWrapper),{},{children:(0,u.jsx)(L,B(B({id:l||d},C.__experimentalCarousel),{},{children:g.map(((e,t)=>(0,i.createElement)(F,B(B({aspectRatio:1,imgProps:{width:216,height:216,sizes:"(max-width: 768px) 42vw, 30vw"}},C.__experimentalProductCard),{},{bordered:o,showDiscountBadge:c,key:"".concat(e.node.id),product:e.node,index:t+1}))))}))}))})]})}},8459:function(e,t,r){"use strict";r.d(t,{K:function(){return a},g:function(){return n}});var n=12,a=5},5184:function(e,t,r){"use strict";r.d(t,{m:function(){return o}});var n=r(1072),a=r(2784),i=r(7295),o=e=>{var{products:t,title:r,page:o,pageSize:c}=e,{currency:{code:s}}=(0,i.kP)();return{sendViewItemListEvent:(0,a.useCallback)((()=>{(0,n._)({name:"view_item_list",params:{item_list_name:r,item_list_id:r,items:t.map(((e,t)=>{var{node:r}=e;return{item_id:r.isVariantOf.productGroupID,item_name:r.isVariantOf.name,item_brand:r.brand.name,item_variant:r.sku,price:r.offers.offers[0].price,index:o*c+t+1,discount:r.offers.offers[0].listPrice-r.offers.offers[0].price,currency:s,item_variant_name:r.name,product_reference_id:r.gtin}}))}})}),[s,t,r,o,c])}}},5346:function(e,t,r){"use strict";r.d(t,{P:function(){return i}});var n=r(2784),a=r(7295),i=e=>{var t=function(){var{decimals:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{currency:t,locale:r}=(0,a.kP)();return(0,n.useCallback)((n=>Intl.NumberFormat(r,{style:"currency",currency:t.code,minimumFractionDigits:e?2:0}).format(n)),[t.code,r,e])}();return(0,n.useMemo)((()=>t(e)),[t,e])}},9854:function(e,t,r){"use strict";r.d(t,{w:function(){return o}});var n=r(1072),a=r(2784),i=r(7295),o=e=>{var{index:t,product:r,selectedOffer:o}=e,{slug:c}=r,{currency:{code:s}}=(0,i.kP)(),l=(0,a.useCallback)((()=>{(0,n._)({name:"select_item",params:{items:[{item_id:r.isVariantOf.productGroupID,item_name:r.isVariantOf.name,item_brand:r.brand.name,item_variant:r.sku,index:t,price:r.offers.offers[o].price,discount:r.offers.offers[o].listPrice-r.offers.offers[o].price,currency:s,item_variant_name:r.name,product_reference_id:r.gtin}]}}),(0,n._)({name:"search_select_item",params:{url:window.location.href,items:[{item_id:r.isVariantOf.productGroupID,item_variant:r.sku,index:t}]}})}),[s,r,t,o]);return{href:"/".concat(c,"/p"),onClick:l,"data-testid":"product-link"}}},737:function(e,t,r){"use strict";r.d(t,{yb:function(){return b},kN:function(){return v},BG:function(){return g}});var n=r(9499),a=r(2784),i=r(9857),o=r(8459),c=r(4730),s=r(180),l=r(7732),d=["cache"],u=r(7295);function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var m="ProductsQuery",b=e=>{var{first:t,after:r,sort:n,term:i,selectedFacets:c}=e,{channel:s,locale:l}=(0,u.kP)();return(0,a.useMemo)((()=>{var e,a=(e=c,Array.isArray(e)?e:e?[e]:[]);return{first:null!==t&&void 0!==t?t:o.K,after:null!==r&&void 0!==r?r:"0",sort:null!==n&&void 0!==n?n:"score_desc",term:null!==i&&void 0!==i?i:"",selectedFacets:[...a,{key:"channel",value:null!==s&&void 0!==s?s:""},{key:"locale",value:l}]}}),[c,t,r,n,i,s,l])},v=(e,t)=>{var r,n=b(e),{data:a}=(0,l.aM)(m,n,p({fallbackData:null,suspense:!0},t));return null===a||void 0===a||null===(r=a.search)||void 0===r?void 0:r.products},g=(e,t)=>{var r=b(e),{cache:n}=(0,i.kY)();return(0,a.useCallback)((()=>((e,t,r)=>{var{cache:n}=r,a=(0,c.Z)(r,d),o=(0,l.km)(e,t);n.get(o)||(0,i.JG)(o,(0,s.W)(e,t,a))})(m,r,p({cache:n},t))),[r,n,t])}},23:function(e){e.exports={section:"section_section__ivuGF"}},1778:function(e){e.exports={section:"section_section__kRRBW"}},3262:function(e){e.exports={section:"section_section__C1DoH",loading:"section_loading__k5bCF"}}}]);
|