@faststore/core 2.2.49 → 2.2.51

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 (48) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +4 -4
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1gneedd +1 -1
  6. package/.next/cache/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/routes-manifest.json +1 -1
  14. package/.next/server/chunks/350.js +39 -56
  15. package/.next/server/chunks/732.js +24 -10
  16. package/.next/server/middleware-build-manifest.js +1 -1
  17. package/.next/server/pages/404.js.nft.json +1 -1
  18. package/.next/server/pages/500.js.nft.json +1 -1
  19. package/.next/server/pages/[...slug].js.nft.json +1 -1
  20. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  21. package/.next/server/pages/_app.js.nft.json +1 -1
  22. package/.next/server/pages/_error.js.nft.json +1 -1
  23. package/.next/server/pages/account.js.nft.json +1 -1
  24. package/.next/server/pages/api/graphql.js +39 -56
  25. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  26. package/.next/server/pages/checkout.js.nft.json +1 -1
  27. package/.next/server/pages/en-US/404.html +2 -2
  28. package/.next/server/pages/en-US/500.html +2 -2
  29. package/.next/server/pages/en-US/account.html +2 -2
  30. package/.next/server/pages/en-US/checkout.html +2 -2
  31. package/.next/server/pages/en-US/login.html +2 -2
  32. package/.next/server/pages/en-US/s.html +2 -2
  33. package/.next/server/pages/en-US.html +2 -2
  34. package/.next/server/pages/index.js.nft.json +1 -1
  35. package/.next/server/pages/login.js.nft.json +1 -1
  36. package/.next/server/pages/s.js.nft.json +1 -1
  37. package/.next/server/pages-manifest.json +1 -1
  38. package/.next/static/{lMS5jtivFe-LwSHwft4A1 → EcMI9hKhWC_hpCOHJZCZc}/_buildManifest.js +1 -1
  39. package/.next/static/chunks/497-f3f10b00c609f0c2.js +1 -0
  40. package/.next/trace +80 -80
  41. package/.turbo/turbo-build.log +1 -1
  42. package/.turbo/turbo-test.log +9 -9
  43. package/cms/faststore/sections.json +53 -0
  44. package/package.json +3 -3
  45. package/src/components/sections/ProductGallery/EmptyGallery.tsx +27 -8
  46. package/src/components/sections/ProductGallery/ProductGallery.tsx +7 -2
  47. package/.next/static/chunks/497-5f7bf41345a56013.js +0 -1
  48. /package/.next/static/{lMS5jtivFe-LwSHwft4A1 → EcMI9hKhWC_hpCOHJZCZc}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
1
  $ yarn partytown & yarn generate && next build
2
2
  $ partytown copylib ./public/~partytown
3
- Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
4
3
  $ faststore generate-graphql -c
4
+ Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
5
5
  success - GraphQL schema, types, and optimizations successfully generated 🎉
6
6
  warn - You have enabled experimental feature (scrollRestoration) in next.config.js.
7
7
  warn - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
@@ -1,23 +1,23 @@
1
1
  $ jest
2
- PASS test/server/index.test.ts (21.264 s)
2
+ PASS test/server/index.test.ts (20.951 s)
3
3
  FastStore GraphQL Layer
4
4
  @faststore/api
5
- ✓ should return a valid GraphQL schema (7 ms)
6
- ✓ should return a valid GraphQL schema contain all expected types (4 ms)
5
+ ✓ should return a valid GraphQL schema (6 ms)
6
+ ✓ should return a valid GraphQL schema contain all expected types (9 ms)
7
7
  ✓ should return a valid GraphQL schema contain all expected queries (1 ms)
8
- ✓ should return a valid GraphQL schema contain all expected mutations (1 ms)
8
+ ✓ should return a valid GraphQL schema contain all expected mutations
9
9
  VTEX API Extension
10
- ✓ getTypeDefsFromFolder function should return an Array (6 ms)
10
+ ✓ getTypeDefsFromFolder function should return an Array (5 ms)
11
11
  Third Party API Extension
12
12
  ✓ getTypeDefsFromFolder function should return an Array (4 ms)
13
13
  Final Schema after merging
14
- ✓ should return a valid merged GraphQL schema (44 ms)
14
+ ✓ should return a valid merged GraphQL schema (36 ms)
15
15
  Envelop
16
- ✓ should exist with its plugins (24 ms)
17
- ✓ should handle options and execute (152 ms)
16
+ ✓ should exist with its plugins (43 ms)
17
+ ✓ should handle options and execute (545 ms)
18
18
 
19
19
  Test Suites: 1 passed, 1 total
20
20
  Tests: 9 passed, 9 total
21
21
  Snapshots: 0 total
22
- Time: 21.452 s
22
+ Time: 21.022 s
23
23
  Ran all test suites.
@@ -1607,6 +1607,59 @@
1607
1607
  "default": true
1608
1608
  }
1609
1609
  }
1610
+ },
1611
+ "emptyGallery": {
1612
+ "title": "Empty Gallery",
1613
+ "type": "object",
1614
+ "properties": {
1615
+ "title": {
1616
+ "title": "Title",
1617
+ "type": "string",
1618
+ "default": "Nothing matches with your search"
1619
+ },
1620
+ "firstButton": {
1621
+ "title": "First Button",
1622
+ "type": "object",
1623
+ "properties": {
1624
+ "label": {
1625
+ "type": "string",
1626
+ "title": "Label",
1627
+ "default": "Browse Offers"
1628
+ },
1629
+ "url": {
1630
+ "type": "string",
1631
+ "title": "URL",
1632
+ "default": "/office"
1633
+ },
1634
+ "icon": {
1635
+ "title": "Icon",
1636
+ "type": "string",
1637
+ "default": "CircleWavyWarning"
1638
+ }
1639
+ }
1640
+ },
1641
+ "secondButton": {
1642
+ "title": "Second Button",
1643
+ "type": "object",
1644
+ "properties": {
1645
+ "label": {
1646
+ "type": "string",
1647
+ "title": "Label",
1648
+ "default": "Just Arrived"
1649
+ },
1650
+ "url": {
1651
+ "type": "string",
1652
+ "title": "URL",
1653
+ "default": "/technology"
1654
+ },
1655
+ "icon": {
1656
+ "title": "Icon",
1657
+ "type": "string",
1658
+ "default": "RocketLaunch"
1659
+ }
1660
+ }
1661
+ }
1662
+ }
1610
1663
  }
1611
1664
  }
1612
1665
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "2.2.49",
3
+ "version": "2.2.51",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -37,7 +37,7 @@
37
37
  "@envelop/graphql-jit": "^1.1.1",
38
38
  "@envelop/parser-cache": "^2.2.0",
39
39
  "@envelop/validation-cache": "^2.2.0",
40
- "@faststore/api": "^2.2.49",
40
+ "@faststore/api": "^2.2.50",
41
41
  "@faststore/components": "^2.2.45",
42
42
  "@faststore/graphql-utils": "^2.2.45",
43
43
  "@faststore/sdk": "^2.2.45",
@@ -123,5 +123,5 @@
123
123
  "node": "18.19.0",
124
124
  "yarn": "1.19.1"
125
125
  },
126
- "gitHead": "a9996c80a4c0995ff526a1313ddba42022b81e66"
126
+ "gitHead": "bda804eedeae69d9ab0929eb160a730548ba0f45"
127
127
  }
@@ -4,21 +4,35 @@ import {
4
4
  EmptyState as UIEmptyState,
5
5
  } from '@faststore/ui'
6
6
 
7
- function EmptyGallery() {
7
+ export interface EmptyGalleryProps {
8
+ title?: string
9
+ firstButton?: {
10
+ label: string
11
+ url: string
12
+ icon: string
13
+ }
14
+ secondButton?: {
15
+ label: string
16
+ url: string
17
+ icon: string
18
+ }
19
+ }
20
+
21
+ function EmptyGallery({ title, firstButton, secondButton }: EmptyGalleryProps) {
8
22
  return (
9
23
  <UIEmptyState
10
24
  variant="rounded"
11
- title="Nothing matches with your search"
25
+ title={title ?? 'Nothing matches with your search'}
12
26
  titleIcon={
13
27
  <UIIcon name="CircleWavyWarning" width={56} height={56} weight="thin" />
14
28
  }
15
29
  >
16
30
  <UILinkButton
17
- href="/office"
31
+ href={firstButton?.url ?? '/office'}
18
32
  variant="secondary"
19
33
  icon={
20
34
  <UIIcon
21
- name="CircleWavyWarning"
35
+ name={firstButton?.icon ?? 'CircleWavyWarning'}
22
36
  width={18}
23
37
  height={18}
24
38
  weight="bold"
@@ -26,17 +40,22 @@ function EmptyGallery() {
26
40
  }
27
41
  iconPosition="left"
28
42
  >
29
- Browse Offers
43
+ {firstButton?.label ?? 'Browse Offers'}
30
44
  </UILinkButton>
31
45
  <UILinkButton
32
- href="/technology"
46
+ href={secondButton?.url ?? '/technology'}
33
47
  variant="secondary"
34
48
  icon={
35
- <UIIcon name="RocketLaunch" width={18} height={18} weight="bold" />
49
+ <UIIcon
50
+ name={secondButton?.icon ?? 'RocketLaunch'}
51
+ width={18}
52
+ height={18}
53
+ weight="bold"
54
+ />
36
55
  }
37
56
  iconPosition="left"
38
57
  >
39
- Just Arrived
58
+ {secondButton?.label ?? 'Just Arrived'}
40
59
  </UILinkButton>
41
60
  </UIEmptyState>
42
61
  )
@@ -4,6 +4,7 @@ import ProductGallery, {
4
4
  ProductGalleryProps,
5
5
  } from 'src/components/ui/ProductGallery/ProductGallery'
6
6
  import Section from '../Section'
7
+ import type { EmptyGalleryProps } from './EmptyGallery'
7
8
 
8
9
  import { __experimentalEmptyGallery as EmptyGallery } from 'src/components/sections/ProductGallery/Overrides'
9
10
 
@@ -25,9 +26,13 @@ export interface ProductGallerySectionProps {
25
26
  loadMorePageButton?: ProductGalleryProps['loadMorePageButton']
26
27
  sortBySelector?: ProductGalleryProps['sortBySelector']
27
28
  productCard?: ProductGalleryProps['productCard']
29
+ emptyGallery?: EmptyGalleryProps
28
30
  }
29
31
 
30
- function ProductGallerySection({ ...otherProps }: ProductGallerySectionProps) {
32
+ function ProductGallerySection({
33
+ emptyGallery,
34
+ ...otherProps
35
+ }: ProductGallerySectionProps) {
31
36
  const context = usePage<SearchPageContext | PLPContext>()
32
37
  const [title, searchTerm] = isSearchPage(context)
33
38
  ? [context?.data?.title, context?.data?.searchTerm]
@@ -41,7 +46,7 @@ function ProductGallerySection({ ...otherProps }: ProductGallerySectionProps) {
41
46
  return (
42
47
  <Section className={`${styles.section} section-product-gallery`}>
43
48
  <section data-testid="product-gallery" data-fs-product-listing>
44
- <EmptyGallery.Component />
49
+ <EmptyGallery.Component {...emptyGallery} />
45
50
  </section>
46
51
  </Section>
47
52
  )
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[497],{6133:function(e,t,r){"use strict";var n=r(2784);t.Z=function({testId:e="fs-empty-state",title:t,titleIcon:r,variant:a="default",bkgColor:o="default",children:l,...i}){return n.createElement("section",{"data-fs-empty-state":!0,"data-fs-empty-state-variant":a,"data-fs-empty-state-bkg-color":o,"data-fs-content":"empty-state","data-testid":e,...i},t&&n.createElement("header",{"data-fs-empty-state-title":!0},r&&n.createElement(n.Fragment,null,r),n.createElement("p",null,t)),l)}},5699:function(e,t,r){"use strict";var n=r(2784),a=r(1516);t.Z=function({testId:e,title:t,indicesExpanded:r,onAccordionChange:o,children:l}){return n.createElement("div",{"data-fs-filter":!0,"data-testid":e},n.createElement("h2",{"data-fs-filter-title":!0},t),n.createElement(a.Z,{indices:r,onChange:o,"data-fs-filter-accordion":!0},l))}},2815:function(e,t,r){"use strict";var n=r(2784),a=r(4564);t.Z=function({children:e}){return n.createElement(a.Z,{"data-fs-filter-list":!0},e)}},1305:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(2784);var a=(0,n.forwardRef)((function({testId:e="fs-checkbox",partial:t,...r},a){return n.createElement("input",{ref:a,"data-fs-checkbox":!0,"data-testid":e,"data-fs-checkbox-partial":t,type:"checkbox",...r})})),o=r(1953),l=r(276);var i=function({testId:e,id:t,selected:r,value:i,quantity:s,facetKey:c,label:u,onFacetChange:d}){return n.createElement("li",{key:t,"data-fs-filter-list-item":!0},n.createElement(a,{id:t,checked:r,onChange:()=>d({key:c,value:i},"BOOLEAN"),"data-fs-filter-list-item-checkbox":!0,"data-testid":`${e}-accordion-panel-checkbox`,"data-value":i,"data-quantity":s}),n.createElement(o.Z,{htmlFor:t,className:"text__title-mini-alt","data-fs-filter-list-item-label":!0},u," ",n.createElement(l.Z,{"data-fs-filter-list-item-badge":!0},s)))}},1355:function(e,t,r){"use strict";r.d(t,{Z:function(){return u}});var n=r(2784);const a=(e,t,r)=>Math.round((e-t)/(r-t)*100);var o=(0,n.forwardRef)((function({min:e,max:t,absoluteValuesLabel:r,onChange:o,onEnd:l,testId:i="fs-slider",getAriaValueText:s,step:c,minValueLabelComponent:u,maxValueLabelComponent:d,...f},m){const p=(0,n.useMemo)((()=>(t.absolute-e.absolute)/100),[t.absolute,e.absolute]),[v,b]=(0,n.useState)((()=>a(e.selected,e.absolute,t.absolute))),[h,g]=(0,n.useState)((()=>a(t.selected,e.absolute,t.absolute))),[y,x]=(0,n.useState)((()=>Math.floor(e.absolute+v*p))),[O,j]=(0,n.useState)((()=>Math.round(e.absolute+h*p))),w=e=>e/t.absolute*100;return(0,n.useImperativeHandle)(m,(()=>({setSliderValues:r=>{const n=Math.min(Number(r.min),O);if(x(n),b(a(n,e.absolute,t.absolute)),r.max>t.absolute)return j(t.absolute),void g(a(t.absolute,e.absolute,t.absolute));const o=Math.max(Number(r.max),y);j(o),g(a(o,e.absolute,t.absolute))}}))),n.createElement("div",{"data-fs-slider":!0,"data-testid":i,...f},n.createElement("div",{"data-fs-slider-absolute-values":!0},n.createElement("span",null,r.min),n.createElement("span",null,r.max)),n.createElement("div",{"data-fs-slider-wrapper":!0},n.createElement("div",{"data-fs-slider-range":!0,style:{left:`${v}%`,width:h-v+"%"}}),n.createElement("input",{type:"range",min:Math.floor(e.absolute),max:Math.round(t.absolute),value:y,step:c,onMouseUp:()=>l?.({min:y,max:O}),onTouchEnd:()=>l?.({min:y,max:O}),onChange:r=>{const n=Math.min(Number(r.target.value),O);x(n),b(a(n,e.absolute,t.absolute)),o?.({min:n,max:O})},"data-fs-slider-thumb":"left","aria-valuemin":e.absolute,"aria-valuemax":t.absolute,"aria-valuenow":y,"aria-label":String(y),"aria-labelledby":s?.(y,"min")}),u&&n.createElement("span",{"data-fs-slider-value-label":"min",style:{left:`calc(${w(y)}% + (${8-.2*w(y)}px))`}},u(y)),n.createElement("input",{type:"range",min:Math.floor(e.absolute),max:Math.round(t.absolute),value:O,step:c,onMouseUp:()=>l?.({min:y,max:O}),onTouchEnd:()=>l?.({min:y,max:O}),onChange:r=>{const n=Math.max(Number(r.target.value),y);j(n),g(a(n,e.absolute,t.absolute)),o?.({min:y,max:n})},"data-fs-slider-thumb":"right","aria-valuemin":e.absolute,"aria-valuemax":t.absolute,"aria-valuenow":O,"aria-label":String(O),"aria-labelledby":s?.(O,"max")}),d&&n.createElement("span",{"data-fs-slider-value-label":"max",style:{left:`calc(${w(O)}% + (${8-.2*w(O)}px))`}},d(O))))})),l=r(9767),i=r(3779);var s=(0,n.forwardRef)((function({formatter:e,max:t,min:r,step:a=1,onChange:s,onEnd:c,testId:u="fs-price-range",variant:d,"aria-label":f,...m},p){const v=(0,n.useRef)();(0,n.useImperativeHandle)(p,(()=>({setPriceRangeValues:e=>{s?.(e),v.current?.setSliderValues(e)}})));const b=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,y]=(0,n.useState)(),[x,O]=(0,n.useState)(),[j,w]=(0,n.useState)({min:Math.floor(r.selected),max:Math.round(t.selected)});return n.createElement("div",{"data-fs-price-range":!0,"data-testid":u,...m},n.createElement(o,{ref:v,min:r,max:t,step:a,onEnd:e=>{c?.(e),function(e){y(void 0),O(void 0),w({min:e.min,max:e.max}),b.current?.value&&(b.current.value=String(e.min)),h.current?.value&&(h.current.value=String(e.max))}(e)},"aria-label":f,onChange:e=>s?.(e),absoluteValuesLabel:{min:n.createElement(l.Z,{value:Math.floor(r.absolute),variant:d,formatter:e}),max:n.createElement(l.Z,{value:Math.round(t.absolute),variant:d,formatter:e})},minValueLabelComponent:t=>n.createElement(l.Z,{value:t,variant:d,formatter:e}),maxValueLabelComponent:t=>n.createElement(l.Z,{value:t,variant:d,formatter:e})}),n.createElement("div",{"data-fs-price-range-inputs":!0},n.createElement(i.Z,{id:"price-range-min",step:a,label:"Min",type:"number",inputMode:"numeric",error:g,inputRef:b,min:Math.floor(r.absolute),max:j.max,value:j.min,onChange:e=>{return t=e.target.value,y(void 0),void(Number(t)<Math.floor(r.absolute)||(Number(t)>Math.floor(j.max)&&y("Min price can't be greater than max"),w({...j,min:Number(t)}),v.current?.setSliderValues({...j,min:Number(t)})));var t},onBlur:()=>!g&&c?.(j)}),n.createElement(i.Z,{id:"price-range-max",label:"Max",step:a,type:"number",inputMode:"numeric",error:x,inputRef:h,max:Math.round(t.absolute),min:j.min,value:j.max,onChange:e=>{return r=e.target.value,O(void 0),void(Number(r)>Math.round(t.absolute)||(Number(r)<Math.round(j.min)&&O("Max price can't be smaller than min"),w({...j,max:Number(r)}),v.current?.setSliderValues({...j,max:Number(r)})));var r},onBlur:()=>!x&&c?.(j)})))}));const c=(e,t)=>`${e.toFixed(2)}-to-${t.toFixed(2)}`;var u=function({min:e,max:t,formatter:r,facetKey:a,onFacetChange:o}){return n.createElement(s,{"data-fs-filter-facet-range":!0,min:e,max:t,formatter:r,step:1,onEnd:e=>o({key:a,value:c(e.min,e.max)},"RANGE")})}},4199:function(e,t,r){"use strict";var n=r(2784),a=r(783),o=r(7734),l=r(7583);t.Z=function({testId:e,label:t,index:r,children:i,type:s}){return n.createElement(a.Z,{key:`${t}-${r}`,prefixId:e,testId:`${e}-accordion`,index:r,"data-type":s,"data-fs-filter-accordion-item":!0},n.createElement(o.Z,{testId:`${e}-accordion-button`},t),n.createElement(l.Z,null,i))}},2390:function(e,t,r){"use strict";r.d(t,{Z:function(){return A}});var n=r(9499),a=r(2784),o=r(4730),l=r(7058),i=r(2614),s=r(727);var c=(0,a.createContext)({isOpen:!1,dropdownButtonRef:null,selectedDropdownItemIndexRef:null,dropdownItemsRef:null,id:"fs-dropdown"});var u=({children:e,isOpen:t=!1,onDismiss:r,id:n="fs-dropdown"})=>{const[o,l]=(0,a.useState)(t),i=(0,a.useRef)([]),s=(0,a.useRef)(0),u=(0,a.useRef)(null),d=(0,a.useCallback)((()=>{l(!1),r?.()}),[r]),f=()=>{l(!0)},m=(0,a.useCallback)((()=>{l((e=>(e&&(r?.(),u.current?.focus()),!e)))}),[r]);(0,a.useEffect)((()=>{l(t)}),[t]),(0,a.useEffect)((()=>{o&&i?.current[0]?.focus()}),[o]),(0,a.useEffect)((()=>{let e=!0;const t=t=>{const r=i?.current.some((e=>t.target===e));e?e=!1:!r&&d()};return o?document.addEventListener("click",t):document.removeEventListener("click",t),()=>{document.removeEventListener("click",t)}}),[d,o]);const p=(0,a.useMemo)((()=>({isOpen:o,close:d,open:f,toggle:m,dropdownButtonRef:u,onDismiss:r,selectedDropdownItemIndexRef:s,dropdownItemsRef:i,id:n})),[d,n,o,r,m]);return a.createElement(c.Provider,{value:p},e)},d=r(3339);const f=()=>{const e=(0,a.useContext)(c);if(void 0===e)throw new Error("Do not use useDropdown hook outside the Dropdown context.");return e};var m=(0,a.forwardRef)((function({testId:e="fs-dropdown-button","aria-label":t,children:r,...n},o){const{toggle:l,dropdownButtonRef:i,isOpen:s,id:c}=f();return(0,a.useImperativeHandle)(o,(()=>i.current),[i]),a.createElement(d.Z,{"data-fs-dropdown-button":!0,onClick:l,"data-testid":e,ref:i,"aria-label":t,"aria-expanded":s,"aria-haspopup":"menu","aria-controls":c,variant:"tertiary",...n},r)})),p=r(8316);var v=({children:e,testId:t="fs-dropdown-menu",size:r="regular",style:n,...o})=>{const{isOpen:l,close:i,dropdownItemsRef:s,selectedDropdownItemIndexRef:c,dropdownButtonRef:u,id:d}=f(),m=(()=>{const{dropdownButtonRef:e}=f(),t="undefined"!==typeof window,r=e?.current?.getBoundingClientRect(),n=r?.top??0,a=r?.height??0,o=r?.left??0;return{position:"absolute",top:n+a+(t?document?.documentElement?.scrollTop:0),left:o+(t?document?.documentElement?.scrollLeft:0)}})(),v=a.Children.toArray(e).length;return l?(0,p.createPortal)(a.createElement("div",{role:"presentation","data-fs-dropdown-overlay":!0,onKeyDown:e=>{e.defaultPrevented||"Enter"===e.key||(e.preventDefault(),"Escape"===e.key&&(i?.(),u?.current?.focus()),"ArrowDown"===e.key&&(c.current<v-1?c.current++:c.current=0,s?.current[c.current]?.focus()),"ArrowUp"===e.key&&(c.current>0?c.current--:c.current=v-1,s?.current[c.current]?.focus()),"Home"===e.key&&(c.current=0,s?.current[c.current]?.focus()),"End"===e.key&&(c.current=v-1,s?.current[c.current]?.focus()),e.stopPropagation())},"data-testid":`${t}-overlay`},a.createElement("div",{role:"menu","aria-orientation":"vertical","data-fs-dropdown-menu":!0,"data-fs-dropdown-menu-size":r,"data-testid":t,style:{...m,...n},id:d,...o},e)),document.body):(s.current=[],null)};var b=(0,a.forwardRef)((function({children:e,icon:t,onClick:r,testId:n="fs-dropdown-item",...o},l){const{dropdownItemsRef:i,selectedDropdownItemIndexRef:s,close:c}=f(),[u,d]=(0,a.useState)(0),m=(0,a.useRef)(),p=()=>{s.current=u,i?.current[s.current]?.focus()};return(0,a.useImperativeHandle)(l,(()=>m.current),[]),a.createElement("button",{"data-fs-dropdown-item":!0,"data-testid":n,ref:e=>{e&&!i?.current.includes(e)&&(i?.current.push(e),d(i?.current.findIndex((t=>t===e))??0)),m.current=e},onFocus:p,onMouseEnter:p,onClick:e=>{r?.(e),c?.()},role:"menuitem",tabIndex:-1,"data-index":u,...o},!!t&&t,e)})),h=r(4564);var g=({divider:e,testId:t})=>{const r={"data-fs-breadcrumb-divider":!0,"aria-hidden":!0,"data-testid":`${t}-divider`};return a.isValidElement(e)?a.cloneElement(e,r):a.createElement("span",{...r},e??"/")};var y=({children:e,isLastItem:t,divider:r,testId:n})=>{const o={"data-testid":`${n}-item`,"data-fs-breadcrumb-item":!t||"current","aria-current":t?"page":void 0};return a.isValidElement(e)?a.createElement("li",{"data-fs-breadcrumb-list-item":!0},a.cloneElement(e,o),t?null:a.createElement(g,{divider:r,testId:n})):a.createElement("li",{"data-fs-breadcrumb-list-item":!0},a.createElement("span",{...o},e,t?null:a.createElement(g,{divider:r,testId:n})))};var x=(0,a.forwardRef)((function({children:e,divider:t="",testId:r="fs-breadcrumb",...n},o){return a.createElement("nav",{"aria-label":"Breadcrumb",role:"navigation",ref:o,"data-fs-breadcrumb":!0,"data-testid":r,...n},a.createElement(h.Z,{as:"ol","data-fs-breadcrumb-list":!0,"data-fs-content":"breadcrumb"},a.Children.toArray(e).map(((e,n,o)=>{const l=n===o.length-1;return a.createElement(y,{isLastItem:l,divider:t,key:`breadcrumb-${n}`,testId:r},e)}))))}));var O=(0,a.forwardRef)((function({children:e,divider:t="",testId:r="fs-breadcrumb",breadcrumbList:n,isDesktop:o=!1,renderLink:l,homeLink:c,dropdownButtonIcon:d=a.createElement(i.Z,{name:"DotsThree"}),collapsedItemsIcon:f=a.createElement(i.Z,{"data-fs-dropdown-item-icon":!0,name:"ArrowElbowDownRight"}),...p},h){const g=o?n[0]:null,y=o?n.slice(1,-2):n.slice(0,-2),O=n.slice(-2),j=n.length>4,w=(0,a.useCallback)((e=>{const t=l?.(e),r=e.collapsed?{"data-fs-breadcrumb-dropdown-link":!0}:{"data-fs-breadcrumb-link":!0};return t?(0,a.cloneElement)(t,{...r,key:e.itemProps.position}):a.createElement(s.Z,{...r,href:e.itemProps.item,key:e.itemProps.position},e.itemProps.name)}),[l]);return a.createElement(x,{ref:h,"data-fs-breadcrumb-is-desktop":o,...p},c,!j&&n.map(((e,t)=>n.length===t+1?a.createElement("span",{key:String(e.position)},e.name):w({itemProps:e,collapsed:!1}))),j&&g&&w({itemProps:g,collapsed:!1}),j&&a.createElement(u,null,a.createElement(m,{"aria-label":"View More","data-fs-breadcrumb-dropdown-button":!0,size:"small"},d),a.createElement(v,{"data-fs-breadcrumb-dropdown-menu":!0},y.map((e=>a.createElement(b,{"data-fs-breadcrumb-dropdown-item":!0,key:String(e.position),icon:f},w({itemProps:e,collapsed:!0})))))),j&&O.map(((e,t)=>O.length===t+1?a.createElement("span",{key:String(e.position)},e.name):w({itemProps:e,collapsed:!1}))))}));var j=({breadcrumbList:e,...t})=>a.createElement(a.Fragment,null,a.createElement(O,{breadcrumbList:e,...t}),a.createElement(O,{breadcrumbList:e,isDesktop:!0,...t})),w=r(7506),P={section:"Breadcrumb"},{Breadcrumb:E,Icon:k}=(0,w.f)({Breadcrumb:j,Icon:i.Z},P),Z=r(2322),C=["icon","alt"];function S(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 _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var I=e=>{var t,{icon:r=(null!==(t=k.props.name)&&void 0!==t?t:"Home"),alt:n="Go to homepage"}=e,a=(0,o.Z)(e,C);return(0,Z.jsx)(E.Component,_(_({homeLink:(0,Z.jsx)(l.Z,{"data-fs-breadcrumb-link":!0,"data-fs-breadcrumb-link-home":!0,"aria-label":n,href:"/",prefetch:!1,children:(0,Z.jsx)(k.Component,_(_({width:18,height:18,weight:"bold"},k.props),{},{name:r}))}),renderLink:e=>{var{itemProps:{item:t,name:r}}=e;return(0,Z.jsx)(l.Z,{"data-fs-breadcrumb-link":!0,href:t,prefetch:!1,children:r})}},E.props),a))},R=(0,a.memo)(I),D=r(3271),M=r(4579),B=r.n(M),F=r(5953);function L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?L(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function $(e){var t,r,n,a,o,l,i,s,c,u=Object.assign({},e),d=(0,F.qt)(),f=[{item:"/",name:(0,F.OJ)(d)?null===d||void 0===d||null===(t=d.data)||void 0===t||null===(r=t.collection)||void 0===r||null===(n=r.seo)||void 0===n?void 0:n.title:"All Products",position:1}],m=(0,F.tS)(d)?null===d||void 0===d||null===(a=d.data)||void 0===a||null===(o=a.product)||void 0===o||null===(l=o.breadcrumbList)||void 0===l?void 0:l.itemListElement:(0,F.OJ)(d)?null===d||void 0===d||null===(i=d.data)||void 0===i||null===(s=i.collection)||void 0===s||null===(c=s.breadcrumbList)||void 0===c?void 0:c.itemListElement:f;return(0,Z.jsx)(D.Z,{className:"".concat(B().section," section-breadcrumb"),children:(0,Z.jsx)(R,N({breadcrumbList:m},u))})}var A=(0,a.memo)($)},7552:function(e,t,r){"use strict";r.d(t,{hZ:function(){return R},k1:function(){return C},tu:function(){return M},Rm:function(){return D},$B:function(){return Z},gY:function(){return S},k:function(){return _},SZ:function(){return I},m4:function(){return N},oU:function(){return B},H4:function(){return F},zM:function(){return L}});var n=r(2784),a=r(3339),o=r(2614),l=r(792),i=r(3922),s=r(8553),c=r(9499),u=r(3221),d=r(9664),f=r(5699),m=r(4199),p=r(2815),v=r(1305),b=r(1355),h=r(5346),g=r(2322);function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){(0,c.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var O=function(e){var{facets:t,testId:r,dispatch:n,expanded:a,title:o}=e,{resetInfiniteScroll:l,state:i,setState:s}=(0,u.R)();return(0,g.jsx)(f.Z,{testId:"desktop-".concat(r),title:o,indicesExpanded:a,onAccordionChange:e=>n({type:"toggleExpanded",payload:e}),children:t.map(((e,t)=>{var{__typename:n,label:o}=e,c=a.has(t);return(0,g.jsxs)(m.Z,{testId:r,index:t,type:n,label:o,children:["StoreFacetBoolean"===n&&c&&(0,g.jsx)(p.Z,{children:e.values.map((t=>(0,g.jsx)(v.Z,{id:"".concat(r,"-").concat(e.label,"-").concat(t.label),testId:r,onFacetChange:e=>{s(x(x({},i),{},{selectedFacets:(0,d.wB)(i.selectedFacets,e),page:0})),l(0)},selected:t.selected,value:t.value,quantity:t.quantity,facetKey:e.key,label:t.label},"".concat(r,"-").concat(e.label,"-").concat(t.label))))}),"StoreFacetRange"===n&&c&&(0,g.jsx)(b.Z,{facetKey:e.key,min:e.min,max:e.max,formatter:h.P,onFacetChange:e=>{s(x(x({},i),{},{selectedFacets:(0,d.uL)(i.selectedFacets,e,!0),page:0})),l(0)}})]},"".concat(r,"-").concat(o,"-").concat(t))}))})},j=r(6133);var w=function(){return(0,g.jsxs)(j.Z,{variant:"rounded",title:"Nothing matches with your search",titleIcon:(0,g.jsx)(o.Z,{name:"CircleWavyWarning",width:56,height:56,weight:"thin"}),children:[(0,g.jsx)(i.Z,{href:"/office",variant:"secondary",icon:(0,g.jsx)(o.Z,{name:"CircleWavyWarning",width:18,height:18,weight:"bold"}),iconPosition:"left",children:"Browse Offers"}),(0,g.jsx)(i.Z,{href:"/technology",variant:"secondary",icon:(0,g.jsx)(o.Z,{name:"RocketLaunch",width:18,height:18,weight:"bold"}),iconPosition:"left",children:"Just Arrived"})]})},P=r(7506),E={section:"ProductGallery"},k=(0,n.lazy)((()=>r.e(386).then(r.bind(r,1386)))),{MobileFilterButton:Z,FilterIcon:C,PrevIcon:S,ResultsCountSkeleton:_,SortSkeleton:I,FilterButtonSkeleton:R,LinkButtonPrev:D,LinkButtonNext:M,__experimentalFilterDesktop:B,__experimentalFilterSlider:F,__experimentalProductCard:L,__experimentalEmptyGallery:N}=(0,P.f)({MobileFilterButton:a.Z,FilterIcon:o.Z,PrevIcon:o.Z,ResultsCountSkeleton:l.Z,SortSkeleton:l.Z,FilterButtonSkeleton:l.Z,LinkButtonPrev:i.Z,LinkButtonNext:i.Z,__experimentalFilterDesktop:O,__experimentalFilterSlider:k,__experimentalProductCard:s.Z,__experimentalEmptyGallery:w},E)},815:function(e,t,r){"use strict";r.d(t,{Z:function(){return te}});var n=r(9499),a=r(2541),o=r(3221),l=r(5351),i=r(2784),s=r(6652),c=r(4730),u=r(9664),d=["value"];function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var p=(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),m(m({},e),{},{expanded:new Set(r)});case"selectFacets":if(o!==n)return m(m({},e),{},{selected:o});break;case"toggleFacet":return m(m({},e),{},{selected:(0,u.wB)(e.selected,o)});case"setFacet":return m(m({},e),{},{selected:(0,u.uL)(e.selected,o.facet,o.unique)});default:throw new Error("Action ".concat(a," not implemented"))}return e},v=r(7552),b=r(2322);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var y=function(e){var t,r,{facets:n,testId:a="fs-filter",filter:l}=e,u=(e=>{var{state:{selectedFacets:t}}=(0,o.R)(),{0:{selected:r,expanded:n},1:a}=(0,i.useReducer)(p,null,(()=>({expanded:new Set([]),selected:t}))),l=(0,i.useMemo)((()=>r.reduce(((e,t)=>{var r;return e.has(t.key)||e.set(t.key,new Map),null===(r=e.get(t.key))||void 0===r||r.set(t.value,t),e}),new Map)),[r]),s=(0,i.useMemo)((()=>e.map((e=>"StoreFacetBoolean"===e.__typename?m(m({},e),{},{values:e.values.map((t=>{var r,{value:n}=t;return m(m({},(0,c.Z)(t,d)),{},{value:n,selected:Boolean(null===(r=l.get(e.key))||void 0===r?void 0:r.has(n))})}))}):e))),[e,l]);return(0,i.useEffect)((()=>{a({type:"selectFacets",payload:t})}),[t]),{facets:s,selected:r,expanded:n,dispatch:a}})(n),{filter:f}=(0,s.l)();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"hidden-mobile",children:(0,b.jsx)(v.oU.Component,g(g(g({},v.oU.props),u),{},{testId:a,title:null===l||void 0===l?void 0:l.title}))}),f&&(0,b.jsx)(i.Suspense,{fallback:null,children:(0,b.jsx)(v.H4.Component,g(g(g({},v.H4.props),u),{},{testId:a,title:null===l||void 0===l?void 0:l.title,clearButtonLabel:null===l||void 0===l||null===(t=l.mobileOnly)||void 0===t?void 0:t.clearButtonLabel,applyButtonLabel:null===l||void 0===l||null===(r=l.mobileOnly)||void 0===r?void 0:r.applyButtonLabel}))})]})},x=r(1953),O=r(2614);var j=(0,i.forwardRef)((function({options:e,id:t,testId:r="fs-select",...n},a){return i.createElement("div",{"data-fs-select":!0},i.createElement("select",{ref:a,id:t,"data-testid":r,...n},Object.keys(e).map((t=>i.createElement("option",{key:t,value:t},e[t])))),i.createElement(O.Z,{"data-fs-select-icon":!0,name:"CaretDown"}))}));var w=(0,i.forwardRef)((function({id:e,label:t,options:r,testId:n="fs-select-field",...a},o){return i.createElement("div",{ref:o,"data-fs-select-field":!0},i.createElement(x.Z,{"data-fs-select-field-label":!0,htmlFor:e},t),i.createElement(j,{id:e,options:r,"data-testid":n,...a}))}));function P(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 E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?P(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var k={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"},Z=Object.keys(k);var C=function(e){var{label:t="Sort by",options:r=k}=e,{state:n,setState:a}=(0,o.R)(),l=Object.keys(r).reduce(((e,t)=>{var n;return e[t]=null!==(n=r[t])&&void 0!==n?n:k[t],e}),{});return(0,b.jsx)(w,{id:"sort-select",className:"sort / text__title-mini-alt",label:t,options:l,onChange:e=>{var t=Z[e.target.selectedIndex];a(E(E({},n),{},{sort:t,page:0}))},value:n.sort,testId:"search-sort"})},S=r(792);var _=function(e){var{children:t,loading:r=!0}=e;return r?(0,b.jsxs)("div",{"data-fs-filter-skeleton":!0,children:[(0,b.jsx)(S.Z,{"data-fs-filter-skeleton-text":!0,size:{width:"100%",height:"1.5rem"}}),(0,b.jsxs)("div",{"data-fs-filter-skeleton-content":!0,children:[(0,b.jsx)(S.Z,{"data-fs-filter-skeleton-text":!0,size:{width:"100%",height:"1.5rem"},shimmer:!1}),(0,b.jsx)(S.Z,{"data-fs-filter-skeleton-text":!0,size:{width:"100%",height:"1.5rem"},shimmer:!1}),(0,b.jsx)(S.Z,{"data-fs-filter-skeleton-text":!0,size:{width:"100%",height:"1.5rem"},shimmer:!1})]})]}):(0,b.jsx)(b.Fragment,{children:t})},I=r(1708),R=r(2339);const D=e=>{const{pathname:t,search:r}=(0,R.Z)(e);return`${t}${r}`};var M=e=>{var t=(e=>{const{pages:t,itemsPerPage:r,state:n}=(0,o.R)(),a=Math.ceil(e/r),l=Number(t[t.length-1])+1,s=t[0]-1;return(0,i.useMemo)((()=>({next:l<a&&{cursor:l,link:D({...n,page:l})},prev:s>-1&&{cursor:s,link:D({...n,page:s})}})),[l,s,n,a])})(e),{0:r,1:n}=(0,i.useState)((()=>({next:!1,prev:!1})));return(0,i.useEffect)((()=>{n(t)}),[t]),r},B=r(5953),F=r(9857),L=r(180),N=r(7732),$=["cache"],A=r(2523);function T(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var V=(e,t)=>{var r=(0,A.y)(e),{cache:a}=(0,F.kY)();return(0,i.useCallback)((()=>((e,t,r)=>{var{cache:n}=r,a=(0,c.Z)(r,$),o=(0,N.km)(e,t);n.get(o)||(0,F.JG)(o,(0,L.W)(e,t,a))})("ClientManyProductsQuery",r,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?T(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):T(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({cache:a},t))),[r,a,t])},q=e=>{var{itemsPerPage:t,state:{sort:r,term:n,selectedFacets:a}}=(0,o.R)(),l=V({first:t,after:(t*(null!==e&&void 0!==e?e:0)).toString(),sort:r,term:null!==n&&void 0!==n?n:"",selectedFacets:a});(0,i.useEffect)((()=>{null!==e&&l()}),[e,l])};function z(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 G(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?z(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):z(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var U=(0,i.lazy)((()=>r.e(800).then(r.bind(r,2800)))),H=(0,b.jsx)(I.Z,{loading:!0});var J=function(e){var t,r,n,a,c,u,d,f,m,p,h,g,x,O,j,w,P,E,{title:k,searchTerm:Z,totalCount:S,searchTermLabel:I,totalCountLabel:R,filter:D,previousPageButton:F,loadMorePageButton:L,sortBySelector:N,productCard:$}=e,{openFilter:A}=(0,s.l)(),{pages:T,addNextPage:V,addPrevPage:z,itemsPerPage:J}=(0,o.R)(),Y=(0,B.qt)(),K=null===Y||void 0===Y?void 0:Y.data,W=null!==(t=(e=>{var t=(0,i.useRef)([]);return(0,i.useMemo)((()=>{var r;return e&&(t.current=null===(r=e.search)||void 0===r?void 0:r.facets),t.current}),[e,t])})(K))&&void 0!==t?t:[],{next:Q,prev:X}=M(S);q(X?X.cursor:null),q(Q?Q.cursor:null);var ee=Boolean(null===K||void 0===K||null===(r=K.search)||void 0===r?void 0:r.facets),te=Boolean(null===K||void 0===K||null===(n=K.search)||void 0===n?void 0:n.products);return(0,b.jsxs)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:[Z&&(0,b.jsx)("header",{"data-fs-product-listing-search-term":!0,"data-fs-content":"product-gallery",children:(0,b.jsxs)("h1",{children:[I," ",(0,b.jsx)("span",{children:Z})]})}),(0,b.jsxs)("div",{"data-fs-product-listing-content-grid":!0,"data-fs-content":"product-gallery",children:[(0,b.jsx)("div",{"data-fs-product-listing-filters":!0,children:(0,b.jsx)(_,{loading:!ee,children:ee&&(null===W||void 0===W?void 0:W.length)>0&&(0,b.jsx)(y,{facets:W,filter:D})})}),(0,b.jsx)("div",{"data-fs-product-listing-results-count":!0,"data-count":S,children:(0,b.jsx)(v.k.Component,G(G({"data-fs-product-listing-results-count-skeleton":!0,size:{width:"100%",height:"1.5rem"}},v.k.props),{},{loading:!te,children:(0,b.jsxs)("h2",{"data-testid":"total-product-count",children:[S," ",R]})}))}),(0,b.jsxs)("div",{"data-fs-product-listing-sort":!0,children:[(0,b.jsx)(v.SZ.Component,G(G({"data-fs-product-listing-sort-skeleton":!0,size:{width:"auto",height:"1.5rem"}},v.SZ.props),{},{loading:!te,children:(0,b.jsx)(C,{label:null===N||void 0===N?void 0:N.label,options:null===N||void 0===N?void 0:N.options})})),(0,b.jsx)(v.hZ.Component,G(G({"data-fs-product-listing-filter-button-skeleton":!0,size:{width:"6rem",height:"1.5rem"}},v.hZ.props),{},{loading:!ee,children:ee&&(null===W||void 0===W?void 0:W.length)>0&&(0,b.jsx)(v.$B.Component,G(G({variant:"tertiary","data-testid":"open-filter-button",icon:(0,b.jsx)(v.k1.Component,G(G({width:16,height:16},v.k1.props),{},{name:null!==(a=null===D||void 0===D||null===(c=D.mobileOnly)||void 0===c||null===(u=c.filterButton)||void 0===u||null===(d=u.icon)||void 0===d?void 0:d.icon)&&void 0!==a?a:v.k1.props.name,"aria-label":null!==(f=null===D||void 0===D||null===(m=D.mobileOnly)||void 0===m||null===(p=m.filterButton)||void 0===p||null===(h=p.icon)||void 0===h?void 0:h.alt)&&void 0!==f?f:v.k1.props["aria-label"]})),iconPosition:"left"},v.$B.props),{},{onClick:A,children:null===D||void 0===D||null===(g=D.mobileOnly)||void 0===g||null===(x=g.filterButton)||void 0===x?void 0:x.label}))}))]}),(0,b.jsxs)("div",{"data-fs-product-listing-results":!0,children:[!1!==X&&(0,b.jsxs)("div",{"data-fs-product-listing-pagination":"top",children:[(0,b.jsx)(l.PB,{additionalLinkTags:[{rel:"prev",href:X.link}]}),(0,b.jsx)(v.Rm.Component,G(G({rel:"prev",variant:"secondary",iconPosition:"left",icon:(0,b.jsx)(v.gY.Component,G(G({width:16,height:16,weight:"bold"},v.gY.props),{},{name:null!==(O=null===F||void 0===F||null===(j=F.icon)||void 0===j?void 0:j.icon)&&void 0!==O?O:v.gY.props.name,"aria-label":null!==(w=null!==(P=null===F||void 0===F||null===(E=F.icon)||void 0===E?void 0:E.alt)&&void 0!==P?P:null===F||void 0===F?void 0:F.label)&&void 0!==w?w:v.gY.props["aria-label"]}))},v.Rm.props),{},{onClick:e=>{e.currentTarget.blur(),e.preventDefault(),z()},href:X.link,children:null===F||void 0===F?void 0:F.label}))]}),te?(0,b.jsx)(i.Suspense,{fallback:H,children:T.map((e=>(0,b.jsx)(U,{page:e,title:k,productCard:$,itemsPerPage:J},"gallery-page-".concat(e))))}):H,!1!==Q&&(0,b.jsxs)("div",{"data-fs-product-listing-pagination":"bottom",children:[(0,b.jsx)(l.PB,{additionalLinkTags:[{rel:"next",href:Q.link}]}),(0,b.jsx)(v.tu.Component,G(G({testId:"show-more",rel:"next",variant:"secondary"},v.tu.props),{},{onClick:e=>{e.currentTarget.blur(),e.preventDefault(),V()},href:Q.link,children:null===L||void 0===L?void 0:L.label}))]})]})]})]})},Y=r(3271),K=r(5053),W=r.n(K);function Q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function X(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Q(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Q(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ee(e){var t,r,n,a,o,l,i,s,c,u,d,f,m=Object.assign({},e),p=(0,B.qt)(),[h,g]=(0,B.En)(p)?[null===p||void 0===p||null===(t=p.data)||void 0===t?void 0:t.title,null===p||void 0===p||null===(r=p.data)||void 0===r?void 0:r.searchTerm]:(0,B.OJ)(p)?[null===p||void 0===p||null===(n=p.data)||void 0===n||null===(a=n.collection)||void 0===a||null===(o=a.seo)||void 0===o?void 0:o.title]:[""],y=null!==(l=null===p||void 0===p||null===(i=p.data)||void 0===i||null===(s=i.search)||void 0===s||null===(c=s.products)||void 0===c||null===(u=c.pageInfo)||void 0===u?void 0:u.totalCount)&&void 0!==l?l:0;return null!==p&&void 0!==p&&null!==(d=p.data)&&void 0!==d&&null!==(f=d.search)&&void 0!==f&&f.products&&0===y?(0,b.jsx)(Y.Z,{className:"".concat(W().section," section-product-gallery"),children:(0,b.jsx)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:(0,b.jsx)(v.m4.Component,{})})}):(0,b.jsx)(Y.Z,{className:"".concat(W().section," section-product-gallery layout__section"),children:(0,b.jsx)(J,X({title:h,searchTerm:g,totalCount:y},m))})}ee.displayName="ProductGallery";var te=(0,a.B)(ee)},1708:function(e,t,r){"use strict";var n=r(8459),a=r(6531),o=r(2322);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.g},((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})}},5953:function(e,t,r){"use strict";r.d(t,{En:function(){return i},OJ:function(){return l},al:function(){return u},qt:function(){return c},tS:function(){return o}});var n=r(2784),a=r(2322),o=e=>{var t,r,n,a;return void 0!=(null===e||void 0===e||null===(t=e.data)||void 0===t||null===(r=t.product)||void 0===r?void 0:r.sku)&&null!=(null===e||void 0===e||null===(n=e.data)||void 0===n||null===(a=n.product)||void 0===a?void 0:a.sku)},l=e=>{var t,r,n,a,o,l;return void 0!=(null===e||void 0===e||null===(t=e.data)||void 0===t||null===(r=t.collection)||void 0===r?void 0:r.seo)&&null!=(null===e||void 0===e||null===(n=e.data)||void 0===n||null===(a=n.collection)||void 0===a?void 0:a.seo)&&void 0==(null===e||void 0===e||null===(o=e.data)||void 0===o||null===(l=o.collection)||void 0===l?void 0:l.sku)},i=e=>{var t,r;return void 0===e||void 0!=(null===e||void 0===e||null===(t=e.data)||void 0===t?void 0:t.title)||void 0!=(null===e||void 0===e||null===(r=e.data)||void 0===r?void 0:r.searchTerm)},s=(0,n.createContext)(null);function c(){var{context:e}=(0,n.useContext)(s);if(null==e)throw new Error("Missing Overrides context on React tree");return e}var u=()=>c();t.ZP=function(e){var{context:t,children:r}=e,o=(0,n.useMemo)((()=>({context:t})),[t]);return(0,a.jsx)(s.Provider,{value:o,children:r})}},8934:function(e,t,r){"use strict";r.d(t,{Bj:function(){return i},Y_:function(){return u},__:function(){return s}});var n=r(3221),a=r(2784),o=r(7732),l=r(2523),i=(0,a.createContext)((e=>({data:null}))),s=e=>{var t=(0,a.useContext)(i);if(!t)throw new Error("Missing UseGalleryPageContext on React tree");return t(e)},c=e=>JSON.stringify(e),u=()=>{var{0:e,1:t}=(0,a.useState)([]),r=(0,a.useRef)([]),i=(0,a.useRef)([]),s=(0,a.useCallback)((function(e){var{state:{sort:s,term:u,selectedFacets:d},itemsPerPage:f}=(0,n.R)(),m=(0,l.y)({first:f,after:(f*e).toString(),sort:s,term:null!==u&&void 0!==u?u:"",selectedFacets:d}),p=i.current[e]===c(m),{data:v}=(0,o.aM)("ClientManyProductsQuery",m,{fallbackData:null,suspense:!0,doNotRun:p}),b=!p&&null!==v;if(b){i.current[e]=c(m);var h=[...r.current];h[e]=v,r.current=h}return(0,a.useEffect)((()=>{b&&t((t=>{var r=[...t];return r[e]=v,r}))}),[v,e,b]),(0,a.useMemo)((()=>p?{data:r.current[e]}:{data:v}),[p,v,e])}),[]);return(0,a.useMemo)((()=>({pages:e,useGalleryPage:s})),[e,s])}},7433:function(e,t,r){"use strict";r.d(t,{U:function(){return i}});var n=r(1072),a=r(7732),o=r(2523),l=r(7295),i=e=>{var{term:t,sort:r,selectedFacets:i,itemsPerPage:s}=e,{locale:c}=(0,l.kP)(),u=(0,o.y)({first:s,after:"0",sort:r,term:null!==t&&void 0!==t?t:"",selectedFacets:i});return(0,a.aM)("ClientProductGalleryQuery",u,{onSuccess:e=>{var r,a,o,l;e&&t&&(0,n._)({name:"intelligent_search_query",params:{locale:c,term:t,url:window.location.href,logicalOperator:null!==(r=null===(a=e.search.metadata)||void 0===a?void 0:a.logicalOperator)&&void 0!==r?r:"and",isTermMisspelled:null!==(o=null===(l=e.search.metadata)||void 0===l?void 0:l.isTermMisspelled)&&void 0!==o&&o,totalCount:e.search.products.pageInfo.totalCount}})}})}},1523:function(e,t,r){"use strict";r.d(t,{j:function(){return o}});var n=r(2784),a=r(1163),o=()=>{var e=(0,a.useRouter)();return(0,n.useCallback)((t=>e.push("".concat(t.pathname).concat(t.search))),[e])}},4579:function(e){e.exports={section:"section_section__hRV9B"}},5053:function(e){e.exports={section:"section_section__EYj3x",loading:"section_loading__Bzogw"}},1197:function(e,t,r){"use strict";r.d(t,{_:function(){return c},z:function(){return u}});var n=r(2784),a=r(2254);function o(e){try{const t=window.history.state?.key;if(!t)return;const r=`__fs_gallery_page_${t}`;sessionStorage.setItem(r,JSON.stringify(e))}catch(t){return}}const l=(e,t)=>{switch(t.type){case"addPrev":{const t=[e[0]-1,...e];return o(t),t}case"addNext":{const t=Number(e[e.length-1])+1,r=[...e,t];return o(r),r}case"reset":{const{payload:e}=t,r=[e];return o(r),r}default:throw new a.q("Unknown action for infinite search")}},i=e=>{const[t,r]=(0,n.useReducer)(l,void 0,(()=>function(){try{const e=window.history.state?.key;if(!e)return null;const t=`__fs_gallery_page_${e}`,r=sessionStorage.getItem(t);return r?JSON.parse(r):null}catch(e){return null}}()??[e]));return{pages:t,...(0,n.useMemo)((()=>({addPrevPage:()=>r({type:"addPrev"}),addNextPage:()=>r({type:"addNext"}),resetInfiniteScroll:e=>r({type:"reset",payload:e})})),[])}};var s=r(2524);const c=(0,n.createContext)(void 0),u=({children:e,itemsPerPage:t,onChange:r,...a})=>{const{state:o,...l}=(0,s.X)(a,r),{pages:u,...d}=i(o.page),f=(0,n.useMemo)((()=>({state:o,...l,pages:u,...d,itemsPerPage:t})),[d,t,u,l,o]);return n.createElement(c.Provider,{value:f},e)}},9664:function(e,t,r){"use strict";r.d(t,{uL:function(){return l},wB:function(){return i},wb:function(){return o}});var n=r(2254);const a=new Set(["price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc"]),o=e=>a.has(e),l=(e,t,r)=>{if(!0===r){const r=e.findIndex((e=>e.key===t.key));if(r>-1)return e.map(((e,n)=>n===r?t:e))}return[...e,t]},i=(e,t)=>void 0!==e.find((e=>e.key===t.key&&e.value===t.value))?((e,t)=>{const{value:r}=t,a=e.findIndex((e=>e.value===r));if(a<0)throw new n.q(`Cannot remove ${r} from search params`);return e.filter(((e,t)=>t!==a))})(e,t):l(e,t,!1)},6142:function(e,t,r){"use strict";r.d(t,{Q:function(){return l}});var n=r(2254),a=r(9664),o=r(2524);const l=({pathname:e,searchParams:t})=>{const r=(0,o.j)({base:e,term:t.get("q")??null,sort:t.get("sort")??void 0,page:Number(t.get("page")??0)});if(!(0,a.wb)(r.sort))throw new n.q(`Uknown sorting option ${r.sort}`);const l=t.get("facets")?.split(",")??[];for(const n of l){const e=t.getAll(n);for(const t of e)r.selectedFacets=(0,a.uL)(r.selectedFacets,{key:n,value:t})}return r}},3221:function(e,t,r){"use strict";r.d(t,{R:function(){return l}});var n=r(1197),a=r(2784),o=r(2254);const l=()=>(e=>{const t=(0,a.useContext)(e);if(void 0===t)throw new o.q(`${e.displayName??"Context"} needs to be on the React tree`);return t})(n._)}}]);