@ordergroove/offers 2.36.0 → 2.36.1
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 +11 -0
- package/dist/bundle-report.html +1 -1
- package/dist/offers.js +2 -2
- package/dist/offers.js.map +3 -3
- package/package.json +2 -2
- package/src/components/Offer.js +5 -5
- package/src/shopify/shopifyMiddleware.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.36.1](https://github.com/ordergroove/plush-toys/compare/@ordergroove/offers@2.36.0...@ordergroove/offers@2.36.1) (2024-03-01)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* do not sync selling plan if we're hiding the offer ([34a954a](https://github.com/ordergroove/plush-toys/commit/34a954aefc79dd096dd64c0a7961771f42aa5b61))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [2.36.0](https://github.com/ordergroove/plush-toys/compare/@ordergroove/offers@2.35.7...@ordergroove/offers@2.36.0) (2024-02-21)
|
|
7
18
|
|
|
8
19
|
|
package/dist/bundle-report.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
│ └ examples/index.js
|
|
5
5
|
└ examples/index.js ───────────────────────────────────────── 9.7kb ─── 3.5%
|
|
6
6
|
|
|
7
|
-
dist/offers.js ───────────────────────────────────────────── 144.
|
|
7
|
+
dist/offers.js ───────────────────────────────────────────── 144.8kb ─ 100.0%
|
|
8
8
|
├ src/components/Offer.js ─────────────────────────────────── 8.9kb ─── 6.1%
|
|
9
9
|
│ └ src/make-api.js
|
|
10
10
|
│ └ src/index.js
|
package/dist/offers.js
CHANGED
|
@@ -423,7 +423,7 @@ var lib=(()=>{var ga=Object.create;var ut=Object.defineProperty;var ya=Object.ge
|
|
|
423
423
|
</og-when>
|
|
424
424
|
</og-when>
|
|
425
425
|
|
|
426
|
-
`}constructor(){super(),this.module="pdp",this.product={},this.productComponents=[],this.fetchOffer=()=>0,this.fetchOrders=()=>0,this.productHasChangedComponents=()=>0,this.setFirstOrderPlaceDate=()=>0,this.setProductToSubscribe=()=>0,this.productChangeFrequency=()=>0}applyTemplate(e){super.applyTemplate(e);let{id:r,locale:o}=e;this.variationId=r,this.locale=o;let i=new CustomEvent("template-changed");this.dispatchEvent(i)}updated(e){if(e.has("preview")&&this.setPreview(this.preview,e.get("preview"),this),this.frequency=this.defaultFrequency,e.has("product")&&!this.isPreview&&cr(()=>this.fetchOffer(this.product.id,ve,this)),e.has("firstOrderPlaceDate")&&this.product.id&&!this.isPreview&&this.setFirstOrderPlaceDate(this.product.id,this.firstOrderPlaceDate),e.has("productToSubscribe")&&this.product.id&&!this.isPreview&&this.setProductToSubscribe(this.product.id,this.productToSubscribe),e.has("auth")&&this.auth&&!this.isPreview&&this.fetchOrders(),e.has("productComponents")){let r=Up(this.product,this.productComponents),o=Object.assign({},this.product,{components:e.get("productComponents")});A(r,o)||this.productHasChangedComponents(r,o)}(e.has("offerId")||e.has("autoshipByDefault")||e.has("location")||e.has("product"))&&this.offerId&&this.autoshipByDefault&&(this.location==="cart"||this.isCart)&&this.product.id&&this.optinProduct&&!(this.optedin||[]).find(r=>A(r,this.product))&&this.optinProduct({...this.product,...this.productComponents.length&&{components:this.productComponents}},this.defaultFrequency,this)}get isPreview(){return this.preview||window.og.previewMode}get
|
|
426
|
+
`}constructor(){super(),this.module="pdp",this.product={},this.productComponents=[],this.fetchOffer=()=>0,this.fetchOrders=()=>0,this.productHasChangedComponents=()=>0,this.setFirstOrderPlaceDate=()=>0,this.setProductToSubscribe=()=>0,this.productChangeFrequency=()=>0}applyTemplate(e){super.applyTemplate(e);let{id:r,locale:o}=e;this.variationId=r,this.locale=o;let i=new CustomEvent("template-changed");this.dispatchEvent(i)}updated(e){if(e.has("preview")&&this.setPreview(this.preview,e.get("preview"),this),this.frequency=this.defaultFrequency,e.has("product")&&!this.isPreview&&cr(()=>this.fetchOffer(this.product.id,ve,this)),e.has("firstOrderPlaceDate")&&this.product.id&&!this.isPreview&&this.setFirstOrderPlaceDate(this.product.id,this.firstOrderPlaceDate),e.has("productToSubscribe")&&this.product.id&&!this.isPreview&&this.setProductToSubscribe(this.product.id,this.productToSubscribe),e.has("auth")&&this.auth&&!this.isPreview&&this.fetchOrders(),e.has("productComponents")){let r=Up(this.product,this.productComponents),o=Object.assign({},this.product,{components:e.get("productComponents")});A(r,o)||this.productHasChangedComponents(r,o)}(e.has("offerId")||e.has("autoshipByDefault")||e.has("location")||e.has("product"))&&this.offerId&&this.autoshipByDefault&&(this.location==="cart"||this.isCart)&&this.product.id&&this.optinProduct&&!(this.optedin||[]).find(r=>A(r,this.product))&&this.optinProduct({...this.product,...this.productComponents.length&&{components:this.productComponents}},this.defaultFrequency,this)}get isPreview(){return this.preview||window.og.previewMode}get shouldEnableOffer(){if(this.config&&this.config.storeCurrency&&this.config.merchantSettings){let e=this.config.merchantSettings.multicurrency_enabled||this.config.storeCurrency===this.config.merchantSettings.currency_code;return e||Fp(this.config.storeCurrency,this.config.merchantSettings.currency_code),e}return!0}render(){return this.shouldEnableOffer?u`
|
|
427
427
|
<slot></slot>
|
|
428
428
|
`:null}get defaultFrequency(){let e=this.productFrequency||this.productDefaultFrequency;if(e)return e;let r=this.querySelector("og-select-frequency");return r&&r.currentFrequency?r.currentFrequency:this.getOption("defaultFrequency")}};n(Fr,"Offer");var Lp=n((t,e)=>({config:t.config,auth:t.auth,offerId:((t.productOffer||{})[(e.product||{}).id]||[])[0],productFrequency:ee(e.product)(t),productDefaultFrequency:ze((e.product||{}).id)(t),...M(t,e,"autoshipByDefault",ao(t)[(e.product||{}).id]),...ar(e.product)(t)&&{autoshipByDefault:!1},optedin:Ot(t),subscribed:Z(e.product)(t),...Ye(t)}),"mapStateToProps"),Ms=g(Lp,{fetchOffer:di,fetchOrders:dr,productHasChangedComponents:si,optinProduct:Y,setFirstOrderPlaceDate:_i,setProductToSubscribe:Si,setPreview:Fs})(Fr);var kt=class extends v{constructor(){super(),this.showCancelButton=!0,this.showConfirmButton=!0}static get properties(){return{title:{type:String,attribute:!1},content:{type:String,attribute:!1},confirmText:{type:String,attribute:!1},cancelText:{type:String,attribute:!1},showCancelButton:{type:Boolean},showConfirmButton:{type:Boolean},show:{type:Boolean,attribute:"show"}}}static get styles(){return y`
|
|
429
429
|
:host[hidden] {
|
|
@@ -1033,6 +1033,6 @@ var lib=(()=>{var ga=Object.create;var ut=Object.defineProperty;var ya=Object.ge
|
|
|
1033
1033
|
<slot name="append"></slot>
|
|
1034
1034
|
`:u`
|
|
1035
1035
|
<slot name="fallback"></slot>
|
|
1036
|
-
`}};n(Gr,"Price");var Zp=n((t,e)=>{var r;return{productPlans:t.productPlans,configDefaultFrequency:(r=t.config)==null?void 0:r.defaultFrequency,frequency:ee(e.product)(t)}},"mapStateToProps"),Ys=g(Zp)(Gr);function pn(t){Bs(),Li(t);try{customElements.define("og-when",ys),customElements.define("og-text",ws),customElements.define("og-incentive-text",Ns),customElements.define("og-offer",Ms),customElements.define("og-select-frequency",Is),customElements.define("og-optout-button",Es),customElements.define("og-optin-toggle",Ps),customElements.define("og-optin-status",_s),customElements.define("og-optin-button",Ss),customElements.define("og-optin-select",vs),customElements.define("og-upsell-button",Os),customElements.define("og-frequency-status",xs),customElements.define("og-modal",kt),customElements.define("og-select",qt),customElements.define("og-tooltip",Dt),customElements.define("og-upsell-modal",Ts),customElements.define("og-next-upcoming-order",qs),customElements.define("og-price",Ys),customElements.define("og-prepaid-toggle",$s),customElements.define("og-prepaid-data",Vs),customElements.define("og-prepaid-button",js),customElements.define("og-prepaid-select",Hs),customElements.define("og-subscription-button",Gs)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(go(o)),this},setMerchantId(o){return t.dispatch(ci(o)),this},setAuthUrl(o){return t.dispatch(pi(o)),this},receiveMerchantSettings(o){return t.dispatch(Ei(o)),this},getProductsForPurchasePost(o=[]){return So(t.getState(),o)},getOptins(o=[]){return So(t.getState(),o)},clear(){t.dispatch(fi())},addOptinChangedCallback(o){typeof o=="function"&&document.addEventListener("optin-changed",i=>o(i.detail))},disableOptinChangedCallbacks(){document.addEventListener("optin-changed",o=>o.stopPropagation(),!0)},register(){},previewMode(o){return window.og=window.og||{},o===!1?delete window.og:window.og.previewMode=!0,this},config(o){return t.dispatch(gi(o)),this},setLocale(o){return t.dispatch(mi(o)),this},addTemplate(o,i,s){return t.dispatch(yi(o,i,s)),this},setTemplates(o){return t.dispatch(bi(o)),this},setPublicPath(o){return this},resolveSettings(o,i,s,a=t){if(o&&i&&s){let c=[];s.product?c.push(s.product):s.cart&&Array.isArray(s.cart.products)&&(c=c.concat(s.cart.products));let{apiUrl:p}=Ut({},go(i)),{sessionId:l}=a.getState();l&&c.forEach(f=>{let d=x(f);de.fetchOffer(p,o,l,`${d}`,ve)}),s.product_discounts&&typeof s.product_discounts=="object"&&a.dispatch({type:B,payload:s.product_discounts})}},initialize(o,i,s,a){var p;e?console.warn("og.offers has been initialized already. Skipping."):r.resolveSettings(o,i,window.og_settings,t);let c=t.getState();return o&&o!==c.merchantId&&r.setMerchantId(o),i&&i!==((p=c.environment)==null?void 0:p.name)&&r.setEnvironment(i),a&&r.receiveMerchantSettings(a),s&&r.setAuthUrl(s),e=!0,this}};return window.OG=window.OG||{},Object.assign(window.OG,r),Object.assign(r.initialize,r),_o(window.opener,r),r}n(pn,"makeApi");var ae=n((t,e)=>t===null?"":new Intl.NumberFormat(navigator.language,{style:"currency",currency:e}).format(t/100),"money"),Br=n(t=>`${t}%`,"percentage");var zr=n(t=>{var e,r;return Array.isArray((e=t.selling_plan)==null?void 0:e.options)&&((r=t.selling_plan)==null?void 0:r.options.some(o=>(o==null?void 0:o.name)==="Shipment amount"))},"isPrepaidAllocation"),Yr=n(t=>{if(t&&t.length>1){let e=t.find(r=>(r==null?void 0:r.name)==="Shipment amount").value.split(" ");return e.length>0?+e[0]:null}return null},"getPrepaidShipmentsNumberFromOptions"),Xp=n(t=>{var e,r;return(t.selling_plan_id||((r=(e=t.selling_plan)==null?void 0:e.id)!=null?r:"")).toString()},"getAllocationFrequency"),el=n((t,e)=>ae(t.compare_at_price,e),"getAllocationRegularPrice"),tl=n((t,e)=>{var r;if(zr(t)){let o=Yr((r=t.selling_plan)==null?void 0:r.options),i=Math.round(t.price/o);return ae(i,e)}return ae(t.price,e)},"getAllocationSubscriptionPrice"),Ws=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),rl=n((t,e)=>{var o,i,s;if(zr(t)){let a=Yr((o=t.selling_plan)==null?void 0:o.options),c=t.price/a,p=Ws(t,c);return Br(p)}let r="";return((i=t.price_adjustments[0])==null?void 0:i.value_type)==="percentage"?r=Br(t.price_adjustments[0].value):(s=t.price_adjustments[0])!=null&&s.value?r=ae(t.price_adjustments[0].value,e):t.compare_at_price&&(r=ae(t.compare_at_price-t.price,e)),r},"getAllocationDiscountRate"),ol=n(t=>{var e;return zr(t)?Yr((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),nl=n((t,e,r,o)=>{var f,d;let i=Yr((f=t.selling_plan)==null?void 0:f.options),s=t.price/i,a=t.compare_at_price-s,c=Ws(t,s),p=(d=r==null?void 0:r.price_adjustments)==null?void 0:d[0],l=p&&p.value_type==="percentage"?p.value:null;return e.regularPrepaidPrice=ae(t.price,o),e.prepaidSavingsPerShipment=ae(Math.round(a),o),e.prepaidSavingsTotal=ae(Math.round(a*i),o),l&&c&&(e.prepaidExtraSavingsPercentage=Br(c-l)),e},"addPrepaidPriceAndSavings"),ln="Subscribe and Save",il=n((t,e,r)=>{t.selling_plan||(t.selling_plan=e.find(i=>i.id===t.selling_plan_id));let o={frequency:Xp(t),regularPrice:el(t,r),subscriptionPrice:tl(t,r),discountRate:rl(t,r),prepaidShipments:ol(t)};if(zr(t)){let i=e.find(s=>s.group_name===ln&&s.options.length===1);return nl(t,o,i,r)}return o},"mapSellingPlanToDiscount"),un=n((t,e,r=[],o)=>[...t,il(e,r,o)],"sellingPlanAllocationsReducer"),Js=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group_name:r.name}))],[]),"getSellingPlans");var Qs=n((t,e,r)=>{let o=Object.keys(t).filter(i=>i.startsWith(e.toString()));return o.length?{...t,...o.reduce((i,s)=>({...i,[s]:r}),{})}:t},"overrideLineKey"),Ks=n((t,e,r)=>{if(!r)return null;if(!We(r))return r;if(pr(t,e)){let o=te(t,e,r);return o||fe(t)}return r},"getDefaultSellingPlan"),sl=n((t,e)=>t.map(r=>{var o,i,s,a,c,p,l;return We(r==null?void 0:r.frequency)?{...r,frequency:pr((o=e==null?void 0:e.config)==null?void 0:o.frequencies,(i=e==null?void 0:e.config)==null?void 0:i.frequenciesEveryPeriod)?te((s=e==null?void 0:e.config)==null?void 0:s.frequencies,(a=e==null?void 0:e.config)==null?void 0:a.frequenciesEveryPeriod,r.frequency)||te((c=e==null?void 0:e.config)==null?void 0:c.frequencies,(p=e==null?void 0:e.config)==null?void 0:p.frequenciesEveryPeriod,e.defaultFrequency)||fe((l=e==null?void 0:e.config)==null?void 0:l.frequencies):r.frequency}:r}),"mapExistingOptinsFromOfferResponse"),al=n(({autoship:t={},autoship_by_default:e={},default_frequencies:r={},in_stock:o={}},i,s)=>Object.keys(t).reduce((a,c)=>{if(!i.some(p=>p.id===c)){if(!(t[c]&&e[c]&&o[c]))return a;let{config:{frequencies:p,frequenciesEveryPeriod:l}={},defaultFrequency:f}=s,d=r[c],m;return r[c]&&pr(p,l)?m=te(p,l,`${d.every}_${d.every_period}`)||Ks(p,l,f)||fe(p):r[c]?m=`${d.every}_${d.every_period}`:m=Ks(p,l,f)||"_",a.concat({id:c,frequency:m})}return a},[]),"reduceNewOptinsFromOfferResponse"),Zs=n(t=>t==null?void 0:t.selling_plan_groups.find(r=>r.name===ln),"getOGSellingPlanGroup"),cl=n((t,e)=>({...Qs(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Xs=n((t,[e])=>({...t,[e]:!0}),"productTrue"),ea=n((t,e)=>{let r=x(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),pl=n(t=>t.name.toUpperCase().includes("PREPAID"),"isPrepaidSellingPlanGroup"),ll=n((t,e)=>{if(!t||t.length===0)return[];if(!e||e.length===0)return t;let r=e.reduce((o,i)=>(pl(i)||o.push(...i.selling_plans.map(s=>s.id)),o),[]);return t.filter(o=>r.includes(o.selling_plan_id))},"filterNonPrepaidSellingPlans"),ul=n((t={},e)=>{if(B===e.type)return Object.entries(e.payload).reduce(Xs,t);if(ue===e.type){let{payload:r}=e;return r.items.reduce(ea,t)}if(K===e.type){let{payload:{product:r}}=e;return[r,...(r==null?void 0:r.variants)||[]].reduce((o,i)=>{let s=ll(i==null?void 0:i.selling_plan_allocations,r==null?void 0:r.selling_plan_groups);return{...Qs(o,i.id,(s==null?void 0:s.length)>0),[i.id]:(s==null?void 0:s.length)>0}},t)}return pe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"autoshipEligible");function dl(t){let e=["day","week","month"].findIndex(o=>t.toLowerCase().includes(o))+1,r=(t.match(/(\d+)/)||["",1])[1];return r&&e?`${r}_${e}`:null}n(dl,"textToFreq");function ta(t){var e;return(e=t==null?void 0:t.selling_plans)==null?void 0:e.map(({options:r})=>r||[]).flat().map(({value:r})=>dl(r))}n(ta,"sellingPlansToEveryPeriod");function ra(t){var e;return(e=t==null?void 0:t.selling_plans)==null?void 0:e.map(({id:r})=>`${r}`)}n(ra,"sellingPlansToFrequencies");function oa(t){var r;let e=(r=t==null?void 0:t.options.find(({name:o})=>o==="Shipment amount"))==null?void 0:r.value.split(" ")[0];return e?Number(e):void 0}n(oa,"getPrepaidShipments");function fl(t){return t.reduce((e,r)=>{let o=r.name.split("-")[1],i=r.selling_plans.map(s=>({numberShipments:oa(s),sellingPlan:String(s.id)}));return{...e,[o]:i}},{})}n(fl,"getPrepaidSellingPlans");var hl=n((t={frequencies:[],offerType:"radio",frequenciesEveryPeriod:[]},e)=>{var r,o,i;if(B===e.type){let s=[...new Set(Object.values(e.payload).map(Object.keys).flat())];return{...t,frequencies:s}}if(K===e.type){let{payload:{product:s,currency:a}}=e,c={},p=Zs(s),l=ra(p);if(l!=null&&l.length){let d=ta(p),m=((o=(r=p.options)==null?void 0:r[0])==null?void 0:o.values)||l,b=t.defaultFrequency;b&&We(b)&&(b=te(l,d,b)||fe(l)||b),c={frequencies:l,frequenciesEveryPeriod:d,frequenciesText:m,...b?{defaultFrequency:b}:{}}}let f=s==null?void 0:s.selling_plan_groups.filter(d=>/^Prepaid-.*/.test(d.name));return f.length&&(c={...c,prepaidSellingPlans:{...t.prepaidSellingPlans,...fl(f)}}),{...t,...c,storeCurrency:a}}if(T===e.type){let{payload:{offer:s}}=e,{defaultFrequency:a,config:{frequencies:c,frequenciesEveryPeriod:p,prepaidSellingPlans:l={}}={},product:f}=s;return(i=l[f==null?void 0:f.id])!=null&&i.some(({sellingPlan:d})=>d===a)?{...t,defaultFrequency:fe(c)||a}:We(a)?{...t,defaultFrequency:te(c,p,a)||fe(c)||a}:{...t,defaultFrequency:a}}return Ge===e.type?{...t,merchantSettings:{...e.payload}}:t},"config"),ml=n((t={},e)=>{var r;if(B===e.type)return Object.entries(e.payload).reduce(Xs,t);if(ue===e.type)return e.payload.items.reduce(ea,t);if(K===e.type){let{payload:{product:o}}=e;return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce(cl,t)||t}return J===e.type&&e.payload.product===null?{...t}:pe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"inStock"),gl=n((t={},e)=>t,"offer");function yl({prepaidShipments:t,offer:e,product:r}){var o;if(t){let i=x(r.id),s=(o=e.config.prepaidSellingPlans[i])==null?void 0:o.find(a=>a.numberShipments===t);return s?s.sellingPlan:null}return e.config.frequencies[0]}n(yl,"getFrequencyForPrepaidShipments");function bl(t){let e=oa(t.selling_plan_allocation.selling_plan),r={id:t.key,frequency:`${t.selling_plan_allocation.selling_plan.id}`};return e&&(r.prepaidShipments=e),r}n(bl,"getOptedInItem");var _l=n((t=[],e)=>{if(ue===e.type){let r=e.payload;return t.filter(o=>!o.id.includes(":")).concat(r.items.reduce((o,i)=>i.selling_plan_allocation?[...o,bl(i)]:o,[]))}if(T===e.type){let{offer:r={},...o}=e.payload,i=sl(t,r),s=al(o,i,r);return[...i,...s]}if(K===e.type){let{product:r}=e.payload,o=Zs(r);if(!o)return t;let i=ra(o),s=ta(o);return t.map(a=>We(a.frequency)?{...a,frequency:te(i,s,a.frequency)||fe(i)}:a)}if(ie===e.type){let{payload:r}=e,o=jr(t,e),[i,s]=Je(o,r.product);return s.concat({...i,...r.product,frequency:yl(r)})}return jr(t,e)},"optedin"),Sl=n((t={},e)=>t,"productOffer"),El=n((t={},e)=>{var r;if(K===e.type){let{payload:{product:o,currency:i}}=e,s=Js(o);return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce((a,c)=>{var p;return{...a,[c.id]:(p=c.selling_plan_allocations)==null?void 0:p.reduce((l,f)=>un(l,f,s,i),[])}},t)||t}if(ue===e.type){let o=e.payload;return o.items.reduce((i,s)=>s.selling_plan_allocation?{...i,[s.key]:un([],s.selling_plan_allocation,[],o.currency)}:i,t)||t}return B===e.type?Qe(e.payload):t},"productPlans"),xl=Lt({auth:Wo,authUrl:Ko,autoshipByDefault:nn,autoshipEligible:ul,config:hl,defaultFrequencies:sn,eligibilityGroups:zo,environment:Ut,firstOrderPlaceDate:Xo,incentives:Yo,inStock:ml,locale:tn,merchantId:Jo,nextUpcomingOrder:Bo,offer:gl,offerId:Qo,optedin:_l,optedout:Go,previewStandardOffer:rn,previewUpsellOffer:on,productOffer:Sl,productPlans:El,productToSubscribe:en,sessionId:Zo,templates:an,prepaidShipmentsSelected:cn});function dn(t,e){return window.og&&window.og.previewMode?Hr(t,e):xl(t,e)}n(dn,"shopifyReducer");var aa=ce(bt()),ca=ce($t());function na(t,e,r){let o=`[name="id"][value="${t}"]`,i=`form[action="/cart/add"] option[value="${t}"]`;if(!e)return;let s=document.querySelectorAll(o);s.length||(s=document.querySelectorAll(i)),[...s].forEach(a=>{let c=a.form,p=c==null?void 0:c.querySelector(`[name="${e}"]`);p||(p=document.createElement("input"),p.type="hidden",p.name=`attributes[${e}]`,c==null||c.appendChild(p)),p.value=r})}n(na,"updateTrackingInputs");function fn(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(fn,"getTrackingKey");function vl(t,e){var f,d,m,b;if(!((f=t.payload.offer)==null?void 0:f.autoshipByDefault))return;let o=(d=t.payload.offer)==null?void 0:d.product.id,i=fn(),s=((m=t.payload.offer)==null?void 0:m.location)||"",a=((b=t.payload.offer)==null?void 0:b.variationId)||"",c=Wr(o,e),l=[o,R.toLowerCase(),s,c,a].join(",");na(o,i,l)}n(vl,"addDefaultToSubTracking");function hn(t){return e=>r=>{switch(e(r),r.type){case R:case I:case k:{let o=r.payload.offer,i=mn(r);o&&!o.isCart&&na(o.product.id,i[0],i[1]);break}case T:vl(r,t);break;default:}}}n(hn,"shopifyTrackingMiddleware");var ia,sa,gn=((sa=(ia=window.Shopify)==null?void 0:ia.routes)==null?void 0:sa.root)||"/",Ol="/cart",Tl=`${gn}cart.js`,Pl=`${gn}cart/change.js`,wl=`${gn}products/`,Cl='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',Rl=n(t=>(0,ca.debounce)(100,!1,function(e){let{id:r}=Object.fromEntries([...new FormData(e).entries()]);r?t.setAttribute("product",r):t.removeAttribute("product")}),"makeSyncProductId");async function Al(){var r,o;let t=(o=(r=window.Shopify)==null?void 0:r.currency)==null?void 0:o.active;return t||(await yn()).currency}n(Al,"getCurrency");async function Nl(t,e){let r=Il(e);if(r)try{let[i,s]=await Promise.all([pa(r),Al()]),a={product:i,offer:e,currency:s};t.dispatch({type:K,payload:a})}catch(i){console.warn("OG: Unable to fetch product details for PDP",i)}let o=e.closest("form");if(!o){let i=e.parentElement;for(;i&&(o=i.querySelector('form[action$="/cart/add"]'),!(o||i.tagName.toLowerCase()==="body"));)i=i.parentElement}if(o){let i=Rl(e);o.addEventListener("change",()=>i(o)),new MutationObserver(()=>i(o)).observe(o,{subtree:!0,childList:!0})}else console.info("no /cart/add form found for og-offer",e)}n(Nl,"setupPdp");async function yn(){return(await fetch(Tl)).json()}n(yn,"getCart");function Il(t){return[()=>t==null?void 0:t.dataset.shopifyProductHandle,()=>{var e,r;return(((r=(e=document.querySelector('[href$=".oembed"]'))==null?void 0:e.getAttribute("href"))==null?void 0:r.match(/\/([^/]+)\.oembed$/))||[])[1]},()=>{var e,r;return(document.querySelector('meta[property="og:type"][content="product"]')&&((r=(e=document.querySelector('meta[property="og:url"][content]'))==null?void 0:e.getAttribute("content"))==null?void 0:r.match(/\/([^/]+)$/))||[])[1]},()=>{var e;return(e=[...document.querySelectorAll("[type$=json]")].map(r=>JSON.parse(r.textContent||"{}")).find(r=>r.handle&&r.price))==null?void 0:e.handle}].reduce((e,r)=>e||r(),"")}n(Il,"guessProductHandle");var pa=(0,aa.default)(async function(t){return(await fetch(`${wl}${t}.js`)).json()});async function kl(t,e){let r=await yn(),{items:o}=r,i=r;t.dispatch({type:ue,payload:i});let s=Number(e.product.id);s<=o.length&&e.setAttribute("product",o[s-1].key),(await Promise.all(Array.from(new Set(o.map(({handle:c})=>c))).map(pa))).forEach(c=>{let p={product:c,offer:e,currency:r.currency};t.dispatch({type:K,payload:p})})}n(kl,"setupCart");async function ql(t,e){var s,a;let r=t.payload.offer,o=t.payload.frequency||Wr(t.payload.product.id,e),i=mn(t);if(!!(r!=null&&r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(Cl)),p=t.payload.product.id,l=await yn(),f=(s=l==null?void 0:l.items)==null?void 0:s.findIndex(C=>C.key===p),d=l.items[f],m=d.quantity,b=x(p),S=await fetch(Pl,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:p,quantity:m,attributes:Object.fromEntries([i]),properties:d.properties,selling_plan:o||null,sections:c.map(C=>C.id.replace(/^shopify-section-/,""))})});if(S.status!==200)throw new Error("Cart not updated");let h=await S.json(),E=l.items.length===h.items.length?h.items[f].key:(a=h.items.find(C=>C.quantity===m&&C.product_id===b&&(!o&&!C.selling_plan_allocation||(C==null?void 0:C.selling_plan_allocation.selling_plan.id)===o)))==null?void 0:a.key;E&&(e.dispatch({type:ht,payload:{oldCartProductKey:p,newCartProductKey:E}}),r.setAttribute("product",E));let P=h;e.dispatch({type:ue,payload:P});let _=new CustomEvent(Vn,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(_),_.defaultPrevented)return;let w=h.sections;Object.values(w).length?c.forEach(C=>{let _n=C.id.replace(/^shopify-section-/,"");if(!(_n in w))return;let ma=w[_n],Sn=new DOMParser().parseFromString(ma.toString()||"","text/html").getElementById(C.id);Sn&&(C.innerHTML=Sn.innerHTML)}):window.location.pathname.startsWith(Ol)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(ql,"synchronizeCartOptin");function mn(t){var a,c;let e=t.payload.product.id;if(!e)return[];let r=fn(),o=((a=t.payload.offer)==null?void 0:a.location)||"",i=((c=t.payload.offer)==null?void 0:c.variationId)||"",s=[e,t.type.toLowerCase(),o];switch(t.type){case J:case I:s.push(""),s.push(i);break;case R:case k:s.push(t.payload.frequency),s.push(i);break;default:return[]}return[r,s.join(",")]}n(mn,"getTrackingEvent");function Wr(t,e){var i;return(i=sr({id:t})(e.getState()))==null?void 0:i.frequency}n(Wr,"getSubscribedFrequency");function Dl(t,e){e.isCart||[...document.querySelectorAll('form[action$="/cart/add"] [name=id]')].forEach(r=>{let o=r.value,i=Wr(o,t);ii(r.form,"selling_plan",i)})}n(Dl,"synchronizeSellingPlan");function bn(t){return e=>r=>{var o;switch(r.type){case R:case I:case k:break;case J:(o=r.payload.offer)!=null&&o.isCart?kl(t,r.payload.offer):Nl(t,r.payload.offer);break;default:}switch(e(r),r.type){case R:case I:case k:case ie:ql(r,t);case J:case T:case K:Dl(t,r.payload.offer);break;default:}}}n(bn,"shopifyMiddleware");var Fl="/apps/subscriptions/auth/",la="og_auth_begin",Ul="og_auth_end",Ll=n(t=>{let[e,r,o,i]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:i}},"parseIntegrationTempAuth");async function ua({store:t}){var i;let[e]=po(),r=vt(),o=r!=null&&r.dataset.customer?Ll(r.dataset.customer):(i=window.ogShopifyConfig)==null?void 0:i.customer;if(o){let s=await $l(o);if(s){let[a,c,p]=s.split("|");t.dispatch(Tt(e,a,Number(c),p))}}else oi("og_auth")}n(ua,"authorizeShopifyCustomer");async function Ml(t){try{let r=await(await fetch(`${Fl}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(la);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+la.length,r.lastIndexOf(Ul)))}catch(e){console.error(e)}}n(Ml,"fetchOGSignature");async function $l(t){let e=ni("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:i}=await Ml(t);if(!r)return"";let s=new Date,a=btoa(i);s.setTime(s.getTime()+2*60*60*1e3);let c=`${r}|${o}|${a};expires=${s.toUTCString()}`;return document.cookie=`og_auth=${c};secure;path=/`,c}n($l,"getOrCreateAuthCookie");var da,ha=qi(...(da=q)!=null&&da.shopify_selling_plans?[dn,bn]:[Hr],q.shopify&&hn),O=pn(ha),Vl=O.isReady,jl=O.addOptinChangedCallback,Hl=O.addTemplate,Gl=O.clear,Bl=O.config,zl=O.disableOptinChangedCallbacks,Yl=O.getOptins,Wl=O.getProductsForPurchasePost,Jl=O.initialize,Kl=O.previewMode,Ql=O.register,Zl=O.resolveSettings,Xl=O.setAuthUrl,eu=O.setEnvironment,tu=O.setLocale,ru=O.setMerchantId,ou=O.setPublicPath,nu=O.setTemplates,iu=O.setupCart,su=O.setupProduct,au=O.setupProducts,cu=n(()=>ri(O),"autoInit");var pu=O.initialize,fa;(fa=q)!=null&&fa.shopify_selling_plans&&cr(()=>ua(O));return Ea(lu);})();
|
|
1036
|
+
`}};n(Gr,"Price");var Zp=n((t,e)=>{var r;return{productPlans:t.productPlans,configDefaultFrequency:(r=t.config)==null?void 0:r.defaultFrequency,frequency:ee(e.product)(t)}},"mapStateToProps"),Ys=g(Zp)(Gr);function pn(t){Bs(),Li(t);try{customElements.define("og-when",ys),customElements.define("og-text",ws),customElements.define("og-incentive-text",Ns),customElements.define("og-offer",Ms),customElements.define("og-select-frequency",Is),customElements.define("og-optout-button",Es),customElements.define("og-optin-toggle",Ps),customElements.define("og-optin-status",_s),customElements.define("og-optin-button",Ss),customElements.define("og-optin-select",vs),customElements.define("og-upsell-button",Os),customElements.define("og-frequency-status",xs),customElements.define("og-modal",kt),customElements.define("og-select",qt),customElements.define("og-tooltip",Dt),customElements.define("og-upsell-modal",Ts),customElements.define("og-next-upcoming-order",qs),customElements.define("og-price",Ys),customElements.define("og-prepaid-toggle",$s),customElements.define("og-prepaid-data",Vs),customElements.define("og-prepaid-button",js),customElements.define("og-prepaid-select",Hs),customElements.define("og-subscription-button",Gs)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(go(o)),this},setMerchantId(o){return t.dispatch(ci(o)),this},setAuthUrl(o){return t.dispatch(pi(o)),this},receiveMerchantSettings(o){return t.dispatch(Ei(o)),this},getProductsForPurchasePost(o=[]){return So(t.getState(),o)},getOptins(o=[]){return So(t.getState(),o)},clear(){t.dispatch(fi())},addOptinChangedCallback(o){typeof o=="function"&&document.addEventListener("optin-changed",i=>o(i.detail))},disableOptinChangedCallbacks(){document.addEventListener("optin-changed",o=>o.stopPropagation(),!0)},register(){},previewMode(o){return window.og=window.og||{},o===!1?delete window.og:window.og.previewMode=!0,this},config(o){return t.dispatch(gi(o)),this},setLocale(o){return t.dispatch(mi(o)),this},addTemplate(o,i,s){return t.dispatch(yi(o,i,s)),this},setTemplates(o){return t.dispatch(bi(o)),this},setPublicPath(o){return this},resolveSettings(o,i,s,a=t){if(o&&i&&s){let c=[];s.product?c.push(s.product):s.cart&&Array.isArray(s.cart.products)&&(c=c.concat(s.cart.products));let{apiUrl:p}=Ut({},go(i)),{sessionId:l}=a.getState();l&&c.forEach(f=>{let d=x(f);de.fetchOffer(p,o,l,`${d}`,ve)}),s.product_discounts&&typeof s.product_discounts=="object"&&a.dispatch({type:B,payload:s.product_discounts})}},initialize(o,i,s,a){var p;e?console.warn("og.offers has been initialized already. Skipping."):r.resolveSettings(o,i,window.og_settings,t);let c=t.getState();return o&&o!==c.merchantId&&r.setMerchantId(o),i&&i!==((p=c.environment)==null?void 0:p.name)&&r.setEnvironment(i),a&&r.receiveMerchantSettings(a),s&&r.setAuthUrl(s),e=!0,this}};return window.OG=window.OG||{},Object.assign(window.OG,r),Object.assign(r.initialize,r),_o(window.opener,r),r}n(pn,"makeApi");var ae=n((t,e)=>t===null?"":new Intl.NumberFormat(navigator.language,{style:"currency",currency:e}).format(t/100),"money"),Br=n(t=>`${t}%`,"percentage");var zr=n(t=>{var e,r;return Array.isArray((e=t.selling_plan)==null?void 0:e.options)&&((r=t.selling_plan)==null?void 0:r.options.some(o=>(o==null?void 0:o.name)==="Shipment amount"))},"isPrepaidAllocation"),Yr=n(t=>{if(t&&t.length>1){let e=t.find(r=>(r==null?void 0:r.name)==="Shipment amount").value.split(" ");return e.length>0?+e[0]:null}return null},"getPrepaidShipmentsNumberFromOptions"),Xp=n(t=>{var e,r;return(t.selling_plan_id||((r=(e=t.selling_plan)==null?void 0:e.id)!=null?r:"")).toString()},"getAllocationFrequency"),el=n((t,e)=>ae(t.compare_at_price,e),"getAllocationRegularPrice"),tl=n((t,e)=>{var r;if(zr(t)){let o=Yr((r=t.selling_plan)==null?void 0:r.options),i=Math.round(t.price/o);return ae(i,e)}return ae(t.price,e)},"getAllocationSubscriptionPrice"),Ws=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),rl=n((t,e)=>{var o,i,s;if(zr(t)){let a=Yr((o=t.selling_plan)==null?void 0:o.options),c=t.price/a,p=Ws(t,c);return Br(p)}let r="";return((i=t.price_adjustments[0])==null?void 0:i.value_type)==="percentage"?r=Br(t.price_adjustments[0].value):(s=t.price_adjustments[0])!=null&&s.value?r=ae(t.price_adjustments[0].value,e):t.compare_at_price&&(r=ae(t.compare_at_price-t.price,e)),r},"getAllocationDiscountRate"),ol=n(t=>{var e;return zr(t)?Yr((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),nl=n((t,e,r,o)=>{var f,d;let i=Yr((f=t.selling_plan)==null?void 0:f.options),s=t.price/i,a=t.compare_at_price-s,c=Ws(t,s),p=(d=r==null?void 0:r.price_adjustments)==null?void 0:d[0],l=p&&p.value_type==="percentage"?p.value:null;return e.regularPrepaidPrice=ae(t.price,o),e.prepaidSavingsPerShipment=ae(Math.round(a),o),e.prepaidSavingsTotal=ae(Math.round(a*i),o),l&&c&&(e.prepaidExtraSavingsPercentage=Br(c-l)),e},"addPrepaidPriceAndSavings"),ln="Subscribe and Save",il=n((t,e,r)=>{t.selling_plan||(t.selling_plan=e.find(i=>i.id===t.selling_plan_id));let o={frequency:Xp(t),regularPrice:el(t,r),subscriptionPrice:tl(t,r),discountRate:rl(t,r),prepaidShipments:ol(t)};if(zr(t)){let i=e.find(s=>s.group_name===ln&&s.options.length===1);return nl(t,o,i,r)}return o},"mapSellingPlanToDiscount"),un=n((t,e,r=[],o)=>[...t,il(e,r,o)],"sellingPlanAllocationsReducer"),Js=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group_name:r.name}))],[]),"getSellingPlans");var Qs=n((t,e,r)=>{let o=Object.keys(t).filter(i=>i.startsWith(e.toString()));return o.length?{...t,...o.reduce((i,s)=>({...i,[s]:r}),{})}:t},"overrideLineKey"),Ks=n((t,e,r)=>{if(!r)return null;if(!We(r))return r;if(pr(t,e)){let o=te(t,e,r);return o||fe(t)}return r},"getDefaultSellingPlan"),sl=n((t,e)=>t.map(r=>{var o,i,s,a,c,p,l;return We(r==null?void 0:r.frequency)?{...r,frequency:pr((o=e==null?void 0:e.config)==null?void 0:o.frequencies,(i=e==null?void 0:e.config)==null?void 0:i.frequenciesEveryPeriod)?te((s=e==null?void 0:e.config)==null?void 0:s.frequencies,(a=e==null?void 0:e.config)==null?void 0:a.frequenciesEveryPeriod,r.frequency)||te((c=e==null?void 0:e.config)==null?void 0:c.frequencies,(p=e==null?void 0:e.config)==null?void 0:p.frequenciesEveryPeriod,e.defaultFrequency)||fe((l=e==null?void 0:e.config)==null?void 0:l.frequencies):r.frequency}:r}),"mapExistingOptinsFromOfferResponse"),al=n(({autoship:t={},autoship_by_default:e={},default_frequencies:r={},in_stock:o={}},i,s)=>Object.keys(t).reduce((a,c)=>{if(!i.some(p=>p.id===c)){if(!(t[c]&&e[c]&&o[c]))return a;let{config:{frequencies:p,frequenciesEveryPeriod:l}={},defaultFrequency:f}=s,d=r[c],m;return r[c]&&pr(p,l)?m=te(p,l,`${d.every}_${d.every_period}`)||Ks(p,l,f)||fe(p):r[c]?m=`${d.every}_${d.every_period}`:m=Ks(p,l,f)||"_",a.concat({id:c,frequency:m})}return a},[]),"reduceNewOptinsFromOfferResponse"),Zs=n(t=>t==null?void 0:t.selling_plan_groups.find(r=>r.name===ln),"getOGSellingPlanGroup"),cl=n((t,e)=>({...Qs(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Xs=n((t,[e])=>({...t,[e]:!0}),"productTrue"),ea=n((t,e)=>{let r=x(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),pl=n(t=>t.name.toUpperCase().includes("PREPAID"),"isPrepaidSellingPlanGroup"),ll=n((t,e)=>{if(!t||t.length===0)return[];if(!e||e.length===0)return t;let r=e.reduce((o,i)=>(pl(i)||o.push(...i.selling_plans.map(s=>s.id)),o),[]);return t.filter(o=>r.includes(o.selling_plan_id))},"filterNonPrepaidSellingPlans"),ul=n((t={},e)=>{if(B===e.type)return Object.entries(e.payload).reduce(Xs,t);if(ue===e.type){let{payload:r}=e;return r.items.reduce(ea,t)}if(K===e.type){let{payload:{product:r}}=e;return[r,...(r==null?void 0:r.variants)||[]].reduce((o,i)=>{let s=ll(i==null?void 0:i.selling_plan_allocations,r==null?void 0:r.selling_plan_groups);return{...Qs(o,i.id,(s==null?void 0:s.length)>0),[i.id]:(s==null?void 0:s.length)>0}},t)}return pe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"autoshipEligible");function dl(t){let e=["day","week","month"].findIndex(o=>t.toLowerCase().includes(o))+1,r=(t.match(/(\d+)/)||["",1])[1];return r&&e?`${r}_${e}`:null}n(dl,"textToFreq");function ta(t){var e;return(e=t==null?void 0:t.selling_plans)==null?void 0:e.map(({options:r})=>r||[]).flat().map(({value:r})=>dl(r))}n(ta,"sellingPlansToEveryPeriod");function ra(t){var e;return(e=t==null?void 0:t.selling_plans)==null?void 0:e.map(({id:r})=>`${r}`)}n(ra,"sellingPlansToFrequencies");function oa(t){var r;let e=(r=t==null?void 0:t.options.find(({name:o})=>o==="Shipment amount"))==null?void 0:r.value.split(" ")[0];return e?Number(e):void 0}n(oa,"getPrepaidShipments");function fl(t){return t.reduce((e,r)=>{let o=r.name.split("-")[1],i=r.selling_plans.map(s=>({numberShipments:oa(s),sellingPlan:String(s.id)}));return{...e,[o]:i}},{})}n(fl,"getPrepaidSellingPlans");var hl=n((t={frequencies:[],offerType:"radio",frequenciesEveryPeriod:[]},e)=>{var r,o,i;if(B===e.type){let s=[...new Set(Object.values(e.payload).map(Object.keys).flat())];return{...t,frequencies:s}}if(K===e.type){let{payload:{product:s,currency:a}}=e,c={},p=Zs(s),l=ra(p);if(l!=null&&l.length){let d=ta(p),m=((o=(r=p.options)==null?void 0:r[0])==null?void 0:o.values)||l,b=t.defaultFrequency;b&&We(b)&&(b=te(l,d,b)||fe(l)||b),c={frequencies:l,frequenciesEveryPeriod:d,frequenciesText:m,...b?{defaultFrequency:b}:{}}}let f=s==null?void 0:s.selling_plan_groups.filter(d=>/^Prepaid-.*/.test(d.name));return f.length&&(c={...c,prepaidSellingPlans:{...t.prepaidSellingPlans,...fl(f)}}),{...t,...c,storeCurrency:a}}if(T===e.type){let{payload:{offer:s}}=e,{defaultFrequency:a,config:{frequencies:c,frequenciesEveryPeriod:p,prepaidSellingPlans:l={}}={},product:f}=s;return(i=l[f==null?void 0:f.id])!=null&&i.some(({sellingPlan:d})=>d===a)?{...t,defaultFrequency:fe(c)||a}:We(a)?{...t,defaultFrequency:te(c,p,a)||fe(c)||a}:{...t,defaultFrequency:a}}return Ge===e.type?{...t,merchantSettings:{...e.payload}}:t},"config"),ml=n((t={},e)=>{var r;if(B===e.type)return Object.entries(e.payload).reduce(Xs,t);if(ue===e.type)return e.payload.items.reduce(ea,t);if(K===e.type){let{payload:{product:o}}=e;return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce(cl,t)||t}return J===e.type&&e.payload.product===null?{...t}:pe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"inStock"),gl=n((t={},e)=>t,"offer");function yl({prepaidShipments:t,offer:e,product:r}){var o;if(t){let i=x(r.id),s=(o=e.config.prepaidSellingPlans[i])==null?void 0:o.find(a=>a.numberShipments===t);return s?s.sellingPlan:null}return e.config.frequencies[0]}n(yl,"getFrequencyForPrepaidShipments");function bl(t){let e=oa(t.selling_plan_allocation.selling_plan),r={id:t.key,frequency:`${t.selling_plan_allocation.selling_plan.id}`};return e&&(r.prepaidShipments=e),r}n(bl,"getOptedInItem");var _l=n((t=[],e)=>{if(ue===e.type){let r=e.payload;return t.filter(o=>!o.id.includes(":")).concat(r.items.reduce((o,i)=>i.selling_plan_allocation?[...o,bl(i)]:o,[]))}if(T===e.type){let{offer:r={},...o}=e.payload,i=sl(t,r),s=al(o,i,r);return[...i,...s]}if(K===e.type){let{product:r}=e.payload,o=Zs(r);if(!o)return t;let i=ra(o),s=ta(o);return t.map(a=>We(a.frequency)?{...a,frequency:te(i,s,a.frequency)||fe(i)}:a)}if(ie===e.type){let{payload:r}=e,o=jr(t,e),[i,s]=Je(o,r.product);return s.concat({...i,...r.product,frequency:yl(r)})}return jr(t,e)},"optedin"),Sl=n((t={},e)=>t,"productOffer"),El=n((t={},e)=>{var r;if(K===e.type){let{payload:{product:o,currency:i}}=e,s=Js(o);return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce((a,c)=>{var p;return{...a,[c.id]:(p=c.selling_plan_allocations)==null?void 0:p.reduce((l,f)=>un(l,f,s,i),[])}},t)||t}if(ue===e.type){let o=e.payload;return o.items.reduce((i,s)=>s.selling_plan_allocation?{...i,[s.key]:un([],s.selling_plan_allocation,[],o.currency)}:i,t)||t}return B===e.type?Qe(e.payload):t},"productPlans"),xl=Lt({auth:Wo,authUrl:Ko,autoshipByDefault:nn,autoshipEligible:ul,config:hl,defaultFrequencies:sn,eligibilityGroups:zo,environment:Ut,firstOrderPlaceDate:Xo,incentives:Yo,inStock:ml,locale:tn,merchantId:Jo,nextUpcomingOrder:Bo,offer:gl,offerId:Qo,optedin:_l,optedout:Go,previewStandardOffer:rn,previewUpsellOffer:on,productOffer:Sl,productPlans:El,productToSubscribe:en,sessionId:Zo,templates:an,prepaidShipmentsSelected:cn});function dn(t,e){return window.og&&window.og.previewMode?Hr(t,e):xl(t,e)}n(dn,"shopifyReducer");var aa=ce(bt()),ca=ce($t());function na(t,e,r){let o=`[name="id"][value="${t}"]`,i=`form[action="/cart/add"] option[value="${t}"]`;if(!e)return;let s=document.querySelectorAll(o);s.length||(s=document.querySelectorAll(i)),[...s].forEach(a=>{let c=a.form,p=c==null?void 0:c.querySelector(`[name="${e}"]`);p||(p=document.createElement("input"),p.type="hidden",p.name=`attributes[${e}]`,c==null||c.appendChild(p)),p.value=r})}n(na,"updateTrackingInputs");function fn(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(fn,"getTrackingKey");function vl(t,e){var f,d,m,b;if(!((f=t.payload.offer)==null?void 0:f.autoshipByDefault))return;let o=(d=t.payload.offer)==null?void 0:d.product.id,i=fn(),s=((m=t.payload.offer)==null?void 0:m.location)||"",a=((b=t.payload.offer)==null?void 0:b.variationId)||"",c=Wr(o,e),l=[o,R.toLowerCase(),s,c,a].join(",");na(o,i,l)}n(vl,"addDefaultToSubTracking");function hn(t){return e=>r=>{switch(e(r),r.type){case R:case I:case k:{let o=r.payload.offer,i=mn(r);o&&!o.isCart&&na(o.product.id,i[0],i[1]);break}case T:vl(r,t);break;default:}}}n(hn,"shopifyTrackingMiddleware");var ia,sa,gn=((sa=(ia=window.Shopify)==null?void 0:ia.routes)==null?void 0:sa.root)||"/",Ol="/cart",Tl=`${gn}cart.js`,Pl=`${gn}cart/change.js`,wl=`${gn}products/`,Cl='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',Rl=n(t=>(0,ca.debounce)(100,!1,function(e){let{id:r}=Object.fromEntries([...new FormData(e).entries()]);r?t.setAttribute("product",r):t.removeAttribute("product")}),"makeSyncProductId");async function Al(){var r,o;let t=(o=(r=window.Shopify)==null?void 0:r.currency)==null?void 0:o.active;return t||(await yn()).currency}n(Al,"getCurrency");async function Nl(t,e){let r=Il(e);if(r)try{let[i,s]=await Promise.all([pa(r),Al()]),a={product:i,offer:e,currency:s};t.dispatch({type:K,payload:a})}catch(i){console.warn("OG: Unable to fetch product details for PDP",i)}let o=e.closest("form");if(!o){let i=e.parentElement;for(;i&&(o=i.querySelector('form[action$="/cart/add"]'),!(o||i.tagName.toLowerCase()==="body"));)i=i.parentElement}if(o){let i=Rl(e);o.addEventListener("change",()=>i(o)),new MutationObserver(()=>i(o)).observe(o,{subtree:!0,childList:!0})}else console.info("no /cart/add form found for og-offer",e)}n(Nl,"setupPdp");async function yn(){return(await fetch(Tl)).json()}n(yn,"getCart");function Il(t){return[()=>t==null?void 0:t.dataset.shopifyProductHandle,()=>{var e,r;return(((r=(e=document.querySelector('[href$=".oembed"]'))==null?void 0:e.getAttribute("href"))==null?void 0:r.match(/\/([^/]+)\.oembed$/))||[])[1]},()=>{var e,r;return(document.querySelector('meta[property="og:type"][content="product"]')&&((r=(e=document.querySelector('meta[property="og:url"][content]'))==null?void 0:e.getAttribute("content"))==null?void 0:r.match(/\/([^/]+)$/))||[])[1]},()=>{var e;return(e=[...document.querySelectorAll("[type$=json]")].map(r=>JSON.parse(r.textContent||"{}")).find(r=>r.handle&&r.price))==null?void 0:e.handle}].reduce((e,r)=>e||r(),"")}n(Il,"guessProductHandle");var pa=(0,aa.default)(async function(t){return(await fetch(`${wl}${t}.js`)).json()});async function kl(t,e){let r=await yn(),{items:o}=r,i=r;t.dispatch({type:ue,payload:i});let s=Number(e.product.id);s<=o.length&&e.setAttribute("product",o[s-1].key),(await Promise.all(Array.from(new Set(o.map(({handle:c})=>c))).map(pa))).forEach(c=>{let p={product:c,offer:e,currency:r.currency};t.dispatch({type:K,payload:p})})}n(kl,"setupCart");async function ql(t,e){var s,a;let r=t.payload.offer,o=t.payload.frequency||Wr(t.payload.product.id,e),i=mn(t);if(!!(r!=null&&r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(Cl)),p=t.payload.product.id,l=await yn(),f=(s=l==null?void 0:l.items)==null?void 0:s.findIndex(C=>C.key===p),d=l.items[f],m=d.quantity,b=x(p),S=await fetch(Pl,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:p,quantity:m,attributes:Object.fromEntries([i]),properties:d.properties,selling_plan:o||null,sections:c.map(C=>C.id.replace(/^shopify-section-/,""))})});if(S.status!==200)throw new Error("Cart not updated");let h=await S.json(),E=l.items.length===h.items.length?h.items[f].key:(a=h.items.find(C=>C.quantity===m&&C.product_id===b&&(!o&&!C.selling_plan_allocation||(C==null?void 0:C.selling_plan_allocation.selling_plan.id)===o)))==null?void 0:a.key;E&&(e.dispatch({type:ht,payload:{oldCartProductKey:p,newCartProductKey:E}}),r.setAttribute("product",E));let P=h;e.dispatch({type:ue,payload:P});let _=new CustomEvent(Vn,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(_),_.defaultPrevented)return;let w=h.sections;Object.values(w).length?c.forEach(C=>{let _n=C.id.replace(/^shopify-section-/,"");if(!(_n in w))return;let ma=w[_n],Sn=new DOMParser().parseFromString(ma.toString()||"","text/html").getElementById(C.id);Sn&&(C.innerHTML=Sn.innerHTML)}):window.location.pathname.startsWith(Ol)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(ql,"synchronizeCartOptin");function mn(t){var a,c;let e=t.payload.product.id;if(!e)return[];let r=fn(),o=((a=t.payload.offer)==null?void 0:a.location)||"",i=((c=t.payload.offer)==null?void 0:c.variationId)||"",s=[e,t.type.toLowerCase(),o];switch(t.type){case J:case I:s.push(""),s.push(i);break;case R:case k:s.push(t.payload.frequency),s.push(i);break;default:return[]}return[r,s.join(",")]}n(mn,"getTrackingEvent");function Wr(t,e){var i;return(i=sr({id:t})(e.getState()))==null?void 0:i.frequency}n(Wr,"getSubscribedFrequency");function Dl(t,e){e.isCart||!e.shouldEnableOffer||[...document.querySelectorAll('form[action$="/cart/add"] [name=id]')].forEach(r=>{let o=r.value,i=Wr(o,t);ii(r.form,"selling_plan",i)})}n(Dl,"synchronizeSellingPlan");function bn(t){return e=>r=>{var o;switch(r.type){case R:case I:case k:break;case J:(o=r.payload.offer)!=null&&o.isCart?kl(t,r.payload.offer):Nl(t,r.payload.offer);break;default:}switch(e(r),r.type){case R:case I:case k:case ie:ql(r,t);case J:case T:case K:Dl(t,r.payload.offer);break;default:}}}n(bn,"shopifyMiddleware");var Fl="/apps/subscriptions/auth/",la="og_auth_begin",Ul="og_auth_end",Ll=n(t=>{let[e,r,o,i]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:i}},"parseIntegrationTempAuth");async function ua({store:t}){var i;let[e]=po(),r=vt(),o=r!=null&&r.dataset.customer?Ll(r.dataset.customer):(i=window.ogShopifyConfig)==null?void 0:i.customer;if(o){let s=await $l(o);if(s){let[a,c,p]=s.split("|");t.dispatch(Tt(e,a,Number(c),p))}}else oi("og_auth")}n(ua,"authorizeShopifyCustomer");async function Ml(t){try{let r=await(await fetch(`${Fl}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(la);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+la.length,r.lastIndexOf(Ul)))}catch(e){console.error(e)}}n(Ml,"fetchOGSignature");async function $l(t){let e=ni("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:i}=await Ml(t);if(!r)return"";let s=new Date,a=btoa(i);s.setTime(s.getTime()+2*60*60*1e3);let c=`${r}|${o}|${a};expires=${s.toUTCString()}`;return document.cookie=`og_auth=${c};secure;path=/`,c}n($l,"getOrCreateAuthCookie");var da,ha=qi(...(da=q)!=null&&da.shopify_selling_plans?[dn,bn]:[Hr],q.shopify&&hn),O=pn(ha),Vl=O.isReady,jl=O.addOptinChangedCallback,Hl=O.addTemplate,Gl=O.clear,Bl=O.config,zl=O.disableOptinChangedCallbacks,Yl=O.getOptins,Wl=O.getProductsForPurchasePost,Jl=O.initialize,Kl=O.previewMode,Ql=O.register,Zl=O.resolveSettings,Xl=O.setAuthUrl,eu=O.setEnvironment,tu=O.setLocale,ru=O.setMerchantId,ou=O.setPublicPath,nu=O.setTemplates,iu=O.setupCart,su=O.setupProduct,au=O.setupProducts,cu=n(()=>ri(O),"autoInit");var pu=O.initialize,fa;(fa=q)!=null&&fa.shopify_selling_plans&&cr(()=>ua(O));return Ea(lu);})();
|
|
1037
1037
|
; return lib; });
|
|
1038
1038
|
//# sourceMappingURL=offers.js.map
|