@dropins/storefront-pdp 3.4.0-alpha-20261026164529 → 3.4.0
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/CHANGELOG.md +58 -11
- package/api.js +5 -5
- package/api.js.map +1 -1
- package/chunks/components.js.map +1 -1
- package/chunks/useProductData.js +1 -1
- package/chunks/useProductData.js.map +1 -1
- package/containers/ProductDetails.js +1 -1
- package/containers/ProductOptions.js +1 -1
- package/containers/index.d.ts +0 -1
- package/data/models/index.d.ts +0 -1
- package/package.json +2 -2
- package/containers/ProductRating/ProductRating.d.ts +0 -22
- package/containers/ProductRating/index.d.ts +0 -17
- package/containers/ProductRating.d.ts +0 -1
- package/containers/ProductRating.js +0 -4
- package/containers/ProductRating.js.map +0 -1
- package/data/models/product-rating-model.d.ts +0 -26
- package/lib/product-rating.d.ts +0 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,63 @@
|
|
|
1
1
|
# @dropins/storefront-pdp
|
|
2
2
|
|
|
3
|
-
## 3.4.0
|
|
3
|
+
## 3.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 4b7a9aa: Add a typed data model for the `ac_customizable_options` product
|
|
8
|
+
attribute (Magento Customizable Options: priced selectable choices and
|
|
9
|
+
shopper-input fields). Adds `getCustomizableOptionsAttribute()` in
|
|
10
|
+
`useProductData` for typed, JSON-string-or-object-safe access, coercing string
|
|
11
|
+
`price` fields to numbers, and exports `isCustomOptionUID` from
|
|
12
|
+
`getRefinedProduct` for reuse.
|
|
13
|
+
- bd4f3a7: Render priced selectable customizable options
|
|
14
|
+
(drop_down/radio/checkbox/multiple) from the `ac_customizable_options` product
|
|
15
|
+
attribute. Adds a `CustomizableOptions` component and
|
|
16
|
+
`ProductCustomizableOptions` container, and wires an equivalent
|
|
17
|
+
`renderCustomizableOptions()` into the deprecated `ProductDetails`/`Product`
|
|
18
|
+
components. Selecting a value toggles its `custom-option/<optionId>/<valueId>`
|
|
19
|
+
UID in `values.optionsUIDs`; required options are shown with a "Required"
|
|
20
|
+
label. Products with no `ac_customizable_options` attribute render nothing
|
|
21
|
+
extra. Required-option enforcement/Add-to-Cart gating and a live price-delta
|
|
22
|
+
preview are out of scope for this change and tracked separately.
|
|
23
|
+
- a5e4a7e: Support text, multiline text, date, local date-time, and time
|
|
24
|
+
customizable options in both PDP rendering paths. Preserve entered option UIDs
|
|
25
|
+
and values alongside selectable options and bundle quantities, and display a
|
|
26
|
+
disabled placeholder for file options.
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- b489882: Fix accessibility issues in the product image preview modal: keyboard
|
|
31
|
+
focus is now trapped inside the dialog while open and restored to the trigger
|
|
32
|
+
on close, and the carousel slide indicators now expose their selected state to
|
|
33
|
+
assistive technology and meet minimum color contrast requirements.
|
|
34
|
+
- 8307ce4: Upgrade `@adobe-commerce/elsie` from `~1.9.0` to
|
|
35
|
+
`3.0.0-alpha-20261007160511` and migrate the repository from Yarn to pnpm
|
|
36
|
+
11.17.0. This combines the v1→v2 and v2→v3 elsie toolchain migrations:
|
|
37
|
+
`.elsie.js` moves to `elsie.config.js`, `.eslintrc.js` is replaced by a flat
|
|
38
|
+
`eslint.config.js` composed from Elsie's named layers, `jest.config.js` uses
|
|
39
|
+
the `defineConfig({ preset: 'preact' })` factory, and
|
|
40
|
+
`prettier.config.js`/Husky are replaced by the `"prettier"` package.json key,
|
|
41
|
+
Elsie's `format`/`format:check` scripts, and a native `.githooks/pre-commit`
|
|
42
|
+
hook. Tests import `render`/`fireEvent`/etc. from
|
|
43
|
+
`@adobe-commerce/elsie/tests/preact` instead of the removed
|
|
44
|
+
`@adobe-commerce/elsie/lib/tests`. The pnpm migration adds a seven-day
|
|
45
|
+
dependency release-age gate (`minimumReleaseAge`) and explicit build-script
|
|
46
|
+
permissions (`allowBuilds`) in `pnpm-workspace.yaml`, for both the package
|
|
47
|
+
root and the `cypress/` sub-project. Storybook resolves its framework, addons,
|
|
48
|
+
and a11y test-runner hooks through Elsie's `storybook/config` and
|
|
49
|
+
`storybook/test-runner` entry points.
|
|
50
|
+
|
|
51
|
+
Because Elsie now supplies `axe-playwright`, the Storybook accessibility
|
|
52
|
+
checks run for the first time and surfaced a contrast issue in the regular
|
|
53
|
+
price shown next to a special price. `.pdp-price__amount--grey` and
|
|
54
|
+
`.pdp-product__price--grey` used `--color-neutral-500`, documented in the
|
|
55
|
+
design system as "Disabled text" and measuring 1.95:1 against white. Both now
|
|
56
|
+
use `--color-neutral-700` ("Secondary text"), measuring 5.7:1 and meeting the
|
|
57
|
+
WCAG 2 AA 4.5:1 minimum. The affected element is meaningful content labelled
|
|
58
|
+
`Regular Price` for assistive technology, not a disabled control.
|
|
59
|
+
|
|
60
|
+
## 3.4.0-beta.0
|
|
4
61
|
|
|
5
62
|
### Minor Changes
|
|
6
63
|
|
|
@@ -24,16 +81,6 @@
|
|
|
24
81
|
customizable options in both PDP rendering paths. Preserve entered option UIDs
|
|
25
82
|
and values alongside selectable options and bundle quantities, and display a
|
|
26
83
|
disabled placeholder for file options.
|
|
27
|
-
- 8add2e5: Add the `ProductRating` container, which renders the product average
|
|
28
|
-
rating and review count with the SDK `StarRating` component. Values come from
|
|
29
|
-
the `ac_rating_summary` (0–100) and `ac_review_count` product attributes; the
|
|
30
|
-
container renders nothing when they are missing (for example, when reviews are
|
|
31
|
-
disabled or the product has no approved reviews). Configurable products keep
|
|
32
|
-
the parent product's rating when a variant is selected.
|
|
33
|
-
|
|
34
|
-
Requires `StarRating`, currently only available in the `@dropins/tools` 3.0
|
|
35
|
-
alpha (`3.0.0-alpha-20261021202251`). Do not include in a stable release until
|
|
36
|
-
`StarRating` ships in a stable `@dropins/tools`.
|
|
37
84
|
|
|
38
85
|
### Patch Changes
|
|
39
86
|
|
package/api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Copyright 2026 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{merge as ve,Initializer as _e}from"@dropins/tools/lib.js";import{events as E}from"@dropins/tools/event-bus.js";import{PRODUCT_FRAGMENT as ne}from"./fragments.js";import{FetchGraphQL as Se}from"@dropins/tools/fetch-graphql.js";function Tt(e){const r=new URLSearchParams(window.location.search);Object.entries(e).forEach(([n,t])=>{t===null?r.delete(n):r.set(n,String(t))});let i=window.location.pathname;i+=`?${r.toString()}`,i+=window.location.hash,window.history.replaceState({},"",i)}function Te(){const e=new URLSearchParams(window.location.search),r={};return e.forEach((i,n)=>{r[n]=i}),r}function Ae(e=1){const i=(Te()||{}).quantity;if(i){const n=parseInt(i,10);if(!isNaN(n)&&Number.isInteger(n)&&n>0)return n}return e}function xe(e){var r,i,n,t,s,u,l,a,c,o,m,f;return{productId:Number(e==null?void 0:e.externalId),name:e==null?void 0:e.name,sku:(e==null?void 0:e.variantSku)||(e==null?void 0:e.sku),topLevelSku:e==null?void 0:e.sku,variantName:e==null?void 0:e.variantName,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:e==null?void 0:e.productType,pricing:{regularPrice:((i=(r=e==null?void 0:e.prices)==null?void 0:r.regular)==null?void 0:i.amount)||0,minimalPrice:(t=(n=e==null?void 0:e.prices)==null?void 0:n.final)==null?void 0:t.minimumAmount,maximalPrice:(u=(s=e==null?void 0:e.prices)==null?void 0:s.final)==null?void 0:u.maximumAmount,specialPrice:(a=(l=e==null?void 0:e.prices)==null?void 0:l.final)==null?void 0:a.amount,tierPricing:void 0,currencyCode:((o=(c=e==null?void 0:e.prices)==null?void 0:c.final)==null?void 0:o.currency)||"USD"},canonicalUrl:e==null?void 0:e.url,mainImageUrl:(f=(m=e==null?void 0:e.images)==null?void 0:m[0])==null?void 0:f.url}}const we={PRODUCT_CONTEXT:"productContext",CHANNEL_CONTEXT:"channelContext"},Ue={PRODUCT_PAGE_VIEW:"product-page-view"};function Oe(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function ke(){return{_id:"https://ns.adobe.com/xdm/channels/web",_type:"https://ns.adobe.com/xdm/channel-types/web"}}function Ce(e,r){const i=Oe();i.push({[e]:null}),i.push({[e]:r})}function Ne(){typeof window>"u"||Ce(we.CHANNEL_CONTEXT,ke())}function Ie(e,r){Oe().push(n=>{const t=n.getState?n.getState():{};n.push({event:e,eventInfo:{...t,...r}})})}function Fe(e){const r=xe(e);Ce(we.PRODUCT_CONTEXT,r),Ne(),Ie(Ue.PRODUCT_PAGE_VIEW)}var Z=(e=>(e.ComplexProduct="complex",e.SimpleProduct="simple",e))(Z||{}),De=(e=>(e.ComplexProductView="ComplexProductView",e.SimpleProductView="SimpleProductView",e))(De||{});function Qe(e){return!!e.canEditQuantity}function Ve(e){const r=e.quantity??e.qty,i=Number(r);return Number.isFinite(i)&&i>0?i:1}function Me(e,r){if(!(e!=null&&e.length)||!(r!=null&&r.length))return{};const i={};for(const n of e)if(n.typename==="ProductViewOptionValueProduct")for(const t of n.items)r.includes(t.id)&&(i[t.id]=t.quantity??1);return i}function Ge(e,r,i){const n=Me(r,i);return e?Object.fromEntries(Object.entries(n).map(([t,s])=>[t,e[t]??s])):n}function be(e){return e?Object.entries(e).map(([r,i])=>({uid:r,value:String(i)})):[]}function Le(e){if(!(e!=null&&e.length))return{};const r={};for(const i of e){const n=Number(i.value);Number.isFinite(n)&&n>0&&(r[i.uid]=n)}return r}function qe(e,r,i){const n=new Set([...Object.keys(r||{}),...Object.keys(i)]);return[...(e||[]).filter(t=>!n.has(t.uid)),...be(i)]}function z(e,r){var u,l,a,c,o,m,f,P,h,v,C,b;const i=((c=(a=(l=(u=e==null?void 0:e.options)==null?void 0:u[0])==null?void 0:l.values)==null?void 0:a[0])==null?void 0:c.__typename)==="ProductViewOptionValueProduct",n=Ye(e,i,r==null?void 0:r.preselectFirstOption),t=(e==null?void 0:e.__typename)===De.SimpleProductView?Z.SimpleProduct:Z.ComplexProduct,s=e?{name:e.name,sku:e.sku,isBundle:i,addToCartAllowed:e.addToCartAllowed,inStock:e.inStock,shortDescription:e.shortDescription,metaDescription:e.metaDescription,metaKeyword:e.metaKeyword,metaTitle:e.metaTitle,description:e.description,images:Re(e),videos:Be(e),prices:Ke(e,i,n),attributes:je(e),options:$e(He(e,i)),optionUIDs:n,url:e.url,urlKey:e.urlKey,externalId:e.externalId,externalParentId:e.externalParentId,variantSku:e.variantSku,variantName:e.variantName,productType:t}:null;return ve(s,((P=(f=(m=(o=I.getConfig())==null?void 0:o.models)==null?void 0:m.ProductDetails)==null?void 0:f.transformer)==null?void 0:P.call(f,e))??((b=(C=(v=(h=I.getConfig())==null?void 0:h.models)==null?void 0:v.ProductDetails)==null?void 0:C.transform)==null?void 0:b.call(C,e)))}function $e(e){var i,n,t;if(!e)return;const r=(t=(n=(i=I.getConfig())==null?void 0:i.models)==null?void 0:n.ProductOptions)==null?void 0:t.optionsTransformer;if(!r)return e;try{return r(e)??e}catch(s){return console.error("product-transform: optionsTransformer threw an error, using original options",s),e}}function Re(e){var r,i;return(i=(r=e.images)==null?void 0:r.filter(n=>{var t;return!((t=n.roles)!=null&&t.includes("hide_from_pdp"))}))==null?void 0:i.map(n=>(n.url=n.url.replace(/^https?:/,""),n))}function Be(e){var r;return(r=e.videos)==null?void 0:r.map(i=>{var n,t;return{url:(n=i.url)==null?void 0:n.replace(/^https?:/,""),title:i.title,description:i.description,preview:i.preview?{url:(t=i.preview.url)==null?void 0:t.replace(/^https?:/,""),label:i.preview.label,roles:i.preview.roles}:void 0}})}function je(e){var r,i;return(i=(r=e.attributes)==null?void 0:r.filter(({roles:n})=>(n==null?void 0:n.indexOf("visible_in_pdp"))!==-1))==null?void 0:i.map(({label:n,value:t,name:s})=>{if(s!=null&&s.startsWith("ac_"))try{let u;typeof t=="string"?u=JSON.parse(t):typeof t=="object"&&(u=t);const l=ee(u);return{id:s,label:n,value:JSON.stringify(l)}}catch{return{id:s,label:n,value:t.toString().split(",").join(", ")}}return{id:s,label:n,value:t.toString().split(",").join(", ")}})}function ee(e){if(Array.isArray(e))return e.map(ee);if(e!==null&&typeof e=="object"){const r={};for(const[i,n]of Object.entries(e)){let t=i;i==="validation_rule"?t="validationRule":i==="min_length"?t="minLength":i==="max_length"?t="maxLength":i==="purchase_separately"&&(t="purchaseSeparately"),r[t]=ee(n)}return r}return e}function He(e,r){const{options:i,optionUIDs:n}=e;return i==null?void 0:i.map(({id:t,title:s,required:u,multi:l,values:a})=>{var m,f;const c=(m=a==null?void 0:a[0])==null?void 0:m.__typename;let o=(f=a==null?void 0:a[0])==null?void 0:f.type;return o?o=o.replace("COLOR_HEX","color").replace("TEXT","text").replace("IMAGE","image"):o="dropdown",{id:t,type:o,typename:c,label:s,required:u,multiple:l,items:r?We(a,n):Xe(a,n,o)}})}function We(e,r){return e==null?void 0:e.filter(({enabled:i})=>typeof i>"u"||i).map(i=>{const{id:n,title:t,inStock:s,isDefault:u,product:l}=i;return{id:n,inStock:s,label:t,selected:(r==null?void 0:r.indexOf(n))>-1||u,value:n,product:l,quantity:Ve(i),canEditQuantity:Qe(i)}})}function Xe(e,r,i){return e==null?void 0:e.map(({id:n,title:t,inStock:s,value:u})=>({id:n,inStock:s,label:t,selected:(r==null?void 0:r.indexOf(n))>-1,value:(i==null?void 0:i.toLowerCase())==="dropdown"?n:u==null?void 0:u.replace(/^https?:/,"")}))}function Ke(e,r,i){var b,ie,se,ue,ae;const{price:n,priceRange:t,options:s,optionUIDs:u=i}=e;if(!n&&!t)return null;const{__typename:l}=e;function a(){var D,p,g,w,O,_,S,A,x,U;const T=(p=(D=n==null?void 0:n.regular)==null?void 0:D.amount)==null?void 0:p.value,d=((w=(g=n==null?void 0:n.final)==null?void 0:g.amount)==null?void 0:w.value)??((_=(O=n==null?void 0:n.regular)==null?void 0:O.amount)==null?void 0:_.value),y=((A=(S=n==null?void 0:n.regular)==null?void 0:S.amount)==null?void 0:A.currency)==="NONE"?"USD":(U=(x=n==null?void 0:n.regular)==null?void 0:x.amount)==null?void 0:U.currency;return[T,d,d,y]}function c(){var p,g,w,O,_,S,A,x,U,Q,V,M,G,L,q,$,R,B,j,H,W;const T=(w=(g=(p=t==null?void 0:t.minimum)==null?void 0:p.final)==null?void 0:g.amount)==null?void 0:w.value,d=(S=(_=(O=t==null?void 0:t.maximum)==null?void 0:O.final)==null?void 0:_.amount)==null?void 0:S.value;let y;((U=(x=(A=t==null?void 0:t.minimum)==null?void 0:A.regular)==null?void 0:x.amount)==null?void 0:U.value)===((M=(V=(Q=t==null?void 0:t.maximum)==null?void 0:Q.regular)==null?void 0:V.amount)==null?void 0:M.value)&&(y=(q=(L=(G=t==null?void 0:t.minimum)==null?void 0:G.regular)==null?void 0:L.amount)==null?void 0:q.value);const D=((B=(R=($=t==null?void 0:t.minimum)==null?void 0:$.final)==null?void 0:R.amount)==null?void 0:B.currency)==="NONE"?"USD":(W=(H=(j=t==null?void 0:t.minimum)==null?void 0:j.final)==null?void 0:H.amount)==null?void 0:W.currency;return[y,T,d,D]}function o(){var w,O,_,S,A,x,U,Q,V,M,G,L,q,$,R,B,j,H,W,oe,le,ce,me,fe;let T=0,d=0;s==null||s.forEach(F=>{var de;const J=F==null?void 0:F.values;if(J&&Array.isArray(J)){const N=J.map(k=>{var X,K,Pe,he;return(he=(Pe=(K=(X=k==null?void 0:k.product)==null?void 0:X.price)==null?void 0:K.regular)==null?void 0:Pe.amount)==null?void 0:he.value}).filter(k=>k!==void 0),Y=N.length>0?Math.max(...N):0;T+=Y}(de=F==null?void 0:F.values)==null||de.forEach(N=>{var Y,k,X,K;u!=null&&u.includes(N.id)&&(d+=(K=(X=(k=(Y=N==null?void 0:N.product)==null?void 0:Y.price)==null?void 0:k.final)==null?void 0:X.amount)==null?void 0:K.value)})});const y=(_=(O=(w=t==null?void 0:t.minimum)==null?void 0:w.final)==null?void 0:O.amount)==null?void 0:_.value,D=(x=(A=(S=t==null?void 0:t.maximum)==null?void 0:S.final)==null?void 0:A.amount)==null?void 0:x.value;let p;((V=(Q=(U=t==null?void 0:t.minimum)==null?void 0:U.regular)==null?void 0:Q.amount)==null?void 0:V.value)===((L=(G=(M=t==null?void 0:t.maximum)==null?void 0:M.regular)==null?void 0:G.amount)==null?void 0:L.value)&&(p=(R=($=(q=t==null?void 0:t.minimum)==null?void 0:q.regular)==null?void 0:$.amount)==null?void 0:R.value);const g=((H=(j=(B=t==null?void 0:t.minimum)==null?void 0:B.final)==null?void 0:j.amount)==null?void 0:H.currency)==="NONE"?"USD":(le=(oe=(W=t==null?void 0:t.minimum)==null?void 0:W.final)==null?void 0:oe.amount)==null?void 0:le.currency;return r&&(u==null?void 0:u.length)<1?[p,y,D,g]:T===((fe=(me=(ce=t==null?void 0:t.maximum)==null?void 0:ce.regular)==null?void 0:me.amount)==null?void 0:fe.value)?[d,d,d,g]:[p,y,D,g]}const[m,f,P,h]=l==="SimpleProductView"?a():r?o():c(),v=l==="SimpleProductView"?(b=n==null?void 0:n.roles)==null?void 0:b.includes("visible"):((se=(ie=t==null?void 0:t.maximum)==null?void 0:ie.roles)==null?void 0:se.includes("visible"))&&((ae=(ue=t==null?void 0:t.minimum)==null?void 0:ue.roles)==null?void 0:ae.includes("visible"));function C(T){return!T||!Array.isArray(T)?[]:T.map(d=>{var y,D,p,g,w,O;return{tier:{amount:(D=(y=d.tier)==null?void 0:y.amount)==null?void 0:D.value,currency:((g=(p=d.tier)==null?void 0:p.amount)==null?void 0:g.currency)||h},quantity:((w=d.quantity[0])==null?void 0:w.gte)||((O=d.quantity[0])==null?void 0:O.lt)||0}}).sort((d,y)=>d.quantity-y.quantity)}return P&&f===P?{regular:{amount:m,currency:h,variant:m&&f!==m?"strikethrough":"default"},final:{amount:P,currency:h,variant:"default"},tiers:C(n==null?void 0:n.tiers),visible:v}:{final:{minimumAmount:f,maximumAmount:P,currency:h},tiers:C(n==null?void 0:n.tiers),visible:v}}function Ye(e,r,i){var n;if(r){const t=Array.isArray(e==null?void 0:e.optionUIDs)?e.optionUIDs.filter(Boolean):[];if(t.length>0)return t;const s=[];return(n=e==null?void 0:e.options)==null||n.forEach(({values:u,multi:l})=>{var o;const a=u==null?void 0:u.filter(({enabled:m})=>typeof m>"u"||m),c=a==null?void 0:a.filter(({isDefault:m})=>m);if(c!=null&&c.length){l?c.forEach(m=>s.push(m.id)):s.push(c[0].id);return}i&&((o=a==null?void 0:a[0])!=null&&o.id)&&s.push(a[0].id)}),s}return e==null?void 0:e.optionUIDs}function wt(e,r){if(!(r!=null&&r.length))return Object.values(e).flatMap(n=>"values"in n?n.values:n.value?[n.value]:[]);const i=[];for(const n of r){const t=e[n.id];if(t)if("values"in t){const s=new Map(n.items.map((l,a)=>[l.id,a])),u=[...t.values].sort((l,a)=>(s.get(l)??0)-(s.get(a)??0));i.push(...u)}else"value"in t&&t.value&&i.push(t.value)}return i}function ze(e,r,i){if(!(e!=null&&e.length))return!0;const n=r??[];return i?e.every(t=>t.required?t.items.filter(u=>n.includes(u.id)).length>=1:!0):n.length===e.length}const te=new _e({init:async e=>{var l,a,c;const r=(a=(l=e==null?void 0:e.models)==null?void 0:l.ProductDetails)==null?void 0:a.initialData,n=((c=(Te()||{}).optionsUIDs)==null?void 0:c.split(","))||(r==null?void 0:r.optionsUIDs),t=Ae(1),u={...{defaultLocale:"en-US",globalLocale:"en-US",persistURLParams:!1,acdl:!1,optionsUIDs:n},...e};if(te.config.setConfig({...u}),u!=null&&u.sku){const o=r?z(r):await ge(u.sku,{preselectFirstOption:u.preselectFirstOption});E.emit("pdp/data",o,{scope:u.scope});const m=Ee({scope:u.scope}),f=(m==null?void 0:m.bundleOptionQuantities)??Le(m==null?void 0:m.enteredOptions),P=o!=null&&o.isBundle?Ge(f,o==null?void 0:o.options,o==null?void 0:o.optionUIDs):void 0,h={sku:u.sku,quantity:t,optionsUIDs:o==null?void 0:o.optionUIDs,...P&&{bundleOptionQuantities:P,enteredOptions:be(P)}};ft(()=>({...h}),{scope:u.scope}),dt(()=>o!=null&&o.options?ze(o.options,o.optionUIDs,o.isBundle):!0,{scope:u.scope}),u.acdl&&o&&Fe(o)}},listeners:()=>[E.on("locale",async()=>{const{sku:e,scope:r}=te.config.getConfig();if(e){const i=await ge(e);E.emit("pdp/data",i,{scope:r})}})]}),I=te.config,{setEndpoint:Ot,setFetchGraphQlHeader:Ct,removeFetchGraphQlHeader:Dt,setFetchGraphQlHeaders:bt,getFetchGraphQlHeader:Et,fetchGraphQl:re,getConfig:vt}=new Se().getMethods();function _t(e){return{schemaVersion:e.schemaVersion,selectable:e.selectable.map(r=>({...r,values:r.values.map(i=>({...i,price:Number(i.price)}))})),shopperInput:e.shopperInput.map(r=>({...r,price:r.price===void 0?void 0:Number(r.price)}))}}const Je=`
|
|
3
|
+
import{merge as ve,Initializer as Ee}from"@dropins/tools/lib.js";import{events as v}from"@dropins/tools/event-bus.js";import{PRODUCT_FRAGMENT as ne}from"./fragments.js";import{FetchGraphQL as Se}from"@dropins/tools/fetch-graphql.js";function Pt(e){const r=new URLSearchParams(window.location.search);Object.entries(e).forEach(([n,t])=>{t===null?r.delete(n):r.set(n,String(t))});let i=window.location.pathname;i+=`?${r.toString()}`,i+=window.location.hash,window.history.replaceState({},"",i)}function ge(){const e=new URLSearchParams(window.location.search),r={};return e.forEach((i,n)=>{r[n]=i}),r}function xe(e=1){const i=(ge()||{}).quantity;if(i){const n=parseInt(i,10);if(!isNaN(n)&&Number.isInteger(n)&&n>0)return n}return e}function _e(e){var r,i,n,t,s,u,l,o,c,a,m,f;return{productId:Number(e==null?void 0:e.externalId),name:e==null?void 0:e.name,sku:(e==null?void 0:e.variantSku)||(e==null?void 0:e.sku),topLevelSku:e==null?void 0:e.sku,variantName:e==null?void 0:e.variantName,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:e==null?void 0:e.productType,pricing:{regularPrice:((i=(r=e==null?void 0:e.prices)==null?void 0:r.regular)==null?void 0:i.amount)||0,minimalPrice:(t=(n=e==null?void 0:e.prices)==null?void 0:n.final)==null?void 0:t.minimumAmount,maximalPrice:(u=(s=e==null?void 0:e.prices)==null?void 0:s.final)==null?void 0:u.maximumAmount,specialPrice:(o=(l=e==null?void 0:e.prices)==null?void 0:l.final)==null?void 0:o.amount,tierPricing:void 0,currencyCode:((a=(c=e==null?void 0:e.prices)==null?void 0:c.final)==null?void 0:a.currency)||"USD"},canonicalUrl:e==null?void 0:e.url,mainImageUrl:(f=(m=e==null?void 0:e.images)==null?void 0:m[0])==null?void 0:f.url}}const Oe={PRODUCT_CONTEXT:"productContext",CHANNEL_CONTEXT:"channelContext"},ke={PRODUCT_PAGE_VIEW:"product-page-view"};function we(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function Ae(){return{_id:"https://ns.adobe.com/xdm/channels/web",_type:"https://ns.adobe.com/xdm/channel-types/web"}}function Ce(e,r){const i=we();i.push({[e]:null}),i.push({[e]:r})}function Ne(){typeof window>"u"||Ce(Oe.CHANNEL_CONTEXT,Ae())}function Ue(e,r){we().push(n=>{const t=n.getState?n.getState():{};n.push({event:e,eventInfo:{...t,...r}})})}function Ie(e){const r=_e(e);Ce(Oe.PRODUCT_CONTEXT,r),Ne(),Ue(ke.PRODUCT_PAGE_VIEW)}var Z=(e=>(e.ComplexProduct="complex",e.SimpleProduct="simple",e))(Z||{}),De=(e=>(e.ComplexProductView="ComplexProductView",e.SimpleProductView="SimpleProductView",e))(De||{});function Fe(e){return!!e.canEditQuantity}function Qe(e){const r=e.quantity??e.qty,i=Number(r);return Number.isFinite(i)&&i>0?i:1}function Ve(e,r){if(!(e!=null&&e.length)||!(r!=null&&r.length))return{};const i={};for(const n of e)if(n.typename==="ProductViewOptionValueProduct")for(const t of n.items)r.includes(t.id)&&(i[t.id]=t.quantity??1);return i}function Ge(e,r,i){const n=Ve(r,i);return e?Object.fromEntries(Object.entries(n).map(([t,s])=>[t,e[t]??s])):n}function Te(e){return e?Object.entries(e).map(([r,i])=>({uid:r,value:String(i)})):[]}function Me(e){if(!(e!=null&&e.length))return{};const r={};for(const i of e){const n=Number(i.value);Number.isFinite(n)&&n>0&&(r[i.uid]=n)}return r}function Le(e,r,i){const n=new Set([...Object.keys(r||{}),...Object.keys(i)]);return[...(e||[]).filter(t=>!n.has(t.uid)),...Te(i)]}function J(e,r){var u,l,o,c,a,m,f,P,h,E,D,b;const i=((c=(o=(l=(u=e==null?void 0:e.options)==null?void 0:u[0])==null?void 0:l.values)==null?void 0:o[0])==null?void 0:c.__typename)==="ProductViewOptionValueProduct",n=We(e,i,r==null?void 0:r.preselectFirstOption),t=(e==null?void 0:e.__typename)===De.SimpleProductView?Z.SimpleProduct:Z.ComplexProduct,s=e?{name:e.name,sku:e.sku,isBundle:i,addToCartAllowed:e.addToCartAllowed,inStock:e.inStock,shortDescription:e.shortDescription,metaDescription:e.metaDescription,metaKeyword:e.metaKeyword,metaTitle:e.metaTitle,description:e.description,images:$e(e),videos:je(e),prices:Re(e,i,n),attributes:Be(e),options:qe(He(e,i)),optionUIDs:n,url:e.url,urlKey:e.urlKey,externalId:e.externalId,externalParentId:e.externalParentId,variantSku:e.variantSku,variantName:e.variantName,productType:t}:null;return ve(s,((P=(f=(m=(a=I.getConfig())==null?void 0:a.models)==null?void 0:m.ProductDetails)==null?void 0:f.transformer)==null?void 0:P.call(f,e))??((b=(D=(E=(h=I.getConfig())==null?void 0:h.models)==null?void 0:E.ProductDetails)==null?void 0:D.transform)==null?void 0:b.call(D,e)))}function qe(e){var i,n,t;if(!e)return;const r=(t=(n=(i=I.getConfig())==null?void 0:i.models)==null?void 0:n.ProductOptions)==null?void 0:t.optionsTransformer;if(!r)return e;try{return r(e)??e}catch(s){return console.error("product-transform: optionsTransformer threw an error, using original options",s),e}}function $e(e){var r,i;return(i=(r=e.images)==null?void 0:r.filter(n=>{var t;return!((t=n.roles)!=null&&t.includes("hide_from_pdp"))}))==null?void 0:i.map(n=>(n.url=n.url.replace(/^https?:/,""),n))}function je(e){var r;return(r=e.videos)==null?void 0:r.map(i=>{var n,t;return{url:(n=i.url)==null?void 0:n.replace(/^https?:/,""),title:i.title,description:i.description,preview:i.preview?{url:(t=i.preview.url)==null?void 0:t.replace(/^https?:/,""),label:i.preview.label,roles:i.preview.roles}:void 0}})}function Be(e){var r,i;return(i=(r=e.attributes)==null?void 0:r.filter(({roles:n})=>(n==null?void 0:n.indexOf("visible_in_pdp"))!==-1))==null?void 0:i.map(({label:n,value:t,name:s})=>{if(s!=null&&s.startsWith("ac_"))try{let u;typeof t=="string"?u=JSON.parse(t):typeof t=="object"&&(u=t);const l=ee(u);return{id:s,label:n,value:JSON.stringify(l)}}catch{return{id:s,label:n,value:t.toString().split(",").join(", ")}}return{id:s,label:n,value:t.toString().split(",").join(", ")}})}function ee(e){if(Array.isArray(e))return e.map(ee);if(e!==null&&typeof e=="object"){const r={};for(const[i,n]of Object.entries(e)){let t=i;i==="validation_rule"?t="validationRule":i==="min_length"?t="minLength":i==="max_length"?t="maxLength":i==="purchase_separately"&&(t="purchaseSeparately"),r[t]=ee(n)}return r}return e}function He(e,r){const{options:i,optionUIDs:n}=e;return i==null?void 0:i.map(({id:t,title:s,required:u,multi:l,values:o})=>{var m,f;const c=(m=o==null?void 0:o[0])==null?void 0:m.__typename;let a=(f=o==null?void 0:o[0])==null?void 0:f.type;return a?a=a.replace("COLOR_HEX","color").replace("TEXT","text").replace("IMAGE","image"):a="dropdown",{id:t,type:a,typename:c,label:s,required:u,multiple:l,items:r?Xe(o,n):Ke(o,n,a)}})}function Xe(e,r){return e==null?void 0:e.filter(({enabled:i})=>typeof i>"u"||i).map(i=>{const{id:n,title:t,inStock:s,isDefault:u,product:l}=i;return{id:n,inStock:s,label:t,selected:(r==null?void 0:r.indexOf(n))>-1||u,value:n,product:l,quantity:Qe(i),canEditQuantity:Fe(i)}})}function Ke(e,r,i){return e==null?void 0:e.map(({id:n,title:t,inStock:s,value:u})=>({id:n,inStock:s,label:t,selected:(r==null?void 0:r.indexOf(n))>-1,value:(i==null?void 0:i.toLowerCase())==="dropdown"?n:u==null?void 0:u.replace(/^https?:/,"")}))}function Re(e,r,i){var b,ie,se,ue,oe;const{price:n,priceRange:t,options:s,optionUIDs:u=i}=e;if(!n&&!t)return null;const{__typename:l}=e;function o(){var T,y,g,w,C,S,x,_,k,A;const O=(y=(T=n==null?void 0:n.regular)==null?void 0:T.amount)==null?void 0:y.value,d=((w=(g=n==null?void 0:n.final)==null?void 0:g.amount)==null?void 0:w.value)??((S=(C=n==null?void 0:n.regular)==null?void 0:C.amount)==null?void 0:S.value),p=((_=(x=n==null?void 0:n.regular)==null?void 0:x.amount)==null?void 0:_.currency)==="NONE"?"USD":(A=(k=n==null?void 0:n.regular)==null?void 0:k.amount)==null?void 0:A.currency;return[O,d,d,p]}function c(){var y,g,w,C,S,x,_,k,A,Q,V,G,M,L,q,$,j,B,H,X,K;const O=(w=(g=(y=t==null?void 0:t.minimum)==null?void 0:y.final)==null?void 0:g.amount)==null?void 0:w.value,d=(x=(S=(C=t==null?void 0:t.maximum)==null?void 0:C.final)==null?void 0:S.amount)==null?void 0:x.value;let p;((A=(k=(_=t==null?void 0:t.minimum)==null?void 0:_.regular)==null?void 0:k.amount)==null?void 0:A.value)===((G=(V=(Q=t==null?void 0:t.maximum)==null?void 0:Q.regular)==null?void 0:V.amount)==null?void 0:G.value)&&(p=(q=(L=(M=t==null?void 0:t.minimum)==null?void 0:M.regular)==null?void 0:L.amount)==null?void 0:q.value);const T=((B=(j=($=t==null?void 0:t.minimum)==null?void 0:$.final)==null?void 0:j.amount)==null?void 0:B.currency)==="NONE"?"USD":(K=(X=(H=t==null?void 0:t.minimum)==null?void 0:H.final)==null?void 0:X.amount)==null?void 0:K.currency;return[p,O,d,T]}function a(){var w,C,S,x,_,k,A,Q,V,G,M,L,q,$,j,B,H,X,K,ae,le,ce,me,fe;let O=0,d=0;s==null||s.forEach(F=>{var de;const Y=F==null?void 0:F.values;if(Y&&Array.isArray(Y)){const U=Y.map(N=>{var R,W,Pe,he;return(he=(Pe=(W=(R=N==null?void 0:N.product)==null?void 0:R.price)==null?void 0:W.regular)==null?void 0:Pe.amount)==null?void 0:he.value}).filter(N=>N!==void 0),z=U.length>0?Math.max(...U):0;O+=z}(de=F==null?void 0:F.values)==null||de.forEach(U=>{var z,N,R,W;u!=null&&u.includes(U.id)&&(d+=(W=(R=(N=(z=U==null?void 0:U.product)==null?void 0:z.price)==null?void 0:N.final)==null?void 0:R.amount)==null?void 0:W.value)})});const p=(S=(C=(w=t==null?void 0:t.minimum)==null?void 0:w.final)==null?void 0:C.amount)==null?void 0:S.value,T=(k=(_=(x=t==null?void 0:t.maximum)==null?void 0:x.final)==null?void 0:_.amount)==null?void 0:k.value;let y;((V=(Q=(A=t==null?void 0:t.minimum)==null?void 0:A.regular)==null?void 0:Q.amount)==null?void 0:V.value)===((L=(M=(G=t==null?void 0:t.maximum)==null?void 0:G.regular)==null?void 0:M.amount)==null?void 0:L.value)&&(y=(j=($=(q=t==null?void 0:t.minimum)==null?void 0:q.regular)==null?void 0:$.amount)==null?void 0:j.value);const g=((X=(H=(B=t==null?void 0:t.minimum)==null?void 0:B.final)==null?void 0:H.amount)==null?void 0:X.currency)==="NONE"?"USD":(le=(ae=(K=t==null?void 0:t.minimum)==null?void 0:K.final)==null?void 0:ae.amount)==null?void 0:le.currency;return r&&(u==null?void 0:u.length)<1?[y,p,T,g]:O===((fe=(me=(ce=t==null?void 0:t.maximum)==null?void 0:ce.regular)==null?void 0:me.amount)==null?void 0:fe.value)?[d,d,d,g]:[y,p,T,g]}const[m,f,P,h]=l==="SimpleProductView"?o():r?a():c(),E=l==="SimpleProductView"?(b=n==null?void 0:n.roles)==null?void 0:b.includes("visible"):((se=(ie=t==null?void 0:t.maximum)==null?void 0:ie.roles)==null?void 0:se.includes("visible"))&&((oe=(ue=t==null?void 0:t.minimum)==null?void 0:ue.roles)==null?void 0:oe.includes("visible"));function D(O){return!O||!Array.isArray(O)?[]:O.map(d=>{var p,T,y,g,w,C;return{tier:{amount:(T=(p=d.tier)==null?void 0:p.amount)==null?void 0:T.value,currency:((g=(y=d.tier)==null?void 0:y.amount)==null?void 0:g.currency)||h},quantity:((w=d.quantity[0])==null?void 0:w.gte)||((C=d.quantity[0])==null?void 0:C.lt)||0}}).sort((d,p)=>d.quantity-p.quantity)}return P&&f===P?{regular:{amount:m,currency:h,variant:m&&f!==m?"strikethrough":"default"},final:{amount:P,currency:h,variant:"default"},tiers:D(n==null?void 0:n.tiers),visible:E}:{final:{minimumAmount:f,maximumAmount:P,currency:h},tiers:D(n==null?void 0:n.tiers),visible:E}}function We(e,r,i){var n;if(r){const t=Array.isArray(e==null?void 0:e.optionUIDs)?e.optionUIDs.filter(Boolean):[];if(t.length>0)return t;const s=[];return(n=e==null?void 0:e.options)==null||n.forEach(({values:u,multi:l})=>{var a;const o=u==null?void 0:u.filter(({enabled:m})=>typeof m>"u"||m),c=o==null?void 0:o.filter(({isDefault:m})=>m);if(c!=null&&c.length){l?c.forEach(m=>s.push(m.id)):s.push(c[0].id);return}i&&((a=o==null?void 0:o[0])!=null&&a.id)&&s.push(o[0].id)}),s}return e==null?void 0:e.optionUIDs}function ht(e,r){if(!(r!=null&&r.length))return Object.values(e).flatMap(n=>"values"in n?n.values:n.value?[n.value]:[]);const i=[];for(const n of r){const t=e[n.id];if(t)if("values"in t){const s=new Map(n.items.map((l,o)=>[l.id,o])),u=[...t.values].sort((l,o)=>(s.get(l)??0)-(s.get(o)??0));i.push(...u)}else"value"in t&&t.value&&i.push(t.value)}return i}function ze(e,r,i){if(!(e!=null&&e.length))return!0;const n=r??[];return i?e.every(t=>t.required?t.items.filter(u=>n.includes(u.id)).length>=1:!0):n.length===e.length}const te=new Ee({init:async e=>{var l,o,c;const r=(o=(l=e==null?void 0:e.models)==null?void 0:l.ProductDetails)==null?void 0:o.initialData,n=((c=(ge()||{}).optionsUIDs)==null?void 0:c.split(","))||(r==null?void 0:r.optionsUIDs),t=xe(1),u={...{defaultLocale:"en-US",globalLocale:"en-US",persistURLParams:!1,acdl:!1,optionsUIDs:n},...e};if(te.config.setConfig({...u}),u!=null&&u.sku){const a=r?J(r):await ye(u.sku,{preselectFirstOption:u.preselectFirstOption});v.emit("pdp/data",a,{scope:u.scope});const m=be({scope:u.scope}),f=(m==null?void 0:m.bundleOptionQuantities)??Me(m==null?void 0:m.enteredOptions),P=a!=null&&a.isBundle?Ge(f,a==null?void 0:a.options,a==null?void 0:a.optionUIDs):void 0,h={sku:u.sku,quantity:t,optionsUIDs:a==null?void 0:a.optionUIDs,...P&&{bundleOptionQuantities:P,enteredOptions:Te(P)}};ot(()=>({...h}),{scope:u.scope}),at(()=>a!=null&&a.options?ze(a.options,a.optionUIDs,a.isBundle):!0,{scope:u.scope}),u.acdl&&a&&Ie(a)}},listeners:()=>[v.on("locale",async()=>{const{sku:e,scope:r}=te.config.getConfig();if(e){const i=await ye(e);v.emit("pdp/data",i,{scope:r})}})]}),I=te.config,{setEndpoint:pt,setFetchGraphQlHeader:yt,removeFetchGraphQlHeader:gt,setFetchGraphQlHeaders:Ot,getFetchGraphQlHeader:wt,fetchGraphQl:re,getConfig:Ct}=new Se().getMethods();function Dt(e){return{schemaVersion:e.schemaVersion,selectable:e.selectable.map(r=>({...r,values:r.values.map(i=>({...i,price:Number(i.price)}))})),shopperInput:e.shopperInput.map(r=>({...r,price:r.price===void 0?void 0:Number(r.price)}))}}const Je=`
|
|
4
4
|
query GET_PRODUCT_DATA($skus: [String]) {
|
|
5
5
|
products(skus: $skus) {
|
|
6
6
|
...PRODUCT_FRAGMENT
|
|
@@ -8,7 +8,7 @@ query GET_PRODUCT_DATA($skus: [String]) {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
${ne}
|
|
11
|
-
`,
|
|
11
|
+
`,Ye=async(e,r,i)=>{var s;const{data:n}=await re(Je,{method:"GET",variables:{skus:[e]}}),t=(s=n==null?void 0:n.products)==null?void 0:s[0];return r!=null&&r.optionsUIDs&&(t.optionUIDs=r.optionsUIDs),t?i?t:J(t,{preselectFirstOption:r==null?void 0:r.preselectFirstOption}):null},Ze=`
|
|
12
12
|
query GET_PRODUCTS_DATA($skus: [String]) {
|
|
13
13
|
products(skus: $skus) {
|
|
14
14
|
...PRODUCT_FRAGMENT
|
|
@@ -16,7 +16,7 @@ query GET_PRODUCTS_DATA($skus: [String]) {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
${ne}
|
|
19
|
-
`,
|
|
19
|
+
`,Tt=async(e,r)=>{if(!e||e.length===0)return null;const i=e.map(u=>u.sku),{data:n}=await re(Ze,{method:"GET",variables:{skus:i}}),t=n==null?void 0:n.products;if(!t||t.length===0)return null;const s=e.reduce((u,l)=>(u[l.sku]=l,u),{});return r?t:t.map(u=>{const l=s[u.sku];return l!=null&&l.optionsUIDs&&(u.optionUIDs=l.optionsUIDs),J(u,{preselectFirstOption:l==null?void 0:l.preselectFirstOption})})},et=`
|
|
20
20
|
query REFINE_PRODUCT_QUERY(
|
|
21
21
|
$optionIds: [String!]!
|
|
22
22
|
$sku: String!
|
|
@@ -38,7 +38,7 @@ query REFINE_PRODUCT_QUERY(
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
${ne}
|
|
41
|
-
`;function
|
|
41
|
+
`;function tt(e){try{return atob(e).startsWith("custom-option/")}catch{return!1}}async function pe(e,r){const i=r.filter(l=>!tt(l)),n=rt(i),t=it(n,e),s=et.replace("# %extendedPlaceholder%",t),{data:u}=await re(s,{method:"GET",variables:{optionIds:i,sku:e}});return u}const nt=async(e,r,i,n)=>{var h,E,D;const t=await pe(e,r);if(!t)return null;const{products:s,refineProduct:u,...l}=t;let o=u;const c=s==null?void 0:s[0],a=st(Object.values(l),c.options,i);if(i!=null&&i.length&&o===null){r=ut(a,r,i);const b=await pe(e,r);o=b==null?void 0:b.refineProduct}const m={...o||c,sku:c.sku,name:c.name,externalParentId:c==null?void 0:c.externalId,options:a,optionUIDs:r,variantSku:(o==null?void 0:o.__typename)==="SimpleProductView"?o==null?void 0:o.sku:void 0,variantName:(o==null?void 0:o.__typename)==="SimpleProductView"?o==null?void 0:o.name:void 0},f=n?m:J(m),P=(D=(E=(h=I==null?void 0:I.getConfig())==null?void 0:h.models)==null?void 0:E.ProductDetails)==null?void 0:D.fallbackData;return P?P(c,f):f};function rt(e){if(e.length<2)return[e];const r=[];return e.forEach(i=>{const n=[];e.forEach(t=>{i!==t&&n.push(t)}),r.push(n)}),r}function it(e,r){return e.map((i,n)=>`
|
|
42
42
|
ProductOption${n}: refineProduct(
|
|
43
43
|
optionIds: [
|
|
44
44
|
${i.map(t=>`"${t}"`).join(", ")}
|
|
@@ -51,5 +51,5 @@ ${ne}
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
`).join("")}function
|
|
54
|
+
`).join("")}function st(e,r=[],i){const n=Object.values(e).filter(s=>!!s).reduce((s,u)=>u.options?[...s,...u.options]:[...s],[]),t=new Map(r.map(s=>[s.id,s]));return n.forEach(s=>{i!=null&&i.includes(s.id)||t.set(s.id,s)}),[...t.values()]}function ut(e,r,i){const n=[];let t;return e.forEach(s=>{var u,l,o,c;i.includes(s.id)?t=((l=(u=s.values)==null?void 0:u.find(a=>r.includes(a==null?void 0:a.id)))==null?void 0:l.id)||((o=s.values[0])==null?void 0:o.id):t=(c=s.values[0])==null?void 0:c.id,n.push(t)}),n}const ye=async(e,r)=>{const{anchors:i,optionsUIDs:n}=I.getConfig(),{optionsUIDs:t=n,anchors:s=i,preselectFirstOption:u,isBundle:l,skipTransform:o}=r??{};return!l&&t&&t.length>0?await nt(e,t,s,o):await Ye(e,{preselectFirstOption:u,optionsUIDs:t},o)},ot=(e,r)=>{const i=be({scope:r==null?void 0:r.scope})??{},n=e(i);n.bundleOptionQuantities&&(n.enteredOptions=Le(n.enteredOptions,i.bundleOptionQuantities,n.bundleOptionQuantities)),v.emit("pdp/values",{...n},{scope:r==null?void 0:r.scope})},be=({scope:e}={})=>v.lastPayload("pdp/values",{scope:e})??null,at=(e,r)=>{const i=lt({scope:r==null?void 0:r.scope}),n=e(i);v.emit("pdp/valid",n,{scope:r==null?void 0:r.scope})},bt=async({scope:e}={})=>{const r=v.lastPayload("pdp/data",{scope:e});return r?Promise.resolve(r):new Promise(i=>{const n=v.on("pdp/data",t=>{i(t),n==null||n.off()},{eager:!0,scope:e})})},lt=({scope:e}={})=>v.lastPayload("pdp/valid",{scope:e})??null;export{ht as a,Ve as b,Te as c,I as config,Le as d,Dt as e,re as fetchGraphQl,ye as fetchProductData,xe as g,Ct as getConfig,wt as getFetchGraphQlHeader,bt as getFetchedProductData,be as getProductConfigurationValues,Ye as getProductData,Tt as getProductsData,nt as getRefinedProduct,ze as i,te as initialize,tt as isCustomOptionUID,lt as isProductConfigurationValid,Ge as m,Ie as p,gt as removeFetchGraphQlHeader,Pt as s,pt as setEndpoint,yt as setFetchGraphQlHeader,Ot as setFetchGraphQlHeaders,at as setProductConfigurationValid,ot as setProductConfigurationValues,J as t};
|
|
55
55
|
//# sourceMappingURL=api.js.map
|