@dropins/storefront-pdp 0.5.0-beta5 → 1.0.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/fetchProductData/fetchProductData.d.ts +24 -0
- package/api/fetchProductData/index.d.ts +17 -0
- package/api/getFetchedProductData/getFetchedProductData.d.ts +4 -0
- package/api/getFetchedProductData/index.d.ts +17 -0
- package/api/getProductConfigurationValues/getProductConfigurationValues.d.ts +4 -0
- package/api/getProductConfigurationValues/index.d.ts +17 -0
- package/api/index.d.ts +6 -0
- package/api/initialize/initialize.d.ts +9 -1
- package/api/isProductConfigurationValid/index.d.ts +17 -0
- package/api/isProductConfigurationValid/isProductConfigurationValid.d.ts +17 -0
- package/api/setProductConfigurationValid/index.d.ts +17 -0
- package/api/setProductConfigurationValid/setProductConfigurationValid.d.ts +17 -0
- package/api/setProductConfigurationValues/index.d.ts +17 -0
- package/api/setProductConfigurationValues/setProductConfigurationValues.d.ts +4 -0
- package/api.js +3 -1
- package/chunks/PriceRange.js +3 -0
- package/chunks/Swatches.js +3 -0
- package/chunks/Zoom.js +3 -0
- package/chunks/date.js +3 -0
- package/chunks/fetchProductData.js +187 -0
- package/chunks/getFetchedProductData.js +3 -0
- package/chunks/getProductConfigurationValues.js +3 -0
- package/chunks/isProductConfigurationValid.js +3 -0
- package/components/Header/Header.d.ts +10 -0
- package/components/Header/index.d.ts +18 -0
- package/components/Price/Price.d.ts +9 -0
- package/components/Price/index.d.ts +18 -0
- package/components/index.d.ts +2 -0
- package/containers/ProductAttributes/ProductAttributes.d.ts +8 -0
- package/containers/ProductAttributes/index.d.ts +18 -0
- package/containers/ProductAttributes.d.ts +3 -0
- package/containers/ProductAttributes.js +3 -0
- package/containers/ProductDescription/ProductDescription.d.ts +8 -0
- package/containers/ProductDescription/index.d.ts +18 -0
- package/containers/ProductDescription.d.ts +3 -0
- package/containers/ProductDescription.js +3 -0
- package/containers/ProductDetails.js +3 -1
- package/containers/ProductGallery/ProductGallery.d.ts +18 -0
- package/containers/ProductGallery/index.d.ts +3 -0
- package/containers/ProductGallery.d.ts +3 -0
- package/containers/ProductGallery.js +3 -0
- package/containers/ProductHeader/ProductHeader.d.ts +9 -0
- package/containers/ProductHeader/index.d.ts +18 -0
- package/containers/ProductHeader.d.ts +3 -0
- package/containers/ProductHeader.js +3 -0
- package/containers/ProductOptions/ProductOptions.d.ts +22 -0
- package/containers/ProductOptions/index.d.ts +18 -0
- package/containers/ProductOptions.d.ts +3 -0
- package/containers/ProductOptions.js +3 -0
- package/containers/ProductPrice/ProductPrice.d.ts +8 -0
- package/containers/ProductPrice/index.d.ts +18 -0
- package/containers/ProductPrice.d.ts +3 -0
- package/containers/ProductPrice.js +3 -0
- package/containers/ProductQuantity/ProductQuantity.d.ts +9 -0
- package/containers/ProductQuantity/index.d.ts +18 -0
- package/containers/ProductQuantity.d.ts +3 -0
- package/containers/ProductQuantity.js +3 -0
- package/containers/ProductShortDescription/ProductShortDescription.d.ts +8 -0
- package/containers/ProductShortDescription/index.d.ts +18 -0
- package/containers/ProductShortDescription.d.ts +3 -0
- package/containers/ProductShortDescription.js +3 -0
- package/containers/index.d.ts +8 -0
- package/data/models/index.d.ts +1 -0
- package/data/models/values-model.d.ts +6 -0
- package/package.json +1 -1
- package/render.js +4 -2
- package/chunks/getRefinedProduct.js +0 -185
- package/chunks/initialize.js +0 -1
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import{c as j}from"./initialize.js";import{FetchGraphQL as re}from"@dropins/tools/fetch-graphql.js";const{setEndpoint:we,setFetchGraphQlHeader:he,removeFetchGraphQlHeader:Se,setFetchGraphQlHeaders:_e,fetchGraphQl:R,getConfig:ke}=new re().getMethods();var N=(t=>(t.ComplexProduct="complex",t.SimpleProduct="simple",t))(N||{}),ee=(t=>(t.ComplexProductView="ComplexProductView",t.SimpleProductView="SimpleProductView",t))(ee||{});function K(t,u){var m,l,s,c,a,f,d;const i=((c=(s=(l=(m=t==null?void 0:t.options)==null?void 0:m[0])==null?void 0:l.values)==null?void 0:s[0])==null?void 0:c.__typename)==="ProductViewOptionValueProduct",r=ce(t,i,u==null?void 0:u.preselectFirstOption),e=(t==null?void 0:t.__typename)===ee.SimpleProductView?N.SimpleProduct:N.ComplexProduct,n=t?{name:t.name,sku:t.sku,isBundle:i,addToCartAllowed:t.addToCartAllowed,inStock:t.inStock,shortDescription:t.shortDescription,metaDescription:t.metaDescription,metaKeyword:t.metaKeyword,metaTitle:t.metaTitle,description:t.description,images:ne(t),prices:me(t,i,r),attributes:ue(t),options:ie(t,i),optionUIDs:r,url:t.url,urlKey:t.urlKey,externalId:t.externalId,externalParentId:t.externalParentId,variantSku:t.variantSku,productType:e}:null,o=(d=(f=(a=j.getConfig())==null?void 0:a.models)==null?void 0:f.ProductDetails)==null?void 0:d.transform;return o&&n?o(n):n}function ne(t){var u,i;return(i=(u=t.images)==null?void 0:u.filter(r=>{var e;return!((e=r.roles)!=null&&e.includes("hide_from_pdp"))}))==null?void 0:i.map(r=>(r.url=r.url.replace(/^https?:/,""),r))}function ue(t){var u,i;return(i=(u=t.attributes)==null?void 0:u.filter(({roles:r})=>(r==null?void 0:r.indexOf("visible_in_pdp"))!==-1))==null?void 0:i.map(({label:r,value:e,name:n})=>({id:n,label:r,value:e.toString().split(",").join(", ")}))}function ie(t,u){const{options:i,optionUIDs:r}=t;return i==null?void 0:i.map(({id:e,title:n,required:o,multi:m,values:l})=>{var a;const s=(a=l==null?void 0:l[0])==null?void 0:a.__typename;let c=l==null?void 0:l[0].type;return c?c=c.replace("COLOR_HEX","color").replace("TEXT","text").replace("IMAGE","image"):c="dropdown",{id:e,type:c,typename:s,label:n,required:o,multiple:m,items:u?oe(l,r):le(l,r,c)}})}function oe(t,u){return t==null?void 0:t.map(({id:i,title:r,inStock:e,isDefault:n,product:o})=>({id:i,inStock:e,label:r,selected:(u==null?void 0:u.indexOf(i))>-1||n,value:i,product:o}))}function le(t,u,i){return t==null?void 0:t.map(({id:r,title:e,inStock:n,value:o})=>({id:r,inStock:n,label:e,selected:(u==null?void 0:u.indexOf(r))>-1,value:(i==null?void 0:i.toLowerCase())==="dropdown"?r:o==null?void 0:o.replace(/^https?:/,"")}))}function me(t,u,i){var q,H,L,B,X;const{price:r,priceRange:e,options:n,optionUIDs:o=i}=t;let{__typename:m}=t;function l(){var x;const y=r.regular.amount.value,P=((x=r.final)==null?void 0:x.amount.value)??r.regular.amount.value,g=r.regular.amount.currency==="NONE"?"USD":r==null?void 0:r.regular.amount.currency;return[y,P,P,g]}function s(){var _,k,b,E,C,D,V,F,T,v,A,$;const y=(_=e==null?void 0:e.minimum)==null?void 0:_.final.amount.value,P=(k=e==null?void 0:e.maximum)==null?void 0:k.final.amount.value;let g;((E=(b=e==null?void 0:e.minimum)==null?void 0:b.regular)==null?void 0:E.amount.value)===((D=(C=e==null?void 0:e.maximum)==null?void 0:C.regular)==null?void 0:D.amount.value)&&(g=(F=(V=e==null?void 0:e.minimum)==null?void 0:V.regular)==null?void 0:F.amount.value);const x=((v=(T=e==null?void 0:e.minimum)==null?void 0:T.final)==null?void 0:v.amount.currency)==="NONE"?"USD":($=(A=e==null?void 0:e.minimum)==null?void 0:A.final)==null?void 0:$.amount.currency;return[g,y,P,x]}function c(){var b,E,C,D,V,F,T,v,A,$,Y,U;let y=0,P=0;n==null||n.forEach(O=>{var z;const I=O==null?void 0:O.values;if(I&&Array.isArray(I)){const w=I.map(p=>{var G,M,J,W;return(W=(J=(M=(G=p==null?void 0:p.product)==null?void 0:G.price)==null?void 0:M.regular)==null?void 0:J.amount)==null?void 0:W.value}).filter(p=>p!==void 0),Q=w.length>0?Math.max(...w):0;y+=Q}(z=O==null?void 0:O.values)==null||z.forEach(w=>{var Q,p,G,M;o!=null&&o.includes(w.id)&&(P+=(M=(G=(p=(Q=w==null?void 0:w.product)==null?void 0:Q.price)==null?void 0:p.final)==null?void 0:G.amount)==null?void 0:M.value)})});const g=(b=e==null?void 0:e.minimum)==null?void 0:b.final.amount.value,x=(E=e==null?void 0:e.maximum)==null?void 0:E.final.amount.value;let _;((D=(C=e==null?void 0:e.minimum)==null?void 0:C.regular)==null?void 0:D.amount.value)===((F=(V=e==null?void 0:e.maximum)==null?void 0:V.regular)==null?void 0:F.amount.value)&&(_=(v=(T=e==null?void 0:e.minimum)==null?void 0:T.regular)==null?void 0:v.amount.value);const k=(($=(A=e==null?void 0:e.minimum)==null?void 0:A.final)==null?void 0:$.amount.currency)==="NONE"?"USD":(U=(Y=e==null?void 0:e.minimum)==null?void 0:Y.final)==null?void 0:U.amount.currency;return u&&(o==null?void 0:o.length)<1?[_,g,x,k]:y===(e==null?void 0:e.maximum.regular.amount.value)?[P,P,P,k]:[_,g,x,k]}const[a,f,d,h]=m==="SimpleProductView"?l():u?c():s(),S=m==="SimpleProductView"?(q=r==null?void 0:r.roles)==null?void 0:q.includes("visible"):((L=(H=e==null?void 0:e.maximum)==null?void 0:H.roles)==null?void 0:L.includes("visible"))&&((X=(B=e==null?void 0:e.minimum)==null?void 0:B.roles)==null?void 0:X.includes("visible"));return d&&f===d?{regular:{amount:a,currency:h,variant:a&&f!==a?"strikethrough":"default"},final:{amount:d,currency:h,variant:"default"},visible:S}:{final:{minimumAmount:f,maximumAmount:d,currency:h},visible:S}}function ce(t,u,i){var r;return u?((r=t==null?void 0:t.options)==null?void 0:r.map(({values:n})=>{var l;const o=((l=n==null?void 0:n.find(({isDefault:s})=>s))==null?void 0:l.id)??null,m=i?n[0].id:null;return o||m})).filter(n=>n!==null):t==null?void 0:t.optionUIDs}const se=`
|
|
2
|
-
fragment ProductOptionFragment on ProductViewOption {
|
|
3
|
-
id
|
|
4
|
-
title
|
|
5
|
-
required
|
|
6
|
-
multi
|
|
7
|
-
values {
|
|
8
|
-
id
|
|
9
|
-
title
|
|
10
|
-
inStock
|
|
11
|
-
__typename
|
|
12
|
-
... on ProductViewOptionValueProduct {
|
|
13
|
-
title
|
|
14
|
-
quantity
|
|
15
|
-
isDefault
|
|
16
|
-
__typename
|
|
17
|
-
product {
|
|
18
|
-
sku
|
|
19
|
-
shortDescription
|
|
20
|
-
metaDescription
|
|
21
|
-
metaKeyword
|
|
22
|
-
metaTitle
|
|
23
|
-
name
|
|
24
|
-
price {
|
|
25
|
-
final {
|
|
26
|
-
amount {
|
|
27
|
-
value
|
|
28
|
-
currency
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
regular {
|
|
32
|
-
amount {
|
|
33
|
-
value
|
|
34
|
-
currency
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
roles
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
... on ProductViewOptionValueSwatch {
|
|
42
|
-
id
|
|
43
|
-
title
|
|
44
|
-
type
|
|
45
|
-
value
|
|
46
|
-
inStock
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
`,te=`
|
|
51
|
-
fragment ProductFragment on ProductView {
|
|
52
|
-
__typename
|
|
53
|
-
id
|
|
54
|
-
sku
|
|
55
|
-
name
|
|
56
|
-
shortDescription
|
|
57
|
-
metaDescription
|
|
58
|
-
metaKeyword
|
|
59
|
-
metaTitle
|
|
60
|
-
description
|
|
61
|
-
inStock
|
|
62
|
-
addToCartAllowed
|
|
63
|
-
url
|
|
64
|
-
urlKey
|
|
65
|
-
externalId
|
|
66
|
-
|
|
67
|
-
images(roles: []) {
|
|
68
|
-
url
|
|
69
|
-
label
|
|
70
|
-
roles
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
attributes(roles: []) {
|
|
74
|
-
name
|
|
75
|
-
label
|
|
76
|
-
value
|
|
77
|
-
roles
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
... on SimpleProductView {
|
|
81
|
-
price {
|
|
82
|
-
roles
|
|
83
|
-
|
|
84
|
-
regular {
|
|
85
|
-
amount {
|
|
86
|
-
value
|
|
87
|
-
currency
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
final {
|
|
92
|
-
amount {
|
|
93
|
-
value
|
|
94
|
-
currency
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
... on ComplexProductView {
|
|
102
|
-
options {
|
|
103
|
-
...ProductOptionFragment
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
priceRange {
|
|
107
|
-
maximum {
|
|
108
|
-
final {
|
|
109
|
-
amount {
|
|
110
|
-
value
|
|
111
|
-
currency
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
regular {
|
|
115
|
-
amount {
|
|
116
|
-
value
|
|
117
|
-
currency
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
roles
|
|
121
|
-
}
|
|
122
|
-
minimum {
|
|
123
|
-
final {
|
|
124
|
-
amount {
|
|
125
|
-
value
|
|
126
|
-
currency
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
regular {
|
|
130
|
-
amount {
|
|
131
|
-
value
|
|
132
|
-
currency
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
roles
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
${se}
|
|
142
|
-
`,ae=`
|
|
143
|
-
query GET_PRODUCT_DATA($skus: [String]) {
|
|
144
|
-
products(skus: $skus) {
|
|
145
|
-
...ProductFragment
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
${te}
|
|
150
|
-
`,Oe=async(t,u)=>{var n,o,m,l,s;const i=(l=(m=(o=(n=j)==null?void 0:n.getConfig())==null?void 0:o.models)==null?void 0:m.ProductDetails)==null?void 0:l.initialData;if(i)return K(i);const{data:r}=await R(ae,{method:"GET",variables:{skus:[t]}}),e=(s=r==null?void 0:r.products)==null?void 0:s[0];return u!=null&&u.optionsUIDs&&(e.optionUIDs=u.optionsUIDs),K(e,{preselectFirstOption:u==null?void 0:u.preselectFirstOption})},de=`
|
|
151
|
-
query REFINE_PRODUCT_QUERY(
|
|
152
|
-
$optionIds: [String!]!
|
|
153
|
-
$sku: String!
|
|
154
|
-
) {
|
|
155
|
-
# Refined Product
|
|
156
|
-
refineProduct(
|
|
157
|
-
optionIds: $optionIds
|
|
158
|
-
sku: $sku
|
|
159
|
-
) {
|
|
160
|
-
...ProductFragment
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
# Parent Product
|
|
164
|
-
products(skus: [$sku]) {
|
|
165
|
-
...ProductFragment
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
# %extendedPlaceholder%
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
${te}
|
|
172
|
-
`;async function Z(t,u){const i=fe(u),r=Pe(i,t),e=de.replace("# %extendedPlaceholder%",r),{data:n}=await R(e,{method:"GET",variables:{optionIds:u,sku:t}});return n}const be=async(t,u,i)=>{var a,f,d,h;const r=await Z(t,u);if(!r)return null;let{products:e,refineProduct:n,...o}=r;const m=e==null?void 0:e[0],l=pe(Object.values(o),m.options,i);if(i!=null&&i.length&&n===null){u=ye(l,u,i);const S=await Z(t,u);n=S==null?void 0:S.refineProduct}const s=K({...n||m,sku:m.sku,name:m.name,externalParentId:m==null?void 0:m.externalId,options:l,optionUIDs:u,variantSku:(n==null?void 0:n.__typename)==="SimpleProductView"?n==null?void 0:n.sku:void 0}),c=(h=(d=(f=(a=j)==null?void 0:a.getConfig())==null?void 0:f.models)==null?void 0:d.ProductDetails)==null?void 0:h.fallbackData;return c?c(m,s):s};function fe(t){if(t.length<2)return[t];const u=[];return t.forEach(i=>{const r=[];t.forEach(e=>{i!==e&&r.push(e)}),u.push(r)}),u}function Pe(t,u){return t.map((i,r)=>`
|
|
173
|
-
ProductOption${r}: refineProduct(
|
|
174
|
-
optionIds: [
|
|
175
|
-
${i.map(e=>`"${e}"`).join(", ")}
|
|
176
|
-
]
|
|
177
|
-
sku: "${u}"
|
|
178
|
-
) {
|
|
179
|
-
... on ComplexProductView {
|
|
180
|
-
options {
|
|
181
|
-
...ProductOptionFragment
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
`).join("")}function pe(t,u,i){const r=Object.values(t).filter(n=>!!n).reduce((n,o)=>o.options?[...n,...o.options]:[...n],[]),e=new Map(u.map(n=>[n.id,n]));return r.forEach(n=>{i!=null&&i.includes(n.id)||e.set(n.id,n)}),[...e.values()]}function ye(t,u,i){const r=[];let e;return t.forEach(n=>{var o,m,l,s;i.includes(n.id)?e=((m=(o=n.values)==null?void 0:o.find(c=>u.includes(c==null?void 0:c.id)))==null?void 0:m.id)||((l=n.values[0])==null?void 0:l.id):e=(s=n.values[0])==null?void 0:s.id,r.push(e)}),r}export{he as a,_e as b,Oe as c,be as d,R as f,ke as g,Se as r,we as s};
|
package/chunks/initialize.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Initializer as t}from"@dropins/tools/lib.js";const i=new t({init:async n=>{const o={defaultLocale:"en-US"};i.config.setConfig({...o,...n})},listeners:()=>[]}),c=i.config;export{c,i};
|