@ordergroove/offers 2.45.6-alpha-PR-1241-2.6 → 2.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/bundle-report.html +5 -5
- package/dist/examples.js +5 -5
- package/dist/examples.js.map +2 -2
- package/dist/offers.js +2 -2
- package/dist/offers.js.map +2 -2
- package/package.json +3 -3
- package/src/components/Tooltip.js +1 -0
- package/src/components/__tests__/Tooltip.spec.js +1 -0
- package/src/core/__tests__/experiments.spec.js +5 -1
- package/src/make-api.js +1 -0
package/dist/offers.js
CHANGED
|
@@ -802,7 +802,7 @@ var lib=(()=>{var Ya=Object.create;var gt=Object.defineProperty;var Wa=Object.ge
|
|
|
802
802
|
pointer-events: auto;
|
|
803
803
|
transform: translateY(0px);
|
|
804
804
|
}
|
|
805
|
-
`}connectedCallback(){super.connectedCallback(),this.abortController=new AbortController;let e=this.abortController.signal;this.addEventListener("mouseenter",this.handleMouseEnter.bind(this),{signal:e}),this.addEventListener("mouseleave",this.handleMouseLeave.bind(this),{signal:e}),this.addEventListener("focusin",this.handleFocusIn.bind(this),{signal:e}),this.addEventListener("focusout",this.handleFocusOut.bind(this),{signal:e}),this.addEventListener("keydown",this.handleKeyDown.bind(this),{signal:e}),document.addEventListener("click",this.handleDocumentClick.bind(this),{signal:e})}async recalculatePosition(){await this.updateComplete;let r=this.shadowRoot.querySelector(".trigger").getBoundingClientRect(),o=this.shadowRoot.querySelector(".content"),i=o.getBoundingClientRect();!this.placement||this.placement==="top"||this.placement==="bottom"?o.style.left=`${(-1*i.width+r.width)/2}px`:(this.placement==="left"||this.placement==="right")&&(o.style.top=`${(-1*i.height+r.height)/2}px`)}handleMouseEnter(){this.open=!0,this.recalculatePosition()}handleMouseLeave(){this.open=!1}handleFocusIn(){this.activationType===ve.AUTOMATIC&&(this.open=!0,this.recalculatePosition())}handleFocusOut(e){this.activationType===ve.AUTOMATIC&&(this.contains(e.relatedTarget)||(this.open=!1))}handleKeyDown(e){this.activationType===ve.MANUAL&&e.key==="Escape"&&this.open&&(this.open=!1,e.stopPropagation())}handleClick(){this.activationType===ve.MANUAL&&(this.open=!this.open,this.recalculatePosition())}handleDocumentClick(e){this.activationType!==ve.MANUAL||!this.open||this.contains(e.target)||(this.open=!1)}disconnectedCallback(){super.disconnectedCallback(),this.abortController.abort()}render(){let e=this.triggerLabel?this.triggerLabel:void 0;return u`
|
|
805
|
+
`}connectedCallback(){super.connectedCallback(),this.abortController=new AbortController;let e=this.abortController.signal;this.addEventListener("mouseenter",this.handleMouseEnter.bind(this),{signal:e}),this.addEventListener("mouseleave",this.handleMouseLeave.bind(this),{signal:e}),this.addEventListener("focusin",this.handleFocusIn.bind(this),{signal:e}),this.addEventListener("focusout",this.handleFocusOut.bind(this),{signal:e}),this.addEventListener("keydown",this.handleKeyDown.bind(this),{signal:e}),document.addEventListener("click",this.handleDocumentClick.bind(this),{signal:e})}async recalculatePosition(){if(await this.updateComplete,!this.open)return;let r=this.shadowRoot.querySelector(".trigger").getBoundingClientRect(),o=this.shadowRoot.querySelector(".content"),i=o.getBoundingClientRect();!this.placement||this.placement==="top"||this.placement==="bottom"?o.style.left=`${(-1*i.width+r.width)/2}px`:(this.placement==="left"||this.placement==="right")&&(o.style.top=`${(-1*i.height+r.height)/2}px`)}handleMouseEnter(){this.open=!0,this.recalculatePosition()}handleMouseLeave(){this.open=!1}handleFocusIn(){this.activationType===ve.AUTOMATIC&&(this.open=!0,this.recalculatePosition())}handleFocusOut(e){this.activationType===ve.AUTOMATIC&&(this.contains(e.relatedTarget)||(this.open=!1))}handleKeyDown(e){this.activationType===ve.MANUAL&&e.key==="Escape"&&this.open&&(this.open=!1,e.stopPropagation())}handleClick(){this.activationType===ve.MANUAL&&(this.open=!this.open,this.recalculatePosition())}handleDocumentClick(e){this.activationType!==ve.MANUAL||!this.open||this.contains(e.target)||(this.open=!1)}disconnectedCallback(){super.disconnectedCallback(),this.abortController.abort()}render(){let e=this.triggerLabel?this.triggerLabel:void 0;return u`
|
|
806
806
|
<span class="tooltip" ?data-open="${this.open}" ?data-manual="${this.activationType===ve.MANUAL}">
|
|
807
807
|
${this.activationType===ve.MANUAL?u`
|
|
808
808
|
<button
|
|
@@ -1062,6 +1062,6 @@ var lib=(()=>{var Ya=Object.create;var gt=Object.defineProperty;var Wa=Object.ge
|
|
|
1062
1062
|
<slot name="append"></slot>
|
|
1063
1063
|
`:u`
|
|
1064
1064
|
<slot name="fallback"></slot>
|
|
1065
|
-
`}};n(so,"Price");var Tp=n((t,e)=>{var r;return{productPlans:t.productPlans,configDefaultFrequency:oe((r=e.product)==null?void 0:r.id)(t),frequency:re(e.product)(t)}},"mapStateToProps"),wa=g(Tp)(so);function dn(t){Ta(),bs(t);try{customElements.define("og-when",Zs),customElements.define("og-text",ca),customElements.define("og-incentive-text",da),customElements.define("og-offer",_a),customElements.define("og-select-frequency",fa),customElements.define("og-optout-button",ra),customElements.define("og-optin-toggle",aa),customElements.define("og-optin-status",ea),customElements.define("og-optin-button",ta),customElements.define("og-optin-select",na),customElements.define("og-upsell-button",ia),customElements.define("og-frequency-status",oa),customElements.define("og-modal",Vt),customElements.define("og-select",jt),customElements.define("og-tooltip",Gt),customElements.define("og-upsell-modal",sa),customElements.define("og-next-upcoming-order",ma),customElements.define("og-price",wa),customElements.define("og-prepaid-toggle",Ea),customElements.define("og-prepaid-data",xa),customElements.define("og-prepaid-button",Pa),customElements.define("og-prepaid-select",va),customElements.define("og-subscription-button",Oa)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(Fi(o)),this},setMerchantId(o){return t.dispatch(Ii(o)),this},setAuthUrl(o){return t.dispatch(Ni(o)),this},receiveMerchantSettings(o){return t.dispatch(Hi(o)),this},getProductsForPurchasePost(o=[]){return Lo(t.getState(),o)},getOptins(o=[]){return Lo(t.getState(),o)},clear(){t.dispatch(Ui())},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(Mi(o)),this},setLocale(o){return t.dispatch(Li(o)),this},addTemplate(o,i,s){return t.dispatch($i(o,i,s)),this},setTemplates(o){return t.dispatch(Vi(o)),this},setPublicPath(o){return this},resolveSettings(o,i,s,a=t){if(!A.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(d=>a.dispatch(ko(d))),s.product_discounts&&typeof s.product_discounts=="object"&&a.dispatch({type:We,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),Uo(window.opener,r),r}n(dn,"makeApi");var ao=n((t=[],e)=>{switch(e.type){case he:return[];case Te:return e.newValue?e.newValue.optedin:t;case R:case F:{let[{prepaidShipments:r,...o},i]=rt(t,e.payload.product);return i.concat({...o,...e.payload.product,frequency:e.payload.frequency})}case ce:{let{payload:r}=e,[{prepaidShipments:o,...i},s]=rt(t,r.product),a={...i,...r.product};return r.prepaidShipments&&(a.prepaidShipments=r.prepaidShipments),s.concat(a)}case k:return t.filter(r=>!I(e.payload.product,r));case bt:return t.map(r=>I(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case tr:return t.filter(r=>!I(e.payload.product,r));case ze:return[];default:return t}},"optedin"),fn=n((t=[],e)=>{switch(e.type){case he:return[];case Te:return e.newValue?e.newValue.optedout:t;case R:case F:return t.filter(r=>!I(e.payload.product,r));case k:{let[r,o]=rt(t,e.payload.product);return o.concat({...r,...e.payload.product,frequency:e.payload.frequency})}case bt:return t.map(r=>I(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case ze:return[];default:return t}},"optedout"),hn=n((t={},{type:e,payload:r})=>{switch(e){case Qt: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 Zt:return{...t,products:(r.results||[]).map(o=>o.product)};case er:return{...t,...r,public_id:r.order,...r.product&&{products:(t.products||[]).concat(r.product)}};default:return t}},"nextUpcomingOrder"),wp=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.autoship};default:return t}},"autoshipEligible"),Cp=n((t={},e)=>{switch(e.type){case q:return{...t};case w:return{...t,...e.payload.in_stock};default:return t}},"inStock"),mn=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.eligibility_groups};default:return t}},"eligibilityGroups"),Ca=n((t,e)=>t.map(r=>({...e[r],id:[r][0]})),"mapIncentive"),gn=n((t={},e)=>{switch(e.type){case w: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||[],...Ca(s,e.payload.incentives_display)],ongoing:[...i.ongoing||[],...Ca(a,e.payload.incentives_display)]}),{})}),{})};default:return t}},"incentives"),Rp=n((t={},e)=>{switch(e.type){case R:case F:return{...t,[S(e.payload.product)]:e.payload.frequency};case k:return{...t,[S(e.payload.product)]:void 0};default:return t}},"frequency"),yn=n((t=!1,e)=>{switch(e.type){case Jt:return{...e.payload};case Oe:return!1;default:return t}},"auth"),bn=n((t="",e)=>{switch(e.type){case $e:return e.payload;default:return t}},"merchantId"),Sn=n((t=null,e)=>{switch(e.type){case Kt:return e.payload;default:return t}},"authUrl"),Ap=n((t={},e)=>{switch(e.type){case w:return{...t,offerId:(e.payload.module_view||{}).regular,...e.payload.modifiers};default:return t}},"offer"),_n=n((t="",e)=>{switch(e.type){case w:return(e.payload.module_view||{}).regular||"";default:return t}},"offerId"),En=n((t=null,e)=>{switch(e.type){case he:return null;case Ve:return e.payload;default:return t}},"sessionId"),Ip=n((t={},e)=>{switch(e.type){case w:return{...t,...Object.entries(e.payload.autoship).map(([r])=>({[r]:Object.keys(e.payload.modifiers)})).reduce((r,o)=>({...r,...o}),{})};case ze:return{};default:return t}},"productOffer"),xn=n((t={},e)=>{switch(e.type){case ir:return{...t,[S(e.payload.product)]:e.payload.firstOrderPlaceDate};default:return t}},"firstOrderPlaceDate"),Pn=n((t={},e)=>{switch(e.type){case sr:return{...t,[S(e.payload.product)]:e.payload.productToSubscribe};default:return t}},"productToSubscribe"),vn=n((t={},e)=>{switch(e.type){case je:return{...t,name:"local",apiUrl:"http://py3web.ordergroove.localhost",legoUrl:"http://py3lego.ordergroove.localhost"};case Ge:return{...t,name:we,apiUrl:"https://staging.offers.ordergroove.com",legoUrl:"https://staging.restapi.ordergroove.com"};case He:return{...t,name:ar,apiUrl:"https://dev.offers.ordergroove.com",legoUrl:"https://dev.restapi.ordergroove.com"};case Be:return{...t,name:Ce,apiUrl:"https://offers.ordergroove.com",legoUrl:"https://restapi.ordergroove.com"};default:return t}},"environment"),On=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 rr:return{...t,...e.payload};default:return t}},"locale"),Np=n((t={offerType:"radio"},e)=>{switch(e.type){case Ye:return{...t,...e.payload,defaultFrequency:e.payload.defaultFrequency?Tt(e.payload.defaultFrequency):t.defaultFrequency,frequenciesEveryPeriod:[],frequencies:e.payload.frequencies?e.payload.frequencies.map(Tt):t.frequencies};case le:return{...t,merchantSettings:{...e.payload}};default:return t}},"config"),Tn=n((t=!1,e)=>{switch(e.type){case fe:return e.payload.isPreview;default:return t}},"previewStandardOffer"),wn=n((t=!1,e)=>{switch(e.type){case _t:return e.payload.isPreview;default:return t}},"previewUpsellOffer");var Cn=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.autoship_by_default};default:return t}},"autoshipByDefault"),Rn=n((t=[],e)=>{switch(e.type){case w:return{...t,...e.payload.default_frequencies};default:return t}},"defaultFrequencies"),An=n((t=[],e)=>{switch(e.type){case nr:return[...e.payload||[]];case or:return[e.payload,...t];default:return t}},"templates"),kp=n((t={},e)=>{switch(e.type){case We:return Nr(e.payload);default:return t}},"productPlans"),In=n((t={},e)=>{switch(e.type){case St:{let{[e.payload.oldCartProductKey]:r,...o}=t;return{...o,[e.payload.newCartProductKey]:r}}case ce:return e.payload.prepaidShipments?{...t,[e.payload.product.id]:e.payload.prepaidShipments}:t;default:return t}},"prepaidShipmentsSelected"),co=Bt({optedin:ao,optedout:fn,nextUpcomingOrder:hn,autoshipEligible:wp,inStock:Cp,eligibilityGroups:mn,incentives:gn,frequency:Rp,auth:yn,merchantId:bn,authUrl:Sn,offer:Ap,offerId:_n,experiments:Rr,sessionId:En,productOffer:Ip,firstOrderPlaceDate:xn,productToSubscribe:Pn,environment:vn,locale:On,config:Np,previewStandardOffer:Tn,previewUpsellOffer:wn,autoshipByDefault:Cn,defaultFrequencies:Rn,templates:An,productPlans:kp,prepaidShipmentsSelected:In});var lo=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"),po=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"),Fp=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)=>ue(t.compare_at_price,e),"getAllocationRegularPrice"),Dp=n((t,e)=>{var r;if(lo(t)){let o=po((r=t.selling_plan)==null?void 0:r.options),i=Math.round(t.price/o);return ue(i,e)}return ue(t.price,e)},"getAllocationSubscriptionPrice"),Ra=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),Up=n((t,e)=>{var o,i,s;if(lo(t)){let a=po((o=t.selling_plan)==null?void 0:o.options),c=t.price/a,l=Ra(t,c);return vr(l)}let r="";return((i=t.price_adjustments[0])==null?void 0:i.value_type)==="percentage"?r=vr(t.price_adjustments[0].value):(s=t.price_adjustments[0])!=null&&s.value?r=ue(t.price_adjustments[0].value,e):t.compare_at_price&&(r=ue(t.compare_at_price-t.price,e)),r},"getAllocationDiscountRate"),Lp=n(t=>{var e;return lo(t)?po((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),Mp=n((t,e,r,o)=>{var d,f;let i=po((d=t.selling_plan)==null?void 0:d.options),s=t.price/i,a=t.compare_at_price-s,c=Ra(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=ue(t.price,o),e.prepaidSavingsPerShipment=ue(Math.round(a),o),e.prepaidSavingsTotal=ue(Math.round(a*i),o),p&&c&&(e.prepaidExtraSavingsPercentage=vr(c-p)),e},"addPrepaidPriceAndSavings"),$p=n((t,e,r)=>{t.selling_plan||(t.selling_plan=e.find(i=>i.id===t.selling_plan_id));let o={frequency:Fp(t),regularPrice:qp(t,r),subscriptionPrice:Dp(t,r),discountRate:Up(t,r),prepaidShipments:Lp(t)};if(lo(t)){let i=us(e);return Mp(t,o,i,r)}return o},"mapSellingPlanToDiscount"),Nn=n((t,e,r=[],o)=>[...t,$p(e,r,o)],"sellingPlanAllocationsReducer"),Aa=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group:r}))],[]),"getSellingPlans");var Vp=n((t={offerType:"radio",productFrequencies:{},frequencies:[],frequenciesEveryPeriod:[]},e)=>{var r;if(D===e.type){let{payload:{product:o,currency:i}}=e,s={},a=(r=o.variants)==null?void 0:r.reduce((p,d)=>Gp(p,d,o.selling_plan_groups,t),{}),c={...t.productFrequencies,...a};s={...s,productFrequencies:c,...Object.values(c)[0]};let l=o==null?void 0:o.selling_plan_groups.filter(p=>/^Prepaid-.*/.test(p.name));return l.length&&(s={...s,prepaidSellingPlans:{...t.prepaidSellingPlans,...Bp(l)}}),{...t,...s,storeCurrency:i}}if(w===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:Hp(c,i,a,l==null?void 0:l.frequencies,l==null?void 0:l.frequenciesEveryPeriod)}};return{...t,productFrequencies:p,...Object.values(p)[0]}}return le===e.type?{...t,merchantSettings:{...e.payload}}:t},"config");function jp(t,e){var i,s;let r=Ft(t),o=Tr(r);if(o!=null&&o.length){let a=wr(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&&Ie(l)&&(l=J(o,a,l)||pe(o)||l),{frequencies:o,frequenciesEveryPeriod:a,frequenciesText:c,...l?{defaultFrequency:l}:{}}}return null}n(jp,"getFrequencies");function Gp(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=jp(s,o.productFrequencies[e.id]);return a&&(t[e.id]=a),t}n(Gp,"reduceSellingPlansToFrequencies");function Hp(t,e,r,o=[],i=[]){var s;return(s=r[t])!=null&&s.some(({sellingPlan:a})=>a===e)?pe(o)||e:Ie(e)&&(J(o,i,e)||pe(o))||e}n(Hp,"getUpdatedDefaultFrequency");function Bp(t){return t.reduce((e,r)=>{let o=r.name.split("-")[1],i=r.selling_plans.map(s=>({numberShipments:Cr(s),sellingPlan:String(s.id)}));return{...e,[o]:i}},{})}n(Bp,"getPrepaidSellingPlans");var Ia=Vp;var ka=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"),Na=n((t,e,r)=>{if(!r)return null;if(!Ie(r))return r;if(yr(t,e)){let o=J(t,e,r);return o||pe(t)}return r},"getDefaultSellingPlan"),zp=n((t,e,r)=>t.map(o=>Ie(o==null?void 0:o.frequency)?{...o,frequency:yr(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod)?J(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,o.frequency)||J(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,e==null?void 0:e.defaultFrequency)||pe(r==null?void 0:r.frequencies):o.frequency}:o),"mapExistingOptinsFromOfferResponse"),Yp=n(({autoship:t={},autoship_by_default:e={},default_frequencies:r={},in_stock:o={}},i,s,a)=>Object.keys(t).reduce((c,l)=>{if(!i.some(p=>p.id===l)){if(!(t[l]&&e[l]&&o[l]))return c;let{frequencies:p,frequenciesEveryPeriod:d}=a,{defaultFrequency:f}=s||{},h=r[l],_;return r[l]&&yr(p,d)?_=J(p,d,`${h.every}_${h.every_period}`)||Na(p,d,f)||pe(p):r[l]?_=`${h.every}_${h.every_period}`:_=Na(p,d,f)||"_",c.concat({id:l,frequency:_})}return c},[]),"reduceNewOptinsFromOfferResponse"),Wp=n((t,e)=>({...ka(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Fa=n((t,e)=>{let r=S(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),Kp=n((t={},e)=>{var r;if(me===e.type){let{payload:o}=e;return o.items.reduce(Fa,t)}if(D===e.type){let{payload:{product:o}}=e,i=cs(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 d,f;let p=((f=(d=c==null?void 0:c.selling_plan_allocations)==null?void 0:d.filter(h=>s.has(h.selling_plan_id)))!=null?f:[]).length>0;return{...ka(a,c.id,p),[c.id]:p}},t)}return fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"autoshipEligible"),Jp=n((t={},e)=>{var r;if(me===e.type)return e.payload.items.reduce(Fa,t);if(D===e.type){let{payload:{product:o}}=e;return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce(Wp,t)||t}return q===e.type&&e.payload.product===null?{...t}:fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"inStock"),Qp=n((t={},e)=>t,"offer");function Zp(t){let e=Cr(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(Zp,"getOptedInItem");var Xp=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,Zp(i)]:o,[]))}if(w===e.type){let r=e.payload,{offer:o={},frequencyConfig:i}=r,s=zp(t,o,i),a=Yp(r,s,o,i);return[...s,...a]}if(D===e.type){let{product:r}=e.payload,o=Ft(r==null?void 0:r.selling_plan_groups);if(!o)return t;let i=Tr(o),s=wr(o);return t.map(a=>Ie(a.frequency)?{...a,frequency:J(i,s,a.frequency)||pe(i)}:a)}if(ce===e.type){let{payload:r}=e,o=ao(t,e),[i,s]=rt(o,r.product);return s.concat({...i,...r.product,frequency:r.frequency})}return ao(t,e)},"optedin"),eu=n((t={},e)=>t,"productOffer"),tu=n((t={},e)=>{if(D===e.type){let{payload:{product:r,currency:o}}=e,i=Aa(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)=>Nn(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]:Nn([],i.selling_plan_allocation,[],r.currency)}:o,t)||t}return t},"productPlans"),ru=Bt({auth:yn,authUrl:Sn,autoshipByDefault:Cn,autoshipEligible:Kp,config:Ia,defaultFrequencies:Rn,eligibilityGroups:mn,environment:vn,firstOrderPlaceDate:xn,incentives:gn,inStock:Jp,locale:On,merchantId:bn,nextUpcomingOrder:hn,offer:Qp,offerId:_n,experiments:Rr,optedin:Xp,optedout:fn,previewStandardOffer:Tn,previewUpsellOffer:wn,productOffer:eu,productPlans:tu,productToSubscribe:Pn,sessionId:En,templates:An,prepaidShipmentsSelected:In});function kn(t,e){return window.og&&window.og.previewMode?co(t,e):ru(t,e)}n(kn,"shopifyReducer");var La=ae(xt()),Ma=ae(Yt());function qa(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(qa,"updateTrackingInputs");function Fn(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(Fn,"getTrackingKey");function ou(t,e){var d,f,h,_;if(!((d=t.payload.offer)==null?void 0:d.autoshipByDefault))return;let o=(f=t.payload.offer)==null?void 0:f.product.id,i=Fn(),s=((h=t.payload.offer)==null?void 0:h.location)||"",a=((_=t.payload.offer)==null?void 0:_.variationId)||"",c=uo(o,e),p=[o,R.toLowerCase(),s,c,a].join(",");qa(o,i,p)}n(ou,"addDefaultToSubTracking");function qn(t){return e=>r=>{switch(e(r),r.type){case R:case k:case F:{let o=r.payload.offer,i=Dn(r);o&&!o.isCart&&qa(o.product.id,i[0],i[1]);break}case w:ou(r,t);break;default:}}}n(qn,"shopifyTrackingMiddleware");var Da,Ua,Un=((Ua=(Da=window.Shopify)==null?void 0:Da.routes)==null?void 0:Ua.root)||"/",nu="/cart",iu=`${Un}cart.js`,su=`${Un}cart/change.js`,au=`${Un}products/`,cu='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',lu=n(t=>(0,Ma.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 pu(){var r,o;let t=(o=(r=window.Shopify)==null?void 0:r.currency)==null?void 0:o.active;return t||(await Ln()).currency}n(pu,"getCurrency");async function uu(t,e){let r=du(e);if(r)try{let[i,s]=await Promise.all([$a(r),pu()]),a={product:i,offer:e,currency:s};t.dispatch({type:D,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=lu(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(uu,"setupPdp");async function Ln(){return(await fetch(iu)).json()}n(Ln,"getCart");function du(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(du,"guessProductHandle");var $a=(0,La.default)(async function(t){return(await fetch(`${au}${t}.js`)).json()});async function fu(t,e){let r=await Ln(),{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($a))).forEach(c=>{let l={product:c,offer:e,currency:r.currency};t.dispatch({type:D,payload:l})})}n(fu,"setupCart");async function hu(t,e){var s,a;let r=t.payload.offer,o=t.payload.frequency||uo(t.payload.product.id,e),i=Dn(t);if(!!(r!=null&&r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(cu)),l=t.payload.product.id,p=await Ln(),d=(s=p==null?void 0:p.items)==null?void 0:s.findIndex(C=>C.key===l),f=p.items[d],h=f.quantity,_=S(l),P=await fetch(su,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:l,quantity:h,attributes:Object.fromEntries([i]),properties:f.properties,selling_plan:o||null,sections:c.map(C=>C.id.replace(/^shopify-section-/,""))})});if(P.status!==200)throw new Error("Cart not updated");let m=await P.json(),E=p.items.length===m.items.length?m.items[d].key:(a=m.items.find(C=>C.quantity===h&&C.product_id===_&&(!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:St,payload:{oldCartProductKey:l,newCartProductKey:E}}),r.setAttribute("product",E));let T=m;e.dispatch({type:me,payload:T});let y=new CustomEvent(li,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(y),y.defaultPrevented)return;let O=m.sections;Object.values(O).length?c.forEach(C=>{let $n=C.id.replace(/^shopify-section-/,"");if(!($n in O))return;let za=O[$n],Vn=new DOMParser().parseFromString(za.toString()||"","text/html").getElementById(C.id);Vn&&(C.innerHTML=Vn.innerHTML)}):window.location.pathname.startsWith(nu)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(hu,"synchronizeCartOptin");function Dn(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 q:case k:s.push(""),s.push(i);break;case R:case F:s.push(t.payload.frequency),s.push(i);break;default:return[]}return[r,s.join(",")]}n(Dn,"getTrackingEvent");function uo(t,e){var i;return(i=hr({id:t})(e.getState()))==null?void 0:i.frequency}n(uo,"getSubscribedFrequency");function mu(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=uo(o,t);Ro(r.form,"selling_plan",i),Ro(r.form,"attributes[og__session]",t.getState().sessionId)})}n(mu,"synchronizeSellingPlan");function Mn(t){return e=>r=>{var o;switch(r.type){case R:case k:case F:break;case q:(o=r.payload.offer)!=null&&o.isCart?fu(t,r.payload.offer):uu(t,r.payload.offer);break;default:}switch(e(r),r.type){case R:case k:case F:case ce:hu(r,t);case q:case w:case D:mu(t,r.payload.offer);break;default:}}}n(Mn,"shopifyMiddleware");var gu="/apps/subscriptions/auth/",Va="og_auth_begin",yu="og_auth_end",bu=n(t=>{let[e,r,o,i]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:i}},"parseIntegrationTempAuth");async function ja({store:t}){var i;let[e]=Co(),r=wt(),o=r!=null&&r.dataset.customer?bu(r.dataset.customer):(i=window.ogShopifyConfig)==null?void 0:i.customer;if(o){let s=await _u(o);if(s){let[a,c,l]=s.split("|");t.dispatch(At(e,a,Number(c),l))}}else Ci("og_auth")}n(ja,"authorizeShopifyCustomer");async function Su(t){try{let r=await(await fetch(`${gu}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Va);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Va.length,r.lastIndexOf(yu)))}catch(e){console.error(e)}}n(Su,"fetchOGSignature");async function _u(t){let e=Ri("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:i}=await Su(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(_u,"getOrCreateAuthCookie");var Ga,Ba=hs(...(Ga=A)!=null&&Ga.shopify_selling_plans?[kn,Mn]:[co],A.shopify&&qn),v=dn(Ba),Eu=v.isReady,xu=v.addOptinChangedCallback,Pu=v.addTemplate,vu=v.clear,Ou=v.config,Tu=v.disableOptinChangedCallbacks,wu=v.getOptins,Cu=v.getProductsForPurchasePost,Ru=v.initialize,Au=v.previewMode,Iu=v.register,Nu=v.resolveSettings,ku=v.setAuthUrl,Fu=v.setEnvironment,qu=v.setLocale,Du=v.setMerchantId,Uu=v.setPublicPath,Lu=v.setTemplates,Mu=v.setupCart,$u=v.setupProduct,Vu=v.setupProducts,ju=n(()=>wi(v),"autoInit");var Gu=v.initialize,Ha;(Ha=A)!=null&&Ha.shopify_selling_plans&&gr(()=>ja(v));return Za(Hu);})();
|
|
1065
|
+
`}};n(so,"Price");var Tp=n((t,e)=>{var r;return{productPlans:t.productPlans,configDefaultFrequency:oe((r=e.product)==null?void 0:r.id)(t),frequency:re(e.product)(t)}},"mapStateToProps"),wa=g(Tp)(so);function dn(t){Ta(),bs(t);try{customElements.define("og-when",Zs),customElements.define("og-text",ca),customElements.define("og-incentive-text",da),customElements.define("og-offer",_a),customElements.define("og-select-frequency",fa),customElements.define("og-optout-button",ra),customElements.define("og-optin-toggle",aa),customElements.define("og-optin-status",ea),customElements.define("og-optin-button",ta),customElements.define("og-optin-select",na),customElements.define("og-upsell-button",ia),customElements.define("og-frequency-status",oa),customElements.define("og-modal",Vt),customElements.define("og-select",jt),customElements.define("og-tooltip",Gt),customElements.define("og-upsell-modal",sa),customElements.define("og-next-upcoming-order",ma),customElements.define("og-price",wa),customElements.define("og-prepaid-toggle",Ea),customElements.define("og-prepaid-data",xa),customElements.define("og-prepaid-button",Pa),customElements.define("og-prepaid-select",va),customElements.define("og-subscription-button",Oa)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(Fi(o)),this},setMerchantId(o){return t.dispatch(Ii(o)),this},setAuthUrl(o){return t.dispatch(Ni(o)),this},receiveMerchantSettings(o){return t.dispatch(Hi(o)),this},getProductsForPurchasePost(o=[]){return Lo(t.getState(),o)},getOptins(o=[]){return Lo(t.getState(),o)},clear(){t.dispatch(Ui())},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(Mi(o)),this},setLocale(o){return t.dispatch(Li(o)),this},addTemplate(o,i,s){return t.dispatch($i(o,i,s)),this},setTemplates(o){return t.dispatch(Vi(o)),this},setPublicPath(o){return this},resolveSettings(o,i,s,a=t){if(!A.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(d=>a.dispatch(ko(d))),s.product_discounts&&typeof s.product_discounts=="object"&&a.dispatch({type:We,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),Uo(window.opener,r),r}n(dn,"makeApi");var ao=n((t=[],e)=>{switch(e.type){case he:return[];case Te:return e.newValue?e.newValue.optedin:t;case R:case F:{let[{prepaidShipments:r,...o},i]=rt(t,e.payload.product);return i.concat({...o,...e.payload.product,frequency:e.payload.frequency})}case ce:{let{payload:r}=e,[{prepaidShipments:o,...i},s]=rt(t,r.product),a={...i,...r.product};return r.prepaidShipments&&(a.prepaidShipments=r.prepaidShipments),s.concat(a)}case k:return t.filter(r=>!I(e.payload.product,r));case bt:return t.map(r=>I(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case tr:return t.filter(r=>!I(e.payload.product,r));case ze:return[];default:return t}},"optedin"),fn=n((t=[],e)=>{switch(e.type){case he:return[];case Te:return e.newValue?e.newValue.optedout:t;case R:case F:return t.filter(r=>!I(e.payload.product,r));case k:{let[r,o]=rt(t,e.payload.product);return o.concat({...r,...e.payload.product,frequency:e.payload.frequency})}case bt:return t.map(r=>I(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case ze:return[];default:return t}},"optedout"),hn=n((t={},{type:e,payload:r})=>{switch(e){case Qt: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 Zt:return{...t,products:(r.results||[]).map(o=>o.product)};case er:return{...t,...r,public_id:r.order,...r.product&&{products:(t.products||[]).concat(r.product)}};default:return t}},"nextUpcomingOrder"),wp=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.autoship};default:return t}},"autoshipEligible"),Cp=n((t={},e)=>{switch(e.type){case q:return{...t};case w:return{...t,...e.payload.in_stock};default:return t}},"inStock"),mn=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.eligibility_groups};default:return t}},"eligibilityGroups"),Ca=n((t,e)=>t.map(r=>({...e[r],id:[r][0]})),"mapIncentive"),gn=n((t={},e)=>{switch(e.type){case w: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||[],...Ca(s,e.payload.incentives_display)],ongoing:[...i.ongoing||[],...Ca(a,e.payload.incentives_display)]}),{})}),{})};default:return t}},"incentives"),Rp=n((t={},e)=>{switch(e.type){case R:case F:return{...t,[S(e.payload.product)]:e.payload.frequency};case k:return{...t,[S(e.payload.product)]:void 0};default:return t}},"frequency"),yn=n((t=!1,e)=>{switch(e.type){case Jt:return{...e.payload};case Oe:return!1;default:return t}},"auth"),bn=n((t="",e)=>{switch(e.type){case $e:return e.payload;default:return t}},"merchantId"),Sn=n((t=null,e)=>{switch(e.type){case Kt:return e.payload;default:return t}},"authUrl"),Ap=n((t={},e)=>{switch(e.type){case w:return{...t,offerId:(e.payload.module_view||{}).regular,...e.payload.modifiers};default:return t}},"offer"),_n=n((t="",e)=>{switch(e.type){case w:return(e.payload.module_view||{}).regular||"";default:return t}},"offerId"),En=n((t=null,e)=>{switch(e.type){case he:return null;case Ve:return e.payload;default:return t}},"sessionId"),Ip=n((t={},e)=>{switch(e.type){case w:return{...t,...Object.entries(e.payload.autoship).map(([r])=>({[r]:Object.keys(e.payload.modifiers)})).reduce((r,o)=>({...r,...o}),{})};case ze:return{};default:return t}},"productOffer"),xn=n((t={},e)=>{switch(e.type){case ir:return{...t,[S(e.payload.product)]:e.payload.firstOrderPlaceDate};default:return t}},"firstOrderPlaceDate"),Pn=n((t={},e)=>{switch(e.type){case sr:return{...t,[S(e.payload.product)]:e.payload.productToSubscribe};default:return t}},"productToSubscribe"),vn=n((t={},e)=>{switch(e.type){case je:return{...t,name:"local",apiUrl:"http://py3web.ordergroove.localhost",legoUrl:"http://py3lego.ordergroove.localhost"};case Ge:return{...t,name:we,apiUrl:"https://staging.offers.ordergroove.com",legoUrl:"https://staging.restapi.ordergroove.com"};case He:return{...t,name:ar,apiUrl:"https://dev.offers.ordergroove.com",legoUrl:"https://dev.restapi.ordergroove.com"};case Be:return{...t,name:Ce,apiUrl:"https://offers.ordergroove.com",legoUrl:"https://restapi.ordergroove.com"};default:return t}},"environment"),On=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 rr:return{...t,...e.payload};default:return t}},"locale"),Np=n((t={offerType:"radio"},e)=>{switch(e.type){case Ye:return{...t,...e.payload,defaultFrequency:e.payload.defaultFrequency?Tt(e.payload.defaultFrequency):t.defaultFrequency,frequenciesEveryPeriod:[],frequencies:e.payload.frequencies?e.payload.frequencies.map(Tt):t.frequencies};case le:return{...t,merchantSettings:{...e.payload}};default:return t}},"config"),Tn=n((t=!1,e)=>{switch(e.type){case fe:return e.payload.isPreview;default:return t}},"previewStandardOffer"),wn=n((t=!1,e)=>{switch(e.type){case _t:return e.payload.isPreview;default:return t}},"previewUpsellOffer");var Cn=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.autoship_by_default};default:return t}},"autoshipByDefault"),Rn=n((t=[],e)=>{switch(e.type){case w:return{...t,...e.payload.default_frequencies};default:return t}},"defaultFrequencies"),An=n((t=[],e)=>{switch(e.type){case nr:return[...e.payload||[]];case or:return[e.payload,...t];default:return t}},"templates"),kp=n((t={},e)=>{switch(e.type){case We:return Nr(e.payload);default:return t}},"productPlans"),In=n((t={},e)=>{switch(e.type){case St:{let{[e.payload.oldCartProductKey]:r,...o}=t;return{...o,[e.payload.newCartProductKey]:r}}case ce:return e.payload.prepaidShipments?{...t,[e.payload.product.id]:e.payload.prepaidShipments}:t;default:return t}},"prepaidShipmentsSelected"),co=Bt({optedin:ao,optedout:fn,nextUpcomingOrder:hn,autoshipEligible:wp,inStock:Cp,eligibilityGroups:mn,incentives:gn,frequency:Rp,auth:yn,merchantId:bn,authUrl:Sn,offer:Ap,offerId:_n,experiments:Rr,sessionId:En,productOffer:Ip,firstOrderPlaceDate:xn,productToSubscribe:Pn,environment:vn,locale:On,config:Np,previewStandardOffer:Tn,previewUpsellOffer:wn,autoshipByDefault:Cn,defaultFrequencies:Rn,templates:An,productPlans:kp,prepaidShipmentsSelected:In});var lo=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"),po=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"),Fp=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)=>ue(t.compare_at_price,e),"getAllocationRegularPrice"),Dp=n((t,e)=>{var r;if(lo(t)){let o=po((r=t.selling_plan)==null?void 0:r.options),i=Math.round(t.price/o);return ue(i,e)}return ue(t.price,e)},"getAllocationSubscriptionPrice"),Ra=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),Up=n((t,e)=>{var o,i,s;if(lo(t)){let a=po((o=t.selling_plan)==null?void 0:o.options),c=t.price/a,l=Ra(t,c);return vr(l)}let r="";return((i=t.price_adjustments[0])==null?void 0:i.value_type)==="percentage"?r=vr(t.price_adjustments[0].value):(s=t.price_adjustments[0])!=null&&s.value?r=ue(t.price_adjustments[0].value,e):t.compare_at_price&&(r=ue(t.compare_at_price-t.price,e)),r},"getAllocationDiscountRate"),Lp=n(t=>{var e;return lo(t)?po((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),Mp=n((t,e,r,o)=>{var d,f;let i=po((d=t.selling_plan)==null?void 0:d.options),s=t.price/i,a=t.compare_at_price-s,c=Ra(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=ue(t.price,o),e.prepaidSavingsPerShipment=ue(Math.round(a),o),e.prepaidSavingsTotal=ue(Math.round(a*i),o),p&&c&&(e.prepaidExtraSavingsPercentage=vr(c-p)),e},"addPrepaidPriceAndSavings"),$p=n((t,e,r)=>{t.selling_plan||(t.selling_plan=e.find(i=>i.id===t.selling_plan_id));let o={frequency:Fp(t),regularPrice:qp(t,r),subscriptionPrice:Dp(t,r),discountRate:Up(t,r),prepaidShipments:Lp(t)};if(lo(t)){let i=us(e);return Mp(t,o,i,r)}return o},"mapSellingPlanToDiscount"),Nn=n((t,e,r=[],o)=>[...t,$p(e,r,o)],"sellingPlanAllocationsReducer"),Aa=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group:r}))],[]),"getSellingPlans");var Vp=n((t={offerType:"radio",productFrequencies:{},frequencies:[],frequenciesEveryPeriod:[]},e)=>{var r;if(D===e.type){let{payload:{product:o,currency:i}}=e,s={},a=(r=o.variants)==null?void 0:r.reduce((p,d)=>Gp(p,d,o.selling_plan_groups,t),{}),c={...t.productFrequencies,...a};s={...s,productFrequencies:c,...Object.values(c)[0]};let l=o==null?void 0:o.selling_plan_groups.filter(p=>/^Prepaid-.*/.test(p.name));return l.length&&(s={...s,prepaidSellingPlans:{...t.prepaidSellingPlans,...Bp(l)}}),{...t,...s,storeCurrency:i}}if(w===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:Hp(c,i,a,l==null?void 0:l.frequencies,l==null?void 0:l.frequenciesEveryPeriod)}};return{...t,productFrequencies:p,...Object.values(p)[0]}}return le===e.type?{...t,merchantSettings:{...e.payload}}:t},"config");function jp(t,e){var i,s;let r=Ft(t),o=Tr(r);if(o!=null&&o.length){let a=wr(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&&Ie(l)&&(l=J(o,a,l)||pe(o)||l),{frequencies:o,frequenciesEveryPeriod:a,frequenciesText:c,...l?{defaultFrequency:l}:{}}}return null}n(jp,"getFrequencies");function Gp(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=jp(s,o.productFrequencies[e.id]);return a&&(t[e.id]=a),t}n(Gp,"reduceSellingPlansToFrequencies");function Hp(t,e,r,o=[],i=[]){var s;return(s=r[t])!=null&&s.some(({sellingPlan:a})=>a===e)?pe(o)||e:Ie(e)&&(J(o,i,e)||pe(o))||e}n(Hp,"getUpdatedDefaultFrequency");function Bp(t){return t.reduce((e,r)=>{let o=r.name.split("-")[1],i=r.selling_plans.map(s=>({numberShipments:Cr(s),sellingPlan:String(s.id)}));return{...e,[o]:i}},{})}n(Bp,"getPrepaidSellingPlans");var Ia=Vp;var ka=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"),Na=n((t,e,r)=>{if(!r)return null;if(!Ie(r))return r;if(yr(t,e)){let o=J(t,e,r);return o||pe(t)}return r},"getDefaultSellingPlan"),zp=n((t,e,r)=>t.map(o=>Ie(o==null?void 0:o.frequency)?{...o,frequency:yr(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod)?J(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,o.frequency)||J(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,e==null?void 0:e.defaultFrequency)||pe(r==null?void 0:r.frequencies):o.frequency}:o),"mapExistingOptinsFromOfferResponse"),Yp=n(({autoship:t={},autoship_by_default:e={},default_frequencies:r={},in_stock:o={}},i,s,a)=>Object.keys(t).reduce((c,l)=>{if(!i.some(p=>p.id===l)){if(!(t[l]&&e[l]&&o[l]))return c;let{frequencies:p,frequenciesEveryPeriod:d}=a,{defaultFrequency:f}=s||{},h=r[l],_;return r[l]&&yr(p,d)?_=J(p,d,`${h.every}_${h.every_period}`)||Na(p,d,f)||pe(p):r[l]?_=`${h.every}_${h.every_period}`:_=Na(p,d,f)||"_",c.concat({id:l,frequency:_})}return c},[]),"reduceNewOptinsFromOfferResponse"),Wp=n((t,e)=>({...ka(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Fa=n((t,e)=>{let r=S(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),Kp=n((t={},e)=>{var r;if(me===e.type){let{payload:o}=e;return o.items.reduce(Fa,t)}if(D===e.type){let{payload:{product:o}}=e,i=cs(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 d,f;let p=((f=(d=c==null?void 0:c.selling_plan_allocations)==null?void 0:d.filter(h=>s.has(h.selling_plan_id)))!=null?f:[]).length>0;return{...ka(a,c.id,p),[c.id]:p}},t)}return fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"autoshipEligible"),Jp=n((t={},e)=>{var r;if(me===e.type)return e.payload.items.reduce(Fa,t);if(D===e.type){let{payload:{product:o}}=e;return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce(Wp,t)||t}return q===e.type&&e.payload.product===null?{...t}:fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"inStock"),Qp=n((t={},e)=>t,"offer");function Zp(t){let e=Cr(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(Zp,"getOptedInItem");var Xp=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,Zp(i)]:o,[]))}if(w===e.type){let r=e.payload,{offer:o={},frequencyConfig:i}=r,s=zp(t,o,i),a=Yp(r,s,o,i);return[...s,...a]}if(D===e.type){let{product:r}=e.payload,o=Ft(r==null?void 0:r.selling_plan_groups);if(!o)return t;let i=Tr(o),s=wr(o);return t.map(a=>Ie(a.frequency)?{...a,frequency:J(i,s,a.frequency)||pe(i)}:a)}if(ce===e.type){let{payload:r}=e,o=ao(t,e),[i,s]=rt(o,r.product);return s.concat({...i,...r.product,frequency:r.frequency})}return ao(t,e)},"optedin"),eu=n((t={},e)=>t,"productOffer"),tu=n((t={},e)=>{if(D===e.type){let{payload:{product:r,currency:o}}=e,i=Aa(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)=>Nn(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]:Nn([],i.selling_plan_allocation,[],r.currency)}:o,t)||t}return t},"productPlans"),ru=Bt({auth:yn,authUrl:Sn,autoshipByDefault:Cn,autoshipEligible:Kp,config:Ia,defaultFrequencies:Rn,eligibilityGroups:mn,environment:vn,firstOrderPlaceDate:xn,incentives:gn,inStock:Jp,locale:On,merchantId:bn,nextUpcomingOrder:hn,offer:Qp,offerId:_n,experiments:Rr,optedin:Xp,optedout:fn,previewStandardOffer:Tn,previewUpsellOffer:wn,productOffer:eu,productPlans:tu,productToSubscribe:Pn,sessionId:En,templates:An,prepaidShipmentsSelected:In});function kn(t,e){return window.og&&window.og.previewMode?co(t,e):ru(t,e)}n(kn,"shopifyReducer");var La=ae(xt()),Ma=ae(Yt());function qa(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(qa,"updateTrackingInputs");function Fn(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(Fn,"getTrackingKey");function ou(t,e){var d,f,h,_;if(!((d=t.payload.offer)==null?void 0:d.autoshipByDefault))return;let o=(f=t.payload.offer)==null?void 0:f.product.id,i=Fn(),s=((h=t.payload.offer)==null?void 0:h.location)||"",a=((_=t.payload.offer)==null?void 0:_.variationId)||"",c=uo(o,e),p=[o,R.toLowerCase(),s,c,a].join(",");qa(o,i,p)}n(ou,"addDefaultToSubTracking");function qn(t){return e=>r=>{switch(e(r),r.type){case R:case k:case F:{let o=r.payload.offer,i=Dn(r);o&&!o.isCart&&qa(o.product.id,i[0],i[1]);break}case w:ou(r,t);break;default:}}}n(qn,"shopifyTrackingMiddleware");var Da,Ua,Un=((Ua=(Da=window.Shopify)==null?void 0:Da.routes)==null?void 0:Ua.root)||"/",nu="/cart",iu=`${Un}cart.js`,su=`${Un}cart/change.js`,au=`${Un}products/`,cu='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',lu=n(t=>(0,Ma.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 pu(){var r,o;let t=(o=(r=window.Shopify)==null?void 0:r.currency)==null?void 0:o.active;return t||(await Ln()).currency}n(pu,"getCurrency");async function uu(t,e){let r=du(e);if(r)try{let[i,s]=await Promise.all([$a(r),pu()]),a={product:i,offer:e,currency:s};t.dispatch({type:D,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=lu(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(uu,"setupPdp");async function Ln(){return(await fetch(iu)).json()}n(Ln,"getCart");function du(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(du,"guessProductHandle");var $a=(0,La.default)(async function(t){return(await fetch(`${au}${t}.js`)).json()});async function fu(t,e){let r=await Ln(),{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($a))).forEach(c=>{let l={product:c,offer:e,currency:r.currency};t.dispatch({type:D,payload:l})})}n(fu,"setupCart");async function hu(t,e){var s,a;let r=t.payload.offer,o=t.payload.frequency||uo(t.payload.product.id,e),i=Dn(t);if(!!(r!=null&&r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(cu)),l=t.payload.product.id,p=await Ln(),d=(s=p==null?void 0:p.items)==null?void 0:s.findIndex(C=>C.key===l),f=p.items[d],h=f.quantity,_=S(l),P=await fetch(su,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:l,quantity:h,attributes:Object.fromEntries([i]),properties:f.properties,selling_plan:o||null,sections:c.map(C=>C.id.replace(/^shopify-section-/,""))})});if(P.status!==200)throw new Error("Cart not updated");let m=await P.json(),E=p.items.length===m.items.length?m.items[d].key:(a=m.items.find(C=>C.quantity===h&&C.product_id===_&&(!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:St,payload:{oldCartProductKey:l,newCartProductKey:E}}),r.setAttribute("product",E));let T=m;e.dispatch({type:me,payload:T});let y=new CustomEvent(li,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(y),y.defaultPrevented)return;let O=m.sections;Object.values(O).length?c.forEach(C=>{let $n=C.id.replace(/^shopify-section-/,"");if(!($n in O))return;let za=O[$n],Vn=new DOMParser().parseFromString(za.toString()||"","text/html").getElementById(C.id);Vn&&(C.innerHTML=Vn.innerHTML)}):window.location.pathname.startsWith(nu)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(hu,"synchronizeCartOptin");function Dn(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 q:case k:s.push(""),s.push(i);break;case R:case F:s.push(t.payload.frequency),s.push(i);break;default:return[]}return[r,s.join(",")]}n(Dn,"getTrackingEvent");function uo(t,e){var i;return(i=hr({id:t})(e.getState()))==null?void 0:i.frequency}n(uo,"getSubscribedFrequency");function mu(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=uo(o,t);Ro(r.form,"selling_plan",i),Ro(r.form,"attributes[og__session]",t.getState().sessionId)})}n(mu,"synchronizeSellingPlan");function Mn(t){return e=>r=>{var o;switch(r.type){case R:case k:case F:break;case q:(o=r.payload.offer)!=null&&o.isCart?fu(t,r.payload.offer):uu(t,r.payload.offer);break;default:}switch(e(r),r.type){case R:case k:case F:case ce:hu(r,t);case q:case w:case D:mu(t,r.payload.offer);break;default:}}}n(Mn,"shopifyMiddleware");var gu="/apps/subscriptions/auth/",Va="og_auth_begin",yu="og_auth_end",bu=n(t=>{let[e,r,o,i]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:i}},"parseIntegrationTempAuth");async function ja({store:t}){var i;let[e]=Co(),r=wt(),o=r!=null&&r.dataset.customer?bu(r.dataset.customer):(i=window.ogShopifyConfig)==null?void 0:i.customer;if(o){let s=await _u(o);if(s){let[a,c,l]=s.split("|");t.dispatch(At(e,a,Number(c),l))}}else Ci("og_auth")}n(ja,"authorizeShopifyCustomer");async function Su(t){try{let r=await(await fetch(`${gu}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Va);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Va.length,r.lastIndexOf(yu)))}catch(e){console.error(e)}}n(Su,"fetchOGSignature");async function _u(t){let e=Ri("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:i}=await Su(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(_u,"getOrCreateAuthCookie");var Ga,Ba=hs(...(Ga=A)!=null&&Ga.shopify_selling_plans?[kn,Mn]:[co],A.shopify&&qn),v=dn(Ba),Eu=v.isReady,xu=v.addOptinChangedCallback,Pu=v.addTemplate,vu=v.clear,Ou=v.config,Tu=v.disableOptinChangedCallbacks,wu=v.getOptins,Cu=v.getProductsForPurchasePost,Ru=v.initialize,Au=v.previewMode,Iu=v.register,Nu=v.resolveSettings,ku=v.setAuthUrl,Fu=v.setEnvironment,qu=v.setLocale,Du=v.setMerchantId,Uu=v.setPublicPath,Lu=v.setTemplates,Mu=v.setupCart,$u=v.setupProduct,Vu=v.setupProducts,ju=n(()=>wi(v),"autoInit");var Gu=v.initialize,Ha;(Ha=A)!=null&&Ha.shopify_selling_plans&&gr(()=>ja(v));return Za(Hu);})();
|
|
1066
1066
|
; return lib; });
|
|
1067
1067
|
//# sourceMappingURL=offers.js.map
|