@dropins/storefront-pdp 0.2.2 → 0.2.3-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/api.js CHANGED
@@ -1 +1,2 @@
1
- import*as t from"@dropins/tools/fetch-graphql.js";export const id=335;export const ids=[335];export const modules={2743:(t,e,r)=>{r.d(e,{J:()=>n,b:()=>a});var i=new class{get map(){return this._map}set map(t){this._map=t}getMethods(){return{setMap:t=>{this.map=t},getMap:()=>this.map}}},{setMap:n,getMap:a}=i.getMethods()},743:(t,e,r)=>{r.d(e,{m:()=>p});class i{constructor(t){this.config=t}getConfig(){return this.config}setConfig(t){this.config=t}}var n=r(2743),a=["imageParamsKeyMap"];function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function o(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach((function(e){l(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function c(t,e){if(null==t)return{};var r,i,n=function(t,e){if(null==t)return{};var r,i,n={},a=Object.keys(t);for(i=0;i<a.length;i++)r=a[i],e.indexOf(r)>=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)r=a[i],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function l(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class p{constructor(t){var{init:e,listeners:r}=t;l(this,"_listeners",[]),l(this,"config",new i({})),this.listeners=t=>(this._listeners.forEach((t=>t.off())),this._listeners=r(t)),this.init=t=>{var r=t,{imageParamsKeyMap:i}=r,s=c(r,a);return this.config.setConfig(o(o({},this.config.getConfig()),s)),(0,n.J)(i),e(t)}}}class u{static register(t,e){var r,i;u._mounted&&(null===(r=t.listeners)||void 0===r||r.call(t,e),null===(i=t.init)||void 0===i||i.call(t,e));u._initializers.push([t,e])}static mount(){var t,e;u._mounted=!0,null===(t=u._initializers)||void 0===t||t.forEach((t=>{var e,[r,i]=t;null===(e=r.listeners)||void 0===e||e.call(r,i)})),null===(e=u._initializers)||void 0===e||e.forEach((t=>{var e,[r,i]=t;null===(e=r.init)||void 0===e||e.call(r,o({imageParamsKeyMap:u._imageParamsKeyMap},i))}))}static setImageParamKeys(t){u._imageParamsKeyMap=t}}l(u,"_initializers",[]),l(u,"_mounted",!1),l(u,"_imageParamsKeyMap",void 0)},1195:(t,e,r)=>{r.d(e,{vc:()=>i.v,gX:()=>n.gX,iE:()=>n.iE,b6:()=>a.b,R3:()=>s.R,j2:()=>i.j,XV:()=>n.XV,gO:()=>n.gO,mv:()=>n.mv,yg:()=>n.yg});var i=r(4114),n=r(7322),a=r(2675),s=r(6052)},6752:(e,r,i)=>{e.exports=(t=>{var e={};return i.d(e,t),e})({FetchGraphQL:()=>t.FetchGraphQL})}};import e from"./runtime.js";import*as r from"./713.js";e.C(r);import*as i from"./api.js";e.C(i);var n,a=(n=1195,e(e.s=n)),s=a.vc,o=a.gX,c=a.iE,l=a.b6,p=a.R3,u=a.j2,f=a.XV,g=a.gO,m=a.mv,h=a.yg;export{s as config,o as fetchGraphQl,c as getConfig,l as getProductData,p as getRefinedProduct,u as initialize,f as removeFetchGraphQlHeader,g as setEndpoint,m as setFetchGraphQlHeader,h as setFetchGraphQlHeaders};
1
+ import{f as s,g as o,c as i,d as c,r as p,s as d,a as h,b as f}from"./chunks/getRefinedProduct.js";import{c as n,i as l}from"./chunks/initialize.js";import"@dropins/tools/fetch-graphql.js";import"@dropins/tools/lib.js";export{n as config,s as fetchGraphQl,o as getConfig,i as getProductData,c as getRefinedProduct,l as initialize,p as removeFetchGraphQlHeader,d as setEndpoint,h as setFetchGraphQlHeader,f as setFetchGraphQlHeaders};
2
+ //# sourceMappingURL=api.js.map
package/api.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,185 @@
1
+ import{c as h}from"./initialize.js";import{FetchGraphQL as Q}from"@dropins/tools/fetch-graphql.js";const{setEndpoint:W,setFetchGraphQlHeader:Z,removeFetchGraphQlHeader:R,setFetchGraphQlHeaders:tt,fetchGraphQl:A,getConfig:et}=new Q().getMethods();function D(e){var o,u,n;const r=e?{name:e.name,sku:e.sku,addToCartAllowed:e.addToCartAllowed,inStock:e.inStock,shortDescription:e.shortDescription,metaDescription:e.metaDescription,metaKeyword:e.metaKeyword,metaTitle:e.metaTitle,description:e.description,images:K(e),prices:j(e),attributes:M(e),options:N(e),optionUIDs:e.optionUIDs,url:e.url,urlKey:e.urlKey,externalId:e.externalId,externalParentId:e.externalParentId,variantSku:e.variantSku}:null,t=(n=(u=(o=h.getConfig())==null?void 0:o.models)==null?void 0:u.ProductDetails)==null?void 0:n.transform;return t&&r?t(r):r}function K(e){var r;return(r=e.images)==null?void 0:r.map(t=>(t.url=t.url.replace(/^https?:/,""),t))}function M(e){var r,t;return(t=(r=e.attributes)==null?void 0:r.filter(({roles:o})=>(o==null?void 0:o.indexOf("visible_in_pdp"))!==-1))==null?void 0:t.map(({label:o,value:u,name:n})=>({id:n,label:o,value:u.toString().split(",").join(", ")}))}function N(e){const{options:r,optionUIDs:t}=e;return r==null?void 0:r.map(({id:o,title:u,required:n,multi:c,values:i})=>{var d,f;const l=(d=i==null?void 0:i[0])==null?void 0:d.__typename;let a=i==null?void 0:i[0].type;return((f=i==null?void 0:i[0])==null?void 0:f.__typename)==="ProductViewOptionValueProduct"?a=void 0:a?a=a.replace("COLOR_HEX","color").replace("TEXT","text").replace("IMAGE","image"):a="dropdown",{id:o,type:a,typename:l,label:u,required:n,multiple:c,items:i==null?void 0:i.map(({id:m,title:g,inStock:p,value:P})=>({id:m,label:g,inStock:p,value:(a==null?void 0:a.toLowerCase())==="dropdown"?m:P==null?void 0:P.replace(/^https?:/,""),selected:(t==null?void 0:t.indexOf(m))>-1}))}})}function j(e){var d,f,m,g,p;const{price:r,priceRange:t,__typename:o}=e;function u(){var k;const P=r.regular.amount.value,y=((k=r.final)==null?void 0:k.amount.value)??r.regular.amount.value,w=r.regular.amount.currency==="NONE"?"USD":r==null?void 0:r.regular.amount.currency;return[P,y,y,w]}function n(){var x,_,b,S,E,T,C,O,v,F,V,$;const P=(x=t==null?void 0:t.minimum)==null?void 0:x.final.amount.value,y=(_=t==null?void 0:t.maximum)==null?void 0:_.final.amount.value;let w;((S=(b=t==null?void 0:t.minimum)==null?void 0:b.regular)==null?void 0:S.amount.value)===((T=(E=t==null?void 0:t.maximum)==null?void 0:E.regular)==null?void 0:T.amount.value)&&(w=(O=(C=t==null?void 0:t.minimum)==null?void 0:C.regular)==null?void 0:O.amount.value);const k=((F=(v=t==null?void 0:t.minimum)==null?void 0:v.final)==null?void 0:F.amount.currency)==="NONE"?"USD":($=(V=t==null?void 0:t.minimum)==null?void 0:V.final)==null?void 0:$.amount.currency;return[w,P,y,k]}const[c,i,l,a]=o==="SimpleProductView"?u():n(),s=o==="SimpleProductView"?(d=r==null?void 0:r.roles)==null?void 0:d.includes("visible"):((m=(f=t==null?void 0:t.maximum)==null?void 0:f.roles)==null?void 0:m.includes("visible"))&&((p=(g=t==null?void 0:t.minimum)==null?void 0:g.roles)==null?void 0:p.includes("visible"));return l&&i===l?{regular:{amount:c,currency:a,variant:c&&i!==c?"strikethrough":"default"},final:{amount:l,currency:a,variant:"default"},visible:s}:{final:{minimumAmount:i,maximumAmount:l,currency:a},visible:s}}const U=`
2
+ fragment ProductOptionFragment on ProductViewOption {
3
+ id
4
+ title
5
+ required
6
+ multi
7
+ values {
8
+ id
9
+ title
10
+ inStock
11
+ __typename
12
+ ... on ProductViewOptionValueProduct {
13
+ title
14
+ quantity
15
+ isDefault
16
+ product {
17
+ sku
18
+ shortDescription
19
+ metaDescription
20
+ metaKeyword
21
+ metaTitle
22
+ name
23
+ price {
24
+ final {
25
+ amount {
26
+ value
27
+ currency
28
+ }
29
+ }
30
+ regular {
31
+ amount {
32
+ value
33
+ currency
34
+ }
35
+ }
36
+ roles
37
+ }
38
+ }
39
+ }
40
+ ... on ProductViewOptionValueSwatch {
41
+ id
42
+ title
43
+ type
44
+ value
45
+ inStock
46
+ }
47
+ }
48
+ }
49
+ `,G=`
50
+ fragment ProductFragment on ProductView {
51
+ __typename
52
+ id
53
+ sku
54
+ name
55
+ shortDescription
56
+ metaDescription
57
+ metaKeyword
58
+ metaTitle
59
+ description
60
+ inStock
61
+ addToCartAllowed
62
+ url
63
+ urlKey
64
+ externalId
65
+
66
+ images(roles: []) {
67
+ url
68
+ label
69
+ roles
70
+ }
71
+
72
+ attributes(roles: []) {
73
+ name
74
+ label
75
+ value
76
+ roles
77
+ }
78
+
79
+ ... on SimpleProductView {
80
+ price {
81
+ roles
82
+
83
+ regular {
84
+ amount {
85
+ value
86
+ currency
87
+ }
88
+ }
89
+
90
+ final {
91
+ amount {
92
+ value
93
+ currency
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+
100
+ ... on ComplexProductView {
101
+ options {
102
+ ...ProductOptionFragment
103
+ }
104
+
105
+ priceRange {
106
+ maximum {
107
+ final {
108
+ amount {
109
+ value
110
+ currency
111
+ }
112
+ }
113
+ regular {
114
+ amount {
115
+ value
116
+ currency
117
+ }
118
+ }
119
+ roles
120
+ }
121
+ minimum {
122
+ final {
123
+ amount {
124
+ value
125
+ currency
126
+ }
127
+ }
128
+ regular {
129
+ amount {
130
+ value
131
+ currency
132
+ }
133
+ }
134
+ roles
135
+ }
136
+ }
137
+ }
138
+ }
139
+
140
+ ${U}
141
+ `,q=`
142
+ query GET_PRODUCT_DATA($skus: [String]) {
143
+ products(skus: $skus) {
144
+ ...ProductFragment
145
+ }
146
+ }
147
+
148
+ ${G}
149
+ `,rt=async e=>{var u,n,c,i,l;const r=(i=(c=(n=(u=h)==null?void 0:u.getConfig())==null?void 0:n.models)==null?void 0:c.ProductDetails)==null?void 0:i.initialData;if(r)return D(r);const{data:t}=await A(q,{method:"GET",variables:{skus:[e]}}),o=(l=t==null?void 0:t.products)==null?void 0:l[0];return D(o)},H=`
150
+ query REFINE_PRODUCT_QUERY(
151
+ $optionIds: [String!]!
152
+ $sku: String!
153
+ ) {
154
+ # Refined Product
155
+ refineProduct(
156
+ optionIds: $optionIds
157
+ sku: $sku
158
+ ) {
159
+ ...ProductFragment
160
+ }
161
+
162
+ # Parent Product
163
+ products(skus: [$sku]) {
164
+ ...ProductFragment
165
+ }
166
+
167
+ # %extendedPlaceholder%
168
+ }
169
+
170
+ ${G}
171
+ `;async function I(e,r){const t=L(r),o=B(t,e),u=H.replace("# %extendedPlaceholder%",o),{data:n}=await A(u,{method:"GET",variables:{optionIds:r,sku:e}});return n}const nt=async(e,r,t)=>{var d,f,m,g;const o=await I(e,r);if(!o)return null;let{products:u,refineProduct:n,...c}=o;const i=u==null?void 0:u[0],l=X(Object.values(c),i.options,t);if(t!=null&&t.length&&n===null){r=Y(l,r,t);const p=await I(e,r);n=p==null?void 0:p.refineProduct}const a=D({...n||i,sku:i.sku,name:i.name,externalParentId:i==null?void 0:i.externalId,options:l,optionUIDs:r,variantSku:(n==null?void 0:n.__typename)==="SimpleProductView"?n==null?void 0:n.sku:void 0}),s=(g=(m=(f=(d=h)==null?void 0:d.getConfig())==null?void 0:f.models)==null?void 0:m.ProductDetails)==null?void 0:g.fallbackData;return s?s(i,a):a};function L(e){if(e.length<2)return[e];const r=[];return e.forEach(t=>{const o=[];e.forEach(u=>{t!==u&&o.push(u)}),r.push(o)}),r}function B(e,r){return e.map((t,o)=>`
172
+ ProductOption${o}: refineProduct(
173
+ optionIds: [
174
+ ${t.map(u=>`"${u}"`).join(", ")}
175
+ ]
176
+ sku: "${r}"
177
+ ) {
178
+ ... on ComplexProductView {
179
+ options {
180
+ ...ProductOptionFragment
181
+ }
182
+ }
183
+ }
184
+ `).join("")}function X(e,r,t){const o=Object.values(e).filter(n=>!!n).reduce((n,c)=>c.options?[...n,...c.options]:[...n],[]),u=new Map(r.map(n=>[n.id,n]));return o.forEach(n=>{t!=null&&t.includes(n.id)||u.set(n.id,n)}),[...u.values()]}function Y(e,r,t){const o=[];let u;return e.forEach(n=>{var c,i,l,a;t.includes(n.id)?u=((i=(c=n.values)==null?void 0:c.find(s=>r.includes(s==null?void 0:s.id)))==null?void 0:i.id)||((l=n.values[0])==null?void 0:l.id):u=(a=n.values[0])==null?void 0:a.id,o.push(u)}),o}export{Z as a,tt as b,rt as c,nt as d,A as f,et as g,R as r,W as s};
185
+ //# sourceMappingURL=getRefinedProduct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRefinedProduct.js","sources":["../../src/api/fetch-graphql/fetch-graphql.ts","../../src/data/transforms/product-transform.ts","../../src/api/graphql/ProductOptionFragment.graphql.ts","../../src/api/graphql/ProductFragment.graphql.ts","../../src/api/getProductData/graphql/getProductData.graphql.ts","../../src/api/getProductData/getProductData.ts","../../src/api/getRefinedProduct/graphql/RefineProductQuery.graphql.ts","../../src/api/getRefinedProduct/getRefinedProduct.ts"],"sourcesContent":["import { FetchGraphQL } from '@adobe/fetch-graphql';\n\nexport const {\n setEndpoint,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n setFetchGraphQlHeaders,\n fetchGraphQl,\n getConfig,\n} = new FetchGraphQL().getMethods();\n","import { config } from '@/pdp/api';\nimport { ProductModel } from '@/pdp/data/models';\n\nexport function transformProductData(data: any): ProductModel | null {\n const productData = data\n ? ({\n name: data.name,\n sku: data.sku,\n addToCartAllowed: data.addToCartAllowed,\n inStock: data.inStock,\n shortDescription: data.shortDescription,\n metaDescription: data.metaDescription,\n metaKeyword: data.metaKeyword,\n metaTitle: data.metaTitle,\n description: data.description,\n images: transformImages(data),\n prices: transformPrices(data),\n attributes: transformAttributes(data),\n options: transformOptions(data),\n optionUIDs: data.optionUIDs,\n url: data.url,\n urlKey: data.urlKey,\n externalId: data.externalId,\n externalParentId: data.externalParentId,\n variantSku: data.variantSku,\n } as ProductModel)\n : null;\n\n const transform = config.getConfig()?.models?.ProductDetails?.transform;\n if (transform && productData) {\n return transform(productData);\n }\n\n return productData;\n}\n\nfunction transformImages(data: any) {\n return data.images?.map((image: any) => {\n // Remove protocol from image URL\n image.url = image.url.replace(/^https?:/, '');\n\n return image;\n });\n}\n\nfunction transformAttributes(data: any) {\n return (\n data.attributes\n // only show attributes that are visible in PDP\n ?.filter(({ roles }: any) => roles?.indexOf('visible_in_pdp') !== -1)\n // transform attribute values\n ?.map(({ label, value, name }: any) => {\n return { id: name, label, value: value.toString().split(',').join(', ') };\n })\n );\n}\n\nfunction transformOptions(data: any) {\n const { options, optionUIDs } = data;\n\n return options?.map(({ id, title, required, multi, values }: any) => {\n const typename = values?.[0]?.__typename;\n let type: any = values?.[0].type;\n\n const isBundle = values?.[0]?.__typename === 'ProductViewOptionValueProduct';\n\n if (isBundle) {\n type = undefined;\n } else {\n if (type) {\n type = type\n .replace('COLOR_HEX', 'color')\n .replace('TEXT', 'text')\n .replace('IMAGE', 'image');\n } else {\n type = 'dropdown';\n }\n }\n\n return {\n id,\n type,\n typename,\n label: title,\n required,\n multiple: multi,\n items: values?.map(({ id, title, inStock, value }: any) => {\n return {\n id,\n label: title,\n inStock,\n value: type?.toLowerCase() === 'dropdown' ? id : value?.replace(/^https?:/, ''),\n selected: optionUIDs?.indexOf(id) > -1,\n };\n }),\n };\n });\n}\n\nfunction transformPrices(data: any) {\n const { price, priceRange, __typename: type } = data;\n\n function getSimpleProductPrices() {\n const regularPrice = price.regular.amount.value;\n const finalPrice = price.final?.amount.value ?? price.regular.amount.value;\n\n const currency = price.regular.amount.currency === 'NONE' //temporary fix if there is no currency\n ? 'USD'\n : price?.regular.amount.currency\n\n return [regularPrice, finalPrice, finalPrice, currency];\n }\n\n function getComplexProductPrices() {\n const finalMinimumPrice = priceRange?.minimum?.final.amount.value;\n const finalMaximumPrice = priceRange?.maximum?.final.amount.value;\n let regularPrice;\n\n if (priceRange?.minimum?.regular?.amount.value === priceRange?.maximum?.regular?.amount.value) {\n regularPrice = priceRange?.minimum?.regular?.amount.value;\n }\n\n const currency = priceRange?.minimum?.final?.amount.currency === 'NONE'\n ? 'USD'\n : priceRange?.minimum?.final?.amount.currency;\n\n return [regularPrice, finalMinimumPrice, finalMaximumPrice, currency];\n }\n\n const [regularPrice, finalMinimumPrice, finalMaximumPrice, currency] = type === 'SimpleProductView'\n ? getSimpleProductPrices() : getComplexProductPrices();\n\n const visible =\n type === 'SimpleProductView'\n ? price?.roles?.includes('visible')\n : priceRange?.maximum?.roles?.includes('visible') &&\n priceRange?.minimum?.roles?.includes('visible');\n\n if (finalMaximumPrice && finalMinimumPrice === finalMaximumPrice) {\n const hasDiscount = regularPrice && finalMinimumPrice !== regularPrice;\n\n return {\n regular: {\n amount: regularPrice,\n currency,\n variant: hasDiscount ? 'strikethrough' : 'default',\n },\n final: {\n amount: finalMaximumPrice,\n currency,\n variant: 'default',\n },\n visible\n }\n }\n\n return {\n final: {\n minimumAmount: finalMinimumPrice,\n maximumAmount: finalMaximumPrice,\n currency\n },\n visible\n }\n}\n","export const ProductOptionFragment = `\nfragment ProductOptionFragment on ProductViewOption {\n id\n title\n required\n multi\n values {\n id\n title\n inStock\n __typename\n ... on ProductViewOptionValueProduct {\n title\n quantity\n isDefault\n product {\n sku\n shortDescription\n metaDescription\n metaKeyword\n metaTitle\n name\n price {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n }\n }\n ... on ProductViewOptionValueSwatch {\n id\n title\n type\n value\n inStock\n }\n }\n }\n`;\n","import { ProductOptionFragment } from '@/pdp/api/graphql/ProductOptionFragment.graphql';\n\nexport const ProductFragment = `\nfragment ProductFragment on ProductView {\n __typename\n id\n sku\n name\n shortDescription\n metaDescription\n metaKeyword\n metaTitle\n description\n inStock\n addToCartAllowed\n url\n urlKey\n externalId\n\n images(roles: []) {\n url\n label\n roles\n }\n\n attributes(roles: []) {\n name\n label\n value\n roles\n }\n\n... on SimpleProductView {\n price {\n roles\n\n regular {\n amount {\n value\n currency\n }\n }\n\n final {\n amount {\n value\n currency\n }\n }\n }\n}\n\n\n ... on ComplexProductView {\n options {\n ...ProductOptionFragment\n }\n\n priceRange {\n maximum {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n minimum {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n }\n }\n}\n\n${ProductOptionFragment}\n`;\n","import { ProductFragment } from '@/pdp/api/graphql/ProductFragment.graphql';\n\nexport const GET_PRODUCT_DATA = `\nquery GET_PRODUCT_DATA($skus: [String]) {\n products(skus: $skus) {\n ...ProductFragment\n }\n}\n\n${ProductFragment}\n`;\n","import { config, fetchGraphQl } from '@/pdp/api';\nimport { ProductModel } from '@/pdp/data/models';\nimport { transformProductData } from '@/pdp/data/transforms';\nimport { GET_PRODUCT_DATA } from './graphql/getProductData.graphql';\n\n\nexport const getProductData = async (\n sku: string\n): Promise<ProductModel | null> => {\n\n const initialData = config?.getConfig()?.models?.ProductDetails?.initialData;\n\n if (initialData) {\n return transformProductData(initialData);\n }\n\n const { data } = await fetchGraphQl(GET_PRODUCT_DATA, {\n method: 'GET',\n variables: { skus: [sku] },\n });\n\n const product = data?.products?.[0];\n\n return transformProductData(product);\n};\n","import { ProductFragment } from '@/pdp/api/graphql/ProductFragment.graphql';\n\nexport const REFINE_PRODUCT_QUERY = `\nquery REFINE_PRODUCT_QUERY(\n $optionIds: [String!]!\n $sku: String!\n) {\n # Refined Product\n refineProduct(\n optionIds: $optionIds \n sku: $sku\n ) {\n ...ProductFragment\n }\n\n # Parent Product\n products(skus: [$sku]) {\n ...ProductFragment\n }\n\n # %extendedPlaceholder%\n}\n\n${ProductFragment}\n`;\n","import { fetchGraphQl, config } from '@/pdp/api';\nimport { ProductModel } from '@/pdp/data/models';\nimport { transformProductData } from '@/pdp/data/transforms';\nimport { REFINE_PRODUCT_QUERY } from './graphql/RefineProductQuery.graphql';\n\nasync function getProductData(sku: string, optionUIDs: string[]): Promise<any> {\n const optionPairCombinations = getPairCombination(optionUIDs);\n const optionQueries = getProductOptionQuery(optionPairCombinations, sku);\n\n const mergedQueries = REFINE_PRODUCT_QUERY.replace(\n '# %extendedPlaceholder%',\n optionQueries\n );\n\n const { data } = await fetchGraphQl(mergedQueries, {\n method: 'GET',\n variables: { optionIds: optionUIDs, sku },\n });\n return data;\n}\n\nexport const getRefinedProduct = async (\n sku: string,\n optionUIDs: string[],\n anchorOptions?: string[]\n): Promise<ProductModel | null> => {\n\n const data = await getProductData(sku, optionUIDs);\n\n if (!data) return null;\n let { products, refineProduct, ...refinedOptions } = data;\n\n const parent = products?.[0];\n\n const options = mergeRefinedOptions(\n Object.values(refinedOptions),\n parent.options, anchorOptions\n );\n\n // needed when anchor options exist\n if (anchorOptions?.length && refineProduct === null) {\n optionUIDs = updateSelections(options, optionUIDs, anchorOptions);\n const updatedRefinedData = await getProductData(sku, optionUIDs);\n refineProduct = updatedRefinedData?.refineProduct;\n }\n\n const refinedData = transformProductData({\n ...(refineProduct || parent),\n sku: parent.sku,\n name: parent.name,\n externalParentId: parent?.externalId,\n options,\n optionUIDs,\n variantSku: refineProduct?.__typename === 'SimpleProductView' ? refineProduct?.sku : undefined,\n });\n\n const fallback = config?.getConfig()?.models?.ProductDetails?.fallbackData;\n\n if (fallback) {\n return fallback(parent, refinedData!);\n }\n\n return refinedData;\n};\n\nfunction getPairCombination(arr: string[]): string[][] {\n if (arr.length < 2) {\n return [arr];\n }\n\n const result: string[][] = [];\n\n arr.forEach((item) => {\n const temp: string[] = [];\n\n arr.forEach((item2) => {\n if (item !== item2) {\n temp.push(item2);\n }\n });\n\n result.push(temp);\n });\n\n return result;\n}\n\nfunction getProductOptionQuery(optionUIDs: string[][], sku: string): string {\n return optionUIDs\n .map((ids: string[], i: number) => {\n return `\n ProductOption${i}: refineProduct(\n optionIds: [\n ${ids.map((id) => `\"${id}\"`).join(', ')}\n ]\n sku: \"${sku}\"\n ) {\n ... on ComplexProductView {\n options {\n ...ProductOptionFragment\n }\n }\n }\n `;\n })\n .join('');\n}\n\nfunction mergeRefinedOptions(options: {}, parent: [], anchorOptions?: string[]) {\n // flat _refined[].options[] to _refinedOptions[]\n const refinedOptions: any = Object.values(options)\n .filter((x) => !!x)\n .reduce((acc: any, curr: any) => {\n if (!curr.options) return [...acc];\n\n return [...acc, ...curr.options];\n }, []);\n\n // Create a map to store items by their id from original\n const map = new Map(parent.map((item: any) => [item.id, item]));\n\n // Iterate through refinedOptions and merge items\n refinedOptions.forEach((current: any) => {\n\n // anchor options should display all values, so no merge is performed\n if (anchorOptions?.includes(current.id)) {\n return;\n }\n\n map.set(current.id, current);\n });\n\n return [...map.values()];\n}\n\nfunction updateSelections(options: any[], optionsUIDs: string[], anchorOptions: string[]): string[] {\n const updatedOptionsUIDs: string[] = [];\n\n let optionValue: string;\n options.forEach((option: any) => {\n if (anchorOptions.includes(option.id)) {\n optionValue = option.values?.find((value: any) => optionsUIDs.includes(value?.id))?.id || option.values[0]?.id;\n } else {\n optionValue = option.values[0]?.id; // TODO check if we should use default value instead\n }\n updatedOptionsUIDs.push(optionValue);\n });\n return updatedOptionsUIDs;\n}\n"],"names":["setEndpoint","setFetchGraphQlHeader","removeFetchGraphQlHeader","setFetchGraphQlHeaders","fetchGraphQl","getConfig","FetchGraphQL","getMethods","transformProductData","data","productData","name","sku","addToCartAllowed","inStock","shortDescription","metaDescription","metaKeyword","metaTitle","description","images","transformImages","prices","transformPrices","attributes","transformAttributes","options","transformOptions","optionUIDs","url","urlKey","externalId","externalParentId","variantSku","transform","config","models","ProductDetails","map","image","replace","filter","roles","indexOf","label","value","id","toString","split","join","title","required","multi","values","typename","__typename","type","undefined","multiple","items","toLowerCase","selected","price","priceRange","getSimpleProductPrices","regularPrice","regular","amount","finalPrice","final","currency","getComplexProductPrices","finalMinimumPrice","minimum","finalMaximumPrice","maximum","visible","includes","variant","minimumAmount","maximumAmount","ProductOptionFragment","ProductFragment","GET_PRODUCT_DATA","getProductData","initialData","method","variables","skus","product","products","REFINE_PRODUCT_QUERY","optionPairCombinations","getPairCombination","optionQueries","getProductOptionQuery","mergedQueries","optionIds","getRefinedProduct","anchorOptions","refineProduct","refinedOptions","parent","mergeRefinedOptions","Object","length","updateSelections","updatedRefinedData","refinedData","fallback","fallbackData","arr","result","forEach","item","temp","item2","push","ids","i","x","reduce","acc","curr","Map","current","set","optionsUIDs","updatedOptionsUIDs","optionValue","option","find"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{Initializer as t}from"@dropins/tools/lib.js";const i=new t({init:async n=>{const o={defaultLocale:"en-US"};i.config.setConfig({...o,...n})},listeners:()=>[]}),c=i.config;export{c,i};
2
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.js","sources":["../../src/api/initialize/initialize.ts"],"sourcesContent":["import { Initializer } from '@adobe/elsie/lib';\nimport { Lang } from '@adobe/elsie/i18n';\nimport { ProductModel } from '@/pdp/data/models';\n\ntype ConfigProps = {\n langDefinitions?: Lang;\n defaultLocale?: string;\n models?: {\n [name: string]: {\n initialData: any;\n transform: (data?: ProductModel) => ProductModel;\n fallbackData?: (parentProduct: any, simpleProduct: ProductModel) => ProductModel;\n }\n }\n};\n\nexport const initialize = new Initializer<ConfigProps>({\n init: async (config) => {\n const defaultConfig = { defaultLocale: 'en-US' };\n initialize.config.setConfig({ ...defaultConfig, ...config });\n },\n\n listeners: () => [],\n});\n\nexport const config = initialize.config;\n"],"names":["initialize","Initializer","init","config","defaultConfig","defaultLocale","setConfig","listeners"],"mappings":"oDAgBaA,MAAAA,EAAa,IAAIC,EAAyB,CACrDC,KAAM,MAAOC,GAAW,CACtB,MAAMC,EAAgB,CAAEC,cAAe,OAAA,EACvCL,EAAWG,OAAOG,UAAU,CAAE,GAAGF,EAAe,GAAGD,CAAAA,CAAQ,CAC7D,EAEAI,UAAWA,IAAM,CAAA,CACnB,CAAC,EAEYJ,EAASH,EAAWG"}
@@ -1 +1,2 @@
1
- import*as t from"@dropins/tools/event-bus.js";import*as e from"@dropins/tools/fetch-graphql.js";export const id=175;export const ids=[175];export const modules={5414:(t,e,n)=>{n.d(e,{f:()=>Mt,Z:()=>Mt});var r=n(3354),o=n(746),l=n(3889),a=n(1336),i=n(8910),s=n(6901),d=n(6816),c=n(9728),p=n(5587),u=n(9724),h=n(2808),m=n(1759),v=n(7138),g=n(8290),b=n(1892),_=n.n(b),f=n(5760),y=n.n(f),w=n(8311),S=n.n(w),x=n(1615),O=n.n(x),P=n(8060),j=n.n(P),k=n(3162),I={attributes:{"data-dropin":"storefront-pdp","data-sdk":"0.22.0"},styleTagTransform:function(t,e){window._loadedStyles=window._loadedStyles??{};const n=t?.match(/^\.dropin-(\w+)/)?.[1],r=e.getAttribute("data-sdk"),o=n?`sdk/${n}`:e.getAttribute("data-dropin");e.setAttribute("data-dropin",o),e.removeAttribute("data-sdk");const l=window._loadedStyles[o];if(l){const o=function(t,e){const[n,r]=t.split("-"),[o,l]=e.split("-"),a=[...n.split("."),r],i=[...o.split("."),l],s=parseInt(a[0],10),d=parseInt(i[0],10);if(s!==d)return s>d?t:e;const c=parseInt(a[1],10),p=parseInt(i[1],10);if(c!==p)return c>p?t:e;const u=parseInt(a[2],10),h=parseInt(i[2],10);if(u!==h)return u>h?t:e;if(a[3]&&i[3]){const n=/(alpha|beta)(.*)/,r=a[3].match(n),o=i[3].match(n),l=r[1],s=o[1],d=parseInt(r[2],10),c=parseInt(o[2],10);if(l===s)return d>c?t:e;if("alpha"===l&&"beta"===s)return e;if("beta"===l&&"alpha"===s)return t}return a[3]?e:t}(r,l.sdk);if(!n||n&&o===l.sdk){const e=l.style.textContent;l.style.textContent=`${e}\n/* --- MERGED --- */\n${t}`}else n&&o!==l.sdk&&(l.style.textContent=`/* --- UPGRADED --- */\n${t}`);return void e.remove()}e.textContent=t,window._loadedStyles[o]={sdk:r,core:n,style:e};const a=document.querySelector("head"),{lastDropinStyleInjected:i,lastSDKStyleInjected:s}=window._loadedStyles;n?(s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastSDKStyleInjected=e):(i?a.insertBefore(e,i.nextSibling):s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastDropinStyleInjected=e)}};I.setAttributes=O(),I.insert=S().bind(null,"head"),I.domAPI=y(),I.insertStyleElement=j();_()(k.Z,I);k.Z&&k.Z.locals&&k.Z.locals;var A=n(2754),D=["options","hideSelectedValue","onValues","onErrors","defaultOptions","selectionsToUpdate","className","children"];function Z(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},l=Object.keys(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function N(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?C(Object(n),!0).forEach((function(e){E(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function E(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var B=["text","image","color","dropdown"],R=t=>t.map((t=>N(N({},t),{},{text:t.label,disabled:!t.inStock}))),L=t=>{var{options:e,hideSelectedValue:n,onValues:o,onErrors:l,defaultOptions:a,selectionsToUpdate:i,className:s,children:d}=t,c=Z(t,D),b=(0,u.XK)("PDP.Swatches.Required.label").label,[_,f]=(0,r.eJ)((()=>null==e?void 0:e.reduce(((t,e)=>{var{items:n}=e,r=null==n?void 0:n.find((t=>null==a?void 0:a.includes(t.id))),o=null==n?void 0:n.find((t=>t.selected));return r?N(N({},t),{},{[e.id]:{label:r.label,value:r.id}}):o?N(N({},t),{},{[e.id]:{label:o.label,value:o.id}}):t}),{})));(0,r.d4)((()=>{null==i||i.forEach((t=>{f((e=>{var n,r=null==t||null===(n=t.items)||void 0===n?void 0:n.find((t=>t.selected));return r?N(N({},e),{},{[t.id]:{label:null==r?void 0:r.label,value:null==r?void 0:r.id}}):e}))}))}),[i,f]),(0,r.Ye)((()=>{var t=null==e?void 0:e.reduce(((t,e)=>{var n;return null==e||null===(n=e.items)||void 0===n||n.forEach((n=>{var r,o=(null===(r=_[e.id])||void 0===r?void 0:r.value)===n.id;e.required&&!o&&(t[e.id]=b)})),t}),{});return null==l||l(t),t}),[_]);var y=(0,r.I4)(((t,e,n)=>{f((r=>{var l=N(N({},r),{},{[t]:{label:e,value:n}});return null==o||o(l,n),l}))}),[o]),w=(0,r.I4)((t=>{var{items:e,id:n,required:r,type:o,selected:l,label:a}=t;return(0,A.tZ)("div",{className:(0,p.S)(["pdp-swatches__options"]),children:"dropdown"===(null==o?void 0:o.toLowerCase())?(0,A.tZ)(h.c,{"aria-label":a,handleSelect:t=>((t,e)=>{var n,r,o=null!==(n=null===(r=e.selectedOptions[0])||void 0===r?void 0:r.label)&&void 0!==n?n:"";y(t,o,e.value)})(n,t.target),options:R(e),value:l}):null==e?void 0:e.map((t=>{var e={key:t.id,id:t.id,name:n,value:t.value,label:t.label,groupAriaLabel:a,selected:l===t.id,outOfStock:!t.inStock,required:null===r||r,onValue:()=>{y(n,t.label,t.id)}};switch(o){case"text":return(0,A.tZ)(m.m,N(N({},e),{},{label:t.label}));case"image":return(0,A.tZ)(v.k,N(N({},e),{},{src:t.value,alt:t.label}));case"color":return(0,A.tZ)(g.b,N(N({},e),{},{size:"large",color:t.value}));default:return console.warn("Invalid swatch type ".concat(o)),null}}))})}),[y]);return(0,A.tZ)("div",N(N({},c),{},{className:(0,p.S)(["pdp-swatches",s]),children:null==e?void 0:e.map((t=>{var e,{type:r,label:o,id:l,multiple:a,required:i,items:s}=t;if(r)return B.includes(r)||console.warn("Invalid swatch type ".concat(r)),a&&console.warn("Multiple selection swatches are not currently supported."),(0,A.BX)("div",{id:"swatch-item-".concat(l),"data-slot-key":"product-swatch--".concat(l),className:"pdp-swatches__field",children:[(0,A.tZ)("div",{className:"pdp-swatches__field__label",children:_[l]?n?"".concat(o):"".concat(o,": ").concat(_[l].label):o}),(0,A.tZ)(w,{id:l,type:r,required:i,items:s,label:o,selected:null===(e=_[l])||void 0===e?void 0:e.value})]},"swatch-item-".concat(l));console.warn("Bundle product not supported on UI.")}))}))},T=n(1177),X=n(7654),$=n(8991),K=n(5465),U={attributes:{"data-dropin":"storefront-pdp","data-sdk":"0.22.0"},styleTagTransform:function(t,e){window._loadedStyles=window._loadedStyles??{};const n=t?.match(/^\.dropin-(\w+)/)?.[1],r=e.getAttribute("data-sdk"),o=n?`sdk/${n}`:e.getAttribute("data-dropin");e.setAttribute("data-dropin",o),e.removeAttribute("data-sdk");const l=window._loadedStyles[o];if(l){const o=function(t,e){const[n,r]=t.split("-"),[o,l]=e.split("-"),a=[...n.split("."),r],i=[...o.split("."),l],s=parseInt(a[0],10),d=parseInt(i[0],10);if(s!==d)return s>d?t:e;const c=parseInt(a[1],10),p=parseInt(i[1],10);if(c!==p)return c>p?t:e;const u=parseInt(a[2],10),h=parseInt(i[2],10);if(u!==h)return u>h?t:e;if(a[3]&&i[3]){const n=/(alpha|beta)(.*)/,r=a[3].match(n),o=i[3].match(n),l=r[1],s=o[1],d=parseInt(r[2],10),c=parseInt(o[2],10);if(l===s)return d>c?t:e;if("alpha"===l&&"beta"===s)return e;if("beta"===l&&"alpha"===s)return t}return a[3]?e:t}(r,l.sdk);if(!n||n&&o===l.sdk){const e=l.style.textContent;l.style.textContent=`${e}\n/* --- MERGED --- */\n${t}`}else n&&o!==l.sdk&&(l.style.textContent=`/* --- UPGRADED --- */\n${t}`);return void e.remove()}e.textContent=t,window._loadedStyles[o]={sdk:r,core:n,style:e};const a=document.querySelector("head"),{lastDropinStyleInjected:i,lastSDKStyleInjected:s}=window._loadedStyles;n?(s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastSDKStyleInjected=e):(i?a.insertBefore(e,i.nextSibling):s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastDropinStyleInjected=e)}};U.setAttributes=O(),U.insert=S().bind(null,"head"),U.domAPI=y(),U.insertStyleElement=j();_()(K.Z,U);K.Z&&K.Z.locals&&K.Z.locals;var M=["show","scrollbar","peak","arrows","controls","arrowsOnMainImage","loop","gap","direction","width","height","defaultIndex","className","children","thumbnails","isZoomed"];function q(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function z(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?q(Object(n),!0).forEach((function(e){G(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function G(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function F(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},l=Object.keys(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var J=t=>{var{show:e=1,scrollbar:n=!1,peak:o=!1,arrows:l=!1,controls:a="dots",arrowsOnMainImage:s=!1,loop:c=!1,gap:h=null,direction:m="horizontal",width:v="100%",height:g="100%",defaultIndex:b=0,className:_,children:f,thumbnails:y=null,isZoomed:w}=t,S=F(t,M),x=(0,u.XK)("PDP.Carousel.label").label,O=(0,u.XK)("PDP.Carousel.Slide.label").label,P=(0,u.XK)("PDP.Carousel.Previous.label").label,j=(0,u.XK)("PDP.Carousel.Next.label").label,k=(0,u.XK)("PDP.Carousel.Controls.label").label,I=(0,u.XK)("PDP.Carousel.Controls.Button.label").label,[D,Z]=(0,r.eJ)((()=>H(e))),C=Math.ceil(r.hu.toArray(f).length/D),N=o?24:0,E=h?{small:16,medium:24,large:64}[h]:0,B=r.hu.toArray(f).length%D,[R,L]=(0,r.eJ)(c?b+1:b),T=(0,r.sO)([]),[K,U]=(0,r.eJ)(0),[q,G]=(0,r.eJ)(0),J=(0,r.Ye)((()=>r.hu.toArray(y)),[y]),V=(0,r.Ye)((()=>{var t=r.hu.toArray(f).reduce(((t,e,n)=>n%D==0?[...t,[e]]:[...t.slice(0,-1),[...t[t.length-1],e]]),[]);return c&&1!==t.length?c&&r.hu.toArray(f).length%D==0?[t[C-1]].concat(t).concat([t[0],t[1]]):[r.hu.toArray(f).slice(-D)].concat(t).concat([t[0],t[1]]):t}),[f,D,C,c]),W=(0,r.sO)(null),Y=(0,r.sO)(null),Q="thumbnailsRow"===a||"thumbnailsColumn"===a;(0,r.d4)((()=>{var t=document.body,n=(0,X.D)((()=>{var t,n,r,o;U(null!==(t=null===(n=W.current)||void 0===n?void 0:n.offsetWidth)&&void 0!==t?t:0),G(null!==(r=null===(o=W.current)||void 0===o?void 0:o.offsetHeight)&&void 0!==r?r:0);var l=window.innerWidth,a=H(e,l);a!==D&&Z(a)}),50),r=new ResizeObserver(n);return r.observe(t),()=>{r.unobserve(t)}}),[D,e]);var tt=(0,r.I4)((t=>{var e=c?t-1:t,n=null==T?void 0:T.current[0],r=(null==n?void 0:n.offsetWidth)+16,o=(null==n?void 0:n.offsetHeight)+16,l=Y.current;"thumbnailsRow"===a&&null!=l&&l.offsetWidth&&(r*(e+1)>l.offsetWidth&&(l.style.scrollBehavior="smooth",l.scrollLeft=(e+2)*r),l.scrollLeft>r*e&&(l.style.scrollBehavior="smooth",l.scrollLeft=(e-2)*r)),"thumbnailsColumn"===a&&null!=l&&l.offsetHeight&&(o*(e+1)>l.offsetHeight&&(l.style.scrollBehavior="smooth",l.scrollTop=(e+2)*o),l.scrollTop>o*e&&(l.style.scrollBehavior="smooth",l.scrollTop=(e-2)*o))}),[a,c]),et=(0,r.I4)(((t,e,n)=>{"thumbnailsRow"!==a&&"thumbnailsColumn"!==a||tt(t);var r=W.current,o=N?r.offsetWidth-N:r.offsetWidth-N+E;if(Array.from(r.querySelectorAll("[data-index]")).filter((t=>{var e=Number(t.getAttribute("data-index"));return!isNaN(e)&&e>-1}))[t]){if(n){var l=0===t?C:0,i=o*(C+(B||D)/D);return r.scrollLeft>=0&&r.scrollLeft<o-5?void et(1,!0):r.scrollLeft>i-o&&r.scrollLeft<=i?void et(C,!0):(r.style.scrollBehavior="auto",r.scrollLeft=0===l?0:i,void et(0===l?1:C,!0))}var s=(r.offsetWidth-E)/D*V[t].length-N;r.style.scrollBehavior=e?"smooth":"auto",r.scrollLeft=V[t].length===D?o*t:o*(t-1)+s}}),[E,C,N,D,B,V,tt,a]),nt=(0,r.I4)((()=>{c?et(R-1,!0,1===R):et(R<=0?0:R-1,!0)}),[R,et,c]),rt=(0,r.I4)((()=>{var t=V.length-1;c?et(R+1,!0,R===C):et(R>=t?t:R+1,!0)}),[V.length,c,R,et,C]);(0,r.d4)((()=>{var t=t=>{"ArrowLeft"===t.key&&(t.preventDefault(),nt()),"ArrowRight"===t.key&&(t.preventDefault(),rt())};return window.addEventListener("keydown",t),()=>{window.removeEventListener("keydown",t)}}),[rt,nt]),(0,r.d4)((()=>{et(c?b+1:b,!1)}),[b,et,c]);var ot=(0,X.D)((()=>{var t=W.current,e=N?t.offsetWidth-N:t.offsetWidth-N+E,n=t.scrollLeft/e,r=Math.round(n)-n<1?Math.round(n):Math.ceil(n);if(Q&&tt(r),c){var o=e*(C+(B||D)/D);if(Math.ceil(t.scrollLeft)>=Math.ceil(o)-5)return t.style.scrollBehavior="auto",void(t.scrollLeft=1*t.offsetWidth+(Math.ceil(t.scrollLeft)-Math.ceil(o)-N));if(0===t.scrollLeft)return t.style.scrollBehavior="auto",void(t.scrollLeft=o-t.offsetWidth+N)}R!==r&&L(r)}),100);(0,r.d4)((()=>{var t=W.current;return null==t||t.addEventListener("scroll",ot),()=>{null==t||t.removeEventListener("scroll",ot)}}),[ot]);var lt=(t,e,n)=>(0,A.tZ)(d.z,{className:(0,p.S)([["pdp-carousel__button",!t],["pdp-carousel__button--".concat(e),!t],["pdp-carousel__button--".concat(a),t]]),style:{"--height":"".concat(q,"px")},variant:"tertiary","aria-label":"next"===e?j:P,onClick:n,disabled:!c&&("next"===e?R>=V.length-1:R<1),children:(0,A.tZ)(i.J,{className:(0,p.S)([["pdp-carousel__button__icon",!t],["pdp-carousel__button__icon--".concat(e),!t],["pdp-carousel__button__icon--".concat(a,"--").concat(e),t]]),size:"32",source:$.default})}),at=l&&1!=V.length&&lt(Q,"prev",nt),it=l&&1!=V.length&&lt(Q,"next",rt),st=l&&1!=V.length&&lt(!1,"prev",nt),dt=l&&1!=V.length&&lt(!1,"next",rt);return(0,A.BX)("div",z(z({role:"region","aria-roledescription":x,className:(0,p.S)(["pdp-carousel",["pdp-carousel--main-image-controls",s],["pdp-carousel--arrows",l&&!Q],["pdp-carousel--".concat(a),Q],_]),style:{"--flex-carousel":"thumbnailsColumn"===a?"row-reverse":"column","--gap":Q?"0":"var(--spacing-small)","--width":v}},S),{},{children:[(0,A.tZ)("div",{ref:W,className:(0,p.S)(["pdp-carousel__wrapper","pdp-carousel__wrapper--".concat(m),["pdp-carousel__wrapper--scrollbar",n],["pdp-carousel__wrapper--peak",o]]),style:{"--total-width":"thumbnailsColumn"===a?"81.6%":"100%","--height":"thumbnailsColumn"===a?"auto":g,"--gap":h?"var(--spacing-".concat(h,")"):"0px","--per-page":D},tabIndex:0,children:V.map(((t,e)=>{var n=t.length<D;return(0,A.tZ)("div",{role:"group","aria-roledescription":O,"data-index":e,className:(0,p.S)(["pdp-carousel__slide","pdp-carousel__slide--".concat(m),["pdp-carousel__slide--active",R===e],["pdp-carousel__slide--orphan",n]]),style:{"--length":t.length},children:t},e)}))}),!Q&&(0,A.BX)(A.HY,{children:[at,it]}),Q&&s&&(0,A.BX)(A.HY,{children:[st,dt]}),a&&1!=V.length&&(0,A.BX)("div",{className:(0,p.S)([["pdp-carousel__controls__container--".concat(a),Q],["pdp-carousel__controls__container--no-arrows",!l||s]]),style:{"--width":"thumbnailsRow"===a?"".concat(K,"px"):v,"--height":"".concat(q,"px"),"--nr-thumbnails":J.length},children:[(Q||w)&&!s&&at,(0,A.tZ)("div",{ref:Y,className:(0,p.S)([["pdp-carousel__controls__wrapper--".concat(a),Q],["pdp-carousel__controls__wrapper",Q]]),children:(0,A.tZ)("div",{role:"group","aria-label":k,className:(0,p.S)(["pdp-carousel__controls",["pdp-carousel__controls--".concat(a),Q]]),children:(c?V.slice(0,C):V).map(((t,e)=>{var n=c?C:V.length,r=c?R-1===e:R===e;return Q?(0,A.BX)("label",{className:(0,p.S)(["pdp-carousel__thumbnail__container"]),ref:t=>{t&&(T.current[e]=t)},children:[(0,A.tZ)("input",z(z({type:"radio",name:"carousel-thumbnails","aria-label":I.replace("{key}",String(e+1)).replace("{total}",String(n)),checked:r&&0!==K,onChange:()=>{et(c?e+1:e,!0)}},S),{},{className:(0,p.S)(["pdp-carousel__thumbnail",["pdp-carousel__thumbnail--selected",r&&0!==K]])})),(0,A.tZ)("span",{className:(0,p.S)(["pdp-carousel__thumbnail__span"]),children:J[e]})]},e):(0,A.tZ)("button",{"aria-label":I.replace("{key}",String(e+1)).replace("{total}",String(n)),onClick:()=>{et(c?e+1:e,!0)},className:(0,p.S)(["pdp-carousel__controls__button",["pdp-carousel__controls__button--active",r]])},e)}))})}),(Q||w)&&!s&&it]})]}))};function H(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if("number"==typeof t)return t;var{small:n,medium:r,large:o}=t;return e>1024?o:e>786?r:n}var V=n(6297),W={attributes:{"data-dropin":"storefront-pdp","data-sdk":"0.22.0"},styleTagTransform:function(t,e){window._loadedStyles=window._loadedStyles??{};const n=t?.match(/^\.dropin-(\w+)/)?.[1],r=e.getAttribute("data-sdk"),o=n?`sdk/${n}`:e.getAttribute("data-dropin");e.setAttribute("data-dropin",o),e.removeAttribute("data-sdk");const l=window._loadedStyles[o];if(l){const o=function(t,e){const[n,r]=t.split("-"),[o,l]=e.split("-"),a=[...n.split("."),r],i=[...o.split("."),l],s=parseInt(a[0],10),d=parseInt(i[0],10);if(s!==d)return s>d?t:e;const c=parseInt(a[1],10),p=parseInt(i[1],10);if(c!==p)return c>p?t:e;const u=parseInt(a[2],10),h=parseInt(i[2],10);if(u!==h)return u>h?t:e;if(a[3]&&i[3]){const n=/(alpha|beta)(.*)/,r=a[3].match(n),o=i[3].match(n),l=r[1],s=o[1],d=parseInt(r[2],10),c=parseInt(o[2],10);if(l===s)return d>c?t:e;if("alpha"===l&&"beta"===s)return e;if("beta"===l&&"alpha"===s)return t}return a[3]?e:t}(r,l.sdk);if(!n||n&&o===l.sdk){const e=l.style.textContent;l.style.textContent=`${e}\n/* --- MERGED --- */\n${t}`}else n&&o!==l.sdk&&(l.style.textContent=`/* --- UPGRADED --- */\n${t}`);return void e.remove()}e.textContent=t,window._loadedStyles[o]={sdk:r,core:n,style:e};const a=document.querySelector("head"),{lastDropinStyleInjected:i,lastSDKStyleInjected:s}=window._loadedStyles;n?(s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastSDKStyleInjected=e):(i?a.insertBefore(e,i.nextSibling):s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastDropinStyleInjected=e)}};W.setAttributes=O(),W.insert=S().bind(null,"head"),W.domAPI=y(),W.insertStyleElement=j();_()(V.Z,W);V.Z&&V.Z.locals&&V.Z.locals;var Y=["children","gap","className","style"];function Q(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function tt(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Q(Object(n),!0).forEach((function(e){et(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Q(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function et(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function nt(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},l=Object.keys(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var rt=t=>{var{children:e,gap:n=null,className:o,style:l}=t,a=nt(t,Y),i=r.hu.count(e);return(0,A.tZ)("div",tt(tt({},a),{},{className:(0,p.S)(["pdp-gallery-grid",o]),style:tt({"--gap":n?"var(--spacing-".concat(n,")"):"0px"},l),children:r.hu.map(e,((t,e)=>(0,A.tZ)("div",{className:"pdp-gallery-grid__item",children:(0,A.tZ)(T.F,{node:t,loading:0===e?"eager":"lazy"},t.props.src)},i+e)))}))},ot=n(7498),lt=n(6250),at={attributes:{"data-dropin":"storefront-pdp","data-sdk":"0.22.0"},styleTagTransform:function(t,e){window._loadedStyles=window._loadedStyles??{};const n=t?.match(/^\.dropin-(\w+)/)?.[1],r=e.getAttribute("data-sdk"),o=n?`sdk/${n}`:e.getAttribute("data-dropin");e.setAttribute("data-dropin",o),e.removeAttribute("data-sdk");const l=window._loadedStyles[o];if(l){const o=function(t,e){const[n,r]=t.split("-"),[o,l]=e.split("-"),a=[...n.split("."),r],i=[...o.split("."),l],s=parseInt(a[0],10),d=parseInt(i[0],10);if(s!==d)return s>d?t:e;const c=parseInt(a[1],10),p=parseInt(i[1],10);if(c!==p)return c>p?t:e;const u=parseInt(a[2],10),h=parseInt(i[2],10);if(u!==h)return u>h?t:e;if(a[3]&&i[3]){const n=/(alpha|beta)(.*)/,r=a[3].match(n),o=i[3].match(n),l=r[1],s=o[1],d=parseInt(r[2],10),c=parseInt(o[2],10);if(l===s)return d>c?t:e;if("alpha"===l&&"beta"===s)return e;if("beta"===l&&"alpha"===s)return t}return a[3]?e:t}(r,l.sdk);if(!n||n&&o===l.sdk){const e=l.style.textContent;l.style.textContent=`${e}\n/* --- MERGED --- */\n${t}`}else n&&o!==l.sdk&&(l.style.textContent=`/* --- UPGRADED --- */\n${t}`);return void e.remove()}e.textContent=t,window._loadedStyles[o]={sdk:r,core:n,style:e};const a=document.querySelector("head"),{lastDropinStyleInjected:i,lastSDKStyleInjected:s}=window._loadedStyles;n?(s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastSDKStyleInjected=e):(i?a.insertBefore(e,i.nextSibling):s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastDropinStyleInjected=e)}};at.setAttributes=O(),at.insert=S().bind(null,"head"),at.domAPI=y(),at.insertStyleElement=j();_()(lt.Z,at);lt.Z&&lt.Z.locals&&lt.Z.locals;var it=["centered","onClose","className","children"];function st(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function dt(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?st(Object(n),!0).forEach((function(e){ct(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):st(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function ct(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function pt(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},l=Object.keys(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var ut=t=>{var{centered:e,onClose:n,className:o,children:l}=t,a=pt(t,it),i=(0,u.XK)("PDP.Overlay.Close.label").label,s=(0,r.I4)((()=>{null==n||n()}),[n]);return(0,r.d4)((()=>{var t=t=>{"Escape"===t.key&&s()};return document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t)}}),[s]),(0,r.d4)((()=>{var t=document.scrollingElement,e=t.style.overflow;return t.style.overflow="hidden",()=>{t.style.overflow=e}}),[]),(0,A.BX)("div",dt(dt({},a),{},{className:(0,p.S)(["pdp-overlay",["pdp-overlay--centered",e],o]),children:[(0,A.tZ)("div",{className:"pdp-overlay__content",children:l}),(0,A.tZ)(d.z,{"aria-label":i,variant:"tertiary",className:"pdp-overlay__close-button",onClick:s,icon:(0,A.tZ)(ot.default,{})})]}))},ht=n(2366),mt={attributes:{"data-dropin":"storefront-pdp","data-sdk":"0.22.0"},styleTagTransform:function(t,e){window._loadedStyles=window._loadedStyles??{};const n=t?.match(/^\.dropin-(\w+)/)?.[1],r=e.getAttribute("data-sdk"),o=n?`sdk/${n}`:e.getAttribute("data-dropin");e.setAttribute("data-dropin",o),e.removeAttribute("data-sdk");const l=window._loadedStyles[o];if(l){const o=function(t,e){const[n,r]=t.split("-"),[o,l]=e.split("-"),a=[...n.split("."),r],i=[...o.split("."),l],s=parseInt(a[0],10),d=parseInt(i[0],10);if(s!==d)return s>d?t:e;const c=parseInt(a[1],10),p=parseInt(i[1],10);if(c!==p)return c>p?t:e;const u=parseInt(a[2],10),h=parseInt(i[2],10);if(u!==h)return u>h?t:e;if(a[3]&&i[3]){const n=/(alpha|beta)(.*)/,r=a[3].match(n),o=i[3].match(n),l=r[1],s=o[1],d=parseInt(r[2],10),c=parseInt(o[2],10);if(l===s)return d>c?t:e;if("alpha"===l&&"beta"===s)return e;if("beta"===l&&"alpha"===s)return t}return a[3]?e:t}(r,l.sdk);if(!n||n&&o===l.sdk){const e=l.style.textContent;l.style.textContent=`${e}\n/* --- MERGED --- */\n${t}`}else n&&o!==l.sdk&&(l.style.textContent=`/* --- UPGRADED --- */\n${t}`);return void e.remove()}e.textContent=t,window._loadedStyles[o]={sdk:r,core:n,style:e};const a=document.querySelector("head"),{lastDropinStyleInjected:i,lastSDKStyleInjected:s}=window._loadedStyles;n?(s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastSDKStyleInjected=e):(i?a.insertBefore(e,i.nextSibling):s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastDropinStyleInjected=e)}};mt.setAttributes=O(),mt.insert=S().bind(null,"head"),mt.domAPI=y(),mt.insertStyleElement=j();_()(ht.Z,mt);ht.Z&&ht.Z.locals&&ht.Z.locals;var vt=["title","breadcrumbs","galleryContent","infoContent","productContent","sku","outOfStock","hideSku","shortDescription","description","attributes","images","options","price","specialPrice","className","children","quantity","actions","carouselConfig"];function gt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function bt(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?gt(Object(n),!0).forEach((function(e){_t(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):gt(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function _t(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ft(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},l=Object.keys(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var yt=t=>{var e,n,o,l,a,i,{title:s,breadcrumbs:d,galleryContent:c,infoContent:h,productContent:m,sku:v,outOfStock:g,hideSku:b,shortDescription:_,description:f,attributes:y,images:w,options:S,price:x,specialPrice:O,className:P,children:j,quantity:k,actions:I,carouselConfig:D}=t,Z=ft(t,vt),C=(0,u.XK)("PDP.Product.RegularPrice.label").label,N=(0,u.XK)("PDP.Product.SpecialPrice.label").label,E=(0,u.XK)("PDP.Product.OutOfStock.label").label,B=(0,u.XK)("PDP.Product.Image.label").label,[R,L]=(0,r.eJ)(null),X=null!=w&&w.length?w.map(((t,e)=>{var n;return(0,A.tZ)(T.F,{node:t,loading:0===e?"eager":"lazy",alt:(null==s||null===(n=s.props)||void 0===n?void 0:n.children)&&(null==B?void 0:B.replace("{product}",s.props.children.toString()).replace("{key}",String(e+1)).replace("{total}",String(w.length))),onClick:()=>L(e)},e)})):(0,A.tZ)("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0}),$=null!=D&&null!==(e=D.thumbnails)&&void 0!==e&&e.length?D.thumbnails.map(((t,e)=>{var n;return(0,A.tZ)(T.F,{node:t,loading:(null==D?void 0:D.thumbnailsLoadingMode)||"lazy",alt:(null==s||null===(n=s.props)||void 0===n?void 0:n.children)&&(null==B?void 0:B.replace("{product}",s.props.children.toString()).replace("{key}",String(e+1)).replace("{total}",String(w.length)))},e)})):(0,A.tZ)("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0});return(0,A.BX)("div",bt(bt({},Z),{},{className:(0,p.S)(["pdp-product",P]),children:[d&&(0,A.tZ)(T.F,{node:d,className:"pdp-product__breadcrumbs"}),(0,A.BX)("div",{className:"pdp-product__column-container pdp-product__gallery-column",children:[(0,A.tZ)("div",{className:"pdp-product__column-body",children:null!=D&&D.controls?(0,A.tZ)(J,{className:"pdp-product__overlay__carousel",arrows:(null==w?void 0:w.length)>1,controls:(null==w?void 0:w.length)>1?D.controls:"dots",arrowsOnMainImage:null==D?void 0:D.arrowsOnMainImage,loop:(null==D?void 0:D.loopable)&&(null==w?void 0:w.length)>1,peak:(null==D||null===(n=D.thumbnails)||void 0===n?void 0:n.length)>1&&(null==D||null===(o=D.peak)||void 0===o?void 0:o.desktop)||!1,gap:(null==D?void 0:D.gap)||null,width:"100%",height:"100%",defaultIndex:R||0,thumbnails:$,children:X}):(0,A.tZ)(rt,{className:"pdp-product__images",gap:"small",children:X})}),c&&(0,A.tZ)(T.F,{node:c,className:"pdp-product__gallery-content"})]}),(0,A.BX)("div",{className:"pdp-product__column-container pdp-product__content-column",children:[(0,A.BX)("div",{className:"pdp-product__column-body",children:[(0,A.BX)("div",{className:"pdp-product__header",children:[s&&(0,A.tZ)(T.F,{node:s,className:"pdp-product__title"}),!b&&v&&(0,A.tZ)(T.F,{node:v,className:"pdp-product__sku"})]}),(0,A.BX)("div",{className:"pdp-product__prices",children:[O&&(0,A.tZ)(T.F,{node:O,className:(0,p.S)(["pdp-product__price-special","pdp-product__price"]),"aria-label":N,role:"text"}),x&&(0,A.tZ)(T.F,{node:x,className:(0,p.S)(["pdp-product__price-regular","pdp-product__price--grey"]),"aria-label":C,role:"text"})]}),null!=D&&D.mobile?(0,A.tZ)(J,{className:"pdp-product__images pdp-product__images--carousel pdp-product__images--carousel--thumbnails",width:"100%",height:"auto",arrows:(null==w?void 0:w.length)>1,controls:(null==w?void 0:w.length)>1?"thumbnailsRow":null,loop:(null==D?void 0:D.loopable)&&(null==w?void 0:w.length)>1,peak:(null==D||null===(l=D.thumbnails)||void 0===l?void 0:l.length)>1&&(null==D||null===(a=D.peak)||void 0===a?void 0:a.mobile)||!1,gap:(null==D?void 0:D.gap)||null,thumbnails:$,children:X}):(0,A.tZ)(J,{className:"pdp-product__images pdp-product__images--carousel",peak:(null==D||null===(i=D.peak)||void 0===i?void 0:i.mobile)&&(null==w?void 0:w.length)>1,gap:(null==D?void 0:D.gap)||null,width:"100%",height:"auto",arrows:(null==w?void 0:w.length)>1,controls:(null==w?void 0:w.length)>1?"dots":null,loop:(null==D?void 0:D.loopable)&&(null==w?void 0:w.length)>1,children:X}),(0,A.BX)("div",{className:(0,p.S)(["pdp-product__actions",["pdp-product__actions--out-of-stock",g]]),children:[g&&(0,A.tZ)("div",{className:"pdp-product__out-of-stock__text",children:E}),S&&(0,A.tZ)(T.F,{node:S,className:(0,p.S)(["pdp-product__options"])}),k&&(0,A.tZ)("div",{className:"pdp-product__quantity",children:(0,A.tZ)(T.F,{node:k})}),I&&(0,A.tZ)(T.F,{node:I,className:(0,p.S)(["pdp-product__buttons"])})]}),_&&(0,A.tZ)(T.F,{node:_,className:(0,p.S)(["pdp-product__short_description"])}),f&&(0,A.tZ)(T.F,{node:f,className:(0,p.S)(["pdp-product__description"])}),y?(0,A.tZ)("div",{className:"pdp-product__attributes",children:y}):null]}),h&&(0,A.tZ)(T.F,{node:h,className:"pdp-product__info-content"})]}),m&&(0,A.tZ)(T.F,{node:m,className:"pdp-product__content"}),null===R?null:(0,A.tZ)(ut,{className:"pdp-product__overlay",onClose:()=>L(null),centered:!0,children:(0,A.tZ)(J,{className:"pdp-product__overlay__carousel",arrows:(null==w?void 0:w.length)>1,width:"100%",height:"100%",defaultIndex:R||0,loop:(null==w?void 0:w.length)>1,controls:(null==w?void 0:w.length)>1?"dots":null,isZoomed:!0,children:X})})]}))},wt=n(9139),St={attributes:{"data-dropin":"storefront-pdp","data-sdk":"0.22.0"},styleTagTransform:function(t,e){window._loadedStyles=window._loadedStyles??{};const n=t?.match(/^\.dropin-(\w+)/)?.[1],r=e.getAttribute("data-sdk"),o=n?`sdk/${n}`:e.getAttribute("data-dropin");e.setAttribute("data-dropin",o),e.removeAttribute("data-sdk");const l=window._loadedStyles[o];if(l){const o=function(t,e){const[n,r]=t.split("-"),[o,l]=e.split("-"),a=[...n.split("."),r],i=[...o.split("."),l],s=parseInt(a[0],10),d=parseInt(i[0],10);if(s!==d)return s>d?t:e;const c=parseInt(a[1],10),p=parseInt(i[1],10);if(c!==p)return c>p?t:e;const u=parseInt(a[2],10),h=parseInt(i[2],10);if(u!==h)return u>h?t:e;if(a[3]&&i[3]){const n=/(alpha|beta)(.*)/,r=a[3].match(n),o=i[3].match(n),l=r[1],s=o[1],d=parseInt(r[2],10),c=parseInt(o[2],10);if(l===s)return d>c?t:e;if("alpha"===l&&"beta"===s)return e;if("beta"===l&&"alpha"===s)return t}return a[3]?e:t}(r,l.sdk);if(!n||n&&o===l.sdk){const e=l.style.textContent;l.style.textContent=`${e}\n/* --- MERGED --- */\n${t}`}else n&&o!==l.sdk&&(l.style.textContent=`/* --- UPGRADED --- */\n${t}`);return void e.remove()}e.textContent=t,window._loadedStyles[o]={sdk:r,core:n,style:e};const a=document.querySelector("head"),{lastDropinStyleInjected:i,lastSDKStyleInjected:s}=window._loadedStyles;n?(s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastSDKStyleInjected=e):(i?a.insertBefore(e,i.nextSibling):s?a.insertBefore(e,s.nextSibling):a.insertBefore(e,a.firstChild),window._loadedStyles.lastDropinStyleInjected=e)}};St.setAttributes=O(),St.insert=S().bind(null,"head"),St.domAPI=y(),St.insertStyleElement=j();_()(wt.Z,St);wt.Z&&wt.Z.locals&&wt.Z.locals;var xt=n(470),Ot=["amount","currency","locale","variant","sale","minimumAmount","maximumAmount","className"];function Pt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function jt(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Pt(Object(n),!0).forEach((function(e){kt(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Pt(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function kt(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function It(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},l=Object.keys(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var At=t=>{var{amount:e,currency:n,locale:r,variant:o,sale:l,minimumAmount:a,maximumAmount:i,className:s}=t,d=It(t,Ot);return(0,A.tZ)(A.HY,{children:e||a===i?(0,A.tZ)("div",jt(jt({className:"pdp-price-range"},d),{},{children:(0,A.tZ)(xt.t,{amount:e||a,currency:n,locale:r,variant:o,sale:l,className:s})})):(0,A.BX)("div",jt(jt({className:"pdp-price-range"},d),{},{children:[(0,A.tZ)(xt.t,{amount:a,currency:n,locale:r,className:s}),(0,A.tZ)("span",{className:"pdp-price-range__label",children:"-"}),(0,A.tZ)(xt.t,{amount:i,currency:n,locale:r,className:s})]}))})},Dt=n(4114),Zt=n(2675),Ct=n(6052),Nt=n(5214);function Et(t){if(![/^\d{4}-\d{2}-\d{2}$/,/^\d{1,2}\/\d{1,2}\/\d{4}$/,/^\d{2}\/\d{2}\/\d{4}$/,/^\d{4}\/\d{2}\/\d{2}$/,/^\d{1,2}\.\d{1,2}\.\d{4}$/,/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/].some((e=>e.test(t))))return!1;var e=new Date(t);return!isNaN(e.getTime())}var Bt=["sku","hideSku","hideQuantity","hideShortDescription","hideDescription","hideAttributes","hideURLParams","hideSelectedOptionValue","slots","children","initialData","carousel","optionsConfig","onAddToCart"],Rt=["text"],Lt=["text","icon"];function Tt(t,e,n,r,o,l,a){try{var i=t[l](a),s=i.value}catch(t){return void n(t)}i.done?e(s):Promise.resolve(s).then(r,o)}function Xt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $t(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Xt(Object(n),!0).forEach((function(e){Kt(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Xt(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Kt(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Ut(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},l=Object.keys(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r<l.length;r++)n=l[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var Mt=t=>{var e,n,p,h,m,v,g,b,{sku:_,hideSku:f,hideQuantity:y,hideShortDescription:w,hideDescription:S,hideAttributes:x,hideURLParams:O,hideSelectedOptionValue:P,slots:j,children:k,initialData:I,carousel:D,optionsConfig:Z,onAddToCart:C}=t,N=Ut(t,Bt),E=(0,u.XK)("PDP.Product.AddToCart.label").label,B=(0,u.XK)("PDP.Product.Incrementer.label").label,R=(0,u.XK)("PDP.Product.Details.label").label,[T,X]=(0,r.eJ)(Dt.v.getConfig().defaultLocale||"en-US"),[$,K]=(0,r.eJ)(),[U=null,M]=(0,r.eJ)(I),[q,z]=(0,r.eJ)((()=>{var t={sku:_,quantity:1};return null!=U&&U.optionUIDs&&(t.optionsUIDs=U.optionUIDs),t})),[G,F]=(0,r.eJ)((()=>{var t,e;return!(null!=U&&U.options&&(null==U||null===(t=U.options)||void 0===t?void 0:t.length)>0&&(null==U||null===(e=U.optionUIDs)||void 0===e?void 0:e.length)!==(null==U?void 0:U.options.length))})),J={data:U,values:q,valid:G};(0,r.d4)((()=>{var t=Nt.events.on("locale",(t=>{t!==T&&(X(t),(0,Zt.b)(_).then(M))}));return()=>{null==t||t.off()}}),[T,_]);var H=(0,r.I4)((t=>{z((e=>$t($t({},e),t)))}),[]),V=(0,r.I4)((t=>{var e,n=Object.keys(t).map((e=>t[e].value)).filter((t=>void 0!==t));O||function(t){var e=new URLSearchParams(window.location.search);Object.entries(t).forEach((t=>{var[n,r]=t;null===r?e.delete(n):e.set(n,String(r))}));var n=window.location.pathname;n+="?".concat(e.toString()),n+=window.location.hash,window.history.replaceState({},"",n)}({optionsUIDs:n.join(",")}),z((t=>$t($t({},t),{},{optionsUIDs:n}))),F((null==n?void 0:n.length)===(null==U||null===(e=U.options)||void 0===e?void 0:e.length)),(0,Ct.R)(_,n,null==Z?void 0:Z.anchorOptions).then((t=>{var e;M(t),null!=Z&&null!==(e=Z.anchorOptions)&&void 0!==e&&e.length&&W(t,n)}))}),[_]),W=(0,r.I4)(((t,e)=>{var n,r,o=null!==(n=null==t?void 0:t.optionUIDs)&&void 0!==n?n:[];e.every((t=>o.includes(t)))||(K(null==t?void 0:t.options),z((t=>$t($t({},t),{},{optionsUIDs:o}))),F((null==o?void 0:o.length)===(null==t||null===(r=t.options)||void 0===r?void 0:r.length)))}),[_]),Y=(0,r.I4)((t=>{0!==Object.keys(t).length&&F(!1)}),[]),Q=(0,r.Ye)((()=>{var t;return null==U||null===(t=U.attributes)||void 0===t?void 0:t.map(((t,e)=>{var{label:n,value:r}=t,o=Et(r)?function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en_US";if(!Et(t))throw Error("Invalid date string");return t.split(" ")[1]||(t="".concat(t," 00:00:00")),new Date(t).toLocaleDateString((0,l.A)(e)).toString()}(r,T):r.toString();return(0,A.BX)("li",{children:[n,": ",(0,A.tZ)("span",{dangerouslySetInnerHTML:{__html:o}})]},e)}))}),[null==U?void 0:U.attributes,T]),tt=!y&&null!=U&&U.inStock?(0,A.tZ)(o.g,{name:"Quantity",slot:null==j?void 0:j.Quantity,context:$t({},J),children:(0,A.tZ)(a.u,{name:"quantity",defaultValue:q.quantity.toString(),min:1,"aria-label":B,className:"pdp-product__quantity",onValue:t=>{H({quantity:Number(t)})}},"quantity")}):void 0;return(0,A.tZ)("div",$t($t({},N),{},{children:(0,A.tZ)(yt,{title:(0,A.tZ)(o.g,{name:"Title",slot:null==j?void 0:j.Title,context:$t({},J),children:null==U?void 0:U.name}),sku:f?void 0:(0,A.tZ)(o.g,{name:"SKU",slot:null==j?void 0:j.SKU,context:$t({},J),children:null==U?void 0:U.sku}),options:(()=>{if(null!=U&&U.options)return(0,A.tZ)(o.g,{name:"Options",slot:null==j?void 0:j.Options,context:$t({},J),children:(0,A.tZ)(L,{options:U.options,defaultOptions:q.optionsUIDs,selectionsToUpdate:$,hideSelectedValue:P,onValues:V,onErrors:Y})})})(),breadcrumbs:(null==j?void 0:j.Breadcrumbs)&&(0,A.tZ)(o.g,{name:"Breadcrumbs",slot:null==j?void 0:j.Breadcrumbs,context:$t($t({},J),{},{setSeparator(t){var e=this;this._registerMethod((function(){var n=t(...arguments),r=n&&(0,A.tZ)(i.J,{source:n});e._setProps((t=>$t($t({},t),{},{separator:r})))}))},appendLink(t){var e=this;this._registerMethod((function(){var n=t(...arguments),{text:r}=n,o=Ut(n,Rt),l=(0,A.tZ)("a",$t($t({},o),{},{children:r}));e._setProps((t=>$t($t({},t),{},{categories:[...t.categories||[],l]})))}))},appendHTMLElement(t){var e=this;this._registerMethod((function(){var n=t(...arguments),r=e._htmlElementToVNode(n);e._setProps((t=>$t($t({},t),{},{categories:[...t.categories||[],r]})))}))}}),render:t=>{var{separator:e,categories:n}=t;return(0,A.tZ)(s.O,{separator:e,categories:n})}}),quantity:tt,actions:(0,A.tZ)(o.g,{name:"Actions",slot:null==j?void 0:j.Actions,context:$t($t({},J),{},{appendButton(t){var e=this;this._registerMethod((function(){var n=t(...arguments);if(n){var{text:r,icon:o}=n,l=Ut(n,Lt),a=(0,A.tZ)(d.z,$t($t({type:"button"},l),{},{icon:o&&(0,A.tZ)(i.J,{source:o}),children:r}));e._setProps((t=>({children:[...t.children||[],a]})))}}))}}),children:!(null!=j&&j.Actions)&&(0,A.tZ)(d.z,{size:"medium",type:"submit",icon:(0,A.tZ)(i.J,{source:"Cart"}),disabled:!(null!=U&&U.inStock&&G),"aria-label":E,onClick:()=>null==C?void 0:C(q),children:E})}),shortDescription:w?void 0:(0,A.tZ)(o.g,{name:"ShortDescription",slot:null==j?void 0:j.ShortDescription,context:$t({},J),children:(0,A.tZ)("div",{dangerouslySetInnerHTML:{__html:null!==(e=null==U?void 0:U.shortDescription)&&void 0!==e?e:""}})}),description:S?void 0:(0,A.tZ)(o.g,{name:"Description",slot:null==j?void 0:j.Description,context:$t({},J),children:(0,A.tZ)("div",{dangerouslySetInnerHTML:{__html:null!==(n=null==U?void 0:U.description)&&void 0!==n?n:""}})}),images:null!==(p=null==U||null===(h=U.images)||void 0===h?void 0:h.map((t=>{var e,n,r,o,l,{label:a,url:i}=t;return(0,A.tZ)(c.E,{title:a,alt:a,src:i,width:null!==(e=null==D||null===(n=D.imageParams)||void 0===n?void 0:n.width)&&void 0!==e?e:960,height:null!==(r=null==D||null===(o=D.imageParams)||void 0===o?void 0:o.height)&&void 0!==r?r:1191,params:null!==(l=null==D?void 0:D.imageParams)&&void 0!==l?l:{width:960}},i)})))&&void 0!==p?p:[],specialPrice:null!=U&&null!==(m=U.prices)&&void 0!==m&&m.visible?(0,A.tZ)(o.g,{name:"SpecialPrice",slot:null==j?void 0:j.SpecialPrice,context:$t({},J),children:(0,A.tZ)(At,$t($t({},U.prices.final),{},{locale:(0,l.A)(T)}))}):void 0,price:null!=U&&null!==(v=U.prices)&&void 0!==v&&v.visible&&U.prices.regular&&U.prices.final.amount!==(null==U?void 0:U.prices.regular.amount)?(0,A.tZ)(o.g,{name:"RegularPrice",slot:null==j?void 0:j.RegularPrice,context:$t({},J),children:(0,A.tZ)(At,$t($t({},U.prices.regular),{},{locale:(0,l.A)(T)}))}):void 0,carouselConfig:$t($t({},D),{},{thumbnails:D&&null!==(g=null==U||null===(b=U.images)||void 0===b?void 0:b.map((t=>{var e,n,r,o,l,{label:a,url:i}=t;return(0,A.tZ)(c.E,{title:a,alt:a,src:i,width:null!==(e=null==D||null===(n=D.thumbnailParams)||void 0===n?void 0:n.width)&&void 0!==e?e:200,height:null!==(r=null==D||null===(o=D.thumbnailParams)||void 0===o?void 0:o.height)&&void 0!==r?r:248,params:null!==(l=null==D?void 0:D.thumbnailParams)&&void 0!==l?l:{width:200}},i)})))&&void 0!==g?g:[]}),outOfStock:!(null!=U&&U.inStock),attributes:x?void 0:(0,A.tZ)(o.g,{name:"Attributes",slot:null==j?void 0:j.Attributes,context:$t({},J),children:null!=Q&&Q.length?(0,A.BX)(A.HY,{children:[R,(0,A.tZ)("ul",{children:Q})]}):null}),galleryContent:(null==j?void 0:j.GalleryContent)&&(0,A.tZ)(o.g,{name:"GalleryContent",slot:j.GalleryContent,context:$t({},J)}),infoContent:(null==j?void 0:j.InfoContent)&&(0,A.tZ)(o.g,{name:"InfoContent",slot:j.InfoContent,context:$t({},J)}),productContent:(null==j?void 0:j.Content)&&(0,A.tZ)(o.g,{name:"Content",slot:j.Content,context:$t({},J)})})}))};Mt.getInitialData=function(){var t,e=(t=function*(t){var e,n,r,o,l,a,i,{sku:s,optionsConfig:d}=t,c=(null===(e=(a=new URLSearchParams(window.location.search),i={},a.forEach(((t,e)=>{i[e]=t})),i).optionsUIDs)||void 0===e?void 0:e.split(","))||(null===Dt.v||void 0===Dt.v||null===(n=Dt.v.getConfig())||void 0===n||null===(r=n.models)||void 0===r||null===(o=r.ProductDetails)||void 0===o||null===(l=o.initialData)||void 0===l?void 0:l.optionsUIDs);return null!=c&&c.length?yield(0,Ct.R)(s,c,null==d?void 0:d.anchorOptions):yield(0,Zt.b)(s)},function(){var e=this,n=arguments;return new Promise((function(r,o){var l=t.apply(e,n);function a(t){Tt(l,r,o,a,i,"next",t)}function i(t){Tt(l,r,o,a,i,"throw",t)}a(void 0)}))});return function(t){return e.apply(this,arguments)}}()},5465:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(4933),o=n.n(r),l=n(3476),a=n.n(l)()(o());a.push([t.id,".pdp-carousel{\n --icon-size:32px;\n --icon-extra-padding:8px;\n --thumb-peak:32px;\n --thumbnails-col-width:18.6%;\n\n position:relative;\n display:flex;\n flex-direction:var(--flex-carousel);\n align-items:center;\n gap:var(--gap);\n width:var(--width);\n}\n\n.pdp-carousel--thumbnailsColumn{\n justify-content:flex-end;\n align-items:start;\n\n}\n\n.pdp-carousel--thumbnailsRow{\n align-items:center;\n}\n\n\n.pdp-carousel--arrows{\n padding-left:calc(var(--icon-size) + var(--icon-extra-padding));\n padding-right:calc(var(--icon-size) + var(--icon-extra-padding));\n width:calc(var(--width) - 2 * var(--icon-size) - 2 * var(--icon-extra-padding))\n}\n.pdp-carousel__button{\n position:absolute;\n top:50%;\n transform:translateY(-50%);\n padding:0;\n}\n\n.pdp-carousel__button--prev{\n left:0;\n}\n\n.pdp-carousel__button--next{\n right:0;\n}\n\n.pdp-carousel__button__icon--prev{\n transform:rotate(90deg);\n}\n\n.pdp-carousel__button__icon--next{\n right:0;\n transform:rotate(-90deg);\n}\n\n.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsColumn .pdp-carousel__button--prev{\n left:var(--thumbnails-col-width);\n}\n\n.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsRow .pdp-carousel__button--prev{\n top:calc(var(--height) / 2);\n}\n\n.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsRow .pdp-carousel__button--next{\n top:calc(var(--height) / 2);\n}\n.pdp-carousel__button--thumbnailsColumn{\n margin:auto;\n padding:0;\n}\n\n.pdp-carousel__button--thumbnailsRow{\n padding:0;\n}\n\n.pdp-carousel__button__icon--thumbnailsColumn--prev{\n transform:rotate(180deg);\n}\n\n.pdp-carousel__button__icon--thumbnailsRow--prev{\n transform:rotate(90deg);\n}\n\n.pdp-carousel__button__icon--thumbnailsRow--next{\n transform:rotate(-90deg);\n}\n.pdp-carousel__wrapper{\n --peak:0px;\n scroll-padding:var(--peak);\n width:var(--total-width);\n height:var(--height);\n display:flex;\n flex-wrap:nowrap;\n gap:var(--gap);\n -webkit-overflow-scrolling:touch;\n}\n.pdp-carousel__wrapper--horizontal{\n overflow-x:auto;\n overflow-y:hidden;\n scroll-snap-type:x mandatory;\n}\n.pdp-carousel__slide{\n display:grid;\n grid-gap:var(--gap);\n grid-auto-columns:1fr;\n grid-auto-rows:100%;\n scroll-snap-align:end;\n scroll-snap-stop:always;\n flex-shrink:0;\n}\n\n.pdp-carousel__slide--horizontal{\n grid-auto-flow:column;\n width:calc(calc(100%) - var(--peak));\n}\n\n.pdp-carousel__slide--horizontal.pdp-carousel__slide--orphan{\n width:calc((calc(100%) / var(--per-page) * var(--length)) - var(--peak) / var(--per-page) * var(--length) - var(--gap) / var(--per-page) * (var(--per-page) - var(--length)));\n}\n\n.pdp-carousel__slide > *{\n vertical-align:middle;\n max-width:100%;\n max-height:100%;\n}\n\n.pdp-carousel__slide > img{\n object-fit:contain;\n width:100%;\n height:100%;\n}\n.pdp-carousel__wrapper--peak{\n --peak:calc(var(--spacing-medium) + var(--gap));\n}\n.pdp-carousel__wrapper--scrollbar{\n --scroll-foreground:var(--color-neutral-600);\n --scroll-background:var(--color-neutral-400);\n scrollbar-color:var(--scroll-foreground) var(--scroll-background);\n scrollbar-width:thin;\n}\n\n.pdp-carousel__wrapper:not(.pdp-carousel__wrapper--scrollbar){\n scrollbar-width:none;\n}\n\n.pdp-carousel__wrapper:not(\n .pdp-carousel__wrapper--scrollbar\n )::-webkit-scrollbar{\n display:none;\n}\n\n.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar{\n width:4px;\n height:4px;\n}\n\n.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar-thumb{\n background:var(--scroll-foreground);\n}\n\n.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar-track{\n background:var(--scroll-background);\n}\n.pdp-carousel__controls__container--thumbnailsRow{\n --thumbnails-spacing:var(--spacing-small);\n --thumbnails-box-width:var(--spacing-xxsmall);\n --thumbnails-rest:calc(var(--thumbnails-spacing) - var(--thumbnails-box-width));\n --thumbnails-width:calc((var(--width) - 2 * var(--icon-size) - 4 * var(--thumbnails-spacing) - var(--thumb-peak) - 2 * var(--thumbnails-box-width)) / 4);\n margin-top:var(--thumbnails-rest);\n width:var(--width);\n display:flex;\n}\n\n.pdp-carousel__controls__container--thumbnailsColumn{\n --thumbnails-spacing:var(--spacing-small);\n --thumbnails-box-width:var(--spacing-xxsmall);\n --thumbnails-rest:calc(var(--thumbnails-spacing) - var(--thumbnails-box-width));\n --thumbnails-width:100%;\n\n width:calc(var(--thumbnails-col-width) - var(--thumbnails-rest));\n \n margin-right:var(--thumbnails-rest);\n}\n.pdp-carousel__controls__container--thumbnailsColumn:not(.pdp-carousel__controls__container--no-arrows){\n height:calc(max(var(--height), 4 * var(--thumbnails-spacing)) - 4 * var(--thumbnails-spacing));\n}\n\n.pdp-carousel__controls__container--thumbnailsColumn.pdp-carousel__controls__container--no-arrows{\n height:var(--height);\n}\n.pdp-carousel__controls__wrapper--thumbnailsColumn{\n max-height:100%;\n overflow-y:scroll;\n}\n\n.pdp-carousel__controls__wrapper--thumbnailsRow{\n max-width:100%;\n overflow-x:scroll;\n}\n\n.pdp-carousel__controls--thumbnailsRow > label > span:nth-last-child(1){\n margin-right:var(--thumbnails-box-width);\n}\n\n.pdp-carousel__controls__wrapper::-webkit-scrollbar{\n display:none;\n}\n\n.pdp-carousel__controls__wrapper{\n -ms-overflow-style:none;\n scrollbar-width:none;\n}\n.pdp-carousel__controls{\n display:flex;\n flex-direction:row;\n gap:var(--spacing-xsmall);\n}\n\n.pdp-carousel__controls--thumbnailsColumn{\n display:grid;\n grid-template-columns:repeat(1, 1fr);\n grid-auto-rows:1fr;\n grid-row-gap:var(--thumbnails-spacing);\n padding:var(--thumbnails-box-width);\n}\n\n.pdp-carousel__controls--thumbnailsRow{\n grid-column-gap:var(--thumbnails-spacing);\n padding:var(--thumbnails-box-width);\n}\n\n.pdp-carousel__controls__button{\n border-radius:50%;\n width:10px;\n height:10px;\n padding:0;\n border:none;\n background:var(--color-neutral-400);\n cursor:pointer;\n}\n\n.pdp-carousel__controls__button:hover{\n background:var(--color-neutral-500);\n}\n\n.pdp-carousel__controls__button:active,\n.pdp-carousel__controls__button--active{\n background:var(--color-neutral-600);\n}\n\n.pdp-carousel__slide--last{\n width:calc(100%);\n}\n.pdp-carousel__thumbnail__container input[type='radio']{\n opacity:0;\n position:absolute;\n width:0;\n height:0;\n \n}\n\n.pdp-carousel__thumbnail__container .pdp-carousel__thumbnail__span{\n display:inline-block;\n --bg-color:var(--color-neutral-300);\n box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-400);\n position:relative;\n cursor:pointer;\n background-color:var(--bg-color);\n background-image:var(--background-image);\n background-repeat:no-repeat;\n background-size:cover;\n height:100%;\n width:100%;\n overflow:hidden;\n}\n\n.pdp-carousel__thumbnail__content{\n width:inherit;\n position:absolute;\n top:-9999px;\n bottom:-9999px;\n left:-9999px;\n right:-9999px;\n margin:auto;\n overflow:hidden;\n}\n\n.pdp-carousel__thumbnail__span:hover{\n box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-50), 0 0 0 var(--shape-border-width-4) var(--color-neutral-500);\n outline:none;\n}\n\n.pdp-carousel__controls__wrapper--thumbnailsRow .pdp-carousel__thumbnail__container{ \n min-width:100px;\n}\n\n.pdp-carousel__thumbnail__container\n input[type='radio']:not(:checked):active\n ~ .pdp-carousel-thumbnail__span{\n box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-500);\n outline:none;\n}\n\n.pdp-carousel__thumbnail__container\n input[type='radio']:checked\n ~ .pdp-carousel__thumbnail__span,\n.pdp-carousel__thumbnail--selected{\n box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-50), 0 0 0 var(--shape-border-width-4) var(--color-neutral-800);\n}\n\n.pdp-carousel__thumbnail__container\n input[type='radio']:checked:active\n ~ .pdp-carousel__thumbnail__span{\n box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-50), 0 0 0 var(--shape-border-width-4) var(--color-neutral-600);\n}\n\n.pdp-carousel__thumbnail__container\n input[type='radio']:focus-visible\n + .pdp-carousel__thumbnail__span{\n box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-900), 0 0 0 6px var(--color-neutral-400);\n}\n\n.pdp-carousel__thumbnail__span > img{\n object-fit:cover;\n width:100%;\n height:100%;\n}\n",""]);const i=a},6297:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(4933),o=n.n(r),l=n(3476),a=n.n(l)()(o());a.push([t.id,".pdp-gallery-grid{\n display:grid;\n grid-gap:var(--gap);\n grid-template-columns:repeat(1, 1fr);\n grid-auto-rows:max-content;\n}\n\n.pdp-gallery-grid__item > *{\n height:100%;\n max-width:100%;\n min-width:100%;\n vertical-align:middle;\n width:100%;\n object-fit:contain;\n}\n.pdp-gallery-grid__item:only-child{\n grid-column:1 / span 2;\n}\n.pdp-gallery-grid__item:first-child:nth-last-child(2){\n grid-column:1 / span 2;\n grid-row:1;\n}\n\n.pdp-gallery-grid__item:nth-child(2):last-child{\n grid-column:1 / 3;\n grid-row:2;\n}\n@media only screen and (min-width: 1024px){\n .pdp-gallery-grid{\n grid-template-columns:repeat(2, 1fr);\n }\n}\n",""]);const i=a},6250:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(4933),o=n.n(r),l=n(3476),a=n.n(l)()(o());a.push([t.id,".pdp-overlay{\n position:fixed;\n top:0;\n left:0;\n z-index:1000;\n right:0;\n bottom:0;\n background-color:var(--color-neutral-50);\n display:flex;\n padding:var(--spacing-medium);\n}\n\n.pdp-overlay--centered{\n align-items:center;\n justify-content:center;\n}\n\n.pdp-overlay__close-button{\n position:absolute;\n top:var(--spacing-medium);\n right:var(--spacing-medium);\n z-index:1001;\n}\n",""]);const i=a},9139:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(4933),o=n.n(r),l=n(3476),a=n.n(l)()(o());a.push([t.id,".pdp-price-range .dropin-price{\n letter-spacing:var(--type-headline-2-strong-letter-spacing);\n font:var(--type-headline-2-strong-font);\n}\n\n.pdp-price-range__label{\n font:var(--type-headline-2-strong-font);\n letter-spacing:var(--type-body-1-strong-letter-spacing);\n margin-left:5px;\n margin-right:5px;\n}\n",""]);const i=a},2366:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(4933),o=n.n(r),l=n(3476),a=n.n(l)()(o());a.push([t.id,".pdp-product{\n display:grid;\n grid-template-columns:repeat(var(--grid-1-columns), 1fr);\n grid-column-gap:var(--grid-1-gutters);\n margin:0 var(--grid-1-margins);\n}\n.pdp-product__gallery-column{\n display:none;\n}\n.pdp-product__content-column{\n grid-column:1 / span 4;\n color:var(--color-neutral-800);\n}\n.pdp-product__header{\n display:grid;\n grid-auto-rows:max-content;\n margin-bottom:var(--spacing-medium);\n}\n.pdp-product__breadcrumbs{\n grid-column:1 / -1;\n padding:var(--spacing-medium) 0 var(--spacing-xxbig);\n}\n.pdp-product__title{\n font:var(--type-display-3-font);\n letter-spacing:var(--type-display-3-letter-spacing);\n margin:0;\n}\n.pdp-product__sku{\n font:var(--type-body-1-default-font);\n max-width:600px;\n}\n.pdp-product__prices{\n display:flex;\n gap:var(--spacing-xsmall);\n margin-top:var(--spacing-medium);\n}\n.pdp-product__out-of-stock__text{\n font:var(--type-headline-2-strong-font);\n}\n.pdp-product__options{\n grid-column:1 / span 4;\n}\n.pdp-product__price,\n.pdp-product__price-special{\n font:var(--type-headline-2-strong-font);\n}\n\n.pdp-product__price,\n.pdp-product__sku,\n.pdp-product__price-special,\n.pdp-product__out-of-stock__text{\n letter-spacing:var(--type-headline-2-strong-letter-spacing);\n}\n.pdp-product__price--grey{\n color:var(--color-neutral-500);\n}\n.pdp-product__actions,\n.pdp-product__actions--out-of-stock{\n display:grid;\n grid-auto-flow:row;\n gap:var(--grid-1-gutters);\n grid-auto-rows:max-content;\n margin-bottom:var(--spacing-xxbig);\n margin-top:var(--spacing-big);\n}\n.pdp-product__short_description,\n.pdp-product__attributes{\n font:var(--type-body-1-strong-font);\n letter-spacing:var(--type-body-1-strong-letter-spacing);\n margin-bottom:var(--spacing-small);\n}\n.pdp-product__description,\n.pdp-product__attributes li{\n font:var(--type-body-1-default-font);\n letter-spacing:var(--type-body-1-default-letter-spacing);\n}\n.pdp-product__attributes{\n margin-top:var(--spacing-xsmall);\n}\n.pdp-product__short_description p,\n.pdp-product__description p,\n.pdp-product__attributes li p{\n margin:0;\n}\n.pdp-product__short_description figure,\n.pdp-product__description figure{\n margin:0;\n}\n.pdp-product__short_description img,\n.pdp-product__description img{\n max-width:100%;\n}\n.pdp-product__images--carousel{\n max-height:60vh;\n}\n\n.pdp-product__images--carousel--thumbnails{\n max-height:90vh;\n}\n\n.pdp-product__images__placeholder{\n background-color:var(--color-neutral-200);\n}\n.pdp-product__buttons{\n display:grid;\n grid-auto-rows:max-content;\n grid-gap:var(--grid-1-gutters);\n}\n.pdp-product__buttons a{\n text-align:center;\n}\n.pdp-product__buttons a:hover{\n text-decoration:none;\n}\n.pdp-product__overlay .pdp-overlay__content{\n width:100%;\n height:100%;\n}\n.pdp-product__overlay__carousel{\n width:100%;\n height:100%;\n box-sizing:border-box;\n}\n.pdp-product__overlay__carousel img{\n width:100%;\n height:100%;\n object-fit:contain;\n\n}\n.pdp-carousel__controls__container--thumbnailsRow img,\n.pdp-carousel__controls__container--thumbnailsColumn img{\n object-fit:cover;\n}\n.pdp-product__quantity{\n grid-column:1 / span 4;\n}\n.pdp-product__buttons{\n grid-column:1 / span 4;\n}\n@media only screen and (min-width: 1024px){\n .pdp-product__breadcrumbs{\n grid-column:2 / -2;\n }\n .pdp-product{\n grid-template-columns:repeat(var(--grid-3-columns), 1fr);\n grid-column-gap:var(--grid-3-gutters);\n margin:0 var(--grid-3-margins);\n position:relative;\n }\n .pdp-product__column-container{\n position:relative;\n display:flex;\n flex-direction:column;\n }\n .pdp-product__column-body{\n position:sticky;\n bottom:30%;\n align-self:flex-end;\n }\n .pdp-product__gallery-column{\n display:block;\n grid-column:2 / span 6;\n }\n .pdp-product__content-column{\n grid-column:8 / span 4;\n padding-top:var(--spacing-medium);\n }\n .pdp-product__images--carousel{\n display:none;\n }\n .pdp-product__header{\n margin-bottom:var(--spacing-small);\n }\n .pdp-product__actions{\n grid-template-columns:repeat(var(--grid-1-columns), 1fr);\n grid-column-gap:var(--grid-1-gutters);\n grid-row-gap:var(--spacing-xxbig);\n margin-top:var(--spacing-xxbig);\n }\n .pdp-product__quantity{\n grid-column:1 / span 2;\n }\n .pdp-product__actions--out-of-stock{\n grid-template-columns:repeat(var(--grid-1-columns), 1fr);\n grid-column-gap:var(--grid-1-gutters);\n grid-row-gap:var(--spacing-xxbig);\n margin-top:var(--spacing-small);\n }\n .pdp-product__buttons{\n grid-column:1 / span 4;\n }\n .pdp-product__out-of-stock__text{\n grid-column:1 / span 2;\n }\n .pdp-product__gallery-content,\n .pdp-product__content{\n grid-column:2 / span 6;\n }\n}\n",""]);const i=a},3162:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(4933),o=n.n(r),l=n(3476),a=n.n(l)()(o());a.push([t.id,".pdp-swatches{\n display:grid;\n grid-auto-flow:row;\n grid-gap:var(--grid-1-gutters);\n grid-auto-rows:max-content;\n}\n\n.pdp-swatches__field{\n display:grid;\n font:var(--type-body-2-strong-font);\n grid-auto-rows:max-content;\n gap:var(--spacing-xsmall);\n}\n\n.pdp-swatches__field__label{\n font:var(--type-details-caption-1-font);\n letter-spacing:var(--type-details-caption-1-letter-spacing);\n color:var(--color-neutral-800);\n}\n\n.pdp-swatches__options{\n display:flex;\n flex-wrap:wrap;\n gap:var(--spacing-xsmall);\n}\n",""]);const i=a},5214:(e,n,r)=>{e.exports=(t=>{var e={};return r.d(e,t),e})({events:()=>t.events})},6752:(t,n,r)=>{t.exports=(t=>{var e={};return r.d(e,t),e})({FetchGraphQL:()=>e.FetchGraphQL})}};import n from"../runtime.js";import*as r from"../275.js";n.C(r);import*as o from"../918.js";n.C(o);import*as l from"../713.js";n.C(l);import*as a from"./ProductDetails.js";n.C(a);var i,s=(i=5414,n(n.s=i)),d=s.f,c=s.Z;export{d as ProductDetails,c as default};
1
+ import*as ie from"@dropins/tools/preact-compat.js";import{useState as K,Children as te,useRef as Se,useMemo as ve,useEffect as re,useCallback as Q}from"@dropins/tools/preact-compat.js";import{debounce as ge,classes as $,VComponent as V,toLanguageTag as Ne,Slot as T}from"@dropins/tools/lib.js";import{Button as we,Icon as be,Price as ye,Picker as Ve,ColorSwatch as He,ImageSwatch as qe,TextSwatch as ze,Incrementer as Ge,Breadcrumbs as Ue,Image as xe}from"@dropins/tools/components.js";import{jsxs as W,jsx as e,Fragment as Pe}from"@dropins/tools/preact-jsx-runtime.js";import{useText as G}from"@dropins/tools/i18n.js";import{c as Be,d as Ie}from"../chunks/getRefinedProduct.js";import{events as Te}from"@dropins/tools/event-bus.js";import{c as Ee}from"../chunks/initialize.js";import"@dropins/tools/fetch-graphql.js";const je=l=>ie.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...l},ie.createElement("path",{d:"M7.74512 9.87701L12.0001 14.132L16.2551 9.87701",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),Fe=l=>ie.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...l},ie.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 5.64001L5.62988 18.37",stroke:"currentColor"}),ie.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 18.37L5.62988 5.64001",stroke:"currentColor"})),me=({show:l=1,scrollbar:s=!1,peak:_=!1,arrows:b=!1,controls:p="dots",arrowsOnMainImage:y=!1,loop:u=!1,gap:D=null,direction:n="horizontal",width:C="100%",height:a="100%",defaultIndex:v=0,className:H,children:q,thumbnails:ee=null,isZoomed:A,...P})=>{const h=G("PDP.Carousel.label").label,t=G("PDP.Carousel.Slide.label").label,k=G("PDP.Carousel.Previous.label").label,O=G("PDP.Carousel.Next.label").label,f=G("PDP.Carousel.Controls.label").label,r=G("PDP.Carousel.Controls.Button.label").label,[g,Z]=K(()=>$e(l)),M=Math.ceil(te.toArray(q).length/g),J={small:16,medium:24,large:64},R=_?24:0,B=D?J[D]:0,X=te.toArray(q).length%g,ne=16,Y=2,ce="32",[x,le]=K(u?v+1:v),U=Se([]),[j,pe]=K(0),[oe,se]=K(0),i=ve(()=>te.toArray(ee),[ee]),o=ve(()=>{const c=te.toArray(q).reduce((d,L,S)=>S%g===0?[...d,[L]]:[...d.slice(0,-1),[...d[d.length-1],L]],[]);return!u||c.length===1?c:u&&te.toArray(q).length%g===0?[c[M-1]].concat(c).concat([c[0],c[1]]):[te.toArray(q).slice(-g)].concat(c).concat([c[0],c[1]])},[q,g,M,u]),m=Se(null),N=Se(null),w=p==="thumbnailsRow"||p==="thumbnailsColumn";re(()=>{const c=document.body,d=ge(()=>{var I,Ae;pe(((I=m.current)==null?void 0:I.offsetWidth)??0),se(((Ae=m.current)==null?void 0:Ae.offsetHeight)??0);const S=window.innerWidth,E=$e(l,S);E!==g&&Z(E)},50),L=new ResizeObserver(d);return L.observe(c),()=>{L.unobserve(c)}},[g,l]);const F=Q(c=>{const d=u?c-1:c,L=U==null?void 0:U.current[0],S=(L==null?void 0:L.offsetWidth)+ne,E=(L==null?void 0:L.offsetHeight)+ne,I=N.current;p==="thumbnailsRow"&&(I!=null&&I.offsetWidth)&&(S*(d+1)>I.offsetWidth&&(I.style.scrollBehavior="smooth",I.scrollLeft=(d+Y)*S),I.scrollLeft>S*d&&(I.style.scrollBehavior="smooth",I.scrollLeft=(d-Y)*S)),p==="thumbnailsColumn"&&(I!=null&&I.offsetHeight)&&(E*(d+1)>I.offsetHeight&&(I.style.scrollBehavior="smooth",I.scrollTop=(d+Y)*E),I.scrollTop>E*d&&(I.style.scrollBehavior="smooth",I.scrollTop=(d-Y)*E))},[p,u]),z=Q((c,d,L)=>{(p==="thumbnailsRow"||p==="thumbnailsColumn")&&F(c);const S=m.current,E=R?S.offsetWidth-R:S.offsetWidth-R+B;if(!Array.from(S.querySelectorAll("[data-index]")).filter(_e=>{const de=Number(_e.getAttribute("data-index"));return!isNaN(de)&&de>-1})[c])return;if(L){const _e=c===0?M:0,de=E*(M+(X||g)/g);if(S.scrollLeft>=0&&S.scrollLeft<E-5){z(1,!0);return}if(S.scrollLeft>de-E&&S.scrollLeft<=de){z(M,!0);return}S.style.scrollBehavior="auto",S.scrollLeft=_e===0?0:de,z(_e===0?1:M,!0);return}const We=(S.offsetWidth-B)/g*o[c].length-R;S.style.scrollBehavior=d?"smooth":"auto",S.scrollLeft=o[c].length===g?E*c:E*(c-1)+We},[B,M,R,g,X,o,F,p]),ae=Q(()=>{if(u){const d=x-1;z(d,!0,x===1);return}const c=x<=0?0:x-1;z(c,!0)},[x,z,u]),he=Q(()=>{const c=o.length-1;if(u){const L=x+1;z(L,!0,x===M);return}const d=x>=c?c:x+1;z(d,!0)},[o.length,u,x,z,M]);re(()=>{const c=d=>{d.key==="ArrowLeft"&&(d.preventDefault(),ae()),d.key==="ArrowRight"&&(d.preventDefault(),he())};return window.addEventListener("keydown",c),()=>{window.removeEventListener("keydown",c)}},[he,ae]),re(()=>{z(u?v+1:v,!1)},[v,z,u]);const fe=ge(()=>{const c=m.current,d=R?c.offsetWidth-R:c.offsetWidth-R+B,L=c.scrollLeft/d,S=Math.round(L)-L<1?Math.round(L):Math.ceil(L);if(w&&F(S),u){const E=d*(M+(X||g)/g);if(Math.ceil(c.scrollLeft)>=Math.ceil(E)-5){c.style.scrollBehavior="auto",c.scrollLeft=c.offsetWidth*1+(Math.ceil(c.scrollLeft)-Math.ceil(E)-R);return}if(c.scrollLeft===0){c.style.scrollBehavior="auto",c.scrollLeft=E-c.offsetWidth+R;return}}x!==S&&le(S)},100);re(()=>{const c=m.current;return c==null||c.addEventListener("scroll",fe),()=>{c==null||c.removeEventListener("scroll",fe)}},[fe]);const ue=(c,d,L)=>e(we,{className:$([["pdp-carousel__button",!c],[`pdp-carousel__button--${d}`,!c],[`pdp-carousel__button--${p}`,c]]),style:{"--height":`${oe}px`},variant:"tertiary","aria-label":d==="next"?O:k,onClick:L,disabled:u?!1:d==="next"?x>=o.length-1:x<1,children:e(be,{className:$([["pdp-carousel__button__icon",!c],[`pdp-carousel__button__icon--${d}`,!c],[`pdp-carousel__button__icon--${p}--${d}`,c]]),size:ce,source:je})}),Le=b&&o.length!=1&&ue(w,"prev",ae),De=b&&o.length!=1&&ue(w,"next",he),Oe=b&&o.length!=1&&ue(!1,"prev",ae),Re=b&&o.length!=1&&ue(!1,"next",he);return W("div",{role:"region","aria-roledescription":h,className:$(["pdp-carousel",["pdp-carousel--main-image-controls",y],["pdp-carousel--arrows",b&&!w],[`pdp-carousel--${p}`,w],H]),style:{"--flex-carousel":p==="thumbnailsColumn"?"row-reverse":"column","--gap":w?"0":"var(--spacing-small)","--width":C},...P,children:[e("div",{ref:m,className:$(["pdp-carousel__wrapper",`pdp-carousel__wrapper--${n}`,["pdp-carousel__wrapper--scrollbar",s],["pdp-carousel__wrapper--peak",_]]),style:{"--total-width":p==="thumbnailsColumn"?"81.6%":"100%","--height":p==="thumbnailsColumn"?"auto":a,"--gap":D?`var(--spacing-${D})`:"0px","--per-page":g},tabIndex:0,children:o.map((c,d)=>{const L=c.length<g;return e("div",{role:"group","aria-roledescription":t,"data-index":d,className:$(["pdp-carousel__slide",`pdp-carousel__slide--${n}`,["pdp-carousel__slide--active",x===d],["pdp-carousel__slide--orphan",L]]),style:{"--length":c.length},children:c},d)})}),!w&&W(Pe,{children:[Le,De]}),w&&y&&W(Pe,{children:[Oe,Re]}),p&&o.length!=1&&W("div",{className:$([[`pdp-carousel__controls__container--${p}`,w],["pdp-carousel__controls__container--no-arrows",!b||y]]),style:{"--width":p==="thumbnailsRow"?`${j}px`:C,"--height":`${oe}px`,"--nr-thumbnails":i.length},children:[(w||A)&&!y&&Le,e("div",{ref:N,className:$([[`pdp-carousel__controls__wrapper--${p}`,w],["pdp-carousel__controls__wrapper",w]]),children:e("div",{role:"group","aria-label":f,className:$(["pdp-carousel__controls",[`pdp-carousel__controls--${p}`,w]]),children:(u?o.slice(0,M):o).map((c,d)=>{const L=u?M:o.length,S=u?x-1===d:x===d;return w?W("label",{className:$(["pdp-carousel__thumbnail__container"]),ref:E=>{E&&(U.current[d]=E)},children:[e("input",{type:"radio",name:"carousel-thumbnails","aria-label":r.replace("{key}",String(d+1)).replace("{total}",String(L)),checked:S&&j!==0,onChange:()=>{z(u?d+1:d,!0)},...P,className:$(["pdp-carousel__thumbnail",["pdp-carousel__thumbnail--selected",S&&j!==0]])}),e("span",{className:$(["pdp-carousel__thumbnail__span"]),children:i[d]})]},d):e("button",{"aria-label":r.replace("{key}",String(d+1)).replace("{total}",String(L)),onClick:()=>{z(u?d+1:d,!0)},className:$(["pdp-carousel__controls__button",["pdp-carousel__controls__button--active",S]])},d)})})}),(w||A)&&!y&&De]})]})};function $e(l,s=0){if(typeof l=="number")return l;const{small:_,medium:b,large:p}=l,y=786;return s>1024?p:s>y?b:_}const Ke=({title:l,breadcrumbs:s,galleryContent:_,infoContent:b,productContent:p,sku:y,outOfStock:u,shortDescription:D,description:n,attributes:C,images:a,options:v,price:H,specialPrice:q,className:ee,children:A,quantity:P,actions:h,carouselConfig:t,...k})=>{var B,X,ne,Y,ce,x;const O=G("PDP.Product.RegularPrice.label").label,f=G("PDP.Product.SpecialPrice.label").label,r=G("PDP.Product.OutOfStock.label").label,g=G("PDP.Product.Image.label").label,[Z,M]=K(null),J=a!=null&&a.length?a.map((le,U)=>{var j;return e(V,{node:le,loading:U===0?"eager":"lazy",alt:((j=l==null?void 0:l.props)==null?void 0:j.children)&&(g==null?void 0:g.replace("{product}",l.props.children.toString()).replace("{key}",String(U+1)).replace("{total}",String(a.length))),onClick:()=>M(U)},U)}):e("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0}),R=(B=t==null?void 0:t.thumbnails)!=null&&B.length?t.thumbnails.map((le,U)=>{var j;return e(V,{node:le,loading:(t==null?void 0:t.thumbnailsLoadingMode)||"lazy",alt:((j=l==null?void 0:l.props)==null?void 0:j.children)&&(g==null?void 0:g.replace("{product}",l.props.children.toString()).replace("{key}",String(U+1)).replace("{total}",String(a.length)))},U)}):e("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0});return W("div",{...k,className:$(["pdp-product",ee]),children:[s&&e(V,{node:s,className:"pdp-product__breadcrumbs"}),W("div",{className:"pdp-product__column-container pdp-product__gallery-column",children:[e("div",{className:"pdp-product__column-body",children:t!=null&&t.controls?e(me,{className:"pdp-product__overlay__carousel",arrows:(a==null?void 0:a.length)>1,controls:(a==null?void 0:a.length)>1?t.controls:"dots",arrowsOnMainImage:t==null?void 0:t.arrowsOnMainImage,loop:(t==null?void 0:t.loopable)&&(a==null?void 0:a.length)>1,peak:((X=t==null?void 0:t.thumbnails)==null?void 0:X.length)>1&&((ne=t==null?void 0:t.peak)==null?void 0:ne.desktop)||!1,gap:(t==null?void 0:t.gap)||null,width:"100%",height:"100%",defaultIndex:Z||0,thumbnails:R,children:J}):e(Qe,{className:"pdp-product__images",gap:"small",children:J})}),_&&e(V,{node:_,className:"pdp-product__gallery-content"})]}),W("div",{className:"pdp-product__column-container pdp-product__content-column",children:[W("div",{className:"pdp-product__column-body",children:[W("div",{className:"pdp-product__header",children:[l&&e(V,{node:l,className:"pdp-product__title"}),y&&e(V,{node:y,className:"pdp-product__sku"})]}),W("div",{className:"pdp-product__prices",children:[q&&e(V,{node:q,className:$(["pdp-product__price-special","pdp-product__price"]),"aria-label":f,role:"text"}),H&&e(V,{node:H,className:$(["pdp-product__price-regular","pdp-product__price--grey"]),"aria-label":O,role:"text"})]}),t!=null&&t.mobile?e(me,{className:"pdp-product__images pdp-product__images--carousel pdp-product__images--carousel--thumbnails",width:"100%",height:"auto",arrows:(a==null?void 0:a.length)>1,controls:(a==null?void 0:a.length)>1?"thumbnailsRow":null,loop:(t==null?void 0:t.loopable)&&(a==null?void 0:a.length)>1,peak:((Y=t==null?void 0:t.thumbnails)==null?void 0:Y.length)>1&&((ce=t==null?void 0:t.peak)==null?void 0:ce.mobile)||!1,gap:(t==null?void 0:t.gap)||null,thumbnails:R,children:J}):e(me,{className:"pdp-product__images pdp-product__images--carousel",peak:((x=t==null?void 0:t.peak)==null?void 0:x.mobile)&&(a==null?void 0:a.length)>1,gap:(t==null?void 0:t.gap)||null,width:"100%",height:"auto",arrows:(a==null?void 0:a.length)>1,controls:(a==null?void 0:a.length)>1?"dots":null,loop:(t==null?void 0:t.loopable)&&(a==null?void 0:a.length)>1,children:J}),W("div",{className:$(["pdp-product__actions",["pdp-product__actions--out-of-stock",u]]),children:[u&&e("div",{className:"pdp-product__out-of-stock__text",children:r}),v&&e(V,{node:v,className:$(["pdp-product__options"])}),P&&e("div",{className:"pdp-product__quantity",children:e(V,{node:P})}),h&&e(V,{node:h,className:$(["pdp-product__buttons"])})]}),D&&e(V,{node:D,className:$(["pdp-product__short_description"])}),n&&e(V,{node:n,className:$(["pdp-product__description"])}),C?e("div",{className:"pdp-product__attributes",children:C}):null]}),b&&e(V,{node:b,className:"pdp-product__info-content"})]}),p&&e(V,{node:p,className:"pdp-product__content"}),Z===null?null:e(Ze,{className:"pdp-product__overlay",onClose:()=>M(null),centered:!0,children:e(me,{className:"pdp-product__overlay__carousel",arrows:(a==null?void 0:a.length)>1,width:"100%",height:"100%",defaultIndex:Z||0,loop:(a==null?void 0:a.length)>1,controls:(a==null?void 0:a.length)>1?"dots":null,isZoomed:!0,children:J})})]})},Qe=({children:l,gap:s=null,className:_,style:b,...p})=>{const y=te.count(l);return e("div",{...p,className:$(["pdp-gallery-grid",_]),style:{"--gap":s?`var(--spacing-${s})`:"0px",...b},children:te.map(l,(u,D)=>e("div",{className:"pdp-gallery-grid__item",children:e(V,{node:u,loading:D===0?"eager":"lazy"},u.props.src)},y+D))})},ke=({amount:l,currency:s,locale:_,variant:b,sale:p,minimumAmount:y,maximumAmount:u,className:D,...n})=>e(Pe,{children:l||y===u?e("div",{className:"pdp-price-range",...n,children:e(ye,{amount:l||y,currency:s,locale:_,variant:b,sale:p,className:D})}):W("div",{className:"pdp-price-range",...n,children:[e(ye,{amount:y,currency:s,locale:_,className:D}),e("span",{className:"pdp-price-range__label",children:"-"}),e(ye,{amount:u,currency:s,locale:_,className:D})]})}),Ze=({centered:l,onClose:s,className:_,children:b,...p})=>{const y=G("PDP.Overlay.Close.label").label,u=Q(()=>{s==null||s()},[s]);return re(()=>{const D=n=>{n.key==="Escape"&&u()};return document.addEventListener("keydown",D),()=>{document.removeEventListener("keydown",D)}},[u]),re(()=>{const D=document.scrollingElement,n=D.style.overflow;return D.style.overflow="hidden",()=>{D.style.overflow=n}},[]),W("div",{...p,className:$(["pdp-overlay",["pdp-overlay--centered",l],_]),children:[e("div",{className:"pdp-overlay__content",children:b}),e(we,{"aria-label":y,variant:"tertiary",className:"pdp-overlay__close-button",onClick:u,icon:e(Fe,{})})]})},Je=["text","image","color","dropdown"],Xe=l=>l.map(s=>({...s,text:s.label,disabled:!s.inStock})),Ye=({options:l,hideSelectedValue:s,onValues:_,onErrors:b,defaultOptions:p,selectionsToUpdate:y,className:u,children:D,...n})=>{const C=G("PDP.Swatches.Required.label").label,[a,v]=K(()=>l==null?void 0:l.reduce((P,h)=>{const{items:t}=h,k=t==null?void 0:t.find(f=>p==null?void 0:p.includes(f.id)),O=t==null?void 0:t.find(f=>f.selected);return k?{...P,[h.id]:{label:k.label,value:k.id}}:O?{...P,[h.id]:{label:O.label,value:O.id}}:P},{}));re(()=>{y==null||y.forEach(A=>{v(P=>{var k;const h=(k=A==null?void 0:A.items)==null?void 0:k.find(O=>O.selected);return h?{...P,[A.id]:{label:h==null?void 0:h.label,value:h==null?void 0:h.id}}:P})})},[y,v]),ve(()=>{const A=l==null?void 0:l.reduce((P,h)=>{var t;return(t=h==null?void 0:h.items)==null||t.forEach(k=>{var f;const O=((f=a[h.id])==null?void 0:f.value)===k.id;h.required&&!O&&(P[h.id]=C)}),P},{});return b==null||b(A),A},[a]);const H=Q((A,P,h)=>{v(t=>{const k={...t,[A]:{label:P,value:h}};return _==null||_(k,h),k})},[_]),q=(A,P)=>{var t;const h=((t=P.selectedOptions[0])==null?void 0:t.label)??"";H(A,h,P.value)},ee=Q(({items:A,id:P,required:h,type:t,selected:k,label:O})=>e("div",{className:$(["pdp-swatches__options"]),children:(t==null?void 0:t.toLowerCase())==="dropdown"?e(Ve,{"aria-label":O,handleSelect:f=>q(P,f.target),options:Xe(A),value:k}):A==null?void 0:A.map(f=>{const r={key:f.id,id:f.id,name:P,value:f.value,label:f.label,groupAriaLabel:O,selected:k===f.id,outOfStock:!f.inStock,required:h===null?!0:h,onValue:()=>{H(P,f.label,f.id)}};switch(t){case"text":return e(ze,{...r,label:f.label});case"image":return e(qe,{...r,src:f.value,alt:f.label});case"color":return e(He,{...r,size:"large",color:f.value});default:return console.warn(`Invalid swatch type ${t}`),null}})}),[H]);return e("div",{...n,className:$(["pdp-swatches",u]),children:l==null?void 0:l.map(({type:A,label:P,id:h,multiple:t,required:k,items:O})=>{var f;if(!A){console.warn("Bundle product not supported on UI.");return}return Je.includes(A)||console.warn(`Invalid swatch type ${A}`),t&&console.warn("Multiple selection swatches are not currently supported."),W("div",{id:`swatch-item-${h}`,"data-slot-key":`product-swatch--${h}`,className:"pdp-swatches__field",children:[e("div",{className:"pdp-swatches__field__label",children:a[h]?s?`${P}`:`${P}: ${a[h].label}`:P}),e(ee,{id:h,type:A,required:k,items:O,label:P,selected:(f=a[h])==null?void 0:f.value})]},`swatch-item-${h}`)})})};function Ce(l,s="en_US"){if(!Me(l))throw Error("Invalid date string");return l.split(" ")[1]||(l=`${l} 00:00:00`),new Date(l).toLocaleDateString(Ne(s)).toString()}function Me(l){if(![/^\d{4}-\d{2}-\d{2}$/,/^\d{1,2}\/\d{1,2}\/\d{4}$/,/^\d{2}\/\d{2}\/\d{4}$/,/^\d{4}\/\d{2}\/\d{2}$/,/^\d{1,2}\.\d{1,2}\.\d{4}$/,/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/].some(b=>b.test(l)))return!1;const _=new Date(l);return!isNaN(_.getTime())}function et(l){const s=new URLSearchParams(window.location.search);Object.entries(l).forEach(([b,p])=>{p===null?s.delete(b):s.set(b,String(p))});let _=window.location.pathname;_+=`?${s.toString()}`,_+=window.location.hash,window.history.replaceState({},"",_)}function tt(){const l=new URLSearchParams(window.location.search),s={};return l.forEach((_,b)=>{s[b]=_}),s}const rt=({sku:l,hideSku:s,hideQuantity:_,hideShortDescription:b,hideDescription:p,hideAttributes:y,hideURLParams:u,hideSelectedOptionValue:D,slots:n,children:C,initialData:a,carousel:v,optionsConfig:H,onAddToCart:q,...ee})=>{var j,pe,oe,se;const A=G("PDP.Product.AddToCart.label").label,P=G("PDP.Product.Incrementer.label").label,h=G("PDP.Product.Details.label").label,[t,k]=K(Ee.getConfig().defaultLocale||"en-US"),[O,f]=K(),[r=null,g]=K(a),[Z,M]=K(()=>{const i={sku:l,quantity:1};return r!=null&&r.optionUIDs&&(i.optionsUIDs=r.optionUIDs),i}),[J,R]=K(()=>{var i,o;return!(r!=null&&r.options&&((i=r==null?void 0:r.options)==null?void 0:i.length)>0&&((o=r==null?void 0:r.optionUIDs)==null?void 0:o.length)!==(r==null?void 0:r.options.length))}),B={data:r,values:Z,valid:J};re(()=>{const i=Te.on("locale",o=>{o!==t&&(k(o),Be(l).then(g))});return()=>{i==null||i.off()}},[t,l]);const X=Q(i=>{M(o=>({...o,...i}))},[]),ne=Q(i=>{var m;let o=Object.keys(i).map(N=>i[N].value).filter(N=>N!==void 0);u||et({optionsUIDs:o.join(",")}),M(N=>({...N,optionsUIDs:o})),R((o==null?void 0:o.length)===((m=r==null?void 0:r.options)==null?void 0:m.length)),Ie(l,o,H==null?void 0:H.anchorOptions).then(N=>{var w;g(N),(w=H==null?void 0:H.anchorOptions)!=null&&w.length&&Y(N,o)})},[l]),Y=Q((i,o)=>{var w;const m=(i==null?void 0:i.optionUIDs)??[];o.every(F=>m.includes(F))||(f(i==null?void 0:i.options),M(F=>({...F,optionsUIDs:m})),R((m==null?void 0:m.length)===((w=i==null?void 0:i.options)==null?void 0:w.length)))},[l]),ce=Q(i=>{Object.keys(i).length!==0&&R(!1)},[]),x=ve(()=>{var i;return(i=r==null?void 0:r.attributes)==null?void 0:i.map(({label:o,value:m},N)=>{const w=Me(m)?Ce(m,t):m.toString();return W("li",{children:[o,": ",e("span",{dangerouslySetInnerHTML:{__html:w}})]},N)})},[r==null?void 0:r.attributes,t]),le=!_&&(r!=null&&r.inStock)?e(T,{name:"Quantity",slot:n==null?void 0:n.Quantity,context:{...B},children:e(Ge,{name:"quantity",defaultValue:Z.quantity.toString(),min:1,"aria-label":P,className:"pdp-product__quantity",onValue:i=>{X({quantity:Number(i)})}},"quantity")}):void 0,U=()=>{if(r!=null&&r.options)return e(T,{name:"Options",slot:n==null?void 0:n.Options,context:{...B},children:e(Ye,{options:r.options,defaultOptions:Z.optionsUIDs,selectionsToUpdate:O,hideSelectedValue:D,onValues:ne,onErrors:ce})})};return e("div",{...ee,children:e(Ke,{title:e(T,{name:"Title",slot:n==null?void 0:n.Title,context:{...B},children:r==null?void 0:r.name}),sku:s?void 0:e(T,{name:"SKU",slot:n==null?void 0:n.SKU,context:{...B},children:r==null?void 0:r.sku}),options:U(),breadcrumbs:(n==null?void 0:n.Breadcrumbs)&&e(T,{name:"Breadcrumbs",slot:n==null?void 0:n.Breadcrumbs,context:{...B,setSeparator(i){this._registerMethod((...o)=>{const m=i(...o),N=m&&e(be,{source:m});this._setProps(w=>({...w,separator:N}))})},appendLink(i){this._registerMethod((...o)=>{const{text:m,...N}=i(...o),w=e("a",{...N,children:m});this._setProps(F=>({...F,categories:[...F.categories||[],w]}))})},appendHTMLElement(i){this._registerMethod((...o)=>{const m=i(...o),N=this._htmlElementToVNode(m);this._setProps(w=>({...w,categories:[...w.categories||[],N]}))})}},render:({separator:i,categories:o})=>e(Ue,{separator:i,categories:o})}),quantity:le,actions:e(T,{name:"Actions",slot:n==null?void 0:n.Actions,context:{...B,appendButton(i){this._registerMethod((...o)=>{const m=i(...o);if(!m)return;const{text:N,icon:w,...F}=m,z=e(we,{type:"button",...F,icon:w&&e(be,{source:w}),children:N});this._setProps(ae=>({children:[...ae.children||[],z]}))})}},children:!(n!=null&&n.Actions)&&e(we,{size:"medium",type:"submit",icon:e(be,{source:"Cart"}),disabled:!(r!=null&&r.inStock)||!J,"aria-label":A,onClick:()=>q==null?void 0:q(Z),children:A})}),shortDescription:b?void 0:e(T,{name:"ShortDescription",slot:n==null?void 0:n.ShortDescription,context:{...B},children:e("div",{dangerouslySetInnerHTML:{__html:(r==null?void 0:r.shortDescription)??""}})}),description:p?void 0:e(T,{name:"Description",slot:n==null?void 0:n.Description,context:{...B},children:e("div",{dangerouslySetInnerHTML:{__html:(r==null?void 0:r.description)??""}})}),images:((j=r==null?void 0:r.images)==null?void 0:j.map(({label:i,url:o})=>{var m,N;return e(xe,{title:i,alt:i,src:o,width:((m=v==null?void 0:v.imageParams)==null?void 0:m.width)??960,height:((N=v==null?void 0:v.imageParams)==null?void 0:N.height)??1191,params:(v==null?void 0:v.imageParams)??{width:960}},o)}))??[],specialPrice:(pe=r==null?void 0:r.prices)!=null&&pe.visible?e(T,{name:"SpecialPrice",slot:n==null?void 0:n.SpecialPrice,context:{...B},children:e(ke,{...r.prices.final,locale:Ne(t)})}):void 0,price:(oe=r==null?void 0:r.prices)!=null&&oe.visible&&r.prices.regular&&r.prices.final.amount!==(r==null?void 0:r.prices.regular.amount)?e(T,{name:"RegularPrice",slot:n==null?void 0:n.RegularPrice,context:{...B},children:e(ke,{...r.prices.regular,locale:Ne(t)})}):void 0,carouselConfig:{...v,thumbnails:v?((se=r==null?void 0:r.images)==null?void 0:se.map(({label:i,url:o})=>{var m,N;return e(xe,{title:i,alt:i,src:o,width:((m=v==null?void 0:v.thumbnailParams)==null?void 0:m.width)??200,height:((N=v==null?void 0:v.thumbnailParams)==null?void 0:N.height)??248,params:(v==null?void 0:v.thumbnailParams)??{width:200}},o)}))??[]:[]},outOfStock:!(r!=null&&r.inStock),attributes:y?void 0:e(T,{name:"Attributes",slot:n==null?void 0:n.Attributes,context:{...B},children:x!=null&&x.length?W(Pe,{children:[h,e("ul",{children:x})]}):null}),galleryContent:(n==null?void 0:n.GalleryContent)&&e(T,{name:"GalleryContent",slot:n.GalleryContent,context:{...B}}),infoContent:(n==null?void 0:n.InfoContent)&&e(T,{name:"InfoContent",slot:n.InfoContent,context:{...B}}),productContent:(n==null?void 0:n.Content)&&e(T,{name:"Content",slot:n.Content,context:{...B}})})})};rt.getInitialData=async function({sku:l,optionsConfig:s}){var b,p,y,u,D,n;const _=((b=tt().optionsUIDs)==null?void 0:b.split(","))||((n=(D=(u=(y=(p=Ee)==null?void 0:p.getConfig())==null?void 0:y.models)==null?void 0:u.ProductDetails)==null?void 0:D.initialData)==null?void 0:n.optionsUIDs);return _!=null&&_.length?await Ie(l,_,s==null?void 0:s.anchorOptions):await Be(l)};export{rt as ProductDetails,rt as default};
2
+ //# sourceMappingURL=ProductDetails.js.map