@faststore/core 3.83.0 → 3.83.1

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.
Files changed (54) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +27 -27
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/server-production/0.pack +0 -0
  8. package/.next/cache/webpack/server-production/index.pack +0 -0
  9. package/.next/prerender-manifest.js +1 -1
  10. package/.next/prerender-manifest.json +1 -1
  11. package/.next/react-loadable-manifest.json +18 -18
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/2792.js +1 -1
  14. package/.next/server/chunks/8474.js +2 -2
  15. package/.next/server/chunks/9630.js +3 -3
  16. package/.next/server/middleware-build-manifest.js +1 -1
  17. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  18. package/.next/server/pages/[...slug].js +1 -1
  19. package/.next/server/pages/en-US/404.html +1 -1
  20. package/.next/server/pages/en-US/500.html +1 -1
  21. package/.next/server/pages/en-US/checkout.html +1 -1
  22. package/.next/server/pages/en-US/login.html +1 -1
  23. package/.next/server/pages/en-US/s.html +1 -1
  24. package/.next/server/pages/en-US.html +1 -1
  25. package/.next/server/pages/s.js +1 -1
  26. package/.next/server/pages-manifest.json +1 -1
  27. package/.next/static/{irlP2Y8IJEbMTGvY6bTt_ → CaCKSx22-JjJUNjxZbMA8}/_buildManifest.js +1 -1
  28. package/.next/static/chunks/{3166-785c61fd0e214905.js → 3166-7f69db4fed76486b.js} +1 -1
  29. package/.next/static/chunks/{6393.f13568b0fd5f52f6.js → 6393.4ad395e06f7dbbc6.js} +1 -1
  30. package/.next/static/chunks/7191-d91c65fe5de71dcd.js +1 -0
  31. package/.next/static/chunks/ProductShelf.ee5cec2ae121df87.js +1 -0
  32. package/.next/static/chunks/ProductTiles.90806430263e4389.js +1 -0
  33. package/.next/static/chunks/pages/[slug]/{p-0287b5a8ac0b92e5.js → p-6ae1f8bde471e1a6.js} +1 -1
  34. package/.next/static/chunks/pages/{_app-f8a8608651b3f06b.js → _app-ea25733c67653eac.js} +1 -1
  35. package/.next/static/chunks/pages/s-c624c961a98a1be0.js +1 -0
  36. package/.next/static/chunks/{webpack-e7151d8bd72a8f2f.js → webpack-648fd45b167c0042.js} +1 -1
  37. package/.next/trace +136 -136
  38. package/.turbo/turbo-build.log +14 -14
  39. package/.turbo/turbo-test.log +5 -5
  40. package/CHANGELOG.md +6 -0
  41. package/package.json +3 -3
  42. package/src/components/sections/ProductTiles/ProductTiles.tsx +15 -1
  43. package/src/components/templates/SearchPage/SearchPage.tsx +1 -3
  44. package/src/components/templates/SearchPage/SearchWrapper.tsx +1 -1
  45. package/src/components/ui/ProductShelf/ProductShelf.tsx +4 -7
  46. package/src/pages/s.tsx +5 -8
  47. package/src/sdk/product/useLocalizedVariables.ts +2 -6
  48. package/src/sdk/product/usePageProductsQuery.ts +64 -80
  49. package/src/utils/utilities.ts +18 -0
  50. package/.next/static/chunks/7191-102277856f196551.js +0 -1
  51. package/.next/static/chunks/ProductShelf.9f3194be577c7cce.js +0 -1
  52. package/.next/static/chunks/ProductTiles.e0528e72234381e6.js +0 -1
  53. package/.next/static/chunks/pages/s-e7745eef6c834c3e.js +0 -1
  54. /package/.next/static/{irlP2Y8IJEbMTGvY6bTt_ → CaCKSx22-JjJUNjxZbMA8}/_ssgManifest.js +0 -0
@@ -1,23 +1,23 @@
1
1
 
2
- > @faststore/core@3.82.4 prebuild /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.83.0 prebuild /home/runner/work/faststore/faststore/packages/core
3
3
  > na run partytown && na run generate
4
4
 
5
5
 
6
- > @faststore/core@3.82.4 partytown /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@3.83.0 partytown /home/runner/work/faststore/faststore/packages/core
7
7
  > partytown copylib ./public/~partytown
8
8
 
9
9
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
10
10
 
11
- > @faststore/core@3.82.4 generate /home/runner/work/faststore/faststore/packages/core
11
+ > @faststore/core@3.83.0 generate /home/runner/work/faststore/faststore/packages/core
12
12
  > na run generate:schema && na run generate:codegen && na run format:generated
13
13
 
14
14
 
15
- > @faststore/core@3.82.4 generate:schema /home/runner/work/faststore/faststore/packages/core
15
+ > @faststore/core@3.83.0 generate:schema /home/runner/work/faststore/faststore/packages/core
16
16
  > tsx src/server/generator/generateGraphQLSchemaFile.ts
17
17
 
18
18
  Schema GraphQL file generated successfully
19
19
 
20
- > @faststore/core@3.82.4 generate:codegen /home/runner/work/faststore/faststore/packages/core
20
+ > @faststore/core@3.83.0 generate:codegen /home/runner/work/faststore/faststore/packages/core
21
21
  > graphql-codegen
22
22
 
23
23
  [STARTED] Parse Configuration
@@ -37,11 +37,11 @@ Running lifecycle hook "afterStart" scripts...
37
37
  [CLI] Loading Documents
38
38
  [CLI] Generating output
39
39
 
40
- > @faststore/core@3.82.4 format:generated /home/runner/work/faststore/faststore/packages/core
40
+ > @faststore/core@3.83.0 format:generated /home/runner/work/faststore/faststore/packages/core
41
41
  > prettier --write "@generated/**/*.{ts,js,tsx,jsx,json}" --loglevel error
42
42
 
43
43
 
44
- > @faststore/core@3.82.4 build /home/runner/work/faststore/faststore/packages/core
44
+ > @faststore/core@3.83.0 build /home/runner/work/faststore/faststore/packages/core
45
45
  > next build
46
46
 
47
47
  ⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
@@ -76,8 +76,8 @@ Route (pages) Size First Load JS
76
76
  ┌ ● / 3.66 kB 141 kB
77
77
  ├ └ css/b1806cbafd0c1f81.css 3.06 kB
78
78
  ├ /_app 0 B 107 kB
79
- ├ ● /[...slug] 2.45 kB 155 kB
80
- ├ ● /[slug]/p 33.2 kB 170 kB
79
+ ├ ● /[...slug] 2.45 kB 154 kB
80
+ ├ ● /[slug]/p 33.3 kB 170 kB
81
81
  ├ ├ css/a3ca6a9b63f657be.css 5.75 kB
82
82
  ├ ├ css/62a5153ac7061286.css 6.11 kB
83
83
  ├ └ css/6d92375b6ee8276a.css 16.1 kB
@@ -85,11 +85,11 @@ Route (pages) Size First Load JS
85
85
  ├ ● /500 1.55 kB 139 kB
86
86
  ├ λ /account 240 B 107 kB
87
87
  ├ ● /account/[...unknown] 281 B 107 kB
88
- ├ λ /account/403 2.44 kB 139 kB
88
+ ├ λ /account/403 2.44 kB 140 kB
89
89
  ├ └ css/b7bba8fce075688b.css 4.2 kB
90
90
  ├ λ /account/404 2.13 kB 139 kB
91
91
  ├ └ css/5347dbc8b71de47d.css 4.25 kB
92
- ├ λ /account/orders 10.5 kB 147 kB
92
+ ├ λ /account/orders 10.5 kB 148 kB
93
93
  ├ └ css/b7fc24e8f1eb011f.css 12.8 kB
94
94
  ├ λ /account/orders/[id] 12.2 kB 149 kB
95
95
  ├ └ css/297be4be3be36ff0.css 12.6 kB
@@ -105,12 +105,12 @@ Route (pages) Size First Load JS
105
105
  ├ λ /api/preview 0 B 107 kB
106
106
  ├ ● /checkout 737 B 138 kB
107
107
  ├ ● /login 1.68 kB 139 kB
108
- └ ● /s 3.3 kB 155 kB
108
+ └ ● /s 3.24 kB 155 kB
109
109
  + First Load JS shared by all 110 kB
110
110
  ├ chunks/framework-807b0f81cbc129f0.js 45.4 kB
111
111
  ├ chunks/main-f658704b53a96ab1.js 33.1 kB
112
- ├ chunks/pages/_app-f8a8608651b3f06b.js 24.3 kB
113
- ├ chunks/webpack-e7151d8bd72a8f2f.js 3.85 kB
112
+ ├ chunks/pages/_app-ea25733c67653eac.js 24.3 kB
113
+ ├ chunks/webpack-648fd45b167c0042.js 3.85 kB
114
114
  └ css/4b8252ed2f23ac67.css 3.51 kB
115
115
 
116
116
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
@@ -1,14 +1,14 @@
1
1
 
2
- > @faststore/core@3.82.4 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.83.0 test /home/runner/work/faststore/faststore/packages/core
3
3
  > jest
4
4
 
5
- PASS test/server/cms/global.test.ts (27.125 s)
6
- PASS test/utils/multipleTemplates.test.ts (28.019 s)
5
+ PASS test/server/cms/global.test.ts (28.448 s)
6
+ PASS test/utils/multipleTemplates.test.ts (28.683 s)
7
7
  PASS test/server/cms/index.test.ts
8
- PASS test/server/index.test.ts (30.906 s)
8
+ PASS test/server/index.test.ts (32.329 s)
9
9
 
10
10
  Test Suites: 4 passed, 4 total
11
11
  Tests: 22 passed, 22 total
12
12
  Snapshots: 0 total
13
- Time: 32.094 s
13
+ Time: 33.357 s
14
14
  Ran all test suites.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.83.1](https://github.com/vtex/faststore/compare/v3.83.0...v3.83.1) (2025-09-09)
7
+
8
+ ### Bug Fixes
9
+
10
+ - search update ([#3015](https://github.com/vtex/faststore/issues/3015)) ([74d3261](https://github.com/vtex/faststore/commit/74d3261267e111801b6e9fd46086c8d289a83d1e))
11
+
6
12
  # [3.83.0](https://github.com/vtex/faststore/compare/v3.82.4...v3.83.0) (2025-09-09)
7
13
 
8
14
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.83.0",
3
+ "version": "3.83.1",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -47,7 +47,7 @@
47
47
  "@faststore/api": "^3.82.4",
48
48
  "@faststore/graphql-utils": "^3.81.0",
49
49
  "@faststore/lighthouse": "^3.81.0",
50
- "@faststore/sdk": "^3.81.0",
50
+ "@faststore/sdk": "^3.83.1",
51
51
  "@faststore/ui": "^3.81.0",
52
52
  "@graphql-codegen/cli": "5.0.2",
53
53
  "@graphql-codegen/client-preset": "4.2.6",
@@ -108,5 +108,5 @@
108
108
  "ts-jest": "29.1.1",
109
109
  "typescript": "5.3.2"
110
110
  },
111
- "gitHead": "f17c31a89259789d23725ddd1addbe320c930635"
111
+ "gitHead": "f5425a54e204c3c45133e7da86c878b1de10f767"
112
112
  }
@@ -10,6 +10,9 @@ import { useProductsQuery } from 'src/sdk/product/useProductsQuery'
10
10
 
11
11
  import Section from '../Section'
12
12
 
13
+ import deepmerge from 'deepmerge'
14
+ import { useDeliveryPromiseFacets } from 'src/sdk/deliveryPromise/useDeliveryPromiseFacets'
15
+ import { overwriteMerge, toArray } from 'src/utils/utilities'
13
16
  import styles from './section.module.scss'
14
17
 
15
18
  interface ProductTilesProps
@@ -65,7 +68,18 @@ const ProductTiles = ({
65
68
  }: ProductTilesProps) => {
66
69
  const viewedOnce = useRef(false)
67
70
  const { ref, inView } = useInView()
68
- const data = useProductsQuery(variables)
71
+ const { deliveryFacets } = useDeliveryPromiseFacets()
72
+
73
+ const data = useProductsQuery({
74
+ ...variables,
75
+ selectedFacets: deepmerge(
76
+ toArray(variables.selectedFacets),
77
+ deliveryFacets,
78
+ {
79
+ arrayMerge: overwriteMerge,
80
+ }
81
+ ),
82
+ })
69
83
  const products = data?.search?.products
70
84
  const productEdges = products?.edges ?? []
71
85
 
@@ -24,9 +24,7 @@ function SearchPage({
24
24
  globalSections,
25
25
  globalSettings,
26
26
  }: SearchPageProps) {
27
- const { pages, useGalleryPage } = useCreateUseGalleryPage({
28
- searchTerm: serverData?.searchTerm,
29
- })
27
+ const { pages, useGalleryPage } = useCreateUseGalleryPage()
30
28
 
31
29
  const context = {
32
30
  data: {
@@ -34,7 +34,7 @@ export default function SearchWrapper({
34
34
  } = useSearch()
35
35
 
36
36
  const { data: pageProductGalleryData } = useProductGalleryQuery({
37
- term: serverData?.searchTerm ?? term ?? '',
37
+ term,
38
38
  sort,
39
39
  itemsPerPage,
40
40
  selectedFacets,
@@ -1,12 +1,12 @@
1
1
  import dynamic from 'next/dynamic'
2
2
  import { useEffect, useId, useRef } from 'react'
3
3
 
4
+ import deepmerge from 'deepmerge'
4
5
  import { useViewItemListEvent } from 'src/sdk/analytics/hooks/useViewItemListEvent'
6
+ import { useDeliveryPromiseFacets } from 'src/sdk/deliveryPromise/useDeliveryPromiseFacets'
5
7
  import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
6
8
  import { useProductsQuery } from 'src/sdk/product/useProductsQuery'
7
- import { textToKebabCase } from 'src/utils/utilities'
8
- import { useDeliveryPromiseFacets } from 'src/sdk/deliveryPromise/useDeliveryPromiseFacets'
9
- import deepmerge from 'deepmerge'
9
+ import { overwriteMerge, textToKebabCase } from 'src/utils/utilities'
10
10
 
11
11
  const ProductShelfSkeleton = dynamic(
12
12
  () =>
@@ -66,11 +66,11 @@ function ProductShelf({
66
66
  const { deliveryFacets } = useDeliveryPromiseFacets()
67
67
 
68
68
  const data = useProductsQuery({
69
+ ...otherProps,
69
70
  first: numberOfItems,
70
71
  selectedFacets: deepmerge(otherProps.selectedFacets, deliveryFacets, {
71
72
  arrayMerge: overwriteMerge,
72
73
  }),
73
- ...otherProps,
74
74
  })
75
75
 
76
76
  const products = data?.search?.products
@@ -139,6 +139,3 @@ function ProductShelf({
139
139
  }
140
140
 
141
141
  export default ProductShelf
142
-
143
- // Array merging strategy from deepmerge that makes client arrays overwrite server array
144
- const overwriteMerge = (_: any[], clientArray: any[]) => clientArray
package/src/pages/s.tsx CHANGED
@@ -98,9 +98,8 @@ function generateSEOData(storeConfig: StoreConfig, searchTerm?: string) {
98
98
  function Page({
99
99
  page: searchContentType,
100
100
  globalSections: globalSectionsProp,
101
- searchTerm: serverSearchTerm,
101
+ searchTerm,
102
102
  }: SearchPageProps) {
103
- const router = useRouter()
104
103
  const { sections: globalSections, settings: globalSettings } =
105
104
  globalSectionsProp ?? {}
106
105
  const { settings } = searchContentType
@@ -110,11 +109,6 @@ function Page({
110
109
  })
111
110
 
112
111
  const itemsPerPage = settings?.productGallery?.itemsPerPage ?? ITEMS_PER_PAGE
113
- const searchTerm =
114
- serverSearchTerm ??
115
- (router.query?.q as string) ??
116
- searchParams.term ??
117
- undefined
118
112
 
119
113
  if (!searchParams) {
120
114
  return null
@@ -150,7 +144,10 @@ function Page({
150
144
  <SearchWrapper
151
145
  itemsPerPage={itemsPerPage}
152
146
  searchContentType={searchContentType}
153
- serverData={{ title: seoData.title, searchTerm }}
147
+ serverData={{
148
+ title: seoData.title,
149
+ searchTerm: searchTerm ?? searchParams.term ?? undefined,
150
+ }}
154
151
  globalSections={globalSections}
155
152
  globalSettings={globalSettings}
156
153
  />
@@ -1,14 +1,10 @@
1
1
  import { useMemo } from 'react'
2
- import deepmerge from 'deepmerge'
3
2
 
4
- import { useSearch, type SearchState } from '@faststore/sdk'
5
3
  import type { ClientManyProductsQueryQueryVariables } from '@generated/graphql'
6
4
 
7
- import { useSession } from 'src/sdk/session'
8
5
  import { ITEMS_PER_SECTION } from 'src/constants'
9
-
10
- const toArray = <T>(x: T[] | T | undefined) =>
11
- Array.isArray(x) ? x : x ? [x] : []
6
+ import { useSession } from 'src/sdk/session'
7
+ import { toArray } from 'src/utils/utilities'
12
8
 
13
9
  export const useLocalizedVariables = ({
14
10
  first,
@@ -18,7 +18,6 @@ import { useQuery } from 'src/sdk/graphql/useQuery'
18
18
  import { generatedBuildTime } from '../../../next-seo.config'
19
19
  import { useLocalizedVariables } from './useLocalizedVariables'
20
20
  import { useShouldFetchFirstPage } from './useShouldFetchFirstPage'
21
- import { useSession } from 'src/sdk/session'
22
21
 
23
22
  export const UseGalleryPageContext = createContext<
24
23
  ReturnType<typeof useCreateUseGalleryPage>['useGalleryPage']
@@ -69,9 +68,8 @@ export const query = gql(`
69
68
  const getKey = (object: any) => JSON.stringify(object)
70
69
 
71
70
  interface UseCreateUseGalleryPageProps {
72
- initialPages?: ClientManyProductsQueryQuery
73
- serverManyProductsVariables?: ClientManyProductsQueryQueryVariables
74
- searchTerm?: string
71
+ initialPages: ClientManyProductsQueryQuery
72
+ serverManyProductsVariables: ClientManyProductsQueryQueryVariables
75
73
  }
76
74
 
77
75
  /**
@@ -80,7 +78,6 @@ interface UseCreateUseGalleryPageProps {
80
78
  export const useCreateUseGalleryPage = (
81
79
  params?: UseCreateUseGalleryPageProps
82
80
  ) => {
83
- const { postalCode: sessionPostalCode } = useSession()
84
81
  const initialPages = params?.initialPages?.search ? [params.initialPages] : []
85
82
  const initialVariables = params?.serverManyProductsVariables
86
83
  ? [getKey(params.serverManyProductsVariables)]
@@ -91,86 +88,73 @@ export const useCreateUseGalleryPage = (
91
88
  // We create pagesRef as a mirror of the pages state so we don't have to add pages as a dependency of the useGalleryPage hook
92
89
  const pagesRef = useRef<ClientManyProductsQueryQuery[]>(initialPages)
93
90
  const pagesCache = useRef<string[]>(initialVariables)
94
- const postalCodeRef = useRef<string>(sessionPostalCode)
95
-
96
- const useGalleryPage = useCallback(
97
- function useGalleryPage(page: number) {
98
- const {
99
- state: { sort, term, selectedFacets },
100
- itemsPerPage,
101
- } = useSearch()
102
-
103
- const localizedVariables = useLocalizedVariables({
104
- first: itemsPerPage,
105
- after: (itemsPerPage * page).toString(),
106
- sort,
107
- term: params?.searchTerm ?? term ?? '',
108
- selectedFacets,
109
- })
110
-
111
- const hasSameVariables = deepEquals(
112
- pagesCache.current[page],
113
- getKey(localizedVariables)
114
- )
115
-
116
- const shouldFetchFirstPage = useShouldFetchFirstPage({
117
- page,
118
- generatedBuildTime,
119
- })
120
-
121
- const shouldFetch =
122
- !hasSameVariables || shouldFetchFirstPage || !!sessionPostalCode
123
-
124
- const { data, mutate } = useQuery<
125
- ClientManyProductsQueryQuery,
126
- ClientManyProductsQueryQueryVariables
127
- >(query, localizedVariables, {
128
- fallbackData: null,
129
- suspense: true,
130
- doNotRun: !shouldFetch,
131
- })
132
-
133
- const shouldUpdatePages = data !== null
134
91
 
135
- if (shouldUpdatePages) {
136
- pagesCache.current[page] = getKey(localizedVariables)
92
+ const useGalleryPage = useCallback(function useGalleryPage(page: number) {
93
+ const {
94
+ state: { sort, term, selectedFacets },
95
+ itemsPerPage,
96
+ } = useSearch()
97
+
98
+ const localizedVariables = useLocalizedVariables({
99
+ first: itemsPerPage,
100
+ after: (itemsPerPage * page).toString(),
101
+ sort,
102
+ term: term ?? '',
103
+ selectedFacets,
104
+ })
105
+
106
+ const hasSameVariables = deepEquals(
107
+ pagesCache.current[page],
108
+ getKey(localizedVariables)
109
+ )
110
+
111
+ const shouldFetchFirstPage = useShouldFetchFirstPage({
112
+ page,
113
+ generatedBuildTime,
114
+ })
115
+
116
+ const shouldFetch = !hasSameVariables || shouldFetchFirstPage
117
+
118
+ const { data } = useQuery<
119
+ ClientManyProductsQueryQuery,
120
+ ClientManyProductsQueryQueryVariables
121
+ >(query, localizedVariables, {
122
+ fallbackData: null,
123
+ suspense: true,
124
+ doNotRun: !shouldFetch,
125
+ })
126
+
127
+ const shouldUpdatePages = data !== null
128
+
129
+ if (shouldUpdatePages) {
130
+ pagesCache.current[page] = getKey(localizedVariables)
131
+
132
+ // Update refs
133
+ const newPages = [...pagesRef.current]
134
+ newPages[page] = data
135
+ pagesRef.current = newPages
136
+ }
137
137
 
138
- // Update refs
139
- const newPages = [...pagesRef.current]
140
- newPages[page] = data
141
- pagesRef.current = newPages
138
+ // Prevents error: Cannot update a component (`ProductListing`) while rendering a different component (`ProductGalleryPage`).
139
+ useEffect(() => {
140
+ if (shouldUpdatePages) {
141
+ // Update state
142
+ setPages((oldPages) => {
143
+ const newPages = [...oldPages]
144
+ newPages[page] = data
145
+ return newPages
146
+ })
142
147
  }
148
+ }, [data, page, shouldUpdatePages])
143
149
 
144
- // Prevents error: Cannot update a component (`ProductListing`) while rendering a different component (`ProductGalleryPage`).
145
- useEffect(() => {
146
- if (shouldUpdatePages) {
147
- // Update state
148
- setPages((oldPages) => {
149
- const newPages = [...oldPages]
150
- newPages[page] = data
151
- return newPages
152
- })
153
- }
154
- }, [data, page, shouldUpdatePages])
155
-
156
- // Refetch query with updated regionId
157
- useEffect(() => {
158
- if (sessionPostalCode !== postalCodeRef.current) {
159
- mutate()
160
- postalCodeRef.current = sessionPostalCode
161
- }
162
- }, [sessionPostalCode])
163
-
164
- return useMemo(() => {
165
- if (hasSameVariables) {
166
- return { data: pagesRef.current[page] }
167
- }
150
+ return useMemo(() => {
151
+ if (hasSameVariables) {
152
+ return { data: pagesRef.current[page] }
153
+ }
168
154
 
169
- return { data }
170
- }, [hasSameVariables, data, page])
171
- },
172
- [params?.searchTerm, sessionPostalCode]
173
- )
155
+ return { data }
156
+ }, [hasSameVariables, data, page])
157
+ }, [])
174
158
 
175
159
  return useMemo(
176
160
  () => ({
@@ -93,3 +93,21 @@ export const buildFormData = (
93
93
 
94
94
  return form
95
95
  }
96
+ /**
97
+ * Converts a value to an array. If the value is already an array, returns it as-is.
98
+ * If the value is undefined or null, returns an empty array.
99
+ * Otherwise, wraps the value in an array.
100
+ *
101
+ * @param x - The value to convert to an array
102
+ * @returns An array containing the value(s)
103
+ */
104
+
105
+ export const toArray = <T>(x: T[] | T | undefined) =>
106
+ Array.isArray(x) ? x : x ? [x] : []
107
+
108
+ /**
109
+ * Array merging strategy from deepmerge that makes source arrays overwrite destination array
110
+ *
111
+ * @see https://www.npmjs.com/package/deepmerge
112
+ */
113
+ export const overwriteMerge = (_: any[], sourceArray: any[]) => sourceArray
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7191,4983,1697,4219,6621,9781],{2301:function(e,t,r){"use strict";r.d(t,{j:function(){return P}});var n=r(3067),a={section:"Breadcrumb"},o=r(1716),l=r(4194),i=r(1325),c=r(9746),d=r(6272),s=r(2614),u=r(4235),p=r(1972),f=r(7345),m=r(1549),b=["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 v={Breadcrumb:(0,l.memo)(e=>{var t,{icon:r,alt:n="Go to homepage"}=e,a=(0,u.Z)(e,b),{Breadcrumb:o,Icon:l}=(0,c.r3)();return(0,m.jsx)(p.Z,_objectSpread(_objectSpread({homeLink:(0,m.jsx)(f.Z,{"data-fs-breadcrumb-link":!0,"data-fs-breadcrumb-link-home":!0,"aria-label":n,href:"/",prefetch:!1,children:(0,m.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,m.jsx)(f.Z,{"data-fs-breadcrumb-link":!0,href:t,prefetch:!1,children:r})}},o.props),a))}),Icon:s.Z},y=r(5501),h=r.n(y);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}function BreadcrumbSection(e){var t,r,a,o,l,s,u,p,f,b=Object.assign({},e),{Breadcrumb:v}=(0,c.r3)(),y=(0,d.qt)(),g=(0,d.OJ)(y)?null==y?void 0:null===(t=y.data)||void 0===t?void 0:null===(r=t.collection)||void 0===r?void 0:null===(a=r.seo)||void 0===a?void 0:a.title:"All Products",j=(0,d.tS)(y)?null==y?void 0:null===(o=y.data)||void 0===o?void 0:null===(l=o.product)||void 0===l?void 0:null===(s=l.breadcrumbList)||void 0===s?void 0:s.itemListElement:(0,d.OJ)(y)?null==y?void 0:null===(u=y.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:g,position:1}];return(0,m.jsx)(i.Z,{className:"".concat(h().section," section-breadcrumb"),children:(0,m.jsx)(v.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:j},b))})}BreadcrumbSection.$componentKey="Breadcrumb";var g=(0,o.B)("Breadcrumb",BreadcrumbSection,v),j=(0,l.memo)(g);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 P=(0,o.v)(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread({},a),a),{},{Section:j}))},3882:function(e,t,r){"use strict";r.d(t,{V:function(){return y}});var n=r(3067),a={section:"Hero"},o=r(1716),l=r(2056),i=r(9746),c=r(1325),d=r(4399),s=r.n(d),u=r(8957),p=r(4147),f=r(7154),m={Hero:u.Z,HeroImage:p.Z,HeroHeader:f.Z},b=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 Hero_Hero=e=>{var t,r,{link:n,title:a,subtitle:o,image:d,variant:u,colorVariant:p,icon:f}=e,{Hero:m,HeroImage:v,HeroHeader:y}=(0,i.r3)();return(0,b.jsx)(c.Z,{className:"".concat(s().section," section-hero"),children:(0,b.jsxs)(m.Component,_objectSpread(_objectSpread({},m.props),{},{variant:null!==(t=null!=u?u:m.props.variant)&&void 0!==t?t:"primary",colorVariant:null!==(r=null!=p?p:m.props.colorVariant)&&void 0!==r?r:"main",children:[(0,b.jsx)(v.Component,_objectSpread(_objectSpread({},v.props),{},{children:(0,b.jsx)(l.Z,{loading:"eager",src:d.src,alt:d.alt,width:360,height:240,sizes:"(max-width: 412px) 40vw, (max-width: 768px) 90vw, 50vw",priority:!0})})),(0,b.jsx)(y.Component,_objectSpread({title:a,subtitle:o,link:null==n?void 0:n.url,linkText:null==n?void 0:n.text,linkTargetBlank:null==n?void 0:n.linkTargetBlank,icon:f},y.props))]}))})};Hero_Hero.$componentKey="Hero";var v=(0,o.B)("Hero",Hero_Hero,m);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 y=(0,o.v)(OverriddenDefaultHero_objectSpread(OverriddenDefaultHero_objectSpread(OverriddenDefaultHero_objectSpread({},a),a),{},{Section:v}))},3954:function(e,t,r){"use strict";r.d(t,{f:function(){return et}});var n=r(3067),a={section:"ProductGallery"},o=r(1716),l=r(4235),i=r(5935),c=r(3888),d=r.n(c),s=r(4194),u=r(9029),p=r(6652),f=r(6335),m=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 b={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"},v=Object.keys(b),Sort_Sort=function(e){var{label:t="Sort by",options:r=b}=e,{state:n,setState:a}=(0,u.R)(),o=Object.keys(r).reduce((e,t)=>{var n;return e[t]=null!==(n=r[t])&&void 0!==n?n:b[t],e},{});return(0,m.jsx)(f.Z,{id:"sort-select",className:"sort / text__title-mini-alt",label:t,options:o,onChange:e=>{var t=v[e.target.selectedIndex];a(_objectSpread(_objectSpread({},n),{},{sort:t,page:0}))},value:n.sort,testId:"search-sort"})},y=r(7171),h=r(9746),g=r(6272),j=r(5487),P=r(4174),w=r(431),O=r(7440),E=r(2693),S=["cache"],prefetchQuery=(e,t,r)=>{var{cache:n}=r,a=(0,l.Z)(r,S),o=(0,E.km)(e.__meta__.operationName,t);n.get(o)||(0,w.j)(o,(0,O.W)(e,t,a))},_=r(7772);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 k=j.gU,useProductsQueryPrefetch=(e,t)=>{var r=(0,_.y)(e),{cache:a}=(0,P.kY)();return(0,s.useCallback)(()=>prefetchQuery(k,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:a},t)),[r,a,t])},useProductsPrefetch=e=>{var{itemsPerPage:t,state:{sort:r,term:n,selectedFacets:a}}=(0,u.R)(),o=useProductsQueryPrefetch({first:t,after:(t*(null!=e?e:0)).toString(),sort:r,term:null!=n?n:"",selectedFacets:a});(0,s.useEffect)(()=>{null!==e&&o()},[e,o])},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])},Z=r(1341),useDelayedPagination=e=>{var t=(0,Z.h)(e),{0:r,1:n}=(0,s.useState)(()=>({next:!1,prev:!1}));return(0,s.useEffect)(()=>{n(t)},[t]),r},x=r(9664),D=["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:a,payload:o}=t;switch(a){case"toggleExpanded":return r.has(o)?r.delete(o):r.add(o),useFilter_objectSpread(useFilter_objectSpread({},e),{},{expanded:new Set(r)});case"selectFacets":if(o!==n)return useFilter_objectSpread(useFilter_objectSpread({},e),{},{selected:o});break;case"toggleFacet":return useFilter_objectSpread(useFilter_objectSpread({},e),{},{selected:(0,x.wB)(e.selected,o)});case"toggleFacets":return useFilter_objectSpread(useFilter_objectSpread({},e),{},{selected:(0,x.a2)(e.selected,o.facets,o.unique)});case"setFacet":return useFilter_objectSpread(useFilter_objectSpread({},e),{},{selected:(0,x.uL)(e.selected,o.facet,o.unique)});default:throw Error("Action ".concat(a," not implemented"))}return e},useFilter=(e,t)=>{var{state:{selectedFacets:r}}=(0,u.R)(),{0:{selected:n,expanded:a},1:o}=(0,s.useReducer)(reducer,null,()=>({expanded:new Set([]),selected:r})),i=(0,s.useMemo)(()=>n.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),[n]),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,D)),{},{value:n,selected:!!(null===(r=i.get(e.key))||void 0===r?void 0:r.has(n))})})}):e),[e,i]);return(0,s.useEffect)(()=>{t&&0===n.length&&o({type:"selectFacets",payload:t})},[t,n]),(0,s.useEffect)(()=>{o({type:"selectFacets",payload:r})},[r]),{facets:c,selected:n,expanded:a,dispatch:o}},C=r(679),G=r(643),F=r(2007),B=r.n(F);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 R=(0,s.lazy)(()=>r.e(3399).then(r.bind(r,3399))),K=d()(()=>r.e(866).then(r.bind(r,6624)),{loadableGenerated:{webpack:()=>[6624]}}),z=(0,m.jsx)(y.Z,{loading:!0}),ProductGallery_ProductGallery=function(e){var t,r,n,a,o,l,c,d,f,b,v,y,j,P,w,O,E,S,_,k,Z,x,D,F,I,L,M,T,H,A,N,{title:V,searchTerm:$,totalCount:U,searchTermLabel:q,totalCountLabel:Q,filter:W,previousPageButton:J,loadMorePageButton:X,sortBySelector:Y,productCard:ee,productComparison:et}=e,{FilterButtonSkeleton:er,FilterIcon:en,LinkButtonNext:ea,LinkButtonPrev:eo,MobileFilterButton:el,PrevIcon:ei,ResultsCountSkeleton:ec,SortSkeleton:ed,ToggleField:es,ProductComparison:eu,ProductComparisonToolbar:ep,__experimentalFilterDesktop:ef,__experimentalFilterSlider:em,__experimentalProductComparisonSidebar:eb}=(0,h.r3)(),{openFilter:ev,filter:ey}=(0,p.l8)(),{pages:eh,addNextPage:eg,addPrevPage:ej,itemsPerPage:eP}=(0,u.R)(),ew=(0,g.qt)(),eO=null==ew?void 0:ew.data,eE=null!==(t=useDelayedFacets(eO))&&void 0!==t?t:[],{next:eS,prev:e_}=useDelayedPagination(U),{0:ek,1:eZ}=(0,s.useState)(!1);useProductsPrefetch(e_?e_.cursor:null),useProductsPrefetch(eS?eS.cursor:null);var{isDesktop:ex}=(0,C.Z)(),eD=!!(null==eO?void 0:null===(r=eO.search)||void 0===r?void 0:r.facets),eC=!!(null==eO?void 0:null===(n=eO.search)||void 0===n?void 0:n.products),eG=useFilter(eE,null!==(a=null==eO?void 0:null===(o=eO.collection)||void 0===o?void 0:null===(l=o.meta)||void 0===l?void 0:l.selectedFacets)&&void 0!==a?a:[]);return(0,m.jsxs)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:[$&&(0,m.jsx)("header",{"data-fs-product-listing-search-term":!0,"data-fs-content":"product-gallery",children:(0,m.jsxs)("h1",{children:[q," ",(0,m.jsx)("span",{children:$})]})}),(0,m.jsxs)(eu.Component,{children:[(0,m.jsxs)("div",{"data-fs-product-listing-content-grid":!0,"data-fs-content":"product-gallery",children:[ex&&(0,m.jsx)("div",{"data-fs-product-listing-filters":!0,children:(0,m.jsx)(K,{loading:!eD,children:eD&&(null==eE?void 0:eE.length)>0&&(0,m.jsx)("div",{className:"hidden-mobile",children:(0,m.jsx)(ef.Component,ProductGallery_objectSpread(ProductGallery_objectSpread(ProductGallery_objectSpread({},ef.props),eG),{},{title:null==W?void 0:W.title}))})})}),!ex&&ey&&(0,m.jsx)("div",{"data-fs-product-listing-filters":!0,children:(0,m.jsx)(em.Component,ProductGallery_objectSpread(ProductGallery_objectSpread(ProductGallery_objectSpread({},em.props),eG),{},{title:null==W?void 0:W.title,clearButtonLabel:null==W?void 0:null===(c=W.mobileOnly)||void 0===c?void 0:c.clearButtonLabel,applyButtonLabel:null==W?void 0:null===(d=W.mobileOnly)||void 0===d?void 0:d.applyButtonLabel}))}),(0,m.jsxs)("div",{"data-fs-product-listing-results-count":!0,"data-count":U,children:[(0,m.jsx)(ec.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-results-count-skeleton":!0,size:{width:"100%",height:"1.5rem"}},ec.props),{},{loading:!eC,children:(0,m.jsxs)("h2",{"data-testid":"total-product-count",children:[U," ",Q]})})),(null==et?void 0:et.enabled)&&(0,m.jsx)(es.Component,ProductGallery_objectSpread({id:"toggle-field-comparison",label:null==et?void 0:null===(f=et.labels)||void 0===f?void 0:f.compareButton,checked:ek,onChange:()=>eZ(!ek)},es.props))]}),(0,m.jsxs)("div",{"data-fs-product-listing-sort":!0,children:[(0,m.jsx)(ed.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-sort-skeleton":!0,size:{width:"auto",height:"1.5rem"}},ed.props),{},{loading:!eC,children:(0,m.jsx)(Sort_Sort,{label:null==Y?void 0:Y.label,options:null==Y?void 0:Y.options})})),(0,m.jsx)(er.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-filter-button-skeleton":!0,size:{width:"6rem",height:"1.5rem"}},er.props),{},{loading:!eD,children:eD&&(null==eE?void 0:eE.length)>0&&(0,m.jsx)(el.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({variant:"tertiary","data-testid":"open-filter-button",icon:(0,m.jsx)(en.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({width:16,height:16},en.props),{},{name:null!==(b=null==W?void 0:null===(v=W.mobileOnly)||void 0===v?void 0:null===(y=v.filterButton)||void 0===y?void 0:null===(j=y.icon)||void 0===j?void 0:j.icon)&&void 0!==b?b:en.props.name,"aria-label":null!==(P=null==W?void 0:null===(w=W.mobileOnly)||void 0===w?void 0:null===(O=w.filterButton)||void 0===O?void 0:null===(E=O.icon)||void 0===E?void 0:E.alt)&&void 0!==P?P:en.props["aria-label"]})),iconPosition:"left"},el.props),{},{onClick:ev,children:null==W?void 0:null===(S=W.mobileOnly)||void 0===S?void 0:null===(_=S.filterButton)||void 0===_?void 0:_.label}))}))]}),(0,m.jsxs)("div",{"data-fs-product-listing-results":!0,children:[!!e_&&(0,m.jsxs)("div",{"data-fs-product-listing-pagination":"top",children:[(0,m.jsx)(i.PB,{additionalLinkTags:[{rel:"prev",href:e_.link}]}),(0,m.jsx)(eo.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({rel:"prev",variant:"secondary",iconPosition:"left",icon:(0,m.jsx)(ei.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({width:16,height:16,weight:"bold"},ei.props),{},{name:null!==(k=null==J?void 0:null===(Z=J.icon)||void 0===Z?void 0:Z.icon)&&void 0!==k?k:ei.props.name,"aria-label":null!==(x=null!==(D=null==J?void 0:null===(F=J.icon)||void 0===F?void 0:F.alt)&&void 0!==D?D:null==J?void 0:J.label)&&void 0!==x?x:ei.props["aria-label"]}))},eo.props),{},{onClick:e=>{e.currentTarget.blur(),e.preventDefault(),ej()},href:e_.link,children:null==J?void 0:J.label}))]}),eC?(0,m.jsx)(s.Suspense,{fallback:z,children:eh.map(e=>{var t;return(0,m.jsx)(R,{page:e,title:V,productCard:ee,itemsPerPage:eP,firstPage:eh[0],shouldShowComparison:ek,compareLabel:null==et?void 0:null===(t=et.labels)||void 0===t?void 0:t.compareButton},"gallery-page-".concat(e))})}):z,!1!==eS&&(0,m.jsxs)("div",{"data-fs-product-listing-pagination":"bottom",children:[(0,m.jsx)(i.PB,{additionalLinkTags:[{rel:"next",href:eS.link}]}),(0,m.jsx)(ea.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({testId:"show-more",rel:"next",variant:"secondary"},ea.props),{},{onClick:e=>{e.currentTarget.blur(),e.preventDefault(),eg()},href:eS.link,children:null==X?void 0:X.label}))]})]})]}),ek&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(eb.Component,ProductGallery_objectSpread({direction:"rightSide",size:"partial",priceFormatter:G.P,technicalInformation:{title:null==et?void 0:null===(I=et.labels)||void 0===I?void 0:null===(L=I.technicalInformation)||void 0===L?void 0:L.title,description:null==et?void 0:null===(M=et.labels)||void 0===M?void 0:null===(T=M.technicalInformation)||void 0===T?void 0:T.description},overlayProps:{className:B().section}},et.labels.sidebarComponent)),(0,m.jsx)(ep.Component,{selectionWarningLabel:null==et?void 0:null===(H=et.labels)||void 0===H?void 0:H.selectionWarning,clearSelectionButtonLabel:null==et?void 0:null===(A=et.labels)||void 0===A?void 0:A.clearSelectionButton,compareButtonLabel:null==et?void 0:null===(N=et.labels)||void 0===N?void 0:N.compareButton})]})]})]})},I=r(1325),L=r(9009),M=r(2614),T=r(792),H=r(5660),A=r(9505),N=r(8668),V=r(9947),$=r(3922),U=d()(()=>r.e(6789).then(r.bind(r,3836)),{loadableGenerated:{webpack:()=>[3836]}}),q=d()(()=>r.e(5796).then(r.bind(r,5796)),{loadableGenerated:{webpack:()=>[5796]}}),Q=d()(()=>r.e(3155).then(r.bind(r,3155)),{loadableGenerated:{webpack:()=>[3155]}}),W=d()(()=>r.e(83).then(r.bind(r,83)),{loadableGenerated:{webpack:()=>[83]}}),J=d()(()=>r.e(8325).then(r.bind(r,8325)),{loadableGenerated:{webpack:()=>[8325]}}),X={MobileFilterButton:L.Z,FilterIcon:M.Z,PrevIcon:M.Z,ResultsCountSkeleton:T.Z,SortSkeleton:T.Z,FilterButtonSkeleton:T.Z,ToggleField:H.Z,ProductComparison:A.Z,ProductComparisonSidebar:N.Z,ProductComparisonToolbar:V.Z,LinkButtonPrev:$.Z,LinkButtonNext:$.Z,__experimentalFilterDesktop:Q,__experimentalFilterSlider:W,__experimentalProductCard:U,__experimentalEmptyGallery:q,__experimentalProductComparisonSidebar:J},Y=["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}function ProductGallerySection(e){var t,r,n,a,o,i,c,d,s,u,p,f,{emptyGallery:b}=e,v=(0,l.Z)(e,Y),{__experimentalEmptyGallery:y}=(0,h.r3)(),j=(0,g.qt)(),[P,w]=(0,g.En)(j)?[null==j?void 0:null===(t=j.data)||void 0===t?void 0:t.title,null==j?void 0:null===(r=j.data)||void 0===r?void 0:r.searchTerm]:(0,g.OJ)(j)?[null==j?void 0:null===(n=j.data)||void 0===n?void 0:null===(a=n.collection)||void 0===a?void 0:null===(o=a.seo)||void 0===o?void 0:o.title]:[""],O=null!==(i=null==j?void 0:null===(c=j.data)||void 0===c?void 0:null===(d=c.search)||void 0===d?void 0:null===(s=d.products)||void 0===s?void 0:null===(u=s.pageInfo)||void 0===u?void 0:u.totalCount)&&void 0!==i?i:0;return null!=j&&null!==(p=j.data)&&void 0!==p&&null!==(f=p.search)&&void 0!==f&&f.products&&0===O?(0,m.jsx)(I.Z,{className:"".concat(B().section," section-product-gallery"),children:(0,m.jsx)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:(0,m.jsx)(y.Component,ProductGallery_ProductGallery_objectSpread({},b))})}):(0,m.jsx)(I.Z,{className:"".concat(B().section," section-product-gallery layout__section"),children:(0,m.jsx)(ProductGallery_ProductGallery,ProductGallery_ProductGallery_objectSpread({title:P,searchTerm:w,totalCount:O},v))})}ProductGallerySection.$componentKey="ProductGallery";var ee=(0,o.B)("ProductGallery",ProductGallerySection,X);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 et=(0,o.v)(OverriddenDefaultProductGallery_objectSpread(OverriddenDefaultProductGallery_objectSpread(OverriddenDefaultProductGallery_objectSpread({},a),a),{},{Section:ee}))},8335:function(e,t,r){"use strict";var n=r(792),a=r(1549);t.Z=function(e){var{bordered:t,sectioned:r,displayButton:o,aspectRatio:l=1,variant:i="default"}=e;return(0,a.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,a.jsx)("div",{"data-fs-product-card-skeleton-image":!0,style:{"--fs-product-card-skeleton-image-aspect-ratio":l},children:(0,a.jsx)(n.Z,{size:{width:"100%",height:"100%"}})}),(0,a.jsxs)("div",{"data-fs-product-card-skeleton-content":!0,children:[(0,a.jsx)(n.Z,{"data-fs-product-card-skeleton-text":!0,size:{width:"90%",height:"1.5rem"}}),(0,a.jsx)(n.Z,{"data-fs-product-card-skeleton-text":!0,size:{width:"70%",height:"1.5rem"}}),(0,a.jsx)(n.Z,{"data-fs-product-card-skeleton-badge":!0,size:{width:"6rem",height:"2rem"},border:"pill"}),o&&(0,a.jsx)(n.Z,{"data-fs-product-card-skeleton-button":!0,size:{width:"6rem",height:"2rem"},style:{columnGap:".75rem"}})]})]})}},7171:function(e,t,r){"use strict";var n=r(8132),a=r(8335),o=r(1549);t.Z=function(e){var{children:t,aspectRatio:r,loading:l=!0}=e;return l?(0,o.jsx)("ul",{"data-fs-product-grid":!0,children:Array.from({length:n.gK},(e,t)=>(0,o.jsx)("li",{children:(0,o.jsx)(a.Z,{aspectRatio:r,bordered:!0})},String(t)))}):(0,o.jsx)(o.Fragment,{children:t})}},643:function(e,t,r){"use strict";r.d(t,{P:function(){return useFormattedPrice}});var n=r(4194),a=r(7358),usePriceFormatter=function(){var{decimals:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{currency:t,locale:r}=(0,a.kP)();return(0,n.useCallback)(n=>Intl.NumberFormat(r,{style:"currency",currency:t.code,minimumFractionDigits:e?2:0}).format(n),[t.code,r,e])},useFormattedPrice=e=>{var t=usePriceFormatter();return(0,n.useMemo)(()=>t(e),[t,e])}},7772:function(e,t,r){"use strict";r.d(t,{y:function(){return useLocalizedVariables}});var n=r(4194),a=r(7358),o=r(8132),toArray=e=>Array.isArray(e)?e:e?[e]:[],useLocalizedVariables=e=>{var{first:t,after:r,sort:l,term:i,selectedFacets:c,sponsoredCount:d}=e,{channel:s,locale:u}=(0,a.kP)();return(0,n.useMemo)(()=>({first:null!=t?t:o.KS,after:null!=r?r:"0",sort:null!=l?l:"score_desc",term:null!=i?i:"",selectedFacets:[...toArray(c),{key:"channel",value:null!=s?s:""},{key:"locale",value:u}],sponsoredCount:null!=d?d:3}),[c,t,r,l,i,s,u,d])}},330:function(e,t,r){"use strict";r.d(t,{Bj:function(){return p},Y_:function(){return useCreateUseGalleryPage},__:function(){return useGalleryPage}});var n=r(5487),a=r(9029),o=r(4204),l=r.n(o),i=r(4194),c=r(2693),d=r(5011),s=r(7772);function hasTimeElapsed(e){var{timestamp:t,period:r=3e5}=e;return Date.now()-t>r}var u=r(7358),p=(0,i.createContext)(e=>({data:null})),useGalleryPage=e=>{var t=(0,i.useContext)(p);if(!t)throw Error("Missing UseGalleryPageContext on React tree");return t(e)},f=n.gU,getKey=e=>JSON.stringify(e),useCreateUseGalleryPage=e=>{var t,{postalCode:r}=(0,u.kP)(),n=null!=e&&null!==(t=e.initialPages)&&void 0!==t&&t.search?[e.initialPages]:[],o=null!=e&&e.serverManyProductsVariables?[getKey(e.serverManyProductsVariables)]:[],{0:p,1:m}=(0,i.useState)(n),b=(0,i.useRef)(n),v=(0,i.useRef)(o),y=(0,i.useRef)(r),h=(0,i.useCallback)(function(t){var n,o,{state:{sort:u,term:p,selectedFacets:h},itemsPerPage:g}=(0,a.R)(),j=(0,s.y)({first:g,after:(g*t).toString(),sort:u,term:null!==(n=null!==(o=null==e?void 0:e.searchTerm)&&void 0!==o?o:p)&&void 0!==n?n:"",selectedFacets:h}),P=l()(v.current[t],getKey(j)),w=function(e){var{page:t,generatedBuildTime:r}=e;if(0!==t)return!1;var n=(0,i.useRef)(),a=hasTimeElapsed({timestamp:r,period:3e5}),o=void 0===n.current,l=!o&&hasTimeElapsed({timestamp:n.current,period:3e5});return!!a&&(!!o||!!l)&&(n.current=Date.now(),!0)}({page:t,generatedBuildTime:d.A}),O=!P||w||!!r,{data:E,mutate:S}=(0,c.aM)(f,j,{fallbackData:null,suspense:!0,doNotRun:!O}),_=null!==E;if(_){v.current[t]=getKey(j);var k=[...b.current];k[t]=E,b.current=k}return(0,i.useEffect)(()=>{_&&m(e=>{var r=[...e];return r[t]=E,r})},[E,t,_]),(0,i.useEffect)(()=>{r!==y.current&&(S(),y.current=r)},[r]),(0,i.useMemo)(()=>P?{data:b.current[t]}:{data:E},[P,E,t])},[null==e?void 0:e.searchTerm,r]);return(0,i.useMemo)(()=>({pages:p,useGalleryPage:h}),[p,h])}},7444:function(e,t,r){"use strict";r.d(t,{UO:function(){return useProductGalleryQuery}});var n=r(3067),a=r(5487),o=r(2693),l=r(7358),i=r(7772),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 d=a.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{term:t,sort:n,selectedFacets:a,itemsPerPage:s}=e,{locale:u}=(0,l.kP)(),{state:p,setState:f}=(0,c.R)(),m=(0,i.y)({first:s,after:"0",sort:n,term:null!=t?t:"",selectedFacets:a}),b=(0,o.aM)(d,m,{onSuccess:e=>{var n,o,l=null===(n=e.search.metadata)||void 0===n?void 0:n.fuzzy,i=null===(o=e.search.metadata)||void 0===o?void 0:o.logicalOperator,c=new URLSearchParams(window.location.search),d=c.has("fuzzy"),s=c.has("operator");e&&t&&l&&i&&d&&s&&r.e(9399).then(r.bind(r,6393)).then(r=>{var n,a,{sendAnalyticsEvent:o}=r;o({name:"intelligent_search_query",params:{locale:u,term:t,url:window.location.href,logicalOperator:null!=i?i:"and",isTermMisspelled:null!==(n=null===(a=e.search.metadata)||void 0===a?void 0:a.isTermMisspelled)&&void 0!==n&&n,totalCount:e.search.products.pageInfo.totalCount}})}),function(e){var{selectedFacets:t,updatedFuzzyFacetValue:r,updatedOperatorFacetValue:n,setState:a,state:o}=e,l=findFacetValue(t,"fuzzy"),i=findFacetValue(t,"operator");if(r&&r!==l||n&&n!==i){var c,d,s=t.filter(e=>"fuzzy"!==e.key&&"operator"!==e.key);a(_objectSpread(_objectSpread({},o),{},{selectedFacets:[...s,{key:"fuzzy",value:null!==(c=null!=r?r:l)&&void 0!==c?c:"auto"},{key:"operator",value:null!==(d=null!=n?n:i)&&void 0!==d?d:"and"}]}))}}({selectedFacets:a,updatedFuzzyFacetValue:l,updatedOperatorFacetValue:i,setState:f,state:p})}}),v=findFacetValue(a,"fuzzy"),y=findFacetValue(a,"operator");return b.error||v&&y?b:_objectSpread(_objectSpread({},b),{},{isValidating:!0,data:null})}},8998:function(e,t,r){"use strict";r.d(t,{j:function(){return useApplySearchState}});var n=r(3067),a=r(4194);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 useApplySearchState=()=>(0,a.useCallback)(e=>{var t="".concat(e.pathname).concat(e.search);window.history.replaceState(_objectSpread(_objectSpread({},window.history.state),{},{as:t,url:t}),"",t)},[])},5501:function(e){e.exports={section:"section_section__dvBbv"}},4399:function(e){e.exports={section:"section_section__Pdf2v"}},2007:function(e){e.exports={section:"section_section__4Hqa8",loading:"section_loading__GPzvE"}},9767:function(e,t,r){"use strict";var n=r(4194),a=r(5450);let o=(0,n.forwardRef)(function({value:e,as:t="span",variant:r="selling",testId:o="fs-price",formatter:l=e=>e,SRText:i,...c},d){let s=l(e,r);return n.createElement(t,{ref:d,"data-fs-price":!0,"data-fs-price-variant":r,"data-testid":o,...c},i&&n.createElement(a.Z,{text:i}),s)});t.Z=o},5450:function(e,t,r){"use strict";var n=r(4194);t.Z=function({text:e,as:t}){let r=t??"span";return n.createElement(r,{"data-fs-sr-only":!0},e)}},4873:function(e,t,r){"use strict";var n=r(4194),a=r(2614);let o=(0,n.forwardRef)(function({options:e,id:t,testId:r="fs-select",...o},l){return n.createElement("div",{"data-fs-select":!0},n.createElement("select",{ref:l,id:t,"data-testid":r,...o},Object.keys(e).map(t=>n.createElement("option",{key:t,value:t},e[t]))),n.createElement(a.Z,{"data-fs-select-icon":!0,name:"CaretDown"}))});t.Z=o},792:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({testId:e="fs-skeleton",loading:t=!0,shimmer:r=!0,children:a,size:o,border:l,borderRadius:i,...c},d){let s={width:o.width,height:o.height};return t?n.createElement("div",{ref:d,"data-fs-skeleton":!0,"data-testid":e,"data-fs-skeleton-border":l||null,style:i?{...s,borderRadius:i}:s,...c},r&&n.createElement("div",{"data-fs-skeleton-shimmer":!0})):n.createElement(n.Fragment,null,a)});t.Z=a},2182:function(e,t,r){"use strict";r.d(t,{S:function(){return useProductComparison}});var n=r(4194),a=r(2770);function useProductComparison(){let e=(0,n.useContext)(a.A);if(void 0===e)throw Error("useProductComparison must be used within a ProductComparisonProvider");return e}},1972:function(e,t,r){"use strict";r.d(t,{Z:function(){return Breadcrumb_Breadcrumb}});var n=r(4194),a=r(2614),o=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))),d=(0,n.lazy)(()=>r.e(4219).then(r.bind(r,5741))),s=(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:m,dropdownButtonIcon:b=n.createElement(a.Z,{name:"DotsThree"}),collapsedItemsIcon:v=n.createElement(a.Z,{"data-fs-dropdown-item-icon":!0,name:"ArrowElbowDownRight"}),...y},h){let g=p?u[0]:null,j=p?u.slice(1,-2):u.slice(0,-2),P=u.slice(-2),w=u.length>4,O=(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(o.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,...y},m,!w&&u.map((e,t)=>u.length===t+1?n.createElement("span",{key:String(e.position)},e.name):O({itemProps:e,collapsed:!1})),w&&g&&O({itemProps:g,collapsed:!1}),w&&n.createElement(n.Suspense,null,n.createElement(i,null,n.createElement(c,{"aria-label":"View More","data-fs-breadcrumb-dropdown-button":!0,size:"small"},b),n.createElement(d,{"data-fs-breadcrumb-dropdown-menu":!0},j.map(e=>n.createElement(s,{"data-fs-breadcrumb-dropdown-item":!0,key:String(e.position),icon:v},O({itemProps:e,collapsed:!0})))))),w&&P.map((e,t)=>P.length===t+1?n.createElement("span",{key:String(e.position)},e.name):O({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),a=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:a})=>{let o={"data-testid":`${a}-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,o),t?null:n.createElement(Breadcrumb_Divider,{divider:r,testId:a})):n.createElement("li",{"data-fs-breadcrumb-list-item":!0},n.createElement("span",{...o},e,t?null:n.createElement(Breadcrumb_Divider,{divider:r,testId:a})))};let o=(0,n.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",...o},l){return n.createElement("nav",{"aria-label":"Breadcrumb",role:"navigation",ref:l,"data-fs-breadcrumb":!0,"data-testid":r,...o},n.createElement(a.Z,{as:"ol","data-fs-breadcrumb-list":!0,"data-fs-content":"breadcrumb"},n.Children.toArray(e).map((e,a,o)=>{let l=a===o.length-1;return n.createElement(Breadcrumb_ListItem,{isLastItem:l,divider:t,key:`breadcrumb-${a}`,testId:r},e)})))});var l=o},2946:function(e,t,r){"use strict";r.d(t,{Z:function(){return DiscountBadge_DiscountBadge}});var n=r(4194),a=r(276);let useDiscountPercent=(e,t)=>(0,n.useMemo)(()=>{let r=e-t,n=100*r/e;return Math.round(n)},[t,e]);var DiscountBadge_DiscountBadge=({listPrice:e,spotPrice:t,thresholdLow:r=15,thresholdHigh:o=40,size:l,testId:i="fs-discount-badge"})=>{let c=useDiscountPercent(e,t);if(0===c)return n.createElement(n.Fragment,null);let d=c<=r?"low":c<=o?"medium":"high";return n.createElement(a.Z,{"data-fs-discount-badge":!0,"data-fs-discount-badge-variant":d,size:l,"data-testid":i},c,"% off")}},7169:function(e,t,r){"use strict";r.r(t);var n=r(4194),a=r(9642);t.default=({children:e,isOpen:t,onDismiss:r,id:o="fs-dropdown"})=>{let[l,i]=(0,n.useState)(!1),c=(0,n.useRef)([]),d=(0,n.useRef)(0),s=(0,n.useRef)(null),u=t??l,p=(0,n.useCallback)(()=>{i(!1),r?.()},[r]),open=()=>{i(!0)},f=(0,n.useCallback)(()=>{i(e=>(e&&(r?.(),s.current?.focus()),!e))},[r]),m=(0,n.useCallback)(e=>{s.current=e},[]);(0,n.useEffect)(()=>{i(t??!1)},[t]),(0,n.useEffect)(()=>{u&&c?.current[0]?.focus()},[u]),(0,n.useEffect)(()=>{let e=!0,event=t=>{let r=c?.current.some(e=>t.target===e||e.contains(t.target));if(e){e=!1;return}r||p()};return u?document.addEventListener("click",event):document.removeEventListener("click",event),()=>{document.removeEventListener("click",event)}},[p,u]);let b=(0,n.useMemo)(()=>({isOpen:u,close:p,open,toggle:f,dropdownTriggerRef:s,addDropdownTriggerRef:m,selectedDropdownItemIndexRef:d,dropdownItemsRef:c,id:o}),[u,p,f,m,o]);return n.createElement(a.Z.Provider,{value:b},e)}},9570:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(4194),a=r(9009),o=r(5494);let useDropdownTrigger=({triggerRef:e})=>{let{toggle:t,dropdownTriggerRef:r,addDropdownTriggerRef:a,isOpen:l,id:i}=(0,o.x)();return(0,n.useImperativeHandle)(e,()=>r.current,[r]),{onClick:t,ref:a,"aria-expanded":l,"aria-controls":i,"aria-haspopup":"menu"}},l=(0,n.forwardRef)(function({testId:e="fs-dropdown-button",children:t,asChild:r=!1,...o},l){let i=useDropdownTrigger({triggerRef:l}),c=n.isValidElement(t)?(0,n.cloneElement)(t,{...i,...t.props}):t;return n.createElement(n.Fragment,null,r?c:n.createElement(a.Z,{"data-fs-dropdown-button":!0,"data-testid":e,variant:"tertiary",...i,...o},t))});var i=l},4451:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return l}});var n=r(4194),a=r(5494);let useDropdownItem=({ref:e,onClick:t,dismissOnClick:r=!0})=>{let{dropdownItemsRef:o,selectedDropdownItemIndexRef:l,close:i}=(0,a.x)(),[c,d]=(0,n.useState)(0),s=(0,n.useRef)(),onFocusItem=()=>{l.current=c,o?.current[l.current]?.focus()};return(0,n.useImperativeHandle)(e,()=>s.current,[]),{ref:e=>{e&&!o?.current.includes(e)&&(o?.current.push(e),d(o?.current.findIndex(t=>t===e)??0)),s.current=e},onFocus:onFocusItem,onMouseEnter:onFocusItem,onClick:e=>{t?.(e),r&&i?.()},role:"menuitem",tabIndex:-1,"data-index":c}},o=(0,n.forwardRef)(function({children:e,asChild:t,icon:r,onClick:a,dismissOnClick:o=!0,testId:l="fs-dropdown-item",...i},c){let d=useDropdownItem({ref:c,onClick:a,dismissOnClick:o}),s=n.isValidElement(e)?(0,n.cloneElement)(e,{...d,...e.props}):e;return n.createElement(n.Fragment,null,t?s:n.createElement("button",{"data-fs-dropdown-item":!0,"data-testid":l,...d,...i},!!r&&r,e))});var l=o},5741:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return Dropdown_DropdownMenu}});var n=r(4194),a=r(6321),o=r(5494);let useDropdownPosition=(e="left")=>{let{dropdownTriggerRef:t,isOpen:r}=(0,o.x)(),[a,l]=(0,n.useState)({top:0,left:0,right:"auto",transform:"none",loading:!0});return(0,n.useEffect)(()=>{let updateMenuPosition=()=>{let r="undefined"!=typeof window;if(!t?.current)return;let n=t.current.getBoundingClientRect(),a=n?.top??0,o=n?.height??0,i=n?.left??0,c=n?.width??0,d=r?document?.documentElement?.scrollTop:0,s=r?document?.documentElement?.scrollLeft:0,u=i+s,p="auto",f="none";"right"===e?(p=`${document.documentElement.clientWidth-i-c}px`,u="auto"):"center"===e&&(u=i+c/2+s,f="translateX(-50%)"),l({top:a+o+d,left:u,right:p,transform:f,loading:!1})};return r&&(updateMenuPosition(),window.addEventListener("resize",updateMenuPosition)),()=>{window.removeEventListener("resize",updateMenuPosition)}},[t,r,e]),{...a,position:"absolute"}};var Dropdown_DropdownMenu=({children:e,testId:t="fs-dropdown-menu",size:r="regular",align:l="left",style:i,...c})=>{let{isOpen:d,close:s,dropdownItemsRef:u,selectedDropdownItemIndexRef:p,dropdownTriggerRef:f,id:m}=(0,o.x)(),{loading:b,...v}=useDropdownPosition(l),y=n.Children.toArray(e).length,handleDownPress=()=>{p.current<y-1?p.current++:p.current=0,u?.current[p.current]?.focus()},handleUpPress=()=>{p.current>0?p.current--:p.current=y-1,u?.current[p.current]?.focus()},handleHomePress=()=>{p.current=0,u?.current[p.current]?.focus()},handleEndPress=()=>{p.current=y-1,u?.current[p.current]?.focus()},handleEscapePress=()=>{s?.(),f?.current?.focus()},handleKeyNavigatePress=e=>{let t=u?.current??[],r=p.current,n=[...t.slice(r+1),...t.slice(0,r+1)],a=n.find(t=>t.textContent?.[0]?.toLowerCase()===e.toLowerCase());a&&(p.current=t.indexOf(a),a.focus())};return d&&!b?(0,a.createPortal)(n.createElement("div",{role:"presentation","data-fs-dropdown-overlay":!0,onKeyDown:e=>{if(!e.defaultPrevented&&"Enter"!==e.key&&" "!==e.key){switch(e.preventDefault(),e.key){case"Escape":handleEscapePress();break;case"ArrowDown":handleDownPress();break;case"ArrowUp":handleUpPress();break;case"Home":handleHomePress();break;case"End":handleEndPress();break;default:handleKeyNavigatePress(e.key)}e.stopPropagation()}},"data-testid":`${t}-overlay`},n.createElement("div",{role:"menu","aria-orientation":"vertical","data-fs-dropdown-menu":!0,"data-fs-dropdown-menu-size":r,"data-testid":t,style:{...v,...i},id:m,...c},e)),document.body):(u.current=[],null)}},9642:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.createContext)({isOpen:!1,dropdownTriggerRef:null,selectedDropdownItemIndexRef:null,dropdownItemsRef:null,id:"fs-dropdown"});t.Z=a},5494:function(e,t,r){"use strict";r.d(t,{x:function(){return useDropdown}});var n=r(4194),a=r(9642);let useDropdown=()=>{let e=(0,n.useContext)(a.Z);if(void 0===e)throw Error("Do not use useDropdown hook outside the Dropdown context.");return e}},3922:function(e,t,r){"use strict";var n=r(4194);t.Z=function({icon:e,inverse:t,children:r,disabled:a,iconPosition:o,size:l="regular",variant:i="primary",testId:c="fs-link-button",...d}){let s=(0,n.useRef)(null);return n.createElement("a",{ref:s,"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":a,onFocus:function(e){e.preventDefault(),a&&s.current?.blur()},"data-testid":c,...d},n.createElement("div",{"data-fs-button-wrapper":!0},!!e&&"left"===o&&n.createElement("span",{"data-fs-button-icon":!0},e),r&&n.createElement("span",null,r),!!e&&"right"===o&&n.createElement("span",{"data-fs-button-icon":!0},e)))}},8394:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({testId:e="fs-product-card",variant:t="default",bordered:r=!1,outOfStock:a,children:o,...l},i){return n.createElement("article",{ref:i,"data-fs-product-card":a?"out-of-stock":"","data-fs-product-card-variant":t,"data-fs-product-card-bordered":r,"data-testid":e,...l},o)});t.Z=a},547:function(e,t,r){"use strict";var n=r(4194),a=r(727),o=r(9088),l=r(1953),i=r(3024),c=r(2614),d=r(2946),s=r(276),u=r(9009);let p=(0,n.forwardRef)(function({testId:e="fs-product-card-content",title:t,linkProps:r,price:p,outOfStock:f,outOfStockLabel:m="Out of stock",ratingValue:b,showDiscountBadge:v,buttonLabel:y="Add",onButtonClick:h,children:g,includeTaxes:j=!1,includeTaxesLabel:P="Tax included",sponsored:w=!1,sponsoredLabel:O="Sponsored",...E},S){let _=p?.listPrice?p.listPrice:0,k=p?.value?p.value:0;return n.createElement("section",{ref:S,"data-fs-product-card-content":!0,"data-fs-product-card-badge":v,"data-testid":e,...E},w&&n.createElement("span",{"data-fs-product-card-sponsored-label":!0},O),n.createElement("div",{"data-fs-product-card-heading":!0},n.createElement("h3",{"data-fs-product-card-title":!0},n.createElement(a.Z,{...r,title:t},n.createElement("span",null,t))),!f&&n.createElement(o.Z,{"data-fs-product-card-prices":!0,value:k,listPrice:_,formatter:p?.formatter}),j&&n.createElement(l.Z,{"data-fs-product-card-taxes-label":!0},P),b&&n.createElement(i.Z,{value:b,icon:n.createElement(c.Z,{name:"Star"})})),v&&!f&&n.createElement(d.Z,{listPrice:_,spotPrice:k}),f&&n.createElement(s.Z,null,m),h&&!f&&n.createElement("div",{"data-fs-product-card-actions":!0},n.createElement(u.Z,{variant:"primary",icon:n.createElement(c.Z,{name:"ShoppingCart"}),iconPosition:"left",size:"small",onClick:h},y)))});t.Z=p},5167:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({testId:e="fs-product-card-image",aspectRatio:t=1,children:r,...a},o){return n.createElement("div",{ref:o,"data-fs-product-card-image":!0,"data-testid":e,style:{"--fs-product-card-image-aspect-ratio":t},...a},r)});t.Z=a},9088:function(e,t,r){"use strict";var n=r(4194),a=r(9767);let o=(0,n.forwardRef)(function({testId:e="fs-product-price",value:t,listPrice:r,formatter:o,...l},i){let c=r??0,d=t??0;return n.createElement("div",{ref:i,"data-fs-product-price":!0,"data-testid":e,...l},d!==c&&0!==c?n.createElement(n.Fragment,null,n.createElement(a.Z,{value:c,formatter:o,testId:"list-price","data-value":c,variant:"listing",SRText:"Original price:"}),n.createElement(a.Z,{value:d,formatter:o,testId:"price","data-value":d,variant:"spot",SRText:"Price:"})):n.createElement(a.Z,{value:d,formatter:o,testId:"price","data-value":d,variant:"spot",SRText:"Price:"}))});t.Z=o},3024:function(e,t,r){"use strict";var n=r(4194),a=r(2614),o=r(7041),l=r(4564);let i=(0,n.forwardRef)(function({children:e,testId:t="fs-rating",length:r=5,value:i=0,icon:c,onChange:d,disabled:s,...u},p){let[f,m]=(0,n.useState)(0),b={"data-fs-rating-icon-outline":!0},v=n.isValidElement(c)?c:n.createElement(a.Z,{name:"Star"});return n.createElement(l.Z,{ref:p,"data-fs-rating":!0,"data-fs-rating-actionable":"function"==typeof d,"data-testid":t,...u},Array.from({length:r}).map((e,r)=>{let l=r+1;return n.createElement("li",{key:`rating-${r}`,"data-fs-rating-item":l<=(f||i)?"full":l-i>0&&l-i<1?"partial":"empty","data-testid":`${t}-item`},d?n.createElement(o.Z,{"data-fs-rating-button":!0,icon:v,size:"small","aria-label":"rate",onClick:()=>{d(l)},onMouseEnter:()=>m(l),onMouseLeave:()=>m(i),disabled:s}):n.createElement(n.Fragment,null,n.createElement("div",{"data-fs-rating-icon-wrapper":!0},v),n.isValidElement(c)?n.cloneElement(c,b):n.createElement(a.Z,{name:"Star","data-fs-rating-icon-outline":!0})))}))});t.Z=i},6335:function(e,t,r){"use strict";var n=r(4194),a=r(1953),o=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(a.Z,{"data-fs-select-field-label":!0,htmlFor:e},t),n.createElement(o.Z,{id:e,options:r,"data-testid":l,...i}))});t.Z=l},7336:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({children:e,variant:t="colored",testId:r="fs-table",...a},o){return n.createElement("div",{"data-fs-table":!0},n.createElement("table",{ref:o,"data-fs-table-content":!0,"data-fs-table-variant":t,"data-testid":r,...a},e))});t.Z=a},9336:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({children:e,testId:t="fs-table-body",...r},a){return n.createElement("tbody",{ref:a,"data-testid":t,"data-fs-table-body":!0,...r},e)});t.Z=a},4256:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({scope:e,align:t,children:r,variant:a="data",testId:o="fs-table-cell",...l},i){return n.createElement("header"===a?"th":"td",{ref:i,"data-fs-table-cell":a,"data-fs-table-cell-align":t,"data-testid":o,scope:e,...l},r)});t.Z=a},411:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({children:e,testId:t="fs-table-head",...r},a){return n.createElement("thead",{ref:a,"data-testid":t,"data-fs-table-head":!0,...r},e)});t.Z=a},4236:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({children:e,testId:t="fs-table-row",...r},a){return n.createElement("tr",{ref:a,"data-fs-table-row":!0,"data-testid":t,...r},e)});t.Z=a},540:function(e,t,r){"use strict";var n=r(4194),a=r(2256),o=r(2614);let l=(0,n.forwardRef)(function({testId:e="fs-toggle",id:t,disabled:r,variant:l="horizontal",...i},c){return n.createElement("div",{"data-fs-toggle":!0,"data-fs-toggle-variant":l,"data-testid":e},n.createElement(a.Z,{ref:c,id:t,role:"switch",type:"checkbox",disabled:r,...i}),n.createElement("span",{"data-fs-toggle-knob":!0},n.createElement(o.Z,{name:"Checked"})))});t.Z=l},5660:function(e,t,r){"use strict";var n=r(4194),a=r(540),o=r(1953),l=r(5450);let i=(0,n.forwardRef)(function({testId:e="fs-toggle-field",id:t,label:r,disabled:i,displayLabel:c=!0,variant:d="horizontal",...s},u){return n.createElement("div",{ref:u,"data-fs-toggle-field":!0,"data-testid":e},n.createElement(a.Z,{id:t,variant:d,disabled:i,...s}),c?n.createElement(o.Z,{"data-fs-toggle-field-label":!0,htmlFor:t},r):n.createElement(l.Z,{text:r}))});t.Z=i},8957:function(e,t,r){"use strict";r.d(t,{u:function(){return useHero}});var n=r(4194);let a=(0,n.createContext)(void 0),o=(0,n.forwardRef)(function({children:e,testId:t="fs-hero",variant:r="primary",colorVariant:o="main",...l},i){return n.createElement(a.Provider,{value:{variant:r,colorVariant:o}},n.createElement("article",{ref:i,"data-fs-hero":!0,"data-fs-hero-variant":r,"data-fs-hero-color-variant":o,"data-testid":t,...l},e))});function useHero(){let e=(0,n.useContext)(a);if(void 0===e)throw Error("Do not use Hero components outside the Hero context.");return e}t.Z=o},7154:function(e,t,r){"use strict";var n=r(4194),a=r(3922),o=r(2614),l=r(8957);let i=(0,n.forwardRef)(function({icon:e,link:t,title:r,linkText:i,linkTargetBlank:c,subtitle:d,children:s,testId:u="fs-hero-heading",...p},f){let{variant:m,colorVariant:b}=(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},d),!!t&&n.createElement(a.Z,{href:t,inverse:"main"===b,icon:n.createElement(o.Z,{name:"ArrowRight"}),iconPosition:"right",target:c?"_blank":void 0},i)),!!e&&"secondary"===m&&n.createElement("span",{"data-fs-hero-icon":!0},e)))});t.Z=i},4147:function(e,t,r){"use strict";var n=r(4194);let a=(0,n.forwardRef)(function({children:e,testId:t="fs-hero-image",...r},a){return n.createElement("div",{ref:a,"data-fs-hero-image":!0,"data-testid":t,...r},e)});t.Z=a},9505:function(e,t,r){"use strict";var n=r(4194),a=r(2770);let o=(0,n.forwardRef)(function({testId:e="fs-product-comparison",children:t,...r},o){return n.createElement("div",{ref:o,"data-testid":e,...r},n.createElement(a.Z,null,t))});t.Z=o},8668:function(e,t,r){"use strict";var n=r(4194),a=r(3666),o=r(2182),l=r(7215),i=r(5049),c=r(7336),d=r(411),s=r(4236),u=r(4256),p=r(9336),f=r(5660),m=r(276),b=r(9009),v=r(4873),y=r(9767),h=r(8394),g=r(5167),j=r(547),P=r(7169),w=r(9570),O=r(5741),E=r(4451),S=r(2614);let ImageComponent=({src:e,alt:t,...r})=>n.createElement("img",{src:e,alt:t,...r}),getAllSpecifications=e=>e?.skuSpecifications?.map(e=>e.field)||[],getDifferences=(e,t)=>{let r=getAllSpecifications(e),n=t.map(e=>e.additionalProperty.map(e=>[e.name,e.value||""]));return r.filter(e=>{let t=n.map(t=>t.find(t=>t[0]===e)?.[1]);return!t.every((e,t,r)=>e===r[0])})||[]};t.Z=function({title:e,sortLabel:t,filterLabel:r,preferencesLabel:_,productNameFilterLabel:k,toggleFieldLabel:Z,priceLabel:x,cartButtonLabel:D,priceWithTaxLabel:C,technicalInformation:G,size:F="partial",direction:B="rightSide",priceFormatter:R,overlayProps:K,sortOptions:z,handleProductToBuy:I,setPendingEvent:L,...M}){let{fade:T}=(0,a.b)(),{isOpen:H,setIsOpen:A,products:N}=(0,o.S)(),[V,$]=(0,n.useState)(!0),[U,q]=(0,n.useState)("productByName"),[Q,W]=(0,n.useState)(!1),handleClickAddCart=(e,t)=>{e.preventDefault(),I(t.id),L(e)},J=(0,n.useMemo)(()=>z?.find(e=>e.value===U)?.onChange(N)??N,[U,N]),{specsToShow:X}=(0,n.useMemo)(()=>{let e=N[0],t=getAllSpecifications(e),r=getDifferences(e,J);return{specsToShow:Q?r:t,allSpecs:t,diffSpecs:r}},[N,J,Q]);(0,n.useEffect)(()=>{if(H){document.body.style.overflow="hidden";return}document.body.style.overflow=""},[H]);let Y=(0,n.useMemo)(()=>z?.reduce((e,t)=>(e[t.value]=t.label,e),{})||{},[z]);return n.createElement(l.Z,{"data-fs-product-comparison-sidebar":!0,fade:T,size:F,direction:B,isOpen:H,overlayProps:K,...M},n.createElement(i.Z,{onClose:()=>A(!1)},n.createElement("div",null,n.createElement("h2",{"data-fs-product-comparison-sidebar-header-title":!0},e),n.createElement(m.Z,{size:"big",variant:"neutral"},N.length))),n.createElement("div",{"data-fs-product-comparison-filters":!0},n.createElement("div",{"data-fs-product-comparison-container":!0},n.createElement("p",{"data-fs-product-comparison-filters-sort-label":!0},t),n.createElement(v.Z,{id:"product-comparison-sort-by",options:Y,value:U,onChange:e=>q(e.target.value)})),n.createElement(f.Z,{id:"product-comparison-show-differences",label:Z,checked:Q,onChange:()=>W(!Q)})),n.createElement(n.Suspense,null,n.createElement(P.default,null,n.createElement(w.default,{"data-fs-product-comparison-dropdown-button":!0},r),n.createElement(O.default,{className:K?.className},n.createElement("div",{"data-fs-product-comparison-dropdown-menu-content":!0},n.createElement(E.default,{asChild:!0,dismissOnClick:!1},n.createElement("div",{"data-fs-product-comparison-dropdown-item-filter-type":!0},n.createElement("span",{"data-fs-product-comparison-dropdown-item-filter-type-text":!0},_))),n.createElement(E.default,{dismissOnClick:!1,asChild:!0,"data-fs-product-comparison-toggle-field-mobile":!0},n.createElement(f.Z,{id:"product-comparison-show-differences",label:Z,checked:Q,onChange:()=>W(!Q)})),n.createElement(E.default,{asChild:!0,dismissOnClick:!1},n.createElement("div",{"data-fs-product-comparison-dropdown-item-filter-type":!0},n.createElement("span",{"data-fs-product-comparison-dropdown-item-filter-type-text":!0},t))),n.createElement(E.default,{dismissOnClick:!1,onClick:()=>q("productByName"),"data-fs-dropdown-filter-selected":"productByName"===U||void 0},"productByName"===U&&n.createElement(S.Z,{name:"Checked",width:16,height:16}),n.createElement("p",null,k)),n.createElement(E.default,{dismissOnClick:!1,onClick:()=>q("productByPrice"),"data-fs-dropdown-filter-selected":"productByPrice"===U||void 0},"productByPrice"===U&&n.createElement(S.Z,{name:"Checked",width:16,height:16}),n.createElement("p",null,x)))))),n.createElement(c.Z,null,n.createElement(d.Z,null,n.createElement(s.Z,null,N.map(e=>n.createElement(u.Z,{key:e.id},n.createElement(h.Z,null,n.createElement(g.Z,{aspectRatio:1},n.createElement(ImageComponent,{src:e.image[0]?.url,alt:e.image[0]?.alternateName})),n.createElement(j.Z,{title:e.name,outOfStock:"https://schema.org/InStock"!==e.offers.offers[0].availability,price:{value:e.offers.offers[0].price,listPrice:e.offers.offers[0].listPrice,formatter:R},buttonLabel:D,showDiscountBadge:!0})),n.createElement(b.Z,{variant:"tertiary",size:"small",onClick:t=>handleClickAddCart(t,e)},D))))),n.createElement(p.Z,null,n.createElement(s.Z,{"data-fs-product-comparison-row-header":!0},n.createElement(u.Z,null,n.createElement(b.Z,{"data-fs-product-comparison-row-header-button":!0,"aria-label":"Toggle technical information",size:"small",iconPosition:"right",icon:n.createElement(S.Z,{name:V?"CaretUp":"CaretDown"}),onClick:function(){$(!V)}},n.createElement("h2",{"data-fs-product-comparison-row-header-button-title":!0},G?.title),n.createElement("h3",{"data-fs-product-comparison-row-header-button-description":!0},G?.description)))),V&&n.createElement(n.Fragment,null,n.createElement(s.Z,null,J.map(e=>n.createElement(u.Z,{key:e.id},n.createElement("span",{"data-fs-product-comparison-row-label":!0},C),n.createElement(y.Z,{"data-fs-product-comparison-row-text":!0,formatter:R,value:e.offers.lowPriceWithTaxes,variant:"selling"})))),X?.map(e=>n.createElement(s.Z,{key:e},J.map(t=>n.createElement(u.Z,{key:t.id},n.createElement("span",{"data-fs-product-comparison-row-label":!0},e),n.createElement("p",{"data-fs-product-comparison-row-text":!0},t.additionalProperty.find(t=>t.name===e&&"SPECIFICATION"===t.valueReference)?.value||"-")))))))))}},9947:function(e,t,r){"use strict";var n=r(4194),a=r(1953),o=r(9009),l=r(2182);let ImageComponent=({src:e,alt:t,...r})=>n.createElement("img",{src:e,alt:t,...r});t.Z=function({clearSelectionButtonLabel:e,compareButtonLabel:t,selectionWarningLabel:r}){let{isOpen:i,setIsOpen:c,products:d,clearProducts:s}=(0,l.S)(),u=d.slice(0,3);return!d.length&&i?null:n.createElement("footer",{"data-fs-product-comparison-toolbar":!0},n.createElement("div",{"data-fs-product-comparison-toolbar-image":!0},u.map(e=>n.createElement(ImageComponent,{key:e.id,src:e.image[0].url,alt:e.name,width:60,height:60})),d.length>3&&n.createElement("div",{"data-fs-product-comparison-toolbar-image-more":!0},n.createElement("p",null,`+${d.length-3}`)),1===d.length&&n.createElement(a.Z,{"data-fs-product-comparison-selection-warning-label":!0},r)),n.createElement(o.Z,{variant:"tertiary",onClick:()=>s()},e),n.createElement(o.Z,{variant:"primary",disabled:d.length<2,onClick:()=>c(!0)},d.length>1?`${t} ${d.length}`:t))}},2770:function(e,t,r){"use strict";r.d(t,{A:function(){return a}});var n=r(4194);let a=(0,n.createContext)(void 0);t.Z=function({children:e}){let[t,r]=(0,n.useState)([]),[o,l]=(0,n.useState)([]),[i,c]=(0,n.useState)(!1),d=(0,n.useCallback)(e=>{r(t=>t.includes(e?.id)?t.filter(t=>t!==e.id):[...t,e.id]),l(t=>t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):[...t,e])},[]);return n.createElement(a.Provider,{value:{isOpen:i,setIsOpen:c,productIds:t,products:o,handleProductsIds:d,handleProductsComparison:function(e){let t=e.map(t=>{let r=e.find(e=>e.id===t.id);return{...t,...r}});l(t)},clearProducts:function(){r([]),l([])}}},e)}},6763:function(e,t,r){"use strict";r.d(t,{z:function(){return Provider}});var n=r(4194),a=r(1414);(0,n.createContext)(void 0);let Provider=({children:e,itemsPerPage:t,onChange:r,...o})=>{let l=(0,a.X)();return(0,n.useEffect)(()=>a.X.subscribe(()=>{r?.(l.serializedState())}),[r]),(0,n.useEffect)(()=>{let{itemsPerPage:e}=a.X.getState();t&&t!==e&&l.setItemsPerPage(t)},[t]),(0,n.useEffect)(()=>{l.setState(o),l.resetInfiniteScroll(o.page??0)},[]),n.createElement(n.Fragment,null,e)}},1341:function(e,t,r){"use strict";r.d(t,{h:function(){return usePagination}});var n=r(4194),a=r(2339),o=r(9029);let getLink=e=>{let{pathname:t,search:r}=(0,a.Z)(e);return`${t}${r}`},usePagination=e=>{let{pages:t,itemsPerPage:r,state:a}=(0,o.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({...a,page:i})},prev:c>-1&&{cursor:c,link:getLink({...a,page:c})}}),[i,c,a,l])}}}]);