@faststore/core 3.32.0 → 3.33.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 +27 -27
- 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 +3 -3
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/{2409.js → 1650.js} +2 -2
- package/.next/server/chunks/3117.js +2 -2
- package/.next/server/chunks/4289.js +3 -3
- package/.next/server/chunks/{3080.js → 7819.js} +2 -2
- package/.next/server/chunks/9594.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 +1 -1
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.js +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 +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 +1 -1
- package/.next/server/pages/_error.js.nft.json +1 -1
- package/.next/server/pages/account.js +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 +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/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 +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/static/{gfAtPTIXPKnCvUoAN_678 → a8pMv59FUKRCJcUKLEXkQ}/_buildManifest.js +1 -1
- package/.next/static/chunks/{3143.42eed67e0a406af4.js → 3143.1aaec7f4a9e83b8d.js} +1 -1
- package/.next/static/chunks/4625-4befc256b42bee75.js +1 -0
- package/.next/static/chunks/{6335-204d54a0bbb62580.js → 6335-2bf379c0870c440e.js} +1 -1
- package/.next/static/chunks/{CartSidebar.b92033a45cbd5b1e.js → CartSidebar.11e73132b1647eec.js} +1 -1
- package/.next/static/chunks/pages/[...slug]-f4fd6c8d7dc53f8f.js +1 -0
- package/.next/static/chunks/pages/{_app-ac95c1e9f24267d5.js → _app-e03902a5f8bdaf99.js} +1 -1
- package/.next/static/chunks/pages/{s-3d8b314cdd548782.js → s-ffb46af7067b79b1.js} +1 -1
- package/.next/static/chunks/{webpack-505ab169c34dcfac.js → webpack-1965210fb17803bd.js} +1 -1
- package/.next/trace +122 -121
- package/.turbo/turbo-build.log +11 -12
- package/.turbo/turbo-test.log +5 -6
- package/@generated/gql.ts +8 -0
- package/@generated/graphql.ts +62 -0
- package/@generated/persisted-documents.json +2 -1
- package/CHANGELOG.md +12 -0
- package/next-seo.config.ts +3 -0
- package/package.json +3 -2
- package/src/components/templates/ProductListingPage/ProductListing.tsx +24 -7
- package/src/components/templates/ProductListingPage/ProductListingPage.tsx +23 -3
- package/src/pages/[...slug].tsx +20 -2
- package/src/sdk/product/usePageProductsQuery.ts +36 -11
- package/src/sdk/product/useProductGalleryQuery.ts +75 -33
- package/src/sdk/product/useShouldFetchFirstPage.ts +60 -0
- package/src/sdk/redirects/index.ts +8 -0
- package/src/utils/fetchProductGallerySSR.ts +121 -0
- package/.next/server/chunks/1168.js +0 -1
- package/.next/static/chunks/5018-4af021881b60619a.js +0 -1
- package/.next/static/chunks/pages/[...slug]-fdede686dea7b909.js +0 -1
- /package/.next/static/{gfAtPTIXPKnCvUoAN_678 → a8pMv59FUKRCJcUKLEXkQ}/_ssgManifest.js +0 -0
|
@@ -3,7 +3,7 @@ import { useQuery } from 'src/sdk/graphql/useQuery'
|
|
|
3
3
|
import { useSession } from 'src/sdk/session'
|
|
4
4
|
import { useLocalizedVariables } from './useLocalizedVariables'
|
|
5
5
|
|
|
6
|
-
import { useSearch } from '@faststore/sdk'
|
|
6
|
+
import { type SearchState, useSearch } from '@faststore/sdk'
|
|
7
7
|
import type { Facet } from '@faststore/sdk/dist/types'
|
|
8
8
|
import type {
|
|
9
9
|
ClientManyProductsQueryQueryVariables,
|
|
@@ -65,6 +65,65 @@ type ProductGalleryQueryOptions = {
|
|
|
65
65
|
term: ClientManyProductsQueryQueryVariables['term']
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
type UpdateSearchParamsType = {
|
|
69
|
+
selectedFacets: Facet[]
|
|
70
|
+
updatedFuzzyFacetValue?: string | null
|
|
71
|
+
updatedOperatorFacetValue?: string | null
|
|
72
|
+
setState: (newState: SearchState) => false | void
|
|
73
|
+
state: SearchState
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* This function updates the search params state with the new fuzzy and operator values when they change
|
|
78
|
+
*
|
|
79
|
+
* @param selectedFacets - The current selected facets
|
|
80
|
+
* @param updatedFuzzyFacetValue - The new fuzzy value
|
|
81
|
+
* @param updatedOperatorFacetValue - The new operator value
|
|
82
|
+
* @param setState - The function to update the search state
|
|
83
|
+
* @param state - The current search state
|
|
84
|
+
*
|
|
85
|
+
* @returns void
|
|
86
|
+
*
|
|
87
|
+
*/
|
|
88
|
+
function updateSearchParamsState({
|
|
89
|
+
selectedFacets,
|
|
90
|
+
updatedFuzzyFacetValue,
|
|
91
|
+
updatedOperatorFacetValue,
|
|
92
|
+
setState,
|
|
93
|
+
state,
|
|
94
|
+
}: UpdateSearchParamsType) {
|
|
95
|
+
const oldFuzzyFacetValue = findFacetValue(selectedFacets, 'fuzzy')
|
|
96
|
+
const oldOperatorFacetValue = findFacetValue(selectedFacets, 'operator')
|
|
97
|
+
|
|
98
|
+
const shouldUpdateFuzzyFacetValue =
|
|
99
|
+
updatedFuzzyFacetValue && updatedFuzzyFacetValue !== oldFuzzyFacetValue
|
|
100
|
+
|
|
101
|
+
const shouldUpdateOperatorFacetValue =
|
|
102
|
+
updatedOperatorFacetValue &&
|
|
103
|
+
updatedOperatorFacetValue !== oldOperatorFacetValue
|
|
104
|
+
|
|
105
|
+
if (shouldUpdateFuzzyFacetValue || shouldUpdateOperatorFacetValue) {
|
|
106
|
+
// prevents duplicate old facets
|
|
107
|
+
const filteredFacets = selectedFacets.filter(
|
|
108
|
+
(facet) => facet.key !== 'fuzzy' && facet.key !== 'operator'
|
|
109
|
+
)
|
|
110
|
+
setState({
|
|
111
|
+
...state,
|
|
112
|
+
selectedFacets: [
|
|
113
|
+
...filteredFacets,
|
|
114
|
+
{
|
|
115
|
+
key: 'fuzzy',
|
|
116
|
+
value: updatedFuzzyFacetValue ?? oldFuzzyFacetValue ?? 'auto',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
key: 'operator',
|
|
120
|
+
value: updatedOperatorFacetValue ?? oldOperatorFacetValue ?? 'and',
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
})
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
68
127
|
export const findFacetValue = (
|
|
69
128
|
facets: Facet[],
|
|
70
129
|
searchParam: string
|
|
@@ -89,12 +148,12 @@ export const useProductGalleryQuery = ({
|
|
|
89
148
|
selectedFacets,
|
|
90
149
|
})
|
|
91
150
|
|
|
92
|
-
const fuzzyFacetValue = findFacetValue(selectedFacets, 'fuzzy')
|
|
93
|
-
const operatorFacetValue = findFacetValue(selectedFacets, 'operator')
|
|
94
|
-
|
|
95
151
|
const queryResult = useQuery<Query, Variables>(query, localizedVariables, {
|
|
96
|
-
onSuccess: (data) => {
|
|
97
|
-
|
|
152
|
+
onSuccess: (data: Query) => {
|
|
153
|
+
const updatedFuzzyFacetValue = data.search.metadata?.fuzzy
|
|
154
|
+
const updatedOperatorFacetValue = data.search.metadata?.logicalOperator
|
|
155
|
+
|
|
156
|
+
if (data && term && updatedFuzzyFacetValue && updatedOperatorFacetValue) {
|
|
98
157
|
import('@faststore/sdk').then(({ sendAnalyticsEvent }) => {
|
|
99
158
|
sendAnalyticsEvent<IntelligentSearchQueryEvent>({
|
|
100
159
|
name: 'intelligent_search_query',
|
|
@@ -102,41 +161,24 @@ export const useProductGalleryQuery = ({
|
|
|
102
161
|
locale,
|
|
103
162
|
term,
|
|
104
163
|
url: window.location.href,
|
|
105
|
-
logicalOperator:
|
|
164
|
+
logicalOperator: updatedOperatorFacetValue ?? 'and',
|
|
106
165
|
isTermMisspelled: data.search.metadata?.isTermMisspelled ?? false,
|
|
107
166
|
totalCount: data.search.products.pageInfo.totalCount,
|
|
108
167
|
},
|
|
109
168
|
})
|
|
110
169
|
})
|
|
111
170
|
}
|
|
112
|
-
},
|
|
113
|
-
})
|
|
114
171
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
...state,
|
|
123
|
-
selectedFacets: [
|
|
124
|
-
...selectedFacets,
|
|
125
|
-
{
|
|
126
|
-
key: 'fuzzy',
|
|
127
|
-
value: queryResult.data.search.metadata?.fuzzy ?? 'auto',
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
key: 'operator',
|
|
131
|
-
value: queryResult.data.search.metadata?.logicalOperator ?? 'and',
|
|
132
|
-
},
|
|
133
|
-
],
|
|
172
|
+
// Update the Search state (and URL) only if the values from fuzzy and operator changes
|
|
173
|
+
updateSearchParamsState({
|
|
174
|
+
selectedFacets,
|
|
175
|
+
updatedFuzzyFacetValue,
|
|
176
|
+
updatedOperatorFacetValue,
|
|
177
|
+
setState,
|
|
178
|
+
state,
|
|
134
179
|
})
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// The first result is not relevant, return null data to avoid rendering the page while the query is being re-fetched
|
|
138
|
-
return { ...queryResult, isValidating: true, data: null }
|
|
139
|
-
}
|
|
180
|
+
},
|
|
181
|
+
})
|
|
140
182
|
|
|
141
183
|
return queryResult
|
|
142
184
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { useRef } from 'react'
|
|
2
|
+
|
|
3
|
+
const FIVE_MINUTES = 5 * 60 * 1000
|
|
4
|
+
|
|
5
|
+
function hasTimeElapsed({
|
|
6
|
+
timestamp,
|
|
7
|
+
period = FIVE_MINUTES,
|
|
8
|
+
}: { timestamp: number; period: number }): boolean {
|
|
9
|
+
return Date.now() - timestamp > period
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface UseShouldFetchFirstPageParams {
|
|
13
|
+
page: number
|
|
14
|
+
generatedBuildTime: number
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* This hook determines if the first page (page 0) should be fetched.
|
|
19
|
+
* This is because the first page is initially fetched from the server side and injected into the cache for performance and SEO reasons.
|
|
20
|
+
* So this hook checks if the first page should be fetched again on the client side
|
|
21
|
+
* after 5 minutes since the build time (last fetch from the server side) or the last fetch time from the client side.
|
|
22
|
+
*
|
|
23
|
+
* @param page The page number
|
|
24
|
+
* @param generatedBuildTime The time the page was generated
|
|
25
|
+
* @returns boolean
|
|
26
|
+
*
|
|
27
|
+
**/
|
|
28
|
+
export function useShouldFetchFirstPage({
|
|
29
|
+
page,
|
|
30
|
+
generatedBuildTime,
|
|
31
|
+
}: UseShouldFetchFirstPageParams): boolean {
|
|
32
|
+
if (page !== 0) return false
|
|
33
|
+
|
|
34
|
+
const lastFetchTime = useRef<number | undefined>()
|
|
35
|
+
|
|
36
|
+
const passedFiveMinutesAfterBuild = hasTimeElapsed({
|
|
37
|
+
timestamp: generatedBuildTime,
|
|
38
|
+
period: FIVE_MINUTES,
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
const isFirstClientSideFetchFromFirstPage =
|
|
42
|
+
lastFetchTime.current === undefined
|
|
43
|
+
|
|
44
|
+
const passedFiveMinutesSinceLastFetch =
|
|
45
|
+
!isFirstClientSideFetchFromFirstPage &&
|
|
46
|
+
hasTimeElapsed({
|
|
47
|
+
timestamp: lastFetchTime.current!,
|
|
48
|
+
period: FIVE_MINUTES,
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
if (
|
|
52
|
+
passedFiveMinutesAfterBuild &&
|
|
53
|
+
(isFirstClientSideFetchFromFirstPage || passedFiveMinutesSinceLastFetch)
|
|
54
|
+
) {
|
|
55
|
+
lastFetchTime.current = Date.now()
|
|
56
|
+
return true
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return false
|
|
60
|
+
}
|
|
@@ -17,9 +17,17 @@ type RewriterResponse = {
|
|
|
17
17
|
|
|
18
18
|
const PERMANENT_STATUS = 308
|
|
19
19
|
|
|
20
|
+
const ASSET_FILE_REGEX = /\.(js|css|png|jpg|jpeg|svg|gif|webp|ico|json|map)$/i
|
|
21
|
+
|
|
20
22
|
export async function getRedirect({
|
|
21
23
|
pathname,
|
|
22
24
|
}: GetRedirectArgs): Promise<GetRedirectReturn> {
|
|
25
|
+
const isValidPath = !ASSET_FILE_REGEX.test(pathname)
|
|
26
|
+
|
|
27
|
+
if (!isValidPath) {
|
|
28
|
+
return null
|
|
29
|
+
}
|
|
30
|
+
|
|
23
31
|
try {
|
|
24
32
|
const redirectMatch = matcher({ pathname })
|
|
25
33
|
if (redirectMatch) {
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { SearchState } from '@faststore/sdk'
|
|
2
|
+
import { gql } from '@generated/gql'
|
|
3
|
+
import type {
|
|
4
|
+
ServerManyProductsQueryQuery,
|
|
5
|
+
ServerManyProductsQueryQueryVariables,
|
|
6
|
+
} from '@generated/graphql'
|
|
7
|
+
import { ITEMS_PER_PAGE } from 'src/constants'
|
|
8
|
+
import { execute } from 'src/server'
|
|
9
|
+
import storeConfig from '../../discovery.config'
|
|
10
|
+
|
|
11
|
+
export const query = gql(`
|
|
12
|
+
query ServerManyProductsQuery(
|
|
13
|
+
$first: Int!
|
|
14
|
+
$after: String
|
|
15
|
+
$sort: StoreSort!
|
|
16
|
+
$term: String!
|
|
17
|
+
$selectedFacets: [IStoreSelectedFacet!]!
|
|
18
|
+
$sponsoredCount: Int
|
|
19
|
+
) {
|
|
20
|
+
...ClientManyProducts
|
|
21
|
+
search(
|
|
22
|
+
first: $first
|
|
23
|
+
after: $after
|
|
24
|
+
sort: $sort
|
|
25
|
+
term: $term
|
|
26
|
+
selectedFacets: $selectedFacets
|
|
27
|
+
sponsoredCount: $sponsoredCount
|
|
28
|
+
) {
|
|
29
|
+
products {
|
|
30
|
+
pageInfo {
|
|
31
|
+
totalCount
|
|
32
|
+
}
|
|
33
|
+
edges {
|
|
34
|
+
node {
|
|
35
|
+
...ProductSummary_product
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
metadata {
|
|
40
|
+
...SearchEvent_metadata
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
`)
|
|
45
|
+
|
|
46
|
+
export async function fetchServerManyProducts({
|
|
47
|
+
itemsPerPage = ITEMS_PER_PAGE,
|
|
48
|
+
sort = 'score_desc',
|
|
49
|
+
term = '',
|
|
50
|
+
selectedFacets = [],
|
|
51
|
+
sponsoredCount = 3,
|
|
52
|
+
filter = true,
|
|
53
|
+
}: {
|
|
54
|
+
itemsPerPage: number
|
|
55
|
+
sort: SearchState['sort']
|
|
56
|
+
term: string
|
|
57
|
+
selectedFacets?: {
|
|
58
|
+
key: string
|
|
59
|
+
value: string
|
|
60
|
+
}[]
|
|
61
|
+
sponsoredCount?: number
|
|
62
|
+
filter?: boolean
|
|
63
|
+
}) {
|
|
64
|
+
let { channel, locale } = storeConfig.session
|
|
65
|
+
|
|
66
|
+
if (filter) {
|
|
67
|
+
const { hasOnlyDefaultSalesChannel, ...filteredChannel } =
|
|
68
|
+
JSON.parse(channel)
|
|
69
|
+
channel = JSON.stringify(filteredChannel)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
try {
|
|
73
|
+
const variables: ServerManyProductsQueryQueryVariables = {
|
|
74
|
+
first: itemsPerPage,
|
|
75
|
+
after: (itemsPerPage * 0).toString(),
|
|
76
|
+
sort,
|
|
77
|
+
term,
|
|
78
|
+
selectedFacets: [
|
|
79
|
+
...selectedFacets,
|
|
80
|
+
{ key: 'channel', value: channel ?? '' },
|
|
81
|
+
{ key: 'locale', value: locale },
|
|
82
|
+
],
|
|
83
|
+
sponsoredCount,
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const result = await execute<
|
|
87
|
+
ServerManyProductsQueryQueryVariables,
|
|
88
|
+
ServerManyProductsQueryQuery
|
|
89
|
+
>({
|
|
90
|
+
variables,
|
|
91
|
+
operation: query,
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
// The resultVariables is used as cache key in useCreateUseGalleryPage hook of frontend, that's why it is passed to the front as props.
|
|
95
|
+
// The facets order here is important, although we use deepEquals in frontend, this order can influence the key of the cache mechanism.
|
|
96
|
+
const resultVariables = {
|
|
97
|
+
...variables,
|
|
98
|
+
selectedFacets: [
|
|
99
|
+
...selectedFacets,
|
|
100
|
+
{
|
|
101
|
+
key: 'fuzzy',
|
|
102
|
+
value: result.data.search.metadata?.fuzzy ?? 'auto',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
key: 'operator',
|
|
106
|
+
value: result.data.search.metadata?.logicalOperator ?? 'and',
|
|
107
|
+
},
|
|
108
|
+
{ key: 'channel', value: channel ?? '' },
|
|
109
|
+
{ key: 'locale', value: locale },
|
|
110
|
+
],
|
|
111
|
+
sponsoredCount,
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return [result.data, resultVariables] as [
|
|
115
|
+
ServerManyProductsQueryQuery,
|
|
116
|
+
ServerManyProductsQueryQueryVariables,
|
|
117
|
+
]
|
|
118
|
+
} catch (error) {
|
|
119
|
+
console.error(error)
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=1168,exports.ids=[1168],exports.modules={21168:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>_app});var o=r(16652),a=r(74444),n=r(16689);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}let usePageViewEvent=e=>{let t=(0,n.useCallback)(()=>{Promise.all([r.e(7337),r.e(7675),r.e(2880),r.e(1153)]).then(r.bind(r,81153)).then(({sendAnalyticsEvent:t})=>{t({name:"page_view",params:function(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}({page_title:document.title,page_location:location.href,send_page_view:!0},e)})})},[e]),o=(0,a.useRouter)();return(0,n.useEffect)(()=>{t()},[o,t]),{sendPageViewEvent:t}};var s=r(20997);let src_Layout=function({children:e}){return usePageViewEvent(e?.props),s.jsx(s.Fragment,{children:e})};var l=r(28529),c=r(11506),i=r.n(c);let analytics=()=>((0,l.W)(e=>{window.dataLayer.push({ecommerce:null}),window.dataLayer.push({event:e.name,ecommerce:e.params}),r(73982)(`./${i().platform}`).then(({default:t})=>{t(e)})}),null),getReloads=()=>Number(window.sessionStorage.getItem("store:reloads")??"0"),setReloads=e=>window.sessionStorage.setItem("store:reloads",`${e}`),canRecover=()=>2>getReloads(),isFrameworkLevelError=e=>e?.name==="ChunkLoadError";let ErrorBoundary=class ErrorBoundary extends n.Component{constructor(...e){super(...e),function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(this,"state",{hasError:!1,error:null})}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){if(console.error(`React Error: ${e.message} ${t.componentStack}`),window.location.pathname.startsWith("/404")||window.location.pathname.startsWith("/500"))return;let r=encodeURIComponent(window.location.pathname),o=e?.extensions?.exception?.status===404;isFrameworkLevelError(e)&&canRecover()?(setReloads(getReloads()+1),window.location.reload()):o?window.location.href=`/404?from=${r}`:window.location.href=`/500?from=${r}&errorId=unknown`}render(){return this.state.hasError?null:this.props.children}};let p=new Date().toISOString(),u={norobots:i().experimental.noRobots,dangerouslySetAllPagesToNoFollow:i().experimental.nofollow,dangerouslySetAllPagesToNoIndex:i().experimental.noindex,additionalMetaTags:[{name:"generated-at",content:p}]};r(7940),r(24832),r(96699);var d=r(16641);function _app_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 _app_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_app_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)):_app_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let _app=function({Component:e,pageProps:t}){return(0,s.jsxs)(ErrorBoundary,{children:[s.jsx(d.DefaultSeo,_app_objectSpread({},u)),s.jsx(analytics,{}),s.jsx(o.Z,{children:s.jsx(src_Layout,{children:s.jsx(e,_app_objectSpread({},t))})})]})}},96699:()=>{},24832:()=>{},7940:()=>{},16652:(e,t,r)=>{"use strict";r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__,l:()=>useUI});var o=r(16689),a=r.n(o);let reducer=(e,t)=>{let{type:r}=t;switch(r){case"open":{let{payload:r}=t;return document.body.classList.add("no-scroll"),{...e,[r]:!0}}case"close":{let{payload:r}=t;return document.body.classList.remove("no-scroll"),{...e,[r]:!1}}case"pushToast":{let r=e.toasts.some(e=>e.message===t.payload.message&&e.status===t.payload.status);if(r)return e;return{...e,toasts:[...e.toasts,t.payload]}}case"popToast":return{...e,toasts:e.toasts.slice(1)};default:throw Error(`Action ${r} not implemented`)}},initializer=()=>({cart:!1,modal:!1,navbar:!1,filter:!1,toasts:[]}),n=(0,o.createContext)(void 0);function useUI(){let e=(0,o.useContext)(n);if(void 0===e)throw Error("Missing UI context on React tree");return e}let __WEBPACK_DEFAULT_EXPORT__=function({children:e}){let[t,r]=(0,o.useReducer)(reducer,void 0,initializer),s=(0,o.useMemo)(()=>({openFilter:()=>r({type:"open",payload:"filter"}),closeFilter:()=>r({type:"close",payload:"filter"}),openNavbar:()=>r({type:"open",payload:"navbar"}),closeNavbar:()=>r({type:"close",payload:"navbar"}),openCart:()=>r({type:"open",payload:"cart"}),closeCart:()=>r({type:"close",payload:"cart"}),openModal:()=>r({type:"open",payload:"modal"}),closeModal:()=>r({type:"close",payload:"modal"}),pushToast:e=>r({type:"pushToast",payload:e}),popToast:()=>r({type:"popToast"})}),[]),l=(0,o.useMemo)(()=>({...t,...s}),[s,t]);return a().createElement(n.Provider,{value:l},e)}},73982:(e,t,r)=>{var o={"./vtex":[63675,3979,3675],"./vtex/":[63675,3979,3675],"./vtex/index":[63675,3979,3675],"./vtex/index.ts":[63675,3979,3675],"./vtex/rc":[15146,5146],"./vtex/rc.ts":[15146,5146],"./vtex/search":[43979,3979],"./vtex/search.ts":[43979,3979]};function webpackAsyncContext(e){if(!r.o(o,e))return Promise.resolve().then(()=>{var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=o[e],a=t[0];return Promise.all(t.slice(1).map(r.e)).then(()=>r(a))}webpackAsyncContext.keys=()=>Object.keys(o),webpackAsyncContext.id=73982,e.exports=webpackAsyncContext},28529:(e,t,r)=>{"use strict";r.d(t,{W:()=>useAnalyticsEvent});var o=r(16689),a=r(14950);let useAnalyticsEvent=e=>{let t=(0,o.useCallback)(t=>{try{if(t.data.name!==a.vi)return;e((0,a.Wg)(t.data))}catch(e){console.error("Something went wrong while running Analytics handler")}},[e]);(0,o.useEffect)(()=>(window.addEventListener("message",t),()=>window.removeEventListener("message",t)),[t])}},14950:(e,t,r)=>{"use strict";r.d(t,{Mi:()=>o,Wg:()=>unwrap,re:()=>wrap,vi:()=>a});let o="store:",a="AnalyticsEvent",wrap=e=>({name:a,params:{...e,name:`${o}${e.name}`}}),unwrap=e=>({...e.params,name:e.params.name.slice(o.length,e.params.name.length)})}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5018],{6305:function(e,t,r){"use strict";r.d(t,{j:function(){return O}});var n=r(4424),o={section:"Breadcrumb"},a=r(7264),l=r(4194),i=r(9836),c=r(6220),s=r(6999),d=r(2614),u=r(6349),p=r(1972),f=r(6519),b=r(1549),v=["icon","alt"];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){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var y={Breadcrumb:(0,l.memo)(e=>{var t,{icon:r,alt:n="Go to homepage"}=e,o=(0,u.Z)(e,v),{Breadcrumb:a,Icon:l}=(0,c.r3)();return(0,b.jsx)(p.Z,_objectSpread(_objectSpread({homeLink:(0,b.jsx)(f.Z,{"data-fs-breadcrumb-link":!0,"data-fs-breadcrumb-link-home":!0,"aria-label":n,href:"/",prefetch:!1,children:(0,b.jsx)(l.Component,_objectSpread(_objectSpread({width:18,height:18,weight:"bold"},l.props),{},{name:null!==(t=null!=r?r:l.props.name)&&void 0!==t?t:"Home"}))}),renderLink:e=>{var{itemProps:{item:t,name:r}}=e;return(0,b.jsx)(f.Z,{"data-fs-breadcrumb-link":!0,href:t,prefetch:!1,children:r})}},a.props),o))}),Icon:d.Z},m=r(3747),h=r.n(m);function Breadcrumb_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}var j=(0,a.B)("Breadcrumb",function(e){var t,r,o,a,l,d,u,p,f,v=Object.assign({},e),{Breadcrumb:y}=(0,c.r3)(),m=(0,s.qt)(),j=(0,s.OJ)(m)?null==m?void 0:null===(t=m.data)||void 0===t?void 0:null===(r=t.collection)||void 0===r?void 0:null===(o=r.seo)||void 0===o?void 0:o.title:"All Products",g=(0,s.tS)(m)?null==m?void 0:null===(a=m.data)||void 0===a?void 0:null===(l=a.product)||void 0===l?void 0:null===(d=l.breadcrumbList)||void 0===d?void 0:d.itemListElement:(0,s.OJ)(m)?null==m?void 0:null===(u=m.data)||void 0===u?void 0:null===(p=u.collection)||void 0===p?void 0:null===(f=p.breadcrumbList)||void 0===f?void 0:f.itemListElement:[{item:"/",name:j,position:1}];return(0,b.jsx)(i.Z,{className:"".concat(h().section," section-breadcrumb"),children:(0,b.jsx)(y.Component,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Breadcrumb_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Breadcrumb_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({breadcrumbList:g},v))})},y),g=(0,l.memo)(j);function OverriddenDefaultBreadcrumb_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 OverriddenDefaultBreadcrumb_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultBreadcrumb_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultBreadcrumb_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var O=(0,a.v)(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread({},o),o),{},{Section:g}))},4816:function(e,t,r){"use strict";r.d(t,{V:function(){return m}});var n=r(4424),o={section:"Hero"},a=r(7264),l=r(6659),i=r(6220),c=r(9836),s=r(3767),d=r.n(s),u=r(8957),p=r(6035),f=r(7154),b={Hero:u.Z,HeroImage:p.Z,HeroHeader:f.Z},v=r(1549);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){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var y=(0,a.B)("Hero",e=>{var t,r,{link:n,title:o,subtitle:a,image:s,variant:u,colorVariant:p,icon:f}=e,{Hero:b,HeroImage:y,HeroHeader:m}=(0,i.r3)();return(0,v.jsx)(c.Z,{className:"".concat(d().section," section-hero"),children:(0,v.jsxs)(b.Component,_objectSpread(_objectSpread({},b.props),{},{variant:null!==(t=null!=u?u:b.props.variant)&&void 0!==t?t:"primary",colorVariant:null!==(r=null!=p?p:b.props.colorVariant)&&void 0!==r?r:"main",children:[(0,v.jsx)(y.Component,_objectSpread(_objectSpread({},y.props),{},{children:(0,v.jsx)(l.Z,{loading:"eager",src:s.src,alt:s.alt,width:360,height:240,sizes:"(max-width: 412px) 40vw, (max-width: 768px) 90vw, 50vw",priority:!0})})),(0,v.jsx)(m.Component,_objectSpread({title:o,subtitle:a,link:null==n?void 0:n.url,linkText:null==n?void 0:n.text,linkTargetBlank:null==n?void 0:n.linkTargetBlank,icon:f},m.props))]}))})},b);function OverriddenDefaultHero_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 OverriddenDefaultHero_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultHero_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultHero_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var m=(0,a.v)(OverriddenDefaultHero_objectSpread(OverriddenDefaultHero_objectSpread(OverriddenDefaultHero_objectSpread({},o),o),{},{Section:y}))},396:function(e,t,r){"use strict";r.d(t,{f:function(){return J}});var n=r(4424),o={section:"ProductGallery"},a=r(7264),l=r(6349),i=r(9029),c=r(7292),s=r(4194),d=r(6652),u=r(6202),p=r(1549);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){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var f={price_desc:"Price, descending",price_asc:"Price, ascending",orders_desc:"Top sales",name_asc:"Name, A-Z",name_desc:"Name, Z-A",release_desc:"Release date",discount_desc:"Discount",score_desc:"Relevance"},b=Object.keys(f),Sort_Sort=function(e){var{label:t="Sort by",options:r=f}=e,{state:n,setState:o}=(0,i.R)(),a=Object.keys(r).reduce((e,t)=>{var n;return e[t]=null!==(n=r[t])&&void 0!==n?n:f[t],e},{});return(0,p.jsx)(u.Z,{id:"sort-select",className:"sort / text__title-mini-alt",label:t,options:a,onChange:e=>{var t=b[e.target.selectedIndex];o(_objectSpread(_objectSpread({},n),{},{sort:t,page:0}))},value:n.sort,testId:"search-sort"})},v=r(3125),y=r(7281),m=r.n(y),h=r(6220),j=r(6999),g=r(1921),O=r(4174),P=r(431),w=r(4750),_=r(8385),S=["cache"],prefetchQuery=(e,t,r)=>{var{cache:n}=r,o=(0,l.Z)(r,S),a=(0,_.km)(e.__meta__.operationName,t);n.get(a)||(0,P.j)(a,(0,w.W)(e,t,o))},k=r(6616);function useProductsPrefetch_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}var x=g.gU,useProductsQueryPrefetch=(e,t)=>{var r=(0,k.y)(e),{cache:o}=(0,O.kY)();return(0,s.useCallback)(()=>prefetchQuery(x,r,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?useProductsPrefetch_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):useProductsPrefetch_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({cache:o},t)),[r,o,t])},useProductsPrefetch=e=>{var{itemsPerPage:t,state:{sort:r,term:n,selectedFacets:o}}=(0,i.R)(),a=useProductsQueryPrefetch({first:t,after:(t*(null!=e?e:0)).toString(),sort:r,term:null!=n?n:"",selectedFacets:o});(0,s.useEffect)(()=>{null!==e&&a()},[e,a])},useDelayedFacets=e=>{var t=(0,s.useRef)([]);return(0,s.useMemo)(()=>{if(e){var r;t.current=null===(r=e.search)||void 0===r?void 0:r.facets}return t.current},[e,t])},E=r(1341),useDelayedPagination=e=>{var t=(0,E.h)(e),{0:r,1:n}=(0,s.useState)(()=>({next:!1,prev:!1}));return(0,s.useEffect)(()=>{n(t)},[t]),r},D=r(9664),Z=["value"];function useFilter_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 useFilter_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?useFilter_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):useFilter_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var reducer=(e,t)=>{var{expanded:r,selected:n}=e,{type:o,payload:a}=t;switch(o){case"toggleExpanded":return r.has(a)?r.delete(a):r.add(a),useFilter_objectSpread(useFilter_objectSpread({},e),{},{expanded:new Set(r)});case"selectFacets":if(a!==n)return useFilter_objectSpread(useFilter_objectSpread({},e),{},{selected:a});break;case"toggleFacet":return useFilter_objectSpread(useFilter_objectSpread({},e),{},{selected:(0,D.wB)(e.selected,a)});case"setFacet":return useFilter_objectSpread(useFilter_objectSpread({},e),{},{selected:(0,D.uL)(e.selected,a.facet,a.unique)});default:throw Error("Action ".concat(o," not implemented"))}return e},useFilter=e=>{var{state:{selectedFacets:t}}=(0,i.R)(),{0:{selected:r,expanded:n},1:o}=(0,s.useReducer)(reducer,null,()=>({expanded:new Set([]),selected:t})),a=(0,s.useMemo)(()=>r.reduce((e,t)=>{var r;return e.has(t.key)||e.set(t.key,new Map),null===(r=e.get(t.key))||void 0===r||r.set(t.value,t),e},new Map),[r]),c=(0,s.useMemo)(()=>e.map(e=>"StoreFacetBoolean"===e.__typename?useFilter_objectSpread(useFilter_objectSpread({},e),{},{values:e.values.map(t=>{var r,{value:n}=t;return useFilter_objectSpread(useFilter_objectSpread({},(0,l.Z)(t,Z)),{},{value:n,selected:!!(null===(r=a.get(e.key))||void 0===r?void 0:r.has(n))})})}):e),[e,a]);return(0,s.useEffect)(()=>{o({type:"selectFacets",payload:t})},[t]),{facets:c,selected:r,expanded:n,dispatch:o}},G=r(6259);function ProductGallery_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 ProductGallery_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductGallery_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductGallery_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var F=(0,s.lazy)(()=>r.e(3143).then(r.bind(r,3143))),C=m()(()=>r.e(866).then(r.bind(r,2316)),{loadableGenerated:{webpack:()=>[2316]}}),B=(0,p.jsx)(v.Z,{loading:!0}),ProductGallery_ProductGallery=function(e){var t,r,n,o,a,l,u,f,b,v,y,m,g,O,P,w,_,S,k,x,{title:E,searchTerm:D,totalCount:Z,searchTermLabel:K,totalCountLabel:R,filter:L,previousPageButton:z,loadMorePageButton:N,sortBySelector:I,productCard:M}=e,{FilterButtonSkeleton:H,FilterIcon:A,LinkButtonNext:q,LinkButtonPrev:T,MobileFilterButton:V,PrevIcon:$,ResultsCountSkeleton:U,SortSkeleton:J,__experimentalFilterDesktop:Q,__experimentalFilterSlider:Y}=(0,h.r3)(),{openFilter:W,filter:X}=(0,d.l)(),{pages:ee,addNextPage:et,addPrevPage:er,itemsPerPage:en}=(0,i.R)(),eo=(0,j.qt)(),ea=null==eo?void 0:eo.data,el=null!==(t=useDelayedFacets(ea))&&void 0!==t?t:[],{next:ei,prev:ec}=useDelayedPagination(Z),{isDesktop:es}=(0,G.Z)();useProductsPrefetch(ec?ec.cursor:null),useProductsPrefetch(ei?ei.cursor:null);var ed=!!(null==ea?void 0:null===(r=ea.search)||void 0===r?void 0:r.facets),eu=!!(null==ea?void 0:null===(n=ea.search)||void 0===n?void 0:n.products),ep=useFilter(el);return(0,p.jsxs)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:[D&&(0,p.jsx)("header",{"data-fs-product-listing-search-term":!0,"data-fs-content":"product-gallery",children:(0,p.jsxs)("h1",{children:[K," ",(0,p.jsx)("span",{children:D})]})}),(0,p.jsxs)("div",{"data-fs-product-listing-content-grid":!0,"data-fs-content":"product-gallery",children:[es&&(0,p.jsx)("div",{"data-fs-product-listing-filters":!0,children:(0,p.jsx)(C,{loading:!ed,children:ed&&(null==el?void 0:el.length)>0&&(0,p.jsx)("div",{className:"hidden-mobile",children:(0,p.jsx)(Q.Component,ProductGallery_objectSpread(ProductGallery_objectSpread(ProductGallery_objectSpread({},Q.props),ep),{},{title:null==L?void 0:L.title}))})})}),!es&&X&&(0,p.jsx)("div",{"data-fs-product-listing-filters":!0,children:(0,p.jsx)(Y.Component,ProductGallery_objectSpread(ProductGallery_objectSpread(ProductGallery_objectSpread({},Y.props),ep),{},{title:null==L?void 0:L.title,clearButtonLabel:null==L?void 0:null===(o=L.mobileOnly)||void 0===o?void 0:o.clearButtonLabel,applyButtonLabel:null==L?void 0:null===(a=L.mobileOnly)||void 0===a?void 0:a.applyButtonLabel}))}),(0,p.jsx)("div",{"data-fs-product-listing-results-count":!0,"data-count":Z,children:(0,p.jsx)(U.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-results-count-skeleton":!0,size:{width:"100%",height:"1.5rem"}},U.props),{},{loading:!eu,children:(0,p.jsxs)("h2",{"data-testid":"total-product-count",children:[Z," ",R]})}))}),(0,p.jsxs)("div",{"data-fs-product-listing-sort":!0,children:[(0,p.jsx)(J.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-sort-skeleton":!0,size:{width:"auto",height:"1.5rem"}},J.props),{},{loading:!eu,children:(0,p.jsx)(Sort_Sort,{label:null==I?void 0:I.label,options:null==I?void 0:I.options})})),(0,p.jsx)(H.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-filter-button-skeleton":!0,size:{width:"6rem",height:"1.5rem"}},H.props),{},{loading:!ed,children:ed&&(null==el?void 0:el.length)>0&&(0,p.jsx)(V.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({variant:"tertiary","data-testid":"open-filter-button",icon:(0,p.jsx)(A.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({width:16,height:16},A.props),{},{name:null!==(l=null==L?void 0:null===(u=L.mobileOnly)||void 0===u?void 0:null===(f=u.filterButton)||void 0===f?void 0:null===(b=f.icon)||void 0===b?void 0:b.icon)&&void 0!==l?l:A.props.name,"aria-label":null!==(v=null==L?void 0:null===(y=L.mobileOnly)||void 0===y?void 0:null===(m=y.filterButton)||void 0===m?void 0:null===(g=m.icon)||void 0===g?void 0:g.alt)&&void 0!==v?v:A.props["aria-label"]})),iconPosition:"left"},V.props),{},{onClick:W,children:null==L?void 0:null===(O=L.mobileOnly)||void 0===O?void 0:null===(P=O.filterButton)||void 0===P?void 0:P.label}))}))]}),(0,p.jsxs)("div",{"data-fs-product-listing-results":!0,children:[!1!==ec&&(0,p.jsxs)("div",{"data-fs-product-listing-pagination":"top",children:[(0,p.jsx)(c.PB,{additionalLinkTags:[{rel:"prev",href:ec.link}]}),(0,p.jsx)(T.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({rel:"prev",variant:"secondary",iconPosition:"left",icon:(0,p.jsx)($.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({width:16,height:16,weight:"bold"},$.props),{},{name:null!==(w=null==z?void 0:null===(_=z.icon)||void 0===_?void 0:_.icon)&&void 0!==w?w:$.props.name,"aria-label":null!==(S=null!==(k=null==z?void 0:null===(x=z.icon)||void 0===x?void 0:x.alt)&&void 0!==k?k:null==z?void 0:z.label)&&void 0!==S?S:$.props["aria-label"]}))},T.props),{},{onClick:e=>{e.currentTarget.blur(),e.preventDefault(),er()},href:ec.link,children:null==z?void 0:z.label}))]}),eu?(0,p.jsx)(s.Suspense,{fallback:B,children:ee.map(e=>(0,p.jsx)(F,{page:e,title:E,productCard:M,itemsPerPage:en,firstPage:ee[0]},"gallery-page-".concat(e)))}):B,!1!==ei&&(0,p.jsxs)("div",{"data-fs-product-listing-pagination":"bottom",children:[(0,p.jsx)(c.PB,{additionalLinkTags:[{rel:"next",href:ei.link}]}),(0,p.jsx)(q.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({testId:"show-more",rel:"next",variant:"secondary"},q.props),{},{onClick:e=>{e.currentTarget.blur(),e.preventDefault(),et()},href:ei.link,children:null==N?void 0:N.label}))]})]})]})]})},K=r(9836),R=r(5739),L=r.n(R),z=r(3339),N=r(2614),I=r(792),M=r(3922),H=m()(()=>r.e(6076).then(r.bind(r,3684)),{loadableGenerated:{webpack:()=>[3684]}}),A=m()(()=>r.e(9130).then(r.bind(r,9130)),{loadableGenerated:{webpack:()=>[9130]}}),q=m()(()=>r.e(9).then(r.bind(r,9)),{loadableGenerated:{webpack:()=>[9]}}),T=m()(()=>r.e(4746).then(r.bind(r,4746)),{loadableGenerated:{webpack:()=>[4746]}}),V={MobileFilterButton:z.Z,FilterIcon:N.Z,PrevIcon:N.Z,ResultsCountSkeleton:I.Z,SortSkeleton:I.Z,FilterButtonSkeleton:I.Z,LinkButtonPrev:M.Z,LinkButtonNext:M.Z,__experimentalFilterDesktop:q,__experimentalFilterSlider:T,__experimentalProductCard:H,__experimentalEmptyGallery:A},$=["emptyGallery"];function ProductGallery_ProductGallery_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 ProductGallery_ProductGallery_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductGallery_ProductGallery_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductGallery_ProductGallery_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var U=(0,a.B)("ProductGallery",function(e){var t,r,n,o,a,i,c,s,d,u,f,b,{emptyGallery:v}=e,y=(0,l.Z)(e,$),{__experimentalEmptyGallery:m}=(0,h.r3)(),g=(0,j.qt)(),[O,P]=(0,j.En)(g)?[null==g?void 0:null===(t=g.data)||void 0===t?void 0:t.title,null==g?void 0:null===(r=g.data)||void 0===r?void 0:r.searchTerm]:(0,j.OJ)(g)?[null==g?void 0:null===(n=g.data)||void 0===n?void 0:null===(o=n.collection)||void 0===o?void 0:null===(a=o.seo)||void 0===a?void 0:a.title]:[""],w=null!==(i=null==g?void 0:null===(c=g.data)||void 0===c?void 0:null===(s=c.search)||void 0===s?void 0:null===(d=s.products)||void 0===d?void 0:null===(u=d.pageInfo)||void 0===u?void 0:u.totalCount)&&void 0!==i?i:0;return null!=g&&null!==(f=g.data)&&void 0!==f&&null!==(b=f.search)&&void 0!==b&&b.products&&0===w?(0,p.jsx)(K.Z,{className:"".concat(L().section," section-product-gallery"),children:(0,p.jsx)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:(0,p.jsx)(m.Component,ProductGallery_ProductGallery_objectSpread({},v))})}):(0,p.jsx)(K.Z,{className:"".concat(L().section," section-product-gallery layout__section"),children:(0,p.jsx)(ProductGallery_ProductGallery,ProductGallery_ProductGallery_objectSpread({title:O,searchTerm:P,totalCount:w},y))})},V);function OverriddenDefaultProductGallery_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 OverriddenDefaultProductGallery_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultProductGallery_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultProductGallery_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var J=(0,a.v)(OverriddenDefaultProductGallery_objectSpread(OverriddenDefaultProductGallery_objectSpread(OverriddenDefaultProductGallery_objectSpread({},o),o),{},{Section:U}))},938:function(e,t,r){"use strict";var n=r(792),o=r(1549);t.Z=function(e){var{bordered:t,sectioned:r,displayButton:a,aspectRatio:l=1,variant:i="default"}=e;return(0,o.jsxs)("div",{"data-fs-product-card-skeleton":!0,"data-fs-product-card-skeleton-variant":i,"data-fs-product-card-skeleton-bordered":t,"data-fs-product-card-skeleton-sectioned":r,children:[(0,o.jsx)("div",{"data-fs-product-card-skeleton-image":!0,style:{"--fs-product-card-skeleton-image-aspect-ratio":l},children:(0,o.jsx)(n.Z,{size:{width:"100%",height:"100%"}})}),(0,o.jsxs)("div",{"data-fs-product-card-skeleton-content":!0,children:[(0,o.jsx)(n.Z,{"data-fs-product-card-skeleton-text":!0,size:{width:"90%",height:"1.5rem"}}),(0,o.jsx)(n.Z,{"data-fs-product-card-skeleton-text":!0,size:{width:"70%",height:"1.5rem"}}),(0,o.jsx)(n.Z,{"data-fs-product-card-skeleton-badge":!0,size:{width:"6rem",height:"2rem"},border:"pill"}),a&&(0,o.jsx)(n.Z,{"data-fs-product-card-skeleton-button":!0,size:{width:"6rem",height:"2rem"},style:{columnGap:".75rem"}})]})]})}},3125:function(e,t,r){"use strict";var n=r(2218),o=r(938),a=r(1549);t.Z=function(e){var{children:t,aspectRatio:r,loading:l=!0}=e;return l?(0,a.jsx)("ul",{"data-fs-product-grid":!0,children:Array.from({length:n.g},(e,t)=>(0,a.jsx)("li",{children:(0,a.jsx)(o.Z,{aspectRatio:r,bordered:!0})},String(t)))}):(0,a.jsx)(a.Fragment,{children:t})}},2218:function(e,t,r){"use strict";r.d(t,{K:function(){return o},g:function(){return n}});var n=12,o=5},6999:function(e,t,r){"use strict";r.d(t,{En:function(){return isSearchPage},OJ:function(){return isPLP},al:function(){return usePDP},qt:function(){return usePage},tS:function(){return isPDP}});var n=r(4194),o=r(1549),isPDP=e=>{var t,r,n,o;return(null==e?void 0:null===(t=e.data)||void 0===t?void 0:null===(r=t.product)||void 0===r?void 0:r.sku)!=void 0&&(null==e?void 0:null===(n=e.data)||void 0===n?void 0:null===(o=n.product)||void 0===o?void 0:o.sku)!=null},isPLP=e=>{var t,r,n,o,a,l;return(null==e?void 0:null===(t=e.data)||void 0===t?void 0:null===(r=t.collection)||void 0===r?void 0:r.seo)!=void 0&&(null==e?void 0:null===(n=e.data)||void 0===n?void 0:null===(o=n.collection)||void 0===o?void 0:o.seo)!=null&&(null==e?void 0:null===(a=e.data)||void 0===a?void 0:null===(l=a.collection)||void 0===l?void 0:l.sku)==void 0},isSearchPage=e=>{var t,r;return void 0===e||(null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.title)!=void 0||(null==e?void 0:null===(r=e.data)||void 0===r?void 0:r.searchTerm)!=void 0},a=(0,n.createContext)(null);function usePage(){var{context:e}=(0,n.useContext)(a);if(null==e)throw Error("Missing Overrides context on React tree");return e}var usePDP=()=>usePage();t.ZP=function(e){var{context:t,children:r}=e,l=(0,n.useMemo)(()=>({context:t}),[t]);return(0,o.jsx)(a.Provider,{value:l,children:r})}},6616:function(e,t,r){"use strict";r.d(t,{y:function(){return useLocalizedVariables}});var n=r(4194),o=r(2218),a=r(4355),toArray=e=>Array.isArray(e)?e:e?[e]:[],useLocalizedVariables=e=>{var{first:t,after:r,sort:l,term:i,selectedFacets:c,sponsoredCount:s}=e,{channel:d,locale:u}=(0,a.kP)();return(0,n.useMemo)(()=>{var e=toArray(c);return{first:null!=t?t:o.K,after:null!=r?r:"0",sort:null!=l?l:"score_desc",term:null!=i?i:"",selectedFacets:[...e,{key:"channel",value:null!=d?d:""},{key:"locale",value:u}],sponsoredCount:null!=s?s:3}},[c,t,r,l,i,d,u,s])}},4308:function(e,t,r){"use strict";r.d(t,{Bj:function(){return c},Y_:function(){return useCreateUseGalleryPage},__:function(){return useGalleryPage}});var n=r(1921),o=r(9029),a=r(4194),l=r(8385),i=r(6616),c=(0,a.createContext)(e=>({data:null})),useGalleryPage=e=>{var t=(0,a.useContext)(c);if(!t)throw Error("Missing UseGalleryPageContext on React tree");return t(e)},s=n.gU,getKey=e=>JSON.stringify(e),useCreateUseGalleryPage=()=>{var{0:e,1:t}=(0,a.useState)([]),r=(0,a.useRef)([]),n=(0,a.useRef)([]),c=(0,a.useCallback)(function(e){var{state:{sort:c,term:d,selectedFacets:u},itemsPerPage:p}=(0,o.R)(),f=(0,i.y)({first:p,after:(p*e).toString(),sort:c,term:null!=d?d:"",selectedFacets:u}),b=n.current[e]===getKey(f),{data:v}=(0,l.aM)(s,f,{fallbackData:null,suspense:!0,doNotRun:b}),y=!b&&null!==v;if(y){n.current[e]=getKey(f);var m=[...r.current];m[e]=v,r.current=m}return(0,a.useEffect)(()=>{y&&t(t=>{var r=[...t];return r[e]=v,r})},[v,e,y]),(0,a.useMemo)(()=>b?{data:r.current[e]}:{data:v},[b,v,e])},[]);return(0,a.useMemo)(()=>({pages:e,useGalleryPage:c}),[e,c])}},6641:function(e,t,r){"use strict";r.d(t,{UO:function(){return useProductGalleryQuery}});var n=r(4424),o=r(1921),a=r(8385),l=r(4355),i=r(6616),c=r(9029);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){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var s=o.VA,findFacetValue=(e,t)=>{var r,n=e.find(e=>{var{key:r}=e;return r===t});return null!==(r=null==n?void 0:n.value)&&void 0!==r?r:null},useProductGalleryQuery=e=>{var t,n,o,d,{term:u,sort:p,selectedFacets:f,itemsPerPage:b}=e,{locale:v}=(0,l.kP)(),{state:y,setState:m}=(0,c.R)(),h=(0,i.y)({first:b,after:"0",sort:p,term:null!=u?u:"",selectedFacets:f}),j=findFacetValue(f,"fuzzy"),g=findFacetValue(f,"operator"),O=(0,a.aM)(s,h,{onSuccess:e=>{e&&u&&j&&g&&r.e(1153).then(r.bind(r,1153)).then(t=>{var r,n,o,a,{sendAnalyticsEvent:l}=t;l({name:"intelligent_search_query",params:{locale:v,term:u,url:window.location.href,logicalOperator:null!==(r=null===(n=e.search.metadata)||void 0===n?void 0:n.logicalOperator)&&void 0!==r?r:"and",isTermMisspelled:null!==(o=null===(a=e.search.metadata)||void 0===a?void 0:a.isTermMisspelled)&&void 0!==o&&o,totalCount:e.search.products.pageInfo.totalCount}})})}});return O.error||j&&g?O:(O.data&&m(_objectSpread(_objectSpread({},y),{},{selectedFacets:[...f,{key:"fuzzy",value:null!==(t=null===(n=O.data.search.metadata)||void 0===n?void 0:n.fuzzy)&&void 0!==t?t:"auto"},{key:"operator",value:null!==(o=null===(d=O.data.search.metadata)||void 0===d?void 0:d.logicalOperator)&&void 0!==o?o:"and"}]})),_objectSpread(_objectSpread({},O),{},{isValidating:!0,data:null}))}},3095:function(e,t,r){"use strict";r.d(t,{j:function(){return useApplySearchState}});var n=r(4194),o=r(4444),useApplySearchState=()=>{var e=(0,o.useRouter)();return(0,n.useCallback)(t=>{var r="".concat(t.pathname).concat(t.search);return t.searchParams.has("fuzzy")&&t.searchParams.has("operator")?e.replace(r):e.push(r)},[e])}},3747:function(e){e.exports={section:"section_section__dvBbv"}},3767:function(e){e.exports={section:"section_section__Pdf2v"}},5739:function(e){e.exports={section:"section_section__4Hqa8",loading:"section_loading__GPzvE"}},1953:function(e,t,r){"use strict";var n=r(4194);let o=(0,n.forwardRef)(function({testId:e="fs-label",children:t,...r},o){return n.createElement("label",{ref:o,"data-fs-label":!0,"data-testid":e,...r},t)});t.Z=o},4873:function(e,t,r){"use strict";var n=r(4194),o=r(2614);let a=(0,n.forwardRef)(function({options:e,id:t,testId:r="fs-select",...a},l){return n.createElement("div",{"data-fs-select":!0},n.createElement("select",{ref:l,id:t,"data-testid":r,...a},Object.keys(e).map(t=>n.createElement("option",{key:t,value:t},e[t]))),n.createElement(o.Z,{"data-fs-select-icon":!0,name:"CaretDown"}))});t.Z=a},792:function(e,t,r){"use strict";var n=r(4194);let o=(0,n.forwardRef)(function({testId:e="fs-skeleton",loading:t=!0,shimmer:r=!0,children:o,size:a,border:l,borderRadius:i,...c},s){let d={width:a.width,height:a.height};return t?n.createElement("div",{ref:s,"data-fs-skeleton":!0,"data-testid":e,"data-fs-skeleton-border":l||null,style:i?{...d,borderRadius:i}:d,...c},r&&n.createElement("div",{"data-fs-skeleton-shimmer":!0})):n.createElement(n.Fragment,null,o)});t.Z=o},1972:function(e,t,r){"use strict";r.d(t,{Z:function(){return Breadcrumb_Breadcrumb}});var n=r(4194),o=r(2614),a=r(727),l=r(6588);let i=(0,n.lazy)(()=>r.e(4983).then(r.bind(r,7169))),c=(0,n.lazy)(()=>r.e(1697).then(r.bind(r,9570))),s=(0,n.lazy)(()=>r.e(4219).then(r.bind(r,5741))),d=(0,n.lazy)(()=>r.e(6621).then(r.bind(r,4451))),u=(0,n.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",breadcrumbList:u,isDesktop:p=!1,renderLink:f,homeLink:b,dropdownButtonIcon:v=n.createElement(o.Z,{name:"DotsThree"}),collapsedItemsIcon:y=n.createElement(o.Z,{"data-fs-dropdown-item-icon":!0,name:"ArrowElbowDownRight"}),...m},h){let j=p?u[0]:null,g=p?u.slice(1,-2):u.slice(0,-2),O=u.slice(-2),P=u.length>4,w=(0,n.useCallback)(e=>{let t=f?.(e),r=e.collapsed?{"data-fs-breadcrumb-dropdown-link":!0}:{"data-fs-breadcrumb-link":!0};return t?(0,n.cloneElement)(t,{...r,key:e.itemProps.position}):n.createElement(a.Z,{...r,href:e.itemProps.item,key:e.itemProps.position},e.itemProps.name)},[f]);return n.createElement(l.Z,{ref:h,"data-fs-breadcrumb-is-desktop":p,...m},b,!P&&u.map((e,t)=>u.length===t+1?n.createElement("span",{key:String(e.position)},e.name):w({itemProps:e,collapsed:!1})),P&&j&&w({itemProps:j,collapsed:!1}),P&&n.createElement(n.Suspense,null,n.createElement(i,null,n.createElement(c,{"aria-label":"View More","data-fs-breadcrumb-dropdown-button":!0,size:"small"},v),n.createElement(s,{"data-fs-breadcrumb-dropdown-menu":!0},g.map(e=>n.createElement(d,{"data-fs-breadcrumb-dropdown-item":!0,key:String(e.position),icon:y},w({itemProps:e,collapsed:!0})))))),P&&O.map((e,t)=>O.length===t+1?n.createElement("span",{key:String(e.position)},e.name):w({itemProps:e,collapsed:!1})))});var Breadcrumb_Breadcrumb=({breadcrumbList:e,...t})=>n.createElement(n.Fragment,null,n.createElement(u,{breadcrumbList:e,...t}),n.createElement(u,{breadcrumbList:e,isDesktop:!0,...t}))},6588:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(4194),o=r(4564),Breadcrumb_Divider=({divider:e,testId:t})=>{let r={"data-fs-breadcrumb-divider":!0,"aria-hidden":!0,"data-testid":`${t}-divider`};return n.isValidElement(e)?n.cloneElement(e,r):n.createElement("span",{...r},e??"/")},Breadcrumb_ListItem=({children:e,isLastItem:t,divider:r,testId:o})=>{let a={"data-testid":`${o}-item`,"data-fs-breadcrumb-item":!t||"current","aria-current":t?"page":void 0};return n.isValidElement(e)?n.createElement("li",{"data-fs-breadcrumb-list-item":!0},n.cloneElement(e,a),t?null:n.createElement(Breadcrumb_Divider,{divider:r,testId:o})):n.createElement("li",{"data-fs-breadcrumb-list-item":!0},n.createElement("span",{...a},e,t?null:n.createElement(Breadcrumb_Divider,{divider:r,testId:o})))};let a=(0,n.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",...a},l){return n.createElement("nav",{"aria-label":"Breadcrumb",role:"navigation",ref:l,"data-fs-breadcrumb":!0,"data-testid":r,...a},n.createElement(o.Z,{as:"ol","data-fs-breadcrumb-list":!0,"data-fs-content":"breadcrumb"},n.Children.toArray(e).map((e,o,a)=>{let l=o===a.length-1;return n.createElement(Breadcrumb_ListItem,{isLastItem:l,divider:t,key:`breadcrumb-${o}`,testId:r},e)})))});var l=a},3922:function(e,t,r){"use strict";var n=r(4194);t.Z=function({icon:e,inverse:t,children:r,disabled:o,iconPosition:a,size:l="regular",variant:i="primary",testId:c="fs-link-button",...s}){let d=(0,n.useRef)(null);return n.createElement("a",{ref:d,"data-fs-button":!0,"data-fs-link-button":!0,"data-fs-button-size":l,"data-fs-button-variant":i,"data-fs-button-inverse":t,"data-fs-button-disabled":o,onFocus:function(e){e.preventDefault(),o&&d.current?.blur()},"data-testid":c,...s},n.createElement("div",{"data-fs-button-wrapper":!0},!!e&&"left"===a&&n.createElement("span",{"data-fs-button-icon":!0},e),r&&n.createElement("span",null,r),!!e&&"right"===a&&n.createElement("span",{"data-fs-button-icon":!0},e)))}},6202:function(e,t,r){"use strict";var n=r(4194),o=r(1953),a=r(4873);let l=(0,n.forwardRef)(function({id:e,label:t,options:r,testId:l="fs-select-field",...i},c){return n.createElement("div",{ref:c,"data-fs-select-field":!0},n.createElement(o.Z,{"data-fs-select-field-label":!0,htmlFor:e},t),n.createElement(a.Z,{id:e,options:r,"data-testid":l,...i}))});t.Z=l},8957:function(e,t,r){"use strict";r.d(t,{u:function(){return useHero}});var n=r(4194);let o=(0,n.createContext)(void 0),a=(0,n.forwardRef)(function({children:e,testId:t="fs-hero",variant:r="primary",colorVariant:a="main",...l},i){return n.createElement(o.Provider,{value:{variant:r,colorVariant:a}},n.createElement("article",{ref:i,"data-fs-hero":!0,"data-fs-hero-variant":r,"data-fs-hero-color-variant":a,"data-testid":t,...l},e))});function useHero(){let e=(0,n.useContext)(o);if(void 0===e)throw Error("Do not use Hero components outside the Hero context.");return e}t.Z=a},7154:function(e,t,r){"use strict";var n=r(4194),o=r(3922),a=r(2614),l=r(8957);let i=(0,n.forwardRef)(function({icon:e,link:t,title:r,linkText:i,linkTargetBlank:c,subtitle:s,children:d,testId:u="fs-hero-heading",...p},f){let{variant:b,colorVariant:v}=(0,l.u)();return n.createElement("header",{ref:f,"data-fs-hero-heading":!0,"data-testid":u,...p},n.createElement("div",{"data-fs-hero-wrapper":!0,"data-fs-content":"hero"},n.createElement("div",{"data-fs-hero-info":!0},n.createElement("h1",{"data-fs-hero-title":!0},r),n.createElement("p",{"data-fs-hero-subtitle":!0},s),!!t&&n.createElement(o.Z,{href:t,inverse:"main"===v,icon:n.createElement(a.Z,{name:"ArrowRight"}),iconPosition:"right",target:c?"_blank":void 0},i)),!!e&&"secondary"===b&&n.createElement("span",{"data-fs-hero-icon":!0},e)))});t.Z=i},6035:function(e,t,r){"use strict";var n=r(4194);let o=(0,n.forwardRef)(function({children:e,testId:t="fs-hero-image",...r},o){return n.createElement("div",{ref:o,"data-fs-hero-image":!0,"data-testid":t,...r},e)});t.Z=o},1197:function(e,t,r){"use strict";r.d(t,{_:function(){return l},z:function(){return Provider}});var n=r(4194),o=r(2254);function setPagesSessionStorage(e){try{let t=window.history.state?.key;if(!t)return;let r=`__fs_gallery_page_${t}`;sessionStorage.setItem(r,JSON.stringify(e))}catch(e){return}}let reducer=(e,t)=>{switch(t.type){case"addPrev":{let t=e[0]-1,r=[t,...e];return setPagesSessionStorage(r),r}case"addNext":{let t=Number(e[e.length-1])+1,r=[...e,t];return setPagesSessionStorage(r),r}case"reset":{let{payload:e}=t,r=[e];return setPagesSessionStorage(r),r}default:throw new o.q("Unknown action for infinite search")}},useSearchInfiniteState=e=>{let[t,r]=(0,n.useReducer)(reducer,void 0,()=>(function(){try{let e=window.history.state?.key;if(!e)return null;let t=`__fs_gallery_page_${e}`,r=sessionStorage.getItem(t);return r?JSON.parse(r):null}catch(e){return null}})()??[e]),o=(0,n.useMemo)(()=>({addPrevPage:()=>r({type:"addPrev"}),addNextPage:()=>r({type:"addNext"}),resetInfiniteScroll:e=>r({type:"reset",payload:e})}),[]);return{pages:t,...o}};var a=r(2524);let l=(0,n.createContext)(void 0),Provider=({children:e,itemsPerPage:t,onChange:r,...o})=>{let{state:i,...c}=(0,a.X)(o,r),{pages:s,...d}=useSearchInfiniteState(i.page),u=(0,n.useMemo)(()=>({state:i,...c,pages:s,...d,itemsPerPage:t}),[d,t,s,c,i]);return n.createElement(l.Provider,{value:u},e)}},9664:function(e,t,r){"use strict";r.d(t,{Ru:function(){return removeFacet},a2:function(){return toggleFacets},uL:function(){return setFacet},wB:function(){return toggleFacet},wb:function(){return isSearchSort}});var n=r(2254);let o=new Set(["price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc"]),isSearchSort=e=>o.has(e),removeFacet=(e,t)=>{let{value:r}=t,o=e.findIndex(e=>e.value===r);if(o<0)throw new n.q(`Cannot remove ${r} from search params`);return e.filter((e,t)=>t!==o)},setFacet=(e,t,r)=>{if(!0===r){let r=e.findIndex(e=>e.key===t.key);if(r>-1)return e.map((e,n)=>n===r?t:e)}return[...e,t]},toggleFacet=(e,t)=>{let r=e.find(e=>e.key===t.key&&e.value===t.value);return void 0!==r?removeFacet(e,t):setFacet(e,t,!1)},toggleFacets=(e,t)=>t.reduce((e,t)=>toggleFacet(e,t),e)},6142:function(e,t,r){"use strict";r.d(t,{Q:function(){return parse}});var n=r(2254),o=r(9664),a=r(2524);let parse=({pathname:e,searchParams:t})=>{let r=(0,a.j)({base:e,term:t.get("q")??null,sort:t.get("sort")??void 0,page:Number(t.get("page")??0)});if(!(0,o.wb)(r.sort))throw new n.q(`Uknown sorting option ${r.sort}`);let l=t.get("facets")?.split(",")??[];for(let e of l){let n=t.getAll(e);for(let t of n)r.selectedFacets=(0,o.uL)(r.selectedFacets,{key:e,value:t})}return r.passThrough=function(e,t){let r=new URLSearchParams,n=new Set(t),o=Array.from(e.entries());for(let[e,t]of o)n.has(e)||r.append(e,t);return r}(t,["q","sort","page","facets",...l]),r}},1341:function(e,t,r){"use strict";r.d(t,{h:function(){return usePagination}});var n=r(4194),o=r(2339),a=r(9029);let getLink=e=>{let{pathname:t,search:r}=(0,o.Z)(e);return`${t}${r}`},usePagination=e=>{let{pages:t,itemsPerPage:r,state:o}=(0,a.R)(),l=Math.ceil(e/r),i=Number(t[t.length-1])+1,c=t[0]-1;return(0,n.useMemo)(()=>({next:i<l&&{cursor:i,link:getLink({...o,page:i})},prev:c>-1&&{cursor:c,link:getLink({...o,page:c})}}),[i,c,o,l])}},9029:function(e,t,r){"use strict";r.d(t,{R:function(){return useSearch}});var n=r(1197),o=r(7943);let useSearch=()=>(0,o.q)(n._)},7943:function(e,t,r){"use strict";r.d(t,{q:function(){return useContext}});var n=r(4194),o=r(2254);let useContext=e=>{let t=(0,n.useContext)(e);if(void 0===t)throw new o.q(`${e.displayName??"Context"} needs to be on the React tree`);return t}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[330],{3010:function(e,t,r){"use strict";r.r(t),r.d(t,{__N_SSG:function(){return U},default:function(){return _slug_}});var n=r(4424),o=r(6349),c=r(7281),i=r.n(c),s=r(6142),a=r(2339),l=r(1197),u=r(7292),d=r(4444),p=r(4194),b=r(2218),g=r(3095),P=r(1506),j=r.n(P),O=r(9029),f=r(4876),y=r.n(f),v=r(6305),w=r(4816),h=r(396),_=r(6283),m=r(9149),S=r(9617);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){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var L=i()(()=>Promise.all([r.e(3508),r.e(84)]).then(r.bind(r,5335)).then(e=>e.OverriddenDefaultBannerText),{ssr:!1,loadableGenerated:{webpack:()=>[5335]}}),D=i()(()=>Promise.all([r.e(1417),r.e(6608),r.e(9704)]).then(r.bind(r,2273)).then(e=>e.OverriddenDefaultNewsletter),{ssr:!1,loadableGenerated:{webpack:()=>[2273]}}),x=i()(()=>Promise.all([r.e(7972),r.e(3506)]).then(r.bind(r,4794)).then(e=>e.OverriddenDefaultProductShelf),{ssr:!1,loadableGenerated:{webpack:()=>[4794]}}),E=i()(()=>r.e(7181).then(r.bind(r,1839)),{ssr:!1,loadableGenerated:{webpack:()=>[1839]}}),k=_objectSpread(_objectSpread(_objectSpread({},S.Z),{},{Breadcrumb:v.j,Hero:w.V,ProductGallery:h.f,BannerText:L,Newsletter:D,ProductShelf:x,ProductTiles:E},m.Z),_.Z),G=r(6335),K=r(6999),Z=r(4308),T=r(6641),N=r(1549);function ProductListing_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 ProductListing_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductListing_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductListing_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var B=i()(()=>r.e(6636).then(r.bind(r,6106)),{loadableGenerated:{webpack:()=>[6106]}}),overwriteMerge=(e,t)=>t;function ProductListing(e){var t,r,{page:{sections:n,settings:o},data:c,globalSections:i}=e,{state:{sort:s,term:a,selectedFacets:l}}=(0,O.R)(),u=null!==(t=null==o?void 0:null===(r=o.productGallery)||void 0===r?void 0:r.itemsPerPage)&&void 0!==t?t:b.g,{data:d}=(0,T.UO)({term:a,sort:s,selectedFacets:l,itemsPerPage:u}),{pages:p,useGalleryPage:g}=(0,Z.Y_)(),P={data:ProductListing_objectSpread(ProductListing_objectSpread({},y()(ProductListing_objectSpread({},c),ProductListing_objectSpread({},d),{arrayMerge:overwriteMerge})),{},{pages:p})};return(0,N.jsx)(N.Fragment,{children:(0,N.jsx)(K.ZP,{context:P,children:(0,N.jsx)(Z.Bj.Provider,{value:g,children:(0,N.jsx)(G.Z,{sections:n,globalSections:i,components:k,children:(0,N.jsx)(G.w,{sectionName:"ScrollToTopButton",children:(0,N.jsx)(B,{})})})})})})}var R=["plp"];function ProductListingPage_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 ProductListingPage_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductListingPage_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductListingPage_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var useSearchParams=e=>{var{collection:t,sort:r}=e,n=null==t?void 0:t.meta.selectedFacets,{asPath:o}=(0,d.useRouter)(),c=(0,p.useMemo)(()=>{var e=new URL(o,"http://localhost");r&&!e.searchParams.has("sort")&&e.searchParams.set("sort",r);var t=(0,s.Q)(e);return 0===t.selectedFacets.length&&(t.selectedFacets=n),(0,a.Z)(t).href},[o,n,r]);return(0,p.useMemo)(()=>(0,s.Q)(new URL(c)),[c])};function ProductListingPage(e){var t,r,n,c,i,s,a,{page:p,data:P,globalSections:O}=e,{settings:f}=p,y=P.collection,v=(0,d.useRouter)(),w=(0,g.j)(),h=useSearchParams({collection:y,sort:null==f?void 0:null===(t=f.productGallery)||void 0===t?void 0:t.sortBySelection}),{seo:{plp:_}}=j(),m=(0,o.Z)(j().seo,R),S=null!==(r=null==y?void 0:y.seo.title)&&void 0!==r?r:m.title,L=null!==(n=null==_?void 0:_.titleTemplate)&&void 0!==n?n:m.titleTemplate,D=(null==y?void 0:y.seo.description)||(null==_?void 0:null===(c=_.descriptionTemplate)||void 0===c?void 0:c.replace(/%s/g,()=>S))||m.description,[x]=v.asPath.split("?"),E="".concat(j().storeUrl).concat(x),k=null!==(i=null==f?void 0:null===(s=f.productGallery)||void 0===s?void 0:s.itemsPerPage)&&void 0!==i?i:b.g,G=null!==(a=null==y?void 0:y.breadcrumbList.itemListElement)&&void 0!==a?a:[];return 0!==G.length&&(G=G.map(e=>{var{item:t,name:r,position:n}=e;return{name:r,position:n,item:j().storeUrl+t}})),(0,N.jsxs)(l.z,ProductListingPage_objectSpread(ProductListingPage_objectSpread({onChange:w,itemsPerPage:k},h),{},{children:[(0,N.jsx)(u.PB,{title:S,description:D,titleTemplate:L,canonical:E,openGraph:{type:"website",title:S,description:D}}),(0,N.jsx)(u.gR,{itemListElements:G}),(0,N.jsx)(ProductListing,{globalSections:O,page:p,data:P})]}))}var F=["globalSections","type"];function _slug_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 _slug_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_slug_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_slug_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var M=i()(()=>Promise.all([r.e(1417),r.e(1036),r.e(7972),r.e(6608),r.e(3508),r.e(4349),r.e(485)]).then(r.bind(r,8485)),{loadableGenerated:{webpack:()=>[8485]}}),U=!0,_slug_=function(e){var{globalSections:t,type:r}=e,n=(0,o.Z)(e,F);return(0,N.jsxs)(N.Fragment,{children:["plp"===r&&(0,N.jsx)(ProductListingPage,_slug_objectSpread({globalSections:t.sections},n)),"page"===r&&(0,N.jsx)(M,_slug_objectSpread({globalSections:t.sections},n))]})}},3838:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[...slug]",function(){return r(3010)}])}},function(e){e.O(0,[6167,6335,5018,9774,2888,179],function(){return e(e.s=3838)}),_N_E=e.O()}]);
|
|
File without changes
|