@faststore/core 3.98.2 → 3.98.4

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 (47) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +24 -24
  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 +7 -7
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/5133.js +1 -1
  14. package/.next/server/chunks/8971.js +1 -1
  15. package/.next/server/functions-config-manifest.json +1 -1
  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/api/preview.js +1 -1
  20. package/.next/server/pages/en-US/404.html +2 -2
  21. package/.next/server/pages/en-US/500.html +2 -2
  22. package/.next/server/pages/en-US/checkout.html +2 -2
  23. package/.next/server/pages/en-US/login.html +2 -2
  24. package/.next/server/pages/en-US/s.html +2 -2
  25. package/.next/server/pages/en-US.html +2 -2
  26. package/.next/server/pages/s.js +1 -1
  27. package/.next/server/pages-manifest.json +1 -1
  28. package/.next/static/{RhuP_UJjSrpDj_sqLfUA9 → 9lFuk39f-HZcrM7Ul1Rlh}/_buildManifest.js +1 -1
  29. package/.next/static/chunks/{2811.cf089090a8b79215.js → 2811.0a4ea0e6fcf4c4c2.js} +1 -1
  30. package/.next/static/chunks/{2927.5a79877943a6bf7c.js → 2927.23bae2c79f0ac0f3.js} +1 -1
  31. package/.next/static/chunks/6656-7e6ea87d91e44b10.js +1 -0
  32. package/.next/static/chunks/{UIToast.19a8664c01a00d3a.js → UIToast.de15325248043ce5.js} +1 -1
  33. package/.next/static/chunks/pages/{_app-735c745509e1e8d6.js → _app-8be996b3105d8c26.js} +1 -1
  34. package/.next/static/chunks/{webpack-e3703857dd8c6937.js → webpack-fd706604cbbdc60f.js} +1 -1
  35. package/.next/trace +142 -142
  36. package/.turbo/turbo-build.log +11 -11
  37. package/.turbo/turbo-test.log +8 -9
  38. package/CHANGELOG.md +10 -0
  39. package/package.json +2 -2
  40. package/src/sdk/graphql/request.ts +1 -1
  41. package/src/sdk/product/usePageProductsQuery.ts +35 -4
  42. package/src/sdk/product/useProductGalleryQuery.ts +6 -1
  43. package/src/server/content/service.ts +3 -1
  44. package/src/utils/cookieCacheBusting.ts +79 -19
  45. package/test/utils/cookieCacheBusting.test.ts +167 -75
  46. package/.next/static/chunks/6656-efc464f20ffeaa51.js +0 -1
  47. /package/.next/static/{RhuP_UJjSrpDj_sqLfUA9 → 9lFuk39f-HZcrM7Ul1Rlh}/_ssgManifest.js +0 -0
@@ -12,19 +12,33 @@ jest.mock('src/sdk/session', () => ({
12
12
  },
13
13
  }))
14
14
 
15
+ jest.mock('discovery.config', () => ({
16
+ deliveryPromise: { enabled: true },
17
+ }))
18
+
15
19
  import {
16
20
  getClientCacheBustingValue,
17
21
  STORAGE_KEY_PERSON_ID,
22
+ STORAGE_KEY_POSTAL_CODE,
18
23
  STORAGE_KEY_CACHE_BUST_LAST_VALUE,
19
24
  } from '../../src/utils/cookieCacheBusting'
20
25
 
21
- const setSessionPerson = (personId: string) => {
22
- const session = { person: { id: personId } }
26
+ const setSession = ({
27
+ personId = null,
28
+ postalCode = null,
29
+ }: {
30
+ personId?: string | null
31
+ postalCode?: string | null
32
+ }) => {
33
+ const session = {
34
+ person: personId ? { id: personId } : null,
35
+ postalCode,
36
+ }
23
37
  mockRead.mockReturnValue(session)
24
38
  mockReadInitial.mockReturnValue(session)
25
39
  }
26
40
 
27
- const clearSessionPerson = () => {
41
+ const clearSession = () => {
28
42
  mockRead.mockReturnValue(null)
29
43
  mockReadInitial.mockReturnValue(null)
30
44
  }
@@ -33,96 +47,174 @@ describe('cookieCacheBusting', () => {
33
47
  beforeEach(() => {
34
48
  jest.restoreAllMocks()
35
49
  sessionStorage.clear()
36
- clearSessionPerson()
50
+ clearSession()
37
51
  })
38
52
 
39
- it('should clear storage and return null when user is not logged in (no person?.id)', () => {
40
- const removeItemSpy = jest.spyOn(Storage.prototype, 'removeItem')
53
+ describe('returns null (shared public CDN cache)', () => {
54
+ it('should clear storage and return null when neither person nor postalCode is set', () => {
55
+ const removeItemSpy = jest.spyOn(Storage.prototype, 'removeItem')
41
56
 
42
- const result = getClientCacheBustingValue()
57
+ const result = getClientCacheBustingValue()
43
58
 
44
- expect(result).toBeNull()
45
- expect(removeItemSpy).toHaveBeenCalledWith(STORAGE_KEY_PERSON_ID)
46
- expect(removeItemSpy).toHaveBeenCalledWith(
47
- STORAGE_KEY_CACHE_BUST_LAST_VALUE
48
- )
59
+ expect(result).toBeNull()
60
+ expect(removeItemSpy).toHaveBeenCalledWith(STORAGE_KEY_PERSON_ID)
61
+ expect(removeItemSpy).toHaveBeenCalledWith(STORAGE_KEY_POSTAL_CODE)
62
+ expect(removeItemSpy).toHaveBeenCalledWith(
63
+ STORAGE_KEY_CACHE_BUST_LAST_VALUE
64
+ )
65
+ })
49
66
  })
50
67
 
51
- it('should return a new timestamp and persist values when auth state changed (login)', () => {
52
- setSessionPerson('user-id-1')
68
+ describe('auth state (person.id)', () => {
69
+ it('should return a new timestamp value and persist when person logs in', () => {
70
+ setSession({ personId: 'user-id-1' })
71
+
72
+ const nowSpy = jest.spyOn(Date, 'now').mockReturnValue(1700000000000)
73
+ const setItemSpy = jest.spyOn(Storage.prototype, 'setItem')
74
+
75
+ const result = getClientCacheBustingValue()
76
+
77
+ expect(result).toBe('1700000000000::user-id-1')
78
+ expect(nowSpy).toHaveBeenCalled()
79
+ expect(setItemSpy).toHaveBeenCalledWith(
80
+ STORAGE_KEY_PERSON_ID,
81
+ 'user-id-1'
82
+ )
83
+ expect(setItemSpy).toHaveBeenCalledWith(
84
+ STORAGE_KEY_CACHE_BUST_LAST_VALUE,
85
+ '1700000000000::user-id-1'
86
+ )
87
+ })
88
+
89
+ it('should return last cached value when auth state is the same', () => {
90
+ setSession({ personId: 'user-id-1' })
91
+ sessionStorage.setItem(STORAGE_KEY_PERSON_ID, 'user-id-1')
92
+ sessionStorage.setItem(
93
+ STORAGE_KEY_CACHE_BUST_LAST_VALUE,
94
+ '1700000000000::user-id-1'
95
+ )
96
+
97
+ const nowSpy = jest.spyOn(Date, 'now')
98
+ const setItemSpy = jest.spyOn(Storage.prototype, 'setItem')
99
+
100
+ const result = getClientCacheBustingValue()
101
+
102
+ expect(result).toBe('1700000000000::user-id-1')
103
+ expect(nowSpy).not.toHaveBeenCalled()
104
+ expect(setItemSpy).not.toHaveBeenCalled()
105
+ })
106
+
107
+ it('should create and persist a new value when auth state is the same but last value is missing', () => {
108
+ setSession({ personId: 'user-id-1' })
109
+ sessionStorage.setItem(STORAGE_KEY_PERSON_ID, 'user-id-1')
110
+
111
+ const nowSpy = jest.spyOn(Date, 'now').mockReturnValue(1700000000123)
112
+ const setItemSpy = jest.spyOn(Storage.prototype, 'setItem')
113
+
114
+ const result = getClientCacheBustingValue()
115
+
116
+ expect(result).toBe('1700000000123::user-id-1')
117
+ expect(nowSpy).toHaveBeenCalled()
118
+ expect(setItemSpy).toHaveBeenCalledWith(
119
+ STORAGE_KEY_CACHE_BUST_LAST_VALUE,
120
+ '1700000000123::user-id-1'
121
+ )
122
+ expect(setItemSpy).not.toHaveBeenCalledWith(
123
+ STORAGE_KEY_PERSON_ID,
124
+ 'user-id-1'
125
+ )
126
+ })
127
+
128
+ it('should detect user change and return a new timestamp', () => {
129
+ setSession({ personId: 'user-id-2' })
130
+ sessionStorage.setItem(STORAGE_KEY_PERSON_ID, 'user-id-1')
131
+ sessionStorage.setItem(
132
+ STORAGE_KEY_CACHE_BUST_LAST_VALUE,
133
+ '1700000000000::user-id-1'
134
+ )
135
+
136
+ jest.spyOn(Date, 'now').mockReturnValue(1700000000456)
137
+
138
+ const result = getClientCacheBustingValue()
139
+
140
+ expect(result).toBe('1700000000456::user-id-2')
141
+ expect(sessionStorage.getItem(STORAGE_KEY_PERSON_ID)).toBe('user-id-2')
142
+ expect(sessionStorage.getItem(STORAGE_KEY_CACHE_BUST_LAST_VALUE)).toBe(
143
+ '1700000000456::user-id-2'
144
+ )
145
+ })
146
+ })
53
147
 
54
- const nowSpy = jest.spyOn(Date, 'now').mockReturnValue(1700000000000)
55
- const setItemSpy = jest.spyOn(Storage.prototype, 'setItem')
148
+ describe('postalCode (delivery promise / regional facets)', () => {
149
+ it('should return a value for anonymous users who have a postalCode set', () => {
150
+ setSession({ postalCode: '24230220' })
56
151
 
57
- const result = getClientCacheBustingValue()
152
+ jest.spyOn(Date, 'now').mockReturnValue(1700000001000)
58
153
 
59
- expect(result).toBe('1700000000000::user-id-1')
60
- expect(nowSpy).toHaveBeenCalled()
61
- expect(setItemSpy).toHaveBeenCalledWith(STORAGE_KEY_PERSON_ID, 'user-id-1')
62
- expect(setItemSpy).toHaveBeenCalledWith(
63
- STORAGE_KEY_CACHE_BUST_LAST_VALUE,
64
- '1700000000000::user-id-1'
65
- )
66
- })
154
+ const result = getClientCacheBustingValue()
67
155
 
68
- it('should return last cached value when auth state is the same and last value exists', () => {
69
- setSessionPerson('user-id-1')
70
- sessionStorage.setItem(STORAGE_KEY_PERSON_ID, 'user-id-1')
71
- sessionStorage.setItem(
72
- STORAGE_KEY_CACHE_BUST_LAST_VALUE,
73
- '1700000000000::user-id-1'
74
- )
156
+ expect(result).toBe('1700000001000::24230220')
157
+ })
75
158
 
76
- const nowSpy = jest.spyOn(Date, 'now')
77
- const setItemSpy = jest.spyOn(Storage.prototype, 'setItem')
159
+ it('should return last cached value when postalCode is the same', () => {
160
+ setSession({ postalCode: '24230220' })
161
+ sessionStorage.setItem(STORAGE_KEY_POSTAL_CODE, '24230220')
162
+ sessionStorage.setItem(
163
+ STORAGE_KEY_CACHE_BUST_LAST_VALUE,
164
+ '1700000001000::24230220'
165
+ )
78
166
 
79
- const result = getClientCacheBustingValue()
167
+ const nowSpy = jest.spyOn(Date, 'now')
80
168
 
81
- expect(result).toBe('1700000000000::user-id-1')
82
- expect(nowSpy).not.toHaveBeenCalled()
83
- expect(setItemSpy).not.toHaveBeenCalled()
84
- })
169
+ const result = getClientCacheBustingValue()
85
170
 
86
- it('should create and persist a new last value when auth state is the same but last value is missing', () => {
87
- setSessionPerson('user-id-1')
88
- sessionStorage.setItem(STORAGE_KEY_PERSON_ID, 'user-id-1')
89
-
90
- const nowSpy = jest.spyOn(Date, 'now').mockReturnValue(1700000000123)
91
- const setItemSpy = jest.spyOn(Storage.prototype, 'setItem')
92
-
93
- const result = getClientCacheBustingValue()
94
-
95
- expect(result).toBe('1700000000123::user-id-1')
96
- expect(nowSpy).toHaveBeenCalled()
97
- expect(setItemSpy).toHaveBeenCalledWith(
98
- STORAGE_KEY_CACHE_BUST_LAST_VALUE,
99
- '1700000000123::user-id-1'
100
- )
101
- expect(setItemSpy).not.toHaveBeenCalledWith(
102
- STORAGE_KEY_PERSON_ID,
103
- 'user-id-1'
104
- )
105
- })
171
+ expect(result).toBe('1700000001000::24230220')
172
+ expect(nowSpy).not.toHaveBeenCalled()
173
+ })
174
+
175
+ it('should return a new value when postalCode changes', () => {
176
+ setSession({ postalCode: '24230220' })
177
+ sessionStorage.setItem(STORAGE_KEY_POSTAL_CODE, '50030260')
178
+ sessionStorage.setItem(
179
+ STORAGE_KEY_CACHE_BUST_LAST_VALUE,
180
+ '1700000001000::50030260'
181
+ )
182
+
183
+ jest.spyOn(Date, 'now').mockReturnValue(1700000002000)
184
+
185
+ const result = getClientCacheBustingValue()
186
+
187
+ expect(result).toBe('1700000002000::24230220')
188
+ expect(sessionStorage.getItem(STORAGE_KEY_POSTAL_CODE)).toBe('24230220')
189
+ expect(sessionStorage.getItem(STORAGE_KEY_CACHE_BUST_LAST_VALUE)).toBe(
190
+ '1700000002000::24230220'
191
+ )
192
+ })
193
+
194
+ it('should combine personId and postalCode for logged-in users', () => {
195
+ setSession({ personId: 'user-id-1', postalCode: '24230220' })
196
+
197
+ jest.spyOn(Date, 'now').mockReturnValue(1700000003000)
198
+
199
+ const result = getClientCacheBustingValue()
106
200
 
107
- it('should detect user change and return new timestamp', () => {
108
- setSessionPerson('user-id-1')
109
- sessionStorage.setItem(STORAGE_KEY_PERSON_ID, 'user-id-1')
110
- sessionStorage.setItem(
111
- STORAGE_KEY_CACHE_BUST_LAST_VALUE,
112
- '1700000000000::user-id-1'
113
- )
201
+ expect(result).toBe('1700000003000::user-id-1::24230220')
202
+ })
114
203
 
115
- // Simulate user switch (e.g. re-login with different account)
116
- setSessionPerson('user-id-2')
204
+ it('should generate a new value when postalCode changes for a logged-in user', () => {
205
+ setSession({ personId: 'user-id-1', postalCode: '24230220' })
206
+ sessionStorage.setItem(STORAGE_KEY_PERSON_ID, 'user-id-1')
207
+ sessionStorage.setItem(STORAGE_KEY_POSTAL_CODE, '50030260')
208
+ sessionStorage.setItem(
209
+ STORAGE_KEY_CACHE_BUST_LAST_VALUE,
210
+ '1700000003000::user-id-1::50030260'
211
+ )
117
212
 
118
- jest.spyOn(Date, 'now').mockReturnValue(1700000000456)
213
+ jest.spyOn(Date, 'now').mockReturnValue(1700000004000)
119
214
 
120
- const result = getClientCacheBustingValue()
215
+ const result = getClientCacheBustingValue()
121
216
 
122
- expect(result).toBe('1700000000456::user-id-2')
123
- expect(sessionStorage.getItem(STORAGE_KEY_PERSON_ID)).toBe('user-id-2')
124
- expect(sessionStorage.getItem(STORAGE_KEY_CACHE_BUST_LAST_VALUE)).toBe(
125
- '1700000000456::user-id-2'
126
- )
217
+ expect(result).toBe('1700000004000::user-id-1::24230220')
218
+ })
127
219
  })
128
220
  })
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6656,4983,1697,4219,6621,9701],{72456:function(e,t,r){"use strict";r.d(t,{j:function(){return P}});var n=r(47723),a={section:"Breadcrumb"},o=r(66995),l=r(44194),i=r(58769),c=r(96991),d=r(64774),s=r(2614),u=r(2693),p=r(91972),f=r(978),m=r(31549),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(10019),g=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)(),h=(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:h,position:1}];return(0,m.jsx)(i.Z,{className:"".concat(g().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 h=(0,o.B)("Breadcrumb",BreadcrumbSection,v),j=(0,l.memo)(h);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}))},35450:function(e,t,r){"use strict";r.d(t,{V:function(){return y}});var n=r(47723),a={section:"Hero"},o=r(66995),l=r(63845),i=r(96991),c=r(58769),d=r(36402),s=r.n(d),u=r(48957),p=r(74147),f=r(27154),m={Hero:u.Z,HeroImage:p.Z,HeroHeader:f.Z},b=r(31549);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}))},18828:function(e,t,r){"use strict";r.d(t,{f:function(){return et}});var n=r(47723),a={section:"ProductGallery"},o=r(66995),l=r(2693),i=r(25650),c=r(76649),d=r.n(c),s=r(44194),u=r(69029),p=r(16652),f=r(66335),m=r(31549);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(22839),g=r(96991),h=r(64774),j=r(18599),P=r(48278),w=r(13022),O=r(92612),E=r(10484),_=["cache"],prefetchQuery=(e,t,r)=>{var{cache:n}=r,a=(0,l.Z)(r,_),o=(0,E.km)(e.__meta__.operationName,t);n.get(o)||(0,w.j)(o,(0,O.W)(e,t,a))},S=r(15279);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,S.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(91341),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(6099),G=r(76663),B=r(35410),F=r.n(B);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(6943).then(r.bind(r,56943))),K=d()(()=>r.e(866).then(r.bind(r,16492)),{loadableGenerated:{webpack:()=>[16492]}}),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,B,I,L,M,H,T,N,A,{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,g.r3)(),{openFilter:ev,filter:ey}=(0,p.l8)(),{pages:eg,addNextPage:eh,addPrevPage:ej,itemsPerPage:eP}=(0,u.R)(),ew=(0,h.qt)(),eO=null==ew?void 0:ew.data,eE=null!==(t=useDelayedFacets(eO))&&void 0!==t?t:[],{next:e_,prev:eS}=useDelayedPagination(U),{0:ek,1:eZ}=(0,s.useState)(!1);useProductsPrefetch(eS?eS.cursor:null),useProductsPrefetch(e_?e_.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===(_=W.mobileOnly)||void 0===_?void 0:null===(S=_.filterButton)||void 0===S?void 0:S.label}))}))]}),(0,m.jsxs)("div",{"data-fs-product-listing-results":!0,children:[!!eS&&(0,m.jsxs)("div",{"data-fs-product-listing-pagination":"top",children:[(0,m.jsx)(i.PB,{additionalLinkTags:[{rel:"prev",href:eS.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===(B=J.icon)||void 0===B?void 0:B.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:eS.link,children:null==J?void 0:J.label}))]}),eC?(0,m.jsx)(s.Suspense,{fallback:z,children:eg.map(e=>{var t;return(0,m.jsx)(R,{page:e,title:V,productCard:ee,itemsPerPage:eP,firstPage:eg[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!==e_&&(0,m.jsxs)("div",{"data-fs-product-listing-pagination":"bottom",children:[(0,m.jsx)(i.PB,{additionalLinkTags:[{rel:"next",href:e_.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(),eh()},href:e_.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===(H=M.technicalInformation)||void 0===H?void 0:H.description},overlayProps:{className:F().section}},et.labels.sidebarComponent)),(0,m.jsx)(ep.Component,{selectionWarningLabel:null==et?void 0:null===(T=et.labels)||void 0===T?void 0:T.selectionWarning,clearSelectionButtonLabel:null==et?void 0:null===(N=et.labels)||void 0===N?void 0:N.clearSelectionButton,compareButtonLabel:null==et?void 0:null===(A=et.labels)||void 0===A?void 0:A.compareButton})]})]})]})},I=r(58769),L=r(83339),M=r(2614),H=r(10792),T=r(58586),N=r(89505),A=r(98668),V=r(9947),$=r(13922),U=d()(()=>r.e(484).then(r.bind(r,7417)),{loadableGenerated:{webpack:()=>[7417]}}),q=d()(()=>r.e(1027).then(r.bind(r,91027)),{loadableGenerated:{webpack:()=>[91027]}}),Q=d()(()=>r.e(9222).then(r.bind(r,9222)),{loadableGenerated:{webpack:()=>[9222]}}),W=d()(()=>r.e(4681).then(r.bind(r,34681)),{loadableGenerated:{webpack:()=>[34681]}}),J=d()(()=>r.e(1911).then(r.bind(r,61911)),{loadableGenerated:{webpack:()=>[61911]}}),X={MobileFilterButton:L.Z,FilterIcon:M.Z,PrevIcon:M.Z,ResultsCountSkeleton:H.Z,SortSkeleton:H.Z,FilterButtonSkeleton:H.Z,ToggleField:T.Z,ProductComparison:N.Z,ProductComparisonSidebar:A.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,g.r3)(),j=(0,h.qt)(),[P,w]=(0,h.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,h.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(F().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(F().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}))},3388:function(e,t,r){"use strict";var n=r(10792),a=r(31549);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"}})]})]})}},22839:function(e,t,r){"use strict";var n=r(32874),a=r(3388),o=r(31549);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})}},15279:function(e,t,r){"use strict";r.d(t,{y:function(){return useLocalizedVariables}});var n=r(44194),a=r(32874),o=r(12306),l=r(44997),useLocalizedVariables=e=>{var{first:t,after:r,sort:i,term:c,selectedFacets:d,sponsoredCount:s}=e,{channel:u,locale:p}=(0,o.kP)();return(0,n.useMemo)(()=>({first:null!=t?t:a.KS,after:null!=r?r:"0",sort:null!=i?i:"score_desc",term:null!=c?c:"",selectedFacets:[...(0,l.qo)(d),{key:"channel",value:null!=u?u:""},{key:"locale",value:p}],sponsoredCount:null!=s?s:3}),[d,t,r,i,c,u,p,s])}},15688:function(e,t,r){"use strict";r.d(t,{Bj:function(){return u},Y_:function(){return useCreateUseGalleryPage},__:function(){return useGalleryPage}});var n=r(18599),a=r(69029),o=r(44204),l=r.n(o),i=r(44194),c=r(10484),d=r(89137),s=r(15279);function hasTimeElapsed(e){var{timestamp:t,period:r=3e5}=e;return Date.now()-t>r}var u=(0,i.createContext)(e=>({data:null})),useGalleryPage=e=>{var t=(0,i.useContext)(u);if(!t)throw Error("Missing UseGalleryPageContext on React tree");return t(e)},p=n.Zp,getKey=e=>JSON.stringify(e),useCreateUseGalleryPage=e=>{var t,r=null!=e&&null!==(t=e.initialPages)&&void 0!==t&&t.search?[e.initialPages]:[],n=null!=e&&e.serverManyProductsVariables?[getKey(e.serverManyProductsVariables)]:[],{0:o,1:u}=(0,i.useState)(r),f=(0,i.useRef)(r),m=(0,i.useRef)(n),b=(0,i.useCallback)(function(e){var{state:{sort:t,term:r,selectedFacets:n},itemsPerPage:o}=(0,a.R)(),b=(0,s.y)({first:o,after:(o*e).toString(),sort:t,term:null!=r?r:"",selectedFacets:n}),v=l()(m.current[e],getKey(b)),y=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:e,generatedBuildTime:d.A}),g=!v||y,{data:h}=(0,c.aM)(p,b,{fallbackData:null,suspense:!0,doNotRun:!g}),j=null!==h;if(j){m.current[e]=getKey(b);var P=[...f.current];P[e]=h,f.current=P}return(0,i.useEffect)(()=>{j&&u(t=>{var r=[...t];return r[e]=h,r})},[h,e,j]),(0,i.useMemo)(()=>v?{data:f.current[e]}:{data:h},[v,h,e])},[]);return(0,i.useMemo)(()=>({pages:o,useGalleryPage:b}),[o,b])}},90074:function(e,t,r){"use strict";r.d(t,{UO:function(){return useProductGalleryQuery}});var n=r(47723),a=r(18599),o=r(10484),l=r(12306),i=r(15279),c=r(69029);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(6393).then(r.bind(r,66393)).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})}},86726:function(e,t,r){"use strict";r.d(t,{j:function(){return useApplySearchState}});var n=r(47723),a=r(44194);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)},[])},10019:function(e){e.exports={section:"section_section__dvBbv"}},36402:function(e){e.exports={section:"section_section__Pdf2v"}},35410:function(e){e.exports={section:"section_section__4Hqa8",loading:"section_loading__GPzvE","loading-rtl":"section_loading-rtl__t6wkv",loadingRtl:"section_loading-rtl__t6wkv"}},14873:function(e,t,r){"use strict";var n=r(44194),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},52182:function(e,t,r){"use strict";r.d(t,{S:function(){return useProductComparison}});var n=r(44194),a=r(82770);function useProductComparison(){let e=(0,n.useContext)(a.A);if(void 0===e)throw Error("useProductComparison must be used within a ProductComparisonProvider");return e}},91972:function(e,t,r){"use strict";r.d(t,{Z:function(){return Breadcrumb_Breadcrumb}});var n=r(44194),a=r(2614),o=r(40727),l=r(36588);let i=(0,n.lazy)(()=>r.e(4983).then(r.bind(r,47169))),c=(0,n.lazy)(()=>r.e(1697).then(r.bind(r,99570))),d=(0,n.lazy)(()=>r.e(4219).then(r.bind(r,15741))),s=(0,n.lazy)(()=>r.e(6621).then(r.bind(r,94451))),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},g){let h=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:g,"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&&h&&O({itemProps:h,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}))},36588:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(44194),a=r(94564),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(44194),a=r(40276);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")}},47169:function(e,t,r){"use strict";r.r(t);var n=r(44194),a=r(49642);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)}},99570:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(44194),a=r(83339),o=r(55494);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},94451:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return l}});var n=r(44194),a=r(55494);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},15741:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return Dropdown_DropdownMenu}});var n=r(44194),a=r(56321),o=r(55494);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)}},49642:function(e,t,r){"use strict";var n=r(44194);let a=(0,n.createContext)({isOpen:!1,dropdownTriggerRef:null,selectedDropdownItemIndexRef:null,dropdownItemsRef:null,id:"fs-dropdown"});t.Z=a},55494:function(e,t,r){"use strict";r.d(t,{x:function(){return useDropdown}});var n=r(44194),a=r(49642);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}},13922:function(e,t,r){"use strict";var n=r(44194);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)))}},38394:function(e,t,r){"use strict";var n=r(44194);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},50547:function(e,t,r){"use strict";var n=r(44194),a=r(40727),o=r(69088),l=r(31953),i=r(13024),c=r(2614),d=r(2946),s=r(40276),u=r(83339);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:g,children:h,includeTaxes:j=!1,includeTaxesLabel:P="Tax included",sponsored:w=!1,sponsoredLabel:O="Sponsored",deliveryPromiseBadges:E,..._},S){let k=p?.listPrice?p.listPrice:0,Z=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,..._},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:Z,listPrice:k,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:k,spotPrice:Z}),f&&n.createElement(s.Z,null,m),E&&n.createElement("div",{"data-fs-product-card-delivery-promise-badges":!0},E.map(e=>n.createElement("span",{"data-fs-product-card-delivery-promise-badge":!0,"data-fs-product-card-delivery-promise-badge-availability":e.availability,key:e.label},e.label))),g&&!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:g},y)))});t.Z=p},65167:function(e,t,r){"use strict";var n=r(44194);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},69088:function(e,t,r){"use strict";var n=r(44194),a=r(99767);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},13024:function(e,t,r){"use strict";var n=r(44194),a=r(2614),o=r(37041),l=r(94564);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},66335:function(e,t,r){"use strict";var n=r(44194),a=r(31953),o=r(14873);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},540:function(e,t,r){"use strict";var n=r(44194),a=r(42256),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},58586:function(e,t,r){"use strict";var n=r(44194),a=r(540),o=r(31953),l=r(55450);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},48957:function(e,t,r){"use strict";r.d(t,{u:function(){return useHero}});var n=r(44194);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},27154:function(e,t,r){"use strict";var n=r(44194),a=r(13922),o=r(2614),l=r(48957);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},74147:function(e,t,r){"use strict";var n=r(44194);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},89505:function(e,t,r){"use strict";var n=r(44194),a=r(82770);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},98668:function(e,t,r){"use strict";var n=r(44194),a=r(13666),o=r(52182),l=r(77215),i=r(45049),c=r(97336),d=r(60411),s=r(44236),u=r(84256),p=r(9336),f=r(58586),m=r(40276),b=r(83339),v=r(14873),y=r(99767),g=r(38394),h=r(65167),j=r(50547),P=r(47169),w=r(99570),O=r(15741),E=r(94451),_=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:S,productNameFilterLabel:k,toggleFieldLabel:Z,priceLabel:x,cartButtonLabel:D,priceWithTaxLabel:C,technicalInformation:G,size:B="partial",direction:F="rightSide",priceFormatter:R,overlayProps:K,sortOptions:z,handleProductToBuy:I,setPendingEvent:L,...M}){let{fade:H}=(0,a.b)(),{isOpen:T,setIsOpen:N,products:A}=(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(A)??A,[U,A]),{specsToShow:X}=(0,n.useMemo)(()=>{let e=A[0],t=getAllSpecifications(e),r=getDifferences(e,J);return{specsToShow:Q?r:t,allSpecs:t,diffSpecs:r}},[A,J,Q]);(0,n.useEffect)(()=>{if(T){document.body.style.overflow="hidden";return}document.body.style.overflow=""},[T]);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:H,size:B,direction:F,isOpen:T,overlayProps:K,...M},n.createElement(i.Z,{onClose:()=>N(!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"},A.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},S))),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(_.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(_.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,A.map(e=>n.createElement(u.Z,{key:e.id},n.createElement(g.Z,null,n.createElement(h.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(_.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(44194),a=r(31953),o=r(83339),l=r(52182);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))}},82770:function(e,t,r){"use strict";r.d(t,{A:function(){return a}});var n=r(44194);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)}},86763:function(e,t,r){"use strict";r.d(t,{z:function(){return Provider}});var n=r(44194),a=r(1054);(0,n.createContext)(void 0);let Provider=({children:e,itemsPerPage:t,onChange:r,shouldResetInfiniteScroll:o,...l})=>{let i=(0,a.X)();return(0,n.useEffect)(()=>a.X.subscribe(()=>{r?.(i.serializedState())}),[r]),(0,n.useEffect)(()=>{let{itemsPerPage:e}=a.X.getState();t&&t!==e&&i.setItemsPerPage(t)},[t]),(0,n.useEffect)(()=>{i.setState(l),o&&i.resetInfiniteScroll(l.page??0)},[l.term,l.sort,l.selectedFacets,l.page]),n.createElement(n.Fragment,null,e)}},91341:function(e,t,r){"use strict";r.d(t,{h:function(){return usePagination}});var n=r(44194),a=r(72339),o=r(69029);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])}}}]);