@dropins/storefront-pdp 0.3.0 → 0.4.0-alpha10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/__mocks__/product-mocks.d.ts +157 -0
  2. package/api/fetch-graphql/fetch-graphql.d.ts +15 -0
  3. package/api/fetch-graphql/index.d.ts +15 -0
  4. package/api/getProductData/graphql/getProductData.graphql.d.ts +15 -0
  5. package/api/getProductData/index.d.ts +15 -0
  6. package/api/getRefinedProduct/getRefinedProduct.d.ts +1 -1
  7. package/api/getRefinedProduct/graphql/RefineProductQuery.graphql.d.ts +15 -0
  8. package/api/getRefinedProduct/index.d.ts +15 -0
  9. package/api/graphql/ProductFragment.graphql.d.ts +15 -0
  10. package/api/graphql/ProductOptionFragment.graphql.d.ts +16 -1
  11. package/api/index.d.ts +15 -0
  12. package/api/initialize/index.d.ts +15 -0
  13. package/chunks/getRefinedProduct.js +12 -11
  14. package/components/Carousel/index.d.ts +15 -0
  15. package/components/GalleryGrid/index.d.ts +15 -0
  16. package/components/Overlay/index.d.ts +15 -0
  17. package/components/PriceRange/index.d.ts +15 -0
  18. package/components/Product/Product.d.ts +2 -0
  19. package/components/Product/index.d.ts +15 -0
  20. package/components/Swatches/Swatches.d.ts +2 -8
  21. package/components/Swatches/index.d.ts +15 -0
  22. package/components/Zoom/Zoom.d.ts +9 -0
  23. package/components/Zoom/index.d.ts +18 -0
  24. package/components/index.d.ts +16 -0
  25. package/containers/ProductDetails/ProductDetails.d.ts +3 -1
  26. package/containers/ProductDetails/index.d.ts +15 -0
  27. package/containers/ProductDetails.js +1 -1
  28. package/containers/index.d.ts +15 -0
  29. package/data/models/acdl-models.d.ts +15 -0
  30. package/data/models/index.d.ts +15 -0
  31. package/data/models/product-model.d.ts +18 -2
  32. package/data/transforms/index.d.ts +15 -0
  33. package/data/transforms/product-transform.d.ts +1 -1
  34. package/i18n/en_US.json.d.ts +6 -1
  35. package/lib/date.d.ts +15 -0
  36. package/lib/url-params.d.ts +15 -0
  37. package/package.json +1 -1
  38. package/render/index.d.ts +15 -0
  39. package/render.js +2 -2
@@ -0,0 +1,157 @@
1
+ export declare const MOCK_DATA_BUNDLE: {
2
+ __typename: string;
3
+ id: string;
4
+ sku: string;
5
+ name: string;
6
+ shortDescription: string;
7
+ metaDescription: string;
8
+ metaKeyword: string;
9
+ metaTitle: string;
10
+ description: string;
11
+ inStock: boolean;
12
+ addToCartAllowed: boolean;
13
+ url: string;
14
+ urlKey: string;
15
+ externalId: string;
16
+ images: {
17
+ url: string;
18
+ label: string;
19
+ roles: string[];
20
+ }[];
21
+ options: {
22
+ id: string;
23
+ title: string;
24
+ required: boolean;
25
+ multi: null;
26
+ values: {
27
+ id: string;
28
+ title: string;
29
+ inStock: boolean;
30
+ __typename: string;
31
+ quantity: number;
32
+ isDefault: boolean;
33
+ product: {
34
+ sku: string;
35
+ shortDescription: string;
36
+ metaDescription: string;
37
+ metaKeyword: string;
38
+ metaTitle: string;
39
+ name: string;
40
+ price: {
41
+ final: {
42
+ amount: {
43
+ value: number;
44
+ currency: string;
45
+ };
46
+ };
47
+ regular: {
48
+ amount: {
49
+ value: number;
50
+ currency: string;
51
+ };
52
+ };
53
+ roles: string[];
54
+ };
55
+ };
56
+ }[];
57
+ }[];
58
+ priceRange: {
59
+ maximum: {
60
+ final: {
61
+ amount: {
62
+ value: number;
63
+ currency: string;
64
+ };
65
+ };
66
+ regular: {
67
+ amount: {
68
+ value: number;
69
+ currency: string;
70
+ };
71
+ };
72
+ roles: string[];
73
+ };
74
+ minimum: {
75
+ final: {
76
+ amount: {
77
+ value: number;
78
+ currency: string;
79
+ };
80
+ };
81
+ regular: {
82
+ amount: {
83
+ value: number;
84
+ currency: string;
85
+ };
86
+ };
87
+ roles: string[];
88
+ };
89
+ };
90
+ };
91
+ export declare const MOCK_DATA_BUNDLE_TRANSFORMED: {
92
+ name: string;
93
+ sku: string;
94
+ addToCartAllowed: boolean;
95
+ inStock: boolean;
96
+ shortDescription: string;
97
+ metaDescription: string;
98
+ metaKeyword: string;
99
+ metaTitle: string;
100
+ description: string;
101
+ images: {
102
+ url: string;
103
+ label: string;
104
+ width: number;
105
+ height: number;
106
+ }[];
107
+ prices: {
108
+ final: {
109
+ amount: number;
110
+ currency: string;
111
+ };
112
+ regular: {
113
+ amount: number;
114
+ currency: string;
115
+ };
116
+ visible: boolean;
117
+ };
118
+ options: {
119
+ id: string;
120
+ type: "text" | "image" | "color" | "dropdown";
121
+ typename: "ProductViewOptionValueProduct" | "ProductViewOptionValueSwatch" | "ProductViewOptionValueConfiguration";
122
+ label: string;
123
+ required: boolean;
124
+ multiple: boolean;
125
+ items: {
126
+ id: string;
127
+ inStock: boolean;
128
+ label: string;
129
+ selected: boolean;
130
+ value: string;
131
+ product: {
132
+ sku: string;
133
+ shortDescription: string;
134
+ metaDescription: string;
135
+ metaKeyword: string;
136
+ metaTitle: string;
137
+ name: string;
138
+ price: {
139
+ final: {
140
+ amount: {
141
+ value: number;
142
+ currency: string;
143
+ };
144
+ };
145
+ regular: {
146
+ amount: {
147
+ value: number;
148
+ currency: string;
149
+ };
150
+ };
151
+ roles: string[];
152
+ };
153
+ };
154
+ }[];
155
+ }[];
156
+ };
157
+ //# sourceMappingURL=product-mocks.d.ts.map
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export declare const setEndpoint: (endpoint: string) => void, setFetchGraphQlHeader: (key: string, value: string | null) => void, removeFetchGraphQlHeader: (key: string) => void, setFetchGraphQlHeaders: (header: import('@adobe/fetch-graphql').Header) => void, fetchGraphQl: <T = any>(query: string, options?: import('@adobe/fetch-graphql').FetchOptions | undefined) => Promise<{
2
17
  errors?: import('@adobe/fetch-graphql').FetchQueryError | undefined;
3
18
  data: T;
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './fetch-graphql';
2
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export declare const GET_PRODUCT_DATA: string;
2
17
  //# sourceMappingURL=getProductData.graphql.d.ts.map
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './getProductData';
2
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import { ProductModel } from '../../data/models';
2
2
 
3
- export declare const getRefinedProduct: (sku: string, optionUIDs: string[], anchorOptions?: string[]) => Promise<ProductModel | null>;
3
+ export declare const getRefinedProduct: (sku: string, optionUIDs: string[], anchorOptions?: string[], isBundle?: boolean) => Promise<ProductModel | null>;
4
4
  //# sourceMappingURL=getRefinedProduct.d.ts.map
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export declare const REFINE_PRODUCT_QUERY: string;
2
17
  //# sourceMappingURL=RefineProductQuery.graphql.d.ts.map
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './getRefinedProduct';
2
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export declare const ProductFragment: string;
2
17
  //# sourceMappingURL=ProductFragment.graphql.d.ts.map
@@ -1,2 +1,17 @@
1
- export declare const ProductOptionFragment = "\nfragment ProductOptionFragment on ProductViewOption {\n id\n title\n required\n multi\n values {\n id\n title\n inStock\n __typename\n ... on ProductViewOptionValueProduct {\n title\n quantity\n isDefault\n product {\n sku\n shortDescription\n metaDescription\n metaKeyword\n metaTitle\n name\n price {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n }\n }\n ... on ProductViewOptionValueSwatch {\n id\n title\n type\n value\n inStock\n }\n }\n }\n";
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
16
+ export declare const ProductOptionFragment = "\nfragment ProductOptionFragment on ProductViewOption {\n id\n title\n required\n multi\n values {\n id\n title\n inStock\n __typename\n ... on ProductViewOptionValueProduct {\n title\n quantity\n isDefault\n __typename\n product {\n sku\n shortDescription\n metaDescription\n metaKeyword\n metaTitle\n name\n price {\n final {\n amount {\n value\n currency\n }\n }\n regular {\n amount {\n value\n currency\n }\n }\n roles\n }\n }\n }\n ... on ProductViewOptionValueSwatch {\n id\n title\n type\n value\n inStock\n }\n }\n }\n";
2
17
  //# sourceMappingURL=ProductOptionFragment.graphql.d.ts.map
package/api/index.d.ts CHANGED
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './initialize';
2
17
  export * from './fetch-graphql';
3
18
  export * from './getProductData';
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './initialize';
2
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import{c as h}from"./initialize.js";import{FetchGraphQL as Q}from"@dropins/tools/fetch-graphql.js";const{setEndpoint:W,setFetchGraphQlHeader:Z,removeFetchGraphQlHeader:R,setFetchGraphQlHeaders:tt,fetchGraphQl:A,getConfig:et}=new Q().getMethods();function D(e){var o,u,n;const r=e?{name:e.name,sku:e.sku,addToCartAllowed:e.addToCartAllowed,inStock:e.inStock,shortDescription:e.shortDescription,metaDescription:e.metaDescription,metaKeyword:e.metaKeyword,metaTitle:e.metaTitle,description:e.description,images:K(e),prices:j(e),attributes:M(e),options:N(e),optionUIDs:e.optionUIDs,url:e.url,urlKey:e.urlKey,externalId:e.externalId,externalParentId:e.externalParentId,variantSku:e.variantSku}:null,t=(n=(u=(o=h.getConfig())==null?void 0:o.models)==null?void 0:u.ProductDetails)==null?void 0:n.transform;return t&&r?t(r):r}function K(e){var r;return(r=e.images)==null?void 0:r.map(t=>(t.url=t.url.replace(/^https?:/,""),t))}function M(e){var r,t;return(t=(r=e.attributes)==null?void 0:r.filter(({roles:o})=>(o==null?void 0:o.indexOf("visible_in_pdp"))!==-1))==null?void 0:t.map(({label:o,value:u,name:n})=>({id:n,label:o,value:u.toString().split(",").join(", ")}))}function N(e){const{options:r,optionUIDs:t}=e;return r==null?void 0:r.map(({id:o,title:u,required:n,multi:c,values:i})=>{var d,f;const l=(d=i==null?void 0:i[0])==null?void 0:d.__typename;let a=i==null?void 0:i[0].type;return((f=i==null?void 0:i[0])==null?void 0:f.__typename)==="ProductViewOptionValueProduct"?a=void 0:a?a=a.replace("COLOR_HEX","color").replace("TEXT","text").replace("IMAGE","image"):a="dropdown",{id:o,type:a,typename:l,label:u,required:n,multiple:c,items:i==null?void 0:i.map(({id:m,title:g,inStock:p,value:P})=>({id:m,label:g,inStock:p,value:(a==null?void 0:a.toLowerCase())==="dropdown"?m:P==null?void 0:P.replace(/^https?:/,""),selected:(t==null?void 0:t.indexOf(m))>-1}))}})}function j(e){var d,f,m,g,p;const{price:r,priceRange:t,__typename:o}=e;function u(){var k;const P=r.regular.amount.value,y=((k=r.final)==null?void 0:k.amount.value)??r.regular.amount.value,w=r.regular.amount.currency==="NONE"?"USD":r==null?void 0:r.regular.amount.currency;return[P,y,y,w]}function n(){var x,_,b,S,E,T,C,O,v,F,V,$;const P=(x=t==null?void 0:t.minimum)==null?void 0:x.final.amount.value,y=(_=t==null?void 0:t.maximum)==null?void 0:_.final.amount.value;let w;((S=(b=t==null?void 0:t.minimum)==null?void 0:b.regular)==null?void 0:S.amount.value)===((T=(E=t==null?void 0:t.maximum)==null?void 0:E.regular)==null?void 0:T.amount.value)&&(w=(O=(C=t==null?void 0:t.minimum)==null?void 0:C.regular)==null?void 0:O.amount.value);const k=((F=(v=t==null?void 0:t.minimum)==null?void 0:v.final)==null?void 0:F.amount.currency)==="NONE"?"USD":($=(V=t==null?void 0:t.minimum)==null?void 0:V.final)==null?void 0:$.amount.currency;return[w,P,y,k]}const[c,i,l,a]=o==="SimpleProductView"?u():n(),s=o==="SimpleProductView"?(d=r==null?void 0:r.roles)==null?void 0:d.includes("visible"):((m=(f=t==null?void 0:t.maximum)==null?void 0:f.roles)==null?void 0:m.includes("visible"))&&((p=(g=t==null?void 0:t.minimum)==null?void 0:g.roles)==null?void 0:p.includes("visible"));return l&&i===l?{regular:{amount:c,currency:a,variant:c&&i!==c?"strikethrough":"default"},final:{amount:l,currency:a,variant:"default"},visible:s}:{final:{minimumAmount:i,maximumAmount:l,currency:a},visible:s}}const U=`
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;return(r=e.images)==null?void 0:r.map(n=>(n.url=n.url.replace(/^https?:/,""),n))}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
2
  fragment ProductOptionFragment on ProductViewOption {
3
3
  id
4
4
  title
@@ -13,6 +13,7 @@ fragment ProductOptionFragment on ProductViewOption {
13
13
  title
14
14
  quantity
15
15
  isDefault
16
+ __typename
16
17
  product {
17
18
  sku
18
19
  shortDescription
@@ -46,7 +47,7 @@ fragment ProductOptionFragment on ProductViewOption {
46
47
  }
47
48
  }
48
49
  }
49
- `,G=`
50
+ `,R=`
50
51
  fragment ProductFragment on ProductView {
51
52
  __typename
52
53
  id
@@ -137,16 +138,16 @@ fragment ProductFragment on ProductView {
137
138
  }
138
139
  }
139
140
 
140
- ${U}
141
- `,q=`
141
+ ${lt}
142
+ `,tt=`
142
143
  query GET_PRODUCT_DATA($skus: [String]) {
143
144
  products(skus: $skus) {
144
145
  ...ProductFragment
145
146
  }
146
147
  }
147
148
 
148
- ${G}
149
- `,rt=async e=>{var u,n,c,i,l;const r=(i=(c=(n=(u=h)==null?void 0:u.getConfig())==null?void 0:n.models)==null?void 0:c.ProductDetails)==null?void 0:i.initialData;if(r)return D(r);const{data:t}=await A(q,{method:"GET",variables:{skus:[e]}}),o=(l=t==null?void 0:t.products)==null?void 0:l[0];return D(o)},H=`
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=`
150
151
  query REFINE_PRODUCT_QUERY(
151
152
  $optionIds: [String!]!
152
153
  $sku: String!
@@ -167,11 +168,11 @@ query REFINE_PRODUCT_QUERY(
167
168
  # %extendedPlaceholder%
168
169
  }
169
170
 
170
- ${G}
171
- `;async function I(e,r){const t=L(r),o=B(t,e),u=H.replace("# %extendedPlaceholder%",o),{data:n}=await A(u,{method:"GET",variables:{optionIds:r,sku:e}});return n}const nt=async(e,r,t)=>{var d,f,m,g;const o=await I(e,r);if(!o)return null;let{products:u,refineProduct:n,...c}=o;const i=u==null?void 0:u[0],l=X(Object.values(c),i.options,t);if(t!=null&&t.length&&n===null){r=Y(l,r,t);const p=await I(e,r);n=p==null?void 0:p.refineProduct}const a=D({...n||i,sku:i.sku,name:i.name,externalParentId:i==null?void 0:i.externalId,options:l,optionUIDs:r,variantSku:(n==null?void 0:n.__typename)==="SimpleProductView"?n==null?void 0:n.sku:void 0}),s=(g=(m=(f=(d=h)==null?void 0:d.getConfig())==null?void 0:f.models)==null?void 0:m.ProductDetails)==null?void 0:g.fallbackData;return s?s(i,a):a};function L(e){if(e.length<2)return[e];const r=[];return e.forEach(t=>{const o=[];e.forEach(u=>{t!==u&&o.push(u)}),r.push(o)}),r}function B(e,r){return e.map((t,o)=>`
172
- ProductOption${o}: refineProduct(
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(
173
174
  optionIds: [
174
- ${t.map(u=>`"${u}"`).join(", ")}
175
+ ${n.map(i=>`"${i}"`).join(", ")}
175
176
  ]
176
177
  sku: "${r}"
177
178
  ) {
@@ -181,4 +182,4 @@ ${G}
181
182
  }
182
183
  }
183
184
  }
184
- `).join("")}function X(e,r,t){const o=Object.values(e).filter(n=>!!n).reduce((n,c)=>c.options?[...n,...c.options]:[...n],[]),u=new Map(r.map(n=>[n.id,n]));return o.forEach(n=>{t!=null&&t.includes(n.id)||u.set(n.id,n)}),[...u.values()]}function Y(e,r,t){const o=[];let u;return e.forEach(n=>{var c,i,l,a;t.includes(n.id)?u=((i=(c=n.values)==null?void 0:c.find(s=>r.includes(s==null?void 0:s.id)))==null?void 0:i.id)||((l=n.values[0])==null?void 0:l.id):u=(a=n.values[0])==null?void 0:a.id,o.push(u)}),o}export{Z as a,tt as b,rt as c,nt as d,A as f,et as g,R as r,W as s};
185
+ `).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};
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './Carousel';
2
17
  export { Carousel as default } from './Carousel';
3
18
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './GalleryGrid';
2
17
  export { GalleryGrid as default } from './GalleryGrid';
3
18
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './Overlay';
2
17
  export { Overlay as default } from './Overlay';
3
18
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './PriceRange';
2
17
  export { PriceRange as default } from './PriceRange';
3
18
  //# sourceMappingURL=index.d.ts.map
@@ -23,6 +23,8 @@ export interface ProductProps extends Omit<HTMLAttributes<HTMLDivElement>, 'titl
23
23
  actions?: VNode;
24
24
  quantity?: VNode;
25
25
  carouselConfig?: ProductCarouselConfig;
26
+ zoomType?: 'zoom' | 'overlay';
27
+ closeButton?: boolean;
26
28
  }
27
29
  export declare const Product: FunctionComponent<ProductProps>;
28
30
  export {};
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './Product';
2
17
  export { Product as default } from './Product';
3
18
  //# sourceMappingURL=index.d.ts.map
@@ -24,14 +24,7 @@ type Selection = {
24
24
  };
25
25
  };
26
26
  export interface SwatchesProps extends HTMLAttributes<HTMLDivElement> {
27
- options: Array<{
28
- id: string;
29
- type: (typeof supportedTypes)[number];
30
- label: string;
31
- required?: boolean;
32
- multiple?: boolean;
33
- items: OptionValue[];
34
- }>;
27
+ options: Array<Option>;
35
28
  hideSelectedValue?: boolean;
36
29
  defaultOptions?: string[];
37
30
  selectionsToUpdate?: Option[];
@@ -39,6 +32,7 @@ export interface SwatchesProps extends HTMLAttributes<HTMLDivElement> {
39
32
  onErrors?: (errors: {
40
33
  [id: string]: string;
41
34
  }) => void;
35
+ selectedUIDs?: string[];
42
36
  }
43
37
  export declare const Swatches: FunctionComponent<SwatchesProps>;
44
38
  export {};
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './Swatches';
2
17
  export { Swatches as default } from './Swatches';
3
18
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { FunctionComponent, VNode } from 'preact';
2
+
3
+ export interface ZoomProps {
4
+ children: VNode[] | VNode;
5
+ scale?: number;
6
+ closeButton?: boolean;
7
+ }
8
+ export declare const Zoom: FunctionComponent<ZoomProps>;
9
+ //# sourceMappingURL=Zoom.d.ts.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2024 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
16
+ export * from './Zoom';
17
+ export { Zoom as default } from './Zoom';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -1,7 +1,23 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './Carousel';
2
17
  export * from './Product';
3
18
  export * from './GalleryGrid';
4
19
  export * from './PriceRange';
5
20
  export * from './Overlay';
6
21
  export * from './Swatches';
22
+ export * from './Zoom';
7
23
  //# sourceMappingURL=index.d.ts.map
@@ -4,7 +4,7 @@ import { ButtonProps } from '@dropins/tools/types/elsie/src/components';
4
4
  import { ProductModel } from '../../data/models';
5
5
 
6
6
  type IconType = keyof typeof import('@dropins/tools/types/elsie/src/icons');
7
- type Values = {
7
+ export type Values = {
8
8
  sku: string;
9
9
  quantity: number;
10
10
  optionsUIDs?: string[];
@@ -74,6 +74,8 @@ export interface ProductDetailsProps extends HTMLAttributes<HTMLDivElement> {
74
74
  optionsConfig?: OptionsConfig;
75
75
  useACDL?: boolean;
76
76
  onAddToCart?: (values: Values) => void;
77
+ zoomType?: 'zoom' | 'overlay';
78
+ closeButton?: boolean;
77
79
  }
78
80
  export declare const ProductDetails: Container<ProductDetailsProps, ProductModel | null>;
79
81
  export {};
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './ProductDetails';
2
17
  export { ProductDetails as default } from './ProductDetails';
3
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- import*as pe from"@dropins/tools/preact-compat.js";import{useState as X,Children as ae,useRef as ye,useMemo as we,useEffect as ne,useCallback as Z}from"@dropins/tools/preact-compat.js";import{debounce as Le,classes as g,VComponent as H,toLanguageTag as Ne,Slot as j}from"@dropins/tools/lib.js";import{Button as Pe,Icon as ve,Price as Se,Picker as Ue,ColorSwatch as He,ImageSwatch as Ve,TextSwatch as qe,Incrementer as je,Breadcrumbs as Ge,Image as De}from"@dropins/tools/components.js";import{jsxs as U,jsx as n,Fragment as fe}from"@dropins/tools/preact-jsx-runtime.js";import{useText as V}from"@dropins/tools/i18n.js";import{c as xe,d as $e}from"../chunks/getRefinedProduct.js";import{events as ze}from"@dropins/tools/event-bus.js";import{c as Oe}from"../chunks/initialize.js";import"@dropins/tools/fetch-graphql.js";const Fe=e=>pe.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},pe.createElement("path",{d:"M7.74512 9.87701L12.0001 14.132L16.2551 9.87701",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),Ke=e=>pe.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},pe.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 5.64001L5.62988 18.37",stroke:"currentColor"}),pe.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 18.37L5.62988 5.64001",stroke:"currentColor"})),Qe=24,ke=16,me=2,Xe="32";var Be=(e=>(e[e.small=16]="small",e[e.medium=24]="medium",e[e.large=64]="large",e))(Be||{});const be=({show:e=1,scrollbar:o=!1,peak:u=!1,arrows:m=!1,controls:h="dots",arrowsOnMainImage:y=!1,loop:p=!1,gap:f=null,direction:l="horizontal",width:K="100%",height:a="100%",defaultIndex:b=0,className:B,children:q,thumbnails:J=null,isZoomed:N,...A})=>{const _=V("PDP.Carousel.label").label,r=V("PDP.Carousel.Slide.label").label,D=V("PDP.Carousel.Previous.label").label,M=V("PDP.Carousel.Next.label").label,S=V("PDP.Carousel.Controls.label").label,Y=V("PDP.Carousel.Controls.Button.label").label,[t,le]=X(()=>ge(e)),x=Math.ceil(ae.count(q)/t),$=u?Qe:0,C=f?Be[f]:0,F=ae.count(q)%t,[v,oe]=X(p?b+1:b),re=ye([]),[ce,se]=X(0),[ee,he]=X(0),de=we(()=>ae.toArray(J),[J]),I=we(()=>{const c=ae.toArray(q).reduce((i,L,k)=>k%t===0?[...i,[L]]:[...i.slice(0,-1),[...i[i.length-1],L]],[]);return!p||c.length===1?c:p&&ae.count(q)%t===0?[c[x-1]].concat(c).concat([c[0],c[1]]):[ae.toArray(q).slice(-t)].concat(c).concat([c[0],c[1]])},[q,t,x,p]),T=ye(null),Q=ye(null),O=h==="thumbnailsRow"||h==="thumbnailsColumn";ne(()=>{const c=document.body,i=Le(()=>{var R,te;se(((R=T.current)==null?void 0:R.offsetWidth)??0),he(((te=T.current)==null?void 0:te.offsetHeight)??0);const k=window.innerWidth,W=ge(e,k);W!==t&&le(W)},50),L=new ResizeObserver(i);return L.observe(c),()=>{L.unobserve(c)}},[t,e]);const d=Z(c=>{const i=p?c-1:c,L=re==null?void 0:re.current[0],k=(L==null?void 0:L.offsetWidth)+ke,W=(L==null?void 0:L.offsetHeight)+ke,R=Q.current,te=h==="thumbnailsRow",Ae=h==="thumbnailsColumn",ie=te?R==null?void 0:R.offsetWidth:R==null?void 0:R.offsetHeight,z=te?k:W;(te||Ae)&&ie&&(z*(i+1)>ie&&(R.style.scrollBehavior="smooth",te?R.scrollLeft=(i+me)*z:R.scrollTop=(i+me)*z),(te?R.scrollLeft:R.scrollTop)>z*i&&(R.style.scrollBehavior="smooth",te?R.scrollLeft=(i-me)*z:R.scrollTop=(i-me)*z))},[h,p]);ne(()=>{d(v)},[v,d]);const s=Z((c,i,L)=>{O&&d(c);const k=T.current,W=$?k.offsetWidth-$:k.offsetWidth-$+C;if(!Array.from(k.querySelectorAll("[data-index]")).filter(ie=>{const z=Number(ie.getAttribute("data-index"));return!isNaN(z)&&z>-1})[c])return;if(L){const ie=c===0?x:0,z=W*(x+(F||t)/t);if(k.scrollLeft>=0&&k.scrollLeft<W-5){s(1,!0);return}if(k.scrollLeft>z-W&&k.scrollLeft<=z){s(x,!0);return}k.style.scrollBehavior="auto",k.scrollLeft=ie===0?0:z,s(ie===0?1:x,!0);return}const Ae=(k.offsetWidth-C)/t*I[c].length-$;k.style.scrollBehavior=i?"smooth":"auto",k.scrollLeft=I[c].length===t?W*c:W*(c-1)+Ae},[C,x,$,t,F,I,d,h]),P=Z(()=>{if(p){const i=v-1;s(i,!0,v===1);return}const c=v<=0?0:v-1;s(c,!0)},[v,s,p]),w=Z(()=>{const c=I.length-1;if(p){const L=v+1;s(L,!0,v===x);return}const i=v>=c?c:v+1;s(i,!0)},[I.length,p,v,s,x]);ne(()=>{const c=i=>{i.key==="ArrowLeft"&&(i.preventDefault(),P()),i.key==="ArrowRight"&&(i.preventDefault(),w())};return window.addEventListener("keydown",c),()=>{window.removeEventListener("keydown",c)}},[w,P]),ne(()=>{s(p?b+1:b,!1)},[b,s,p]);const E=Le(()=>{const c=T.current,i=$?c.offsetWidth-$:c.offsetWidth-$+C,L=c.scrollLeft/i,k=Math.round(L)-L<1?Math.round(L):Math.ceil(L);if(O&&d(k),p){const W=i*(x+(F||t)/t);if(Math.ceil(c.scrollLeft)>=Math.ceil(W)-5){c.style.scrollBehavior="auto",c.scrollLeft=c.offsetWidth*1+(Math.ceil(c.scrollLeft)-Math.ceil(W)-$);return}if(c.scrollLeft===0){c.style.scrollBehavior="auto",c.scrollLeft=W-c.offsetWidth+$;return}}v!==k&&oe(k)},100);ne(()=>{const c=T.current;return c==null||c.addEventListener("scroll",E),()=>{c==null||c.removeEventListener("scroll",E)}},[E]);const G=(c,i,L)=>n(Pe,{className:g([["pdp-carousel__button",!c],[`pdp-carousel__button--${i}`,!c],[`pdp-carousel__button--${h}`,c]]),style:{"--height":`${ee}px`},variant:"tertiary","aria-label":i==="next"?M:D,onClick:L,disabled:p?!1:i==="next"?v>=I.length-1:v<1,children:n(ve,{className:g([["pdp-carousel__button__icon",!c],[`pdp-carousel__button__icon--${i}`,!c],[`pdp-carousel__button__icon--${h}--${i}`,c]]),size:Xe,source:Fe})}),ue=m&&I.length!=1&&G(O,"prev",P),_e=m&&I.length!=1&&G(O,"next",w),Te=m&&I.length!=1&&G(!1,"prev",P),We=m&&I.length!=1&&G(!1,"next",w);return U("div",{role:"region","aria-roledescription":_,className:g(["pdp-carousel",["pdp-carousel--main-image-controls",y],["pdp-carousel--arrows",m&&!O],[`pdp-carousel--${h}`,O],B]),style:{"--flex-carousel":h==="thumbnailsColumn"?"row-reverse":"column","--gap":O?"0":"var(--spacing-small)","--width":K},...A,children:[n("div",{ref:T,className:g(["pdp-carousel__wrapper",`pdp-carousel__wrapper--${l}`,["pdp-carousel__wrapper--scrollbar",o],["pdp-carousel__wrapper--peak",u]]),style:{"--total-width":h==="thumbnailsColumn"?"81.6%":"100%","--height":h==="thumbnailsColumn"?"auto":a,"--gap":f?`var(--spacing-${f})`:"0px","--per-page":t},tabIndex:0,children:I.map((c,i)=>{const L=c.length<t;return n("div",{role:"group","aria-roledescription":r,"data-index":i,className:g(["pdp-carousel__slide",`pdp-carousel__slide--${l}`,["pdp-carousel__slide--active",v===i],["pdp-carousel__slide--orphan",L]]),style:{"--length":c.length},children:c},i)})}),!O&&U(fe,{children:[ue,_e]}),O&&y&&U(fe,{children:[Te,We]}),h&&I.length!=1&&U("div",{className:g([[`pdp-carousel__controls__container--${h}`,O],["pdp-carousel__controls__container--no-arrows",!m||y]]),style:{"--width":h==="thumbnailsRow"?`${ce}px`:K,"--height":`${ee}px`,"--nr-thumbnails":de.length},children:[(O||N)&&!y&&ue,n("div",{ref:Q,className:g([[`pdp-carousel__controls__wrapper--${h}`,O],["pdp-carousel__controls__wrapper",O]]),children:n("div",{role:"group","aria-label":S,className:g(["pdp-carousel__controls",[`pdp-carousel__controls--${h}`,O]]),children:(p?I.slice(0,x):I).map((c,i)=>{const L=p?x:I.length,k=p?v-1===i:v===i;return O?U("label",{className:g(["pdp-carousel__thumbnail__container"]),ref:W=>{W&&(re.current[i]=W)},children:[n("input",{type:"radio",name:"carousel-thumbnails","aria-label":Y.replace("{key}",String(i+1)).replace("{total}",String(L)),checked:k&&ce!==0,onChange:()=>{s(p?i+1:i,!0)},...A,className:g(["pdp-carousel__thumbnail",["pdp-carousel__thumbnail--selected",k&&ce!==0]])}),n("span",{className:g(["pdp-carousel__thumbnail__span"]),children:de[i]})]},i):n("button",{"aria-label":Y.replace("{key}",String(i+1)).replace("{total}",String(L)),onClick:()=>{s(p?i+1:i,!0)},className:g(["pdp-carousel__controls__button",["pdp-carousel__controls__button--active",k]])},i)})})}),(O||N)&&!y&&_e]})]})};function ge(e,o=0){if(typeof e=="number")return e;const{small:u,medium:m,large:h}=e,p=[{breakpoint:1024,value:h},{breakpoint:786,value:m},{breakpoint:0,value:u}].find(({breakpoint:f})=>o>f);return p?p.value:u}const Ze=({title:e,breadcrumbs:o,galleryContent:u,infoContent:m,productContent:h,sku:y,outOfStock:p,shortDescription:f,description:l,attributes:K,images:a,options:b,price:B,specialPrice:q,className:J,children:N,quantity:A,actions:_,carouselConfig:r,...D})=>{var F,v,oe,re,ce,se,ee,he,de;const M=V("PDP.Product.RegularPrice.label").label,S=V("PDP.Product.SpecialPrice.label").label,Y=V("PDP.Product.OutOfStock.label").label,t=V("PDP.Product.Image.label").label,[le,x]=X(null),$=a!=null&&a.length?a.map((I,T)=>{var Q;return n(H,{node:I,loading:T===0?"eager":"lazy",alt:((Q=e==null?void 0:e.props)==null?void 0:Q.children)&&(t==null?void 0:t.replace("{product}",e.props.children.toString()).replace("{key}",String(T+1)).replace("{total}",String(a.length))),onClick:()=>x(T)},T)}):n("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0}),C=(F=r==null?void 0:r.thumbnails)!=null&&F.length?r.thumbnails.map((I,T)=>{var Q;return n(H,{node:I,loading:(r==null?void 0:r.thumbnailsLoadingMode)||"lazy",alt:((Q=e==null?void 0:e.props)==null?void 0:Q.children)&&(t==null?void 0:t.replace("{product}",e.props.children.toString()).replace("{key}",String(T+1)).replace("{total}",String(a.length)))},T)}):n("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0});return U("div",{...D,className:g(["pdp-product",J]),children:[o&&n(H,{node:o,className:"pdp-product__breadcrumbs"}),U("div",{className:"pdp-product__column-container pdp-product__gallery-column",children:[n("div",{className:"pdp-product__column-body",children:(v=r==null?void 0:r.controls)!=null&&v.desktop?n(be,{className:"pdp-product__overlay__carousel",arrows:(a==null?void 0:a.length)>1,controls:(a==null?void 0:a.length)>1?r.controls.desktop:"dots",arrowsOnMainImage:r==null?void 0:r.arrowsOnMainImage,loop:(r==null?void 0:r.loopable)&&(a==null?void 0:a.length)>1,peak:((oe=r==null?void 0:r.thumbnails)==null?void 0:oe.length)>1&&((re=r==null?void 0:r.peak)==null?void 0:re.desktop)||!1,gap:(r==null?void 0:r.gap)||null,width:"100%",height:"100%",defaultIndex:le||0,thumbnails:C,children:$}):n(Je,{className:"pdp-product__images",gap:"small",children:$})}),u&&n(H,{node:u,className:"pdp-product__gallery-content"})]}),U("div",{className:"pdp-product__column-container pdp-product__content-column",children:[U("div",{className:"pdp-product__column-body",children:[U("div",{className:"pdp-product__header",children:[e&&n(H,{node:e,className:"pdp-product__title"}),y&&n(H,{node:y,className:"pdp-product__sku"})]}),U("div",{className:"pdp-product__prices",children:[q&&n(H,{node:q,className:g(["pdp-product__price-special","pdp-product__price"]),"aria-label":S,role:"text"}),B&&n(H,{node:B,className:g(["pdp-product__price-regular","pdp-product__price--grey"]),"aria-label":M,role:"text"})]}),(ce=r==null?void 0:r.controls)!=null&&ce.mobile&&((se=r==null?void 0:r.controls)==null?void 0:se.mobile)==="thumbnailsRow"?n(be,{className:"pdp-product__images pdp-product__images--carousel pdp-product__images--carousel--thumbnails",width:"100%",height:"auto",arrows:(a==null?void 0:a.length)>1,controls:(a==null?void 0:a.length)>1?"thumbnailsRow":null,loop:(r==null?void 0:r.loopable)&&(a==null?void 0:a.length)>1,peak:((ee=r==null?void 0:r.thumbnails)==null?void 0:ee.length)>1&&((he=r==null?void 0:r.peak)==null?void 0:he.mobile)||!1,gap:(r==null?void 0:r.gap)||null,thumbnails:C,children:$}):n(be,{className:"pdp-product__images pdp-product__images--carousel",peak:((de=r==null?void 0:r.peak)==null?void 0:de.mobile)&&(a==null?void 0:a.length)>1,gap:(r==null?void 0:r.gap)||null,width:"100%",height:"auto",arrows:(a==null?void 0:a.length)>1,controls:(a==null?void 0:a.length)>1?"dots":null,loop:(r==null?void 0:r.loopable)&&(a==null?void 0:a.length)>1,children:$}),U("div",{className:g(["pdp-product__actions",["pdp-product__actions--out-of-stock",p]]),children:[p&&n("div",{className:"pdp-product__out-of-stock__text",children:Y}),b&&n(H,{node:b,className:g(["pdp-product__options"])}),A&&n("div",{className:"pdp-product__quantity",children:n(H,{node:A})}),_&&n(H,{node:_,className:g(["pdp-product__buttons"])})]}),f&&n(H,{node:f,className:g(["pdp-product__short_description"])}),l&&n(H,{node:l,className:g(["pdp-product__description"])}),K?n("div",{className:"pdp-product__attributes",children:K}):null]}),m&&n(H,{node:m,className:"pdp-product__info-content"})]}),h&&n(H,{node:h,className:"pdp-product__content"}),le===null?null:n(Ye,{className:"pdp-product__overlay",onClose:()=>x(null),centered:!0,children:n(be,{className:"pdp-product__overlay__carousel",arrows:(a==null?void 0:a.length)>1,width:"100%",height:"100%",defaultIndex:le||0,loop:(r==null?void 0:r.loopable)&&(a==null?void 0:a.length)>1,controls:(a==null?void 0:a.length)>1?"dots":null,isZoomed:!0,children:$})})]})},Je=({children:e,gap:o=null,className:u,style:m,...h})=>{const y=ae.count(e);return n("div",{...h,className:g(["pdp-gallery-grid",u]),style:{"--gap":o?`var(--spacing-${o})`:"0px",...m},children:ae.map(e,(p,f)=>n("div",{className:"pdp-gallery-grid__item",children:n(H,{node:p,loading:f===0?"eager":"lazy"},p.props.src)},y+f))})},Ie=({amount:e,currency:o,locale:u,variant:m,sale:h,minimumAmount:y,maximumAmount:p,className:f,...l})=>n(fe,{children:e||y===p?n("div",{className:"pdp-price-range",...l,children:n(Se,{amount:e||y,currency:o,locale:u,variant:m,sale:h,className:f})}):U("div",{className:"pdp-price-range",...l,children:[n(Se,{amount:y,currency:o,locale:u,className:f}),n("span",{className:"pdp-price-range__label",children:"-"}),n(Se,{amount:p,currency:o,locale:u,className:f})]})}),Ye=({centered:e,onClose:o,className:u,children:m,...h})=>{const y=V("PDP.Overlay.Close.label").label,p=Z(()=>{o==null||o()},[o]);return ne(()=>{const f=l=>{l.key==="Escape"&&p()};return document.addEventListener("keydown",f),()=>{document.removeEventListener("keydown",f)}},[p]),ne(()=>{const f=document.scrollingElement,l=f.style.overflow;return f.style.overflow="hidden",()=>{f.style.overflow=l}},[]),U("div",{...h,className:g(["pdp-overlay",["pdp-overlay--centered",e],u]),children:[n("div",{className:"pdp-overlay__content",children:m}),n(Pe,{"aria-label":y,variant:"tertiary",className:"pdp-overlay__close-button",onClick:p,icon:n(Ke,{})})]})},Ce=["text","image","color","dropdown"],et=e=>e.map(o=>({...o,text:o.label,disabled:!o.inStock})),tt=({options:e,hideSelectedValue:o,onValues:u,onErrors:m,defaultOptions:h,selectionsToUpdate:y,className:p,children:f,...l})=>{const K=V("PDP.Swatches.Required.label").label,[a,b]=X(()=>e==null?void 0:e.reduce((A,_)=>{const{items:r}=_,D=r==null?void 0:r.find(S=>h==null?void 0:h.includes(S.id)),M=r==null?void 0:r.find(S=>S.selected);return D?{...A,[_.id]:{label:D.label,value:D.id}}:M?{...A,[_.id]:{label:M.label,value:M.id}}:A},{}));ne(()=>{y==null||y.forEach(N=>{b(A=>{var D;const _=(D=N==null?void 0:N.items)==null?void 0:D.find(M=>M.selected);return _?{...A,[N.id]:{label:_==null?void 0:_.label,value:_==null?void 0:_.id}}:A})})},[y,b]),we(()=>{const N=e==null?void 0:e.reduce((A,_)=>{var r;return(r=_==null?void 0:_.items)==null||r.forEach(D=>{var S;const M=((S=a[_.id])==null?void 0:S.value)===D.id;_.required&&!M&&(A[_.id]=K)}),A},{});return m==null||m(N),N},[a]);const B=Z((N,A,_)=>{b(r=>{const D={...r,[N]:{label:A,value:_}};return u==null||u(D,_),D})},[u]),q=(N,A)=>{var r;const _=((r=A.selectedOptions[0])==null?void 0:r.label)??"";B(N,_,A.value)},J=Z(({items:N,id:A,required:_,type:r,selected:D,label:M})=>n("div",{className:g(["pdp-swatches__options"]),children:(r==null?void 0:r.toLowerCase())==="dropdown"?n(Ue,{"aria-label":M,handleSelect:S=>q(A,S.target),options:et(N),value:D}):N==null?void 0:N.map(S=>{const Y={key:S.id,id:S.id,name:A,value:S.value,label:S.label,groupAriaLabel:M,selected:D===S.id,outOfStock:!S.inStock,required:_===null?!0:_,onValue:()=>{B(A,S.label,S.id)}};switch(r){case"text":return n(qe,{...Y,label:S.label});case"image":return n(Ve,{...Y,src:S.value,alt:S.label});case"color":return n(He,{...Y,size:"large",color:S.value});default:return console.warn(`Invalid swatch type ${r}`),null}})}),[B]);return n("div",{...l,className:g(["pdp-swatches",p]),children:e==null?void 0:e.map(({type:N,label:A,id:_,multiple:r,required:D,items:M})=>{var S;if(!N){console.warn("Bundle product not supported on UI.");return}return Ce.includes(N)||console.warn(`Invalid swatch type ${N}`),r&&console.warn("Multiple selection swatches are not currently supported."),U("div",{id:`swatch-item-${_}`,"data-slot-key":`product-swatch--${_}`,className:"pdp-swatches__field",children:[n("div",{className:"pdp-swatches__field__label",children:a[_]?o?`${A}`:`${A}: ${a[_].label}`:A}),n(J,{id:_,type:N,required:D,items:M,label:A,selected:(S=a[_])==null?void 0:S.value})]},`swatch-item-${_}`)})})};function nt(e,o="en_US"){if(!Me(e))throw Error("Invalid date string");return e.split(" ")[1]||(e=`${e} 00:00:00`),new Date(e).toLocaleDateString(Ne(o)).toString()}function Me(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(m=>m.test(e)))return!1;const u=new Date(e);return!isNaN(u.getTime())}function rt(e){const o=new URLSearchParams(window.location.search);Object.entries(e).forEach(([m,h])=>{h===null?o.delete(m):o.set(m,String(h))});let u=window.location.pathname;u+=`?${o.toString()}`,u+=window.location.hash,window.history.replaceState({},"",u)}function lt(){const e=new URLSearchParams(window.location.search),o={};return e.forEach((u,m)=>{o[m]=u}),o}function ct(e){var o,u,m,h,y,p,f,l,K,a,b,B;return{productId:Number(e==null?void 0:e.externalId),name:e==null?void 0:e.name,sku:e==null?void 0:e.sku,topLevelSku:e==null?void 0:e.externalParentId,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:((u=(o=e==null?void 0:e.prices)==null?void 0:o.regular)==null?void 0:u.amount)||0,minimalPrice:(h=(m=e==null?void 0:e.prices)==null?void 0:m.final)==null?void 0:h.minimumAmount,maximalPrice:(p=(y=e==null?void 0:e.prices)==null?void 0:y.final)==null?void 0:p.maximumAmount,specialPrice:(l=(f=e==null?void 0:e.prices)==null?void 0:f.final)==null?void 0:l.amount,tierPricing:void 0,currencyCode:((a=(K=e==null?void 0:e.prices)==null?void 0:K.final)==null?void 0:a.currency)||"USD"},canonicalUrl:e==null?void 0:e.url,mainImageUrl:(B=(b=e==null?void 0:e.images)==null?void 0:b[0])==null?void 0:B.url}}const at={PRODUCT_CONTEXT:"productContext"},dt={PRODUCT_PAGE_VIEW:"product-page-view"};function Re(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function it(e,o){const u=Re();u.push({[e]:null}),u.push({[e]:o})}function ot(e,o){Re().push(m=>{const h=m.getState?m.getState():{};m.push({event:e,eventInfo:{...h,...o}})})}function Ee(e){const o=ct(e);it(at.PRODUCT_CONTEXT,o),ot(dt.PRODUCT_PAGE_VIEW)}const st=({sku:e,hideSku:o,hideQuantity:u,hideShortDescription:m,hideDescription:h,hideAttributes:y,hideURLParams:p,hideSelectedOptionValue:f,slots:l,children:K,initialData:a,carousel:b,optionsConfig:B,useACDL:q,onAddToCart:J,...N})=>{var I,T,Q,O;const A=V("PDP.Product.AddToCart.label").label,_=V("PDP.Product.Incrementer.label").label,r=V("PDP.Product.Details.label").label,[D,M]=X(Oe.getConfig().defaultLocale||"en-US"),[S,Y]=X(),[t=null,le]=X(a),[x,$]=X(()=>{const d={sku:e,quantity:1};return t!=null&&t.optionUIDs&&(d.optionsUIDs=t.optionUIDs),d}),[C,F]=X(()=>{var d,s;return!(t!=null&&t.options&&((d=t==null?void 0:t.options)==null?void 0:d.length)>0&&((s=t==null?void 0:t.optionUIDs)==null?void 0:s.length)!==(t==null?void 0:t.options.length))}),v={data:t,values:x,valid:C};ne(()=>{const d=ze.on("locale",s=>{s!==D&&(M(s),xe(e).then(le))});return()=>{d==null||d.off()}},[D,e]),ne(()=>{q&&a&&Object.keys(a).length>0&&Ee(a)},[a]);const oe=Z(d=>{$(s=>({...s,...d}))},[]),re=Z(d=>{var P;let s=Object.keys(d).map(w=>d[w].value).filter(w=>w!==void 0);p||rt({optionsUIDs:s.join(",")}),$(w=>({...w,optionsUIDs:s})),F((s==null?void 0:s.length)===((P=t==null?void 0:t.options)==null?void 0:P.length)),$e(e,s,B==null?void 0:B.anchorOptions).then(w=>{var E;le(w),(E=B==null?void 0:B.anchorOptions)!=null&&E.length&&ce(w,s),q&&(w==null?void 0:w.sku)!==e&&Ee(w)})},[e]),ce=Z((d,s)=>{var E;const P=(d==null?void 0:d.optionUIDs)??[];s.every(G=>P.includes(G))||(Y(d==null?void 0:d.options),$(G=>({...G,optionsUIDs:P})),F((P==null?void 0:P.length)===((E=d==null?void 0:d.options)==null?void 0:E.length)))},[e]),se=Z(d=>{Object.keys(d).length!==0&&F(!1)},[]),ee=we(()=>{var d;return(d=t==null?void 0:t.attributes)==null?void 0:d.map(({label:s,value:P},w)=>{const E=Me(P)?nt(P,D):P.toString();return U("li",{children:[s,": ",n("span",{dangerouslySetInnerHTML:{__html:E}})]},w)})},[t==null?void 0:t.attributes,D]),he=!u&&(t!=null&&t.inStock)?n(j,{name:"Quantity",slot:l==null?void 0:l.Quantity,context:{...v},children:n(je,{name:"quantity",defaultValue:x.quantity.toString(),min:1,"aria-label":_,className:"pdp-product__quantity",onValue:d=>{oe({quantity:Number(d)})}},"quantity")}):void 0,de=()=>{if(t!=null&&t.options)return n(j,{name:"Options",slot:l==null?void 0:l.Options,context:{...v},children:n(tt,{options:t.options,defaultOptions:x.optionsUIDs,selectionsToUpdate:S,hideSelectedValue:f,onValues:re,onErrors:se})})};return n("div",{...N,children:n(Ze,{title:n(j,{name:"Title",slot:l==null?void 0:l.Title,context:{...v},children:t==null?void 0:t.name}),sku:o?void 0:n(j,{name:"SKU",slot:l==null?void 0:l.SKU,context:{...v},children:t==null?void 0:t.sku}),options:de(),breadcrumbs:(l==null?void 0:l.Breadcrumbs)&&n(j,{name:"Breadcrumbs",slot:l==null?void 0:l.Breadcrumbs,context:{...v,setSeparator(d){this._registerMethod((...s)=>{const P=d(...s),w=P&&n(ve,{source:P});this._setProps(E=>({...E,separator:w}))})},appendLink(d){this._registerMethod((...s)=>{const{text:P,...w}=d(...s),E=n("a",{...w,children:P});this._setProps(G=>({...G,categories:[...G.categories||[],E]}))})},appendHTMLElement(d){this._registerMethod((...s)=>{const P=d(...s),w=this._htmlElementToVNode(P);this._setProps(E=>({...E,categories:[...E.categories||[],w]}))})}},render:({separator:d,categories:s})=>n(Ge,{separator:d,categories:s})}),quantity:he,actions:n(j,{name:"Actions",slot:l==null?void 0:l.Actions,context:{...v,appendButton(d){this._registerMethod((...s)=>{const P=d(...s);if(!P)return;const{text:w,icon:E,...G}=P,ue=n(Pe,{type:"button",...G,icon:E&&n(ve,{source:E}),children:w});this._setProps(_e=>({children:[..._e.children||[],ue]}))})}},children:!(l!=null&&l.Actions)&&n(Pe,{size:"medium",type:"submit",icon:n(ve,{source:"Cart"}),disabled:!(t!=null&&t.inStock)||!C,"aria-label":A,onClick:()=>J==null?void 0:J(x),children:A})}),shortDescription:m?void 0:n(j,{name:"ShortDescription",slot:l==null?void 0:l.ShortDescription,context:{...v},children:n("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.shortDescription)??""}})}),description:h?void 0:n(j,{name:"Description",slot:l==null?void 0:l.Description,context:{...v},children:n("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.description)??""}})}),images:((I=t==null?void 0:t.images)==null?void 0:I.map(({label:d,url:s})=>{var P,w;return n(De,{title:d,alt:d,src:s,width:((P=b==null?void 0:b.imageParams)==null?void 0:P.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}},s)}))??[],specialPrice:(T=t==null?void 0:t.prices)!=null&&T.visible?n(j,{name:"SpecialPrice",slot:l==null?void 0:l.SpecialPrice,context:{...v},children:n(Ie,{...t.prices.final,locale:Ne(D)})}):void 0,price:(Q=t==null?void 0:t.prices)!=null&&Q.visible&&t.prices.regular&&t.prices.final.amount!==(t==null?void 0:t.prices.regular.amount)?n(j,{name:"RegularPrice",slot:l==null?void 0:l.RegularPrice,context:{...v},children:n(Ie,{...t.prices.regular,locale:Ne(D)})}):void 0,carouselConfig:{...b,thumbnails:b&&Object.keys(b).length?((O=t==null?void 0:t.images)==null?void 0:O.map(({label:d,url:s})=>{var P,w;return n(De,{title:d,alt:d,src:s,width:((P=b==null?void 0:b.thumbnailParams)==null?void 0:P.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}},s)}))??[]:[]},outOfStock:!(t!=null&&t.inStock),attributes:y?void 0:n(j,{name:"Attributes",slot:l==null?void 0:l.Attributes,context:{...v},children:ee!=null&&ee.length?U(fe,{children:[r,n("ul",{children:ee})]}):null}),galleryContent:(l==null?void 0:l.GalleryContent)&&n(j,{name:"GalleryContent",slot:l.GalleryContent,context:{...v}}),infoContent:(l==null?void 0:l.InfoContent)&&n(j,{name:"InfoContent",slot:l.InfoContent,context:{...v}}),productContent:(l==null?void 0:l.Content)&&n(j,{name:"Content",slot:l.Content,context:{...v}})})})};st.getInitialData=async function({sku:e,optionsConfig:o}){var m,h,y,p,f,l;const u=((m=lt().optionsUIDs)==null?void 0:m.split(","))||((l=(f=(p=(y=(h=Oe)==null?void 0:h.getConfig())==null?void 0:y.models)==null?void 0:p.ProductDetails)==null?void 0:f.initialData)==null?void 0:l.optionsUIDs);return u!=null&&u.length?await $e(e,u,o==null?void 0:o.anchorOptions):await xe(e)};export{st as ProductDetails,st as default};
1
+ import{jsxs as j,jsx as r,Fragment as ye}from"@dropins/tools/preact-jsx-runtime.js";import*as be from"@dropins/tools/preact-compat.js";import{useState as Y,Children as de,useRef as Ne,useMemo as Se,useEffect as J,useCallback as le}from"@dropins/tools/preact-compat.js";import{debounce as ke,classes as R,VComponent as G,toLanguageTag as xe,Slot as Q}from"@dropins/tools/lib.js";import{Button as ve,Icon as we,Price as ge,Picker as He,ColorSwatch as qe,ImageSwatch as je,TextSwatch as Xe,Incrementer as Fe,Breadcrumbs as Le,Image as Me}from"@dropins/tools/components.js";import{useText as K}from"@dropins/tools/i18n.js";import{cloneElement as Ge}from"@dropins/tools/preact.js";import{c as Re,d as Te}from"../chunks/getRefinedProduct.js";import{events as De}from"@dropins/tools/event-bus.js";import{c as Be}from"../chunks/initialize.js";import"@dropins/tools/fetch-graphql.js";const Ye=t=>be.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},be.createElement("path",{d:"M7.74512 9.87701L12.0001 14.132L16.2551 9.87701",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),Ve=t=>be.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},be.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 5.64001L5.62988 18.37",stroke:"currentColor"}),be.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 18.37L5.62988 5.64001",stroke:"currentColor"})),Ke=24,Oe=16,fe=2,Ze="32";var We=(t=>(t[t.small=16]="small",t[t.medium=24]="medium",t[t.large=64]="large",t))(We||{});const Pe=({show:t=1,scrollbar:o=!1,peak:h=!1,arrows:p=!1,controls:i="dots",arrowsOnMainImage:f=!1,loop:d=!1,gap:v=null,direction:l="horizontal",width:X="100%",height:c="100%",defaultIndex:m=0,className:T,children:O,thumbnails:U=null,isZoomed:te,...b})=>{const w=K("PDP.Carousel.label").label,n=K("PDP.Carousel.Slide.label").label,y=K("PDP.Carousel.Previous.label").label,k=K("PDP.Carousel.Next.label").label,E=K("PDP.Carousel.Controls.label").label,S=K("PDP.Carousel.Controls.Button.label").label,[A,he]=Y(()=>Ee(t)),e=Math.ceil(de.count(O)/A),I=h?Ke:0,g=v?We[v]:0,z=de.count(O)%A,[L,ee]=Y(d?m+1:m),x=Ne([]),[ne,ae]=Y(0),[ce,_e]=Y(0),pe=Se(()=>de.toArray(U),[U]),B=Se(()=>{const a=de.toArray(O).reduce((u,D,M)=>M%A===0?[...u,[D]]:[...u.slice(0,-1),[...u[u.length-1],D]],[]);return!d||a.length===1?a:d&&de.count(O)%A===0?[a[e-1]].concat(a).concat([a[0],a[1]]):[de.toArray(O).slice(-A)].concat(a).concat([a[0],a[1]])},[O,A,e,d]),re=Ne(null),ie=Ne(null),N=i==="thumbnailsRow"||i==="thumbnailsColumn";J(()=>{const a=document.body,u=ke(()=>{var q,oe;ae(((q=re.current)==null?void 0:q.offsetWidth)??0),_e(((oe=re.current)==null?void 0:oe.offsetHeight)??0);const M=window.innerWidth,F=Ee(t,M);F!==A&&he(F)},50),D=new ResizeObserver(u);return D.observe(a),()=>{D.unobserve(a)}},[A,t]);const Z=le(a=>{const u=d?a-1:a,D=x==null?void 0:x.current[0],M=(D==null?void 0:D.offsetWidth)+Oe,F=(D==null?void 0:D.offsetHeight)+Oe,q=ie.current,oe=i==="thumbnailsRow",Ae=i==="thumbnailsColumn",me=oe?q==null?void 0:q.offsetWidth:q==null?void 0:q.offsetHeight,C=oe?M:F;(oe||Ae)&&me&&(C*(u+1)>me&&(q.style.scrollBehavior="smooth",oe?q.scrollLeft=(u+fe)*C:q.scrollTop=(u+fe)*C),(oe?q.scrollLeft:q.scrollTop)>C*u&&(q.style.scrollBehavior="smooth",oe?q.scrollLeft=(u-fe)*C:q.scrollTop=(u-fe)*C))},[i,d]);J(()=>{Z(L)},[L,Z]);const H=le((a,u,D)=>{N&&Z(a);const M=re.current,F=I?M.offsetWidth-I:M.offsetWidth-I+g;if(!Array.from(M.querySelectorAll("[data-index]")).filter(me=>{const C=Number(me.getAttribute("data-index"));return!isNaN(C)&&C>-1})[a])return;if(D){const me=a===0?e:0,C=F*(e+(z||A)/A);if(M.scrollLeft>=0&&M.scrollLeft<F-5){H(1,!0);return}if(M.scrollLeft>C-F&&M.scrollLeft<=C){H(e,!0);return}M.style.scrollBehavior="auto",M.scrollLeft=me===0?0:C,H(me===0?1:e,!0);return}const Ae=(M.offsetWidth-g)/A*B[a].length-I;M.style.scrollBehavior=u?"smooth":"auto",M.scrollLeft=B[a].length===A?F*a:F*(a-1)+Ae},[g,e,I,A,z,B,Z,i]),ue=le(()=>{if(d){const u=L-1;H(u,!0,L===1);return}const a=L<=0?0:L-1;H(a,!0)},[L,H,d]),s=le(()=>{const a=B.length-1;if(d){const D=L+1;H(D,!0,L===e);return}const u=L>=a?a:L+1;H(u,!0)},[B.length,d,L,H,e]);J(()=>{const a=u=>{u.key==="ArrowLeft"&&(u.preventDefault(),ue()),u.key==="ArrowRight"&&(u.preventDefault(),s())};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}},[s,ue]),J(()=>{H(d?m+1:m,!1)},[m,H,d]);const _=ke(()=>{const a=re.current,u=I?a.offsetWidth-I:a.offsetWidth-I+g,D=a.scrollLeft/u,M=Math.round(D)-D<1?Math.round(D):Math.ceil(D);if(N&&Z(M),d){const F=u*(e+(z||A)/A);if(Math.ceil(a.scrollLeft)>=Math.ceil(F)-5){a.style.scrollBehavior="auto",a.scrollLeft=a.offsetWidth*1+(Math.ceil(a.scrollLeft)-Math.ceil(F)-I);return}if(a.scrollLeft===0){a.style.scrollBehavior="auto",a.scrollLeft=F-a.offsetWidth+I;return}}L!==M&&ee(M)},100);J(()=>{const a=re.current;return a==null||a.addEventListener("scroll",_),()=>{a==null||a.removeEventListener("scroll",_)}},[_]);const P=(a,u,D)=>r(ve,{className:R([["pdp-carousel__button",!a],[`pdp-carousel__button--${u}`,!a],[`pdp-carousel__button--${i}`,a]]),style:{"--height":`${ce}px`},variant:"tertiary","aria-label":u==="next"?k:y,onClick:D,disabled:d?!1:u==="next"?L>=B.length-1:L<1,children:r(we,{className:R([["pdp-carousel__button__icon",!a],[`pdp-carousel__button__icon--${u}`,!a],[`pdp-carousel__button__icon--${i}--${u}`,a]]),size:Ze,source:Ye})}),V=p&&B.length!=1&&P(N,"prev",ue),W=p&&B.length!=1&&P(N,"next",s),$=p&&B.length!=1&&P(!1,"prev",ue),se=p&&B.length!=1&&P(!1,"next",s);return j("div",{role:"region","aria-roledescription":w,className:R(["pdp-carousel",["pdp-carousel--main-image-controls",f],["pdp-carousel--arrows",p&&!N],[`pdp-carousel--${i}`,N],T]),style:{"--flex-carousel":i==="thumbnailsColumn"?"row-reverse":"column","--gap":N?"0":"var(--spacing-small)","--width":X},...b,children:[r("div",{ref:re,className:R(["pdp-carousel__wrapper",`pdp-carousel__wrapper--${l}`,["pdp-carousel__wrapper--scrollbar",o],["pdp-carousel__wrapper--peak",h]]),style:{"--total-width":i==="thumbnailsColumn"?"81.6%":"100%","--height":i==="thumbnailsColumn"?"auto":c,"--gap":v?`var(--spacing-${v})`:"0px","--per-page":A},tabIndex:0,children:B.map((a,u)=>{const D=a.length<A;return r("div",{role:"group","aria-roledescription":n,"data-index":u,className:R(["pdp-carousel__slide",`pdp-carousel__slide--${l}`,["pdp-carousel__slide--active",L===u],["pdp-carousel__slide--orphan",D]]),style:{"--length":a.length},children:a},u)})}),!N&&j(ye,{children:[V,W]}),N&&f&&j(ye,{children:[$,se]}),i&&B.length!=1&&j("div",{className:R([[`pdp-carousel__controls__container--${i}`,N],["pdp-carousel__controls__container--no-arrows",!p||f]]),style:{"--width":i==="thumbnailsRow"?`${ne}px`:X,"--height":`${ce}px`,"--nr-thumbnails":pe.length},children:[(N||te)&&!f&&V,r("div",{ref:ie,className:R([[`pdp-carousel__controls__wrapper--${i}`,N],["pdp-carousel__controls__wrapper",N]]),children:r("div",{role:"group","aria-label":E,className:R(["pdp-carousel__controls",[`pdp-carousel__controls--${i}`,N]]),children:(d?B.slice(0,e):B).map((a,u)=>{const D=d?e:B.length,M=d?L-1===u:L===u;return N?j("label",{className:R(["pdp-carousel__thumbnail__container"]),ref:F=>{F&&(x.current[u]=F)},children:[r("input",{type:"radio",name:"carousel-thumbnails","aria-label":S.replace("{key}",String(u+1)).replace("{total}",String(D)),checked:M&&ne!==0,onChange:()=>{H(d?u+1:u,!0)},...b,className:R(["pdp-carousel__thumbnail",["pdp-carousel__thumbnail--selected",M&&ne!==0]])}),r("span",{className:R(["pdp-carousel__thumbnail__span"]),children:pe[u]})]},u):r("button",{"aria-label":S.replace("{key}",String(u+1)).replace("{total}",String(D)),onClick:()=>{H(d?u+1:u,!0)},className:R(["pdp-carousel__controls__button",["pdp-carousel__controls__button--active",M]])},u)})})}),(N||te)&&!f&&W]})]})};function Ee(t,o=0){if(typeof t=="number")return t;const{small:h,medium:p,large:i}=t,d=[{breakpoint:1024,value:i},{breakpoint:786,value:p},{breakpoint:0,value:h}].find(({breakpoint:v})=>o>v);return d?d.value:h}const Qe=({title:t,breadcrumbs:o,galleryContent:h,infoContent:p,productContent:i,sku:f,outOfStock:d,shortDescription:v,description:l,attributes:X,images:c,options:m,price:T,specialPrice:O,className:U,children:te,quantity:b,actions:w,carouselConfig:n,zoomType:y="overlay",closeButton:k=!0,...E})=>{var ee,x,ne,ae,ce,_e,pe,B,re;const S=K("PDP.Product.RegularPrice.label").label,A=K("PDP.Product.SpecialPrice.label").label,he=K("PDP.Product.OutOfStock.label").label,e=K("PDP.Product.Image.label").label,[I,g]=Y(null),z=c!=null&&c.length?c.map((ie,N)=>{var H;const Z=((H=t==null?void 0:t.props)==null?void 0:H.children)&&(e==null?void 0:e.replace("{product}",t.props.children.toString()).replace("{key}",String(N+1)).replace("{total}",String(c.length)));return y==="zoom"?r(lt,{closeButton:k,children:r(G,{node:ie,loading:N===0?"eager":"lazy",alt:Z},N)}):r(G,{node:ie,loading:N===0?"eager":"lazy",alt:Z,onClick:()=>g(N)},N)}):r("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0}),L=(ee=n==null?void 0:n.thumbnails)!=null&&ee.length?n.thumbnails.map((ie,N)=>{var Z;return r(G,{node:ie,loading:(n==null?void 0:n.thumbnailsLoadingMode)||"lazy",alt:((Z=t==null?void 0:t.props)==null?void 0:Z.children)&&(e==null?void 0:e.replace("{product}",t.props.children.toString()).replace("{key}",String(N+1)).replace("{total}",String(c.length)))},N)}):r("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0});return j("div",{...E,className:R(["pdp-product",U]),children:[o&&r(G,{node:o,className:"pdp-product__breadcrumbs"}),j("div",{className:"pdp-product__column-container pdp-product__gallery-column",children:[r("div",{className:"pdp-product__column-body",children:(x=n==null?void 0:n.controls)!=null&&x.desktop?r(Pe,{className:"pdp-product__overlay__carousel",arrows:(c==null?void 0:c.length)>1,controls:(c==null?void 0:c.length)>1?n.controls.desktop:"dots",arrowsOnMainImage:n==null?void 0:n.arrowsOnMainImage,loop:(n==null?void 0:n.loopable)&&(c==null?void 0:c.length)>1,peak:((ne=n==null?void 0:n.thumbnails)==null?void 0:ne.length)>1&&((ae=n==null?void 0:n.peak)==null?void 0:ae.desktop)||!1,gap:(n==null?void 0:n.gap)||null,width:"100%",height:"100%",defaultIndex:I||0,thumbnails:L,children:z}):r(Je,{className:"pdp-product__images",gap:"small",children:z})}),h&&r(G,{node:h,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:[t&&r(G,{node:t,className:"pdp-product__title"}),f&&r(G,{node:f,className:"pdp-product__sku"})]}),j("div",{className:"pdp-product__prices",children:[O&&r(G,{node:O,className:R(["pdp-product__price-special","pdp-product__price"]),"aria-label":A,role:"text"}),T&&r(G,{node:T,className:R(["pdp-product__price-regular","pdp-product__price--grey"]),"aria-label":S,role:"text"})]}),(ce=n==null?void 0:n.controls)!=null&&ce.mobile&&((_e=n==null?void 0:n.controls)==null?void 0:_e.mobile)==="thumbnailsRow"?r(Pe,{className:"pdp-product__images pdp-product__images--carousel pdp-product__images--carousel--thumbnails",width:"100%",height:"auto",arrows:(c==null?void 0:c.length)>1,controls:(c==null?void 0:c.length)>1?"thumbnailsRow":null,loop:(n==null?void 0:n.loopable)&&(c==null?void 0:c.length)>1,peak:((pe=n==null?void 0:n.thumbnails)==null?void 0:pe.length)>1&&((B=n==null?void 0:n.peak)==null?void 0:B.mobile)||!1,gap:(n==null?void 0:n.gap)||null,thumbnails:L,children:z}):r(Pe,{className:"pdp-product__images pdp-product__images--carousel",peak:((re=n==null?void 0:n.peak)==null?void 0:re.mobile)&&(c==null?void 0:c.length)>1,gap:(n==null?void 0:n.gap)||null,width:"100%",height:"auto",arrows:(c==null?void 0:c.length)>1,controls:(c==null?void 0:c.length)>1?"dots":null,loop:(n==null?void 0:n.loopable)&&(c==null?void 0:c.length)>1,children:z}),j("div",{className:R(["pdp-product__actions",["pdp-product__actions--out-of-stock",d]]),children:[d&&r("div",{className:"pdp-product__out-of-stock__text",children:he}),m&&r(G,{node:m,className:R(["pdp-product__options"])}),b&&r("div",{className:"pdp-product__quantity",children:r(G,{node:b})}),w&&r(G,{node:w,className:R(["pdp-product__buttons"])})]}),v&&r(G,{node:v,className:R(["pdp-product__short_description"])}),l&&r(G,{node:l,className:R(["pdp-product__description"])}),X?r("div",{className:"pdp-product__attributes",children:X}):null]}),p&&r(G,{node:p,className:"pdp-product__info-content"})]}),i&&r(G,{node:i,className:"pdp-product__content"}),I===null?null:r(Ce,{className:"pdp-product__overlay",onClose:()=>g(null),centered:!0,children:r(Pe,{className:"pdp-product__overlay__carousel",arrows:(c==null?void 0:c.length)>1,width:"100%",height:"100%",defaultIndex:I||0,loop:(n==null?void 0:n.loopable)&&(c==null?void 0:c.length)>1,controls:(c==null?void 0:c.length)>1?"dots":null,isZoomed:!0,children:z})})]})},Je=({children:t,gap:o=null,className:h,style:p,...i})=>{const f=de.count(t);return r("div",{...i,className:R(["pdp-gallery-grid",h]),style:{"--gap":o?`var(--spacing-${o})`:"0px",...p},children:de.map(t,(d,v)=>r("div",{className:"pdp-gallery-grid__item",children:r(G,{node:d,loading:v===0?"eager":"lazy"},d.props.src)},f+v))})},Ie=({amount:t,currency:o,locale:h,variant:p,sale:i,minimumAmount:f,maximumAmount:d,className:v,...l})=>r(ye,{children:t||f===d?r("div",{className:"pdp-price-range",...l,children:r(ge,{amount:t||f,currency:o,locale:h,variant:p,sale:i,className:v})}):j("div",{className:"pdp-price-range",...l,children:[r(ge,{amount:f,currency:o,locale:h,className:v}),r("span",{className:"pdp-price-range__label",children:"-"}),r(ge,{amount:d,currency:o,locale:h,className:v})]})}),Ce=({centered:t,onClose:o,className:h,children:p,...i})=>{const f=K("PDP.Overlay.Close.label").label,d=le(()=>{o==null||o()},[o]);return J(()=>{const v=l=>{l.key==="Escape"&&d()};return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v)}},[d]),J(()=>{const v=document.scrollingElement,l=v.style.overflow;return v.style.overflow="hidden",()=>{v.style.overflow=l}},[]),j("div",{...i,className:R(["pdp-overlay",["pdp-overlay--centered",t],h]),children:[r("div",{className:"pdp-overlay__content",children:p}),r(ve,{"aria-label":f,variant:"tertiary",className:"pdp-overlay__close-button",onClick:d,icon:r(Ve,{})})]})},et=["text","image","color","dropdown"],tt=t=>t.map(o=>({...o,text:o.label,disabled:!o.inStock}));function nt(t,o){return t.reduce((h,p)=>{const i=o==null?void 0:o.find(d=>d.items.find(v=>v.id===p));if(!i)return h;const f=i.items.find(d=>d.id===p);return{...h,[i.id]:{label:f.label,value:f.id}}},{})}const rt=({options:t,hideSelectedValue:o,selectedUIDs:h,onValues:p,onErrors:i,defaultOptions:f,selectionsToUpdate:d,className:v,children:l,...X})=>{const c=K("PDP.Swatches.Required.label").label,[m,T]=Y(()=>t==null?void 0:t.reduce((w,n)=>{const{items:y}=n,k=y==null?void 0:y.find(S=>f==null?void 0:f.includes(S.id)),E=y==null?void 0:y.find(S=>S.selected);return k?{...w,[n.id]:{label:k.label,value:k.id}}:E?{...w,[n.id]:{label:E.label,value:E.id}}:w},{}));J(()=>{if(h){const b=nt(h,t);if(JSON.stringify(b)===JSON.stringify(m))return;O(Object.keys(b)[0],b[Object.keys(b)[0]].label,h[0])}},[h]),J(()=>{d==null||d.forEach(b=>{T(w=>{var k;const n=(k=b==null?void 0:b.items)==null?void 0:k.find(E=>E.selected);return n?{...w,[b.id]:{label:n==null?void 0:n.label,value:n==null?void 0:n.id}}:w})})},[d,T]),Se(()=>{const b=t==null?void 0:t.reduce((w,n)=>{var k;let y=!1;return(k=n==null?void 0:n.items)==null||k.forEach(E=>{var A;((A=m[n.id])==null?void 0:A.value)===E.id&&(y=!0)}),n.required&&!y&&(w[n.id]=c),w},{});return i==null||i(b),b},[m]);const O=le((b,w,n)=>{T(y=>{const k={...y,[b]:{label:w,value:n}};return p==null||p(k,n),k})},[p]),U=(b,w)=>{var y;const n=((y=w.selectedOptions[0])==null?void 0:y.label)??"";O(b,n,w.value)},te=le(({items:b,id:w,required:n,type:y,selected:k,label:E})=>(b==null?void 0:b.length)>0&&r("div",{className:R(["pdp-swatches__options"]),children:(y==null?void 0:y.toLowerCase())==="dropdown"?r(He,{"aria-label":E,handleSelect:S=>U(w,S.target),options:tt(b),value:k}):b==null?void 0:b.map(S=>{const A={key:S.id,id:S.id,name:w,value:S.value,label:S.label,groupAriaLabel:E,selected:k===S.id,outOfStock:!S.inStock,required:n===null?!0:n,onValue:()=>{O(w,S.label,S.id)}};switch(y){case"text":return r(Xe,{...A,label:S.label});case"image":return r(je,{...A,src:S.value,alt:S.label});case"color":return r(qe,{...A,size:"large",color:S.value});default:return console.warn(`Invalid swatch type ${y}`),null}})}),[O]);return r("div",{...X,className:R(["pdp-swatches",v]),children:t==null?void 0:t.map(({type:b,label:w,id:n,multiple:y,required:k,items:E})=>{var S;return et.includes(b)||console.warn(`Invalid swatch type ${b}`),y&&console.warn("Multiple selection swatches are not currently supported."),j("div",{id:`swatch-item-${n}`,"data-slot-key":`product-swatch--${n}`,className:"pdp-swatches__field",children:[r("div",{className:"pdp-swatches__field__label",children:m[n]?o?`${w}`:`${w}: ${m[n].label}`:w}),r(te,{id:n,type:b,required:k,items:E,label:w,selected:(S=m[n])==null?void 0:S.value})]},`swatch-item-${n}`)})})},lt=({children:t,scale:o=2,closeButton:h=!0})=>{const[p,i]=Y(!1),[f,d]=Y("pdp-zoom"),[v,l]=Y(!1),[X,c]=Y({x:0,y:0}),[m,T]=Y({x:0,y:0}),[O,U]=Y({x:0,y:0}),te=e=>{!p||e.type!=="touchstart"||(c({x:e.touches[0].clientX,y:e.touches[0].clientY}),T({x:O.x,y:O.y}),l(!0))},b=e=>{var ce;if(!v||e.type!=="touchmove")return;const I=(ce=e.currentTarget)==null?void 0:ce.getBoundingClientRect(),g=(100-100/o)/2,z=e.touches[0].clientX-X.x,L=e.touches[0].clientY-X.y,ee=z*100/(I.width*o),x=L*100/(I.height*o),ne=m.x+ee,ae=m.y+x;U({x:Math.max(-g,Math.min(ne,g))||0,y:Math.max(-g,Math.min(ae,g))||0}),e.preventDefault()},w=e=>{var x;const I=(x=e.currentTarget)==null?void 0:x.getBoundingClientRect(),g=(100-100/o)/2;let z;if("touches"in e)z=e.touches[0];else if(e instanceof MouseEvent)z=e;else return;const L=g-(z.clientX-I.left)/I.width*100,ee=g-(z.clientY-I.top)/I.height*100;U({x:Math.max(-g,Math.min(L,g))||0,y:Math.max(-g,Math.min(ee,g))||0})},n=e=>{if(!v){if(p){if(h&&"touches"in e){te(e);return}h||i(!1)}else i(!0),w(e);e.preventDefault()}},y=e=>{if(h&&"touches"in e){b(e);return}p&&w(e)},k=()=>{if(h){l(!1);return}i(!1)},E=e=>{i(!1),e.stopPropagation()},S=p?`scale(${o}) translateX(${O.x}%) translateY(${O.y}%)`:"none",A=K("PDP.Zoom.Close.label").label,he=Ge(de.only(t),{draggable:!1,style:{"--transform":S}});return J(()=>{d(p?`pdp-zoom ${h?"pdp-zoom--no-effects":"pdp-zoom--zoomed"}`:"pdp-zoom")},[p,h]),j("figure",{className:f,onClick:n,onMouseMove:y,onMouseLeave:k,onTouchStart:n,onTouchMove:y,onTouchEnd:k,children:[he,h&&p&&r(ve,{"aria-label":A,variant:"tertiary",className:"pdp-zoom__close-button",icon:r(Ve,{}),onClick:E})]})};function at(t,o="en_US"){if(!ze(t))throw Error("Invalid date string");return t.split(" ")[1]||(t=`${t} 00:00:00`),new Date(t).toLocaleDateString(xe(o)).toString()}function ze(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(p=>p.test(t)))return!1;const h=new Date(t);return!isNaN(h.getTime())}function ct(t){const o=new URLSearchParams(window.location.search);Object.entries(t).forEach(([p,i])=>{i===null?o.delete(p):o.set(p,String(i))});let h=window.location.pathname;h+=`?${o.toString()}`,h+=window.location.hash,window.history.replaceState({},"",h)}function ot(){const t=new URLSearchParams(window.location.search),o={};return t.forEach((h,p)=>{o[p]=h}),o}function it(t){var o,h,p,i,f,d,v,l,X,c,m,T;return{productId:Number(t==null?void 0:t.externalId),name:t==null?void 0:t.name,sku:t==null?void 0:t.sku,topLevelSku:t==null?void 0:t.externalParentId,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:((h=(o=t==null?void 0:t.prices)==null?void 0:o.regular)==null?void 0:h.amount)||0,minimalPrice:(i=(p=t==null?void 0:t.prices)==null?void 0:p.final)==null?void 0:i.minimumAmount,maximalPrice:(d=(f=t==null?void 0:t.prices)==null?void 0:f.final)==null?void 0:d.maximumAmount,specialPrice:(l=(v=t==null?void 0:t.prices)==null?void 0:v.final)==null?void 0:l.amount,tierPricing:void 0,currencyCode:((c=(X=t==null?void 0:t.prices)==null?void 0:X.final)==null?void 0:c.currency)||"USD"},canonicalUrl:t==null?void 0:t.url,mainImageUrl:(T=(m=t==null?void 0:t.images)==null?void 0:m[0])==null?void 0:T.url}}const st={PRODUCT_CONTEXT:"productContext"},dt={PRODUCT_PAGE_VIEW:"product-page-view"};function Ue(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function ht(t,o){const h=Ue();h.push({[t]:null}),h.push({[t]:o})}function pt(t,o){Ue().push(p=>{const i=p.getState?p.getState():{};p.push({event:t,eventInfo:{...i,...o}})})}function $e(t){const o=it(t);ht(st.PRODUCT_CONTEXT,o),pt(dt.PRODUCT_PAGE_VIEW)}const ut=({sku:t,hideSku:o,hideQuantity:h,hideShortDescription:p,hideDescription:i,hideAttributes:f,hideURLParams:d,hideSelectedOptionValue:v,slots:l,children:X,initialData:c,carousel:m,optionsConfig:T,useACDL:O,onAddToCart:U,zoomType:te,closeButton:b=!0,...w})=>{var N,Z,H,ue;const n=K("PDP.Product.AddToCart.label").label,y=K("PDP.Product.Incrementer.label").label,k=K("PDP.Product.Details.label").label,[E,S]=Y(Be.getConfig().defaultLocale||"en-US"),[A,he]=Y(),[e=null,I]=Y(c),[g,z]=Y(()=>{const s={sku:t,quantity:1};return e!=null&&e.optionUIDs&&(s.optionsUIDs=e.optionUIDs),s}),[L,ee]=Y(()=>{var s,_;return!(e!=null&&e.options&&((s=e==null?void 0:e.options)==null?void 0:s.length)>0&&((_=e==null?void 0:e.optionUIDs)==null?void 0:_.length)!==(e==null?void 0:e.options.length))}),x={data:e,values:g,valid:L};function ne(s){return s==null?void 0:s.some(_=>(_==null?void 0:_.typename)==="ProductViewOptionValueProduct")}J(()=>{const s=De.on("pdp/setValues",_=>{z(P=>({...P,..._}))});return()=>{s==null||s.off()}},[]),J(()=>{const s=De.on("locale",_=>{_!==E&&(S(_),Re(t).then(I))});return()=>{s==null||s.off()}},[E,t]),J(()=>{O&&c&&Object.keys(c).length>0&&$e(c)},[c]);const ae=le(s=>{z(_=>({..._,...s}))},[]);J(()=>{De.emit("pdp/values",g)},[JSON.stringify(g)]);const ce=le(s=>{var V,W;let _=Object.keys(s).map($=>s[$].value).filter($=>$!==void 0);!d&&(e!=null&&e.options)&&!ne(e.options)&&ct({optionsUIDs:_.join(",")}),ae({optionsUIDs:_}),ee((_==null?void 0:_.length)===((V=e==null?void 0:e.options)==null?void 0:V.length));const P=(W=e==null?void 0:e.options)==null?void 0:W.some($=>ne([$]));Te(t,_,T==null?void 0:T.anchorOptions,P).then($=>{var se;I($),(se=T==null?void 0:T.anchorOptions)!=null&&se.length&&_e($,_),O&&($==null?void 0:$.variantSku)!==t&&$e($)})},[t]),_e=le((s,_)=>{var W;const P=(s==null?void 0:s.optionUIDs)??[];_.every($=>P.includes($))||(he(s==null?void 0:s.options),ae({optionsUIDs:P}),ee((P==null?void 0:P.length)===((W=s==null?void 0:s.options)==null?void 0:W.length)))},[t]),pe=le(s=>{Object.keys(s).length!==0&&ee(!1)},[]),B=Se(()=>{var s;return(s=e==null?void 0:e.attributes)==null?void 0:s.map(({label:_,value:P},V)=>{const W=ze(P)?at(P,E):P.toString();return j("li",{children:[_,": ",r("span",{dangerouslySetInnerHTML:{__html:W}})]},V)})},[e==null?void 0:e.attributes,E]),re=!h&&(e!=null&&e.inStock)?r(Q,{name:"Quantity",slot:l==null?void 0:l.Quantity,context:{...x},children:r(Fe,{name:"quantity",defaultValue:g.quantity.toString(),value:g.quantity.toString(),min:1,"aria-label":y,className:"pdp-product__quantity",onValue:s=>{ae({quantity:Number(s)})}},"quantity")}):void 0,ie=()=>{if(e!=null&&e.options)return r(Q,{name:"Options",slot:l==null?void 0:l.Options,context:{...x},children:r(rt,{selectedUIDs:g.optionsUIDs,options:e.options,defaultOptions:g.optionsUIDs,selectionsToUpdate:A,hideSelectedValue:v,onValues:ce,onErrors:pe})})};return r("div",{...w,children:r(Qe,{title:r(Q,{name:"Title",slot:l==null?void 0:l.Title,context:{...x},children:e==null?void 0:e.name}),sku:o?void 0:r(Q,{name:"SKU",slot:l==null?void 0:l.SKU,context:{...x},children:e==null?void 0:e.sku}),options:ie(),breadcrumbs:(l==null?void 0:l.Breadcrumbs)&&r(Q,{name:"Breadcrumbs",slot:l==null?void 0:l.Breadcrumbs,context:{...x,setSeparator(s){this._registerMethod((..._)=>{const P=s(..._),V=P&&r(we,{source:P});this._setProps(W=>({...W,separator:V,children:[r(Le,{separator:V,categories:W.categories})]}))})},appendLink(s){this._registerMethod((..._)=>{const{text:P,...V}=s(..._),W=r("a",{...V,children:P});this._setProps($=>{const se=[...$.categories||[],W];return{...$,categories:se,children:[r(Le,{separator:$.separator,categories:se})]}})})},appendHTMLElement(s){this._registerMethod((..._)=>{const P=s(..._),V=this._htmlElementToVNode(P);this._setProps(W=>{const $=[...W.categories||[],V];return{...W,categories:$,children:[r(Le,{separator:W.separator,categories:$})]}})})}}}),quantity:re,actions:r(Q,{name:"Actions",slot:l==null?void 0:l.Actions,context:{...x,appendButton(s){this._registerMethod((..._)=>{const P=s(..._);if(!P)return;const{text:V,icon:W,...$}=P,se=r(ve,{type:"button",...$,icon:W&&r(we,{source:W}),children:V});this._setProps(a=>({children:[...a.children||[],se]}))})}},children:!(l!=null&&l.Actions)&&r(ve,{size:"medium",type:"submit",icon:r(we,{source:"Cart"}),disabled:!(e!=null&&e.inStock)||!L,"aria-label":n,onClick:()=>U==null?void 0:U(g),children:n})}),shortDescription:p?void 0:r(Q,{name:"ShortDescription",slot:l==null?void 0:l.ShortDescription,context:{...x},children:r("div",{dangerouslySetInnerHTML:{__html:(e==null?void 0:e.shortDescription)??""}})}),description:i?void 0:r(Q,{name:"Description",slot:l==null?void 0:l.Description,context:{...x},children:r("div",{dangerouslySetInnerHTML:{__html:(e==null?void 0:e.description)??""}})}),images:((N=e==null?void 0:e.images)==null?void 0:N.map(({label:s,url:_})=>{var P,V;return r(Me,{title:s,alt:s,src:_,width:((P=m==null?void 0:m.imageParams)==null?void 0:P.width)??960,height:((V=m==null?void 0:m.imageParams)==null?void 0:V.height)??1191,params:(m==null?void 0:m.imageParams)??{width:960}},_)}))??[],specialPrice:(Z=e==null?void 0:e.prices)!=null&&Z.visible?r(Q,{name:"SpecialPrice",slot:l==null?void 0:l.SpecialPrice,context:{...x},children:r(Ie,{...e.prices.final,locale:xe(E)})}):void 0,price:(H=e==null?void 0:e.prices)!=null&&H.visible&&e.prices.regular&&e.prices.final.amount!==(e==null?void 0:e.prices.regular.amount)?r(Q,{name:"RegularPrice",slot:l==null?void 0:l.RegularPrice,context:{...x},children:r(Ie,{...e.prices.regular,locale:xe(E)})}):void 0,zoomType:te,closeButton:b,carouselConfig:{...m,thumbnails:m&&Object.keys(m).length?((ue=e==null?void 0:e.images)==null?void 0:ue.map(({label:s,url:_})=>{var P,V;return r(Me,{title:s,alt:s,src:_,width:((P=m==null?void 0:m.thumbnailParams)==null?void 0:P.width)??200,height:((V=m==null?void 0:m.thumbnailParams)==null?void 0:V.height)??248,params:(m==null?void 0:m.thumbnailParams)??{width:200}},_)}))??[]:[]},outOfStock:!(e!=null&&e.inStock),attributes:f?void 0:r(Q,{name:"Attributes",slot:l==null?void 0:l.Attributes,context:{...x},children:B!=null&&B.length?j(ye,{children:[k,r("ul",{children:B})]}):null}),galleryContent:(l==null?void 0:l.GalleryContent)&&r(Q,{name:"GalleryContent",slot:l.GalleryContent,context:{...x}}),infoContent:(l==null?void 0:l.InfoContent)&&r(Q,{name:"InfoContent",slot:l.InfoContent,context:{...x}}),productContent:(l==null?void 0:l.Content)&&r(Q,{name:"Content",slot:l.Content,context:{...x}})})})};ut.getInitialData=async function({sku:t,optionsConfig:o}){var v,l,X,c,m,T,O;function h(U){return U.some(te=>te.__typename==="ProductViewOptionValueProduct")}let p;const i=Be.getConfig(),f=((v=ot().optionsUIDs)==null?void 0:v.split(","))||((c=(X=(l=i==null?void 0:i.models)==null?void 0:l.ProductDetails)==null?void 0:X.initialData)==null?void 0:c.optionsUIDs),d=(T=(m=i==null?void 0:i.models)==null?void 0:m.ProductDetails)==null?void 0:T.initialData;return d&&Object.keys(d).length>0&&(p=(O=d.options)==null?void 0:O.some(U=>h(U==null?void 0:U.values))),f!=null&&f.length?await Te(t,f,o==null?void 0:o.anchorOptions,p):await Re(t)};export{ut as ProductDetails,ut as default};
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './ProductDetails';
2
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  /**
2
17
  * ACDL Product Types from:
3
18
  * https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/types/schemas/product.ts
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './product-model';
2
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export interface ProductModel {
2
17
  name: string;
3
18
  sku: string;
@@ -37,9 +52,9 @@ interface Prices {
37
52
  final: Price;
38
53
  visible: boolean;
39
54
  }
40
- interface Option {
55
+ export interface Option {
41
56
  id: string;
42
- type: 'text' | 'image' | 'color';
57
+ type: 'text' | 'image' | 'color' | 'dropdown';
43
58
  typename: 'ProductViewOptionValueProduct' | 'ProductViewOptionValueSwatch' | 'ProductViewOptionValueConfiguration';
44
59
  label: string;
45
60
  required: boolean;
@@ -52,6 +67,7 @@ interface OptionValue {
52
67
  inStock: boolean;
53
68
  value: string;
54
69
  selected: boolean;
70
+ product?: any;
55
71
  }
56
72
  interface Attribute {
57
73
  label: string;
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './product-transform';
2
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import { ProductModel } from '../models';
2
2
 
3
- export declare function transformProductData(data: any): ProductModel | null;
3
+ export declare function transformProductData(data: any, isBundle?: boolean): ProductModel | null;
4
4
  //# sourceMappingURL=product-transform.d.ts.map
@@ -58,10 +58,15 @@ declare const _default: {
58
58
  "Close": {
59
59
  "label": "Close"
60
60
  }
61
+ },
62
+ "Zoom": {
63
+ "Close": {
64
+ "label": "Close"
65
+ }
61
66
  }
62
67
  },
63
68
  "Custom": {
64
- "quantityLabel": "Passengers"
69
+ "quantityLabel": "Quantity"
65
70
  }
66
71
  }
67
72
  ;
package/lib/date.d.ts CHANGED
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export declare function toDateString(value: string, locale?: string): string;
2
17
  export declare function isDateValid(dateString: string): boolean;
3
18
  //# sourceMappingURL=date.d.ts.map
@@ -1,3 +1,18 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export declare function setUrlParams(params: Record<string, string | number | null>): void;
2
17
  export declare function getUrlParams(): Record<string, string>;
3
18
  //# sourceMappingURL=url-params.d.ts.map
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-pdp", "version": "0.3.0", "@dropins/tools": "0.25.0"}
1
+ {"name": "@dropins/storefront-pdp", "version": "0.4.0-alpha10", "@dropins/tools": "~0.29.0"}
package/render/index.d.ts CHANGED
@@ -1,2 +1,17 @@
1
+ /**
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ * Copyright 2023 Adobe
5
+ * All Rights Reserved.
6
+ * __________________
7
+ * NOTICE: All information contained herein is, and remains
8
+ * the property of Adobe and its suppliers, if any. The intellectual
9
+ * and technical concepts contained herein are proprietary to Adobe
10
+ * and its suppliers and are protected by all applicable intellectual
11
+ * property laws, including trade secret and copyright laws.
12
+ * Dissemination of this information or reproduction of this material
13
+ * is strictly forbidden unless prior written permission is obtained
14
+ * from Adobe.
15
+ */
1
16
  export * from './render';
2
17
  //# sourceMappingURL=index.d.ts.map
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--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}.pdp-carousel__button--next{right:0}.pdp-carousel__button__icon--prev{transform:rotate(90deg)}.pdp-carousel__button__icon--next{right:0;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)}.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%;width:calc(var(--thumbnails-col-width) - var(--thumbnails-rest));margin-right: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-right:var(--thumbnails-box-width)}.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{display:inline-block;--bg-color: var(--color-neutral-300);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__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)}",{styleId:"PDP"});
2
- 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{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{c as g}from"./chunks/initialize.js";const P={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"}},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"}}},C={quantityLabel:"Passengers"},p={PDP:P,Custom:C},S={default:p},D=({children:a})=>{var t;const[e,i]=f(),n=(t=g.getConfig())==null?void 0:t.langDefinitions;m(()=>{const o=d.on("locale",l=>{l!==e&&i(l)},{eager:!0});return()=>{o==null||o.off()}},[e]);const s=c(S,n??{});return r(b,{lang:e,langDefinitions:s,children:a})},O=new u(r(D,{}));export{O as render};
1
+ (function(p,o){try{if(typeof document<"u"){const r=document.createElement("style"),e=o.styleId;for(const a in o.attributes)r.setAttribute(a,o.attributes[a]);r.setAttribute("data-dropin",e),r.appendChild(document.createTextNode(p));const t=document.querySelector('style[data-dropin="sdk"]');if(t)t.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--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}.pdp-carousel__button--next{right:0}.pdp-carousel__button__icon--prev{transform:rotate(90deg)}.pdp-carousel__button__icon--next{right:0;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)}.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%;width:calc(var(--thumbnails-col-width) - var(--thumbnails-rest));margin-right: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-right:var(--thumbnails-box-width)}.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{display:inline-block;--bg-color: var(--color-neutral-300);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__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"}},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})},O=new u(r(D,{}));export{O as render};