@dropins/storefront-pdp 0.5.0-beta2 → 0.5.0-beta4
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/index.d.ts +0 -6
- package/api/initialize/initialize.d.ts +0 -5
- package/api.js +1 -1
- package/chunks/getRefinedProduct.js +185 -0
- package/chunks/initialize.js +1 -0
- package/components/index.d.ts +0 -2
- package/containers/ProductDetails/ProductDetails.d.ts +8 -3
- package/containers/ProductDetails.js +1 -1
- package/containers/index.d.ts +0 -8
- package/data/models/index.d.ts +0 -1
- package/package.json +1 -1
- package/render.js +2 -2
- package/api/fetchPDPData/fetchPDPData.d.ts +0 -6
- package/api/fetchPDPData/index.d.ts +0 -2
- package/api/getFetchedProductData/getFetchedProductData.d.ts +0 -4
- package/api/getFetchedProductData/index.d.ts +0 -2
- package/api/getProductConfigurationValues/getProductConfigurationValues.d.ts +0 -4
- package/api/getProductConfigurationValues/index.d.ts +0 -2
- package/api/isProductConfigurationValid/index.d.ts +0 -2
- package/api/isProductConfigurationValid/isProductConfigurationValid.d.ts +0 -2
- package/api/setProductConfigurationValid/index.d.ts +0 -2
- package/api/setProductConfigurationValid/setProductConfigurationValid.d.ts +0 -2
- package/api/setProductConfigurationValues/index.d.ts +0 -2
- package/api/setProductConfigurationValues/setProductConfigurationValues.d.ts +0 -4
- package/chunks/PriceRange.js +0 -1
- package/chunks/Swatches.js +0 -1
- package/chunks/Zoom.js +0 -1
- package/chunks/date.js +0 -1
- package/chunks/fetchPDPData.js +0 -185
- package/chunks/getFetchedProductData.js +0 -1
- package/chunks/getProductConfigurationValues.js +0 -1
- package/chunks/isProductConfigurationValid.js +0 -1
- package/components/Header/Header.d.ts +0 -9
- package/components/Header/index.d.ts +0 -3
- package/components/Price/Price.d.ts +0 -9
- package/components/Price/index.d.ts +0 -3
- package/containers/ProductAttributes/ProductAttributes.d.ts +0 -8
- package/containers/ProductAttributes/index.d.ts +0 -3
- package/containers/ProductAttributes.d.ts +0 -3
- package/containers/ProductAttributes.js +0 -1
- package/containers/ProductDescription/ProductDescription.d.ts +0 -8
- package/containers/ProductDescription/index.d.ts +0 -3
- package/containers/ProductDescription.d.ts +0 -3
- package/containers/ProductDescription.js +0 -1
- package/containers/ProductGallery/ProductGallery.d.ts +0 -18
- package/containers/ProductGallery/index.d.ts +0 -3
- package/containers/ProductGallery.d.ts +0 -3
- package/containers/ProductGallery.js +0 -1
- package/containers/ProductHeader/ProductHeader.d.ts +0 -8
- package/containers/ProductHeader/index.d.ts +0 -3
- package/containers/ProductHeader.d.ts +0 -3
- package/containers/ProductHeader.js +0 -1
- package/containers/ProductOptions/ProductOptions.d.ts +0 -22
- package/containers/ProductOptions/index.d.ts +0 -3
- package/containers/ProductOptions.d.ts +0 -3
- package/containers/ProductOptions.js +0 -1
- package/containers/ProductPrice/ProductPrice.d.ts +0 -8
- package/containers/ProductPrice/index.d.ts +0 -3
- package/containers/ProductPrice.d.ts +0 -3
- package/containers/ProductPrice.js +0 -1
- package/containers/ProductQuantity/ProductQuantity.d.ts +0 -9
- package/containers/ProductQuantity/index.d.ts +0 -3
- package/containers/ProductQuantity.d.ts +0 -3
- package/containers/ProductQuantity.js +0 -1
- package/containers/ProductShortDescription/ProductShortDescription.d.ts +0 -8
- package/containers/ProductShortDescription/index.d.ts +0 -3
- package/containers/ProductShortDescription.d.ts +0 -3
- package/containers/ProductShortDescription.js +0 -1
- package/data/models/values-model.d.ts +0 -6
package/api/index.d.ts
CHANGED
|
@@ -17,10 +17,4 @@ export * from './initialize';
|
|
|
17
17
|
export * from './fetch-graphql';
|
|
18
18
|
export * from './getProductData';
|
|
19
19
|
export * from './getRefinedProduct';
|
|
20
|
-
export * from './fetchPDPData';
|
|
21
|
-
export * from './setProductConfigurationValues';
|
|
22
|
-
export * from './getProductConfigurationValues';
|
|
23
|
-
export * from './setProductConfigurationValid';
|
|
24
|
-
export * from './getFetchedProductData';
|
|
25
|
-
export * from './isProductConfigurationValid';
|
|
26
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -5,11 +5,6 @@ import { ProductModel } from '../../data/models';
|
|
|
5
5
|
type ConfigProps = {
|
|
6
6
|
langDefinitions?: Lang;
|
|
7
7
|
defaultLocale?: string;
|
|
8
|
-
sku?: string;
|
|
9
|
-
acdl?: boolean;
|
|
10
|
-
anchors?: string[];
|
|
11
|
-
persistURLParams?: boolean;
|
|
12
|
-
optionsUIDs?: string[];
|
|
13
8
|
models?: {
|
|
14
9
|
[name: string]: {
|
|
15
10
|
initialData: any;
|
package/api.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
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};
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import{c as B}from"./initialize.js";import{FetchGraphQL as et}from"@dropins/tools/fetch-graphql.js";const{setEndpoint:gt,setFetchGraphQlHeader:ht,removeFetchGraphQlHeader:wt,setFetchGraphQlHeaders:xt,fetchGraphQl:q,getConfig:_t}=new et().getMethods();function K(e,r){var i,u,o;const n=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:rt(e),prices:mt(e,!!r),attributes:nt(e),options:ut(e),optionUIDs:at(e),url:e.url,urlKey:e.urlKey,externalId:e.externalId,externalParentId:e.externalParentId,variantSku:e.variantSku}:null,t=(o=(u=(i=B.getConfig())==null?void 0:i.models)==null?void 0:u.ProductDetails)==null?void 0:o.transform;return t&&n?t(n):n}function rt(e){var r,n;return(n=(r=e.images)==null?void 0:r.filter(t=>{var i;return!((i=t.roles)!=null&&i.includes("hide_from_pdp"))}))==null?void 0:n.map(t=>(t.url=t.url.replace(/^https?:/,""),t))}function nt(e){var r,n;return(n=(r=e.attributes)==null?void 0:r.filter(({roles:t})=>(t==null?void 0:t.indexOf("visible_in_pdp"))!==-1))==null?void 0:n.map(({label:t,value:i,name:u})=>({id:u,label:t,value:i.toString().split(",").join(", ")}))}function ut(e){const{options:r,optionUIDs:n}=e;return r==null?void 0:r.map(({id:t,title:i,required:u,multi:o,values:m})=>{var d,s;const a=(d=m==null?void 0:m[0])==null?void 0:d.__typename;let l=m==null?void 0:m[0].type;const c=((s=m==null?void 0:m[0])==null?void 0:s.__typename)==="ProductViewOptionValueProduct";return l?l=l.replace("COLOR_HEX","color").replace("TEXT","text").replace("IMAGE","image"):l="dropdown",{id:t,type:l,typename:a,label:i,required:u,multiple:o,items:c?it(m,n):ot(m,n,l)}})}function it(e,r){return e==null?void 0:e.map(({id:n,title:t,inStock:i,isDefault:u,product:o})=>({id:n,inStock:i,label:t,selected:(r==null?void 0:r.indexOf(n))>-1||u,value:n,product:o}))}function ot(e,r,n){return e==null?void 0:e.map(({id:t,title:i,inStock:u,value:o})=>({id:t,inStock:u,label:i,selected:(r==null?void 0:r.indexOf(t))>-1,value:(n==null?void 0:n.toLowerCase())==="dropdown"?t:o==null?void 0:o.replace(/^https?:/,"")}))}function mt(e,r){var E,x,H,I,L;const{price:n,priceRange:t,options:i,optionUIDs:u}=e;let{__typename:o}=e;function m(){var g;const P=n.regular.amount.value,f=((g=n.final)==null?void 0:g.amount.value)??n.regular.amount.value,y=n.regular.amount.currency==="NONE"?"USD":n==null?void 0:n.regular.amount.currency;return[P,f,f,y]}function a(){var _,b,S,V,T,C,D,A,F,$,G,M;const P=(_=t==null?void 0:t.minimum)==null?void 0:_.final.amount.value,f=(b=t==null?void 0:t.maximum)==null?void 0:b.final.amount.value;let y;((V=(S=t==null?void 0:t.minimum)==null?void 0:S.regular)==null?void 0:V.amount.value)===((C=(T=t==null?void 0:t.maximum)==null?void 0:T.regular)==null?void 0:C.amount.value)&&(y=(A=(D=t==null?void 0:t.minimum)==null?void 0:D.regular)==null?void 0:A.amount.value);const g=(($=(F=t==null?void 0:t.minimum)==null?void 0:F.final)==null?void 0:$.amount.currency)==="NONE"?"USD":(M=(G=t==null?void 0:t.minimum)==null?void 0:G.final)==null?void 0:M.amount.currency;return[y,P,f,g]}function l(){var S,V,T,C,D,A,F,$,G,M,X,Y;let P=0,f=0;i==null||i.forEach(k=>{var z;const j=k==null?void 0:k.values;if(j&&Array.isArray(j)){const h=j.map(p=>{var Q,N,J,W;return(W=(J=(N=(Q=p==null?void 0:p.product)==null?void 0:Q.price)==null?void 0:N.regular)==null?void 0:J.amount)==null?void 0:W.value}).filter(p=>p!==void 0),v=h.length>0?Math.max(...h):0;P+=v}else P+=0;(z=k==null?void 0:k.values)==null||z.forEach(h=>{var v,p,Q,N;u!=null&&u.includes(h.id)&&(f+=(N=(Q=(p=(v=h==null?void 0:h.product)==null?void 0:v.price)==null?void 0:p.final)==null?void 0:Q.amount)==null?void 0:N.value)})});const y=(S=t==null?void 0:t.minimum)==null?void 0:S.final.amount.value,g=(V=t==null?void 0:t.maximum)==null?void 0:V.final.amount.value;let _;((C=(T=t==null?void 0:t.minimum)==null?void 0:T.regular)==null?void 0:C.amount.value)===((A=(D=t==null?void 0:t.maximum)==null?void 0:D.regular)==null?void 0:A.amount.value)&&(_=($=(F=t==null?void 0:t.minimum)==null?void 0:F.regular)==null?void 0:$.amount.value);const b=((M=(G=t==null?void 0:t.minimum)==null?void 0:G.final)==null?void 0:M.amount.currency)==="NONE"?"USD":(Y=(X=t==null?void 0:t.minimum)==null?void 0:X.final)==null?void 0:Y.amount.currency;return r&&!u?[_,y,g,b]:P===(t==null?void 0:t.maximum.regular.amount.value)?[f,f,f,b]:[_,y,g,b]}const[c,d,s,w]=o==="SimpleProductView"?m():r?l():a(),O=o==="SimpleProductView"?(E=n==null?void 0:n.roles)==null?void 0:E.includes("visible"):((H=(x=t==null?void 0:t.maximum)==null?void 0:x.roles)==null?void 0:H.includes("visible"))&&((L=(I=t==null?void 0:t.minimum)==null?void 0:I.roles)==null?void 0:L.includes("visible"));return s&&d===s?{regular:{amount:c,currency:w,variant:c&&d!==c?"strikethrough":"default"},final:{amount:s,currency:w,variant:"default"},visible:O}:{final:{minimumAmount:d,maximumAmount:s,currency:w},visible:O}}function at(e){var n;let{optionUIDs:r}=e;return(n=e==null?void 0:e.options)==null||n.map(({values:t})=>{var u;((u=t==null?void 0:t[0])==null?void 0:u.__typename)==="ProductViewOptionValueProduct"&&!r&&(r=[],t==null||t.map(({id:o,isDefault:m})=>{m&&(r==null?void 0:r.indexOf(o))===-1&&r.push(o)}))}),r}const lt=`
|
|
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
|
+
__typename
|
|
17
|
+
product {
|
|
18
|
+
sku
|
|
19
|
+
shortDescription
|
|
20
|
+
metaDescription
|
|
21
|
+
metaKeyword
|
|
22
|
+
metaTitle
|
|
23
|
+
name
|
|
24
|
+
price {
|
|
25
|
+
final {
|
|
26
|
+
amount {
|
|
27
|
+
value
|
|
28
|
+
currency
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
regular {
|
|
32
|
+
amount {
|
|
33
|
+
value
|
|
34
|
+
currency
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
roles
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
... on ProductViewOptionValueSwatch {
|
|
42
|
+
id
|
|
43
|
+
title
|
|
44
|
+
type
|
|
45
|
+
value
|
|
46
|
+
inStock
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
`,R=`
|
|
51
|
+
fragment ProductFragment on ProductView {
|
|
52
|
+
__typename
|
|
53
|
+
id
|
|
54
|
+
sku
|
|
55
|
+
name
|
|
56
|
+
shortDescription
|
|
57
|
+
metaDescription
|
|
58
|
+
metaKeyword
|
|
59
|
+
metaTitle
|
|
60
|
+
description
|
|
61
|
+
inStock
|
|
62
|
+
addToCartAllowed
|
|
63
|
+
url
|
|
64
|
+
urlKey
|
|
65
|
+
externalId
|
|
66
|
+
|
|
67
|
+
images(roles: []) {
|
|
68
|
+
url
|
|
69
|
+
label
|
|
70
|
+
roles
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
attributes(roles: []) {
|
|
74
|
+
name
|
|
75
|
+
label
|
|
76
|
+
value
|
|
77
|
+
roles
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
... on SimpleProductView {
|
|
81
|
+
price {
|
|
82
|
+
roles
|
|
83
|
+
|
|
84
|
+
regular {
|
|
85
|
+
amount {
|
|
86
|
+
value
|
|
87
|
+
currency
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
final {
|
|
92
|
+
amount {
|
|
93
|
+
value
|
|
94
|
+
currency
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
... on ComplexProductView {
|
|
102
|
+
options {
|
|
103
|
+
...ProductOptionFragment
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
priceRange {
|
|
107
|
+
maximum {
|
|
108
|
+
final {
|
|
109
|
+
amount {
|
|
110
|
+
value
|
|
111
|
+
currency
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
regular {
|
|
115
|
+
amount {
|
|
116
|
+
value
|
|
117
|
+
currency
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
roles
|
|
121
|
+
}
|
|
122
|
+
minimum {
|
|
123
|
+
final {
|
|
124
|
+
amount {
|
|
125
|
+
value
|
|
126
|
+
currency
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
regular {
|
|
130
|
+
amount {
|
|
131
|
+
value
|
|
132
|
+
currency
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
roles
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
${lt}
|
|
142
|
+
`,tt=`
|
|
143
|
+
query GET_PRODUCT_DATA($skus: [String]) {
|
|
144
|
+
products(skus: $skus) {
|
|
145
|
+
...ProductFragment
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
${R}
|
|
150
|
+
`;function Z(e){return e.some(r=>(r==null?void 0:r.__typename)==="ProductViewOptionValueProduct")}const bt=async e=>{var u,o,m,a,l,c,d;const r=(a=(m=(o=(u=B)==null?void 0:u.getConfig())==null?void 0:o.models)==null?void 0:m.ProductDetails)==null?void 0:a.initialData;let n=(l=r==null?void 0:r.options)==null?void 0:l.some(s=>Z(s.values));if(r)return K(r,!!n);const{data:t}=await q(tt,{method:"GET",variables:{skus:[e]}}),i=(c=t==null?void 0:t.products)==null?void 0:c[0];return n=(d=i==null?void 0:i.options)==null?void 0:d.some(s=>Z(s.values)),K(i,!!n)},ct=`
|
|
151
|
+
query REFINE_PRODUCT_QUERY(
|
|
152
|
+
$optionIds: [String!]!
|
|
153
|
+
$sku: String!
|
|
154
|
+
) {
|
|
155
|
+
# Refined Product
|
|
156
|
+
refineProduct(
|
|
157
|
+
optionIds: $optionIds
|
|
158
|
+
sku: $sku
|
|
159
|
+
) {
|
|
160
|
+
...ProductFragment
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
# Parent Product
|
|
164
|
+
products(skus: [$sku]) {
|
|
165
|
+
...ProductFragment
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
# %extendedPlaceholder%
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
${R}
|
|
172
|
+
`;async function U(e,r,n){var m;if(n)return{...(m=(await q(tt,{method:"GET",variables:{skus:[e]}})).data)==null?void 0:m.products[0],optionUIDs:r};const t=st(r),i=dt(t,e),u=ct.replace("# %extendedPlaceholder%",i),{data:o}=await q(u,{method:"GET",variables:{optionIds:r,sku:e}});return o}const kt=async(e,r,n,t)=>{var s,w,O,E;let i;if(i=await U(e,r,t),!i)return null;if(t)return K({...i,optionUIDs:r},!0);let{products:u,refineProduct:o,...m}=i;const a=u==null?void 0:u[0],l=ft(Object.values(m),a.options,n);if(n!=null&&n.length&&o===null){r=Pt(l,r,n);const x=await U(e,r);o=x==null?void 0:x.refineProduct}const c=K({...o||a,sku:a.sku,name:a.name,externalParentId:a==null?void 0:a.externalId,options:l,optionUIDs:r,variantSku:(o==null?void 0:o.__typename)==="SimpleProductView"?o==null?void 0:o.sku:void 0}),d=(E=(O=(w=(s=B)==null?void 0:s.getConfig())==null?void 0:w.models)==null?void 0:O.ProductDetails)==null?void 0:E.fallbackData;return d?d(a,c):c};function st(e){if(e.length<2)return[e];const r=[];return e.forEach(n=>{const t=[];e.forEach(i=>{n!==i&&t.push(i)}),r.push(t)}),r}function dt(e,r){return e.map((n,t)=>`
|
|
173
|
+
ProductOption${t}: refineProduct(
|
|
174
|
+
optionIds: [
|
|
175
|
+
${n.map(i=>`"${i}"`).join(", ")}
|
|
176
|
+
]
|
|
177
|
+
sku: "${r}"
|
|
178
|
+
) {
|
|
179
|
+
... on ComplexProductView {
|
|
180
|
+
options {
|
|
181
|
+
...ProductOptionFragment
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
`).join("")}function ft(e,r,n){const t=Object.values(e).filter(u=>!!u).reduce((u,o)=>o.options?[...u,...o.options]:[...u],[]),i=new Map(r.map(u=>[u.id,u]));return t.forEach(u=>{n!=null&&n.includes(u.id)||i.set(u.id,u)}),[...i.values()]}function Pt(e,r,n){const t=[];let i;return e.forEach(u=>{var o,m,a,l;n.includes(u.id)?i=((m=(o=u.values)==null?void 0:o.find(c=>r.includes(c==null?void 0:c.id)))==null?void 0:m.id)||((a=u.values[0])==null?void 0:a.id):i=(l=u.values[0])==null?void 0:l.id,t.push(i)}),t}export{ht as a,xt as b,bt as c,kt as d,q as f,_t as g,wt as r,gt as s};
|
|
@@ -0,0 +1 @@
|
|
|
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};
|
package/components/index.d.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { HTMLAttributes } from 'preact/compat';
|
|
2
2
|
import { Container, SlotProps, SlotMethod, ResolveImageUrlOptions } from '@dropins/tools/types/elsie/src/lib';
|
|
3
3
|
import { ButtonProps } from '@dropins/tools/types/elsie/src/components';
|
|
4
|
-
import { ProductModel
|
|
4
|
+
import { ProductModel } from '../../data/models';
|
|
5
5
|
|
|
6
6
|
type IconType = keyof typeof import('@dropins/tools/types/elsie/src/icons');
|
|
7
|
+
export type Values = {
|
|
8
|
+
sku: string;
|
|
9
|
+
quantity: number;
|
|
10
|
+
optionsUIDs?: string[];
|
|
11
|
+
};
|
|
7
12
|
type DefaultSlotContext = {
|
|
8
13
|
data: ProductModel | null;
|
|
9
|
-
values:
|
|
14
|
+
values: Values;
|
|
10
15
|
valid: boolean;
|
|
11
16
|
};
|
|
12
17
|
export type CarouselConfig = {
|
|
@@ -68,7 +73,7 @@ export interface ProductDetailsProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
68
73
|
carousel?: CarouselConfig;
|
|
69
74
|
optionsConfig?: OptionsConfig;
|
|
70
75
|
useACDL?: boolean;
|
|
71
|
-
onAddToCart?: (values:
|
|
76
|
+
onAddToCart?: (values: Values) => void;
|
|
72
77
|
zoomType?: 'zoom' | 'overlay';
|
|
73
78
|
closeButton?: boolean;
|
|
74
79
|
disableDropdownPreselection?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as v,Fragment as St}from"@dropins/tools/preact-jsx-runtime.js";import{useState as x,Children as at,useEffect as F,useCallback as g,useMemo as Nt}from"@dropins/tools/preact-compat.js";import{VComponent as u,classes as N,Slot as A,toLanguageTag as ot}from"@dropins/tools/lib.js";import{Incrementer as vt,Breadcrumbs as dt,Button as _t,Icon as ct,Image as mt}from"@dropins/tools/components.js";/* empty css */import{Z as It,C,O as Ot}from"../chunks/Zoom.js";import{useText as s}from"@dropins/tools/i18n.js";import{P as ut}from"../chunks/PriceRange.js";import{S as Dt}from"../chunks/Swatches.js";import"@dropins/tools/preact.js";import{c as wt,h as Pt,p as bt,j as Vt,e as kt}from"../chunks/fetchPDPData.js";import{g as Bt,s as Ut}from"../chunks/getProductConfigurationValues.js";import{s as st}from"../chunks/isProductConfigurationValid.js";import{events as At}from"@dropins/tools/event-bus.js";import{i as Lt,t as Mt}from"../chunks/date.js";import"@dropins/tools/fetch-graphql.js";const Rt=({title:i,breadcrumbs:y,galleryContent:L,infoContent:M,productContent:R,sku:T,outOfStock:w,shortDescription:V,description:r,attributes:tt,images:d,options:h,price:P,specialPrice:z,className:G,children:lt,quantity:J,actions:$,carouselConfig:n,zoomType:W="overlay",closeButton:et=!0,...nt})=>{var k,E,m,Z,j,X,Y,f,B;const I=s("PDP.Product.RegularPrice.label").label,rt=s("PDP.Product.SpecialPrice.label").label,pt=s("PDP.Product.OutOfStock.label").label,O=s("PDP.Product.Image.label").label,[t,H]=x(null),b=d!=null&&d.length?d.map((q,S)=>{var K;const D=((K=i==null?void 0:i.props)==null?void 0:K.children)&&(O==null?void 0:O.replace("{product}",i.props.children.toString()).replace("{key}",String(S+1)).replace("{total}",String(d.length)));return W==="zoom"?e(It,{closeButton:et,children:e(u,{node:q,loading:S===0?"eager":"lazy",alt:D},S)}):e(u,{node:q,loading:S===0?"eager":"lazy",alt:D,onClick:()=>H(S)},S)}):e("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0}),Q=(k=n==null?void 0:n.thumbnails)!=null&&k.length?n.thumbnails.map((q,S)=>{var D;return e(u,{node:q,loading:(n==null?void 0:n.thumbnailsLoadingMode)||"lazy",alt:((D=i==null?void 0:i.props)==null?void 0:D.children)&&(O==null?void 0:O.replace("{product}",i.props.children.toString()).replace("{key}",String(S+1)).replace("{total}",String(d.length)))},S)}):e("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0});return v("div",{...nt,className:N(["pdp-product",G]),children:[y&&e(u,{node:y,className:"pdp-product__breadcrumbs"}),v("div",{className:"pdp-product__column-container pdp-product__gallery-column",children:[e("div",{className:"pdp-product__column-body",children:(E=n==null?void 0:n.controls)!=null&&E.desktop?e(C,{className:"pdp-product__overlay__carousel",arrows:(d==null?void 0:d.length)>1,controls:(d==null?void 0:d.length)>1?n.controls.desktop:"dots",arrowsOnMainImage:n==null?void 0:n.arrowsOnMainImage,loop:(n==null?void 0:n.loopable)&&(d==null?void 0:d.length)>1,peak:((m=n==null?void 0:n.thumbnails)==null?void 0:m.length)>1&&((Z=n==null?void 0:n.peak)==null?void 0:Z.desktop)||!1,gap:(n==null?void 0:n.gap)||null,width:"100%",height:"100%",defaultIndex:t||0,thumbnails:Q,children:b}):e(Tt,{className:"pdp-product__images",gap:"small",children:b})}),L&&e(u,{node:L,className:"pdp-product__gallery-content"})]}),v("div",{className:"pdp-product__column-container pdp-product__content-column",children:[v("div",{className:"pdp-product__column-body",children:[v("div",{className:"pdp-product__header",children:[i&&e(u,{node:i,className:"pdp-product__title"}),T&&e(u,{node:T,className:"pdp-product__sku"})]}),v("div",{className:"pdp-product__prices",children:[z&&e(u,{node:z,className:N(["pdp-product__price-special","pdp-product__price"]),"aria-label":rt,role:"text"}),P&&e(u,{node:P,className:N(["pdp-product__price-regular","pdp-product__price--grey"]),"aria-label":I,role:"text"})]}),(j=n==null?void 0:n.controls)!=null&&j.mobile&&((X=n==null?void 0:n.controls)==null?void 0:X.mobile)==="thumbnailsRow"?e(C,{className:"pdp-product__images pdp-product__images--carousel pdp-product__images--carousel--thumbnails",width:"100%",height:"auto",arrows:(d==null?void 0:d.length)>1,controls:(d==null?void 0:d.length)>1?"thumbnailsRow":null,loop:(n==null?void 0:n.loopable)&&(d==null?void 0:d.length)>1,peak:((Y=n==null?void 0:n.thumbnails)==null?void 0:Y.length)>1&&((f=n==null?void 0:n.peak)==null?void 0:f.mobile)||!1,gap:(n==null?void 0:n.gap)||null,thumbnails:Q,children:b}):e(C,{className:"pdp-product__images pdp-product__images--carousel",peak:((B=n==null?void 0:n.peak)==null?void 0:B.mobile)&&(d==null?void 0:d.length)>1,gap:(n==null?void 0:n.gap)||null,width:"100%",height:"auto",arrows:(d==null?void 0:d.length)>1,controls:(d==null?void 0:d.length)>1?"dots":null,loop:(n==null?void 0:n.loopable)&&(d==null?void 0:d.length)>1,children:b}),v("div",{className:N(["pdp-product__actions",["pdp-product__actions--out-of-stock",w]]),children:[w&&e("div",{className:"pdp-product__out-of-stock__text",children:pt}),h&&e(u,{node:h,className:N(["pdp-product__options"])}),J&&e("div",{className:"pdp-product__quantity",children:e(u,{node:J})}),$&&e(u,{node:$,className:N(["pdp-product__buttons"])})]}),V&&e(u,{node:V,className:N(["pdp-product__short_description"])}),r&&e(u,{node:r,className:N(["pdp-product__description"])}),tt?e("div",{className:"pdp-product__attributes",children:tt}):null]}),M&&e(u,{node:M,className:"pdp-product__info-content"})]}),R&&e(u,{node:R,className:"pdp-product__content"}),t===null?null:e(Ot,{className:"pdp-product__overlay",onClose:()=>H(null),centered:!0,children:e(C,{className:"pdp-product__overlay__carousel",arrows:(d==null?void 0:d.length)>1,width:"100%",height:"100%",defaultIndex:t||0,loop:(n==null?void 0:n.loopable)&&(d==null?void 0:d.length)>1,controls:(d==null?void 0:d.length)>1?"dots":null,isZoomed:!0,children:b})})]})},Tt=({children:i,gap:y=null,className:L,style:M,...R})=>{const T=at.count(i);return e("div",{...R,className:N(["pdp-gallery-grid",L]),style:{"--gap":y?`var(--spacing-${y})`:"0px",...M},children:at.map(i,(w,V)=>e("div",{className:"pdp-gallery-grid__item",children:e(u,{node:w,loading:V===0?"eager":"lazy"},w.props.src)},T+V))})},Et=({sku:i,hideSku:y,hideQuantity:L,hideShortDescription:M,hideDescription:R,hideAttributes:T,hideURLParams:w,hideSelectedOptionValue:V,slots:r,children:tt,initialData:d,carousel:h,optionsConfig:P,useACDL:z,onAddToCart:G,zoomType:lt,closeButton:J=!0,disableDropdownPreselection:$,...n})=>{var D,K,ht,it;const W=s("PDP.Product.AddToCart.label").label,et=s("PDP.Product.Incrementer.label").label,nt=s("PDP.Product.Details.label").label,[I,rt]=x(wt.getConfig().defaultLocale||"en-US"),[pt,O]=x(),[t=null,H]=x(d),[b,Q]=x(()=>{const p=Bt()??{sku:i,quantity:1};return t!=null&&t.optionUIDs&&(p.optionsUIDs=t.optionUIDs),p}),[k,E]=x(()=>{var p,c;return!(t!=null&&t.options&&((p=t==null?void 0:t.options)==null?void 0:p.length)>0&&((c=t==null?void 0:t.optionUIDs)==null?void 0:c.length)!==(t==null?void 0:t.options.length))}),m={data:t,values:b,valid:k};function Z(p){return p==null?void 0:p.some(c=>(c==null?void 0:c.typename)==="ProductViewOptionValueProduct")}F(()=>{const p=At.on("pdp/setValues",c=>{Q(l=>({...l,...c}))});return()=>{p==null||p.off()}},[]),F(()=>{const p=At.on("locale",c=>{c!==I&&(rt(c),Pt(i,{anchors:P==null?void 0:P.anchorOptions}).then(H))});return()=>{p==null||p.off()}},[I,i]),F(()=>{z&&d&&Object.keys(d).length>0&&bt(d)},[d]);const j=g(p=>{Q(c=>({...c,...p}))},[]);F(()=>{Ut(()=>b)},[JSON.stringify(b)]),F(()=>{st(()=>k)},[k]);const X=g(p=>{var o,_;let c=Object.keys(p).map(a=>p[a].value).filter(a=>a!==void 0);!w&&(t!=null&&t.options)&&!Z(t.options)&&Vt({optionsUIDs:c.join(",")}),j({optionsUIDs:c}),E((c==null?void 0:c.length)===((o=t==null?void 0:t.options)==null?void 0:o.length));const l=(_=t==null?void 0:t.options)==null?void 0:_.some(a=>Z([a]));kt(i,c,P==null?void 0:P.anchorOptions,l).then(a=>{var U;H(a),(U=P==null?void 0:P.anchorOptions)!=null&&U.length&&Y(a,c),z&&(a==null?void 0:a.variantSku)!==i&&bt(a)})},[i]),Y=g((p,c)=>{var _;const l=(p==null?void 0:p.optionUIDs)??[];c.every(a=>l.includes(a))||(O(p==null?void 0:p.options),j({optionsUIDs:l}),E((l==null?void 0:l.length)===((_=p==null?void 0:p.options)==null?void 0:_.length)))},[i]),f=g(p=>{Object.keys(p).length!==0&&E(!1)},[]),B=Nt(()=>{var p;return(p=t==null?void 0:t.attributes)==null?void 0:p.map(({label:c,value:l},o)=>{const _=Lt(l)?Mt(l,I):l.toString();return v("li",{children:[c,": ",e("span",{dangerouslySetInnerHTML:{__html:_}})]},o)})},[t==null?void 0:t.attributes,I]),q=!L&&(t!=null&&t.inStock)?e(A,{name:"Quantity",slot:r==null?void 0:r.Quantity,context:{...m},children:e(vt,{name:"quantity",defaultValue:b.quantity.toString(),value:b.quantity.toString(),min:1,"aria-label":et,className:"pdp-product__quantity",onValue:p=>{j({quantity:Number(p)})}},"quantity")}):void 0,S=()=>{if(t!=null&&t.options)return e(A,{name:"Options",slot:r==null?void 0:r.Options,context:{...m},children:e(Dt,{selectedUIDs:b.optionsUIDs,options:t.options,defaultOptions:b.optionsUIDs,selectionsToUpdate:pt,hideSelectedValue:V,disablePreselections:$,onValues:X,onErrors:f})})};return e("div",{...n,children:e(Rt,{title:e(A,{name:"Title",slot:r==null?void 0:r.Title,context:{...m},children:t==null?void 0:t.name}),sku:y?void 0:e(A,{name:"SKU",slot:r==null?void 0:r.SKU,context:{...m},children:t==null?void 0:t.sku}),options:S(),breadcrumbs:(r==null?void 0:r.Breadcrumbs)&&e(A,{name:"Breadcrumbs",slot:r==null?void 0:r.Breadcrumbs,context:{...m,setSeparator(p){this._registerMethod((...c)=>{const l=p(...c),o=l&&e(ct,{source:l});this._setProps(_=>({..._,separator:o,children:[e(dt,{separator:o,categories:_.categories})]}))})},appendLink(p){this._registerMethod((...c)=>{const{text:l,...o}=p(...c),_=e("a",{...o,children:l});this._setProps(a=>{const U=[...a.categories||[],_];return{...a,categories:U,children:[e(dt,{separator:a.separator,categories:U})]}})})},appendHTMLElement(p){this._registerMethod((...c)=>{const l=p(...c),o=this._htmlElementToVNode(l);this._setProps(_=>{const a=[..._.categories||[],o];return{..._,categories:a,children:[e(dt,{separator:_.separator,categories:a})]}})})}}}),quantity:q,actions:e(A,{name:"Actions",slot:r==null?void 0:r.Actions,context:{...m,appendButton(p){this._registerMethod((...c)=>{const l=p(...c);if(!l)return;const{text:o,icon:_,...a}=l,U=e(_t,{type:"button",...a,icon:_&&e(ct,{source:_}),children:o});this._setProps(yt=>({children:[...yt.children||[],U]}))})}},children:!(r!=null&&r.Actions)&&e(_t,{size:"medium",type:"submit",icon:e(ct,{source:"Cart"}),disabled:!(t!=null&&t.inStock)||!k,"aria-label":W,onClick:()=>G==null?void 0:G(b),children:W})}),shortDescription:M?void 0:e(A,{name:"ShortDescription",slot:r==null?void 0:r.ShortDescription,context:{...m},children:e("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.shortDescription)??""}})}),description:R?void 0:e(A,{name:"Description",slot:r==null?void 0:r.Description,context:{...m},children:e("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.description)??""}})}),images:((D=t==null?void 0:t.images)==null?void 0:D.map(({label:p,url:c})=>{var l,o;return e(mt,{title:p,alt:p,src:c,width:((l=h==null?void 0:h.imageParams)==null?void 0:l.width)??960,height:((o=h==null?void 0:h.imageParams)==null?void 0:o.height)??1191,params:(h==null?void 0:h.imageParams)??{width:960}},c)}))??[],specialPrice:(K=t==null?void 0:t.prices)!=null&&K.visible?e(A,{name:"SpecialPrice",slot:r==null?void 0:r.SpecialPrice,context:{...m},children:e(ut,{...t.prices.final,locale:ot(I)})}):void 0,price:(ht=t==null?void 0:t.prices)!=null&&ht.visible&&t.prices.regular&&t.prices.final.amount!==(t==null?void 0:t.prices.regular.amount)?e(A,{name:"RegularPrice",slot:r==null?void 0:r.RegularPrice,context:{...m},children:e(ut,{...t.prices.regular,locale:ot(I)})}):void 0,zoomType:lt,closeButton:J,carouselConfig:{...h,thumbnails:h&&Object.keys(h).length?((it=t==null?void 0:t.images)==null?void 0:it.map(({label:p,url:c})=>{var l,o;return e(mt,{title:p,alt:p,src:c,width:((l=h==null?void 0:h.thumbnailParams)==null?void 0:l.width)??200,height:((o=h==null?void 0:h.thumbnailParams)==null?void 0:o.height)??248,params:(h==null?void 0:h.thumbnailParams)??{width:200}},c)}))??[]:[]},outOfStock:!(t!=null&&t.inStock),attributes:T?void 0:e(A,{name:"Attributes",slot:r==null?void 0:r.Attributes,context:{...m},children:B!=null&&B.length?v(St,{children:[nt,e("ul",{children:B})]}):null}),galleryContent:(r==null?void 0:r.GalleryContent)&&e(A,{name:"GalleryContent",slot:r.GalleryContent,context:{...m}}),infoContent:(r==null?void 0:r.InfoContent)&&e(A,{name:"InfoContent",slot:r.InfoContent,context:{...m}}),productContent:(r==null?void 0:r.Content)&&e(A,{name:"Content",slot:r.Content,context:{...m}})})})};Et.getInitialData=async function({sku:i,optionsConfig:y}){return await Pt(i,{anchors:y==null?void 0:y.anchorOptions})};export{Et as ProductDetails,Et as default};
|
|
1
|
+
import{jsxs as j,jsx as n,Fragment as Ae}from"@dropins/tools/preact-jsx-runtime.js";import*as fe from"@dropins/tools/preact-compat.js";import{useState as G,Children as he,useRef as Le,useMemo as Ne,useEffect as J,useCallback as se}from"@dropins/tools/preact-compat.js";import{debounce as xe,classes as $,VComponent as F,toLanguageTag as Me,Slot as Z}from"@dropins/tools/lib.js";import{Button as Pe,Icon as Se,Price as ge,Picker as qe,ColorSwatch as je,ImageSwatch as Xe,TextSwatch as Fe,Incrementer as Ge,Breadcrumbs as De,Image as Oe}from"@dropins/tools/components.js";import{useText as X}from"@dropins/tools/i18n.js";import{cloneElement as Ye}from"@dropins/tools/preact.js";import{c as Te,d as Be}from"../chunks/getRefinedProduct.js";import{events as ke}from"@dropins/tools/event-bus.js";import{c as We}from"../chunks/initialize.js";import"@dropins/tools/fetch-graphql.js";const Ke=e=>fe.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},fe.createElement("path",{d:"M7.74512 9.87701L12.0001 14.132L16.2551 9.87701",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),ze=e=>fe.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},fe.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 5.64001L5.62988 18.37",stroke:"currentColor"}),fe.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 18.37L5.62988 5.64001",stroke:"currentColor"})),Ze=24,Ee=16,ve=2,Qe="32";var Ue=(e=>(e[e.small=16]="small",e[e.medium=24]="medium",e[e.large=64]="large",e))(Ue||{});const ye=({show:e=1,scrollbar:s=!1,peak:m=!1,arrows:u=!1,controls:i="dots",arrowsOnMainImage:w=!1,loop:p=!1,gap:P=null,direction:a="horizontal",width:Y="100%",height:o="100%",defaultIndex:b=0,className:R,children:M,thumbnails:T=null,isZoomed:C,...re})=>{const le=X("PDP.Carousel.label").label,r=X("PDP.Carousel.Slide.label").label,y=X("PDP.Carousel.Previous.label").label,_=X("PDP.Carousel.Next.label").label,L=X("PDP.Carousel.Controls.label").label,x=X("PDP.Carousel.Controls.Button.label").label,[v,g]=G(()=>$e(e)),d=Math.ceil(he.count(M)/v),E=m?Ze:0,t=P?Ue[P]:0,z=he.count(M)%v,[S,ae]=G(p?Q()?b-1:b+1:b),K=Le([]),[te,U]=G(0),[ce,pe]=G(0),_e=Ne(()=>he.toArray(T),[T]),V=Ne(()=>{const l=he.toArray(M).reduce((c,D,N)=>N%v===0?[...c,[D]]:[...c.slice(0,-1),[...c[c.length-1],D]],[]);return!p||l.length===1?l:p&&he.count(M)%v===0?[l[d-1]].concat(l).concat([l[0],l[1]]):[he.toArray(M).slice(-v)].concat(l).concat([l[0],l[1]])},[M,v,d,p]),oe=Le(null),ne=Le(null),k=i==="thumbnailsRow"||i==="thumbnailsColumn";J(()=>{const l=document.body,c=xe(()=>{var O,ie;U(((O=oe.current)==null?void 0:O.offsetWidth)??0),pe(((ie=oe.current)==null?void 0:ie.offsetHeight)??0);const N=window.innerWidth,I=$e(e,N);I!==v&&g(I)},50),D=new ResizeObserver(c);return D.observe(l),()=>{D.unobserve(l)}},[v,e]);const ee=se(l=>{const c=p?l-1:l,D=K==null?void 0:K.current[0],N=(D==null?void 0:D.offsetWidth)+Ee,I=(D==null?void 0:D.offsetHeight)+Ee,O=ne.current,ie=i==="thumbnailsRow",we=i==="thumbnailsColumn",de=ie?O==null?void 0:O.offsetWidth:O==null?void 0:O.offsetHeight,q=ie?N:I;(ie||we)&&de&&(q*(c+1)>de&&(O.style.scrollBehavior="smooth",ie?O.scrollLeft=Q()?O.scrollWidth-O.clientWidth-(c+ve)*q:(c+ve)*q:O.scrollTop=(c+ve)*q),(Q()&&(ie?O.scrollLeft:O.scrollTop)<=-q*c||!Q()&&(ie?O.scrollLeft:O.scrollTop)>q*c)&&(O.style.scrollBehavior="smooth",ie?O.scrollLeft=Q()?-(c-ve)*q:(c-ve)*q:O.scrollTop=(c-ve)*q))},[i,p]);J(()=>{ee(S)},[S,ee]);const B=se((l,c,D)=>{k&&ee(l);const N=oe.current,I=E?N.offsetWidth-E:N.offsetWidth-E+t;if(!Array.from(N.querySelectorAll("[data-index]")).filter(de=>{const q=Number(de.getAttribute("data-index"));return!isNaN(q)&&q>-1})[l])return;if(D){const de=l===0?d:0,q=I*(d+(z||v)/v);if(Q()){if(N.scrollLeft<=0&&N.scrollLeft>-(I-5)){B(1,!0);return}if(N.scrollLeft<I-q&&N.scrollLeft>=-q){B(d,!0);return}N.style.scrollBehavior="auto",N.scrollLeft=de===0?0:-q,B(de===0?1:d,!0)}else{if(N.scrollLeft>=0&&N.scrollLeft<I-5){B(1,!0);return}if(N.scrollLeft>q-I&&N.scrollLeft<=q){B(d,!0);return}N.style.scrollBehavior="auto",N.scrollLeft=de===0?0:q,B(de===0?1:d,!0);return}}const we=(N.offsetWidth-t)/v*V[l].length-E;N.style.scrollBehavior=c?"smooth":"auto",N.scrollLeft=Q()?-(V[l].length===v?I*l:I*(l-1)-we):V[l].length===v?I*l:I*(l-1)+we},[t,d,E,v,z,V,ee,i]),ue=se(()=>{if(p){const c=S-1;B(c,!0,Q()?S===d-1:S===1);return}const l=S<=0?0:S-1;B(l,!0)},[S,B,p]),me=se(()=>{const l=V.length-1;if(p){const D=S+1;B(D,!0,Q()?S===0:S===d);return}const c=S>=l?l:S+1;B(c,!0)},[V.length,p,S,B,d]);J(()=>{const l=c=>{c.key==="ArrowLeft"&&(c.preventDefault(),Q()?me():ue()),c.key==="ArrowRight"&&(c.preventDefault(),Q()?ue():me())};return window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l)}},[me,ue]),J(()=>{B(p?b+1:b,!1)},[b,B,p]);const be=xe(()=>{const l=oe.current,c=E?l.offsetWidth-E:l.offsetWidth-E+t,D=Math.abs(l.scrollLeft)/c,N=Math.abs(Math.round(D)-D<1?Math.round(D):Math.ceil(D));if(k&&ee(N),p){const I=c*(d+(z||v)/v),O=Q()?-l.scrollLeft:l.scrollLeft;if(Math.ceil(Math.abs(O))>=Math.ceil(I)-5){l.style.scrollBehavior="auto",l.scrollLeft=Q()?-l.offsetWidth+(Math.ceil(O)-Math.ceil(I)-E):l.offsetWidth+(Math.ceil(O)-Math.ceil(I)-E);return}if(Math.abs(O)===0){l.style.scrollBehavior="auto",l.scrollLeft=Q()?-(I-l.offsetWidth+E):I-l.offsetWidth+E;return}}S!==N&&ae(N)},100);J(()=>{const l=oe.current;return l==null||l.addEventListener("scroll",be),()=>{l==null||l.removeEventListener("scroll",be)}},[be]);const h=(l,c,D)=>n(Pe,{className:$([["pdp-carousel__button",!l],[`pdp-carousel__button--${c}`,!l],[`pdp-carousel__button--${i}`,l]]),style:{"--height":`${ce}px`},variant:"tertiary","aria-label":c==="next"?_:y,onClick:D,disabled:p?!1:c==="next"?S>=V.length-1:S<1,children:n(Se,{className:$([["pdp-carousel__button__icon",!l],[`pdp-carousel__button__icon--${c}`,!l],[`pdp-carousel__button__icon--${i}--${c}`,l]]),size:Qe,source:Ke})}),f=u&&V.length!=1&&h(k,"prev",ue),A=u&&V.length!=1&&h(k,"next",me),W=u&&V.length!=1&&h(!1,"prev",ue),H=u&&V.length!=1&&h(!1,"next",me);return j("div",{role:"region","aria-roledescription":le,className:$(["pdp-carousel",["pdp-carousel--main-image-controls",w],["pdp-carousel--arrows",u&&!k],[`pdp-carousel--${i}`,k],R]),style:{"--flex-carousel":i==="thumbnailsColumn"?"row-reverse":"column","--gap":k?"0":"var(--spacing-small)","--width":Y},...re,children:[n("div",{ref:oe,className:$(["pdp-carousel__wrapper",`pdp-carousel__wrapper--${a}`,["pdp-carousel__wrapper--scrollbar",s],["pdp-carousel__wrapper--peak",m]]),style:{"--total-width":i==="thumbnailsColumn"?"81.6%":"100%","--height":i==="thumbnailsColumn"?"auto":o,"--gap":P?`var(--spacing-${P})`:"0px","--per-page":v},tabIndex:0,children:V.map((l,c)=>{const D=l.length<v;return n("div",{role:"group","aria-roledescription":r,"data-index":c,className:$(["pdp-carousel__slide",`pdp-carousel__slide--${a}`,["pdp-carousel__slide--active",S===c],["pdp-carousel__slide--orphan",D]]),style:{"--length":l.length},children:l},c)})}),!k&&j(Ae,{children:[f,A]}),k&&w&&j(Ae,{children:[W,H]}),i&&V.length!=1&&j("div",{className:$([[`pdp-carousel__controls__container--${i}`,k],["pdp-carousel__controls__container--no-arrows",!u||w]]),style:{"--width":i==="thumbnailsRow"?`${te}px`:Y,"--height":`${ce}px`,"--nr-thumbnails":_e.length},children:[(k||C)&&!w&&f,n("div",{ref:ne,className:$([[`pdp-carousel__controls__wrapper--${i}`,k],["pdp-carousel__controls__wrapper",k]]),children:n("div",{role:"group","aria-label":L,className:$(["pdp-carousel__controls",[`pdp-carousel__controls--${i}`,k]]),children:(p?V.slice(0,d):V).map((l,c)=>{const D=p?d:V.length,N=p?S-1===c:S===c;return k?j("label",{className:$(["pdp-carousel__thumbnail__container"]),ref:I=>{I&&(K.current[c]=I)},children:[n("input",{type:"radio",name:"carousel-thumbnails","aria-label":x.replace("{key}",String(c+1)).replace("{total}",String(D)),checked:N&&te!==0,onChange:()=>{B(p?c+1:c,!0)},...re,className:$(["pdp-carousel__thumbnail",["pdp-carousel__thumbnail--selected",N&&te!==0]])}),n("span",{className:$(["pdp-carousel__thumbnail__span"]),children:_e[c]})]},c):n("button",{"aria-label":x.replace("{key}",String(c+1)).replace("{total}",String(D)),onClick:()=>{B(p?c+1:c,!0)},className:$(["pdp-carousel__controls__button",["pdp-carousel__controls__button--active",N]])},c)})})}),(k||C)&&!w&&A]})]})};function $e(e,s=0){if(typeof e=="number")return e;const{small:m,medium:u,large:i}=e,p=[{breakpoint:1024,value:i},{breakpoint:786,value:u},{breakpoint:0,value:m}].find(({breakpoint:P})=>s>P);return p?p.value:m}function Q(){return document.documentElement.dir==="rtl"}const Je=({title:e,breadcrumbs:s,galleryContent:m,infoContent:u,productContent:i,sku:w,outOfStock:p,shortDescription:P,description:a,attributes:Y,images:o,options:b,price:R,specialPrice:M,className:T,children:C,quantity:re,actions:le,carouselConfig:r,zoomType:y="overlay",closeButton:_=!0,...L})=>{var ae,K,te,U,ce,pe,_e,V,oe;const x=X("PDP.Product.RegularPrice.label").label,v=X("PDP.Product.SpecialPrice.label").label,g=X("PDP.Product.OutOfStock.label").label,d=X("PDP.Product.Image.label").label,[E,t]=G(null),z=o!=null&&o.length?o.map((ne,k)=>{var B;const ee=((B=e==null?void 0:e.props)==null?void 0:B.children)&&(d==null?void 0:d.replace("{product}",e.props.children.toString()).replace("{key}",String(k+1)).replace("{total}",String(o.length)));return y==="zoom"?n(at,{closeButton:_,children:n(F,{node:ne,loading:k===0?"eager":"lazy",alt:ee},k)}):n(F,{node:ne,loading:k===0?"eager":"lazy",alt:ee,onClick:()=>t(k)},k)}):n("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0}),S=(ae=r==null?void 0:r.thumbnails)!=null&&ae.length?r.thumbnails.map((ne,k)=>{var ee;return n(F,{node:ne,loading:(r==null?void 0:r.thumbnailsLoadingMode)||"lazy",alt:((ee=e==null?void 0:e.props)==null?void 0:ee.children)&&(d==null?void 0:d.replace("{product}",e.props.children.toString()).replace("{key}",String(k+1)).replace("{total}",String(o.length)))},k)}):n("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0});return j("div",{...L,className:$(["pdp-product",T]),children:[s&&n(F,{node:s,className:"pdp-product__breadcrumbs"}),j("div",{className:"pdp-product__column-container pdp-product__gallery-column",children:[n("div",{className:"pdp-product__column-body",children:(K=r==null?void 0:r.controls)!=null&&K.desktop?n(ye,{className:"pdp-product__overlay__carousel",arrows:(o==null?void 0:o.length)>1,controls:(o==null?void 0:o.length)>1?r.controls.desktop:"dots",arrowsOnMainImage:r==null?void 0:r.arrowsOnMainImage,loop:(r==null?void 0:r.loopable)&&(o==null?void 0:o.length)>1,peak:((te=r==null?void 0:r.thumbnails)==null?void 0:te.length)>1&&((U=r==null?void 0:r.peak)==null?void 0:U.desktop)||!1,gap:(r==null?void 0:r.gap)||null,width:"100%",height:"100%",defaultIndex:E||0,thumbnails:S,children:z}):n(Ce,{className:"pdp-product__images",gap:"small",children:z})}),m&&n(F,{node:m,className:"pdp-product__gallery-content"})]}),j("div",{className:"pdp-product__column-container pdp-product__content-column",children:[j("div",{className:"pdp-product__column-body",children:[j("div",{className:"pdp-product__header",children:[e&&n(F,{node:e,className:"pdp-product__title"}),w&&n(F,{node:w,className:"pdp-product__sku"})]}),j("div",{className:"pdp-product__prices",children:[M&&n(F,{node:M,className:$(["pdp-product__price-special","pdp-product__price"]),"aria-label":v,role:"text"}),R&&n(F,{node:R,className:$(["pdp-product__price-regular","pdp-product__price--grey"]),"aria-label":x,role:"text"})]}),(ce=r==null?void 0:r.controls)!=null&&ce.mobile&&((pe=r==null?void 0:r.controls)==null?void 0:pe.mobile)==="thumbnailsRow"?n(ye,{className:"pdp-product__images pdp-product__images--carousel pdp-product__images--carousel--thumbnails",width:"100%",height:"auto",arrows:(o==null?void 0:o.length)>1,controls:(o==null?void 0:o.length)>1?"thumbnailsRow":null,loop:(r==null?void 0:r.loopable)&&(o==null?void 0:o.length)>1,peak:((_e=r==null?void 0:r.thumbnails)==null?void 0:_e.length)>1&&((V=r==null?void 0:r.peak)==null?void 0:V.mobile)||!1,gap:(r==null?void 0:r.gap)||null,thumbnails:S,children:z}):n(ye,{className:"pdp-product__images pdp-product__images--carousel",peak:((oe=r==null?void 0:r.peak)==null?void 0:oe.mobile)&&(o==null?void 0:o.length)>1,gap:(r==null?void 0:r.gap)||null,width:"100%",height:"auto",arrows:(o==null?void 0:o.length)>1,controls:(o==null?void 0:o.length)>1?"dots":null,loop:(r==null?void 0:r.loopable)&&(o==null?void 0:o.length)>1,children:z}),j("div",{className:$(["pdp-product__actions",["pdp-product__actions--out-of-stock",p]]),children:[p&&n("div",{className:"pdp-product__out-of-stock__text",children:g}),b&&n(F,{node:b,className:$(["pdp-product__options"])}),re&&n("div",{className:"pdp-product__quantity",children:n(F,{node:re})}),le&&n(F,{node:le,className:$(["pdp-product__buttons"])})]}),P&&n(F,{node:P,className:$(["pdp-product__short_description"])}),a&&n(F,{node:a,className:$(["pdp-product__description"])}),Y?n("div",{className:"pdp-product__attributes",children:Y}):null]}),u&&n(F,{node:u,className:"pdp-product__info-content"})]}),i&&n(F,{node:i,className:"pdp-product__content"}),E===null?null:n(et,{className:"pdp-product__overlay",onClose:()=>t(null),centered:!0,children:n(ye,{className:"pdp-product__overlay__carousel",arrows:(o==null?void 0:o.length)>1,width:"100%",height:"100%",defaultIndex:E||0,loop:(r==null?void 0:r.loopable)&&(o==null?void 0:o.length)>1,controls:(o==null?void 0:o.length)>1?"dots":null,isZoomed:!0,children:z})})]})},Ce=({children:e,gap:s=null,className:m,style:u,...i})=>{const w=he.count(e);return n("div",{...i,className:$(["pdp-gallery-grid",m]),style:{"--gap":s?`var(--spacing-${s})`:"0px",...u},children:he.map(e,(p,P)=>n("div",{className:"pdp-gallery-grid__item",children:n(F,{node:p,loading:P===0?"eager":"lazy"},p.props.src)},w+P))})},Ie=({amount:e,currency:s,locale:m,variant:u,sale:i,minimumAmount:w,maximumAmount:p,className:P,...a})=>n(Ae,{children:e||w===p?n("div",{className:"pdp-price-range",...a,children:n(ge,{amount:e||w,currency:s,locale:m,variant:u,sale:i,className:P})}):j("div",{className:"pdp-price-range",...a,children:[n(ge,{amount:w,currency:s,locale:m,className:P}),n("span",{className:"pdp-price-range__label",children:"-"}),n(ge,{amount:p,currency:s,locale:m,className:P})]})}),et=({centered:e,onClose:s,className:m,children:u,...i})=>{const w=X("PDP.Overlay.Close.label").label,p=se(()=>{s==null||s()},[s]);return J(()=>{const P=a=>{a.key==="Escape"&&p()};return document.addEventListener("keydown",P),()=>{document.removeEventListener("keydown",P)}},[p]),J(()=>{const P=document.scrollingElement,a=P.style.overflow;return P.style.overflow="hidden",()=>{P.style.overflow=a}},[]),j("div",{...i,className:$(["pdp-overlay",["pdp-overlay--centered",e],m]),children:[n("div",{className:"pdp-overlay__content",children:u}),n(Pe,{"aria-label":w,variant:"tertiary",className:"pdp-overlay__close-button",onClick:p,icon:n(ze,{})})]})},tt=["text","image","color","dropdown"],nt=e=>e.map(s=>({...s,text:s.label,disabled:!s.inStock}));function rt(e,s){return e.reduce((m,u)=>{const i=s==null?void 0:s.find(p=>p.items.find(P=>P.id===u));if(!i)return m;const w=i.items.find(p=>p.id===u);return{...m,[i.id]:{label:w.label,value:w.id}}},{})}const lt=({options:e,hideSelectedValue:s,disablePreselections:m,selectedUIDs:u,onValues:i,onErrors:w,defaultOptions:p,selectionsToUpdate:P,className:a,children:Y,...o})=>{const b=X("PDP.Swatches.Required.label").label,R=X("PDP.Swatches.ChooseOption.label").label,[M,T]=G(()=>e==null?void 0:e.reduce((y,_)=>{const{items:L}=_,x=L==null?void 0:L.find(g=>p==null?void 0:p.includes(g.id)),v=L==null?void 0:L.find(g=>g.selected);return x?{...y,[_.id]:{label:x.label,value:x.id}}:v?{...y,[_.id]:{label:v.label,value:v.id}}:y},{}));J(()=>{if(u){const r=rt(u,e);if(JSON.stringify(r)===JSON.stringify(M))return;T(y=>{let _={...y,...r};return i==null||i(_),_})}},[u]),J(()=>{P==null||P.forEach(r=>{T(y=>{var x;const _=(x=r==null?void 0:r.items)==null?void 0:x.find(v=>v.selected);return _?{...y,[r.id]:{label:_==null?void 0:_.label,value:_==null?void 0:_.id}}:y})})},[P,T]),Ne(()=>{const r=e==null?void 0:e.reduce((y,_)=>{var x;let L=!1;return(x=_==null?void 0:_.items)==null||x.forEach(v=>{var d;((d=M[_.id])==null?void 0:d.value)===v.id&&(L=!0)}),_.required&&!L&&(y[_.id]=b),y},{});return w==null||w(r),r},[M]);const C=se((r,y,_)=>{T(L=>{let x={...L,...r&&{[r]:{label:y,value:_}}};return y===R&&delete x[r],i==null||i(x,_),x})},[i]),re=(r,y)=>{var L;const _=((L=y.selectedOptions[0])==null?void 0:L.label)??"";C(r,_,y.value)},le=se(({items:r,id:y,required:_,type:L,selected:x,label:v})=>(r==null?void 0:r.length)>0&&n("div",{className:$(["pdp-swatches__options"]),children:(L==null?void 0:L.toLowerCase())==="dropdown"?n(qe,{"aria-label":v,placeholder:m?R:void 0,handleSelect:g=>re(y,g.target),options:nt(r),value:x}):r==null?void 0:r.map(g=>{const d={key:g.id,id:g.id,name:y,value:g.value,label:g.label,groupAriaLabel:v,selected:x===g.id,outOfStock:!g.inStock,required:_===null?!0:_,onValue:()=>{C(y,g.label,g.id)}};switch(L){case"text":return n(Fe,{...d,label:g.label});case"image":return n(Xe,{...d,src:g.value,alt:g.label});case"color":return n(je,{...d,size:"large",color:g.value});default:return console.warn(`Invalid swatch type ${L}`),null}})}),[C]);return n("div",{...o,className:$(["pdp-swatches",a]),children:e==null?void 0:e.map(({type:r,label:y,id:_,multiple:L,required:x,items:v})=>{var g;return tt.includes(r)||console.warn(`Invalid swatch type ${r}`),L&&console.warn("Multiple selection swatches are not currently supported."),j("div",{id:`swatch-item-${_}`,"data-slot-key":`product-swatch--${_}`,className:"pdp-swatches__field",children:[n("div",{className:"pdp-swatches__field__label",children:M[_]?s?`${y}`:`${y}: ${M[_].label}`:y}),n(le,{id:_,type:r,required:x,items:v,label:y,selected:(g=M[_])==null?void 0:g.value})]},`swatch-item-${_}`)})})},at=({children:e,scale:s=2,closeButton:m=!0})=>{const[u,i]=G(!1),[w,p]=G("pdp-zoom"),[P,a]=G(!1),[Y,o]=G({x:0,y:0}),[b,R]=G({x:0,y:0}),[M,T]=G({x:0,y:0}),C=d=>{!u||d.type!=="touchstart"||(o({x:d.touches[0].clientX,y:d.touches[0].clientY}),R({x:M.x,y:M.y}),a(!0))},re=d=>{var ce;if(!P||d.type!=="touchmove")return;const E=(ce=d.currentTarget)==null?void 0:ce.getBoundingClientRect(),t=(100-100/s)/2,z=d.touches[0].clientX-Y.x,S=d.touches[0].clientY-Y.y,ae=z*100/(E.width*s),K=S*100/(E.height*s),te=b.x+ae,U=b.y+K;T({x:Math.max(-t,Math.min(te,t))||0,y:Math.max(-t,Math.min(U,t))||0}),d.preventDefault()},le=d=>{var K;const E=(K=d.currentTarget)==null?void 0:K.getBoundingClientRect(),t=(100-100/s)/2;let z;if("touches"in d)z=d.touches[0];else if(d instanceof MouseEvent)z=d;else return;const S=t-(z.clientX-E.left)/E.width*100,ae=t-(z.clientY-E.top)/E.height*100;T({x:Math.max(-t,Math.min(S,t))||0,y:Math.max(-t,Math.min(ae,t))||0})},r=d=>{if(!P){if(u){if(m&&"touches"in d){C(d);return}m||i(!1)}else i(!0),le(d);d.preventDefault()}},y=d=>{if(m&&"touches"in d){re(d);return}u&&le(d)},_=()=>{if(m){a(!1);return}i(!1)},L=d=>{i(!1),d.stopPropagation()},x=u?`scale(${s}) translateX(${M.x}%) translateY(${M.y}%)`:"none",v=X("PDP.Zoom.Close.label").label,g=Ye(he.only(e),{draggable:!1,style:{"--transform":x}});return J(()=>{p(u?`pdp-zoom ${m?"pdp-zoom--no-effects":"pdp-zoom--zoomed"}`:"pdp-zoom")},[u,m]),j("figure",{className:w,onClick:r,onMouseMove:y,onMouseLeave:_,onTouchStart:r,onTouchMove:y,onTouchEnd:_,children:[g,m&&u&&n(Pe,{"aria-label":v,variant:"tertiary",className:"pdp-zoom__close-button",icon:n(ze,{}),onClick:L})]})};function ct(e,s="en_US"){if(!Ve(e))throw Error("Invalid date string");return e.split(" ")[1]||(e=`${e} 00:00:00`),new Date(e).toLocaleDateString(Me(s)).toString()}function Ve(e){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(u=>u.test(e)))return!1;const m=new Date(e);return!isNaN(m.getTime())}function ot(e){const s=new URLSearchParams(window.location.search);Object.entries(e).forEach(([u,i])=>{i===null?s.delete(u):s.set(u,String(i))});let m=window.location.pathname;m+=`?${s.toString()}`,m+=window.location.hash,window.history.replaceState({},"",m)}function it(){const e=new URLSearchParams(window.location.search),s={};return e.forEach((m,u)=>{s[u]=m}),s}function st(e){var s,m,u,i,w,p,P,a,Y,o,b,R;return{productId:Number(e==null?void 0:e.externalId),name:e==null?void 0:e.name,sku:(e==null?void 0:e.variantSku)||(e==null?void 0:e.sku),topLevelSku:e==null?void 0:e.sku,specialToDate:void 0,specialFromDate:void 0,newToDate:void 0,newFromDate:void 0,createdAt:void 0,updatedAt:void 0,manufacturer:void 0,countryOfManufacture:void 0,categories:void 0,productType:void 0,pricing:{regularPrice:((m=(s=e==null?void 0:e.prices)==null?void 0:s.regular)==null?void 0:m.amount)||0,minimalPrice:(i=(u=e==null?void 0:e.prices)==null?void 0:u.final)==null?void 0:i.minimumAmount,maximalPrice:(p=(w=e==null?void 0:e.prices)==null?void 0:w.final)==null?void 0:p.maximumAmount,specialPrice:(a=(P=e==null?void 0:e.prices)==null?void 0:P.final)==null?void 0:a.amount,tierPricing:void 0,currencyCode:((o=(Y=e==null?void 0:e.prices)==null?void 0:Y.final)==null?void 0:o.currency)||"USD"},canonicalUrl:e==null?void 0:e.url,mainImageUrl:(R=(b=e==null?void 0:e.images)==null?void 0:b[0])==null?void 0:R.url}}const dt={PRODUCT_CONTEXT:"productContext"},ht={PRODUCT_PAGE_VIEW:"product-page-view"};function He(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function pt(e,s){const m=He();m.push({[e]:null}),m.push({[e]:s})}function ut(e,s){He().push(u=>{const i=u.getState?u.getState():{};u.push({event:e,eventInfo:{...i,...s}})})}function Re(e){const s=st(e);pt(dt.PRODUCT_CONTEXT,s),ut(ht.PRODUCT_PAGE_VIEW)}const mt=({sku:e,hideSku:s,hideQuantity:m,hideShortDescription:u,hideDescription:i,hideAttributes:w,hideURLParams:p,hideSelectedOptionValue:P,slots:a,children:Y,initialData:o,carousel:b,optionsConfig:R,useACDL:M,onAddToCart:T,zoomType:C,closeButton:re=!0,disableDropdownPreselection:le,...r})=>{var B,ue,me,be;const y=X("PDP.Product.AddToCart.label").label,_=X("PDP.Product.Incrementer.label").label,L=X("PDP.Product.Details.label").label,x=X("PDP.Swatches.ChooseOption.label").label,[v,g]=G(We.getConfig().defaultLocale||"en-US"),[d,E]=G(),[t=null,z]=G(o),[S,ae]=G(()=>{const h={sku:e,quantity:1};return t!=null&&t.optionUIDs&&(h.optionsUIDs=t.optionUIDs),h}),[K,te]=G(()=>{var h,f;return!(t!=null&&t.options&&((h=t==null?void 0:t.options)==null?void 0:h.length)>0&&((f=t==null?void 0:t.optionUIDs)==null?void 0:f.length)!==(t==null?void 0:t.options.length))}),U={data:t,values:S,valid:K};function ce(h){return h==null?void 0:h.some(f=>(f==null?void 0:f.typename)==="ProductViewOptionValueProduct")}J(()=>{const h=ke.on("pdp/setValues",f=>{ae(A=>({...A,...f}))});return()=>{h==null||h.off()}},[]),J(()=>{const h=ke.on("locale",f=>{f!==v&&(g(f),Te(e).then(z))});return()=>{h==null||h.off()}},[v,e]),J(()=>{M&&o&&Object.keys(o).length>0&&Re(o)},[o]);const pe=se(h=>{ae(f=>({...f,...h}))},[]);J(()=>{ke.emit("pdp/values",S)},[JSON.stringify(S)]);const _e=se(h=>{var W,H;let f=Object.entries(h).filter(([l,c])=>c.label!==x).map(([l,c])=>h[l].value).filter(l=>l!==void 0);!p&&(t!=null&&t.options)&&!ce(t.options)&&ot({optionsUIDs:f.join(",")}),pe({optionsUIDs:f}),te((f==null?void 0:f.length)===((W=t==null?void 0:t.options)==null?void 0:W.length));const A=(H=t==null?void 0:t.options)==null?void 0:H.some(l=>ce([l]));Be(e,f,R==null?void 0:R.anchorOptions,A).then(l=>{var c;z(l),(c=R==null?void 0:R.anchorOptions)!=null&&c.length&&V(l,f),M&&(l==null?void 0:l.variantSku)!==e&&Re(l)})},[e]),V=se((h,f)=>{var H;const A=(h==null?void 0:h.optionUIDs)??[];f.every(l=>A.includes(l))||(E(h==null?void 0:h.options),pe({optionsUIDs:A}),te((A==null?void 0:A.length)===((H=h==null?void 0:h.options)==null?void 0:H.length)))},[e]),oe=se(h=>{Object.keys(h).length!==0&&te(!1)},[]),ne=Ne(()=>{var h;return(h=t==null?void 0:t.attributes)==null?void 0:h.map(({label:f,value:A},W)=>{const H=Ve(A)?ct(A,v):A.toString();return j("li",{children:[f,": ",n("span",{dangerouslySetInnerHTML:{__html:H}})]},W)})},[t==null?void 0:t.attributes,v]),k=!m&&(t!=null&&t.inStock)?n(Z,{name:"Quantity",slot:a==null?void 0:a.Quantity,context:{...U},children:n(Ge,{name:"quantity",defaultValue:S.quantity.toString(),value:S.quantity.toString(),min:1,"aria-label":_,className:"pdp-product__quantity",onValue:h=>{pe({quantity:Number(h)})}},"quantity")}):void 0,ee=()=>{if(t!=null&&t.options)return n(Z,{name:"Options",slot:a==null?void 0:a.Options,context:{...U},children:n(lt,{selectedUIDs:S.optionsUIDs,options:t.options,defaultOptions:S.optionsUIDs,selectionsToUpdate:d,hideSelectedValue:P,disablePreselections:le,onValues:_e,onErrors:oe})})};return n("div",{...r,children:n(Je,{title:n(Z,{name:"Title",slot:a==null?void 0:a.Title,context:{...U},children:t==null?void 0:t.name}),sku:s?void 0:n(Z,{name:"SKU",slot:a==null?void 0:a.SKU,context:{...U},children:t==null?void 0:t.sku}),options:ee(),breadcrumbs:(a==null?void 0:a.Breadcrumbs)&&n(Z,{name:"Breadcrumbs",slot:a==null?void 0:a.Breadcrumbs,context:{...U,setSeparator(h){this._registerMethod((...f)=>{const A=h(...f),W=A&&n(Se,{source:A});this._setProps(H=>({...H,separator:W,children:[n(De,{separator:W,categories:H.categories})]}))})},appendLink(h){this._registerMethod((...f)=>{const{text:A,...W}=h(...f),H=n("a",{...W,children:A});this._setProps(l=>{const c=[...l.categories||[],H];return{...l,categories:c,children:[n(De,{separator:l.separator,categories:c})]}})})},appendHTMLElement(h){this._registerMethod((...f)=>{const A=h(...f),W=this._htmlElementToVNode(A);this._setProps(H=>{const l=[...H.categories||[],W];return{...H,categories:l,children:[n(De,{separator:H.separator,categories:l})]}})})}}}),quantity:k,actions:n(Z,{name:"Actions",slot:a==null?void 0:a.Actions,context:{...U,appendButton(h){this._registerMethod((...f)=>{const A=h(...f);if(!A)return;const{text:W,icon:H,...l}=A,c=n(Pe,{type:"button",...l,icon:H&&n(Se,{source:H}),children:W});this._setProps(D=>({children:[...D.children||[],c]}))})}},children:!(a!=null&&a.Actions)&&n(Pe,{size:"medium",type:"submit",icon:n(Se,{source:"Cart"}),disabled:!(t!=null&&t.inStock)||!K,"aria-label":y,onClick:()=>T==null?void 0:T(S),children:y})}),shortDescription:u?void 0:n(Z,{name:"ShortDescription",slot:a==null?void 0:a.ShortDescription,context:{...U},children:n("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.shortDescription)??""}})}),description:i?void 0:n(Z,{name:"Description",slot:a==null?void 0:a.Description,context:{...U},children:n("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.description)??""}})}),images:((B=t==null?void 0:t.images)==null?void 0:B.map(({label:h,url:f})=>{var A,W;return n(Oe,{title:h,alt:h,src:f,width:((A=b==null?void 0:b.imageParams)==null?void 0:A.width)??960,height:((W=b==null?void 0:b.imageParams)==null?void 0:W.height)??1191,params:(b==null?void 0:b.imageParams)??{width:960}},f)}))??[],specialPrice:(ue=t==null?void 0:t.prices)!=null&&ue.visible?n(Z,{name:"SpecialPrice",slot:a==null?void 0:a.SpecialPrice,context:{...U},children:n(Ie,{...t.prices.final,locale:Me(v)})}):void 0,price:(me=t==null?void 0:t.prices)!=null&&me.visible&&t.prices.regular&&t.prices.final.amount!==(t==null?void 0:t.prices.regular.amount)?n(Z,{name:"RegularPrice",slot:a==null?void 0:a.RegularPrice,context:{...U},children:n(Ie,{...t.prices.regular,locale:Me(v)})}):void 0,zoomType:C,closeButton:re,carouselConfig:{...b,thumbnails:b&&Object.keys(b).length?((be=t==null?void 0:t.images)==null?void 0:be.map(({label:h,url:f})=>{var A,W;return n(Oe,{title:h,alt:h,src:f,width:((A=b==null?void 0:b.thumbnailParams)==null?void 0:A.width)??200,height:((W=b==null?void 0:b.thumbnailParams)==null?void 0:W.height)??248,params:(b==null?void 0:b.thumbnailParams)??{width:200}},f)}))??[]:[]},outOfStock:!(t!=null&&t.inStock),attributes:w?void 0:n(Z,{name:"Attributes",slot:a==null?void 0:a.Attributes,context:{...U},children:ne!=null&&ne.length?j(Ae,{children:[L,n("ul",{children:ne})]}):null}),galleryContent:(a==null?void 0:a.GalleryContent)&&n(Z,{name:"GalleryContent",slot:a.GalleryContent,context:{...U}}),infoContent:(a==null?void 0:a.InfoContent)&&n(Z,{name:"InfoContent",slot:a.InfoContent,context:{...U}}),productContent:(a==null?void 0:a.Content)&&n(Z,{name:"Content",slot:a.Content,context:{...U}})})})};mt.getInitialData=async function({sku:e,optionsConfig:s}){var P,a,Y,o,b,R,M;function m(T){return T.some(C=>C.__typename==="ProductViewOptionValueProduct")}let u;const i=We.getConfig(),w=((P=it().optionsUIDs)==null?void 0:P.split(","))||((o=(Y=(a=i==null?void 0:i.models)==null?void 0:a.ProductDetails)==null?void 0:Y.initialData)==null?void 0:o.optionsUIDs),p=(R=(b=i==null?void 0:i.models)==null?void 0:b.ProductDetails)==null?void 0:R.initialData;return p&&Object.keys(p).length>0&&(u=(M=p.options)==null?void 0:M.some(T=>m(T==null?void 0:T.values))),w!=null&&w.length?await Be(e,w,s==null?void 0:s.anchorOptions,u):await Te(e)};export{mt as ProductDetails,mt as default};
|
package/containers/index.d.ts
CHANGED
|
@@ -14,12 +14,4 @@
|
|
|
14
14
|
* from Adobe.
|
|
15
15
|
*/
|
|
16
16
|
export * from './ProductDetails';
|
|
17
|
-
export * from './ProductPrice';
|
|
18
|
-
export * from './ProductOptions';
|
|
19
|
-
export * from './ProductQuantity';
|
|
20
|
-
export * from './ProductShortDescription';
|
|
21
|
-
export * from './ProductDescription';
|
|
22
|
-
export * from './ProductAttributes';
|
|
23
|
-
export * from './ProductGallery';
|
|
24
|
-
export * from './ProductHeader';
|
|
25
17
|
//# sourceMappingURL=index.d.ts.map
|
package/data/models/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "@dropins/storefront-pdp", "version": "0.5.0-
|
|
1
|
+
{"name": "@dropins/storefront-pdp", "version": "0.5.0-beta4", "@dropins/tools": "0.33.0"}
|
package/render.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(p,t){try{if(typeof document<"u"){const r=document.createElement("style"),e=t.styleId;for(const a in t.attributes)r.setAttribute(a,t.attributes[a]);r.setAttribute("data-dropin",e),r.appendChild(document.createTextNode(p));const o=document.querySelector('style[data-dropin="sdk"]');if(o)o.after(r);else{const a=document.querySelector('link[rel="stylesheet"], style');a?a.before(r):document.head.append(r)}}}catch(r){console.error("dropin-styles (injectCodeFunction)",r)}})(".pdp-carousel{--icon-size: 32px;--icon-extra-padding: 8px;--thumb-peak: 32px;--thumbnails-col-width: 18.6%;position:relative;display:flex;flex-direction:var(--flex-carousel);align-items:center;gap:var(--gap);width:var(--width)}.pdp-carousel .dropin-button--tertiary--disabled:hover{color:var(--color-neutral-500)}.pdp-carousel--thumbnailsColumn{justify-content:flex-end;align-items:start}.pdp-carousel--thumbnailsRow{align-items:center}.pdp-carousel--arrows{padding-left:calc(var(--icon-size) + var(--icon-extra-padding));padding-right:calc(var(--icon-size) + var(--icon-extra-padding));width:calc(var(--width) - 2 * var(--icon-size) - 2 * var(--icon-extra-padding))}.pdp-carousel__button{position:absolute;top:50%;transform:translateY(-50%);padding:0}.pdp-carousel__button--prev{left:0}[dir=rtl] .pdp-carousel__button--prev{left:auto;right:0}[dir=rtl] .pdp-carousel__button--next{right:auto;left:0}.pdp-carousel__button__icon--next{transform:rotate(-90deg)}.pdp-carousel__button--next{right:0}.pdp-carousel__button__icon--prev{transform:rotate(90deg)}[dir=rtl] .pdp-carousel__button__icon--prev{transform:rotate(-90deg)}[dir=rtl] .pdp-carousel__button__icon--next{transform:rotate(90deg)}.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsColumn .pdp-carousel__button--prev{left:var(--thumbnails-col-width)}.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsRow .pdp-carousel__button--prev,.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsRow .pdp-carousel__button--next{top:calc(var(--height) / 2)}.pdp-carousel__button--thumbnailsColumn{margin:auto;padding:0}.pdp-carousel__button--thumbnailsRow{padding:0}.pdp-carousel__button__icon--thumbnailsColumn--prev{transform:rotate(180deg)}.pdp-carousel__button__icon--thumbnailsRow--prev{transform:rotate(90deg)}[dir=rtl] .pdp-carousel__button__icon--thumbnailsRow--prev,.pdp-carousel__button__icon--thumbnailsRow--next{transform:rotate(-90deg)}[dir=rtl] .pdp-carousel__button__icon--thumbnailsRow--next{transform:rotate(90deg)}.pdp-carousel__wrapper{--peak: 0px;scroll-padding:var(--peak);width:var(--total-width);height:var(--height);display:flex;flex-wrap:nowrap;gap:var(--gap);-webkit-overflow-scrolling:touch}.pdp-carousel__wrapper--horizontal{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory}.pdp-carousel__slide{display:grid;grid-gap:var(--gap);grid-auto-columns:1fr;grid-auto-rows:100%;scroll-snap-align:end;scroll-snap-stop:always;flex-shrink:0}.pdp-carousel__slide--horizontal{grid-auto-flow:column;width:calc(100% - var(--peak))}.pdp-carousel__slide--horizontal.pdp-carousel__slide--orphan{width:calc((100% / var(--per-page) * var(--length)) - var(--peak) / var(--per-page) * var(--length) - var(--gap) / var(--per-page) * (var(--per-page) - var(--length)))}.pdp-carousel__slide>*{vertical-align:middle;max-width:100%;max-height:100%}.pdp-carousel__slide>img{object-fit:contain;width:100%;height:100%}.pdp-carousel__wrapper--peak{--peak: calc(var(--spacing-medium) + var(--gap))}.pdp-carousel__wrapper--scrollbar{--scroll-foreground: var(--color-neutral-600);--scroll-background: var(--color-neutral-400);scrollbar-color:var(--scroll-foreground) var(--scroll-background);scrollbar-width:thin}.pdp-carousel__wrapper:not(.pdp-carousel__wrapper--scrollbar){scrollbar-width:none}.pdp-carousel__wrapper:not(.pdp-carousel__wrapper--scrollbar)::-webkit-scrollbar{display:none}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar{width:4px;height:4px}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar-thumb{background:var(--scroll-foreground)}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar-track{background:var(--scroll-background)}.pdp-carousel__controls__container--thumbnailsRow{--thumbnails-spacing: var(--spacing-small);--thumbnails-box-width: var(--spacing-xxsmall);--thumbnails-rest: calc(var(--thumbnails-spacing) - var(--thumbnails-box-width));--thumbnails-width: calc((var(--width) - 2 * var(--icon-size) - 4 * var(--thumbnails-spacing) - var(--thumb-peak) - 2 * var(--thumbnails-box-width)) / 4);margin-top:var(--thumbnails-rest);width:var(--width);display:flex}.pdp-carousel__controls__container--thumbnailsColumn{--thumbnails-spacing: var(--spacing-small);--thumbnails-box-width: var(--spacing-xxsmall);--thumbnails-rest: calc(var(--thumbnails-spacing) - var(--thumbnails-box-width));--thumbnails-width: 100%;margin-right:var(--thumbnails-rest);width:calc(var(--thumbnails-col-width) - var(--thumbnails-rest))}.pdp-carousel__controls__container--thumbnailsColumn:not(.pdp-carousel__controls__container--no-arrows){height:calc(max(var(--height),4 * var(--thumbnails-spacing)) - 4 * var(--thumbnails-spacing))}.pdp-carousel__controls__container--thumbnailsColumn.pdp-carousel__controls__container--no-arrows{height:var(--height)}.pdp-carousel__controls__wrapper--thumbnailsColumn{max-height:100%;overflow-y:scroll}.pdp-carousel__controls__wrapper--thumbnailsRow{max-width:100%;overflow-x:scroll}.pdp-carousel__controls--thumbnailsRow>label>span:nth-last-child(1){margin-left:0;margin-right:var(--thumbnails-box-width)}[dir=rtl] .pdp-carousel__controls--thumbnailsRow>label>span:nth-last-child(1){margin-left:var(--thumbnails-box-width);margin-right:0}.pdp-carousel__controls__wrapper::-webkit-scrollbar{display:none}.pdp-carousel__controls__wrapper{-ms-overflow-style:none;scrollbar-width:none}.pdp-carousel__controls{display:flex;flex-direction:row;gap:var(--spacing-xsmall)}.pdp-carousel__controls--thumbnailsColumn{display:grid;grid-template-columns:repeat(1,1fr);grid-auto-rows:1fr;grid-row-gap:var(--thumbnails-spacing);padding:var(--thumbnails-box-width)}.pdp-carousel__controls--thumbnailsRow{grid-column-gap:var(--thumbnails-spacing);padding:var(--thumbnails-box-width)}.pdp-carousel__controls__button{border-radius:50%;width:10px;height:10px;padding:0;border:none;background:var(--color-neutral-400);cursor:pointer}.pdp-carousel__controls__button:hover{background:var(--color-neutral-500)}.pdp-carousel__controls__button:active,.pdp-carousel__controls__button--active{background:var(--color-neutral-600)}.pdp-carousel__slide--last{width:100%}.pdp-carousel__thumbnail__container input[type=radio]{opacity:0;position:absolute;width:0;height:0}.pdp-carousel__thumbnail__container .pdp-carousel__thumbnail__span{--bg-color: var(--color-neutral-300);display:inline-block;box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-400);position:relative;cursor:pointer;background-color:var(--bg-color);background-image:var(--background-image);background-repeat:no-repeat;background-size:cover;height:100%;width:100%;overflow:hidden}.pdp-carousel__thumbnail__content{width:inherit;position:absolute;top:-9999px;bottom:-9999px;left:-9999px;right:-9999px;margin:auto;overflow:hidden}.pdp-carousel__thumbnail__span:hover{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);outline:none}.pdp-carousel__controls__wrapper--thumbnailsRow .pdp-carousel__thumbnail__container{min-width:100px}.pdp-carousel__thumbnail__container input[type=radio]:not(:checked):active~.pdp-carousel-thumbnail__span{box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-500);outline:none}.pdp-carousel__thumbnail__container input[type=radio]:checked~.pdp-carousel__thumbnail__span,.pdp-carousel__thumbnail--selected{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)}.pdp-carousel__thumbnail__container input[type=radio]:checked:active~.pdp-carousel__thumbnail__span{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)}.pdp-carousel__thumbnail__container input[type=radio]:focus-visible+.pdp-carousel__thumbnail__span{box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-900),0 0 0 6px var(--color-neutral-400)}.pdp-carousel__thumbnail__span>img{object-fit:cover;width:100%;height:100%}.pdp-product{display:grid;grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);margin:0 var(--grid-1-margins)}.pdp-product__gallery-column{display:none}.pdp-product__content-column{grid-column:1 / span 4;color:var(--color-neutral-800)}.pdp-product__header{display:grid;grid-auto-rows:max-content;margin-bottom:var(--spacing-medium)}.pdp-product__breadcrumbs{grid-column:1 / -1;padding:var(--spacing-medium) 0 var(--spacing-xxbig)}.pdp-product__title{font:var(--type-display-3-font);letter-spacing:var(--type-display-3-letter-spacing);margin:0}.pdp-product__sku{font:var(--type-body-1-default-font);max-width:600px}.pdp-product__prices{display:flex;gap:var(--spacing-xsmall);margin-top:var(--spacing-medium)}.pdp-product__out-of-stock__text{font:var(--type-headline-2-strong-font)}.pdp-product__options{grid-column:1 / span 4}.pdp-product__price,.pdp-product__price-special{font:var(--type-headline-2-strong-font)}.pdp-product__price,.pdp-product__sku,.pdp-product__price-special,.pdp-product__out-of-stock__text{letter-spacing:var(--type-headline-2-strong-letter-spacing)}.pdp-product__price--grey{color:var(--color-neutral-500)}.pdp-product__actions,.pdp-product__actions--out-of-stock{display:grid;grid-auto-flow:row;gap:var(--grid-1-gutters);grid-auto-rows:max-content;margin-bottom:var(--spacing-xxbig);margin-top:var(--spacing-big)}.pdp-product__short_description,.pdp-product__attributes{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing);margin-bottom:var(--spacing-small)}.pdp-product__description,.pdp-product__attributes li{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.pdp-product__attributes{margin-top:var(--spacing-xsmall)}.pdp-product__short_description p,.pdp-product__description p,.pdp-product__attributes li p{margin:0}.pdp-product__short_description figure,.pdp-product__description figure{margin:0}.pdp-product__short_description img,.pdp-product__description img{max-width:100%}.pdp-product__images--carousel{max-height:60vh}.pdp-product__images--carousel--thumbnails{max-height:90vh}.pdp-product__images__placeholder{background-color:var(--color-neutral-200)}.pdp-product__buttons{display:grid;grid-auto-rows:max-content;grid-gap:var(--grid-1-gutters)}.pdp-product__buttons a{text-align:center}.pdp-product__buttons a:hover{text-decoration:none}.pdp-product__overlay .pdp-overlay__content{width:100%;height:100%}.pdp-product__overlay__carousel{width:100%;height:100%;box-sizing:border-box}.pdp-product__overlay__carousel img{width:100%;height:100%;object-fit:contain}.pdp-carousel__controls__container--thumbnailsRow img,.pdp-carousel__controls__container--thumbnailsColumn img{object-fit:cover}.pdp-product__quantity,.pdp-product__buttons{grid-column:1 / span 4}@media only screen and (min-width: 1024px){.pdp-product__breadcrumbs{grid-column:2 / -2}.pdp-product{grid-template-columns:repeat(var(--grid-3-columns),1fr);grid-column-gap:var(--grid-3-gutters);margin:0 var(--grid-3-margins);position:relative}.pdp-product__column-container{position:relative;display:flex;flex-direction:column}.pdp-product__column-body{position:sticky;bottom:30%;align-self:flex-end}.pdp-product__gallery-column{display:block;grid-column:2 / span 6}.pdp-product__content-column{grid-column:8 / span 4;padding-top:var(--spacing-medium)}.pdp-product__images--carousel{display:none}.pdp-product__header{margin-bottom:var(--spacing-small)}.pdp-product__actions{grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);grid-row-gap:var(--spacing-xxbig);margin-top:var(--spacing-xxbig)}.pdp-product__quantity{grid-column:1 / span 2}.pdp-product__actions--out-of-stock{grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);grid-row-gap:var(--spacing-xxbig);margin-top:var(--spacing-small)}.pdp-product__buttons{grid-column:1 / span 4}.pdp-product__out-of-stock__text{grid-column:1 / span 2}.pdp-product__gallery-content,.pdp-product__content{grid-column:2 / span 6}}.pdp-gallery-grid{display:grid;grid-gap:var(--gap);grid-template-columns:repeat(1,1fr);grid-auto-rows:max-content}.pdp-gallery-grid__item>*{height:100%;max-width:100%;min-width:100%;vertical-align:middle;width:100%;object-fit:contain}.pdp-gallery-grid__item:only-child{grid-column:1 / span 2}.pdp-gallery-grid__item:first-child:nth-last-child(2){grid-column:1 / span 2;grid-row:1}.pdp-gallery-grid__item:nth-child(2):last-child{grid-column:1 / 3;grid-row:2}@media only screen and (min-width: 1024px){.pdp-gallery-grid{grid-template-columns:repeat(2,1fr)}}.pdp-price-range .dropin-price{letter-spacing:var(--type-headline-2-strong-letter-spacing);font:var(--type-headline-2-strong-font)}.pdp-price-range__label{font:var(--type-headline-2-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing);margin-left:5px;margin-right:5px}.pdp-overlay{position:fixed;top:0;left:0;z-index:1000;right:0;bottom:0;background-color:var(--color-neutral-50);display:flex;padding:var(--spacing-medium)}.pdp-overlay--centered{align-items:center;justify-content:center}.pdp-overlay__content{display:flex;height:100%;width:100%}.pdp-overlay__close-button{position:absolute;top:var(--spacing-medium);right:var(--spacing-medium);z-index:1001}.pdp-swatches{display:grid;grid-auto-flow:row;grid-gap:var(--grid-1-gutters);grid-auto-rows:max-content;position:relative;z-index:0}.pdp-swatches__field{display:grid;font:var(--type-body-2-strong-font);grid-auto-rows:max-content;gap:var(--spacing-xsmall)}.pdp-swatches__field__label{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing);color:var(--color-neutral-800)}.pdp-swatches__options{display:flex;flex-wrap:wrap;gap:var(--spacing-xsmall)}.pdp-zoom{cursor:zoom-in;overflow:hidden;margin:0;position:relative}.pdp-zoom img{height:100%;max-width:100%;min-width:100%;object-fit:contain;position:relative;transition:transform .2s;transform:var(--transform);vertical-align:middle;width:100%}.pdp-zoom .pdp-zoom__close-button{background-color:var(--color-neutral-50);border-radius:50%;position:absolute;right:var(--spacing-small);top:var(--spacing-small)}.pdp-zoom.pdp-zoom--zoomed{cursor:zoom-out}.pdp-zoom.pdp-zoom--no-effects{cursor:default}@media only screen and (max-width: 768px){.pdp-zoom img{display:block;width:100%;height:100%;transition:transform .2s;transform:var(--transform)}}.pdp-header{display:grid;grid-auto-rows:max-content}.pdp-header__title{font:var(--type-display-3-font);letter-spacing:var(--type-display-3-letter-spacing);margin:0}.pdp-header__sku{font:var(--type-body-1-default-font);max-width:600px}.pdp-price{display:flex;gap:var(--spacing-xsmall);margin-top:var(--spacing-medium)}.pdp-price__amount,.pdp-price__amount-special{font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing)}.pdp-price__amount--grey{color:var(--color-neutral-500)}",{styleId:"PDP"});
|
|
2
|
-
import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{deepmerge as c,Render as u}from"@dropins/tools/lib.js";import{useState as
|
|
1
|
+
(function(p,t){try{if(typeof document<"u"){const r=document.createElement("style"),e=t.styleId;for(const a in t.attributes)r.setAttribute(a,t.attributes[a]);r.setAttribute("data-dropin",e),r.appendChild(document.createTextNode(p));const o=document.querySelector('style[data-dropin="sdk"]');if(o)o.after(r);else{const a=document.querySelector('link[rel="stylesheet"], style');a?a.before(r):document.head.append(r)}}}catch(r){console.error("dropin-styles (injectCodeFunction)",r)}})(".pdp-carousel{--icon-size: 32px;--icon-extra-padding: 8px;--thumb-peak: 32px;--thumbnails-col-width: 18.6%;position:relative;display:flex;flex-direction:var(--flex-carousel);align-items:center;gap:var(--gap);width:var(--width)}.pdp-carousel .dropin-button--tertiary--disabled:hover{color:var(--color-neutral-500)}.pdp-carousel--thumbnailsColumn{justify-content:flex-end;align-items:start}.pdp-carousel--thumbnailsRow{align-items:center}.pdp-carousel--arrows{padding-left:calc(var(--icon-size) + var(--icon-extra-padding));padding-right:calc(var(--icon-size) + var(--icon-extra-padding));width:calc(var(--width) - 2 * var(--icon-size) - 2 * var(--icon-extra-padding))}.pdp-carousel__button{position:absolute;top:50%;transform:translateY(-50%);padding:0}.pdp-carousel__button--prev{left:0}[dir=rtl] .pdp-carousel__button--prev{left:auto;right:0}[dir=rtl] .pdp-carousel__button--next{right:auto;left:0}.pdp-carousel__button__icon--next{transform:rotate(-90deg)}.pdp-carousel__button--next{right:0}.pdp-carousel__button__icon--prev{transform:rotate(90deg)}[dir=rtl] .pdp-carousel__button__icon--prev{transform:rotate(-90deg)}[dir=rtl] .pdp-carousel__button__icon--next{transform:rotate(90deg)}.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsColumn .pdp-carousel__button--prev{left:var(--thumbnails-col-width)}.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsRow .pdp-carousel__button--prev,.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsRow .pdp-carousel__button--next{top:calc(var(--height) / 2)}.pdp-carousel__button--thumbnailsColumn{margin:auto;padding:0}.pdp-carousel__button--thumbnailsRow{padding:0}.pdp-carousel__button__icon--thumbnailsColumn--prev{transform:rotate(180deg)}.pdp-carousel__button__icon--thumbnailsRow--prev{transform:rotate(90deg)}[dir=rtl] .pdp-carousel__button__icon--thumbnailsRow--prev,.pdp-carousel__button__icon--thumbnailsRow--next{transform:rotate(-90deg)}[dir=rtl] .pdp-carousel__button__icon--thumbnailsRow--next{transform:rotate(90deg)}.pdp-carousel__wrapper{--peak: 0px;scroll-padding:var(--peak);width:var(--total-width);height:var(--height);display:flex;flex-wrap:nowrap;gap:var(--gap);-webkit-overflow-scrolling:touch}.pdp-carousel__wrapper--horizontal{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory}.pdp-carousel__slide{display:grid;grid-gap:var(--gap);grid-auto-columns:1fr;grid-auto-rows:100%;scroll-snap-align:end;scroll-snap-stop:always;flex-shrink:0}.pdp-carousel__slide--horizontal{grid-auto-flow:column;width:calc(100% - var(--peak))}.pdp-carousel__slide--horizontal.pdp-carousel__slide--orphan{width:calc((100% / var(--per-page) * var(--length)) - var(--peak) / var(--per-page) * var(--length) - var(--gap) / var(--per-page) * (var(--per-page) - var(--length)))}.pdp-carousel__slide>*{vertical-align:middle;max-width:100%;max-height:100%}.pdp-carousel__slide>img{object-fit:contain;width:100%;height:100%}.pdp-carousel__wrapper--peak{--peak: calc(var(--spacing-medium) + var(--gap))}.pdp-carousel__wrapper--scrollbar{--scroll-foreground: var(--color-neutral-600);--scroll-background: var(--color-neutral-400);scrollbar-color:var(--scroll-foreground) var(--scroll-background);scrollbar-width:thin}.pdp-carousel__wrapper:not(.pdp-carousel__wrapper--scrollbar){scrollbar-width:none}.pdp-carousel__wrapper:not(.pdp-carousel__wrapper--scrollbar)::-webkit-scrollbar{display:none}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar{width:4px;height:4px}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar-thumb{background:var(--scroll-foreground)}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar-track{background:var(--scroll-background)}.pdp-carousel__controls__container--thumbnailsRow{--thumbnails-spacing: var(--spacing-small);--thumbnails-box-width: var(--spacing-xxsmall);--thumbnails-rest: calc(var(--thumbnails-spacing) - var(--thumbnails-box-width));--thumbnails-width: calc((var(--width) - 2 * var(--icon-size) - 4 * var(--thumbnails-spacing) - var(--thumb-peak) - 2 * var(--thumbnails-box-width)) / 4);margin-top:var(--thumbnails-rest);width:var(--width);display:flex}.pdp-carousel__controls__container--thumbnailsColumn{--thumbnails-spacing: var(--spacing-small);--thumbnails-box-width: var(--spacing-xxsmall);--thumbnails-rest: calc(var(--thumbnails-spacing) - var(--thumbnails-box-width));--thumbnails-width: 100%;margin-right:var(--thumbnails-rest);width:calc(var(--thumbnails-col-width) - var(--thumbnails-rest))}.pdp-carousel__controls__container--thumbnailsColumn:not(.pdp-carousel__controls__container--no-arrows){height:calc(max(var(--height),4 * var(--thumbnails-spacing)) - 4 * var(--thumbnails-spacing))}.pdp-carousel__controls__container--thumbnailsColumn.pdp-carousel__controls__container--no-arrows{height:var(--height)}.pdp-carousel__controls__wrapper--thumbnailsColumn{max-height:100%;overflow-y:scroll}.pdp-carousel__controls__wrapper--thumbnailsRow{max-width:100%;overflow-x:scroll}.pdp-carousel__controls--thumbnailsRow>label>span:nth-last-child(1){margin-left:0;margin-right:var(--thumbnails-box-width)}[dir=rtl] .pdp-carousel__controls--thumbnailsRow>label>span:nth-last-child(1){margin-left:var(--thumbnails-box-width);margin-right:0}.pdp-carousel__controls__wrapper::-webkit-scrollbar{display:none}.pdp-carousel__controls__wrapper{-ms-overflow-style:none;scrollbar-width:none}.pdp-carousel__controls{display:flex;flex-direction:row;gap:var(--spacing-xsmall)}.pdp-carousel__controls--thumbnailsColumn{display:grid;grid-template-columns:repeat(1,1fr);grid-auto-rows:1fr;grid-row-gap:var(--thumbnails-spacing);padding:var(--thumbnails-box-width)}.pdp-carousel__controls--thumbnailsRow{grid-column-gap:var(--thumbnails-spacing);padding:var(--thumbnails-box-width)}.pdp-carousel__controls__button{border-radius:50%;width:10px;height:10px;padding:0;border:none;background:var(--color-neutral-400);cursor:pointer}.pdp-carousel__controls__button:hover{background:var(--color-neutral-500)}.pdp-carousel__controls__button:active,.pdp-carousel__controls__button--active{background:var(--color-neutral-600)}.pdp-carousel__slide--last{width:100%}.pdp-carousel__thumbnail__container input[type=radio]{opacity:0;position:absolute;width:0;height:0}.pdp-carousel__thumbnail__container .pdp-carousel__thumbnail__span{--bg-color: var(--color-neutral-300);display:inline-block;box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-400);position:relative;cursor:pointer;background-color:var(--bg-color);background-image:var(--background-image);background-repeat:no-repeat;background-size:cover;height:100%;width:100%;overflow:hidden}.pdp-carousel__thumbnail__content{width:inherit;position:absolute;top:-9999px;bottom:-9999px;left:-9999px;right:-9999px;margin:auto;overflow:hidden}.pdp-carousel__thumbnail__span:hover{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);outline:none}.pdp-carousel__controls__wrapper--thumbnailsRow .pdp-carousel__thumbnail__container{min-width:100px}.pdp-carousel__thumbnail__container input[type=radio]:not(:checked):active~.pdp-carousel-thumbnail__span{box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-500);outline:none}.pdp-carousel__thumbnail__container input[type=radio]:checked~.pdp-carousel__thumbnail__span,.pdp-carousel__thumbnail--selected{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)}.pdp-carousel__thumbnail__container input[type=radio]:checked:active~.pdp-carousel__thumbnail__span{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)}.pdp-carousel__thumbnail__container input[type=radio]:focus-visible+.pdp-carousel__thumbnail__span{box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-900),0 0 0 6px var(--color-neutral-400)}.pdp-carousel__thumbnail__span>img{object-fit:cover;width:100%;height:100%}.pdp-product{display:grid;grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);margin:0 var(--grid-1-margins)}.pdp-product__gallery-column{display:none}.pdp-product__content-column{grid-column:1 / span 4;color:var(--color-neutral-800)}.pdp-product__header{display:grid;grid-auto-rows:max-content;margin-bottom:var(--spacing-medium)}.pdp-product__breadcrumbs{grid-column:1 / -1;padding:var(--spacing-medium) 0 var(--spacing-xxbig)}.pdp-product__title{font:var(--type-display-3-font);letter-spacing:var(--type-display-3-letter-spacing);margin:0}.pdp-product__sku{font:var(--type-body-1-default-font);max-width:600px}.pdp-product__prices{display:flex;gap:var(--spacing-xsmall);margin-top:var(--spacing-medium)}.pdp-product__out-of-stock__text{font:var(--type-headline-2-strong-font)}.pdp-product__options{grid-column:1 / span 4}.pdp-product__price,.pdp-product__price-special{font:var(--type-headline-2-strong-font)}.pdp-product__price,.pdp-product__sku,.pdp-product__price-special,.pdp-product__out-of-stock__text{letter-spacing:var(--type-headline-2-strong-letter-spacing)}.pdp-product__price--grey{color:var(--color-neutral-500)}.pdp-product__actions,.pdp-product__actions--out-of-stock{display:grid;grid-auto-flow:row;gap:var(--grid-1-gutters);grid-auto-rows:max-content;margin-bottom:var(--spacing-xxbig);margin-top:var(--spacing-big)}.pdp-product__short_description,.pdp-product__attributes{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing);margin-bottom:var(--spacing-small)}.pdp-product__description,.pdp-product__attributes li{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.pdp-product__attributes{margin-top:var(--spacing-xsmall)}.pdp-product__short_description p,.pdp-product__description p,.pdp-product__attributes li p{margin:0}.pdp-product__short_description figure,.pdp-product__description figure{margin:0}.pdp-product__short_description img,.pdp-product__description img{max-width:100%}.pdp-product__images--carousel{max-height:60vh}.pdp-product__images--carousel--thumbnails{max-height:90vh}.pdp-product__images__placeholder{background-color:var(--color-neutral-200)}.pdp-product__buttons{display:grid;grid-auto-rows:max-content;grid-gap:var(--grid-1-gutters)}.pdp-product__buttons a{text-align:center}.pdp-product__buttons a:hover{text-decoration:none}.pdp-product__overlay .pdp-overlay__content{width:100%;height:100%}.pdp-product__overlay__carousel{width:100%;height:100%;box-sizing:border-box}.pdp-product__overlay__carousel img{width:100%;height:100%;object-fit:contain}.pdp-carousel__controls__container--thumbnailsRow img,.pdp-carousel__controls__container--thumbnailsColumn img{object-fit:cover}.pdp-product__quantity,.pdp-product__buttons{grid-column:1 / span 4}@media only screen and (min-width: 1024px){.pdp-product__breadcrumbs{grid-column:2 / -2}.pdp-product{grid-template-columns:repeat(var(--grid-3-columns),1fr);grid-column-gap:var(--grid-3-gutters);margin:0 var(--grid-3-margins);position:relative}.pdp-product__column-container{position:relative;display:flex;flex-direction:column}.pdp-product__column-body{position:sticky;bottom:30%;align-self:flex-end}.pdp-product__gallery-column{display:block;grid-column:2 / span 6}.pdp-product__content-column{grid-column:8 / span 4;padding-top:var(--spacing-medium)}.pdp-product__images--carousel{display:none}.pdp-product__header{margin-bottom:var(--spacing-small)}.pdp-product__actions{grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);grid-row-gap:var(--spacing-xxbig);margin-top:var(--spacing-xxbig)}.pdp-product__quantity{grid-column:1 / span 2;width:fit-content}.pdp-product__actions--out-of-stock{grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);grid-row-gap:var(--spacing-xxbig);margin-top:var(--spacing-small)}.pdp-product__buttons{grid-column:1 / span 4}.pdp-product__out-of-stock__text{grid-column:1 / span 2}.pdp-product__gallery-content,.pdp-product__content{grid-column:2 / span 6}}.pdp-gallery-grid{display:grid;grid-gap:var(--gap);grid-template-columns:repeat(1,1fr);grid-auto-rows:max-content}.pdp-gallery-grid__item>*{height:100%;max-width:100%;min-width:100%;vertical-align:middle;width:100%;object-fit:contain}.pdp-gallery-grid__item:only-child{grid-column:1 / span 2}.pdp-gallery-grid__item:first-child:nth-last-child(2){grid-column:1 / span 2;grid-row:1}.pdp-gallery-grid__item:nth-child(2):last-child{grid-column:1 / 3;grid-row:2}@media only screen and (min-width: 1024px){.pdp-gallery-grid{grid-template-columns:repeat(2,1fr)}}.pdp-price-range .dropin-price{letter-spacing:var(--type-headline-2-strong-letter-spacing);font:var(--type-headline-2-strong-font)}.pdp-price-range__label{font:var(--type-headline-2-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing);margin-left:5px;margin-right:5px}.pdp-overlay{position:fixed;top:0;left:0;z-index:1000;right:0;bottom:0;background-color:var(--color-neutral-50);display:flex;padding:var(--spacing-medium)}.pdp-overlay--centered{align-items:center;justify-content:center}.pdp-overlay__close-button{position:absolute;top:var(--spacing-medium);right:var(--spacing-medium);z-index:1001}.pdp-swatches{display:grid;grid-auto-flow:row;grid-gap:var(--grid-1-gutters);grid-auto-rows:max-content}.pdp-swatches__field{display:grid;font:var(--type-body-2-strong-font);grid-auto-rows:max-content;gap:var(--spacing-xsmall)}.pdp-swatches__field__label{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing);color:var(--color-neutral-800)}.pdp-swatches__options{display:flex;flex-wrap:wrap;gap:var(--spacing-xsmall)}.pdp-zoom{cursor:zoom-in;overflow:hidden;margin:0;position:relative}.pdp-zoom img{height:100%;max-width:100%;min-width:100%;object-fit:contain;position:relative;transition:transform .2s;transform:var(--transform);vertical-align:middle;width:100%}.pdp-zoom .pdp-zoom__close-button{background-color:var(--color-neutral-50);border-radius:50%;position:absolute;right:var(--spacing-small);top:var(--spacing-small)}.pdp-zoom.pdp-zoom--zoomed{cursor:zoom-out}.pdp-zoom.pdp-zoom--no-effects{cursor:default}@media only screen and (max-width: 768px){.pdp-zoom img{display:block;width:100%;height:100%;transition:transform .2s;transform:var(--transform)}}",{styleId:"PDP"});
|
|
2
|
+
import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{deepmerge as c,Render as u}from"@dropins/tools/lib.js";import{useState as f,useEffect as m}from"@dropins/tools/preact-hooks.js";import{UIProvider as b}from"@dropins/tools/components.js";import{events as d}from"@dropins/tools/event-bus.js";import{c as g}from"./chunks/initialize.js";const C={Product:{Incrementer:{label:"Item Quantity"},OutOfStock:{label:"Out of Stock"},AddToCart:{label:"Add to Cart"},Details:{label:"Details"},RegularPrice:{label:"Regular Price"},SpecialPrice:{label:"Special Price"},PriceRange:{From:{label:"From"},To:{label:"to"}},Image:{label:"{product} Image {key} of {total}"}},Swatches:{Required:{label:"Required"},ChooseOption:{label:"Choose an option"}},Carousel:{label:"Carousel",Next:{label:"Next"},Previous:{label:"Previous"},Slide:{label:"Slide"},Controls:{label:"Carousel Controls",Button:{label:"Show slide {key} of {total}"}}},Overlay:{Close:{label:"Close"}},Zoom:{Close:{label:"Close"}}},P={quantityLabel:"Quantity"},p={PDP:C,Custom:P},S={default:p},D=({children:a})=>{var l;const[e,i]=f(),n=(l=g.getConfig())==null?void 0:l.langDefinitions;m(()=>{const o=d.on("locale",t=>{t!==e&&i(t)},{eager:!0});return()=>{o==null||o.off()}},[e]);const s=c(S,n??{});return r(b,{lang:e,langDefinitions:s,children:a})},k=new u(r(D,{}));export{k as render};
|
package/chunks/PriceRange.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as r,Fragment as h,jsxs as l}from"@dropins/tools/preact-jsx-runtime.js";/* empty css */import{Price as s}from"@dropins/tools/components.js";const o=({amount:e,currency:p,locale:d,variant:g,sale:t,minimumAmount:i,maximumAmount:n,className:a,...c})=>r(h,{children:e||i===n?r("div",{className:"pdp-price-range",...c,children:r(s,{amount:e||i,currency:p,locale:d,variant:g,sale:t,className:a})}):l("div",{className:"pdp-price-range",...c,children:[r(s,{amount:i,currency:p,locale:d,className:a}),r("span",{className:"pdp-price-range__label",children:"-"}),r(s,{amount:n,currency:p,locale:d,className:a})]})});export{o as P};
|
package/chunks/Swatches.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as h,jsxs as y}from"@dropins/tools/preact-jsx-runtime.js";import{useState as J,useEffect as g,useMemo as M,useCallback as _}from"@dropins/tools/preact-compat.js";import{classes as $}from"@dropins/tools/lib.js";import{Picker as R,ColorSwatch as z,ImageSwatch as A,TextSwatch as B}from"@dropins/tools/components.js";/* empty css */import{useText as P}from"@dropins/tools/i18n.js";const F=["text","image","color","dropdown"],G=d=>d.map(n=>({...n,text:n.label,disabled:!n.inStock}));function H(d,n){return d.reduce((k,f)=>{const s=n==null?void 0:n.find(b=>b.items.find(w=>w.id===f));if(!s)return k;const i=s.items.find(b=>b.id===f);return{...k,[s.id]:{label:i.label,value:i.id}}},{})}const E=({options:d,hideSelectedValue:n,disablePreselections:k,selectedUIDs:f,onValues:s,onErrors:i,defaultOptions:b,selectionsToUpdate:w,className:N,children:K,...O})=>{const C=P("PDP.Swatches.Required.label").label,j=P("PDP.Swatches.ChooseOption.label").label,[S,m]=J(()=>d==null?void 0:d.reduce((r,e)=>{const{items:a}=e,u=a==null?void 0:a.find(c=>b==null?void 0:b.includes(c.id)),t=a==null?void 0:a.find(c=>c.selected);return u?{...r,[e.id]:{label:u.label,value:u.id}}:t?{...r,[e.id]:{label:t.label,value:t.id}}:r},{}));g(()=>{if(f){const l=H(f,d);if(JSON.stringify(l)===JSON.stringify(S))return;x(Object.keys(l)[0],l[Object.keys(l)[0]].label,f[0])}},[f]),g(()=>{w==null||w.forEach(l=>{m(r=>{var u;const e=(u=l==null?void 0:l.items)==null?void 0:u.find(t=>t.selected);return e?{...r,[l.id]:{label:e==null?void 0:e.label,value:e==null?void 0:e.id}}:r})})},[w,m]),M(()=>{const l=d==null?void 0:d.reduce((r,e)=>{var u;let a=!1;return(u=e==null?void 0:e.items)==null||u.forEach(t=>{var v;((v=S[e.id])==null?void 0:v.value)===t.id&&(a=!0)}),e.required&&!a&&(r[e.id]=C),r},{});return i==null||i(l),l},[S]);const x=_((l,r,e)=>{m(a=>{const u={...a,[l]:{label:r,value:e}};return s==null||s(u,e),u})},[s]),L=(l,r)=>{var a;const e=((a=r.selectedOptions[0])==null?void 0:a.label)??"";x(l,e,r.value)},q=_(({items:l,id:r,required:e,type:a,selected:u,label:t})=>(l==null?void 0:l.length)>0&&h("div",{className:$(["pdp-swatches__options"]),children:(a==null?void 0:a.toLowerCase())==="dropdown"?h(R,{"aria-label":t,placeholder:k?j:void 0,handleSelect:c=>L(r,c.target),options:G(l),value:u}):l==null?void 0:l.map(c=>{const v={key:c.id,id:c.id,name:r,value:c.value,label:c.label,groupAriaLabel:t,selected:u===c.id,outOfStock:!c.inStock,required:e===null?!0:e,onValue:()=>{x(r,c.label,c.id)}};switch(a){case"text":return h(B,{...v,label:c.label});case"image":return h(A,{...v,src:c.value,alt:c.label});case"color":return h(z,{...v,size:"large",color:c.value});default:return console.warn(`Invalid swatch type ${a}`),null}})}),[]);return h("div",{...O,className:$(["pdp-swatches",N]),children:d==null?void 0:d.map(({type:l,label:r,id:e,multiple:a,required:u,items:t})=>{var c;return F.includes(l)||console.warn(`Invalid swatch type ${l}`),a&&console.warn("Multiple selection swatches are not currently supported."),y("div",{id:`swatch-item-${e}`,"data-slot-key":`product-swatch--${e}`,className:"pdp-swatches__field",children:[h("div",{className:"pdp-swatches__field__label",children:S[e]?n?`${r}`:`${r}: ${S[e].label}`:r}),h(q,{id:e,type:l,required:u,items:t,label:r,selected:(c=S[e])==null?void 0:c.value})]},`swatch-item-${e}`)})})};export{E as S};
|
package/chunks/Zoom.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsxs as z,jsx as C,Fragment as _e}from"@dropins/tools/preact-jsx-runtime.js";import*as V from"@dropins/tools/preact-compat.js";import{useState as E,Children as B,useRef as he,useMemo as be,useEffect as S,useCallback as U}from"@dropins/tools/preact-compat.js";import{debounce as ve,classes as M}from"@dropins/tools/lib.js";import{Button as de,Icon as Ne}from"@dropins/tools/components.js";/* empty css */import{useText as T}from"@dropins/tools/i18n.js";import{cloneElement as Ee}from"@dropins/tools/preact.js";const We=i=>V.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...i},V.createElement("path",{d:"M7.74512 9.87701L12.0001 14.132L16.2551 9.87701",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),Le=i=>V.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...i},V.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 5.64001L5.62988 18.37",stroke:"currentColor"}),V.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 18.37L5.62988 5.64001",stroke:"currentColor"})),ke=24,ye=16,R=2,De="32";var Ce=(i=>(i[i.small=16]="small",i[i.medium=24]="medium",i[i.large=64]="large",i))(Ce||{});const He=({show:i=1,scrollbar:w=!1,peak:y=!1,arrows:p=!1,controls:n="dots",arrowsOnMainImage:N=!1,loop:s=!1,gap:m=null,direction:W="horizontal",width:H="100%",height:le="100%",defaultIndex:k=0,className:ne,children:x,thumbnails:X=null,isZoomed:I,...J})=>{const Q=T("PDP.Carousel.label").label,G=T("PDP.Carousel.Slide.label").label,ee=T("PDP.Carousel.Previous.label").label,te=T("PDP.Carousel.Next.label").label,ae=T("PDP.Carousel.Controls.label").label,re=T("PDP.Carousel.Controls.Button.label").label,[h,ce]=E(()=>we(i)),r=Math.ceil(B.count(x)/h),d=y?ke:0,g=m?Ce[m]:0,P=B.count(x)%h,[a,Y]=E(s?L()?k-1:k+1:k),D=he([]),[O,ie]=E(0),[Z,Me]=E(0),fe=be(()=>B.toArray(X),[X]),_=be(()=>{const e=B.toArray(x).reduce((t,l,o)=>o%h===0?[...t,[l]]:[...t.slice(0,-1),[...t[t.length-1],l]],[]);return!s||e.length===1?e:s&&B.count(x)%h===0?[e[r-1]].concat(e).concat([e[0],e[1]]):[B.toArray(x).slice(-h)].concat(e).concat([e[0],e[1]])},[x,h,r,s]),j=he(null),pe=he(null),b=n==="thumbnailsRow"||n==="thumbnailsColumn";S(()=>{const e=j.current;if(!e)return;const t=ve(()=>{ie(e.offsetWidth??0),Me(e.offsetHeight??0);const o=window.innerWidth,u=we(i,o);u!==h&&ce(u)},50),l=new ResizeObserver(t);return l.observe(e),()=>{l.unobserve(e)}},[h,i]);const F=U(e=>{const t=s?e-1:e,l=D==null?void 0:D.current[0],o=(l==null?void 0:l.offsetWidth)+ye,u=(l==null?void 0:l.offsetHeight)+ye,c=pe.current,A=n==="thumbnailsRow",se=n==="thumbnailsColumn",$=A?c==null?void 0:c.offsetWidth:c==null?void 0:c.offsetHeight,f=A?o:u;(A||se)&&$&&(f*(t+1)>$&&(c.style.scrollBehavior="smooth",A?c.scrollLeft=L()?c.scrollWidth-c.clientWidth-(t+R)*f:(t+R)*f:c.scrollTop=(t+R)*f),(L()&&(A?c.scrollLeft:c.scrollTop)<=-f*t||!L()&&(A?c.scrollLeft:c.scrollTop)>f*t)&&(c.style.scrollBehavior="smooth",A?c.scrollLeft=L()?-(t-R)*f:(t-R)*f:c.scrollTop=(t-R)*f))},[n,s]);S(()=>{F(a)},[a,F]);const v=U((e,t,l)=>{b&&F(e);const o=j.current,u=d?o.offsetWidth-d:o.offsetWidth-d+g;if(!Array.from(o.querySelectorAll("[data-index]")).filter($=>{const f=Number($.getAttribute("data-index"));return!isNaN(f)&&f>-1})[e])return;if(l){const $=e===0?r:0,f=u*(r+(P||h)/h);if(L()){if(o.scrollLeft<=0&&o.scrollLeft>-(u-5)){v(1,!0);return}if(o.scrollLeft<u-f&&o.scrollLeft>=-f){v(r,!0);return}o.style.scrollBehavior="auto",o.scrollLeft=$===0?0:-f,v($===0?1:r,!0)}else{if(o.scrollLeft>=0&&o.scrollLeft<u-5){v(1,!0);return}if(o.scrollLeft>f-u&&o.scrollLeft<=f){v(r,!0);return}o.style.scrollBehavior="auto",o.scrollLeft=$===0?0:f,v($===0?1:r,!0);return}}const se=(o.offsetWidth-g)/h*_[e].length-d;o.style.scrollBehavior=t?"smooth":"auto",o.scrollLeft=L()?-(_[e].length===h?u*e:u*(e-1)-se):_[e].length===h?u*e:u*(e-1)+se},[g,r,d,h,P,_,F,n]),K=U(()=>{if(s){const t=a-1;v(t,!0,L()?a===r-1:a===1);return}const e=a<=0?0:a-1;v(e,!0)},[a,v,s]),q=U(()=>{const e=_.length-1;if(s){const l=a+1;v(l,!0,L()?a===0:a===r);return}const t=a>=e?e:a+1;v(t,!0)},[_.length,s,a,v,r]);S(()=>{const e=t=>{t.key==="ArrowLeft"&&(t.preventDefault(),L()?q():K()),t.key==="ArrowRight"&&(t.preventDefault(),L()?K():q())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[q,K]),S(()=>{v(s?k+1:k,!1)},[k,v,s]);const ue=ve(()=>{const e=j.current,t=d?e.offsetWidth-d:e.offsetWidth-d+g,l=Math.abs(e.scrollLeft)/t,o=Math.abs(Math.round(l)-l<1?Math.round(l):Math.ceil(l));if(b&&F(o),s){const u=t*(r+(P||h)/h),c=L()?-e.scrollLeft:e.scrollLeft;if(Math.ceil(Math.abs(c))>=Math.ceil(u)-5){e.style.scrollBehavior="auto",e.scrollLeft=L()?-e.offsetWidth+(Math.ceil(c)-Math.ceil(u)-d):e.offsetWidth+(Math.ceil(c)-Math.ceil(u)-d);return}if(Math.abs(c)===0){e.style.scrollBehavior="auto",e.scrollLeft=L()?-(u-e.offsetWidth+d):u-e.offsetWidth+d;return}}a!==o&&Y(o)},100);S(()=>{const e=j.current;return e==null||e.addEventListener("scroll",ue),()=>{e==null||e.removeEventListener("scroll",ue)}},[ue]);const oe=(e,t,l)=>C(de,{className:M([["pdp-carousel__button",!e],[`pdp-carousel__button--${t}`,!e],[`pdp-carousel__button--${n}`,e]]),style:{"--height":`${Z}px`},variant:"tertiary","aria-label":t==="next"?te:ee,onClick:l,disabled:s?!1:t==="next"?a>=_.length-1:a<1,children:C(Ne,{className:M([["pdp-carousel__button__icon",!e],[`pdp-carousel__button__icon--${t}`,!e],[`pdp-carousel__button__icon--${n}--${t}`,e]]),size:De,source:We})}),me=p&&_.length!=1&&oe(b,"prev",K),ge=p&&_.length!=1&&oe(b,"next",q),Pe=p&&_.length!=1&&oe(!1,"prev",K),xe=p&&_.length!=1&&oe(!1,"next",q);return z("div",{role:"region","aria-roledescription":Q,className:M(["pdp-carousel",["pdp-carousel--main-image-controls",N],["pdp-carousel--arrows",p&&!b],[`pdp-carousel--${n}`,b],ne]),style:{"--flex-carousel":n==="thumbnailsColumn"?"row-reverse":"column","--gap":b?"0":"var(--spacing-small)","--width":H},...J,children:[C("div",{ref:j,className:M(["pdp-carousel__wrapper",`pdp-carousel__wrapper--${W}`,["pdp-carousel__wrapper--scrollbar",w],["pdp-carousel__wrapper--peak",y]]),style:{"--total-width":n==="thumbnailsColumn"?"81.6%":"100%","--height":n==="thumbnailsColumn"?"auto":le,"--gap":m?`var(--spacing-${m})`:"0px","--per-page":h},tabIndex:0,children:_.map((e,t)=>{const l=e.length<h;return C("div",{role:"group","aria-roledescription":G,"data-index":t,className:M(["pdp-carousel__slide",`pdp-carousel__slide--${W}`,["pdp-carousel__slide--active",a===t],["pdp-carousel__slide--orphan",l]]),style:{"--length":e.length},children:e},t)})}),!b&&z(_e,{children:[me,ge]}),b&&N&&z(_e,{children:[Pe,xe]}),n&&_.length!=1&&z("div",{className:M([[`pdp-carousel__controls__container--${n}`,b],["pdp-carousel__controls__container--no-arrows",!p||N]]),style:{"--width":n==="thumbnailsRow"?`${O}px`:H,"--height":`${Z}px`,"--nr-thumbnails":fe.length},children:[(b||I)&&!N&&me,C("div",{ref:pe,className:M([[`pdp-carousel__controls__wrapper--${n}`,b],["pdp-carousel__controls__wrapper",b]]),children:C("div",{role:"group","aria-label":ae,className:M(["pdp-carousel__controls",[`pdp-carousel__controls--${n}`,b]]),children:(s?_.slice(0,r):_).map((e,t)=>{const l=s?r:_.length,o=s?a-1===t:a===t;return b?z("label",{className:M(["pdp-carousel__thumbnail__container"]),ref:u=>{u&&(D.current[t]=u)},children:[C("input",{type:"radio",name:"carousel-thumbnails","aria-label":re.replace("{key}",String(t+1)).replace("{total}",String(l)),checked:o&&O!==0,onChange:()=>{v(s?t+1:t,!0)},...J,className:M(["pdp-carousel__thumbnail",["pdp-carousel__thumbnail--selected",o&&O!==0]])}),C("span",{className:M(["pdp-carousel__thumbnail__span"]),children:fe[t]})]},t):C("button",{"aria-label":re.replace("{key}",String(t+1)).replace("{total}",String(l)),onClick:()=>{v(s?t+1:t,!0)},className:M(["pdp-carousel__controls__button",["pdp-carousel__controls__button--active",o]])},t)})})}),(b||I)&&!N&&ge]})]})};function we(i,w=0){if(typeof i=="number")return i;const{small:y,medium:p,large:n}=i,s=[{breakpoint:1024,value:n},{breakpoint:786,value:p},{breakpoint:0,value:y}].find(({breakpoint:m})=>w>m);return s?s.value:y}function L(){return document.documentElement.dir==="rtl"}const Xe=({centered:i,onClose:w,className:y,children:p,...n})=>{const N=T("PDP.Overlay.Close.label").label,s=U(()=>{w==null||w()},[w]);return S(()=>{const m=W=>{W.key==="Escape"&&s()};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[s]),S(()=>{const m=document.scrollingElement,W=m.style.overflow;return m.style.overflow="hidden",()=>{m.style.overflow=W}},[]),z("div",{...n,className:M(["pdp-overlay",["pdp-overlay--centered",i],y]),children:[C("div",{className:"pdp-overlay__content",children:p}),C(de,{"aria-label":N,variant:"tertiary",className:"pdp-overlay__close-button",onClick:s,icon:C(Le,{})})]})},Ye=({children:i,scale:w=2,closeButton:y=!0})=>{const[p,n]=E(!1),[N,s]=E("pdp-zoom"),[m,W]=E(!1),[H,le]=E({x:0,y:0}),[k,ne]=E({x:0,y:0}),[x,X]=E({x:0,y:0}),I=r=>{!p||r.type!=="touchstart"||(le({x:r.touches[0].clientX,y:r.touches[0].clientY}),ne({x:x.x,y:x.y}),W(!0))},J=r=>{var Z;if(!m||r.type!=="touchmove")return;const d=(Z=r.currentTarget)==null?void 0:Z.getBoundingClientRect(),g=(100-100/w)/2,P=r.touches[0].clientX-H.x,a=r.touches[0].clientY-H.y,Y=P*100/(d.width*w),D=a*100/(d.height*w),O=k.x+Y,ie=k.y+D;X({x:Math.max(-g,Math.min(O,g))||0,y:Math.max(-g,Math.min(ie,g))||0}),r.preventDefault()},Q=r=>{var D;const d=(D=r.currentTarget)==null?void 0:D.getBoundingClientRect(),g=(100-100/w)/2;let P;if("touches"in r)P=r.touches[0];else if(r instanceof MouseEvent)P=r;else return;const a=g-(P.clientX-d.left)/d.width*100,Y=g-(P.clientY-d.top)/d.height*100;X({x:Math.max(-g,Math.min(a,g))||0,y:Math.max(-g,Math.min(Y,g))||0})},G=r=>{if(!m){if(p){if(y&&"touches"in r){I(r);return}y||n(!1)}else n(!0),Q(r);r.preventDefault()}},ee=r=>{if(y&&"touches"in r){J(r);return}p&&Q(r)},te=()=>{if(y){W(!1);return}n(!1)},ae=r=>{n(!1),r.stopPropagation()},re=p?`scale(${w}) translateX(${x.x}%) translateY(${x.y}%)`:"none",h=T("PDP.Zoom.Close.label").label,ce=Ee(B.only(i),{draggable:!1,style:{"--transform":re}});return S(()=>{s(p?`pdp-zoom ${y?"pdp-zoom--no-effects":"pdp-zoom--zoomed"}`:"pdp-zoom")},[p,y]),z("figure",{className:N,onClick:G,onMouseMove:ee,onMouseLeave:te,onTouchStart:G,onTouchMove:ee,onTouchEnd:te,children:[ce,y&&p&&C(de,{"aria-label":h,variant:"tertiary",className:"pdp-zoom__close-button",icon:C(Le,{}),onClick:ae})]})};export{He as C,Xe as O,Ye as Z};
|
package/chunks/date.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{toLanguageTag as n}from"@dropins/tools/lib.js";function a(t,d="en_US"){if(!o(t))throw Error("Invalid date string");return t.split(" ")[1]||(t=`${t} 00:00:00`),new Date(t).toLocaleDateString(n(d)).toString()}function o(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(i=>i.test(t)))return!1;const e=new Date(t);return!isNaN(e.getTime())}export{o as i,a as t};
|
package/chunks/fetchPDPData.js
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import{events as Z}from"@dropins/tools/event-bus.js";import{Initializer as ae}from"@dropins/tools/lib.js";import{FetchGraphQL as ue}from"@dropins/tools/fetch-graphql.js";import{s as oe,g as se}from"./getProductConfigurationValues.js";function $e(t){const n=new URLSearchParams(window.location.search);Object.entries(t).forEach(([e,i])=>{i===null?n.delete(e):n.set(e,String(i))});let r=window.location.pathname;r+=`?${n.toString()}`,r+=window.location.hash,window.history.replaceState({},"",r)}function le(){const t=new URLSearchParams(window.location.search),n={};return t.forEach((r,e)=>{n[e]=r}),n}function me(t){var n,r,e,i,a,u,o,s,l,m,c,f;return{productId:Number(t==null?void 0:t.externalId),name:t==null?void 0:t.name,sku:(t==null?void 0:t.variantSku)||(t==null?void 0:t.sku),topLevelSku:t==null?void 0:t.sku,specialToDate:void 0,specialFromDate:void 0,newToDate:void 0,newFromDate:void 0,createdAt:void 0,updatedAt:void 0,manufacturer:void 0,countryOfManufacture:void 0,categories:void 0,productType:void 0,pricing:{regularPrice:((r=(n=t==null?void 0:t.prices)==null?void 0:n.regular)==null?void 0:r.amount)||0,minimalPrice:(i=(e=t==null?void 0:t.prices)==null?void 0:e.final)==null?void 0:i.minimumAmount,maximalPrice:(u=(a=t==null?void 0:t.prices)==null?void 0:a.final)==null?void 0:u.maximumAmount,specialPrice:(s=(o=t==null?void 0:t.prices)==null?void 0:o.final)==null?void 0:s.amount,tierPricing:void 0,currencyCode:((m=(l=t==null?void 0:t.prices)==null?void 0:l.final)==null?void 0:m.currency)||"USD"},canonicalUrl:t==null?void 0:t.url,mainImageUrl:(f=(c=t==null?void 0:t.images)==null?void 0:c[0])==null?void 0:f.url}}const ce={PRODUCT_CONTEXT:"productContext"},fe={PRODUCT_PAGE_VIEW:"product-page-view"};function ne(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function de(t,n){const r=ne();r.push({[t]:null}),r.push({[t]:n})}function Pe(t,n){ne().push(e=>{const i=e.getState?e.getState():{};e.push({event:t,eventInfo:{...i,...n}})})}function we(t){const n=me(t);de(ce.PRODUCT_CONTEXT,n),Pe(fe.PRODUCT_PAGE_VIEW)}const Q=new ae({init:async t=>{var i,a,u,o,s,l;const e={...{defaultLocale:"en-US",persistURLParams:!1,acdl:!1,optionsUIDs:((i=le().optionsUIDs)==null?void 0:i.split(","))||((o=(u=(a=t==null?void 0:t.models)==null?void 0:a.ProductDetails)==null?void 0:u.initialData)==null?void 0:o.optionsUIDs)},...t};if(Q.config.setConfig({...e}),e!=null&&e.sku){const m={sku:e.sku,quantity:1,optionsUIDs:e.optionsUIDs};oe(()=>({...m}));const c=((l=(s=e==null?void 0:e.models)==null?void 0:s.ProductDetails)==null?void 0:l.initialData)??await te(e.sku);Z.emit("pdp/data",c),e.acdl&&c&&we(c)}},listeners:()=>[Z.on("locale",()=>{const{sku:t}=Q.config.getConfig();t&&te(t)})]}),P=Q.config,{setEndpoint:Le,setFetchGraphQlHeader:Ge,removeFetchGraphQlHeader:Me,setFetchGraphQlHeaders:Ne,fetchGraphQl:j,getConfig:Qe}=new ue().getMethods();function M(t,n){var i,a,u;const r=t?{name:t.name,sku:t.sku,addToCartAllowed:t.addToCartAllowed,inStock:t.inStock,shortDescription:t.shortDescription,metaDescription:t.metaDescription,metaKeyword:t.metaKeyword,metaTitle:t.metaTitle,description:t.description,images:ye(t),prices:be(t,!!n),attributes:ge(t),options:he(t),optionUIDs:Se(t),url:t.url,urlKey:t.urlKey,externalId:t.externalId,externalParentId:t.externalParentId,variantSku:t.variantSku}:null,e=(u=(a=(i=P.getConfig())==null?void 0:i.models)==null?void 0:a.ProductDetails)==null?void 0:u.transform;return e&&r?e(r):r}function ye(t){var n,r;return(r=(n=t.images)==null?void 0:n.filter(e=>{var i;return!((i=e.roles)!=null&&i.includes("hide_from_pdp"))}))==null?void 0:r.map(e=>(e.url=e.url.replace(/^https?:/,""),e))}function ge(t){var n,r;return(r=(n=t.attributes)==null?void 0:n.filter(({roles:e})=>(e==null?void 0:e.indexOf("visible_in_pdp"))!==-1))==null?void 0:r.map(({label:e,value:i,name:a})=>({id:a,label:e,value:i.toString().split(",").join(", ")}))}function he(t){const{options:n,optionUIDs:r}=t;return n==null?void 0:n.map(({id:e,title:i,required:a,multi:u,values:o})=>{var c,f;const s=(c=o==null?void 0:o[0])==null?void 0:c.__typename;let l=o==null?void 0:o[0].type;const m=((f=o==null?void 0:o[0])==null?void 0:f.__typename)==="ProductViewOptionValueProduct";return l?l=l.replace("COLOR_HEX","color").replace("TEXT","text").replace("IMAGE","image"):l="dropdown",{id:e,type:l,typename:s,label:i,required:a,multiple:u,items:m?De(o,r):xe(o,r,l)}})}function De(t,n){return t==null?void 0:t.map(({id:r,title:e,inStock:i,isDefault:a,product:u})=>({id:r,inStock:i,label:e,selected:(n==null?void 0:n.indexOf(r))>-1||a,value:r,product:u}))}function xe(t,n,r){return t==null?void 0:t.map(({id:e,title:i,inStock:a,value:u})=>({id:e,inStock:a,label:i,selected:(n==null?void 0:n.indexOf(e))>-1,value:(r==null?void 0:r.toLowerCase())==="dropdown"?e:u==null?void 0:u.replace(/^https?:/,"")}))}function be(t,n){var b,K,B,q,H;const{price:r,priceRange:e,options:i,optionUIDs:a}=t;let{__typename:u}=t;function o(){var h;const w=r.regular.amount.value,d=((h=r.final)==null?void 0:h.amount.value)??r.regular.amount.value,g=r.regular.amount.currency==="NONE"?"USD":r==null?void 0:r.regular.amount.currency;return[w,d,d,g]}function s(){var S,C,E,_,T,V,v,p,A,I,F,U;const w=(S=e==null?void 0:e.minimum)==null?void 0:S.final.amount.value,d=(C=e==null?void 0:e.maximum)==null?void 0:C.final.amount.value;let g;((_=(E=e==null?void 0:e.minimum)==null?void 0:E.regular)==null?void 0:_.amount.value)===((V=(T=e==null?void 0:e.maximum)==null?void 0:T.regular)==null?void 0:V.amount.value)&&(g=(p=(v=e==null?void 0:e.minimum)==null?void 0:v.regular)==null?void 0:p.amount.value);const h=((I=(A=e==null?void 0:e.minimum)==null?void 0:A.final)==null?void 0:I.amount.currency)==="NONE"?"USD":(U=(F=e==null?void 0:e.minimum)==null?void 0:F.final)==null?void 0:U.amount.currency;return[g,w,d,h]}function l(){var E,_,T,V,v,p,A,I,F,U,X,z;let w=0,d=0;i==null||i.forEach(O=>{var W;const N=O==null?void 0:O.values;if(N&&Array.isArray(N)){const D=N.map(y=>{var $,L,Y,J;return(J=(Y=(L=($=y==null?void 0:y.product)==null?void 0:$.price)==null?void 0:L.regular)==null?void 0:Y.amount)==null?void 0:J.value}).filter(y=>y!==void 0),G=D.length>0?Math.max(...D):0;w+=G}else w+=0;(W=O==null?void 0:O.values)==null||W.forEach(D=>{var G,y,$,L;a!=null&&a.includes(D.id)&&(d+=(L=($=(y=(G=D==null?void 0:D.product)==null?void 0:G.price)==null?void 0:y.final)==null?void 0:$.amount)==null?void 0:L.value)})});const g=(E=e==null?void 0:e.minimum)==null?void 0:E.final.amount.value,h=(_=e==null?void 0:e.maximum)==null?void 0:_.final.amount.value;let S;((V=(T=e==null?void 0:e.minimum)==null?void 0:T.regular)==null?void 0:V.amount.value)===((p=(v=e==null?void 0:e.maximum)==null?void 0:v.regular)==null?void 0:p.amount.value)&&(S=(I=(A=e==null?void 0:e.minimum)==null?void 0:A.regular)==null?void 0:I.amount.value);const C=((U=(F=e==null?void 0:e.minimum)==null?void 0:F.final)==null?void 0:U.amount.currency)==="NONE"?"USD":(z=(X=e==null?void 0:e.minimum)==null?void 0:X.final)==null?void 0:z.amount.currency;return n&&!a?[S,g,h,C]:w===(e==null?void 0:e.maximum.regular.amount.value)?[d,d,d,C]:[S,g,h,C]}const[m,c,f,x]=u==="SimpleProductView"?o():n?l():s(),k=u==="SimpleProductView"?(b=r==null?void 0:r.roles)==null?void 0:b.includes("visible"):((B=(K=e==null?void 0:e.maximum)==null?void 0:K.roles)==null?void 0:B.includes("visible"))&&((H=(q=e==null?void 0:e.minimum)==null?void 0:q.roles)==null?void 0:H.includes("visible"));return f&&c===f?{regular:{amount:m,currency:x,variant:m&&c!==m?"strikethrough":"default"},final:{amount:f,currency:x,variant:"default"},visible:k}:{final:{minimumAmount:c,maximumAmount:f,currency:x},visible:k}}function Se(t){var r;let{optionUIDs:n}=t;return(r=t==null?void 0:t.options)==null||r.map(({values:e})=>{var a;((a=e==null?void 0:e[0])==null?void 0:a.__typename)==="ProductViewOptionValueProduct"&&!n&&(n=[],e==null||e.map(({id:u,isDefault:o})=>{o&&(n==null?void 0:n.indexOf(u))===-1&&n.push(u)}))}),n}const Ce=`
|
|
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
|
-
__typename
|
|
17
|
-
product {
|
|
18
|
-
sku
|
|
19
|
-
shortDescription
|
|
20
|
-
metaDescription
|
|
21
|
-
metaKeyword
|
|
22
|
-
metaTitle
|
|
23
|
-
name
|
|
24
|
-
price {
|
|
25
|
-
final {
|
|
26
|
-
amount {
|
|
27
|
-
value
|
|
28
|
-
currency
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
regular {
|
|
32
|
-
amount {
|
|
33
|
-
value
|
|
34
|
-
currency
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
roles
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
... on ProductViewOptionValueSwatch {
|
|
42
|
-
id
|
|
43
|
-
title
|
|
44
|
-
type
|
|
45
|
-
value
|
|
46
|
-
inStock
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
`,re=`
|
|
51
|
-
fragment ProductFragment on ProductView {
|
|
52
|
-
__typename
|
|
53
|
-
id
|
|
54
|
-
sku
|
|
55
|
-
name
|
|
56
|
-
shortDescription
|
|
57
|
-
metaDescription
|
|
58
|
-
metaKeyword
|
|
59
|
-
metaTitle
|
|
60
|
-
description
|
|
61
|
-
inStock
|
|
62
|
-
addToCartAllowed
|
|
63
|
-
url
|
|
64
|
-
urlKey
|
|
65
|
-
externalId
|
|
66
|
-
|
|
67
|
-
images(roles: []) {
|
|
68
|
-
url
|
|
69
|
-
label
|
|
70
|
-
roles
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
attributes(roles: []) {
|
|
74
|
-
name
|
|
75
|
-
label
|
|
76
|
-
value
|
|
77
|
-
roles
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
... on SimpleProductView {
|
|
81
|
-
price {
|
|
82
|
-
roles
|
|
83
|
-
|
|
84
|
-
regular {
|
|
85
|
-
amount {
|
|
86
|
-
value
|
|
87
|
-
currency
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
final {
|
|
92
|
-
amount {
|
|
93
|
-
value
|
|
94
|
-
currency
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
... on ComplexProductView {
|
|
102
|
-
options {
|
|
103
|
-
...ProductOptionFragment
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
priceRange {
|
|
107
|
-
maximum {
|
|
108
|
-
final {
|
|
109
|
-
amount {
|
|
110
|
-
value
|
|
111
|
-
currency
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
regular {
|
|
115
|
-
amount {
|
|
116
|
-
value
|
|
117
|
-
currency
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
roles
|
|
121
|
-
}
|
|
122
|
-
minimum {
|
|
123
|
-
final {
|
|
124
|
-
amount {
|
|
125
|
-
value
|
|
126
|
-
currency
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
regular {
|
|
130
|
-
amount {
|
|
131
|
-
value
|
|
132
|
-
currency
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
roles
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
${Ce}
|
|
142
|
-
`,ie=`
|
|
143
|
-
query GET_PRODUCT_DATA($skus: [String]) {
|
|
144
|
-
products(skus: $skus) {
|
|
145
|
-
...ProductFragment
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
${re}
|
|
150
|
-
`;function R(t){return t.some(n=>(n==null?void 0:n.__typename)==="ProductViewOptionValueProduct")}const Oe=async t=>{var a,u,o,s,l,m;const n=(o=(u=(a=P==null?void 0:P.getConfig())==null?void 0:a.models)==null?void 0:u.ProductDetails)==null?void 0:o.initialData;let r=(s=n==null?void 0:n.options)==null?void 0:s.some(c=>R(c.values));if(n)return M(n,!!r);const{data:e}=await j(ie,{method:"GET",variables:{skus:[t]}}),i=(l=e==null?void 0:e.products)==null?void 0:l[0];return r=(m=i==null?void 0:i.options)==null?void 0:m.some(c=>R(c.values)),M(i,!!r)},ke=`
|
|
151
|
-
query REFINE_PRODUCT_QUERY(
|
|
152
|
-
$optionIds: [String!]!
|
|
153
|
-
$sku: String!
|
|
154
|
-
) {
|
|
155
|
-
# Refined Product
|
|
156
|
-
refineProduct(
|
|
157
|
-
optionIds: $optionIds
|
|
158
|
-
sku: $sku
|
|
159
|
-
) {
|
|
160
|
-
...ProductFragment
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
# Parent Product
|
|
164
|
-
products(skus: [$sku]) {
|
|
165
|
-
...ProductFragment
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
# %extendedPlaceholder%
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
${re}
|
|
172
|
-
`;async function ee(t,n,r){var o;if(r)return{...(o=(await j(ie,{method:"GET",variables:{skus:[t]}})).data)==null?void 0:o.products[0],optionUIDs:n};const e=_e(n),i=Te(e,t),a=ke.replace("# %extendedPlaceholder%",i),{data:u}=await j(a,{method:"GET",variables:{optionIds:n,sku:t}});return u}const Ee=async(t,n,r,e)=>{var f,x,k;let i;if(i=await ee(t,n,e),!i)return null;if(e)return M({...i,optionUIDs:n},!0);let{products:a,refineProduct:u,...o}=i;const s=a==null?void 0:a[0],l=Ve(Object.values(o),s.options,r);if(r!=null&&r.length&&u===null){n=ve(l,n,r);const b=await ee(t,n);u=b==null?void 0:b.refineProduct}const m=M({...u||s,sku:s.sku,name:s.name,externalParentId:s==null?void 0:s.externalId,options:l,optionUIDs:n,variantSku:(u==null?void 0:u.__typename)==="SimpleProductView"?u==null?void 0:u.sku:void 0}),c=(k=(x=(f=P==null?void 0:P.getConfig())==null?void 0:f.models)==null?void 0:x.ProductDetails)==null?void 0:k.fallbackData;return c?c(s,m):m};function _e(t){if(t.length<2)return[t];const n=[];return t.forEach(r=>{const e=[];t.forEach(i=>{r!==i&&e.push(i)}),n.push(e)}),n}function Te(t,n){return t.map((r,e)=>`
|
|
173
|
-
ProductOption${e}: refineProduct(
|
|
174
|
-
optionIds: [
|
|
175
|
-
${r.map(i=>`"${i}"`).join(", ")}
|
|
176
|
-
]
|
|
177
|
-
sku: "${n}"
|
|
178
|
-
) {
|
|
179
|
-
... on ComplexProductView {
|
|
180
|
-
options {
|
|
181
|
-
...ProductOptionFragment
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
`).join("")}function Ve(t,n,r){const e=Object.values(t).filter(a=>!!a).reduce((a,u)=>u.options?[...a,...u.options]:[...a],[]),i=new Map(n.map(a=>[a.id,a]));return e.forEach(a=>{r!=null&&r.includes(a.id)||i.set(a.id,a)}),[...i.values()]}function ve(t,n,r){const e=[];let i;return t.forEach(a=>{var u,o,s,l;r.includes(a.id)?i=((o=(u=a.values)==null?void 0:u.find(m=>n.includes(m==null?void 0:m.id)))==null?void 0:o.id)||((s=a.values[0])==null?void 0:s.id):i=(l=a.values[0])==null?void 0:l.id,e.push(i)}),e}const te=async(t,n)=>{var s,l;const{models:r,anchors:e}=P.getConfig(),i=(n==null?void 0:n.optionsUIDs)??((s=se())==null?void 0:s.optionsUIDs)??P.getConfig().optionsUIDs,a=(l=r==null?void 0:r.ProductDetails)==null?void 0:l.initialData,u=pe(a);return i!=null&&i.length?await Ee(t,i,(n==null?void 0:n.anchors)??e,u):await Oe(t)};function pe(t){var n;return t?(n=t==null?void 0:t.options)==null?void 0:n.some(r=>{var e;return(e=r==null?void 0:r.values)==null?void 0:e.some(i=>i.__typename==="ProductViewOptionValueProduct")}):!1}export{Ge as a,Ne as b,P as c,Oe as d,Ee as e,j as f,Qe as g,te as h,Q as i,$e as j,we as p,Me as r,Le as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{events as e}from"@dropins/tools/event-bus.js";const s=async()=>e._lastEvent["pdp/data"]?Promise.resolve(e._lastEvent["pdp/data"].payload):new Promise(a=>{const t=e.on("pdp/data",r=>{a(r),t==null||t.off()},{eager:!0})});export{s as g};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{events as e}from"@dropins/tools/event-bus.js";const r=t=>{const o=n(),s=t(o);e.emit("pdp/values",{...s})},n=()=>{var t;return((t=e._lastEvent["pdp/values"])==null?void 0:t.payload)??null};export{n as g,r as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{events as o}from"@dropins/tools/event-bus.js";const r=t=>{const n=a(),i=t(n);o.emit("pdp/valid",i)},a=()=>{var t;return((t=o._lastEvent["pdp/valid"])==null?void 0:t.payload)??null};export{a as i,r as s};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { FunctionComponent, VNode } from 'preact';
|
|
2
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
3
|
-
|
|
4
|
-
export interface HeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
5
|
-
title: VNode;
|
|
6
|
-
sku: VNode;
|
|
7
|
-
}
|
|
8
|
-
export declare const Header: FunctionComponent<HeaderProps>;
|
|
9
|
-
//# sourceMappingURL=Header.d.ts.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { FunctionComponent, VNode } from 'preact';
|
|
2
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
3
|
-
|
|
4
|
-
export interface PriceProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
|
-
price?: VNode;
|
|
6
|
-
specialPrice?: VNode;
|
|
7
|
-
}
|
|
8
|
-
export declare const Price: FunctionComponent<PriceProps>;
|
|
9
|
-
//# sourceMappingURL=Price.d.ts.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
2
|
-
import { Container } from '@dropins/tools/types/elsie/src/lib';
|
|
3
|
-
import { ProductModel } from '../../data/models';
|
|
4
|
-
|
|
5
|
-
export interface ProductAttributesProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
}
|
|
7
|
-
export declare const ProductAttributes: Container<ProductAttributesProps, ProductModel | null>;
|
|
8
|
-
//# sourceMappingURL=ProductAttributes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsxs as a,jsx as i}from"@dropins/tools/preact-jsx-runtime.js";import{useState as n,useEffect as b}from"@dropins/tools/preact-compat.js";import{classes as h}from"@dropins/tools/lib.js";import{events as l}from"@dropins/tools/event-bus.js";import{i as P,t as S}from"../chunks/date.js";import{g as x}from"../chunks/getFetchedProductData.js";import{useText as L}from"@dropins/tools/i18n.js";import{c as j}from"../chunks/fetchPDPData.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/getProductConfigurationValues.js";const I=({initialData:c=null,children:N,...r})=>{var s;const m=L("PDP.Product.Details.label").label,{defaultLocale:f="en-US"}=j.getConfig(),[u,p]=n(f),[o,d]=n(c);return b(()=>{const e=l.on("pdp/data",d),t=l.on("locale",p);return()=>{e==null||e.off(),t==null||t.off()}},[]),o?a("div",{...r,className:h(["pdp-attributes",r.className]),children:[m,i("ul",{children:(s=o==null?void 0:o.attributes)==null?void 0:s.map(({label:e,value:t},g)=>{const D=P(t)?S(t,u):t.toString();return a("li",{children:[e,": ",i("span",{dangerouslySetInnerHTML:{__html:D}})]},g)})})]}):null};I.getInitialData=x;export{I as ProductAttributes,I as default};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
2
|
-
import { Container } from '@dropins/tools/types/elsie/src/lib';
|
|
3
|
-
import { ProductModel } from '../../data/models';
|
|
4
|
-
|
|
5
|
-
export interface ProductDescriptionProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
}
|
|
7
|
-
export declare const ProductDescription: Container<ProductDescriptionProps, ProductModel | null>;
|
|
8
|
-
//# sourceMappingURL=ProductDescription.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{useState as i,useEffect as a}from"@dropins/tools/preact-compat.js";import{classes as c}from"@dropins/tools/lib.js";import{events as m}from"@dropins/tools/event-bus.js";import{g as l}from"../chunks/getFetchedProductData.js";const f=({initialData:o=null,children:p,...r})=>{const[t,s]=i(o);return a(()=>{const e=m.on("pdp/data",s);return()=>{e==null||e.off()}},[]),t?n("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.description)??""},...r,className:c(["pdp-description",r.className])}):null};f.getInitialData=l;export{f as ProductDescription,f as default};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
2
|
-
import { Container, ResolveImageUrlOptions } from '@dropins/tools/types/elsie/src/lib';
|
|
3
|
-
import { ProductModel } from '../../data/models/product-model';
|
|
4
|
-
|
|
5
|
-
export interface ProductGalleryProps extends Omit<HTMLAttributes<HTMLDivElement>, 'controls'> {
|
|
6
|
-
controls?: 'thumbnailsRow' | 'thumbnailsColumn' | 'dots' | null;
|
|
7
|
-
loop?: boolean;
|
|
8
|
-
peak?: boolean;
|
|
9
|
-
gap?: 'small' | 'medium' | 'large' | null;
|
|
10
|
-
arrows?: boolean;
|
|
11
|
-
imageParams?: ResolveImageUrlOptions;
|
|
12
|
-
thumbnailParams?: ResolveImageUrlOptions;
|
|
13
|
-
zoom?: {
|
|
14
|
-
closeButton: boolean;
|
|
15
|
-
} | boolean;
|
|
16
|
-
}
|
|
17
|
-
export declare const ProductGallery: Container<ProductGalleryProps, ProductModel | null>;
|
|
18
|
-
//# sourceMappingURL=ProductGallery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as l,jsxs as N}from"@dropins/tools/preact-jsx-runtime.js";import{useState as O,useEffect as Q,useMemo as S}from"@dropins/tools/preact-compat.js";import{Image as C}from"@dropins/tools/components.js";import{events as F}from"@dropins/tools/event-bus.js";import{g as q}from"../chunks/getFetchedProductData.js";import{Z as z,C as E,O as J}from"../chunks/Zoom.js";import"@dropins/tools/lib.js";/* empty css */import{useText as K}from"@dropins/tools/i18n.js";import"@dropins/tools/preact.js";const U=({initialData:R=null,controls:Z="dots",loop:g=!0,peak:j=!1,gap:G=null,arrows:T=!0,zoom:h=!1,imageParams:t,thumbnailParams:o,children:V,...k})=>{var u,w,B,y,I,_,x;const c=K("PDP.Product.Image.label").label,[e,v]=O(R),[d,s]=O(null);Q(()=>{const A=F.on("pdp/data",v);return()=>{A==null||A.off()}},[]);const f=S(()=>{var A;return((A=e==null?void 0:e.images)==null?void 0:A.map(({label:n,url:r},p)=>{const i=({...M})=>{var D;return l(C,{title:n,src:r,alt:c==null?void 0:c.replace("{product}",n).replace("{key}",String(p+1)).replace("{total}",String((D=e==null?void 0:e.images)==null?void 0:D.length)),width:(t==null?void 0:t.width)??960,height:(t==null?void 0:t.height)??1191,params:t??{width:960},loading:p===0?"eager":"lazy",...M})};return h?l(z,{closeButton:typeof h=="object"?h.closeButton:!1,children:l(i,{})},r):l(i,{onClick:()=>s(p)},r)}))??l("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product-gallery__images__placeholder",width:(t==null?void 0:t.width)??960,height:(t==null?void 0:t.height)??1191,"aria-hidden":!0},"pleaceholder")},[c,e==null?void 0:e.images,t,h]),H=S(()=>{var A;return((A=e==null?void 0:e.images)==null?void 0:A.map(({label:n,url:r},p)=>{var i;return l(C,{title:n,src:r,alt:c==null?void 0:c.replace("{product}",n).replace("{key}",String(p+1)).replace("{total}",String((i=e==null?void 0:e.images)==null?void 0:i.length)),width:(o==null?void 0:o.width)??200,height:(o==null?void 0:o.height)??248,params:o??{width:200},loading:"lazy"},r)}))??l("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product-gallery__thumbnail__placeholder",width:(o==null?void 0:o.width)??200,height:(o==null?void 0:o.height)??248,"aria-hidden":!0},"pleaceholder")},[c,e==null?void 0:e.images,o]);return e?N("div",{...k,children:[l(E,{arrows:!!((u=e==null?void 0:e.images)!=null&&u.length),arrowsOnMainImage:T,controls:(w=e==null?void 0:e.images)!=null&&w.length?Z:"dots",loop:g&&!!((B=e.images)!=null&&B.length),peak:!!((y=e==null?void 0:e.images)!=null&&y.length)&&j,gap:G,defaultIndex:d||0,thumbnails:H,children:f}),d===null?null:l(J,{onClose:()=>s(null),centered:!0,children:l(E,{arrows:!!((I=e==null?void 0:e.images)!=null&&I.length),width:"100%",height:"100%",defaultIndex:d||0,loop:g&&!!((_=e.images)!=null&&_.length),controls:(x=e==null?void 0:e.images)!=null&&x.length?"dots":null,isZoomed:!0,children:f})})]}):null};U.getInitialData=q;export{U as ProductGallery,U as default};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
2
|
-
import { Container } from '@dropins/tools/types/elsie/src/lib';
|
|
3
|
-
import { ProductModel } from '../../data/models';
|
|
4
|
-
|
|
5
|
-
export interface ProductHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
}
|
|
7
|
-
export declare const ProductHeader: Container<ProductHeaderProps, ProductModel | null>;
|
|
8
|
-
//# sourceMappingURL=ProductHeader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsxs as c,jsx as e,Fragment as s}from"@dropins/tools/preact-jsx-runtime.js";import{useState as l,useEffect as m}from"@dropins/tools/preact-compat.js";import{classes as p,VComponent as i}from"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/preact.js";import{events as u}from"@dropins/tools/event-bus.js";import{g as f}from"../chunks/getFetchedProductData.js";const h=({className:r,title:n,sku:a,children:t,...d})=>c("div",{...d,className:p(["pdp-header",r]),children:[e("div",{className:"pdp-header__title",children:e(i,{node:n})}),e("div",{className:"pdp-header__sku",children:e(i,{node:a})})]}),g=({initialData:r=null,children:n,...a})=>{const[t,d]=l(r);return m(()=>{const o=u.on("pdp/data",d);return()=>{o==null||o.off()}},[]),t?e(h,{...a,title:e(s,{children:t.name}),sku:e(s,{children:t.sku})}):null};g.getInitialData=f;export{g as ProductHeader,g as default};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
2
|
-
import { Container, SlotProps } from '@dropins/tools/types/elsie/src/lib';
|
|
3
|
-
import { ProductModel } from '../../data/models';
|
|
4
|
-
|
|
5
|
-
export interface ProductOptionsProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
hideSelectedValue?: boolean;
|
|
7
|
-
onValues?: (optionsUIDs: string[]) => void;
|
|
8
|
-
onErrors?: (errors: {
|
|
9
|
-
[id: string]: string;
|
|
10
|
-
}) => void;
|
|
11
|
-
slots?: {
|
|
12
|
-
Swatches: SlotProps<{
|
|
13
|
-
data: ProductModel | null;
|
|
14
|
-
optionsUIDs: string[];
|
|
15
|
-
}>;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export declare const ProductOptions: Container<ProductOptionsProps, {
|
|
19
|
-
data: ProductModel | null;
|
|
20
|
-
optionsUIDs: string[];
|
|
21
|
-
}>;
|
|
22
|
-
//# sourceMappingURL=ProductOptions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as j}from"@dropins/tools/preact-jsx-runtime.js";import{useState as h,useEffect as L,useCallback as w}from"@dropins/tools/preact-compat.js";import{Slot as R}from"@dropins/tools/lib.js";import{events as d}from"@dropins/tools/event-bus.js";import"@dropins/tools/components.js";/* empty css */import{S as q}from"../chunks/Swatches.js";import"@dropins/tools/preact.js";import{c as z,j as A,h as G,p as H}from"../chunks/fetchPDPData.js";import{g as C,s as y}from"../chunks/getProductConfigurationValues.js";import{s as g}from"../chunks/isProductConfigurationValid.js";import{g as J}from"../chunks/getFetchedProductData.js";import"@dropins/tools/i18n.js";import"@dropins/tools/fetch-graphql.js";const K=({initialData:p={data:null,optionsUIDs:[]},hideSelectedValue:I=!1,slots:l,onValues:f,onErrors:u,children:N,...v})=>{const[o,O]=h(p.data),[n,b]=h(p.optionsUIDs),[B,M]=h();L(()=>{const i=d.on("pdp/data",O),r=d.on("pdp/values",({optionsUIDs:a})=>{a&&b(a)});return g(()=>o!=null&&o.options?(n==null?void 0:n.length)===o.options.length:!0),()=>{i==null||i.off(),r==null||r.off()}},[]);const T=w(async i=>{var P,D,S,U,k;if(!(o!=null&&o.sku))return;const{persistURLParams:r,anchors:a,acdl:F}=z.getConfig();let s=Object.keys(i).map(t=>i[t].value).filter(t=>t!==void 0);if(r&&((P=o==null?void 0:o.options)!=null&&P.some(c=>(c==null?void 0:c.typename)==="ProductViewOptionValueProduct")||A({optionsUIDs:s.join(",")})),((S=(D=C())==null?void 0:D.optionsUIDs)==null?void 0:S.join("|"))!==(s==null?void 0:s.join("|"))){y(e=>({...e,optionsUIDs:s})),f==null||f(s);const t=await G(o.sku,{optionsUIDs:s});d.emit("pdp/data",t);let c=(s==null?void 0:s.length)===((U=t==null?void 0:t.options)==null?void 0:U.length);if(a!=null&&a.length){const e=(t==null?void 0:t.optionUIDs)??[];s.every(m=>e.includes(m))||(M(t==null?void 0:t.options),y(m=>({...m,optionsUIDs:e})),c=(e==null?void 0:e.length)===((k=t==null?void 0:t.options)==null?void 0:k.length))}g(()=>c),F&&t&&(t==null?void 0:t.variantSku)!==o.sku&&H(t)}},[o==null?void 0:o.options,o==null?void 0:o.sku,f]),V=w(i=>{Object.keys(i).length!==0&&(g(()=>!1),u==null||u(i))},[u]);return!o||!o.options?null:j(R,{name:"Swatches",slot:l==null?void 0:l.Swatches,context:{data:o,optionsUIDs:n},children:j(q,{...v,options:o.options,selectedUIDs:n,defaultOptions:n,selectionsToUpdate:B,hideSelectedValue:I,onValues:T,onErrors:V})})};K.getInitialData=async function(){var p;return{data:await J(),optionsUIDs:((p=C())==null?void 0:p.optionsUIDs)??[]}};export{K as ProductOptions,K as default};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
2
|
-
import { Container } from '@dropins/tools/types/elsie/src/lib';
|
|
3
|
-
import { ProductModel } from '../../data/models';
|
|
4
|
-
|
|
5
|
-
export interface ProductPriceProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
}
|
|
7
|
-
export declare const ProductPrice: Container<ProductPriceProps, ProductModel | null>;
|
|
8
|
-
//# sourceMappingURL=ProductPrice.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsxs as D,jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{useState as d,useEffect as L}from"@dropins/tools/preact-compat.js";import{classes as s,VComponent as f,toLanguageTag as g}from"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import{P}from"../chunks/PriceRange.js";import"@dropins/tools/preact.js";import{useText as b}from"@dropins/tools/i18n.js";import{events as _}from"@dropins/tools/event-bus.js";import{g as h}from"../chunks/getFetchedProductData.js";import{c as v}from"../chunks/fetchPDPData.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/getProductConfigurationValues.js";const S=({className:t,price:i,specialPrice:a,children:n,...e})=>{const c=b("PDP.Product.RegularPrice.label").label,o=b("PDP.Product.SpecialPrice.label").label;return D("div",{...e,className:s(["pdp-price",t]),children:[a&&r(f,{node:a,className:s(["pdp-price__amount-special","pdp-price__amount"]),"aria-label":o,role:"text"}),i&&r(f,{node:i,className:s(["pdp-price__amount-regular","pdp-price__amount--grey"]),"aria-label":c,role:"text"})]})},N=({initialData:t=null,children:i,...a})=>{var m,u;const{defaultLocale:n="en-US"}=v.getConfig(),[e,c]=d(t),[o,x]=d(n);return L(()=>{const l=_.on("pdp/data",c),p=_.on("locale",x);return()=>{l==null||l.off(),p==null||p.off()}},[]),e?r(S,{...a,specialPrice:(m=e.prices)!=null&&m.visible?r(P,{...e.prices.final,locale:g(o)}):void 0,price:(u=e.prices)!=null&&u.visible&&e.prices.regular&&e.prices.final.amount!==e.prices.regular.amount?r(P,{...e.prices.regular,locale:g(o)}):void 0}):null};N.getInitialData=h;export{N as ProductPrice,N as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
2
|
-
import { Container } from '@dropins/tools/types/elsie/src/lib';
|
|
3
|
-
import { ProductModel } from '../../data/models';
|
|
4
|
-
|
|
5
|
-
export interface ProductQuantityProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
onValue?: (quantity: number) => void;
|
|
7
|
-
}
|
|
8
|
-
export declare const ProductQuantity: Container<ProductQuantityProps, ProductModel | null>;
|
|
9
|
-
//# sourceMappingURL=ProductQuantity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as d}from"@dropins/tools/preact-jsx-runtime.js";import{useState as s,useEffect as g}from"@dropins/tools/preact-compat.js";import{classes as P}from"@dropins/tools/lib.js";import{Incrementer as y}from"@dropins/tools/components.js";import{events as u}from"@dropins/tools/event-bus.js";import{s as I}from"../chunks/getProductConfigurationValues.js";import{g as b}from"../chunks/getFetchedProductData.js";import{useText as q}from"@dropins/tools/i18n.js";const D=({initialData:i=null,onValue:r,children:h,...n})=>{const m=q("PDP.Product.Incrementer.label").label,[c,l]=s(i),[o,f]=s(1);g(()=>{const e=u.on("pdp/data",l),t=u.on("pdp/values",({quantity:a})=>{f(a)},{eager:!0});return()=>{e==null||e.off(),t==null||t.off()}},[]);const p=e=>{const t=parseInt(e,10);I(a=>({...a,quantity:t})),r==null||r(t)};return c?d(y,{name:"quantity",defaultValue:o.toString(),value:o.toString(),min:1,"aria-label":m,onValue:p,...n,className:P(["pdp-quantity",n.className])},"quantity"):null};D.getInitialData=b;export{D as ProductQuantity,D as default};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'preact/compat';
|
|
2
|
-
import { Container } from '@dropins/tools/types/elsie/src/lib';
|
|
3
|
-
import { ProductModel } from '../../data/models';
|
|
4
|
-
|
|
5
|
-
export interface ProductShortDescriptionProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
}
|
|
7
|
-
export declare const ProductShortDescription: Container<ProductShortDescriptionProps, ProductModel | null>;
|
|
8
|
-
//# sourceMappingURL=ProductShortDescription.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{useState as i,useEffect as a}from"@dropins/tools/preact-compat.js";import{classes as c}from"@dropins/tools/lib.js";import{events as m}from"@dropins/tools/event-bus.js";import{g as l}from"../chunks/getFetchedProductData.js";const f=({initialData:o=null,children:p,...e})=>{const[t,s]=i(o);return a(()=>{const r=m.on("pdp/data",s);return()=>{r==null||r.off()}},[]),t?n("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.shortDescription)??""},...e,className:c(["pdp-short-description",e.className])}):null};f.getInitialData=l;export{f as ProductShortDescription,f as default};
|