@faststore/core 3.0.66 → 3.0.68

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 (52) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +8 -8
  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/fetch-cache/50912854cb7c781522a6ff8792d714e549515fcbbbfd660761961b06afe01c07 +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-minimal-server.js.nft.json +1 -1
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.js +1 -1
  14. package/.next/prerender-manifest.json +1 -1
  15. package/.next/routes-manifest.json +1 -1
  16. package/.next/server/app/_not-found.html +1 -1
  17. package/.next/server/app/_not-found.rsc +1 -1
  18. package/.next/server/app/fs-next-update.html +1 -1
  19. package/.next/server/app/fs-next-update.rsc +1 -1
  20. package/.next/server/chunks/2381.js +1 -1
  21. package/.next/server/chunks/3383.js +1 -1
  22. package/.next/server/middleware-build-manifest.js +1 -1
  23. package/.next/server/pages/404.html +1 -1
  24. package/.next/server/pages/[slug]/p.js +4 -4
  25. package/.next/server/pages/api/graphql.js +1 -1
  26. package/.next/server/pages/en-US/404.html +2 -2
  27. package/.next/server/pages/en-US/500.html +2 -2
  28. package/.next/server/pages/en-US/account.html +2 -2
  29. package/.next/server/pages/en-US/checkout.html +2 -2
  30. package/.next/server/pages/en-US/login.html +2 -2
  31. package/.next/server/pages/en-US/s.html +2 -2
  32. package/.next/server/pages/en-US.html +2 -2
  33. package/.next/server/pages-manifest.json +1 -1
  34. package/.next/static/{TVApGhKFMRgHsaaWS6ahp → 3UMFfxLNPHRf2Hssm8UPe}/_buildManifest.js +1 -1
  35. package/.next/static/chunks/{722-ed59bc6f32bb342f.js → 722-35290092305b1d70.js} +1 -1
  36. package/.next/static/chunks/pages/{404-6d926d3bdc58852b.js → 404-be2217109dab18cf.js} +1 -1
  37. package/.next/static/chunks/pages/{500-cbffc24e6eaddf18.js → 500-64a07a16830e129c.js} +1 -1
  38. package/.next/static/chunks/pages/[slug]/p-151221dbf6aa3115.js +1 -0
  39. package/.next/static/chunks/pages/{login-78b2d6166a2ebbaa.js → login-258e5b7ecec36481.js} +1 -1
  40. package/.next/trace +65 -65
  41. package/.turbo/turbo-build.log +2 -2
  42. package/.turbo/turbo-test.log +4 -4
  43. package/README.md +1 -1
  44. package/package.json +9 -9
  45. package/src/components/sections/ProductDetails/DefaultComponents.ts +2 -0
  46. package/src/components/sections/ProductDetails/ProductDetails.tsx +9 -6
  47. package/src/components/ui/ProductDetails/ProductDetailsSettings.tsx +0 -1
  48. package/src/experimental/index.ts +1 -0
  49. package/src/sdk/search/state.ts +1 -1
  50. package/src/typings/overrides.ts +1 -0
  51. package/.next/static/chunks/pages/[slug]/p-080b6cd39125b474.js +0 -1
  52. /package/.next/static/{TVApGhKFMRgHsaaWS6ahp → 3UMFfxLNPHRf2Hssm8UPe}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
1
  $ yarn partytown & yarn generate && next build
2
+ $ faststore generate-graphql -c -d
2
3
  $ partytown copylib ./public/~partytown
3
4
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
4
- $ faststore generate-graphql -c -d
5
5
  [STARTED] yarn generate:schema
6
6
  [STATUS] $ tsx src/server/generator/generateGraphQLSchemaFile.ts --debug --verbose
7
7
  Schema GraphQL file generated successfully
@@ -72,8 +72,8 @@ Browserslist: caniuse-lite is outdated. Please run:
72
72
  Collecting page data ...
73
73
  Generating static pages (0/9) ...
74
74
 
75
75
  Generating static pages (2/9)
76
-
77
76
  Generating static pages (4/9)
78
77
  Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
78
+
79
79
  Generating static pages (4/9)
80
80
 
81
81
  Generating static pages (6/9)
82
82
 
83
83
  ✓ Generating static pages (9/9)
84
84
  Finalizing page optimization ...
@@ -1,10 +1,10 @@
1
1
  $ jest
2
- PASS test/utils/multipleTemplates.test.ts (31.628 s)
3
- PASS test/server/cms/index.test.ts (32.139 s)
4
- PASS test/server/index.test.ts (34.182 s)
2
+ PASS test/utils/multipleTemplates.test.ts (31.947 s)
3
+ PASS test/server/cms/index.test.ts (32.528 s)
4
+ PASS test/server/index.test.ts (33.753 s)
5
5
 
6
6
  Test Suites: 3 passed, 3 total
7
7
  Tests: 19 passed, 19 total
8
8
  Snapshots: 0 total
9
- Time: 35.115 s
9
+ Time: 34.797 s
10
10
  Ran all test suites.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  </a>
5
5
  </p>
6
6
  <h1 align="center">
7
- A starter powered by FastStore and NextJS
7
+ A starter powered by FastStore and NextJS.
8
8
  </h1>
9
9
 
10
10
  Kick off your store with this boilerplate.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.0.66",
3
+ "version": "3.0.68",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -40,11 +40,11 @@
40
40
  "@envelop/graphql-jit": "^1.1.1",
41
41
  "@envelop/parser-cache": "^2.2.0",
42
42
  "@envelop/validation-cache": "^2.2.0",
43
- "@faststore/api": "^3.0.66",
44
- "@faststore/components": "^3.0.66",
45
- "@faststore/graphql-utils": "^3.0.66",
46
- "@faststore/sdk": "^3.0.66",
47
- "@faststore/ui": "^3.0.66",
43
+ "@faststore/api": "^3.0.68",
44
+ "@faststore/components": "^3.0.68",
45
+ "@faststore/graphql-utils": "^3.0.68",
46
+ "@faststore/sdk": "^3.0.68",
47
+ "@faststore/ui": "^3.0.68",
48
48
  "@graphql-codegen/cli": "^5.0.2",
49
49
  "@graphql-codegen/client-preset": "^4.2.6",
50
50
  "@graphql-codegen/typescript": "^4.0.7",
@@ -86,8 +86,8 @@
86
86
  "devDependencies": {
87
87
  "@cypress/code-coverage": "^3.12.1",
88
88
  "@envelop/testing": "^6.0.0",
89
- "@faststore/cli": "^3.0.66",
90
- "@faststore/eslint-config": "^3.0.66",
89
+ "@faststore/cli": "^3.0.68",
90
+ "@faststore/eslint-config": "^3.0.68",
91
91
  "@faststore/lighthouse": "^1.12.32",
92
92
  "@lhci/cli": "^0.9.0",
93
93
  "@testing-library/cypress": "^10.0.1",
@@ -129,5 +129,5 @@
129
129
  "node": "18.19.0",
130
130
  "yarn": "1.19.1"
131
131
  },
132
- "gitHead": "d1aad998cbe7705d039cdc59021ebacecd4fc7ab"
132
+ "gitHead": "d12b653cdc379d4449666b2a405922c1b27c372d"
133
133
  }
@@ -16,6 +16,7 @@ import LocalShippingSimulation from 'src/components/ui/ShippingSimulation/Shippi
16
16
  import { Image } from 'src/components/ui/Image'
17
17
  import LocalNotAvailableButton from 'src/components/product/NotAvailableButton'
18
18
  import LocalProductDescription from 'src/components/ui/ProductDescription'
19
+ import { ProductDetailsSettings as LocalProductDetailsSettings } from 'src/components/ui/ProductDetails'
19
20
 
20
21
  export const ProductDetailsDefaultComponents = {
21
22
  ProductTitle: UIProductTitle,
@@ -33,4 +34,5 @@ export const ProductDetailsDefaultComponents = {
33
34
  __experimentalShippingSimulation: LocalShippingSimulation,
34
35
  __experimentalNotAvailableButton: LocalNotAvailableButton,
35
36
  __experimentalProductDescription: LocalProductDescription,
37
+ __experimentalProductDetailsSettings: LocalProductDetailsSettings,
36
38
  }
@@ -8,7 +8,6 @@ import type { AnalyticsItem } from 'app/sdk/analytics/types'
8
8
  import { useFormattedPrice } from 'src/sdk/product/useFormattedPrice'
9
9
  import { useSession } from 'src/sdk/session'
10
10
 
11
- import { ProductDetailsSettings } from '../../../components/ui/ProductDetails'
12
11
  import Section from '../Section'
13
12
 
14
13
  import styles from './section.module.scss'
@@ -82,6 +81,7 @@ function ProductDetails({
82
81
  __experimentalShippingSimulation: ShippingSimulation,
83
82
  __experimentalNotAvailableButton: NotAvailableButton,
84
83
  __experimentalProductDescription: ProductDescription,
84
+ __experimentalProductDetailsSettings: ProductDetailsSettings,
85
85
  } = useOverrideComponents<'ProductDetails'>()
86
86
  const { currency } = useSession()
87
87
  const context = usePDP()
@@ -182,17 +182,20 @@ function ProductDetails({
182
182
  data-fs-product-details-settings
183
183
  data-fs-product-details-section
184
184
  >
185
- <ProductDetailsSettings
186
- product={product}
187
- isValidating={isValidating}
185
+ <ProductDetailsSettings.Component
188
186
  buyButtonTitle={buyButtonTitle}
189
- quantity={quantity}
190
- setQuantity={setQuantity}
191
187
  buyButtonIcon={buyButtonIcon}
192
188
  notAvailableButtonTitle={
193
189
  notAvailableButtonTitle ?? NotAvailableButton.props.title
194
190
  }
195
191
  useUnitMultiplier={quantitySelector?.useUnitMultiplier ?? false}
192
+ {...ProductDetailsSettings.props}
193
+ // Dynamic props shouldn't be overridable
194
+ // This decision can be reviewed later if needed
195
+ quantity={quantity}
196
+ setQuantity={setQuantity}
197
+ product={product}
198
+ isValidating={isValidating}
196
199
  />
197
200
  </section>
198
201
 
@@ -5,7 +5,6 @@ import type { ProductDetailsFragment_ProductFragment } from '@generated/graphql'
5
5
 
6
6
  import { useBuyButton } from 'src/sdk/cart/useBuyButton'
7
7
  import { useFormattedPrice } from 'src/sdk/product/useFormattedPrice'
8
- import config from '../../../../faststore.config'
9
8
 
10
9
  import Selectors from 'src/components/ui/SkuSelector'
11
10
  import AddToCartLoadingSkeleton from './AddToCartLoadingSkeleton'
@@ -37,3 +37,4 @@ export { useShippingSimulation as useShippingSimulation_unstable } from '../../s
37
37
  // Components
38
38
  export { Image as Image_unstable } from '../../src/components/ui/Image'
39
39
  export { ProfileChallenge as ProfileChallenge_unstable } from '../../src/components/auth/ProfileChallenge'
40
+ export { default as Selectors_unstable } from '../../src/components/ui/SkuSelector'
@@ -8,7 +8,7 @@ export const useApplySearchState = () => {
8
8
  (url: URL) => {
9
9
  const newUrl = `${url.pathname}${url.search}`
10
10
  return url.searchParams.has('fuzzy') && url.searchParams.has('operator')
11
- ? router.replace(newUrl)
11
+ ? window.history.replaceState(window.history.state, '', newUrl)
12
12
  : router.push(newUrl)
13
13
  },
14
14
  [router]
@@ -273,6 +273,7 @@ export type SectionsOverrides = {
273
273
  __experimentalShippingSimulation: ComponentOverrideDefinition<any, any>
274
274
  __experimentalNotAvailableButton: ComponentOverrideDefinition<any, any>
275
275
  __experimentalProductDescription: ComponentOverrideDefinition<any, any>
276
+ __experimentalProductDetailsSettings: ComponentOverrideDefinition<any, any>
276
277
  }
277
278
  }
278
279
  ProductGallery: {
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[103],{6693:function(e,t,n){"use strict";var a=n(2784),r=n(7041),i=n(2614),l=n(2256);t.Z=({max:e,min:t=1,unitMultiplier:n=1,useUnitMultiplier:o,initial:s,disabled:d=!1,onChange:u,testId:c="fs-quantity-selector",...p})=>{let[m,f]=(0,a.useState)(s??t),[g,v]=(0,a.useState)(m*n),roundUpQuantityIfNeeded=e=>o?Math.ceil(e/n)*n:e,h=m===t,b=m===e,changeQuantity=e=>{let t=validateQuantityBounds(m+e);u?.(t),f(t),v(t*n)};function validateQuantityBounds(a){let r=t?Math.max(a,t):a;return e?Math.min(r,o?e*n:e):r}return(0,a.useEffect)(()=>{s&&f(s)},[s]),a.createElement("div",{"data-fs-quantity-selector":d?"disabled":"true","data-testid":c,...p},a.createElement(r.Z,{"data-quantity-selector-button":"left",icon:a.createElement(i.Z,{name:"Minus",width:16,height:16,weight:"bold"}),"aria-label":"Decrement Quantity","aria-controls":"quantity-selector-input",disabled:h||d,onClick:()=>changeQuantity(-1),testId:`${c}-left-button`,size:"small"}),a.createElement(l.Z,{"data-quantity-selector-input":!0,id:"quantity-selector-input","aria-label":"Quantity",value:o?g:m,onChange:function(e){let t=e.currentTarget.value;Number.isNaN(Number(t))||f(()=>{let e=validateQuantityBounds(Number(t));return v(e),u?.(e),e})},onBlur:function(){let e=roundUpQuantityIfNeeded(m);f(()=>(v(e),u?.(e/n),e/n))},disabled:d}),a.createElement(r.Z,{"data-quantity-selector-button":"right","aria-controls":"quantity-selector-input","aria-label":"Increment Quantity",disabled:b||d,icon:a.createElement(i.Z,{name:"Plus",width:16,height:16,weight:"bold"}),onClick:()=>changeQuantity(1),testId:`${c}-right-button`,size:"small"}))}},6258:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[slug]/p",function(){return n(4961)}])},536:function(e,t,n){"use strict";n.d(t,{j:function(){return I}});var a=n(7460),r=n(6692),i=n(6877),l=n(4761),o=n(4195),s=n(2322),d=n(2784),u=n(9035),c=n(7944),p=n.n(c),m=n(5114),f=n(8134),g=n(2614),v=n(727);let h=(0,d.createContext)({isOpen:!1,dropdownButtonRef:null,selectedDropdownItemIndexRef:null,dropdownItemsRef:null,id:"fs-dropdown"});var Dropdown_Dropdown=({children:e,isOpen:t=!1,onDismiss:n,id:a="fs-dropdown"})=>{let[r,i]=(0,d.useState)(t),l=(0,d.useRef)([]),o=(0,d.useRef)(0),s=(0,d.useRef)(null),u=(0,d.useCallback)(()=>{i(!1),n?.()},[n]),open=()=>{i(!0)},c=(0,d.useCallback)(()=>{i(e=>(e&&(n?.(),s.current?.focus()),!e))},[n]);(0,d.useEffect)(()=>{i(t)},[t]),(0,d.useEffect)(()=>{r&&l?.current[0]?.focus()},[r]),(0,d.useEffect)(()=>{let e=!0,event=t=>{let n=l?.current.some(e=>t.target===e);if(e){e=!1;return}n||u()};return r?document.addEventListener("click",event):document.removeEventListener("click",event),()=>{document.removeEventListener("click",event)}},[u,r]);let p=(0,d.useMemo)(()=>({isOpen:r,close:u,open,toggle:c,dropdownButtonRef:s,onDismiss:n,selectedDropdownItemIndexRef:o,dropdownItemsRef:l,id:a}),[u,a,r,n,c]);return d.createElement(h.Provider,{value:p},e)},b=n(3339);let useDropdown=()=>{let e=(0,d.useContext)(h);if(void 0===e)throw Error("Do not use useDropdown hook outside the Dropdown context.");return e},y=(0,d.forwardRef)(function({testId:e="fs-dropdown-button","aria-label":t,children:n,...a},r){let{toggle:i,dropdownButtonRef:l,isOpen:o,id:s}=useDropdown();return(0,d.useImperativeHandle)(r,()=>l.current,[l]),d.createElement(b.Z,{"data-fs-dropdown-button":!0,onClick:i,"data-testid":e,ref:l,"aria-label":t,"aria-expanded":o,"aria-haspopup":"menu","aria-controls":s,variant:"tertiary",...a},n)});var _=n(8316);let useDropdownPosition=()=>{let{dropdownButtonRef:e}=useDropdown(),t="undefined"!=typeof window,n=e?.current?.getBoundingClientRect(),a=n?.top??0,r=n?.height??0,i=n?.left??0,l=t?document?.documentElement?.scrollTop:0,o=t?document?.documentElement?.scrollLeft:0;return{position:"absolute",top:a+r+l,left:i+o}};var Dropdown_DropdownMenu=({children:e,testId:t="fs-dropdown-menu",size:n="regular",style:a,...r})=>{let{isOpen:i,close:l,dropdownItemsRef:o,selectedDropdownItemIndexRef:s,dropdownButtonRef:u,id:c}=useDropdown(),p=useDropdownPosition(),m=d.Children.toArray(e).length,handleDownPress=()=>{s.current<m-1?s.current++:s.current=0,o?.current[s.current]?.focus()},handleUpPress=()=>{s.current>0?s.current--:s.current=m-1,o?.current[s.current]?.focus()},handleHomePress=()=>{s.current=0,o?.current[s.current]?.focus()},handleEndPress=()=>{s.current=m-1,o?.current[s.current]?.focus()},handleEscapePress=()=>{l?.(),u?.current?.focus()};return i?(0,_.createPortal)(d.createElement("div",{role:"presentation","data-fs-dropdown-overlay":!0,onKeyDown:e=>{e.defaultPrevented||"Enter"===e.key||(e.preventDefault(),"Escape"===e.key&&handleEscapePress(),"ArrowDown"===e.key&&handleDownPress(),"ArrowUp"===e.key&&handleUpPress(),"Home"===e.key&&handleHomePress(),"End"===e.key&&handleEndPress(),e.stopPropagation())},"data-testid":`${t}-overlay`},d.createElement("div",{role:"menu","aria-orientation":"vertical","data-fs-dropdown-menu":!0,"data-fs-dropdown-menu-size":n,"data-testid":t,style:{...p,...a},id:c,...r},e)),document.body):(o.current=[],null)};let E=(0,d.forwardRef)(function({children:e,icon:t,onClick:n,testId:a="fs-dropdown-item",...r},i){let{dropdownItemsRef:l,selectedDropdownItemIndexRef:o,close:s}=useDropdown(),[u,c]=(0,d.useState)(0),p=(0,d.useRef)(),onFocusItem=()=>{o.current=u,l?.current[o.current]?.focus()};return(0,d.useImperativeHandle)(i,()=>p.current,[]),d.createElement("button",{"data-fs-dropdown-item":!0,"data-testid":a,ref:e=>{e&&!l?.current.includes(e)&&(l?.current.push(e),c(l?.current.findIndex(t=>t===e)??0)),p.current=e},onFocus:onFocusItem,onMouseEnter:onFocusItem,onClick:e=>{n?.(e),s?.()},role:"menuitem",tabIndex:-1,"data-index":u,...r},!!t&&t,e)});var w=n(4564),Breadcrumb_Divider=({divider:e,testId:t})=>{let n={"data-fs-breadcrumb-divider":!0,"aria-hidden":!0,"data-testid":`${t}-divider`};return d.isValidElement(e)?d.cloneElement(e,n):d.createElement("span",{...n},e??"/")},Breadcrumb_ListItem=({children:e,isLastItem:t,divider:n,testId:a})=>{let r={"data-testid":`${a}-item`,"data-fs-breadcrumb-item":!t||"current","aria-current":t?"page":void 0};return d.isValidElement(e)?d.createElement("li",{"data-fs-breadcrumb-list-item":!0},d.cloneElement(e,r),t?null:d.createElement(Breadcrumb_Divider,{divider:n,testId:a})):d.createElement("li",{"data-fs-breadcrumb-list-item":!0},d.createElement("span",{...r},e,t?null:d.createElement(Breadcrumb_Divider,{divider:n,testId:a})))};let k=(0,d.forwardRef)(function({children:e,divider:t="",testId:n="fs-breadcrumb",...a},r){return d.createElement("nav",{"aria-label":"Breadcrumb",role:"navigation",ref:r,"data-fs-breadcrumb":!0,"data-testid":n,...a},d.createElement(w.Z,{as:"ol","data-fs-breadcrumb-list":!0,"data-fs-content":"breadcrumb"},d.Children.toArray(e).map((e,a,r)=>{let i=a===r.length-1;return d.createElement(Breadcrumb_ListItem,{isLastItem:i,divider:t,key:`breadcrumb-${a}`,testId:n},e)})))}),x=(0,d.forwardRef)(function({children:e,divider:t="",testId:n="fs-breadcrumb",breadcrumbList:a,isDesktop:r=!1,renderLink:i,homeLink:l,dropdownButtonIcon:o=d.createElement(g.Z,{name:"DotsThree"}),collapsedItemsIcon:s=d.createElement(g.Z,{"data-fs-dropdown-item-icon":!0,name:"ArrowElbowDownRight"}),...u},c){let p=r?a[0]:null,m=r?a.slice(1,-2):a.slice(0,-2),f=a.slice(-2),h=a.length>4,b=(0,d.useCallback)(e=>{let t=i?.(e),n=e.collapsed?{"data-fs-breadcrumb-dropdown-link":!0}:{"data-fs-breadcrumb-link":!0};return t?(0,d.cloneElement)(t,{...n,key:e.itemProps.position}):d.createElement(v.Z,{...n,href:e.itemProps.item,key:e.itemProps.position},e.itemProps.name)},[i]);return d.createElement(k,{ref:c,"data-fs-breadcrumb-is-desktop":r,...u},l,!h&&a.map((e,t)=>a.length===t+1?d.createElement("span",{key:String(e.position)},e.name):b({itemProps:e,collapsed:!1})),h&&p&&b({itemProps:p,collapsed:!1}),h&&d.createElement(Dropdown_Dropdown,null,d.createElement(y,{"aria-label":"View More","data-fs-breadcrumb-dropdown-button":!0,size:"small"},o),d.createElement(Dropdown_DropdownMenu,{"data-fs-breadcrumb-dropdown-menu":!0},m.map(e=>d.createElement(E,{"data-fs-breadcrumb-dropdown-item":!0,key:String(e.position),icon:s},b({itemProps:e,collapsed:!0}))))),h&&f.map((e,t)=>f.length===t+1?d.createElement("span",{key:String(e.position)},e.name):b({itemProps:e,collapsed:!1})))});var P={Breadcrumb:({breadcrumbList:e,...t})=>d.createElement(d.Fragment,null,d.createElement(x,{breadcrumbList:e,...t}),d.createElement(x,{breadcrumbList:e,isDesktop:!0,...t})),Icon:g.Z},C=(0,i.B)("Breadcrumb",function(e){var t,n,r,i,d,c,g,v,h,b=(0,l._)({},(0,o._)(e)),{Breadcrumb:y}=(0,f.r3)(),_=(0,m.qt)(),E=(0,m.OJ)(_)?null==_?void 0:null===(r=_.data)||void 0===r?void 0:null===(n=r.collection)||void 0===n?void 0:null===(t=n.seo)||void 0===t?void 0:t.title:"All Products",w=(0,m.tS)(_)?null==_?void 0:null===(c=_.data)||void 0===c?void 0:null===(d=c.product)||void 0===d?void 0:null===(i=d.breadcrumbList)||void 0===i?void 0:i.itemListElement:(0,m.OJ)(_)?null==_?void 0:null===(h=_.data)||void 0===h?void 0:null===(v=h.collection)||void 0===v?void 0:null===(g=v.breadcrumbList)||void 0===g?void 0:g.itemListElement:[{item:"/",name:E,position:1}];return(0,s.jsx)(u.Z,{className:"".concat(p().section," section-breadcrumb"),children:(0,s.jsx)(y.Component,(0,a._)({breadcrumbList:w},b))})},P),S=(0,d.memo)(C),I=(0,i.v)((0,r._)((0,a._)({},{section:"Breadcrumb"}),{Section:S}))},4298:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var a=n(7460),r=n(6692),i=n(6877),l=n(2322),o=n(2784),s=n(8975),d=n(7704),u=n(5114),c=n(4914),p=n.n(c),m=n(9035),f=n(6737),g=n(9756),v=n(4644),h={ProductShelf:f.Z,__experimentalCarousel:v.Z,__experimentalProductCard:g.Z},b=(0,i.B)("CrossSellingShelf",e=>{var t,n,a,{numberOfItems:r,itemsPerPage:i,title:c,kind:f}=e,{ref:g,inView:v}=(0,d.YD)(),h=(0,u.al)(),b=null==h?void 0:null===(a=h.data)||void 0===a?void 0:null===(n=a.product)||void 0===n?void 0:null===(t=n.isVariantOf)||void 0===t?void 0:t.productGroupID,y=(0,o.useMemo)(()=>[{key:f,value:b}],[f,b]);return(0,l.jsx)(m.Z,{className:"".concat(p().section," section-product-shelf layout__section"),ref:g,children:(0,l.jsx)(s.Z,{inView:v,numberOfItems:r,itemsPerPage:i,title:c,selectedFacets:y})})},h),y=(0,i.v)((0,r._)((0,a._)({},{section:"CrossSellingShelf"}),{Section:b}))},4961:function(e,t,n){"use strict";n.r(t),n.d(t,{__N_SSG:function(){return ew},default:function(){return ek}});var a,r=n(7460),i=n(6692),l=n(2322),o=n(9714),s=n.n(o),d=n(5351),u=n(208),c=n(2826),p=n(7153),m=n(536),f=n(4298),g=n(8899),v=n(8318),h=n(6877),b=n(2784),y=n(1072),_=n(2346),E=n(3370),w=n(7672),k=n(7938),x=n(6105),useBuyButton=e=>{var{openCart:t}=(0,k.l)(),{currency:{code:n}}=(0,w.kP)();return{onClick:(0,b.useCallback)(a=>{a.preventDefault(),e&&((0,y._)({name:"add_to_cart",params:{currency:n,value:e.price*e.quantity,items:[{item_id:e.itemOffered.isVariantOf.productGroupID,item_name:e.itemOffered.isVariantOf.name,item_brand:e.itemOffered.brand.name,item_variant:e.itemOffered.sku,quantity:e.quantity,price:e.price,discount:e.listPrice-e.price,currency:n,item_variant_name:e.itemOffered.name,product_reference_id:e.itemOffered.gtin}]}}),x.i8.addItem(e),t())},[n,e,t]),"data-testid":"buy-button","data-sku":null==e?void 0:e.itemOffered.sku,"data-seller":null==e?void 0:e.seller.identifier}},P=n(2281),C=n(1664),S=n.n(C),I=n(7301),j=n(8134),ImageComponent=e=>{var{src:t,alt:n}=e,a=(0,P._)(e,["src","alt"]);return(0,l.jsx)(I.Z,(0,r._)({src:t,alt:n,width:34,height:34},a))},SkuSelector_Selectors=function(e){var{slugsMap:t,activeVariations:n,availableVariations:a}=e,o=(0,P._)(e,["slugsMap","activeVariations","availableVariations"]),{SkuSelector:s}=(0,j.r3)();return(0,l.jsx)("section",(0,i._)((0,r._)({},o),{children:a&&Object.keys(a).map(e=>{var l,o,d,u,c;return(0,b.createElement)(s.Component,(0,i._)((0,r._)({ImageComponent:ImageComponent},s.props),{key:e,skuPropertyName:e,availableVariations:a,activeVariations:n,slugsMap:t,linkProps:(0,i._)((0,r._)({},null!==(d=s.props.linkProps)&&void 0!==d?d:{}),{as:null!==(u=null===(l=s.props.linkProps)||void 0===l?void 0:l.as)&&void 0!==u?u:S(),legacyBehavior:null!==(c=null===(o=s.props.linkProps)||void 0===o?void 0:o.legacyBehavior)&&void 0!==c&&c})}))})}))};function AddToCartLoadingSkeleton(){return(0,l.jsxs)("svg",{role:"img",width:"100%",height:"48","aria-labelledby":"loading-aria",viewBox:"0 0 112 48",preserveAspectRatio:"none",children:[(0,l.jsx)("title",{id:"loading-aria",children:"Loading..."}),(0,l.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",clipPath:"url(#clip-path)",style:{fill:'url("#fill")'}}),(0,l.jsxs)("defs",{children:[(0,l.jsx)("clipPath",{id:"clip-path",children:(0,l.jsx)("rect",{x:"0",y:"0",rx:"2",ry:"2",width:"112",height:"48"})}),(0,l.jsxs)("linearGradient",{id:"fill",children:[(0,l.jsx)("stop",{offset:"0.599964",stopColor:"#f3f3f3",stopOpacity:"1",children:(0,l.jsx)("animate",{attributeName:"offset",values:"-2; -2; 1",keyTimes:"0; 0.25; 1",dur:"2s",repeatCount:"indefinite"})}),(0,l.jsx)("stop",{offset:"1.59996",stopColor:"#ecebeb",stopOpacity:"1",children:(0,l.jsx)("animate",{attributeName:"offset",values:"-1; -1; 2",keyTimes:"0; 0.25; 1",dur:"2s",repeatCount:"indefinite"})}),(0,l.jsx)("stop",{offset:"2.59996",stopColor:"#f3f3f3",stopOpacity:"1",children:(0,l.jsx)("animate",{attributeName:"offset",values:"0; 0; 3",keyTimes:"0; 0.25; 1",dur:"2s",repeatCount:"indefinite"})})]})]})]})}var ProductDetails_ProductDetailsSettings=function(e){var{product:t,buyButtonTitle:n,isValidating:a,quantity:o,setQuantity:s,buyButtonIcon:{icon:d,alt:u},notAvailableButtonTitle:c,useUnitMultiplier:p}=e,{BuyButton:m,Icon:f,ProductPrice:g,QuantitySelector:v,__experimentalNotAvailableButton:h}=(0,j.r3)(),{id:y,sku:_,gtin:w,unitMultiplier:k,name:x,brand:P,isVariantOf:C,isVariantOf:{skuVariants:S},image:I,additionalProperty:D,offers:{offers:[{availability:B,price:Z,listPrice:N,seller:L}]}}=t,M=useBuyButton({id:y,price:Z,listPrice:N,seller:L,quantity:o,itemOffered:{sku:_,name:x,gtin:w,image:I,brand:P,isVariantOf:C,additionalProperty:D,unitMultiplier:k}}),O=(0,b.useMemo)(()=>"https://schema.org/OutOfStock"===B,[B]);return(0,l.jsxs)(l.Fragment,{children:[!O&&(0,l.jsxs)("section",{"data-fs-product-details-values":!0,children:[(0,l.jsx)(g.Component,(0,r._)({"data-fs-product-details-prices":!0,value:Z,listPrice:N,formatter:E.P},g.props)),(0,l.jsx)(v.Component,(0,i._)((0,r._)({min:1,max:10,unitMultiplier:p?k:1,useUnitMultiplier:p},v.props),{onChange:s}))]}),S&&(0,l.jsx)(SkuSelector_Selectors,{slugsMap:S.slugsMap,availableVariations:S.availableVariations,activeVariations:S.activeVariations,"data-fs-product-details-selectors":!0}),a?(0,l.jsx)(AddToCartLoadingSkeleton,{}):(0,l.jsx)(()=>O?(0,l.jsx)(h.Component,{children:c}):(0,l.jsx)(m.Component,(0,i._)((0,r._)((0,i._)((0,r._)({},m.props),{icon:(0,l.jsx)(f.Component,(0,i._)((0,r._)({},f.props),{name:null!=d?d:f.props.name,"aria-label":null!=u?u:f.props["aria-label"]}))}),M),{children:n||"Add to Cart"})),{})]})},D=n(9035),B=n(2590),Z=n.n(B),N=n(5114),L=n(3024);let M=(0,b.forwardRef)(function({title:e,label:t,refTag:n="Ref.: ",refNumber:a,testId:r="fs-product-title",ratingValue:i,...l},o){return b.createElement("header",{ref:o,"data-fs-product-title":!0,"data-testid":r,...l},b.createElement("div",{"data-fs-product-title-header":!0},e,!!t&&t),(a||i)&&b.createElement("div",{"data-fs-product-title-addendum":!0},i&&b.createElement(L.Z,{value:i}),a&&b.createElement(b.Fragment,null,n," ",a)))});var O=n(2946),R=n(3339),T=n(2614),V=n(9088),G=n(6693),$=n(1953),A=n(727),F=n(5450);let getImageName=e=>{let t=new URL(e).pathname,n=t.split("/").slice(-1)[0];return n},useDefineVariant=(e,t)=>(0,b.useMemo)(()=>{if(t)return t;let n=e.every(e=>e.hexColor);if(n)return"color";let a=e[0]?.src&&getImageName(e[0].src);if(a&&1===e.length)return"image";let r=e.every(e=>{if(!e.src)return!0;let t=getImageName(e.src);return t===a});return r?"label":"image"},[e,t]),useSkuSlug=(e,t,n,a)=>{let r=(0,b.useCallback)(r=>{if(a)return{getItemHrefProp:a};let i=`/${function(e,t,n){let a=Object.entries(t).flat().join("-");if(a in e)return e[a];let r=Object.keys(e),i=r.find(e=>e.includes(`${n}-${t[n]}`));return e[i??r[0]]}(t,{...e,[n]:r.value},n)}/p`;return i},[e,a,t,n]);return{getItemHref:r}},ImageComponentFallback=({src:e,alt:t,...n})=>b.createElement("img",{src:e,alt:t,...n}),Q=(0,b.forwardRef)(function({availableVariations:e,skuPropertyName:t,testId:n,activeVariations:a,linkProps:r,slugsMap:i,getItemHref:l,ImageComponent:o=ImageComponentFallback,variant:s,...d},u){let c=a[t],p=e[t],m=useDefineVariant(p,s),{getItemHref:f}=useSkuSlug(a,i,t,l);return b.createElement("div",{ref:u,"data-fs-sku-selector":!0,"data-testid":n,"data-fs-sku-selector-variant":m,...d},t&&b.createElement($.Z,{"data-fs-sku-selector-title":!0},t,": ",b.createElement("strong",null,c)),b.createElement("ul",{"data-fs-sku-selector-list":!0},p.map((e,n)=>b.createElement("li",{key:String(n),title:e.label,"data-fs-sku-selector-option":!0,"data-fs-sku-selector-disabled":e.disabled,"data-fs-sku-selector-checked":e.value===a[t]},b.createElement(A.Z,{"data-fs-sku-selector-option-link":!0,href:f(e),...r},b.createElement(F.Z,{text:e.label})),"label"===m&&b.createElement("span",null,e.value),"image"===m&&o&&b.createElement("span",null,b.createElement(o,{src:e.src??"",alt:e.alt??"","data-fs-sku-selector-option-image":!0})),"color"===m&&b.createElement("span",null,b.createElement("div",{"data-fs-sku-selector-option-color":!0,title:e.value,style:{"--data-fs-sku-selector-option-color-bkg-color":e.hexColor}}))))))});var q=n(3779);let z=(0,b.forwardRef)(function({children:e,variant:t="colored",testId:n="fs-table",...a},r){return b.createElement("div",{"data-fs-table":!0},b.createElement("table",{ref:r,"data-fs-table-content":!0,"data-fs-table-variant":t,"data-testid":n,...a},e))}),H=(0,b.forwardRef)(function({children:e,testId:t="fs-table-body",...n},a){return b.createElement("tbody",{ref:a,"data-testid":t,"data-fs-table-body":!0,...n},e)}),U=(0,b.forwardRef)(function({children:e,testId:t="fs-table-row",...n},a){return b.createElement("tr",{ref:a,"data-fs-table-row":!0,"data-testid":t,...n},e)}),W=(0,b.forwardRef)(function({scope:e,align:t,children:n,variant:a="data",testId:r="fs-table-cell",...i},l){return b.createElement("header"===a?"th":"td",{ref:l,"data-fs-table-cell":a,"data-fs-table-cell-align":t,"data-testid":r,scope:e,...i},n)});var J=n(9767),X=n(7704),Y=n(7041);let moveScroll=(e,t)=>{e&&(e.scrollHeight>e.clientHeight?(e.style.overflow="auto",window.requestAnimationFrame(()=>e.scrollTo({top:t,behavior:"smooth"})),setTimeout(()=>e.style.overflow="hidden",2e3)):e.scrollLeft+=t)},hasScroll=e=>!!e&&(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth);var ImageGallery_ImageGallerySelector=function({images:e,onSelect:t,ImageComponent:n,currentImageIdx:a,testId:r="fs-image-gallery-selector","aria-label":i="Product Images",navigationButtonLeftAriaLabel:l="Backward slide image selector",navigationButtonRightAriaLabel:o="Forward slide image selector"}){let s=(0,b.useRef)(null),d=hasScroll(s.current),[u,c]=(0,b.useState)(!0),[p,m]=(0,b.useState)(!0),f=(0,b.useCallback)((t,n)=>{0===t&&c(n),t===e.length-1&&m(n)},[e.length]);return b.createElement("section",{"data-fs-image-gallery-selector":!0,"data-testid":r,"aria-label":i},d&&!u&&b.createElement("div",{"data-fs-image-gallery-selector-control":!0},b.createElement(Y.Z,{"data-fs-image-gallery-selector-control-button":!0,"aria-label":l,icon:b.createElement(T.Z,{name:"ArrowLeft"}),onClick:()=>moveScroll(s.current,-400)})),b.createElement("div",{"data-fs-image-gallery-selector-elements":!0,ref:s},e.map((r,i)=>b.createElement(X.df,{key:i,onChange:e=>f(i,e)},b.createElement(R.Z,{key:i,"aria-label":`${r.alternateName} - Image ${i+1} of ${e.length}`,onClick:()=>t(i),"data-fs-image-gallery-selector-thumbnail":i===a?"selected":"true"},b.createElement(n,{url:r.url??"",loading:0===i?"eager":"lazy",alternateName:r.alternateName??""}))))),d&&!p&&b.createElement("div",{"data-fs-image-gallery-selector-control":!0},b.createElement(Y.Z,{"data-fs-image-gallery-selector-control-button":!0,"aria-label":o,icon:b.createElement(T.Z,{name:"ArrowLeft"}),onClick:()=>moveScroll(s.current,400)})))};let K=(0,b.forwardRef)(function({images:e,children:t,ImageComponent:n,selectedImageIdx:a,setSelectedImageIdx:r,testId:i="fs-image-gallery",...l},o){let s=e.length>1;return b.createElement("section",{ref:o,"data-fs-image-gallery":s?"with-selector":"without-selector","data-testid":i,...l},t,s&&b.createElement(ImageGallery_ImageGallerySelector,{images:e,onSelect:r,currentImageIdx:a,ImageComponent:n}))});var ee=n(1163),ImageGallery_ImageComponent=e=>{var{url:t,alternateName:n}=e,{__experimentalImageGalleryImage:a}=(0,j.r3)();return(0,l.jsx)(a.Component,{src:t,alt:n,width:68,height:68})},et=n(1862),en=n(5563),ea=(0,_.P)("\n query ClientShippingSimulationQuery(\n $postalCode: String!\n $country: String!\n $items: [IShippingItem!]!\n ) {\n ...ClientShippingSimulation\n shipping(items: $items, postalCode: $postalCode, country: $country) {\n logisticsInfo {\n slas {\n carrier\n price\n availableDeliveryWindows {\n startDateUtc\n endDateUtc\n price\n listPrice\n }\n shippingEstimate\n localizedEstimates\n }\n }\n address {\n city\n neighborhood\n state\n }\n }\n }\n"),er=(a=(0,et._)(function*(e){var{items:t,postalCode:n,country:a}=e;return yield(0,en.W)(ea,{items:t,postalCode:n,country:a})}),function(e){return a.apply(this,arguments)}),createEmptySimulation=()=>({input:{postalCode:"",displayClearButton:!1,errorMessage:""},shippingSimulation:void 0}),reducer=(e,t)=>{var{type:n}=t;switch(n){case"clear":return createEmptySimulation();case"update":var{payload:a}=t;return{input:(0,r._)({},e.input,a.input),shippingSimulation:(0,r._)({},e.shippingSimulation,a.shippingSimulation)};case"onInput":var{payload:l}=t;return(0,i._)((0,r._)({},e),{input:(0,r._)({},l)});case"onError":var{payload:o}=t;return(0,i._)((0,r._)({},e),{input:(0,r._)({},e.input,o)});default:throw Error("Action ".concat(n," not implemented"))}},useShippingSimulation=e=>{var[{input:t,shippingSimulation:n},a]=(0,b.useReducer)(reducer,null,createEmptySimulation),{country:r,postalCode:i}=(0,w.kP)(),{postalCode:l}=t,o=(0,b.useRef)(l);return(0,b.useEffect)(()=>{i&&!o.current&&function(){_fetchShipping.apply(this,arguments)}();function _fetchShipping(){return(_fetchShipping=(0,et._)(function*(){var t=(yield er({country:r,postalCode:null!=i?i:"",items:[e]})).shipping;a({type:"update",payload:{input:{postalCode:null!=i?i:"",displayClearButton:!0,errorMessage:""},shippingSimulation:t}})})).apply(this,arguments)}},[r,i,e]),{input:t,shippingSimulation:n,handleOnClear:()=>{a({type:"clear"})},handleSubmit:(0,b.useCallback)((0,et._)(function*(){try{var t=(yield er({country:r,postalCode:null!=l?l:"",items:[e]})).shipping;a({type:"update",payload:{input:{displayClearButton:!0,errorMessage:""},shippingSimulation:t}})}catch(e){a({type:"onError",payload:{displayClearButton:!0,errorMessage:"You entered an invalid Postal Code"}})}}),[r,e,l]),handleOnInput:(0,b.useCallback)(e=>{var t=e.currentTarget.value;t?a({type:"onInput",payload:{postalCode:t,displayClearButton:!1,errorMessage:""}}):a({type:"clear"})},[])}},ei=n(1516),el=n(783),eo=n(7734),es=n(7583),ed={ProductTitle:M,DiscountBadge:O.Z,BuyButton:function({testId:e="fs-buy-button",icon:t,children:n,...a}){return b.createElement(R.Z,{"data-fs-buy-button":!0,icon:t,iconPosition:"left","data-testid":e,...a},n)},Icon:T.Z,ProductPrice:V.Z,QuantitySelector:G.Z,SkuSelector:Q,ShippingSimulation:function({testId:e="fs-shipping-simulation",formatter:t,title:n="Shipping",inputLabel:a="Postal Code",optionsLabel:r="Shipping options",idkPostalCodeLinkProps:i,onInput:l,onSubmit:o,onClear:s,location:d,options:u=[],displayClearButton:c=!1,errorMessage:p,postalCode:m,...f}){let g=!!u&&u.length>0;return b.createElement("section",{"data-fs-shipping-simulation":!0,"data-fs-shipping-simulation-empty":g?"false":"true","data-testid":e,...f},b.createElement("h2",{"data-fs-shipping-simulation-title":!0},n),b.createElement(q.Z,{actionable:!0,error:p,id:`${e}-input-field`,label:a,value:m,onInput:e=>l?.(e),onSubmit:()=>o?.(),onClear:()=>s?.(),displayClearButton:c}),b.createElement(A.Z,{href:"/","data-fs-shipping-simulation-link":!0,size:"small",...i},i?.children??b.createElement(b.Fragment,null,"I don't know my Postal Code",b.createElement(T.Z,{name:"ArrowSquareOut",width:20,height:20}))),g&&b.createElement(b.Fragment,null,b.createElement("header",{"data-fs-shipping-simulation-header":!0},b.createElement("h3",{"data-fs-shipping-simulation-subtitle":!0},r),b.createElement("p",{"data-fs-shipping-simulation-location":!0},d)),b.createElement(z,null,b.createElement(H,null,u.map(e=>b.createElement(U,{key:e.carrier},b.createElement(W,{align:"left"},e.carrier),b.createElement(W,null,e.localizedEstimates),b.createElement(W,{align:"right"},e.price&&b.createElement(J.Z,{formatter:t,value:e.price,SRText:"price"}))))))))},ImageGallery:K,ImageGalleryViewer:({children:e})=>b.createElement(b.Fragment,null,e),__experimentalImageGalleryImage:I.Z,__experimentalImageGallery:e=>{var t,{images:n}=e,a=(0,P._)(e,["images"]),{ImageGallery:o,ImageGalleryViewer:s,__experimentalImageGalleryImage:d}=(0,j.r3)(),[u,c]=(0,b.useState)(0),p=null!==(t=n[u])&&void 0!==t?t:n[0],m=(0,ee.useRouter)().asPath;return(0,b.useEffect)(()=>c(0),[m]),(0,l.jsx)(o.Component,(0,i._)((0,r._)((0,i._)((0,r._)({},o.props),{images:n,ImageComponent:ImageGallery_ImageComponent,selectedImageIdx:u,setSelectedImageIdx:c}),a),{children:(0,l.jsx)(s.Component,(0,i._)((0,r._)({},s.props),{children:(0,l.jsx)(d.Component,(0,i._)((0,r._)({sizes:"(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw",width:691,height:691*(3/4),loading:"eager"},d.props),{src:p.url,alt:p.alternateName}))}))}))},__experimentalShippingSimulation:function(e){var t,n,a,i,o,s,{productShippingInfo:d,formatter:u,inputLabel:c,title:p,idkPostalCodeLinkProps:m}=e,f=(0,P._)(e,["productShippingInfo","formatter","inputLabel","title","idkPostalCodeLinkProps"]),{ShippingSimulation:g}=(0,j.r3)(),{input:v,shippingSimulation:h,handleSubmit:b,handleOnInput:y,handleOnClear:_}=useShippingSimulation(d),{postalCode:E,displayClearButton:w,errorMessage:k}=v,x=null!==(o=[null==h?void 0:null===(t=h.address)||void 0===t?void 0:t.neighborhood,null==h?void 0:null===(n=h.address)||void 0===n?void 0:n.city].filter(Boolean).join(" / "))&&void 0!==o?o:"",C=null!==(s=null==h?void 0:null===(i=h.logisticsInfo)||void 0===i?void 0:null===(a=i[0])||void 0===a?void 0:a.slas)&&void 0!==s?s:[];return(0,l.jsx)(g.Component,(0,r._)({formatter:u,onInput:y,onSubmit:b,onClear:_,location:x,options:C,address:null==h?void 0:h.address,displayClearButton:w,errorMessage:k,postalCode:E,inputLabel:c,title:p,idkPostalCodeLinkProps:m},f))},__experimentalNotAvailableButton:function(e){var{children:t}=e;return(0,l.jsx)(R.Z,{variant:"primary",disabled:!0,"data-fs-buy-button":!0,children:t})},__experimentalProductDescription:function(e){var{descriptionData:t,initiallyExpanded:n="first"}=e,a=(0,b.useMemo)(()=>({none:[],first:[0],all:[0,1,2,3]}),[]),[r,i]=(0,b.useState)(new Set(a[n]));return(0,l.jsx)("section",{"data-fs-product-description":!0,children:(0,l.jsx)(ei.Z,{indices:r,onChange:e=>{i(t=>{var n=new Set(t);return t.has(e)?n.delete(e):n.add(e),n})},"aria-label":"Product Details Content",children:t.map((e,t)=>{var{title:n,content:a}=e;return(0,l.jsxs)(el.Z,{as:"article",index:t,prefixId:"product-description","data-fs-product-details-description":!0,children:[(0,l.jsx)(eo.Z,{children:n}),(0,l.jsx)(es.Z,{children:(0,l.jsx)("div",{"data-fs-product-details-description-content":!0,dangerouslySetInnerHTML:{__html:a}})})]},String(t))})})})}};(0,_.P)("\n fragment ProductDetailsFragment_product on StoreProduct {\n id: productID\n sku\n name\n gtin\n description\n unitMultiplier\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n offers {\n availability\n price\n listPrice\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n\n # Contains necessary info to add this item to cart\n ...CartProductItem\n }\n");var eu=(0,h.B)("ProductDetails",function(e){var t,n,a,{productTitle:{refNumber:o,discountBadge:{showDiscountBadge:s,size:d}},buyButton:{icon:u,title:c},shippingSimulator:{title:p,inputLabel:m,shippingOptionsTableTitle:f,link:{to:g,text:v}},productDescription:{title:h,initiallyExpanded:_,displayDescription:k},notAvailableButton:{title:x},quantitySelector:P}=e,{DiscountBadge:C,ProductTitle:S,__experimentalImageGallery:I,__experimentalShippingSimulation:B,__experimentalNotAvailableButton:L,__experimentalProductDescription:M}=(0,j.r3)(),{currency:O}=(0,w.kP)(),R=(0,N.al)(),{product:T,isValidating:V}=null==R?void 0:R.data,[G,$]=(0,b.useState)(1);if(!T)throw Error("NotFound");var{id:A,sku:F,gtin:Q,name:q,brand:z,isVariantOf:H,description:U,isVariantOf:{name:W,productGroupID:J},image:X,offers:{offers:[{availability:Y,price:K,listPrice:ee,seller:et}],lowPrice:en}}=T;(0,b.useEffect)(()=>{(0,y._)({name:"view_item",params:{currency:O.code,value:K,items:[{item_id:H.productGroupID,item_name:H.name,item_brand:z.name,item_variant:F,price:K,discount:ee-K,currency:O.code,item_variant_name:q,product_reference_id:Q}]}})},[H.productGroupID,H.name,z.name,F,K,ee,O.code,q,Q]);var ea=(0,b.useMemo)(()=>"https://schema.org/OutOfStock"===Y,[Y]);return(0,l.jsx)(D.Z,{className:"".concat(Z().section," section-product-details"),children:(0,l.jsx)("section",{"data-fs-product-details":!0,children:(0,l.jsxs)("section",{"data-fs-product-details-body":!0,"data-fs-content":"product-details",children:[(0,l.jsx)("header",{"data-fs-product-details-title":!0,"data-fs-product-details-section":!0,children:(0,l.jsx)(S.Component,(0,i._)((0,r._)({title:(0,l.jsx)("h1",{children:W})},S.props),{label:s&&(0,l.jsx)(C.Component,(0,i._)((0,r._)({},C.props),{size:null!=d?d:C.props.size,listPrice:ee,spotPrice:en})),refNumber:o&&J}))}),(0,l.jsx)(I.Component,(0,i._)((0,r._)({"data-fs-product-details-gallery":!0},I.props),{images:X})),(0,l.jsxs)("section",{"data-fs-product-details-info":!0,children:[(0,l.jsx)("section",{"data-fs-product-details-settings":!0,"data-fs-product-details-section":!0,children:(0,l.jsx)(ProductDetails_ProductDetailsSettings,{product:T,isValidating:V,buyButtonTitle:c,quantity:G,setQuantity:$,buyButtonIcon:u,notAvailableButtonTitle:null!=x?x:L.props.title,useUnitMultiplier:null!==(a=null==P?void 0:P.useUnitMultiplier)&&void 0!==a&&a})}),!ea&&(0,l.jsx)(B.Component,(0,i._)((0,r._)({"data-fs-product-details-section":!0,"data-fs-product-details-shipping":!0,formatter:E.P},B.props),{idkPostalCodeLinkProps:(0,i._)((0,r._)({},B.props.idkPostalCodeLinkProps),{href:null!=g?g:null===(t=B.props.idkPostalCodeLinkProps)||void 0===t?void 0:t.href,children:null!=v?v:null===(n=B.props.idkPostalCodeLinkProps)||void 0===n?void 0:n.children}),productShippingInfo:{id:A,quantity:G,seller:et.identifier},title:null!=p?p:B.props.title,inputLabel:null!=m?m:B.props.inputLabel,optionsLabel:null!=f?f:B.props.optionsLabel}))]}),k&&(0,l.jsx)(M.Component,(0,r._)({initiallyExpanded:null!=_?_:M.props.initiallyExpanded,descriptionData:[{content:U,title:h}]},M.props))]})})})},ed),ec=(0,h.v)((0,i._)((0,r._)({},{section:"ProductDetails"}),{Section:eu})),ep=n(5786),em=n(7553),ef=n(8945),eg=n(6841),ev=n(6226),eh=n.n(ev),eb=n(7432),ey=n(1179),e_=(0,_.P)("\n query ClientProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ClientProduct\n product(locator: $locator) {\n ...ProductDetailsFragment_product\n }\n }\n"),useProductQuery=(e,t)=>{var{channel:n,locale:a}=(0,w.kP)(),r=(0,b.useMemo)(()=>{if(!n)throw Error("useProductQuery: 'channel' from session is an empty string.");return{locator:[{key:"id",value:e},{key:"channel",value:n},{key:"locale",value:a}]}},[n,a,e]);return(0,ey.aM)(e_,r,{fallbackData:t,revalidateOnMount:!0})},eE=(0,r._)({Breadcrumb:m.j,BannerNewsletter:c.Z,Newsletter:v.O,BannerText:p.i,Hero:g.V,ProductDetails:ec,ProductShelf:ep.T,ProductTiles:em.Z,CrossSellingShelf:f.Z},ef.Z),overwriteMerge=(e,t)=>t;function Page(e){var t,n,a,o,{data:c,sections:p,globalSections:m,offers:f,meta:g}=e,{product:v}=c,{currency:h}=(0,w.kP)(),b=null!==(a=null===eh()||void 0===eh()?void 0:null===(t=eh().seo)||void 0===t?void 0:t.titleTemplate)&&void 0!==a?a:"",{data:y,isValidating:_}=useProductQuery(v.id,{product:v}),E={data:(0,i._)((0,r._)({},s()(c,y,{arrayMerge:overwriteMerge})),{isValidating:_})};return(0,l.jsxs)(eb.ZP,(0,i._)((0,r._)({},m),{children:[(0,l.jsx)(d.PB,{title:g.title,description:g.description,canonical:g.canonical,openGraph:{type:"og:product",url:g.canonical,title:g.title,description:g.description,images:v.image.map(e=>({url:e.url,alt:e.alternateName}))},additionalMetaTags:[{property:"product:price:amount",content:null!==(o=null===(n=v.offers.lowPrice)||void 0===n?void 0:n.toString())&&void 0!==o?o:void 0},{property:"product:price:currency",content:h.code}],titleTemplate:b}),(0,l.jsx)(d.gR,{itemListElements:v.breadcrumbList.itemListElement}),(0,l.jsx)(d.Qb,{productName:v.name,description:v.description,brand:v.brand.name,sku:v.sku,gtin:v.gtin,releaseDate:v.releaseDate,images:v.image.map(e=>e.url),offers:f}),(0,l.jsx)(N.ZP,{context:E,children:(0,l.jsx)(u.Z,{sections:p,components:eE})})]}))}Page.displayName="Page";var ew=!0,ek=(0,eg.B)(Page)},7944:function(e){e.exports={section:"section_section__dvBbv"}},2590:function(e){e.exports={section:"section_section__VI73U"}}},function(e){e.O(0,[470,432,590,774,888,179],function(){return e(e.s=6258)}),_N_E=e.O()}]);