@faststore/core 3.41.8 → 3.42.0
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 +35 -35
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- 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/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/react-loadable-manifest.json +23 -17
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/1454.js +1 -0
- package/.next/server/chunks/3358.js +1 -0
- package/.next/server/chunks/3675.js +1 -1
- package/.next/server/chunks/3684.js +1 -1
- package/.next/server/chunks/416.js +1 -0
- package/.next/server/chunks/4289.js +13 -5
- package/.next/server/chunks/4746.js +1 -1
- package/.next/server/chunks/4816.js +1 -0
- package/.next/server/chunks/6026.js +9 -0
- package/.next/server/chunks/6030.js +1 -0
- package/.next/server/chunks/6076.js +1 -1
- package/.next/server/chunks/6594.js +1 -0
- package/.next/server/chunks/6999.js +1 -0
- package/.next/server/chunks/7371.js +1 -0
- package/.next/server/chunks/831.js +1 -0
- package/.next/server/chunks/8482.js +1 -0
- package/.next/server/chunks/9594.js +1 -1
- package/.next/server/chunks/UIBannerText.js +1 -1
- package/.next/server/chunks/UISKUMatrixSidebar.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.js.nft.json +1 -1
- package/.next/server/pages/[...slug].js +1 -1
- package/.next/server/pages/[...slug].js.nft.json +1 -1
- package/.next/server/pages/[slug]/p.js +1 -1
- 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/_document.js.nft.json +1 -1
- package/.next/server/pages/_error.js.nft.json +1 -1
- package/.next/server/pages/account/profile.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/api/graphql.js.nft.json +1 -1
- package/.next/server/pages/api/health/live.js.nft.json +1 -1
- package/.next/server/pages/api/health/ready.js.nft.json +1 -1
- package/.next/server/pages/api/preview.js.nft.json +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/404.json +1 -1
- package/.next/server/pages/en-US/500.html +2 -2
- package/.next/server/pages/en-US/500.json +1 -1
- package/.next/server/pages/en-US/checkout.html +2 -2
- package/.next/server/pages/en-US/checkout.json +1 -1
- package/.next/server/pages/en-US/login.html +2 -2
- package/.next/server/pages/en-US/login.json +1 -1
- package/.next/server/pages/en-US/s.html +2 -2
- package/.next/server/pages/en-US/s.json +1 -1
- package/.next/server/pages/en-US.html +2 -2
- package/.next/server/pages/en-US.json +1 -1
- package/.next/server/pages/index.js +1 -1
- 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 +1 -1
- package/.next/server/pages/s.js.nft.json +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/webpack-runtime.js +1 -1
- package/.next/static/{LDbNn9GX3-MH7ekCHdiDN → Ra_8xXVEVCNHcT2KePSUO}/_buildManifest.js +1 -1
- package/.next/static/chunks/3358.02de0bb531c6487a.js +1 -0
- package/.next/static/chunks/3675.e8cad32e70cf3d3c.js +1 -0
- package/.next/static/chunks/417.c39c1c5e5ef57b4a.js +1 -0
- package/.next/static/chunks/4865.3e2ae9feb511c870.js +1 -0
- package/.next/static/chunks/6335-5870fc075bf96b86.js +1 -0
- package/.next/static/chunks/{7498-49bf89838314b503.js → 7498-415859c993f5002b.js} +1 -1
- package/.next/static/chunks/UISKUMatrixSidebar.c68540bda6d40e13.js +1 -0
- package/.next/static/chunks/pages/[slug]/p-3b513ae37c648620.js +1 -0
- package/.next/static/chunks/pages/{_app-b83676824a39752c.js → _app-0f16b6b5d7dfab2a.js} +1 -1
- package/.next/static/chunks/webpack-d72e5eb27bf80195.js +1 -0
- package/.next/static/css/31fb64e064998460.css +1 -0
- package/.next/trace +109 -109
- package/.turbo/turbo-build.log +11 -17
- package/.turbo/turbo-test.log +5 -5
- package/@generated/gql.ts +2 -2
- package/@generated/graphql.ts +59 -7
- package/@generated/persisted-documents.json +3 -3
- package/CHANGELOG.md +12 -0
- package/cms/faststore/sections.json +85 -0
- package/package.json +4 -4
- package/src/components/navigation/Navbar/Navbar.tsx +2 -0
- package/src/components/product/ProductCard/ProductCard.tsx +8 -0
- package/src/components/search/SearchDropdown/SearchDropdown.tsx +14 -1
- package/src/components/search/SearchInput/SearchInput.tsx +17 -2
- package/src/components/search/SearchProductItem/SearchProductItem.tsx +120 -1
- package/src/components/sections/Navbar/DefaultComponents.ts +7 -0
- package/src/components/sections/Navbar/Navbar.tsx +16 -0
- package/src/components/sections/Navbar/section.module.scss +11 -0
- package/src/components/ui/SKUMatrix/SKUMatrixSidebar.tsx +12 -4
- package/src/sdk/analytics/platform/vtex/search.ts +4 -2
- package/src/sdk/cart/useBuyButton.ts +7 -2
- package/src/typings/overrides.ts +1 -0
- package/src/utils/getBaseDomain.ts +50 -0
- package/.next/server/chunks/3979.js +0 -1
- package/.next/server/chunks/5071.js +0 -1
- package/.next/server/chunks/5284.js +0 -1
- package/.next/server/chunks/6198.js +0 -1
- package/.next/server/chunks/804.js +0 -1
- package/.next/server/chunks/8112.js +0 -9
- package/.next/server/chunks/9019.js +0 -1
- package/.next/server/chunks/9068.js +0 -1
- package/.next/static/chunks/3675.b6f0a3644a7802fe.js +0 -1
- package/.next/static/chunks/3979.485ff5351a2504d8.js +0 -1
- package/.next/static/chunks/417.08663bd4b5809548.js +0 -1
- package/.next/static/chunks/4865.8b1970610c412187.js +0 -1
- package/.next/static/chunks/6335-7aa183582a89bc0e.js +0 -1
- package/.next/static/chunks/pages/[slug]/p-2e02254149cef33d.js +0 -1
- package/.next/static/chunks/webpack-ddf24b55e934e623.js +0 -1
- package/.next/static/css/b0c0e0632c5d7f52.css +0 -1
- /package/.next/static/{LDbNn9GX3-MH7ekCHdiDN → Ra_8xXVEVCNHcT2KePSUO}/_ssgManifest.js +0 -0
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { type Dispatch, type SetStateAction, useMemo, useState } from 'react'
|
|
1
2
|
import {
|
|
3
|
+
Icon,
|
|
2
4
|
SearchProductItem as UISearchProductItem,
|
|
3
5
|
SearchProductItemContent as UISearchProductItemContent,
|
|
4
6
|
SearchProductItemImage as UISearchProductItemImage,
|
|
7
|
+
SKUMatrix as UISKUMatrix,
|
|
8
|
+
SKUMatrixTrigger as UISKUMatrixTrigger,
|
|
5
9
|
useSearch,
|
|
10
|
+
useUI,
|
|
6
11
|
} from '@faststore/ui'
|
|
7
12
|
|
|
8
13
|
import { Image } from 'src/components/ui/Image'
|
|
@@ -10,6 +15,11 @@ import { useFormattedPrice } from 'src/sdk/product/useFormattedPrice'
|
|
|
10
15
|
import { useProductLink } from 'src/sdk/product/useProductLink'
|
|
11
16
|
import { sendAutocompleteClickEvent } from '../SearchDropdown'
|
|
12
17
|
import type { ProductSummary_ProductFragment } from '@generated/graphql'
|
|
18
|
+
import { useBuyButton } from 'src/sdk/cart/useBuyButton'
|
|
19
|
+
import type { NavbarProps } from 'src/components/sections/Navbar'
|
|
20
|
+
import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
|
|
21
|
+
|
|
22
|
+
import styles from 'src/components/sections/Navbar/section.module.scss'
|
|
13
23
|
|
|
14
24
|
type SearchProductItemProps = {
|
|
15
25
|
/**
|
|
@@ -20,16 +30,30 @@ type SearchProductItemProps = {
|
|
|
20
30
|
* Index to generate product link.
|
|
21
31
|
*/
|
|
22
32
|
index: number
|
|
33
|
+
/**
|
|
34
|
+
* Quick Order settings.
|
|
35
|
+
*/
|
|
36
|
+
quickOrderSettings: NavbarProps['searchInput']['quickOrderSettings']
|
|
37
|
+
/**
|
|
38
|
+
* Method to manage the visibility state of the dropdown when SKU Matrix is active.
|
|
39
|
+
*/
|
|
40
|
+
onChangeCustomSearchDropdownVisible: Dispatch<SetStateAction<boolean>>
|
|
23
41
|
}
|
|
24
42
|
|
|
25
43
|
function SearchProductItem({
|
|
26
44
|
product,
|
|
27
45
|
index,
|
|
46
|
+
quickOrderSettings,
|
|
47
|
+
onChangeCustomSearchDropdownVisible,
|
|
28
48
|
...otherProps
|
|
29
49
|
}: SearchProductItemProps) {
|
|
30
50
|
const {
|
|
31
51
|
values: { onSearchSelection },
|
|
32
52
|
} = useSearch()
|
|
53
|
+
const { pushToast } = useUI()
|
|
54
|
+
|
|
55
|
+
const { __experimentalSKUMatrixSidebar: UISKUMatrixSidebar } =
|
|
56
|
+
useOverrideComponents<'Navbar'>()
|
|
33
57
|
|
|
34
58
|
const { href, onClick, ...baseLinkProps } = useProductLink({
|
|
35
59
|
product,
|
|
@@ -37,13 +61,32 @@ function SearchProductItem({
|
|
|
37
61
|
index,
|
|
38
62
|
})
|
|
39
63
|
|
|
64
|
+
const [quantity, setQuantity] = useState<number>(1)
|
|
65
|
+
|
|
40
66
|
const {
|
|
67
|
+
id,
|
|
68
|
+
sku,
|
|
69
|
+
gtin,
|
|
70
|
+
brand,
|
|
71
|
+
isVariantOf,
|
|
41
72
|
isVariantOf: { name },
|
|
73
|
+
unitMultiplier,
|
|
42
74
|
image: [img],
|
|
43
75
|
offers: {
|
|
44
76
|
lowPrice: spotPrice,
|
|
45
|
-
offers: [
|
|
77
|
+
offers: [
|
|
78
|
+
{
|
|
79
|
+
listPrice,
|
|
80
|
+
availability,
|
|
81
|
+
price,
|
|
82
|
+
listPriceWithTaxes,
|
|
83
|
+
seller,
|
|
84
|
+
priceWithTaxes,
|
|
85
|
+
quantity: offersQuantity,
|
|
86
|
+
},
|
|
87
|
+
],
|
|
46
88
|
},
|
|
89
|
+
additionalProperty,
|
|
47
90
|
} = product
|
|
48
91
|
|
|
49
92
|
const linkProps = {
|
|
@@ -61,6 +104,43 @@ function SearchProductItem({
|
|
|
61
104
|
...baseLinkProps,
|
|
62
105
|
}
|
|
63
106
|
|
|
107
|
+
const outOfStock = useMemo(
|
|
108
|
+
() => availability === 'https://schema.org/OutOfStock',
|
|
109
|
+
[availability]
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
const hasVariants = useMemo(
|
|
113
|
+
() =>
|
|
114
|
+
Boolean(
|
|
115
|
+
Object.keys(product.isVariantOf.skuVariants.allVariantsByName).length
|
|
116
|
+
),
|
|
117
|
+
|
|
118
|
+
[product]
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
const buyProps = useBuyButton(
|
|
122
|
+
{
|
|
123
|
+
id,
|
|
124
|
+
price,
|
|
125
|
+
priceWithTaxes,
|
|
126
|
+
listPrice,
|
|
127
|
+
listPriceWithTaxes,
|
|
128
|
+
seller,
|
|
129
|
+
quantity,
|
|
130
|
+
itemOffered: {
|
|
131
|
+
sku,
|
|
132
|
+
name,
|
|
133
|
+
gtin,
|
|
134
|
+
image: [img],
|
|
135
|
+
brand,
|
|
136
|
+
isVariantOf,
|
|
137
|
+
additionalProperty,
|
|
138
|
+
unitMultiplier,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
false
|
|
142
|
+
)
|
|
143
|
+
|
|
64
144
|
return (
|
|
65
145
|
<UISearchProductItem linkProps={linkProps} {...otherProps}>
|
|
66
146
|
<UISearchProductItemImage>
|
|
@@ -73,6 +153,45 @@ function SearchProductItem({
|
|
|
73
153
|
listPrice: listPrice,
|
|
74
154
|
formatter: useFormattedPrice,
|
|
75
155
|
}}
|
|
156
|
+
onValidateBlur={(min, max, quantity) =>
|
|
157
|
+
pushToast({
|
|
158
|
+
title: 'Invalid quantity!',
|
|
159
|
+
message: `The quantity you entered is outside the range of ${min} to ${max}. The quantity was set to ${quantity}.`,
|
|
160
|
+
status: 'INFO',
|
|
161
|
+
icon: <Icon name="CircleWavyWarning" width={30} height={30} />,
|
|
162
|
+
})
|
|
163
|
+
}
|
|
164
|
+
quickOrder={{
|
|
165
|
+
enabled: quickOrderSettings?.quickOrder,
|
|
166
|
+
outOfStockLabel: 'Out of stock',
|
|
167
|
+
availability: !outOfStock,
|
|
168
|
+
hasVariants,
|
|
169
|
+
buyProps,
|
|
170
|
+
quantity,
|
|
171
|
+
onChangeQuantity: setQuantity,
|
|
172
|
+
max: offersQuantity,
|
|
173
|
+
skuMatrixControl: (
|
|
174
|
+
<>
|
|
175
|
+
{quickOrderSettings?.quickOrder && (
|
|
176
|
+
<UISKUMatrix>
|
|
177
|
+
<UISKUMatrixTrigger>
|
|
178
|
+
{quickOrderSettings?.skuMatrix.triggerButtonLabel}
|
|
179
|
+
</UISKUMatrixTrigger>
|
|
180
|
+
|
|
181
|
+
<UISKUMatrixSidebar.Component
|
|
182
|
+
overlayProps={{ className: styles.section }}
|
|
183
|
+
formatter={useFormattedPrice}
|
|
184
|
+
columns={quickOrderSettings?.skuMatrix.columns}
|
|
185
|
+
product={product}
|
|
186
|
+
status={(status: string | null) =>
|
|
187
|
+
onChangeCustomSearchDropdownVisible(status === 'visible')
|
|
188
|
+
}
|
|
189
|
+
/>
|
|
190
|
+
</UISKUMatrix>
|
|
191
|
+
)}
|
|
192
|
+
</>
|
|
193
|
+
),
|
|
194
|
+
}}
|
|
76
195
|
></UISearchProductItemContent>
|
|
77
196
|
</UISearchProductItem>
|
|
78
197
|
)
|
|
@@ -37,6 +37,12 @@ const UINavbarSliderFooter = dynamic(() =>
|
|
|
37
37
|
)
|
|
38
38
|
)
|
|
39
39
|
|
|
40
|
+
const SKUMatrixSidebar = dynamic(() =>
|
|
41
|
+
import(
|
|
42
|
+
/* webpackChunkName: "UISKUMatrixSidebar" */ 'src/components/ui/SKUMatrix/SKUMatrixSidebar'
|
|
43
|
+
).then((module) => module.default)
|
|
44
|
+
)
|
|
45
|
+
|
|
40
46
|
export const NavbarDefaultComponents = {
|
|
41
47
|
Navbar: UINavbar,
|
|
42
48
|
NavbarLinks: UINavbarLinks,
|
|
@@ -50,4 +56,5 @@ export const NavbarDefaultComponents = {
|
|
|
50
56
|
NavbarButtons: UINavbarButtons,
|
|
51
57
|
IconButton: UIIconButton,
|
|
52
58
|
_experimentalButtonSignIn: ButtonSignIn,
|
|
59
|
+
__experimentalSKUMatrixSidebar: SKUMatrixSidebar,
|
|
53
60
|
} as const
|
|
@@ -23,6 +23,22 @@ export interface NavbarProps {
|
|
|
23
23
|
searchInput: {
|
|
24
24
|
placeholder?: string
|
|
25
25
|
sort: string
|
|
26
|
+
quickOrderSettings: {
|
|
27
|
+
quickOrder: boolean
|
|
28
|
+
skuMatrix: {
|
|
29
|
+
triggerButtonLabel: string
|
|
30
|
+
columns: {
|
|
31
|
+
name: string
|
|
32
|
+
additionalColumns: Array<{ label: string; value: string }>
|
|
33
|
+
price: number
|
|
34
|
+
quantitySelector: number
|
|
35
|
+
availability: {
|
|
36
|
+
label: string
|
|
37
|
+
stockDisplaySettings: 'showAvailability' | 'showStockQuantity'
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
26
42
|
}
|
|
27
43
|
signInButton: {
|
|
28
44
|
icon: {
|
|
@@ -7,12 +7,15 @@
|
|
|
7
7
|
@import "@faststore/ui/src/components/atoms/Badge/styles.scss";
|
|
8
8
|
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
9
9
|
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
10
|
+
@import "@faststore/ui/src/components/atoms/Loader/styles.scss";
|
|
10
11
|
@import "@faststore/ui/src/components/atoms/Input/styles.scss";
|
|
11
12
|
@import "@faststore/ui/src/components/atoms/Link/styles.scss";
|
|
12
13
|
@import "@faststore/ui/src/components/atoms/List/styles.scss";
|
|
13
14
|
@import "@faststore/ui/src/components/atoms/Logo/styles.scss";
|
|
15
|
+
@import "@faststore/ui/src/components/atoms/Overlay/styles.scss";
|
|
14
16
|
@import "@faststore/ui/src/components/atoms/Price/styles.scss";
|
|
15
17
|
@import "@faststore/ui/src/components/molecules/LinkButton/styles.scss";
|
|
18
|
+
@import "@faststore/ui/src/components/molecules/QuantitySelector/styles.scss";
|
|
16
19
|
@import "@faststore/ui/src/components/molecules/NavbarLinks/styles.scss";
|
|
17
20
|
@import "@faststore/ui/src/components/molecules/ProductPrice/styles.scss";
|
|
18
21
|
@import "@faststore/ui/src/components/molecules/SearchAutoComplete/styles.scss";
|
|
@@ -21,8 +24,12 @@
|
|
|
21
24
|
@import "@faststore/ui/src/components/molecules/SearchInputField/styles.scss";
|
|
22
25
|
@import "@faststore/ui/src/components/molecules/SearchProducts/styles.scss";
|
|
23
26
|
@import "@faststore/ui/src/components/molecules/SearchTop/styles.scss";
|
|
27
|
+
@import "@faststore/ui/src/components/molecules/SkuSelector/styles.scss";
|
|
28
|
+
@import "@faststore/ui/src/components/molecules/Table/styles.scss";
|
|
24
29
|
@import "@faststore/ui/src/components/organisms/SearchInput/styles.scss";
|
|
25
30
|
@import "@faststore/ui/src/components/organisms/Navbar/styles.scss";
|
|
31
|
+
@import "@faststore/ui/src/components/organisms/SlideOver/styles.scss";
|
|
32
|
+
@import "@faststore/ui/src/components/organisms/SKUMatrix/styles.scss";
|
|
26
33
|
|
|
27
34
|
// Sets Navbar height on desktop to avoid CLS issue - Cumulative Layout Shift
|
|
28
35
|
--fs-navbar-height-desktop: 4.5rem;
|
|
@@ -39,5 +46,9 @@
|
|
|
39
46
|
margin-bottom: 0;
|
|
40
47
|
}
|
|
41
48
|
}
|
|
49
|
+
|
|
50
|
+
&[data-fs-overlay] {
|
|
51
|
+
height: 100%;
|
|
52
|
+
}
|
|
42
53
|
}
|
|
43
54
|
}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
+
import { useEffect } from 'react'
|
|
1
2
|
import type { SKUMatrixSidebarProps as UISKUMatrixSidebarProps } from '@faststore/ui'
|
|
2
3
|
import {
|
|
3
4
|
SKUMatrixSidebar as UISKUMatrixSidebar,
|
|
4
5
|
useSKUMatrix,
|
|
5
6
|
} from '@faststore/ui'
|
|
6
7
|
import { gql } from '@generated/gql'
|
|
8
|
+
import type { ProductSummary_ProductFragment } from '@generated/graphql'
|
|
7
9
|
import { useBuyButton } from 'src/sdk/cart/useBuyButton'
|
|
8
10
|
import { usePDP } from 'src/sdk/overrides/PageProvider'
|
|
9
11
|
import { useAllVariantProducts } from 'src/sdk/product/useAllVariantProducts'
|
|
10
12
|
import { Image } from '../Image'
|
|
11
13
|
|
|
12
|
-
interface SKUMatrixProps extends UISKUMatrixSidebarProps {
|
|
14
|
+
interface SKUMatrixProps extends UISKUMatrixSidebarProps {
|
|
15
|
+
product?: ProductSummary_ProductFragment
|
|
16
|
+
status?(data: 'visible' | null): void
|
|
17
|
+
}
|
|
13
18
|
|
|
14
19
|
const ImageComponent: UISKUMatrixSidebarProps['ImageComponent'] = ({
|
|
15
20
|
src,
|
|
@@ -18,9 +23,8 @@ const ImageComponent: UISKUMatrixSidebarProps['ImageComponent'] = ({
|
|
|
18
23
|
}) => <Image src={src} alt={alt} width={48} height={48} {...otherProps} />
|
|
19
24
|
|
|
20
25
|
function SKUMatrixSidebar(props: SKUMatrixProps) {
|
|
21
|
-
const {
|
|
22
|
-
|
|
23
|
-
} = usePDP()
|
|
26
|
+
const { data } = usePDP()
|
|
27
|
+
const product = props.product ?? data.product
|
|
24
28
|
|
|
25
29
|
const { allVariantProducts, isOpen, setAllVariantProducts } = useSKUMatrix()
|
|
26
30
|
const { isValidating } = useAllVariantProducts(
|
|
@@ -29,6 +33,10 @@ function SKUMatrixSidebar(props: SKUMatrixProps) {
|
|
|
29
33
|
setAllVariantProducts
|
|
30
34
|
)
|
|
31
35
|
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
props.status?.(isOpen ? 'visible' : null)
|
|
38
|
+
}, [isOpen])
|
|
39
|
+
|
|
32
40
|
const {
|
|
33
41
|
gtin,
|
|
34
42
|
unitMultiplier,
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
import type { AnalyticsEvent } from '@faststore/sdk'
|
|
5
5
|
import type { SearchEvents } from '../../types'
|
|
6
6
|
|
|
7
|
+
import { getBaseDomain } from 'src/utils/getBaseDomain'
|
|
8
|
+
import { getCookie } from 'src/utils/getCookie'
|
|
7
9
|
import config from '../../../../../discovery.config'
|
|
8
|
-
import { getCookie } from '../../../../utils/getCookie'
|
|
9
10
|
|
|
10
11
|
const THIRTY_MINUTES_S = 30 * 60
|
|
11
12
|
const ONE_YEAR_S = 365 * 24 * 3600
|
|
@@ -21,7 +22,8 @@ const createOrRefreshCookie = (key: string, expiresSecond: number) => {
|
|
|
21
22
|
const urlDomain =
|
|
22
23
|
process.env.NODE_ENV === 'development'
|
|
23
24
|
? '.localhost'
|
|
24
|
-
:
|
|
25
|
+
: getBaseDomain([config.storeUrl, config.secureSubdomain]) ||
|
|
26
|
+
`.${new URL(config.storeUrl).hostname}`
|
|
25
27
|
|
|
26
28
|
return () => {
|
|
27
29
|
let currentValue = getCookie(key)
|
|
@@ -8,7 +8,10 @@ import { useUI } from '@faststore/ui'
|
|
|
8
8
|
import { useSession } from '../session'
|
|
9
9
|
import { cartStore } from './index'
|
|
10
10
|
|
|
11
|
-
export const useBuyButton = (
|
|
11
|
+
export const useBuyButton = (
|
|
12
|
+
item: CartItem | CartItem[] | null,
|
|
13
|
+
shouldOpenCart = true
|
|
14
|
+
) => {
|
|
12
15
|
const { openCart } = useUI()
|
|
13
16
|
const {
|
|
14
17
|
currency: { code },
|
|
@@ -68,7 +71,9 @@ export const useBuyButton = (item: CartItem | CartItem[] | null) => {
|
|
|
68
71
|
? item.forEach((value) => cartStore.addItem(value))
|
|
69
72
|
: cartStore.addItem(item)
|
|
70
73
|
|
|
71
|
-
|
|
74
|
+
if (shouldOpenCart) {
|
|
75
|
+
openCart()
|
|
76
|
+
}
|
|
72
77
|
},
|
|
73
78
|
[code, item, openCart, itemIsArray]
|
|
74
79
|
)
|
package/src/typings/overrides.ts
CHANGED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import config from '../../discovery.config'
|
|
2
|
+
|
|
3
|
+
export const getBaseDomain = (urls: string[]) => {
|
|
4
|
+
const extractHostname = (url: string) => {
|
|
5
|
+
try {
|
|
6
|
+
const hostname = new URL(url).hostname
|
|
7
|
+
const subDomainPrefixes = config.api.subDomainPrefix || []
|
|
8
|
+
|
|
9
|
+
// Remove subdomain prefixes
|
|
10
|
+
// e.g. 'www.', 'shop.', 'loja.' from the hostname
|
|
11
|
+
const prefixRegex = new RegExp(
|
|
12
|
+
`^(${['www', ...subDomainPrefixes].join('|')})\\.`
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
return hostname.replace(prefixRegex, '')
|
|
16
|
+
} catch {
|
|
17
|
+
return ''
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const hostnames = urls.map(extractHostname)
|
|
22
|
+
|
|
23
|
+
// Find common parts
|
|
24
|
+
const splitHostnames = hostnames.map((hostname) =>
|
|
25
|
+
hostname.split('.').reverse()
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
const minLength = Math.min(...splitHostnames.map((parts) => parts.length))
|
|
29
|
+
|
|
30
|
+
const commonParts = []
|
|
31
|
+
for (let i = 0; i < minLength; i++) {
|
|
32
|
+
const partSet = new Set(splitHostnames.map((parts) => parts[i]))
|
|
33
|
+
if (partSet.size === 1) {
|
|
34
|
+
commonParts.push(splitHostnames[0][i])
|
|
35
|
+
} else {
|
|
36
|
+
break
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (commonParts.length < 2) {
|
|
41
|
+
// If we cannot find at least domain + tld, fallback to ''
|
|
42
|
+
const err = `No common domain found for URLs: ${urls.join(', ')}`
|
|
43
|
+
console.warn(
|
|
44
|
+
`${err}. Please check the Production URLs in the discovery.config file.`
|
|
45
|
+
)
|
|
46
|
+
return ''
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return '.' + commonParts.reverse().join('.')
|
|
50
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=3979,exports.ids=[3979],exports.modules={43979:(e,t,r)=>{r.r(t),r.d(t,{default:()=>search});var a=r(11506),o=r.n(a);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let randomUUID=()=>"function"==typeof crypto.randomUUID?crypto.randomUUID().replaceAll("-",""):(1e6*Math.random()).toFixed(0),createOrRefreshCookie=(e,t)=>{let r=`.${new URL(o().storeUrl).hostname}`;return()=>{let a=function(e){let t=decodeURIComponent(document.cookie),r=t.split(";");for(let t of r){let[r,a]=t.trim().split("=");if(r===e)return a}}(e),o=void 0===a;return o&&(a=randomUUID()),document.cookie=`${e}=${a}; max-age=${t}; domain=${r}; path=/;`,a}},s={anonymous:createOrRefreshCookie("vtex-search-anonymous",31536e3),session:createOrRefreshCookie("vtex-search-session",1800)},sendEvent=e=>fetch(`https://sp.vtex.com/event-api/v1/${o().api.storeId}/event`,{method:"POST",body:JSON.stringify(_objectSpread(_objectSpread({},e),{},{userAgent:navigator.userAgent,anonymous:s.anonymous(),session:s.session()})),headers:{"content-type":"application/json"}}),isFullTextSearch=e=>"string"==typeof e.searchParams.get("q")&&/^\/s(\/)?$/g.test(e.pathname);setInterval(()=>sendEvent({type:"session.ping"}),6e4);let search=e=>{switch(e.name){case"search_select_item":{let t=new URL(e.params.url);if(!isFullTextSearch(t))return;for(let r of e.params.items??[]){let e=r.item_id??r.item_variant,a=r.index;e&&a&&sendEvent({type:"search.click",productId:e,position:a,url:t.href,text:t.searchParams.get("q")??"<empty>"})}break}case"intelligent_search_query":sendEvent({type:"search.query",url:e.params.url,text:e.params.term,misspelled:e.params.isTermMisspelled,match:e.params.totalCount,operator:e.params.logicalOperator,locale:e.params.locale});break;case"intelligent_search_autocomplete_query":sendEvent({type:"search.autocomplete.query",url:e.params.url,text:e.params.term,misspelled:e.params.isTermMisspelled,match:e.params.totalCount,operator:e.params.logicalOperator,locale:e.params.locale});break;case"intelligent_search_autocomplete_click":sendEvent(_objectSpread(_objectSpread({text:e.params.term,url:e.params.url??"",productId:e.params.productId??""},e.params.position&&{position:e.params.position}),{},{type:"search.autocomplete.click"}))}}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=5071,exports.ids=[5071],exports.modules={35071:(e,t,r)=>{r.d(t,{Z:()=>f});var o=r(38394),a=r(65167),n=r(50547),s=r(16689),i=r(35236),c=r.n(i),d=r(76659),l=r(56087),u=r(5436),p=r(20997);let b=["product","index","bordered","variant","aspectRatio","imgProps","ratingValue","buttonLabel","onButtonClick","showDiscountBadge","taxesConfiguration","sponsoredLabel"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let f=(0,s.memo)(function(e){let{product:t,index:r,bordered:i=!0,variant:f="default",aspectRatio:O=1,imgProps:j,ratingValue:g,buttonLabel:h="Add",onButtonClick:y,showDiscountBadge:w=!0,taxesConfiguration:m,sponsoredLabel:v}=e,x=function(e,t){if(null==e)return{};var r,o,a=function(e,t){if(null==e)return{};var r,o,a={},n=Object.keys(e);for(o=0;o<n.length;o++)r=n[o],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,b),{sku:P,isVariantOf:{name:S},image:[k],advertisement:D,offers:{lowPrice:_,lowPriceWithTaxes:B,offers:[{listPrice:L,availability:T,listPriceWithTaxes:Z}]}}=t,I=_objectSpread(_objectSpread({},(0,u.w)({product:t,selectedOffer:0,index:r})),{},{as:c(),passHref:!0,legacyBehavior:!1,prefetch:!1}),C=(0,s.useMemo)(()=>"https://schema.org/InStock"!==T,[T]),E=m?.usePriceWithTaxes?B:_,K=m?.usePriceWithTaxes?Z:L,R=D?{"data-van-res-id":D.adResponseId,"data-van-aid":D.adId,"data-van-prod-name":S}:{};return(0,p.jsxs)(o.Z,_objectSpread(_objectSpread(_objectSpread({outOfStock:C,bordered:i,variant:f,"data-fs-product-card-sku":P},R),x),{},{children:[p.jsx(a.Z,{aspectRatio:O,children:p.jsx(d.Z,{src:k.url,alt:k.alternateName,sizes:`${j?.sizes??"(max-width: 768px) 40vw, 30vw"}`,width:j?.width??360,height:Math.round((Number(j?.height)||360)/O),loading:j?.loading})}),p.jsx(n.Z,{title:S,price:{value:E,listPrice:K,formatter:l.P},ratingValue:g,outOfStock:C,onButtonClick:y,linkProps:I,showDiscountBadge:E<=K&&w,includeTaxes:m?.usePriceWithTaxes,includeTaxesLabel:m?.taxesLabel,sponsored:!!D,sponsoredLabel:v})]}))})}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=5284,exports.ids=[5284],exports.modules={11933:(e,t,a)=>{a.d(t,{R:()=>useSearch});var r=a(16689),s=a(50101);let useSearch=()=>{let e=(0,r.useContext)(s.c);return e?{inContext:!0,values:e}:{inContext:!1}}},42174:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(11933),c=a(94564);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-auto-complete",children:t,...a})=>{let{inContext:r,values:l}=(0,n.R)();return r&&(l.terms.length<=0||l.term.length<=0)?null:s().createElement("section",{"data-testid":e,"data-fs-search-auto-complete":!0,...a},s().createElement(c.Z,{as:"ol"},t))}},80757:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(2614),c=a(40727);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-auto-complete-term",suggestion:t,term:a,linkProps:l,icon:i=s().createElement(n.Z,{name:"MagnifyingGlass",width:18,height:18})})=>{let o=t.toLowerCase().split(a.toLowerCase());return s().createElement("li",{"data-fs-search-auto-complete-item":!0,"data-testid":e},s().createElement(c.Z,{...l,"data-fs-search-auto-complete-item-link":!0,variant:"display"},s().createElement("span",{"data-fs-search-auto-complete-item-icon":!0},i),s().createElement("p",null,o.map((e,n)=>s().createElement(r.Fragment,{key:[e,n].join()},e.length>0&&s().createElement("strong",{"data-fs-search-auto-complete-item-suggestion":!0},0===n?e.charAt(0).toUpperCase()+e.slice(1):e),n!==o.length-1&&function(e,t,a){return 0===e?t.split("").map((e,t)=>0===t&&0===a.indexOf(e.toUpperCase())?e.toUpperCase():e.toLowerCase()).join(""):t.toLowerCase()}(n,a,t))))))}},64583:(e,t,a)=>{a.d(t,{Z:()=>l});var r=a(16689),s=a.n(r),n=a(11933);let SearchLoading=()=>{let{inContext:e,values:t}=(0,n.R)();return s().createElement(s().Fragment,null,e&&t.isLoading&&s().createElement("p",{"data-fs-search-dropdown-loading-text":!0},"Loading..."))},c=(0,r.forwardRef)(function({testId:e="fs-search-dropdown",children:t,...a},r){return s().createElement("div",{ref:r,"data-fs-search-dropdown":!0,"data-testid":e,...a},s().createElement("section",null,s().createElement(SearchLoading,null),t))}),l=c},22701:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(11933),c=a(83339),l=a(94564);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-history",title:t="History",clearLabel:a="Clear History",onClear:r,children:i,...o})=>{let{inContext:d,values:m}=(0,n.R)();return d&&(0!==m.term.length||m.isLoading)?null:s().createElement("section",{"data-testid":e,"data-fs-search-history":!0,...o},s().createElement("header",{"data-fs-search-history-header":!0},s().createElement("p",{"data-fs-search-history-title":!0},t),s().createElement(c.Z,{variant:"tertiary",onClick:r,size:"small"},a)),s().createElement(l.Z,{as:"ol"},i))}},9482:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(2614),c=a(40727);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-history-term",value:t,linkProps:a,icon:r=s().createElement(n.Z,{name:"ClockClockwise",width:18,height:18})})=>s().createElement("li",{"data-fs-search-history-item":!0,"data-testid":e},s().createElement(c.Z,{...a,"data-fs-search-history-item-link":!0,variant:"display"},s().createElement("span",{"data-fs-search-history-item-icon":!0},r),s().createElement("span",null,t)))},86035:(e,t,a)=>{a.d(t,{Z:()=>l});var r=a(16689),s=a.n(r),n=a(40727);let c=(0,r.forwardRef)(function({testId:e="fs-search-product-item",linkProps:t,children:a},r){return s().createElement("li",{ref:r,"data-fs-search-product-item":!0,"data-testid":e},s().createElement(n.Z,{...t,"data-fs-search-product-item-link":!0,variant:"display"},a))}),l=c},73454:(e,t,a)=>{a.d(t,{Z:()=>l});var r=a(16689),s=a.n(r),n=a(69088);let c=(0,r.forwardRef)(function({price:e,title:t,...a},r){return s().createElement("section",{ref:r,"data-fs-search-product-item-content":!0,...a},s().createElement("p",{"data-fs-search-product-item-title":!0},t),0!==e.value&&s().createElement(n.Z,{"data-fs-search-product-item-prices":!0,listPrice:e.listPrice,value:e.value,formatter:e.formatter}))}),l=c},69082:(e,t,a)=>{a.d(t,{Z:()=>c});var r=a(16689),s=a.n(r);let n=(0,r.forwardRef)(function({testId:e="fs-search-product-item-image",children:t,...a},r){return s().createElement("div",{ref:r,"data-fs-search-product-item-image":!0,"data-testid":e,...a},t)}),c=n},19994:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(11933),c=a(94564);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-products",title:t="Suggested Products",children:a,...r})=>{let{inContext:l,values:i}=(0,n.R)();return l&&i.products.length<=0?null:s().createElement("section",{"data-testid":e,"data-fs-search-products":!0,...r},s().createElement("header",{"data-fs-search-products-header":!0},s().createElement("p",{"data-fs-search-products-title":!0},t)),s().createElement(c.Z,{as:"ol"},a))}},43311:(e,t,a)=>{a.d(t,{Z:()=>i});var r=a(16689),s=a.n(r),n=a(11933),c=a(94564);let l=(0,r.forwardRef)(function({testId:e="fs-top-search",title:t="Top Search",children:a,...r},l){let{inContext:i,values:o}=(0,n.R)();return i&&(0!==o.term.length||o.isLoading)?null:s().createElement("section",{ref:l,"data-testid":e,"data-fs-search-top":!0,...r},s().createElement("header",{"data-fs-search-top-header":!0},s().createElement("p",{"data-fs-search-top-title":!0},t)),s().createElement(c.Z,{as:"ol"},a))}),i=l},21287:(e,t,a)=>{a.d(t,{Z:()=>i});var r=a(16689),s=a.n(r),n=a(40727),c=a(40276);let l=(0,r.forwardRef)(function({testId:e="fs-top-search-term",value:t,linkProps:a,index:r},l){return s().createElement("li",{ref:l,"data-fs-search-top-item":!0,"data-testid":e},s().createElement(n.Z,{...a,"data-fs-search-top-item-link":!0,variant:"display"},s().createElement(c.Z,{"data-fs-search-top-item-badge":!0,variant:"info"},r+1),t))}),i=l}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=6198,exports.ids=[6198],exports.modules={71857:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({testId:e="fs-overlay",...t},a){return r().createElement("div",{ref:a,"data-fs-overlay":!0,role:"presentation","data-testid":e,...t})}),i=n},41232:(e,t,a)=>{a.d(t,{b:()=>useFadeEffect});var l=a(16689);let useFadeEffect=()=>{let[e,t]=(0,l.useState)("out"),a=(0,l.useCallback)(()=>t("out"),[]),r=(0,l.useCallback)(()=>t("in"),[]);return(0,l.useEffect)(()=>(r(),()=>{a()}),[r,a]),{fade:e,fadeIn:r,fadeOut:a}}},72955:(e,t,a)=>{a.d(t,{_:()=>useSKUMatrix});var l=a(16689),r=a(63442);function useSKUMatrix(){let e=(0,l.useContext)(r.m);if(!e)throw Error("Do not use SKUMatrix components outside the SKUMatrix context.");return e}},21640:(e,t,a)=>{a.d(t,{E:()=>useTrapFocus});var l=a(16689),r=a(21246);let useTrapFocus=({trapFocusRef:e,beforeElementRef:t,afterElementRef:a})=>{let n=(0,l.useRef)(),i=(0,l.useRef)(document.hasFocus()?document.activeElement:null);(0,l.useEffect)(()=>{let e=i.current;return()=>{e?.focus()}},[i]),(0,l.useEffect)(()=>{if(!e.current)return;n.current||(n.current=(0,r.ht)(e.current));let[t]=n.current;if(!t){e.current.focus();return}t.focus()},[e]),(0,l.useEffect)(()=>{if(!e.current||!t.current||!a.current)return;let l=t.current,i=a.current,o=e.current,handleLoopFocus=t=>{document.hasFocus()&&(n.current=(0,r.ht)(e.current),n.current.length||o.focus(),t.target===l&&n.current[n.current.length-1]?.focus(),t.target===i&&n.current[0]?.focus())};return l?.addEventListener("focusin",handleLoopFocus),i?.addEventListener("focusin",handleLoopFocus),()=>{l?.removeEventListener("focusin",handleLoopFocus),i?.removeEventListener("focusin",handleLoopFocus)}},[n,a,t,e])}},6476:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(83339);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-buy-button",icon:t,children:a,...l}){return r().createElement(n.Z,{"data-fs-buy-button":!0,icon:t,iconPosition:"left","data-testid":e,...l},a)}},68373:(e,t,a)=>{a.d(t,{Z:()=>Modal_Modal});var l=a(16689),r=a.n(l),n=a(66405),i=a(71857),o=a(16652),s=a(41232),c=a(21640);let ModalContentPure=({beforeElementRef:e,trapFocusRef:t,afterElementRef:a,testId:l="store-modal-content",children:n,...i})=>r().createElement(r().Fragment,null,r().createElement("div",{ref:e,"data-testid":"beforeElement",tabIndex:0,"aria-hidden":"true"}),r().createElement("div",{"data-fs-modal-content":!0,"data-testid":l,ref:t,"aria-modal":"true",role:"dialog",tabIndex:-1,...i},n),r().createElement("div",{ref:a,"data-testid":"afterElement",tabIndex:0,"aria-hidden":"true"})),Modal_ModalContent=({children:e,...t})=>{let a=(0,l.useRef)(null),n=(0,l.useRef)(null),i=(0,l.useRef)(null);return(0,c.E)({beforeElementRef:n,trapFocusRef:a,afterElementRef:i}),r().createElement(ModalContentPure,{...t,trapFocusRef:a,beforeElementRef:n,afterElementRef:i,onClick:e=>{e.stopPropagation()}},e)},Modal_Modal=({children:e,testId:t="fs-modal",isOpen:a=!0,onDismiss:l,overlayProps:c,...u})=>{let{closeModal:d}=(0,o.l)(),{fade:m,fadeOut:f,fadeIn:E}=(0,s.b)();return a?(0,n.createPortal)(r().createElement(i.Z,{onClick:e=>{e.defaultPrevented||(e.stopPropagation(),f?.(),l?.())},onKeyDown:e=>{"Escape"!==e.key||e.defaultPrevented||(e.stopPropagation(),f?.(),l?.())},...c},r().createElement(Modal_ModalContent,{onTransitionEnd:()=>"out"===m&&d(),"data-fs-modal":!0,"data-fs-modal-state":m,testId:t,...u},"function"==typeof e?e({fade:m,fadeOut:f,fadeIn:E}):e)),document.body):null}},8212:(e,t,a)=>{a.d(t,{Z:()=>o});var l=a(16689),r=a.n(l),n=a(13024);let i=(0,l.forwardRef)(function({title:e,label:t,refTag:a="Ref.: ",refNumber:l,testId:i="fs-product-title",ratingValue:o,...s},c){return r().createElement("header",{ref:c,"data-fs-product-title":!0,"data-testid":i,...s},r().createElement("div",{"data-fs-product-title-header":!0},e,!!t&&t),(l||o)&&r().createElement("div",{"data-fs-product-title-addendum":!0},o&&r().createElement(n.Z,{value:o}),l&&r().createElement(r().Fragment,null,a," ",l)))}),o=i},6693:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(37041),i=a(2614),o=a(42256);let __WEBPACK_DEFAULT_EXPORT__=({max:e,min:t=1,unitMultiplier:a=1,useUnitMultiplier:s,initial:c,disabled:u=!1,onChange:d,onValidateBlur:m,testId:f="fs-quantity-selector",...E})=>{let[g,h]=(0,l.useState)(c??t),[p,_]=(0,l.useState)(g*a),roundUpQuantityIfNeeded=e=>s?Math.ceil(e/a)*a:e,v=g===t,b=g===e,changeQuantity=e=>{let t=validateQuantityBounds(g+e);d?.(t),h(t),_(t*a)};function validateQuantityBounds(l){let r=t?Math.max(l,t):l;return e?Math.min(r,s?e*a:e):r}return(0,l.useEffect)(()=>{c&&h(c)},[c]),r().createElement("div",{"data-fs-quantity-selector":u?"disabled":"true","data-testid":f,...E},r().createElement(n.Z,{"data-quantity-selector-button":"left",icon:r().createElement(i.Z,{name:"Minus",width:16,height:16,weight:"bold"}),"aria-label":"Decrement Quantity","aria-controls":"quantity-selector-input",disabled:v||u,onClick:()=>changeQuantity(-1),testId:`${f}-left-button`,size:"small"}),r().createElement(o.Z,{"data-quantity-selector-input":!0,id:"quantity-selector-input","aria-label":"Quantity",value:s?p:g,onChange:e=>{let t=e.target.value.replace(/\D/g,"");h(Number(t))},onBlur:function(){let l=validateQuantityBounds(g),r=roundUpQuantityIfNeeded(l),n=e??(t?Math.max(g,t):g),i=g>n||g<t;i&&m?.(t,n,r),h(()=>(_(r),d?.(r/a),r/a))},onInput:e=>{let t=e.currentTarget;t.value=t.value.replace(/\D/g,"")},disabled:u}),r().createElement(n.Z,{"data-quantity-selector-button":"right","aria-controls":"quantity-selector-input","aria-label":"Increment Quantity",disabled:b||u,icon:r().createElement(i.Z,{name:"Plus",width:16,height:16,weight:"bold"}),onClick:()=>changeQuantity(1),testId:`${f}-right-button`,size:"small"}))}},5136:(e,t,a)=>{a.d(t,{Z:()=>c});var l=a(16689),r=a.n(l),n=a(31953),i=a(40727),o=a(55450);let getImageName=e=>{let t=new URL(e).pathname,a=t.split("/").slice(-1)[0];return a},useDefineVariant=(e,t)=>(0,l.useMemo)(()=>{if(t)return t;let a=e.every(e=>e.hexColor);if(a)return"color";let l=e[0]?.src&&getImageName(e[0].src);if(l&&1===e.length)return"image";let r=e.every(e=>{if(!e.src)return!0;let t=getImageName(e.src);return t===l});return r?"label":"image"},[e,t]),useSkuSlug=(e,t,a,r)=>{let n=(0,l.useCallback)(l=>{if(r)return{getItemHrefProp:r};let n=`/${function(e,t,a){let l=Object.entries(t).flat().join("-");if(l in e)return e[l];let r=Object.keys(e),n=`${a}-${t[a]}`,i=r.filter(e=>e.includes(n)),o=i.length>1?function(e,t){let[a,l]=t.split("-");return e.find(e=>{let t=function(e){let t={},a=e.split("-");for(let e=0;e<a.length;e+=2){let l=a[e].trim(),r=a[e+1]?a[e+1].trim():"";t[l]=r}return t}(e);return t[a]===l})}(i,n):i[0];return e[o??r[0]]}(t,{...e,[a]:l.value},a)}/p`;return n},[e,r,t,a]);return{getItemHref:n}},ImageComponentFallback=({src:e,alt:t,...a})=>r().createElement("img",{src:e,alt:t,...a}),s=(0,l.forwardRef)(function({availableVariations:e,skuPropertyName:t,testId:a,activeVariations:l,linkProps:s,slugsMap:c,getItemHref:u,ImageComponent:d=ImageComponentFallback,variant:m,...f},E){let g=l[t],h=e[t],p=useDefineVariant(h,m),{getItemHref:_}=useSkuSlug(l,c,t,u);return r().createElement("div",{ref:E,"data-fs-sku-selector":!0,"data-testid":a,"data-fs-sku-selector-variant":p,...f},t&&r().createElement(n.Z,{"data-fs-sku-selector-title":!0},t,": ",r().createElement("strong",null,g)),r().createElement("ul",{"data-fs-sku-selector-list":!0},h.map((e,a)=>r().createElement("li",{key:String(a),title:e.label,"data-fs-sku-selector-option":!0,"data-fs-sku-selector-disabled":e.disabled,"data-fs-sku-selector-checked":e.value===l[t]},r().createElement(i.Z,{"data-fs-sku-selector-option-link":!0,href:_(e),...s},r().createElement(o.Z,{text:e.label})),"label"===p&&r().createElement("span",null,e.value),"image"===p&&d&&r().createElement("span",null,r().createElement(d,{src:e.src??"",alt:e.alt??"","data-fs-sku-selector-option-image":!0})),"color"===p&&r().createElement("span",null,r().createElement("div",{"data-fs-sku-selector-option-color":!0,title:e.value,style:{"--data-fs-sku-selector-option-color-bkg-color":e.hexColor}}))))))}),c=s},97336:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({children:e,variant:t="colored",testId:a="fs-table",...l},n){return r().createElement("div",{"data-fs-table":!0},r().createElement("table",{ref:n,"data-fs-table-content":!0,"data-fs-table-variant":t,"data-testid":a,...l},e))}),i=n},9336:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({children:e,testId:t="fs-table-body",...a},l){return r().createElement("tbody",{ref:l,"data-testid":t,"data-fs-table-body":!0,...a},e)}),i=n},84256:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({scope:e,align:t,children:a,variant:l="data",testId:n="fs-table-cell",...i},o){return r().createElement("header"===l?"th":"td",{ref:o,"data-fs-table-cell":l,"data-fs-table-cell-align":t,"data-testid":n,scope:e,...i},a)}),i=n},60411:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({children:e,testId:t="fs-table-head",...a},l){return r().createElement("thead",{ref:l,"data-testid":t,"data-fs-table-head":!0,...a},e)}),i=n},44236:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({children:e,testId:t="fs-table-row",...a},l){return r().createElement("tr",{ref:l,"data-fs-table-row":!0,"data-testid":t,...a},e)}),i=n},165:(e,t,a)=>{a.d(t,{Z:()=>o});var l=a(16689),r=a.n(l),n=a(68778);let i=(0,l.forwardRef)(function({images:e,children:t,ImageComponent:a,selectedImageIdx:l,setSelectedImageIdx:i,testId:o="fs-image-gallery",...s},c){let u=e.length>1;return r().createElement("section",{ref:c,"data-fs-image-gallery":u?"with-selector":"without-selector","data-testid":o,...s},t,u&&r().createElement(n.Z,{images:e,onSelect:i,currentImageIdx:l,ImageComponent:a}))}),o=i},68778:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(19785),i=a(37041),o=a(2614),s=a(83339);let moveScroll=(e,t)=>{e&&(e.scrollHeight>e.clientHeight?(e.style.overflow="auto",window.requestAnimationFrame(()=>e.scrollTo({top:t,behavior:"smooth"})),setTimeout(()=>e.style.overflow="hidden",2e3)):e.scrollLeft+=t)},hasScroll=e=>!!e&&(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth),__WEBPACK_DEFAULT_EXPORT__=function({images:e,onSelect:t,ImageComponent:a,currentImageIdx:c,testId:u="fs-image-gallery-selector","aria-label":d="Product Images",navigationButtonLeftAriaLabel:m="Backward slide image selector",navigationButtonRightAriaLabel:f="Forward slide image selector"}){let E=(0,l.useRef)(null),g=hasScroll(E.current),[h,p]=(0,l.useState)(!0),[_,v]=(0,l.useState)(!0),b=(0,l.useCallback)((t,a)=>{0===t&&p(a),t===e.length-1&&v(a)},[e.length]);return r().createElement("section",{"data-fs-image-gallery-selector":!0,"data-testid":u,"aria-label":d},g&&!h&&r().createElement("div",{"data-fs-image-gallery-selector-control":!0},r().createElement(i.Z,{"data-fs-image-gallery-selector-control-button":!0,"aria-label":m,icon:r().createElement(o.Z,{name:"ArrowLeft"}),onClick:()=>moveScroll(E.current,-400)})),r().createElement("div",{"data-fs-image-gallery-selector-elements":!0,ref:E},e.map((l,i)=>r().createElement(n.InView,{key:i,onChange:e=>b(i,e)},r().createElement(s.Z,{key:i,"aria-label":`${l.alternateName} - Image ${i+1} of ${e.length}`,onClick:()=>t(i),"data-fs-image-gallery-selector-thumbnail":i===c?"selected":"true"},r().createElement(a,{url:l.url??"",loading:0===i?"eager":"lazy",alternateName:l.alternateName??""}))))),g&&!_&&r().createElement("div",{"data-fs-image-gallery-selector-control":!0},r().createElement(i.Z,{"data-fs-image-gallery-selector-control-button":!0,"aria-label":f,icon:r().createElement(o.Z,{name:"ArrowLeft"}),onClick:()=>moveScroll(E.current,400)})))}},11431:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l);let __WEBPACK_DEFAULT_EXPORT__=({children:e})=>r().createElement(r().Fragment,null,e)},47866:(e,t,a)=>{a.d(t,{Z:()=>o});var l=a(16689),r=a.n(l),n=a(63442);let i=(0,l.forwardRef)(function({testId:e="fs-sku-matrix",children:t,...a},l){return r().createElement("div",{ref:l,"data-fs-sku-matrix":!0,"data-testid":e,...a},r().createElement(n.Z,null,t))}),o=i},10831:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(10792),i=a(40276),o=a(6693),s=a(83339),c=a(2614),u=a(99767),d=a(72955),m=a(16652),f=a(41232),E=a(97336),g=a(60411),h=a(44236),p=a(84256),_=a(9336),v=a(77215),b=a(45049);let ImageComponentFallback=({src:e,alt:t,...a})=>r().createElement("img",{src:e,alt:t,...a}),__WEBPACK_DEFAULT_EXPORT__=function({title:e,direction:t="rightSide",size:a="partial",children:y,columns:Z,loading:C,formatter:k,ImageComponent:P=ImageComponentFallback,buyProps:{onClick:A,...T},overlayProps:F,...w}){let{isOpen:R,setIsOpen:S,setAllVariantProducts:L,allVariantProducts:x,onChangeQuantityItem:I}=(0,d._)(),{pushToast:O}=(0,m.l)(),{fade:D}=(0,f.b)(),B=(0,l.useMemo)(()=>x.reduce((e,t)=>({amount:e.amount+t.selectedCount,subtotal:e.subtotal+t.selectedCount*t.price}),{amount:0,subtotal:0}),[x]);function onClose(){L(e=>e.map(e=>({...e,quantity:0}))),S(!1)}let U=Object.keys(Z).filter(e=>"additionalColumns"!==e).length+(Z.additionalColumns?.length??0);return r().createElement(v.Z,{"data-fs-sku-matrix-sidebar":!0,size:a,direction:t,overlayProps:F,isOpen:R,fade:D,...w},r().createElement(b.Z,{onClose:onClose},r().createElement("h2",{"data-fs-sku-matrix-sidebar-title":!0},e)),y,r().createElement(E.Z,{variant:"bordered"},r().createElement(g.Z,null,r().createElement(h.Z,null,r().createElement(p.Z,{align:"left",variant:"header",scope:"col"},Z.name),Z.additionalColumns?.map(({label:e,value:t})=>r().createElement(p.Z,{key:t,align:"left",variant:"header",scope:"col"},e)),r().createElement(p.Z,{align:"left",variant:"header",scope:"col"},Z.availability.label),r().createElement(p.Z,{align:"right",variant:"header",scope:"col"},Z.price),r().createElement(p.Z,{align:"left",variant:"header",scope:"col"},Z.quantitySelector))),r().createElement(_.Z,null,C?r().createElement(r().Fragment,null,Array.from({length:5}).map((e,t)=>r().createElement(h.Z,{key:`table-row-${t}`},Array.from({length:U}).map((e,t)=>r().createElement(p.Z,{key:`table-cell-${t}`},r().createElement("span",null,r().createElement(n.Z,{key:t,size:{width:"100%",height:"30px"}}))))))):r().createElement(r().Fragment,null,x.map(e=>r().createElement(h.Z,{key:`${e.name}-${e.id}`},r().createElement(p.Z,{"data-fs-sku-matrix-sidebar-cell-image":!0,align:"left"},r().createElement(P,{src:e.image.url,alt:e.image.alternateName}),e.name),Z.additionalColumns?.map(({value:t})=>r().createElement(p.Z,{key:`${e.name}-${e.id}-${t}`,align:"left"},e.specifications[t.toLowerCase()])),r().createElement(p.Z,{align:"left"},"showAvailability"===Z.availability.stockDisplaySettings&&r().createElement(i.Z,{variant:"outOfStock"===e.availability?"warning":"success"},"outOfStock"===e.availability?"Out of stock":"Available"),"showStockQuantity"===Z.availability.stockDisplaySettings&&e.inventory),r().createElement(p.Z,{align:"right"},r().createElement("div",{"data-fs-sku-matrix-sidebar-table-price":!0},r().createElement(u.Z,{value:e.price,variant:"spot",formatter:k}))),r().createElement(p.Z,{align:"right","data-fs-sku-matrix-sidebar-table-cell-quantity-selector":!0},r().createElement("div",{"data-fs-sku-matrix-sidebar-table-action":!0},r().createElement(o.Z,{min:0,max:e.inventory,disabled:!e.inventory||"outOfStock"===e.availability,initial:e.selectedCount,onChange:t=>I(e.id,t),onValidateBlur:(e,t,a)=>{O({title:"Invalid quantity!",message:`The quantity you entered is outside the range of ${e} to ${t}. The quantity was set to ${a}.`,status:"INFO",icon:r().createElement(c.Z,{name:"CircleWavyWarning",width:30,height:30})})}})))))))),r().createElement("footer",{"data-fs-sku-matrix-sidebar-footer":!0},r().createElement("div",null,r().createElement("p",null,B.amount," ",1!==B.amount?"Items":"Item"),r().createElement(u.Z,{value:B.subtotal,variant:"spot",formatter:k})),r().createElement(s.Z,{variant:"primary",disabled:!B.amount,onClick:function(e){A(e),onClose()},...T},"Add to Cart")))}},27859:(e,t,a)=>{a.d(t,{Z:()=>s});var l=a(16689),r=a.n(l),n=a(83339),i=a(72955);let o=(0,l.forwardRef)(function({children:e,variant:t="secondary",onClick:a,...l},o){let{setIsOpen:s}=(0,i._)();return r().createElement(n.Z,{ref:o,variant:t,onClick:e=>{s(!0),a?.(e)},...l},e)}),s=o},63442:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__,m:()=>n});var l=a(16689),r=a.n(l);let n=(0,l.createContext)(null),__WEBPACK_DEFAULT_EXPORT__=function({children:e}){let[t,a]=(0,l.useState)(!1),[i,o]=(0,l.useState)([]),s=(0,l.useCallback)((e,t)=>{let a=[...i],l=a.find(t=>t.id===e);return l&&(l.selectedCount=t),o(a),a},[i]);return r().createElement(n.Provider,{value:{isOpen:t,allVariantProducts:i,setAllVariantProducts:o,onChangeQuantityItem:s,setIsOpen:a}},e)}},98878:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(93779),i=a(40727),o=a(2614),s=a(97336),c=a(9336),u=a(44236),d=a(84256),m=a(99767);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-shipping-simulation",formatter:t,title:a="Shipping",inputLabel:l="Postal Code",optionsLabel:f="Shipping options",idkPostalCodeLinkProps:E,onInput:g,onSubmit:h,onClear:p,location:_,options:v=[],displayClearButton:b=!1,errorMessage:y,postalCode:Z,...C}){let k=!!v&&v.length>0;return r().createElement("section",{"data-fs-shipping-simulation":!0,"data-fs-shipping-simulation-empty":k?"false":"true","data-testid":e,...C},r().createElement("h2",{"data-fs-shipping-simulation-title":!0},a),r().createElement(n.Z,{actionable:!0,error:y,id:`${e}-input-field`,label:l,value:Z,onInput:e=>g?.(e),onSubmit:()=>h?.(),onClear:()=>p?.(),displayClearButton:b}),r().createElement(i.Z,{href:"/","data-fs-shipping-simulation-link":!0,size:"small",...E},E?.children??r().createElement(r().Fragment,null,"I don't know my Postal Code",r().createElement(o.Z,{name:"ArrowSquareOut",width:20,height:20}))),k&&r().createElement(r().Fragment,null,r().createElement("header",{"data-fs-shipping-simulation-header":!0},r().createElement("h3",{"data-fs-shipping-simulation-subtitle":!0},f),r().createElement("p",{"data-fs-shipping-simulation-location":!0},_)),r().createElement(s.Z,null,r().createElement(c.Z,null,v.map(e=>r().createElement(u.Z,{key:e.carrier},r().createElement(d.Z,{align:"left"},e.carrier),r().createElement(d.Z,null,e.localizedEstimates),r().createElement(d.Z,{align:"right"},e.price&&r().createElement(m.Z,{formatter:t,value:e.price,SRText:"price"}))))))))}},77215:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(68373);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-slide-over",isOpen:t,direction:a="leftSide",size:l="full",fade:i="out",children:o,overlayProps:s,onDismiss:c,...u}){return r().createElement(n.Z,{"data-fs-modal":null,"data-fs-slide-over":!0,"data-fs-slide-over-direction":a,"data-fs-slide-over-size":l,"data-fs-slide-over-state":i,isOpen:t,onDismiss:c,testId:e,overlayProps:s,...u},o)}},45049:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(37041),i=a(2614);let __WEBPACK_DEFAULT_EXPORT__=({children:e,closeBtnProps:t={},onClose:a,...l})=>r().createElement("header",{"data-fs-slide-over-header":!0,...l},e,r().createElement(n.Z,{"data-fs-slide-over-header-icon":!0,"aria-label":"Close",icon:r().createElement(i.Z,{name:"X"}),onClick:a,...t}))}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=804,exports.ids=[804],exports.modules={58025:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{P:()=>sendAutocompleteClickEvent,Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(11933),c=r(64583),l=r(42174),i=r(80757),a=r(19994),s=r(18735),u=r(17894),p=r(31210),O=r(21284),b=r(20997),f=e([u,p]);[u,p]=f.then?(await f)():f;let y=["sort"];function ownKeys(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 _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function sendAutocompleteClickEvent({url:e,term:t,position:n,productId:o}){Promise.all([r.e(2880),r.e(1153)]).then(r.bind(r,81153)).then(({sendAnalyticsEvent:r})=>{r({name:"intelligent_search_autocomplete_click",params:{term:t,url:e,productId:o,position:n}})})}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{sort:t}=e,r=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,y),{values:{onSearchSelection:n,products:f,term:j,terms:_}}=(0,o.R)();return(0,b.jsxs)(c.Z,_objectSpread(_objectSpread({},r),{},{children:[b.jsx(s.Z,{sort:t}),b.jsx(u.Z,{sort:t}),b.jsx(l.Z,{children:_?.map(({value:e})=>b.jsx(i.Z,{term:j,suggestion:e,linkProps:{href:O.u({term:e,sort:t}),onClick:()=>{n?.(e,O.u({term:e,sort:t})),sendAutocompleteClickEvent({term:e,url:window.location.href})}}},e))}),b.jsx(a.Z,{children:f.map((e,t)=>b.jsx(p.Z,{product:e,index:t},e.id))})]}))};n()}catch(e){n(e)}})},92192:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{default:()=>o.Z,sendAutocompleteClickEvent:()=>o.P});var o=r(58025),c=e([o]);o=(c.then?(await c)():c)[0],n()}catch(e){n(e)}})},18735:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(11933),o=r(22701),c=r(9482),l=r(88118),i=r(20997);function ownKeys(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 _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let __WEBPACK_DEFAULT_EXPORT__=e=>{let t=Object.assign({},e),{values:{onSearchSelection:r}}=(0,n.R)(),{searchHistory:a,clearSearchHistory:s}=(0,l.Z)();return a.length?i.jsx(o.Z,_objectSpread(_objectSpread({title:"History",onClear:s},t),{},{children:a.map(e=>i.jsx(c.Z,{value:e.term,linkProps:{href:e.path,onClick:()=>r?.(e.term,e.path)}},e.term))})):null}},31210:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(11933),c=r(86035),l=r(69082),i=r(73454),a=r(76659),s=r(56087),u=r(5436),p=r(58025),O=r(20997),b=e([p]);p=(b.then?(await b)():b)[0];let f=["product","index"],y=["href","onClick"];function ownKeys(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 _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function _objectWithoutProperties(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{product:t,index:r}=e,n=_objectWithoutProperties(e,f),{values:{onSearchSelection:b}}=(0,o.R)(),j=(0,u.w)({product:t,selectedOffer:0,index:r}),{href:_,onClick:P}=j,d=_objectWithoutProperties(j,y),{isVariantOf:{name:h},image:[v],offers:{lowPrice:w,offers:[{listPrice:m}]}}=t,g=_objectSpread({href:_,onClick:()=>{P(),b?.(h,_),(0,p.P)({url:_,term:h,position:r,productId:t.isVariantOf.productGroupID??t.sku})}},d);return(0,O.jsxs)(c.Z,_objectSpread(_objectSpread({linkProps:g},n),{},{children:[O.jsx(l.Z,{children:O.jsx(a.Z,{src:v.url,alt:v.alternateName,width:56,height:56})}),O.jsx(i.Z,{title:h,price:{value:w,listPrice:m,formatter:s.P}})]}))};n()}catch(e){n(e)}})},17894:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(11933),c=r(43311),l=r(21287),i=r(21284),a=r(65154),s=r(20997),u=e([a]);a=(u.then?(await u)():u)[0];let p=["topTerms","sort"];function ownKeys(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 _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{topTerms:t=[],sort:r}=e,n=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,p),{values:{onSearchSelection:u}}=(0,o.R)(),{data:O}=(0,a.Z)(),b=(O?.search.suggestions.terms??t).slice(0,5);return 0===b.length?null:s.jsx(c.Z,_objectSpread(_objectSpread({title:"Top Search"},n),{},{children:b.map((e,t)=>s.jsx(l.Z,{value:e.value,index:t,linkProps:{href:(0,i.u)({term:e.value,sort:r}),onClick:()=>u?.(e.value,i.u({term:e.value,sort:r}))}},t))}))};n()}catch(e){n(e)}})},65154:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(21921),c=r(98385),l=r(84355),i=e([c]);c=(i.then?(await i)():i)[0];let a=o.M,__WEBPACK_DEFAULT_EXPORT__=function(){let{channel:e,locale:t}=(0,l.kP)(),{data:r,error:n}=(0,c.aM)(a,{term:"",selectedFacets:[{key:"channel",value:e??""},{key:"locale",value:t}]});return{data:r,error:n}};n()}catch(e){n(e)}})},55450:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(16689),o=r.n(n);let __WEBPACK_DEFAULT_EXPORT__=function({text:e,as:t}){let r=t??"span";return o().createElement(r,{"data-fs-sr-only":!0},e)}}};
|