@ordergroove/offers 2.48.2 → 2.48.4
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 +16 -0
- package/dist/bundle-report.html +1 -1
- package/dist/examples.js +48 -48
- package/dist/examples.js.map +4 -4
- package/dist/offers.js +1 -1
- package/dist/offers.js.map +3 -3
- package/package.json +6 -5
- package/src/shopify/shopifyMiddleware.ts +3 -1
- package/tsconfig.json +4 -2
- package/tsconfig.tsbuildinfo +1 -0
package/dist/offers.js
CHANGED
|
@@ -1062,6 +1062,6 @@ var lib=(()=>{var ic=Object.create;var bt=Object.defineProperty;var sc=Object.ge
|
|
|
1062
1062
|
<slot name="append"></slot>
|
|
1063
1063
|
`:d`
|
|
1064
1064
|
<slot name="fallback"></slot>
|
|
1065
|
-
`}};n(fo,"Price");var Vp=n((t,e)=>{var r,o;return{productPlans:t.productPlans,configDefaultFrequency:ne((r=e.product)==null?void 0:r.id)(t),frequency:oe(e.product)(t),discountedProductPriceFromOffers:Li((o=e.product)==null?void 0:o.id)(t)}},"mapStateToProps"),Ua=m(Vp)(fo);function Sn(t){qa(),Cs(t);try{customElements.define("og-when",ca),customElements.define("og-text",ba),customElements.define("og-incentive-text",xa),customElements.define("og-offer",Aa),customElements.define("og-select-frequency",Pa),customElements.define("og-optout-button",da),customElements.define("og-optin-toggle",ya),customElements.define("og-optin-status",pa),customElements.define("og-optin-button",ua),customElements.define("og-optin-select",ha),customElements.define("og-upsell-button",ma),customElements.define("og-frequency-status",fa),customElements.define("og-modal",Ht),customElements.define("og-select",zt),customElements.define("og-tooltip",Yt),customElements.define("og-upsell-modal",ga),customElements.define("og-next-upcoming-order",va),customElements.define("og-price",Ua),customElements.define("og-prepaid-toggle",Ia),customElements.define("og-prepaid-data",Na),customElements.define("og-prepaid-button",ka),customElements.define("og-prepaid-select",Fa),customElements.define("og-subscription-button",Da)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(Wi(o)),this},setMerchantId(o){return t.dispatch(Bi(o)),this},setAuthUrl(o){return t.dispatch(zi(o)),this},receiveMerchantSettings(o){return t.dispatch(ns(o)),this},getProductsForPurchasePost(o=[]){return zo(t.getState(),o)},getOptins(o=[]){return zo(t.getState(),o)},clear(){t.dispatch(Qi())},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,console.log("OG Offers preview mode enabled")),this},config(o){return t.dispatch(Xi(o)),this},setLocale(o){return t.dispatch(Zi(o)),this},addTemplate(o,i,s){return t.dispatch(es(o,i,s)),this},setTemplates(o){return t.dispatch(ts(o)),this},setPublicPath(o){return this},resolveSettings(o,i,s,a=t){if(!R.shopify_selling_plans&&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 l=a.getState(),{sessionId:p}=l;p&&c.forEach(u=>a.dispatch(Vo(u))),s.product_discounts&&typeof s.product_discounts=="object"&&a.dispatch({type:Je,payload:s.product_discounts})}},initialize(o,i,s,a={}){var l;e&&console.warn("og.offers has been initialized already. Skipping.");let c=t.getState();return o&&o!==c.merchantId&&r.setMerchantId(o),i&&i!==((l=c.environment)==null?void 0:l.name)&&r.setEnvironment(i),r.receiveMerchantSettings(a),s&&r.setAuthUrl(s),e||r.resolveSettings(o,i,window.og_settings,t),e=!0,this}};return window.OG=window.OG||{},Object.assign(window.OG,r),Object.assign(r.initialize,r),Bo(window.opener,r),r}n(Sn,"makeApi");var ho=n((t=[],e)=>{switch(e.type){case he:return[];case we:return e.newValue?e.newValue.optedin:t;case C:case D:{let[{prepaidShipments:r,...o},i]=nt(t,e.payload.product);return i.concat({...o,...e.payload.product,frequency:e.payload.frequency})}case le:{let{payload:r}=e,[{prepaidShipments:o,...i},s]=nt(t,r.product),a={...i,...r.product};return r.prepaidShipments&&(a.prepaidShipments=r.prepaidShipments),s.concat(a)}case F:return t.filter(r=>!I(e.payload.product,r));case _t:return t.map(r=>I(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case sr:return t.filter(r=>!I(e.payload.product,r));case Ye:return[];default:return t}},"optedin"),_n=n((t=[],e)=>{switch(e.type){case he:return[];case we:return e.newValue?e.newValue.optedout:t;case C:case D:return t.filter(r=>!I(e.payload.product,r));case F:{let[r,o]=nt(t,e.payload.product);return o.concat({...r,...e.payload.product,frequency:e.payload.frequency})}case _t:return t.map(r=>I(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case Ye:return[];default:return t}},"optedout"),En=n((t={},{type:e,payload:r})=>{switch(e){case rr:return r&&r.count>0?{...t,...r.results[0]&&{...r.results[0],place:new Date(Date.parse(r.results[0].place.replace(/-/gi,"/")))}}:t;case or:return{...t,products:(r.results||[]).map(o=>o.product)};case ir:return{...t,...r,public_id:r.order,...r.product&&{products:(t.products||[]).concat(r.product)}};default:return t}},"nextUpcomingOrder"),jp=n((t={},e)=>{switch(e.type){case T:return{...t,...e.payload.autoship};default:return t}},"autoshipEligible"),Gp=n((t={},e)=>{switch(e.type){case L:return{...t};case T:return{...t,...e.payload.in_stock};default:return t}},"inStock"),xn=n((t={},e)=>{switch(e.type){case T:return{...t,...e.payload.eligibility_groups};default:return t}},"eligibilityGroups"),La=n((t,e,r)=>t.map(o=>{let i=r==null?void 0:r[o];return{...e[o],...i?{criteria:i.criteria?i.criteria:{node_type:"PREMISE",standard:ge.PROGRAM_WIDE,premise_value:null},threshold_field:i.threshold_field,threshold_value:i.threshold_value}:{},id:[o][0]}}),"mapIncentive"),Pn=n((t={},e)=>{switch(e.type){case T:return{...t,...[...new Set(Object.keys(e.payload.incentives||{}))].reduce((r,o)=>({...r,[o]:Object.entries(e.payload.incentives).filter(([i])=>i===o).reduce((i,[,{initial:s,ongoing:a}])=>({...i,initial:[...i.initial||[],...La(s,e.payload.incentives_display,e.payload.incentives_display_enhanced)],ongoing:[...i.ongoing||[],...La(a,e.payload.incentives_display,e.payload.incentives_display_enhanced)]}),{})}),{})};default:return t}},"incentives"),Hp=n((t={},e)=>{switch(e.type){case C:case D:return{...t,[S(e.payload.product)]:e.payload.frequency};case F:return{...t,[S(e.payload.product)]:void 0};default:return t}},"frequency"),On=n((t=!1,e)=>{switch(e.type){case tr:return{...e.payload};case Te:return!1;default:return t}},"auth"),vn=n((t="",e)=>{switch(e.type){case Ve:return e.payload;default:return t}},"merchantId"),Tn=n((t=null,e)=>{switch(e.type){case er:return e.payload;default:return t}},"authUrl"),Bp=n((t={},e)=>{switch(e.type){case T:return{...t,offerId:(e.payload.module_view||{}).regular,...e.payload.modifiers};default:return t}},"offer"),wn=n((t="",e)=>{switch(e.type){case T:return(e.payload.module_view||{}).regular||"";default:return t}},"offerId"),Cn=n((t=null,e)=>{switch(e.type){case he:return null;case je:return e.payload;default:return t}},"sessionId"),zp=n((t={},e)=>{switch(e.type){case T:return{...t,...Object.entries(e.payload.autoship).map(([r])=>({[r]:Object.keys(e.payload.modifiers)})).reduce((r,o)=>({...r,...o}),{})};case Ye:return{};default:return t}},"productOffer"),Rn=n((t={},e)=>{switch(e.type){case pr:return{...t,[S(e.payload.product)]:e.payload.firstOrderPlaceDate};default:return t}},"firstOrderPlaceDate"),An=n((t={},e)=>{switch(e.type){case ur:return{...t,[S(e.payload.product)]:e.payload.productToSubscribe};default:return t}},"productToSubscribe"),In=n((t={},e)=>{switch(e.type){case Ge:return{...t,name:"local",apiUrl:"http://py3web.ordergroove.localhost",legoUrl:"http://py3lego.ordergroove.localhost"};case He:return{...t,name:Ce,apiUrl:"https://staging.offers.ordergroove.com",legoUrl:"https://staging.restapi.ordergroove.com"};case Be:return{...t,name:dr,apiUrl:"https://dev.offers.ordergroove.com",legoUrl:"https://dev.restapi.ordergroove.com"};case ze:return{...t,name:Re,apiUrl:"https://offers.ordergroove.com",legoUrl:"https://restapi.ordergroove.com"};default:return t}},"environment"),Nn=n((t={offerOptInLabel:"Subscribe to save",offerIncentiveText:"Save {{ogIncentive DiscountPercent}} when you subscribe",offerOptOutLabel:"Deliver one-time only",offerEveryLabel:"Delivery Every",offerTooltipTrigger:"[?]",offerTooltipContent:"Seems this is a great subscription offering. Many fun details about this program exist.",optinButtonLabel:"\u2022",optoutButtonLabel:"\u2022",optinStatusOptedInLabel:"You're opted in!",optinStatusOptedOutLabel:"You're not opted in.",optinToggleLabel:"\u2022",upsellButtonLabel:"Add item to order on ",upsellButtonPrefix:"",upsellModalContent:"Some upsell modal content",upsellModalOptInLabel:"Subscribe",upsellModalOptOutLabel:"Purchase one time",upsellModalTitle:"Impulse Upsell",upsellModalConfirmLabel:"Ok",upsellModalCancelLabel:"Cancel",defaultFrequencyCopy:"(Most Popular)",frequencyPeriods:{1:"day",2:"week",3:"month"},prepaidOptInLabel:"Prepaid Subscription",prepaidShipmentsLabel:"Number of prepaid shipments"},e)=>{switch(e.type){case ar:return{...t,...e.payload};default:return t}},"locale"),Yp=n((t={offerType:"radio"},e)=>{switch(e.type){case We:return{...t,...e.payload,defaultFrequency:e.payload.defaultFrequency?Ct(e.payload.defaultFrequency):t.defaultFrequency,frequenciesEveryPeriod:[],frequencies:e.payload.frequencies?e.payload.frequencies.map(Ct):t.frequencies};case pe:return{...t,merchantSettings:{...e.payload}};default:return t}},"config"),kn=n((t=!1,e)=>{switch(e.type){case fe:return e.payload.isPreview;default:return t}},"previewStandardOffer"),Fn=n((t=!1,e)=>{switch(e.type){case xt:return e.payload.isPreview;default:return t}},"previewUpsellOffer");var Dn=n((t={},e)=>{switch(e.type){case T:return{...t,...e.payload.autoship_by_default};default:return t}},"autoshipByDefault"),qn=n((t=[],e)=>{switch(e.type){case T:return{...t,...e.payload.default_frequencies};default:return t}},"defaultFrequencies"),Un=n((t=[],e)=>{switch(e.type){case lr:return[...e.payload||[]];case cr:return[e.payload,...t];default:return t}},"templates"),Wp=n((t={},e)=>{switch(e.type){case Je:return Lr(e.payload);default:return t}},"productPlans"),Ln=n((t={},e)=>{switch(e.type){case Et:{let{[e.payload.oldCartProductKey]:r,...o}=t;return{...o,[e.payload.newCartProductKey]:r}}case le:return e.payload.prepaidShipments?{...t,[e.payload.product.id]:e.payload.prepaidShipments}:t;default:return t}},"prepaidShipmentsSelected"),Jp=n((t={},e)=>t,"price"),mo=Kt({optedin:ho,optedout:_n,nextUpcomingOrder:En,autoshipEligible:jp,inStock:Gp,eligibilityGroups:xn,incentives:Pn,frequency:Hp,auth:On,merchantId:vn,authUrl:Tn,offer:Bp,offerId:wn,experiments:Dr,sessionId:Cn,productOffer:zp,firstOrderPlaceDate:Rn,productToSubscribe:An,environment:In,locale:Nn,config:Yp,previewStandardOffer:kn,previewUpsellOffer:Fn,autoshipByDefault:Dn,defaultFrequencies:qn,templates:Un,productPlans:Wp,prepaidShipmentsSelected:Ln,price:Jp});var go=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"),yo=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"),Kp=n(t=>{var e,r;return(t.selling_plan_id||((r=(e=t.selling_plan)==null?void 0:e.id)!=null?r:"")).toString()},"getAllocationFrequency"),Qp=n((t,e)=>M(t.compare_at_price,e),"getAllocationRegularPrice"),Zp=n((t,e)=>{var r;if(go(t)){let o=yo((r=t.selling_plan)==null?void 0:r.options),i=Math.round(t.price/o);return M(i,e)}return M(t.price,e)},"getAllocationSubscriptionPrice"),Ma=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),Xp=n((t,e)=>{var o,i,s;if(go(t)){let a=yo((o=t.selling_plan)==null?void 0:o.options),c=t.price/a,l=Ma(t,c);return et(l)}let r="";return((i=t.price_adjustments[0])==null?void 0:i.value_type)==="percentage"?r=et(t.price_adjustments[0].value):(s=t.price_adjustments[0])!=null&&s.value?r=M(t.price_adjustments[0].value,e):t.compare_at_price&&(r=M(t.compare_at_price-t.price,e)),r},"getAllocationDiscountRate"),eu=n(t=>{var e;return go(t)?yo((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),tu=n((t,e,r,o)=>{var u,f;let i=yo((u=t.selling_plan)==null?void 0:u.options),s=t.price/i,a=t.compare_at_price-s,c=Ma(t,s),l=(f=r==null?void 0:r.price_adjustments)==null?void 0:f[0],p=l&&l.value_type==="percentage"?l.value:null;return e.regularPrepaidPrice=M(t.price,o),e.prepaidSavingsPerShipment=M(Math.round(a),o),e.prepaidSavingsTotal=M(Math.round(a*i),o),p&&c&&(e.prepaidExtraSavingsPercentage=et(c-p)),e},"addPrepaidPriceAndSavings"),ru=n((t,e,r)=>{var i;t.selling_plan||(t.selling_plan=e.find(s=>s.id===t.selling_plan_id));let o={frequency:Kp(t),regularPrice:Qp(t,r),subscriptionPrice:Zp(t,r),discountRate:Xp(t,r),prepaidShipments:eu(t),hasPriceAdjustments:((i=t.price_adjustments)==null?void 0:i.length)>0};if(go(t)){let s=ki(e);return tu(t,o,s,r)}return o},"mapSellingPlanToDiscount"),Mn=n((t,e,r=[],o)=>[...t,ru(e,r,o)],"sellingPlanAllocationsReducer"),$a=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group:r}))],[]),"getSellingPlans");var ou=n((t={offerType:"radio",productFrequencies:{},frequencies:[],frequenciesEveryPeriod:[]},e)=>{var r;if(q===e.type){let{payload:{product:o,currency:i}}=e,s={},a=(r=o.variants)==null?void 0:r.reduce((p,u)=>iu(p,u,o.selling_plan_groups,t),{}),c={...t.productFrequencies,...a};s={...s,productFrequencies:c,...Object.values(c)[0]};let l=$n(o);return Object.keys(l).length&&(s={...s,prepaidSellingPlans:{...t.prepaidSellingPlans,...l}}),{...t,...s,storeCurrency:i}}if(T===e.type){let{payload:{offer:o}}=e,{defaultFrequency:i,product:s}=o||{},{prepaidSellingPlans:a={}}=t,c=S(s==null?void 0:s.id),l=t.productFrequencies[c],p={...t.productFrequencies,[c]:{...l,defaultFrequency:su(c,i,a,l==null?void 0:l.frequencies,l==null?void 0:l.frequenciesEveryPeriod)}};return{...t,productFrequencies:p,...Object.values(p)[0]}}return pe===e.type?{...t,merchantSettings:{...e.payload}}:t},"config");function nu(t,e){var i,s;let r=At(t),o=Er(r);if(o!=null&&o.length){let a=xr(r),c=((s=(i=r.options)==null?void 0:i[0])==null?void 0:s.values)||o,l=e==null?void 0:e.defaultFrequency;return l&&Ne(l)&&(l=Q(o,a,l)||ue(o)||l),{frequencies:o,frequenciesEveryPeriod:a,frequenciesText:c,...l?{defaultFrequency:l}:{}}}return null}n(nu,"getFrequencies");function iu(t,e,r,o){let i=e.selling_plan_allocations.map(c=>c.selling_plan_group_id),s=r.filter(c=>i.includes(c.id)),a=nu(s,o.productFrequencies[e.id]);return a&&(t[e.id]=a),t}n(iu,"reduceSellingPlansToFrequencies");function su(t,e,r,o=[],i=[]){var s;return(s=r[t])!=null&&s.some(({sellingPlan:a})=>a===e)?ue(o)||e:Ne(e)&&(Q(o,i,e)||ue(o))||e}n(su,"getUpdatedDefaultFrequency");function $n(t){let e=t==null?void 0:t.selling_plan_groups.filter(r=>/^Prepaid-.*/.test(r.name));return e.length?e.reduce((r,o)=>{let i=o.name.split("-")[1],s=o.selling_plans.map(a=>({numberShipments:Pr(a),sellingPlan:String(a.id)}));return{...r,[i]:s}},{}):{}}n($n,"getPrepaidSellingPlans");var Va=ou;var Ga=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"),ja=n((t,e,r)=>{if(!r)return null;if(!Ne(r))return r;if(wr(t,e)){let o=Q(t,e,r);return o||ue(t)}return r},"getDefaultSellingPlan"),au=n((t,e,r)=>t.map(o=>Ne(o==null?void 0:o.frequency)?{...o,frequency:wr(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod)?Q(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,o.frequency)||Q(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,e==null?void 0:e.defaultFrequency)||ue(r==null?void 0:r.frequencies):o.frequency}:o),"mapExistingOptinsFromOfferResponse"),cu=n(({autoship:t={},autoship_by_default:e={},default_frequencies:r={},in_stock:o={},eligibility_groups:i={}},s,a,c,l)=>Object.keys(t).reduce((p,u)=>{var f;if(!s.some(h=>h.id===u)&&e[u]&&o[u]){if(t[u])return p.concat({id:u,frequency:lu({frequencyConfig:c,offerEl:a,default_frequencies:r,id:u})});if((f=i[u])!=null&&f.includes(mr.PREPAID)){let h=l?It(l):null;return p.concat({id:u,frequency:(h==null?void 0:h.sellingPlan)||Vn,prepaidShipments:(h==null?void 0:h.numberShipments)||null})}}return p},[]),"reduceNewOptinsFromOfferResponse"),lu=n(({frequencyConfig:t,offerEl:e,default_frequencies:r,id:o})=>{let{frequencies:i,frequenciesEveryPeriod:s}=t,{defaultFrequency:a}=e||{},c=r[o],l;return r[o]&&wr(i,s)?l=Q(i,s,`${c.every}_${c.every_period}`)||ja(i,s,a)||ue(i):r[o]?l=`${c.every}_${c.every_period}`:l=ja(i,s,a)||"_",l},"getOptInDefaultFrequency"),pu=n((t,e)=>({...Ga(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Ha=n((t,e)=>{let r=S(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),uu=n((t={},e)=>{var r;if(me===e.type){let{payload:o}=e;return o.items.reduce(Ha,t)}if(q===e.type){let{payload:{product:o}}=e,i=Ai(o==null?void 0:o.selling_plan_groups),s=new Set((r=i.flatMap(a=>a.selling_plans.map(c=>c.id)))!=null?r:[]);return o.variants.reduce((a,c)=>{var u,f;let p=((f=(u=c==null?void 0:c.selling_plan_allocations)==null?void 0:u.filter(h=>s.has(h.selling_plan_id)))!=null?f:[]).length>0;return{...Ga(a,c.id,p),[c.id]:p}},t)}return fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"autoshipEligible"),du=n((t={},e)=>{var r;if(me===e.type)return e.payload.items.reduce(Ha,t);if(q===e.type){let{payload:{product:o}}=e;return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce(pu,t)||t}return L===e.type&&e.payload.product===null?{...t}:fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"inStock"),fu=n((t={},e)=>t,"offer");function hu(t){let e=Pr(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(hu,"getOptedInItem");var Vn="prepaid-replace-me",mu=n((t=[],e)=>{if(me===e.type){let r=e.payload;return t.filter(o=>!o.id.includes(":")).concat(r.items.reduce((o,i)=>i.selling_plan_allocation?[...o,hu(i)]:o,[]))}if(T===e.type){let r=e.payload,{offer:o={},frequencyConfig:i,prepaidSellingPlans:s}=r,a=au(t,o,i),c=cu(r,a,o,i,s);return[...a,...c]}if(q===e.type){let{product:r}=e.payload,o=At(r==null?void 0:r.selling_plan_groups),i=$n(r),s=o?Er(o):[],a=o?xr(o):[];return t.map(c=>{let l=i[c.id];if(o&&Ne(c.frequency))return{...c,frequency:Q(s,a,c.frequency)||ue(s)};if(c.frequency===Vn&&(l==null?void 0:l.length)>0){let{sellingPlan:p,numberShipments:u}=It(l);return{...c,frequency:p,prepaidShipments:u}}return c}).filter(c=>c.frequency!==Vn)}if(le===e.type){let{payload:r}=e,o=ho(t,e),[i,s]=nt(o,r.product);return s.concat({...i,...r.product,frequency:r.frequency})}return ho(t,e)},"optedin"),gu=n((t={},e)=>{var r;if(q===e.type){let{payload:{product:o}}=e;return((r=o.variants)==null?void 0:r.reduce((i,s)=>({...i,[s.id]:{value:s.price}}),t))||t}return t},"price"),yu=n((t={},e)=>t,"productOffer"),bu=n((t={},e)=>{if(q===e.type){let{payload:{product:r,currency:o}}=e,i=$a(r);return r.variants.reduce((s,a)=>{var c;return{...s,[a.id]:(c=a.selling_plan_allocations)==null?void 0:c.reduce((l,p)=>Mn(l,p,i,o),[])}},t)||t}if(me===e.type){let r=e.payload;return r.items.reduce((o,i)=>i.selling_plan_allocation?{...o,[i.key]:Mn([],i.selling_plan_allocation,[],r.currency)}:o,t)||t}return t},"productPlans"),Su=Kt({auth:On,authUrl:Tn,autoshipByDefault:Dn,autoshipEligible:uu,config:Va,defaultFrequencies:qn,eligibilityGroups:xn,environment:In,firstOrderPlaceDate:Rn,incentives:Pn,inStock:du,locale:Nn,merchantId:vn,nextUpcomingOrder:En,offer:fu,offerId:wn,experiments:Dr,optedin:mu,optedout:_n,previewStandardOffer:kn,previewUpsellOffer:Fn,price:gu,productOffer:yu,productPlans:bu,productToSubscribe:An,sessionId:Cn,templates:Un,prepaidShipmentsSelected:Ln});function jn(t,e){return window.og&&window.og.previewMode?mo(t,e):Su(t,e)}n(jn,"shopifyReducer");var Wa=ce(Ot()),Ja=ce(Zt());function Ba(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,l=c==null?void 0:c.querySelector(`[name="${e}"]`);l||(l=document.createElement("input"),l.type="hidden",l.name=`attributes[${e}]`,c==null||c.appendChild(l)),l.value=r})}n(Ba,"updateTrackingInputs");function Gn(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(Gn,"getTrackingKey");function _u(t,e){var u,f,h,w;if(!((u=t.payload.offer)==null?void 0:u.autoshipByDefault))return;let o=(f=t.payload.offer)==null?void 0:f.product.id,i=Gn(),s=((h=t.payload.offer)==null?void 0:h.location)||"",a=((w=t.payload.offer)==null?void 0:w.variationId)||"",c=bo(o,e),p=[o,C.toLowerCase(),s,c,a].join(",");Ba(o,i,p)}n(_u,"addDefaultToSubTracking");function Hn(t){return e=>r=>{switch(e(r),r.type){case C:case F:case D:{let o=r.payload.offer,i=Bn(r);o&&!o.isCart&&Ba(o.product.id,i[0],i[1]);break}case T:_u(r,t);break;default:}}}n(Hn,"shopifyTrackingMiddleware");var za,Ya,So=((Ya=(za=window.Shopify)==null?void 0:za.routes)==null?void 0:Ya.root)||"/",Eu="/cart",xu=`${So}cart.js`,Pu=`${So}cart/change.js`,Ou=`${So}cart/update.js`,vu=`${So}products/`,Ka="__ordergroove_offer_id",Tu='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',wu=n(t=>(0,Ja.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 Cu(){var r,o;let t=(o=(r=window.Shopify)==null?void 0:r.currency)==null?void 0:o.active;return t||(await zn()).currency}n(Cu,"getCurrency");async function Ru(t,e){let r=Au(e);if(r)try{let[i,s]=await Promise.all([Qa(r),Cu()]),a={product:i,offer:e,currency:s};t.dispatch({type:q,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=wu(e);o.addEventListener("change",()=>i(o)),new MutationObserver(a=>{a.every(c=>c.type==="attributes")?a.some(c=>c.target.name==="id")&&i(o):i(o)}).observe(o,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["value"]})}else console.info("no /cart/add form found for og-offer",e)}n(Ru,"setupPdp");async function zn(){return(await fetch(xu)).json()}n(zn,"getCart");function Au(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(Au,"guessProductHandle");var Qa=(0,Wa.default)(async function(t){return(await fetch(`${vu}${t}.js`)).json()});async function Iu(t,e){let r=await zn(),{items:o}=r,i=r;t.dispatch({type:me,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(Qa))).forEach(c=>{let l={product:c,offer:e,currency:r.currency};t.dispatch({type:q,payload:l})})}n(Iu,"setupCart");async function Nu(t,e){var s,a;let r=t.payload.offer,o=t.payload.frequency||bo(t.payload.product.id,e),i=Bn(t);if(!!(r!=null&&r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(Tu)),l=t.payload.product.id,p=await zn(),u=(s=p==null?void 0:p.items)==null?void 0:s.findIndex(k=>k.key===l),f=p.items[u],h=f.quantity,w=S(l),x=Za(e),g={...Object.fromEntries([i]),...x?{[Ka]:x}:{}};if(Object.keys(g).length>0&&(await fetch(Ou,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:g})})).status!==200)throw new Error("Cart attributes not updated");let P=await fetch(Pu,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:l,quantity:h,properties:f.properties,selling_plan:o||null,sections:c.map(k=>k.id.replace(/^shopify-section-/,""))})});if(P.status!==200)throw new Error("Cart not updated");let _=await P.json(),y=p.items.length===_.items.length?_.items[u].key:(a=_.items.find(k=>k.quantity===h&&k.product_id===w&&(!o&&!k.selling_plan_allocation||(k==null?void 0:k.selling_plan_allocation.selling_plan.id)===o)))==null?void 0:a.key;y&&(e.dispatch({type:Et,payload:{oldCartProductKey:l,newCartProductKey:y}}),r.setAttribute("product",y));let v=_;e.dispatch({type:me,payload:v});let Jt=new CustomEvent(yi,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(Jt),Jt.defaultPrevented)return;let _o=_.sections;Object.values(_o).length?c.forEach(k=>{let Wn=k.id.replace(/^shopify-section-/,"");if(!(Wn in _o))return;let nc=_o[Wn],Jn=new DOMParser().parseFromString(nc.toString()||"","text/html").getElementById(k.id);Jn&&(k.innerHTML=Jn.innerHTML)}):window.location.pathname.startsWith(Eu)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(Nu,"synchronizeCartOptin");function Bn(t){var a,c;let e=t.payload.product.id;if(!e)return[];let r=Gn(),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 L:case F:s.push(""),s.push(i);break;case C:case D:s.push(t.payload.frequency),s.push(i);break;default:return[]}return[r,s.join(",")]}n(Bn,"getTrackingEvent");function bo(t,e){var i;return(i=Or({id:t})(e.getState()))==null?void 0:i.frequency}n(bo,"getSubscribedFrequency");function Za(t){let e=t.getState();return Mi(e)?e.offerId:null}n(Za,"getOfferIdAttribute");function ku(t,e){e!=null&&e.isCart||!(e!=null&&e.shouldEnableOffer)||[...document.querySelectorAll('form[action$="/cart/add"] [name=id]')].forEach(r=>{let o=r.value,i=bo(o,t);Cr(r.form,"selling_plan",i),Cr(r.form,"attributes[og__session]",t.getState().sessionId);let s=Za(t);s&&Cr(r.form,`attributes[${Ka}]`,s)})}n(ku,"synchronizeSellingPlan");function Yn(t){return e=>r=>{var o;switch(r.type){case C:case F:case D:break;case L:(o=r.payload.offer)!=null&&o.isCart?Iu(t,r.payload.offer):Ru(t,r.payload.offer);break;default:}switch(e(r),r.type){case C:case F:case D:case le:Nu(r,t);case L:case T:case q:ku(t,r.payload.offer);break;default:}}}n(Yn,"shopifyMiddleware");var Fu="/apps/subscriptions/auth/",Xa="og_auth_begin",Du="og_auth_end",qu=n(t=>{let[e,r,o,i]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:i}},"parseIntegrationTempAuth");async function ec({store:t}){var i;let[e]=Uo(),r=Rt(),o=r!=null&&r.dataset.customer?qu(r.dataset.customer):(i=window.ogShopifyConfig)==null?void 0:i.customer;if(o){let s=await Lu(o);if(s){let[a,c,l]=s.split("|");t.dispatch(Ft(e,a,Number(c),l))}}else ji("og_auth")}n(ec,"authorizeShopifyCustomer");async function Uu(t){try{let r=await(await fetch(`${Fu}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Xa);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Xa.length,r.lastIndexOf(Du)))}catch(e){console.error(e)}}n(Uu,"fetchOGSignature");async function Lu(t){let e=Gi("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:i}=await Uu(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(Lu,"getOrCreateAuthCookie");var tc,oc=Os(...(tc=R)!=null&&tc.shopify_selling_plans?[jn,Yn]:[mo],R.shopify&&Hn),O=Sn(oc),Mu=O.isReady,$u=O.addOptinChangedCallback,Vu=O.addTemplate,ju=O.clear,Gu=O.config,Hu=O.disableOptinChangedCallbacks,Bu=O.getOptins,zu=O.getProductsForPurchasePost,Yu=O.initialize,Wu=O.previewMode,Ju=O.register,Ku=O.resolveSettings,Qu=O.setAuthUrl,Zu=O.setEnvironment,Xu=O.setLocale,ed=O.setMerchantId,td=O.setPublicPath,rd=O.setTemplates,od=O.setupCart,nd=O.setupProduct,id=O.setupProducts,sd=n(()=>Vi(O),"autoInit");var ad=O.initialize,rc;(rc=R)!=null&&rc.shopify_selling_plans&&Tr(()=>ec(O));return pc(cd);})();
|
|
1065
|
+
`}};n(fo,"Price");var Vp=n((t,e)=>{var r,o;return{productPlans:t.productPlans,configDefaultFrequency:ne((r=e.product)==null?void 0:r.id)(t),frequency:oe(e.product)(t),discountedProductPriceFromOffers:Li((o=e.product)==null?void 0:o.id)(t)}},"mapStateToProps"),Ua=m(Vp)(fo);function Sn(t){qa(),Cs(t);try{customElements.define("og-when",ca),customElements.define("og-text",ba),customElements.define("og-incentive-text",xa),customElements.define("og-offer",Aa),customElements.define("og-select-frequency",Pa),customElements.define("og-optout-button",da),customElements.define("og-optin-toggle",ya),customElements.define("og-optin-status",pa),customElements.define("og-optin-button",ua),customElements.define("og-optin-select",ha),customElements.define("og-upsell-button",ma),customElements.define("og-frequency-status",fa),customElements.define("og-modal",Ht),customElements.define("og-select",zt),customElements.define("og-tooltip",Yt),customElements.define("og-upsell-modal",ga),customElements.define("og-next-upcoming-order",va),customElements.define("og-price",Ua),customElements.define("og-prepaid-toggle",Ia),customElements.define("og-prepaid-data",Na),customElements.define("og-prepaid-button",ka),customElements.define("og-prepaid-select",Fa),customElements.define("og-subscription-button",Da)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(Wi(o)),this},setMerchantId(o){return t.dispatch(Bi(o)),this},setAuthUrl(o){return t.dispatch(zi(o)),this},receiveMerchantSettings(o){return t.dispatch(ns(o)),this},getProductsForPurchasePost(o=[]){return zo(t.getState(),o)},getOptins(o=[]){return zo(t.getState(),o)},clear(){t.dispatch(Qi())},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,console.log("OG Offers preview mode enabled")),this},config(o){return t.dispatch(Xi(o)),this},setLocale(o){return t.dispatch(Zi(o)),this},addTemplate(o,i,s){return t.dispatch(es(o,i,s)),this},setTemplates(o){return t.dispatch(ts(o)),this},setPublicPath(o){return this},resolveSettings(o,i,s,a=t){if(!R.shopify_selling_plans&&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 l=a.getState(),{sessionId:p}=l;p&&c.forEach(u=>a.dispatch(Vo(u))),s.product_discounts&&typeof s.product_discounts=="object"&&a.dispatch({type:Je,payload:s.product_discounts})}},initialize(o,i,s,a={}){var l;e&&console.warn("og.offers has been initialized already. Skipping.");let c=t.getState();return o&&o!==c.merchantId&&r.setMerchantId(o),i&&i!==((l=c.environment)==null?void 0:l.name)&&r.setEnvironment(i),r.receiveMerchantSettings(a),s&&r.setAuthUrl(s),e||r.resolveSettings(o,i,window.og_settings,t),e=!0,this}};return window.OG=window.OG||{},Object.assign(window.OG,r),Object.assign(r.initialize,r),Bo(window.opener,r),r}n(Sn,"makeApi");var ho=n((t=[],e)=>{switch(e.type){case he:return[];case we:return e.newValue?e.newValue.optedin:t;case C:case D:{let[{prepaidShipments:r,...o},i]=nt(t,e.payload.product);return i.concat({...o,...e.payload.product,frequency:e.payload.frequency})}case le:{let{payload:r}=e,[{prepaidShipments:o,...i},s]=nt(t,r.product),a={...i,...r.product};return r.prepaidShipments&&(a.prepaidShipments=r.prepaidShipments),s.concat(a)}case F:return t.filter(r=>!I(e.payload.product,r));case _t:return t.map(r=>I(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case sr:return t.filter(r=>!I(e.payload.product,r));case Ye:return[];default:return t}},"optedin"),_n=n((t=[],e)=>{switch(e.type){case he:return[];case we:return e.newValue?e.newValue.optedout:t;case C:case D:return t.filter(r=>!I(e.payload.product,r));case F:{let[r,o]=nt(t,e.payload.product);return o.concat({...r,...e.payload.product,frequency:e.payload.frequency})}case _t:return t.map(r=>I(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case Ye:return[];default:return t}},"optedout"),En=n((t={},{type:e,payload:r})=>{switch(e){case rr:return r&&r.count>0?{...t,...r.results[0]&&{...r.results[0],place:new Date(Date.parse(r.results[0].place.replace(/-/gi,"/")))}}:t;case or:return{...t,products:(r.results||[]).map(o=>o.product)};case ir:return{...t,...r,public_id:r.order,...r.product&&{products:(t.products||[]).concat(r.product)}};default:return t}},"nextUpcomingOrder"),jp=n((t={},e)=>{switch(e.type){case T:return{...t,...e.payload.autoship};default:return t}},"autoshipEligible"),Gp=n((t={},e)=>{switch(e.type){case L:return{...t};case T:return{...t,...e.payload.in_stock};default:return t}},"inStock"),xn=n((t={},e)=>{switch(e.type){case T:return{...t,...e.payload.eligibility_groups};default:return t}},"eligibilityGroups"),La=n((t,e,r)=>t.map(o=>{let i=r==null?void 0:r[o];return{...e[o],...i?{criteria:i.criteria?i.criteria:{node_type:"PREMISE",standard:ge.PROGRAM_WIDE,premise_value:null},threshold_field:i.threshold_field,threshold_value:i.threshold_value}:{},id:[o][0]}}),"mapIncentive"),Pn=n((t={},e)=>{switch(e.type){case T:return{...t,...[...new Set(Object.keys(e.payload.incentives||{}))].reduce((r,o)=>({...r,[o]:Object.entries(e.payload.incentives).filter(([i])=>i===o).reduce((i,[,{initial:s,ongoing:a}])=>({...i,initial:[...i.initial||[],...La(s,e.payload.incentives_display,e.payload.incentives_display_enhanced)],ongoing:[...i.ongoing||[],...La(a,e.payload.incentives_display,e.payload.incentives_display_enhanced)]}),{})}),{})};default:return t}},"incentives"),Hp=n((t={},e)=>{switch(e.type){case C:case D:return{...t,[S(e.payload.product)]:e.payload.frequency};case F:return{...t,[S(e.payload.product)]:void 0};default:return t}},"frequency"),On=n((t=!1,e)=>{switch(e.type){case tr:return{...e.payload};case Te:return!1;default:return t}},"auth"),vn=n((t="",e)=>{switch(e.type){case Ve:return e.payload;default:return t}},"merchantId"),Tn=n((t=null,e)=>{switch(e.type){case er:return e.payload;default:return t}},"authUrl"),Bp=n((t={},e)=>{switch(e.type){case T:return{...t,offerId:(e.payload.module_view||{}).regular,...e.payload.modifiers};default:return t}},"offer"),wn=n((t="",e)=>{switch(e.type){case T:return(e.payload.module_view||{}).regular||"";default:return t}},"offerId"),Cn=n((t=null,e)=>{switch(e.type){case he:return null;case je:return e.payload;default:return t}},"sessionId"),zp=n((t={},e)=>{switch(e.type){case T:return{...t,...Object.entries(e.payload.autoship).map(([r])=>({[r]:Object.keys(e.payload.modifiers)})).reduce((r,o)=>({...r,...o}),{})};case Ye:return{};default:return t}},"productOffer"),Rn=n((t={},e)=>{switch(e.type){case pr:return{...t,[S(e.payload.product)]:e.payload.firstOrderPlaceDate};default:return t}},"firstOrderPlaceDate"),An=n((t={},e)=>{switch(e.type){case ur:return{...t,[S(e.payload.product)]:e.payload.productToSubscribe};default:return t}},"productToSubscribe"),In=n((t={},e)=>{switch(e.type){case Ge:return{...t,name:"local",apiUrl:"http://py3web.ordergroove.localhost",legoUrl:"http://py3lego.ordergroove.localhost"};case He:return{...t,name:Ce,apiUrl:"https://staging.offers.ordergroove.com",legoUrl:"https://staging.restapi.ordergroove.com"};case Be:return{...t,name:dr,apiUrl:"https://dev.offers.ordergroove.com",legoUrl:"https://dev.restapi.ordergroove.com"};case ze:return{...t,name:Re,apiUrl:"https://offers.ordergroove.com",legoUrl:"https://restapi.ordergroove.com"};default:return t}},"environment"),Nn=n((t={offerOptInLabel:"Subscribe to save",offerIncentiveText:"Save {{ogIncentive DiscountPercent}} when you subscribe",offerOptOutLabel:"Deliver one-time only",offerEveryLabel:"Delivery Every",offerTooltipTrigger:"[?]",offerTooltipContent:"Seems this is a great subscription offering. Many fun details about this program exist.",optinButtonLabel:"\u2022",optoutButtonLabel:"\u2022",optinStatusOptedInLabel:"You're opted in!",optinStatusOptedOutLabel:"You're not opted in.",optinToggleLabel:"\u2022",upsellButtonLabel:"Add item to order on ",upsellButtonPrefix:"",upsellModalContent:"Some upsell modal content",upsellModalOptInLabel:"Subscribe",upsellModalOptOutLabel:"Purchase one time",upsellModalTitle:"Impulse Upsell",upsellModalConfirmLabel:"Ok",upsellModalCancelLabel:"Cancel",defaultFrequencyCopy:"(Most Popular)",frequencyPeriods:{1:"day",2:"week",3:"month"},prepaidOptInLabel:"Prepaid Subscription",prepaidShipmentsLabel:"Number of prepaid shipments"},e)=>{switch(e.type){case ar:return{...t,...e.payload};default:return t}},"locale"),Yp=n((t={offerType:"radio"},e)=>{switch(e.type){case We:return{...t,...e.payload,defaultFrequency:e.payload.defaultFrequency?Ct(e.payload.defaultFrequency):t.defaultFrequency,frequenciesEveryPeriod:[],frequencies:e.payload.frequencies?e.payload.frequencies.map(Ct):t.frequencies};case pe:return{...t,merchantSettings:{...e.payload}};default:return t}},"config"),kn=n((t=!1,e)=>{switch(e.type){case fe:return e.payload.isPreview;default:return t}},"previewStandardOffer"),Fn=n((t=!1,e)=>{switch(e.type){case xt:return e.payload.isPreview;default:return t}},"previewUpsellOffer");var Dn=n((t={},e)=>{switch(e.type){case T:return{...t,...e.payload.autoship_by_default};default:return t}},"autoshipByDefault"),qn=n((t=[],e)=>{switch(e.type){case T:return{...t,...e.payload.default_frequencies};default:return t}},"defaultFrequencies"),Un=n((t=[],e)=>{switch(e.type){case lr:return[...e.payload||[]];case cr:return[e.payload,...t];default:return t}},"templates"),Wp=n((t={},e)=>{switch(e.type){case Je:return Lr(e.payload);default:return t}},"productPlans"),Ln=n((t={},e)=>{switch(e.type){case Et:{let{[e.payload.oldCartProductKey]:r,...o}=t;return{...o,[e.payload.newCartProductKey]:r}}case le:return e.payload.prepaidShipments?{...t,[e.payload.product.id]:e.payload.prepaidShipments}:t;default:return t}},"prepaidShipmentsSelected"),Jp=n((t={},e)=>t,"price"),mo=Kt({optedin:ho,optedout:_n,nextUpcomingOrder:En,autoshipEligible:jp,inStock:Gp,eligibilityGroups:xn,incentives:Pn,frequency:Hp,auth:On,merchantId:vn,authUrl:Tn,offer:Bp,offerId:wn,experiments:Dr,sessionId:Cn,productOffer:zp,firstOrderPlaceDate:Rn,productToSubscribe:An,environment:In,locale:Nn,config:Yp,previewStandardOffer:kn,previewUpsellOffer:Fn,autoshipByDefault:Dn,defaultFrequencies:qn,templates:Un,productPlans:Wp,prepaidShipmentsSelected:Ln,price:Jp});var go=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"),yo=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"),Kp=n(t=>{var e,r;return(t.selling_plan_id||((r=(e=t.selling_plan)==null?void 0:e.id)!=null?r:"")).toString()},"getAllocationFrequency"),Qp=n((t,e)=>M(t.compare_at_price,e),"getAllocationRegularPrice"),Zp=n((t,e)=>{var r;if(go(t)){let o=yo((r=t.selling_plan)==null?void 0:r.options),i=Math.round(t.price/o);return M(i,e)}return M(t.price,e)},"getAllocationSubscriptionPrice"),Ma=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),Xp=n((t,e)=>{var o,i,s;if(go(t)){let a=yo((o=t.selling_plan)==null?void 0:o.options),c=t.price/a,l=Ma(t,c);return et(l)}let r="";return((i=t.price_adjustments[0])==null?void 0:i.value_type)==="percentage"?r=et(t.price_adjustments[0].value):(s=t.price_adjustments[0])!=null&&s.value?r=M(t.price_adjustments[0].value,e):t.compare_at_price&&(r=M(t.compare_at_price-t.price,e)),r},"getAllocationDiscountRate"),eu=n(t=>{var e;return go(t)?yo((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),tu=n((t,e,r,o)=>{var u,f;let i=yo((u=t.selling_plan)==null?void 0:u.options),s=t.price/i,a=t.compare_at_price-s,c=Ma(t,s),l=(f=r==null?void 0:r.price_adjustments)==null?void 0:f[0],p=l&&l.value_type==="percentage"?l.value:null;return e.regularPrepaidPrice=M(t.price,o),e.prepaidSavingsPerShipment=M(Math.round(a),o),e.prepaidSavingsTotal=M(Math.round(a*i),o),p&&c&&(e.prepaidExtraSavingsPercentage=et(c-p)),e},"addPrepaidPriceAndSavings"),ru=n((t,e,r)=>{var i;t.selling_plan||(t.selling_plan=e.find(s=>s.id===t.selling_plan_id));let o={frequency:Kp(t),regularPrice:Qp(t,r),subscriptionPrice:Zp(t,r),discountRate:Xp(t,r),prepaidShipments:eu(t),hasPriceAdjustments:((i=t.price_adjustments)==null?void 0:i.length)>0};if(go(t)){let s=ki(e);return tu(t,o,s,r)}return o},"mapSellingPlanToDiscount"),Mn=n((t,e,r=[],o)=>[...t,ru(e,r,o)],"sellingPlanAllocationsReducer"),$a=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group:r}))],[]),"getSellingPlans");var ou=n((t={offerType:"radio",productFrequencies:{},frequencies:[],frequenciesEveryPeriod:[]},e)=>{var r;if(q===e.type){let{payload:{product:o,currency:i}}=e,s={},a=(r=o.variants)==null?void 0:r.reduce((p,u)=>iu(p,u,o.selling_plan_groups,t),{}),c={...t.productFrequencies,...a};s={...s,productFrequencies:c,...Object.values(c)[0]};let l=$n(o);return Object.keys(l).length&&(s={...s,prepaidSellingPlans:{...t.prepaidSellingPlans,...l}}),{...t,...s,storeCurrency:i}}if(T===e.type){let{payload:{offer:o}}=e,{defaultFrequency:i,product:s}=o||{},{prepaidSellingPlans:a={}}=t,c=S(s==null?void 0:s.id),l=t.productFrequencies[c],p={...t.productFrequencies,[c]:{...l,defaultFrequency:su(c,i,a,l==null?void 0:l.frequencies,l==null?void 0:l.frequenciesEveryPeriod)}};return{...t,productFrequencies:p,...Object.values(p)[0]}}return pe===e.type?{...t,merchantSettings:{...e.payload}}:t},"config");function nu(t,e){var i,s;let r=At(t),o=Er(r);if(o!=null&&o.length){let a=xr(r),c=((s=(i=r.options)==null?void 0:i[0])==null?void 0:s.values)||o,l=e==null?void 0:e.defaultFrequency;return l&&Ne(l)&&(l=Q(o,a,l)||ue(o)||l),{frequencies:o,frequenciesEveryPeriod:a,frequenciesText:c,...l?{defaultFrequency:l}:{}}}return null}n(nu,"getFrequencies");function iu(t,e,r,o){let i=e.selling_plan_allocations.map(c=>c.selling_plan_group_id),s=r.filter(c=>i.includes(c.id)),a=nu(s,o.productFrequencies[e.id]);return a&&(t[e.id]=a),t}n(iu,"reduceSellingPlansToFrequencies");function su(t,e,r,o=[],i=[]){var s;return(s=r[t])!=null&&s.some(({sellingPlan:a})=>a===e)?ue(o)||e:Ne(e)&&(Q(o,i,e)||ue(o))||e}n(su,"getUpdatedDefaultFrequency");function $n(t){let e=t==null?void 0:t.selling_plan_groups.filter(r=>/^Prepaid-.*/.test(r.name));return e.length?e.reduce((r,o)=>{let i=o.name.split("-")[1],s=o.selling_plans.map(a=>({numberShipments:Pr(a),sellingPlan:String(a.id)}));return{...r,[i]:s}},{}):{}}n($n,"getPrepaidSellingPlans");var Va=ou;var Ga=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"),ja=n((t,e,r)=>{if(!r)return null;if(!Ne(r))return r;if(wr(t,e)){let o=Q(t,e,r);return o||ue(t)}return r},"getDefaultSellingPlan"),au=n((t,e,r)=>t.map(o=>Ne(o==null?void 0:o.frequency)?{...o,frequency:wr(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod)?Q(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,o.frequency)||Q(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,e==null?void 0:e.defaultFrequency)||ue(r==null?void 0:r.frequencies):o.frequency}:o),"mapExistingOptinsFromOfferResponse"),cu=n(({autoship:t={},autoship_by_default:e={},default_frequencies:r={},in_stock:o={},eligibility_groups:i={}},s,a,c,l)=>Object.keys(t).reduce((p,u)=>{var f;if(!s.some(h=>h.id===u)&&e[u]&&o[u]){if(t[u])return p.concat({id:u,frequency:lu({frequencyConfig:c,offerEl:a,default_frequencies:r,id:u})});if((f=i[u])!=null&&f.includes(mr.PREPAID)){let h=l?It(l):null;return p.concat({id:u,frequency:(h==null?void 0:h.sellingPlan)||Vn,prepaidShipments:(h==null?void 0:h.numberShipments)||null})}}return p},[]),"reduceNewOptinsFromOfferResponse"),lu=n(({frequencyConfig:t,offerEl:e,default_frequencies:r,id:o})=>{let{frequencies:i,frequenciesEveryPeriod:s}=t,{defaultFrequency:a}=e||{},c=r[o],l;return r[o]&&wr(i,s)?l=Q(i,s,`${c.every}_${c.every_period}`)||ja(i,s,a)||ue(i):r[o]?l=`${c.every}_${c.every_period}`:l=ja(i,s,a)||"_",l},"getOptInDefaultFrequency"),pu=n((t,e)=>({...Ga(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Ha=n((t,e)=>{let r=S(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),uu=n((t={},e)=>{var r;if(me===e.type){let{payload:o}=e;return o.items.reduce(Ha,t)}if(q===e.type){let{payload:{product:o}}=e,i=Ai(o==null?void 0:o.selling_plan_groups),s=new Set((r=i.flatMap(a=>a.selling_plans.map(c=>c.id)))!=null?r:[]);return o.variants.reduce((a,c)=>{var u,f;let p=((f=(u=c==null?void 0:c.selling_plan_allocations)==null?void 0:u.filter(h=>s.has(h.selling_plan_id)))!=null?f:[]).length>0;return{...Ga(a,c.id,p),[c.id]:p}},t)}return fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"autoshipEligible"),du=n((t={},e)=>{var r;if(me===e.type)return e.payload.items.reduce(Ha,t);if(q===e.type){let{payload:{product:o}}=e;return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce(pu,t)||t}return L===e.type&&e.payload.product===null?{...t}:fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"inStock"),fu=n((t={},e)=>t,"offer");function hu(t){let e=Pr(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(hu,"getOptedInItem");var Vn="prepaid-replace-me",mu=n((t=[],e)=>{if(me===e.type){let r=e.payload;return t.filter(o=>!o.id.includes(":")).concat(r.items.reduce((o,i)=>i.selling_plan_allocation?[...o,hu(i)]:o,[]))}if(T===e.type){let r=e.payload,{offer:o={},frequencyConfig:i,prepaidSellingPlans:s}=r,a=au(t,o,i),c=cu(r,a,o,i,s);return[...a,...c]}if(q===e.type){let{product:r}=e.payload,o=At(r==null?void 0:r.selling_plan_groups),i=$n(r),s=o?Er(o):[],a=o?xr(o):[];return t.map(c=>{let l=i[c.id];if(o&&Ne(c.frequency))return{...c,frequency:Q(s,a,c.frequency)||ue(s)};if(c.frequency===Vn&&(l==null?void 0:l.length)>0){let{sellingPlan:p,numberShipments:u}=It(l);return{...c,frequency:p,prepaidShipments:u}}return c}).filter(c=>c.frequency!==Vn)}if(le===e.type){let{payload:r}=e,o=ho(t,e),[i,s]=nt(o,r.product);return s.concat({...i,...r.product,frequency:r.frequency})}return ho(t,e)},"optedin"),gu=n((t={},e)=>{var r;if(q===e.type){let{payload:{product:o}}=e;return((r=o.variants)==null?void 0:r.reduce((i,s)=>({...i,[s.id]:{value:s.price}}),t))||t}return t},"price"),yu=n((t={},e)=>t,"productOffer"),bu=n((t={},e)=>{if(q===e.type){let{payload:{product:r,currency:o}}=e,i=$a(r);return r.variants.reduce((s,a)=>{var c;return{...s,[a.id]:(c=a.selling_plan_allocations)==null?void 0:c.reduce((l,p)=>Mn(l,p,i,o),[])}},t)||t}if(me===e.type){let r=e.payload;return r.items.reduce((o,i)=>i.selling_plan_allocation?{...o,[i.key]:Mn([],i.selling_plan_allocation,[],r.currency)}:o,t)||t}return t},"productPlans"),Su=Kt({auth:On,authUrl:Tn,autoshipByDefault:Dn,autoshipEligible:uu,config:Va,defaultFrequencies:qn,eligibilityGroups:xn,environment:In,firstOrderPlaceDate:Rn,incentives:Pn,inStock:du,locale:Nn,merchantId:vn,nextUpcomingOrder:En,offer:fu,offerId:wn,experiments:Dr,optedin:mu,optedout:_n,previewStandardOffer:kn,previewUpsellOffer:Fn,price:gu,productOffer:yu,productPlans:bu,productToSubscribe:An,sessionId:Cn,templates:Un,prepaidShipmentsSelected:Ln});function jn(t,e){return window.og&&window.og.previewMode?mo(t,e):Su(t,e)}n(jn,"shopifyReducer");var Wa=ce(Ot()),Ja=ce(Zt());function Ba(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,l=c==null?void 0:c.querySelector(`[name="${e}"]`);l||(l=document.createElement("input"),l.type="hidden",l.name=`attributes[${e}]`,c==null||c.appendChild(l)),l.value=r})}n(Ba,"updateTrackingInputs");function Gn(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(Gn,"getTrackingKey");function _u(t,e){var u,f,h,w;if(!((u=t.payload.offer)==null?void 0:u.autoshipByDefault))return;let o=(f=t.payload.offer)==null?void 0:f.product.id,i=Gn(),s=((h=t.payload.offer)==null?void 0:h.location)||"",a=((w=t.payload.offer)==null?void 0:w.variationId)||"",c=bo(o,e),p=[o,C.toLowerCase(),s,c,a].join(",");Ba(o,i,p)}n(_u,"addDefaultToSubTracking");function Hn(t){return e=>r=>{switch(e(r),r.type){case C:case F:case D:{let o=r.payload.offer,i=Bn(r);o&&!o.isCart&&Ba(o.product.id,i[0],i[1]);break}case T:_u(r,t);break;default:}}}n(Hn,"shopifyTrackingMiddleware");var za,Ya,So=((Ya=(za=window.Shopify)==null?void 0:za.routes)==null?void 0:Ya.root)||"/",Eu="/cart",xu=`${So}cart.js`,Pu=`${So}cart/change.js`,Ou=`${So}cart/update.js`,vu=`${So}products/`,Ka="__ordergroove_offer_id",Tu='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',wu=n(t=>(0,Ja.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 Cu(){var r,o;let t=(o=(r=window.Shopify)==null?void 0:r.currency)==null?void 0:o.active;return t||(await zn()).currency}n(Cu,"getCurrency");async function Ru(t,e){let r=Au(e);if(r)try{let[i,s]=await Promise.all([Qa(r),Cu()]),a={product:i,offer:e,currency:s};t.dispatch({type:q,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=wu(e);o.addEventListener("change",()=>i(o)),new MutationObserver(a=>{a.every(c=>c.type==="attributes")?a.some(c=>c.target.name==="id")&&i(o):i(o)}).observe(o,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["value"]})}else console.info("no /cart/add form found for og-offer",e)}n(Ru,"setupPdp");async function zn(){return(await fetch(xu)).json()}n(zn,"getCart");function Au(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(Au,"guessProductHandle");var Qa=(0,Wa.default)(async function(t){return(await fetch(`${vu}${t}.js`)).json()});async function Iu(t,e){let r=await zn(),{items:o}=r,i=r;t.dispatch({type:me,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(Qa))).forEach(c=>{let l={product:c,offer:e,currency:r.currency};t.dispatch({type:q,payload:l})})}n(Iu,"setupCart");async function Nu(t,e){var s,a;let r=t.payload.offer,o=t.payload.frequency||bo(t.payload.product.id,e),i=Bn(t);if(!!(r!=null&&r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(Tu)),l=t.payload.product.id,p=await zn(),u=(s=p==null?void 0:p.items)==null?void 0:s.findIndex(k=>k.key===l),f=p.items[u],h=f.quantity,w=S(l),x=Za(e),g={...Object.fromEntries([i]),...x?{[Ka]:x}:{}};if(Object.keys(g).length>0&&(await fetch(Ou,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:g})})).status!==200)throw new Error("Cart attributes not updated");let P=await fetch(Pu,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:l,quantity:h,properties:f.properties,selling_plan:o||null,sections:c.map(k=>k.id.replace(/^shopify-section-/,""))})});if(P.status!==200)throw new Error("Cart not updated");let _=await P.json(),y=p.items.length===_.items.length?_.items[u].key:(a=_.items.find(k=>k.quantity===h&&k.product_id===w&&(!o&&!k.selling_plan_allocation||(k==null?void 0:k.selling_plan_allocation.selling_plan.id)===o)))==null?void 0:a.key;y&&(e.dispatch({type:Et,payload:{oldCartProductKey:l,newCartProductKey:y}}),r.setAttribute("product",y));let v=_;e.dispatch({type:me,payload:v});let Jt=new CustomEvent(yi,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(Jt),Jt.defaultPrevented)return;let _o=_.sections;Object.values(_o).length?c.forEach(k=>{let Wn=k.id.replace(/^shopify-section-/,"");if(!(Wn in _o))return;let nc=_o[Wn],Jn=new DOMParser().parseFromString(nc.toString()||"","text/html").getElementById(k.id);Jn&&(k.innerHTML=Jn.innerHTML)}):window.location.pathname.startsWith(Eu)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(Nu,"synchronizeCartOptin");function Bn(t){var a,c;let e=t.payload.product.id;if(!e)return[];let r=Gn(),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 L:case F:s.push(""),s.push(i);break;case C:case D:s.push(t.payload.frequency),s.push(i);break;default:return[]}return[r,s.join(",")]}n(Bn,"getTrackingEvent");function bo(t,e){let o=Or({id:t})(e.getState());return o?o.frequency:void 0}n(bo,"getSubscribedFrequency");function Za(t){let e=t.getState();return Mi(e)?e.offerId:null}n(Za,"getOfferIdAttribute");function ku(t,e){e!=null&&e.isCart||!(e!=null&&e.shouldEnableOffer)||[...document.querySelectorAll('form[action$="/cart/add"] [name=id]')].forEach(r=>{let o=r.value,i=bo(o,t);Cr(r.form,"selling_plan",i),Cr(r.form,"attributes[og__session]",t.getState().sessionId);let s=Za(t);s&&Cr(r.form,`attributes[${Ka}]`,s)})}n(ku,"synchronizeSellingPlan");function Yn(t){return e=>r=>{var o;switch(r.type){case C:case F:case D:break;case L:(o=r.payload.offer)!=null&&o.isCart?Iu(t,r.payload.offer):Ru(t,r.payload.offer);break;default:}switch(e(r),r.type){case C:case F:case D:case le:Nu(r,t);case L:case T:case q:ku(t,r.payload.offer);break;default:}}}n(Yn,"shopifyMiddleware");var Fu="/apps/subscriptions/auth/",Xa="og_auth_begin",Du="og_auth_end",qu=n(t=>{let[e,r,o,i]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:i}},"parseIntegrationTempAuth");async function ec({store:t}){var i;let[e]=Uo(),r=Rt(),o=r!=null&&r.dataset.customer?qu(r.dataset.customer):(i=window.ogShopifyConfig)==null?void 0:i.customer;if(o){let s=await Lu(o);if(s){let[a,c,l]=s.split("|");t.dispatch(Ft(e,a,Number(c),l))}}else ji("og_auth")}n(ec,"authorizeShopifyCustomer");async function Uu(t){try{let r=await(await fetch(`${Fu}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Xa);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Xa.length,r.lastIndexOf(Du)))}catch(e){console.error(e)}}n(Uu,"fetchOGSignature");async function Lu(t){let e=Gi("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:i}=await Uu(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(Lu,"getOrCreateAuthCookie");var tc,oc=Os(...(tc=R)!=null&&tc.shopify_selling_plans?[jn,Yn]:[mo],R.shopify&&Hn),O=Sn(oc),Mu=O.isReady,$u=O.addOptinChangedCallback,Vu=O.addTemplate,ju=O.clear,Gu=O.config,Hu=O.disableOptinChangedCallbacks,Bu=O.getOptins,zu=O.getProductsForPurchasePost,Yu=O.initialize,Wu=O.previewMode,Ju=O.register,Ku=O.resolveSettings,Qu=O.setAuthUrl,Zu=O.setEnvironment,Xu=O.setLocale,ed=O.setMerchantId,td=O.setPublicPath,rd=O.setTemplates,od=O.setupCart,nd=O.setupProduct,id=O.setupProducts,sd=n(()=>Vi(O),"autoInit");var ad=O.initialize,rc;(rc=R)!=null&&rc.shopify_selling_plans&&Tr(()=>ec(O));return pc(cd);})();
|
|
1066
1066
|
; return lib; });
|
|
1067
1067
|
//# sourceMappingURL=offers.js.map
|